@logicflow/extension 1.2.10 → 1.2.12

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 (136) hide show
  1. package/CHANGELOG.md +1745 -0
  2. package/cjs/bpmn/getBpmnId.js +25 -2
  3. package/cjs/bpmn-adapter/bpmnIds.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/index.js +3 -1
  25. package/cjs/materials/group/index.js +16 -7
  26. package/cjs/tools/snapshot/index.js +14 -0
  27. package/es/bpmn/getBpmnId.js +25 -2
  28. package/es/bpmn-adapter/bpmnIds.js +25 -2
  29. package/es/bpmn-elements/index.d.ts +16 -0
  30. package/es/bpmn-elements/index.js +88 -0
  31. package/es/bpmn-elements/presets/Event/EndEventFactory.d.ts +5 -0
  32. package/es/bpmn-elements/presets/Event/EndEventFactory.js +130 -0
  33. package/es/bpmn-elements/presets/Event/IntermediateCatchEvent.d.ts +5 -0
  34. package/es/bpmn-elements/presets/Event/IntermediateCatchEvent.js +114 -0
  35. package/es/bpmn-elements/presets/Event/IntermediateThrowEvent.d.ts +5 -0
  36. package/es/bpmn-elements/presets/Event/IntermediateThrowEvent.js +115 -0
  37. package/es/bpmn-elements/presets/Event/StartEventFactory.d.ts +5 -0
  38. package/es/bpmn-elements/presets/Event/StartEventFactory.js +129 -0
  39. package/es/bpmn-elements/presets/Event/boundaryEventFactory.d.ts +5 -0
  40. package/es/bpmn-elements/presets/Event/boundaryEventFactory.js +121 -0
  41. package/es/bpmn-elements/presets/Event/index.d.ts +2 -0
  42. package/es/bpmn-elements/presets/Event/index.js +12 -0
  43. package/es/bpmn-elements/presets/Flow/index.d.ts +7 -0
  44. package/es/bpmn-elements/presets/Flow/index.js +5 -0
  45. package/es/bpmn-elements/presets/Flow/sequenceFlow.d.ts +5 -0
  46. package/es/bpmn-elements/presets/Flow/sequenceFlow.js +74 -0
  47. package/es/bpmn-elements/presets/Gateway/gateway.d.ts +17 -0
  48. package/es/bpmn-elements/presets/Gateway/gateway.js +105 -0
  49. package/es/bpmn-elements/presets/Gateway/index.d.ts +2 -0
  50. package/es/bpmn-elements/presets/Gateway/index.js +10 -0
  51. package/es/bpmn-elements/presets/Task/index.d.ts +2 -0
  52. package/es/bpmn-elements/presets/Task/index.js +130 -0
  53. package/es/bpmn-elements/presets/Task/subProcess.d.ts +5 -0
  54. package/es/bpmn-elements/presets/Task/subProcess.js +186 -0
  55. package/es/bpmn-elements/presets/Task/task.d.ts +12 -0
  56. package/es/bpmn-elements/presets/Task/task.js +186 -0
  57. package/es/bpmn-elements/presets/icons.d.ts +25 -0
  58. package/es/bpmn-elements/presets/icons.js +113 -0
  59. package/es/bpmn-elements/utils.d.ts +2 -0
  60. package/es/bpmn-elements/utils.js +40 -0
  61. package/{types/bpmn → es/bpmn-elements-adapter}/constant.d.ts +20 -0
  62. package/es/bpmn-elements-adapter/constant.js +66 -0
  63. package/es/bpmn-elements-adapter/index.d.ts +103 -0
  64. package/es/bpmn-elements-adapter/index.js +1060 -0
  65. package/es/bpmn-elements-adapter/json2xml.d.ts +3 -0
  66. package/es/bpmn-elements-adapter/json2xml.js +87 -0
  67. package/es/bpmn-elements-adapter/xml2json.js +551 -0
  68. package/es/index.d.ts +3 -1
  69. package/es/index.js +3 -1
  70. package/es/materials/group/index.js +16 -7
  71. package/es/tools/snapshot/index.js +14 -0
  72. package/lib/AutoLayout.js +1 -1
  73. package/lib/BpmnAdapter.js +1 -1
  74. package/lib/BpmnElement.js +1 -1
  75. package/lib/ContextMenu.js +1 -1
  76. package/lib/Control.js +1 -1
  77. package/lib/CurvedEdge.js +1 -1
  78. package/lib/DndPanel.js +1 -1
  79. package/lib/FlowPath.js +1 -1
  80. package/lib/Group.js +1 -1
  81. package/lib/Highlight.js +1 -1
  82. package/lib/InsertNodeInPolyline.js +1 -1
  83. package/lib/Menu.js +1 -1
  84. package/lib/MiniMap.js +1 -1
  85. package/lib/NodeResize.js +1 -1
  86. package/lib/RectLabelNode.js +1 -1
  87. package/lib/SelectionSelect.js +1 -1
  88. package/lib/Snapshot.js +1 -1
  89. package/lib/TurboAdapter.js +1 -1
  90. package/lib/lfJson2Xml.js +1 -1
  91. package/lib/lfXml2Json.js +1 -1
  92. package/package.json +3 -4
  93. package/types/NodeResize/BasicShape/Polygon.d.ts +0 -10
  94. package/types/NodeResize/BasicShape/Rect.d.ts +0 -17
  95. package/types/NodeResize/Control/Control.d.ts +0 -66
  96. package/types/NodeResize/Control/ControlGroup.d.ts +0 -13
  97. package/types/NodeResize/Control/Util.d.ts +0 -33
  98. package/types/NodeResize/Node/DiamondResize.d.ts +0 -30
  99. package/types/NodeResize/Node/EllipseResize.d.ts +0 -30
  100. package/types/NodeResize/Node/HtmlResize.d.ts +0 -30
  101. package/types/NodeResize/Node/RectResize.d.ts +0 -32
  102. package/types/NodeResize/index.d.ts +0 -11
  103. package/types/bpmn/events/EndEvent.d.ts +0 -21
  104. package/types/bpmn/events/StartEvent.d.ts +0 -17
  105. package/types/bpmn/flow/SequenceFlow.d.ts +0 -15
  106. package/types/bpmn/gateways/ExclusiveGateway.d.ts +0 -16
  107. package/types/bpmn/getBpmnId.d.ts +0 -1
  108. package/types/bpmn/index.d.ts +0 -13
  109. package/types/bpmn/tasks/ServiceTask.d.ts +0 -17
  110. package/types/bpmn/tasks/UserTask.d.ts +0 -17
  111. package/types/bpmn-adapter/bpmnIds.d.ts +0 -1
  112. package/types/bpmn-adapter/index.d.ts +0 -63
  113. package/types/bpmn-adapter/json2xml.d.ts +0 -3
  114. package/types/components/context-menu/index.d.ts +0 -34
  115. package/types/components/control/index.d.ts +0 -26
  116. package/types/components/dnd-panel/index.d.ts +0 -25
  117. package/types/components/highlight/index.d.ts +0 -21
  118. package/types/components/menu/index.d.ts +0 -50
  119. package/types/components/mini-map/index.d.ts +0 -88
  120. package/types/components/selection-select/index.d.ts +0 -42
  121. package/types/index.d.ts +0 -19
  122. package/types/insert-node-in-polyline/edge.d.ts +0 -31
  123. package/types/insert-node-in-polyline/index.d.ts +0 -28
  124. package/types/locale/en-locale/en.d.ts +0 -19
  125. package/types/locale/en-locale/index.d.ts +0 -9
  126. package/types/locale/locale.d.ts +0 -6
  127. package/types/materials/curved-edge/index.d.ts +0 -8
  128. package/types/materials/curved-edge/searchMiddleIndex.d.ts +0 -1
  129. package/types/materials/group/GroupNode.d.ts +0 -125
  130. package/types/materials/group/index.d.ts +0 -56
  131. package/types/tools/auto-layout/index.d.ts +0 -40
  132. package/types/tools/flow-path/index.d.ts +0 -47
  133. package/types/tools/snapshot/index.d.ts +0 -25
  134. package/types/turbo-adapter/index.d.ts +0 -21
  135. package/types/type/index.d.ts +0 -6
  136. /package/{types/bpmn-adapter → es/bpmn-elements-adapter}/xml2json.d.ts +0 -0
