@cwygoda/bpmn-txt 0.14.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
File without changes
@@ -14,4 +14,18 @@ export declare function toBpmnXml(doc: Document, options?: BpmnExportOptions): s
14
14
  * Export document to BPMN 2.0 XML string with auto-layout (async)
15
15
  */
16
16
  export declare function toBpmnXmlAsync(doc: Document, options?: BpmnExportOptions): Promise<string>;
17
+ /**
18
+ * Compute label bounds at the midpoint of a polyline.
19
+ * Estimates text width at ~7px/char, height at 14px.
20
+ * Offsets perpendicular to the segment for readability.
21
+ */
22
+ export declare function computeEdgeLabelBounds(waypoints: {
23
+ x: number;
24
+ y: number;
25
+ }[], text: string): {
26
+ x: number;
27
+ y: number;
28
+ width: number;
29
+ height: number;
30
+ };
17
31
  //# sourceMappingURL=bpmn-xml.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bpmn-xml.d.ts","sourceRoot":"","sources":["../../src/generators/bpmn-xml.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,QAAQ,EAiBT,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAkD,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAUjG,MAAM,WAAW,iBAAiB;IAChC,kCAAkC;IAClC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,qCAAqC;IACrC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,GAAE,iBAAsB,GAAG,MAAM,CAqBhF;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAyBpG"}
