UMLActivationView
@constructor
@extends NodeView
431513
function UMLActivationView() {
        NodeView.apply(this, arguments);
        this.sizable = Core.SZ_VERT;
        this.movable = Core.MM_NONE;
    }
505434
function initViews () {
    // list of views - may be empty
    this.modelViews = []
    // if view is false no model views will be applied overriding any defaults
    if (this.args.view === false) {
        return
    }
    // get view from args or default
    var viewArg = defined(this.args.view) ? this.args.view : this.model.views.default
    // skip unless view arg is set from args or default
    if (!defined(viewArg)) {
        return
    }
    // list of views to apply to model
    var views
    // if view is string then convert to array
    if (typeof viewArg === 'string') {
        views = [viewArg]
    }
    // if view is array use it
    else if (Array.isArray(viewArg)) {
        views = viewArg
    }
    // invalid argument
    else {
        throw this.error('invalid view argument')
    }
    // iterate over views getting model view objects
    _.each(views, view => {
        var modelView = requireValidModelView(view, this.model.views, true)
        // if result is array then add all
        if (Array.isArray(modelView)) {
            _.each(modelView, modelView => this.modelViews.push(modelView))
        }
        // otherwise add object
        else {
            this.modelViews.push(modelView)
        }
    })
    // instantiate model view engine if there are views
    if (this.modelViews.length > 0) {
        this.modelViewEngine = new ImmutableCoreModelViewEngine({query: this})
    }
}
950009
function UMLPrimitiveTypeView() {
        UMLClassifierView.apply(this, arguments);
        this.fillColor = PreferenceManager.get("uml.datatype.fillColor", "#ffffff") || PreferenceManager.get("view.fillColor", "#ffffff");
        this.suppressAttributes = true;
        this.suppressOperations = true;
    }
325680
function UMLGeneralizationView() {
        UMLGeneralEdgeView.apply(this, arguments);
        this.tailEndStyle = Core.ES_FLAT;
        this.headEndStyle = Core.ES_TRIANGLE;
        this.lineMode = Core.LM_SOLID;
    }
857635
function HyperlinkView() {
        NodeView.apply(this, arguments);

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

        /** @member {LabelView} */
        this.typeLabel = new LabelView();
        this.typeLabel.parentStyle = true;
        this.addSubView(this.typeLabel);
    }
677732
function NodeView() {
        View.apply(this, arguments);

        /** @member {number} */
        this.left = 0;

        /** @member {number} */
        this.top = 0;

        /** @member {number} */
        this.width = 0;

        /** @member {number} */
        this.height = 0;

        /** @member {number} */
        this.minWidth = 0;

        /** @member {number} */
        this.minHeight = 0;

        /** @member {number} */
        this.sizable = SZ_FREE;

        /** @member {number} */
        this.movable = MM_FREE;

        /** @member {Boolean} */
        this.autoResize = false;
    }
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);
    }
985924
function embeddedViewStart(viewBlockId) {
    var container = (isParent ? previousOrParentNode : getParentLNode(previousOrParentNode));
    ngDevMode && assertNodeType(container, 0 /* Container */);
    var lContainer = container.data;
    var viewNode = scanForView(container, lContainer[ACTIVE_INDEX], viewBlockId);
    if (viewNode) {
        previousOrParentNode = viewNode;
        ngDevMode && assertNodeType(previousOrParentNode, 2 /* View */);
        isParent = true;
        enterView(viewNode.data, viewNode);
    }
    else {
        // When we create a new LView, we always reset the state of the instructions.
        var newView = createLViewData(renderer, getOrCreateEmbeddedTView(viewBlockId, container), null, 2 /* CheckAlways */, getCurrentSanitizer());
        if (lContainer[QUERIES]) {
            newView[QUERIES] = lContainer[QUERIES].createView();
        }
        enterView(newView, viewNode = createLNode(viewBlockId, 2 /* View */, null, null, null, newView));
    }
    if (container) {
        if (creationMode) {
            // it is a new view, insert it into collection of views for a given container
            insertView(container, viewNode, lContainer[ACTIVE_INDEX]);
        }
        lContainer[ACTIVE_INDEX]++;
    }
    return getRenderFlags(viewNode.data);
}
906636
function UMLNameCompartmentView() {
        UMLCompartmentView.apply(this, arguments);
        this.selectable = Core.SK_NO;

        /** @member {LabelView} */
        this.stereotypeLabel = new LabelView();
        this.stereotypeLabel.horizontalAlignment = Graphics.AL_CENTER;
        this.stereotypeLabel.parentStyle = true;
        this.addSubView(this.stereotypeLabel);

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

        /** @member {LabelView} */
        this.namespaceLabel = new LabelView();
        this.namespaceLabel.horizontalAlignment = Graphics.AL_CENTER;
        this.namespaceLabel.parentStyle = true;
        this.addSubView(this.namespaceLabel);

        /** @member {LabelView} */
        this.propertyLabel = new LabelView();
        this.propertyLabel.horizontalAlignment = Graphics.AL_RIGHT;
        this.propertyLabel.parentStyle = true;
        this.addSubView(this.propertyLabel);

        /** @member {boolean} */
        this.wordWrap = false;
    }
