@miragon/wardley-renderer 0.3.0 → 0.5.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/README.md +4 -3
- package/dist/draw/styles.d.ts +46 -42
- package/dist/draw/styles.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +422 -404
- package/dist/index.js.map +1 -1
- package/dist/label-editing/WardleyLabelEditing.d.ts.map +1 -1
- package/dist/theme/index.d.ts +2 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/palette.d.ts +55 -0
- package/dist/theme/palette.d.ts.map +1 -0
- package/dist/wardley.css +1 -1
- package/package.json +7 -7
package/dist/index.js
CHANGED
|
@@ -23,8 +23,26 @@ import _e from "diagram-js/lib/features/lasso-tool";
|
|
|
23
23
|
import ve from "diagram-js/lib/features/rules/RuleProvider";
|
|
24
24
|
import ye from "diagram-js/lib/features/connection-preview";
|
|
25
25
|
import be from "diagram-js/lib/features/ordering/OrderingProvider";
|
|
26
|
-
//#region src/
|
|
26
|
+
//#region src/theme/palette.ts
|
|
27
27
|
var m = {
|
|
28
|
+
blau: "#335DE5",
|
|
29
|
+
blauLink: "#2B50D4",
|
|
30
|
+
blauHell: "#6B8AFF",
|
|
31
|
+
gruen: "#00E676",
|
|
32
|
+
grau: "#F9F7F7",
|
|
33
|
+
schwarz: "#1D1D1D",
|
|
34
|
+
weiss: "#FFFFFF",
|
|
35
|
+
success: "#0B7A55",
|
|
36
|
+
warning: "#92610A",
|
|
37
|
+
danger: "#C92A2A",
|
|
38
|
+
info: "#2B50D4",
|
|
39
|
+
navy: "#080A20",
|
|
40
|
+
gradientBrand: "linear-gradient(120deg, #335DE5 30%, #00E676)"
|
|
41
|
+
};
|
|
42
|
+
m.grau, m.schwarz, m.weiss, m.blau, m.gruen, m.danger, m.navy;
|
|
43
|
+
//#endregion
|
|
44
|
+
//#region src/draw/styles.ts
|
|
45
|
+
var h = {
|
|
28
46
|
width: a.width,
|
|
29
47
|
height: a.height,
|
|
30
48
|
marginLeft: 66,
|
|
@@ -35,7 +53,7 @@ var m = {
|
|
|
35
53
|
width: 480,
|
|
36
54
|
height: 320
|
|
37
55
|
}, Se = 8, Ce = 6, we = 7.5;
|
|
38
|
-
function
|
|
56
|
+
function g(e) {
|
|
39
57
|
let t = (e && e.length ? e : "note").split("\n"), n = Math.max(1, ...t.map((e) => e.length));
|
|
40
58
|
return {
|
|
41
59
|
lines: t,
|
|
@@ -43,85 +61,85 @@ function h(e) {
|
|
|
43
61
|
height: Math.max(34, t.length * 17 + Ce * 2)
|
|
44
62
|
};
|
|
45
63
|
}
|
|
46
|
-
var
|
|
47
|
-
paper:
|
|
48
|
-
ink:
|
|
49
|
-
inkSoft: "#
|
|
50
|
-
axis: "
|
|
51
|
-
axisText: "#
|
|
52
|
-
grid: "
|
|
53
|
-
band: "rgba(
|
|
54
|
-
stroke:
|
|
55
|
-
componentFill:
|
|
56
|
-
anchorFill:
|
|
57
|
-
dependency: "#
|
|
58
|
-
accent:
|
|
59
|
-
accentSoft: "rgba(
|
|
60
|
-
flow:
|
|
61
|
-
movement:
|
|
62
|
-
inertia:
|
|
63
|
-
noteText: "#
|
|
64
|
-
pipeline:
|
|
65
|
-
annotationFill: "#
|
|
66
|
-
plotBackground:
|
|
67
|
-
accelerator: "#
|
|
68
|
-
deaccelerator:
|
|
64
|
+
var _ = {
|
|
65
|
+
paper: m.grau,
|
|
66
|
+
ink: m.schwarz,
|
|
67
|
+
inkSoft: "#5B5B5B",
|
|
68
|
+
axis: "rgba(51,93,229,0.22)",
|
|
69
|
+
axisText: "#6E7797",
|
|
70
|
+
grid: "rgba(51,93,229,0.12)",
|
|
71
|
+
band: "rgba(51,93,229,0.04)",
|
|
72
|
+
stroke: m.schwarz,
|
|
73
|
+
componentFill: m.weiss,
|
|
74
|
+
anchorFill: m.schwarz,
|
|
75
|
+
dependency: "#9E9E9E",
|
|
76
|
+
accent: m.blau,
|
|
77
|
+
accentSoft: "rgba(51,93,229,0.12)",
|
|
78
|
+
flow: m.blau,
|
|
79
|
+
movement: m.danger,
|
|
80
|
+
inertia: m.schwarz,
|
|
81
|
+
noteText: "#5B5B5B",
|
|
82
|
+
pipeline: m.schwarz,
|
|
83
|
+
annotationFill: "#FBF3E0",
|
|
84
|
+
plotBackground: m.weiss,
|
|
85
|
+
accelerator: "#00C853",
|
|
86
|
+
deaccelerator: m.danger
|
|
69
87
|
}, Te = [
|
|
70
88
|
{
|
|
71
89
|
id: "green",
|
|
72
90
|
name: "Green · good",
|
|
73
|
-
value: "#
|
|
91
|
+
value: "#0B7A55"
|
|
74
92
|
},
|
|
75
93
|
{
|
|
76
94
|
id: "amber",
|
|
77
95
|
name: "Amber · watch",
|
|
78
|
-
value: "#
|
|
96
|
+
value: "#92610A"
|
|
79
97
|
},
|
|
80
98
|
{
|
|
81
99
|
id: "red",
|
|
82
100
|
name: "Red · problem",
|
|
83
|
-
value: "#
|
|
101
|
+
value: "#C92A2A"
|
|
84
102
|
},
|
|
85
103
|
{
|
|
86
104
|
id: "blue",
|
|
87
105
|
name: "Blue · info",
|
|
88
|
-
value: "#
|
|
106
|
+
value: "#2B50D4"
|
|
89
107
|
},
|
|
90
108
|
{
|
|
91
109
|
id: "teal",
|
|
92
110
|
name: "Teal",
|
|
93
|
-
value: "#
|
|
111
|
+
value: "#0E8181"
|
|
94
112
|
},
|
|
95
113
|
{
|
|
96
114
|
id: "purple",
|
|
97
115
|
name: "Purple · idea",
|
|
98
|
-
value: "#
|
|
116
|
+
value: "#6A3DB8"
|
|
99
117
|
},
|
|
100
118
|
{
|
|
101
119
|
id: "pink",
|
|
102
120
|
name: "Pink",
|
|
103
|
-
value: "#
|
|
121
|
+
value: "#C2185B"
|
|
104
122
|
},
|
|
105
123
|
{
|
|
106
124
|
id: "slate",
|
|
107
125
|
name: "Slate · neutral",
|
|
108
|
-
value: "#
|
|
126
|
+
value: "#4A4A4A"
|
|
109
127
|
}
|
|
110
|
-
],
|
|
128
|
+
], v = {
|
|
111
129
|
pioneers: {
|
|
112
|
-
fill: "rgba(
|
|
113
|
-
stroke: "#
|
|
130
|
+
fill: "rgba(51,93,229,0.07)",
|
|
131
|
+
stroke: "#335DE5"
|
|
114
132
|
},
|
|
115
133
|
settlers: {
|
|
116
|
-
fill: "rgba(
|
|
117
|
-
stroke: "#
|
|
134
|
+
fill: "rgba(146,97,10,0.10)",
|
|
135
|
+
stroke: "#92610A"
|
|
118
136
|
},
|
|
119
137
|
townplanners: {
|
|
120
|
-
fill: "rgba(
|
|
121
|
-
stroke: "#
|
|
138
|
+
fill: "rgba(0,200,83,0.08)",
|
|
139
|
+
stroke: "#00C853"
|
|
122
140
|
}
|
|
123
|
-
},
|
|
124
|
-
family: "'
|
|
141
|
+
}, y = {
|
|
142
|
+
family: "'Geist', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif",
|
|
125
143
|
label: 13,
|
|
126
144
|
axis: 12,
|
|
127
145
|
stage: 12
|
|
@@ -134,8 +152,8 @@ function Ee(e, t) {
|
|
|
134
152
|
let r = n.cloneNode(!0), i = t ?? {
|
|
135
153
|
x: 0,
|
|
136
154
|
y: 0,
|
|
137
|
-
width:
|
|
138
|
-
height:
|
|
155
|
+
width: h.marginLeft + h.width + h.marginRight,
|
|
156
|
+
height: h.marginTop + h.height + h.marginBottom
|
|
139
157
|
};
|
|
140
158
|
r.setAttribute("xmlns", "http://www.w3.org/2000/svg"), r.setAttribute("viewBox", `${i.x} ${i.y} ${i.width} ${i.height}`), r.setAttribute("width", String(i.width)), r.setAttribute("height", String(i.height));
|
|
141
159
|
let a = r.querySelector(".viewport");
|
|
@@ -146,10 +164,10 @@ function Ee(e, t) {
|
|
|
146
164
|
var De = "wardley-root";
|
|
147
165
|
//#endregion
|
|
148
166
|
//#region src/WardleyBaseViewer.ts
|
|
149
|
-
function
|
|
167
|
+
function b(e) {
|
|
150
168
|
return typeof e == "number" ? `${e}px` : e;
|
|
151
169
|
}
|
|
152
|
-
var
|
|
170
|
+
var x = class {
|
|
153
171
|
_diagram;
|
|
154
172
|
_container;
|
|
155
173
|
_options;
|
|
@@ -158,7 +176,7 @@ var ke = class {
|
|
|
158
176
|
}
|
|
159
177
|
_createContainer(e) {
|
|
160
178
|
let t = e.container ?? document.createElement("div");
|
|
161
|
-
return t.classList.add("wardley-container"), t.style.width =
|
|
179
|
+
return t.classList.add("wardley-container"), t.style.width = b(e.width ?? "100%"), t.style.height = b(e.height ?? (e.container ? "100%" : "600px")), t;
|
|
162
180
|
}
|
|
163
181
|
_ensureDiagram() {
|
|
164
182
|
if (!this._diagram) {
|
|
@@ -262,7 +280,7 @@ var ke = class {
|
|
|
262
280
|
get container() {
|
|
263
281
|
return this._container;
|
|
264
282
|
}
|
|
265
|
-
},
|
|
283
|
+
}, S = class {
|
|
266
284
|
elementFactory;
|
|
267
285
|
grid;
|
|
268
286
|
elementRegistry;
|
|
@@ -307,7 +325,7 @@ var ke = class {
|
|
|
307
325
|
return this.node("anchor", e.id, e.label, e.position.visibility, e.position.evolution, e, { ...e.labelOffset ? { labelOffset: e.labelOffset } : {} });
|
|
308
326
|
}
|
|
309
327
|
createNote(e) {
|
|
310
|
-
let { width: t, height: n } =
|
|
328
|
+
let { width: t, height: n } = g(e.label), r = this.grid.toCanvas(e.position);
|
|
311
329
|
return this.elementFactory.createShape({
|
|
312
330
|
id: e.id,
|
|
313
331
|
x: r.x - t / 2,
|
|
@@ -432,7 +450,7 @@ var ke = class {
|
|
|
432
450
|
isFrame: !0
|
|
433
451
|
});
|
|
434
452
|
if (e === "note") {
|
|
435
|
-
let { width: e, height: t } =
|
|
453
|
+
let { width: e, height: t } = g(r);
|
|
436
454
|
return this.elementFactory.createShape({
|
|
437
455
|
width: e,
|
|
438
456
|
height: t,
|
|
@@ -488,7 +506,7 @@ var ke = class {
|
|
|
488
506
|
id: t.id,
|
|
489
507
|
source: n,
|
|
490
508
|
target: r,
|
|
491
|
-
waypoints: [
|
|
509
|
+
waypoints: [C(n), C(r)],
|
|
492
510
|
wardleyType: e,
|
|
493
511
|
bidirectional: i,
|
|
494
512
|
...a ? { flowValue: a } : {},
|
|
@@ -497,7 +515,7 @@ var ke = class {
|
|
|
497
515
|
});
|
|
498
516
|
}
|
|
499
517
|
};
|
|
500
|
-
function
|
|
518
|
+
function C(e) {
|
|
501
519
|
return e.wardleyType === "pipeline" ? {
|
|
502
520
|
x: e.x + e.width / 2,
|
|
503
521
|
y: e.y
|
|
@@ -508,55 +526,55 @@ function je(e) {
|
|
|
508
526
|
}
|
|
509
527
|
//#endregion
|
|
510
528
|
//#region src/model/di-types.ts
|
|
511
|
-
function
|
|
529
|
+
function w(e) {
|
|
512
530
|
return typeof e == "object" && !!e;
|
|
513
531
|
}
|
|
514
|
-
function
|
|
515
|
-
return
|
|
532
|
+
function T(e) {
|
|
533
|
+
return w(e) && typeof e.wardleyType == "string" && "evolution" in e;
|
|
516
534
|
}
|
|
517
|
-
function
|
|
518
|
-
return
|
|
535
|
+
function E(e) {
|
|
536
|
+
return w(e) && typeof e.wardleyType == "string" && "waypoints" in e;
|
|
519
537
|
}
|
|
520
|
-
function
|
|
521
|
-
return
|
|
538
|
+
function D(e) {
|
|
539
|
+
return T(e) && e.wardleyType === "component";
|
|
522
540
|
}
|
|
523
|
-
function
|
|
524
|
-
return
|
|
541
|
+
function O(e) {
|
|
542
|
+
return T(e) && e.wardleyType === "pipeline";
|
|
525
543
|
}
|
|
526
|
-
function
|
|
527
|
-
return
|
|
544
|
+
function Oe(e) {
|
|
545
|
+
return T(e) && e.wardleyType === "attitude";
|
|
528
546
|
}
|
|
529
547
|
//#endregion
|
|
530
548
|
//#region src/model/index.ts
|
|
531
|
-
var
|
|
532
|
-
function
|
|
549
|
+
var ke = { wardleyElementFactory: ["type", S] }, Ae = "wardley-axes";
|
|
550
|
+
function je(e) {
|
|
533
551
|
return e < 0 ? 0 : e > 1 ? 1 : e;
|
|
534
552
|
}
|
|
535
|
-
var
|
|
553
|
+
var Me = class {
|
|
536
554
|
canvas;
|
|
537
555
|
static $inject = ["canvas"];
|
|
538
556
|
boundaries = o;
|
|
539
557
|
labels = i;
|
|
540
558
|
yAxisLabel = "Value Chain";
|
|
541
559
|
yAxisEndLabels = ["invisible", "visible"];
|
|
542
|
-
plotWidth =
|
|
543
|
-
plotHeight =
|
|
560
|
+
plotWidth = h.width;
|
|
561
|
+
plotHeight = h.height;
|
|
544
562
|
constructor(e) {
|
|
545
563
|
this.canvas = e;
|
|
546
564
|
}
|
|
547
565
|
configure(e) {
|
|
548
|
-
this.boundaries = e.stageBoundaries ?? o, this.labels = e.evolutionLabels ?? i, this.yAxisLabel = e.yAxisLabel ?? "Value Chain", this.yAxisEndLabels = e.yAxisEndLabels ?? ["invisible", "visible"], this.plotWidth = Math.max(e.size?.width ??
|
|
566
|
+
this.boundaries = e.stageBoundaries ?? o, this.labels = e.evolutionLabels ?? i, this.yAxisLabel = e.yAxisLabel ?? "Value Chain", this.yAxisEndLabels = e.yAxisEndLabels ?? ["invisible", "visible"], this.plotWidth = Math.max(e.size?.width ?? h.width, xe.width), this.plotHeight = Math.max(e.size?.height ?? h.height, xe.height);
|
|
549
567
|
}
|
|
550
568
|
toCanvas(e) {
|
|
551
569
|
return {
|
|
552
|
-
x:
|
|
553
|
-
y:
|
|
570
|
+
x: h.marginLeft + e.evolution * this.plotWidth,
|
|
571
|
+
y: h.marginTop + (1 - e.visibility) * this.plotHeight
|
|
554
572
|
};
|
|
555
573
|
}
|
|
556
574
|
fromCanvas(e) {
|
|
557
575
|
return {
|
|
558
|
-
evolution:
|
|
559
|
-
visibility:
|
|
576
|
+
evolution: je((e.x - h.marginLeft) / this.plotWidth),
|
|
577
|
+
visibility: je(1 - (e.y - h.marginTop) / this.plotHeight)
|
|
560
578
|
};
|
|
561
579
|
}
|
|
562
580
|
stageOf(e) {
|
|
@@ -575,17 +593,17 @@ var Re = class {
|
|
|
575
593
|
return {
|
|
576
594
|
x: 0,
|
|
577
595
|
y: 0,
|
|
578
|
-
width:
|
|
579
|
-
height:
|
|
596
|
+
width: h.marginLeft + this.plotWidth + h.marginRight,
|
|
597
|
+
height: h.marginTop + this.plotHeight + h.marginBottom
|
|
580
598
|
};
|
|
581
599
|
}
|
|
582
600
|
render() {
|
|
583
|
-
let e = this.canvas.getLayer(
|
|
601
|
+
let e = this.canvas.getLayer(Ae, -1);
|
|
584
602
|
d(e);
|
|
585
|
-
let t =
|
|
586
|
-
l(e,
|
|
587
|
-
fill:
|
|
588
|
-
stroke:
|
|
603
|
+
let t = h.marginLeft, n = h.marginTop, r = t + this.plotWidth, i = n + this.plotHeight;
|
|
604
|
+
l(e, Ne(t, n, this.plotWidth, this.plotHeight, {
|
|
605
|
+
fill: _.plotBackground,
|
|
606
|
+
stroke: _.grid
|
|
589
607
|
}));
|
|
590
608
|
let a = [
|
|
591
609
|
0,
|
|
@@ -594,45 +612,45 @@ var Re = class {
|
|
|
594
612
|
];
|
|
595
613
|
for (let r = 0; r < 4; r++) {
|
|
596
614
|
let o = t + a[r] * this.plotWidth, s = t + a[r + 1] * this.plotWidth;
|
|
597
|
-
r % 2 == 1 && l(e,
|
|
598
|
-
fill:
|
|
615
|
+
r % 2 == 1 && l(e, Ne(o, n, s - o, this.plotHeight, {
|
|
616
|
+
fill: _.band,
|
|
599
617
|
stroke: "none"
|
|
600
|
-
})), r > 0 && l(e,
|
|
601
|
-
stroke:
|
|
618
|
+
})), r > 0 && l(e, k(o, n, o, i, {
|
|
619
|
+
stroke: _.grid,
|
|
602
620
|
"stroke-dasharray": "3 5"
|
|
603
621
|
}));
|
|
604
622
|
let c = (o + s) / 2;
|
|
605
|
-
l(e,
|
|
623
|
+
l(e, A(this.labels[r].toUpperCase(), c, i + 18, {
|
|
606
624
|
"text-anchor": "middle",
|
|
607
|
-
"font-size":
|
|
625
|
+
"font-size": y.stage,
|
|
608
626
|
"letter-spacing": "0.08em",
|
|
609
|
-
fill:
|
|
627
|
+
fill: _.axisText
|
|
610
628
|
}));
|
|
611
629
|
}
|
|
612
|
-
l(e,
|
|
630
|
+
l(e, k(t, i, r + 10, i, { stroke: _.axis })), l(e, Pe(r + 10, i, "right")), l(e, A("Evolution", r + 6, i + 38, {
|
|
613
631
|
"text-anchor": "end",
|
|
614
|
-
"font-size":
|
|
615
|
-
fill:
|
|
632
|
+
"font-size": y.axis,
|
|
633
|
+
fill: _.axisText,
|
|
616
634
|
"font-style": "italic"
|
|
617
|
-
})), l(e,
|
|
618
|
-
let o =
|
|
635
|
+
})), l(e, k(t, i, t, n - 10, { stroke: _.axis })), l(e, Pe(t, n - 10, "up"));
|
|
636
|
+
let o = A(this.yAxisLabel, 0, 0, {
|
|
619
637
|
"text-anchor": "middle",
|
|
620
|
-
"font-size":
|
|
621
|
-
fill:
|
|
638
|
+
"font-size": y.axis,
|
|
639
|
+
fill: _.axisText,
|
|
622
640
|
"font-style": "italic"
|
|
623
641
|
});
|
|
624
|
-
u(o, { transform: `translate(${t - 46}, ${(n + i) / 2}) rotate(-90)` }), l(e, o), l(e,
|
|
642
|
+
u(o, { transform: `translate(${t - 46}, ${(n + i) / 2}) rotate(-90)` }), l(e, o), l(e, A(this.yAxisEndLabels[1], t - 10, n + 11, {
|
|
625
643
|
"text-anchor": "end",
|
|
626
|
-
"font-size":
|
|
627
|
-
fill:
|
|
628
|
-
})), l(e,
|
|
644
|
+
"font-size": y.stage,
|
|
645
|
+
fill: _.axisText
|
|
646
|
+
})), l(e, A(this.yAxisEndLabels[0], t - 10, i - 2, {
|
|
629
647
|
"text-anchor": "end",
|
|
630
|
-
"font-size":
|
|
631
|
-
fill:
|
|
648
|
+
"font-size": y.stage,
|
|
649
|
+
fill: _.axisText
|
|
632
650
|
}));
|
|
633
651
|
}
|
|
634
652
|
};
|
|
635
|
-
function
|
|
653
|
+
function Ne(e, t, n, r, i) {
|
|
636
654
|
return u(f("rect"), {
|
|
637
655
|
x: e,
|
|
638
656
|
y: t,
|
|
@@ -642,7 +660,7 @@ function ze(e, t, n, r, i) {
|
|
|
642
660
|
...i
|
|
643
661
|
});
|
|
644
662
|
}
|
|
645
|
-
function
|
|
663
|
+
function k(e, t, n, r, i) {
|
|
646
664
|
return u(f("line"), {
|
|
647
665
|
x1: e,
|
|
648
666
|
y1: t,
|
|
@@ -652,31 +670,31 @@ function S(e, t, n, r, i) {
|
|
|
652
670
|
...i
|
|
653
671
|
});
|
|
654
672
|
}
|
|
655
|
-
function
|
|
673
|
+
function A(e, t, n, r) {
|
|
656
674
|
let i = u(f("text"), {
|
|
657
675
|
x: t,
|
|
658
676
|
y: n,
|
|
659
|
-
"font-family":
|
|
677
|
+
"font-family": y.family,
|
|
660
678
|
...r
|
|
661
679
|
});
|
|
662
680
|
return i.textContent = e, i;
|
|
663
681
|
}
|
|
664
|
-
function
|
|
682
|
+
function Pe(e, t, n) {
|
|
665
683
|
let r = n === "right" ? `${e - 5},${t - 5} ${e + 2},${t} ${e - 5},${t + 5}` : `${e - 5},${t + 5} ${e},${t - 2} ${e + 5},${t + 5}`;
|
|
666
684
|
return u(f("polygon"), {
|
|
667
685
|
points: r,
|
|
668
|
-
fill:
|
|
686
|
+
fill: _.axis
|
|
669
687
|
});
|
|
670
688
|
}
|
|
671
689
|
//#endregion
|
|
672
690
|
//#region src/evolution-grid/EvolutionConstraintBehavior.ts
|
|
673
|
-
var
|
|
691
|
+
var Fe = [
|
|
674
692
|
"shape.move",
|
|
675
693
|
"shape.create",
|
|
676
694
|
"shape.resize",
|
|
677
695
|
"elements.move",
|
|
678
696
|
"elements.create"
|
|
679
|
-
],
|
|
697
|
+
], Ie = class extends ee {
|
|
680
698
|
eventBus;
|
|
681
699
|
grid;
|
|
682
700
|
elementRegistry;
|
|
@@ -688,13 +706,13 @@ var w = [
|
|
|
688
706
|
constructor(e, t, n) {
|
|
689
707
|
super(e), this.eventBus = e, this.grid = t, this.elementRegistry = n;
|
|
690
708
|
let r = (e) => this.syncAll(e.context);
|
|
691
|
-
this.postExecuted(
|
|
709
|
+
this.postExecuted(Fe, r), this.reverted(Fe, r);
|
|
692
710
|
let i = (e) => {
|
|
693
711
|
if ([
|
|
694
712
|
e.context?.shape,
|
|
695
713
|
e.context?.element,
|
|
696
714
|
...e.context?.elements ?? []
|
|
697
|
-
].some((e) =>
|
|
715
|
+
].some((e) => T(e) && e.wardleyType === "component")) for (let e of this.elementRegistry.filter((e) => O(e))) this.eventBus.fire("element.changed", { element: e });
|
|
698
716
|
};
|
|
699
717
|
this.postExecuted([
|
|
700
718
|
"shape.create",
|
|
@@ -713,7 +731,7 @@ var w = [
|
|
|
713
731
|
...e.shapes ?? [],
|
|
714
732
|
...e.elements ?? []
|
|
715
733
|
];
|
|
716
|
-
for (let e of t)
|
|
734
|
+
for (let e of t) T(e) && this.syncFromGeometry(e);
|
|
717
735
|
}
|
|
718
736
|
syncFromGeometry(e) {
|
|
719
737
|
let t = e.y + e.height / 2;
|
|
@@ -724,8 +742,8 @@ var w = [
|
|
|
724
742
|
}), r = this.grid.fromCanvas({
|
|
725
743
|
x: e.x + e.width,
|
|
726
744
|
y: t
|
|
727
|
-
}), [i, a] =
|
|
728
|
-
e.evolutionStart = i, e.evolutionEnd = a, e.evolution =
|
|
745
|
+
}), [i, a] = ze(n.evolution, r.evolution);
|
|
746
|
+
e.evolutionStart = i, e.evolutionEnd = a, e.evolution = Re((i + a) / 2), e.visibility = n.visibility;
|
|
729
747
|
let o = this.grid.toCanvas({
|
|
730
748
|
visibility: e.visibility,
|
|
731
749
|
evolution: i
|
|
@@ -761,14 +779,14 @@ var w = [
|
|
|
761
779
|
(Math.abs(t - e.x) > .5 || Math.abs(n - e.y) > .5 || r !== void 0 && Math.abs(r - e.width) > .5 || i !== void 0 && Math.abs(i - e.height) > .5) && (e.x = t, e.y = n, r !== void 0 && (e.width = r), i !== void 0 && (e.height = i), this.fireChanged(e));
|
|
762
780
|
}
|
|
763
781
|
updateMembership(e) {
|
|
764
|
-
let t = e.x + e.width / 2, n = e.y + e.height / 2, r = this.elementRegistry.filter((e) =>
|
|
782
|
+
let t = e.x + e.width / 2, n = e.y + e.height / 2, r = this.elementRegistry.filter((e) => O(e)).find((r) => r.wardleyLabel !== e.wardleyLabel && t >= r.x && t <= r.x + r.width && n >= r.y && n <= r.y + r.height);
|
|
765
783
|
r ? (e.pipelineId = r.id, this.glueToPipeline(e, r)) : e.pipelineId && delete e.pipelineId;
|
|
766
784
|
}
|
|
767
785
|
glueToPipeline(e, t) {
|
|
768
786
|
e.y = t.y + t.height / 2 - e.height / 2, e.visibility = t.visibility, this.fireChanged(e);
|
|
769
787
|
}
|
|
770
788
|
reconcileMembership(e) {
|
|
771
|
-
let t = this.elementRegistry.filter((e) =>
|
|
789
|
+
let t = this.elementRegistry.filter((e) => T(e) && e.wardleyType === "component");
|
|
772
790
|
for (let n of t) {
|
|
773
791
|
if (n.wardleyLabel === e.wardleyLabel) continue;
|
|
774
792
|
let t = n.x + n.width / 2, r = n.y + n.height / 2, i = t >= e.x && t <= e.x + e.width && r >= e.y && r <= e.y + e.height;
|
|
@@ -787,22 +805,22 @@ var w = [
|
|
|
787
805
|
this.eventBus.fire("element.changed", { element: e });
|
|
788
806
|
for (let t of [...e.incoming ?? [], ...e.outgoing ?? []]) this.eventBus.fire("element.changed", { element: t });
|
|
789
807
|
}
|
|
790
|
-
},
|
|
791
|
-
function
|
|
808
|
+
}, Le = .001;
|
|
809
|
+
function Re(e) {
|
|
792
810
|
return e < 0 ? 0 : e > 1 ? 1 : e;
|
|
793
811
|
}
|
|
794
|
-
function
|
|
795
|
-
let n =
|
|
796
|
-
return [Math.max(0, Math.min(e, n -
|
|
812
|
+
function ze(e, t) {
|
|
813
|
+
let n = Re(Math.max(t, e + Le));
|
|
814
|
+
return [Math.max(0, Math.min(e, n - Le)), n];
|
|
797
815
|
}
|
|
798
816
|
//#endregion
|
|
799
817
|
//#region src/evolution-grid/index.ts
|
|
800
|
-
var
|
|
818
|
+
var j = { evolutionGrid: ["type", Me] }, Be = {
|
|
801
819
|
__init__: ["evolutionConstraintBehavior"],
|
|
802
|
-
__depends__: [
|
|
803
|
-
evolutionConstraintBehavior: ["type",
|
|
804
|
-
},
|
|
805
|
-
function
|
|
820
|
+
__depends__: [j],
|
|
821
|
+
evolutionConstraintBehavior: ["type", Ie]
|
|
822
|
+
}, M = "M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z", Ve = "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z", He = "M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z", Ue = "M15.5 5H11l5 7-5 7h4.5l5-7zM8.5 5H4l5 7-5 7h4.5l5-7z", N = "M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z", P = "M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z", We = "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z", Ge = "M12.5 8c-2.65 0-5.05.99-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z", Ke = "M18.4 10.6C16.55 8.99 14.15 8 11.5 8c-4.65 0-8.58 3.03-9.96 7.22L3.9 16c1.05-3.19 4.05-5.5 7.6-5.5 1.95 0 3.73.72 5.12 1.88L13 16h9V7l-3.6 3.6z", qe = "M4 7v2c0 .55-.45 1-1 1H2v2h1c.55 0 1 .45 1 1v2c0 1.65 1.35 3 3 3h1v-2H7c-.55 0-1-.45-1-1v-2c0-.84-.35-1.61-.92-2.18L4.85 12l.23-.82C5.65 10.61 6 9.84 6 9V7c0-.55.45-1 1-1h1V4H7C5.35 4 4 5.35 4 7zm16 3c-.55 0-1-.45-1-1V7c0-1.65-1.35-3-3-3h-1v2h1c.55 0 1 .45 1 1v2c0 .84.35 1.61.92 2.18l.23.82-.23.82c-.57.57-.92 1.34-.92 2.18v2c0 .55-.45 1-1 1h-1v2h1c1.65 0 3-1.35 3-3v-2c0-.55.45-1 1-1h1v-2h-1z", Je = "M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z", Ye = "M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z", Xe = "M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92s2.92-1.31 2.92-2.92-1.31-2.92-2.92-2.92z", Ze = "M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z", Qe = "M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z", $e = "M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 14h-3v3h-2v-3H8v-2h3v-3h2v3h3v2zm-3-7V3.5L18.5 9H13z", et = "M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z", tt = "M12 2C6.49 2 2 6.49 2 12s4.49 10 10 10c1.38 0 2.5-1.12 2.5-2.5 0-.61-.23-1.2-.64-1.67-.08-.1-.13-.21-.13-.33 0-.28.22-.5.5-.5H16c3.31 0 6-2.69 6-6 0-4.96-4.49-9-10-9zm-5.5 9c-.83 0-1.5-.67-1.5-1.5S5.67 8 6.5 8 8 8.67 8 9.5 7.33 11 6.5 11zm3-4C8.67 7 8 6.33 8 5.5S8.67 4 9.5 4s1.5.67 1.5 1.5S10.33 7 9.5 7zm5 0c-.83 0-1.5-.67-1.5-1.5S13.67 4 14.5 4s1.5.67 1.5 1.5S15.33 7 14.5 7zm3 4c-.83 0-1.5-.67-1.5-1.5S16.67 8 17.5 8s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z", nt = "M4 18l8.5-6L4 6v12zm9-12v12l8.5-6L13 6z", rt = "M11 18V6l-8.5 6 8.5 6zm.5-6l8.5 6V6l-8.5 6z", it = "M6.99 11L3 15l3.99 4v-3H14v-2H6.99v-3zM21 9l-3.99-4v3H10v2h7.01v3L21 9z", at = "M19 12h-2v3h-3v2h5v-5zM7 9h3V7H5v5h2V9zm14-6H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02z", ot = "M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z", st = "M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z", ct = "M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z";
|
|
823
|
+
function lt(e, t, n, r, i) {
|
|
806
824
|
let a = f("g"), o = r / 24;
|
|
807
825
|
return u(a, {
|
|
808
826
|
transform: `translate(${t - r / 2}, ${n - r / 2}) scale(${o})`,
|
|
@@ -810,12 +828,12 @@ function j(e, t, n, r, i) {
|
|
|
810
828
|
stroke: "none"
|
|
811
829
|
}), l(a, u(f("path"), { d: e })), a;
|
|
812
830
|
}
|
|
813
|
-
function
|
|
831
|
+
function ut(e, t = 18) {
|
|
814
832
|
return `<svg viewBox="0 0 24 24" width="${t}" height="${t}" fill="currentColor" aria-hidden="true"><path d="${e}"/></svg>`;
|
|
815
833
|
}
|
|
816
834
|
//#endregion
|
|
817
835
|
//#region src/draw/WardleyRenderer.ts
|
|
818
|
-
var
|
|
836
|
+
var dt = 1500, ft = class extends te {
|
|
819
837
|
grid;
|
|
820
838
|
elementRegistry;
|
|
821
839
|
static $inject = [
|
|
@@ -824,10 +842,10 @@ var ft = 1500, N = class extends te {
|
|
|
824
842
|
"elementRegistry"
|
|
825
843
|
];
|
|
826
844
|
constructor(e, t, n) {
|
|
827
|
-
super(e,
|
|
845
|
+
super(e, dt), this.grid = t, this.elementRegistry = n;
|
|
828
846
|
}
|
|
829
847
|
canRender(e) {
|
|
830
|
-
return
|
|
848
|
+
return T(e) || E(e);
|
|
831
849
|
}
|
|
832
850
|
drawShape(e, t) {
|
|
833
851
|
let n = t;
|
|
@@ -847,7 +865,7 @@ var ft = 1500, N = class extends te {
|
|
|
847
865
|
let n = t.drawingPoints ?? [], r = t.strokeStyle === "dashed" ? "8 5" : t.strokeStyle === "dotted" ? "2 4" : void 0, i = u(f(t.closed ? "polygon" : "polyline"), {
|
|
848
866
|
points: n.map((e) => `${e.x},${e.y}`).join(" "),
|
|
849
867
|
fill: "none",
|
|
850
|
-
stroke: t.color ??
|
|
868
|
+
stroke: t.color ?? _.ink,
|
|
851
869
|
"stroke-width": 2,
|
|
852
870
|
"stroke-linecap": "round",
|
|
853
871
|
"stroke-linejoin": "round",
|
|
@@ -856,7 +874,7 @@ var ft = 1500, N = class extends te {
|
|
|
856
874
|
return l(e, i), i;
|
|
857
875
|
}
|
|
858
876
|
drawConnection(e, t) {
|
|
859
|
-
let n = t, r = n.wardleyType === "flow", i = r ?
|
|
877
|
+
let n = t, r = n.wardleyType === "flow", i = r ? _.flow : _.dependency, [a, o] = gt(n), s = u(f("polyline"), {
|
|
860
878
|
points: `${a.x},${a.y} ${o.x},${o.y}`,
|
|
861
879
|
fill: "none",
|
|
862
880
|
stroke: i,
|
|
@@ -868,12 +886,12 @@ var ft = 1500, N = class extends te {
|
|
|
868
886
|
return r && n.flowValue && l(e, I(n.flowValue, c, d - 5, {
|
|
869
887
|
"text-anchor": "middle",
|
|
870
888
|
"font-size": 11,
|
|
871
|
-
fill:
|
|
889
|
+
fill: _.flow
|
|
872
890
|
})), n.linkLabel && l(e, I(n.linkLabel, c, d + (n.flowValue ? 12 : -4), {
|
|
873
891
|
"text-anchor": "middle",
|
|
874
892
|
"font-size": 11,
|
|
875
893
|
"font-style": "italic",
|
|
876
|
-
fill:
|
|
894
|
+
fill: _.axisText
|
|
877
895
|
})), s;
|
|
878
896
|
}
|
|
879
897
|
getShapePath(e) {
|
|
@@ -894,8 +912,8 @@ var ft = 1500, N = class extends te {
|
|
|
894
912
|
visibility: t.visibility,
|
|
895
913
|
evolution: i.targetEvolution
|
|
896
914
|
}).x - a.x, s = n + o, c = s - (Math.sign(o) || 1) * 17;
|
|
897
|
-
l(e,
|
|
898
|
-
stroke:
|
|
915
|
+
l(e, pt(n, r, c, r, {
|
|
916
|
+
stroke: _.movement,
|
|
899
917
|
"stroke-width": 1.5,
|
|
900
918
|
"stroke-dasharray": "6 4"
|
|
901
919
|
})), l(e, L({
|
|
@@ -904,37 +922,37 @@ var ft = 1500, N = class extends te {
|
|
|
904
922
|
}, {
|
|
905
923
|
x: c,
|
|
906
924
|
y: r
|
|
907
|
-
},
|
|
908
|
-
fill:
|
|
909
|
-
stroke:
|
|
925
|
+
}, _.movement)), l(e, F(s, r, 15, {
|
|
926
|
+
fill: _.paper,
|
|
927
|
+
stroke: _.movement,
|
|
910
928
|
"stroke-width": 2,
|
|
911
929
|
class: "wardley-evolve-handle"
|
|
912
930
|
})), l(e, I(i.newLabel ?? t.wardleyLabel, s + 15 + 7, r - 4, {
|
|
913
931
|
"font-weight": "500",
|
|
914
|
-
fill:
|
|
932
|
+
fill: _.movement
|
|
915
933
|
})), i.method && l(e, I(i.method, s + 15 + 7, r + 11, {
|
|
916
934
|
"font-size": 10.5,
|
|
917
|
-
fill:
|
|
935
|
+
fill: _.movement
|
|
918
936
|
}));
|
|
919
937
|
}
|
|
920
938
|
if (a?.inertia) {
|
|
921
939
|
let t = n + 15 + 3;
|
|
922
|
-
l(e,
|
|
923
|
-
stroke:
|
|
940
|
+
l(e, pt(t, r - 13, t, r + 13, {
|
|
941
|
+
stroke: _.inertia,
|
|
924
942
|
"stroke-width": 3,
|
|
925
943
|
"stroke-linecap": "round"
|
|
926
944
|
}));
|
|
927
945
|
}
|
|
928
|
-
let o = t.color ??
|
|
929
|
-
fill:
|
|
946
|
+
let o = t.color ?? _.stroke, s = F(n, r, 15, {
|
|
947
|
+
fill: _.componentFill,
|
|
930
948
|
stroke: o,
|
|
931
949
|
"stroke-width": 2
|
|
932
950
|
});
|
|
933
|
-
if (l(e, s), i && l(e,
|
|
951
|
+
if (l(e, s), i && l(e, F(n, r, 12, {
|
|
934
952
|
fill: "none",
|
|
935
953
|
stroke: o,
|
|
936
954
|
"stroke-width": 1.5
|
|
937
|
-
})), a?.ecosystem && l(e,
|
|
955
|
+
})), a?.ecosystem && l(e, F(n, r, 18.5, {
|
|
938
956
|
fill: "none",
|
|
939
957
|
stroke: o,
|
|
940
958
|
"stroke-width": 1.25,
|
|
@@ -944,18 +962,18 @@ var ft = 1500, N = class extends te {
|
|
|
944
962
|
[0, -3.8],
|
|
945
963
|
[-3.4, 2.4],
|
|
946
964
|
[3.4, 2.4]
|
|
947
|
-
]) l(e,
|
|
965
|
+
]) l(e, F(n + t, r + i, 1.7, { fill: o }));
|
|
948
966
|
let c = n + 15 + 7 + (t.labelOffset?.dx ?? 0), u = r - 4 + (t.labelOffset?.dy ?? 0);
|
|
949
967
|
return l(e, I(t.wardleyLabel, c, u, {
|
|
950
968
|
"font-weight": "500",
|
|
951
969
|
...t.color ? { fill: t.color } : {}
|
|
952
970
|
})), a?.method && l(e, I(a.method, c, u + 15, {
|
|
953
971
|
"font-size": 10.5,
|
|
954
|
-
fill:
|
|
972
|
+
fill: _.axisText
|
|
955
973
|
})), s;
|
|
956
974
|
}
|
|
957
975
|
drawAnchor(e, t) {
|
|
958
|
-
let n = t.width / 2, r = t.height / 2, i =
|
|
976
|
+
let n = t.width / 2, r = t.height / 2, i = lt(M, n, r, 26, t.color ?? _.ink);
|
|
959
977
|
return l(e, i), l(e, I(t.wardleyLabel, n + (t.labelOffset?.dx ?? 0), r - 26 / 2 - 4 + (t.labelOffset?.dy ?? 0), {
|
|
960
978
|
"text-anchor": "middle",
|
|
961
979
|
"font-weight": "700",
|
|
@@ -970,17 +988,17 @@ var ft = 1500, N = class extends te {
|
|
|
970
988
|
height: Math.max(t.height, 1),
|
|
971
989
|
rx: 4,
|
|
972
990
|
fill: "none",
|
|
973
|
-
stroke: r ??
|
|
991
|
+
stroke: r ?? _.pipeline,
|
|
974
992
|
"stroke-width": 1.25,
|
|
975
993
|
"stroke-dasharray": "6 3"
|
|
976
994
|
});
|
|
977
|
-
return l(e, i), !this.elementRegistry.filter((e) =>
|
|
995
|
+
return l(e, i), !this.elementRegistry.filter((e) => T(e) && e.wardleyType === "component").some((e) => e.wardleyLabel === t.wardleyLabel) && (l(e, u(f("rect"), {
|
|
978
996
|
x: n / 2 - 8,
|
|
979
997
|
y: -8,
|
|
980
998
|
width: 16,
|
|
981
999
|
height: 16,
|
|
982
|
-
fill:
|
|
983
|
-
stroke: r ??
|
|
1000
|
+
fill: _.componentFill,
|
|
1001
|
+
stroke: r ?? _.stroke,
|
|
984
1002
|
"stroke-width": 2
|
|
985
1003
|
})), l(e, I(t.wardleyLabel, n / 2 + 8 + 6, -4, {
|
|
986
1004
|
"font-weight": "500",
|
|
@@ -990,7 +1008,7 @@ var ft = 1500, N = class extends te {
|
|
|
990
1008
|
drawNote(e, t) {
|
|
991
1009
|
let n = t.color, r = (t.wardleyLabel ?? "").split("\n"), i = t.width / 2, a = t.height / 2 - (r.length - 1) * 17 / 2 + 4, o = {
|
|
992
1010
|
"text-anchor": "middle",
|
|
993
|
-
fill: n ??
|
|
1011
|
+
fill: n ?? _.noteText,
|
|
994
1012
|
"font-style": "italic",
|
|
995
1013
|
...n ? { "font-weight": "600" } : {}
|
|
996
1014
|
}, s;
|
|
@@ -1000,7 +1018,7 @@ var ft = 1500, N = class extends te {
|
|
|
1000
1018
|
}), s ?? f("text");
|
|
1001
1019
|
}
|
|
1002
1020
|
drawAttitude(e, t) {
|
|
1003
|
-
let n =
|
|
1021
|
+
let n = v[t.attitudeKind ?? "pioneers"] ?? v.pioneers, r = t.color ?? n.stroke, i = u(f("rect"), {
|
|
1004
1022
|
x: 0,
|
|
1005
1023
|
y: 0,
|
|
1006
1024
|
width: Math.max(t.width, 1),
|
|
@@ -1011,16 +1029,16 @@ var ft = 1500, N = class extends te {
|
|
|
1011
1029
|
"stroke-width": 1.25,
|
|
1012
1030
|
"stroke-dasharray": "5 4"
|
|
1013
1031
|
});
|
|
1014
|
-
return l(e, i), l(e, I(t.wardleyLabel && t.wardleyLabel !== t.attitudeKind ? t.wardleyLabel :
|
|
1032
|
+
return l(e, i), l(e, I(t.wardleyLabel && t.wardleyLabel !== t.attitudeKind ? t.wardleyLabel : _t(t.attitudeKind ?? "pioneers"), 10, 18, {
|
|
1015
1033
|
fill: r,
|
|
1016
1034
|
"font-weight": "700",
|
|
1017
1035
|
"letter-spacing": "0.04em"
|
|
1018
1036
|
})), i;
|
|
1019
1037
|
}
|
|
1020
1038
|
drawAnnotation(e, t) {
|
|
1021
|
-
let n = t.width / 2, r = t.height / 2, i =
|
|
1022
|
-
fill:
|
|
1023
|
-
stroke: t.color ??
|
|
1039
|
+
let n = t.width / 2, r = t.height / 2, i = F(n, r, 10, {
|
|
1040
|
+
fill: _.annotationFill,
|
|
1041
|
+
stroke: t.color ?? _.stroke,
|
|
1024
1042
|
"stroke-width": 1.25
|
|
1025
1043
|
});
|
|
1026
1044
|
return l(e, i), l(e, I(String(t.annotationNumber ?? ""), n, r + 4, {
|
|
@@ -1029,21 +1047,21 @@ var ft = 1500, N = class extends te {
|
|
|
1029
1047
|
"font-weight": "700"
|
|
1030
1048
|
}, !1)), t.wardleyLabel && l(e, I(t.wardleyLabel, n + 15, r + 4, {
|
|
1031
1049
|
"font-size": 12,
|
|
1032
|
-
fill:
|
|
1050
|
+
fill: _.noteText
|
|
1033
1051
|
})), i;
|
|
1034
1052
|
}
|
|
1035
1053
|
drawAccelerator(e, t) {
|
|
1036
|
-
let n = t.width / 2, r = t.height / 2, i = t.acceleratorDirection !== "deaccelerate", a =
|
|
1054
|
+
let n = t.width / 2, r = t.height / 2, i = t.acceleratorDirection !== "deaccelerate", a = lt(i ? nt : rt, n, r, 24, t.color ?? (i ? _.accelerator : _.deaccelerator));
|
|
1037
1055
|
return l(e, a), t.wardleyLabel && l(e, I(t.wardleyLabel, n + 15, r + 5, { "font-size": 12 })), a;
|
|
1038
1056
|
}
|
|
1039
1057
|
drawSubmap(e, t) {
|
|
1040
|
-
let n = t.width / 2, r = t.height / 2, i = t.color ??
|
|
1058
|
+
let n = t.width / 2, r = t.height / 2, i = t.color ?? _.stroke, a = u(f("rect"), {
|
|
1041
1059
|
x: n - 16,
|
|
1042
1060
|
y: r - 16,
|
|
1043
1061
|
width: 32,
|
|
1044
1062
|
height: 32,
|
|
1045
1063
|
rx: 3,
|
|
1046
|
-
fill:
|
|
1064
|
+
fill: _.componentFill,
|
|
1047
1065
|
stroke: i,
|
|
1048
1066
|
"stroke-width": 2
|
|
1049
1067
|
});
|
|
@@ -1062,7 +1080,7 @@ var ft = 1500, N = class extends te {
|
|
|
1062
1080
|
})), a;
|
|
1063
1081
|
}
|
|
1064
1082
|
};
|
|
1065
|
-
function
|
|
1083
|
+
function F(e, t, n, r) {
|
|
1066
1084
|
return u(f("circle"), {
|
|
1067
1085
|
cx: e,
|
|
1068
1086
|
cy: t,
|
|
@@ -1071,7 +1089,7 @@ function P(e, t, n, r) {
|
|
|
1071
1089
|
...r
|
|
1072
1090
|
});
|
|
1073
1091
|
}
|
|
1074
|
-
function
|
|
1092
|
+
function pt(e, t, n, r, i) {
|
|
1075
1093
|
return u(f("line"), {
|
|
1076
1094
|
x1: e,
|
|
1077
1095
|
y1: t,
|
|
@@ -1082,16 +1100,16 @@ function F(e, t, n, r, i) {
|
|
|
1082
1100
|
}
|
|
1083
1101
|
function I(e, t, n, r = {}, i = !0) {
|
|
1084
1102
|
let a = i ? {
|
|
1085
|
-
stroke:
|
|
1103
|
+
stroke: _.paper,
|
|
1086
1104
|
"stroke-width": 3.5,
|
|
1087
1105
|
"paint-order": "stroke",
|
|
1088
1106
|
"stroke-linejoin": "round"
|
|
1089
1107
|
} : {}, o = u(f("text"), {
|
|
1090
1108
|
x: t,
|
|
1091
1109
|
y: n,
|
|
1092
|
-
"font-family":
|
|
1093
|
-
"font-size":
|
|
1094
|
-
fill:
|
|
1110
|
+
"font-family": y.family,
|
|
1111
|
+
"font-size": y.label,
|
|
1112
|
+
fill: _.ink,
|
|
1095
1113
|
...a,
|
|
1096
1114
|
...r
|
|
1097
1115
|
});
|
|
@@ -1104,10 +1122,10 @@ function L(e, t, n, r = 10, i = 5) {
|
|
|
1104
1122
|
fill: n
|
|
1105
1123
|
});
|
|
1106
1124
|
}
|
|
1107
|
-
function
|
|
1125
|
+
function mt(e) {
|
|
1108
1126
|
return e.wardleyType === "component" ? 17 : e.wardleyType === "anchor" ? 14 : e.wardleyType === "pipeline" ? 10 : Math.min(e.width, e.height) / 2;
|
|
1109
1127
|
}
|
|
1110
|
-
function
|
|
1128
|
+
function ht(e) {
|
|
1111
1129
|
return e.wardleyType === "pipeline" ? {
|
|
1112
1130
|
x: e.x + e.width / 2,
|
|
1113
1131
|
y: e.y
|
|
@@ -1116,7 +1134,7 @@ function mt(e) {
|
|
|
1116
1134
|
y: e.y + e.height / 2
|
|
1117
1135
|
};
|
|
1118
1136
|
}
|
|
1119
|
-
function
|
|
1137
|
+
function gt(e) {
|
|
1120
1138
|
let t = e.source, n = e.target, r = e.waypoints;
|
|
1121
1139
|
if (!t || !n) {
|
|
1122
1140
|
let e = r[0] ?? {
|
|
@@ -1125,7 +1143,7 @@ function ht(e) {
|
|
|
1125
1143
|
};
|
|
1126
1144
|
return [e, r[r.length - 1] ?? e];
|
|
1127
1145
|
}
|
|
1128
|
-
let i =
|
|
1146
|
+
let i = ht(t), a = ht(n), o = a.x - i.x, s = a.y - i.y, c = Math.hypot(o, s) || 1, l = o / c, u = s / c, d = mt(t), f = mt(n);
|
|
1129
1147
|
return c <= d + f + 2 ? [i, a] : [{
|
|
1130
1148
|
x: i.x + l * d,
|
|
1131
1149
|
y: i.y + u * d
|
|
@@ -1134,15 +1152,15 @@ function ht(e) {
|
|
|
1134
1152
|
y: a.y - u * f
|
|
1135
1153
|
}];
|
|
1136
1154
|
}
|
|
1137
|
-
function
|
|
1155
|
+
function _t(e) {
|
|
1138
1156
|
return e && e.charAt(0).toUpperCase() + e.slice(1);
|
|
1139
1157
|
}
|
|
1140
1158
|
//#endregion
|
|
1141
1159
|
//#region src/draw/index.ts
|
|
1142
|
-
var
|
|
1160
|
+
var vt = {
|
|
1143
1161
|
__init__: ["wardleyRenderer"],
|
|
1144
|
-
wardleyRenderer: ["type",
|
|
1145
|
-
},
|
|
1162
|
+
wardleyRenderer: ["type", ft]
|
|
1163
|
+
}, yt = /* @__PURE__ */ new Set(["attitude", "pipeline"]), bt = {
|
|
1146
1164
|
attitude: 0,
|
|
1147
1165
|
pipeline: 1,
|
|
1148
1166
|
note: 2,
|
|
@@ -1151,7 +1169,7 @@ var _t = {
|
|
|
1151
1169
|
annotation: 5,
|
|
1152
1170
|
submap: 3,
|
|
1153
1171
|
accelerator: 3
|
|
1154
|
-
},
|
|
1172
|
+
}, xt = class {
|
|
1155
1173
|
canvas;
|
|
1156
1174
|
elementFactory;
|
|
1157
1175
|
factory;
|
|
@@ -1183,7 +1201,7 @@ var _t = {
|
|
|
1183
1201
|
}
|
|
1184
1202
|
let i;
|
|
1185
1203
|
r && r.id === "wardley-root" ? i = r : (i = this.elementFactory.createRoot({ id: De }), this.canvas.setRootElement(i)), i.businessObject = n, this.grid.render();
|
|
1186
|
-
let a = /* @__PURE__ */ new Map(), o = [...e.elements].sort((e, t) => (
|
|
1204
|
+
let a = /* @__PURE__ */ new Map(), o = [...e.elements].sort((e, t) => (bt[e.elementType] ?? 9) - (bt[t.elementType] ?? 9)), s = o.filter((e) => yt.has(e.elementType)), c = o.filter((e) => !yt.has(e.elementType)), l = 0;
|
|
1187
1205
|
for (let e of s) {
|
|
1188
1206
|
let t = this.createShape(e);
|
|
1189
1207
|
t && (this.canvas.addShape(t, i), a.set(e.id, t), l++);
|
|
@@ -1240,7 +1258,7 @@ function R(e) {
|
|
|
1240
1258
|
for (let [n, r] of Object.entries(e)) r !== void 0 && (t[n] = r);
|
|
1241
1259
|
return t;
|
|
1242
1260
|
}
|
|
1243
|
-
var
|
|
1261
|
+
var St = class {
|
|
1244
1262
|
elementRegistry;
|
|
1245
1263
|
canvas;
|
|
1246
1264
|
grid;
|
|
@@ -1255,7 +1273,7 @@ var xt = class {
|
|
|
1255
1273
|
export() {
|
|
1256
1274
|
let e = this.canvas.getRootElement().businessObject, t = e?.config ?? { title: "Untitled Map" }, n = [], i = [];
|
|
1257
1275
|
for (let e of this.elementRegistry.getAll()) if (e.id !== "wardley-root") {
|
|
1258
|
-
if (
|
|
1276
|
+
if (E(e)) if (e.businessObject) i.push(e.businessObject);
|
|
1259
1277
|
else {
|
|
1260
1278
|
let t = {
|
|
1261
1279
|
id: e.id,
|
|
@@ -1271,7 +1289,7 @@ var xt = class {
|
|
|
1271
1289
|
edgeType: "dependency"
|
|
1272
1290
|
});
|
|
1273
1291
|
}
|
|
1274
|
-
else if (
|
|
1292
|
+
else if (T(e)) {
|
|
1275
1293
|
let t = this.buildElement(e);
|
|
1276
1294
|
t && n.push(t);
|
|
1277
1295
|
}
|
|
@@ -1405,23 +1423,23 @@ var xt = class {
|
|
|
1405
1423
|
} : void 0;
|
|
1406
1424
|
}
|
|
1407
1425
|
}
|
|
1408
|
-
},
|
|
1409
|
-
wardleyImporter: ["type",
|
|
1410
|
-
wardleyExporter: ["type",
|
|
1411
|
-
},
|
|
1426
|
+
}, Ct = {
|
|
1427
|
+
wardleyImporter: ["type", xt],
|
|
1428
|
+
wardleyExporter: ["type", St]
|
|
1429
|
+
}, wt = class extends x {
|
|
1412
1430
|
_getModules() {
|
|
1413
1431
|
return [
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1432
|
+
ke,
|
|
1433
|
+
j,
|
|
1434
|
+
vt,
|
|
1435
|
+
Ct
|
|
1418
1436
|
];
|
|
1419
1437
|
}
|
|
1420
|
-
},
|
|
1421
|
-
function
|
|
1422
|
-
return t <= r ?
|
|
1438
|
+
}, Tt = 180, Et = 80, Dt = 120, Ot = .5, kt = (e, t, n) => e < t ? t : e > n ? n : e;
|
|
1439
|
+
function At(e, t, n, r) {
|
|
1440
|
+
return t <= r ? kt(e, n, n + r - t) : n + r / 2 - t / 2;
|
|
1423
1441
|
}
|
|
1424
|
-
var
|
|
1442
|
+
var jt = class {
|
|
1425
1443
|
canvas;
|
|
1426
1444
|
grid;
|
|
1427
1445
|
static $inject = [
|
|
@@ -1438,8 +1456,8 @@ var At = class {
|
|
|
1438
1456
|
constrain(e) {
|
|
1439
1457
|
let t = e ?? this.canvas.viewbox(), n = this.grid.outerBounds();
|
|
1440
1458
|
if (!(n.width > 0) || !(n.height > 0) || !(t.width > 0) || !(t.height > 0)) return;
|
|
1441
|
-
let r =
|
|
1442
|
-
if (!(Math.abs(r - t.x) <
|
|
1459
|
+
let r = At(t.x, t.width, n.x - Dt, n.width + 2 * Dt), i = At(t.y, t.height, n.y - Tt, n.height + Tt + Et);
|
|
1460
|
+
if (!(Math.abs(r - t.x) < Ot && Math.abs(i - t.y) < Ot)) {
|
|
1443
1461
|
this.applying = !0;
|
|
1444
1462
|
try {
|
|
1445
1463
|
this.canvas.viewbox({
|
|
@@ -1453,10 +1471,10 @@ var At = class {
|
|
|
1453
1471
|
}
|
|
1454
1472
|
}
|
|
1455
1473
|
}
|
|
1456
|
-
},
|
|
1474
|
+
}, Mt = {
|
|
1457
1475
|
__init__: ["panConstraint"],
|
|
1458
|
-
panConstraint: ["type",
|
|
1459
|
-
},
|
|
1476
|
+
panConstraint: ["type", jt]
|
|
1477
|
+
}, Nt = class extends wt {
|
|
1460
1478
|
_getModules() {
|
|
1461
1479
|
return [
|
|
1462
1480
|
...super._getModules(),
|
|
@@ -1464,47 +1482,47 @@ var At = class {
|
|
|
1464
1482
|
re,
|
|
1465
1483
|
ie,
|
|
1466
1484
|
ae,
|
|
1467
|
-
|
|
1485
|
+
Mt
|
|
1468
1486
|
];
|
|
1469
1487
|
}
|
|
1470
1488
|
};
|
|
1471
1489
|
//#endregion
|
|
1472
1490
|
//#region src/modeling/cmd/UpdatePropertiesHandler.ts
|
|
1473
|
-
function
|
|
1491
|
+
function Pt(e, t, n) {
|
|
1474
1492
|
n === void 0 ? delete e[t] : e[t] = n;
|
|
1475
1493
|
}
|
|
1476
|
-
var
|
|
1494
|
+
var Ft = class {
|
|
1477
1495
|
execute(e) {
|
|
1478
1496
|
let { element: t, properties: n } = e, r = t, i = {};
|
|
1479
|
-
for (let e of Object.keys(n)) i[e] = r[e],
|
|
1497
|
+
for (let e of Object.keys(n)) i[e] = r[e], Pt(r, e, n[e]);
|
|
1480
1498
|
return e.oldProperties = i, [t];
|
|
1481
1499
|
}
|
|
1482
1500
|
revert(e) {
|
|
1483
1501
|
let { element: t, oldProperties: n } = e, r = t;
|
|
1484
|
-
if (n) for (let e of Object.keys(n))
|
|
1502
|
+
if (n) for (let e of Object.keys(n)) Pt(r, e, n[e]);
|
|
1485
1503
|
return [t];
|
|
1486
1504
|
}
|
|
1487
|
-
},
|
|
1488
|
-
function
|
|
1505
|
+
}, It = "element.updateProperties";
|
|
1506
|
+
function Lt(e) {
|
|
1489
1507
|
let t = {};
|
|
1490
1508
|
for (let [n, r] of Object.entries(e)) r !== void 0 && (t[n] = r);
|
|
1491
1509
|
return t;
|
|
1492
1510
|
}
|
|
1493
|
-
var
|
|
1511
|
+
var Rt = class {
|
|
1494
1512
|
commandStack;
|
|
1495
1513
|
static $inject = ["commandStack"];
|
|
1496
1514
|
constructor(e) {
|
|
1497
|
-
this.commandStack = e, e.registerHandler(
|
|
1515
|
+
this.commandStack = e, e.registerHandler(It, Ft);
|
|
1498
1516
|
}
|
|
1499
1517
|
updateProperties(e, t) {
|
|
1500
|
-
this.commandStack.execute(
|
|
1518
|
+
this.commandStack.execute(It, {
|
|
1501
1519
|
element: e,
|
|
1502
1520
|
properties: t
|
|
1503
1521
|
});
|
|
1504
1522
|
}
|
|
1505
1523
|
updateLabel(e, t) {
|
|
1506
1524
|
if (e.wardleyType === "note") {
|
|
1507
|
-
let { width: n, height: r } =
|
|
1525
|
+
let { width: n, height: r } = g(t), i = e.x + e.width / 2, a = e.y + e.height / 2;
|
|
1508
1526
|
this.updateProperties(e, {
|
|
1509
1527
|
wardleyLabel: t,
|
|
1510
1528
|
width: n,
|
|
@@ -1517,8 +1535,8 @@ var z = class {
|
|
|
1517
1535
|
this.updateProperties(e, { wardleyLabel: t });
|
|
1518
1536
|
}
|
|
1519
1537
|
evolveComponent(e, t, n = {}) {
|
|
1520
|
-
let r =
|
|
1521
|
-
r <= e.evolution || this.updateProperties(e, { movement:
|
|
1538
|
+
let r = zt(t);
|
|
1539
|
+
r <= e.evolution || this.updateProperties(e, { movement: Lt({
|
|
1522
1540
|
targetEvolution: r,
|
|
1523
1541
|
newLabel: n.newLabel,
|
|
1524
1542
|
method: n.method
|
|
@@ -1543,12 +1561,12 @@ var z = class {
|
|
|
1543
1561
|
this.updateProperties(e, { color: t });
|
|
1544
1562
|
}
|
|
1545
1563
|
};
|
|
1546
|
-
function
|
|
1564
|
+
function zt(e) {
|
|
1547
1565
|
return e < 0 ? 0 : e > 1 ? 1 : e;
|
|
1548
1566
|
}
|
|
1549
1567
|
//#endregion
|
|
1550
1568
|
//#region src/modeling/WardleyCopyPaste.ts
|
|
1551
|
-
var
|
|
1569
|
+
var Bt = 24, Vt = [
|
|
1552
1570
|
"wardleyType",
|
|
1553
1571
|
"evolution",
|
|
1554
1572
|
"visibility",
|
|
@@ -1565,13 +1583,13 @@ var Rt = 24, zt = [
|
|
|
1565
1583
|
"drawingPoints",
|
|
1566
1584
|
"closed",
|
|
1567
1585
|
"strokeStyle"
|
|
1568
|
-
],
|
|
1586
|
+
], Ht = [
|
|
1569
1587
|
"wardleyType",
|
|
1570
1588
|
"bidirectional",
|
|
1571
1589
|
"flowValue",
|
|
1572
1590
|
"linkLabel"
|
|
1573
1591
|
];
|
|
1574
|
-
function
|
|
1592
|
+
function Ut(e, t) {
|
|
1575
1593
|
let n = {};
|
|
1576
1594
|
for (let r of t) {
|
|
1577
1595
|
let t = e[r];
|
|
@@ -1579,7 +1597,7 @@ function Vt(e, t) {
|
|
|
1579
1597
|
}
|
|
1580
1598
|
return n;
|
|
1581
1599
|
}
|
|
1582
|
-
var
|
|
1600
|
+
var Wt = class {
|
|
1583
1601
|
selection;
|
|
1584
1602
|
modeling;
|
|
1585
1603
|
elementFactory;
|
|
@@ -1602,21 +1620,21 @@ var Ht = class {
|
|
|
1602
1620
|
this.selection = e, this.modeling = t, this.elementFactory = n, this.elementRegistry = r, this.canvas = i, this.create = a, this.mouse = o;
|
|
1603
1621
|
}
|
|
1604
1622
|
copy() {
|
|
1605
|
-
let e = this.selection.get().filter((e) =>
|
|
1623
|
+
let e = this.selection.get().filter((e) => T(e));
|
|
1606
1624
|
if (!e.length) return !1;
|
|
1607
1625
|
let t = new Map(e.map((e, t) => [e, t])), n = [], r = /* @__PURE__ */ new Set();
|
|
1608
1626
|
for (let i of e) for (let e of [...i.incoming ?? [], ...i.outgoing ?? []]) {
|
|
1609
|
-
if (!
|
|
1627
|
+
if (!E(e) || r.has(e)) continue;
|
|
1610
1628
|
let i = t.get(e.source), a = t.get(e.target);
|
|
1611
1629
|
i === void 0 || a === void 0 || (r.add(e), n.push({
|
|
1612
1630
|
sourceIdx: i,
|
|
1613
1631
|
targetIdx: a,
|
|
1614
|
-
props:
|
|
1632
|
+
props: Ut(e, Ht)
|
|
1615
1633
|
}));
|
|
1616
1634
|
}
|
|
1617
1635
|
return this.clipboard = {
|
|
1618
1636
|
shapes: e.map((e) => ({
|
|
1619
|
-
props:
|
|
1637
|
+
props: Ut(e, Vt),
|
|
1620
1638
|
x: e.x,
|
|
1621
1639
|
y: e.y,
|
|
1622
1640
|
width: e.width,
|
|
@@ -1650,13 +1668,13 @@ var Ht = class {
|
|
|
1650
1668
|
...structuredClone(e.props),
|
|
1651
1669
|
source: n[e.sourceIdx],
|
|
1652
1670
|
target: n[e.targetIdx],
|
|
1653
|
-
waypoints: [
|
|
1671
|
+
waypoints: [Gt(n[e.sourceIdx]), Gt(n[e.targetIdx])]
|
|
1654
1672
|
}))
|
|
1655
1673
|
};
|
|
1656
1674
|
}
|
|
1657
1675
|
insertWithOffset(e) {
|
|
1658
1676
|
this.pasteCount++;
|
|
1659
|
-
let t =
|
|
1677
|
+
let t = Bt * this.pasteCount, n = Kt(e.shapes), r = this.modeling.createElements([...e.shapes, ...e.connections], {
|
|
1660
1678
|
x: n.cx + t,
|
|
1661
1679
|
y: n.cy + t
|
|
1662
1680
|
}, this.canvas.getRootElement());
|
|
@@ -1675,13 +1693,13 @@ var Ht = class {
|
|
|
1675
1693
|
});
|
|
1676
1694
|
}
|
|
1677
1695
|
};
|
|
1678
|
-
function
|
|
1696
|
+
function Gt(e) {
|
|
1679
1697
|
return {
|
|
1680
1698
|
x: e.x + e.width / 2,
|
|
1681
1699
|
y: e.y + e.height / 2
|
|
1682
1700
|
};
|
|
1683
1701
|
}
|
|
1684
|
-
function
|
|
1702
|
+
function Kt(e) {
|
|
1685
1703
|
let t = Math.min(...e.map((e) => e.x)), n = Math.min(...e.map((e) => e.y)), r = Math.max(...e.map((e) => e.x + e.width)), i = Math.max(...e.map((e) => e.y + e.height));
|
|
1686
1704
|
return {
|
|
1687
1705
|
cx: (t + r) / 2,
|
|
@@ -1690,12 +1708,12 @@ function Wt(e) {
|
|
|
1690
1708
|
}
|
|
1691
1709
|
//#endregion
|
|
1692
1710
|
//#region src/modeling/index.ts
|
|
1693
|
-
var
|
|
1711
|
+
var qt = {
|
|
1694
1712
|
__depends__: [ge, ce],
|
|
1695
1713
|
__init__: ["wardleyModeling"],
|
|
1696
|
-
wardleyModeling: ["type",
|
|
1697
|
-
wardleyCopyPaste: ["type",
|
|
1698
|
-
},
|
|
1714
|
+
wardleyModeling: ["type", Rt],
|
|
1715
|
+
wardleyCopyPaste: ["type", Wt]
|
|
1716
|
+
}, Jt = {
|
|
1699
1717
|
__depends__: [_e],
|
|
1700
1718
|
__init__: ["wardleyLassoBehavior"],
|
|
1701
1719
|
wardleyLassoBehavior: ["type", class {
|
|
@@ -1718,33 +1736,33 @@ var Gt = {
|
|
|
1718
1736
|
});
|
|
1719
1737
|
}
|
|
1720
1738
|
}]
|
|
1721
|
-
},
|
|
1739
|
+
}, Yt = /* @__PURE__ */ new Set([
|
|
1722
1740
|
"component",
|
|
1723
1741
|
"anchor",
|
|
1724
1742
|
"submap",
|
|
1725
1743
|
"pipeline"
|
|
1726
1744
|
]);
|
|
1727
|
-
function
|
|
1728
|
-
return
|
|
1745
|
+
function z(e) {
|
|
1746
|
+
return T(e) && Yt.has(e.wardleyType);
|
|
1729
1747
|
}
|
|
1730
|
-
function
|
|
1748
|
+
function Xt(e, t) {
|
|
1731
1749
|
return (e.outgoing ?? []).some((e) => e.target === t) || (e.incoming ?? []).some((e) => e.source === t);
|
|
1732
1750
|
}
|
|
1733
|
-
var
|
|
1751
|
+
var Zt = class extends ve {
|
|
1734
1752
|
static $inject = ["eventBus"];
|
|
1735
1753
|
constructor(e) {
|
|
1736
1754
|
super(e);
|
|
1737
1755
|
}
|
|
1738
1756
|
init() {
|
|
1739
|
-
this.addRule("connection.start", (e) =>
|
|
1757
|
+
this.addRule("connection.start", (e) => z(e.source)), this.addRule("connection.create", (e) => {
|
|
1740
1758
|
let { source: t, target: n } = e;
|
|
1741
|
-
return !
|
|
1742
|
-
}), this.addRule(["shape.move", "elements.move"], () => !0), this.addRule("shape.create", () => !0), this.addRule("elements.create", () => !0), this.addRule("shape.resize", (e) =>
|
|
1759
|
+
return !z(t) || !z(n) || t === n || Xt(t, n) ? !1 : { wardleyType: "dependency" };
|
|
1760
|
+
}), this.addRule(["shape.move", "elements.move"], () => !0), this.addRule("shape.create", () => !0), this.addRule("elements.create", () => !0), this.addRule("shape.resize", (e) => O(e.shape) || Oe(e.shape));
|
|
1743
1761
|
}
|
|
1744
|
-
},
|
|
1762
|
+
}, Qt = {
|
|
1745
1763
|
__init__: ["wardleyRules"],
|
|
1746
|
-
wardleyRules: ["type",
|
|
1747
|
-
},
|
|
1764
|
+
wardleyRules: ["type", Zt]
|
|
1765
|
+
}, $t = 8, en = {
|
|
1748
1766
|
__init__: ["stageSnapping"],
|
|
1749
1767
|
stageSnapping: ["type", class {
|
|
1750
1768
|
static $inject = ["eventBus", "evolutionGrid"];
|
|
@@ -1760,7 +1778,7 @@ var Yt = class extends ve {
|
|
|
1760
1778
|
let t = e.context?.shape;
|
|
1761
1779
|
if (!t) return;
|
|
1762
1780
|
let r = t.x + t.width / 2 + e.dx;
|
|
1763
|
-
for (let t of n()) if (Math.abs(r - t) <=
|
|
1781
|
+
for (let t of n()) if (Math.abs(r - t) <= $t) {
|
|
1764
1782
|
let n = t - r;
|
|
1765
1783
|
e.dx += n, e.x += n;
|
|
1766
1784
|
break;
|
|
@@ -1772,7 +1790,7 @@ var Yt = class extends ve {
|
|
|
1772
1790
|
"resize.end"
|
|
1773
1791
|
], 1500, (e) => {
|
|
1774
1792
|
if (!e.originalEvent?.shiftKey && typeof e.x == "number") {
|
|
1775
|
-
for (let t of n()) if (Math.abs(e.x - t) <=
|
|
1793
|
+
for (let t of n()) if (Math.abs(e.x - t) <= $t) {
|
|
1776
1794
|
r(e, t);
|
|
1777
1795
|
break;
|
|
1778
1796
|
}
|
|
@@ -1780,45 +1798,45 @@ var Yt = class extends ve {
|
|
|
1780
1798
|
});
|
|
1781
1799
|
}
|
|
1782
1800
|
}]
|
|
1783
|
-
},
|
|
1784
|
-
draw:
|
|
1785
|
-
lasso:
|
|
1786
|
-
component: V(
|
|
1787
|
-
market: V(
|
|
1788
|
-
ecosystem: V(
|
|
1789
|
-
anchor:
|
|
1790
|
-
pipeline:
|
|
1791
|
-
note:
|
|
1792
|
-
annotation:
|
|
1793
|
-
accelerator:
|
|
1794
|
-
deaccelerator:
|
|
1795
|
-
submap:
|
|
1801
|
+
}, B = (e) => `<svg width="24" height="24" viewBox="0 0 24 24" class="wardley-palette-svg">${e}</svg>`, V = (e = "") => `<circle cx="12" cy="12" r="7" fill="${_.componentFill}" stroke="${_.stroke}" stroke-width="2"/>${e}`, H = {
|
|
1802
|
+
draw: B(`<polyline points="3,18 8.5,7 14,14 21,4" fill="none" stroke="${_.ink}" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/><circle cx="3" cy="18" r="2.2" fill="${_.componentFill}" stroke="${_.ink}" stroke-width="1.4"/>`),
|
|
1803
|
+
lasso: B(`<rect x="3" y="3" width="13" height="13" rx="2" fill="none" stroke="${_.ink}" stroke-width="1.5" stroke-dasharray="3 2.5"/><path d="M13.5 13.5l7 2.7-3 1.3-1.3 3z" fill="${_.ink}"/>`),
|
|
1804
|
+
component: B(V()),
|
|
1805
|
+
market: B(V(`<circle cx="12" cy="10" r="1.4" fill="${_.stroke}"/><circle cx="10.2" cy="13.4" r="1.4" fill="${_.stroke}"/><circle cx="13.8" cy="13.4" r="1.4" fill="${_.stroke}"/>`)),
|
|
1806
|
+
ecosystem: B(V(`<circle cx="12" cy="12" r="10" fill="none" stroke="${_.stroke}" stroke-width="1.25" stroke-dasharray="1.5 3" stroke-linecap="round"/>`)),
|
|
1807
|
+
anchor: B(`<path d="${M}" fill="${_.ink}"/>`),
|
|
1808
|
+
pipeline: B(`<rect x="9.5" y="2.5" width="5.5" height="5.5" fill="${_.componentFill}" stroke="${_.stroke}" stroke-width="1.5"/><rect x="2" y="10" width="20" height="9" rx="2" fill="none" stroke="${_.pipeline}" stroke-width="1.25" stroke-dasharray="3 2"/><circle cx="7" cy="14.5" r="2.2" fill="${_.componentFill}" stroke="${_.stroke}" stroke-width="1.2"/><circle cx="17" cy="14.5" r="2.2" fill="${_.componentFill}" stroke="${_.stroke}" stroke-width="1.2"/>`),
|
|
1809
|
+
note: B(`<g stroke="${_.noteText}" stroke-width="1.5" stroke-linecap="round"><line x1="5" y1="8" x2="19" y2="8"/><line x1="5" y1="12" x2="19" y2="12"/><line x1="5" y1="16" x2="13" y2="16"/></g>`),
|
|
1810
|
+
annotation: B(`<circle cx="12" cy="12" r="8" fill="${_.annotationFill}" stroke="${_.stroke}" stroke-width="1.25"/>` + ((e, t) => `<text x="12" text-anchor="middle" font-family="${y.family}" ${t}>${e}</text>`)("1", `y="16" font-size="11" font-weight="700" fill="${_.stroke}"`)),
|
|
1811
|
+
accelerator: B(`<path d="${nt}" fill="${_.accelerator}"/>`),
|
|
1812
|
+
deaccelerator: B(`<path d="${rt}" fill="${_.deaccelerator}"/>`),
|
|
1813
|
+
submap: B(`<rect x="4" y="4" width="16" height="16" rx="3" fill="${_.componentFill}" stroke="${_.stroke}" stroke-width="2"/><rect x="7.5" y="7.5" width="9" height="9" rx="1.5" fill="none" stroke="${_.stroke}" stroke-width="1"/>`)
|
|
1796
1814
|
};
|
|
1797
|
-
function
|
|
1798
|
-
let t =
|
|
1799
|
-
fill:
|
|
1800
|
-
stroke:
|
|
1815
|
+
function U(e) {
|
|
1816
|
+
let t = v[e] ?? {
|
|
1817
|
+
fill: _.band,
|
|
1818
|
+
stroke: _.dependency
|
|
1801
1819
|
};
|
|
1802
|
-
return
|
|
1820
|
+
return B(`<rect x="2" y="6" width="20" height="12" rx="3" fill="${t.fill}" stroke="${t.stroke}" stroke-width="1.5" stroke-dasharray="3 2"/>`);
|
|
1803
1821
|
}
|
|
1804
1822
|
//#endregion
|
|
1805
1823
|
//#region src/palette/WardleyPaletteProvider.ts
|
|
1806
|
-
var
|
|
1824
|
+
var W = "wardley-1-blocks", G = "wardley-2-strategy", tn = [
|
|
1807
1825
|
{
|
|
1808
1826
|
key: "component",
|
|
1809
1827
|
type: "component",
|
|
1810
1828
|
label: "Component",
|
|
1811
1829
|
title: "Component — C",
|
|
1812
|
-
icon:
|
|
1813
|
-
group:
|
|
1830
|
+
icon: H.component,
|
|
1831
|
+
group: W
|
|
1814
1832
|
},
|
|
1815
1833
|
{
|
|
1816
1834
|
key: "market",
|
|
1817
1835
|
type: "component",
|
|
1818
1836
|
label: "Market",
|
|
1819
1837
|
title: "Market component",
|
|
1820
|
-
icon:
|
|
1821
|
-
group:
|
|
1838
|
+
icon: H.market,
|
|
1839
|
+
group: W,
|
|
1822
1840
|
extra: { market: !0 }
|
|
1823
1841
|
},
|
|
1824
1842
|
{
|
|
@@ -1826,8 +1844,8 @@ var G = "wardley-1-blocks", K = "wardley-2-strategy", $t = [
|
|
|
1826
1844
|
type: "component",
|
|
1827
1845
|
label: "Ecosystem",
|
|
1828
1846
|
title: "Ecosystem component",
|
|
1829
|
-
icon:
|
|
1830
|
-
group:
|
|
1847
|
+
icon: H.ecosystem,
|
|
1848
|
+
group: W,
|
|
1831
1849
|
extra: { ecosystem: !0 }
|
|
1832
1850
|
},
|
|
1833
1851
|
{
|
|
@@ -1835,32 +1853,32 @@ var G = "wardley-1-blocks", K = "wardley-2-strategy", $t = [
|
|
|
1835
1853
|
type: "anchor",
|
|
1836
1854
|
label: "User",
|
|
1837
1855
|
title: "Anchor / User — U",
|
|
1838
|
-
icon:
|
|
1839
|
-
group:
|
|
1856
|
+
icon: H.anchor,
|
|
1857
|
+
group: W
|
|
1840
1858
|
},
|
|
1841
1859
|
{
|
|
1842
1860
|
key: "pipeline",
|
|
1843
1861
|
type: "pipeline",
|
|
1844
1862
|
label: "Pipeline",
|
|
1845
1863
|
title: "Pipeline",
|
|
1846
|
-
icon:
|
|
1847
|
-
group:
|
|
1864
|
+
icon: H.pipeline,
|
|
1865
|
+
group: W
|
|
1848
1866
|
},
|
|
1849
1867
|
{
|
|
1850
1868
|
key: "submap",
|
|
1851
1869
|
type: "submap",
|
|
1852
1870
|
label: "Submap",
|
|
1853
1871
|
title: "Submap",
|
|
1854
|
-
icon:
|
|
1855
|
-
group:
|
|
1872
|
+
icon: H.submap,
|
|
1873
|
+
group: W
|
|
1856
1874
|
},
|
|
1857
1875
|
{
|
|
1858
1876
|
key: "pioneers",
|
|
1859
1877
|
type: "attitude",
|
|
1860
1878
|
label: "Pioneers",
|
|
1861
1879
|
title: "Pioneers region",
|
|
1862
|
-
icon:
|
|
1863
|
-
group:
|
|
1880
|
+
icon: U("pioneers"),
|
|
1881
|
+
group: G,
|
|
1864
1882
|
extra: { attitudeKind: "pioneers" }
|
|
1865
1883
|
},
|
|
1866
1884
|
{
|
|
@@ -1868,8 +1886,8 @@ var G = "wardley-1-blocks", K = "wardley-2-strategy", $t = [
|
|
|
1868
1886
|
type: "attitude",
|
|
1869
1887
|
label: "Settlers",
|
|
1870
1888
|
title: "Settlers region",
|
|
1871
|
-
icon:
|
|
1872
|
-
group:
|
|
1889
|
+
icon: U("settlers"),
|
|
1890
|
+
group: G,
|
|
1873
1891
|
extra: { attitudeKind: "settlers" }
|
|
1874
1892
|
},
|
|
1875
1893
|
{
|
|
@@ -1877,8 +1895,8 @@ var G = "wardley-1-blocks", K = "wardley-2-strategy", $t = [
|
|
|
1877
1895
|
type: "attitude",
|
|
1878
1896
|
label: "Town Planners",
|
|
1879
1897
|
title: "Town Planners region",
|
|
1880
|
-
icon:
|
|
1881
|
-
group:
|
|
1898
|
+
icon: U("townplanners"),
|
|
1899
|
+
group: G,
|
|
1882
1900
|
extra: { attitudeKind: "townplanners" }
|
|
1883
1901
|
},
|
|
1884
1902
|
{
|
|
@@ -1886,8 +1904,8 @@ var G = "wardley-1-blocks", K = "wardley-2-strategy", $t = [
|
|
|
1886
1904
|
type: "accelerator",
|
|
1887
1905
|
label: "Accelerate",
|
|
1888
1906
|
title: "Accelerator",
|
|
1889
|
-
icon:
|
|
1890
|
-
group:
|
|
1907
|
+
icon: H.accelerator,
|
|
1908
|
+
group: G,
|
|
1891
1909
|
extra: { acceleratorDirection: "accelerate" }
|
|
1892
1910
|
},
|
|
1893
1911
|
{
|
|
@@ -1895,8 +1913,8 @@ var G = "wardley-1-blocks", K = "wardley-2-strategy", $t = [
|
|
|
1895
1913
|
type: "accelerator",
|
|
1896
1914
|
label: "Deaccelerate",
|
|
1897
1915
|
title: "Deaccelerator",
|
|
1898
|
-
icon:
|
|
1899
|
-
group:
|
|
1916
|
+
icon: H.deaccelerator,
|
|
1917
|
+
group: G,
|
|
1900
1918
|
extra: { acceleratorDirection: "deaccelerate" }
|
|
1901
1919
|
},
|
|
1902
1920
|
{
|
|
@@ -1904,10 +1922,10 @@ var G = "wardley-1-blocks", K = "wardley-2-strategy", $t = [
|
|
|
1904
1922
|
type: "note",
|
|
1905
1923
|
label: "Note",
|
|
1906
1924
|
title: "Note",
|
|
1907
|
-
icon:
|
|
1925
|
+
icon: H.note,
|
|
1908
1926
|
group: "wardley-3-notes"
|
|
1909
1927
|
}
|
|
1910
|
-
],
|
|
1928
|
+
], nn = {
|
|
1911
1929
|
__init__: ["wardleyPaletteProvider"],
|
|
1912
1930
|
wardleyPaletteProvider: ["type", class {
|
|
1913
1931
|
create;
|
|
@@ -1929,15 +1947,15 @@ var G = "wardley-1-blocks", K = "wardley-2-strategy", $t = [
|
|
|
1929
1947
|
e["lasso-tool"] = {
|
|
1930
1948
|
group: "tools",
|
|
1931
1949
|
title: "Selection tool — L (or Shift+drag)",
|
|
1932
|
-
html: `<div class="entry wardley-palette-entry" title="Selection tool — L (or Shift+drag)">${
|
|
1950
|
+
html: `<div class="entry wardley-palette-entry" title="Selection tool — L (or Shift+drag)">${H.lasso}</div>`,
|
|
1933
1951
|
action: { click: (e) => this.lassoTool.activateSelection(e) }
|
|
1934
1952
|
}, e["draw-tool"] = {
|
|
1935
1953
|
group: "tools",
|
|
1936
1954
|
title: "Draw — click point by point, double-click/Enter finishes, click the start point to close",
|
|
1937
|
-
html: `<div class="entry wardley-palette-entry" title="Draw — click point by point, double-click/Enter finishes, click the start point to close">${
|
|
1955
|
+
html: `<div class="entry wardley-palette-entry" title="Draw — click point by point, double-click/Enter finishes, click the start point to close">${H.draw}</div>`,
|
|
1938
1956
|
action: { click: () => this.drawTool.toggle() }
|
|
1939
1957
|
};
|
|
1940
|
-
for (let t of
|
|
1958
|
+
for (let t of tn) {
|
|
1941
1959
|
let n = (e) => {
|
|
1942
1960
|
let n = this.factory.createNew(t.type, t.label, t.extra ?? {});
|
|
1943
1961
|
this.create.start(e, n);
|
|
@@ -1955,86 +1973,86 @@ var G = "wardley-1-blocks", K = "wardley-2-strategy", $t = [
|
|
|
1955
1973
|
return e;
|
|
1956
1974
|
}
|
|
1957
1975
|
}]
|
|
1958
|
-
},
|
|
1976
|
+
}, K = "wardley-element-settings", q = {
|
|
1959
1977
|
id: "type",
|
|
1960
1978
|
name: "Type"
|
|
1961
|
-
},
|
|
1979
|
+
}, J = {
|
|
1962
1980
|
id: "method",
|
|
1963
1981
|
name: "Sourcing"
|
|
1964
|
-
},
|
|
1982
|
+
}, rn = {
|
|
1965
1983
|
id: "props",
|
|
1966
1984
|
name: "Properties"
|
|
1967
1985
|
};
|
|
1968
|
-
function
|
|
1986
|
+
function Y(e, t) {
|
|
1969
1987
|
return e ? `✓ ${t}` : t;
|
|
1970
1988
|
}
|
|
1971
|
-
var
|
|
1989
|
+
var an = class {
|
|
1972
1990
|
modeling;
|
|
1973
1991
|
static $inject = ["popupMenu", "wardleyModeling"];
|
|
1974
1992
|
constructor(e, t) {
|
|
1975
|
-
this.modeling = t, e.registerProvider(
|
|
1993
|
+
this.modeling = t, e.registerProvider(K, this);
|
|
1976
1994
|
}
|
|
1977
1995
|
getPopupMenuEntries(e) {
|
|
1978
1996
|
let t = Array.isArray(e) ? e[0] : e;
|
|
1979
|
-
return
|
|
1997
|
+
return D(t) ? this.componentEntries(t) : {};
|
|
1980
1998
|
}
|
|
1981
1999
|
componentEntries(e) {
|
|
1982
2000
|
let t = e.decorators ?? {}, n = t.ecosystem ? "ecosystem" : t.market ? "market" : "normal", r = t.method;
|
|
1983
2001
|
return {
|
|
1984
2002
|
"type-normal": {
|
|
1985
|
-
label:
|
|
1986
|
-
group:
|
|
2003
|
+
label: Y(n === "normal", "Normal"),
|
|
2004
|
+
group: q,
|
|
1987
2005
|
action: () => this.modeling.setMarketEcosystem(e, void 0)
|
|
1988
2006
|
},
|
|
1989
2007
|
"type-market": {
|
|
1990
|
-
label:
|
|
1991
|
-
group:
|
|
2008
|
+
label: Y(n === "market", "Market"),
|
|
2009
|
+
group: q,
|
|
1992
2010
|
action: () => this.modeling.setMarketEcosystem(e, "market")
|
|
1993
2011
|
},
|
|
1994
2012
|
"type-ecosystem": {
|
|
1995
|
-
label:
|
|
1996
|
-
group:
|
|
2013
|
+
label: Y(n === "ecosystem", "Ecosystem"),
|
|
2014
|
+
group: q,
|
|
1997
2015
|
action: () => this.modeling.setMarketEcosystem(e, "ecosystem")
|
|
1998
2016
|
},
|
|
1999
2017
|
"method-none": {
|
|
2000
|
-
label:
|
|
2001
|
-
group:
|
|
2018
|
+
label: Y(!r, "None"),
|
|
2019
|
+
group: J,
|
|
2002
2020
|
action: () => this.modeling.setMethod(e, void 0)
|
|
2003
2021
|
},
|
|
2004
2022
|
"method-build": {
|
|
2005
|
-
label:
|
|
2006
|
-
group:
|
|
2023
|
+
label: Y(r === "build", "Build"),
|
|
2024
|
+
group: J,
|
|
2007
2025
|
action: () => this.modeling.setMethod(e, "build")
|
|
2008
2026
|
},
|
|
2009
2027
|
"method-buy": {
|
|
2010
|
-
label:
|
|
2011
|
-
group:
|
|
2028
|
+
label: Y(r === "buy", "Buy"),
|
|
2029
|
+
group: J,
|
|
2012
2030
|
action: () => this.modeling.setMethod(e, "buy")
|
|
2013
2031
|
},
|
|
2014
2032
|
"method-outsource": {
|
|
2015
|
-
label:
|
|
2016
|
-
group:
|
|
2033
|
+
label: Y(r === "outsource", "Outsource"),
|
|
2034
|
+
group: J,
|
|
2017
2035
|
action: () => this.modeling.setMethod(e, "outsource")
|
|
2018
2036
|
},
|
|
2019
2037
|
"prop-inertia": {
|
|
2020
|
-
label:
|
|
2021
|
-
group:
|
|
2038
|
+
label: Y(!!t.inertia, "Inertia"),
|
|
2039
|
+
group: rn,
|
|
2022
2040
|
action: () => this.modeling.toggleInertia(e)
|
|
2023
2041
|
}
|
|
2024
2042
|
};
|
|
2025
2043
|
}
|
|
2026
|
-
},
|
|
2044
|
+
}, on = {
|
|
2027
2045
|
__init__: ["wardleyElementSettings"],
|
|
2028
|
-
wardleyElementSettings: ["type",
|
|
2046
|
+
wardleyElementSettings: ["type", an]
|
|
2029
2047
|
};
|
|
2030
2048
|
//#endregion
|
|
2031
2049
|
//#region src/context-pad/WardleyContextPadProvider.ts
|
|
2032
|
-
function
|
|
2033
|
-
return `<div class="entry wardley-cp-entry"${n ? " draggable=\"true\"" : ""} title="${t}">${
|
|
2050
|
+
function X(e, t, n = !1) {
|
|
2051
|
+
return `<div class="entry wardley-cp-entry"${n ? " draggable=\"true\"" : ""} title="${t}">${ut(e)}</div>`;
|
|
2034
2052
|
}
|
|
2035
2053
|
//#endregion
|
|
2036
2054
|
//#region src/context-pad/index.ts
|
|
2037
|
-
var
|
|
2055
|
+
var sn = {
|
|
2038
2056
|
__init__: ["wardleyContextPadProvider"],
|
|
2039
2057
|
wardleyContextPadProvider: ["type", class {
|
|
2040
2058
|
modeling;
|
|
@@ -2062,24 +2080,24 @@ var an = {
|
|
|
2062
2080
|
this.modeling = t, this.connect = n, this.create = r, this.popupMenu = i, this.wardleyModeling = a, this.labelEditing = o, this.evolveDragging = s, this.factory = c, this.colorPicker = l, e.registerProvider(this);
|
|
2063
2081
|
}
|
|
2064
2082
|
getContextPadEntries(e) {
|
|
2065
|
-
if (
|
|
2083
|
+
if (E(e)) {
|
|
2066
2084
|
let t = e, n = t.wardleyType === "flow";
|
|
2067
2085
|
return {
|
|
2068
2086
|
"edit-value": {
|
|
2069
2087
|
group: "edit",
|
|
2070
2088
|
title: n ? "Edit flow value" : "Edit link annotation",
|
|
2071
|
-
html:
|
|
2089
|
+
html: X(N, n ? "Edit flow value" : "Edit link annotation"),
|
|
2072
2090
|
action: { click: () => this.labelEditing.activateConnection(t) }
|
|
2073
2091
|
},
|
|
2074
2092
|
delete: {
|
|
2075
2093
|
group: "edit",
|
|
2076
2094
|
title: "Delete connection",
|
|
2077
|
-
html:
|
|
2095
|
+
html: X(P, "Delete connection"),
|
|
2078
2096
|
action: { click: () => this.modeling.removeElements([e]) }
|
|
2079
2097
|
}
|
|
2080
2098
|
};
|
|
2081
2099
|
}
|
|
2082
|
-
if (!
|
|
2100
|
+
if (!T(e)) return {};
|
|
2083
2101
|
let t = e, n = {};
|
|
2084
2102
|
if (t.wardleyType === "component" || t.wardleyType === "anchor" || t.wardleyType === "submap" || t.wardleyType === "pipeline") {
|
|
2085
2103
|
let e = (e) => {
|
|
@@ -2089,7 +2107,7 @@ var an = {
|
|
|
2089
2107
|
n.append = {
|
|
2090
2108
|
group: "edit",
|
|
2091
2109
|
title: "Append component (auto-connect)",
|
|
2092
|
-
html:
|
|
2110
|
+
html: X(Ve, "Append component", !0),
|
|
2093
2111
|
action: {
|
|
2094
2112
|
click: e,
|
|
2095
2113
|
dragstart: e
|
|
@@ -2101,7 +2119,7 @@ var an = {
|
|
|
2101
2119
|
n.connect = {
|
|
2102
2120
|
group: "edit",
|
|
2103
2121
|
title: "Connect to existing element",
|
|
2104
|
-
html:
|
|
2122
|
+
html: X(He, "Connect to existing element", !0),
|
|
2105
2123
|
action: {
|
|
2106
2124
|
click: r,
|
|
2107
2125
|
dragstart: r
|
|
@@ -2112,7 +2130,7 @@ var an = {
|
|
|
2112
2130
|
if (t.movement) n["evolve-clear"] = {
|
|
2113
2131
|
group: "wardley",
|
|
2114
2132
|
title: "Remove evolve",
|
|
2115
|
-
html:
|
|
2133
|
+
html: X(We, "Remove evolve"),
|
|
2116
2134
|
action: { click: () => this.wardleyModeling.clearMovement(t) }
|
|
2117
2135
|
};
|
|
2118
2136
|
else if (t.evolution < .999) {
|
|
@@ -2120,7 +2138,7 @@ var an = {
|
|
|
2120
2138
|
n.evolve = {
|
|
2121
2139
|
group: "wardley",
|
|
2122
2140
|
title: "Evolve: drag to set the target maturity",
|
|
2123
|
-
html:
|
|
2141
|
+
html: X(Ue, "Evolve: drag to set the target maturity", !0),
|
|
2124
2142
|
action: {
|
|
2125
2143
|
click: e,
|
|
2126
2144
|
dragstart: e
|
|
@@ -2130,10 +2148,10 @@ var an = {
|
|
|
2130
2148
|
n.settings = {
|
|
2131
2149
|
group: "wardley",
|
|
2132
2150
|
title: "Settings (type, sourcing, inertia)",
|
|
2133
|
-
html:
|
|
2151
|
+
html: X(et, "Settings"),
|
|
2134
2152
|
action: { click: (e) => {
|
|
2135
2153
|
let n = e;
|
|
2136
|
-
this.popupMenu.open(t,
|
|
2154
|
+
this.popupMenu.open(t, K, {
|
|
2137
2155
|
x: n.clientX,
|
|
2138
2156
|
y: n.clientY
|
|
2139
2157
|
});
|
|
@@ -2145,14 +2163,14 @@ var an = {
|
|
|
2145
2163
|
n["stroke-style"] = {
|
|
2146
2164
|
group: "wardley",
|
|
2147
2165
|
title: r,
|
|
2148
|
-
html:
|
|
2166
|
+
html: X(it, r),
|
|
2149
2167
|
action: { click: () => this.wardleyModeling.updateProperties(t, { strokeStyle: e }) }
|
|
2150
2168
|
};
|
|
2151
2169
|
}
|
|
2152
2170
|
n.color = {
|
|
2153
2171
|
group: "wardley",
|
|
2154
2172
|
title: "Color",
|
|
2155
|
-
html:
|
|
2173
|
+
html: X(tt, "Color"),
|
|
2156
2174
|
action: { click: (e) => {
|
|
2157
2175
|
let n = e;
|
|
2158
2176
|
this.colorPicker.open(t, n.clientX, n.clientY);
|
|
@@ -2162,17 +2180,17 @@ var an = {
|
|
|
2162
2180
|
return i && (n["open-link"] = {
|
|
2163
2181
|
group: "wardley",
|
|
2164
2182
|
title: `Open link (${i})`,
|
|
2165
|
-
html:
|
|
2183
|
+
html: X(He, "Open link"),
|
|
2166
2184
|
action: { click: () => window.open(i, "_blank", "noopener") }
|
|
2167
2185
|
}), t.wardleyType !== "drawing" && (n["edit-label"] = {
|
|
2168
2186
|
group: "edit",
|
|
2169
2187
|
title: "Edit label",
|
|
2170
|
-
html:
|
|
2188
|
+
html: X(N, "Edit label"),
|
|
2171
2189
|
action: { click: () => this.labelEditing.activate(t) }
|
|
2172
2190
|
}), n.delete = {
|
|
2173
2191
|
group: "edit",
|
|
2174
2192
|
title: "Delete",
|
|
2175
|
-
html:
|
|
2193
|
+
html: X(P, "Delete"),
|
|
2176
2194
|
action: { click: () => this.modeling.removeElements([t]) }
|
|
2177
2195
|
}, n;
|
|
2178
2196
|
}
|
|
@@ -2180,10 +2198,10 @@ var an = {
|
|
|
2180
2198
|
};
|
|
2181
2199
|
//#endregion
|
|
2182
2200
|
//#region src/label-editing/WardleyLabelEditing.ts
|
|
2183
|
-
function
|
|
2201
|
+
function cn(e) {
|
|
2184
2202
|
return e.replace(/->/g, "→").replace(/;/g, ",").replace(/\[/g, "(").replace(/\]/g, ")").trim();
|
|
2185
2203
|
}
|
|
2186
|
-
var
|
|
2204
|
+
var ln = class {
|
|
2187
2205
|
canvas;
|
|
2188
2206
|
modeling;
|
|
2189
2207
|
factory;
|
|
@@ -2196,7 +2214,7 @@ var sn = class {
|
|
|
2196
2214
|
active = null;
|
|
2197
2215
|
constructor(e, t, n, r) {
|
|
2198
2216
|
this.canvas = t, this.modeling = n, this.factory = r, e.on("element.dblclick", (e) => {
|
|
2199
|
-
|
|
2217
|
+
T(e.element) ? this.activate(e.element) : E(e.element) && this.activateConnection(e.element);
|
|
2200
2218
|
}), e.on([
|
|
2201
2219
|
"element.mousedown",
|
|
2202
2220
|
"drag.init",
|
|
@@ -2215,7 +2233,7 @@ var sn = class {
|
|
|
2215
2233
|
c || (c = !0, s.removeEventListener("keydown", d), s.removeEventListener("blur", f), s.remove(), this.active = null);
|
|
2216
2234
|
}, u = () => {
|
|
2217
2235
|
if (c) return;
|
|
2218
|
-
let t =
|
|
2236
|
+
let t = cn(s.value), n = t && t !== e.wardleyLabel;
|
|
2219
2237
|
if (l(), !n) return;
|
|
2220
2238
|
let r = i ? t : this.factory.uniqueLabel(t, e.id);
|
|
2221
2239
|
this.modeling.updateLabel(e, r);
|
|
@@ -2270,10 +2288,10 @@ var sn = class {
|
|
|
2270
2288
|
cancel() {
|
|
2271
2289
|
this.active?.cleanup();
|
|
2272
2290
|
}
|
|
2273
|
-
},
|
|
2291
|
+
}, Z = {
|
|
2274
2292
|
__init__: ["wardleyLabelEditing"],
|
|
2275
|
-
wardleyLabelEditing: ["type",
|
|
2276
|
-
},
|
|
2293
|
+
wardleyLabelEditing: ["type", ln]
|
|
2294
|
+
}, un = 2, dn = 10, fn = {
|
|
2277
2295
|
arrowleft: {
|
|
2278
2296
|
x: -1,
|
|
2279
2297
|
y: 0
|
|
@@ -2290,7 +2308,7 @@ var sn = class {
|
|
|
2290
2308
|
x: 0,
|
|
2291
2309
|
y: 1
|
|
2292
2310
|
}
|
|
2293
|
-
},
|
|
2311
|
+
}, pn = class {
|
|
2294
2312
|
static $inject = [
|
|
2295
2313
|
"canvas",
|
|
2296
2314
|
"commandStack",
|
|
@@ -2307,7 +2325,7 @@ var sn = class {
|
|
|
2307
2325
|
let u = e.getContainer();
|
|
2308
2326
|
u.hasAttribute("tabindex") || u.setAttribute("tabindex", "0");
|
|
2309
2327
|
let d = (e) => {
|
|
2310
|
-
if (
|
|
2328
|
+
if (mn(e.target)) return;
|
|
2311
2329
|
let l = e.ctrlKey || e.metaKey, u = e.key.toLowerCase();
|
|
2312
2330
|
if (l && u === "z" && !e.shiftKey) e.preventDefault(), t.undo();
|
|
2313
2331
|
else if (l && u === "z" && e.shiftKey || l && u === "y") e.preventDefault(), t.redo();
|
|
@@ -2328,11 +2346,11 @@ var sn = class {
|
|
|
2328
2346
|
e.preventDefault();
|
|
2329
2347
|
let t = s.getLastMoveEvent();
|
|
2330
2348
|
c.activateSelection(t ?? e, !!t);
|
|
2331
|
-
} else if (u in
|
|
2349
|
+
} else if (u in fn && !l) {
|
|
2332
2350
|
let t = n.get();
|
|
2333
2351
|
if (t.length) {
|
|
2334
2352
|
e.preventDefault();
|
|
2335
|
-
let n = e.shiftKey ?
|
|
2353
|
+
let n = e.shiftKey ? dn : un, i = fn[u];
|
|
2336
2354
|
r.moveElements(t, {
|
|
2337
2355
|
x: i.x * n,
|
|
2338
2356
|
y: i.y * n
|
|
@@ -2343,21 +2361,21 @@ var sn = class {
|
|
|
2343
2361
|
document.addEventListener("keydown", d), l.on("diagram.destroy", () => document.removeEventListener("keydown", d));
|
|
2344
2362
|
}
|
|
2345
2363
|
};
|
|
2346
|
-
function
|
|
2364
|
+
function mn(e) {
|
|
2347
2365
|
if (!(e instanceof HTMLElement)) return !1;
|
|
2348
2366
|
let t = e.tagName;
|
|
2349
2367
|
return t === "INPUT" || t === "TEXTAREA" || e.isContentEditable;
|
|
2350
2368
|
}
|
|
2351
2369
|
//#endregion
|
|
2352
2370
|
//#region src/keyboard/index.ts
|
|
2353
|
-
var
|
|
2371
|
+
var hn = {
|
|
2354
2372
|
__init__: ["wardleyKeyboard"],
|
|
2355
|
-
wardleyKeyboard: ["type",
|
|
2356
|
-
}, Q = "wardley.evolve",
|
|
2357
|
-
function
|
|
2373
|
+
wardleyKeyboard: ["type", pn]
|
|
2374
|
+
}, Q = "wardley.evolve", gn = .005, _n = "wardley-evolve-handle";
|
|
2375
|
+
function vn(e) {
|
|
2358
2376
|
return e < 0 ? 0 : e > 1 ? 1 : e;
|
|
2359
2377
|
}
|
|
2360
|
-
var
|
|
2378
|
+
var yn = class {
|
|
2361
2379
|
dragging;
|
|
2362
2380
|
static $inject = [
|
|
2363
2381
|
"eventBus",
|
|
@@ -2373,32 +2391,32 @@ var vn = class {
|
|
|
2373
2391
|
n === void 0 ? delete t.movement : t.movement = n, e.fire("element.changed", { element: t });
|
|
2374
2392
|
}, s = (e, t) => {
|
|
2375
2393
|
let r = i.getContainer().getBoundingClientRect(), a = i.viewbox(), o = a.x + (e - r.left) * (a.width / r.width);
|
|
2376
|
-
return
|
|
2394
|
+
return vn(n.fromCanvas({
|
|
2377
2395
|
x: o,
|
|
2378
2396
|
y: t
|
|
2379
2397
|
}).evolution);
|
|
2380
2398
|
};
|
|
2381
2399
|
i.getContainer().addEventListener("mousedown", (e) => {
|
|
2382
2400
|
let t = e.target;
|
|
2383
|
-
if (!t?.closest(`.${
|
|
2401
|
+
if (!t?.closest(`.${_n}`)) return;
|
|
2384
2402
|
let n = t.closest("[data-element-id]")?.getAttribute("data-element-id"), i = n ? a.get(n) : void 0;
|
|
2385
2403
|
if (!i || i.wardleyType !== "component") return;
|
|
2386
2404
|
e.stopPropagation(), e.preventDefault();
|
|
2387
2405
|
let c = i.movement, l = i.y + i.height / 2, u, d = (e) => {
|
|
2388
2406
|
u = s(e.clientX, l), o(i, { targetEvolution: u });
|
|
2389
2407
|
}, f = () => {
|
|
2390
|
-
document.removeEventListener("mousemove", d), document.removeEventListener("mouseup", f), o(i, c), u !== void 0 && Math.abs(u - i.evolution) >
|
|
2408
|
+
document.removeEventListener("mousemove", d), document.removeEventListener("mouseup", f), o(i, c), u !== void 0 && Math.abs(u - i.evolution) > gn && r.evolveComponent(i, u);
|
|
2391
2409
|
};
|
|
2392
2410
|
document.addEventListener("mousemove", d), document.addEventListener("mouseup", f);
|
|
2393
2411
|
}, !0), e.on(`${Q}.move`, (e) => {
|
|
2394
|
-
let { shape: t } = e.context, r = t.y + t.height / 2, i =
|
|
2412
|
+
let { shape: t } = e.context, r = t.y + t.height / 2, i = vn(n.fromCanvas({
|
|
2395
2413
|
x: e.x,
|
|
2396
2414
|
y: r
|
|
2397
2415
|
}).evolution);
|
|
2398
2416
|
e.context.target = i, o(t, { targetEvolution: i });
|
|
2399
2417
|
}), e.on(`${Q}.end`, (e) => {
|
|
2400
2418
|
let t = e.context, { shape: n, target: i } = t;
|
|
2401
|
-
o(n, t.originalMovement), i !== void 0 && Math.abs(i - n.evolution) >
|
|
2419
|
+
o(n, t.originalMovement), i !== void 0 && Math.abs(i - n.evolution) > gn && r.evolveComponent(n, i), t.committed = !0;
|
|
2402
2420
|
}), e.on(`${Q}.cleanup`, (e) => {
|
|
2403
2421
|
let t = e.context;
|
|
2404
2422
|
t && !t.committed && o(t.shape, t.originalMovement);
|
|
@@ -2414,10 +2432,10 @@ var vn = class {
|
|
|
2414
2432
|
data: { context: n }
|
|
2415
2433
|
});
|
|
2416
2434
|
}
|
|
2417
|
-
},
|
|
2435
|
+
}, bn = {
|
|
2418
2436
|
__init__: ["wardleyEvolveDragging"],
|
|
2419
|
-
wardleyEvolveDragging: ["type",
|
|
2420
|
-
},
|
|
2437
|
+
wardleyEvolveDragging: ["type", yn]
|
|
2438
|
+
}, xn = 500, Sn = class {
|
|
2421
2439
|
static $inject = ["injector", "eventBus"];
|
|
2422
2440
|
constructor(e, t) {
|
|
2423
2441
|
let n = e.get("connectionPreview", !1), r = e.get("wardleyLabelEditing", !1);
|
|
@@ -2442,18 +2460,18 @@ var vn = class {
|
|
|
2442
2460
|
"create.cleanup"
|
|
2443
2461
|
], (e) => {
|
|
2444
2462
|
n.cleanUp(e.context);
|
|
2445
|
-
})), r && t.on("create.end",
|
|
2463
|
+
})), r && t.on("create.end", xn, (e) => {
|
|
2446
2464
|
let { context: t } = e;
|
|
2447
2465
|
if (!t.source || !t.canExecute || !t.shape) return;
|
|
2448
2466
|
let n = t.shape;
|
|
2449
2467
|
setTimeout(() => r.activate(n), 0);
|
|
2450
2468
|
});
|
|
2451
2469
|
}
|
|
2452
|
-
},
|
|
2470
|
+
}, Cn = {
|
|
2453
2471
|
__depends__: [ye],
|
|
2454
2472
|
__init__: ["wardleyAppendBehavior"],
|
|
2455
|
-
wardleyAppendBehavior: ["type",
|
|
2456
|
-
},
|
|
2473
|
+
wardleyAppendBehavior: ["type", Sn]
|
|
2474
|
+
}, wn = class {
|
|
2457
2475
|
canvas;
|
|
2458
2476
|
modeling;
|
|
2459
2477
|
static $inject = [
|
|
@@ -2503,18 +2521,18 @@ var vn = class {
|
|
|
2503
2521
|
close() {
|
|
2504
2522
|
this.popover && (this.popover.remove(), this.popover = void 0, document.removeEventListener("click", this.onDocPointer, !0), document.removeEventListener("keydown", this.onKey, !0));
|
|
2505
2523
|
}
|
|
2506
|
-
},
|
|
2524
|
+
}, Tn = {
|
|
2507
2525
|
__init__: ["wardleyColorPicker"],
|
|
2508
|
-
wardleyColorPicker: ["type",
|
|
2526
|
+
wardleyColorPicker: ["type", wn]
|
|
2509
2527
|
};
|
|
2510
2528
|
//#endregion
|
|
2511
2529
|
//#region src/ordering/WardleyOrderingProvider.ts
|
|
2512
2530
|
function $(e) {
|
|
2513
|
-
return
|
|
2531
|
+
return T(e) && (e.wardleyType === "attitude" || e.wardleyType === "pipeline");
|
|
2514
2532
|
}
|
|
2515
2533
|
//#endregion
|
|
2516
2534
|
//#region src/ordering/index.ts
|
|
2517
|
-
var
|
|
2535
|
+
var En = {
|
|
2518
2536
|
__init__: ["wardleyOrderingProvider"],
|
|
2519
2537
|
wardleyOrderingProvider: ["type", class extends be {
|
|
2520
2538
|
static $inject = ["eventBus"];
|
|
@@ -2523,16 +2541,16 @@ var Tn = {
|
|
|
2523
2541
|
}
|
|
2524
2542
|
getOrdering(e, t) {
|
|
2525
2543
|
let n = t.children ?? [];
|
|
2526
|
-
return
|
|
2544
|
+
return E(e) ? {
|
|
2527
2545
|
parent: t,
|
|
2528
|
-
index: n.filter((t) => t !== e && ($(t) ||
|
|
2546
|
+
index: n.filter((t) => t !== e && ($(t) || E(t))).length
|
|
2529
2547
|
} : $(e) ? {
|
|
2530
2548
|
parent: t,
|
|
2531
2549
|
index: n.filter((t) => t !== e && $(t)).length
|
|
2532
2550
|
} : { parent: t };
|
|
2533
2551
|
}
|
|
2534
2552
|
}]
|
|
2535
|
-
},
|
|
2553
|
+
}, Dn = 12, On = class {
|
|
2536
2554
|
canvas;
|
|
2537
2555
|
eventBus;
|
|
2538
2556
|
modeling;
|
|
@@ -2609,12 +2627,12 @@ var Tn = {
|
|
|
2609
2627
|
if (e.button !== 0 || this.isChromeTarget(e)) return;
|
|
2610
2628
|
e.preventDefault(), e.stopPropagation();
|
|
2611
2629
|
let t = this.toCanvasPoint(e), n = this.points[0];
|
|
2612
|
-
if (n && this.points.length >= 3 &&
|
|
2630
|
+
if (n && this.points.length >= 3 && kn(t, n) <= Dn) {
|
|
2613
2631
|
this.finishClosed();
|
|
2614
2632
|
return;
|
|
2615
2633
|
}
|
|
2616
2634
|
let r = this.points[this.points.length - 1];
|
|
2617
|
-
if (r &&
|
|
2635
|
+
if (r && kn(t, r) <= Dn) {
|
|
2618
2636
|
this.points.length >= 2 && this.finish();
|
|
2619
2637
|
return;
|
|
2620
2638
|
}
|
|
@@ -2635,7 +2653,7 @@ var Tn = {
|
|
|
2635
2653
|
l(t, u(f("polyline"), {
|
|
2636
2654
|
points: n.map((e) => `${e.x},${e.y}`).join(" "),
|
|
2637
2655
|
fill: "none",
|
|
2638
|
-
stroke:
|
|
2656
|
+
stroke: _.ink,
|
|
2639
2657
|
"stroke-width": 2,
|
|
2640
2658
|
"stroke-linecap": "round",
|
|
2641
2659
|
"stroke-linejoin": "round",
|
|
@@ -2646,8 +2664,8 @@ var Tn = {
|
|
|
2646
2664
|
cx: r.x,
|
|
2647
2665
|
cy: r.y,
|
|
2648
2666
|
r: this.points.length >= 3 ? 5 : 3,
|
|
2649
|
-
fill:
|
|
2650
|
-
stroke:
|
|
2667
|
+
fill: _.paper,
|
|
2668
|
+
stroke: _.ink,
|
|
2651
2669
|
"stroke-width": 1.5
|
|
2652
2670
|
})), this.points.length >= 2) {
|
|
2653
2671
|
let e = this.points[this.points.length - 1];
|
|
@@ -2655,8 +2673,8 @@ var Tn = {
|
|
|
2655
2673
|
cx: e.x,
|
|
2656
2674
|
cy: e.y,
|
|
2657
2675
|
r: 5,
|
|
2658
|
-
fill:
|
|
2659
|
-
stroke:
|
|
2676
|
+
fill: _.paper,
|
|
2677
|
+
stroke: _.ink,
|
|
2660
2678
|
"stroke-width": 1.5
|
|
2661
2679
|
}));
|
|
2662
2680
|
}
|
|
@@ -2666,12 +2684,12 @@ var Tn = {
|
|
|
2666
2684
|
this.layer &&= (p(this.layer), null);
|
|
2667
2685
|
}
|
|
2668
2686
|
};
|
|
2669
|
-
function
|
|
2687
|
+
function kn(e, t) {
|
|
2670
2688
|
return Math.hypot(e.x - t.x, e.y - t.y);
|
|
2671
2689
|
}
|
|
2672
2690
|
//#endregion
|
|
2673
2691
|
//#region src/draw-tool/WardleyDrawingHandles.ts
|
|
2674
|
-
var
|
|
2692
|
+
var An = class {
|
|
2675
2693
|
eventBus;
|
|
2676
2694
|
canvas;
|
|
2677
2695
|
modeling;
|
|
@@ -2688,7 +2706,7 @@ var kn = class {
|
|
|
2688
2706
|
constructor(e, t, n, r) {
|
|
2689
2707
|
this.eventBus = e, this.canvas = t, this.modeling = n, this.grid = r, e.on("selection.changed", (e) => {
|
|
2690
2708
|
let t = e.newSelection ?? [], n = t.length === 1 ? t[0] : null;
|
|
2691
|
-
this.attach(
|
|
2709
|
+
this.attach(T(n) && n.wardleyType === "drawing" ? n : null);
|
|
2692
2710
|
}), e.on("element.changed", (e) => {
|
|
2693
2711
|
this.shape && e.element === this.shape && this.render();
|
|
2694
2712
|
}), e.on(["diagram.clear", "diagram.destroy"], () => this.attach(null));
|
|
@@ -2711,8 +2729,8 @@ var kn = class {
|
|
|
2711
2729
|
cx: e.x,
|
|
2712
2730
|
cy: e.y,
|
|
2713
2731
|
r: 5,
|
|
2714
|
-
fill:
|
|
2715
|
-
stroke:
|
|
2732
|
+
fill: _.paper,
|
|
2733
|
+
stroke: _.ink,
|
|
2716
2734
|
"stroke-width": 1.5,
|
|
2717
2735
|
class: "wardley-drawing-handle"
|
|
2718
2736
|
});
|
|
@@ -2749,7 +2767,7 @@ var kn = class {
|
|
|
2749
2767
|
let n = this.canvas.getLayer("wardley-drawing-handles", 1100), r = u(f(t ? "polygon" : "polyline"), {
|
|
2750
2768
|
points: e.map((e) => `${e.x},${e.y}`).join(" "),
|
|
2751
2769
|
fill: "none",
|
|
2752
|
-
stroke:
|
|
2770
|
+
stroke: _.ink,
|
|
2753
2771
|
"stroke-width": 1.5,
|
|
2754
2772
|
"stroke-dasharray": "5 4",
|
|
2755
2773
|
"pointer-events": "none"
|
|
@@ -2772,20 +2790,20 @@ var kn = class {
|
|
|
2772
2790
|
};
|
|
2773
2791
|
//#endregion
|
|
2774
2792
|
//#region src/draw-tool/WardleyDrawingHitProvider.ts
|
|
2775
|
-
function
|
|
2776
|
-
return
|
|
2793
|
+
function jn(e) {
|
|
2794
|
+
return T(e) && e.wardleyType === "drawing";
|
|
2777
2795
|
}
|
|
2778
|
-
var
|
|
2796
|
+
var Mn = class {
|
|
2779
2797
|
static $inject = ["eventBus", "interactionEvents"];
|
|
2780
2798
|
constructor(e, t) {
|
|
2781
2799
|
e.on("interactionEvents.createHit", (e) => {
|
|
2782
|
-
if (!(!
|
|
2800
|
+
if (!(!jn(e.element) || !e.gfx)) return Nn(e.element, e.gfx), !1;
|
|
2783
2801
|
}), e.on("interactionEvents.updateHit", (e) => {
|
|
2784
|
-
if (!(!
|
|
2802
|
+
if (!(!jn(e.element) || !e.gfx)) return t.removeHits(e.gfx), Nn(e.element, e.gfx), !1;
|
|
2785
2803
|
});
|
|
2786
2804
|
}
|
|
2787
2805
|
};
|
|
2788
|
-
function
|
|
2806
|
+
function Nn(e, t) {
|
|
2789
2807
|
let n = e.drawingPoints ?? [], r = f(e.closed ? "polygon" : "polyline");
|
|
2790
2808
|
u(r, {
|
|
2791
2809
|
points: n.map((e) => `${e.x},${e.y}`).join(" "),
|
|
@@ -2798,16 +2816,16 @@ function Mn(e, t) {
|
|
|
2798
2816
|
}
|
|
2799
2817
|
//#endregion
|
|
2800
2818
|
//#region src/draw-tool/index.ts
|
|
2801
|
-
var
|
|
2819
|
+
var Pn = {
|
|
2802
2820
|
__init__: [
|
|
2803
2821
|
"wardleyDrawTool",
|
|
2804
2822
|
"wardleyDrawingHandles",
|
|
2805
2823
|
"wardleyDrawingHitProvider"
|
|
2806
2824
|
],
|
|
2807
|
-
wardleyDrawTool: ["type",
|
|
2808
|
-
wardleyDrawingHandles: ["type",
|
|
2809
|
-
wardleyDrawingHitProvider: ["type",
|
|
2810
|
-
},
|
|
2825
|
+
wardleyDrawTool: ["type", On],
|
|
2826
|
+
wardleyDrawingHandles: ["type", An],
|
|
2827
|
+
wardleyDrawingHitProvider: ["type", Mn]
|
|
2828
|
+
}, Fn = class extends Nt {
|
|
2811
2829
|
_getModules() {
|
|
2812
2830
|
return [
|
|
2813
2831
|
...super._getModules(),
|
|
@@ -2821,21 +2839,21 @@ var Nn = {
|
|
|
2821
2839
|
pe,
|
|
2822
2840
|
me,
|
|
2823
2841
|
he,
|
|
2824
|
-
|
|
2825
|
-
Xt,
|
|
2826
|
-
Ge,
|
|
2842
|
+
qt,
|
|
2827
2843
|
Qt,
|
|
2844
|
+
Be,
|
|
2828
2845
|
en,
|
|
2829
|
-
|
|
2830
|
-
|
|
2831
|
-
|
|
2832
|
-
|
|
2833
|
-
|
|
2834
|
-
|
|
2835
|
-
|
|
2836
|
-
Kt,
|
|
2846
|
+
nn,
|
|
2847
|
+
sn,
|
|
2848
|
+
Z,
|
|
2849
|
+
hn,
|
|
2850
|
+
bn,
|
|
2851
|
+
on,
|
|
2852
|
+
Cn,
|
|
2837
2853
|
Tn,
|
|
2838
|
-
|
|
2854
|
+
Jt,
|
|
2855
|
+
En,
|
|
2856
|
+
Pn
|
|
2839
2857
|
];
|
|
2840
2858
|
}
|
|
2841
2859
|
undo() {
|
|
@@ -2852,6 +2870,6 @@ var Nn = {
|
|
|
2852
2870
|
}
|
|
2853
2871
|
};
|
|
2854
2872
|
//#endregion
|
|
2855
|
-
export {
|
|
2873
|
+
export { _ as COLORS, Me as EvolutionGrid, st as ICON_ADD, at as ICON_ASPECT_RATIO, Je as ICON_CODE, qe as ICON_DATA_OBJECT, P as ICON_DELETE, Ye as ICON_DOWNLOAD, N as ICON_EDIT, Ze as ICON_FOLDER_OPEN, Qe as ICON_IMAGE, ot as ICON_MENU, $e as ICON_NEW, M as ICON_PERSON, Ke as ICON_REDO, Xe as ICON_SHARE, Ge as ICON_UNDO, ct as ICON_VISIBILITY, m as MIRAGON, Fn as Modeler, Te as NOTE_COLORS, Nt as NavigatedViewer, h as PLOT, K as POPUP_PROVIDER_ID, jt as PanConstraint, Mt as PanConstraintModule, De as ROOT_ID, wt as Viewer, Sn as WardleyAppendBehavior, x as WardleyBaseViewer, wn as WardleyColorPicker, S as WardleyElementFactory, an as WardleyElementSettingsProvider, yn as WardleyEvolveDragging, St as WardleyExporter, xt as WardleyImporter, ln as WardleyLabelEditing, Rt as WardleyModeling, ft as WardleyRenderer, Zt as WardleyRules, Be as evolutionConstraintModule, j as evolutionGridModule, ut as iconMarkup, Ct as ioModule, D as isComponent, O as isPipeline, E as isWardleyConnection, T as isWardleyShape, Z as labelEditingModule, Ee as saveSVG, en as stageSnappingModule, Cn as wardleyAppendModule, Tn as wardleyColorPickerModule, sn as wardleyContextPadModule, vt as wardleyDrawModule, bn as wardleyEvolveModule, hn as wardleyKeyboardModule, ke as wardleyModelModule, qt as wardleyModelingModule, nn as wardleyPaletteModule, on as wardleyPopupModule, Qt as wardleyRulesModule };
|
|
2856
2874
|
|
|
2857
2875
|
//# sourceMappingURL=index.js.map
|