@aranzatech/diagrams-bpmn 0.2.0 → 0.2.2

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 (69) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/dist/catalog-DIBySQqA.d.ts +9 -0
  3. package/dist/catalog-m8fHIiKH.d.cts +9 -0
  4. package/dist/{chunk-MF2WE3OM.js → chunk-33AR3PXF.js} +36 -8
  5. package/dist/chunk-33AR3PXF.js.map +1 -0
  6. package/dist/{chunk-3AFZDIMQ.js → chunk-ECTJRD7Z.js} +3 -3
  7. package/dist/{chunk-3AFZDIMQ.js.map → chunk-ECTJRD7Z.js.map} +1 -1
  8. package/dist/{chunk-S3GGEEA5.js → chunk-H3YMTGFG.js} +50 -32
  9. package/dist/chunk-H3YMTGFG.js.map +1 -0
  10. package/dist/chunk-KALSGH4D.js +36 -0
  11. package/dist/chunk-KALSGH4D.js.map +1 -0
  12. package/dist/{chunk-DNR5WBQH.js → chunk-L5Z22RLX.js} +81 -20
  13. package/dist/chunk-L5Z22RLX.js.map +1 -0
  14. package/dist/{chunk-57LA2WSJ.js → chunk-QOGZITWB.js} +10 -6
  15. package/dist/chunk-QOGZITWB.js.map +1 -0
  16. package/dist/{chunk-5GRCJ5X6.js → chunk-RLAJNRF2.js} +3 -3
  17. package/dist/{chunk-5GRCJ5X6.js.map → chunk-RLAJNRF2.js.map} +1 -1
  18. package/dist/chunk-YQTIODXH.js +532 -0
  19. package/dist/chunk-YQTIODXH.js.map +1 -0
  20. package/dist/chunk-ZFGQVLHB.js +226 -0
  21. package/dist/chunk-ZFGQVLHB.js.map +1 -0
  22. package/dist/edges/index.cjs +1 -1
  23. package/dist/edges/index.cjs.map +1 -1
  24. package/dist/edges/index.js +2 -2
  25. package/dist/elements/index.cjs +81 -17
  26. package/dist/elements/index.cjs.map +1 -1
  27. package/dist/elements/index.d.cts +4 -6
  28. package/dist/elements/index.d.ts +4 -6
  29. package/dist/elements/index.js +2 -2
  30. package/dist/index.cjs +697 -79
  31. package/dist/index.cjs.map +1 -1
  32. package/dist/index.d.cts +6 -4
  33. package/dist/index.d.ts +6 -4
  34. package/dist/index.js +9 -8
  35. package/dist/modeling/index.cjs +383 -36
  36. package/dist/modeling/index.cjs.map +1 -1
  37. package/dist/modeling/index.d.cts +61 -3
  38. package/dist/modeling/index.d.ts +61 -3
  39. package/dist/modeling/index.js +3 -3
  40. package/dist/nodes/index.cjs +62 -32
  41. package/dist/nodes/index.cjs.map +1 -1
  42. package/dist/nodes/index.js +2 -2
  43. package/dist/simulation/index.cjs +8 -4
  44. package/dist/simulation/index.cjs.map +1 -1
  45. package/dist/simulation/index.js +1 -1
  46. package/dist/{types-hj621ZRJ.d.ts → types-BxjCV2oX.d.ts} +1 -1
  47. package/dist/{types-BKA0GZz5.d.cts → types-DznxZxpV.d.cts} +11 -1
  48. package/dist/{types-BKA0GZz5.d.ts → types-DznxZxpV.d.ts} +11 -1
  49. package/dist/{types-CCkHqtC_.d.cts → types-vVi5T7qj.d.cts} +1 -1
  50. package/dist/validation/index.cjs +848 -0
  51. package/dist/validation/index.cjs.map +1 -0
  52. package/dist/validation/index.d.cts +25 -0
  53. package/dist/validation/index.d.ts +25 -0
  54. package/dist/validation/index.js +5 -0
  55. package/dist/validation/index.js.map +1 -0
  56. package/dist/xml/index.cjs +74 -22
  57. package/dist/xml/index.cjs.map +1 -1
  58. package/dist/xml/index.d.cts +2 -2
  59. package/dist/xml/index.d.ts +2 -2
  60. package/dist/xml/index.js +2 -2
  61. package/package.json +8 -3
  62. package/dist/chunk-23B2IGK5.js +0 -24
  63. package/dist/chunk-23B2IGK5.js.map +0 -1
  64. package/dist/chunk-57LA2WSJ.js.map +0 -1
  65. package/dist/chunk-DNR5WBQH.js.map +0 -1
  66. package/dist/chunk-G5S4ASP3.js +0 -277
  67. package/dist/chunk-G5S4ASP3.js.map +0 -1
  68. package/dist/chunk-MF2WE3OM.js.map +0 -1
  69. package/dist/chunk-S3GGEEA5.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/nodes/shared/theme.ts"],"names":[],"mappings":";AAAO,IAAM,UAAA,GAAa;AAAA,EACxB,IAAA,EAAM,SAAA;AAAA,EACN,QAAA,EAAU,SAAA;AAAA,EACV,UAAA,EAAY,SAAA;AAAA,EACZ,MAAA,EAAQ,SAAA;AAAA,EACR,WAAA,EAAa,SAAA;AAAA,EACb,cAAA,EAAgB,SAAA;AAAA,EAChB,WAAA,EAAa,GAAA;AAAA,EACb,mBAAA,EAAqB,GAAA;AAAA,EACrB,UAAA,EAAY,8BAAA;AAAA,EACZ,QAAA,EAAU,EAAA;AAAA,EACV,UAAA,EAAY,SAAA;AAAA,EACZ,WAAA,EAAa,SAAA;AAAA,EACb,mBAAA,EAAqB,SAAA;AAAA,EACrB,MAAA,EAAQ,mCAAA;AAAA,EACR,cAAA,EAAgB,sEAAA;AAAA,EAChB,UAAA,EAAY;AACd;AAEO,SAAS,aAAA,CAAc,UAA+B,QAAA,EAA2B;AACtF,EAAA,IAAI,QAAA,SAAiB,UAAA,CAAW,cAAA;AAChC,EAAA,OAAO,YAAY,UAAA,CAAW,MAAA;AAChC;AAEO,SAAS,mBAAmB,QAAA,EAAuC;AACxE,EAAA,OAAO,QAAA,GAAW,UAAA,CAAW,mBAAA,GAAsB,UAAA,CAAW,WAAA;AAChE;AAEO,SAAS,mBAAmB,QAAA,EAAmD;AACpF,EAAA,OAAO,WACH,oFAAA,GACA,6CAAA;AACN;AAEO,SAAS,kBAAkB,QAAA,EAAuC;AACvE,EAAA,OAAO,QAAA,GAAW,UAAA,CAAW,cAAA,GAAiB,UAAA,CAAW,MAAA;AAC3D","file":"chunk-KALSGH4D.js","sourcesContent":["export const BPMN_THEME = {\n fill: \"#ffffff\",\n fillSoft: \"#f8fbff\",\n fillSubtle: \"#eef6ff\",\n stroke: \"#334155\",\n strokeMuted: \"#64748b\",\n strokeSelected: \"#2563eb\",\n strokeWidth: 1.5,\n strokeWidthSelected: 2.5,\n fontFamily: \"Inter, system-ui, sans-serif\",\n fontSize: 11,\n labelColor: \"#0f172a\",\n handleColor: \"#94a3b8\",\n handleColorSelected: \"#2563eb\",\n shadow: \"0 4px 12px rgba(15, 23, 42, 0.08)\",\n shadowSelected: \"0 0 0 4px rgba(37, 99, 235, 0.14), 0 8px 18px rgba(15, 23, 42, 0.12)\",\n transition: \"box-shadow 140ms ease, filter 140ms ease, transform 140ms ease\",\n} as const;\n\nexport function resolveStroke(selected: boolean | undefined, override?: string): string {\n if (selected) return BPMN_THEME.strokeSelected;\n return override ?? BPMN_THEME.stroke;\n}\n\nexport function resolveStrokeWidth(selected: boolean | undefined): number {\n return selected ? BPMN_THEME.strokeWidthSelected : BPMN_THEME.strokeWidth;\n}\n\nexport function resolveShapeFilter(selected: boolean | undefined): string | undefined {\n return selected\n ? \"drop-shadow(0 0 0 rgba(37,99,235,0.2)) drop-shadow(0 8px 14px rgba(15,23,42,0.12))\"\n : \"drop-shadow(0 4px 10px rgba(15,23,42,0.08))\";\n}\n\nexport function resolveNodeShadow(selected: boolean | undefined): string {\n return selected ? BPMN_THEME.shadowSelected : BPMN_THEME.shadow;\n}\n"]}
@@ -34,7 +34,7 @@ var BPMN_ELEMENT_CATALOG = {
34
34
  },
