@aranzatech/diagrams-bpmn 0.1.3 → 0.2.1
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.
- package/CHANGELOG.md +20 -0
- package/README.md +121 -0
- package/dist/catalog-OVnBDD8R.d.ts +9 -0
- package/dist/catalog-OWfI_yHU.d.cts +9 -0
- package/dist/{chunk-W3ROOC6E.js → chunk-33AR3PXF.js} +177 -40
- package/dist/chunk-33AR3PXF.js.map +1 -0
- package/dist/{chunk-3AFZDIMQ.js → chunk-ECTJRD7Z.js} +3 -3
- package/dist/{chunk-3AFZDIMQ.js.map → chunk-ECTJRD7Z.js.map} +1 -1
- package/dist/{chunk-NXMUX67A.js → chunk-H3YMTGFG.js} +79 -38
- package/dist/chunk-H3YMTGFG.js.map +1 -0
- package/dist/chunk-KALSGH4D.js +36 -0
- package/dist/chunk-KALSGH4D.js.map +1 -0
- package/dist/{chunk-DNR5WBQH.js → chunk-L5Z22RLX.js} +81 -20
- package/dist/chunk-L5Z22RLX.js.map +1 -0
- package/dist/chunk-OZKTOILD.js +3 -0
- package/dist/chunk-OZKTOILD.js.map +1 -0
- package/dist/{chunk-4AX573IV.js → chunk-RLAJNRF2.js} +3 -3
- package/dist/{chunk-4AX573IV.js.map → chunk-RLAJNRF2.js.map} +1 -1
- package/dist/chunk-YQTIODXH.js +532 -0
- package/dist/chunk-YQTIODXH.js.map +1 -0
- package/dist/chunk-ZFGQVLHB.js +226 -0
- package/dist/chunk-ZFGQVLHB.js.map +1 -0
- package/dist/edges/index.cjs +1 -1
- package/dist/edges/index.cjs.map +1 -1
- package/dist/edges/index.js +2 -2
- package/dist/elements/index.cjs +81 -17
- package/dist/elements/index.cjs.map +1 -1
- package/dist/elements/index.d.cts +4 -6
- package/dist/elements/index.d.ts +4 -6
- package/dist/elements/index.js +3 -2
- package/dist/index.cjs +1120 -118
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +10 -63
- package/dist/index.d.ts +10 -63
- package/dist/index.js +9 -42
- package/dist/index.js.map +1 -1
- package/dist/modeling/index.cjs +1241 -0
- package/dist/modeling/index.cjs.map +1 -0
- package/dist/modeling/index.d.cts +146 -0
- package/dist/modeling/index.d.ts +146 -0
- package/dist/modeling/index.js +5 -0
- package/dist/modeling/index.js.map +1 -0
- package/dist/nodes/index.cjs +91 -38
- package/dist/nodes/index.cjs.map +1 -1
- package/dist/nodes/index.js +2 -2
- package/dist/types-BxjCV2oX.d.ts +20 -0
- package/dist/{types-C78d_Kdh.d.cts → types-DznxZxpV.d.cts} +17 -19
- package/dist/{types-C78d_Kdh.d.ts → types-DznxZxpV.d.ts} +17 -19
- package/dist/types-vVi5T7qj.d.cts +20 -0
- package/dist/validation/index.cjs +848 -0
- package/dist/validation/index.cjs.map +1 -0
- package/dist/validation/index.d.cts +25 -0
- package/dist/validation/index.d.ts +25 -0
- package/dist/validation/index.js +5 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/xml/index.cjs +215 -54
- package/dist/xml/index.cjs.map +1 -1
- package/dist/xml/index.d.cts +4 -19
- package/dist/xml/index.d.ts +4 -19
- package/dist/xml/index.js +2 -2
- package/package.json +16 -4
- package/dist/chunk-23B2IGK5.js +0 -24
- package/dist/chunk-23B2IGK5.js.map +0 -1
- package/dist/chunk-DNR5WBQH.js.map +0 -1
- package/dist/chunk-NXMUX67A.js.map +0 -1
- package/dist/chunk-W3ROOC6E.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/elements/catalog.ts"],"names":[],"mappings":"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","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"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-OZKTOILD.js"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BPMN_ELEMENT_CATALOG } from './chunk-
|
|
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-
|
|
86
|
-
//# sourceMappingURL=chunk-
|
|
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-
|
|
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"]}
|
|
@@ -0,0 +1,532 @@
|
|
|
1
|
+
import { acceptsBoundaryEvents, getHandlePolicy, isEventType, isGatewayType, isDataType } from './chunk-RLAJNRF2.js';
|
|
2
|
+
import { isBpmnElementResizable, BPMN_ELEMENT_CATALOG, getBpmnElementSize } from './chunk-L5Z22RLX.js';
|
|
3
|
+
import { createModelingRules, getNode, getOutgoingEdges, getIncomingEdges, patchNode, resizeNode, addNode, connectNodes, reparentNode, replaceNode, patchEdge, removeElements, copyElements, pasteElements, setSelection, createSelectionState, normalizeDiagramState, executeCommand, executeCommands } from '@aranzatech/diagrams-core';
|
|
4
|
+
import { createDiagramDocument, serializeDiagram, parseDiagramDocument, deserializeDiagram } from '@aranzatech/diagrams-core/serialization';
|
|
5
|
+
|
|
6
|
+
function createBpmnNode(options) {
|
|
7
|
+
const size = getBpmnElementSize(options.elementType);
|
|
8
|
+
const meta = BPMN_ELEMENT_CATALOG[options.elementType];
|
|
9
|
+
const orientation = options.data?.orientation ?? meta.orientation;
|
|
10
|
+
const dragHandle = getBpmnDragHandleSelector(options.elementType);
|
|
11
|
+
return {
|
|
12
|
+
id: options.id,
|
|
13
|
+
type: options.elementType,
|
|
14
|
+
position: options.position,
|
|
15
|
+
data: {
|
|
16
|
+
elementType: options.elementType,
|
|
17
|
+
orientation,
|
|
18
|
+
...options.label ? { label: options.label } : {},
|
|
19
|
+
...options.data ?? {}
|
|
20
|
+
},
|
|
21
|
+
width: options.width ?? size.width,
|
|
22
|
+
height: options.height ?? size.height,
|
|
23
|
+
...options.parentId ? { parentId: options.parentId } : {},
|
|
24
|
+
...dragHandle ? { dragHandle } : {}
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
var BPMN_POOL_LANE_LAYOUT = {
|
|
28
|
+
poolHeaderSize: 30,
|
|
29
|
+
laneHeaderSize: 24,
|
|
30
|
+
laneGap: 0
|
|
31
|
+
};
|
|
32
|
+
function getBpmnDragHandleSelector(elementType) {
|
|
33
|
+
if (elementType === "Pool") return ".pool-drag-handle";
|
|
34
|
+
if (elementType === "Lane") return ".lane-drag-handle";
|
|
35
|
+
return void 0;
|
|
36
|
+
}
|
|
37
|
+
var BPMN_SELECTION_STYLE = {
|
|
38
|
+
nodeOutline: "#2563eb",
|
|
39
|
+
edgeStroke: "#2563eb",
|
|
40
|
+
handleFill: "#ffffff",
|
|
41
|
+
handleStroke: "#2563eb",
|
|
42
|
+
resizeHandleSize: 8,
|
|
43
|
+
routingPointRadius: 5
|
|
44
|
+
};
|
|
45
|
+
var BPMN_ROUTABLE_EDGE_TYPES = [
|
|
46
|
+
"sequenceFlow",
|
|
47
|
+
"messageFlow",
|
|
48
|
+
"association",
|
|
49
|
+
"dataAssociation",
|
|
50
|
+
"conversationLink"
|
|
51
|
+
];
|
|
52
|
+
var BPMN_EDGE_CONNECTION_RULES = {
|
|
53
|
+
sequenceFlow: {
|
|
54
|
+
edgeType: "sequenceFlow",
|
|
55
|
+
sourceCategories: ["flowNode"],
|
|
56
|
+
targetCategories: ["flowNode"],
|
|
57
|
+
allowSameParent: true,
|
|
58
|
+
allowDifferentParent: false
|
|
59
|
+
},
|
|
60
|
+
messageFlow: {
|
|
61
|
+
edgeType: "messageFlow",
|
|
62
|
+
sourceCategories: ["flowNode"],
|
|
63
|
+
targetCategories: ["flowNode"],
|
|
64
|
+
allowSameParent: false,
|
|
65
|
+
allowDifferentParent: true
|
|
66
|
+
},
|
|
67
|
+
association: {
|
|
68
|
+
edgeType: "association",
|
|
69
|
+
sourceCategories: ["flowNode", "artifact", "data"],
|
|
70
|
+
targetCategories: ["flowNode", "artifact", "data"],
|
|
71
|
+
allowSameParent: true,
|
|
72
|
+
allowDifferentParent: true
|
|
73
|
+
},
|
|
74
|
+
dataAssociation: {
|
|
75
|
+
edgeType: "dataAssociation",
|
|
76
|
+
sourceCategories: ["flowNode", "data"],
|
|
77
|
+
targetCategories: ["flowNode", "data"],
|
|
78
|
+
allowSameParent: true,
|
|
79
|
+
allowDifferentParent: true
|
|
80
|
+
},
|
|
81
|
+
conversationLink: {
|
|
82
|
+
edgeType: "conversationLink",
|
|
83
|
+
sourceCategories: ["conversation", "flowNode"],
|
|
84
|
+
targetCategories: ["conversation", "flowNode"],
|
|
85
|
+
allowSameParent: true,
|
|
86
|
+
allowDifferentParent: true
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
function inferBpmnEdgeType(state, sourceId, targetId) {
|
|
90
|
+
const source = getNode(state, sourceId);
|
|
91
|
+
const target = getNode(state, targetId);
|
|
92
|
+
if (!source || !target) return "sequenceFlow";
|
|
93
|
+
if (isDataType(source.data.elementType) || isDataType(target.data.elementType)) {
|
|
94
|
+
return "dataAssociation";
|
|
95
|
+
}
|
|
96
|
+
if (source.data.elementType === "Annotation" || target.data.elementType === "Annotation" || source.data.elementType === "Group" || target.data.elementType === "Group") {
|
|
97
|
+
return "association";
|
|
98
|
+
}
|
|
99
|
+
if (source.data.elementType === "Conversation" || source.data.elementType === "SubConversation" || source.data.elementType === "CallConversation" || target.data.elementType === "Conversation" || target.data.elementType === "SubConversation" || target.data.elementType === "CallConversation") {
|
|
100
|
+
return "conversationLink";
|
|
101
|
+
}
|
|
102
|
+
if (source.parentId && target.parentId && source.parentId !== target.parentId) {
|
|
103
|
+
return "messageFlow";
|
|
104
|
+
}
|
|
105
|
+
return "sequenceFlow";
|
|
106
|
+
}
|
|
107
|
+
function canUseSequenceFlow(type) {
|
|
108
|
+
const meta = BPMN_ELEMENT_CATALOG[type];
|
|
109
|
+
return meta.handlePolicy !== "none" && !isDataType(type) && type !== "Annotation" && type !== "Group" && meta.category !== "conversation";
|
|
110
|
+
}
|
|
111
|
+
function matchesConnectionCategory(type, categories) {
|
|
112
|
+
return categories.some((category) => {
|
|
113
|
+
if (category === type) return true;
|
|
114
|
+
if (category === "flowNode") return canUseSequenceFlow(type);
|
|
115
|
+
if (category === "data") return isDataType(type);
|
|
116
|
+
if (category === "artifact") return type === "Annotation" || type === "Group";
|
|
117
|
+
if (category === "conversation") return BPMN_ELEMENT_CATALOG[type].category === "conversation";
|
|
118
|
+
return false;
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
function isBpmnEdgeRoutingEditable(edgeType) {
|
|
122
|
+
return BPMN_ROUTABLE_EDGE_TYPES.includes(edgeType);
|
|
123
|
+
}
|
|
124
|
+
function isBpmnProcessNode(type) {
|
|
125
|
+
return isEventType(type) || isGatewayType(type) || type.includes("Task") || type === "CallActivity" || type === "SubProcess" || type === "Transaction" || type === "EventSubProcess" || type === "AdHocSubProcess";
|
|
126
|
+
}
|
|
127
|
+
function canContainBpmnElement(parentType, childType) {
|
|
128
|
+
if (!parentType) return true;
|
|
129
|
+
if (parentType === "Pool") {
|
|
130
|
+
return childType === "Lane" || isBpmnProcessNode(childType) ? true : "Pools can contain lanes or BPMN process nodes.";
|
|
131
|
+
}
|
|
132
|
+
if (parentType === "Lane") {
|
|
133
|
+
return isBpmnProcessNode(childType) ? true : "Lanes can only contain BPMN process nodes.";
|
|
134
|
+
}
|
|
135
|
+
if (parentType === "SubProcess" || parentType === "Transaction" || parentType === "EventSubProcess" || parentType === "AdHocSubProcess") {
|
|
136
|
+
return isBpmnProcessNode(childType) ? true : "Subprocesses can only contain BPMN process nodes.";
|
|
137
|
+
}
|
|
138
|
+
return `${parentType} cannot contain BPMN child elements.`;
|
|
139
|
+
}
|
|
140
|
+
function getDirectBpmnChildren(state, parentId) {
|
|
141
|
+
return state.nodes.filter((node) => node.parentId === parentId);
|
|
142
|
+
}
|
|
143
|
+
function getBpmnPoolLanes(state, poolId) {
|
|
144
|
+
return getDirectBpmnChildren(state, poolId).filter(
|
|
145
|
+
(node) => node.data.elementType === "Lane"
|
|
146
|
+
);
|
|
147
|
+
}
|
|
148
|
+
function getNodeDimension(node, axis) {
|
|
149
|
+
return node[axis] ?? node.measured?.[axis] ?? getBpmnElementSize(node.data.elementType)[axis];
|
|
150
|
+
}
|
|
151
|
+
function resolvePoolLaneDirection(pool) {
|
|
152
|
+
return pool.data.orientation === "vertical" ? "horizontal" : "vertical";
|
|
153
|
+
}
|
|
154
|
+
function getBpmnLaneIndexAtPosition(state, poolId, position) {
|
|
155
|
+
const pool = getNode(state, poolId);
|
|
156
|
+
if (!pool) return 0;
|
|
157
|
+
const lanes = getBpmnPoolLanes(state, poolId);
|
|
158
|
+
const direction = resolvePoolLaneDirection(pool);
|
|
159
|
+
const axis = direction === "vertical" ? "y" : "x";
|
|
160
|
+
const sizeKey = direction === "vertical" ? "height" : "width";
|
|
161
|
+
for (let index = 0; index < lanes.length; index += 1) {
|
|
162
|
+
const lane = lanes[index];
|
|
163
|
+
const midpoint = lane.position[axis] + getNodeDimension(lane, sizeKey) / 2;
|
|
164
|
+
if (position[axis] < midpoint) return index;
|
|
165
|
+
}
|
|
166
|
+
return lanes.length;
|
|
167
|
+
}
|
|
168
|
+
function sortBpmnLanes(state, poolId, laneId, index) {
|
|
169
|
+
const lanes = getBpmnPoolLanes(state, poolId);
|
|
170
|
+
const currentIndex = lanes.findIndex((lane) => lane.id === laneId);
|
|
171
|
+
if (currentIndex < 0) return state;
|
|
172
|
+
const orderedIds = lanes.map((lane) => lane.id);
|
|
173
|
+
const [moved] = orderedIds.splice(currentIndex, 1);
|
|
174
|
+
orderedIds.splice(Math.max(0, Math.min(index, orderedIds.length)), 0, moved);
|
|
175
|
+
const order = new Map(orderedIds.map((id, laneIndex) => [id, laneIndex]));
|
|
176
|
+
return {
|
|
177
|
+
...state,
|
|
178
|
+
nodes: [...state.nodes].sort((a, b) => {
|
|
179
|
+
const aOrder = order.get(a.id);
|
|
180
|
+
const bOrder = order.get(b.id);
|
|
181
|
+
if (aOrder === void 0 && bOrder === void 0) return 0;
|
|
182
|
+
if (aOrder === void 0) return -1;
|
|
183
|
+
if (bOrder === void 0) return 1;
|
|
184
|
+
return aOrder - bOrder;
|
|
185
|
+
})
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
function layoutBpmnPoolLanes(state, poolId) {
|
|
189
|
+
const pool = getNode(state, poolId);
|
|
190
|
+
if (!pool) return state;
|
|
191
|
+
const poolSize = getBpmnElementSize("Pool");
|
|
192
|
+
const direction = resolvePoolLaneDirection(pool);
|
|
193
|
+
const lanes = getBpmnPoolLanes(state, poolId);
|
|
194
|
+
let cursor = direction === "vertical" ? BPMN_POOL_LANE_LAYOUT.poolHeaderSize : 0;
|
|
195
|
+
let next = state;
|
|
196
|
+
for (const lane of lanes) {
|
|
197
|
+
const laneSize = getBpmnElementSize("Lane");
|
|
198
|
+
const width = direction === "vertical" ? Math.max(poolSize.minWidth - BPMN_POOL_LANE_LAYOUT.poolHeaderSize, lane.width ?? laneSize.width) : lane.width ?? laneSize.width;
|
|
199
|
+
const height = direction === "vertical" ? lane.height ?? laneSize.height : Math.max(poolSize.minHeight - BPMN_POOL_LANE_LAYOUT.poolHeaderSize, lane.height ?? laneSize.height);
|
|
200
|
+
next = patchNode(next, lane.id, {
|
|
201
|
+
position: direction === "vertical" ? { x: BPMN_POOL_LANE_LAYOUT.poolHeaderSize, y: cursor } : { x: cursor, y: BPMN_POOL_LANE_LAYOUT.poolHeaderSize },
|
|
202
|
+
width,
|
|
203
|
+
height,
|
|
204
|
+
data: { orientation: pool.data.orientation ?? "horizontal" }
|
|
205
|
+
});
|
|
206
|
+
cursor += (direction === "vertical" ? height : width) + BPMN_POOL_LANE_LAYOUT.laneGap;
|
|
207
|
+
}
|
|
208
|
+
const minWidth = direction === "vertical" ? poolSize.minWidth : Math.max(poolSize.minWidth, cursor);
|
|
209
|
+
const minHeight = direction === "vertical" ? Math.max(poolSize.minHeight, cursor) : poolSize.minHeight;
|
|
210
|
+
return resizeNode(next, poolId, { width: minWidth, height: minHeight });
|
|
211
|
+
}
|
|
212
|
+
function reorderBpmnLane(state, options) {
|
|
213
|
+
return layoutBpmnPoolLanes(
|
|
214
|
+
sortBpmnLanes(state, options.poolId, options.laneId, options.index),
|
|
215
|
+
options.poolId
|
|
216
|
+
);
|
|
217
|
+
}
|
|
218
|
+
function validateBpmnConnectionForEdgeType(state, edgeType, source, target) {
|
|
219
|
+
const rule = BPMN_EDGE_CONNECTION_RULES[edgeType];
|
|
220
|
+
if (!matchesConnectionCategory(source.data.elementType, rule.sourceCategories)) {
|
|
221
|
+
return `${edgeType} cannot start from ${source.data.elementType}.`;
|
|
222
|
+
}
|
|
223
|
+
if (!matchesConnectionCategory(target.data.elementType, rule.targetCategories)) {
|
|
224
|
+
return `${edgeType} cannot target ${target.data.elementType}.`;
|
|
225
|
+
}
|
|
226
|
+
const sameParent = (source.parentId ?? null) === (target.parentId ?? null);
|
|
227
|
+
if (sameParent && rule.allowSameParent === false) {
|
|
228
|
+
return `${edgeType} must connect BPMN elements in different participants/scopes.`;
|
|
229
|
+
}
|
|
230
|
+
if (!sameParent && rule.allowDifferentParent === false) {
|
|
231
|
+
return `${edgeType} must stay inside the same BPMN participant/scope.`;
|
|
232
|
+
}
|
|
233
|
+
if (edgeType === "sequenceFlow") {
|
|
234
|
+
if (source.data.elementType === "EndEvent") return "End events cannot have outgoing sequence flows.";
|
|
235
|
+
if (target.data.elementType === "StartEvent") return "Start events cannot have incoming sequence flows.";
|
|
236
|
+
return validateEdgeCardinality(state, edgeType, source, target);
|
|
237
|
+
}
|
|
238
|
+
return true;
|
|
239
|
+
}
|
|
240
|
+
function validateEdgeCardinality(state, edgeType, source, target) {
|
|
241
|
+
if (edgeType !== "sequenceFlow") return true;
|
|
242
|
+
const sourceMax = BPMN_ELEMENT_CATALOG[source.data.elementType].maxOutgoing;
|
|
243
|
+
const targetMax = BPMN_ELEMENT_CATALOG[target.data.elementType].maxIncoming;
|
|
244
|
+
const outgoing = getOutgoingEdges(state, source.id).filter(
|
|
245
|
+
(edge) => edge.data?.edgeType === "sequenceFlow"
|
|
246
|
+
);
|
|
247
|
+
const incoming = getIncomingEdges(state, target.id).filter(
|
|
248
|
+
(edge) => edge.data?.edgeType === "sequenceFlow"
|
|
249
|
+
);
|
|
250
|
+
if (sourceMax !== void 0 && outgoing.length >= sourceMax) {
|
|
251
|
+
return `${source.data.elementType} cannot have more than ${sourceMax} outgoing sequence flow(s).`;
|
|
252
|
+
}
|
|
253
|
+
if (targetMax !== void 0 && incoming.length >= targetMax) {
|
|
254
|
+
return `${target.data.elementType} cannot have more than ${targetMax} incoming sequence flow(s).`;
|
|
255
|
+
}
|
|
256
|
+
return true;
|
|
257
|
+
}
|
|
258
|
+
var bpmnConnectionValidators = [
|
|
259
|
+
({ state, source, target }) => {
|
|
260
|
+
if (source.id === target.id) return "BPMN self-connections are not allowed.";
|
|
261
|
+
const edgeType = inferBpmnEdgeType(state, source.id, target.id);
|
|
262
|
+
if (getHandlePolicy(source.data.elementType) === "none" || getHandlePolicy(target.data.elementType) === "none") {
|
|
263
|
+
return "Elements without BPMN connection handles cannot be directly connected.";
|
|
264
|
+
}
|
|
265
|
+
if (edgeType === "sequenceFlow") {
|
|
266
|
+
return validateBpmnConnectionForEdgeType(state, edgeType, source, target);
|
|
267
|
+
}
|
|
268
|
+
return validateBpmnConnectionForEdgeType(state, edgeType, source, target);
|
|
269
|
+
}
|
|
270
|
+
];
|
|
271
|
+
var BPMN_MODELING_RULES = createModelingRules({
|
|
272
|
+
connect: [
|
|
273
|
+
({ state, source, target }) => {
|
|
274
|
+
if (!source || !target) return false;
|
|
275
|
+
for (const validator of bpmnConnectionValidators) {
|
|
276
|
+
const result = validator({
|
|
277
|
+
state,
|
|
278
|
+
source,
|
|
279
|
+
target,
|
|
280
|
+
existingEdges: state.edges
|
|
281
|
+
});
|
|
282
|
+
if (result !== true) return result;
|
|
283
|
+
}
|
|
284
|
+
return true;
|
|
285
|
+
}
|
|
286
|
+
],
|
|
287
|
+
drop: [
|
|
288
|
+
({ node, parent }) => {
|
|
289
|
+
if (!node || !parent) return true;
|
|
290
|
+
if (node.data.elementType === "BoundaryEvent") {
|
|
291
|
+
return acceptsBoundaryEvents(parent.data.elementType) ? true : "Boundary events can only be attached to tasks or subprocesses.";
|
|
292
|
+
}
|
|
293
|
+
return canContainBpmnElement(parent.data.elementType, node.data.elementType);
|
|
294
|
+
}
|
|
295
|
+
],
|
|
296
|
+
reparent: [
|
|
297
|
+
({ node, parent }) => {
|
|
298
|
+
if (!node || !parent) return true;
|
|
299
|
+
if (node.data.elementType === "BoundaryEvent") {
|
|
300
|
+
return acceptsBoundaryEvents(parent.data.elementType) ? true : "Boundary events can only be reparented to tasks or subprocesses.";
|
|
301
|
+
}
|
|
302
|
+
return canContainBpmnElement(parent?.data.elementType, node.data.elementType);
|
|
303
|
+
}
|
|
304
|
+
],
|
|
305
|
+
delete: [() => true],
|
|
306
|
+
resize: [
|
|
307
|
+
({ node }) => !node || isBpmnElementResizable(node.data.elementType) ? true : `${node.data.elementType} is not resizable in BPMN.`
|
|
308
|
+
]
|
|
309
|
+
});
|
|
310
|
+
function createBpmnNodeCommand(options) {
|
|
311
|
+
return {
|
|
312
|
+
id: `bpmn.createNode.${options.id}`,
|
|
313
|
+
label: `Create ${options.elementType}`,
|
|
314
|
+
execute: (state) => addNode(state, createBpmnNode(options))
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
function connectBpmnCommand(options) {
|
|
318
|
+
return {
|
|
319
|
+
id: `bpmn.connect.${options.id ?? `${options.source}-${options.target}`}`,
|
|
320
|
+
label: "Connect BPMN elements",
|
|
321
|
+
execute: (state) => {
|
|
322
|
+
const edgeType = options.edgeType ?? inferBpmnEdgeType(state, options.source, options.target);
|
|
323
|
+
const source = getNode(state, options.source);
|
|
324
|
+
const target = getNode(state, options.target);
|
|
325
|
+
if (!source) throw new Error(`Source node "${options.source}" does not exist.`);
|
|
326
|
+
if (!target) throw new Error(`Target node "${options.target}" does not exist.`);
|
|
327
|
+
const validation = validateBpmnConnectionForEdgeType(state, edgeType, source, target);
|
|
328
|
+
if (validation !== true) throw new Error(validation);
|
|
329
|
+
return connectNodes(
|
|
330
|
+
state,
|
|
331
|
+
{
|
|
332
|
+
source: options.source,
|
|
333
|
+
target: options.target,
|
|
334
|
+
type: edgeType,
|
|
335
|
+
...options.sourceHandle !== void 0 ? { sourceHandle: options.sourceHandle } : {},
|
|
336
|
+
...options.targetHandle !== void 0 ? { targetHandle: options.targetHandle } : {},
|
|
337
|
+
...options.id ? { id: options.id } : {},
|
|
338
|
+
data: {
|
|
339
|
+
edgeType,
|
|
340
|
+
...options.label ? { label: options.label } : {},
|
|
341
|
+
...options.data ?? {}
|
|
342
|
+
}
|
|
343
|
+
},
|
|
344
|
+
[]
|
|
345
|
+
);
|
|
346
|
+
}
|
|
347
|
+
};
|
|
348
|
+
}
|
|
349
|
+
function attachBoundaryEventCommand(boundaryId, hostId) {
|
|
350
|
+
return {
|
|
351
|
+
id: `bpmn.attachBoundary.${boundaryId}.${hostId}`,
|
|
352
|
+
label: "Attach boundary event",
|
|
353
|
+
execute: (state) => {
|
|
354
|
+
const host = getNode(state, hostId);
|
|
355
|
+
if (!host || !acceptsBoundaryEvents(host.data.elementType)) {
|
|
356
|
+
throw new Error(`Element "${hostId}" cannot host boundary events.`);
|
|
357
|
+
}
|
|
358
|
+
const boundary = getNode(state, boundaryId);
|
|
359
|
+
if (!boundary || boundary.data.elementType !== "BoundaryEvent") {
|
|
360
|
+
throw new Error(`Element "${boundaryId}" is not a boundary event.`);
|
|
361
|
+
}
|
|
362
|
+
const reparented = reparentNode(state, boundaryId, { parentId: hostId });
|
|
363
|
+
return patchNode(reparented, boundaryId, {
|
|
364
|
+
data: { attachedToRef: hostId }
|
|
365
|
+
});
|
|
366
|
+
}
|
|
367
|
+
};
|
|
368
|
+
}
|
|
369
|
+
function replaceBpmnNodeCommand(options) {
|
|
370
|
+
return {
|
|
371
|
+
id: `bpmn.replaceNode.${options.id}.${options.elementType}`,
|
|
372
|
+
label: `Replace with ${options.elementType}`,
|
|
373
|
+
execute: (state) => {
|
|
374
|
+
const current = getNode(state, options.id);
|
|
375
|
+
if (!current) throw new Error(`Element "${options.id}" does not exist.`);
|
|
376
|
+
const meta = BPMN_ELEMENT_CATALOG[options.elementType];
|
|
377
|
+
return replaceNode(state, options.id, {
|
|
378
|
+
...current,
|
|
379
|
+
type: options.elementType,
|
|
380
|
+
width: options.width ?? current.width ?? meta.defaultWidth,
|
|
381
|
+
height: options.height ?? current.height ?? meta.defaultHeight,
|
|
382
|
+
data: {
|
|
383
|
+
...current.data,
|
|
384
|
+
elementType: options.elementType,
|
|
385
|
+
...options.label ? { label: options.label } : {},
|
|
386
|
+
...options.data ?? {}
|
|
387
|
+
}
|
|
388
|
+
});
|
|
389
|
+
}
|
|
390
|
+
};
|
|
391
|
+
}
|
|
392
|
+
function reparentBpmnNodeCommand(options) {
|
|
393
|
+
return {
|
|
394
|
+
id: `bpmn.reparent.${options.id}.${options.parentId ?? "root"}`,
|
|
395
|
+
label: "Reparent BPMN element",
|
|
396
|
+
execute: (state) => {
|
|
397
|
+
const node = getNode(state, options.id);
|
|
398
|
+
const parent = options.parentId ? getNode(state, options.parentId) : void 0;
|
|
399
|
+
if (!node) throw new Error(`Element "${options.id}" does not exist.`);
|
|
400
|
+
if (parent && node.data.elementType === "BoundaryEvent" && !acceptsBoundaryEvents(parent.data.elementType)) {
|
|
401
|
+
throw new Error("Boundary events can only be reparented to tasks or subprocesses.");
|
|
402
|
+
}
|
|
403
|
+
const containment = canContainBpmnElement(parent?.data.elementType, node.data.elementType);
|
|
404
|
+
if (containment !== true) throw new Error(containment);
|
|
405
|
+
const reparented = reparentNode(state, options.id, {
|
|
406
|
+
...options.parentId !== void 0 ? { parentId: options.parentId } : {},
|
|
407
|
+
...options.position ? { position: options.position } : {}
|
|
408
|
+
});
|
|
409
|
+
return parent?.data.elementType === "Pool" && node.data.elementType === "Lane" ? layoutBpmnPoolLanes(reparented, parent.id) : reparented;
|
|
410
|
+
}
|
|
411
|
+
};
|
|
412
|
+
}
|
|
413
|
+
function resizeBpmnNodeCommand(options) {
|
|
414
|
+
return {
|
|
415
|
+
id: `bpmn.resize.${options.id}`,
|
|
416
|
+
label: "Resize BPMN element",
|
|
417
|
+
execute: (state) => {
|
|
418
|
+
const node = getNode(state, options.id);
|
|
419
|
+
if (!node) throw new Error(`Element "${options.id}" does not exist.`);
|
|
420
|
+
const size = getBpmnElementSize(node.data.elementType);
|
|
421
|
+
if (!size.resizable) {
|
|
422
|
+
throw new Error(`${node.data.elementType} is not resizable in BPMN.`);
|
|
423
|
+
}
|
|
424
|
+
return resizeNode(state, options.id, {
|
|
425
|
+
width: options.width === void 0 ? void 0 : Math.max(size.minWidth, options.width),
|
|
426
|
+
height: options.height === void 0 ? void 0 : Math.max(size.minHeight, options.height)
|
|
427
|
+
});
|
|
428
|
+
}
|
|
429
|
+
};
|
|
430
|
+
}
|
|
431
|
+
function reorderBpmnLaneCommand(options) {
|
|
432
|
+
return {
|
|
433
|
+
id: `bpmn.reorderLane.${options.poolId}.${options.laneId}`,
|
|
434
|
+
label: "Reorder BPMN lane",
|
|
435
|
+
execute: (state) => {
|
|
436
|
+
const pool = getNode(state, options.poolId);
|
|
437
|
+
const lane = getNode(state, options.laneId);
|
|
438
|
+
if (!pool || pool.data.elementType !== "Pool") {
|
|
439
|
+
throw new Error(`Element "${options.poolId}" is not a pool.`);
|
|
440
|
+
}
|
|
441
|
+
if (!lane || lane.data.elementType !== "Lane" || lane.parentId !== options.poolId) {
|
|
442
|
+
throw new Error(`Element "${options.laneId}" is not a lane in pool "${options.poolId}".`);
|
|
443
|
+
}
|
|
444
|
+
return reorderBpmnLane(state, options);
|
|
445
|
+
}
|
|
446
|
+
};
|
|
447
|
+
}
|
|
448
|
+
function moveBpmnLaneCommand(options) {
|
|
449
|
+
return {
|
|
450
|
+
id: `bpmn.moveLane.${options.poolId}.${options.laneId}`,
|
|
451
|
+
label: "Move BPMN lane",
|
|
452
|
+
execute: (state) => reorderBpmnLane(state, {
|
|
453
|
+
poolId: options.poolId,
|
|
454
|
+
laneId: options.laneId,
|
|
455
|
+
index: getBpmnLaneIndexAtPosition(state, options.poolId, options.position)
|
|
456
|
+
})
|
|
457
|
+
};
|
|
458
|
+
}
|
|
459
|
+
function routeBpmnEdgeCommand(options) {
|
|
460
|
+
return {
|
|
461
|
+
id: `bpmn.routeEdge.${options.id}`,
|
|
462
|
+
label: "Route BPMN edge",
|
|
463
|
+
execute: (state) => {
|
|
464
|
+
const edge = state.edges.find((item) => item.id === options.id);
|
|
465
|
+
if (!edge) throw new Error(`Edge "${options.id}" does not exist.`);
|
|
466
|
+
const edgeType = edge.data?.edgeType;
|
|
467
|
+
if (!edgeType || !isBpmnEdgeRoutingEditable(edgeType)) {
|
|
468
|
+
throw new Error(`${edgeType ?? "edge"} routing points cannot be edited.`);
|
|
469
|
+
}
|
|
470
|
+
return patchEdge(state, options.id, {
|
|
471
|
+
data: { routingPoints: options.routingPoints }
|
|
472
|
+
});
|
|
473
|
+
}
|
|
474
|
+
};
|
|
475
|
+
}
|
|
476
|
+
function deleteBpmnElementsCommand(ids) {
|
|
477
|
+
return {
|
|
478
|
+
id: `bpmn.delete.${ids.join(".")}`,
|
|
479
|
+
label: "Delete BPMN elements",
|
|
480
|
+
execute: (state) => removeElements(state, ids)
|
|
481
|
+
};
|
|
482
|
+
}
|
|
483
|
+
function copyBpmnElements(state, selection) {
|
|
484
|
+
return copyElements(state, selection);
|
|
485
|
+
}
|
|
486
|
+
function pasteBpmnElementsCommand(clipboard, options = {}) {
|
|
487
|
+
return {
|
|
488
|
+
id: "bpmn.paste",
|
|
489
|
+
label: "Paste BPMN elements",
|
|
490
|
+
execute: (state) => pasteElements(state, clipboard, options)
|
|
491
|
+
};
|
|
492
|
+
}
|
|
493
|
+
function selectBpmnElementsCommand(selection) {
|
|
494
|
+
return {
|
|
495
|
+
id: "bpmn.select",
|
|
496
|
+
label: "Select BPMN elements",
|
|
497
|
+
execute: (state) => setSelection(state, createSelectionState(selection.nodeIds, selection.edgeIds))
|
|
498
|
+
};
|
|
499
|
+
}
|
|
500
|
+
function createBpmnDiagramDocument(state, options = {}) {
|
|
501
|
+
return createDiagramDocument(normalizeDiagramState(state), {
|
|
502
|
+
...options,
|
|
503
|
+
diagramType: "bpmn"
|
|
504
|
+
});
|
|
505
|
+
}
|
|
506
|
+
function serializeBpmnDiagram(state, options = {}) {
|
|
507
|
+
return serializeDiagram(normalizeDiagramState(state), {
|
|
508
|
+
...options,
|
|
509
|
+
diagramType: "bpmn"
|
|
510
|
+
});
|
|
511
|
+
}
|
|
512
|
+
function parseBpmnDiagramDocument(json) {
|
|
513
|
+
const document = parseDiagramDocument(json);
|
|
514
|
+
if (document.diagramType && document.diagramType !== "bpmn") {
|
|
515
|
+
throw new Error(`Expected a BPMN diagram document, received "${document.diagramType}".`);
|
|
516
|
+
}
|
|
517
|
+
return document;
|
|
518
|
+
}
|
|
519
|
+
function deserializeBpmnDiagram(json) {
|
|
520
|
+
const document = parseBpmnDiagramDocument(json);
|
|
521
|
+
return deserializeDiagram(JSON.stringify(document));
|
|
522
|
+
}
|
|
523
|
+
function runBpmnCommand(stack, command) {
|
|
524
|
+
return executeCommand(stack, command);
|
|
525
|
+
}
|
|
526
|
+
function runBpmnCommands(stack, commands, options = {}) {
|
|
527
|
+
return executeCommands(stack, commands, options);
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
export { BPMN_EDGE_CONNECTION_RULES, BPMN_MODELING_RULES, BPMN_POOL_LANE_LAYOUT, BPMN_ROUTABLE_EDGE_TYPES, BPMN_SELECTION_STYLE, attachBoundaryEventCommand, bpmnConnectionValidators, canContainBpmnElement, connectBpmnCommand, copyBpmnElements, createBpmnDiagramDocument, createBpmnNode, createBpmnNodeCommand, deleteBpmnElementsCommand, deserializeBpmnDiagram, getBpmnDragHandleSelector, getBpmnLaneIndexAtPosition, getBpmnPoolLanes, inferBpmnEdgeType, isBpmnEdgeRoutingEditable, isBpmnProcessNode, layoutBpmnPoolLanes, moveBpmnLaneCommand, parseBpmnDiagramDocument, pasteBpmnElementsCommand, reorderBpmnLane, reorderBpmnLaneCommand, reparentBpmnNodeCommand, replaceBpmnNodeCommand, resizeBpmnNodeCommand, routeBpmnEdgeCommand, runBpmnCommand, runBpmnCommands, selectBpmnElementsCommand, serializeBpmnDiagram, validateBpmnConnectionForEdgeType };
|
|
531
|
+
//# sourceMappingURL=chunk-YQTIODXH.js.map
|
|
532
|
+
//# sourceMappingURL=chunk-YQTIODXH.js.map
|