@logicflow/extension 1.2.9 → 1.2.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/CHANGELOG.md +1727 -0
  2. package/cjs/NodeResize/Control/Control.js +35 -49
  3. package/cjs/bpmn/getBpmnId.js +25 -2
  4. package/cjs/bpmn-elements/index.js +102 -0
  5. package/cjs/bpmn-elements/presets/Event/EndEventFactory.js +134 -0
  6. package/cjs/bpmn-elements/presets/Event/IntermediateCatchEvent.js +118 -0
  7. package/cjs/bpmn-elements/presets/Event/IntermediateThrowEvent.js +119 -0
  8. package/cjs/bpmn-elements/presets/Event/StartEventFactory.js +133 -0
  9. package/cjs/bpmn-elements/presets/Event/boundaryEventFactory.js +125 -0
  10. package/cjs/bpmn-elements/presets/Event/index.js +16 -0
  11. package/cjs/bpmn-elements/presets/Flow/index.js +9 -0
  12. package/cjs/bpmn-elements/presets/Flow/sequenceFlow.js +78 -0
  13. package/cjs/bpmn-elements/presets/Gateway/gateway.js +109 -0
  14. package/cjs/bpmn-elements/presets/Gateway/index.js +14 -0
  15. package/cjs/bpmn-elements/presets/Task/index.js +134 -0
  16. package/cjs/bpmn-elements/presets/Task/subProcess.js +190 -0
  17. package/cjs/bpmn-elements/presets/Task/task.js +190 -0
  18. package/cjs/bpmn-elements/presets/icons.js +116 -0
  19. package/cjs/bpmn-elements/utils.js +45 -0
  20. package/cjs/bpmn-elements-adapter/constant.js +69 -0
  21. package/cjs/bpmn-elements-adapter/index.js +1066 -0
  22. package/cjs/bpmn-elements-adapter/json2xml.js +91 -0
  23. package/cjs/bpmn-elements-adapter/xml2json.js +554 -0
  24. package/cjs/components/control/index.js +1 -1
  25. package/cjs/components/menu/index.js +76 -7
  26. package/cjs/index.js +3 -1
  27. package/cjs/materials/group/index.js +16 -7
  28. package/cjs/tools/snapshot/index.js +14 -0
  29. package/es/NodeResize/Control/Control.d.ts +1 -0
  30. package/es/NodeResize/Control/Control.js +36 -50
  31. package/es/bpmn/getBpmnId.js +25 -2
  32. package/es/bpmn-elements/index.d.ts +16 -0
  33. package/es/bpmn-elements/index.js +88 -0
  34. package/es/bpmn-elements/presets/Event/EndEventFactory.d.ts +5 -0
  35. package/es/bpmn-elements/presets/Event/EndEventFactory.js +130 -0
  36. package/es/bpmn-elements/presets/Event/IntermediateCatchEvent.d.ts +5 -0
  37. package/es/bpmn-elements/presets/Event/IntermediateCatchEvent.js +114 -0
  38. package/es/bpmn-elements/presets/Event/IntermediateThrowEvent.d.ts +5 -0
  39. package/es/bpmn-elements/presets/Event/IntermediateThrowEvent.js +115 -0
  40. package/es/bpmn-elements/presets/Event/StartEventFactory.d.ts +5 -0
  41. package/es/bpmn-elements/presets/Event/StartEventFactory.js +129 -0
  42. package/es/bpmn-elements/presets/Event/boundaryEventFactory.d.ts +5 -0
  43. package/es/bpmn-elements/presets/Event/boundaryEventFactory.js +121 -0
  44. package/es/bpmn-elements/presets/Event/index.d.ts +2 -0
  45. package/es/bpmn-elements/presets/Event/index.js +12 -0
  46. package/es/bpmn-elements/presets/Flow/index.d.ts +7 -0
  47. package/es/bpmn-elements/presets/Flow/index.js +5 -0
  48. package/es/bpmn-elements/presets/Flow/sequenceFlow.d.ts +5 -0
  49. package/es/bpmn-elements/presets/Flow/sequenceFlow.js +74 -0
  50. package/es/bpmn-elements/presets/Gateway/gateway.d.ts +17 -0
  51. package/es/bpmn-elements/presets/Gateway/gateway.js +105 -0
  52. package/es/bpmn-elements/presets/Gateway/index.d.ts +2 -0
  53. package/es/bpmn-elements/presets/Gateway/index.js +10 -0
  54. package/es/bpmn-elements/presets/Task/index.d.ts +2 -0
  55. package/es/bpmn-elements/presets/Task/index.js +130 -0
  56. package/es/bpmn-elements/presets/Task/subProcess.d.ts +5 -0
  57. package/es/bpmn-elements/presets/Task/subProcess.js +186 -0
  58. package/es/bpmn-elements/presets/Task/task.d.ts +12 -0
  59. package/es/bpmn-elements/presets/Task/task.js +186 -0
  60. package/es/bpmn-elements/presets/icons.d.ts +25 -0
  61. package/es/bpmn-elements/presets/icons.js +113 -0
  62. package/es/bpmn-elements/utils.d.ts +2 -0
  63. package/es/bpmn-elements/utils.js +40 -0
  64. package/{types/bpmn → es/bpmn-elements-adapter}/constant.d.ts +20 -0
  65. package/es/bpmn-elements-adapter/constant.js +66 -0
  66. package/es/bpmn-elements-adapter/index.d.ts +103 -0
  67. package/es/bpmn-elements-adapter/index.js +1060 -0
  68. package/es/bpmn-elements-adapter/json2xml.d.ts +3 -0
  69. package/es/bpmn-elements-adapter/json2xml.js +87 -0
  70. package/es/bpmn-elements-adapter/xml2json.js +551 -0
  71. package/es/components/control/index.js +1 -1
  72. package/es/components/menu/index.js +76 -7
  73. package/es/index.d.ts +3 -1
  74. package/es/index.js +3 -1
  75. package/es/materials/group/index.js +16 -7
  76. package/es/tools/snapshot/index.js +14 -0
  77. package/lib/AutoLayout.js +1 -1
  78. package/lib/BpmnAdapter.js +1 -1
  79. package/lib/BpmnElement.js +1 -1
  80. package/lib/ContextMenu.js +1 -1
  81. package/lib/Control.js +1 -1
  82. package/lib/CurvedEdge.js +1 -1
  83. package/lib/DndPanel.js +1 -1
  84. package/lib/FlowPath.js +1 -1
  85. package/lib/Group.js +1 -1
  86. package/lib/Highlight.js +1 -1
  87. package/lib/InsertNodeInPolyline.js +1 -1
  88. package/lib/Menu.js +1 -1
  89. package/lib/MiniMap.js +1 -1
  90. package/lib/NodeResize.js +1 -1
  91. package/lib/RectLabelNode.js +1 -1
  92. package/lib/SelectionSelect.js +1 -1
  93. package/lib/Snapshot.js +1 -1
  94. package/lib/TurboAdapter.js +1 -1
  95. package/lib/lfJson2Xml.js +1 -1
  96. package/lib/lfXml2Json.js +1 -1
  97. package/package.json +3 -3
  98. package/types/NodeResize/BasicShape/Polygon.d.ts +0 -10
  99. package/types/NodeResize/BasicShape/Rect.d.ts +0 -17
  100. package/types/NodeResize/Control/Control.d.ts +0 -65
  101. package/types/NodeResize/Control/ControlGroup.d.ts +0 -13
  102. package/types/NodeResize/Control/Util.d.ts +0 -33
  103. package/types/NodeResize/Node/DiamondResize.d.ts +0 -30
  104. package/types/NodeResize/Node/EllipseResize.d.ts +0 -30
  105. package/types/NodeResize/Node/HtmlResize.d.ts +0 -30
  106. package/types/NodeResize/Node/RectResize.d.ts +0 -32
  107. package/types/NodeResize/index.d.ts +0 -11
  108. package/types/bpmn/events/EndEvent.d.ts +0 -21
  109. package/types/bpmn/events/StartEvent.d.ts +0 -17
  110. package/types/bpmn/flow/SequenceFlow.d.ts +0 -15
  111. package/types/bpmn/gateways/ExclusiveGateway.d.ts +0 -16
  112. package/types/bpmn/getBpmnId.d.ts +0 -1
  113. package/types/bpmn/index.d.ts +0 -13
  114. package/types/bpmn/tasks/ServiceTask.d.ts +0 -17
  115. package/types/bpmn/tasks/UserTask.d.ts +0 -17
  116. package/types/bpmn-adapter/bpmnIds.d.ts +0 -1
  117. package/types/bpmn-adapter/index.d.ts +0 -63
  118. package/types/bpmn-adapter/json2xml.d.ts +0 -3
  119. package/types/components/context-menu/index.d.ts +0 -34
  120. package/types/components/control/index.d.ts +0 -26
  121. package/types/components/dnd-panel/index.d.ts +0 -25
  122. package/types/components/highlight/index.d.ts +0 -21
  123. package/types/components/menu/index.d.ts +0 -50
  124. package/types/components/mini-map/index.d.ts +0 -88
  125. package/types/components/selection-select/index.d.ts +0 -42
  126. package/types/index.d.ts +0 -19
  127. package/types/insert-node-in-polyline/edge.d.ts +0 -31
  128. package/types/insert-node-in-polyline/index.d.ts +0 -28
  129. package/types/locale/en-locale/en.d.ts +0 -19
  130. package/types/locale/en-locale/index.d.ts +0 -9
  131. package/types/locale/locale.d.ts +0 -6
  132. package/types/materials/curved-edge/index.d.ts +0 -8
  133. package/types/materials/curved-edge/searchMiddleIndex.d.ts +0 -1
  134. package/types/materials/group/GroupNode.d.ts +0 -125
  135. package/types/materials/group/index.d.ts +0 -56
  136. package/types/tools/auto-layout/index.d.ts +0 -40
  137. package/types/tools/flow-path/index.d.ts +0 -47
  138. package/types/tools/snapshot/index.d.ts +0 -25
  139. package/types/turbo-adapter/index.d.ts +0 -21
  140. package/types/type/index.d.ts +0 -6
  141. /package/{types/bpmn-adapter → es/bpmn-elements-adapter}/xml2json.d.ts +0 -0
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ extendStatics(d, b);
11
+ function __() { this.constructor = d; }
12
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13
+ };
14
+ })();
15
+ var __assign = (this && this.__assign) || function () {
16
+ __assign = Object.assign || function(t) {
17
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
18
+ s = arguments[i];
19
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20
+ t[p] = s[p];
21
+ }
22
+ return t;
23
+ };
24
+ return __assign.apply(this, arguments);
25
+ };
26
+ var __read = (this && this.__read) || function (o, n) {
27
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
28
+ if (!m) return o;
29
+ var i = m.call(o), r, ar = [], e;
30
+ try {
31
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
32
+ }
33
+ catch (error) { e = { error: error }; }
34
+ finally {
35
+ try {
36
+ if (r && !r.done && (m = i["return"])) m.call(i);
37
+ }
38
+ finally { if (e) throw e.error; }
39
+ }
40
+ return ar;
41
+ };
42
+ var __spread = (this && this.__spread) || function () {
43
+ for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
44
+ return ar;
45
+ };
46
+ Object.defineProperty(exports, "__esModule", { value: true });
47
+ exports.StartEventFactory = void 0;
48
+ /* eslint-disable @typescript-eslint/naming-convention */
49
+ var core_1 = require("@logicflow/core");
50
+ var utils_1 = require("../../utils");
51
+ function StartEventFactory(lf) {
52
+ var _a = __read(lf.useDefinition(), 1), definition = _a[0];
53
+ var view = /** @class */ (function (_super) {
54
+ __extends(view, _super);
55
+ function view() {
56
+ return _super !== null && _super.apply(this, arguments) || this;
57
+ }
58
+ view.prototype.getAnchorStyle = function () {
59
+ return {
60
+ visibility: 'hidden',
61
+ };
62
+ };
63
+ view.prototype.getShape = function () {
64
+ var _a;
65
+ // @ts-ignore
66
+ var model = this.props.model;
67
+ var style = model.getNodeStyle();
68
+ var x = model.x, y = model.y, r = model.r, width = model.width, height = model.height, properties = model.properties;
69
+ var definitionType = properties.definitionType, isInterrupting = properties.isInterrupting;
70
+ var icon = (((_a = definition.startEvent) === null || _a === void 0 ? void 0 : _a.get(definitionType)) || {}).icon;
71
+ var i = Array.isArray(icon)
72
+ ? core_1.h.apply(void 0, __spread(['g', {
73
+ transform: "matrix(1 0 0 1 " + (x - width / 2) + " " + (y - height / 2) + ")",
74
+ }], icon)) : core_1.h('path', {
75
+ transform: "matrix(1 0 0 1 " + (x - width / 2) + " " + (y - height / 2) + ")",
76
+ d: icon,
77
+ style: 'fill: white; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(34, 36, 42); stroke-width: 1px;',
78
+ });
79
+ return core_1.h('g', {}, core_1.h('circle', __assign(__assign({}, style), { cx: x, cy: y, r: r, strokeDasharray: isInterrupting ? '5,5' : '', strokeWidth: 2 })), i);
80
+ };
81
+ return view;
82
+ }(core_1.CircleNode));
83
+ var model = /** @class */ (function (_super) {
84
+ __extends(model, _super);
85
+ function model(data, graphModel) {
86
+ var _a, _b, _c;
87
+ var _this = this;
88
+ if (!data.id) {
89
+ data.id = "Event_" + utils_1.genBpmnId();
90
+ }
91
+ if (!data.text) {
92
+ data.text = '';
93
+ }
94
+ if (data.text && typeof data.text === 'string') {
95
+ data.text = {
96
+ value: data.text,
97
+ x: data.x,
98
+ y: data.y + 40,
99
+ };
100
+ }
101
+ var _d = (((_a = definition.startEvent) === null || _a === void 0 ? void 0 : _a.get((_b = data.properties) === null || _b === void 0 ? void 0 : _b.definitionType)) || {}).properties, properties = _d === void 0 ? {} : _d;
102
+ data.properties = __assign(__assign({}, properties), data.properties);
103
+ ((_c = data.properties) === null || _c === void 0 ? void 0 : _c.definitionType) && (data.properties.definitionId = "Definition_" + utils_1.genBpmnId());
104
+ _this = _super.call(this, data, graphModel) || this;
105
+ return _this;
106
+ }
107
+ model.prototype.setAttributes = function () {
108
+ this.r = 18;
109
+ };
110
+ model.prototype.getConnectedTargetRules = function () {
111
+ var _this = this;
112
+ var rules = _super.prototype.getConnectedTargetRules.call(this);
113
+ var notAsSource = {
114
+ message: '起始节点不能作为边的终点',
115
+ validate: function (_source, target) {
116
+ if (target === _this) {
117
+ return false;
118
+ }
119
+ return true;
120
+ },
121
+ };
122
+ rules.push(notAsSource);
123
+ return rules;
124
+ };
125
+ return model;
126
+ }(core_1.CircleNodeModel));
127
+ return {
128
+ type: 'bpmn:startEvent',
129
+ view: view,
130
+ model: model,
131
+ };
132
+ }
133
+ exports.StartEventFactory = StartEventFactory;
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ extendStatics(d, b);
11
+ function __() { this.constructor = d; }
12
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13
+ };
14
+ })();
15
+ var __assign = (this && this.__assign) || function () {
16
+ __assign = Object.assign || function(t) {
17
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
18
+ s = arguments[i];
19
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20
+ t[p] = s[p];
21
+ }
22
+ return t;
23
+ };
24
+ return __assign.apply(this, arguments);
25
+ };
26
+ var __read = (this && this.__read) || function (o, n) {
27
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
28
+ if (!m) return o;
29
+ var i = m.call(o), r, ar = [], e;
30
+ try {
31
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
32
+ }
33
+ catch (error) { e = { error: error }; }
34
+ finally {
35
+ try {
36
+ if (r && !r.done && (m = i["return"])) m.call(i);
37
+ }
38
+ finally { if (e) throw e.error; }
39
+ }
40
+ return ar;
41
+ };
42
+ var __spread = (this && this.__spread) || function () {
43
+ for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
44
+ return ar;
45
+ };
46
+ Object.defineProperty(exports, "__esModule", { value: true });
47
+ exports.BoundaryEventFactory = void 0;
48
+ /* eslint-disable max-len */
49
+ /* eslint-disable @typescript-eslint/naming-convention */
50
+ var core_1 = require("@logicflow/core");
51
+ var utils_1 = require("../../utils");
52
+ function BoundaryEventFactory(lf) {
53
+ var _a = __read(lf.useDefinition(), 1), definition = _a[0];
54
+ var view = /** @class */ (function (_super) {
55
+ __extends(view, _super);
56
+ function view() {
57
+ return _super !== null && _super.apply(this, arguments) || this;
58
+ }
59
+ view.prototype.getAnchorStyle = function () {
60
+ return {
61
+ visibility: 'hidden',
62
+ };
63
+ };
64
+ view.prototype.getShape = function () {
65
+ var _a;
66
+ // @ts-ignore
67
+ var model = this.props.model;
68
+ var style = model.getNodeStyle();
69
+ var x = model.x, y = model.y, r = model.r, width = model.width, height = model.height, properties = model.properties;
70
+ var definitionType = properties.definitionType, cancelActivity = properties.cancelActivity;
71
+ var icon = (((_a = definition.boundaryEvent) === null || _a === void 0 ? void 0 : _a.get(definitionType)) || {}).icon;
72
+ var i = Array.isArray(icon)
73
+ ? core_1.h.apply(void 0, __spread(['g', {
74
+ transform: "matrix(1 0 0 1 " + (x - width / 2) + " " + (y - height / 2) + ")",
75
+ }], icon)) : core_1.h('path', {
76
+ transform: "matrix(1 0 0 1 " + (x - width / 2) + " " + (y - height / 2) + ")",
77
+ d: icon,
78
+ });
79
+ return core_1.h('g', {}, core_1.h('circle', __assign(__assign({}, style), { cx: x, cy: y, r: r, strokeDasharray: cancelActivity ? '5,5' : '', strokeWidth: 1.5 })), core_1.h('circle', __assign(__assign({}, style), { cx: x, cy: y, r: r - 3, strokeDasharray: cancelActivity ? '5,5' : '', strokeWidth: 1.5 })), i);
80
+ };
81
+ return view;
82
+ }(core_1.CircleNode));
83
+ var model = /** @class */ (function (_super) {
84
+ __extends(model, _super);
85
+ function model(data, graphModel) {
86
+ var _a, _b, _c;
87
+ var _this = this;
88
+ if (!data.id) {
89
+ data.id = "Event_" + utils_1.genBpmnId();
90
+ }
91
+ if (!data.text) {
92
+ data.text = '';
93
+ }
94
+ if (data.text && typeof data.text === 'string') {
95
+ data.text = {
96
+ value: data.text,
97
+ x: data.x,
98
+ y: data.y + 40,
99
+ };
100
+ }
101
+ var _d = (((_a = definition.boundaryEvent) === null || _a === void 0 ? void 0 : _a.get((_b = data.properties) === null || _b === void 0 ? void 0 : _b.definitionType)) || {}).properties, properties = _d === void 0 ? {} : _d;
102
+ data.properties = __assign(__assign({ attachedToRef: '', cancelActivity: false }, properties), data.properties);
103
+ ((_c = data.properties) === null || _c === void 0 ? void 0 : _c.definitionType) && (data.properties.definitionId = "Definition_" + utils_1.genBpmnId());
104
+ _this = _super.call(this, data, graphModel) || this;
105
+ utils_1.groupRule.call(_this);
106
+ return _this;
107
+ }
108
+ model.prototype.initNodeData = function (data) {
109
+ _super.prototype.initNodeData.call(this, data);
110
+ this.r = 20;
111
+ this.autoToFront = false; // 不自动设置到最顶部,而是使用自己的zIndex
112
+ this.zIndex = 99999; // 保证边界事件节点用于在最上方
113
+ };
114
+ model.prototype.setAttributes = function () {
115
+ this.r = 18;
116
+ };
117
+ return model;
118
+ }(core_1.CircleNodeModel));
119
+ return {
120
+ type: 'bpmn:boundaryEvent',
121
+ view: view,
122
+ model: model,
123
+ };
124
+ }
125
+ exports.BoundaryEventFactory = BoundaryEventFactory;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerEventNodes = void 0;
4
+ var EndEventFactory_1 = require("./EndEventFactory");
5
+ var IntermediateCatchEvent_1 = require("./IntermediateCatchEvent");
6
+ var StartEventFactory_1 = require("./StartEventFactory");
7
+ var boundaryEventFactory_1 = require("./boundaryEventFactory");
8
+ var IntermediateThrowEvent_1 = require("./IntermediateThrowEvent");
9
+ function registerEventNodes(lf) {
10
+ lf.register(StartEventFactory_1.StartEventFactory(lf));
11
+ lf.register(EndEventFactory_1.EndEventFactory(lf));
12
+ lf.register(IntermediateCatchEvent_1.IntermediateCatchEventFactory(lf));
13
+ lf.register(IntermediateThrowEvent_1.IntermediateThrowEventFactory(lf));
14
+ lf.register(boundaryEventFactory_1.BoundaryEventFactory(lf));
15
+ }
16
+ exports.registerEventNodes = registerEventNodes;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerFlows = exports.SequenceFlow = void 0;
4
+ var sequenceFlow_1 = require("./sequenceFlow");
5
+ exports.SequenceFlow = sequenceFlow_1.sequenceFlowFactory();
6
+ function registerFlows(lf) {
7
+ lf.register(exports.SequenceFlow);
8
+ }
9
+ exports.registerFlows = registerFlows;
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ extendStatics(d, b);
11
+ function __() { this.constructor = d; }
12
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13
+ };
14
+ })();
15
+ var __assign = (this && this.__assign) || function () {
16
+ __assign = Object.assign || function(t) {
17
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
18
+ s = arguments[i];
19
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20
+ t[p] = s[p];
21
+ }
22
+ return t;
23
+ };
24
+ return __assign.apply(this, arguments);
25
+ };
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.sequenceFlowFactory = void 0;
28
+ /* eslint-disable @typescript-eslint/naming-convention */
29
+ var core_1 = require("@logicflow/core");
30
+ var utils_1 = require("../../utils");
31
+ function sequenceFlowFactory(props) {
32
+ var model = /** @class */ (function (_super) {
33
+ __extends(model, _super);
34
+ function model(data, graphModel) {
35
+ var _this = this;
36
+ if (!data.id) {
37
+ data.id = "Flow_" + utils_1.genBpmnId();
38
+ }
39
+ var properties = __assign(__assign(__assign({}, (props || {})), data.properties), {
40
+ // panels: ['condition'],
41
+ isDefaultFlow: false });
42
+ data.properties = properties;
43
+ _this = _super.call(this, data, graphModel) || this;
44
+ return _this;
45
+ }
46
+ model.extendKey = 'SequenceFlowModel';
47
+ return model;
48
+ }(core_1.PolylineEdgeModel));
49
+ var view = /** @class */ (function (_super) {
50
+ __extends(view, _super);
51
+ function view() {
52
+ return _super !== null && _super.apply(this, arguments) || this;
53
+ }
54
+ view.prototype.getStartArrow = function () {
55
+ // eslint-disable-next-line no-shadow
56
+ var model = this.props.model;
57
+ var isDefaultFlow = model.properties.isDefaultFlow;
58
+ return isDefaultFlow
59
+ ? core_1.h('path', {
60
+ refX: 15,
61
+ stroke: '#000000',
62
+ strokeWidth: 2,
63
+ d: 'M 20 5 10 -5 z',
64
+ })
65
+ : core_1.h('path', {
66
+ d: '',
67
+ });
68
+ };
69
+ view.extendKey = 'SequenceFlowEdge';
70
+ return view;
71
+ }(core_1.PolylineEdge));
72
+ return {
73
+ type: 'bpmn:sequenceFlow',
74
+ view: view,
75
+ model: model,
76
+ };
77
+ }
78
+ exports.sequenceFlowFactory = sequenceFlowFactory;
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ extendStatics(d, b);
11
+ function __() { this.constructor = d; }
12
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13
+ };
14
+ })();
15
+ var __assign = (this && this.__assign) || function () {
16
+ __assign = Object.assign || function(t) {
17
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
18
+ s = arguments[i];
19
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20
+ t[p] = s[p];
21
+ }
22
+ return t;
23
+ };
24
+ return __assign.apply(this, arguments);
25
+ };
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.GatewayNodeFactory = exports.gatewayComposable = void 0;
28
+ /* eslint-disable @typescript-eslint/naming-convention */
29
+ var core_1 = require("@logicflow/core");
30
+ var utils_1 = require("../../utils");
31
+ var gateway = {
32
+ exclusive: 0,
33
+ inclusive: 1,
34
+ parallel: 2,
35
+ };
36
+ /**
37
+ * index 0 排他网关
38
+ * index 1 包容网关
39
+ * index 2 并行网关
40
+ */
41
+ exports.gatewayComposable = [
42
+ [1, 1, 0],
43
+ [0, 0, 1],
44
+ [0, 1, 1],
45
+ ];
46
+ /**
47
+ * @param type 网关节点的type, 对应其XML定义中的节点名,如<bpmn:inclusiveGateway /> 其type为bpmn:inclusiveGateway
48
+ * @param icon 网关节点左上角的图标,可以是svg path,也可以是h函数生成的svg
49
+ * @param props (可选) 网关节点的属性
50
+ * @returns { type: string, model: any, view: any }
51
+ */
52
+ function GatewayNodeFactory(type, icon, props) {
53
+ var view = /** @class */ (function (_super) {
54
+ __extends(view, _super);
55
+ function view() {
56
+ return _super !== null && _super.apply(this, arguments) || this;
57
+ }
58
+ view.prototype.getShape = function () {
59
+ // @ts-ignore
60
+ var model = this.props.model;
61
+ var x = model.x, y = model.y, width = model.width, height = model.height, points = model.points;
62
+ var style = model.getNodeStyle();
63
+ return core_1.h('g', {
64
+ transform: "matrix(1 0 0 1 " + (x - width / 2) + " " + (y - height / 2) + ")",
65
+ }, core_1.h('polygon', __assign(__assign({}, style), { x: x,
66
+ y: y,
67
+ points: points })), typeof icon === 'string'
68
+ ? core_1.h('path', __assign(__assign({ d: icon }, style), { fill: 'rgb(34, 36, 42)', strokeWidth: 1 }))
69
+ : icon);
70
+ };
71
+ return view;
72
+ }(core_1.PolygonNode));
73
+ var model = /** @class */ (function (_super) {
74
+ __extends(model, _super);
75
+ function model(data, graphModel) {
76
+ var _this = this;
77
+ if (!data.id) {
78
+ data.id = "Gateway_" + utils_1.genBpmnId();
79
+ }
80
+ if (!data.text) {
81
+ data.text = '';
82
+ }
83
+ if (data.text && typeof data.text === 'string') {
84
+ data.text = {
85
+ value: data.text,
86
+ x: data.x,
87
+ y: data.y + 40,
88
+ };
89
+ }
90
+ data.properties = __assign(__assign({}, (props || {})), data.properties);
91
+ _this = _super.call(this, data, graphModel) || this;
92
+ _this.points = [
93
+ [25, 0],
94
+ [50, 25],
95
+ [25, 50],
96
+ [0, 25],
97
+ ];
98
+ utils_1.groupRule.call(_this);
99
+ return _this;
100
+ }
101
+ return model;
102
+ }(core_1.PolygonNodeModel));
103
+ return {
104
+ type: type,
105
+ view: view,
106
+ model: model,
107
+ };
108
+ }
109
+ exports.GatewayNodeFactory = GatewayNodeFactory;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerGatewayNodes = void 0;
4
+ var icons_1 = require("../icons");
5
+ var gateway_1 = require("./gateway");
6
+ function registerGatewayNodes(lf) {
7
+ var ExclusiveGateway = gateway_1.GatewayNodeFactory('bpmn:exclusiveGateway', icons_1.exclusiveIcon);
8
+ var ParallelGateway = gateway_1.GatewayNodeFactory('bpmn:parallelGateway', icons_1.parallelIcon);
9
+ var InclusiveGateway = gateway_1.GatewayNodeFactory('bpmn:inclusiveGateway', icons_1.inclusiveIcon);
10
+ lf.register(ExclusiveGateway);
11
+ lf.register(InclusiveGateway);
12
+ lf.register(ParallelGateway);
13
+ }
14
+ exports.registerGatewayNodes = registerGatewayNodes;
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ var __values = (this && this.__values) || function(o) {
3
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
4
+ if (m) return m.call(o);
5
+ if (o && typeof o.length === "number") return {
6
+ next: function () {
7
+ if (o && i >= o.length) o = void 0;
8
+ return { value: o && o[i++], done: !o };
9
+ }
10
+ };
11
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.registerTaskNodes = void 0;
15
+ var icons_1 = require("../icons");
16
+ var task_1 = require("./task");
17
+ var subProcess_1 = require("./subProcess");
18
+ function boundaryEvent(lf) {
19
+ lf.on('node:drag,node:dnd-drag', checkAppendBoundaryEvent);
20
+ lf.on('node:drop,node:dnd-add', appendBoundaryEvent);
21
+ lf.graphModel.addNodeMoveRules(function (model, deltaX, deltaY) {
22
+ if (model.isTaskNode) {
23
+ // 如果移动的是分组,那么分组的子节点也跟着移动。
24
+ var nodeIds = model.boundaryEvents;
25
+ lf.graphModel.moveNodes(nodeIds, deltaX, deltaY, true);
26
+ return true;
27
+ }
28
+ return true;
29
+ });
30
+ function appendBoundaryEvent(_a) {
31
+ var e_1, _b;
32
+ var data = _a.data;
33
+ var type = data.type, id = data.id;
34
+ if (type !== 'bpmn:boundaryEvent') {
35
+ return;
36
+ }
37
+ var nodes = lf.graphModel.nodes;
38
+ try {
39
+ for (var nodes_1 = __values(nodes), nodes_1_1 = nodes_1.next(); !nodes_1_1.done; nodes_1_1 = nodes_1.next()) {
40
+ var node = nodes_1_1.value;
41
+ if (node.isTaskNode) {
42
+ var nodeId = null;
43
+ if ((nodeId = isBoundaryEventCloseToTask(node, data)) !== null) {
44
+ var eventModel = lf.graphModel.getNodeModelById(id);
45
+ var nodeModel = lf.graphModel.getNodeModelById(nodeId);
46
+ var attachedToRef = eventModel.properties.attachedToRef;
47
+ if (attachedToRef && attachedToRef !== nodeId) {
48
+ lf.graphModel.getNodeModelById(attachedToRef).deleteBoundaryEvent(id);
49
+ }
50
+ nodeModel.addBoundaryEvent(id);
51
+ return;
52
+ }
53
+ }
54
+ }
55
+ }
56
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
57
+ finally {
58
+ try {
59
+ if (nodes_1_1 && !nodes_1_1.done && (_b = nodes_1.return)) _b.call(nodes_1);
60
+ }
61
+ finally { if (e_1) throw e_1.error; }
62
+ }
63
+ }
64
+ // 判断此节点是否在某个节点的边界上
65
+ // 如果在,且这个节点model存在属性isTaskNode,则调用这个方法
66
+ function checkAppendBoundaryEvent(_a) {
67
+ var e_2, _b;
68
+ var data = _a.data;
69
+ var type = data.type;
70
+ if (type !== 'bpmn:boundaryEvent') {
71
+ return;
72
+ }
73
+ var nodes = lf.graphModel.nodes;
74
+ try {
75
+ for (var nodes_2 = __values(nodes), nodes_2_1 = nodes_2.next(); !nodes_2_1.done; nodes_2_1 = nodes_2.next()) {
76
+ var node = nodes_2_1.value;
77
+ if (node.isTaskNode) {
78
+ if (isBoundaryEventCloseToTask(node, data)) {
79
+ // 同时只允许在一个节点的边界上
80
+ node.setTouching(true);
81
+ }
82
+ else {
83
+ node.setTouching(false);
84
+ }
85
+ }
86
+ }
87
+ }
88
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
89
+ finally {
90
+ try {
91
+ if (nodes_2_1 && !nodes_2_1.done && (_b = nodes_2.return)) _b.call(nodes_2);
92
+ }
93
+ finally { if (e_2) throw e_2.error; }
94
+ }
95
+ }
96
+ function isBoundaryEventCloseToTask(task, event) {
97
+ var offset = 5;
98
+ var tx = task.x, ty = task.y, twidth = task.width, theight = task.height, id = task.id;
99
+ var bbox = {
100
+ minX: tx - twidth / 2,
101
+ maxX: tx + twidth / 2,
102
+ minY: ty - theight / 2,
103
+ maxY: ty + theight / 2,
104
+ };
105
+ var bx = event.x, by = event.y;
106
+ var outerBBox = {
107
+ minX: bbox.minX - offset,
108
+ maxX: bbox.maxX + offset,
109
+ minY: bbox.minY - offset,
110
+ maxY: bbox.maxY + offset,
111
+ };
112
+ var innerBBox = {
113
+ minX: bbox.minX + offset,
114
+ maxX: bbox.maxX - offset,
115
+ minY: bbox.minY + offset,
116
+ maxY: bbox.maxX - offset,
117
+ };
118
+ if (bx > outerBBox.minX && bx < outerBBox.maxX && by > outerBBox.minY && by < outerBBox.maxY) {
119
+ if (!(bx > innerBBox.minX && bx < innerBBox.maxX && by > innerBBox.minY && by < innerBBox.maxY)) {
120
+ return id;
121
+ }
122
+ }
123
+ return null;
124
+ }
125
+ }
126
+ function registerTaskNodes(lf) {
127
+ var ServiceTask = task_1.TaskNodeFactory('bpmn:serviceTask', icons_1.serviceTaskIcon);
128
+ var UserTask = task_1.TaskNodeFactory('bpmn:userTask', icons_1.userTaskIcon);
129
+ lf.register(ServiceTask);
130
+ lf.register(UserTask);
131
+ lf.register(subProcess_1.SubProcessFactory());
132
+ boundaryEvent(lf);
133
+ }
134
+ exports.registerTaskNodes = registerTaskNodes;