35
35
  IntermediateCatchEvent: {
36
36
  label: "Intermediate Catch Event",
37
- icon: "Clock",
37
+ icon: "Clock3",
38
38
  category: "event",
39
39
  defaultWidth: 36,
40
40
  defaultHeight: 36,
@@ -48,7 +48,7 @@ var BPMN_ELEMENT_CATALOG = {
48
48
  },
49
49
  IntermediateThrowEvent: {
50
50
  label: "Intermediate Throw Event",
51
- icon: "Zap",
51
+ icon: "Send",
52
52
  category: "event",
53
53
  defaultWidth: 36,
54
54
  defaultHeight: 36,
@@ -62,7 +62,7 @@ var BPMN_ELEMENT_CATALOG = {
62
62
  },
63
63
  BoundaryEvent: {
64
64
  label: "Boundary Event",
65
- icon: "AlertCircle",
65
+ icon: "AlarmClock",
66
66
  category: "event",
67
67
  defaultWidth: 36,
68
68
  defaultHeight: 36,
@@ -78,7 +78,7 @@ var BPMN_ELEMENT_CATALOG = {
78
78
  // ─── Tasks ───────────────────────────────────────────────────────────────────
79
79
  Task: {
80
80
  label: "Task",
81
- icon: "Square",
81
+ icon: "CheckSquare",
82
82
  category: "task",
83
83
  defaultWidth: 120,
84
84
  defaultHeight: 60,
@@ -92,7 +92,7 @@ var BPMN_ELEMENT_CATALOG = {
92
92
  },
93
93
  UserTask: {
94
94
  label: "User Task",
95
- icon: "User",
95
+ icon: "UserRound",
96
96
  category: "task",
97
97
  defaultWidth: 120,
98
98
  defaultHeight: 60,
@@ -106,7 +106,7 @@ var BPMN_ELEMENT_CATALOG = {
106
106
  },
107
107
  ServiceTask: {
108
108
  label: "Service Task",
109
- icon: "Settings",
109
+ icon: "Cog",
110
110
  category: "task",
111
111
  defaultWidth: 120,
112
112
  defaultHeight: 60,
@@ -148,7 +148,7 @@ var BPMN_ELEMENT_CATALOG = {
148
148
  },
149
149
  BusinessRuleTask: {
150
150
  label: "Business Rule Task",
151
- icon: "Scale",
151
+ icon: "Table2",
152
152
  category: "task",
153
153
  defaultWidth: 120,
154
154
  defaultHeight: 60,
@@ -162,7 +162,7 @@ var BPMN_ELEMENT_CATALOG = {
162
162
  },
163
163
  ReceiveTask: {
164
164
  label: "Receive Task",
165
- icon: "Mail",
165
+ icon: "Inbox",
166
166
  category: "task",
167
167
  defaultWidth: 120,
168
168
  defaultHeight: 60,
@@ -205,7 +205,7 @@ var BPMN_ELEMENT_CATALOG = {
205
205
  // ─── Gateways ────────────────────────────────────────────────────────────────
206
206
  ExclusiveGateway: {
207
207
  label: "Exclusive Gateway",
208
- icon: "GitBranch",
208
+ icon: "X",
209
209
  category: "gateway",
210
210
  defaultWidth: 50,
211
211
  defaultHeight: 50,
@@ -218,7 +218,7 @@ var BPMN_ELEMENT_CATALOG = {
218
218
  },
219
219
  InclusiveGateway: {
220
220
  label: "Inclusive Gateway",
221
- icon: "GitMerge",
221
+ icon: "Circle",
222
222
  category: "gateway",
223
223
  defaultWidth: 50,
224
224
  defaultHeight: 50,
@@ -231,7 +231,7 @@ var BPMN_ELEMENT_CATALOG = {
231
231
  },
232
232
  ParallelGateway: {
233
233
  label: "Parallel Gateway",
234
- icon: "GitFork",
234
+ icon: "Plus",
235
235
  category: "gateway",
236
236
  defaultWidth: 50,
237
237
  defaultHeight: 50,
@@ -272,7 +272,7 @@ var BPMN_ELEMENT_CATALOG = {
272
272
  // ─── Containers ───────────────────────────────────────────────────────────────
273
273
  SubProcess: {
274
274
  label: "Sub-Process",
275
- icon: "Layout",
275
+ icon: "PlusSquare",
276
276
  category: "container",
277
277
  defaultWidth: 350,
278
278
  defaultHeight: 200,
@@ -287,7 +287,7 @@ var BPMN_ELEMENT_CATALOG = {
287
287
  },
288
288
  Transaction: {
289
289
  label: "Transaction",
290
- icon: "CreditCard",
290
+ icon: "Receipt",
291
291
  category: "container",
292
292
  defaultWidth: 350,
293
293
  defaultHeight: 200,
@@ -302,7 +302,7 @@ var BPMN_ELEMENT_CATALOG = {
302
302
  },
303
303
  EventSubProcess: {
304
304
  label: "Event Sub-Process",
305
- icon: "Workflow",
305
+ icon: "CircleDotDashed",
306
306
  category: "container",
307
307
  defaultWidth: 350,
308
308
  defaultHeight: 200,
@@ -317,7 +317,7 @@ var BPMN_ELEMENT_CATALOG = {
317
317
  },
318
318
  AdHocSubProcess: {
319
319
  label: "Ad-Hoc Sub-Process",
320
- icon: "Shuffle",
320
+ icon: "Waves",
321
321
  category: "container",
322
322
  defaultWidth: 350,
323
323
  defaultHeight: 200,
@@ -332,7 +332,7 @@ var BPMN_ELEMENT_CATALOG = {
332
332
  },
333
333
  Pool: {
334
334
  label: "Pool",
335
- icon: "Columns",
335
+ icon: "Rows3",
336
336
  category: "container",
337
337
  defaultWidth: 600,
338
338
  defaultHeight: 200,
@@ -347,7 +347,7 @@ var BPMN_ELEMENT_CATALOG = {
347
347
  },
348
348
  Lane: {
349
349
  label: "Lane",
350
- icon: "AlignJustify",
350
+ icon: "PanelTop",
351
351
  category: "container",
352
352
  defaultWidth: 600,
353
353
  defaultHeight: 120,
@@ -566,7 +566,68 @@ var BPMN_ELEMENT_CATALOG = {
566
566
  function getElementMeta(type) {
567
567
  return BPMN_ELEMENT_CATALOG[type];
568
568
  }
569
+ var BPMN_RESIZABLE_ELEMENT_TYPES = [
570
+ "Task",
571
+ "UserTask",
572
+ "ServiceTask",
573
+ "ScriptTask",
574
+ "ManualTask",
575
+ "BusinessRuleTask",
576
+ "ReceiveTask",
577
+ "SendTask",
578
+ "CallActivity",
579
+ "SubProcess",
580
+ "Transaction",
581
+ "EventSubProcess",
582
+ "AdHocSubProcess",
583
+ "Pool",
584
+ "Lane",
585
+ "Annotation",
586
+ "Group",
587
+ "SubConversation",
588
+ "ChoreographyTask",
589
+ "SubChoreography",
590
+ "CallChoreography"
591
+ ];
592
+ var BPMN_MIN_SIZE_OVERRIDES = {
593
+ Task: { minWidth: 80, minHeight: 48 },
594
+ UserTask: { minWidth: 80, minHeight: 48 },
595
+ ServiceTask: { minWidth: 80, minHeight: 48 },
596
+ ScriptTask: { minWidth: 80, minHeight: 48 },
597
+ ManualTask: { minWidth: 80, minHeight: 48 },
598
+ BusinessRuleTask: { minWidth: 80, minHeight: 48 },
599
+ ReceiveTask: { minWidth: 80, minHeight: 48 },
600
+ SendTask: { minWidth: 80, minHeight: 48 },
601
+ CallActivity: { minWidth: 80, minHeight: 48 },
602
+ SubProcess: { minWidth: 160, minHeight: 100 },
603
+ Transaction: { minWidth: 160, minHeight: 100 },
604
+ EventSubProcess: { minWidth: 160, minHeight: 100 },
605
+ AdHocSubProcess: { minWidth: 160, minHeight: 100 },
606
+ Pool: { minWidth: 240, minHeight: 120 },
607
+ Lane: { minWidth: 240, minHeight: 80 },
608
+ Annotation: { minWidth: 80, minHeight: 40 },
609
+ Group: { minWidth: 120, minHeight: 80 },
610
+ SubConversation: { minWidth: 60, minHeight: 52 },
611
+ ChoreographyTask: { minWidth: 100, minHeight: 70 },
612
+ SubChoreography: { minWidth: 100, minHeight: 70 },
613
+ CallChoreography: { minWidth: 100, minHeight: 70 }
614
+ };
615
+ var resizableTypes = new Set(BPMN_RESIZABLE_ELEMENT_TYPES);
616
+ function isBpmnElementResizable(type) {
617
+ return resizableTypes.has(type);
618
+ }
619
+ function getBpmnElementSize(type) {
620
+ const meta = getElementMeta(type);
621
+ const min = BPMN_MIN_SIZE_OVERRIDES[type];
622
+ return {
623
+ width: meta.defaultWidth,
624
+ height: meta.defaultHeight,
625
+ minWidth: meta.minWidth ?? min?.minWidth ?? meta.defaultWidth,
626
+ minHeight: meta.minHeight ?? min?.minHeight ?? meta.defaultHeight,
627
+ resizable: meta.resizable ?? isBpmnElementResizable(type)
628
+ };
629
+ }
569
630
 
570
- export { BPMN_ELEMENT_CATALOG, getElementMeta };
571
- //# sourceMappingURL=chunk-DNR5WBQH.js.map
572
- //# sourceMappingURL=chunk-DNR5WBQH.js.map
631
+ export { BPMN_ELEMENT_CATALOG, BPMN_RESIZABLE_ELEMENT_TYPES, getBpmnElementSize, getElementMeta, isBpmnElementResizable };
632
+ //# sourceMappingURL=chunk-L5Z22RLX.js.map
633
+ //# sourceMappingURL=chunk-L5Z22RLX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/elements/catalog.ts"],"names":[],"mappings":";AAEO,IAAM,oBAAA,GAAiE;AAAA;AAAA,EAE5E,UAAA,EAAY;AAAA,IACV,KAAA,EAAO,aAAA;AAAA,IACP,IAAA,EAAM,QAAA;AAAA,IACN,QAAA,EAAU,OAAA;AAAA,IACV,YAAA,EAAc,EAAA;AAAA,IAAI,aAAA,EAAe,EAAA;AAAA,IACjC,YAAA,EAAc,QAAA;AAAA,IAAU,WAAA,EAAa,MAAA;AAAA,IACrC,WAAA,EAAa,KAAA;AAAA,IAAO,qBAAA,EAAuB,KAAA;AAAA,IAC3C,cAAA,EAAgB,OAAA;AAAA,IAChB,UAAA,EAAY,IAAA;AAAA,IAAM,QAAA,EAAU,KAAA;AAAA,IAC5B,WAAA,EAAa,CAAA;AAAA,IAAG,WAAA,EAAa;AAAA,GAC/B;AAAA,EACA,QAAA,EAAU;AAAA,IACR,KAAA,EAAO,WAAA;AAAA,IACP,IAAA,EAAM,WAAA;AAAA,IACN,QAAA,EAAU,OAAA;AAAA,IACV,YAAA,EAAc,EAAA;AAAA,IAAI,aAAA,EAAe,EAAA;AAAA,IACjC,YAAA,EAAc,QAAA;AAAA,IAAU,WAAA,EAAa,MAAA;AAAA,IACrC,WAAA,EAAa,KAAA;AAAA,IAAO,qBAAA,EAAuB,KAAA;AAAA,IAC3C,cAAA,EAAgB,KAAA;AAAA,IAChB,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU,IAAA;AAAA,IAC7B,WAAA,EAAa;AAAA,GACf;AAAA,EACA,sBAAA,EAAwB;AAAA,IACtB,KAAA,EAAO,0BAAA;AAAA,IACP,IAAA,EAAM,QAAA;AAAA,IACN,QAAA,EAAU,OAAA;AAAA,IACV,YAAA,EAAc,EAAA;AAAA,IAAI,aAAA,EAAe,EAAA;AAAA,IACjC,YAAA,EAAc,KAAA;AAAA,IAAO,WAAA,EAAa,MAAA;AAAA,IAClC,WAAA,EAAa,KAAA;AAAA,IAAO,qBAAA,EAAuB,KAAA;AAAA,IAC3C,cAAA,EAAgB,mBAAA;AAAA,IAChB,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU;AAAA,GAC/B;AAAA,EACA,sBAAA,EAAwB;AAAA,IACtB,KAAA,EAAO,0BAAA;AAAA,IACP,IAAA,EAAM,MAAA;AAAA,IACN,QAAA,EAAU,OAAA;AAAA,IACV,YAAA,EAAc,EAAA;AAAA,IAAI,aAAA,EAAe,EAAA;AAAA,IACjC,YAAA,EAAc,KAAA;AAAA,IAAO,WAAA,EAAa,MAAA;AAAA,IAClC,WAAA,EAAa,KAAA;AAAA,IAAO,qBAAA,EAAuB,KAAA;AAAA,IAC3C,cAAA,EAAgB,mBAAA;AAAA,IAChB,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU;AAAA,GAC/B;AAAA,EACA,aAAA,EAAe;AAAA,IACb,KAAA,EAAO,gBAAA;AAAA,IACP,IAAA,EAAM,YAAA;AAAA,IACN,QAAA,EAAU,OAAA;AAAA,IACV,YAAA,EAAc,EAAA;AAAA,IAAI,aAAA,EAAe,EAAA;AAAA,IACjC,YAAA,EAAc,QAAA;AAAA,IAAU,WAAA,EAAa,MAAA;AAAA,IACrC,WAAA,EAAa,KAAA;AAAA,IAAO,qBAAA,EAAuB,KAAA;AAAA,IAC3C,cAAA,EAAgB,UAAA;AAAA,IAChB,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU,KAAA;AAAA,IAC7B,WAAA,EAAa;AAAA,GACf;AAAA;AAAA,EAGA,IAAA,EAAM;AAAA,IACJ,KAAA,EAAO,MAAA;AAAA,IACP,IAAA,EAAM,aAAA;AAAA,IACN,QAAA,EAAU,MAAA;AAAA,IACV,YAAA,EAAc,GAAA;AAAA,IAAK,aAAA,EAAe,EAAA;AAAA,IAClC,YAAA,EAAc,KAAA;AAAA,IAAO,WAAA,EAAa,MAAA;AAAA,IAClC,WAAA,EAAa,KAAA;AAAA,IAAO,qBAAA,EAAuB,IAAA;AAAA,IAC3C,eAAA,EAAiB,IAAA;AAAA,IACjB,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU;AAAA,GAC/B;AAAA,EACA,QAAA,EAAU;AAAA,IACR,KAAA,EAAO,WAAA;AAAA,IACP,IAAA,EAAM,WAAA;AAAA,IACN,QAAA,EAAU,MAAA;AAAA,IACV,YAAA,EAAc,GAAA;AAAA,IAAK,aAAA,EAAe,EAAA;AAAA,IAClC,YAAA,EAAc,KAAA;AAAA,IAAO,WAAA,EAAa,MAAA;AAAA,IAClC,WAAA,EAAa,KAAA;AAAA,IAAO,qBAAA,EAAuB,IAAA;AAAA,IAC3C,eAAA,EAAiB,IAAA;AAAA,IACjB,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU;AAAA,GAC/B;AAAA,EACA,WAAA,EAAa;AAAA,IACX,KAAA,EAAO,cAAA;AAAA,IACP,IAAA,EAAM,KAAA;AAAA,IACN,QAAA,EAAU,MAAA;AAAA,IACV,YAAA,EAAc,GAAA;AAAA,IAAK,aAAA,EAAe,EAAA;AAAA,IAClC,YAAA,EAAc,KAAA;AAAA,IAAO,WAAA,EAAa,MAAA;AAAA,IAClC,WAAA,EAAa,KAAA;AAAA,IAAO,qBAAA,EAAuB,IAAA;AAAA,IAC3C,eAAA,EAAiB,IAAA;AAAA,IACjB,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU;AAAA,GAC/B;AAAA,EACA,UAAA,EAAY;AAAA,IACV,KAAA,EAAO,aAAA;AAAA,IACP,IAAA,EAAM,UAAA;AAAA,IACN,QAAA,EAAU,MAAA;AAAA,IACV,YAAA,EAAc,GAAA;AAAA,IAAK,aAAA,EAAe,EAAA;AAAA,IAClC,YAAA,EAAc,KAAA;AAAA,IAAO,WAAA,EAAa,MAAA;AAAA,IAClC,WAAA,EAAa,KAAA;AAAA,IAAO,qBAAA,EAAuB,IAAA;AAAA,IAC3C,eAAA,EAAiB,IAAA;AAAA,IACjB,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU;AAAA,GAC/B;AAAA,EACA,UAAA,EAAY;AAAA,IACV,KAAA,EAAO,aAAA;AAAA,IACP,IAAA,EAAM,MAAA;AAAA,IACN,QAAA,EAAU,MAAA;AAAA,IACV,YAAA,EAAc,GAAA;AAAA,IAAK,aAAA,EAAe,EAAA;AAAA,IAClC,YAAA,EAAc,KAAA;AAAA,IAAO,WAAA,EAAa,MAAA;AAAA,IAClC,WAAA,EAAa,KAAA;AAAA,IAAO,qBAAA,EAAuB,IAAA;AAAA,IAC3C,eAAA,EAAiB,IAAA;AAAA,IACjB,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU;AAAA,GAC/B;AAAA,EACA,gBAAA,EAAkB;AAAA,IAChB,KAAA,EAAO,oBAAA;AAAA,IACP,IAAA,EAAM,QAAA;AAAA,IACN,QAAA,EAAU,MAAA;AAAA,IACV,YAAA,EAAc,GAAA;AAAA,IAAK,aAAA,EAAe,EAAA;AAAA,IAClC,YAAA,EAAc,KAAA;AAAA,IAAO,WAAA,EAAa,MAAA;AAAA,IAClC,WAAA,EAAa,KAAA;AAAA,IAAO,qBAAA,EAAuB,IAAA;AAAA,IAC3C,eAAA,EAAiB,IAAA;AAAA,IACjB,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU;AAAA,GAC/B;AAAA,EACA,WAAA,EAAa;AAAA,IACX,KAAA,EAAO,cAAA;AAAA,IACP,IAAA,EAAM,OAAA;AAAA,IACN,QAAA,EAAU,MAAA;AAAA,IACV,YAAA,EAAc,GAAA;AAAA,IAAK,aAAA,EAAe,EAAA;AAAA,IAClC,YAAA,EAAc,KAAA;AAAA,IAAO,WAAA,EAAa,MAAA;AAAA,IAClC,WAAA,EAAa,KAAA;AAAA,IAAO,qBAAA,EAAuB,IAAA;AAAA,IAC3C,eAAA,EAAiB,IAAA;AAAA,IACjB,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU;AAAA,GAC/B;AAAA,EACA,QAAA,EAAU;AAAA,IACR,KAAA,EAAO,WAAA;AAAA,IACP,IAAA,EAAM,MAAA;AAAA,IACN,QAAA,EAAU,MAAA;AAAA,IACV,YAAA,EAAc,GAAA;AAAA,IAAK,aAAA,EAAe,EAAA;AAAA,IAClC,YAAA,EAAc,KAAA;AAAA,IAAO,WAAA,EAAa,MAAA;AAAA,IAClC,WAAA,EAAa,KAAA;AAAA,IAAO,qBAAA,EAAuB,IAAA;AAAA,IAC3C,eAAA,EAAiB,IAAA;AAAA,IACjB,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU;AAAA,GAC/B;AAAA,EACA,YAAA,EAAc;AAAA,IACZ,KAAA,EAAO,eAAA;AAAA,IACP,IAAA,EAAM,cAAA;AAAA,IACN,QAAA,EAAU,MAAA;AAAA,IACV,YAAA,EAAc,GAAA;AAAA,IAAK,aAAA,EAAe,EAAA;AAAA,IAClC,YAAA,EAAc,KAAA;AAAA,IAAO,WAAA,EAAa,MAAA;AAAA,IAClC,WAAA,EAAa,KAAA;AAAA,IAAO,qBAAA,EAAuB,IAAA;AAAA,IAC3C,eAAA,EAAiB,IAAA;AAAA,IACjB,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU;AAAA,GAC/B;AAAA;AAAA,EAGA,gBAAA,EAAkB;AAAA,IAChB,KAAA,EAAO,mBAAA;AAAA,IACP,IAAA,EAAM,GAAA;AAAA,IACN,QAAA,EAAU,SAAA;AAAA,IACV,YAAA,EAAc,EAAA;AAAA,IAAI,aAAA,EAAe,EAAA;AAAA,IACjC,YAAA,EAAc,KAAA;AAAA,IAAO,WAAA,EAAa,MAAA;AAAA,IAClC,WAAA,EAAa,KAAA;AAAA,IAAO,qBAAA,EAAuB,KAAA;AAAA,IAC3C,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU;AAAA,GAC/B;AAAA,EACA,gBAAA,EAAkB;AAAA,IAChB,KAAA,EAAO,mBAAA;AAAA,IACP,IAAA,EAAM,QAAA;AAAA,IACN,QAAA,EAAU,SAAA;AAAA,IACV,YAAA,EAAc,EAAA;AAAA,IAAI,aAAA,EAAe,EAAA;AAAA,IACjC,YAAA,EAAc,KAAA;AAAA,IAAO,WAAA,EAAa,MAAA;AAAA,IAClC,WAAA,EAAa,KAAA;AAAA,IAAO,qBAAA,EAAuB,KAAA;AAAA,IAC3C,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU;AAAA,GAC/B;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,KAAA,EAAO,kBAAA;AAAA,IACP,IAAA,EAAM,MAAA;AAAA,IACN,QAAA,EAAU,SAAA;AAAA,IACV,YAAA,EAAc,EAAA;AAAA,IAAI,aAAA,EAAe,EAAA;AAAA,IACjC,YAAA,EAAc,KAAA;AAAA,IAAO,WAAA,EAAa,MAAA;AAAA,IAClC,WAAA,EAAa,KAAA;AAAA,IAAO,qBAAA,EAAuB,KAAA;AAAA,IAC3C,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU;AAAA,GAC/B;AAAA,EACA,iBAAA,EAAmB;AAAA,IACjB,KAAA,EAAO,qBAAA;AAAA,IACP,IAAA,EAAM,OAAA;AAAA,IACN,QAAA,EAAU,SAAA;AAAA,IACV,YAAA,EAAc,EAAA;AAAA,IAAI,aAAA,EAAe,EAAA;AAAA,IACjC,YAAA,EAAc,KAAA;AAAA,IAAO,WAAA,EAAa,MAAA;AAAA,IAClC,WAAA,EAAa,KAAA;AAAA,IAAO,qBAAA,EAAuB,KAAA;AAAA,IAC3C,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU,KAAA;AAAA,IAC7B,WAAA,EAAa;AAAA,GACf;AAAA,EACA,cAAA,EAAgB;AAAA,IACd,KAAA,EAAO,iBAAA;AAAA,IACP,IAAA,EAAM,UAAA;AAAA,IACN,QAAA,EAAU,SAAA;AAAA,IACV,YAAA,EAAc,EAAA;AAAA,IAAI,aAAA,EAAe,EAAA;AAAA,IACjC,YAAA,EAAc,KAAA;AAAA,IAAO,WAAA,EAAa,MAAA;AAAA,IAClC,WAAA,EAAa,KAAA;AAAA,IAAO,qBAAA,EAAuB,KAAA;AAAA,IAC3C,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU;AAAA,GAC/B;AAAA;AAAA,EAGA,UAAA,EAAY;AAAA,IACV,KAAA,EAAO,aAAA;AAAA,IACP,IAAA,EAAM,YAAA;AAAA,IACN,QAAA,EAAU,WAAA;AAAA,IACV,YAAA,EAAc,GAAA;AAAA,IAAK,aAAA,EAAe,GAAA;AAAA,IAClC,YAAA,EAAc,KAAA;AAAA,IAAO,WAAA,EAAa,YAAA;AAAA,IAClC,WAAA,EAAa,IAAA;AAAA,IAAM,qBAAA,EAAuB,IAAA;AAAA,IAC1C,gBAAA,EAAkB,IAAA;AAAA,IAAM,eAAA,EAAiB,IAAA;AAAA,IACzC,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU;AAAA,GAC/B;AAAA,EACA,WAAA,EAAa;AAAA,IACX,KAAA,EAAO,aAAA;AAAA,IACP,IAAA,EAAM,SAAA;AAAA,IACN,QAAA,EAAU,WAAA;AAAA,IACV,YAAA,EAAc,GAAA;AAAA,IAAK,aAAA,EAAe,GAAA;AAAA,IAClC,YAAA,EAAc,KAAA;AAAA,IAAO,WAAA,EAAa,YAAA;AAAA,IAClC,WAAA,EAAa,IAAA;AAAA,IAAM,qBAAA,EAAuB,IAAA;AAAA,IAC1C,gBAAA,EAAkB,IAAA;AAAA,IAAM,eAAA,EAAiB,IAAA;AAAA,IACzC,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU;AAAA,GAC/B;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,KAAA,EAAO,mBAAA;AAAA,IACP,IAAA,EAAM,iBAAA;AAAA,IACN,QAAA,EAAU,WAAA;AAAA,IACV,YAAA,EAAc,GAAA;AAAA,IAAK,aAAA,EAAe,GAAA;AAAA,IAClC,YAAA,EAAc,KAAA;AAAA,IAAO,WAAA,EAAa,YAAA;AAAA,IAClC,WAAA,EAAa,IAAA;AAAA,IAAM,qBAAA,EAAuB,KAAA;AAAA,IAC1C,gBAAA,EAAkB,IAAA;AAAA,IAAM,eAAA,EAAiB,IAAA;AAAA,IACzC,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU;AAAA,GAC/B;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,KAAA,EAAO,oBAAA;AAAA,IACP,IAAA,EAAM,OAAA;AAAA,IACN,QAAA,EAAU,WAAA;AAAA,IACV,YAAA,EAAc,GAAA;AAAA,IAAK,aAAA,EAAe,GAAA;AAAA,IAClC,YAAA,EAAc,KAAA;AAAA,IAAO,WAAA,EAAa,YAAA;AAAA,IAClC,WAAA,EAAa,IAAA;AAAA,IAAM,qBAAA,EAAuB,IAAA;AAAA,IAC1C,gBAAA,EAAkB,IAAA;AAAA,IAAM,eAAA,EAAiB,IAAA;AAAA,IACzC,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU;AAAA,GAC/B;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,KAAA,EAAO,MAAA;AAAA,IACP,IAAA,EAAM,OAAA;AAAA,IACN,QAAA,EAAU,WAAA;AAAA,IACV,YAAA,EAAc,GAAA;AAAA,IAAK,aAAA,EAAe,GAAA;AAAA,IAClC,YAAA,EAAc,MAAA;AAAA,IAAQ,WAAA,EAAa,YAAA;AAAA,IACnC,WAAA,EAAa,IAAA;AAAA,IAAM,qBAAA,EAAuB,KAAA;AAAA,IAC1C,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU,KAAA;AAAA,IAC7B,WAAA,EAAa,CAAA;AAAA,IAAG,WAAA,EAAa;AAAA,GAC/B;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,KAAA,EAAO,MAAA;AAAA,IACP,IAAA,EAAM,UAAA;AAAA,IACN,QAAA,EAAU,WAAA;AAAA,IACV,YAAA,EAAc,GAAA;AAAA,IAAK,aAAA,EAAe,GAAA;AAAA,IAClC,YAAA,EAAc,MAAA;AAAA,IAAQ,WAAA,EAAa,YAAA;AAAA,IACnC,WAAA,EAAa,IAAA;AAAA,IAAM,qBAAA,EAAuB,KAAA;AAAA,IAC1C,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU,KAAA;AAAA,IAC7B,WAAA,EAAa,CAAA;AAAA,IAAG,WAAA,EAAa;AAAA,GAC/B;AAAA;AAAA,EAGA,UAAA,EAAY;AAAA,IACV,KAAA,EAAO,iBAAA;AAAA,IACP,IAAA,EAAM,YAAA;AAAA,IACN,QAAA,EAAU,UAAA;AAAA,IACV,YAAA,EAAc,GAAA;AAAA,IAAK,aAAA,EAAe,EAAA;AAAA,IAClC,YAAA,EAAc,MAAA;AAAA,IAAQ,WAAA,EAAa,MAAA;AAAA,IACnC,WAAA,EAAa,KAAA;AAAA,IAAO,qBAAA,EAAuB,KAAA;AAAA,IAC3C,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU,KAAA;AAAA,IAC7B,WAAA,EAAa,CAAA;AAAA,IAAG,WAAA,EAAa;AAAA,GAC/B;AAAA,EACA,KAAA,EAAO;AAAA,IACL,KAAA,EAAO,OAAA;AAAA,IACP,IAAA,EAAM,OAAA;AAAA,IACN,QAAA,EAAU,UAAA;AAAA,IACV,YAAA,EAAc,GAAA;AAAA,IAAK,aAAA,EAAe,GAAA;AAAA,IAClC,YAAA,EAAc,MAAA;AAAA,IAAQ,WAAA,EAAa,MAAA;AAAA,IACnC,WAAA,EAAa,KAAA;AAAA,IAAO,qBAAA,EAAuB,KAAA;AAAA,IAC3C,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU,KAAA;AAAA,IAC7B,WAAA,EAAa,CAAA;AAAA,IAAG,WAAA,EAAa;AAAA,GAC/B;AAAA;AAAA,EAGA,UAAA,EAAY;AAAA,IACV,KAAA,EAAO,aAAA;AAAA,IACP,IAAA,EAAM,MAAA;AAAA,IACN,QAAA,EAAU,MAAA;AAAA,IACV,YAAA,EAAc,EAAA;AAAA,IAAI,aAAA,EAAe,EAAA;AAAA,IACjC,YAAA,EAAc,KAAA;AAAA,IAAO,WAAA,EAAa,MAAA;AAAA,IAClC,WAAA,EAAa,KAAA;AAAA,IAAO,qBAAA,EAAuB,KAAA;AAAA,IAC3C,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU,KAAA;AAAA,IAC7B,WAAA,EAAa,CAAA;AAAA,IAAG,WAAA,EAAa;AAAA,GAC/B;AAAA,EACA,mBAAA,EAAqB;AAAA,IACnB,KAAA,EAAO,uBAAA;AAAA,IACP,IAAA,EAAM,aAAA;AAAA,IACN,QAAA,EAAU,MAAA;AAAA,IACV,YAAA,EAAc,EAAA;AAAA,IAAI,aAAA,EAAe,EAAA;AAAA,IACjC,YAAA,EAAc,KAAA;AAAA,IAAO,WAAA,EAAa,MAAA;AAAA,IAClC,WAAA,EAAa,KAAA;AAAA,IAAO,qBAAA,EAAuB,KAAA;AAAA,IAC3C,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU,KAAA;AAAA,IAC7B,WAAA,EAAa,CAAA;AAAA,IAAG,WAAA,EAAa;AAAA,GAC/B;AAAA,EACA,SAAA,EAAW;AAAA,IACT,KAAA,EAAO,YAAA;AAAA,IACP,IAAA,EAAM,WAAA;AAAA,IACN,QAAA,EAAU,MAAA;AAAA,IACV,YAAA,EAAc,EAAA;AAAA,IAAI,aAAA,EAAe,EAAA;AAAA,IACjC,YAAA,EAAc,KAAA;AAAA,IAAO,WAAA,EAAa,MAAA;AAAA,IAClC,WAAA,EAAa,KAAA;AAAA,IAAO,qBAAA,EAAuB,KAAA;AAAA,IAC3C,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU,KAAA;AAAA,IAC7B,WAAA,EAAa;AAAA,GACf;AAAA,EACA,UAAA,EAAY;AAAA,IACV,KAAA,EAAO,aAAA;AAAA,IACP,IAAA,EAAM,YAAA;AAAA,IACN,QAAA,EAAU,MAAA;AAAA,IACV,YAAA,EAAc,EAAA;AAAA,IAAI,aAAA,EAAe,EAAA;AAAA,IACjC,YAAA,EAAc,KAAA;AAAA,IAAO,WAAA,EAAa,MAAA;AAAA,IAClC,WAAA,EAAa,KAAA;AAAA,IAAO,qBAAA,EAAuB,KAAA;AAAA,IAC3C,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU,KAAA;AAAA,IAC7B,WAAA,EAAa;AAAA,GACf;AAAA,EACA,SAAA,EAAW;AAAA,IACT,KAAA,EAAO,YAAA;AAAA,IACP,IAAA,EAAM,UAAA;AAAA,IACN,QAAA,EAAU,MAAA;AAAA,IACV,YAAA,EAAc,EAAA;AAAA,IAAI,aAAA,EAAe,EAAA;AAAA,IACjC,YAAA,EAAc,KAAA;AAAA,IAAO,WAAA,EAAa,MAAA;AAAA,IAClC,WAAA,EAAa,KAAA;AAAA,IAAO,qBAAA,EAAuB,KAAA;AAAA,IAC3C,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU,KAAA;AAAA,IAC7B,WAAA,EAAa,CAAA;AAAA,IAAG,WAAA,EAAa;AAAA,GAC/B;AAAA,EACA,kBAAA,EAAoB;AAAA,IAClB,KAAA,EAAO,sBAAA;AAAA,IACP,IAAA,EAAM,aAAA;AAAA,IACN,QAAA,EAAU,MAAA;AAAA,IACV,YAAA,EAAc,EAAA;AAAA,IAAI,aAAA,EAAe,EAAA;AAAA,IACjC,YAAA,EAAc,KAAA;AAAA,IAAO,WAAA,EAAa,MAAA;AAAA,IAClC,WAAA,EAAa,KAAA;AAAA,IAAO,qBAAA,EAAuB,KAAA;AAAA,IAC3C,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU,KAAA;AAAA,IAC7B,WAAA,EAAa,CAAA;AAAA,IAAG,WAAA,EAAa;AAAA,GAC/B;AAAA;AAAA,EAGA,YAAA,EAAc;AAAA,IACZ,KAAA,EAAO,cAAA;AAAA,IACP,IAAA,EAAM,eAAA;AAAA,IACN,QAAA,EAAU,cAAA;AAAA,IACV,YAAA,EAAc,EAAA;AAAA,IAAI,aAAA,EAAe,EAAA;AAAA,IACjC,YAAA,EAAc,KAAA;AAAA,IAAO,WAAA,EAAa,MAAA;AAAA,IAClC,WAAA,EAAa,KAAA;AAAA,IAAO,qBAAA,EAAuB,KAAA;AAAA,IAC3C,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU;AAAA,GAC/B;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,KAAA,EAAO,kBAAA;AAAA,IACP,IAAA,EAAM,gBAAA;AAAA,IACN,QAAA,EAAU,cAAA;AAAA,IACV,YAAA,EAAc,EAAA;AAAA,IAAI,aAAA,EAAe,EAAA;AAAA,IACjC,YAAA,EAAc,KAAA;AAAA,IAAO,WAAA,EAAa,MAAA;AAAA,IAClC,WAAA,EAAa,IAAA;AAAA,IAAM,qBAAA,EAAuB,KAAA;AAAA,IAC1C,gBAAA,EAAkB,IAAA;AAAA,IAClB,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU;AAAA,GAC/B;AAAA,EACA,gBAAA,EAAkB;AAAA,IAChB,KAAA,EAAO,mBAAA;AAAA,IACP,IAAA,EAAM,WAAA;AAAA,IACN,QAAA,EAAU,cAAA;AAAA,IACV,YAAA,EAAc,EAAA;AAAA,IAAI,aAAA,EAAe,EAAA;AAAA,IACjC,YAAA,EAAc,KAAA;AAAA,IAAO,WAAA,EAAa,MAAA;AAAA,IAClC,WAAA,EAAa,KAAA;AAAA,IAAO,qBAAA,EAAuB,KAAA;AAAA,IAC3C,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU;AAAA,GAC/B;AAAA;AAAA,EAGA,gBAAA,EAAkB;AAAA,IAChB,KAAA,EAAO,mBAAA;AAAA,IACP,IAAA,EAAM,gBAAA;AAAA,IACN,QAAA,EAAU,cAAA;AAAA,IACV,YAAA,EAAc,GAAA;AAAA,IAAK,aAAA,EAAe,EAAA;AAAA,IAClC,YAAA,EAAc,KAAA;AAAA,IAAO,WAAA,EAAa,YAAA;AAAA,IAClC,WAAA,EAAa,KAAA;AAAA,IAAO,qBAAA,EAAuB,KAAA;AAAA,IAC3C,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU;AAAA,GAC/B;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,KAAA,EAAO,kBAAA;AAAA,IACP,IAAA,EAAM,WAAA;AAAA,IACN,QAAA,EAAU,cAAA;AAAA,IACV,YAAA,EAAc,GAAA;AAAA,IAAK,aAAA,EAAe,EAAA;AAAA,IAClC,YAAA,EAAc,KAAA;AAAA,IAAO,WAAA,EAAa,YAAA;AAAA,IAClC,WAAA,EAAa,IAAA;AAAA,IAAM,qBAAA,EAAuB,KAAA;AAAA,IAC1C,gBAAA,EAAkB,IAAA;AAAA,IAClB,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU;AAAA,GAC/B;AAAA,EACA,gBAAA,EAAkB;AAAA,IAChB,KAAA,EAAO,mBAAA;AAAA,IACP,IAAA,EAAM,OAAA;AAAA,IACN,QAAA,EAAU,cAAA;AAAA,IACV,YAAA,EAAc,GAAA;AAAA,IAAK,aAAA,EAAe,EAAA;AAAA,IAClC,YAAA,EAAc,KAAA;AAAA,IAAO,WAAA,EAAa,YAAA;AAAA,IAClC,WAAA,EAAa,KAAA;AAAA,IAAO,qBAAA,EAAuB,KAAA;AAAA,IAC3C,UAAA,EAAY,KAAA;AAAA,IAAO,QAAA,EAAU;AAAA;AAEjC;AAEO,SAAS,eAAe,IAAA,EAAwC;AACrE,EAAA,OAAO,qBAAqB,IAAI,CAAA;AAClC;AAEO,IAAM,4BAAA,GAA+B;AAAA,EAC1C,MAAA;AAAA,EACA,UAAA;AAAA,EACA,aAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,kBAAA;AAAA,EACA,aAAA;AAAA,EACA,UAAA;AAAA,EACA,cAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA;AAAA,EACA,YAAA;AAAA,EACA,OAAA;AAAA,EACA,iBAAA;AAAA,EACA,kBAAA;AAAA,EACA,iBAAA;AAAA,EACA;AACF;AAEA,IAAM,uBAAA,GAEF;AAAA,EACF,IAAA,EAAM,EAAE,QAAA,EAAU,EAAA,EAAI,WAAW,EAAA,EAAG;AAAA,EACpC,QAAA,EAAU,EAAE,QAAA,EAAU,EAAA,EAAI,WAAW,EAAA,EAAG;AAAA,EACxC,WAAA,EAAa,EAAE,QAAA,EAAU,EAAA,EAAI,WAAW,EAAA,EAAG;AAAA,EAC3C,UAAA,EAAY,EAAE,QAAA,EAAU,EAAA,EAAI,WAAW,EAAA,EAAG;AAAA,EAC1C,UAAA,EAAY,EAAE,QAAA,EAAU,EAAA,EAAI,WAAW,EAAA,EAAG;AAAA,EAC1C,gBAAA,EAAkB,EAAE,QAAA,EAAU,EAAA,EAAI,WAAW,EAAA,EAAG;AAAA,EAChD,WAAA,EAAa,EAAE,QAAA,EAAU,EAAA,EAAI,WAAW,EAAA,EAAG;AAAA,EAC3C,QAAA,EAAU,EAAE,QAAA,EAAU,EAAA,EAAI,WAAW,EAAA,EAAG;AAAA,EACxC,YAAA,EAAc,EAAE,QAAA,EAAU,EAAA,EAAI,WAAW,EAAA,EAAG;AAAA,EAC5C,UAAA,EAAY,EAAE,QAAA,EAAU,GAAA,EAAK,WAAW,GAAA,EAAI;AAAA,EAC5C,WAAA,EAAa,EAAE,QAAA,EAAU,GAAA,EAAK,WAAW,GAAA,EAAI;AAAA,EAC7C,eAAA,EAAiB,EAAE,QAAA,EAAU,GAAA,EAAK,WAAW,GAAA,EAAI;AAAA,EACjD,eAAA,EAAiB,EAAE,QAAA,EAAU,GAAA,EAAK,WAAW,GAAA,EAAI;AAAA,EACjD,IAAA,EAAM,EAAE,QAAA,EAAU,GAAA,EAAK,WAAW,GAAA,EAAI;AAAA,EACtC,IAAA,EAAM,EAAE,QAAA,EAAU,GAAA,EAAK,WAAW,EAAA,EAAG;AAAA,EACrC,UAAA,EAAY,EAAE,QAAA,EAAU,EAAA,EAAI,WAAW,EAAA,EAAG;AAAA,EAC1C,KAAA,EAAO,EAAE,QAAA,EAAU,GAAA,EAAK,WAAW,EAAA,EAAG;AAAA,EACtC,eAAA,EAAiB,EAAE,QAAA,EAAU,EAAA,EAAI,WAAW,EAAA,EAAG;AAAA,EAC/C,gBAAA,EAAkB,EAAE,QAAA,EAAU,GAAA,EAAK,WAAW,EAAA,EAAG;AAAA,EACjD,eAAA,EAAiB,EAAE,QAAA,EAAU,GAAA,EAAK,WAAW,EAAA,EAAG;AAAA,EAChD,gBAAA,EAAkB,EAAE,QAAA,EAAU,GAAA,EAAK,WAAW,EAAA;AAChD,CAAA;AAEA,IAAM,cAAA,GAAiB,IAAI,GAAA,CAAqB,4BAA4B,CAAA;AAErE,SAAS,uBAAuB,IAAA,EAAgC;AACrE,EAAA,OAAO,cAAA,CAAe,IAAI,IAAI,CAAA;AAChC;AAEO,SAAS,mBAAmB,IAAA,EAAwC;AACzE,EAAA,MAAM,IAAA,GAAO,eAAe,IAAI,CAAA;AAChC,EAAA,MAAM,GAAA,GAAM,wBAAwB,IAAI,CAAA;AACxC,EAAA,OAAO;AAAA,IACL,OAAO,IAAA,CAAK,YAAA;AAAA,IACZ,QAAQ,IAAA,CAAK,aAAA;AAAA,IACb,QAAA,EAAU,IAAA,CAAK,QAAA,IAAY,GAAA,EAAK,YAAY,IAAA,CAAK,YAAA;AAAA,IACjD,SAAA,EAAW,IAAA,CAAK,SAAA,IAAa,GAAA,EAAK,aAAa,IAAA,CAAK,aAAA;AAAA,IACpD,SAAA,EAAW,IAAA,CAAK,SAAA,IAAa,sBAAA,CAAuB,IAAI;AAAA,GAC1D;AACF","file":"chunk-L5Z22RLX.js","sourcesContent":["import type { BpmnElementType, BpmnElementMeta, BpmnElementSize } from \"./types\";\n\nexport const BPMN_ELEMENT_CATALOG: Record<BpmnElementType, BpmnElementMeta> = {\n // ─── Events ──────────────────────────────────────────────────────────────────\n StartEvent: {\n label: \"Start Event\",\n icon: \"Circle\",\n category: \"event\",\n defaultWidth: 36, defaultHeight: 36,\n handlePolicy: \"source\", orientation: \"free\",\n isContainer: false, acceptsBoundaryEvents: false,\n eventSemantics: \"start\",\n canBeStart: true, canBeEnd: false,\n maxIncoming: 0, maxOutgoing: 1,\n },\n EndEvent: {\n label: \"End Event\",\n icon: \"CircleDot\",\n category: \"event\",\n defaultWidth: 36, defaultHeight: 36,\n handlePolicy: \"target\", orientation: \"free\",\n isContainer: false, acceptsBoundaryEvents: false,\n eventSemantics: \"end\",\n canBeStart: false, canBeEnd: true,\n maxOutgoing: 0,\n },\n IntermediateCatchEvent: {\n label: \"Intermediate Catch Event\",\n icon: \"Clock3\",\n category: \"event\",\n defaultWidth: 36, defaultHeight: 36,\n handlePolicy: \"all\", orientation: \"free\",\n isContainer: false, acceptsBoundaryEvents: false,\n eventSemantics: \"intermediateCatch\",\n canBeStart: false, canBeEnd: false,\n },\n IntermediateThrowEvent: {\n label: \"Intermediate Throw Event\",\n icon: \"Send\",\n category: \"event\",\n defaultWidth: 36, defaultHeight: 36,\n handlePolicy: \"all\", orientation: \"free\",\n isContainer: false, acceptsBoundaryEvents: false,\n eventSemantics: \"intermediateThrow\",\n canBeStart: false, canBeEnd: false,\n },\n BoundaryEvent: {\n label: \"Boundary Event\",\n icon: \"AlarmClock\",\n category: \"event\",\n defaultWidth: 36, defaultHeight: 36,\n handlePolicy: \"source\", orientation: \"free\",\n isContainer: false, acceptsBoundaryEvents: false,\n eventSemantics: \"boundary\",\n canBeStart: false, canBeEnd: false,\n maxIncoming: 0,\n },\n\n // ─── Tasks ───────────────────────────────────────────────────────────────────\n Task: {\n label: \"Task\",\n icon: \"CheckSquare\",\n category: \"task\",\n defaultWidth: 120, defaultHeight: 60,\n handlePolicy: \"all\", orientation: \"free\",\n isContainer: false, acceptsBoundaryEvents: true,\n supportsMarkers: true,\n canBeStart: false, canBeEnd: false,\n },\n UserTask: {\n label: \"User Task\",\n icon: \"UserRound\",\n category: \"task\",\n defaultWidth: 120, defaultHeight: 60,\n handlePolicy: \"all\", orientation: \"free\",\n isContainer: false, acceptsBoundaryEvents: true,\n supportsMarkers: true,\n canBeStart: false, canBeEnd: false,\n },\n ServiceTask: {\n label: \"Service Task\",\n icon: \"Cog\",\n category: \"task\",\n defaultWidth: 120, defaultHeight: 60,\n handlePolicy: \"all\", orientation: \"free\",\n isContainer: false, acceptsBoundaryEvents: true,\n supportsMarkers: true,\n canBeStart: false, canBeEnd: false,\n },\n ScriptTask: {\n label: \"Script Task\",\n icon: \"FileCode\",\n category: \"task\",\n defaultWidth: 120, defaultHeight: 60,\n handlePolicy: \"all\", orientation: \"free\",\n isContainer: false, acceptsBoundaryEvents: true,\n supportsMarkers: true,\n canBeStart: false, canBeEnd: false,\n },\n ManualTask: {\n label: \"Manual Task\",\n icon: \"Hand\",\n category: \"task\",\n defaultWidth: 120, defaultHeight: 60,\n handlePolicy: \"all\", orientation: \"free\",\n isContainer: false, acceptsBoundaryEvents: true,\n supportsMarkers: true,\n canBeStart: false, canBeEnd: false,\n },\n BusinessRuleTask: {\n label: \"Business Rule Task\",\n icon: \"Table2\",\n category: \"task\",\n defaultWidth: 120, defaultHeight: 60,\n handlePolicy: \"all\", orientation: \"free\",\n isContainer: false, acceptsBoundaryEvents: true,\n supportsMarkers: true,\n canBeStart: false, canBeEnd: false,\n },\n ReceiveTask: {\n label: \"Receive Task\",\n icon: \"Inbox\",\n category: \"task\",\n defaultWidth: 120, defaultHeight: 60,\n handlePolicy: \"all\", orientation: \"free\",\n isContainer: false, acceptsBoundaryEvents: true,\n supportsMarkers: true,\n canBeStart: false, canBeEnd: false,\n },\n SendTask: {\n label: \"Send Task\",\n icon: \"Send\",\n category: \"task\",\n defaultWidth: 120, defaultHeight: 60,\n handlePolicy: \"all\", orientation: \"free\",\n isContainer: false, acceptsBoundaryEvents: true,\n supportsMarkers: true,\n canBeStart: false, canBeEnd: false,\n },\n CallActivity: {\n label: \"Call Activity\",\n icon: \"ExternalLink\",\n category: \"task\",\n defaultWidth: 120, defaultHeight: 60,\n handlePolicy: \"all\", orientation: \"free\",\n isContainer: false, acceptsBoundaryEvents: true,\n supportsMarkers: true,\n canBeStart: false, canBeEnd: false,\n },\n\n // ─── Gateways ────────────────────────────────────────────────────────────────\n ExclusiveGateway: {\n label: \"Exclusive Gateway\",\n icon: \"X\",\n category: \"gateway\",\n defaultWidth: 50, defaultHeight: 50,\n handlePolicy: \"all\", orientation: \"free\",\n isContainer: false, acceptsBoundaryEvents: false,\n canBeStart: false, canBeEnd: false,\n },\n InclusiveGateway: {\n label: \"Inclusive Gateway\",\n icon: \"Circle\",\n category: \"gateway\",\n defaultWidth: 50, defaultHeight: 50,\n handlePolicy: \"all\", orientation: \"free\",\n isContainer: false, acceptsBoundaryEvents: false,\n canBeStart: false, canBeEnd: false,\n },\n ParallelGateway: {\n label: \"Parallel Gateway\",\n icon: \"Plus\",\n category: \"gateway\",\n defaultWidth: 50, defaultHeight: 50,\n handlePolicy: \"all\", orientation: \"free\",\n isContainer: false, acceptsBoundaryEvents: false,\n canBeStart: false, canBeEnd: false,\n },\n EventBasedGateway: {\n label: \"Event-Based Gateway\",\n icon: \"Radio\",\n category: \"gateway\",\n defaultWidth: 50, defaultHeight: 50,\n handlePolicy: \"all\", orientation: \"free\",\n isContainer: false, acceptsBoundaryEvents: false,\n canBeStart: false, canBeEnd: false,\n maxIncoming: 1,\n },\n ComplexGateway: {\n label: \"Complex Gateway\",\n icon: \"Asterisk\",\n category: \"gateway\",\n defaultWidth: 50, defaultHeight: 50,\n handlePolicy: \"all\", orientation: \"free\",\n isContainer: false, acceptsBoundaryEvents: false,\n canBeStart: false, canBeEnd: false,\n },\n\n // ─── Containers ───────────────────────────────────────────────────────────────\n SubProcess: {\n label: \"Sub-Process\",\n icon: \"PlusSquare\",\n category: \"container\",\n defaultWidth: 350, defaultHeight: 200,\n handlePolicy: \"all\", orientation: \"horizontal\",\n isContainer: true, acceptsBoundaryEvents: true,\n supportsCollapse: true, supportsMarkers: true,\n canBeStart: false, canBeEnd: false,\n },\n Transaction: {\n label: \"Transaction\",\n icon: \"Receipt\",\n category: \"container\",\n defaultWidth: 350, defaultHeight: 200,\n handlePolicy: \"all\", orientation: \"horizontal\",\n isContainer: true, acceptsBoundaryEvents: true,\n supportsCollapse: true, supportsMarkers: true,\n canBeStart: false, canBeEnd: false,\n },\n EventSubProcess: {\n label: \"Event Sub-Process\",\n icon: \"CircleDotDashed\",\n category: \"container\",\n defaultWidth: 350, defaultHeight: 200,\n handlePolicy: \"all\", orientation: \"horizontal\",\n isContainer: true, acceptsBoundaryEvents: false,\n supportsCollapse: true, supportsMarkers: true,\n canBeStart: false, canBeEnd: false,\n },\n AdHocSubProcess: {\n label: \"Ad-Hoc Sub-Process\",\n icon: \"Waves\",\n category: \"container\",\n defaultWidth: 350, defaultHeight: 200,\n handlePolicy: \"all\", orientation: \"horizontal\",\n isContainer: true, acceptsBoundaryEvents: true,\n supportsCollapse: true, supportsMarkers: true,\n canBeStart: false, canBeEnd: false,\n },\n Pool: {\n label: \"Pool\",\n icon: \"Rows3\",\n category: \"container\",\n defaultWidth: 600, defaultHeight: 200,\n handlePolicy: \"none\", orientation: \"horizontal\",\n isContainer: true, acceptsBoundaryEvents: false,\n canBeStart: false, canBeEnd: false,\n maxIncoming: 0, maxOutgoing: 0,\n },\n Lane: {\n label: \"Lane\",\n icon: \"PanelTop\",\n category: \"container\",\n defaultWidth: 600, defaultHeight: 120,\n handlePolicy: \"none\", orientation: \"horizontal\",\n isContainer: true, acceptsBoundaryEvents: false,\n canBeStart: false, canBeEnd: false,\n maxIncoming: 0, maxOutgoing: 0,\n },\n\n // ─── Artifacts ────────────────────────────────────────────────────────────────\n Annotation: {\n label: \"Text Annotation\",\n icon: \"StickyNote\",\n category: \"artifact\",\n defaultWidth: 100, defaultHeight: 60,\n handlePolicy: \"none\", orientation: \"free\",\n isContainer: false, acceptsBoundaryEvents: false,\n canBeStart: false, canBeEnd: false,\n maxIncoming: 0, maxOutgoing: 0,\n },\n Group: {\n label: \"Group\",\n icon: \"Group\",\n category: \"artifact\",\n defaultWidth: 300, defaultHeight: 200,\n handlePolicy: \"none\", orientation: \"free\",\n isContainer: false, acceptsBoundaryEvents: false,\n canBeStart: false, canBeEnd: false,\n maxIncoming: 0, maxOutgoing: 0,\n },\n\n // ─── Data (BPMN 2.0 §10.3) ───────────────────────────────────────────────────\n DataObject: {\n label: \"Data Object\",\n icon: \"File\",\n category: \"data\",\n defaultWidth: 36, defaultHeight: 50,\n handlePolicy: \"all\", orientation: \"free\",\n isContainer: false, acceptsBoundaryEvents: false,\n canBeStart: false, canBeEnd: false,\n maxIncoming: 0, maxOutgoing: 0,\n },\n DataObjectReference: {\n label: \"Data Object Reference\",\n icon: \"FileSymlink\",\n category: \"data\",\n defaultWidth: 36, defaultHeight: 50,\n handlePolicy: \"all\", orientation: \"free\",\n isContainer: false, acceptsBoundaryEvents: false,\n canBeStart: false, canBeEnd: false,\n maxIncoming: 0, maxOutgoing: 0,\n },\n DataInput: {\n label: \"Data Input\",\n icon: \"FileInput\",\n category: \"data\",\n defaultWidth: 36, defaultHeight: 50,\n handlePolicy: \"all\", orientation: \"free\",\n isContainer: false, acceptsBoundaryEvents: false,\n canBeStart: false, canBeEnd: false,\n maxIncoming: 0,\n },\n DataOutput: {\n label: \"Data Output\",\n icon: \"FileOutput\",\n category: \"data\",\n defaultWidth: 36, defaultHeight: 50,\n handlePolicy: \"all\", orientation: \"free\",\n isContainer: false, acceptsBoundaryEvents: false,\n canBeStart: false, canBeEnd: false,\n maxOutgoing: 0,\n },\n DataStore: {\n label: \"Data Store\",\n icon: \"Database\",\n category: \"data\",\n defaultWidth: 50, defaultHeight: 50,\n handlePolicy: \"all\", orientation: \"free\",\n isContainer: false, acceptsBoundaryEvents: false,\n canBeStart: false, canBeEnd: false,\n maxIncoming: 0, maxOutgoing: 0,\n },\n DataStoreReference: {\n label: \"Data Store Reference\",\n icon: \"DatabaseZap\",\n category: \"data\",\n defaultWidth: 50, defaultHeight: 50,\n handlePolicy: \"all\", orientation: \"free\",\n isContainer: false, acceptsBoundaryEvents: false,\n canBeStart: false, canBeEnd: false,\n maxIncoming: 0, maxOutgoing: 0,\n },\n\n // ─── Conversation (BPMN 2.0 §12) ─────────────────────────────────────────────\n Conversation: {\n label: \"Conversation\",\n icon: \"MessageCircle\",\n category: \"conversation\",\n defaultWidth: 60, defaultHeight: 52,\n handlePolicy: \"all\", orientation: \"free\",\n isContainer: false, acceptsBoundaryEvents: false,\n canBeStart: false, canBeEnd: false,\n },\n SubConversation: {\n label: \"Sub-Conversation\",\n icon: \"MessagesSquare\",\n category: \"conversation\",\n defaultWidth: 60, defaultHeight: 52,\n handlePolicy: \"all\", orientation: \"free\",\n isContainer: true, acceptsBoundaryEvents: false,\n supportsCollapse: true,\n canBeStart: false, canBeEnd: false,\n },\n CallConversation: {\n label: \"Call Conversation\",\n icon: \"PhoneCall\",\n category: \"conversation\",\n defaultWidth: 60, defaultHeight: 52,\n handlePolicy: \"all\", orientation: \"free\",\n isContainer: false, acceptsBoundaryEvents: false,\n canBeStart: false, canBeEnd: false,\n },\n\n // ─── Choreography (BPMN 2.0 §11) ─────────────────────────────────────────────\n ChoreographyTask: {\n label: \"Choreography Task\",\n icon: \"ArrowLeftRight\",\n category: \"choreography\",\n defaultWidth: 120, defaultHeight: 80,\n handlePolicy: \"all\", orientation: \"horizontal\",\n isContainer: false, acceptsBoundaryEvents: false,\n canBeStart: false, canBeEnd: false,\n },\n SubChoreography: {\n label: \"Sub-Choreography\",\n icon: \"BoxSelect\",\n category: \"choreography\",\n defaultWidth: 120, defaultHeight: 80,\n handlePolicy: \"all\", orientation: \"horizontal\",\n isContainer: true, acceptsBoundaryEvents: false,\n supportsCollapse: true,\n canBeStart: false, canBeEnd: false,\n },\n CallChoreography: {\n label: \"Call Choreography\",\n icon: \"Phone\",\n category: \"choreography\",\n defaultWidth: 120, defaultHeight: 80,\n handlePolicy: \"all\", orientation: \"horizontal\",\n isContainer: false, acceptsBoundaryEvents: false,\n canBeStart: false, canBeEnd: false,\n },\n};\n\nexport function getElementMeta(type: BpmnElementType): BpmnElementMeta {\n return BPMN_ELEMENT_CATALOG[type];\n}\n\nexport const BPMN_RESIZABLE_ELEMENT_TYPES = [\n \"Task\",\n \"UserTask\",\n \"ServiceTask\",\n \"ScriptTask\",\n \"ManualTask\",\n \"BusinessRuleTask\",\n \"ReceiveTask\",\n \"SendTask\",\n \"CallActivity\",\n \"SubProcess\",\n \"Transaction\",\n \"EventSubProcess\",\n \"AdHocSubProcess\",\n \"Pool\",\n \"Lane\",\n \"Annotation\",\n \"Group\",\n \"SubConversation\",\n \"ChoreographyTask\",\n \"SubChoreography\",\n \"CallChoreography\",\n] satisfies BpmnElementType[];\n\nconst BPMN_MIN_SIZE_OVERRIDES: Partial<\n Record<BpmnElementType, Pick<BpmnElementSize, \"minWidth\" | \"minHeight\">>\n> = {\n Task: { minWidth: 80, minHeight: 48 },\n UserTask: { minWidth: 80, minHeight: 48 },\n ServiceTask: { minWidth: 80, minHeight: 48 },\n ScriptTask: { minWidth: 80, minHeight: 48 },\n ManualTask: { minWidth: 80, minHeight: 48 },\n BusinessRuleTask: { minWidth: 80, minHeight: 48 },\n ReceiveTask: { minWidth: 80, minHeight: 48 },\n SendTask: { minWidth: 80, minHeight: 48 },\n CallActivity: { minWidth: 80, minHeight: 48 },\n SubProcess: { minWidth: 160, minHeight: 100 },\n Transaction: { minWidth: 160, minHeight: 100 },\n EventSubProcess: { minWidth: 160, minHeight: 100 },\n AdHocSubProcess: { minWidth: 160, minHeight: 100 },\n Pool: { minWidth: 240, minHeight: 120 },\n Lane: { minWidth: 240, minHeight: 80 },\n Annotation: { minWidth: 80, minHeight: 40 },\n Group: { minWidth: 120, minHeight: 80 },\n SubConversation: { minWidth: 60, minHeight: 52 },\n ChoreographyTask: { minWidth: 100, minHeight: 70 },\n SubChoreography: { minWidth: 100, minHeight: 70 },\n CallChoreography: { minWidth: 100, minHeight: 70 },\n};\n\nconst resizableTypes = new Set<BpmnElementType>(BPMN_RESIZABLE_ELEMENT_TYPES);\n\nexport function isBpmnElementResizable(type: BpmnElementType): boolean {\n return resizableTypes.has(type);\n}\n\nexport function getBpmnElementSize(type: BpmnElementType): BpmnElementSize {\n const meta = getElementMeta(type);\n const min = BPMN_MIN_SIZE_OVERRIDES[type];\n return {\n width: meta.defaultWidth,\n height: meta.defaultHeight,\n minWidth: meta.minWidth ?? min?.minWidth ?? meta.defaultWidth,\n minHeight: meta.minHeight ?? min?.minHeight ?? meta.defaultHeight,\n resizable: meta.resizable ?? isBpmnElementResizable(type),\n };\n}\n"]}
@@ -75,7 +75,13 @@ function isManual(nodeType) {
75
75
  return TASK_TYPES.has(nodeType) || nodeType === "IntermediateCatchEvent" || nodeType === "BoundaryEvent";
76
76
  }
77
77
  function isSubProcess(nodeType) {
78
- return nodeType === "SubProcess" || nodeType === "Transaction" || nodeType === "AdHocSubProcess";
78
+ return nodeType === "SubProcess" || nodeType === "Transaction" || nodeType === "EventSubProcess" || nodeType === "AdHocSubProcess";
79
+ }
80
+ function isRootProcessStart(diagram, node) {
81
+ if (node.type !== "StartEvent") return false;
82
+ if (!node.parentId) return true;
83
+ const parent = nodeById(diagram, node.parentId);
84
+ return !parent || !isSubProcess(parent.type);
79
85
  }
80
86
  function getScopeId(diagram, nodeId) {
81
87
  const node = nodeById(diagram, nodeId);
@@ -311,9 +317,7 @@ function fireAutomatic(diagram, state, token) {
311
317
  }
312
318
  function createSimulation(diagram, initialVariables = {}) {
313
319
  _tokenCounter = 0;
314
- const startEvents = diagram.nodes.filter(
315
- (n) => n.type === "StartEvent" && !n.parentId
316
- );
320
+ const startEvents = diagram.nodes.filter((n) => isRootProcessStart(diagram, n));
317
321
  const tokens = startEvents.map((n) => ({
318
322
  id: nextTokenId(),
319
323
  elementId: n.id,
@@ -472,5 +476,5 @@ function setVariable(state, key, value) {
472
476
  }
473
477
 
474
478
  export { createSimulation, fire, getFireable, isCompleted, setVariable, tick };
475
- //# sourceMappingURL=chunk-57LA2WSJ.js.map
476
- //# sourceMappingURL=chunk-57LA2WSJ.js.map
479
+ //# sourceMappingURL=chunk-QOGZITWB.js.map
480
+ //# sourceMappingURL=chunk-QOGZITWB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/simulation/evaluator.ts","../src/simulation/index.ts"],"names":["next"],"mappings":";AAEA,SAAS,WAAW,GAAA,EAAwC;AAC1D,EAAA,IAAI,GAAA,KAAQ,QAAQ,OAAO,IAAA;AAC3B,EAAA,IAAI,GAAA,KAAQ,SAAS,OAAO,KAAA;AAC5B,EAAA,IAAK,GAAA,CAAI,UAAA,CAAW,GAAG,CAAA,IAAK,IAAI,QAAA,CAAS,GAAG,CAAA,IAAO,GAAA,CAAI,UAAA,CAAW,GAAG,CAAA,IAAK,GAAA,CAAI,SAAS,GAAG,CAAA;AACxF,IAAA,OAAO,GAAA,CAAI,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA;AACxB,EAAA,MAAM,CAAA,GAAI,OAAO,GAAG,CAAA;AACpB,EAAA,OAAO,KAAA,CAAM,CAAC,CAAA,GAAI,GAAA,GAAM,CAAA;AAC1B;AAMO,SAAS,aAAA,CAAc,MAAc,SAAA,EAAkC;AAC5E,EAAA,MAAM,IAAA,GAAO,KAAK,IAAA,EAAK,CAAE,QAAQ,YAAA,EAAc,EAAE,EAAE,IAAA,EAAK;AACxD,EAAA,IAAI,CAAC,MAAM,OAAO,KAAA;AAGlB,EAAA,IAAI,IAAA,CAAK,UAAA,CAAW,GAAG,CAAA,EAAG;AACxB,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,CAAC,EAAE,IAAA,EAAK;AACjC,IAAA,OAAO,CAAC,OAAA,CAAQ,SAAA,CAAU,KAAK,CAAC,CAAA;AAAA,EAClC;AAGA,EAAA,MAAM,GAAA,GAAM,IAAA,CAAK,KAAA,CAAM,qBAAqB,CAAA;AAC5C,EAAA,IAAI,KAAK,OAAO,MAAA,CAAO,UAAU,GAAA,CAAI,CAAC,EAAE,IAAA,EAAM,CAAC,CAAA,KAAM,OAAO,UAAA,CAAW,GAAA,CAAI,CAAC,CAAA,CAAE,IAAA,EAAM,CAAC,CAAA;AAGrF,EAAA,MAAM,EAAA,GAAK,IAAA,CAAK,KAAA,CAAM,qBAAqB,CAAA;AAC3C,EAAA,IAAI,EAAA,EAAI;AACN,IAAA,MAAM,MAAM,SAAA,CAAU,EAAA,CAAG,CAAC,CAAA,CAAE,MAAM,CAAA;AAClC,IAAA,MAAM,MAAM,UAAA,CAAW,EAAA,CAAG,CAAC,CAAA,CAAE,MAAM,CAAA;AAEnC,IAAA,OAAO,GAAA,IAAO,GAAA;AAAA,EAChB;AAGA,EAAA,MAAM,GAAA,GAAM,IAAA,CAAK,KAAA,CAAM,8BAA8B,CAAA;AACrD,EAAA,IAAI,GAAA,EAAK,OAAO,MAAA,CAAO,SAAA,CAAU,IAAI,CAAC,CAAA,CAAE,IAAA,EAAM,CAAC,CAAA,IAAK,MAAA,CAAO,GAAA,CAAI,CAAC,CAAC,CAAA;AAGjE,EAAA,MAAM,GAAA,GAAM,IAAA,CAAK,KAAA,CAAM,8BAA8B,CAAA;AACrD,EAAA,IAAI,GAAA,EAAK,OAAO,MAAA,CAAO,SAAA,CAAU,IAAI,CAAC,CAAA,CAAE,IAAA,EAAM,CAAC,CAAA,IAAK,MAAA,CAAO,GAAA,CAAI,CAAC,CAAC,CAAA;AAGjE,EAAA,MAAM,EAAA,GAAK,IAAA,CAAK,KAAA,CAAM,6BAA6B,CAAA;AACnD,EAAA,IAAI,EAAA,EAAI,OAAO,MAAA,CAAO,SAAA,CAAU,GAAG,CAAC,CAAA,CAAE,IAAA,EAAM,CAAC,CAAA,GAAI,MAAA,CAAO,EAAA,CAAG,CAAC,CAAC,CAAA;AAG7D,EAAA,MAAM,EAAA,GAAK,IAAA,CAAK,KAAA,CAAM,6BAA6B,CAAA;AACnD,EAAA,IAAI,EAAA,EAAI,OAAO,MAAA,CAAO,SAAA,CAAU,GAAG,CAAC,CAAA,CAAE,IAAA,EAAM,CAAC,CAAA,GAAI,MAAA,CAAO,EAAA,CAAG,CAAC,CAAC,CAAA;AAG7D,EAAA,OAAO,OAAA,CAAQ,SAAA,CAAU,IAAI,CAAC,CAAA;AAChC;;;ACkBA,SAAS,MAAA,CAAO,SAAqB,MAAA,EAA2B;AAC9D,EAAA,OAAO,OAAA,CAAQ,KAAA,CAAM,MAAA,CAAO,CAAC,CAAA,KAAM,EAAE,IAAA,KAAS,cAAA,IAAkB,CAAA,CAAE,MAAA,KAAW,MAAM,CAAA;AACrF;AAEA,SAAS,KAAA,CAAM,SAAqB,MAAA,EAA2B;AAC7D,EAAA,OAAO,OAAA,CAAQ,KAAA,CAAM,MAAA,CAAO,CAAC,CAAA,KAAM,EAAE,IAAA,KAAS,cAAA,IAAkB,CAAA,CAAE,MAAA,KAAW,MAAM,CAAA;AACrF;AAEA,SAAS,QAAA,CAAS,SAAqB,EAAA,EAAiC;AACtE,EAAA,OAAO,QAAQ,KAAA,CAAM,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,EAAE,CAAA;AAC9C;AAGA,SAAS,gBAAA,CAAiB,SAAqB,MAAA,EAA2B;AACxE,EAAA,OAAO,OAAA,CAAQ,KAAA,CAAM,MAAA,CAAO,CAAC,CAAA,KAAM,EAAE,IAAA,KAAS,eAAA,IAAmB,CAAA,CAAE,aAAA,KAAkB,MAAM,CAAA;AAC7F;AAEA,IAAI,aAAA,GAAgB,CAAA;AACpB,SAAS,WAAA,GAAsB;AAC7B,EAAA,OAAO,CAAA,IAAA,EAAO,EAAE,aAAa,CAAA,CAAA;AAC/B;AAIA,IAAM,aAAA,uBAAoB,GAAA,CAAI;AAAA,EAC5B,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,iBAAA;AAAA,EACA,gBAAA;AAAA,EACA;AACF,CAAC,CAAA;AAED,IAAM,UAAA,uBAAiB,GAAA,CAAI;AAAA,EACzB,MAAA;AAAA,EACA,UAAA;AAAA,EACA,aAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,kBAAA;AAAA,EACA,aAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAC,CAAA;AAED,SAAS,YAAY,QAAA,EAA2B;AAC9C,EAAA,OACE,QAAA,KAAa,gBACb,QAAA,KAAa,UAAA,IACb,aAAa,wBAAA,IACb,aAAA,CAAc,IAAI,QAAQ,CAAA;AAE9B;AAEA,SAAS,SAAS,QAAA,EAA2B;AAC3C,EAAA,OACE,WAAW,GAAA,CAAI,QAAQ,CAAA,IACvB,QAAA,KAAa,4BACb,QAAA,KAAa,eAAA;AAEjB;AAEA,SAAS,aAAa,QAAA,EAA2B;AAC/C,EAAA,OACE,aAAa,YAAA,IACb,QAAA,KAAa,aAAA,IACb,QAAA,KAAa,qBACb,QAAA,KAAa,iBAAA;AAEjB;AAEA,SAAS,kBAAA,CAAmB,SAAqB,IAAA,EAAwB;AACvE,EAAA,IAAI,IAAA,CAAK,IAAA,KAAS,YAAA,EAAc,OAAO,KAAA;AACvC,EAAA,IAAI,CAAC,IAAA,CAAK,QAAA,EAAU,OAAO,IAAA;AAC3B,EAAA,MAAM,MAAA,GAAS,QAAA,CAAS,OAAA,EAAS,IAAA,CAAK,QAAQ,CAAA;AAC9C,EAAA,OAAO,CAAC,MAAA,IAAU,CAAC,YAAA,CAAa,OAAO,IAAI,CAAA;AAC7C;AAQA,SAAS,UAAA,CAAW,SAAqB,MAAA,EAAwB;AAC/D,EAAA,MAAM,IAAA,GAAO,QAAA,CAAS,OAAA,EAAS,MAAM,CAAA;AACrC,EAAA,IAAI,CAAC,IAAA,EAAM,QAAA,EAAU,OAAO,MAAA;AAC5B,EAAA,MAAM,MAAA,GAAS,QAAA,CAAS,OAAA,EAAS,IAAA,CAAK,QAAQ,CAAA;AAC9C,EAAA,OAAO,UAAU,YAAA,CAAa,MAAA,CAAO,IAAI,CAAA,GAAI,KAAK,QAAA,GAAW,MAAA;AAC/D;AAIA,SAAS,OAAA,CACP,OACA,KAAA,EACiB;AACjB,EAAA,OAAO,EAAE,GAAG,KAAA,EAAO,GAAA,EAAK,CAAC,GAAG,KAAA,CAAM,GAAA,EAAK,EAAE,GAAG,KAAA,EAAO,IAAA,EAAM,KAAA,CAAM,IAAA,EAAM,CAAA,EAAE;AACzE;AAOA,SAAS,iBAAA,CACP,OAAA,EACA,KAAA,EACA,QAAA,EACA,eAAA,EACiB;AACjB,EAAA,MAAM,QAAA,GAAW,MAAA,CAAO,OAAA,EAAS,QAAQ,CAAA;AACzC,EAAA,IAAI,QAAA,CAAS,MAAA,KAAW,CAAA,EAAG,OAAO,KAAA;AAElC,EAAA,IAAI,IAAA,GAAwB;AAAA,IAC1B,GAAG,KAAA;AAAA,IACH,MAAA,EACE,eAAA,KAAoB,IAAA,GAChB,KAAA,CAAM,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,EAAA,KAAO,eAAe,CAAA,GACnD,KAAA,CAAM;AAAA,GACd;AAEA,EAAA,KAAA,MAAW,QAAQ,QAAA,EAAU;AAC3B,IAAA,MAAM,MAAA,GAAS,QAAA,CAAS,OAAA,EAAS,IAAA,CAAK,MAAM,CAAA;AAC5C,IAAA,IAAI,CAAC,MAAA,EAAQ;AAEb,IAAA,MAAM,QAAA,GAAqB;AAAA,MACzB,IAAI,WAAA,EAAY;AAAA,MAChB,WAAW,IAAA,CAAK,MAAA;AAAA,MAChB,OAAA,EAAS,UAAA,CAAW,OAAA,EAAS,IAAA,CAAK,MAAM;AAAA,KAC1C;AACA,IAAA,IAAA,GAAO;AAAA,MACL,GAAG,IAAA;AAAA,MACH,MAAA,EAAQ,CAAC,GAAG,IAAA,CAAK,QAAQ,QAAQ;AAAA,KACnC;AACA,IAAA,IAAA,GAAO,QAAQ,IAAA,EAAM;AAAA,MACnB,IAAA,EAAM,SAAA;AAAA,MACN,WAAW,IAAA,CAAK,MAAA;AAAA,MAChB,SAAS,QAAA,CAAS,EAAA;AAAA,MAClB,OAAA,EAAS,CAAA,kBAAA,EAAqB,MAAA,CAAO,IAAA,IAAQ,KAAK,MAAM,CAAA,EAAA;AAAA,KACzD,CAAA;AAAA,EACH;AAEA,EAAA,OAAO,IAAA;AACT;AAIA,SAAS,eAAA,CACP,OAAA,EACA,KAAA,EACA,WAAA,EACiB;AACjB,EAAA,MAAM,WAAA,GAAc,QAAQ,KAAA,CAAM,MAAA;AAAA,IAChC,CAAC,CAAA,KAAM,CAAA,CAAE,SAAS,YAAA,IAAgB,CAAA,CAAE,aAAa,WAAA,CAAY;AAAA,GAC/D;AAEA,EAAA,IAAI,IAAA,GAAwB;AAAA,IAC1B,GAAG,KAAA;AAAA,IACH,eAAe,CAAC,GAAG,KAAA,CAAM,aAAA,EAAe,YAAY,EAAE;AAAA,GACxD;AAEA,EAAA,KAAA,MAAW,aAAa,WAAA,EAAa;AACnC,IAAA,MAAM,QAAA,GAAqB;AAAA,MACzB,IAAI,WAAA,EAAY;AAAA,MAChB,WAAW,SAAA,CAAU,EAAA;AAAA,MACrB,SAAS,WAAA,CAAY;AAAA,KACvB;AACA,IAAA,IAAA,GAAO;AAAA,MACL,GAAG,IAAA;AAAA,MACH,MAAA,EAAQ,CAAC,GAAG,IAAA,CAAK,QAAQ,QAAQ;AAAA,KACnC;AACA,IAAA,IAAA,GAAO,QAAQ,IAAA,EAAM;AAAA,MACnB,IAAA,EAAM,SAAA;AAAA,MACN,WAAW,SAAA,CAAU,EAAA;AAAA,MACrB,SAAS,QAAA,CAAS,EAAA;AAAA,MAClB,OAAA,EAAS,CAAA,YAAA,EAAe,WAAA,CAAY,IAAA,IAAQ,WAAA,CAAY,EAAE,CAAA,2BAAA,EAAyB,SAAA,CAAU,IAAA,IAAQ,SAAA,CAAU,EAAE,CAAA,EAAA;AAAA,KAClH,CAAA;AAAA,EACH;AAEA,EAAA,OAAO,IAAA;AACT;AAIA,SAAS,aAAA,CACP,OAAA,EACA,KAAA,EACA,KAAA,EACiB;AACjB,EAAA,MAAM,IAAA,GAAO,QAAA,CAAS,OAAA,EAAS,KAAA,CAAM,SAAS,CAAA;AAC9C,EAAA,IAAI,CAAC,MAAM,OAAO,KAAA;AAClB,EAAA,MAAM,EAAE,MAAK,GAAI,IAAA;AACjB,EAAA,MAAM,OAAO,KAAA,CAAM,SAAA;AAGnB,EAAA,IAAI,SAAS,UAAA,EAAY;AACvB,IAAA,IAAI,IAAA,GAAwB;AAAA,MAC1B,GAAG,KAAA;AAAA,MACH,MAAA,EAAQ,MAAM,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,EAAA,KAAO,KAAA,CAAM,EAAE;AAAA,KACtD;AACA,IAAA,IAAA,GAAO,QAAQ,IAAA,EAAM;AAAA,MACnB,IAAA,EAAM,UAAA;AAAA,MACN,WAAW,IAAA,CAAK,EAAA;AAAA,MAChB,SAAS,KAAA,CAAM,EAAA;AAAA,MACf,OAAA,EAAS,CAAA,6BAAA,EAAgC,IAAA,CAAK,IAAA,IAAQ,KAAK,EAAE,CAAA,EAAA;AAAA,KAC9D,CAAA;AACD,IAAA,OAAO,IAAA;AAAA,EACT;AAGA,EAAA,IAAI,IAAA,KAAS,YAAA,IAAgB,IAAA,KAAS,wBAAA,EAA0B;AAC9D,IAAA,IAAI,IAAA,GAAO,QAAQ,KAAA,EAAO;AAAA,MACxB,IAAA,EAAM,OAAA;AAAA,MACN,WAAW,IAAA,CAAK,EAAA;AAAA,MAChB,SAAS,KAAA,CAAM,EAAA;AAAA,MACf,SAAS,CAAA,CAAA,EAAI,IAAA,CAAK,QAAQ,IAAA,CAAK,EAAE,MAAM,IAAI,CAAA,QAAA;AAAA,KAC5C,CAAA;AACD,IAAA,OAAO,kBAAkB,OAAA,EAAS,IAAA,EAAM,IAAA,CAAK,EAAA,EAAI,MAAM,EAAE,CAAA;AAAA,EAC3D;AAGA,EAAA,IAAI,SAAS,kBAAA,EAAoB;AAC/B,IAAA,MAAM,QAAA,GAAW,KAAA,CAAM,OAAA,EAAS,IAAA,CAAK,EAAE,CAAA;AACvC,IAAA,IAAI,QAAA,CAAS,UAAU,CAAA,EAAG;AAExB,MAAA,IAAIA,KAAAA,GAAO,QAAQ,KAAA,EAAO;AAAA,QACxB,IAAA,EAAM,QAAA;AAAA,QACN,WAAW,IAAA,CAAK,EAAA;AAAA,QAChB,SAAS,KAAA,CAAM,EAAA;AAAA,QACf,OAAA,EAAS,CAAA,kBAAA,EAAqB,IAAA,CAAK,IAAA,IAAQ,KAAK,EAAE,CAAA,mCAAA;AAAA,OACnD,CAAA;AACD,MAAA,OAAO,kBAAkB,OAAA,EAASA,KAAAA,EAAM,IAAA,CAAK,EAAA,EAAI,MAAM,EAAE,CAAA;AAAA,IAC3D;AAEA,IAAA,MAAM,QAAA,GAAW,MAAA,CAAO,OAAA,EAAS,IAAA,CAAK,EAAE,CAAA;AAExC,IAAA,MAAM,SACJ,QAAA,CAAS,IAAA;AAAA,MACP,CAAC,CAAA,KAAM,CAAA,CAAE,mBAAA,IAAuB,CAAC,EAAE,SAAA,IAAa,aAAA,CAAc,CAAA,CAAE,mBAAA,EAAqB,IAAI;AAAA,KAC3F,IACA,SAAS,IAAA,CAAK,CAAC,MAAM,CAAA,CAAE,SAAS,CAAA,IAChC,QAAA,CAAS,CAAC,CAAA;AAEZ,IAAA,IAAI,CAAC,QAAQ,OAAO,KAAA;AACpB,IAAA,MAAM,MAAA,GAAS,QAAA,CAAS,OAAA,EAAS,MAAA,CAAO,MAAM,CAAA;AAC9C,IAAA,IAAI,CAAC,QAAQ,OAAO,KAAA;AAEpB,IAAA,MAAM,QAAA,GAAqB;AAAA,MACzB,IAAI,WAAA,EAAY;AAAA,MAChB,WAAW,MAAA,CAAO,MAAA;AAAA,MAClB,OAAA,EAAS,UAAA,CAAW,OAAA,EAAS,MAAA,CAAO,MAAM;AAAA,KAC5C;AACA,IAAA,IAAI,IAAA,GAAwB;AAAA,MAC1B,GAAG,KAAA;AAAA,MACH,MAAA,EAAQ,CAAC,GAAG,KAAA,CAAM,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,EAAA,KAAO,KAAA,CAAM,EAAE,GAAG,QAAQ;AAAA,KACrE;AACA,IAAA,IAAA,GAAO,QAAQ,IAAA,EAAM;AAAA,MACnB,IAAA,EAAM,OAAA;AAAA,MACN,WAAW,IAAA,CAAK,EAAA;AAAA,MAChB,SAAS,KAAA,CAAM,EAAA;AAAA,MACf,OAAA,EAAS,CAAA,kBAAA,EAAqB,IAAA,CAAK,IAAA,IAAQ,IAAA,CAAK,EAAE,CAAA,gBAAA,EAAc,MAAA,CAAO,IAAA,IAAQ,MAAA,CAAO,MAAM,CAAA,EAAA;AAAA,KAC7F,CAAA;AACD,IAAA,OAAO,IAAA;AAAA,EACT;AAGA,EAAA,IAAI,SAAS,kBAAA,EAAoB;AAC/B,IAAA,MAAM,QAAA,GAAW,KAAA,CAAM,OAAA,EAAS,IAAA,CAAK,EAAE,CAAA;AACvC,IAAA,IAAI,QAAA,CAAS,UAAU,CAAA,EAAG;AAExB,MAAA,IAAIA,KAAAA,GAAO,QAAQ,KAAA,EAAO;AAAA,QACxB,IAAA,EAAM,QAAA;AAAA,QACN,WAAW,IAAA,CAAK,EAAA;AAAA,QAChB,SAAS,KAAA,CAAM,EAAA;AAAA,QACf,OAAA,EAAS,CAAA,kBAAA,EAAqB,IAAA,CAAK,IAAA,IAAQ,KAAK,EAAE,CAAA,OAAA;AAAA,OACnD,CAAA;AACD,MAAA,OAAO,kBAAkB,OAAA,EAASA,KAAAA,EAAM,IAAA,CAAK,EAAA,EAAI,MAAM,EAAE,CAAA;AAAA,IAC3D;AAEA,IAAA,MAAM,QAAA,GAAW,MAAA,CAAO,OAAA,EAAS,IAAA,CAAK,EAAE,CAAA;AAExC,IAAA,MAAM,WAAW,QAAA,CAAS,MAAA;AAAA,MACxB,CAAC,CAAA,KAAM,CAAA,CAAE,mBAAA,IAAuB,CAAC,EAAE,SAAA,IAAa,aAAA,CAAc,CAAA,CAAE,mBAAA,EAAqB,IAAI;AAAA,KAC3F;AACA,IAAA,MAAM,WAAA,GAAc,QAAA,CAAS,MAAA,GAAS,CAAA,GAAI,QAAA,GAAW,SAAS,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,SAAS,CAAA;AACvF,IAAA,MAAM,KAAA,GAAQ,WAAA,CAAY,MAAA,GAAS,CAAA,GAAI,WAAA,GAAc,QAAA;AAErD,IAAA,IAAI,IAAA,GAAO,QAAQ,KAAA,EAAO;AAAA,MACxB,IAAA,EAAM,OAAA;AAAA,MACN,WAAW,IAAA,CAAK,EAAA;AAAA,MAChB,SAAS,KAAA,CAAM,EAAA;AAAA,MACf,OAAA,EAAS,qBAAqB,IAAA,CAAK,IAAA,IAAQ,KAAK,EAAE,CAAA,eAAA,EAAa,MAAM,MAAM,CAAA,SAAA;AAAA,KAC5E,CAAA;AAED,IAAA,IAAA,GAAO,EAAE,GAAG,IAAA,EAAM,MAAA,EAAQ,IAAA,CAAK,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,EAAA,KAAO,KAAA,CAAM,EAAE,CAAA,EAAE;AACvE,IAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACxB,MAAA,MAAM,GAAA,GAAM,QAAA,CAAS,OAAA,EAAS,IAAA,CAAK,MAAM,CAAA;AACzC,MAAA,IAAI,CAAC,GAAA,EAAK;AACV,MAAA,MAAM,QAAA,GAAqB;AAAA,QACzB,IAAI,WAAA,EAAY;AAAA,QAChB,WAAW,IAAA,CAAK,MAAA;AAAA,QAChB,OAAA,EAAS,UAAA,CAAW,OAAA,EAAS,IAAA,CAAK,MAAM;AAAA,OAC1C;AACA,MAAA,IAAA,GAAO,EAAE,GAAG,IAAA,EAAM,MAAA,EAAQ,CAAC,GAAG,IAAA,CAAK,MAAA,EAAQ,QAAQ,CAAA,EAAE;AACrD,MAAA,IAAA,GAAO,QAAQ,IAAA,EAAM;AAAA,QACnB,IAAA,EAAM,SAAA;AAAA,QACN,WAAW,IAAA,CAAK,MAAA;AAAA,QAChB,SAAS,QAAA,CAAS,EAAA;AAAA,QAClB,OAAA,EAAS,CAAA,kBAAA,EAAqB,GAAA,CAAI,IAAA,IAAQ,KAAK,MAAM,CAAA,EAAA;AAAA,OACtD,CAAA;AAAA,IACH;AACA,IAAA,OAAO,IAAA;AAAA,EACT;AAGA,EAAA,IAAI,SAAS,iBAAA,EAAmB;AAC9B,IAAA,MAAM,QAAA,GAAW,KAAA,CAAM,OAAA,EAAS,IAAA,CAAK,EAAE,CAAA;AACvC,IAAA,IAAI,QAAA,CAAS,UAAU,CAAA,EAAG;AACxB,MAAA,MAAM,SAAA,GAAY,MAAM,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,SAAA,KAAc,IAAA,CAAK,EAAE,CAAA;AACpE,MAAA,IAAI,SAAA,CAAU,MAAA,GAAS,QAAA,CAAS,MAAA,EAAQ;AACtC,QAAA,OAAO,QAAQ,KAAA,EAAO;AAAA,UACpB,IAAA,EAAM,SAAA;AAAA,UACN,WAAW,IAAA,CAAK,EAAA;AAAA,UAChB,SAAS,KAAA,CAAM,EAAA;AAAA,UACf,OAAA,EAAS,CAAA,iBAAA,EAAoB,IAAA,CAAK,IAAA,IAAQ,IAAA,CAAK,EAAE,CAAA,cAAA,EAAiB,QAAA,CAAS,MAAA,GAAS,SAAA,CAAU,MAAM,CAAA,eAAA;AAAA,SACrG,CAAA;AAAA,MACH;AACA,MAAA,MAAM,UAAA,GAAa,IAAI,GAAA,CAAI,SAAA,CAAU,IAAI,CAAC,CAAA,KAAM,CAAA,CAAE,EAAE,CAAC,CAAA;AACrD,MAAA,IAAIA,KAAAA,GAAwB;AAAA,QAC1B,GAAG,KAAA;AAAA,QACH,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA,KAAM,CAAC,UAAA,CAAW,GAAA,CAAI,CAAA,CAAE,EAAE,CAAC;AAAA,OAC1D;AACA,MAAAA,KAAAA,GAAO,QAAQA,KAAAA,EAAM;AAAA,QACnB,IAAA,EAAM,QAAA;AAAA,QACN,WAAW,IAAA,CAAK,EAAA;AAAA,QAChB,OAAA,EAAS,CAAA,iBAAA,EAAoB,IAAA,CAAK,IAAA,IAAQ,KAAK,EAAE,CAAA,2CAAA;AAAA,OAClD,CAAA;AACD,MAAA,OAAO,iBAAA,CAAkB,OAAA,EAASA,KAAAA,EAAM,IAAA,CAAK,IAAI,IAAI,CAAA;AAAA,IACvD;AAEA,IAAA,IAAI,IAAA,GAAO,QAAQ,KAAA,EAAO;AAAA,MACxB,IAAA,EAAM,OAAA;AAAA,MACN,WAAW,IAAA,CAAK,EAAA;AAAA,MAChB,SAAS,KAAA,CAAM,EAAA;AAAA,MACf,OAAA,EAAS,CAAA,iBAAA,EAAoB,IAAA,CAAK,IAAA,IAAQ,IAAA,CAAK,EAAE,CAAA,eAAA,EAAa,MAAA,CAAO,OAAA,EAAS,IAAA,CAAK,EAAE,CAAA,CAAE,MAAM,CAAA,OAAA;AAAA,KAC9F,CAAA;AACD,IAAA,OAAO,kBAAkB,OAAA,EAAS,IAAA,EAAM,IAAA,CAAK,EAAA,EAAI,MAAM,EAAE,CAAA;AAAA,EAC3D;AAIA,EAAA,IAAI,SAAS,mBAAA,EAAqB;AAChC,IAAA,IAAI,IAAA,GAAO,QAAQ,KAAA,EAAO;AAAA,MACxB,IAAA,EAAM,OAAA;AAAA,MACN,WAAW,IAAA,CAAK,EAAA;AAAA,MAChB,SAAS,KAAA,CAAM,EAAA;AAAA,MACf,OAAA,EAAS,CAAA,mBAAA,EAAsB,IAAA,CAAK,IAAA,IAAQ,IAAA,CAAK,EAAE,CAAA,iBAAA,EAAe,MAAA,CAAO,OAAA,EAAS,IAAA,CAAK,EAAE,CAAA,CAAE,MAAM,CAAA,oBAAA;AAAA,KAClG,CAAA;AACD,IAAA,OAAO,kBAAkB,OAAA,EAAS,IAAA,EAAM,IAAA,CAAK,EAAA,EAAI,MAAM,EAAE,CAAA;AAAA,EAC3D;AAGA,EAAA,IAAI,SAAS,gBAAA,EAAkB;AAC7B,IAAA,MAAM,QAAA,GAAW,MAAA,CAAO,OAAA,EAAS,IAAA,CAAK,EAAE,CAAA;AACxC,IAAA,MAAM,MAAA,GAAS,SAAS,CAAC,CAAA;AACzB,IAAA,IAAI,CAAC,QAAQ,OAAO,KAAA;AACpB,IAAA,MAAM,QAAA,GAAqB;AAAA,MACzB,IAAI,WAAA,EAAY;AAAA,MAChB,WAAW,MAAA,CAAO,MAAA;AAAA,MAClB,OAAA,EAAS,UAAA,CAAW,OAAA,EAAS,MAAA,CAAO,MAAM;AAAA,KAC5C;AACA,IAAA,IAAI,IAAA,GAAwB;AAAA,MAC1B,GAAG,KAAA;AAAA,MACH,MAAA,EAAQ,CAAC,GAAG,KAAA,CAAM,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,EAAA,KAAO,KAAA,CAAM,EAAE,GAAG,QAAQ;AAAA,KACrE;AACA,IAAA,IAAA,GAAO,QAAQ,IAAA,EAAM;AAAA,MACnB,IAAA,EAAM,OAAA;AAAA,MACN,WAAW,IAAA,CAAK,EAAA;AAAA,MAChB,SAAS,KAAA,CAAM,EAAA;AAAA,MACf,OAAA,EAAS,mBAAmB,IAAA,CAAK,IAAA,IAAQ,KAAK,EAAE,CAAA,gBAAA,EAAc,OAAO,MAAM,CAAA,EAAA;AAAA,KAC5E,CAAA;AACD,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,OAAO,KAAA;AACT;AAIO,SAAS,gBAAA,CACd,OAAA,EACA,gBAAA,GAA8D,EAAC,EAC9C;AACjB,EAAA,aAAA,GAAgB,CAAA;AAEhB,EAAA,MAAM,WAAA,GAAc,QAAQ,KAAA,CAAM,MAAA,CAAO,CAAC,CAAA,KAAM,kBAAA,CAAmB,OAAA,EAAS,CAAC,CAAC,CAAA;AAE9E,EAAA,MAAM,MAAA,GAAqB,WAAA,CAAY,GAAA,CAAI,CAAC,CAAA,MAAO;AAAA,IACjD,IAAI,WAAA,EAAY;AAAA,IAChB,WAAW,CAAA,CAAE,EAAA;AAAA,IACb,OAAA,EAAS;AAAA,GACX,CAAE,CAAA;AAEF,EAAA,MAAM,GAAA,GAAqB,WAAA,CAAY,GAAA,CAAI,CAAC,GAAG,CAAA,MAAO;AAAA,IACpD,IAAA,EAAM,CAAA;AAAA,IACN,IAAA,EAAM,SAAA;AAAA,IACN,WAAW,CAAA,CAAE,EAAA;AAAA,IACb,OAAA,EAAS,MAAA,CAAO,CAAC,CAAA,EAAG,EAAA;AAAA,IACpB,OAAA,EAAS,CAAA,2CAAA,EAAyC,CAAA,CAAE,IAAA,IAAQ,EAAE,EAAE,CAAA,EAAA;AAAA,GAClE,CAAE,CAAA;AAEF,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,IAAA,EAAM,CAAA;AAAA,IACN,MAAA,EAAQ,WAAA,CAAY,MAAA,GAAS,CAAA,GAAI,SAAA,GAAY,MAAA;AAAA,IAC7C,GAAA;AAAA,IACA,SAAA,EAAW,gBAAA;AAAA,IACX,eAAe;AAAC,GAClB;AACF;AAEO,SAAS,IAAA,CAAK,SAAqB,KAAA,EAAyC;AACjF,EAAA,IAAI,KAAA,CAAM,MAAA,KAAW,SAAA,EAAW,OAAO,KAAA;AAEvC,EAAA,IAAI,UAA2B,EAAE,GAAG,OAAO,IAAA,EAAM,KAAA,CAAM,OAAO,CAAA,EAAE;AAChE,EAAA,IAAI,OAAA,GAAU,IAAA;AACd,EAAA,IAAI,KAAA,GAAQ,CAAA;AAEZ,EAAA,OAAO,OAAA,IAAW,QAAQ,GAAA,EAAM;AAC9B,IAAA,KAAA,EAAA;AACA,IAAA,OAAA,GAAU,KAAA;AAEV,IAAA,KAAA,MAAW,KAAA,IAAS,QAAQ,MAAA,EAAQ;AAClC,MAAA,MAAM,IAAA,GAAO,QAAA,CAAS,OAAA,EAAS,KAAA,CAAM,SAAS,CAAA;AAC9C,MAAA,IAAI,CAAC,IAAA,EAAM;AAGX,MAAA,IAAI,YAAA,CAAa,IAAA,CAAK,IAAI,CAAA,EAAG;AAC3B,QAAA,IAAI,CAAC,OAAA,CAAQ,aAAA,CAAc,QAAA,CAAS,IAAA,CAAK,EAAE,CAAA,EAAG;AAE5C,UAAA,MAAM,WAAA,GAAc,QAAQ,KAAA,CAAM,MAAA;AAAA,YAChC,CAAC,CAAA,KAAM,CAAA,CAAE,SAAS,YAAA,IAAgB,CAAA,CAAE,aAAa,IAAA,CAAK;AAAA,WACxD;AACA,UAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,YAAA,OAAA,GAAU,eAAA,CAAgB,OAAA,EAAS,OAAA,EAAS,IAAI,CAAA;AAChD,YAAA,OAAA,GAAU,IAAA;AACV,YAAA;AAAA,UACF;AAAA,QAEF,CAAA,MAAO;AAEL,UAAA,MAAM,WAAA,GAAc,QAAQ,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,OAAA,KAAY,IAAA,CAAK,EAAE,CAAA;AACtE,UAAA,IAAI,WAAA,CAAY,WAAW,CAAA,EAAG;AAC5B,YAAA,IAAI,IAAA,GAAO,QAAQ,OAAA,EAAS;AAAA,cAC1B,IAAA,EAAM,OAAA;AAAA,cACN,WAAW,IAAA,CAAK,EAAA;AAAA,cAChB,SAAS,KAAA,CAAM,EAAA;AAAA,cACf,OAAA,EAAS,CAAA,YAAA,EAAe,IAAA,CAAK,IAAA,IAAQ,KAAK,EAAE,CAAA,YAAA;AAAA,aAC7C,CAAA;AACD,YAAA,OAAA,GAAU,kBAAkB,OAAA,EAAS,IAAA,EAAM,IAAA,CAAK,EAAA,EAAI,MAAM,EAAE,CAAA;AAC5D,YAAA,OAAA,GAAU,IAAA;AACV,YAAA;AAAA,UACF;AAAA,QACF;AACA,QAAA;AAAA,MACF;AAGA,MAAA,IAAI,IAAA,CAAK,SAAS,iBAAA,EAAmB;AACnC,QAAA,MAAM,QAAA,GAAW,KAAA,CAAM,OAAA,EAAS,IAAA,CAAK,EAAE,CAAA;AACvC,QAAA,MAAM,SAAA,GAAY,QAAQ,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,SAAA,KAAc,IAAA,CAAK,EAAE,CAAA;AACtE,QAAA,IAAI,SAAS,MAAA,IAAU,CAAA,IAAK,SAAA,CAAU,MAAA,GAAS,SAAS,MAAA,EAAQ;AAAA,MAClE;AAEA,MAAA,IAAI,CAAC,WAAA,CAAY,IAAA,CAAK,IAAI,CAAA,EAAG;AAE7B,MAAA,MAAM,OAAA,GAAU,QAAQ,MAAA,CAAO,MAAA;AAC/B,MAAA,MAAM,OAAA,GAAU,IAAI,GAAA,CAAI,OAAA,CAAQ,MAAA,CAAO,IAAI,CAAC,CAAA,KAAM,CAAA,CAAE,EAAE,CAAC,CAAA;AACvD,MAAA,OAAA,GAAU,aAAA,CAAc,OAAA,EAAS,OAAA,EAAS,KAAK,CAAA;AAE/C,MAAA,MAAM,IAAA,GACJ,QAAQ,MAAA,CAAO,MAAA,KAAW,WAC1B,CAAC,GAAG,OAAO,CAAA,CAAE,KAAA,CAAM,CAAC,EAAA,KAAO,OAAA,CAAQ,OAAO,IAAA,CAAK,CAAC,MAAM,CAAA,CAAE,EAAA,KAAO,EAAE,CAAC,CAAA;AAEpE,MAAA,IAAI,CAAC,IAAA,EAAM;AACT,QAAA,OAAA,GAAU,IAAA;AACV,QAAA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAGA,EAAA,IAAI,OAAA,CAAQ,MAAA,CAAO,MAAA,KAAW,CAAA,EAAG;AAC/B,IAAA,OAAA,GAAU,EAAE,GAAG,OAAA,EAAS,MAAA,EAAQ,WAAA,EAAY;AAAA,EAC9C;AAEA,EAAA,OAAO,OAAA;AACT;AAEO,SAAS,IAAA,CACd,OAAA,EACA,KAAA,EACA,SAAA,EACA,SAAA,EACiB;AACjB,EAAA,IAAI,KAAA,CAAM,MAAA,KAAW,SAAA,EAAW,OAAO,KAAA;AAEvC,EAAA,MAAM,IAAA,GAAO,QAAA,CAAS,OAAA,EAAS,SAAS,CAAA;AACxC,EAAA,IAAI,CAAC,MAAM,OAAO,KAAA;AAElB,EAAA,MAAM,UAAA,GAAa,YAAY,EAAE,GAAG,MAAM,SAAA,EAAW,GAAG,SAAA,EAAU,GAAI,KAAA,CAAM,SAAA;AAG5E,EAAA,IAAI,IAAA,CAAK,SAAS,eAAA,EAAiB;AACjC,IAAA,MAAM,SAAS,IAAA,CAAK,aAAA;AACpB,IAAA,IAAI,CAAC,QAAQ,OAAO,KAAA;AAGpB,IAAA,MAAM,SAAA,GAAY,MAAM,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,cAAc,MAAM,CAAA;AACjE,IAAA,IAAI,CAAC,WAAW,OAAO,KAAA;AAEvB,IAAA,MAAM,cAAA,GAAiB,KAAK,cAAA,KAAmB,KAAA;AAE/C,IAAA,IAAIA,KAAAA,GAAwB,EAAE,GAAG,KAAA,EAAO,WAAW,UAAA,EAAY,IAAA,EAAM,KAAA,CAAM,IAAA,GAAO,CAAA,EAAE;AACpF,IAAAA,KAAAA,GAAO,QAAQA,KAAAA,EAAM;AAAA,MACnB,IAAA,EAAM,iBAAiB,aAAA,GAAgB,OAAA;AAAA,MACvC,SAAA;AAAA,MACA,SAAS,SAAA,CAAU,EAAA;AAAA,MACnB,OAAA,EAAS,kBAAkB,IAAA,CAAK,IAAA,IAAQ,SAAS,CAAA,SAAA,EAAY,cAAA,GAAiB,iBAAiB,kBAAkB,CAAA,EAAA;AAAA,KAClH,CAAA;AAED,IAAA,IAAI,cAAA,EAAgB;AAElB,MAAAA,KAAAA,GAAO,EAAE,GAAGA,KAAAA,EAAM,QAAQA,KAAAA,CAAK,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,EAAA,KAAO,SAAA,CAAU,EAAE,CAAA,EAAE;AAAA,IAC7E;AAGA,IAAAA,KAAAA,GAAO,iBAAA,CAAkB,OAAA,EAASA,KAAAA,EAAM,WAAW,IAAI,CAAA;AACvD,IAAA,OAAO,IAAA,CAAK,SAAS,EAAE,GAAGA,OAAM,IAAA,EAAMA,KAAAA,CAAK,IAAA,GAAO,CAAA,EAAG,CAAA;AAAA,EACvD;AAEA,EAAA,MAAM,KAAA,GAAQ,MAAM,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,cAAc,SAAS,CAAA;AAChE,EAAA,IAAI,CAAC,OAAO,OAAO,KAAA;AAGnB,EAAA,IAAI,IAAA,CAAK,SAAS,wBAAA,EAA0B;AAC1C,IAAA,MAAM,SAAS,KAAA,CAAM,OAAA,EAAS,SAAS,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM;AACnD,MAAA,MAAM,GAAA,GAAM,QAAA,CAAS,OAAA,EAAS,CAAA,CAAE,MAAM,CAAA;AACtC,MAAA,OAAO,KAAK,IAAA,KAAS,mBAAA;AAAA,IACvB,CAAC,CAAA;AACD,IAAA,IAAI,MAAA,EAAQ;AAEV,MAAA,MAAM,EAAA,GAAK,QAAA,CAAS,OAAA,EAAS,MAAA,CAAO,MAAM,CAAA;AAC1C,MAAA,IAAI,EAAA,EAAI;AACN,QAAA,MAAM,iBAAiB,IAAI,GAAA;AAAA,UACzB,MAAA,CAAO,OAAA,EAAS,EAAA,CAAG,EAAE,EAClB,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,CAAE,MAAM,CAAA,CACnB,MAAA,CAAO,CAAC,EAAA,KAAO,OAAO,SAAS;AAAA,SACpC;AACA,QAAA,KAAA,GAAQ;AAAA,UACN,GAAG,KAAA;AAAA,UACH,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA,KAAM,CAAC,cAAA,CAAe,GAAA,CAAI,CAAA,CAAE,SAAS,CAAC;AAAA,SACrE;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,EAAA,IAAI,IAAA,GAAwB,EAAE,GAAG,KAAA,EAAO,WAAW,UAAA,EAAY,IAAA,EAAM,KAAA,CAAM,IAAA,GAAO,CAAA,EAAE;AACpF,EAAA,IAAA,GAAO,QAAQ,IAAA,EAAM;AAAA,IACnB,IAAA,EAAM,OAAA;AAAA,IACN,SAAA;AAAA,IACA,SAAS,KAAA,CAAM,EAAA;AAAA,IACf,SAAS,CAAA,CAAA,EAAI,IAAA,CAAK,QAAQ,SAAS,CAAA,GAAA,EAAM,KAAK,IAAI,CAAA,iBAAA;AAAA,GACnD,CAAA;AACD,EAAA,IAAA,GAAO,iBAAA,CAAkB,OAAA,EAAS,IAAA,EAAM,SAAA,EAAW,MAAM,EAAE,CAAA;AAC3D,EAAA,OAAO,IAAA,CAAK,SAAS,EAAE,GAAG,MAAM,IAAA,EAAM,IAAA,CAAK,IAAA,GAAO,CAAA,EAAG,CAAA;AACvD;AAEO,SAAS,WAAA,CAAY,SAAqB,KAAA,EAAkC;AACjF,EAAA,IAAI,KAAA,CAAM,MAAA,KAAW,SAAA,EAAW,OAAO,EAAC;AAExC,EAAA,MAAM,QAAA,uBAAe,GAAA,EAAY;AAEjC,EAAA,KAAA,MAAW,KAAA,IAAS,MAAM,MAAA,EAAQ;AAChC,IAAA,MAAM,IAAA,GAAO,QAAA,CAAS,OAAA,EAAS,KAAA,CAAM,SAAS,CAAA;AAC9C,IAAA,IAAI,CAAC,IAAA,EAAM;AAEX,IAAA,IAAI,QAAA,CAAS,IAAA,CAAK,IAAI,CAAA,EAAG;AACvB,MAAA,QAAA,CAAS,GAAA,CAAI,KAAK,EAAE,CAAA;AAAA,IACtB;AAGA,IAAA,IAAI,UAAA,CAAW,GAAA,CAAI,IAAA,CAAK,IAAI,CAAA,EAAG;AAC7B,MAAA,KAAA,MAAW,EAAA,IAAM,gBAAA,CAAiB,OAAA,EAAS,IAAA,CAAK,EAAE,CAAA,EAAG;AACnD,QAAA,QAAA,CAAS,GAAA,CAAI,GAAG,EAAE,CAAA;AAAA,MACpB;AAAA,IACF;AAAA,EACF;AAEA,EAAA,OAAO,CAAC,GAAG,QAAQ,CAAA;AACrB;AAEO,SAAS,YAAY,KAAA,EAAiC;AAC3D,EAAA,OAAO,MAAM,MAAA,KAAW,WAAA;AAC1B;AAGO,SAAS,WAAA,CACd,KAAA,EACA,GAAA,EACA,KAAA,EACiB;AACjB,EAAA,OAAO,EAAE,GAAG,KAAA,EAAO,SAAA,EAAW,EAAE,GAAG,KAAA,CAAM,SAAA,EAAW,CAAC,GAAG,GAAG,KAAA,EAAM,EAAE;AACrE","file":"chunk-QOGZITWB.js","sourcesContent":["export type SimVariables = Record<string, string | number | boolean>;\n\nfunction parseValue(raw: string): string | number | boolean {\n if (raw === \"true\") return true;\n if (raw === \"false\") return false;\n if ((raw.startsWith(\"'\") && raw.endsWith(\"'\")) || (raw.startsWith('\"') && raw.endsWith('\"')))\n return raw.slice(1, -1);\n const n = Number(raw);\n return isNaN(n) ? raw : n;\n}\n\n/**\n * Evaluates a BPMN condition expression (${...}) against a variables map.\n * Supports: bare variable (truthy), ==, !=, >, >=, <, <=, !var\n */\nexport function evalCondition(expr: string, variables: SimVariables): boolean {\n const body = expr.trim().replace(/^\\$\\{|\\}$/g, \"\").trim();\n if (!body) return false;\n\n // Logical NOT: !varName\n if (body.startsWith(\"!\")) {\n const inner = body.slice(1).trim();\n return !Boolean(variables[inner]);\n }\n\n // != comparison\n const neq = body.match(/^(\\w+)\\s*!=\\s*(.+)$/);\n if (neq) return String(variables[neq[1].trim()]) !== String(parseValue(neq[2].trim()));\n\n // == comparison\n const eq = body.match(/^(\\w+)\\s*==\\s*(.+)$/);\n if (eq) {\n const lhs = variables[eq[1].trim()];\n const rhs = parseValue(eq[2].trim());\n // eslint-disable-next-line eqeqeq\n return lhs == rhs;\n }\n\n // >= comparison\n const gte = body.match(/^(\\w+)\\s*>=\\s*(-?\\d+\\.?\\d*)$/);\n if (gte) return Number(variables[gte[1].trim()]) >= Number(gte[2]);\n\n // <= comparison\n const lte = body.match(/^(\\w+)\\s*<=\\s*(-?\\d+\\.?\\d*)$/);\n if (lte) return Number(variables[lte[1].trim()]) <= Number(lte[2]);\n\n // > comparison\n const gt = body.match(/^(\\w+)\\s*>\\s*(-?\\d+\\.?\\d*)$/);\n if (gt) return Number(variables[gt[1].trim()]) > Number(gt[2]);\n\n // < comparison\n const lt = body.match(/^(\\w+)\\s*<\\s*(-?\\d+\\.?\\d*)$/);\n if (lt) return Number(variables[lt[1].trim()]) < Number(lt[2]);\n\n // Bare variable → truthy\n return Boolean(variables[body]);\n}\n","import { evalCondition } from \"./evaluator\";\nexport type { SimVariables } from \"./evaluator\";\n\n// ─── Public types ─────────────────────────────────────────────────────────────\n\nexport interface SimNode {\n id: string;\n type: string;\n name?: string;\n parentId?: string;\n /** BoundaryEvent only — the task/subprocess this event is attached to. */\n attachedToRef?: string;\n /** BoundaryEvent: true = interrupting (default), false = non-interrupting. */\n isInterrupting?: boolean;\n}\n\nexport interface SimEdge {\n id: string;\n type: string;\n source: string;\n target: string;\n conditionExpression?: string;\n isDefault?: boolean;\n}\n\nexport interface SimDiagram {\n nodes: SimNode[];\n edges: SimEdge[];\n}\n\nexport interface SimToken {\n id: string;\n /** The element the token currently occupies. */\n elementId: string;\n /**\n * The subprocess scope this token belongs to.\n * \"root\" for top-level tokens; the subprocess node id for child tokens.\n */\n scopeId: string;\n}\n\nexport type SimStatus = \"idle\" | \"running\" | \"completed\" | \"deadlocked\";\n\nexport type SimLogType =\n | \"created\"\n | \"fired\"\n | \"split\"\n | \"joined\"\n | \"consumed\"\n | \"blocked\"\n | \"deadlocked\"\n | \"interrupted\";\n\nexport interface SimLogEntry {\n step: number;\n type: SimLogType;\n elementId: string;\n tokenId?: string;\n message: string;\n}\n\nexport interface SimulationState {\n tokens: SimToken[];\n step: number;\n status: SimStatus;\n log: SimLogEntry[];\n /** Process-level variables used for gateway condition evaluation. */\n variables: Record<string, string | number | boolean>;\n /** IDs of subprocess nodes whose internal execution has started. */\n enteredScopes: string[];\n}\n\n// ─── Diagram query helpers ────────────────────────────────────────────────────\n\nfunction seqOut(diagram: SimDiagram, nodeId: string): SimEdge[] {\n return diagram.edges.filter((e) => e.type === \"sequenceFlow\" && e.source === nodeId);\n}\n\nfunction seqIn(diagram: SimDiagram, nodeId: string): SimEdge[] {\n return diagram.edges.filter((e) => e.type === \"sequenceFlow\" && e.target === nodeId);\n}\n\nfunction nodeById(diagram: SimDiagram, id: string): SimNode | undefined {\n return diagram.nodes.find((n) => n.id === id);\n}\n\n/** Returns boundary events attached to the given host element. */\nfunction boundaryEventsOf(diagram: SimDiagram, hostId: string): SimNode[] {\n return diagram.nodes.filter((n) => n.type === \"BoundaryEvent\" && n.attachedToRef === hostId);\n}\n\nlet _tokenCounter = 0;\nfunction nextTokenId(): string {\n return `tok_${++_tokenCounter}`;\n}\n\n// ─── Element classification ───────────────────────────────────────────────────\n\nconst GATEWAY_TYPES = new Set([\n \"ExclusiveGateway\",\n \"InclusiveGateway\",\n \"ParallelGateway\",\n \"ComplexGateway\",\n \"EventBasedGateway\",\n]);\n\nconst TASK_TYPES = new Set([\n \"Task\",\n \"UserTask\",\n \"ServiceTask\",\n \"ScriptTask\",\n \"ManualTask\",\n \"BusinessRuleTask\",\n \"ReceiveTask\",\n \"SendTask\",\n \"CallActivity\",\n]);\n\nfunction isAutomatic(nodeType: string): boolean {\n return (\n nodeType === \"StartEvent\" ||\n nodeType === \"EndEvent\" ||\n nodeType === \"IntermediateThrowEvent\" ||\n GATEWAY_TYPES.has(nodeType)\n );\n}\n\nfunction isManual(nodeType: string): boolean {\n return (\n TASK_TYPES.has(nodeType) ||\n nodeType === \"IntermediateCatchEvent\" ||\n nodeType === \"BoundaryEvent\"\n );\n}\n\nfunction isSubProcess(nodeType: string): boolean {\n return (\n nodeType === \"SubProcess\" ||\n nodeType === \"Transaction\" ||\n nodeType === \"EventSubProcess\" ||\n nodeType === \"AdHocSubProcess\"\n );\n}\n\nfunction isRootProcessStart(diagram: SimDiagram, node: SimNode): boolean {\n if (node.type !== \"StartEvent\") return false;\n if (!node.parentId) return true;\n const parent = nodeById(diagram, node.parentId);\n return !parent || !isSubProcess(parent.type);\n}\n\n// ─── Scope resolution ─────────────────────────────────────────────────────────\n\n/**\n * Determines the scope of a node by checking whether its parent is a SubProcess.\n * Returns \"root\" for top-level nodes or children of Pools/Lanes.\n */\nfunction getScopeId(diagram: SimDiagram, nodeId: string): string {\n const node = nodeById(diagram, nodeId);\n if (!node?.parentId) return \"root\";\n const parent = nodeById(diagram, node.parentId);\n return parent && isSubProcess(parent.type) ? node.parentId : \"root\";\n}\n\n// ─── Core token helpers ───────────────────────────────────────────────────────\n\nfunction withLog(\n state: SimulationState,\n entry: Omit<SimLogEntry, \"step\">,\n): SimulationState {\n return { ...state, log: [...state.log, { ...entry, step: state.step }] };\n}\n\n/**\n * Removes the consumed token and creates new tokens at each outgoing\n * sequence-flow target of sourceId. Each new token inherits the scope\n * determined by the target node's position in the diagram.\n */\nfunction disperseToTargets(\n diagram: SimDiagram,\n state: SimulationState,\n sourceId: string,\n consumedTokenId: string | null,\n): SimulationState {\n const outEdges = seqOut(diagram, sourceId);\n if (outEdges.length === 0) return state;\n\n let next: SimulationState = {\n ...state,\n tokens:\n consumedTokenId !== null\n ? state.tokens.filter((t) => t.id !== consumedTokenId)\n : state.tokens,\n };\n\n for (const edge of outEdges) {\n const target = nodeById(diagram, edge.target);\n if (!target) continue;\n\n const newToken: SimToken = {\n id: nextTokenId(),\n elementId: edge.target,\n scopeId: getScopeId(diagram, edge.target),\n };\n next = {\n ...next,\n tokens: [...next.tokens, newToken],\n };\n next = withLog(next, {\n type: \"created\",\n elementId: edge.target,\n tokenId: newToken.id,\n message: `Token created at \"${target.name ?? edge.target}\".`,\n });\n }\n\n return next;\n}\n\n// ─── SubProcess scope management ─────────────────────────────────────────────\n\nfunction enterSubProcess(\n diagram: SimDiagram,\n state: SimulationState,\n subProcNode: SimNode,\n): SimulationState {\n const childStarts = diagram.nodes.filter(\n (n) => n.type === \"StartEvent\" && n.parentId === subProcNode.id,\n );\n\n let next: SimulationState = {\n ...state,\n enteredScopes: [...state.enteredScopes, subProcNode.id],\n };\n\n for (const startNode of childStarts) {\n const newToken: SimToken = {\n id: nextTokenId(),\n elementId: startNode.id,\n scopeId: subProcNode.id,\n };\n next = {\n ...next,\n tokens: [...next.tokens, newToken],\n };\n next = withLog(next, {\n type: \"created\",\n elementId: startNode.id,\n tokenId: newToken.id,\n message: `SubProcess \"${subProcNode.name ?? subProcNode.id}\" entered — token at \"${startNode.name ?? startNode.id}\".`,\n });\n }\n\n return next;\n}\n\n// ─── Automatic element execution ──────────────────────────────────────────────\n\nfunction fireAutomatic(\n diagram: SimDiagram,\n state: SimulationState,\n token: SimToken,\n): SimulationState {\n const node = nodeById(diagram, token.elementId);\n if (!node) return state;\n const { type } = node;\n const vars = state.variables;\n\n // EndEvent ─────────────────────────────────────────────────────────────────\n if (type === \"EndEvent\") {\n let next: SimulationState = {\n ...state,\n tokens: state.tokens.filter((t) => t.id !== token.id),\n };\n next = withLog(next, {\n type: \"consumed\",\n elementId: node.id,\n tokenId: token.id,\n message: `Token consumed at end event \"${node.name ?? node.id}\".`,\n });\n return next;\n }\n\n // StartEvent / IntermediateThrowEvent ──────────────────────────────────────\n if (type === \"StartEvent\" || type === \"IntermediateThrowEvent\") {\n let next = withLog(state, {\n type: \"fired\",\n elementId: node.id,\n tokenId: token.id,\n message: `\"${node.name ?? node.id}\" (${type}) fired.`,\n });\n return disperseToTargets(diagram, next, node.id, token.id);\n }\n\n // ExclusiveGateway ─────────────────────────────────────────────────────────\n if (type === \"ExclusiveGateway\") {\n const incoming = seqIn(diagram, node.id);\n if (incoming.length >= 2) {\n // XOR join: pass through immediately\n let next = withLog(state, {\n type: \"joined\",\n elementId: node.id,\n tokenId: token.id,\n message: `ExclusiveGateway \"${node.name ?? node.id}\" join — token passes through.`,\n });\n return disperseToTargets(diagram, next, node.id, token.id);\n }\n\n const outEdges = seqOut(diagram, node.id);\n // Evaluate conditions; fall back to default, then first\n const chosen =\n outEdges.find(\n (e) => e.conditionExpression && !e.isDefault && evalCondition(e.conditionExpression, vars),\n ) ??\n outEdges.find((e) => e.isDefault) ??\n outEdges[0];\n\n if (!chosen) return state;\n const target = nodeById(diagram, chosen.target);\n if (!target) return state;\n\n const newToken: SimToken = {\n id: nextTokenId(),\n elementId: chosen.target,\n scopeId: getScopeId(diagram, chosen.target),\n };\n let next: SimulationState = {\n ...state,\n tokens: [...state.tokens.filter((t) => t.id !== token.id), newToken],\n };\n next = withLog(next, {\n type: \"fired\",\n elementId: node.id,\n tokenId: token.id,\n message: `ExclusiveGateway \"${node.name ?? node.id}\" split → \"${target.name ?? chosen.target}\".`,\n });\n return next;\n }\n\n // InclusiveGateway ─────────────────────────────────────────────────────────\n if (type === \"InclusiveGateway\") {\n const incoming = seqIn(diagram, node.id);\n if (incoming.length >= 2) {\n // OR join: pass through (simplified — full semantics require tracking active paths)\n let next = withLog(state, {\n type: \"joined\",\n elementId: node.id,\n tokenId: token.id,\n message: `InclusiveGateway \"${node.name ?? node.id}\" join.`,\n });\n return disperseToTargets(diagram, next, node.id, token.id);\n }\n\n const outEdges = seqOut(diagram, node.id);\n // Take all paths whose condition is true; if none match → take default\n const matching = outEdges.filter(\n (e) => e.conditionExpression && !e.isDefault && evalCondition(e.conditionExpression, vars),\n );\n const activePaths = matching.length > 0 ? matching : outEdges.filter((e) => e.isDefault);\n const paths = activePaths.length > 0 ? activePaths : outEdges; // all if no conditions defined\n\n let next = withLog(state, {\n type: \"split\",\n elementId: node.id,\n tokenId: token.id,\n message: `InclusiveGateway \"${node.name ?? node.id}\" split → ${paths.length} path(s).`,\n });\n\n next = { ...next, tokens: next.tokens.filter((t) => t.id !== token.id) };\n for (const edge of paths) {\n const tgt = nodeById(diagram, edge.target);\n if (!tgt) continue;\n const newToken: SimToken = {\n id: nextTokenId(),\n elementId: edge.target,\n scopeId: getScopeId(diagram, edge.target),\n };\n next = { ...next, tokens: [...next.tokens, newToken] };\n next = withLog(next, {\n type: \"created\",\n elementId: edge.target,\n tokenId: newToken.id,\n message: `Token created at \"${tgt.name ?? edge.target}\".`,\n });\n }\n return next;\n }\n\n // ParallelGateway ──────────────────────────────────────────────────────────\n if (type === \"ParallelGateway\") {\n const incoming = seqIn(diagram, node.id);\n if (incoming.length >= 2) {\n const atGateway = state.tokens.filter((t) => t.elementId === node.id);\n if (atGateway.length < incoming.length) {\n return withLog(state, {\n type: \"blocked\",\n elementId: node.id,\n tokenId: token.id,\n message: `ParallelGateway \"${node.name ?? node.id}\" waiting for ${incoming.length - atGateway.length} more token(s).`,\n });\n }\n const consumeIds = new Set(atGateway.map((t) => t.id));\n let next: SimulationState = {\n ...state,\n tokens: state.tokens.filter((t) => !consumeIds.has(t.id)),\n };\n next = withLog(next, {\n type: \"joined\",\n elementId: node.id,\n message: `ParallelGateway \"${node.name ?? node.id}\" join fired — all paths synchronized.`,\n });\n return disperseToTargets(diagram, next, node.id, null);\n }\n // AND split\n let next = withLog(state, {\n type: \"split\",\n elementId: node.id,\n tokenId: token.id,\n message: `ParallelGateway \"${node.name ?? node.id}\" split → ${seqOut(diagram, node.id).length} paths.`,\n });\n return disperseToTargets(diagram, next, node.id, token.id);\n }\n\n // EventBasedGateway ────────────────────────────────────────────────────────\n // Disperses to ALL outgoing catch events; first one fired wins (race).\n if (type === \"EventBasedGateway\") {\n let next = withLog(state, {\n type: \"split\",\n elementId: node.id,\n tokenId: token.id,\n message: `EventBasedGateway \"${node.name ?? node.id}\" waiting — ${seqOut(diagram, node.id).length} competing event(s).`,\n });\n return disperseToTargets(diagram, next, node.id, token.id);\n }\n\n // ComplexGateway (simplified: first path) ─────────────────────────────────\n if (type === \"ComplexGateway\") {\n const outEdges = seqOut(diagram, node.id);\n const chosen = outEdges[0];\n if (!chosen) return state;\n const newToken: SimToken = {\n id: nextTokenId(),\n elementId: chosen.target,\n scopeId: getScopeId(diagram, chosen.target),\n };\n let next: SimulationState = {\n ...state,\n tokens: [...state.tokens.filter((t) => t.id !== token.id), newToken],\n };\n next = withLog(next, {\n type: \"fired\",\n elementId: node.id,\n tokenId: token.id,\n message: `ComplexGateway \"${node.name ?? node.id}\" fired → \"${chosen.target}\".`,\n });\n return next;\n }\n\n return state;\n}\n\n// ─── Public API ───────────────────────────────────────────────────────────────\n\nexport function createSimulation(\n diagram: SimDiagram,\n initialVariables: Record<string, string | number | boolean> = {},\n): SimulationState {\n _tokenCounter = 0;\n\n const startEvents = diagram.nodes.filter((n) => isRootProcessStart(diagram, n));\n\n const tokens: SimToken[] = startEvents.map((n) => ({\n id: nextTokenId(),\n elementId: n.id,\n scopeId: \"root\",\n }));\n\n const log: SimLogEntry[] = startEvents.map((n, i) => ({\n step: 0,\n type: \"created\" as SimLogType,\n elementId: n.id,\n tokenId: tokens[i]?.id,\n message: `Simulation started — token placed at \"${n.name ?? n.id}\".`,\n }));\n\n return {\n tokens,\n step: 0,\n status: startEvents.length > 0 ? \"running\" : \"idle\",\n log,\n variables: initialVariables,\n enteredScopes: [],\n };\n}\n\nexport function tick(diagram: SimDiagram, state: SimulationState): SimulationState {\n if (state.status !== \"running\") return state;\n\n let current: SimulationState = { ...state, step: state.step + 1 };\n let changed = true;\n let guard = 0;\n\n while (changed && guard < 1000) {\n guard++;\n changed = false;\n\n for (const token of current.tokens) {\n const node = nodeById(diagram, token.elementId);\n if (!node) continue;\n\n // ── SubProcess enter / wait / complete ─────────────────────────────────\n if (isSubProcess(node.type)) {\n if (!current.enteredScopes.includes(node.id)) {\n // Enter: spawn child tokens at internal start events\n const childStarts = diagram.nodes.filter(\n (n) => n.type === \"StartEvent\" && n.parentId === node.id,\n );\n if (childStarts.length > 0) {\n current = enterSubProcess(diagram, current, node);\n changed = true;\n break;\n }\n // No internal structure → treat as manual task (don't advance)\n } else {\n // Check if scope completed\n const scopeTokens = current.tokens.filter((t) => t.scopeId === node.id);\n if (scopeTokens.length === 0) {\n let next = withLog(current, {\n type: \"fired\",\n elementId: node.id,\n tokenId: token.id,\n message: `SubProcess \"${node.name ?? node.id}\" completed.`,\n });\n current = disperseToTargets(diagram, next, node.id, token.id);\n changed = true;\n break;\n }\n }\n continue;\n }\n\n // ── ParallelGateway join: only fire when all tokens are present ─────────\n if (node.type === \"ParallelGateway\") {\n const incoming = seqIn(diagram, node.id);\n const atGateway = current.tokens.filter((t) => t.elementId === node.id);\n if (incoming.length >= 2 && atGateway.length < incoming.length) continue;\n }\n\n if (!isAutomatic(node.type)) continue;\n\n const prevLen = current.tokens.length;\n const prevIds = new Set(current.tokens.map((t) => t.id));\n current = fireAutomatic(diagram, current, token);\n\n const same =\n current.tokens.length === prevLen &&\n [...prevIds].every((id) => current.tokens.some((t) => t.id === id));\n\n if (!same) {\n changed = true;\n break;\n }\n }\n }\n\n // Determine final status\n if (current.tokens.length === 0) {\n current = { ...current, status: \"completed\" };\n }\n\n return current;\n}\n\nexport function fire(\n diagram: SimDiagram,\n state: SimulationState,\n elementId: string,\n variables?: Record<string, string | number | boolean>,\n): SimulationState {\n if (state.status !== \"running\") return state;\n\n const node = nodeById(diagram, elementId);\n if (!node) return state;\n\n const mergedVars = variables ? { ...state.variables, ...variables } : state.variables;\n\n // ── BoundaryEvent: fired from the host task context, no token at the event ─\n if (node.type === \"BoundaryEvent\") {\n const hostId = node.attachedToRef;\n if (!hostId) return state;\n\n // The boundary event is activated relative to a token at the host task\n const hostToken = state.tokens.find((t) => t.elementId === hostId);\n if (!hostToken) return state;\n\n const isInterrupting = node.isInterrupting !== false;\n\n let next: SimulationState = { ...state, variables: mergedVars, step: state.step + 1 };\n next = withLog(next, {\n type: isInterrupting ? \"interrupted\" : \"fired\",\n elementId,\n tokenId: hostToken.id,\n message: `BoundaryEvent \"${node.name ?? elementId}\" fired (${isInterrupting ? \"interrupting\" : \"non-interrupting\"}).`,\n });\n\n if (isInterrupting) {\n // Remove the host task token (interrupts the task)\n next = { ...next, tokens: next.tokens.filter((t) => t.id !== hostToken.id) };\n }\n // Non-interrupting: host token stays; a new parallel token follows the boundary path\n\n next = disperseToTargets(diagram, next, elementId, null);\n return tick(diagram, { ...next, step: next.step - 1 });\n }\n\n const token = state.tokens.find((t) => t.elementId === elementId);\n if (!token) return state;\n\n // ── IntermediateCatchEvent following an EventBasedGateway: cancel race ────\n if (node.type === \"IntermediateCatchEvent\") {\n const gwEdge = seqIn(diagram, elementId).find((e) => {\n const src = nodeById(diagram, e.source);\n return src?.type === \"EventBasedGateway\";\n });\n if (gwEdge) {\n // Cancel all sibling catch events in the race\n const gw = nodeById(diagram, gwEdge.source);\n if (gw) {\n const siblingTargets = new Set(\n seqOut(diagram, gw.id)\n .map((e) => e.target)\n .filter((id) => id !== elementId),\n );\n state = {\n ...state,\n tokens: state.tokens.filter((t) => !siblingTargets.has(t.elementId)),\n };\n }\n }\n }\n\n let next: SimulationState = { ...state, variables: mergedVars, step: state.step + 1 };\n next = withLog(next, {\n type: \"fired\",\n elementId,\n tokenId: token.id,\n message: `\"${node.name ?? elementId}\" (${node.type}) manually fired.`,\n });\n next = disperseToTargets(diagram, next, elementId, token.id);\n return tick(diagram, { ...next, step: next.step - 1 });\n}\n\nexport function getFireable(diagram: SimDiagram, state: SimulationState): string[] {\n if (state.status !== \"running\") return [];\n\n const fireable = new Set<string>();\n\n for (const token of state.tokens) {\n const node = nodeById(diagram, token.elementId);\n if (!node) continue;\n\n if (isManual(node.type)) {\n fireable.add(node.id);\n }\n\n // Expose boundary events attached to tasks that have tokens\n if (TASK_TYPES.has(node.type)) {\n for (const be of boundaryEventsOf(diagram, node.id)) {\n fireable.add(be.id);\n }\n }\n }\n\n return [...fireable];\n}\n\nexport function isCompleted(state: SimulationState): boolean {\n return state.status === \"completed\";\n}\n\n/** Set or update a process variable without advancing the simulation. */\nexport function setVariable(\n state: SimulationState,\n key: string,\n value: string | number | boolean,\n): SimulationState {\n return { ...state, variables: { ...state.variables, [key]: value } };\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { BPMN_ELEMENT_CATALOG } from './chunk-DNR5WBQH.js';
1
+ import { BPMN_ELEMENT_CATALOG } from './chunk-L5Z22RLX.js';
2
2
 
3
3
  // src/elements/guards.ts
4
4
  var TASK_TYPES = /* @__PURE__ */ new Set([
@@ -82,5 +82,5 @@ function supportsMarkers(type) {
82
82
  }
83
83
 
84
84
  export { acceptsBoundaryEvents, getHandlePolicy, getOrientation, isChoreographyType, isContainerType, isConversationType, isDataType, isEventType, isGatewayType, isTaskType, supportsCollapse, supportsMarkers };
85
- //# sourceMappingURL=chunk-5GRCJ5X6.js.map
86
- //# sourceMappingURL=chunk-5GRCJ5X6.js.map
85
+ //# sourceMappingURL=chunk-RLAJNRF2.js.map
86
+ //# sourceMappingURL=chunk-RLAJNRF2.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/elements/guards.ts"],"names":[],"mappings":";;;AAGA,IAAM,UAAA,uBAAiB,GAAA,CAAqB;AAAA,EAC1C,MAAA;AAAA,EAAQ,UAAA;AAAA,EAAY,aAAA;AAAA,EAAe,YAAA;AAAA,EACnC,YAAA;AAAA,EAAc,kBAAA;AAAA,EAAoB,aAAA;AAAA,EAAe,UAAA;AAAA,EAAY;AAC/D,CAAC,CAAA;AAED,IAAM,aAAA,uBAAoB,GAAA,CAAqB;AAAA,EAC7C,kBAAA;AAAA,EAAoB,kBAAA;AAAA,EAAoB,iBAAA;AAAA,EACxC,mBAAA;AAAA,EAAqB;AACvB,CAAC,CAAA;AAED,IAAM,WAAA,uBAAkB,GAAA,CAAqB;AAAA,EAC3C,YAAA;AAAA,EAAc,UAAA;AAAA,EAAY,wBAAA;AAAA,EAC1B,wBAAA;AAAA,EAA0B;AAC5B,CAAC,CAAA;AAED,IAAM,UAAA,uBAAiB,GAAA,CAAqB;AAAA,EAC1C,YAAA;AAAA,EAAc,qBAAA;AAAA,EAAuB,WAAA;AAAA,EAAa,YAAA;AAAA,EAClD,WAAA;AAAA,EAAa;AACf,CAAC,CAAA;AAED,IAAM,kBAAA,uBAAyB,GAAA,CAAqB;AAAA,EAClD,cAAA;AAAA,EAAgB,iBAAA;AAAA,EAAmB;AACrC,CAAC,CAAA;AAED,IAAM,kBAAA,uBAAyB,GAAA,CAAqB;AAAA,EAClD,kBAAA;AAAA,EAAoB,iBAAA;AAAA,EAAmB;AACzC,CAAC,CAAA;AAEM,SAAS,WAAW,IAAA,EAAgC;AACzD,EAAA,OAAO,UAAA,CAAW,IAAI,IAAI,CAAA;AAC5B;AAEO,SAAS,cAAc,IAAA,EAAgC;AAC5D,EAAA,OAAO,aAAA,CAAc,IAAI,IAAI,CAAA;AAC/B;AAEO,SAAS,YAAY,IAAA,EAAgC;AAC1D,EAAA,OAAO,WAAA,CAAY,IAAI,IAAI,CAAA;AAC7B;AAEO,SAAS,WAAW,IAAA,EAAgC;AACzD,EAAA,OAAO,UAAA,CAAW,IAAI,IAAI,CAAA;AAC5B;AAEO,SAAS,mBAAmB,IAAA,EAAgC;AACjE,EAAA,OAAO,kBAAA,CAAmB,IAAI,IAAI,CAAA;AACpC;AAEO,SAAS,mBAAmB,IAAA,EAAgC;AACjE,EAAA,OAAO,kBAAA,CAAmB,IAAI,IAAI,CAAA;AACpC;AAEO,SAAS,gBAAgB,IAAA,EAAgC;AAC9D,EAAA,OAAO,oBAAA,CAAqB,IAAI,CAAA,CAAE,WAAA;AACpC;AAEO,SAAS,sBAAsB,IAAA,EAAgC;AACpE,EAAA,OAAO,oBAAA,CAAqB,IAAI,CAAA,CAAE,qBAAA;AACpC;AAEO,SAAS,gBAAgB,IAAA,EAAuB;AACrD,EAAA,OAAO,oBAAA,CAAqB,IAAI,CAAA,CAAE,YAAA;AACpC;AAEO,SAAS,eAAe,IAAA,EAAuB;AACpD,EAAA,OAAO,oBAAA,CAAqB,IAAI,CAAA,CAAE,WAAA;AACpC;AAEO,SAAS,iBAAiB,IAAA,EAAgC;AAC/D,EAAA,OAAO,oBAAA,CAAqB,IAAI,CAAA,CAAE,gBAAA,IAAoB,KAAA;AACxD;AAEO,SAAS,gBAAgB,IAAA,EAAgC;AAC9D,EAAA,OAAO,oBAAA,CAAqB,IAAI,CAAA,CAAE,eAAA,IAAmB,KAAA;AACvD","file":"chunk-5GRCJ5X6.js","sourcesContent":["import { BPMN_ELEMENT_CATALOG } from \"./catalog\";\nimport type { BpmnElementType } from \"./types\";\n\nconst TASK_TYPES = new Set<BpmnElementType>([\n \"Task\", \"UserTask\", \"ServiceTask\", \"ScriptTask\",\n \"ManualTask\", \"BusinessRuleTask\", \"ReceiveTask\", \"SendTask\", \"CallActivity\",\n]);\n\nconst GATEWAY_TYPES = new Set<BpmnElementType>([\n \"ExclusiveGateway\", \"InclusiveGateway\", \"ParallelGateway\",\n \"EventBasedGateway\", \"ComplexGateway\",\n]);\n\nconst EVENT_TYPES = new Set<BpmnElementType>([\n \"StartEvent\", \"EndEvent\", \"IntermediateCatchEvent\",\n \"IntermediateThrowEvent\", \"BoundaryEvent\",\n]);\n\nconst DATA_TYPES = new Set<BpmnElementType>([\n \"DataObject\", \"DataObjectReference\", \"DataInput\", \"DataOutput\",\n \"DataStore\", \"DataStoreReference\",\n]);\n\nconst CONVERSATION_TYPES = new Set<BpmnElementType>([\n \"Conversation\", \"SubConversation\", \"CallConversation\",\n]);\n\nconst CHOREOGRAPHY_TYPES = new Set<BpmnElementType>([\n \"ChoreographyTask\", \"SubChoreography\", \"CallChoreography\",\n]);\n\nexport function isTaskType(type: BpmnElementType): boolean {\n return TASK_TYPES.has(type);\n}\n\nexport function isGatewayType(type: BpmnElementType): boolean {\n return GATEWAY_TYPES.has(type);\n}\n\nexport function isEventType(type: BpmnElementType): boolean {\n return EVENT_TYPES.has(type);\n}\n\nexport function isDataType(type: BpmnElementType): boolean {\n return DATA_TYPES.has(type);\n}\n\nexport function isConversationType(type: BpmnElementType): boolean {\n return CONVERSATION_TYPES.has(type);\n}\n\nexport function isChoreographyType(type: BpmnElementType): boolean {\n return CHOREOGRAPHY_TYPES.has(type);\n}\n\nexport function isContainerType(type: BpmnElementType): boolean {\n return BPMN_ELEMENT_CATALOG[type].isContainer;\n}\n\nexport function acceptsBoundaryEvents(type: BpmnElementType): boolean {\n return BPMN_ELEMENT_CATALOG[type].acceptsBoundaryEvents;\n}\n\nexport function getHandlePolicy(type: BpmnElementType) {\n return BPMN_ELEMENT_CATALOG[type].handlePolicy;\n}\n\nexport function getOrientation(type: BpmnElementType) {\n return BPMN_ELEMENT_CATALOG[type].orientation;\n}\n\nexport function supportsCollapse(type: BpmnElementType): boolean {\n return BPMN_ELEMENT_CATALOG[type].supportsCollapse ?? false;\n}\n\nexport function supportsMarkers(type: BpmnElementType): boolean {\n return BPMN_ELEMENT_CATALOG[type].supportsMarkers ?? false;\n}\n"]}
1
+ {"version":3,"sources":["../src/elements/guards.ts"],"names":[],"mappings":";;;AAGA,IAAM,UAAA,uBAAiB,GAAA,CAAqB;AAAA,EAC1C,MAAA;AAAA,EAAQ,UAAA;AAAA,EAAY,aAAA;AAAA,EAAe,YAAA;AAAA,EACnC,YAAA;AAAA,EAAc,kBAAA;AAAA,EAAoB,aAAA;AAAA,EAAe,UAAA;AAAA,EAAY;AAC/D,CAAC,CAAA;AAED,IAAM,aAAA,uBAAoB,GAAA,CAAqB;AAAA,EAC7C,kBAAA;AAAA,EAAoB,kBAAA;AAAA,EAAoB,iBAAA;AAAA,EACxC,mBAAA;AAAA,EAAqB;AACvB,CAAC,CAAA;AAED,IAAM,WAAA,uBAAkB,GAAA,CAAqB;AAAA,EAC3C,YAAA;AAAA,EAAc,UAAA;AAAA,EAAY,wBAAA;AAAA,EAC1B,wBAAA;AAAA,EAA0B;AAC5B,CAAC,CAAA;AAED,IAAM,UAAA,uBAAiB,GAAA,CAAqB;AAAA,EAC1C,YAAA;AAAA,EAAc,qBAAA;AAAA,EAAuB,WAAA;AAAA,EAAa,YAAA;AAAA,EAClD,WAAA;AAAA,EAAa;AACf,CAAC,CAAA;AAED,IAAM,kBAAA,uBAAyB,GAAA,CAAqB;AAAA,EAClD,cAAA;AAAA,EAAgB,iBAAA;AAAA,EAAmB;AACrC,CAAC,CAAA;AAED,IAAM,kBAAA,uBAAyB,GAAA,CAAqB;AAAA,EAClD,kBAAA;AAAA,EAAoB,iBAAA;AAAA,EAAmB;AACzC,CAAC,CAAA;AAEM,SAAS,WAAW,IAAA,EAAgC;AACzD,EAAA,OAAO,UAAA,CAAW,IAAI,IAAI,CAAA;AAC5B;AAEO,SAAS,cAAc,IAAA,EAAgC;AAC5D,EAAA,OAAO,aAAA,CAAc,IAAI,IAAI,CAAA;AAC/B;AAEO,SAAS,YAAY,IAAA,EAAgC;AAC1D,EAAA,OAAO,WAAA,CAAY,IAAI,IAAI,CAAA;AAC7B;AAEO,SAAS,WAAW,IAAA,EAAgC;AACzD,EAAA,OAAO,UAAA,CAAW,IAAI,IAAI,CAAA;AAC5B;AAEO,SAAS,mBAAmB,IAAA,EAAgC;AACjE,EAAA,OAAO,kBAAA,CAAmB,IAAI,IAAI,CAAA;AACpC;AAEO,SAAS,mBAAmB,IAAA,EAAgC;AACjE,EAAA,OAAO,kBAAA,CAAmB,IAAI,IAAI,CAAA;AACpC;AAEO,SAAS,gBAAgB,IAAA,EAAgC;AAC9D,EAAA,OAAO,oBAAA,CAAqB,IAAI,CAAA,CAAE,WAAA;AACpC;AAEO,SAAS,sBAAsB,IAAA,EAAgC;AACpE,EAAA,OAAO,oBAAA,CAAqB,IAAI,CAAA,CAAE,qBAAA;AACpC;AAEO,SAAS,gBAAgB,IAAA,EAAuB;AACrD,EAAA,OAAO,oBAAA,CAAqB,IAAI,CAAA,CAAE,YAAA;AACpC;AAEO,SAAS,eAAe,IAAA,EAAuB;AACpD,EAAA,OAAO,oBAAA,CAAqB,IAAI,CAAA,CAAE,WAAA;AACpC;AAEO,SAAS,iBAAiB,IAAA,EAAgC;AAC/D,EAAA,OAAO,oBAAA,CAAqB,IAAI,CAAA,CAAE,gBAAA,IAAoB,KAAA;AACxD;AAEO,SAAS,gBAAgB,IAAA,EAAgC;AAC9D,EAAA,OAAO,oBAAA,CAAqB,IAAI,CAAA,CAAE,eAAA,IAAmB,KAAA;AACvD","file":"chunk-RLAJNRF2.js","sourcesContent":["import { BPMN_ELEMENT_CATALOG } from \"./catalog\";\nimport type { BpmnElementType } from \"./types\";\n\nconst TASK_TYPES = new Set<BpmnElementType>([\n \"Task\", \"UserTask\", \"ServiceTask\", \"ScriptTask\",\n \"ManualTask\", \"BusinessRuleTask\", \"ReceiveTask\", \"SendTask\", \"CallActivity\",\n]);\n\nconst GATEWAY_TYPES = new Set<BpmnElementType>([\n \"ExclusiveGateway\", \"InclusiveGateway\", \"ParallelGateway\",\n \"EventBasedGateway\", \"ComplexGateway\",\n]);\n\nconst EVENT_TYPES = new Set<BpmnElementType>([\n \"StartEvent\", \"EndEvent\", \"IntermediateCatchEvent\",\n \"IntermediateThrowEvent\", \"BoundaryEvent\",\n]);\n\nconst DATA_TYPES = new Set<BpmnElementType>([\n \"DataObject\", \"DataObjectReference\", \"DataInput\", \"DataOutput\",\n \"DataStore\", \"DataStoreReference\",\n]);\n\nconst CONVERSATION_TYPES = new Set<BpmnElementType>([\n \"Conversation\", \"SubConversation\", \"CallConversation\",\n]);\n\nconst CHOREOGRAPHY_TYPES = new Set<BpmnElementType>([\n \"ChoreographyTask\", \"SubChoreography\", \"CallChoreography\",\n]);\n\nexport function isTaskType(type: BpmnElementType): boolean {\n return TASK_TYPES.has(type);\n}\n\nexport function isGatewayType(type: BpmnElementType): boolean {\n return GATEWAY_TYPES.has(type);\n}\n\nexport function isEventType(type: BpmnElementType): boolean {\n return EVENT_TYPES.has(type);\n}\n\nexport function isDataType(type: BpmnElementType): boolean {\n return DATA_TYPES.has(type);\n}\n\nexport function isConversationType(type: BpmnElementType): boolean {\n return CONVERSATION_TYPES.has(type);\n}\n\nexport function isChoreographyType(type: BpmnElementType): boolean {\n return CHOREOGRAPHY_TYPES.has(type);\n}\n\nexport function isContainerType(type: BpmnElementType): boolean {\n return BPMN_ELEMENT_CATALOG[type].isContainer;\n}\n\nexport function acceptsBoundaryEvents(type: BpmnElementType): boolean {\n return BPMN_ELEMENT_CATALOG[type].acceptsBoundaryEvents;\n}\n\nexport function getHandlePolicy(type: BpmnElementType) {\n return BPMN_ELEMENT_CATALOG[type].handlePolicy;\n}\n\nexport function getOrientation(type: BpmnElementType) {\n return BPMN_ELEMENT_CATALOG[type].orientation;\n}\n\nexport function supportsCollapse(type: BpmnElementType): boolean {\n return BPMN_ELEMENT_CATALOG[type].supportsCollapse ?? false;\n}\n\nexport function supportsMarkers(type: BpmnElementType): boolean {\n return BPMN_ELEMENT_CATALOG[type].supportsMarkers ?? false;\n}\n"]}