@aranzatech/diagrams-bpmn 0.1.0

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 (53) hide show
  1. package/dist/chunk-23B2IGK5.js +24 -0
  2. package/dist/chunk-23B2IGK5.js.map +1 -0
  3. package/dist/chunk-3AFZDIMQ.js +286 -0
  4. package/dist/chunk-3AFZDIMQ.js.map +1 -0
  5. package/dist/chunk-4OAEWYYU.js +579 -0
  6. package/dist/chunk-4OAEWYYU.js.map +1 -0
  7. package/dist/chunk-57LA2WSJ.js +476 -0
  8. package/dist/chunk-57LA2WSJ.js.map +1 -0
  9. package/dist/chunk-6TUC5QX5.js +491 -0
  10. package/dist/chunk-6TUC5QX5.js.map +1 -0
  11. package/dist/chunk-MLUJKUTG.js +86 -0
  12. package/dist/chunk-MLUJKUTG.js.map +1 -0
  13. package/dist/chunk-NXMUX67A.js +1443 -0
  14. package/dist/chunk-NXMUX67A.js.map +1 -0
  15. package/dist/edges/index.cjs +300 -0
  16. package/dist/edges/index.cjs.map +1 -0
  17. package/dist/edges/index.d.cts +17 -0
  18. package/dist/edges/index.d.ts +17 -0
  19. package/dist/edges/index.js +4 -0
  20. package/dist/edges/index.js.map +1 -0
  21. package/dist/elements/index.cjs +587 -0
  22. package/dist/elements/index.cjs.map +1 -0
  23. package/dist/elements/index.d.cts +20 -0
  24. package/dist/elements/index.d.ts +20 -0
  25. package/dist/elements/index.js +4 -0
  26. package/dist/elements/index.js.map +1 -0
  27. package/dist/index.cjs +3442 -0
  28. package/dist/index.cjs.map +1 -0
  29. package/dist/index.d.cts +67 -0
  30. package/dist/index.d.ts +67 -0
  31. package/dist/index.js +45 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/nodes/index.cjs +1487 -0
  34. package/dist/nodes/index.cjs.map +1 -0
  35. package/dist/nodes/index.d.cts +45 -0
  36. package/dist/nodes/index.d.ts +45 -0
  37. package/dist/nodes/index.js +4 -0
  38. package/dist/nodes/index.js.map +1 -0
  39. package/dist/simulation/index.cjs +483 -0
  40. package/dist/simulation/index.cjs.map +1 -0
  41. package/dist/simulation/index.d.cts +62 -0
  42. package/dist/simulation/index.d.ts +62 -0
  43. package/dist/simulation/index.js +3 -0
  44. package/dist/simulation/index.js.map +1 -0
  45. package/dist/types-CxzazgBX.d.cts +111 -0
  46. package/dist/types-CxzazgBX.d.ts +111 -0
  47. package/dist/xml/index.cjs +1068 -0
  48. package/dist/xml/index.cjs.map +1 -0
  49. package/dist/xml/index.d.cts +24 -0
  50. package/dist/xml/index.d.ts +24 -0
  51. package/dist/xml/index.js +4 -0
  52. package/dist/xml/index.js.map +1 -0
  53. package/package.json +84 -0
