all files / diagram/entity-relationship/ er-module.js

97.18% Statements 69/71
85.11% Branches 40/47
100% Functions 16/16
97.18% Lines 69/71
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111     85× 85× 85×                 85× 85×   78×   85× 85× 85× 85× 65× 41×   24× 24×     20× 12×       20×     20× 15× 15× 15× 15× 15× 12×         2394×   2394×   2387× 2387×   283×   82×                   88269×   1967×        
define(["require", "exports", "./er-connector-renderer", "./er-util", "./er-field-reorder-util"], function (require, exports, er_connector_renderer_1, er_util_1, er_field_reorder_util_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var EREventManager = (function () {
        function EREventManager() {
        }
        EREventManager.prototype.fireEREntityChanged = function (diagram, entity, oldEntityState, newEntityState, state) {
            var cause = this.determineEntityChangeType(oldEntityState, newEntityState);
            var element = entity;
            var eventArgs = {
                diagram: diagram,
                element: element,
                oldValue: oldEntityState,
                newValue: newEntityState,
                cause: cause,
                state: state,
                cancel: false
            };
            diagram.trigger('erEntityChanged', eventArgs);
            if (state === 'Start' && eventArgs.cancel) {
                return false;
            }
            return !eventArgs.cancel;
        };
        EREventManager.prototype.determineEntityChangeType = function (oldState, newState) {
            Eif (oldState && newState) {
                var oldFields = (oldState && oldState.fields) || [];
                var newFields = (newState && newState.fields) || [];
                if (oldFields.length !== newFields.length) {
                    if (oldFields.length < newFields.length) {
                        return 'FieldsAdd';
                    }
                    Eif (oldFields.length > newFields.length) {
                        return 'FieldsRemove';
                    }
                }
                if (!this.isFieldOrderEqual(oldFields, newFields)) {
                    return 'FieldsReorder';
                }
            }
            return 'Other';
        };
        EREventManager.prototype.isFieldOrderEqual = function (fields1, fields2) {
            Iif (fields1.length !== fields2.length) {
                return false;
            }
            for (var i = 0; i < fields1.length; i++) {
                var field1 = fields1[parseInt(i.toString(), 10)];
                var field2 = fields2[parseInt(i.toString(), 10)];
                var idA = field1 && field1.id;
                var idB = field2 && field2.id;
                if (idA !== idB) {
                    return false;
                }
            }
            return true;
        };
        return EREventManager;
    }());
    exports.EREventManager = EREventManager;
    var erEventManager;
    function getEREventManager() {
        if (!erEventManager) {
            erEventManager = new EREventManager();
        }
        return erEventManager;
    }
    exports.getEREventManager = getEREventManager;
    var ErDiagrams = (function () {
        function ErDiagrams() {
            this.connectorRenderer = new er_connector_renderer_1.ErConnectorRenderer();
            this.eventManager = getEREventManager();
        }
        ErDiagrams.prototype.initErContent = function (content, node, diagram) {
            return er_util_1.getErShapes(content, node, diagram);
        };
        ErDiagrams.prototype.initErConnector = function (connector) {
            this.connectorRenderer.render(connector);
        };
        ErDiagrams.prototype.updateErConnector = function (connector, erRelationship, oldRelationship, diagram) {
            return this.connectorRenderer.update(connector, erRelationship, oldRelationship, diagram);
        };
        ErDiagrams.prototype.validateFieldReorder = function (source, target, cursorPosition, diagram) {
            var sourceEntity = diagram.getObject(source.parentId);
            var targetEntity = diagram.getObject(target.parentId);
            Eif (sourceEntity && targetEntity && sourceEntity.id === targetEntity.id &&
                sourceEntity.container && sourceEntity.container.type === 'Stack') {
                var sourceIndex = er_field_reorder_util_1.getErFieldIndexByNodeId(source.id, sourceEntity, diagram);
                var targetIndex = er_field_reorder_util_1.getErFieldIndexByNodeId(target.id, sourceEntity, diagram);
                var insertionIndex = er_field_reorder_util_1.calculateFieldDropIndex(sourceEntity, source, target, cursorPosition.y || 0, diagram);
                var isValidInsertion = sourceIndex >= 0 && targetIndex >= 0 &&
                    insertionIndex !== sourceIndex &&
                    (insertionIndex > 0 || (insertionIndex === 0 && sourceIndex > 0));
                return isValidInsertion;
            }
            return false;
        };
        ErDiagrams.prototype.reorderErField = function (entityNode, sourceFieldIndex, targetFieldIndex, diagram) {
            return er_field_reorder_util_1.reorderErField(entityNode, sourceFieldIndex, targetFieldIndex, diagram);
        };
        ErDiagrams.prototype.getModuleName = function () {
            return 'ErDiagrams';
        };
        ErDiagrams.prototype.destroy = function () {
            this.connectorRenderer = null;
        };
        return ErDiagrams;
    }());
    exports.ErDiagrams = ErDiagrams;
});