UMLGeneralizationView
@constructor
@extends UMLGeneralEdgeView
325680
function UMLGeneralizationView() {
        UMLGeneralEdgeView.apply(this, arguments);
        this.tailEndStyle = Core.ES_FLAT;
        this.headEndStyle = Core.ES_TRIANGLE;
        this.lineMode = Core.LM_SOLID;
    }
1362996
function()
		{
			this.appendView
			(
				new ns.MyLoadedView(this.context.addTo({templateUrl:'template-2.html'})),
				new ns.MyOtherView(this.context.addTo({template:'This is an internal template using <b>options.template</b> that hates <span cb-style="favoriteColor:color">{{favoriteColor}}</span>'}))
			);
		}
1333744
function UMLPartView() {
        UMLGeneralNodeView.apply(this, arguments);
        this.containerChangeable = false;
        this.showVisibility = false;

        /** @member {boolean} */
        this.showMultiplicity = true;

        this.fillColor = PreferenceManager.get("uml.part.fillColor", "#ffffff") || PreferenceManager.get("view.fillColor", "#ffffff");
    }
114408
function AppView(options) {
        View.apply(this, arguments);

        // Init
        this.transitionable = new Transitionable(0);
        this.modifier = new StateModifier();
        this.renderable = this.add(this.modifier);

        // Create rows
        this._createRows();
        this._createCounter();
        this._createEndScreen();
        this._createLagometer();

        // Reset
        this.reset();
    }
209476
function UMLLink() {
        UMLUndirectedRelationship.apply(this, arguments);

        /** @member {UMLLinkEnd} */
        this.end1 = new UMLLinkEnd();
        this.end1._parent = this;

        /** @member {UMLLinkEnd} */
        this.end2 = new UMLLinkEnd();
        this.end2._parent = this;

        /** @member {UMLAssociation} */
        this.association = null;
    }
406409
function UMLCustomFrameView() {
        NodeView.apply(this, arguments);

        /** @member {LabelView} */
        this.nameLabel = new LabelView();
        this.nameLabel.parentStyle = true;
        this.addSubView(this.nameLabel);

        /** @member {LabelView} */
        this.frameTypeLabel = new LabelView();
        this.frameTypeLabel.parentStyle = true;
        this.addSubView(this.frameTypeLabel);
    }
744248
function UMLRegionView() {
        NodeView.apply(this, arguments);
        this.selectable = Core.SK_YES;
        this.movable = Core.MM_NONE;
        this.sizable = Core.SZ_VERT;
        this.parentStyle = true;
    }
33410
function plantUMLReplacer(umlCode) {
    let renderedHTML;

    try {
      if (!plantumlEncoder) {
        throw new Error('plantuml-encoder dependency required');
      }
      renderedHTML = `<img src="${rendererURL}${plantumlEncoder.encode(umlCode)}" />`;
    } catch (err) {
      renderedHTML = `Error occurred on encoding uml: ${err.message}`;
    }

    return renderedHTML;
  }
1094335
function UMLSeqMessageView() {
        EdgeView.apply(this, arguments);
        this.lineStyle = Core.LS_RECTILINEAR;
        this.zIndex = 1;

        /** @member {EdgeLabelView} */
        this.nameLabel = new EdgeLabelView();
        this.nameLabel.hostEdge = this;
        this.nameLabel.edgePosition = Core.EP_MIDDLE;
        this.nameLabel.distance = 10;
        this.nameLabel.alpha = Math.PI / 2;
        this.addSubView(this.nameLabel);

        /** @member {EdgeLabelView} */
        this.stereotypeLabel = new EdgeLabelView();
        this.stereotypeLabel.hostEdge = this;
        this.stereotypeLabel.edgePosition = Core.EP_MIDDLE;
        this.stereotypeLabel.distance = 25;
        this.stereotypeLabel.alpha = Math.PI / 2;
        this.addSubView(this.stereotypeLabel);

        /** @member {EdgeLabelView} */
        this.propertyLabel = new EdgeLabelView();
        this.propertyLabel.hostEdge = this;
        this.propertyLabel.edgePosition = Core.EP_MIDDLE;
        this.propertyLabel.distance = 10;
        this.propertyLabel.alpha = -Math.PI / 2;
        this.addSubView(this.propertyLabel);

        /** @member {UMLActivationView} */
        this.activation = new UMLActivationView();
        this.addSubView(this.activation);

        /** @member {boolean} */
        this.showProperty = true;

        /** @member {boolean} */
        this.showType = true;
    }
290368
function UMLMessageEndpointView() {
        NodeView.apply(this, arguments);
        this.sizable = Core.SZ_NONE;
        this.movable = Core.MM_HORZ;
    }
