@miragon/context-maps-renderer 0.5.0 → 0.6.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/index.js CHANGED
@@ -94,16 +94,13 @@ var E = {
94
94
  "--cd-danger": E.danger,
95
95
  "--cd-info": E.info,
96
96
  "--cd-gradient-brand": E.gradientBrand
97
- }, ze = {
98
- width: 440,
99
- height: 820
100
- }, Be = 1500;
97
+ }, ze = 1500;
101
98
  E.blau;
102
- var D = E.schwarz, Ve = "#5B5B5B", O = {
99
+ var D = E.schwarz, Be = "#5B5B5B", O = {
103
100
  family: "'Geist Variable', 'Geist', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif",
104
101
  label: 13.5,
105
102
  small: 11
106
- }, k = E.weiss, He = "#F1F1EE", Ue = "#8A8577", A;
103
+ }, k = E.weiss, Ve = "#F1F1EE", He = "#8A8577", A;
107
104
  function j(e, t, n) {
108
105
  return A === void 0 && (A = typeof document > "u" ? null : document.createElement("canvas").getContext("2d")), A ? (A.font = `${n} ${t}px ${O.family}`, A.measureText(e).width) : e.length * t * .58;
109
106
  }
@@ -114,25 +111,25 @@ var M = {
114
111
  y: 15,
115
112
  fontWeight: "700",
116
113
  letterSpacingEm: .03
117
- }, We = 5, Ge = 12;
118
- function Ke(e, t, n) {
119
- let r = n.length * O.small * .55, i = e / 2 - (19 + r) / 2, a = i + 14 + We;
114
+ }, Ue = 5, We = 12;
115
+ function Ge(e, t, n) {
116
+ let r = n.length * O.small * .55, i = e / 2 - (19 + r) / 2, a = i + 14 + Ue;
120
117
  return {
121
118
  left: i,
122
119
  iconCenterX: i + 7,
123
120
  textX: a,
124
- centerY: t - Ge,
121
+ centerY: t - We,
125
122
  right: a + j(n, O.small, "400")
126
123
  };
127
124
  }