600874
function executeView(nodes, parents, indexes) {
	while (true) {
		let node = nodes.pop();
		const parent = parents.pop();
		const index = indexes.pop();

		if (node.type === types.component) {
			// Execute the component to get the component view.
			node = components[node.name](node.data);

			// Set the root view or current node to the new component view.
			if (parent === null) {
				setViewNew(node);
			} else {
				parent.data.children[index] = node;
			}
		}

		// Execute the views of the children.
		const children = node.data.children;

		for (let i = 0; i < children.length; i++) {
			nodes.push(children[i]);
			parents.push(node);
			indexes.push(i);
		}

		if (nodes.length === 0) {
			// Move to the diff phase if there is nothing left to do.
			executeDiff([viewOld], [viewNew], []);

			break;
		} else if (performance.now() - executeStart >= 16) {
			// If the current frame doesn't have sufficient time left to keep
			// running then continue executing the view in the next frame.
			requestAnimationFrame(() => {
				executeStart = performance.now();

				executeView(nodes, parents, indexes);
			});

			break;
		}
	}
}
1245062
function registerView(view) {
  var name = view.getDebugName();
  var wrapped = new RegistryWrapper(view, 'views');
  flatRegistry.views[name] = wrapped;
  if (!view.parentView && !view.isComponentView) {
    nestedRegistry.views[name] = wrapped;
  }
  if (typeof view.destroy === 'function') {
    wrapped.destroy = _.bind(view.destroy, view);
    view.destroy = _.bind(function() {
      var name = this.obj.getDebugName();
      delete nestedRegistry.views[name];
      delete flatRegistry.views[name];
      updateNestedModels();
      triggerChange();
      this.destroy();
    }, wrapped);
  }
  updateNestedModels();
  triggerChange();
}
1300256
function ERDColumnCompartmentView() {
        type.NodeView.apply(this, arguments);
        this.selectable = Core.SK_PROPAGATE;
        this.parentStyle = true;

        this._nameOffset = 0;
        this._typeOffset = 0;
    }
39309
function UMLCollaborationView() {
        UMLGeneralNodeView.apply(this, arguments);

        /** @member {UMLTemplateParameterCompartmentView} */
        this.templateParameterCompartment = new UMLTemplateParameterCompartmentView();
        this.templateParameterCompartment.selectable = Core.SK_PROPAGATE;
        this.templateParameterCompartment.parentStyle = true;
        this.addSubView(this.templateParameterCompartment);

        this.fillColor = PreferenceManager.get("uml.collaboration.fillColor", "#ffffff") || PreferenceManager.get("view.fillColor", "#ffffff");
    }
1320126
function viewFactory(sId, vView, bAsync) {
		var mSettings = {}, oView;

		if (vView && typeof (vView) == "string") { // instantiation sap.ui.jsview("id","name", [async])
			mSettings.viewName = vView;
			if (typeof arguments[2] == "boolean") {
				mSettings.async = bAsync;
			} else if (typeof arguments[2] == "object") { // arguments[2] is somehow a controller
				mSettings.controller = arguments[2];
				mSettings.async = !!arguments[3]; // optional
			}
			oView = new JSView(sId, mSettings);
			return oView;

		} else if (vView && typeof (vView) == "object") { // definition sap.ui.jsview("name",definitionObject)
			// sId is not given, but contains the desired value of sViewName
			mRegistry[sId] = vView;
			sap.ui.loader._.declareModule(sId.replace(/\./g, "/") + ".view.js");
			Log.info("For defining views use JSView.extend instead.");
		} else if (arguments.length == 1 && typeof sId == "string" ||
			arguments.length == 2 && typeof arguments[0] == "string" && typeof arguments[1] == "boolean") { // instantiation sap.ui.jsview("name", [async])
			mSettings.viewName = arguments[0];
			mSettings.async = !!arguments[1]; // optional
			/*** STEP 1: create View ***/
			oView = mSettings.id ? new JSView(mSettings.id, mSettings) : new JSView(mSettings);
			/*** Step 3B and 4B (create and connect controller) happen in View ***/
			return oView;

		} else {
			throw new Error("Wrong arguments ('" + sId + "', '" + vView + "')! Either call sap.ui.jsview([sId,] sViewName) to instantiate a View or sap.ui.jsview(sViewName, oViewImpl) to define a View type.");
		}
	}
169425
function UMLComponentInstanceView() {
        UMLGeneralNodeView.apply(this, arguments);
        this.containerChangeable = true;
        // mixin UMLComponentViewMixin
        _.extend(UMLComponentInstanceView.prototype, UMLComponentViewMixin);

        this.fillColor = PreferenceManager.get("uml.componentinstance.fillColor", "#ffffff") || PreferenceManager.get("view.fillColor", "#ffffff");
        this.stereotypeDisplay  = PreferenceManager.get("uml.component.stereotypeDisplay", UML.SD_LABEL);
    }
561526
function UMLPortView() {
        UMLFloatingNodeView.apply(this, arguments);
        this.sizable = Core.SZ_NONE;
        this.fillColor = PreferenceManager.get("uml.port.fillColor", "#ffffff") || PreferenceManager.get("view.fillColor", "#ffffff");

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

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

        /** @member {boolean} */
        this.showMultiplicity = true;
    }
661950
function UMLNodeView() {
        UMLClassifierView.apply(this, arguments);

        this.iconRatio = NODE_RATIO_PERCENT;
        // mixin UMLNodeViewMixin
        _.extend(UMLNodeView.prototype, UMLNodeViewMixin);

        this.fillColor = PreferenceManager.get("uml.node.fillColor", "#ffffff") || PreferenceManager.get("view.fillColor", "#ffffff");
        this.stereotypeDisplay  = PreferenceManager.get("uml.node.stereotypeDisplay", UML.SD_LABEL);
        this.suppressAttributes = PreferenceManager.get("uml.node.suppressAttributes", true);
        this.suppressOperations = PreferenceManager.get("uml.node.suppressOperations", true);
    }