1
+ {"version":3,"file":"bpmn-xml.d.ts","sourceRoot":"","sources":["../../src/generators/bpmn-xml.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,QAAQ,EAiBT,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAkD,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAUjG,MAAM,WAAW,iBAAiB;IAChC,kCAAkC;IAClC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,qCAAqC;IACrC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,GAAE,iBAAsB,GAAG,MAAM,CAqBhF;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAyBpG;AAu6BD;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,EACrC,IAAI,EAAE,MAAM,GACX;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAmDzD"}
@@ -1,8 +1,8 @@
1
1
  import { XMLBuilder } from 'fast-xml-parser';
2
2
  import { generateIds } from './id-generator.js';
3
3
  import { generateLayout, applyLayout } from './layout.js';
4
- import { ELEMENT_SIZES } from './constants.js';
5
- import { collectFromProcess, collectFromPool, collectPoolsAndLanes } from './utils.js';
4
+ import { ELEMENT_SIZES, LABEL_OFFSET } from './constants.js';
5
+ import { collectFromProcess, collectAllElements, collectFromPool, collectPoolsAndLanes } from './utils.js';
6
6
  const BPMN_NS = 'http://www.omg.org/spec/BPMN/20100524/MODEL';
7
7
  const BPMNDI_NS = 'http://www.omg.org/spec/BPMN/20100524/DI';
8
8
  const DC_NS = 'http://www.omg.org/spec/DD/20100524/DC';
@@ -59,7 +59,7 @@ function collectExistingLayout(doc) {
59
59
  const elements = new Map();
60
60
  const edges = new Map();
61
61
  for (const proc of doc.processes) {
62
- const { elements: procElements, flows } = collectFromProcess(proc);
62
+ const { elements: procElements, flows } = collectAllElements(proc);
63
63
  // Extract element layouts
64
64
  for (const elem of procElements) {
65
65
  if (elem.id && elem.layout?.x !== undefined && elem.layout?.y !== undefined) {
@@ -224,12 +224,23 @@ function buildProcess(proc) {
224
224
  if (proc.sequenceFlows) {
225
225
  allFlows.push(...proc.sequenceFlows);
226
226
  }
227
+ // Pre-compute subprocess internal flows
228
+ const subFlowMap = computeSubprocessFlowMap(allElements, allFlows);
229
+ const consumedFlowIds = new Set();
230
+ for (const flows of subFlowMap.values()) {
231
+ for (const f of flows) {
232
+ if (f.id)
233
+ consumedFlowIds.add(f.id);
234
+ }
235
+ }
227
236
  // Add flow elements to process
228
237
  for (const elem of allElements) {
229
- addFlowElement(process, elem);
238
+ addFlowElement(process, elem, subFlowMap);
230
239
  }
231
- // Add sequence flows
240
+ // Add sequence flows (excluding subprocess-internal ones)
232
241
  for (const flow of allFlows) {
242
+ if (flow.id && consumedFlowIds.has(flow.id))
243
+ continue;
233
244
  if (!process['bpmn:sequenceFlow']) {
234
245
  process['bpmn:sequenceFlow'] = [];
235
246
  }
@@ -285,10 +296,21 @@ function buildPoolProcess(proc, pool) {
285
296
  process['bpmn:laneSet'] = buildLaneSet(pool);
286
297
  }
287
298
  const { elements, flows } = collectFromPool(pool);
299
+ // Pre-compute subprocess internal flows
300
+ const subFlowMap = computeSubprocessFlowMap(elements, flows);
301
+ const consumedFlowIds = new Set();
302
+ for (const subFlows of subFlowMap.values()) {
303
+ for (const f of subFlows) {
304
+ if (f.id)
305
+ consumedFlowIds.add(f.id);
306
+ }
307
+ }
288
308
  for (const elem of elements) {
289
- addFlowElement(process, elem);
309
+ addFlowElement(process, elem, subFlowMap);
290
310
  }
291
311
  for (const flow of flows) {
312
+ if (flow.id && consumedFlowIds.has(flow.id))
313
+ continue;
292
314
  if (!process['bpmn:sequenceFlow']) {
293
315
  process['bpmn:sequenceFlow'] = [];
294
316
  }
@@ -318,8 +340,17 @@ function buildLaneSet(pool) {
318
340
  laneSet['bpmn:lane'] = lanes;
319
341
  return laneSet;
320
342
  }
321
- function addFlowElement(process, elem) {
322
- const { tag, element } = buildFlowElement(elem);
343
+ function addFlowElement(process, elem, subFlowMap) {
344
+ let tag;
345
+ let element;
346
+ // For expanded subprocesses, pass internal flows
347
+ if (elem.type === 'subprocess' && elem.elements?.length && subFlowMap) {
348
+ tag = 'bpmn:subProcess';
349
+ element = buildSubprocess(elem, subFlowMap.get(elem.id) ?? []);
350
+ }
351
+ else {
352
+ ({ tag, element } = buildFlowElement(elem));
353
+ }
323
354
  if (!process[tag]) {
324
355
  process[tag] = [];
325
356
  }
@@ -545,7 +576,7 @@ function buildTask(task) {
545
576
  }
546
577
  return { tag, element: result };
547
578
  }
548
- function buildSubprocess(subprocess) {
579
+ function buildSubprocess(subprocess, internalFlows) {
549
580
  const result = {
550
581
  '@_id': subprocess.id,
551
582
  '@_triggeredByEvent': String(subprocess.triggered ?? false),
@@ -554,16 +585,74 @@ function buildSubprocess(subprocess) {
554
585
  result['@_name'] = subprocess.name;
555
586
  // Add nested elements
556
587
  if (subprocess.elements) {
588
+ // Pre-compute internal flows for nested subprocesses
589
+ const nestedFlowMap = computeSubprocessFlowMap(subprocess.elements, internalFlows ?? []);
557
590
  for (const elem of subprocess.elements) {
558
- const { tag, element } = buildFlowElement(elem);
559
- if (!result[tag]) {
560
- result[tag] = [];
591
+ if (elem.type === 'subprocess' && elem.elements?.length) {
592
+ const { tag, element } = {
593
+ tag: 'bpmn:subProcess',
594
+ element: buildSubprocess(elem, nestedFlowMap.get(elem.id) ?? []),
595
+ };
596
+ if (!result[tag])
597
+ result[tag] = [];
598
+ result[tag].push(element);
599
+ }
600
+ else {
601
+ const { tag, element } = buildFlowElement(elem);
602
+ if (!result[tag])
603
+ result[tag] = [];
604
+ result[tag].push(element);
605
+ }
606
+ // Boundary events
607
+ if ((elem.type === 'task' || elem.type === 'subprocess') && elem.boundaryEvents) {
608
+ for (const boundary of elem.boundaryEvents) {
609
+ const boundaryResult = buildBoundaryEvent(boundary, elem.id);
610
+ if (!result['bpmn:boundaryEvent'])
611
+ result['bpmn:boundaryEvent'] = [];
612
+ result['bpmn:boundaryEvent'].push(boundaryResult);
613
+ }
614
+ }
615
+ }
616
+ }
617
+ // Add internal sequence flows
618
+ if (internalFlows && internalFlows.length > 0) {
619
+ // Exclude flows consumed by deeper subprocesses
620
+ const deepConsumed = new Set();
621
+ if (subprocess.elements) {
622
+ for (const elem of subprocess.elements) {
623
+ if (elem.type === 'subprocess' && elem.elements?.length) {
624
+ const childIds = new Set(elem.elements.map(e => e.id).filter(Boolean));
625
+ for (const flow of internalFlows) {
626
+ if (childIds.has(flow.from) && childIds.has(flow.to) && flow.id) {
627
+ deepConsumed.add(flow.id);
628
+ }
629
+ }
630
+ }
561
631
  }
562
- result[tag].push(element);
632
+ }
633
+ const ownFlows = internalFlows.filter(f => !f.id || !deepConsumed.has(f.id));
634
+ if (ownFlows.length > 0) {
635
+ result['bpmn:sequenceFlow'] = ownFlows.map(flow => buildSequenceFlow(flow));
563
636
  }
564
637
  }
638
+ addFlowReferences(result);
565
639
  return result;
566
640
  }
641
+ /**
642
+ * Pre-compute which flows are internal to each expanded subprocess.
643
+ */
644
+ function computeSubprocessFlowMap(elements, flows) {
645
+ const map = new Map();
646
+ for (const elem of elements) {
647
+ if (elem.type !== 'subprocess' || !elem.elements?.length)
648
+ continue;
649
+ const childIds = new Set(elem.elements.map(e => e.id).filter(Boolean));
650
+ const internal = flows.filter(f => childIds.has(f.from) && childIds.has(f.to));
651
+ if (internal.length > 0)
652
+ map.set(elem.id, internal);
653
+ }
654
+ return map;
655
+ }
567
656
  function buildCallActivity(call) {
568
657
  const result = {
569
658
  '@_id': call.id,
@@ -715,18 +804,21 @@ function buildDiagram(doc, layout) {
715
804
  const laneLayout = layout.elements.get(lane.id);
716
805
  shapes.push(buildShape(lane.id, laneLayout ?? lane.layout, 'lane'));
717
806
  }
718
- // Add shapes for all flow elements
719
- const { elements: allElements, flows: allFlows } = collectFromProcess(proc);
807
+ // Add shapes for all flow elements (including subprocess children)
808
+ const { elements: allElements, flows: allFlows } = collectAllElements(proc);
720
809
  for (const elem of allElements) {
721
810
  if (!elem.id)
722
811
  continue;
723
812
  const elemLayout = layout.elements.get(elem.id);
813
+ const expanded = elem.type === 'subprocess'
814
+ && elem.elements
815
+ && elem.elements.length > 0;
724
816
  if (elemLayout) {
725
- shapes.push(buildShape(elem.id, elemLayout, elem.type));
817
+ shapes.push(buildShape(elem.id, elemLayout, elem.type, expanded));
726
818
  }
727
819
  else {
728
820
  // Use default sizes if no layout
729
- shapes.push(buildShape(elem.id, elem.layout, elem.type));
821
+ shapes.push(buildShape(elem.id, elem.layout, elem.type, expanded));
730
822
  }
731
823
  // Handle boundary events
732
824
  if ((elem.type === 'task' || elem.type === 'subprocess') && elem.boundaryEvents) {
@@ -742,12 +834,13 @@ function buildDiagram(doc, layout) {
742
834
  for (const flow of allFlows) {
743
835
  if (!flow.id)
744
836
  continue;
837
+ const labelText = flow.name || flow.condition;
745
838
  const flowLayout = layout.edges.get(flow.id);
746
839
  if (flowLayout) {
747
- edges.push(buildEdge(flow.id, flowLayout.waypoints));
840
+ edges.push(buildEdge(flow.id, flowLayout.waypoints, labelText));
748
841
  }
749
842
  else if (flow.layout?.waypoints) {
750
- edges.push(buildEdge(flow.id, flow.layout.waypoints));
843
+ edges.push(buildEdge(flow.id, flow.layout.waypoints, labelText));
751
844
  }
752
845
  else {
753
846
  // Edge without waypoints - minimal placeholder
@@ -762,9 +855,10 @@ function buildDiagram(doc, layout) {
762
855
  for (const flow of proc.messageFlows) {
763
856
  if (!flow.id)
764
857
  continue;
858
+ const labelText = flow.name;
765
859
  const flowLayout = layout.edges.get(flow.id);
766
860
  if (flowLayout) {
767
- edges.push(buildEdge(flow.id, flowLayout.waypoints));
861
+ edges.push(buildEdge(flow.id, flowLayout.waypoints, labelText));
768
862
  }
769
863
  else {
770
864
  edges.push({
@@ -786,7 +880,7 @@ function buildDiagram(doc, layout) {
786
880
  'bpmndi:BPMNPlane': plane,
787
881
  };
788
882
  }
789
- function buildShape(elementId, layout, elementType) {
883
+ function buildShape(elementId, layout, elementType, isExpanded) {
790
884
  const defaultSize = ELEMENT_SIZES[elementType] || { width: 100, height: 80 };
791
885
  const shape = {
792
886
  '@_id': `${elementId}_di`,
@@ -803,9 +897,63 @@ function buildShape(elementId, layout, elementType) {
803
897
  shape['@_isHorizontal'] = 'true';
804
898
  shape['@_isExpanded'] = elementType === 'pool' ? 'true' : 'false';
805
899
  }
900
+ if (elementType === 'subprocess' && isExpanded) {
901
+ shape['@_isExpanded'] = 'true';
902
+ }
806
903
  return shape;
807
904
  }
808
- function buildEdge(flowId, waypoints) {
905
+ /**
906
+ * Compute label bounds at the midpoint of a polyline.
907
+ * Estimates text width at ~7px/char, height at 14px.
908
+ * Offsets perpendicular to the segment for readability.
909
+ */
910
+ export function computeEdgeLabelBounds(waypoints, text) {
911
+ const labelW = Math.max(30, text.length * 7);
912
+ const labelH = 14;
913
+ const OFFSET = LABEL_OFFSET;
914
+ if (waypoints.length < 2) {
915
+ return { x: 0, y: 0, width: labelW, height: labelH };
916
+ }
917
+ // Compute total polyline length and find midpoint
918
+ let totalLen = 0;
919
+ const segLens = [];
920
+ for (let i = 1; i < waypoints.length; i++) {
921
+ const dx = waypoints[i].x - waypoints[i - 1].x;
922
+ const dy = waypoints[i].y - waypoints[i - 1].y;
923
+ const len = Math.sqrt(dx * dx + dy * dy);
924
+ segLens.push(len);
925
+ totalLen += len;
926
+ }
927
+ const halfLen = totalLen / 2;
928
+ let accumulated = 0;
929
+ for (let i = 0; i < segLens.length; i++) {
930
+ if (accumulated + segLens[i] >= halfLen) {
931
+ const t = segLens[i] > 0 ? (halfLen - accumulated) / segLens[i] : 0;
932
+ const p0 = waypoints[i];
933
+ const p1 = waypoints[i + 1];
934
+ const midX = p0.x + t * (p1.x - p0.x);
935
+ const midY = p0.y + t * (p1.y - p0.y);
936
+ // Perpendicular offset (rotate segment direction 90°)
937
+ const dx = p1.x - p0.x;
938
+ const dy = p1.y - p0.y;
939
+ const segLen = segLens[i] || 1;
940
+ const nx = -dy / segLen;
941
+ const ny = dx / segLen;
942
+ return {
943
+ x: Math.round(midX + nx * OFFSET - labelW / 2),
944
+ y: Math.round(midY + ny * OFFSET - labelH / 2),
945
+ width: labelW,
946
+ height: labelH,
947
+ };
948
+ }
949
+ accumulated += segLens[i];
950
+ }
951
+ // Fallback: use first segment midpoint
952
+ const mx = (waypoints[0].x + waypoints[1].x) / 2;
953
+ const my = (waypoints[0].y + waypoints[1].y) / 2;
954
+ return { x: Math.round(mx - labelW / 2), y: Math.round(my - OFFSET - labelH / 2), width: labelW, height: labelH };
955
+ }
956
+ function buildEdge(flowId, waypoints, labelText) {
809
957
  const edge = {
810
958
  '@_id': `${flowId}_di`,
811
959
  '@_bpmnElement': flowId,
@@ -816,6 +964,17 @@ function buildEdge(flowId, waypoints) {
816
964
  '@_y': wp.y,
817
965
  }));
818
966
  }
967
+ if (labelText && waypoints.length >= 2) {
968
+ const bounds = computeEdgeLabelBounds(waypoints, labelText);
969
+ edge['bpmndi:BPMNLabel'] = {
970
+ 'dc:Bounds': {
971
+ '@_x': bounds.x,
972
+ '@_y': bounds.y,
973
+ '@_width': bounds.width,
974
+ '@_height': bounds.height,
975
+ },
976
+ };
977
+ }
819
978
  return edge;
820
979
  }
821
980
  //# sourceMappingURL=bpmn-xml.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bpmn-xml.js","sourceRoot":"","sources":["../../src/generators/bpmn-xml.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bpmn-xml.js","sourceRoot":"","sources":["../../src/generators/bpmn-xml.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,47 @@ export declare const ELEMENT_SIZES: Record<string, {
2
2
  width: number;
3
3
  height: number;
4
4
  }>;
5
+ export declare const DEFAULT_ELEMENT_WIDTH = 100;
6
+ export declare const DEFAULT_ELEMENT_HEIGHT = 80;
7
+ /** Pool label zone (vertical band on left edge of horizontal pools) */
5
8
  export declare const POOL_LABEL_WIDTH = 30;
9
+ /** Vertical gap between consecutive pools */
10
+ export declare const POOL_GAP = 80;
11
+ /** Padding around pool/lane contents */
12
+ export declare const CONTAINER_PADDING = 50;
13
+ /** Minimum spacing for message flows between pools */
14
+ export declare const MIN_FLOW_SPACING = 20;
15
+ export declare function computePoolLabelWidth(name: string): number;
16
+ /** Edge-to-node spacing in ELK layout */
17
+ export declare const ELK_EDGE_NODE_SPACING = 20;
18
+ /** Subprocess internal padding [top, left, bottom, right] */
19
+ export declare const ELK_SUBPROCESS_PADDING = "[top=40,left=15,bottom=15,right=15]";
20
+ /** Obstacle-aware routing: buffer around obstacles */
6
21
  export declare const OBSTACLE_MARGIN = 15;
22
+ /** A* cost penalty for each direction change */
7
23
  export declare const BEND_PENALTY = 50;
8
- export declare const PARALLEL_TOLERANCE = 5;
24
+ /** Tolerance for detecting overlapping parallel segments */
25
+ export declare const PARALLEL_TOLERANCE = 2;
26
+ /** Distance of perpendicular stub from element edge before A* routing */
27
+ export declare const EXIT_STUB = 20;
28
+ /** Extra margin beyond OBSTACLE_MARGIN for Z-shape obstacle-edge candidates */
29
+ export declare const ZSHAPE_EXTRA_MARGIN = 5;
30
+ /** Fraction of element width used for port spreading (centered) */
31
+ export declare const PORT_SPREAD_RATIO = 0.5;
32
+ /** Margin from pool edge for U-shape fallback routing */
33
+ export declare const POOL_EDGE_MARGIN = 30;
34
+ /** Base horizontal offset for U-shape routing (beyond rightmost pool edge) */
35
+ export declare const USHAPE_BASE_OFFSET = 40;
36
+ /** Per-flow horizontal increment for U-shape routing */
37
+ export declare const USHAPE_FLOW_INCREMENT = 20;
38
+ /** Floating-point tolerance for collinearity / edge detection */
39
+ export declare const SNAP_TOLERANCE = 0.5;
40
+ /** Floating-point tolerance for deduplicating nearby waypoints */
41
+ export declare const DEDUP_TOLERANCE = 1;
42
+ /** Perpendicular offset for edge labels from midpoint */
43
+ export declare const LABEL_OFFSET = 10;
44
+ /** Minimum gap stub (px) when adjacent pool gap is very small */
45
+ export declare const MIN_GAP_STUB = 5;
46
+ /** Divisor for capping stub length relative to gap height */
47
+ export declare const GAP_STUB_DIVISOR = 3;
9
48
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/generators/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAc3E,CAAC;AAGF,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAGnC,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,eAAO,MAAM,YAAY,KAAK,CAAC;AAC/B,eAAO,MAAM,kBAAkB,IAAI,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/generators/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAc3E,CAAC;AAGF,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAIzC,uEAAuE;AACvE,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,6CAA6C;AAC7C,eAAO,MAAM,QAAQ,KAAK,CAAC;AAE3B,wCAAwC;AACxC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,sDAAsD;AACtD,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAUnC,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK1D;AAID,yCAAyC;AACzC,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,6DAA6D;AAC7D,eAAO,MAAM,sBAAsB,wCAAwC,CAAC;AAI5E,sDAAsD;AACtD,eAAO,MAAM,eAAe,KAAK,CAAC;AAElC,gDAAgD;AAChD,eAAO,MAAM,YAAY,KAAK,CAAC;AAE/B,4DAA4D;AAC5D,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC,yEAAyE;AACzE,eAAO,MAAM,SAAS,KAAK,CAAC;AAE5B,+EAA+E;AAC/E,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,mEAAmE;AACnE,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC,yDAAyD;AACzD,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,8EAA8E;AAC9E,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC,wDAAwD;AACxD,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,iEAAiE;AACjE,eAAO,MAAM,cAAc,MAAM,CAAC;AAElC,kEAAkE;AAClE,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC,yDAAyD;AACzD,eAAO,MAAM,YAAY,KAAK,CAAC;AAE/B,iEAAiE;AACjE,eAAO,MAAM,YAAY,IAAI,CAAC;AAE9B,6DAA6D;AAC7D,eAAO,MAAM,gBAAgB,IAAI,CAAC"}
@@ -14,10 +14,60 @@ export const ELEMENT_SIZES = {
14
14
  collapsedPool: { width: 600, height: 60 },
15
15
  lane: { width: 600, height: 150 },
16
16
  };
17
- // Pool label zone (vertical band on left edge of horizontal pools)
17
+ // Fallback element dimensions (task-sized) when type lookup misses
18
+ export const DEFAULT_ELEMENT_WIDTH = 100;
19
+ export const DEFAULT_ELEMENT_HEIGHT = 80;
20
+ // ─── Pool & Container ────────────────────────────────────────────────────
21
+ /** Pool label zone (vertical band on left edge of horizontal pools) */
18
22
  export const POOL_LABEL_WIDTH = 30;
19
- // Obstacle-aware routing constants
23
+ /** Vertical gap between consecutive pools */
24
+ export const POOL_GAP = 80;
25
+ /** Padding around pool/lane contents */
26
+ export const CONTAINER_PADDING = 50;
27
+ /** Minimum spacing for message flows between pools */
28
+ export const MIN_FLOW_SPACING = 20;
29
+ /**
30
+ * Compute pool label width proportional to name length.
31
+ * Returns at least POOL_LABEL_WIDTH, capped at 50px.
32
+ */
33
+ const POOL_LABEL_MIN_WIDTH = 20;
34
+ const POOL_LABEL_CHAR_WIDTH = 0.8;
35
+ const POOL_LABEL_MAX_WIDTH = 50;
36
+ export function computePoolLabelWidth(name) {
37
+ return Math.max(POOL_LABEL_WIDTH, Math.min(POOL_LABEL_MAX_WIDTH, POOL_LABEL_MIN_WIDTH + name.length * POOL_LABEL_CHAR_WIDTH));
38
+ }
39
+ // ─── ELK Layout ──────────────────────────────────────────────────────────
40
+ /** Edge-to-node spacing in ELK layout */
41
+ export const ELK_EDGE_NODE_SPACING = 20;
42
+ /** Subprocess internal padding [top, left, bottom, right] */
43
+ export const ELK_SUBPROCESS_PADDING = '[top=40,left=15,bottom=15,right=15]';
44
+ // ─── Routing ─────────────────────────────────────────────────────────────
45
+ /** Obstacle-aware routing: buffer around obstacles */
20
46
  export const OBSTACLE_MARGIN = 15;
47
+ /** A* cost penalty for each direction change */
21
48
  export const BEND_PENALTY = 50;
22
- export const PARALLEL_TOLERANCE = 5;
49
+ /** Tolerance for detecting overlapping parallel segments */
50
+ export const PARALLEL_TOLERANCE = 2;
51
+ /** Distance of perpendicular stub from element edge before A* routing */
52
+ export const EXIT_STUB = 20;
53
+ /** Extra margin beyond OBSTACLE_MARGIN for Z-shape obstacle-edge candidates */
54
+ export const ZSHAPE_EXTRA_MARGIN = 5;
55
+ /** Fraction of element width used for port spreading (centered) */
56
+ export const PORT_SPREAD_RATIO = 0.5;
57
+ /** Margin from pool edge for U-shape fallback routing */
58
+ export const POOL_EDGE_MARGIN = 30;
59
+ /** Base horizontal offset for U-shape routing (beyond rightmost pool edge) */
60
+ export const USHAPE_BASE_OFFSET = 40;
61
+ /** Per-flow horizontal increment for U-shape routing */
62
+ export const USHAPE_FLOW_INCREMENT = 20;
63
+ /** Floating-point tolerance for collinearity / edge detection */
64
+ export const SNAP_TOLERANCE = 0.5;
65
+ /** Floating-point tolerance for deduplicating nearby waypoints */
66
+ export const DEDUP_TOLERANCE = 1;
67
+ /** Perpendicular offset for edge labels from midpoint */
68
+ export const LABEL_OFFSET = 10;
69
+ /** Minimum gap stub (px) when adjacent pool gap is very small */
70
+ export const MIN_GAP_STUB = 5;
71
+ /** Divisor for capping stub length relative to gap height */
72
+ export const GAP_STUB_DIVISOR = 3;
23
73
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/generators/constants.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,MAAM,CAAC,MAAM,aAAa,GAAsD;IAC9E,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;IACrC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;IACnC,iBAAiB,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;IAC5C,aAAa,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;IACxC,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IAChC,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IACvC,YAAY,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IACxC,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;IAClC,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;IACrC,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;IACpC,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IACjC,aAAa,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IACzC,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;CAClC,CAAC;AAEF,mEAAmE;AACnE,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAEnC,mCAAmC;AACnC,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC;AAClC,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAC;AAC/B,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/generators/constants.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  export { generateIds } from './id-generator.js';
2
2
  export { toJson, toObject } from './json.js';
3
3
  export type { JsonExportOptions } from './json.js';
4
- export { toBpmnXml, toBpmnXmlAsync } from './bpmn-xml.js';
4
+ export { toBpmnXml, toBpmnXmlAsync, computeEdgeLabelBounds } from './bpmn-xml.js';
5
5
  export type { BpmnExportOptions } from './bpmn-xml.js';
6
6
  export { generateLayout, applyLayout } from './layout.js';
7
7
  export type { LayoutResult, LayoutOptions } from './layout.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC7C,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC1D,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1D,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC7C,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAClF,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1D,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}