128
- function qe(e) {
125
+ function Ke(e) {
129
126
  let { label: t } = p[e], n = M.letterSpacingEm * O.small;
130
127
  return M.x + j(t, O.small, M.fontWeight) + t.length * n;
131
128
  }
132
- function Je(e) {
129
+ function qe(e) {
133
130
  let t = 0, n = e.width;
134
- if (e.subdomainType && p[e.subdomainType] && (n = Math.max(n, qe(e.subdomainType))), e.team) {
135
- let r = Ke(e.width, 0, e.team);
131
+ if (e.subdomainType && p[e.subdomainType] && (n = Math.max(n, Ke(e.subdomainType))), e.team) {
132
+ let r = Ge(e.width, 0, e.team);
136
133
  t = Math.min(t, r.left), n = Math.max(n, r.right);
137
134
  }
138
135
  return {
@@ -142,7 +139,7 @@ function Je(e) {
142
139
  }
143
140
  //#endregion
144
141
  //#region src/model/contentBounds.ts
145
- function Ye(e) {
142
+ function Je(e) {
146
143
  let t = Infinity, n = Infinity, r = -Infinity, i = -Infinity, a = (e, a, o, s) => {
147
144
  [
148
145
  e,
@@ -152,7 +149,7 @@ function Ye(e) {
152
149
  ].every(Number.isFinite) && (t = Math.min(t, e), n = Math.min(n, a), r = Math.max(r, e + o), i = Math.max(i, a + s));
153
150
  };
154
151
  for (let t of e) if (w(t)) {
155
- let e = Je(t);
152
+ let e = qe(t);
156
153
  a(e.left, t.y, e.right - e.left, t.height);
157
154
  } else if (T(t)) for (let e of t.waypoints ?? []) a(e.x, e.y, 0, 0);
158
155
  if (!(t > r || n > i)) return {
@@ -164,16 +161,16 @@ function Ye(e) {
164
161
  }
165
162
  //#endregion
166
163
  //#region src/io/types.ts
167
- var N = i, Xe = {
164
+ var N = i, Ye = {
168
165
  top: 84,
169
166
  right: 56,
170
167
  bottom: 56,
171
168
  left: 56
172
- }, Ze = .001;
173
- function Qe(e) {
169
+ }, Xe = .001;
170
+ function Ze(e) {
174
171
  return typeof e == "number" ? `${e}px` : e;
175
172
  }
176
- var $e = class {
173
+ var Qe = class {
177
174
  _diagram;
178
175
  _container;
179
176
  _options;
@@ -182,7 +179,7 @@ var $e = class {
182
179
  }
183
180
  _createContainer(e) {
184
181
  let t = e.container ?? document.createElement("div");
185
- return t.classList.add("cm-djs-container"), t.style.width = Qe(e.width ?? "100%"), t.style.height = Qe(e.height ?? (e.container ? "100%" : "600px")), t;
182
+ return t.classList.add("cm-djs-container"), t.style.width = Ze(e.width ?? "100%"), t.style.height = Ze(e.height ?? (e.container ? "100%" : "600px")), t;
186
183
  }
187
184
  _ensureDiagram() {
188
185
  if (!this._diagram) {
@@ -204,7 +201,7 @@ var $e = class {
204
201
  }
205
202
  freeRectInsets = () => {
206
203
  let { freeArea: e, freeRectInsets: t } = this._options;
207
- return (e ? e.insets?.() : t?.()) ?? Xe;
204
+ return (e ? e.insets?.() : t?.()) ?? Ye;
208
205
  };
209
206
  freeRectCenter = () => this._options.freeArea?.center?.();
210
207
  _optional(e) {
@@ -255,7 +252,7 @@ var $e = class {
255
252
  return Le(this.get("canvas"), this.get("elementRegistry"));
256
253
  }
257
254
  contentBounds() {
258
- if (this._diagram) return Ye(this._diagram.get("elementRegistry").getAll());
255
+ if (this._diagram) return Je(this._diagram.get("elementRegistry").getAll());
259
256
  }
260
257
  _fit() {
261
258
  let e = this.get("canvas"), { width: t, height: n } = e.getSize();
@@ -270,7 +267,7 @@ var $e = class {
270
267
  });
271
268
  return;
272
269
  }
273
- let i = this.freeRectInsets(), a = Math.max(t - i.left - i.right, 1), o = Math.max(n - i.top - i.bottom, 1), s = Math.max(r.width, 1), c = Math.max(r.height, 1), l = Math.max(Math.min(a / s, o / c, 1), Ze);
270
+ let i = this.freeRectInsets(), a = Math.max(t - i.left - i.right, 1), o = Math.max(n - i.top - i.bottom, 1), s = Math.max(r.width, 1), c = Math.max(r.height, 1), l = Math.max(Math.min(a / s, o / c, 1), Xe);
274
271
  e.viewbox({
275
272
  x: r.x + s / 2 - (i.left + a / 2) / l,
276
273
  y: r.y + c / 2 - (i.top + o / 2) / l,
@@ -296,11 +293,11 @@ var $e = class {
296
293
  };
297
294
  //#endregion
298
295
  //#region src/model/CmElementFactory.ts
299
- function et(e, t) {
296
+ function $e(e, t) {
300
297
  let n = g(e, t);
301
298
  return Object.keys(n).length > 0 ? { cmForeign: n } : {};
302
299
  }
303
- var tt = class {
300
+ var et = class {
304
301
  elementFactory;
305
302
  static $inject = ["elementFactory"];
306
303
  constructor(e) {
@@ -324,7 +321,7 @@ var tt = class {
324
321
  ...e.description ? { description: e.description } : {},
325
322
  ...e.fill ? { fill: e.fill } : {},
326
323
  ...e.stroke ? { stroke: e.stroke } : {},
327
- ...et(e, r)
324
+ ...$e(e, r)
328
325
  });
329
326
  }
330
327
  createRelationship(e, t, n, r) {
@@ -340,7 +337,7 @@ var tt = class {
340
337
  ...e.label ? { cmLabel: e.label } : {},
341
338
  ...e.description ? { description: e.description } : {},
342
339
  ...e.implementationTechnology ? { implementationTechnology: e.implementationTechnology } : {},
343
- ...et(e, d)
340
+ ...$e(e, d)
344
341
  });
345
342
  }
346
343
  createNewContext(e, t) {
@@ -353,14 +350,14 @@ var tt = class {
353
350
  cmLabel: t ?? "New Context"
354
351
  });
355
352
  }
356
- }, nt = class extends se {
353
+ }, tt = class extends se {
357
354
  create(e, t) {
358
355
  return !t?.id && (e === "shape" || e === "connection") && (t = {
359
356
  ...t,
360
357
  id: te(e === "shape" ? "ctx" : "rel")
361
358
  }), super.create(e, t);
362
359
  }
363
- }, rt = class {
360
+ }, nt = class {
364
361
  docking;
365
362
  static $inject = ["connectionDocking"];
366
363
  constructor(e) {
@@ -370,14 +367,14 @@ var tt = class {
370
367
  let n = t.source ?? e.source, r = t.target ?? e.target, i = [n ? _(n) : t.connectionStart || void 0, r ? _(r) : t.connectionEnd || void 0].filter(Boolean);
371
368
  return e.waypoints = i, n && r && i.length === 2 ? this.docking.getCroppedWaypoints(e, n, r) : i;
372
369
  }
373
- }, it = {
374
- elementFactory: ["type", nt],
375
- cmElementFactory: ["type", tt],
370
+ }, rt = {
371
+ elementFactory: ["type", tt],
372
+ cmElementFactory: ["type", et],
376
373
  connectionDocking: ["type", oe]
377
374
  };
378
375
  //#endregion
379
376
  //#region src/draw/endRoleChips.ts
380
- function at(e, t, n, r) {
377
+ function it(e, t, n, r) {
381
378
  if (r.length === 0) return null;
382
379
  let i = t.x - e.x, a = t.y - e.y, o = Math.hypot(i, a) || 1, s = i / o, c = a / o, l = O.small * .64, u = O.small + 6, d = r.map((e) => e.length * l + 12), f = d.reduce((e, t) => e + t, 0) + 3 * (r.length - 1), p = f + 8, m = u + 8, h = 11 + n.length * l / 2 + 8 + p / 2, g = {
383
380
  x: e.x + s * h,
@@ -399,10 +396,10 @@ function at(e, t, n, r) {
399
396
  }
400
397
  //#endregion
401
398
  //#region src/draw/ContextMapsRenderer.ts
402
- var ot = class extends le {
399
+ var at = class extends le {
403
400
  static $inject = ["eventBus"];
404
401
  constructor(e) {
405
- super(e, Be);
402
+ super(e, ze);
406
403
  }
407
404
  canRender(e) {
408
405
  return C(e);
@@ -447,7 +444,7 @@ var ot = class extends le {
447
444
  "stroke-linejoin": "round"
448
445
  });
449
446
  if (v(e, a), this.appendLabel(e, t.cmLabel ?? "", r, i, !!t.team, { "font-weight": "650" }), t.subdomainType && n) {
450
- v(e, ut(t.subdomainType, 15, 15, 18, n.stroke));
447
+ v(e, lt(t.subdomainType, 15, 15, 18, n.stroke));
451
448
  let r = y(b("text"), {
452
449
  x: M.x,
453
450
  y: M.y,
@@ -462,7 +459,7 @@ var ot = class extends le {
462
459
  r.textContent = n.label, v(e, r);
463
460
  }
464
461
  if (t.team) {
465
- let n = Ke(r, i, t.team), a = ft(n.iconCenterX, n.centerY, 14, Ve);
462
+ let n = Ge(r, i, t.team), a = dt(n.iconCenterX, n.centerY, 14, Be);
466
463
  y(a, { class: "cm-team" }), v(e, a);
467
464
  let o = y(b("text"), {
468
465
  class: "cm-team",
@@ -470,7 +467,7 @@ var ot = class extends le {
470
467
  y: n.centerY,
471
468
  "font-family": O.family,
472
469
  "font-size": O.small,
473
- fill: Ve,
470
+ fill: Be,
474
471
  "text-anchor": "start",
475
472
  "dominant-baseline": "central"
476
473
  });
@@ -515,7 +512,7 @@ var ot = class extends le {
515
512
  "dominant-baseline": "central"
516
513
  });
517
514
  f.textContent = r, v(e, f);
518
- let p = at(t, n, r, i);
515
+ let p = it(t, n, r, i);
519
516
  if (!p) return;
520
517
  let { box: m, center: h, chipWidths: g, chipHeight: ee, innerWidth: te, gap: ne } = p, re = h.y, ie = y(b("rect"), {
521
518
  x: m.x,
@@ -545,7 +542,7 @@ var ot = class extends le {
545
542
  rx: 3,
546
543
  ry: 3,
547
544
  fill: o,
548
- stroke: st(o),
545
+ stroke: ot(o),
549
546
  "stroke-width": 1
550
547
  });
551
548
  v(e, s);
@@ -589,8 +586,8 @@ var ot = class extends le {
589
586
  d.textContent = r, v(e, d);
590
587
  }
591
588
  appendLabel(e, t, n, r, i, a) {
592
- let o = typeof a["font-size"] == "number" ? a["font-size"] : O.label, s = String(a["font-weight"] ?? "400"), c = n - 20, l = mt(t, c, o, s), u = o * 1.2, d = r - 36 - (i ? 18 : 8), f = Math.max(1, Math.floor(d / u));
593
- l.length > f && (l = l.slice(0, f), l[f - 1] = pt(l[f - 1], c, o, s));
589
+ let o = typeof a["font-size"] == "number" ? a["font-size"] : O.label, s = String(a["font-weight"] ?? "400"), c = n - 20, l = pt(t, c, o, s), u = o * 1.2, d = r - 36 - (i ? 18 : 8), f = Math.max(1, Math.floor(d / u));
590
+ l.length > f && (l = l.slice(0, f), l[f - 1] = ft(l[f - 1], c, o, s));
594
591
  let p = 36 + u / 2;
595
592
  l.forEach((t, r) => {
596
593
  let i = y(b("text"), {
@@ -608,14 +605,14 @@ var ot = class extends le {
608
605
  });
609
606
  }
610
607
  };
611
- function st(e, t = .7) {
608
+ function ot(e, t = .7) {
612
609
  let n = /^#([0-9a-f]{6})$/i.exec(e);
613
610
  if (!n) return e;
614
611
  let r = parseInt(n[1], 16);
615
612
  return `rgb(${Math.round((r >> 16 & 255) * t)},${Math.round((r >> 8 & 255) * t)},${Math.round((r & 255) * t)})`;
616
613
  }
617
- var ct = "M12 2l2.9 6.26L22 9.27l-5 4.87L18.18 22 12 18.56 5.82 22 7 14.14l-5-4.87 7.1-1.01z", lt = "M23 5.5V20c0 2.2-1.8 4-4 4h-7.3c-1.08 0-2.1-.43-2.85-1.19L1 14.83s1.26-1.23 1.3-1.25c.22-.19.49-.29.79-.29.22 0 .42.06.6.16.04.01 4.31 2.46 4.31 2.46V4c0-.83.67-1.5 1.5-1.5S11 3.17 11 4v7h1V1.5c0-.83.67-1.5 1.5-1.5S15 .67 15 1.5V11h1V2.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5V11h1V5.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5z";
618
- function ut(e, t, n, r, i) {
614
+ var st = "M12 2l2.9 6.26L22 9.27l-5 4.87L18.18 22 12 18.56 5.82 22 7 14.14l-5-4.87 7.1-1.01z", ct = "M23 5.5V20c0 2.2-1.8 4-4 4h-7.3c-1.08 0-2.1-.43-2.85-1.19L1 14.83s1.26-1.23 1.3-1.25c.22-.19.49-.29.79-.29.22 0 .42.06.6.16.04.01 4.31 2.46 4.31 2.46V4c0-.83.67-1.5 1.5-1.5S11 3.17 11 4v7h1V1.5c0-.83.67-1.5 1.5-1.5S15 .67 15 1.5V11h1V2.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5V11h1V5.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5z";
615
+ function lt(e, t, n, r, i) {
619
616
  if (e === "generic") {
620
617
  let e = b("g"), a = y(b("circle"), {
621
618
  cx: t,
@@ -631,34 +628,34 @@ function ut(e, t, n, r, i) {
631
628
  let a = r / 24, o = e === "supporting" ? " rotate(90 12 12)" : "", s = b("g");
632
629
  y(s, { transform: `translate(${t - 12 * a} ${n - 12 * a}) scale(${a})${o}` });
633
630
  let c = y(b("path"), {
634
- d: e === "core" ? ct : lt,
631
+ d: e === "core" ? st : ct,
635
632
  fill: i
636
633
  });
637
634
  return v(s, c), s;
638
635
  }
639
- var dt = "M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z";
640
- function ft(e, t, n, r) {
636
+ var ut = "M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z";
637
+ function dt(e, t, n, r) {
641
638
  let i = n / 24, a = b("g");
642
639
  y(a, { transform: `translate(${e - 12 * i} ${t - 12 * i}) scale(${i})` });
643
640
  let o = y(b("path"), {
644
- d: dt,
641
+ d: ut,
645
642
  fill: r
646
643
  });
647
644
  return v(a, o), a;
648
645
  }
649
- function pt(e, t, n, r) {
646
+ function ft(e, t, n, r) {
650
647
  let i = e;
651
648
  for (; i && j(`${i}…`, n, r) > t;) i = i.slice(0, -1).trimEnd();
652
649
  return `${i}…`;
653
650
  }
654
- function mt(e, t, n, r) {
651
+ function pt(e, t, n, r) {
655
652
  let i = e.split("\n");
656
653
  return i.every((e) => e.trim() === "") ? [] : i.flatMap((e) => {
657
- let i = ht(e, t, n, r);
654
+ let i = mt(e, t, n, r);
658
655
  return i.length ? i : [""];
659
656
  });
660
657
  }
661
- function ht(e, t, n, r) {
658
+ function mt(e, t, n, r) {
662
659
  let i = e.split(/\s+/).filter(Boolean);
663
660
  if (i.length === 0) return [];
664
661
  let a = (e) => j(e, n, r) <= t, o = [], s = "";
@@ -684,13 +681,13 @@ function ht(e, t, n, r) {
684
681
  }
685
682
  //#endregion
686
683
  //#region src/draw/index.ts
687
- var gt = {
684
+ var ht = {
688
685
  __init__: ["cmRenderer"],
689
- cmRenderer: ["type", ot]
686
+ cmRenderer: ["type", at]
690
687
  };
691
688
  //#endregion
692
689
  //#region src/io/CmImporter.ts
693
- function _t(e, t) {
690
+ function gt(e, t) {
694
691
  let n = e.x + e.width / 2, r = e.y + e.height / 2, i = t.x - n, a = t.y - r;
695
692
  if (i === 0 && a === 0) return {
696
693
  x: n,
@@ -702,13 +699,13 @@ function _t(e, t) {
702
699
  y: r + a * c
703
700
  };
704
701
  }
705
- function vt(e) {
702
+ function _t(e) {
706
703
  return {
707
704
  x: e.x + e.width / 2,
708
705
  y: e.y + e.height / 2
709
706
  };
710
707
  }
711
- var yt = class {
708
+ var vt = class {
712
709
  canvas;
713
710
  elementFactory;
714
711
  factory;
@@ -755,7 +752,7 @@ var yt = class {
755
752
  });
756
753
  continue;
757
754
  }
758
- let s = [_t(e, vt(a)), _t(a, vt(e))], c = this.factory.createRelationship(r, e, a, s);
755
+ let s = [gt(e, _t(a)), gt(a, _t(e))], c = this.factory.createRelationship(r, e, a, s);
759
756
  this.canvas.addConnection(c, n);
760
757
  }
761
758
  for (let e of o.values()) this.canvas.addShape(e, n);
@@ -773,7 +770,7 @@ var yt = class {
773
770
  "waypoints" in t ? this.canvas.removeConnection(t.id) : this.canvas.removeShape(t.id);
774
771
  } catch {}
775
772
  }
776
- }, bt = class {
773
+ }, yt = class {
777
774
  elementRegistry;
778
775
  static $inject = ["elementRegistry"];
779
776
  constructor(e) {
@@ -827,22 +824,22 @@ var yt = class {
827
824
  ...e?.foreign
828
825
  };
829
826
  }
830
- }, xt = {
831
- cmImporter: ["type", yt],
832
- cmExporter: ["type", bt]
833
- }, St = class extends $e {
827
+ }, bt = {
828
+ cmImporter: ["type", vt],
829
+ cmExporter: ["type", yt]
830
+ }, xt = class extends Qe {
834
831
  _getModules() {
835
832
  return [
836
- it,
837
- gt,
838
- xt
833
+ rt,
834
+ ht,
835
+ bt
839
836
  ];
840
837
  }
841
- }, Ct = {
838
+ }, St = {
842
839
  x: 14,
843
840
  y: 18
844
- }, wt = 12;
845
- function Tt(e) {
841
+ }, Ct = 12;
842
+ function wt(e) {
846
843
  if (w(e)) {
847
844
  let t = [];
848
845
  return e.description && t.push(e.description), e.team && t.push(`Team: ${e.team}`), t.length === 0 ? null : {
@@ -859,7 +856,7 @@ function Tt(e) {
859
856
  }
860
857
  return null;
861
858
  }
862
- var Et = class {
859
+ var Tt = class {
863
860
  static $inject = ["eventBus", "canvas"];
864
861
  tooltip;
865
862
  title;
@@ -868,13 +865,13 @@ var Et = class {
868
865
  let n = t.getContainer();
869
866
  this.tooltip = document.createElement("div"), this.tooltip.className = "cm-hover-tooltip", this.tooltip.setAttribute("role", "tooltip"), this.tooltip.hidden = !0, this.title = document.createElement("strong"), this.body = document.createElement("span"), this.tooltip.append(this.title, this.body), n.append(this.tooltip);
870
867
  let r = (e) => {
871
- let t = n.getBoundingClientRect(), r = this.tooltip.offsetWidth, i = Math.min(e.clientX - t.left + Ct.x, t.width - r - wt);
872
- this.tooltip.style.left = `${Math.max(wt, i)}px`, this.tooltip.style.top = `${e.clientY - t.top + Ct.y}px`;
868
+ let t = n.getBoundingClientRect(), r = this.tooltip.offsetWidth, i = Math.min(e.clientX - t.left + St.x, t.width - r - Ct);
869
+ this.tooltip.style.left = `${Math.max(Ct, i)}px`, this.tooltip.style.top = `${e.clientY - t.top + St.y}px`;
873
870
  }, i = () => {
874
871
  this.tooltip.hidden = !0, n.removeEventListener("mousemove", r);
875
872
  };
876
873
  e.on("element.hover", (e) => {
877
- let t = Tt(e.element);
874
+ let t = wt(e.element);
878
875
  t ? (this.title.textContent = t.title, this.body.textContent = t.body, this.body.hidden = t.body === "", this.tooltip.hidden = !1, e.originalEvent && r(e.originalEvent), n.addEventListener("mousemove", r)) : i();
879
876
  }), e.on([
880
877
  "element.out",
@@ -885,51 +882,51 @@ var Et = class {
885
882
  i(), this.tooltip.remove();
886
883
  });
887
884
  }
888
- }, Dt = {
885
+ }, Et = {
889
886
  __init__: ["cmHoverTooltip"],
890
- cmHoverTooltip: ["type", Et]
891
- }, Ot = class extends St {
887
+ cmHoverTooltip: ["type", Tt]
888
+ }, Dt = class extends xt {
892
889
  _getModules() {
893
890
  return [
894
891
  ...super._getModules(),
895
892
  x,
896
893
  de,
897
894
  fe,
898
- Dt
895
+ Et
899
896
  ];
900
897
  }
901
898
  };
902
899
  //#endregion
903
900
  //#region src/modeling/cmd/UpdatePropertiesHandler.ts
904
- function kt(e, t, n) {
901
+ function Ot(e, t, n) {
905
902
  n === void 0 ? delete e[t] : e[t] = n;
906
903
  }
907
- var At = class {
904
+ var kt = class {
908
905
  execute(e) {
909
906
  let { element: t, properties: n } = e, r = t, i = {};
910
- for (let e of Object.keys(n)) i[e] = r[e], kt(r, e, n[e]);
907
+ for (let e of Object.keys(n)) i[e] = r[e], Ot(r, e, n[e]);
911
908
  return e.oldProperties = i, [t];
912
909
  }
913
910
  revert(e) {
914
911
  let { element: t, oldProperties: n } = e, r = t;
915
- if (n) for (let e of Object.keys(n)) kt(r, e, n[e]);
912
+ if (n) for (let e of Object.keys(n)) Ot(r, e, n[e]);
916
913
  return [t];
917
914
  }
918
915
  };
919
916
  //#endregion
920
917
  //#region src/modeling/cmd/SwapEndsHandler.ts
921
- function jt(e) {
918
+ function At(e) {
922
919
  let t = e.source;
923
920
  return e.source = e.target, e.target = t, Array.isArray(e.waypoints) && (e.waypoints = [...e.waypoints].reverse()), [e];
924
921
  }
925
- var Mt = class {
922
+ var jt = class {
926
923
  execute(e) {
927
- return jt(e.connection);
924
+ return At(e.connection);
928
925
  }
929
926
  revert(e) {
930
- return jt(e.connection);
927
+ return At(e.connection);
931
928
  }
932
- }, Nt = class {
929
+ }, Mt = class {
933
930
  elementRegistry;
934
931
  static $inject = ["elementRegistry"];
935
932
  constructor(e) {
@@ -954,7 +951,7 @@ var Mt = class {
954
951
  title: e.oldTitle ?? ""
955
952
  }, [];
956
953
  }
957
- }, Pt = "element.updateProperties", Ft = "relationship.swapEnds", It = "map.updateTitle", Lt = class {
954
+ }, Nt = "element.updateProperties", Pt = "relationship.swapEnds", Ft = "map.updateTitle", It = class {
958
955
  commandStack;
959
956
  elementRegistry;
960
957
  graphicsFactory;
@@ -964,20 +961,20 @@ var Mt = class {
964
961
  "graphicsFactory"
965
962
  ];
966
963
  constructor(e, t, n) {
967
- this.commandStack = e, this.elementRegistry = t, this.graphicsFactory = n, e.registerHandler(Pt, At), e.registerHandler(Ft, Mt), e.registerHandler(It, Nt);
964
+ this.commandStack = e, this.elementRegistry = t, this.graphicsFactory = n, e.registerHandler(Nt, kt), e.registerHandler(Pt, jt), e.registerHandler(Ft, Mt);
968
965
  }
969
966
  setTitle(e) {
970
- this.commandStack.execute(It, { title: e });
967
+ this.commandStack.execute(Ft, { title: e });
971
968
  }
972
969
  redraw(e) {
973
970
  let t = this.elementRegistry.getGraphics(e);
974
971
  t && this.graphicsFactory.update(T(e) ? "connection" : "shape", e, t);
975
972
  }
976
973
  swapEnds(e) {
977
- this.commandStack.execute(Ft, { connection: e }), this.redraw(e);
974
+ this.commandStack.execute(Pt, { connection: e }), this.redraw(e);
978
975
  }
979
976
  updateProperties(e, t) {
980
- this.commandStack.execute(Pt, {
977
+ this.commandStack.execute(Nt, {
981
978
  element: e,
982
979
  properties: t
983
980
  }), this.redraw(e);
@@ -1020,23 +1017,23 @@ var Mt = class {
1020
1017
  }
1021
1018
  }, P = {
1022
1019
  __init__: ["cmModeling"],
1023
- cmModeling: ["type", Lt],
1024
- layouter: ["type", rt]
1025
- }, Rt = class extends _e {
1020
+ cmModeling: ["type", It],
1021
+ layouter: ["type", nt]
1022
+ }, Lt = class extends _e {
1026
1023
  static $inject = ["eventBus"];
1027
1024
  constructor(e) {
1028
1025
  super(e);
1029
1026
  }
1030
1027
  init() {
1031
- this.addRule(["shape.move", "elements.move"], (e) => e.target && e.target.parent ? null : !0), this.addRule("shape.create", () => !0), this.addRule("shape.resize", () => !1), this.addRule("connection.create", (e) => Bt(e.source, e.target)), this.addRule("connection.reconnect", (e) => !!Bt(e.source, e.target, e.connection)), this.addRule("connection.updateWaypoints", () => !0);
1028
+ this.addRule(["shape.move", "elements.move"], (e) => e.target && e.target.parent ? null : !0), this.addRule("shape.create", () => !0), this.addRule("shape.resize", () => !1), this.addRule("connection.create", (e) => zt(e.source, e.target)), this.addRule("connection.reconnect", (e) => !!zt(e.source, e.target, e.connection)), this.addRule("connection.updateWaypoints", () => !0);
1032
1029
  }
1033
1030
  };
1034
- function zt(e, t, n) {
1031
+ function Rt(e, t, n) {
1035
1032
  let { incoming: r = [], outgoing: i = [] } = e;
1036
1033
  return [...r, ...i].some((r) => r !== n && (r.source === e && r.target === t || r.source === t && r.target === e));
1037
1034
  }
1038
- function Bt(e, t, n) {
1039
- return !w(e) || !w(t) || e === t || zt(e, t, n) ? !1 : {
1035
+ function zt(e, t, n) {
1036
+ return !w(e) || !w(t) || e === t || Rt(e, t, n) ? !1 : {
1040
1037
  cmKind: "relationship",
1041
1038
  pattern: "upstream-downstream"
1042
1039
  };
@@ -1046,8 +1043,8 @@ function Bt(e, t, n) {
1046
1043
  var F = {
1047
1044
  __depends__: [ge],
1048
1045
  __init__: ["cmRules"],
1049
- cmRules: ["type", Rt]
1050
- }, Vt = class extends ve {
1046
+ cmRules: ["type", Lt]
1047
+ }, Bt = class extends ve {
1051
1048
  static $inject = [
1052
1049
  "eventBus",
1053
1050
  "canvas",
@@ -1075,33 +1072,33 @@ var F = {
1075
1072
  }
1076
1073
  }, !0);
1077
1074
  }
1078
- }, Ht = "cm-dragging", Ut = class {
1075
+ }, Vt = "cm-dragging", Ht = class {
1079
1076
  static $inject = ["eventBus", "canvas"];
1080
1077
  constructor(e, t) {
1081
1078
  e.on("drag.init", () => {
1082
- t.getContainer().classList.add(Ht);
1079
+ t.getContainer().classList.add(Vt);
1083
1080
  }), e.on("drag.cleanup", () => {
1084
- t.getContainer().classList.remove(Ht);
1081
+ t.getContainer().classList.remove(Vt);
1085
1082
  });
1086
1083
  }
1087
- }, Wt = 2e3, Gt = {
1084
+ }, Ut = 2e3, Wt = {
1088
1085
  __init__: [
1089
1086
  "cmFlatModelBehavior",
1090
1087
  "cmDragBehavior",
1091
1088
  "cmClickSelectionBehavior"
1092
1089
  ],
1093
- cmFlatModelBehavior: ["type", Vt],
1094
- cmDragBehavior: ["type", Ut],
1090
+ cmFlatModelBehavior: ["type", Bt],
1091
+ cmDragBehavior: ["type", Ht],
1095
1092
  cmClickSelectionBehavior: ["type", class {
1096
1093
  static $inject = ["eventBus", "selection"];
1097
1094
  constructor(e, t) {
1098
- e.on("element.click", Wt, (e) => {
1095
+ e.on("element.click", Ut, (e) => {
1099
1096
  let n = e.element;
1100
1097
  if (C(n) && !ye(e) && t.isSelected(n)) return !1;
1101
1098
  });
1102
1099
  }
1103
1100
  }]
1104
- }, I = "cm.readOnly.changed", Kt = 5e3, qt = [
1101
+ }, I = "cm.readOnly.changed", Gt = 5e3, Kt = [
1105
1102
  "elements.move",
1106
1103
  "shape.move",
1107
1104
  "shape.resize",
@@ -1113,7 +1110,7 @@ var F = {
1113
1110
  "connection.reconnect",
1114
1111
  "connection.updateWaypoints",
1115
1112
  "elements.delete"
1116
- ], Jt = class extends _e {
1113
+ ], qt = class extends _e {
1117
1114
  bus;
1118
1115
  static $inject = ["eventBus"];
1119
1116
  readOnly = !1;
@@ -1121,7 +1118,7 @@ var F = {
1121
1118
  super(e), this.bus = e;
1122
1119
  }
1123
1120
  init() {
1124
- this.addRule(qt, Kt, () => !this.readOnly && void 0);
1121
+ this.addRule(Kt, Gt, () => !this.readOnly && void 0);
1125
1122
  }
1126
1123
  isReadOnly() {
1127
1124
  return this.readOnly;
@@ -1132,11 +1129,11 @@ var F = {
1132
1129
  }, L = {
1133
1130
  __depends__: [ge],
1134
1131
  __init__: ["cmReadOnly"],
1135
- cmReadOnly: ["type", Jt]
1136
- }, Yt = {
1132
+ cmReadOnly: ["type", qt]
1133
+ }, Jt = {
1137
1134
  name: "cm-direct-editing",
1138
1135
  team: "cm-direct-editing-team"
1139
- }, Xt = 10, Zt = 20, Qt = class {
1136
+ }, Yt = 10, Xt = 20, Zt = class {
1140
1137
  canvas;
1141
1138
  directEditing;
1142
1139
  modeling;
@@ -1164,7 +1161,7 @@ var F = {
1164
1161
  }), e.on("drag.init", () => n.complete()), e.on("canvas.viewbox.changed", () => this.placeOpenEdit()), e.on("directEditing.activate", (e) => {
1165
1162
  let n = e.active?.element;
1166
1163
  if (!n) return;
1167
- let r = Yt[this.mode];
1164
+ let r = Jt[this.mode];
1168
1165
  t.addMarker(n, r), this.activeMarker = {
1169
1166
  element: n,
1170
1167
  marker: r
@@ -1219,7 +1216,7 @@ var F = {
1219
1216
  let t = this.elementRegistry.get(e.elementId);
1220
1217
  if (!C(t) || e.mode === "team" && !w(t) || (this.mode = e.mode, !this.directEditing.activate(t))) return;
1221
1218
  let n = this.directEditing.$textbox?.querySelector("[contenteditable]");
1222
- n && (n.innerText = e.text, $t(n));
1219
+ n && (n.innerText = e.text, Qt(n));
1223
1220
  }
1224
1221
  activate(e) {
1225
1222
  this.mode = "name", this.directEditing.activate(e);
@@ -1243,10 +1240,10 @@ var F = {
1243
1240
  let r = e;
1244
1241
  return {
1245
1242
  bounds: {
1246
- x: n.x + Xt * t,
1243
+ x: n.x + Yt * t,
1247
1244
  y: n.y + n.height - 22 * t,
1248
1245
  width: n.width - 20 * t,
1249
- height: Zt * t
1246
+ height: Xt * t
1250
1247
  },
1251
1248
  text: r.team ?? "",
1252
1249
  style: {
@@ -1274,7 +1271,7 @@ var F = {
1274
1271
  let i = e.team ? 18 * t : 0;
1275
1272
  return {
1276
1273
  bounds: {
1277
- x: n.x + Xt * t,
1274
+ x: n.x + Yt * t,
1278
1275
  y: n.y + 36 * t - 1,
1279
1276
  width: n.width - 20 * t,
1280
1277
  height: n.height - 36 * t - i
@@ -1308,7 +1305,7 @@ var F = {
1308
1305
  } else n !== (e.cmLabel ?? "") && this.modeling.updateLabel(e, n);
1309
1306
  }
1310
1307
  };
1311
- function $t(e) {
1308
+ function Qt(e) {
1312
1309
  let t = document.createRange();
1313
1310
  t.selectNodeContents(e), t.collapse(!1);
1314
1311
  let n = window.getSelection();
@@ -1323,26 +1320,26 @@ var R = {
1323
1320
  L
1324
1321
  ],
1325
1322
  __init__: ["cmLabelEditing"],
1326
- cmLabelEditing: ["type", Qt]
1323
+ cmLabelEditing: ["type", Zt]
1327
1324
  };
1328
1325
  //#endregion
1329
1326
  //#region src/draw/palette-icons.ts
1330
1327
  function z(e, t = 24) {
1331
1328
  return `<svg class="cm-palette-svg" width="${t}" height="${t}" viewBox="0 0 26 26" aria-hidden="true">${e}</svg>`;
1332
1329
  }
1333
- var en = "M12 2l2.9 6.26L22 9.27l-5 4.87L18.18 22 12 18.56 5.82 22 7 14.14l-5-4.87 7.1-1.01z", tn = "M23 5.5V20c0 2.2-1.8 4-4 4h-7.3c-1.08 0-2.1-.43-2.85-1.19L1 14.83s1.26-1.23 1.3-1.25c.22-.19.49-.29.79-.29.22 0 .42.06.6.16.04.01 4.31 2.46 4.31 2.46V4c0-.83.67-1.5 1.5-1.5S11 3.17 11 4v7h1V1.5c0-.83.67-1.5 1.5-1.5S15 .67 15 1.5V11h1V2.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5V11h1V5.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5z";
1334
- function nn(e, t, n, r, i) {
1330
+ var $t = "M12 2l2.9 6.26L22 9.27l-5 4.87L18.18 22 12 18.56 5.82 22 7 14.14l-5-4.87 7.1-1.01z", en = "M23 5.5V20c0 2.2-1.8 4-4 4h-7.3c-1.08 0-2.1-.43-2.85-1.19L1 14.83s1.26-1.23 1.3-1.25c.22-.19.49-.29.79-.29.22 0 .42.06.6.16.04.01 4.31 2.46 4.31 2.46V4c0-.83.67-1.5 1.5-1.5S11 3.17 11 4v7h1V1.5c0-.83.67-1.5 1.5-1.5S15 .67 15 1.5V11h1V2.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5V11h1V5.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5z";
1331
+ function tn(e, t, n, r, i) {
1335
1332
  if (e === "generic") return `<circle cx="${t}" cy="${n}" r="${r / 2 - .5}" fill="none" stroke="${i}" stroke-width="1.4" stroke-dasharray="1.8 1.8"/>`;
1336
1333
  let a = r / 24, o = e === "supporting" ? " rotate(90 12 12)" : "", s = `translate(${t - 12 * a} ${n - 12 * a}) scale(${a})${o}`;
1337
- return `<path d="${e === "core" ? en : tn}" fill="${i}" transform="${s}"/>`;
1334
+ return `<path d="${e === "core" ? $t : en}" fill="${i}" transform="${s}"/>`;
1338
1335
  }
1339
1336
  function B(e) {
1340
1337
  let t = e ? p[e] : void 0;
1341
- return z(!e || !t ? `<rect x="2" y="4" width="22" height="18" rx="3.5" fill="${He}" stroke="${Ue}" stroke-width="1.5"/>` : `<rect x="2" y="4" width="22" height="18" rx="3.5" fill="${t.fill}" stroke="${t.stroke}" stroke-width="1.5"/>` + nn(e, 13, 13, 12, t.stroke));
1338
+ return z(!e || !t ? `<rect x="2" y="4" width="22" height="18" rx="3.5" fill="${Ve}" stroke="${He}" stroke-width="1.5"/>` : `<rect x="2" y="4" width="22" height="18" rx="3.5" fill="${t.fill}" stroke="${t.stroke}" stroke-width="1.5"/>` + tn(e, 13, 13, 12, t.stroke));
1342
1339
  }
1343
- function rn(e, t = 18) {
1340
+ function nn(e, t = 18) {
1344
1341
  let n = p[e], r = n?.stroke ?? "#8A8577";
1345
- return `<svg class="cm-palette-svg" width="${t}" height="${t}" viewBox="0 0 24 24" aria-hidden="true">${!n || e === "generic" ? `<circle cx="12" cy="12" r="9" fill="none" stroke="${r}" stroke-width="1.8" stroke-dasharray="2.4 2.4"/>` : `<path d="${e === "core" ? en : tn}" fill="${r}"/>`}</svg>`;
1342
+ return `<svg class="cm-palette-svg" width="${t}" height="${t}" viewBox="0 0 24 24" aria-hidden="true">${!n || e === "generic" ? `<circle cx="12" cy="12" r="9" fill="none" stroke="${r}" stroke-width="1.8" stroke-dasharray="2.4 2.4"/>` : `<path d="${e === "core" ? $t : en}" fill="${r}"/>`}</svg>`;
1346
1343
  }
1347
1344
  function V(e) {
1348
1345
  return z(`<rect x="1" y="6.5" width="24" height="13" rx="3" fill="${l[e] ?? "#8A8577"}"/><text x="13" y="16.4" text-anchor="middle" font-size="9.5" font-weight="700" fill="${u}" font-family="${O.family}">${e}</text>`);
@@ -1353,7 +1350,7 @@ function H(e = "upstream-downstream", t = 24) {
1353
1350
  }
1354
1351
  //#endregion
1355
1352
  //#region src/draw/lucide.ts
1356
- var an = {
1353
+ var rn = {
1357
1354
  "arrow-left-right": "<path d=\"M8 3 4 7l4 4\"/><path d=\"M4 7h16\"/><path d=\"m16 21 4-4-4-4\"/><path d=\"M20 17H4\"/>",
1358
1355
  "arrow-right": "<path d=\"M5 12h14\"/><path d=\"m12 5 7 7-7 7\"/>",
1359
1356
  "circle-x": "<circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"m15 9-6 6\"/><path d=\"m9 9 6 6\"/>",
@@ -1367,28 +1364,28 @@ var an = {
1367
1364
  users: "<path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"/><path d=\"M16 3.128a4 4 0 0 1 0 7.744\"/><path d=\"M22 21v-2a4 4 0 0 0-3-3.87\"/><circle cx=\"9\" cy=\"7\" r=\"4\"/>",
1368
1365
  x: "<path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/>"
1369
1366
  };
1370
- function on(e, t, n) {
1371
- return `<svg xmlns="http://www.w3.org/2000/svg" width="${t}" height="${t}" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="${n}" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false">${an[e]}</svg>`;
1367
+ function an(e, t, n) {
1368
+ return `<svg xmlns="http://www.w3.org/2000/svg" width="${t}" height="${t}" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="${n}" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false">${rn[e]}</svg>`;
1372
1369
  }
1373
1370
  function U(e) {
1374
- return on(e, 16, 2.5);
1371
+ return an(e, 16, 2.5);
1375
1372
  }
1376
- function sn(e) {
1377
- return on(e, 20, 2);
1373
+ function on(e) {
1374
+ return an(e, 20, 2);
1378
1375
  }
1379
1376
  //#endregion
1380
1377
  //#region src/palette/CmPaletteProvider.ts
1381
- var cn = "tools", ln = "cm-1-contexts", un = 24;
1382
- function dn(e, t) {
1378
+ var sn = "tools", cn = "cm-1-contexts", ln = 24;
1379
+ function un(e, t) {
1383
1380
  return `<div class="entry cm-palette-entry"${t ? " draggable=\"true\"" : ""}>${e}</div>`;
1384
1381
  }
1385
- function fn(e) {
1382
+ function dn(e) {
1386
1383
  return e.charAt(0) + e.slice(1).toLowerCase();
1387
1384
  }
1388
- function pn(e) {
1385
+ function fn(e) {
1389
1386
  return e.type === "click" && e.detail === 0;
1390
1387
  }
1391
- var mn = class {
1388
+ var pn = class {
1392
1389
  create;
1393
1390
  lassoTool;
1394
1391
  factory;
@@ -1418,20 +1415,20 @@ var mn = class {
1418
1415
  getPaletteEntries() {
1419
1416
  let e = {};
1420
1417
  e["lasso-tool"] = {
1421
- group: cn,
1418
+ group: sn,
1422
1419
  title: "Lasso",
1423
- html: dn(sn("square-dashed-mouse-pointer"), !1),
1420
+ html: un(on("square-dashed-mouse-pointer"), !1),
1424
1421
  action: { click: (e) => this.lassoTool.activateSelection(e) }
1425
1422
  };
1426
1423
  for (let t of n) {
1427
1424
  let n = (e) => {
1428
1425
  let n = this.factory.createNewContext(t.type, t.label);
1429
- pn(e) ? this.placeInFreeRect(n) : this.create.start(e, n);
1426
+ fn(e) ? this.placeInFreeRect(n) : this.create.start(e, n);
1430
1427
  };
1431
1428
  e[`context.${t.type}`] = {
1432
- group: ln,
1433
- title: fn(t.label),
1434
- html: dn(B(t.type), !0),
1429
+ group: cn,
1430
+ title: dn(t.label),
1431
+ html: un(B(t.type), !0),
1435
1432
  action: {
1436
1433
  dragstart: n,
1437
1434
  click: n
@@ -1449,7 +1446,7 @@ var mn = class {
1449
1446
  let n = t;
1450
1447
  return Math.abs(n.x + n.width / 2 - e.x) < 1 && Math.abs(n.y + n.height / 2 - e.y) < 1;
1451
1448
  });
1452
- for (; r(n);) n.x += un, n.y += un;
1449
+ for (; r(n);) n.x += ln, n.y += ln;
1453
1450
  let i = this.modeling.createShape(e, n, this.canvas.getRootElement());
1454
1451
  this.selection.select(i), this.canvas.focus(), this.labelEditing.activate(i);
1455
1452
  }
@@ -1465,7 +1462,7 @@ var mn = class {
1465
1462
  y: e.y + (t.top + r / 2) / e.scale
1466
1463
  };
1467
1464
  }
1468
- }, hn = {
1465
+ }, mn = {
1469
1466
  __depends__: [
1470
1467
  be,
1471
1468
  xe,
@@ -1477,25 +1474,25 @@ var mn = class {
1477
1474
  L
1478
1475
  ],
1479
1476
  __init__: ["cmPaletteProvider"],
1480
- cmPaletteProvider: ["type", mn]
1481
- }, W = "cm-subdomain-menu", gn = "cm-pattern-menu", G = "cm-roles-menu", K = "cm-popup-active", q = 8, _n = {
1477
+ cmPaletteProvider: ["type", pn]
1478
+ }, W = "cm-subdomain-menu", hn = "cm-pattern-menu", G = "cm-roles-menu", K = "cm-popup-active", q = 8, gn = {
1482
1479
  OHS: "Open Host Service is one-size-fits-all and not applicable in a customer-supplier relationship.",
1483
1480
  CF: "Conformist is not applicable in a customer-supplier relationship — a customer can negotiate."
1484
1481
  };
1485
- function vn(e) {
1482
+ function _n(e) {
1486
1483
  return e.replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
1487
1484
  }
1488
1485
  function J(e, t, n = {}) {
1489
- let r = n.draggable ? " draggable=\"true\"" : "", i = n.danger ? " cm-pad-entry--danger" : "", a = vn(t);
1486
+ let r = n.draggable ? " draggable=\"true\"" : "", i = n.danger ? " cm-pad-entry--danger" : "", a = _n(t);
1490
1487
  return `<div class="entry cm-pad-entry${i}"${r} title="${a}" aria-label="${a}">${e}</div>`;
1491
1488
  }
1492
- function yn(e, t) {
1489
+ function vn(e, t) {
1493
1490
  let n = t.getBoundingClientRect();
1494
1491
  e.style.left = `${n.right + q}px`, e.style.top = `${n.top}px`;
1495
1492
  let r = e.getBoundingClientRect();
1496
1493
  r.right > window.innerWidth - 8 && (e.style.left = `${Math.max(8, n.left - r.width - q)}px`), r.bottom > window.innerHeight - 8 && (e.style.top = `${Math.max(8, window.innerHeight - 8 - r.height)}px`);
1497
1494
  }
1498
- var bn = class {
1495
+ var yn = class {
1499
1496
  contextPad;
1500
1497
  popupMenu;
1501
1498
  eventBus;
@@ -1538,7 +1535,7 @@ var bn = class {
1538
1535
  }
1539
1536
  let r = f.get();
1540
1537
  r.length === 1 ? e.open(r[0], !0) : r.length > 1 && e.open(r, !0);
1541
- }), t.registerProvider(W, { getPopupMenuEntries: (e) => this.subdomainMenuEntries(e) }), t.registerProvider(gn, { getPopupMenuEntries: (e) => this.patternMenuEntries(e) }), t.registerProvider(G, { getPopupMenuEntries: (e) => this.rolesMenuEntries(e) }), n.on("autoPlace", (e) => {
1538
+ }), t.registerProvider(W, { getPopupMenuEntries: (e) => this.subdomainMenuEntries(e) }), t.registerProvider(hn, { getPopupMenuEntries: (e) => this.patternMenuEntries(e) }), t.registerProvider(G, { getPopupMenuEntries: (e) => this.rolesMenuEntries(e) }), n.on("autoPlace", (e) => {
1542
1539
  let { source: t, shape: n } = e, r = {
1543
1540
  x: ce(t).right + Oe + n.width / 2,
1544
1541
  y: _(t).y
@@ -1669,7 +1666,7 @@ var bn = class {
1669
1666
  let t = f[e.pattern], n = { pattern: {
1670
1667
  group: "edit",
1671
1668
  html: J(H(t?.pattern), `Change pattern — currently ${t?.label ?? e.pattern}`),
1672
- action: { click: (t) => this.openMenu(t, e, gn, "Relationship pattern") }
1669
+ action: { click: (t) => this.openMenu(t, e, hn, "Relationship pattern") }
1673
1670
  } };
1674
1671
  return t && !t.symmetric && (n.roles = {
1675
1672
  group: "edit",
@@ -1714,10 +1711,10 @@ var bn = class {
1714
1711
  let e = document.createElement("div");
1715
1712
  e.className = "cm-pad-prompt__hint", e.textContent = "Esc to cancel · ⌘/Ctrl+Enter to save", r.appendChild(e);
1716
1713
  }
1717
- this.canvas.getContainer().appendChild(r), yn(r, n), i.focus(), i instanceof HTMLTextAreaElement ? i.setSelectionRange(i.value.length, i.value.length) : i.select();
1714
+ this.canvas.getContainer().appendChild(r), vn(r, n), i.focus(), i instanceof HTMLTextAreaElement ? i.setSelectionRange(i.value.length, i.value.length) : i.select();
1718
1715
  let a = () => {
1719
1716
  this.scheduler.schedule(() => {
1720
- n.isConnected && yn(r, n);
1717
+ n.isConnected && vn(r, n);
1721
1718
  }, "cmContextPad#placePrompt");
1722
1719
  };
1723
1720
  this.eventBus.on("canvas.viewbox.changed", 200, a);
@@ -1804,7 +1801,7 @@ var bn = class {
1804
1801
  if (!t || t.symmetric) return {};
1805
1802
  let n = e.pattern === "customer-supplier", r = e.upstreamRoles ?? [], i = e.downstreamRoles ?? [], a = {};
1806
1803
  for (let t of m) {
1807
- let i = r.includes(t), o = n ? _n[t] : void 0, s = o !== void 0 && !i;
1804
+ let i = r.includes(t), o = n ? gn[t] : void 0, s = o !== void 0 && !i;
1808
1805
  a[`upstream-${t}`] = {
1809
1806
  label: h[t].label,
1810
1807
  description: o ? i ? `${o} Click to remove it.` : o : h[t].description,
@@ -1821,7 +1818,7 @@ var bn = class {
1821
1818
  };
1822
1819
  }
1823
1820
  for (let t of s) {
1824
- let r = i.includes(t), o = n ? _n[t] : void 0, s = o !== void 0 && !r;
1821
+ let r = i.includes(t), o = n ? gn[t] : void 0, s = o !== void 0 && !r;
1825
1822
  a[`downstream-${t}`] = {
1826
1823
  label: c[t].label,
1827
1824
  description: o ? r ? `${o} Click to remove it.` : o : c[t].description,
@@ -1839,7 +1836,7 @@ var bn = class {
1839
1836
  }
1840
1837
  return a;
1841
1838
  }
1842
- }, xn = {
1839
+ }, bn = {
1843
1840
  __depends__: [
1844
1841
  Te,
1845
1842
  Ee,
@@ -1854,20 +1851,20 @@ var bn = class {
1854
1851
  L
1855
1852
  ],
1856
1853
  __init__: ["cmContextPadProvider"],
1857
- cmContextPadProvider: ["type", bn]
1854
+ cmContextPadProvider: ["type", yn]
1858
1855
  };
1859
1856
  //#endregion
1860
1857
  //#region src/keyboard/CmKeyboard.ts
1861
- function Sn(e) {
1858
+ function xn(e) {
1862
1859
  let t = e;
1863
1860
  return t ? t.tagName === "INPUT" || t.tagName === "TEXTAREA" || t.tagName === "SELECT" || t.isContentEditable : !1;
1864
1861
  }
1865
- function Cn(e, t) {
1862
+ function Sn(e, t) {
1866
1863
  if (!(e instanceof Node) || e instanceof Element && e.closest(".djs-palette")) return !1;
1867
1864
  let n = t.ownerDocument;
1868
1865
  return t.contains(e) || e === n.body || e === n.documentElement;
1869
1866
  }
1870
- var wn = class {
1867
+ var Cn = class {
1871
1868
  static $inject = [
1872
1869
  "config.cmKeyboard",
1873
1870
  "canvas",
@@ -1880,7 +1877,7 @@ var wn = class {
1880
1877
  ];
1881
1878
  constructor(e, t, n, r, i, a, o, s) {
1882
1879
  let c = t.getContainer(), l = c.ownerDocument ?? document, u = e?.undoRedoKeys ?? !0, d = (e) => {
1883
- if (e.defaultPrevented || !Cn(e.target, c) || Sn(e.target)) return;
1880
+ if (e.defaultPrevented || !Sn(e.target, c) || xn(e.target)) return;
1884
1881
  let t = e.ctrlKey || e.metaKey, o = e.key.toLowerCase();
1885
1882
  if (t && o === "a" && !e.shiftKey && !e.altKey) {
1886
1883
  e.preventDefault(), r.select(a.filter((e) => C(e)));
@@ -1898,12 +1895,12 @@ var wn = class {
1898
1895
  };
1899
1896
  l.addEventListener("keydown", d), o.on("diagram.destroy", () => l.removeEventListener("keydown", d));
1900
1897
  }
1901
- }, Tn = {
1898
+ }, wn = {
1902
1899
  __depends__: [L],
1903
1900
  __init__: ["cmKeyboard"],
1904
- cmKeyboard: ["type", wn]
1905
- }, En = "cm-validation", Dn = 22, Y = 16, On = 44;
1906
- function kn(e) {
1901
+ cmKeyboard: ["type", Cn]
1902
+ }, Tn = "cm-validation", En = 22, Y = 16, Dn = 44;
1903
+ function On(e) {
1907
1904
  let t = e.some((e) => e.kind === "error"), n = document.createElement("div");
1908
1905
  n.className = "cm-validation-marker", n.dataset.severity = t ? "error" : "warning", n.innerHTML = U(t ? "circle-x" : "triangle-alert");
1909
1906
  let r = document.createElement("div");
@@ -1914,13 +1911,13 @@ function kn(e) {
1914
1911
  }
1915
1912
  return n.appendChild(r), n;
1916
1913
  }
1917
- function An(e, t, n) {
1914
+ function kn(e, t, n) {
1918
1915
  let r = t[0], i = t[t.length - 1], a = i.x - r.x, o = i.y - r.y, s = Math.hypot(a, o) || 1, c = a / s, l = o / s;
1919
1916
  if (n === "middle") return {
1920
1917
  x: (r.x + i.x) / 2 + -l * Y,
1921
1918
  y: (r.y + i.y) / 2 + c * Y
1922
1919
  };
1923
- let u = e.pattern === "customer-supplier", d = n === "upstream" ? at(r, i, u ? "S" : "U", e.upstreamRoles ?? []) : at(i, r, u ? "C" : "D", e.downstreamRoles ?? []);
1920
+ let u = e.pattern === "customer-supplier", d = n === "upstream" ? it(r, i, u ? "S" : "U", e.upstreamRoles ?? []) : it(i, r, u ? "C" : "D", e.downstreamRoles ?? []);
1924
1921
  if (d) {
1925
1922
  let e = {
1926
1923
  x: d.box.x + d.box.width,
@@ -1931,7 +1928,7 @@ function An(e, t, n) {
1931
1928
  y: e.y + 1
1932
1929
  };
1933
1930
  }
1934
- let f = Math.min(On, s * .35), p = n === "upstream" ? r.x + c * f : i.x - c * f, m = n === "upstream" ? r.y + l * f : i.y - l * f;
1931
+ let f = Math.min(Dn, s * .35), p = n === "upstream" ? r.x + c * f : i.x - c * f, m = n === "upstream" ? r.y + l * f : i.y - l * f;
1935
1932
  return {
1936
1933
  x: p + -l * Y,
1937
1934
  y: m + c * Y
@@ -1939,7 +1936,7 @@ function An(e, t, n) {
1939
1936
  }
1940
1937
  //#endregion
1941
1938
  //#region src/validation/index.ts
1942
- var jn = {
1939
+ var An = {
1943
1940
  __depends__: [je],
1944
1941
  __init__: ["cmValidationMarkers"],
1945
1942
  cmValidationMarkers: ["type", class {
@@ -1958,7 +1955,7 @@ var jn = {
1958
1955
  e.on("import.render.done", i), e.on("commandStack.changed", i);
1959
1956
  }
1960
1957
  refresh() {
1961
- this.overlays.remove({ type: En });
1958
+ this.overlays.remove({ type: Tn });
1962
1959
  let e = ae(this.exporter.export()), t = /* @__PURE__ */ new Map(), n = (e, n) => {
1963
1960
  for (let r of e) {
1964
1961
  if (!r.relationshipId) continue;
@@ -1978,13 +1975,13 @@ var jn = {
1978
1975
  if (!T(t)) continue;
1979
1976
  let r = t.waypoints ?? [];
1980
1977
  if (r.length < 2) continue;
1981
- let i = e.split(" ")[1], { x: a, y: o } = An(t, r, i), s = Math.min(...r.map((e) => e.x)), c = Math.min(...r.map((e) => e.y));
1982
- this.overlays.add(t, En, {
1978
+ let i = e.split(" ")[1], { x: a, y: o } = kn(t, r, i), s = Math.min(...r.map((e) => e.x)), c = Math.min(...r.map((e) => e.y));
1979
+ this.overlays.add(t, Tn, {
1983
1980
  position: {
1984
- left: a - s - Dn / 2,
1985
- top: o - c - Dn / 2
1981
+ left: a - s - En / 2,
1982
+ top: o - c - En / 2
1986
1983
  },
1987
- html: kn(n.findings)
1984
+ html: On(n.findings)
1988
1985
  });
1989
1986
  }
1990
1987
  }
@@ -1992,10 +1989,10 @@ var jn = {
1992
1989
  };
1993
1990
  //#endregion
1994
1991
  //#region src/zorder/CmZOrder.ts
1995
- function Mn(e) {
1992
+ function jn(e) {
1996
1993
  return +!T(e);
1997
1994
  }
1998
- var Nn = class {
1995
+ var Mn = class {
1999
1996
  canvas;
2000
1997
  elementRegistry;
2001
1998
  static $inject = [
@@ -2014,16 +2011,16 @@ var Nn = class {
2014
2011
  });
2015
2012
  }
2016
2013
  reorder() {
2017
- let e = this.elementRegistry.getAll().filter(C).sort((e, t) => Mn(e) - Mn(t));
2014
+ let e = this.elementRegistry.getAll().filter(C).sort((e, t) => jn(e) - jn(t));
2018
2015
  for (let t of e) {
2019
2016
  let e = this.canvas.getGraphics(t)?.parentNode, n = e?.parentNode;
2020
2017
  e && n && n.appendChild(e);
2021
2018
  }
2022
2019
  }
2023
- }, Pn = {
2020
+ }, Nn = {
2024
2021
  __init__: ["cmZOrder"],
2025
- cmZOrder: ["type", Nn]
2026
- }, Fn = class extends Ot {
2022
+ cmZOrder: ["type", Mn]
2023
+ }, Pn = class extends Dt {
2027
2024
  _getModules() {
2028
2025
  return [
2029
2026
  ...super._getModules(),
@@ -2034,13 +2031,13 @@ var Nn = class {
2034
2031
  L,
2035
2032
  P,
2036
2033
  F,
2037
- Gt,
2038
- hn,
2039
- xn,
2034
+ Wt,
2035
+ mn,
2036
+ bn,
2040
2037
  R,
2041
- Tn,
2042
- jn,
2043
- Pn
2038
+ wn,
2039
+ An,
2040
+ Nn
2044
2041
  ];
2045
2042
  }
2046
2043
  undo() {
@@ -2055,17 +2052,17 @@ var Nn = class {
2055
2052
  canRedo() {
2056
2053
  return this.get("commandStack").canRedo();
2057
2054
  }
2058
- }, In = "context-maps";
2059
- function Ln(e = {}) {
2060
- return Bn(new Fn({
2061
- ...zn(e),
2055
+ }, Fn = "context-maps";
2056
+ function In(e = {}) {
2057
+ return zn(new Pn({
2058
+ ...Rn(e),
2062
2059
  undoRedoKeys: e.undoRedoKeys ?? !0
2063
2060
  }), !0);
2064
2061
  }
2065
- function Rn(e = {}) {
2066
- return Bn(new Ot(zn(e)), !1);
2062
+ function Ln(e = {}) {
2063
+ return zn(new Dt(Rn(e)), !1);
2067
2064
  }
2068
- function zn(e) {
2065
+ function Rn(e) {
2069
2066
  return {
2070
2067
  width: "100%",
2071
2068
  height: "100%",
@@ -2075,9 +2072,9 @@ function zn(e) {
2075
2072
  fitOnImport: e.fitOnImport
2076
2073
  };
2077
2074
  }
2078
- function Bn(e, t) {
2075
+ function zn(e, t) {
2079
2076
  let n = e.get("eventBus"), r = e.get("canvas"), i = e.get("elementRegistry"), a = e.get("selection"), o = /* @__PURE__ */ new Set(), s = !1, c = "", l = {
2080
- notation: In,
2077
+ notation: Fn,
2081
2078
  apiVersion: Me,
2082
2079
  editable: t
2083
2080
  };
@@ -2086,20 +2083,20 @@ function Bn(e, t) {
2086
2083
  }), {
2087
2084
  meta: l,
2088
2085
  elements: {
2089
- list: () => s ? [] : i.getAll().filter(C).map(Un),
2086
+ list: () => s ? [] : i.getAll().filter(C).map(Hn),
2090
2087
  bounds(e) {
2091
2088
  if (s) return;
2092
2089
  let t = i.get(e);
2093
- return C(t) ? Hn(t) : void 0;
2090
+ return C(t) ? Vn(t) : void 0;
2094
2091
  },
2095
2092
  reveal(e) {
2096
2093
  if (s) return !1;
2097
2094
  let t = i.get(e);
2098
2095
  return C(t) ? (a.select(t), r.scrollToElement(t), !0) : !1;
2099
2096
  },
2100
- selection: () => s ? [] : Vn(a.get()),
2097
+ selection: () => s ? [] : Bn(a.get()),
2101
2098
  onSelection(e) {
2102
- let t = (t) => e(Vn(t.newSelection ?? []));
2099
+ let t = (t) => e(Bn(t.newSelection ?? []));
2103
2100
  return n.on("selection.changed", t), () => n.off("selection.changed", t);
2104
2101
  }
2105
2102
  },
@@ -2126,13 +2123,13 @@ function Bn(e, t) {
2126
2123
  width: n,
2127
2124
  height: i
2128
2125
  };
2129
- return Wn(a) ? a : void 0;
2126
+ return Un(a) ? a : void 0;
2130
2127
  } catch {
2131
2128
  return;
2132
2129
  }
2133
2130
  },
2134
2131
  setViewState(e) {
2135
- !s && Wn(e) && r.viewbox({
2132
+ !s && Un(e) && r.viewbox({
2136
2133
  x: e.x,
2137
2134
  y: e.y,
2138
2135
  width: e.width,
@@ -2152,10 +2149,10 @@ function Bn(e, t) {
2152
2149
  }
2153
2150
  };
2154
2151
  }
2155
- function Vn(e) {
2152
+ function Bn(e) {
2156
2153
  return e.filter(C).map((e) => e.id);
2157
2154
  }
2158
- function Hn(e) {
2155
+ function Vn(e) {
2159
2156
  let { x: t, y: n, width: r, height: i } = Ne(e);
2160
2157
  return {
2161
2158
  x: t,
@@ -2164,13 +2161,13 @@ function Hn(e) {
2164
2161
  height: i
2165
2162
  };
2166
2163
  }
2167
- function Un(e) {
2164
+ function Hn(e) {
2168
2165
  return e.cmLabel ? {
2169
2166
  id: e.id,
2170
2167
  name: e.cmLabel
2171
2168
  } : { id: e.id };
2172
2169
  }
2173
- function Wn(e) {
2170
+ function Un(e) {
2174
2171
  if (typeof e != "object" || !e) return !1;
2175
2172
  let { x: t, y: n, width: r, height: i } = e;
2176
2173
  return X(t) && X(n) && X(r) && X(i) && r > 0 && i > 0;
@@ -2180,7 +2177,7 @@ function X(e) {
2180
2177
  }
2181
2178
  //#endregion
2182
2179
  //#region src/connect-handles/CmConnectHandles.ts
2183
- var Gn = "cm-connect-handle", Kn = 28, qn = 12, Jn = [
2180
+ var Wn = "cm-connect-handle", Gn = 28, Kn = 12, qn = [
2184
2181
  {
2185
2182
  side: "top",
2186
2183
  rotationDeg: -90
@@ -2198,15 +2195,15 @@ var Gn = "cm-connect-handle", Kn = 28, qn = 12, Jn = [
2198
2195
  rotationDeg: 180
2199
2196
  }
2200
2197
  ];
2201
- function Yn(e, t) {
2202
- let n = t.width / 2 - Kn / 2, r = t.height / 2 - Kn / 2;
2198
+ function Jn(e, t) {
2199
+ let n = t.width / 2 - Gn / 2, r = t.height / 2 - Gn / 2;
2203
2200
  switch (e) {
2204
2201
  case "top": return {
2205
2202
  top: -40,
2206
2203
  left: n
2207
2204
  };
2208
2205
  case "bottom": return {
2209
- top: t.height + qn,
2206
+ top: t.height + Kn,
2210
2207
  left: n
2211
2208
  };
2212
2209
  case "left": return {
@@ -2215,11 +2212,11 @@ function Yn(e, t) {
2215
2212
  };
2216
2213
  case "right": return {
2217
2214
  top: r,
2218
- left: t.width + qn
2215
+ left: t.width + Kn
2219
2216
  };
2220
2217
  }
2221
2218
  }
2222
- var Xn = class {
2219
+ var Yn = class {
2223
2220
  eventBus;
2224
2221
  selection;
2225
2222
  overlays;
@@ -2239,13 +2236,13 @@ var Xn = class {
2239
2236
  e.on("selection.changed", o), e.on("commandStack.changed", o), e.on(I, o);
2240
2237
  }
2241
2238
  refresh() {
2242
- if (this.overlays.remove({ type: Gn }), this.readOnly.isReadOnly()) return;
2239
+ if (this.overlays.remove({ type: Wn }), this.readOnly.isReadOnly()) return;
2243
2240
  let e = this.selection.get();
2244
2241
  if (e.length !== 1) return;
2245
2242
  let t = e[0];
2246
2243
  if (!w(t)) return;
2247
2244
  let n = t;
2248
- for (let { side: e, rotationDeg: r } of Jn) {
2245
+ for (let { side: e, rotationDeg: r } of qn) {
2249
2246
  let i = document.createElement("div");
2250
2247
  i.className = "cm-connect-handle", i.dataset.side = e, i.title = "Connect to another context", i.setAttribute("aria-label", "Connect to another context");
2251
2248
  let a = document.createElement("span");
@@ -2263,13 +2260,13 @@ var Xn = class {
2263
2260
  }), this.eventBus.once("connect.cleanup", 250, () => {
2264
2261
  this.selection.get().length === 0 && this.selection.select(t);
2265
2262
  }));
2266
- }), this.overlays.add(t, Gn, {
2267
- position: Yn(e, n),
2263
+ }), this.overlays.add(t, Wn, {
2264
+ position: Jn(e, n),
2268
2265
  html: i
2269
2266
  });
2270
2267
  }
2271
2268
  }
2272
- }, Zn = {
2269
+ }, Xn = {
2273
2270
  __depends__: [
2274
2271
  Se,
2275
2272
  je,
@@ -2277,8 +2274,8 @@ var Xn = class {
2277
2274
  L
2278
2275
  ],
2279
2276
  __init__: ["cmConnectHandles"],
2280
- cmConnectHandles: ["type", Xn]
2281
- }, Qn = [
2277
+ cmConnectHandles: ["type", Yn]
2278
+ }, Zn = [
2282
2279
  {
2283
2280
  token: "OHS",
2284
2281
  ...h.OHS
@@ -2296,7 +2293,7 @@ var Xn = class {
2296
2293
  ...c.CF
2297
2294
  }
2298
2295
  ];
2299
- function $n() {
2296
+ function Qn() {
2300
2297
  return [
2301
2298
  {
2302
2299
  label: "Subdomain types",
@@ -2308,7 +2305,7 @@ function $n() {
2308
2305
  },
2309
2306
  {
2310
2307
  label: "Integration roles",
2311
- rows: Qn.map((e) => ({
2308
+ rows: Zn.map((e) => ({
2312
2309
  preview: V(e.token),
2313
2310
  label: `${e.token} · ${e.label}`,
2314
2311
  explanation: e.description
@@ -2324,9 +2321,9 @@ function $n() {
2324
2321
  }
2325
2322
  ];
2326
2323
  }
2327
- function er(e, t = {}) {
2324
+ function $n(e, t = {}) {
2328
2325
  let n = [];
2329
- return $n().forEach((r, i) => {
2326
+ return Qn().forEach((r, i) => {
2330
2327
  if (i > 0) {
2331
2328
  let t = document.createElement("div");
2332
2329
  t.className = "cd-shell-legend-separator", t.setAttribute("role", "separator"), e.append(t);
@@ -2353,7 +2350,7 @@ function er(e, t = {}) {
2353
2350
  }
2354
2351
  //#endregion
2355
2352
  //#region src/legend/CmLegend.ts
2356
- function tr(e) {
2353
+ function er(e) {
2357
2354
  let t = document.createElement("div");
2358
2355
  t.className = "cm-legend__row cm-legend-item";
2359
2356
  let n = document.createElement("span");
@@ -2366,41 +2363,26 @@ function tr(e) {
2366
2363
  i.style.left = `${e.right + 10}px`, i.style.top = `${e.top + e.height / 2}px`;
2367
2364
  }), t.append(n, r, i), t;
2368
2365
  }
2369
- function nr(e, t) {
2366
+ function tr(e, t) {
2370
2367
  let n = document.createElement("div");
2371
2368
  return n.className = "cm-legend__group", n.setAttribute("role", "group"), n.setAttribute("aria-label", e), n.append(...t), n;
2372
2369
  }
2373
- function rr() {
2370
+ function nr() {
2374
2371
  let e = document.createElement("div");
2375
2372
  return e.className = "cm-legend__divider", e;
2376
2373
  }
2377
- function ir(e, t) {
2378
- return e > ze.width && t > ze.height;
2379
- }
2380
- var ar = class {
2381
- canvas;
2374
+ var rr = class {
2382
2375
  static $inject = ["canvas", "eventBus"];
2383
2376
  openState = !1;
2384
- started = !1;
2385
2377
  host;
2386
2378
  constructor(e, t) {
2387
- this.canvas = e, this.host = document.createElement("div"), e.getContainer().appendChild(this.host), this.startFromContainerSize(), this.render(), t.on(["canvas.resized", "import.done"], () => {
2388
- this.startFromContainerSize() && this.render();
2389
- }), t.on("diagram.destroy", () => this.host.remove());
2379
+ this.host = document.createElement("div"), e.getContainer().appendChild(this.host), this.render(), t.on("diagram.destroy", () => this.host.remove());
2390
2380
  }
2391
2381
  isOpen() {
2392
2382
  return this.openState;
2393
2383
  }
2394
2384
  setOpen(e) {
2395
- this.started = !0, this.openState !== e && (this.openState = e, this.render());
2396
- }
2397
- startFromContainerSize() {
2398
- if (this.started) return !1;
2399
- let { width: e, height: t } = this.canvas.getSize();
2400
- if (!(e > 0 && t > 0)) return !1;
2401
- this.started = !0;
2402
- let n = ir(e, t);
2403
- return n !== this.openState && (this.openState = n, !0);
2385
+ this.openState !== e && (this.openState = e, this.render());
2404
2386
  }
2405
2387
  toggle() {
2406
2388
  this.setOpen(!this.openState);
@@ -2418,17 +2400,17 @@ var ar = class {
2418
2400
  n.textContent = "Legend";
2419
2401
  let r = document.createElement("button");
2420
2402
  r.type = "button", r.className = "cm-legend__close", r.setAttribute("aria-expanded", "true"), r.setAttribute("aria-label", "Close legend"), r.innerHTML = U("x"), r.addEventListener("click", () => this.toggle()), t.append(n, r);
2421
- let i = $n().map((e) => nr(e.label, e.rows.map(tr))), a = document.createElement("div");
2422
- return a.className = "cm-legend__body", i.forEach((e, t) => a.append(...t > 0 ? [rr()] : [], e)), e.append(t, a), e;
2403
+ let i = Qn().map((e) => tr(e.label, e.rows.map(er))), a = document.createElement("div");
2404
+ return a.className = "cm-legend__body", i.forEach((e, t) => a.append(...t > 0 ? [nr()] : [], e)), e.append(t, a), e;
2423
2405
  }
2424
2406
  collapsedButton() {
2425
2407
  let e = document.createElement("button");
2426
2408
  return e.type = "button", e.className = "cm-legend-toggle", e.setAttribute("aria-expanded", "false"), e.setAttribute("aria-label", "Show legend"), e.textContent = "Legend", e.addEventListener("click", () => this.toggle()), e;
2427
2409
  }
2428
- }, or = {
2410
+ }, ir = {
2429
2411
  __init__: ["cmLegend"],
2430
- cmLegend: ["type", ar]
2431
- }, sr = "Export as JSON";
2412
+ cmLegend: ["type", rr]
2413
+ }, ar = "Export as JSON";
2432
2414
  function Z(e, t, n, r) {
2433
2415
  return {
2434
2416
  kind: "action",
@@ -2439,7 +2421,7 @@ function Z(e, t, n, r) {
2439
2421
  onSelect: () => n.onSelect()
2440
2422
  };
2441
2423
  }
2442
- function cr(e) {
2424
+ function or(e) {
2443
2425
  let { editTitle: t } = e;
2444
2426
  return {
2445
2427
  model: t ? [{
@@ -2451,7 +2433,7 @@ function cr(e) {
2451
2433
  export: [
2452
2434
  Z("export-png", "Export as PNG", e.exports.png, "file-image"),
2453
2435
  Z("export-svg", "Export as SVG", e.exports.svg, "file-code-corner"),
2454
- Z("export-json", sr, e.exports.json),
2436
+ Z("export-json", ar, e.exports.json),
2455
2437
  Z("export-cml", "Export as CML", e.exports.cml)
2456
2438
  ],
2457
2439
  help: [{
@@ -2465,17 +2447,17 @@ function cr(e) {
2465
2447
  }
2466
2448
  //#endregion
2467
2449
  //#region src/chrome/shortcuts.ts
2468
- function lr(e, t, n) {
2450
+ function sr(e, t, n) {
2469
2451
  return t === "mac" ? `⌘${e}` : `${n.ctrl}+${e}`;
2470
2452
  }
2471
- function ur(e) {
2453
+ function cr(e) {
2472
2454
  try {
2473
2455
  return new Intl.NumberFormat(e, { style: "percent" }).format(1);
2474
2456
  } catch {
2475
2457
  return new Intl.NumberFormat("en", { style: "percent" }).format(1);
2476
2458
  }
2477
2459
  }
2478
- function dr(e, t) {
2460
+ function lr(e, t) {
2479
2461
  if (e === "mac") return {
2480
2462
  zoomIn: "⌘+",
2481
2463
  zoomOut: "⌘−",
@@ -2490,7 +2472,7 @@ function dr(e, t) {
2490
2472
  fit: `${r}+1`
2491
2473
  };
2492
2474
  }
2493
- function fr(e, t) {
2475
+ function ur(e, t) {
2494
2476
  if (e === "mac") return {
2495
2477
  undo: ["⌘Z"],
2496
2478
  redo: ["⌘⇧Z"],
@@ -2509,23 +2491,23 @@ function fr(e, t) {
2509
2491
  lassoDrag: [`${r}+Drag`]
2510
2492
  };
2511
2493
  }
2512
- function pr(e) {
2494
+ function dr(e) {
2513
2495
  let { platform: t, messages: n } = e;
2514
2496
  return {
2515
2497
  title: "File",
2516
2498
  rows: [{
2517
2499
  action: n.openFile ?? "Open…",
2518
- keys: [lr("O", t, n.keyNames)]
2500
+ keys: [sr("O", t, n.keyNames)]
2519
2501
  }, {
2520
- action: sr,
2521
- keys: [lr("S", t, n.keyNames)]
2502
+ action: ar,
2503
+ keys: [sr("S", t, n.keyNames)]
2522
2504
  }]
2523
2505
  };
2524
2506
  }
2525
- function mr(e, t = {}) {
2526
- let { platform: n, messages: r } = e, i = dr(n, r.keyNames), a = fr(n, r.keyNames);
2507
+ function fr(e, t = {}) {
2508
+ let { platform: n, messages: r } = e, i = lr(n, r.keyNames), a = ur(n, r.keyNames);
2527
2509
  return [
2528
- ...t.fileKeys ? [pr(e)] : [],
2510
+ ...t.fileKeys ? [dr(e)] : [],
2529
2511
  {
2530
2512
  title: "View",
2531
2513
  rows: [
@@ -2538,7 +2520,7 @@ function mr(e, t = {}) {
2538
2520
  keys: [i.zoomOut]
2539
2521
  },
2540
2522
  {
2541
- action: r.zoomToActual(ur(e.lang)),
2523
+ action: r.zoomToActual(cr(e.lang)),
2542
2524
  keys: [i.zoomToActual]
2543
2525
  },
2544
2526
  {
@@ -2602,19 +2584,19 @@ function Q(e, t, n) {
2602
2584
  let r = document.createElement(e);
2603
2585
  return r.className = t, n !== void 0 && (r.textContent = n), r;
2604
2586
  }
2605
- function hr(e, t, n) {
2587
+ function pr(e, t, n) {
2606
2588
  let r = Q("header", "cm-dialog-header"), i = Q("h3", "cm-dialog-title", t.title);
2607
2589
  i.id = t.titleId;
2608
2590
  let a = Q("button", "cm-dialog-close");
2609
2591
  return a.type = "button", a.setAttribute("aria-label", e.messages.close), a.innerHTML = U("x"), a.addEventListener("click", n), r.append(i, a), r;
2610
2592
  }
2611
- function gr(e, t) {
2593
+ function mr(e, t) {
2612
2594
  let n;
2613
2595
  function r() {
2614
2596
  let n = Q("dialog", `cm-dialog ${t.className}`);
2615
2597
  n.setAttribute("aria-labelledby", t.titleId);
2616
2598
  let r = () => n.close(), i = Q("div", "cm-dialog-panel");
2617
- return i.append(hr(e, t, r), ...t.content(r)), n.append(i), n.addEventListener("click", (e) => {
2599
+ return i.append(pr(e, t, r), ...t.content(r)), n.append(i), n.addEventListener("click", (e) => {
2618
2600
  e.target === n && n.close();
2619
2601
  }), n.addEventListener("close", () => {
2620
2602
  e.menu.trigger.hidden || e.menu.trigger.focus({ preventScroll: !0 });
@@ -2635,9 +2617,9 @@ function gr(e, t) {
2635
2617
  }
2636
2618
  //#endregion
2637
2619
  //#region src/chrome/ShortcutsDialog.ts
2638
- var $ = "cm-shortcuts", _r = "cm-shortcuts-title";
2639
- function vr(e, t) {
2640
- let n = Q("section", `${$}-group`), r = `${_r}-group-${t}`, i = Q("h4", `${$}-group-title`, e.title);
2620
+ var $ = "cm-shortcuts", hr = "cm-shortcuts-title";
2621
+ function gr(e, t) {
2622
+ let n = Q("section", `${$}-group`), r = `${hr}-group-${t}`, i = Q("h4", `${$}-group-title`, e.title);
2641
2623
  i.id = r;
2642
2624
  let a = Q("table", `${$}-table`);
2643
2625
  a.setAttribute("aria-labelledby", r);
@@ -2651,29 +2633,29 @@ function vr(e, t) {
2651
2633
  }
2652
2634
  return n.append(i, a), n;
2653
2635
  }
2654
- function yr(e, t = {}) {
2655
- return gr(e, {
2636
+ function _r(e, t = {}) {
2637
+ return mr(e, {
2656
2638
  className: $,
2657
- titleId: _r,
2639
+ titleId: hr,
2658
2640
  title: "Keyboard shortcuts",
2659
2641
  content() {
2660
2642
  let n = Q("div", "cm-dialog-body cm-shortcuts-body");
2661
- return n.append(...mr(e, t).map(vr)), [n];
2643
+ return n.append(...fr(e, t).map(gr)), [n];
2662
2644
  }
2663
2645
  });
2664
2646
  }
2665
2647
  //#endregion
2666
2648
  //#region src/chrome/TitleDialog.ts
2667
- var br = "cm-title-dialog", xr = "cm-title-dialog-title", Sr = "cm-title-dialog-field";
2668
- function Cr(e, t) {
2649
+ var vr = "cm-title-dialog", yr = "cm-title-dialog-title", br = "cm-title-dialog-field";
2650
+ function xr(e, t) {
2669
2651
  let n = Q("button", "cm-dialog-button", e);
2670
2652
  return n.type = t === "primary" ? "submit" : "button", n.dataset.variant = t, n;
2671
2653
  }
2672
- function wr(e, t) {
2654
+ function Sr(e, t) {
2673
2655
  let n = Q("input", "cm-dialog-input");
2674
- return n.id = Sr, n.type = "text", n.autocomplete = "off", n.spellcheck = !1, n.autofocus = !0, gr(e, {
2675
- className: br,
2676
- titleId: xr,
2656
+ return n.id = br, n.type = "text", n.autocomplete = "off", n.spellcheck = !1, n.autofocus = !0, mr(e, {
2657
+ className: vr,
2658
+ titleId: yr,
2677
2659
  title: "Map title",
2678
2660
  beforeOpen() {
2679
2661
  n.value = t.title();
@@ -2685,9 +2667,9 @@ function wr(e, t) {
2685
2667
  let r = Q("form", "cm-dialog-form");
2686
2668
  r.noValidate = !0;
2687
2669
  let i = Q("div", "cm-dialog-body"), a = Q("label", "cm-dialog-label", "Title");
2688
- a.htmlFor = Sr, i.append(a, n);
2689
- let o = Q("div", "cm-dialog-footer"), s = Cr("Cancel", "secondary");
2690
- return s.addEventListener("click", e), o.append(s, Cr("Apply", "primary")), r.append(i, o), r.addEventListener("submit", (r) => {
2670
+ a.htmlFor = br, i.append(a, n);
2671
+ let o = Q("div", "cm-dialog-footer"), s = xr("Cancel", "secondary");
2672
+ return s.addEventListener("click", e), o.append(s, xr("Apply", "primary")), r.append(i, o), r.addEventListener("submit", (r) => {
2691
2673
  r.preventDefault();
2692
2674
  let i = n.value.trim();
2693
2675
  e(), i !== t.title() && t.setTitle(i);
@@ -2696,6 +2678,6 @@ function wr(e, t) {
2696
2678
  });
2697
2679
  }
2698
2680
  //#endregion
2699
- export { Re as CD_TOKENS, In as CONTEXT_MAPS_NOTATION, $e as CmBaseViewer, Xn as CmConnectHandles, bn as CmContextPadProvider, tt as CmElementFactory, bt as CmExporter, Vt as CmFlatModelBehavior, Et as CmHoverTooltip, yt as CmImporter, wn as CmKeyboard, Qt as CmLabelEditing, ar as CmLegend, Lt as CmModeling, mn as CmPaletteProvider, Jt as CmReadOnly, Rt as CmRules, Nn as CmZOrder, ot as ContextMapsRenderer, sr as JSON_EXPORT_LABEL, E as MIRAGON, Fn as Modeler, Ot as NavigatedViewer, I as READ_ONLY_CHANGED_EVENT, N as ROOT_ID, St as Viewer, Gt as cmBehaviorsModule, Zn as cmConnectHandlesModule, xn as cmContextPadModule, gt as cmDrawModule, Dt as cmHoverTooltipModule, Tn as cmKeyboardModule, R as cmLabelEditingModule, or as cmLegendModule, it as cmModelModule, P as cmModelingModule, hn as cmPaletteModule, L as cmReadOnlyModule, F as cmRulesModule, Pn as cmZOrderModule, B as contextIconSvg, cr as contextMapMenu, mr as contextMapShortcuts, Ln as createCollaborativeModeler, Rn as createCollaborativeViewer, yr as createShortcutsDialog, wr as createTitleDialog, Tt as hoverTipFor, xt as ioModule, w as isCmContext, C as isCmElement, T as isCmRelationship, $n as legendGroups, H as relationshipIconSvg, er as renderLegend, V as roleChipSvg, Le as saveSVG, rn as subdomainIconSvg };
2681
+ export { Re as CD_TOKENS, Fn as CONTEXT_MAPS_NOTATION, Qe as CmBaseViewer, Yn as CmConnectHandles, yn as CmContextPadProvider, et as CmElementFactory, yt as CmExporter, Bt as CmFlatModelBehavior, Tt as CmHoverTooltip, vt as CmImporter, Cn as CmKeyboard, Zt as CmLabelEditing, rr as CmLegend, It as CmModeling, pn as CmPaletteProvider, qt as CmReadOnly, Lt as CmRules, Mn as CmZOrder, at as ContextMapsRenderer, ar as JSON_EXPORT_LABEL, E as MIRAGON, Pn as Modeler, Dt as NavigatedViewer, I as READ_ONLY_CHANGED_EVENT, N as ROOT_ID, xt as Viewer, Wt as cmBehaviorsModule, Xn as cmConnectHandlesModule, bn as cmContextPadModule, ht as cmDrawModule, Et as cmHoverTooltipModule, wn as cmKeyboardModule, R as cmLabelEditingModule, ir as cmLegendModule, rt as cmModelModule, P as cmModelingModule, mn as cmPaletteModule, L as cmReadOnlyModule, F as cmRulesModule, Nn as cmZOrderModule, B as contextIconSvg, or as contextMapMenu, fr as contextMapShortcuts, In as createCollaborativeModeler, Ln as createCollaborativeViewer, _r as createShortcutsDialog, Sr as createTitleDialog, wt as hoverTipFor, bt as ioModule, w as isCmContext, C as isCmElement, T as isCmRelationship, Qn as legendGroups, H as relationshipIconSvg, $n as renderLegend, V as roleChipSvg, Le as saveSVG, nn as subdomainIconSvg };
2700
2682
 
2701
2683
  //# sourceMappingURL=index.js.map