@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/elements/catalog.ts","../../src/elements/guards.ts","../../src/validation/index.ts"],"names":[],"mappings":"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","file":"index.cjs","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","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","import { BPMN_ELEMENT_CATALOG } from \"../elements/catalog\";\nimport {\n isDataType,\n isEventType,\n isGatewayType,\n} from \"../elements/guards\";\nimport type { BpmnElementType } from \"../elements/types\";\nimport type { BpmnRFEdge, BpmnRFNode } from \"../xml/types\";\n\nexport type BpmnValidationSeverity = \"error\" | \"warning\" | \"info\";\n\nexport interface BpmnValidationIssue {\n id: string;\n severity: BpmnValidationSeverity;\n code: string;\n message: string;\n elementId?: string;\n relatedElementIds?: string[];\n}\n\nexport interface BpmnValidationResult {\n valid: boolean;\n issues: BpmnValidationIssue[];\n}\n\nexport interface BpmnValidationOptions {\n requireStartEvent?: boolean;\n requireEndEvent?: boolean;\n strictNames?: boolean;\n}\n\nfunction isFlowNode(type: BpmnElementType): boolean {\n return (\n isEventType(type) ||\n isGatewayType(type) ||\n type.includes(\"Task\") ||\n type === \"CallActivity\" ||\n type === \"SubProcess\" ||\n type === \"Transaction\" ||\n type === \"EventSubProcess\" ||\n type === \"AdHocSubProcess\" ||\n type === \"ChoreographyTask\" ||\n type === \"SubChoreography\" ||\n type === \"CallChoreography\"\n );\n}\n\nfunction isProcessNode(type: BpmnElementType): boolean {\n return isFlowNode(type) && type !== \"BoundaryEvent\";\n}\n\nfunction isSubProcess(type: BpmnElementType): boolean {\n return (\n type === \"SubProcess\" ||\n type === \"Transaction\" ||\n type === \"EventSubProcess\" ||\n type === \"AdHocSubProcess\"\n );\n}\n\nfunction isCatchTarget(type: BpmnElementType): boolean {\n return type === \"IntermediateCatchEvent\" || type === \"ReceiveTask\";\n}\n\nfunction poolAncestor(\n node: BpmnRFNode | undefined,\n nodeById: Map<string, BpmnRFNode>,\n): string | undefined {\n let current = node;\n const visited = new Set<string>();\n while (current?.parentId && !visited.has(current.id)) {\n visited.add(current.id);\n const parent = nodeById.get(current.parentId);\n if (parent?.data.elementType === \"Pool\") return parent.id;\n current = parent;\n }\n return undefined;\n}\n\nfunction countSequenceEdges(edges: BpmnRFEdge[], nodeId: string, direction: \"in\" | \"out\"): number {\n return edges.filter((edge) => {\n if (edge.data?.edgeType !== \"sequenceFlow\") return false;\n return direction === \"in\" ? edge.target === nodeId : edge.source === nodeId;\n }).length;\n}\n\nfunction sequenceEdges(edges: BpmnRFEdge[]): BpmnRFEdge[] {\n return edges.filter((edge) => (edge.data?.edgeType ?? edge.type) === \"sequenceFlow\");\n}\n\nfunction sequenceOut(edges: BpmnRFEdge[], nodeId: string): BpmnRFEdge[] {\n return sequenceEdges(edges).filter((edge) => edge.source === nodeId);\n}\n\nfunction sequenceIn(edges: BpmnRFEdge[], nodeId: string): BpmnRFEdge[] {\n return sequenceEdges(edges).filter((edge) => edge.target === nodeId);\n}\n\nfunction issue(\n code: string,\n severity: BpmnValidationSeverity,\n message: string,\n elementId?: string,\n relatedElementIds?: string[],\n): BpmnValidationIssue {\n return {\n id: `${code}:${elementId ?? relatedElementIds?.join(\",\") ?? \"diagram\"}`,\n code,\n severity,\n message,\n ...(elementId ? { elementId } : {}),\n ...(relatedElementIds ? { relatedElementIds } : {}),\n };\n}\n\nexport function validateBpmnDiagram(\n nodes: BpmnRFNode[],\n edges: BpmnRFEdge[],\n options: BpmnValidationOptions = {},\n): BpmnValidationResult {\n const opts = {\n requireStartEvent: true,\n requireEndEvent: true,\n strictNames: false,\n ...options,\n };\n const issues: BpmnValidationIssue[] = [];\n const nodeById = new Map(nodes.map((node) => [node.id, node]));\n const seqEdges = sequenceEdges(edges);\n\n const processNodes = nodes.filter((node) => isProcessNode(node.data.elementType));\n if (opts.requireStartEvent && !processNodes.some((node) => node.data.elementType === \"StartEvent\")) {\n issues.push(issue(\"bpmn/start-event-required\", \"error\", \"The diagram must contain at least one start event.\"));\n }\n if (opts.requireEndEvent && !processNodes.some((node) => node.data.elementType === \"EndEvent\")) {\n issues.push(issue(\"bpmn/end-event-required\", \"error\", \"The diagram must contain at least one end event.\"));\n }\n\n for (const edge of edges) {\n const edgeType = edge.data?.edgeType ?? edge.type;\n const source = nodeById.get(edge.source);\n const target = nodeById.get(edge.target);\n\n if (!source || !target) {\n issues.push(issue(\n \"bpmn/no-orphan-edges\",\n \"error\",\n `Edge \"${edge.id}\" references a missing ${!source ? \"source\" : \"target\"} node.`,\n edge.id,\n [edge.source, edge.target],\n ));\n continue;\n }\n\n if (edge.source === edge.target) {\n issues.push(issue(\"bpmn/no-self-loop\", \"error\", \"BPMN edges cannot connect an element to itself.\", edge.id, [edge.source]));\n }\n\n if (edgeType === \"sequenceFlow\") {\n if (!isFlowNode(source.data.elementType) || !isFlowNode(target.data.elementType) || isDataType(source.data.elementType) || isDataType(target.data.elementType)) {\n issues.push(issue(\"bpmn/sequence-flow-valid-endpoints\", \"error\", \"Sequence flows must connect BPMN flow nodes.\", edge.id, [source.id, target.id]));\n }\n const sourcePool = poolAncestor(source, nodeById);\n const targetPool = poolAncestor(target, nodeById);\n if (sourcePool && targetPool && sourcePool !== targetPool) {\n issues.push(issue(\"bpmn/sequence-flow-no-cross-pool\", \"error\", \"Sequence flows cannot cross pools. Use message flow between participants.\", edge.id, [source.id, target.id]));\n }\n }\n\n if (edgeType === \"messageFlow\") {\n const sourcePool = poolAncestor(source, nodeById);\n const targetPool = poolAncestor(target, nodeById);\n if (!sourcePool || !targetPool || sourcePool === targetPool) {\n issues.push(issue(\"bpmn/message-flow-valid-endpoints\", \"error\", \"Message flows must connect flow nodes in different pools.\", edge.id, [source.id, target.id]));\n }\n if (!isFlowNode(source.data.elementType) || !isFlowNode(target.data.elementType)) {\n issues.push(issue(\"bpmn/message-flow-valid-endpoints\", \"error\", \"Message flows must connect BPMN flow nodes, not containers.\", edge.id, [source.id, target.id]));\n }\n }\n\n if (edgeType === \"dataAssociation\") {\n const hasDataEndpoint = isDataType(source.data.elementType) || isDataType(target.data.elementType);\n const hasFlowEndpoint = isFlowNode(source.data.elementType) || isFlowNode(target.data.elementType);\n if (!hasDataEndpoint || !hasFlowEndpoint) {\n issues.push(issue(\"bpmn/data-association-valid-endpoints\", \"error\", \"Data associations must connect data elements with flow nodes.\", edge.id, [source.id, target.id]));\n }\n }\n }\n\n const duplicateSequenceKeys = new Set<string>();\n const reportedDuplicateKeys = new Set<string>();\n for (const edge of seqEdges) {\n const key = `${edge.source}->${edge.target}`;\n if (duplicateSequenceKeys.has(key) && !reportedDuplicateKeys.has(key)) {\n reportedDuplicateKeys.add(key);\n issues.push(issue(\"bpmn/no-duplicate-sequence-flow\", \"error\", \"Only one sequence flow is allowed between the same source and target.\", edge.id, [edge.source, edge.target]));\n }\n duplicateSequenceKeys.add(key);\n }\n\n for (const node of nodes) {\n const type = node.data.elementType;\n const incoming = countSequenceEdges(edges, node.id, \"in\");\n const outgoing = countSequenceEdges(edges, node.id, \"out\");\n const meta = BPMN_ELEMENT_CATALOG[type];\n\n if (type === \"StartEvent\" && incoming > 0) {\n issues.push(issue(\"bpmn/start-event-no-incoming\", \"error\", \"Start events cannot have incoming sequence flows.\", node.id));\n }\n if (type === \"EndEvent\") {\n if (outgoing > 0) issues.push(issue(\"bpmn/no-outgoing-from-end-event\", \"error\", \"End events cannot have outgoing sequence flows.\", node.id));\n if (incoming === 0) issues.push(issue(\"bpmn/end-event-has-incoming\", \"error\", \"End events should have at least one incoming sequence flow.\", node.id));\n }\n if ((type === \"IntermediateCatchEvent\" || type === \"IntermediateThrowEvent\") && (incoming === 0 || outgoing === 0)) {\n issues.push(issue(\"bpmn/intermediate-event-both-flows\", \"error\", \"Intermediate events should have both incoming and outgoing sequence flows.\", node.id));\n }\n if (type === \"BoundaryEvent\") {\n const hostId = node.data.attachedToRef ?? node.parentId;\n const host = hostId ? nodeById.get(hostId) : undefined;\n if (!host || !BPMN_ELEMENT_CATALOG[host.data.elementType]?.acceptsBoundaryEvents) {\n issues.push(issue(\"bpmn/boundary-event-attached\", \"error\", \"Boundary events must be attached to an activity or subprocess.\", node.id, hostId ? [hostId] : undefined));\n }\n if (sequenceIn(edges, node.id).length > 0) {\n issues.push(issue(\"bpmn/boundary-no-incoming\", \"error\", \"Boundary events cannot have incoming sequence flows.\", node.id));\n }\n if (sequenceOut(edges, node.id).length === 0) {\n issues.push(issue(\"bpmn/boundary-has-outgoing\", \"warning\", \"Boundary events should define an outgoing exception path.\", node.id));\n }\n }\n if (isGatewayType(type)) {\n if (incoming === 0) issues.push(issue(\"bpmn/gateway-has-incoming\", \"error\", \"Gateways should have at least one incoming sequence flow.\", node.id));\n if (outgoing === 0) issues.push(issue(\"bpmn/gateway-has-outgoing\", \"error\", \"Gateways should have at least one outgoing sequence flow.\", node.id));\n }\n if (type === \"ExclusiveGateway\" || type === \"InclusiveGateway\" || type === \"ComplexGateway\") {\n const outgoingEdges = sequenceOut(edges, node.id);\n const defaults = outgoingEdges.filter((edge) => edge.data?.isDefault);\n if (defaults.length > 1) {\n issues.push(issue(\"bpmn/gateway-single-default\", \"error\", \"Gateways can have at most one default sequence flow.\", node.id, defaults.map((edge) => edge.id)));\n }\n if (outgoingEdges.length >= 2) {\n for (const edge of outgoingEdges) {\n if (!edge.data?.isDefault && !edge.data?.conditionExpression) {\n issues.push(issue(\"bpmn/gateway-condition\", \"error\", \"Conditional gateway branches should have a condition or be marked as default.\", edge.id, [node.id, edge.target]));\n }\n }\n }\n }\n if (type === \"EventBasedGateway\") {\n const outgoingEdges = edges.filter((edge) => edge.data?.edgeType === \"sequenceFlow\" && edge.source === node.id);\n if (outgoingEdges.length < 2) {\n issues.push(issue(\"bpmn/event-based-gateway-min-outgoing\", \"error\", \"Event-based gateways should have at least two outgoing sequence flows.\", node.id));\n }\n for (const edge of outgoingEdges) {\n const target = nodeById.get(edge.target);\n if (target && !isCatchTarget(target.data.elementType)) {\n issues.push(issue(\"bpmn/event-based-gateway-valid-targets\", \"error\", \"Event-based gateways must target catch events or receive tasks.\", edge.id, [node.id, target.id]));\n }\n }\n }\n if (meta.maxIncoming !== undefined && incoming > meta.maxIncoming) {\n issues.push(issue(\"bpmn/max-incoming\", \"error\", `${type} cannot have more than ${meta.maxIncoming} incoming sequence flow(s).`, node.id));\n }\n if (meta.maxOutgoing !== undefined && outgoing > meta.maxOutgoing) {\n issues.push(issue(\"bpmn/max-outgoing\", \"error\", `${type} cannot have more than ${meta.maxOutgoing} outgoing sequence flow(s).`, node.id));\n }\n if (opts.strictNames && (type.includes(\"Task\") || isGatewayType(type)) && !node.data.label) {\n issues.push(issue(\"bpmn/name-required\", \"warning\", `${type} should have a label.`, node.id));\n }\n if (isSubProcess(type)) {\n const childNodes = nodes.filter((child) => child.parentId === node.id);\n if (childNodes.length > 0) {\n if (!childNodes.some((child) => child.data.elementType === \"StartEvent\")) {\n issues.push(issue(\"bpmn/subprocess-has-start-end\", \"error\", \"Expanded subprocesses should contain a start event.\", node.id));\n }\n if (!childNodes.some((child) => child.data.elementType === \"EndEvent\")) {\n issues.push(issue(\"bpmn/subprocess-has-start-end\", \"error\", \"Expanded subprocesses should contain an end event.\", node.id));\n }\n }\n if (type === \"EventSubProcess\") {\n const starts = childNodes.filter((child) => child.data.elementType === \"StartEvent\");\n for (const start of starts) {\n if (!start.data.trigger || start.data.trigger === \"none\") {\n issues.push(issue(\"bpmn/event-subprocess-triggered-start\", \"error\", \"Event subprocess start events must define an event trigger.\", start.id, [node.id]));\n }\n }\n }\n }\n if (type === \"Lane\") {\n const parent = node.parentId ? nodeById.get(node.parentId) : undefined;\n if (parent?.data.elementType !== \"Pool\") {\n issues.push(issue(\"bpmn/lane-parent-pool\", \"error\", \"Lanes must be contained by a pool.\", node.id));\n }\n }\n }\n\n return {\n valid: issues.every((item) => item.severity !== \"error\"),\n issues,\n };\n}\n"]}
@@ -0,0 +1,25 @@
1
+ import { c as BpmnRFNode, b as BpmnRFEdge } from '../types-vVi5T7qj.cjs';
2
+ import '@xyflow/react';
3
+ import '../types-DznxZxpV.cjs';
4
+
5
+ type BpmnValidationSeverity = "error" | "warning" | "info";
6
+ interface BpmnValidationIssue {
7
+ id: string;
8
+ severity: BpmnValidationSeverity;
9
+ code: string;
10
+ message: string;
11
+ elementId?: string;
12
+ relatedElementIds?: string[];
13
+ }
14
+ interface BpmnValidationResult {
15
+ valid: boolean;
16
+ issues: BpmnValidationIssue[];
17
+ }
18
+ interface BpmnValidationOptions {
19
+ requireStartEvent?: boolean;
20
+ requireEndEvent?: boolean;
21
+ strictNames?: boolean;
22
+ }
23
+ declare function validateBpmnDiagram(nodes: BpmnRFNode[], edges: BpmnRFEdge[], options?: BpmnValidationOptions): BpmnValidationResult;
24
+
25
+ export { type BpmnValidationIssue, type BpmnValidationOptions, type BpmnValidationResult, type BpmnValidationSeverity, validateBpmnDiagram };
@@ -0,0 +1,25 @@
1
+ import { c as BpmnRFNode, b as BpmnRFEdge } from '../types-BxjCV2oX.js';
2
+ import '@xyflow/react';
3
+ import '../types-DznxZxpV.js';
4
+
5
+ type BpmnValidationSeverity = "error" | "warning" | "info";
6
+ interface BpmnValidationIssue {
7
+ id: string;
8
+ severity: BpmnValidationSeverity;
9
+ code: string;
10
+ message: string;
11
+ elementId?: string;
12
+ relatedElementIds?: string[];
13
+ }
14
+ interface BpmnValidationResult {
15
+ valid: boolean;
16
+ issues: BpmnValidationIssue[];
17
+ }
18
+ interface BpmnValidationOptions {
19
+ requireStartEvent?: boolean;
20
+ requireEndEvent?: boolean;
21
+ strictNames?: boolean;
22
+ }
23
+ declare function validateBpmnDiagram(nodes: BpmnRFNode[], edges: BpmnRFEdge[], options?: BpmnValidationOptions): BpmnValidationResult;
24
+
25
+ export { type BpmnValidationIssue, type BpmnValidationOptions, type BpmnValidationResult, type BpmnValidationSeverity, validateBpmnDiagram };
@@ -0,0 +1,5 @@
1
+ export { validateBpmnDiagram } from '../chunk-ZFGQVLHB.js';
2
+ import '../chunk-RLAJNRF2.js';
3
+ import '../chunk-L5Z22RLX.js';
4
+ //# sourceMappingURL=index.js.map
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -40,7 +40,7 @@ var BPMN_ELEMENT_CATALOG = {
40
40
  },