@@ -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: true }, 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;
@@ -0,0 +1,190 @@
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.SubProcessFactory = void 0;
28
+ /* eslint-disable no-shadow */
29
+ /* eslint-disable @typescript-eslint/naming-convention */
30
+ var core_1 = require("@logicflow/core");
31
+ var index_1 = require("../../../materials/group/index");
32
+ function SubProcessFactory() {
33
+ var view = /** @class */ (function (_super) {
34
+ __extends(view, _super);
35
+ function view() {
36
+ return _super !== null && _super.apply(this, arguments) || this;
37
+ }
38
+ view.prototype.getFoldIcon = function () {
39
+ var model = this.props.model;
40
+ var x = model.x, y = model.y, width = model.width, height = model.height, properties = model.properties, foldable = model.foldable;
41
+ var foldX = model.x - model.width / 2 + 5;
42
+ var foldY = model.y - model.height / 2 + 5;
43
+ if (!foldable)
44
+ return null;
45
+ var iconIcon = core_1.h('path', {
46
+ fill: 'none',
47
+ stroke: '#818281',
48
+ strokeWidth: 2,
49
+ 'pointer-events': 'none',
50
+ d: properties.isFolded
51
+ ? "M " + (foldX + 3) + "," + (foldY + 6) + " " + (foldX + 11) + "," + (foldY + 6) + " M" + (foldX + 7) + "," + (foldY + 2) + " " + (foldX + 7) + "," + (foldY + 10)
52
+ : "M " + (foldX + 3) + "," + (foldY + 6) + " " + (foldX + 11) + "," + (foldY + 6) + " ",
53
+ });
54
+ return core_1.h('g', {}, [
55
+ core_1.h('rect', {
56
+ height: 12,
57
+ width: 14,
58
+ rx: 2,
59
+ ry: 2,
60
+ strokeWidth: 1,
61
+ fill: '#F4F5F6',
62
+ stroke: '#CECECE',
63
+ cursor: 'pointer',
64
+ x: x - width / 2 + 5,
65
+ y: y - height / 2 + 5,
66
+ onClick: function (e) {
67
+ e.stopPropagation();
68
+ model.foldGroup(!properties.isFolded);
69
+ },
70
+ }),
71
+ iconIcon,
72
+ ]);
73
+ };
74
+ view.prototype.getResizeShape = function () {
75
+ var model = this.props.model;
76
+ var x = model.x, y = model.y, width = model.width, height = model.height;
77
+ var style = model.getNodeStyle();
78
+ var foldRectAttrs = __assign(__assign({}, style), { x: x - width / 2, y: y - height / 2, width: width,
79
+ height: height, stroke: 'black', strokeWidth: 2, strokeDasharray: '0 0' });
80
+ return core_1.h('g', {}, [
81
+ // this.getAddAbleShape(),
82
+ core_1.h('rect', __assign({}, foldRectAttrs)),
83
+ this.getFoldIcon(),
84
+ ]);
85
+ };
86
+ return view;
87
+ }(index_1.GroupNode.view));
88
+ var model = /** @class */ (function (_super) {
89
+ __extends(model, _super);
90
+ function model() {
91
+ return _super !== null && _super.apply(this, arguments) || this;
92
+ }
93
+ model.prototype.initNodeData = function (data) {
94
+ _super.prototype.initNodeData.call(this, data);
95
+ this.foldable = true;
96
+ // this.isFolded = true;
97
+ this.resizable = true;
98
+ this.width = 400;
99
+ this.height = 200;
100
+ // 根据 properties中的配置重设 宽高
101
+ this.resetWidthHeight();
102
+ this.isTaskNode = true; // 标识此节点是任务节点,可以被附件边界事件
103
+ this.boundaryEvents = []; // 记录自己附加的边界事件
104
+ };
105
+ // 自定义根据properties.iniProp
106
+ model.prototype.resetWidthHeight = function () {
107
+ var _a, _b;
108
+ var width = (_a = this.properties.iniProp) === null || _a === void 0 ? void 0 : _a.width;
109
+ var height = (_b = this.properties.iniProp) === null || _b === void 0 ? void 0 : _b.height;
110
+ width && (this.width = width);
111
+ height && (this.height = height);
112
+ };
113
+ model.prototype.getNodeStyle = function () {
114
+ var style = _super.prototype.getNodeStyle.call(this);
115
+ style.stroke = '#989891';
116
+ style.strokeWidth = 1;
117
+ style.strokeDasharray = '3 3';
118
+ if (this.isSelected) {
119
+ style.stroke = 'rgb(124, 15, 255)';
120
+ }
121
+ // isBoundaryEventTouchingTask属性用于标识拖动边界节点是否靠近此节点
122
+ // 如果靠近,则高亮提示
123
+ // style.fill = 'rgb(255, 230, 204)';
124
+ var isBoundaryEventTouchingTask = this.properties.isBoundaryEventTouchingTask;
125
+ if (isBoundaryEventTouchingTask) {
126
+ style.stroke = '#00acff';
127
+ style.strokeWidth = 2;
128
+ }
129
+ return style;
130
+ };
131
+ model.prototype.addChild = function (id) {
132
+ var model = this.graphModel.getElement(id);
133
+ model.setProperties({
134
+ parent: this.id,
135
+ });
136
+ _super.prototype.addChild.call(this, id);
137
+ };
138
+ // 隐藏锚点而不是设置锚点数为0
139
+ // 因为分组内部节点与外部节点相连时,
140
+ // 如果折叠分组,需要分组代替内部节点与外部节点相连。
141
+ model.prototype.getAnchorStyle = function () {
142
+ var style = _super.prototype.getAnchorStyle.call(this, {});
143
+ style.stroke = '#000';
144
+ style.fill = '#fff';
145
+ style.hover.stroke = 'transparent';
146
+ return style;
147
+ };
148
+ model.prototype.getOutlineStyle = function () {
149
+ var style = _super.prototype.getOutlineStyle.call(this);
150
+ style.stroke = 'transparent';
151
+ !style.hover && (style.hover = {});
152
+ style.hover.stroke = 'transparent';
153
+ return style;
154
+ };
155
+ /**
156
+ * 提供方法给插件在判断此节点被拖动边界事件节点靠近时调用,从而触发高亮
157
+ */
158
+ model.prototype.setTouching = function (flag) {
159
+ this.setProperty('isBoundaryEventTouchingTask', flag);
160
+ };
161
+ /**
162
+ * 附加后记录被附加的边界事件节点Id
163
+ */
164
+ model.prototype.addBoundaryEvent = function (nodeId) {
165
+ this.setTouching(false);
166
+ if (this.boundaryEvents.find(function (item) { return item === nodeId; })) {
167
+ return false;
168
+ }
169
+ var boundaryEvent = this.graphModel.getNodeModelById(nodeId);
170
+ boundaryEvent === null || boundaryEvent === void 0 ? void 0 : boundaryEvent.setProperties({
171
+ attachedToRef: this.id,
172
+ });
173
+ this.boundaryEvents.push(nodeId);
174
+ return true;
175
+ };
176
+ /**
177
+ * 被附加的边界事件节点被删除时,移除记录
178
+ */
179
+ model.prototype.deleteBoundaryEvent = function (nodeId) {
180
+ this.boundaryEvents = this.boundaryEvents.filter(function (item) { return item !== nodeId; });
181
+ };
182
+ return model;
183
+ }(index_1.GroupNode.model));
184
+ return {
185
+ type: 'bpmn:subProcess',
186
+ view: view,
187
+ model: model,
188
+ };
189
+ }
190
+ exports.SubProcessFactory = SubProcessFactory;