@@ -0,0 +1,1443 @@
1
+ import { BPMN_THEME, resolveStroke, resolveStrokeWidth } from './chunk-23B2IGK5.js';
2
+ import { Position, Handle } from '@xyflow/react';
3
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
4
+
5
+ var ALL_POSITIONS = [
6
+ Position.Top,
7
+ Position.Right,
8
+ Position.Bottom,
9
+ Position.Left
10
+ ];
11
+ var HANDLE_STYLE = {
12
+ width: 8,
13
+ height: 8,
14
+ background: "#8c8c8c",
15
+ border: "1.5px solid #fff"
16
+ };
17
+ function BpmnHandles({ variant = "all" }) {
18
+ const src = variant === "all" || variant === "source";
19
+ const tgt = variant === "all" || variant === "target";
20
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
21
+ tgt && ALL_POSITIONS.map((position) => /* @__PURE__ */ jsx(
22
+ Handle,
23
+ {
24
+ type: "target",
25
+ position,
26
+ id: `target-${position}`,
27
+ style: HANDLE_STYLE
28
+ },
29
+ `target-${position}`
30
+ )),
31
+ src && ALL_POSITIONS.map((position) => /* @__PURE__ */ jsx(
32
+ Handle,
33
+ {
34
+ type: "source",
35
+ position,
36
+ id: `source-${position}`,
37
+ style: HANDLE_STYLE
38
+ },
39
+ `source-${position}`
40
+ ))
41
+ ] });
42
+ }
43
+ var EXTERNAL_STYLE = {
44
+ position: "absolute",
45
+ top: "100%",
46
+ left: "50%",
47
+ transform: "translateX(-50%)",
48
+ marginTop: 4,
49
+ fontSize: BPMN_THEME.fontSize,
50
+ fontFamily: BPMN_THEME.fontFamily,
51
+ color: BPMN_THEME.labelColor,
52
+ textAlign: "center",
53
+ whiteSpace: "nowrap",
54
+ maxWidth: 100,
55
+ overflow: "hidden",
56
+ textOverflow: "ellipsis",
57
+ pointerEvents: "none",
58
+ lineHeight: 1.3
59
+ };
60
+ var INTERNAL_STYLE = {
61
+ fontSize: BPMN_THEME.fontSize,
62
+ fontFamily: BPMN_THEME.fontFamily,
63
+ color: BPMN_THEME.labelColor,
64
+ textAlign: "center",
65
+ lineHeight: 1.3,
66
+ overflow: "hidden",
67
+ wordBreak: "break-word"
68
+ };
69
+ function BpmnLabel({ children, external = false, style }) {
70
+ if (!children) return null;
71
+ return /* @__PURE__ */ jsx("div", { style: { ...external ? EXTERNAL_STYLE : INTERNAL_STYLE, ...style }, children });
72
+ }
73
+ function pentagon(r) {
74
+ const pts = Array.from({ length: 5 }, (_, i) => {
75
+ const a = (i * 72 - 90) * (Math.PI / 180);
76
+ return `${(r * Math.cos(a)).toFixed(2)},${(r * Math.sin(a)).toFixed(2)}`;
77
+ });
78
+ return `M ${pts.join(" L ")} Z`;
79
+ }
80
+ function EventMarker({ cx, cy, trigger, filled = false, stroke, bg, r = 10 }) {
81
+ const s = r * 0.6;
82
+ const f = filled ? stroke : "none";
83
+ const sw = 1.4;
84
+ if (trigger === "none" || !trigger) return null;
85
+ return /* @__PURE__ */ jsxs("g", { transform: `translate(${cx},${cy})`, strokeLinecap: "round", strokeLinejoin: "round", children: [
86
+ trigger === "message" && /* @__PURE__ */ jsxs("g", { fill: f, stroke, strokeWidth: sw, children: [
87
+ /* @__PURE__ */ jsx("rect", { x: -s, y: -s * 0.65, width: s * 2, height: s * 1.3, rx: 0.5 }),
88
+ /* @__PURE__ */ jsx("polyline", { fill: "none", points: `${-s},${-s * 0.65} 0,${s * 0.2} ${s},${-s * 0.65}` })
89
+ ] }),
90
+ trigger === "timer" && /* @__PURE__ */ jsxs("g", { fill: f, stroke, strokeWidth: sw, children: [
91
+ /* @__PURE__ */ jsx("circle", { r: s, fill: bg, stroke, strokeWidth: sw }),
92
+ Array.from({ length: 12 }, (_, i) => {
93
+ const a = (i * 30 - 90) * (Math.PI / 180);
94
+ const len = i % 3 === 0 ? 0.25 : 0.15;
95
+ const x1 = Math.cos(a) * s * 0.75;
96
+ const y1 = Math.sin(a) * s * 0.75;
97
+ const x2 = Math.cos(a) * s * (0.75 + len);
98
+ const y2 = Math.sin(a) * s * (0.75 + len);
99
+ return /* @__PURE__ */ jsx("line", { x1, y1, x2, y2, stroke, strokeWidth: sw * 0.8 }, i);
100
+ }),
101
+ /* @__PURE__ */ jsx("line", { x1: 0, y1: 0, x2: 0, y2: -s * 0.5, stroke, strokeWidth: sw }),
102
+ /* @__PURE__ */ jsx("line", { x1: 0, y1: 0, x2: s * 0.4, y2: 0, stroke, strokeWidth: sw })
103
+ ] }),
104
+ trigger === "error" && /* @__PURE__ */ jsx(
105
+ "path",
106
+ {
107
+ d: `M ${s * 0.35},${-s} L ${-s * 0.15},${-s * 0.05} L ${s * 0.35},${s * 0.05} L ${-s * 0.35},${s} L ${s * 0.15},${s * 0.05} L ${-s * 0.35},${-s * 0.05} Z`,
108
+ fill: f,
109
+ stroke,
110
+ strokeWidth: sw
111
+ }
112
+ ),
113
+ trigger === "escalation" && /* @__PURE__ */ jsx(
114
+ "path",
115
+ {
116
+ d: `M 0,${-s} L ${s * 0.8},${s * 0.7} L 0,${s * 0.2} L ${-s * 0.8},${s * 0.7} Z`,
117
+ fill: f,
118
+ stroke,
119
+ strokeWidth: sw
120
+ }
121
+ ),
122
+ trigger === "conditional" && // Three horizontal lines (document/list)
123
+ /* @__PURE__ */ jsxs("g", { stroke, strokeWidth: sw, fill: "none", children: [
124
+ /* @__PURE__ */ jsx("rect", { x: -s * 0.75, y: -s * 0.9, width: s * 1.5, height: s * 1.8, rx: 1, fill: bg, stroke, strokeWidth: sw }),
125
+ /* @__PURE__ */ jsx("line", { x1: -s * 0.45, y1: -s * 0.4, x2: s * 0.45, y2: -s * 0.4 }),
126
+ /* @__PURE__ */ jsx("line", { x1: -s * 0.45, y1: 0, x2: s * 0.45, y2: 0 }),
127
+ /* @__PURE__ */ jsx("line", { x1: -s * 0.45, y1: s * 0.4, x2: s * 0.45, y2: s * 0.4 })
128
+ ] }),
129
+ trigger === "link" && // Arrow pointing right
130
+ /* @__PURE__ */ jsx(
131
+ "path",
132
+ {
133
+ d: `M ${-s * 0.9},${-s * 0.35} L ${s * 0.1},${-s * 0.35} L ${s * 0.1},${-s * 0.65} L ${s},0 L ${s * 0.1},${s * 0.65} L ${s * 0.1},${s * 0.35} L ${-s * 0.9},${s * 0.35} Z`,
134
+ fill: f,
135
+ stroke,
136
+ strokeWidth: sw
137
+ }
138
+ ),
139
+ trigger === "compensation" && // Two left-pointing chevrons <<
140
+ /* @__PURE__ */ jsxs("g", { fill: f, stroke, strokeWidth: sw, children: [
141
+ /* @__PURE__ */ jsx(
142
+ "polyline",
143
+ {
144
+ fill: f,
145
+ strokeLinejoin: "round",
146
+ points: `${s * 0.5},${-s * 0.7} ${-s * 0.1},0 ${s * 0.5},${s * 0.7}`
147
+ }
148
+ ),
149
+ /* @__PURE__ */ jsx(
150
+ "polyline",
151
+ {
152
+ fill: f,
153
+ strokeLinejoin: "round",
154
+ points: `${s},${-s * 0.7} ${s * 0.4},0 ${s},${s * 0.7}`
155
+ }
156
+ ),
157
+ filled && /* @__PURE__ */ jsxs(Fragment, { children: [
158
+ /* @__PURE__ */ jsx("polygon", { fill: stroke, points: `${s * 0.5},${-s * 0.7} ${-s * 0.1},0 ${s * 0.5},${s * 0.7}` }),
159
+ /* @__PURE__ */ jsx("polygon", { fill: stroke, points: `${s},${-s * 0.7} ${s * 0.4},0 ${s},${s * 0.7}` })
160
+ ] })
161
+ ] }),
162
+ trigger === "signal" && /* @__PURE__ */ jsx(
163
+ "polygon",
164
+ {
165
+ points: `0,${-s} ${s * 0.9},${s * 0.7} ${-s * 0.9},${s * 0.7}`,
166
+ fill: f,
167
+ stroke,
168
+ strokeWidth: sw
169
+ }
170
+ ),
171
+ trigger === "cancel" && // X mark
172
+ /* @__PURE__ */ jsxs("g", { stroke, strokeWidth: sw * 1.5, strokeLinecap: "round", fill: "none", children: [
173
+ /* @__PURE__ */ jsx("line", { x1: -s * 0.7, y1: -s * 0.7, x2: s * 0.7, y2: s * 0.7 }),
174
+ /* @__PURE__ */ jsx("line", { x1: s * 0.7, y1: -s * 0.7, x2: -s * 0.7, y2: s * 0.7 })
175
+ ] }),
176
+ trigger === "terminate" && /* @__PURE__ */ jsx("circle", { r: s * 0.8, fill: stroke, stroke, strokeWidth: sw }),
177
+ trigger === "multiple" && /* @__PURE__ */ jsx("path", { d: pentagon(s * 0.9), fill: f, stroke, strokeWidth: sw }),
178
+ trigger === "parallelMultiple" && /* @__PURE__ */ jsxs("g", { stroke, strokeWidth: sw * 1.5, strokeLinecap: "round", fill: "none", children: [
179
+ /* @__PURE__ */ jsx("line", { x1: 0, y1: -s * 0.8, x2: 0, y2: s * 0.8 }),
180
+ /* @__PURE__ */ jsx("line", { x1: -s * 0.8, y1: 0, x2: s * 0.8, y2: 0 })
181
+ ] })
182
+ ] });
183
+ }
184
+ var SIZE = 36;
185
+ var CX = SIZE / 2;
186
+ var R = CX - 2;
187
+ function StartEventNode({ data, selected }) {
188
+ const d = data;
189
+ const stroke = resolveStroke(selected, d.color?.stroke);
190
+ const sw = resolveStrokeWidth(selected);
191
+ const fill = d.color?.fill ?? BPMN_THEME.fill;
192
+ const trigger = d.trigger ?? "none";
193
+ const dashArray = d.isNonInterrupting ? "4 2" : void 0;
194
+ return /* @__PURE__ */ jsxs("div", { style: { width: SIZE, height: SIZE, position: "relative" }, children: [
195
+ /* @__PURE__ */ jsxs("svg", { width: SIZE, height: SIZE, style: { overflow: "visible", display: "block" }, children: [
196
+ /* @__PURE__ */ jsx(
197
+ "circle",
198
+ {
199
+ cx: CX,
200
+ cy: CX,
201
+ r: R,
202
+ fill,
203
+ stroke,
204
+ strokeWidth: sw,
205
+ strokeDasharray: dashArray
206
+ }
207
+ ),
208
+ /* @__PURE__ */ jsx(EventMarker, { cx: CX, cy: CX, trigger, filled: false, stroke, bg: fill, r: R * 0.55 })
209
+ ] }),
210
+ /* @__PURE__ */ jsx(BpmnHandles, { variant: "source" }),
211
+ /* @__PURE__ */ jsx(BpmnLabel, { external: true, children: d.label })
212
+ ] });
213
+ }
214
+ var SIZE2 = 36;
215
+ var CX2 = SIZE2 / 2;
216
+ var R2 = CX2 - 2;
217
+ function EndEventNode({ data, selected }) {
218
+ const d = data;
219
+ const stroke = resolveStroke(selected, d.color?.stroke);
220
+ const sw = resolveStrokeWidth(selected);
221
+ const fill = d.color?.fill ?? BPMN_THEME.fill;
222
+ const trigger = d.trigger ?? "none";
223
+ return /* @__PURE__ */ jsxs("div", { style: { width: SIZE2, height: SIZE2, position: "relative" }, children: [
224
+ /* @__PURE__ */ jsxs("svg", { width: SIZE2, height: SIZE2, style: { overflow: "visible", display: "block" }, children: [
225
+ /* @__PURE__ */ jsx(
226
+ "circle",
227
+ {
228
+ cx: CX2,
229
+ cy: CX2,
230
+ r: R2,
231
+ fill,
232
+ stroke,
233
+ strokeWidth: sw + 2
234
+ }
235
+ ),
236
+ /* @__PURE__ */ jsx(EventMarker, { cx: CX2, cy: CX2, trigger, filled: true, stroke, bg: fill, r: R2 * 0.55 })
237
+ ] }),
238
+ /* @__PURE__ */ jsx(BpmnHandles, { variant: "target" }),
239
+ /* @__PURE__ */ jsx(BpmnLabel, { external: true, children: d.label })
240
+ ] });
241
+ }
242
+ var SIZE3 = 36;
243
+ var CX3 = SIZE3 / 2;
244
+ var R_OUTER = CX3 - 2;
245
+ var R_INNER = R_OUTER - 3;
246
+ var ICON_R = R_INNER * 0.65;
247
+ function IntermediateCatchEventNode({ data, selected }) {
248
+ const d = data;
249
+ const stroke = resolveStroke(selected, d.color?.stroke);
250
+ const sw = resolveStrokeWidth(selected);
251
+ const fill = d.color?.fill ?? BPMN_THEME.fill;
252
+ const trigger = d.trigger ?? "none";
253
+ return /* @__PURE__ */ jsxs("div", { style: { width: SIZE3, height: SIZE3, position: "relative" }, children: [
254
+ /* @__PURE__ */ jsxs("svg", { width: SIZE3, height: SIZE3, style: { overflow: "visible", display: "block" }, children: [
255
+ /* @__PURE__ */ jsx("circle", { cx: CX3, cy: CX3, r: R_OUTER, fill, stroke, strokeWidth: sw }),
256
+ /* @__PURE__ */ jsx("circle", { cx: CX3, cy: CX3, r: R_INNER, fill: "none", stroke, strokeWidth: sw }),
257
+ /* @__PURE__ */ jsx(EventMarker, { cx: CX3, cy: CX3, trigger, filled: false, stroke, bg: fill, r: ICON_R })
258
+ ] }),
259
+ /* @__PURE__ */ jsx(BpmnHandles, { variant: "all" }),
260
+ /* @__PURE__ */ jsx(BpmnLabel, { external: true, children: d.label })
261
+ ] });
262
+ }
263
+ function IntermediateThrowEventNode({ data, selected }) {
264
+ const d = data;
265
+ const stroke = resolveStroke(selected, d.color?.stroke);
266
+ const sw = resolveStrokeWidth(selected);
267
+ const fill = d.color?.fill ?? BPMN_THEME.fill;
268
+ const trigger = d.trigger ?? "none";
269
+ return /* @__PURE__ */ jsxs("div", { style: { width: SIZE3, height: SIZE3, position: "relative" }, children: [
270
+ /* @__PURE__ */ jsxs("svg", { width: SIZE3, height: SIZE3, style: { overflow: "visible", display: "block" }, children: [
271
+ /* @__PURE__ */ jsx("circle", { cx: CX3, cy: CX3, r: R_OUTER, fill, stroke, strokeWidth: sw }),
272
+ /* @__PURE__ */ jsx("circle", { cx: CX3, cy: CX3, r: R_INNER, fill: stroke, stroke, strokeWidth: sw }),
273
+ /* @__PURE__ */ jsx(EventMarker, { cx: CX3, cy: CX3, trigger, filled: true, stroke: fill, bg: stroke, r: ICON_R })
274
+ ] }),
275
+ /* @__PURE__ */ jsx(BpmnHandles, { variant: "all" }),
276
+ /* @__PURE__ */ jsx(BpmnLabel, { external: true, children: d.label })
277
+ ] });
278
+ }
279
+ function BoundaryEventNode({ data, selected }) {
280
+ const d = data;
281
+ const stroke = resolveStroke(selected, d.color?.stroke);
282
+ const sw = resolveStrokeWidth(selected);
283
+ const fill = d.color?.fill ?? BPMN_THEME.fill;
284
+ const trigger = d.trigger ?? "none";
285
+ const dashArray = d.isNonInterrupting ? "4 2" : void 0;
286
+ return /* @__PURE__ */ jsxs("div", { style: { width: SIZE3, height: SIZE3, position: "relative" }, children: [
287
+ /* @__PURE__ */ jsxs("svg", { width: SIZE3, height: SIZE3, style: { overflow: "visible", display: "block" }, children: [
288
+ /* @__PURE__ */ jsx(
289
+ "circle",
290
+ {
291
+ cx: CX3,
292
+ cy: CX3,
293
+ r: R_OUTER,
294
+ fill,
295
+ stroke,
296
+ strokeWidth: sw,
297
+ strokeDasharray: dashArray
298
+ }
299
+ ),
300
+ /* @__PURE__ */ jsx(
301
+ "circle",
302
+ {
303
+ cx: CX3,
304
+ cy: CX3,
305
+ r: R_INNER,
306
+ fill: "none",
307
+ stroke,
308
+ strokeWidth: sw,
309
+ strokeDasharray: dashArray
310
+ }
311
+ ),
312
+ /* @__PURE__ */ jsx(EventMarker, { cx: CX3, cy: CX3, trigger, filled: false, stroke, bg: fill, r: ICON_R })
313
+ ] }),
314
+ /* @__PURE__ */ jsx(BpmnHandles, { variant: "source" }),
315
+ /* @__PURE__ */ jsx(BpmnLabel, { external: true, children: d.label })
316
+ ] });
317
+ }
318
+ function TaskIcon({ type, size = 14, color = "#404040" }) {
319
+ const s = size;
320
+ const c = color;
321
+ switch (type) {
322
+ case "UserTask":
323
+ return /* @__PURE__ */ jsxs("svg", { width: s, height: s, viewBox: "0 0 16 16", fill: "none", children: [
324
+ /* @__PURE__ */ jsx("circle", { cx: "8", cy: "5", r: "3", stroke: c, strokeWidth: "1.5" }),
325
+ /* @__PURE__ */ jsx("path", { d: "M2 14c0-3.3 2.7-6 6-6s6 2.7 6 6", stroke: c, strokeWidth: "1.5", strokeLinecap: "round" })
326
+ ] });
327
+ case "ServiceTask":
328
+ return /* @__PURE__ */ jsxs("svg", { width: s, height: s, viewBox: "0 0 16 16", fill: "none", children: [
329
+ /* @__PURE__ */ jsx("circle", { cx: "8", cy: "8", r: "2.5", stroke: c, strokeWidth: "1.5" }),
330
+ /* @__PURE__ */ jsx(
331
+ "path",
332
+ {
333
+ d: "M8 1v2M8 13v2M1 8h2M13 8h2M3.2 3.2l1.4 1.4M11.4 11.4l1.4 1.4M3.2 12.8l1.4-1.4M11.4 4.6l1.4-1.4",
334
+ stroke: c,
335
+ strokeWidth: "1.5",
336
+ strokeLinecap: "round"
337
+ }
338
+ )
339
+ ] });
340
+ case "ScriptTask":
341
+ return /* @__PURE__ */ jsxs("svg", { width: s, height: s, viewBox: "0 0 16 16", fill: "none", children: [
342
+ /* @__PURE__ */ jsx("rect", { x: "3", y: "2", width: "10", height: "12", rx: "1", stroke: c, strokeWidth: "1.5" }),
343
+ /* @__PURE__ */ jsx("path", { d: "M6 6h4M6 9h4M6 12h2", stroke: c, strokeWidth: "1.5", strokeLinecap: "round" })
344
+ ] });
345
+ case "ManualTask":
346
+ return /* @__PURE__ */ jsx("svg", { width: s, height: s, viewBox: "0 0 16 16", fill: "none", children: /* @__PURE__ */ jsx(
347
+ "path",
348
+ {
349
+ d: "M5 10V6a1 1 0 0 1 2 0v2a1 1 0 0 1 2 0v1a1 1 0 0 1 2 0v2c0 1.7-1.3 3-3 3H6a3 3 0 0 1-3-3V9.5",
350
+ stroke: c,
351
+ strokeWidth: "1.5",
352
+ strokeLinecap: "round",
353
+ strokeLinejoin: "round"
354
+ }
355
+ ) });
356
+ case "BusinessRuleTask":
357
+ return /* @__PURE__ */ jsxs("svg", { width: s, height: s, viewBox: "0 0 16 16", fill: "none", children: [
358
+ /* @__PURE__ */ jsx("rect", { x: "2", y: "3", width: "12", height: "10", rx: "1", stroke: c, strokeWidth: "1.5" }),
359
+ /* @__PURE__ */ jsx("path", { d: "M2 7h12M6 3v10", stroke: c, strokeWidth: "1.5" })
360
+ ] });
361
+ case "ReceiveTask":
362
+ return /* @__PURE__ */ jsxs("svg", { width: s, height: s, viewBox: "0 0 16 16", fill: "none", children: [
363
+ /* @__PURE__ */ jsx("rect", { x: "2", y: "4", width: "12", height: "8", rx: "1", stroke: c, strokeWidth: "1.5" }),
364
+ /* @__PURE__ */ jsx("path", { d: "M2 4l6 5 6-5", stroke: c, strokeWidth: "1.5", strokeLinecap: "round" })
365
+ ] });
366
+ case "SendTask":
367
+ return /* @__PURE__ */ jsx("svg", { width: s, height: s, viewBox: "0 0 16 16", fill: c, children: /* @__PURE__ */ jsx("path", { d: "M2 4a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4zm1 0l5 4.5L13 4H3z" }) });
368
+ case "CallActivity":
369
+ return /* @__PURE__ */ jsx("svg", { width: s, height: s, viewBox: "0 0 16 16", fill: "none", children: /* @__PURE__ */ jsx("rect", { x: "3", y: "5", width: "10", height: "6", rx: "1", stroke: c, strokeWidth: "2" }) });
370
+ default:
371
+ return null;
372
+ }
373
+ }
374
+ var MARKER_SIZE = 12;
375
+ var GAP = 3;
376
+ function TaskMarkers({ markers, stroke, size = MARKER_SIZE }) {
377
+ if (!markers || markers.length === 0) return null;
378
+ const total = markers.length * size + (markers.length - 1) * GAP;
379
+ return /* @__PURE__ */ jsx(
380
+ "div",
381
+ {
382
+ style: {
383
+ position: "absolute",
384
+ bottom: 5,
385
+ left: "50%",
386
+ transform: "translateX(-50%)",
387
+ display: "flex",
388
+ alignItems: "center",
389
+ gap: GAP,
390
+ width: total
391
+ },
392
+ children: markers.map((m) => /* @__PURE__ */ jsx(MarkerIcon, { marker: m, stroke, size }, m))
393
+ }
394
+ );
395
+ }
396
+ function MarkerIcon({ marker, stroke, size }) {
397
+ const s = size / 2;
398
+ const sw = 1.3;
399
+ return /* @__PURE__ */ jsxs(
400
+ "svg",
401
+ {
402
+ width: size,
403
+ height: size,
404
+ viewBox: `${-s} ${-s} ${size} ${size}`,
405
+ style: { overflow: "visible", display: "block" },
406
+ children: [
407
+ marker === "loop" && // Circular arrow (↻)
408
+ /* @__PURE__ */ jsxs("g", { fill: "none", stroke, strokeWidth: sw, strokeLinecap: "round", children: [
409
+ /* @__PURE__ */ jsx("path", { d: `M 0,${-s * 0.85} A ${s * 0.85},${s * 0.85} 0 1 1 ${s * 0.6},${s * 0.6}` }),
410
+ /* @__PURE__ */ jsx("polyline", { points: `${s * 0.2},${s * 0.9} ${s * 0.6},${s * 0.6} ${s * 0.95},${s}` })
411
+ ] }),
412
+ marker === "parallelMultiple" && // Three vertical bars |||
413
+ /* @__PURE__ */ jsxs("g", { stroke, strokeWidth: sw, strokeLinecap: "round", children: [
414
+ /* @__PURE__ */ jsx("line", { x1: -s * 0.55, y1: -s * 0.75, x2: -s * 0.55, y2: s * 0.75 }),
415
+ /* @__PURE__ */ jsx("line", { x1: 0, y1: -s * 0.75, x2: 0, y2: s * 0.75 }),
416
+ /* @__PURE__ */ jsx("line", { x1: s * 0.55, y1: -s * 0.75, x2: s * 0.55, y2: s * 0.75 })
417
+ ] }),
418
+ marker === "sequentialMultiple" && // Three horizontal bars ≡
419
+ /* @__PURE__ */ jsxs("g", { stroke, strokeWidth: sw, strokeLinecap: "round", children: [
420
+ /* @__PURE__ */ jsx("line", { x1: -s * 0.75, y1: -s * 0.55, x2: s * 0.75, y2: -s * 0.55 }),
421
+ /* @__PURE__ */ jsx("line", { x1: -s * 0.75, y1: 0, x2: s * 0.75, y2: 0 }),
422
+ /* @__PURE__ */ jsx("line", { x1: -s * 0.75, y1: s * 0.55, x2: s * 0.75, y2: s * 0.55 })
423
+ ] }),
424
+ marker === "compensation" && // Two left-pointing triangles <<
425
+ /* @__PURE__ */ jsxs("g", { fill: stroke, stroke, strokeWidth: 0.5, strokeLinejoin: "round", children: [
426
+ /* @__PURE__ */ jsx("polygon", { points: `${s * 0.4},${-s * 0.7} ${-s * 0.2},0 ${s * 0.4},${s * 0.7}` }),
427
+ /* @__PURE__ */ jsx("polygon", { points: `${s},${-s * 0.7} ${s * 0.4},0 ${s},${s * 0.7}` })
428
+ ] })
429
+ ]
430
+ }
431
+ );
432
+ }
433
+ function AdhocMarker({ stroke, size = MARKER_SIZE }) {
434
+ return /* @__PURE__ */ jsx(
435
+ "div",
436
+ {
437
+ style: {
438
+ position: "absolute",
439
+ bottom: 5,
440
+ left: "50%",
441
+ transform: "translateX(-50%)",
442
+ color: stroke,
443
+ fontSize: size,
444
+ lineHeight: 1,
445
+ fontFamily: "serif",
446
+ userSelect: "none"
447
+ },
448
+ children: "~"
449
+ }
450
+ );
451
+ }
452
+ function TaskNode({ data, selected }) {
453
+ const d = data;
454
+ const stroke = resolveStroke(selected, d.color?.stroke);
455
+ const sw = resolveStrokeWidth(selected);
456
+ const hasMarkers = d.markers && d.markers.length > 0;
457
+ const borderWidth = d.elementType === "CallActivity" ? sw + 2 : sw;
458
+ return /* @__PURE__ */ jsxs(
459
+ "div",
460
+ {
461
+ style: {
462
+ width: "100%",
463
+ height: "100%",
464
+ background: d.color?.fill ?? BPMN_THEME.fill,
465
+ border: `${borderWidth}px solid ${stroke}`,
466
+ borderRadius: 6,
467
+ boxSizing: "border-box",
468
+ display: "flex",
469
+ flexDirection: "column",
470
+ alignItems: "center",
471
+ justifyContent: "center",
472
+ padding: hasMarkers ? "4px 8px 22px" : "4px 8px",
473
+ position: "relative",
474
+ fontFamily: BPMN_THEME.fontFamily
475
+ },
476
+ children: [
477
+ d.elementType && d.elementType !== "Task" && /* @__PURE__ */ jsx("div", { style: { position: "absolute", top: 5, left: 5 }, children: /* @__PURE__ */ jsx(TaskIcon, { type: d.elementType, size: 14, color: stroke }) }),
478
+ /* @__PURE__ */ jsx(BpmnLabel, { style: { width: "100%" }, children: d.label ?? d.elementType }),
479
+ d.priority && /* @__PURE__ */ jsx(
480
+ "div",
481
+ {
482
+ title: d.priority,
483
+ style: {
484
+ position: "absolute",
485
+ top: 5,
486
+ right: 5,
487
+ width: 8,
488
+ height: 8,
489
+ borderRadius: "50%",
490
+ background: PRIORITY_COLOR[d.priority]
491
+ }
492
+ }
493
+ ),
494
+ hasMarkers && /* @__PURE__ */ jsx(TaskMarkers, { markers: d.markers, stroke }),
495
+ /* @__PURE__ */ jsx(BpmnHandles, { variant: "all" })
496
+ ]
497
+ }
498
+ );
499
+ }
500
+ var PRIORITY_COLOR = {
501
+ critical: "#ef4444",
502
+ high: "#f97316",
503
+ medium: "#eab308",
504
+ low: "#22c55e"
505
+ };
506
+ var SIZE4 = 50;
507
+ var H = SIZE4 / 2;
508
+ var DIAMOND = `${H},2 ${SIZE4 - 2},${H} ${H},${SIZE4 - 2} 2,${H}`;
509
+ function GatewaySymbol({ type, stroke }) {
510
+ const c = H;
511
+ switch (type) {
512
+ case "ExclusiveGateway":
513
+ return /* @__PURE__ */ jsxs("g", { stroke, strokeWidth: "2.5", strokeLinecap: "round", children: [
514
+ /* @__PURE__ */ jsx("line", { x1: c - 7, y1: c - 7, x2: c + 7, y2: c + 7 }),
515
+ /* @__PURE__ */ jsx("line", { x1: c + 7, y1: c - 7, x2: c - 7, y2: c + 7 })
516
+ ] });
517
+ case "InclusiveGateway":
518
+ return /* @__PURE__ */ jsx("circle", { cx: c, cy: c, r: 8, fill: "none", stroke, strokeWidth: "2" });
519
+ case "ParallelGateway":
520
+ return /* @__PURE__ */ jsxs("g", { stroke, strokeWidth: "2.5", strokeLinecap: "round", children: [
521
+ /* @__PURE__ */ jsx("line", { x1: c, y1: c - 9, x2: c, y2: c + 9 }),
522
+ /* @__PURE__ */ jsx("line", { x1: c - 9, y1: c, x2: c + 9, y2: c })
523
+ ] });
524
+ case "EventBasedGateway":
525
+ return /* @__PURE__ */ jsxs("g", { children: [
526
+ /* @__PURE__ */ jsx("circle", { cx: c, cy: c, r: 9, fill: "none", stroke, strokeWidth: "1.5" }),
527
+ /* @__PURE__ */ jsx("circle", { cx: c, cy: c, r: 6, fill: "none", stroke, strokeWidth: "1.2" }),
528
+ /* @__PURE__ */ jsx(
529
+ "polygon",
530
+ {
531
+ points: `${c},${c - 5.5} ${c + 5.2},${c - 1.7} ${c + 3.2},${c + 4.8} ${c - 3.2},${c + 4.8} ${c - 5.2},${c - 1.7}`,
532
+ fill: "none",
533
+ stroke,
534
+ strokeWidth: "1.4",
535
+ strokeLinejoin: "round"
536
+ }
537
+ )
538
+ ] });
539
+ case "ComplexGateway":
540
+ return /* @__PURE__ */ jsxs("g", { stroke, strokeWidth: "2", strokeLinecap: "round", children: [
541
+ /* @__PURE__ */ jsx("line", { x1: c, y1: c - 9, x2: c, y2: c + 9 }),
542
+ /* @__PURE__ */ jsx("line", { x1: c - 9, y1: c, x2: c + 9, y2: c }),
543
+ /* @__PURE__ */ jsx("line", { x1: c - 6, y1: c - 6, x2: c + 6, y2: c + 6 }),
544
+ /* @__PURE__ */ jsx("line", { x1: c + 6, y1: c - 6, x2: c - 6, y2: c + 6 })
545
+ ] });
546
+ default:
547
+ return null;
548
+ }
549
+ }
550
+ function GatewayNode({ data, selected }) {
551
+ const d = data;
552
+ const stroke = resolveStroke(selected, d.color?.stroke);
553
+ const sw = resolveStrokeWidth(selected);
554
+ return /* @__PURE__ */ jsxs("div", { style: { width: SIZE4, height: SIZE4, position: "relative" }, children: [
555
+ /* @__PURE__ */ jsxs("svg", { width: SIZE4, height: SIZE4, style: { overflow: "visible", display: "block" }, children: [
556
+ /* @__PURE__ */ jsx(
557
+ "polygon",
558
+ {
559
+ points: DIAMOND,
560
+ fill: d.color?.fill ?? BPMN_THEME.fill,
561
+ stroke,
562
+ strokeWidth: sw
563
+ }
564
+ ),
565
+ /* @__PURE__ */ jsx(GatewaySymbol, { type: d.elementType, stroke })
566
+ ] }),
567
+ /* @__PURE__ */ jsx(BpmnHandles, { variant: "all" }),
568
+ /* @__PURE__ */ jsx(BpmnLabel, { external: true, children: d.label })
569
+ ] });
570
+ }
571
+ function SubProcessNode({ data, selected }) {
572
+ const d = data;
573
+ const stroke = resolveStroke(selected, d.color?.stroke);
574
+ const sw = resolveStrokeWidth(selected);
575
+ const variant = d.subProcessVariant ?? "embedded";
576
+ const isExpanded = d.isExpanded ?? true;
577
+ const hasMarkers = d.markers && d.markers.length > 0;
578
+ const borderStyle = variant === "event" ? "dashed" : "solid";
579
+ return /* @__PURE__ */ jsxs(
580
+ "div",
581
+ {
582
+ style: {
583
+ width: "100%",
584
+ height: "100%",
585
+ background: d.color?.fill ?? "#f8faff",
586
+ border: `${sw}px ${borderStyle} ${stroke}`,
587
+ borderRadius: 6,
588
+ boxSizing: "border-box",
589
+ position: "relative",
590
+ fontFamily: BPMN_THEME.fontFamily
591
+ },
592
+ children: [
593
+ variant === "transaction" && /* @__PURE__ */ jsx(
594
+ "div",
595
+ {
596
+ style: {
597
+ position: "absolute",
598
+ inset: 4,
599
+ border: `${sw}px solid ${stroke}`,
600
+ borderRadius: 4,
601
+ pointerEvents: "none"
602
+ }
603
+ }
604
+ ),
605
+ /* @__PURE__ */ jsx(BpmnLabel, { style: { padding: "4px 8px" }, children: d.label }),
606
+ !isExpanded && /* @__PURE__ */ jsx(
607
+ "div",
608
+ {
609
+ "aria-label": "collapsed-subprocess-marker",
610
+ style: {
611
+ position: "absolute",
612
+ bottom: 6,
613
+ left: "50%",
614
+ transform: "translateX(-50%)",
615
+ width: 16,
616
+ height: 16,
617
+ border: `1.5px solid ${stroke}`,
618
+ borderRadius: 2,
619
+ display: "flex",
620
+ alignItems: "center",
621
+ justifyContent: "center",
622
+ fontSize: 12,
623
+ color: stroke,
624
+ background: BPMN_THEME.fill,
625
+ zIndex: 1
626
+ },
627
+ children: "+"
628
+ }
629
+ ),
630
+ variant === "adhoc" && /* @__PURE__ */ jsx(AdhocMarker, { stroke }),
631
+ hasMarkers && /* @__PURE__ */ jsx(TaskMarkers, { markers: d.markers, stroke }),
632
+ /* @__PURE__ */ jsx(BpmnHandles, { variant: "all" })
633
+ ]
634
+ }
635
+ );
636
+ }
637
+ var HEADER_WIDTH = 30;
638
+ var HEADER_HEIGHT = 28;
639
+ function PoolNode({ data, selected }) {
640
+ const d = data;
641
+ const stroke = resolveStroke(selected, d.color?.stroke);
642
+ const sw = resolveStrokeWidth(selected);
643
+ const orientation = d.orientation ?? "horizontal";
644
+ const fill = d.color?.fill ?? "#f5f7ff";
645
+ const headerFill = d.color?.fill ?? "#edf0ff";
646
+ if (orientation === "vertical") {
647
+ return /* @__PURE__ */ jsxs(
648
+ "div",
649
+ {
650
+ style: {
651
+ width: "100%",
652
+ height: "100%",
653
+ display: "flex",
654
+ flexDirection: "column",
655
+ border: `${sw}px solid ${stroke}`,
656
+ borderRadius: 4,
657
+ boxSizing: "border-box",
658
+ background: fill,
659
+ overflow: "hidden",
660
+ fontFamily: BPMN_THEME.fontFamily
661
+ },
662
+ children: [
663
+ /* @__PURE__ */ jsx(
664
+ "div",
665
+ {
666
+ "aria-label": "pool-header",
667
+ style: {
668
+ height: HEADER_HEIGHT,
669
+ minHeight: HEADER_HEIGHT,
670
+ borderBottom: `${sw}px solid ${stroke}`,
671
+ display: "flex",
672
+ alignItems: "center",
673
+ justifyContent: "center",
674
+ background: headerFill,
675
+ padding: "0 8px"
676
+ },
677
+ children: /* @__PURE__ */ jsx(
678
+ "span",
679
+ {
680
+ style: {
681
+ fontSize: BPMN_THEME.fontSize,
682
+ fontWeight: 600,
683
+ color: BPMN_THEME.labelColor,
684
+ whiteSpace: "nowrap",
685
+ overflow: "hidden",
686
+ textOverflow: "ellipsis"
687
+ },
688
+ children: d.label
689
+ }
690
+ )
691
+ }
692
+ ),
693
+ /* @__PURE__ */ jsx("div", { style: { flex: 1, position: "relative" } })
694
+ ]
695
+ }
696
+ );
697
+ }
698
+ return /* @__PURE__ */ jsxs(
699
+ "div",
700
+ {
701
+ style: {
702
+ width: "100%",
703
+ height: "100%",
704
+ display: "flex",
705
+ border: `${sw}px solid ${stroke}`,
706
+ borderRadius: 4,
707
+ boxSizing: "border-box",
708
+ background: fill,
709
+ overflow: "hidden",
710
+ fontFamily: BPMN_THEME.fontFamily
711
+ },
712
+ children: [
713
+ /* @__PURE__ */ jsx(
714
+ "div",
715
+ {
716
+ "aria-label": "pool-header",
717
+ style: {
718
+ width: HEADER_WIDTH,
719
+ minWidth: HEADER_WIDTH,
720
+ borderRight: `${sw}px solid ${stroke}`,
721
+ display: "flex",
722
+ alignItems: "center",
723
+ justifyContent: "center",
724
+ background: headerFill
725
+ },
726
+ children: /* @__PURE__ */ jsx(
727
+ "span",
728
+ {
729
+ style: {
730
+ writingMode: "vertical-rl",
731
+ transform: "rotate(180deg)",
732
+ fontSize: BPMN_THEME.fontSize,
733
+ fontWeight: 600,
734
+ color: BPMN_THEME.labelColor,
735
+ whiteSpace: "nowrap",
736
+ overflow: "hidden",
737
+ textOverflow: "ellipsis",
738
+ maxHeight: "90%"
739
+ },
740
+ children: d.label
741
+ }
742
+ )
743
+ }
744
+ ),
745
+ /* @__PURE__ */ jsx("div", { style: { flex: 1, position: "relative" } })
746
+ ]
747
+ }
748
+ );
749
+ }
750
+ var HEADER_HEIGHT2 = 24;
751
+ var HEADER_WIDTH2 = 28;
752
+ function LaneNode({ data, selected }) {
753
+ const d = data;
754
+ const stroke = resolveStroke(selected, d.color?.stroke);
755
+ const sw = resolveStrokeWidth(selected);
756
+ const orientation = d.orientation ?? "horizontal";
757
+ const fill = d.color?.fill ?? "#fafbff";
758
+ const headerFill = d.color?.fill ?? "#f0f3ff";
759
+ if (orientation === "vertical") {
760
+ return /* @__PURE__ */ jsxs(
761
+ "div",
762
+ {
763
+ style: {
764
+ width: "100%",
765
+ height: "100%",
766
+ display: "flex",
767
+ border: `${sw}px solid ${stroke}`,
768
+ borderRadius: 2,
769
+ boxSizing: "border-box",
770
+ background: fill,
771
+ overflow: "hidden",
772
+ fontFamily: BPMN_THEME.fontFamily
773
+ },
774
+ children: [
775
+ /* @__PURE__ */ jsx(
776
+ "div",
777
+ {
778
+ "aria-label": "lane-header",
779
+ style: {
780
+ width: HEADER_WIDTH2,
781
+ minWidth: HEADER_WIDTH2,
782
+ borderRight: `1px solid ${stroke}`,
783
+ display: "flex",
784
+ alignItems: "center",
785
+ justifyContent: "center",
786
+ background: headerFill,
787
+ padding: "6px 0"
788
+ },
789
+ children: /* @__PURE__ */ jsx(
790
+ "span",
791
+ {
792
+ style: {
793
+ writingMode: "vertical-rl",
794
+ transform: "rotate(180deg)",
795
+ fontSize: BPMN_THEME.fontSize,
796
+ fontWeight: 500,
797
+ color: BPMN_THEME.labelColor,
798
+ whiteSpace: "nowrap",
799
+ overflow: "hidden",
800
+ textOverflow: "ellipsis",
801
+ maxHeight: "90%"
802
+ },
803
+ children: d.label
804
+ }
805
+ )
806
+ }
807
+ ),
808
+ /* @__PURE__ */ jsx("div", { style: { flex: 1, position: "relative" } })
809
+ ]
810
+ }
811
+ );
812
+ }
813
+ return /* @__PURE__ */ jsxs(
814
+ "div",
815
+ {
816
+ style: {
817
+ width: "100%",
818
+ height: "100%",
819
+ display: "flex",
820
+ flexDirection: "column",
821
+ border: `${sw}px solid ${stroke}`,
822
+ borderRadius: 2,
823
+ boxSizing: "border-box",
824
+ background: fill,
825
+ overflow: "hidden",
826
+ fontFamily: BPMN_THEME.fontFamily
827
+ },
828
+ children: [
829
+ /* @__PURE__ */ jsx(
830
+ "div",
831
+ {
832
+ "aria-label": "lane-header",
833
+ style: {
834
+ height: HEADER_HEIGHT2,
835
+ minHeight: HEADER_HEIGHT2,
836
+ borderBottom: `1px solid ${stroke}`,
837
+ display: "flex",
838
+ alignItems: "center",
839
+ paddingLeft: 8,
840
+ background: headerFill,
841
+ fontSize: BPMN_THEME.fontSize,
842
+ fontWeight: 500,
843
+ color: BPMN_THEME.labelColor
844
+ },
845
+ children: d.label
846
+ }
847
+ ),
848
+ /* @__PURE__ */ jsx("div", { style: { flex: 1, position: "relative" } })
849
+ ]
850
+ }
851
+ );
852
+ }
853
+ var HANDLE_STYLE2 = { opacity: 0, width: 6, height: 6 };
854
+ function AnnotationNode({ data, selected }) {
855
+ const d = data;
856
+ const stroke = resolveStroke(selected, d.color?.stroke);
857
+ const sw = resolveStrokeWidth(selected);
858
+ const orientation = d.orientation ?? "vertical";
859
+ if (orientation === "horizontal") {
860
+ return /* @__PURE__ */ jsxs(
861
+ "div",
862
+ {
863
+ style: {
864
+ width: "100%",
865
+ height: "100%",
866
+ boxSizing: "border-box",
867
+ borderTop: `${sw + 1}px solid ${stroke}`,
868
+ borderLeft: `${sw}px solid ${stroke}`,
869
+ borderRight: `${sw}px solid ${stroke}`,
870
+ padding: "8px 6px",
871
+ background: "transparent",
872
+ fontFamily: BPMN_THEME.fontFamily,
873
+ fontSize: BPMN_THEME.fontSize,
874
+ color: BPMN_THEME.labelColor,
875
+ lineHeight: 1.4
876
+ },
877
+ children: [
878
+ d.label,
879
+ /* @__PURE__ */ jsx(Handle, { type: "target", position: Position.Left, id: "target-left", style: HANDLE_STYLE2 }),
880
+ /* @__PURE__ */ jsx(Handle, { type: "target", position: Position.Right, id: "target-right", style: HANDLE_STYLE2 }),
881
+ /* @__PURE__ */ jsx(Handle, { type: "source", position: Position.Left, id: "source-left", style: HANDLE_STYLE2 }),
882
+ /* @__PURE__ */ jsx(Handle, { type: "source", position: Position.Right, id: "source-right", style: HANDLE_STYLE2 })
883
+ ]
884
+ }
885
+ );
886
+ }
887
+ return /* @__PURE__ */ jsxs(
888
+ "div",
889
+ {
890
+ style: {
891
+ width: "100%",
892
+ height: "100%",
893
+ boxSizing: "border-box",
894
+ borderLeft: `${sw + 1}px solid ${stroke}`,
895
+ borderTop: `${sw}px solid ${stroke}`,
896
+ borderBottom: `${sw}px solid ${stroke}`,
897
+ padding: "4px 8px",
898
+ background: "transparent",
899
+ fontFamily: BPMN_THEME.fontFamily,
900
+ fontSize: BPMN_THEME.fontSize,
901
+ color: BPMN_THEME.labelColor,
902
+ lineHeight: 1.4
903
+ },
904
+ children: [
905
+ d.label,
906
+ /* @__PURE__ */ jsx(Handle, { type: "target", position: Position.Top, id: "target-top", style: HANDLE_STYLE2 }),
907
+ /* @__PURE__ */ jsx(Handle, { type: "target", position: Position.Bottom, id: "target-bottom", style: HANDLE_STYLE2 }),
908
+ /* @__PURE__ */ jsx(Handle, { type: "source", position: Position.Top, id: "source-top", style: HANDLE_STYLE2 }),
909
+ /* @__PURE__ */ jsx(Handle, { type: "source", position: Position.Bottom, id: "source-bottom", style: HANDLE_STYLE2 })
910
+ ]
911
+ }
912
+ );
913
+ }
914
+ function GroupNode({ data, selected }) {
915
+ const d = data;
916
+ const stroke = resolveStroke(selected, d.color?.stroke);
917
+ const sw = resolveStrokeWidth(selected);
918
+ return /* @__PURE__ */ jsx(
919
+ "div",
920
+ {
921
+ style: {
922
+ width: "100%",
923
+ height: "100%",
924
+ border: `${sw}px dashed ${stroke}`,
925
+ borderRadius: 8,
926
+ boxSizing: "border-box",
927
+ background: "transparent",
928
+ padding: "4px 8px",
929
+ fontFamily: BPMN_THEME.fontFamily,
930
+ fontSize: BPMN_THEME.fontSize,
931
+ color: BPMN_THEME.labelColor,
932
+ fontStyle: "italic"
933
+ },
934
+ children: d.label
935
+ }
936
+ );
937
+ }
938
+ var W = 36;
939
+ var H2 = 50;
940
+ var FOLD = 10;
941
+ function DataObjectNode({ data, selected }) {
942
+ const d = data;
943
+ const stroke = resolveStroke(selected, d.color?.stroke);
944
+ const sw = resolveStrokeWidth(selected);
945
+ const fill = d.color?.fill ?? BPMN_THEME.fill;
946
+ const path = [
947
+ `M 0 0`,
948
+ `L ${W - FOLD} 0`,
949
+ `L ${W} ${FOLD}`,
950
+ `L ${W} ${H2}`,
951
+ `L 0 ${H2}`,
952
+ `Z`
953
+ ].join(" ");
954
+ const foldPath2 = [
955
+ `M ${W - FOLD} 0`,
956
+ `L ${W - FOLD} ${FOLD}`,
957
+ `L ${W} ${FOLD}`
958
+ ].join(" ");
959
+ return /* @__PURE__ */ jsxs("div", { style: { width: W, height: H2, position: "relative" }, children: [
960
+ /* @__PURE__ */ jsxs("svg", { width: W, height: H2, style: { overflow: "visible", display: "block" }, children: [
961
+ /* @__PURE__ */ jsx("path", { d: path, fill, stroke, strokeWidth: sw }),
962
+ /* @__PURE__ */ jsx("path", { d: foldPath2, fill: "none", stroke, strokeWidth: sw })
963
+ ] }),
964
+ /* @__PURE__ */ jsx(BpmnHandles, { variant: "all" }),
965
+ /* @__PURE__ */ jsx(BpmnLabel, { external: true, children: d.label })
966
+ ] });
967
+ }
968
+ var DS_W = 50;
969
+ var DS_H = 50;
970
+ var RX = DS_W / 2;
971
+ var RY = 7;
972
+ function DataStoreNode({ data, selected }) {
973
+ const d = data;
974
+ const stroke = resolveStroke(selected, d.color?.stroke);
975
+ const sw = resolveStrokeWidth(selected);
976
+ const fill = d.color?.fill ?? BPMN_THEME.fill;
977
+ return /* @__PURE__ */ jsxs("div", { style: { width: DS_W, height: DS_H, position: "relative" }, children: [
978
+ /* @__PURE__ */ jsxs("svg", { width: DS_W, height: DS_H, style: { overflow: "visible", display: "block" }, children: [
979
+ /* @__PURE__ */ jsx(
980
+ "path",
981
+ {
982
+ d: `M 0 ${RY} Q 0 0 ${RX} 0 Q ${DS_W} 0 ${DS_W} ${RY} L ${DS_W} ${DS_H - RY} Q ${DS_W} ${DS_H} ${RX} ${DS_H} Q 0 ${DS_H} 0 ${DS_H - RY} Z`,
983
+ fill,
984
+ stroke,
985
+ strokeWidth: sw
986
+ }
987
+ ),
988
+ /* @__PURE__ */ jsx("ellipse", { cx: RX, cy: RY, rx: RX, ry: RY, fill, stroke, strokeWidth: sw })
989
+ ] }),
990
+ /* @__PURE__ */ jsx(BpmnHandles, { variant: "all" }),
991
+ /* @__PURE__ */ jsx(BpmnLabel, { external: true, children: d.label })
992
+ ] });
993
+ }
994
+ var W2 = 36;
995
+ var H3 = 50;
996
+ var FOLD2 = 10;
997
+ function documentPath() {
998
+ return [
999
+ `M 0 0`,
1000
+ `L ${W2 - FOLD2} 0`,
1001
+ `L ${W2} ${FOLD2}`,
1002
+ `L ${W2} ${H3}`,
1003
+ `L 0 ${H3}`,
1004
+ `Z`
1005
+ ].join(" ");
1006
+ }
1007
+ function foldPath() {
1008
+ return [`M ${W2 - FOLD2} 0`, `L ${W2 - FOLD2} ${FOLD2}`, `L ${W2} ${FOLD2}`].join(" ");
1009
+ }
1010
+ function collectionLines(stroke, sw) {
1011
+ const y = H3 - 8;
1012
+ return /* @__PURE__ */ jsxs("g", { stroke, strokeWidth: sw * 0.7, strokeLinecap: "round", children: [
1013
+ /* @__PURE__ */ jsx("line", { x1: W2 * 0.25, y1: y, x2: W2 * 0.75, y2: y }),
1014
+ /* @__PURE__ */ jsx("line", { x1: W2 * 0.25, y1: y + 3, x2: W2 * 0.75, y2: y + 3 }),
1015
+ /* @__PURE__ */ jsx("line", { x1: W2 * 0.25, y1: y + 6, x2: W2 * 0.75, y2: y + 6 })
1016
+ ] });
1017
+ }
1018
+ function DataObjectReferenceNode({ data, selected }) {
1019
+ const d = data;
1020
+ const stroke = resolveStroke(selected, d.color?.stroke);
1021
+ const sw = resolveStrokeWidth(selected);
1022
+ const fill = d.color?.fill ?? BPMN_THEME.fill;
1023
+ return /* @__PURE__ */ jsxs("div", { style: { width: W2, height: H3, position: "relative" }, children: [
1024
+ /* @__PURE__ */ jsxs("svg", { width: W2, height: H3, style: { overflow: "visible", display: "block" }, children: [
1025
+ /* @__PURE__ */ jsx("path", { d: documentPath(), fill, stroke, strokeWidth: sw }),
1026
+ /* @__PURE__ */ jsx("path", { d: foldPath(), fill: "none", stroke, strokeWidth: sw }),
1027
+ d.isCollection && collectionLines(stroke, sw)
1028
+ ] }),
1029
+ /* @__PURE__ */ jsx(BpmnHandles, { variant: "all" }),
1030
+ /* @__PURE__ */ jsx(BpmnLabel, { external: true, children: d.label })
1031
+ ] });
1032
+ }
1033
+ function DataInputNode({ data, selected }) {
1034
+ const d = data;
1035
+ const stroke = resolveStroke(selected, d.color?.stroke);
1036
+ const sw = resolveStrokeWidth(selected);
1037
+ const fill = d.color?.fill ?? BPMN_THEME.fill;
1038
+ return /* @__PURE__ */ jsxs("div", { style: { width: W2, height: H3, position: "relative" }, children: [
1039
+ /* @__PURE__ */ jsxs("svg", { width: W2, height: H3, style: { overflow: "visible", display: "block" }, children: [
1040
+ /* @__PURE__ */ jsx("path", { d: documentPath(), fill, stroke, strokeWidth: sw }),
1041
+ /* @__PURE__ */ jsx("path", { d: foldPath(), fill: "none", stroke, strokeWidth: sw }),
1042
+ /* @__PURE__ */ jsx(
1043
+ "polygon",
1044
+ {
1045
+ points: `2,4 8,8 2,12`,
1046
+ fill: "none",
1047
+ stroke,
1048
+ strokeWidth: sw * 0.8
1049
+ }
1050
+ ),
1051
+ d.isCollection && collectionLines(stroke, sw)
1052
+ ] }),
1053
+ /* @__PURE__ */ jsx(BpmnHandles, { variant: "target" }),
1054
+ /* @__PURE__ */ jsx(BpmnLabel, { external: true, children: d.label })
1055
+ ] });
1056
+ }
1057
+ function DataOutputNode({ data, selected }) {
1058
+ const d = data;
1059
+ const stroke = resolveStroke(selected, d.color?.stroke);
1060
+ const sw = resolveStrokeWidth(selected);
1061
+ const fill = d.color?.fill ?? BPMN_THEME.fill;
1062
+ return /* @__PURE__ */ jsxs("div", { style: { width: W2, height: H3, position: "relative" }, children: [
1063
+ /* @__PURE__ */ jsxs("svg", { width: W2, height: H3, style: { overflow: "visible", display: "block" }, children: [
1064
+ /* @__PURE__ */ jsx("path", { d: documentPath(), fill, stroke, strokeWidth: sw }),
1065
+ /* @__PURE__ */ jsx("path", { d: foldPath(), fill: "none", stroke, strokeWidth: sw }),
1066
+ /* @__PURE__ */ jsx(
1067
+ "polygon",
1068
+ {
1069
+ points: `2,4 8,8 2,12`,
1070
+ fill: stroke,
1071
+ stroke,
1072
+ strokeWidth: sw * 0.8
1073
+ }
1074
+ ),
1075
+ d.isCollection && collectionLines(stroke, sw)
1076
+ ] }),
1077
+ /* @__PURE__ */ jsx(BpmnHandles, { variant: "source" }),
1078
+ /* @__PURE__ */ jsx(BpmnLabel, { external: true, children: d.label })
1079
+ ] });
1080
+ }
1081
+ var DS_W2 = 50;
1082
+ var DS_H2 = 50;
1083
+ var RX2 = DS_W2 / 2;
1084
+ var RY2 = 7;
1085
+ function DataStoreReferenceNode({ data, selected }) {
1086
+ const d = data;
1087
+ const stroke = resolveStroke(selected, d.color?.stroke);
1088
+ const sw = resolveStrokeWidth(selected);
1089
+ const fill = d.color?.fill ?? BPMN_THEME.fill;
1090
+ return /* @__PURE__ */ jsxs("div", { style: { width: DS_W2, height: DS_H2, position: "relative" }, children: [
1091
+ /* @__PURE__ */ jsxs("svg", { width: DS_W2, height: DS_H2, style: { overflow: "visible", display: "block" }, children: [
1092
+ /* @__PURE__ */ jsx(
1093
+ "path",
1094
+ {
1095
+ d: `M 0 ${RY2} Q 0 0 ${RX2} 0 Q ${DS_W2} 0 ${DS_W2} ${RY2} L ${DS_W2} ${DS_H2 - RY2} Q ${DS_W2} ${DS_H2} ${RX2} ${DS_H2} Q 0 ${DS_H2} 0 ${DS_H2 - RY2} Z`,
1096
+ fill,
1097
+ stroke,
1098
+ strokeWidth: sw
1099
+ }
1100
+ ),
1101
+ /* @__PURE__ */ jsx("ellipse", { cx: RX2, cy: RY2, rx: RX2, ry: RY2, fill, stroke, strokeWidth: sw })
1102
+ ] }),
1103
+ /* @__PURE__ */ jsx(BpmnHandles, { variant: "all" }),
1104
+ /* @__PURE__ */ jsx(BpmnLabel, { external: true, children: d.label })
1105
+ ] });
1106
+ }
1107
+ var W3 = 60;
1108
+ var H4 = 52;
1109
+ var INDENT = W3 / 4;
1110
+ function hexPoints() {
1111
+ return [
1112
+ `0,${H4 / 2}`,
1113
+ `${INDENT},0`,
1114
+ `${W3 - INDENT},0`,
1115
+ `${W3},${H4 / 2}`,
1116
+ `${W3 - INDENT},${H4}`,
1117
+ `${INDENT},${H4}`
1118
+ ].join(" ");
1119
+ }
1120
+ function HexShell({
1121
+ fill,
1122
+ stroke,
1123
+ sw,
1124
+ thick = false
1125
+ }) {
1126
+ return /* @__PURE__ */ jsx(
1127
+ "polygon",
1128
+ {
1129
+ points: hexPoints(),
1130
+ fill,
1131
+ stroke,
1132
+ strokeWidth: thick ? sw + 2 : sw
1133
+ }
1134
+ );
1135
+ }
1136
+ function ConversationNode({ data, selected }) {
1137
+ const d = data;
1138
+ const stroke = resolveStroke(selected, d.color?.stroke);
1139
+ const sw = resolveStrokeWidth(selected);
1140
+ const fill = d.color?.fill ?? BPMN_THEME.fill;
1141
+ return /* @__PURE__ */ jsxs("div", { style: { width: W3, height: H4, position: "relative" }, children: [
1142
+ /* @__PURE__ */ jsx("svg", { width: W3, height: H4, style: { overflow: "visible", display: "block" }, children: /* @__PURE__ */ jsx(HexShell, { fill, stroke, sw }) }),
1143
+ /* @__PURE__ */ jsx(BpmnHandles, { variant: "all" }),
1144
+ /* @__PURE__ */ jsx(BpmnLabel, { style: { textAlign: "center" }, children: d.label })
1145
+ ] });
1146
+ }
1147
+ function SubConversationNode({ data, selected }) {
1148
+ const d = data;
1149
+ const stroke = resolveStroke(selected, d.color?.stroke);
1150
+ const sw = resolveStrokeWidth(selected);
1151
+ const fill = d.color?.fill ?? BPMN_THEME.fill;
1152
+ return /* @__PURE__ */ jsxs("div", { style: { width: W3, height: H4, position: "relative" }, children: [
1153
+ /* @__PURE__ */ jsxs("svg", { width: W3, height: H4, style: { overflow: "visible", display: "block" }, children: [
1154
+ /* @__PURE__ */ jsx(HexShell, { fill, stroke, sw }),
1155
+ /* @__PURE__ */ jsx(
1156
+ "rect",
1157
+ {
1158
+ x: W3 / 2 - 7,
1159
+ y: H4 - 15,
1160
+ width: 14,
1161
+ height: 12,
1162
+ rx: 2,
1163
+ fill,
1164
+ stroke,
1165
+ strokeWidth: sw * 0.8
1166
+ }
1167
+ ),
1168
+ /* @__PURE__ */ jsx("text", { x: W3 / 2, y: H4 - 6, textAnchor: "middle", fontSize: 10, fill: stroke, fontFamily: BPMN_THEME.fontFamily, children: "+" })
1169
+ ] }),
1170
+ /* @__PURE__ */ jsx(BpmnHandles, { variant: "all" }),
1171
+ /* @__PURE__ */ jsx(BpmnLabel, { style: { textAlign: "center" }, children: d.label })
1172
+ ] });
1173
+ }
1174
+ function CallConversationNode({ data, selected }) {
1175
+ const d = data;
1176
+ const stroke = resolveStroke(selected, d.color?.stroke);
1177
+ const sw = resolveStrokeWidth(selected);
1178
+ const fill = d.color?.fill ?? BPMN_THEME.fill;
1179
+ return /* @__PURE__ */ jsxs("div", { style: { width: W3, height: H4, position: "relative" }, children: [
1180
+ /* @__PURE__ */ jsxs("svg", { width: W3, height: H4, style: { overflow: "visible", display: "block" }, children: [
1181
+ /* @__PURE__ */ jsx(HexShell, { fill, stroke, sw, thick: true }),
1182
+ /* @__PURE__ */ jsx(
1183
+ "rect",
1184
+ {
1185
+ x: W3 / 2 - 7,
1186
+ y: H4 - 15,
1187
+ width: 14,
1188
+ height: 12,
1189
+ rx: 2,
1190
+ fill,
1191
+ stroke,
1192
+ strokeWidth: sw * 0.8
1193
+ }
1194
+ ),
1195
+ /* @__PURE__ */ jsx("text", { x: W3 / 2, y: H4 - 6, textAnchor: "middle", fontSize: 10, fill: stroke, fontFamily: BPMN_THEME.fontFamily, children: "+" })
1196
+ ] }),
1197
+ /* @__PURE__ */ jsx(BpmnHandles, { variant: "all" }),
1198
+ /* @__PURE__ */ jsx(BpmnLabel, { style: { textAlign: "center" }, children: d.label })
1199
+ ] });
1200
+ }
1201
+ var BAND_H = 20;
1202
+ var RADIUS = 6;
1203
+ function ChoreographyShell({ d, stroke, sw, thick = false, collapsed = false }) {
1204
+ const participants = d.participants ?? [
1205
+ { name: "Initiator", isInitiating: true },
1206
+ { name: "Responder", isInitiating: false }
1207
+ ];
1208
+ const fill = d.color?.fill ?? BPMN_THEME.fill;
1209
+ const respondFill = "#c8d8e8";
1210
+ const bw = thick ? sw + 2 : sw;
1211
+ const [topParticipant, ...rest] = participants;
1212
+ const bottomParticipants = rest;
1213
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
1214
+ /* @__PURE__ */ jsx(
1215
+ "rect",
1216
+ {
1217
+ x: 0,
1218
+ y: 0,
1219
+ width: "100%",
1220
+ height: BAND_H,
1221
+ fill: topParticipant.isInitiating ? fill : respondFill,
1222
+ stroke,
1223
+ strokeWidth: bw,
1224
+ rx: RADIUS,
1225
+ ry: RADIUS
1226
+ }
1227
+ ),
1228
+ /* @__PURE__ */ jsx(
1229
+ "rect",
1230
+ {
1231
+ x: 0,
1232
+ y: BAND_H / 2,
1233
+ width: "100%",
1234
+ height: BAND_H / 2,
1235
+ fill: topParticipant.isInitiating ? fill : respondFill,
1236
+ stroke: "none"
1237
+ }
1238
+ ),
1239
+ /* @__PURE__ */ jsx(
1240
+ "rect",
1241
+ {
1242
+ x: 0,
1243
+ y: BAND_H,
1244
+ width: "100%",
1245
+ height: `calc(100% - ${BAND_H * (1 + bottomParticipants.length)}px)`,
1246
+ fill,
1247
+ stroke,
1248
+ strokeWidth: bw
1249
+ }
1250
+ ),
1251
+ bottomParticipants.map((p, i) => {
1252
+ const y = `calc(100% - ${BAND_H * (bottomParticipants.length - i)}px)`;
1253
+ return /* @__PURE__ */ jsx("g", { children: /* @__PURE__ */ jsx(
1254
+ "rect",
1255
+ {
1256
+ x: 0,
1257
+ y,
1258
+ width: "100%",
1259
+ height: BAND_H,
1260
+ fill: p.isInitiating ? fill : respondFill,
1261
+ stroke,
1262
+ strokeWidth: bw
1263
+ }
1264
+ ) }, i);
1265
+ }),
1266
+ /* @__PURE__ */ jsx(
1267
+ "rect",
1268
+ {
1269
+ x: bw / 2,
1270
+ y: bw / 2,
1271
+ width: `calc(100% - ${bw}px)`,
1272
+ height: `calc(100% - ${bw}px)`,
1273
+ fill: "none",
1274
+ stroke,
1275
+ strokeWidth: bw,
1276
+ rx: RADIUS,
1277
+ ry: RADIUS
1278
+ }
1279
+ ),
1280
+ /* @__PURE__ */ jsx(
1281
+ "foreignObject",
1282
+ {
1283
+ x: 4,
1284
+ y: BAND_H,
1285
+ width: "calc(100% - 8px)",
1286
+ height: `calc(100% - ${BAND_H * (1 + bottomParticipants.length)}px)`,
1287
+ children: /* @__PURE__ */ jsx(
1288
+ "div",
1289
+ {
1290
+ style: {
1291
+ width: "100%",
1292
+ height: "100%",
1293
+ display: "flex",
1294
+ alignItems: "center",
1295
+ justifyContent: "center",
1296
+ fontSize: BPMN_THEME.fontSize,
1297
+ fontFamily: BPMN_THEME.fontFamily,
1298
+ color: stroke,
1299
+ textAlign: "center",
1300
+ padding: "2px 4px",
1301
+ boxSizing: "border-box",
1302
+ overflow: "hidden"
1303
+ },
1304
+ children: d.label ?? ""
1305
+ }
1306
+ )
1307
+ }
1308
+ ),
1309
+ /* @__PURE__ */ jsx(
1310
+ "text",
1311
+ {
1312
+ x: "50%",
1313
+ y: BAND_H * 0.65,
1314
+ textAnchor: "middle",
1315
+ fontSize: BPMN_THEME.fontSize - 1,
1316
+ fontFamily: BPMN_THEME.fontFamily,
1317
+ fill: stroke,
1318
+ clipPath: void 0,
1319
+ children: topParticipant.name
1320
+ }
1321
+ ),
1322
+ bottomParticipants.map((p, i) => /* @__PURE__ */ jsx(
1323
+ "text",
1324
+ {
1325
+ x: "50%",
1326
+ y: `calc(100% - ${BAND_H * (bottomParticipants.length - i) - BAND_H * 0.35}px)`,
1327
+ textAnchor: "middle",
1328
+ fontSize: BPMN_THEME.fontSize - 1,
1329
+ fontFamily: BPMN_THEME.fontFamily,
1330
+ fill: stroke,
1331
+ children: p.name
1332
+ },
1333
+ i
1334
+ )),
1335
+ collapsed && /* @__PURE__ */ jsxs("g", { children: [
1336
+ /* @__PURE__ */ jsx(
1337
+ "rect",
1338
+ {
1339
+ x: "50%",
1340
+ y: "calc(100% - 22px)",
1341
+ width: 14,
1342
+ height: 12,
1343
+ transform: "translate(-7, 0)",
1344
+ rx: 2,
1345
+ fill,
1346
+ stroke,
1347
+ strokeWidth: sw * 0.8
1348
+ }
1349
+ ),
1350
+ /* @__PURE__ */ jsx(
1351
+ "text",
1352
+ {
1353
+ x: "50%",
1354
+ y: "calc(100% - 13px)",
1355
+ textAnchor: "middle",
1356
+ fontSize: 10,
1357
+ fill: stroke,
1358
+ fontFamily: BPMN_THEME.fontFamily,
1359
+ children: "+"
1360
+ }
1361
+ )
1362
+ ] })
1363
+ ] });
1364
+ }
1365
+ function ChoreographyTaskNode({ data, selected }) {
1366
+ const d = data;
1367
+ const stroke = resolveStroke(selected, d.color?.stroke);
1368
+ const sw = resolveStrokeWidth(selected);
1369
+ return /* @__PURE__ */ jsxs("div", { style: { width: "100%", height: "100%", position: "relative" }, children: [
1370
+ /* @__PURE__ */ jsx("svg", { width: "100%", height: "100%", style: { overflow: "visible", display: "block" }, children: /* @__PURE__ */ jsx(ChoreographyShell, { d, stroke, sw }) }),
1371
+ /* @__PURE__ */ jsx(BpmnHandles, { variant: "all" })
1372
+ ] });
1373
+ }
1374
+ function SubChoreographyNode({ data, selected }) {
1375
+ const d = data;
1376
+ const stroke = resolveStroke(selected, d.color?.stroke);
1377
+ const sw = resolveStrokeWidth(selected);
1378
+ return /* @__PURE__ */ jsxs("div", { style: { width: "100%", height: "100%", position: "relative" }, children: [
1379
+ /* @__PURE__ */ jsx("svg", { width: "100%", height: "100%", style: { overflow: "visible", display: "block" }, children: /* @__PURE__ */ jsx(ChoreographyShell, { d, stroke, sw, collapsed: true }) }),
1380
+ /* @__PURE__ */ jsx(BpmnHandles, { variant: "all" })
1381
+ ] });
1382
+ }
1383
+ function CallChoreographyNode({ data, selected }) {
1384
+ const d = data;
1385
+ const stroke = resolveStroke(selected, d.color?.stroke);
1386
+ const sw = resolveStrokeWidth(selected);
1387
+ return /* @__PURE__ */ jsxs("div", { style: { width: "100%", height: "100%", position: "relative" }, children: [
1388
+ /* @__PURE__ */ jsx("svg", { width: "100%", height: "100%", style: { overflow: "visible", display: "block" }, children: /* @__PURE__ */ jsx(ChoreographyShell, { d, stroke, sw, thick: true, collapsed: true }) }),
1389
+ /* @__PURE__ */ jsx(BpmnHandles, { variant: "all" })
1390
+ ] });
1391
+ }
1392
+
1393
+ // src/nodes/nodeTypes.ts
1394
+ var BPMN_NODE_TYPES = {
1395
+ // Events
1396
+ StartEvent: StartEventNode,
1397
+ EndEvent: EndEventNode,
1398
+ IntermediateCatchEvent: IntermediateCatchEventNode,
1399
+ IntermediateThrowEvent: IntermediateThrowEventNode,
1400
+ BoundaryEvent: BoundaryEventNode,
1401
+ // Tasks — differentiated by data.elementType
1402
+ Task: TaskNode,
1403
+ UserTask: TaskNode,
1404
+ ServiceTask: TaskNode,
1405
+ ScriptTask: TaskNode,
1406
+ ManualTask: TaskNode,
1407
+ BusinessRuleTask: TaskNode,
1408
+ ReceiveTask: TaskNode,
1409
+ SendTask: TaskNode,
1410
+ CallActivity: TaskNode,
1411
+ // Gateways — differentiated by data.elementType
1412
+ ExclusiveGateway: GatewayNode,
1413
+ InclusiveGateway: GatewayNode,
1414
+ ParallelGateway: GatewayNode,
1415
+ EventBasedGateway: GatewayNode,
1416
+ ComplexGateway: GatewayNode,
1417
+ // Containers
1418
+ SubProcess: SubProcessNode,
1419
+ Pool: PoolNode,
1420
+ Lane: LaneNode,
1421
+ // Artifacts
1422
+ Annotation: AnnotationNode,
1423
+ Group: GroupNode,
1424
+ // Data
1425
+ DataObject: DataObjectNode,
1426
+ DataObjectReference: DataObjectReferenceNode,
1427
+ DataInput: DataInputNode,
1428
+ DataOutput: DataOutputNode,
1429
+ DataStore: DataStoreNode,
1430
+ DataStoreReference: DataStoreReferenceNode,
1431
+ // Conversation (§12)
1432
+ Conversation: ConversationNode,
1433
+ SubConversation: SubConversationNode,
1434
+ CallConversation: CallConversationNode,
1435
+ // Choreography (§11)
1436
+ ChoreographyTask: ChoreographyTaskNode,
1437
+ SubChoreography: SubChoreographyNode,
1438
+ CallChoreography: CallChoreographyNode
1439
+ };
1440
+
1441
+ export { AnnotationNode, BPMN_NODE_TYPES, BoundaryEventNode, CallChoreographyNode, CallConversationNode, ChoreographyTaskNode, ConversationNode, DataInputNode, DataObjectNode, DataObjectReferenceNode, DataOutputNode, DataStoreNode, DataStoreReferenceNode, EndEventNode, GatewayNode, GroupNode, IntermediateCatchEventNode, IntermediateThrowEventNode, LaneNode, PoolNode, StartEventNode, SubChoreographyNode, SubConversationNode, SubProcessNode, TaskNode };
1442
+ //# sourceMappingURL=chunk-NXMUX67A.js.map
1443
+ //# sourceMappingURL=chunk-NXMUX67A.js.map