41
41
  IntermediateCatchEvent: {
42
42
  label: "Intermediate Catch Event",
43
- icon: "Clock",
43
+ icon: "Clock3",
44
44
  category: "event",
45
45
  defaultWidth: 36,
46
46
  defaultHeight: 36,
@@ -54,7 +54,7 @@ var BPMN_ELEMENT_CATALOG = {
54
54
  },
55
55
  IntermediateThrowEvent: {
56
56
  label: "Intermediate Throw Event",
57
- icon: "Zap",
57
+ icon: "Send",
58
58
  category: "event",
59
59
  defaultWidth: 36,
60
60
  defaultHeight: 36,
@@ -68,7 +68,7 @@ var BPMN_ELEMENT_CATALOG = {
68
68
  },
69
69
  BoundaryEvent: {
70
70
  label: "Boundary Event",
71
- icon: "AlertCircle",
71
+ icon: "AlarmClock",
72
72
  category: "event",
73
73
  defaultWidth: 36,
74
74
  defaultHeight: 36,
@@ -84,7 +84,7 @@ var BPMN_ELEMENT_CATALOG = {
84
84
  // ─── Tasks ───────────────────────────────────────────────────────────────────
85
85
  Task: {
86
86
  label: "Task",
87
- icon: "Square",
87
+ icon: "CheckSquare",
88
88
  category: "task",
89
89
  defaultWidth: 120,
90
90
  defaultHeight: 60,
@@ -98,7 +98,7 @@ var BPMN_ELEMENT_CATALOG = {
98
98
  },
99
99
  UserTask: {
100
100
  label: "User Task",
101
- icon: "User",
101
+ icon: "UserRound",
102
102
  category: "task",
103
103
  defaultWidth: 120,
104
104
  defaultHeight: 60,
@@ -112,7 +112,7 @@ var BPMN_ELEMENT_CATALOG = {
112
112
  },
113
113
  ServiceTask: {
114
114
  label: "Service Task",
115
- icon: "Settings",
115
+ icon: "Cog",
116
116
  category: "task",
117
117
  defaultWidth: 120,
118
118
  defaultHeight: 60,
@@ -154,7 +154,7 @@ var BPMN_ELEMENT_CATALOG = {
154
154
  },
155
155
  BusinessRuleTask: {
156
156
  label: "Business Rule Task",
157
- icon: "Scale",
157
+ icon: "Table2",
158
158
  category: "task",
159
159
  defaultWidth: 120,
160
160
  defaultHeight: 60,
@@ -168,7 +168,7 @@ var BPMN_ELEMENT_CATALOG = {
168
168
  },
169
169
  ReceiveTask: {
170
170
  label: "Receive Task",
171
- icon: "Mail",
171
+ icon: "Inbox",
172
172
  category: "task",
173
173
  defaultWidth: 120,
174
174
  defaultHeight: 60,
@@ -211,7 +211,7 @@ var BPMN_ELEMENT_CATALOG = {
211
211
  // ─── Gateways ────────────────────────────────────────────────────────────────
212
212
  ExclusiveGateway: {
213
213
  label: "Exclusive Gateway",
214
- icon: "GitBranch",
214
+ icon: "X",
215
215
  category: "gateway",
216
216
  defaultWidth: 50,
217
217
  defaultHeight: 50,
@@ -224,7 +224,7 @@ var BPMN_ELEMENT_CATALOG = {
224
224
  },
225
225
  InclusiveGateway: {
226
226
  label: "Inclusive Gateway",
227
- icon: "GitMerge",
227
+ icon: "Circle",
228
228
  category: "gateway",
229
229
  defaultWidth: 50,
230
230
  defaultHeight: 50,
@@ -237,7 +237,7 @@ var BPMN_ELEMENT_CATALOG = {
237
237
  },
238
238
  ParallelGateway: {
239
239
  label: "Parallel Gateway",
240
- icon: "GitFork",
240
+ icon: "Plus",
241
241
  category: "gateway",
242
242
  defaultWidth: 50,
243
243
  defaultHeight: 50,
@@ -278,7 +278,7 @@ var BPMN_ELEMENT_CATALOG = {
278
278
  // ─── Containers ───────────────────────────────────────────────────────────────
279
279
  SubProcess: {
280
280
  label: "Sub-Process",
281
- icon: "Layout",
281
+ icon: "PlusSquare",
282
282
  category: "container",
283
283
  defaultWidth: 350,
284
284
  defaultHeight: 200,
@@ -293,7 +293,7 @@ var BPMN_ELEMENT_CATALOG = {
293
293
  },
294
294
  Transaction: {
295
295
  label: "Transaction",
296
- icon: "CreditCard",
296
+ icon: "Receipt",
297
297
  category: "container",
298
298
  defaultWidth: 350,
299
299
  defaultHeight: 200,
@@ -308,7 +308,7 @@ var BPMN_ELEMENT_CATALOG = {
308
308
  },
309
309
  EventSubProcess: {
310
310
  label: "Event Sub-Process",
311
- icon: "Workflow",
311
+ icon: "CircleDotDashed",
312
312
  category: "container",
313
313
  defaultWidth: 350,
314
314
  defaultHeight: 200,
@@ -323,7 +323,7 @@ var BPMN_ELEMENT_CATALOG = {
323
323
  },
324
324
  AdHocSubProcess: {
325
325
  label: "Ad-Hoc Sub-Process",
326
- icon: "Shuffle",
326
+ icon: "Waves",
327
327
  category: "container",
328
328
  defaultWidth: 350,
329
329
  defaultHeight: 200,
@@ -338,7 +338,7 @@ var BPMN_ELEMENT_CATALOG = {
338
338
  },
339
339
  Pool: {
340
340
  label: "Pool",
341
- icon: "Columns",
341
+ icon: "Rows3",
342
342
  category: "container",
343
343
  defaultWidth: 600,
344
344
  defaultHeight: 200,
@@ -353,7 +353,7 @@ var BPMN_ELEMENT_CATALOG = {
353
353
  },
354
354
  Lane: {
355
355
  label: "Lane",
356
- icon: "AlignJustify",
356
+ icon: "PanelTop",
357
357
  category: "container",
358
358
  defaultWidth: 600,
359
359
  defaultHeight: 120,
@@ -569,6 +569,30 @@ var BPMN_ELEMENT_CATALOG = {
569
569
  canBeEnd: false
570
570
  }
571
571
  };
572
+ var BPMN_RESIZABLE_ELEMENT_TYPES = [
573
+ "Task",
574
+ "UserTask",
575
+ "ServiceTask",
576
+ "ScriptTask",
577
+ "ManualTask",
578
+ "BusinessRuleTask",
579
+ "ReceiveTask",
580
+ "SendTask",
581
+ "CallActivity",
582
+ "SubProcess",
583
+ "Transaction",
584
+ "EventSubProcess",
585
+ "AdHocSubProcess",
586
+ "Pool",
587
+ "Lane",
588
+ "Annotation",
589
+ "Group",
590
+ "SubConversation",
591
+ "ChoreographyTask",
592
+ "SubChoreography",
593
+ "CallChoreography"
594
+ ];
595
+ new Set(BPMN_RESIZABLE_ELEMENT_TYPES);
572
596
 
573
597
  // src/xml/mapper.ts
574
598
  var MODDLE_TO_ELEMENT_TYPE = {
@@ -1056,9 +1080,15 @@ function buildProcess(moddle, allNodes, allEdges, poolId, laneNodes, processId)
1056
1080
  }
1057
1081
  return false;
1058
1082
  };
1059
- const myNodes = (poolId ? allNodes.filter(
1060
- (n) => n.parentId === poolId || laneNodes.some((l) => l.id === n.parentId && l.parentId === poolId)
1061
- ) : allNodes.filter((n) => n.data.elementType !== "Pool" && n.data.elementType !== "Lane")).filter((n) => !isInsideSubProcess(n));
1083
+ const belongsToPool = (node) => {
1084
+ let parentId = node.parentId;
1085
+ while (parentId) {
1086
+ if (parentId === poolId) return true;
1087
+ parentId = allNodes.find((candidate) => candidate.id === parentId)?.parentId;
1088
+ }
1089
+ return false;
1090
+ };
1091
+ const myNodes = (poolId ? allNodes.filter((n) => belongsToPool(n)) : allNodes.filter((n) => n.data.elementType !== "Pool" && n.data.elementType !== "Lane")).filter((n) => !isInsideSubProcess(n));
1062
1092
  const myLanes = laneNodes.filter((l) => poolId ? l.parentId === poolId : true);
1063
1093
  const flowElements = [];
1064
1094
  for (const node of myNodes) {
@@ -1200,9 +1230,9 @@ function buildBpmnDI(moddle, definitions, nodes, edges) {
1200
1230
  shapes.push(shape);
1201
1231
  }
1202
1232
  for (const edge of edges) {
1203
- const waypoints = edge.data?.routingPoints?.map(
1233
+ const waypoints = resolveEdgeWaypoints(edge, nodes, absolutePositionById).map(
1204
1234
  (p) => moddle.create("dc:Point", { x: p.x, y: p.y })
1205
- ) ?? [];
1235
+ );
1206
1236
  edgeShapes.push(
1207
1237
  moddle.create("bpmndi:BPMNEdge", {
1208
1238
  id: uid("BPMNEdge", edge.id),
@@ -1224,6 +1254,28 @@ function buildBpmnDI(moddle, definitions, nodes, edges) {
1224
1254
  });
1225
1255
  definitions.diagrams = [diagram];
1226
1256
  }
1257
+ function resolveEdgeWaypoints(edge, nodes, absolutePositionById) {
1258
+ if (edge.data?.routingPoints && edge.data.routingPoints.length >= 2) {
1259
+ return edge.data.routingPoints;
1260
+ }
1261
+ const source = nodes.find((node) => node.id === edge.source);
1262
+ const target = nodes.find((node) => node.id === edge.target);
1263
+ if (!source || !target) return [];
1264
+ const sourceMeta = BPMN_ELEMENT_CATALOG[source.data.elementType];
1265
+ const targetMeta = BPMN_ELEMENT_CATALOG[target.data.elementType];
1266
+ const sourcePosition = absolutePositionById.get(source.id) ?? source.position;
1267
+ const targetPosition = absolutePositionById.get(target.id) ?? target.position;
1268
+ return [
1269
+ {
1270
+ x: sourcePosition.x + (source.width ?? sourceMeta.defaultWidth) / 2,
1271
+ y: sourcePosition.y + (source.height ?? sourceMeta.defaultHeight) / 2
1272
+ },
1273
+ {
1274
+ x: targetPosition.x + (target.width ?? targetMeta.defaultWidth) / 2,
1275
+ y: targetPosition.y + (target.height ?? targetMeta.defaultHeight) / 2
1276
+ }
1277
+ ];
1278
+ }
1227
1279
  function buildAbsolutePositionMap(nodes) {
1228
1280
  const nodeById = new Map(nodes.map((node) => [node.id, node]));
1229
1281
  const absoluteById = /* @__PURE__ */ new Map();