1253176
function UMLNodeInstanceView() {
        UMLGeneralNodeView.apply(this, arguments);
        this.iconRatio = NODE_RATIO_PERCENT;
        this.containerChangeable = true;
        // mixin UMLNodeViewMixin
        _.extend(UMLNodeInstanceView.prototype, UMLNodeViewMixin);

        this.fillColor = PreferenceManager.get("uml.nodeinstance.fillColor", "#ffffff") || PreferenceManager.get("view.fillColor", "#ffffff");
        this.stereotypeDisplay  = PreferenceManager.get("uml.node.stereotypeDisplay", UML.SD_LABEL);
    }
835676
function View(bytes, elementType) {
    if (!(this instanceof View))
        return new View(bytes, elementType);
    this.bytes = bytes;
    this.elementType = elementType;
}
1304044
function (view) {
    view.base = view.base || view.cwd || process.cwd();
    this.src = this.src || {};
    // ensure that `view` has `path` and `content` properties
    this.validate(view);

    this.options.orig = view.content;
    this.options.plural = this.collection.options.plural;
    this.options.viewType = this.options.viewType = [];
    this.options.handled = this.options.handled = [];

    this.contexts = view.contexts = {};
    this.locals = view.locals || {};
    this.data = view.data || {};
    mixins(this);

    // add non-emumerable properties
    this.defineOption('route', this.options.route);
    this.define('_callbacks', this._callbacks);

    if (view.stat) {
      utils.defineProp(view, 'history', view.history);
      utils.defineProp(view, '_contents', view._contents);
      utils.defineProp(view, 'stat', view.stat);
    }

    view.__proto__ = this;
    utils.defineProp(view, '_callbacks', view._callbacks);

    // handle `onLoad` middleware routes
    this.app.handleView('onLoad', view, view.locals);
    this.ctx('locals', view.locals);
    this.ctx('data', view.data);
  }
956714
function BaseView (properties, application) {

  // note that if application is not defined, this.application will
  // default to the default, global application.
  this.application = application;

  this._onParent     = _.bind(this._onParent, this);
  SubindableObject.call(this, properties);


  /**
   * The main application that instantiated this view
   * @property application
   * @type {Application}
   */

  this.initialize();
  
  // ref back to this context for templates
  this["this"]     = this;
}
676989
function UMLExtensionView() {
        UMLGeneralEdgeView.apply(this, arguments);
        this.tailEndStyle = Core.ES_FLAT;
        this.headEndStyle = Core.ES_SOLID_ARROW;
        this.lineMode = Core.LM_SOLID;
    }
1286285
function (state, action) {
    // Apply coniditions to view cells
    let normalized
    let view
    if (state.unnormalizedModel) {
      normalized = normalizeModelAndView({
        model: state.unnormalizedModel,
        view: action.view
      })

      view = evaluateViewConditions(normalized.view, state.value)
    } else {
      view = evaluateViewConditions(state.baseView, state.value)
      normalized = {
        view,
        model: state.model
      }
    }

    const newState = {
      baseView: normalized.view,
      lastAction: CHANGE_VIEW,
      unnormalizedView: action.view,
      view
    }

    if (!_.isEqual(state.baseModel, normalized.model)) {
      Object.assign(newState, {
        baseModel: normalized.model,
        model: evaluateConditions(normalized.model, state.value, undefined, state.value)
      })
    }

    return _.defaults(newState, state)
  }
1196844
function UMLGeneralEdgeView() {
        EdgeView.apply(this, arguments);

        /** @member {string} */
        this.stereotypeDisplay = UML.SD_LABEL;

        /** @member {boolean} */
        this.showVisibility = true;

        /** @member {boolean} */
        this.showProperty = true;

        /** @member {EdgeLabelView} */
        this.nameLabel = new EdgeLabelView();
        this.nameLabel.hostEdge = this;
        this.nameLabel.edgePosition = Core.EP_MIDDLE;
        this.nameLabel.distance = 15;
        this.nameLabel.alpha = Math.PI / 2;
        this.addSubView(this.nameLabel);

        /** @member {EdgeLabelView} */
        this.stereotypeLabel = new EdgeLabelView();
        this.stereotypeLabel.hostEdge = this;
        this.stereotypeLabel.edgePosition = Core.EP_MIDDLE;
        this.stereotypeLabel.distance = 30;
        this.stereotypeLabel.alpha = Math.PI / 2;
        this.addSubView(this.stereotypeLabel);

        /** @member {EdgeLabelView} */
        this.propertyLabel = new EdgeLabelView();
        this.propertyLabel.hostEdge = this;
        this.propertyLabel.edgePosition = Core.EP_MIDDLE;
        this.propertyLabel.distance = 15;
        this.propertyLabel.alpha = -Math.PI / 2;
        this.addSubView(this.propertyLabel);
    }