@zerops/web-components 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/network-diagram.js +393 -374
- package/package.json +1 -1
- package/recipes/zerops-showcase.json +1 -1
package/network-diagram.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
var
|
|
1
|
+
var Pe = (t) => {
|
|
2
2
|
throw TypeError(t);
|
|
3
3
|
};
|
|
4
|
-
var
|
|
5
|
-
var d = (t, e, n) => (
|
|
6
|
-
var
|
|
4
|
+
var ae = (t, e, n) => e.has(t) || Pe("Cannot " + n);
|
|
5
|
+
var d = (t, e, n) => (ae(t, e, "read from private field"), n ? n.call(t) : e.get(t)), $ = (t, e, n) => e.has(t) ? Pe("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(t) : e.set(t, n), h = (t, e, n, o) => (ae(t, e, "write to private field"), o ? o.call(t, n) : e.set(t, n), n), C = (t, e, n) => (ae(t, e, "access private method"), n);
|
|
6
|
+
var Oe = (t, e, n, o) => ({
|
|
7
7
|
set _(i) {
|
|
8
|
-
|
|
8
|
+
h(t, e, i, n);
|
|
9
9
|
},
|
|
10
10
|
get _() {
|
|
11
11
|
return d(t, e, o);
|
|
12
12
|
}
|
|
13
13
|
});
|
|
14
|
-
import { aa as
|
|
15
|
-
const
|
|
14
|
+
import { aa as E, at as j, r as ee, bl as Ve, au as We, av as Ge, ax as W, aA as G, ba as He, bb as bn, aw as m, aC as N, ay as g, aB as P, az as s, aD as mn, bh as R, bN as Q, bi as L, aF as Se, a3 as u, ao as T, B as un, l as An, b0 as ze, bA as Kn, n as De, F as Ne, b7 as Ze, b9 as Ue, bL as Wn, bm as de, ak as en, bt as Je, bs as Ye, bZ as Ee, b_ as Qe, bq as Xe, j as Ke, bT as nt, J as et, bW as tt, bU as ot, bV as it, bX as at, bY as rt } from "./chunks/recipe-fetch-D2IpKMVr.js";
|
|
15
|
+
const ke = {
|
|
16
16
|
endpoint: "https://my-app.com",
|
|
17
17
|
infrastructure: {
|
|
18
18
|
ctrl: { active: 1, standby: 1 },
|
|
@@ -68,149 +68,149 @@ const ze = {
|
|
|
68
68
|
sublabel: "storage:6379"
|
|
69
69
|
}
|
|
70
70
|
};
|
|
71
|
-
function
|
|
72
|
-
if (t & 1 && (m(0, "div", 0)(1, "span", 7), N(2),
|
|
71
|
+
function st(t, e) {
|
|
72
|
+
if (t & 1 && (m(0, "div", 0)(1, "span", 7), N(2), g()()), t & 2) {
|
|
73
73
|
const n = P();
|
|
74
|
-
|
|
74
|
+
s(2), mn(n.label());
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
|
-
function
|
|
77
|
+
function ct(t, e) {
|
|
78
78
|
if (t & 1 && u(0, "zui-bar-icon", 9), t & 2) {
|
|
79
79
|
const n = P(2);
|
|
80
80
|
T("color", n.barColor())("active", !0);
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
|
-
function
|
|
83
|
+
function lt(t, e) {
|
|
84
84
|
if (t & 1 && u(0, "zui-bar-icon", 9), t & 2) {
|
|
85
85
|
const n = P(2);
|
|
86
86
|
T("color", n.barColor())("active", !1);
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
|
-
function
|
|
89
|
+
function dt(t, e) {
|
|
90
90
|
if (t & 1 && u(0, "mat-icon", 12), t & 2) {
|
|
91
91
|
const n = e.$implicit;
|
|
92
92
|
T("svgIcon", n);
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
|
-
function
|
|
96
|
-
if (t & 1 && R(0,
|
|
95
|
+
function ht(t, e) {
|
|
96
|
+
if (t & 1 && R(0, dt, 1, 1, "mat-icon", 12, Q), t & 2) {
|
|
97
97
|
const n = P(2);
|
|
98
98
|
L(n.techIcons());
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
|
-
function
|
|
101
|
+
function gt(t, e) {
|
|
102
102
|
if (t & 1 && u(0, "mat-icon", 12), t & 2) {
|
|
103
103
|
const n = P(2);
|
|
104
104
|
T("svgIcon", n.techIcon());
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
|
-
function
|
|
108
|
-
if (t & 1 && (m(0, "div", 1)(1, "div", 8), R(2,
|
|
107
|
+
function _t(t, e) {
|
|
108
|
+
if (t & 1 && (m(0, "div", 1)(1, "div", 8), R(2, ct, 1, 2, "zui-bar-icon", 9, Q), R(4, lt, 1, 2, "zui-bar-icon", 9, Q), g(), m(6, "span", 10), N(7), g(), m(8, "div", 11), W(9, ht, 2, 0)(10, gt, 1, 1, "mat-icon", 12), g()()), t & 2) {
|
|
109
109
|
let n;
|
|
110
110
|
const o = P();
|
|
111
|
-
|
|
111
|
+
s(2), L(o.activeRange()), s(2), L(o.inactiveRange()), s(3), mn(o.label()), s(2), G((n = o.techIcons()) != null && n.length ? 9 : o.techIcon() ? 10 : -1);
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
|
-
function
|
|
114
|
+
function pt(t, e) {
|
|
115
115
|
if (t & 1 && u(0, "zui-bar-icon", 9), t & 2) {
|
|
116
116
|
const n = P(2);
|
|
117
117
|
T("color", n.barColor())("active", !0);
|
|
118
118
|
}
|
|
119
119
|
}
|
|
120
|
-
function
|
|
120
|
+
function ft(t, e) {
|
|
121
121
|
if (t & 1 && u(0, "mat-icon", 16), t & 2) {
|
|
122
122
|
const n = P(2);
|
|
123
123
|
T("svgIcon", n.techIcon());
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
|
-
function
|
|
127
|
-
if (t & 1 && (m(0, "div", 2)(1, "div", 13), R(2,
|
|
126
|
+
function ut(t, e) {
|
|
127
|
+
if (t & 1 && (m(0, "div", 2)(1, "div", 13), R(2, pt, 1, 2, "zui-bar-icon", 9, Q), g(), m(4, "div", 14)(5, "span", 15), N(6), g(), W(7, ft, 1, 1, "mat-icon", 16), g()()), t & 2) {
|
|
128
128
|
const n = P();
|
|
129
|
-
|
|
129
|
+
s(2), L(n.activeRange()), s(4), mn(n.formatLabel(n.label())), s(), G(n.techIcon() ? 7 : -1);
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
|
-
function
|
|
132
|
+
function mt(t, e) {
|
|
133
133
|
if (t & 1 && u(0, "zui-bar-icon", 9), t & 2) {
|
|
134
134
|
const n = P(2);
|
|
135
135
|
T("color", n.barColor())("active", !0);
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
|
-
function
|
|
138
|
+
function vt(t, e) {
|
|
139
139
|
if (t & 1 && u(0, "zui-bar-icon", 9), t & 2) {
|
|
140
140
|
const n = P(2);
|
|
141
141
|
T("color", n.barColor())("active", !1);
|
|
142
142
|
}
|
|
143
143
|
}
|
|
144
|
-
function
|
|
144
|
+
function bt(t, e) {
|
|
145
145
|
if (t & 1 && u(0, "mat-icon", 20), t & 2) {
|
|
146
146
|
const n = P(2);
|
|
147
147
|
T("svgIcon", n.techIcon());
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
|
-
function
|
|
151
|
-
if (t & 1 && (m(0, "div", 3)(1, "div", 17), R(2,
|
|
150
|
+
function xt(t, e) {
|
|
151
|
+
if (t & 1 && (m(0, "div", 3)(1, "div", 17), R(2, mt, 1, 2, "zui-bar-icon", 9, Q), R(4, vt, 1, 2, "zui-bar-icon", 9, Q), g(), m(6, "div", 18)(7, "span", 19), N(8), g(), W(9, bt, 1, 1, "mat-icon", 20), g()()), t & 2) {
|
|
152
152
|
const n = P();
|
|
153
|
-
|
|
153
|
+
s(2), L(n.activeRange()), s(2), L(n.inactiveRange()), s(4), mn(n.label()), s(), G(n.techIcon() ? 9 : -1);
|
|
154
154
|
}
|
|
155
155
|
}
|
|
156
|
-
function
|
|
156
|
+
function wt(t, e) {
|
|
157
157
|
if (t & 1 && u(0, "zui-bar-icon", 9), t & 2) {
|
|
158
158
|
const n = P(2);
|
|
159
159
|
T("color", n.barColor())("active", !0);
|
|
160
160
|
}
|
|
161
161
|
}
|
|
162
|
-
function
|
|
162
|
+
function Ct(t, e) {
|
|
163
163
|
if (t & 1 && u(0, "zui-bar-icon", 9), t & 2) {
|
|
164
164
|
const n = P(2);
|
|
165
165
|
T("color", n.barColor())("active", !1);
|
|
166
166
|
}
|
|
167
167
|
}
|
|
168
|
-
function
|
|
168
|
+
function yt(t, e) {
|
|
169
169
|
if (t & 1 && u(0, "mat-icon", 12), t & 2) {
|
|
170
170
|
const n = P(2);
|
|
171
171
|
T("svgIcon", n.techIcon());
|
|
172
172
|
}
|
|
173
173
|
}
|
|
174
|
-
function
|
|
175
|
-
if (t & 1 && (m(0, "div", 4)(1, "div", 21), R(2,
|
|
174
|
+
function Mt(t, e) {
|
|
175
|
+
if (t & 1 && (m(0, "div", 4)(1, "div", 21), R(2, wt, 1, 2, "zui-bar-icon", 9, Q), R(4, Ct, 1, 2, "zui-bar-icon", 9, Q), g(), m(6, "div", 22)(7, "span", 23), N(8), g(), W(9, yt, 1, 1, "mat-icon", 12), g()()), t & 2) {
|
|
176
176
|
const n = P();
|
|
177
|
-
|
|
177
|
+
s(2), L(n.activeRange()), s(2), L(n.inactiveRange()), s(4), mn(n.formatLabel(n.label())), s(), G(n.techIcon() ? 9 : -1);
|
|
178
178
|
}
|
|
179
179
|
}
|
|
180
|
-
function
|
|
180
|
+
function It(t, e) {
|
|
181
181
|
if (t & 1 && u(0, "zui-bar-icon", 9), t & 2) {
|
|
182
182
|
const n = P(2);
|
|
183
183
|
T("color", n.barColor())("active", !0);
|
|
184
184
|
}
|
|
185
185
|
}
|
|
186
|
-
function
|
|
186
|
+
function Pt(t, e) {
|
|
187
187
|
if (t & 1 && u(0, "zui-bar-icon", 9), t & 2) {
|
|
188
188
|
const n = P(2);
|
|
189
189
|
T("color", n.barColor())("active", !1);
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
|
-
function
|
|
193
|
-
if (t & 1 && (m(0, "div", 5)(1, "div", 21), R(2,
|
|
192
|
+
function Ot(t, e) {
|
|
193
|
+
if (t & 1 && (m(0, "div", 5)(1, "div", 21), R(2, It, 1, 2, "zui-bar-icon", 9, Q), R(4, Pt, 1, 2, "zui-bar-icon", 9, Q), g(), m(6, "span", 19), N(7), g()()), t & 2) {
|
|
194
194
|
const n = P();
|
|
195
|
-
|
|
195
|
+
s(2), L(n.activeRange()), s(2), L(n.inactiveRange()), s(3), mn(n.label());
|
|
196
196
|
}
|
|
197
197
|
}
|
|
198
|
-
function
|
|
199
|
-
if (t & 1 && (m(0, "div", 26)(1, "span", 27), N(2),
|
|
198
|
+
function Tt(t, e) {
|
|
199
|
+
if (t & 1 && (m(0, "div", 26)(1, "span", 27), N(2), g()()), t & 2) {
|
|
200
200
|
const n = P(2);
|
|
201
|
-
|
|
201
|
+
s(2), mn(n.sublabel());
|
|
202
202
|
}
|
|
203
203
|
}
|
|
204
|
-
function
|
|
205
|
-
if (t & 1 && (m(0, "div", 6)(1, "div", 24)(2, "span", 25), N(3),
|
|
204
|
+
function $t(t, e) {
|
|
205
|
+
if (t & 1 && (m(0, "div", 6)(1, "div", 24)(2, "span", 25), N(3), g()(), W(4, Tt, 3, 1, "div", 26), g()), t & 2) {
|
|
206
206
|
const n = P();
|
|
207
|
-
|
|
208
|
-
External`),
|
|
207
|
+
s(3), Se("", n.label(), `
|
|
208
|
+
External`), s(), G(n.sublabel() ? 4 : -1);
|
|
209
209
|
}
|
|
210
210
|
}
|
|
211
|
-
const
|
|
211
|
+
const xn = class xn {
|
|
212
212
|
constructor() {
|
|
213
|
-
this.variant =
|
|
213
|
+
this.variant = E.required(), this.label = E.required(), this.sublabel = E(), this.containers = E(), this.barColor = E("orange"), this.techIcon = E(), this.techIcons = E(), this.highlighted = E(!1), this.activeRange = j(() => {
|
|
214
214
|
const e = this.containers();
|
|
215
215
|
return e ? Array.from({ length: e.active }, (n, o) => o) : [];
|
|
216
216
|
}), this.inactiveRange = j(() => {
|
|
@@ -222,16 +222,16 @@ const un = class un {
|
|
|
222
222
|
return e.replace(/\n/g, " ");
|
|
223
223
|
}
|
|
224
224
|
};
|
|
225
|
-
|
|
226
|
-
return new (n ||
|
|
227
|
-
},
|
|
228
|
-
n & 2 && (
|
|
225
|
+
xn.ɵfac = function(n) {
|
|
226
|
+
return new (n || xn)();
|
|
227
|
+
}, xn.ɵcmp = /* @__PURE__ */ ee({ type: xn, selectors: [["zw-diagram-node"]], hostVars: 4, hostBindings: function(n, o) {
|
|
228
|
+
n & 2 && (He("__node __node--" + o.variant()), bn("__node--highlighted", o.highlighted()));
|
|
229
229
|
}, inputs: { variant: [1, "variant"], label: [1, "label"], sublabel: [1, "sublabel"], containers: [1, "containers"], barColor: [1, "barColor"], techIcon: [1, "techIcon"], techIcons: [1, "techIcons"], highlighted: [1, "highlighted"] }, decls: 7, vars: 1, consts: [[1, "__endpoint-pill"], [1, "__infra-core-box"], [1, "__infra-side-box"], [1, "__balancer-box"], [1, "__service-box"], [1, "__service-highlighted-box"], [1, "__external-box"], [1, "__endpoint-label"], [1, "__bar-row", "__bar-row--infra"], [3, "color", "active"], [1, "__node-label", "__node-label--mono-core", "__node-label--multiline"], [1, "__tech-icons-row"], [1, "__tech-icon", 3, "svgIcon"], [1, "__bar-col"], [1, "__side-bottom"], [1, "__node-label", "__node-label--mono", "__node-label--side"], [1, "__tech-icon", "__tech-icon--side", 3, "svgIcon"], [1, "__bar-row", "__bar-row--balancer"], [1, "__balancer-label-area"], [1, "__node-label", "__node-label--mono", "__node-label--multiline"], [1, "__tech-icon", "__tech-icon--sm", 3, "svgIcon"], [1, "__bar-row"], [1, "__label-block"], [1, "__node-label", "__node-label--mono"], [1, "__ext-inner-card"], [1, "__node-label", "__node-label--mono", "__node-label--ext-text"], [1, "__ext-sublabel-frame"], [1, "__node-label", "__node-label--mono", "__node-label--sub"]], template: function(n, o) {
|
|
230
|
-
if (n & 1 && W(0,
|
|
230
|
+
if (n & 1 && W(0, st, 3, 1, "div", 0)(1, _t, 11, 2, "div", 1)(2, ut, 8, 2, "div", 2)(3, xt, 10, 2, "div", 3)(4, Mt, 10, 2, "div", 4)(5, Ot, 8, 1, "div", 5)(6, $t, 5, 2, "div", 6), n & 2) {
|
|
231
231
|
let i;
|
|
232
|
-
|
|
232
|
+
G((i = o.variant()) === "endpoint" ? 0 : i === "infra-core" ? 1 : i === "infra-side" ? 2 : i === "balancer" ? 3 : i === "service" ? 4 : i === "service-highlighted" ? 5 : i === "external" ? 6 : -1);
|
|
233
233
|
}
|
|
234
|
-
}, dependencies: [
|
|
234
|
+
}, dependencies: [Ve, We, Ge], styles: [`[_nghost-%COMP%] {
|
|
235
235
|
display: block;
|
|
236
236
|
position: relative;
|
|
237
237
|
contain: layout style;
|
|
@@ -493,52 +493,52 @@ un.ɵfac = function(n) {
|
|
|
493
493
|
background: #E8E7E7;
|
|
494
494
|
border-radius: 3px;
|
|
495
495
|
}`], changeDetection: 0 });
|
|
496
|
-
let
|
|
497
|
-
const
|
|
498
|
-
function
|
|
499
|
-
if (t & 1 && (
|
|
496
|
+
let ne = xn;
|
|
497
|
+
const St = ["*"];
|
|
498
|
+
function zt(t, e) {
|
|
499
|
+
if (t & 1 && (Wn(), u(0, "path", 28)), t & 2) {
|
|
500
500
|
const n = e.$implicit;
|
|
501
501
|
en("d", n);
|
|
502
502
|
}
|
|
503
503
|
}
|
|
504
|
-
const
|
|
504
|
+
const re = {
|
|
505
505
|
ctrl: { active: 1, standby: 1 },
|
|
506
506
|
stats: { active: 1, standby: 0 },
|
|
507
507
|
logger: { active: 1, standby: 0 }
|
|
508
|
-
},
|
|
508
|
+
}, Dt = {
|
|
509
509
|
containers: { active: 2, standby: 0 }
|
|
510
510
|
};
|
|
511
|
-
var
|
|
512
|
-
const
|
|
511
|
+
var Mn, Bn, In, Pn, ln, dn, Rn;
|
|
512
|
+
const wn = class wn {
|
|
513
513
|
// ─── Lifecycle ──────────────────────────────────────────
|
|
514
514
|
constructor() {
|
|
515
515
|
$(this, dn);
|
|
516
|
-
$(this,
|
|
517
|
-
$(this,
|
|
518
|
-
$(this,
|
|
519
|
-
$(this,
|
|
516
|
+
$(this, Mn);
|
|
517
|
+
$(this, Bn);
|
|
518
|
+
$(this, In);
|
|
519
|
+
$(this, Pn);
|
|
520
520
|
$(this, ln);
|
|
521
|
-
this.config =
|
|
521
|
+
this.config = E({}), this.lightweight = E(!1), this.showPaths = E(!0), this.internalPaths = un([]), this.pathsVisible = un(!0), h(this, Mn, An(De)), h(this, Bn, An(Ne)), h(this, Pn, !1), this.resolvedInfra = {
|
|
522
522
|
ctrl: {
|
|
523
523
|
id: "ctrl",
|
|
524
524
|
label: `Project ctrl
|
|
525
525
|
& L3 balancer
|
|
526
526
|
+ firewall`,
|
|
527
|
-
containers:
|
|
527
|
+
containers: re.ctrl,
|
|
528
528
|
techIcons: ["go"],
|
|
529
529
|
highlighted: !0
|
|
530
530
|
},
|
|
531
531
|
stats: {
|
|
532
532
|
id: "stats",
|
|
533
533
|
label: "Stats",
|
|
534
|
-
containers:
|
|
534
|
+
containers: re.stats,
|
|
535
535
|
techIcon: "sqlite",
|
|
536
536
|
highlighted: !1
|
|
537
537
|
},
|
|
538
538
|
logger: {
|
|
539
539
|
id: "logger",
|
|
540
540
|
label: "Logger",
|
|
541
|
-
containers:
|
|
541
|
+
containers: re.logger,
|
|
542
542
|
techIcon: "victorialogs",
|
|
543
543
|
highlighted: !1
|
|
544
544
|
}
|
|
@@ -555,38 +555,38 @@ const mn = class mn {
|
|
|
555
555
|
id: "l7",
|
|
556
556
|
label: `L7 HTTP
|
|
557
557
|
balancer`,
|
|
558
|
-
containers:
|
|
558
|
+
containers: Dt.containers,
|
|
559
559
|
techIcon: "nginx",
|
|
560
560
|
highlighted: !0
|
|
561
|
-
},
|
|
562
|
-
|
|
563
|
-
requestAnimationFrame(() => C(this, dn,
|
|
561
|
+
}, ze(() => {
|
|
562
|
+
h(this, Pn, !0), h(this, ln, this.lightweight()), h(this, In, new ResizeObserver(() => C(this, dn, Rn).call(this))), d(this, In).observe(d(this, Mn).nativeElement), d(this, Bn).onDestroy(() => d(this, In)?.disconnect()), requestAnimationFrame(() => {
|
|
563
|
+
requestAnimationFrame(() => C(this, dn, Rn).call(this));
|
|
564
564
|
});
|
|
565
|
-
}),
|
|
565
|
+
}), Kn(() => {
|
|
566
566
|
this.config();
|
|
567
567
|
const e = this.lightweight();
|
|
568
|
-
if (!d(this,
|
|
568
|
+
if (!d(this, Pn))
|
|
569
569
|
return;
|
|
570
570
|
const n = d(this, ln) !== void 0 && d(this, ln) !== e;
|
|
571
|
-
|
|
571
|
+
h(this, ln, e), n ? (this.pathsVisible.set(!1), setTimeout(() => {
|
|
572
572
|
requestAnimationFrame(() => {
|
|
573
573
|
requestAnimationFrame(() => {
|
|
574
|
-
C(this, dn,
|
|
574
|
+
C(this, dn, Rn).call(this), this.pathsVisible.set(!0);
|
|
575
575
|
});
|
|
576
576
|
});
|
|
577
577
|
}, 200)) : requestAnimationFrame(() => {
|
|
578
|
-
requestAnimationFrame(() => C(this, dn,
|
|
578
|
+
requestAnimationFrame(() => C(this, dn, Rn).call(this));
|
|
579
579
|
});
|
|
580
580
|
});
|
|
581
581
|
}
|
|
582
582
|
};
|
|
583
|
-
|
|
584
|
-
|
|
583
|
+
Mn = new WeakMap(), Bn = new WeakMap(), In = new WeakMap(), Pn = new WeakMap(), ln = new WeakMap(), dn = new WeakSet(), // ─── Internal path computation ──────────────────────────
|
|
584
|
+
Rn = function() {
|
|
585
585
|
if (!this.showPaths()) {
|
|
586
586
|
this.internalPaths.set([]);
|
|
587
587
|
return;
|
|
588
588
|
}
|
|
589
|
-
const n = d(this,
|
|
589
|
+
const n = d(this, Mn).nativeElement.querySelector(".__project");
|
|
590
590
|
if (!n)
|
|
591
591
|
return;
|
|
592
592
|
const o = n.getBoundingClientRect();
|
|
@@ -604,58 +604,58 @@ En = function() {
|
|
|
604
604
|
i(b.left - o.left + b.width / 2),
|
|
605
605
|
i(b.top - o.top)
|
|
606
606
|
];
|
|
607
|
-
},
|
|
607
|
+
}, c = [], D = 16, q = 27, V = (x, b, w) => {
|
|
608
608
|
const [z, S] = x, [A, X] = b, tn = A - z;
|
|
609
609
|
if (Math.abs(tn) < 3) {
|
|
610
610
|
const K = i((z + A) / 2);
|
|
611
611
|
return `M${K},${i(S)}L${K},${i(X)}`;
|
|
612
612
|
}
|
|
613
|
-
const
|
|
613
|
+
const Z = Math.min(D, Math.abs(tn) / 2, Math.abs(w - S) / 2, Math.abs(X - w) / 2), B = Math.sign(tn), U = Math.sign(X - w) || 1;
|
|
614
614
|
return [
|
|
615
615
|
`M${i(z)},${i(S)}`,
|
|
616
|
-
`L${i(z)},${i(w -
|
|
617
|
-
`Q${i(z)},${i(w)},${i(z +
|
|
618
|
-
`L${i(A -
|
|
619
|
-
`Q${i(A)},${i(w)},${i(A)},${i(w +
|
|
616
|
+
`L${i(z)},${i(w - Z)}`,
|
|
617
|
+
`Q${i(z)},${i(w)},${i(z + Z * B)},${i(w)}`,
|
|
618
|
+
`L${i(A - Z * B)},${i(w)}`,
|
|
619
|
+
`Q${i(A)},${i(w)},${i(A)},${i(w + Z * U)}`,
|
|
620
620
|
`L${i(A)},${i(X)}`
|
|
621
621
|
].join("");
|
|
622
|
-
},
|
|
622
|
+
}, k = n.querySelector(".__zone--services");
|
|
623
623
|
if (this.lightweight()) {
|
|
624
624
|
const x = n.querySelector('[data-mode="lw"]');
|
|
625
|
-
if (x &&
|
|
625
|
+
if (x && k) {
|
|
626
626
|
const b = x.querySelector(".__infra-group");
|
|
627
627
|
if (b) {
|
|
628
|
-
const [w, z] = O(b), S = v(
|
|
629
|
-
|
|
628
|
+
const [w, z] = O(b), S = v(k)[1];
|
|
629
|
+
c.push(`M${i(w)},${i(z)}L${i(w)},${i(S)}`);
|
|
630
630
|
}
|
|
631
631
|
}
|
|
632
632
|
} else {
|
|
633
633
|
const x = n.querySelector('[data-mode="hw"]');
|
|
634
634
|
if (!x) {
|
|
635
|
-
this.internalPaths.set(
|
|
635
|
+
this.internalPaths.set(c);
|
|
636
636
|
return;
|
|
637
637
|
}
|
|
638
638
|
const b = x.querySelector(".__infra-group"), w = x.querySelector('[data-node-id="ctrl"]'), z = x.querySelector('[data-node-id="l7"]');
|
|
639
639
|
if (b && w && z) {
|
|
640
|
-
const S = O(w)[0], A = O(b)[1], X = [S, A], tn = Array.from(z.querySelectorAll("zui-bar-icon")),
|
|
640
|
+
const S = O(w)[0], A = O(b)[1], X = [S, A], tn = Array.from(z.querySelectorAll("zui-bar-icon")), Z = this.resolvedRoutingDisplay.containers.active;
|
|
641
641
|
for (let B = 0; B < tn.length; B++) {
|
|
642
|
-
if (B >=
|
|
642
|
+
if (B >= Z)
|
|
643
643
|
continue;
|
|
644
644
|
const U = v(tn[B]), K = U[1] - q;
|
|
645
|
-
|
|
645
|
+
c.push(V(X, U, K));
|
|
646
646
|
}
|
|
647
|
-
if (
|
|
648
|
-
const [B, U] = O(z), K = v(
|
|
649
|
-
|
|
647
|
+
if (k) {
|
|
648
|
+
const [B, U] = O(z), K = v(k)[1];
|
|
649
|
+
c.push(`M${i(B)},${i(U)}L${i(B)},${i(K)}`);
|
|
650
650
|
}
|
|
651
651
|
}
|
|
652
652
|
}
|
|
653
|
-
this.internalPaths.set(
|
|
654
|
-
},
|
|
655
|
-
return new (n ||
|
|
656
|
-
},
|
|
657
|
-
n & 1 && (
|
|
658
|
-
}, dependencies: [
|
|
653
|
+
this.internalPaths.set(c);
|
|
654
|
+
}, wn.ɵfac = function(n) {
|
|
655
|
+
return new (n || wn)();
|
|
656
|
+
}, wn.ɵcmp = /* @__PURE__ */ ee({ type: wn, selectors: [["zw-project-shell"]], inputs: { config: [1, "config"], lightweight: [1, "lightweight"], showPaths: [1, "showPaths"] }, ngContentSelectors: St, decls: 48, vars: 28, consts: [[1, "__project"], [1, "__project-header"], [1, "__project-title"], [1, "__vxlan-label"], [1, "__infra-stack"], ["data-mode", "lw", 1, "__infra-mode"], [1, "__infra-mode-inner"], [1, "__zone", "__zone--infra", "__zone--infra-lightweight"], [1, "__zone-label"], [1, "__infra-content", "__infra-content--lightweight"], [1, "__infra-group"], ["data-node-id", "core-lw"], ["variant", "infra-core", "barColor", "orange", 3, "label", "containers", "techIcons", "highlighted"], ["data-mode", "hw", 1, "__infra-mode"], [1, "__zone", "__zone--infra"], [1, "__infra-content"], ["data-node-id", "ctrl"], [1, "__infra-side-nodes"], ["data-node-id", "stats"], ["variant", "infra-side", "barColor", "orange", 3, "label", "containers", "techIcon", "highlighted"], ["data-node-id", "logger"], [1, "__zone-spacer", "__zone-spacer--infra-to-routing"], [1, "__zone", "__zone--routing"], [1, "__routing-content"], ["data-node-id", "l7"], ["variant", "balancer", "barColor", "orange", 3, "label", "containers", "techIcon", "highlighted"], ["data-spacer", "routing-services", 1, "__zone-spacer", "__zone-spacer--routing-to-services"], [1, "__svg-layer"], [1, "__path-base"]], template: function(n, o) {
|
|
657
|
+
n & 1 && (Ze(), m(0, "div", 0)(1, "div", 1)(2, "span", 2), N(3, "Project"), g(), m(4, "span", 3), N(5, "Private VXLAN network"), g()(), m(6, "div", 4)(7, "div", 5)(8, "div", 6)(9, "div", 7)(10, "span", 8), N(11, "Dedicated"), u(12, "br"), N(13, "infrastructure"), u(14, "br"), N(15, "core with routing"), u(16, "br"), N(17, "and balancing"), g(), m(18, "div", 9)(19, "div", 10)(20, "div", 11), u(21, "zw-diagram-node", 12), g()()()()()(), m(22, "div", 13)(23, "div", 6)(24, "div", 14)(25, "span", 8), N(26, "Dedicated infrastructure core"), g(), m(27, "div", 15)(28, "div", 10)(29, "div", 16), u(30, "zw-diagram-node", 12), g(), m(31, "div", 17)(32, "div", 18), u(33, "zw-diagram-node", 19), g(), m(34, "div", 20), u(35, "zw-diagram-node", 19), g()()()()(), u(36, "div", 21), m(37, "div", 22)(38, "span", 8), N(39, "Dedicated routing and balancing"), g(), m(40, "div", 23)(41, "div", 24), u(42, "zw-diagram-node", 25), g()()()()()(), u(43, "div", 26), Ue(44), Wn(), m(45, "svg", 27), R(46, zt, 1, 1, ":svg:path", 28, de), g()()), n & 2 && (bn("__project--lightweight", o.lightweight()), s(7), bn("__infra-mode--active", o.lightweight()), s(14), T("label", o.resolvedLightweightNode.label)("containers", o.resolvedLightweightNode.containers)("techIcons", o.resolvedLightweightNode.techIcons)("highlighted", o.resolvedLightweightNode.highlighted), s(), bn("__infra-mode--active", !o.lightweight()), s(8), T("label", o.resolvedInfra.ctrl.label)("containers", o.resolvedInfra.ctrl.containers)("techIcons", o.resolvedInfra.ctrl.techIcons)("highlighted", o.resolvedInfra.ctrl.highlighted), s(3), T("label", o.resolvedInfra.stats.label)("containers", o.resolvedInfra.stats.containers)("techIcon", o.resolvedInfra.stats.techIcon)("highlighted", o.resolvedInfra.stats.highlighted), s(2), T("label", o.resolvedInfra.logger.label)("containers", o.resolvedInfra.logger.containers)("techIcon", o.resolvedInfra.logger.techIcon)("highlighted", o.resolvedInfra.logger.highlighted), s(7), T("label", o.resolvedRoutingDisplay.label)("containers", o.resolvedRoutingDisplay.containers)("techIcon", o.resolvedRoutingDisplay.techIcon)("highlighted", o.resolvedRoutingDisplay.highlighted), s(3), bn("__svg-layer--visible", o.pathsVisible()), s(), L(o.internalPaths()));
|
|
658
|
+
}, dependencies: [ne], styles: [`[_nghost-%COMP%] {
|
|
659
659
|
display: block;
|
|
660
660
|
position: relative;
|
|
661
661
|
}
|
|
@@ -827,106 +827,108 @@ En = function() {
|
|
|
827
827
|
stroke-linecap: round;
|
|
828
828
|
stroke-linejoin: round;
|
|
829
829
|
}`], changeDetection: 0 });
|
|
830
|
-
let
|
|
831
|
-
const
|
|
832
|
-
function
|
|
833
|
-
if (t & 1 && (m(0, "div"), u(1, "zw-diagram-node", 13),
|
|
830
|
+
let he = wn;
|
|
831
|
+
const ge = (t, e) => e.service.id;
|
|
832
|
+
function Nt(t, e) {
|
|
833
|
+
if (t & 1 && (m(0, "div"), u(1, "zw-diagram-node", 13), g()), t & 2) {
|
|
834
834
|
const n = e.$implicit;
|
|
835
|
-
en("data-node-id", n.service.id),
|
|
835
|
+
en("data-node-id", n.service.id), s(), T("label", n.service.label)("containers", n.service.containers)("barColor", n.barColor)("techIcon", n.service.techIcon);
|
|
836
836
|
}
|
|
837
837
|
}
|
|
838
|
-
function
|
|
839
|
-
if (t & 1 && (m(0, "div"), u(1, "zw-diagram-node", 13),
|
|
838
|
+
function Et(t, e) {
|
|
839
|
+
if (t & 1 && (m(0, "div"), u(1, "zw-diagram-node", 13), g()), t & 2) {
|
|
840
840
|
const n = e.$implicit;
|
|
841
|
-
en("data-node-id", n.service.id),
|
|
841
|
+
en("data-node-id", n.service.id), s(), T("label", n.service.label)("containers", n.service.containers)("barColor", n.barColor)("techIcon", n.service.techIcon);
|
|
842
842
|
}
|
|
843
843
|
}
|
|
844
|
-
function
|
|
845
|
-
if (t & 1 && (m(0, "div", 8), R(1,
|
|
844
|
+
function kt(t, e) {
|
|
845
|
+
if (t & 1 && (m(0, "div", 8), R(1, Et, 2, 5, "div", null, ge), g()), t & 2) {
|
|
846
846
|
const n = P();
|
|
847
|
-
|
|
847
|
+
s(), L(n.row1SideServices());
|
|
848
848
|
}
|
|
849
849
|
}
|
|
850
|
-
function
|
|
850
|
+
function Rt(t, e) {
|
|
851
851
|
t & 1 && u(0, "div");
|
|
852
852
|
}
|
|
853
|
-
function
|
|
854
|
-
if (t & 1 && (m(0, "div", 14)(1, "div", 15), u(2, "zw-diagram-node", 16),
|
|
853
|
+
function Lt(t, e) {
|
|
854
|
+
if (t & 1 && (m(0, "div", 14)(1, "div", 15), u(2, "zw-diagram-node", 16), g(), m(3, "div", 17), u(4, "zw-diagram-node", 13), g()()), t & 2) {
|
|
855
855
|
const n = e, o = P().$implicit;
|
|
856
|
-
en("data-node-id", o.service.id + "-compound"),
|
|
856
|
+
en("data-node-id", o.service.id + "-compound"), s(), en("data-node-id", n.id), s(), T("label", n.label)("containers", n.containers)("barColor", n.barColor)("highlighted", !0), s(), en("data-node-id", o.service.id), s(), T("label", o.service.label)("containers", o.service.containers)("barColor", o.barColor)("techIcon", o.service.techIcon);
|
|
857
857
|
}
|
|
858
858
|
}
|
|
859
|
-
function
|
|
860
|
-
if (t & 1 && (m(0, "div"), u(1, "zw-diagram-node", 13),
|
|
859
|
+
function At(t, e) {
|
|
860
|
+
if (t & 1 && (m(0, "div"), u(1, "zw-diagram-node", 13), g()), t & 2) {
|
|
861
861
|
const n = P().$implicit;
|
|
862
|
-
en("data-node-id", n.service.id),
|
|
862
|
+
en("data-node-id", n.service.id), s(), T("label", n.service.label)("containers", n.service.containers)("barColor", n.barColor)("techIcon", n.service.techIcon);
|
|
863
863
|
}
|
|
864
864
|
}
|
|
865
|
-
function
|
|
866
|
-
if (t & 1 && W(0,
|
|
865
|
+
function Bt(t, e) {
|
|
866
|
+
if (t & 1 && W(0, Lt, 5, 11, "div", 14)(1, At, 2, 5, "div"), t & 2) {
|
|
867
867
|
let n;
|
|
868
868
|
const o = e.$implicit;
|
|
869
|
-
|
|
869
|
+
G((n = o.loadBalancer) ? 0 : 1, n);
|
|
870
870
|
}
|
|
871
871
|
}
|
|
872
|
-
function
|
|
873
|
-
if (t & 1 && (m(0, "div", 11), u(1, "zw-diagram-node", 18),
|
|
872
|
+
function Ft(t, e) {
|
|
873
|
+
if (t & 1 && (m(0, "div", 11), u(1, "zw-diagram-node", 18), g()), t & 2) {
|
|
874
874
|
const n = e;
|
|
875
|
-
|
|
875
|
+
s(), T("label", n.label)("sublabel", n.sublabel);
|
|
876
876
|
}
|
|
877
877
|
}
|
|
878
|
-
function
|
|
879
|
-
if (t & 1 && (
|
|
878
|
+
function jt(t, e) {
|
|
879
|
+
if (t & 1 && (Wn(), u(0, "path", 19)), t & 2) {
|
|
880
880
|
const n = P().$implicit;
|
|
881
881
|
en("d", n.d);
|
|
882
882
|
}
|
|
883
883
|
}
|
|
884
|
-
function
|
|
885
|
-
if (t & 1 && W(0,
|
|
884
|
+
function qt(t, e) {
|
|
885
|
+
if (t & 1 && W(0, jt, 1, 1, ":svg:path", 19), t & 2) {
|
|
886
886
|
const n = e.$implicit;
|
|
887
|
-
|
|
887
|
+
G(n.renderMode !== "glow-only" ? 0 : -1);
|
|
888
888
|
}
|
|
889
889
|
}
|
|
890
|
-
function
|
|
891
|
-
if (t & 1 && (
|
|
890
|
+
function Vt(t, e) {
|
|
891
|
+
if (t & 1 && (Wn(), u(0, "path", 20)), t & 2) {
|
|
892
892
|
const n = P(), o = n.$implicit, i = n.$index;
|
|
893
893
|
en("d", o.d)("data-path-idx", i);
|
|
894
894
|
}
|
|
895
895
|
}
|
|
896
|
-
function
|
|
897
|
-
if (t & 1 && W(0,
|
|
896
|
+
function Wt(t, e) {
|
|
897
|
+
if (t & 1 && W(0, Vt, 1, 2, ":svg:path", 20), t & 2) {
|
|
898
898
|
const n = e.$implicit;
|
|
899
|
-
|
|
899
|
+
G(n.renderMode !== "base-only" ? 0 : -1);
|
|
900
900
|
}
|
|
901
901
|
}
|
|
902
|
-
const
|
|
902
|
+
const Gt = 660, se = {
|
|
903
903
|
ctrl: { active: 1, standby: 1 },
|
|
904
904
|
stats: { active: 1, standby: 0 },
|
|
905
905
|
logger: { active: 1, standby: 0 }
|
|
906
|
-
},
|
|
906
|
+
}, Ht = {
|
|
907
907
|
containers: { active: 2, standby: 0 }
|
|
908
|
-
},
|
|
909
|
-
var nn,
|
|
910
|
-
const
|
|
908
|
+
}, En = 600, kn = 1050, ce = 525, le = 900, Zt = 3300, Ut = 900, Te = 2250, Jt = 2e3, Yt = 400;
|
|
909
|
+
var nn, On, Tn, Fn, $n, H, hn, gn, jn, _n, pn, fn, on, an, rn, _, Ln, Re, Le, Jn, Ae, pe, Yn, Be, Fe, je, qe, Qn, Xn, fe;
|
|
910
|
+
const Cn = class Cn {
|
|
911
911
|
// ─── Lifecycle ──────────────────────────────────────────
|
|
912
912
|
constructor() {
|
|
913
|
-
$(this,
|
|
913
|
+
$(this, _);
|
|
914
914
|
$(this, nn);
|
|
915
|
-
$(this, Mn);
|
|
916
|
-
$(this, In);
|
|
917
|
-
$(this, Pn);
|
|
918
915
|
$(this, On);
|
|
919
|
-
$(this,
|
|
916
|
+
$(this, Tn);
|
|
917
|
+
$(this, Fn);
|
|
918
|
+
$(this, $n);
|
|
919
|
+
$(this, H);
|
|
920
920
|
// rAF id for coalesced recomputation
|
|
921
|
-
// ─── Trace orchestrator state ──────────────────────────
|
|
922
|
-
$(this, Bn);
|
|
923
921
|
$(this, hn);
|
|
924
922
|
$(this, gn);
|
|
923
|
+
// ─── Trace orchestrator state ──────────────────────────
|
|
924
|
+
$(this, jn);
|
|
925
925
|
$(this, _n);
|
|
926
|
+
$(this, pn);
|
|
927
|
+
$(this, fn);
|
|
926
928
|
$(this, on);
|
|
927
929
|
$(this, an);
|
|
928
930
|
$(this, rn);
|
|
929
|
-
this.config =
|
|
931
|
+
this.config = E(ke), this.lightweight = E(!1), this.annotatedPaths = un([]), this.pathsVisible = un(!0), h(this, nn, An(De)), h(this, On, An(Ne)), h(this, Fn, 1), h(this, $n, !1), h(this, H, 0), h(this, gn, !1), h(this, jn, 0), h(this, _n, 0), h(this, pn, 0), h(this, fn, !1), h(this, on, !1), h(this, an, /* @__PURE__ */ new Map()), h(this, rn, /* @__PURE__ */ new Map()), this.shellConfig = j(() => ({
|
|
930
932
|
infrastructure: this.config().infrastructure,
|
|
931
933
|
routing: this.config().routing
|
|
932
934
|
})), this.resolvedInfra = j(() => {
|
|
@@ -937,21 +939,21 @@ const vn = class vn {
|
|
|
937
939
|
label: `Project ctrl
|
|
938
940
|
& L3 balancer
|
|
939
941
|
+ firewall`,
|
|
940
|
-
containers: e.ctrl ??
|
|
942
|
+
containers: e.ctrl ?? se.ctrl,
|
|
941
943
|
techIcons: ["go"],
|
|
942
944
|
highlighted: !0
|
|
943
945
|
},
|
|
944
946
|
stats: {
|
|
945
947
|
id: "stats",
|
|
946
948
|
label: "Stats",
|
|
947
|
-
containers: e.stats ??
|
|
949
|
+
containers: e.stats ?? se.stats,
|
|
948
950
|
techIcon: "sqlite",
|
|
949
951
|
highlighted: !1
|
|
950
952
|
},
|
|
951
953
|
logger: {
|
|
952
954
|
id: "logger",
|
|
953
955
|
label: "Logger",
|
|
954
|
-
containers: e.logger ??
|
|
956
|
+
containers: e.logger ?? se.logger,
|
|
955
957
|
techIcon: "victorialogs",
|
|
956
958
|
highlighted: !1
|
|
957
959
|
}
|
|
@@ -962,56 +964,63 @@ const vn = class vn {
|
|
|
962
964
|
id: "l7",
|
|
963
965
|
label: `L7 HTTP
|
|
964
966
|
balancer`,
|
|
965
|
-
containers: e.containers ??
|
|
967
|
+
containers: e.containers ?? Ht.containers,
|
|
966
968
|
techIcon: "nginx",
|
|
967
969
|
highlighted: !0
|
|
968
970
|
} : null;
|
|
969
|
-
}), this.row1MainServices = j(() => this.config().services.filter((e) => e.category === "http-runtime").map((e) => C(this,
|
|
971
|
+
}), this.row1MainServices = j(() => this.config().services.filter((e) => e.category === "http-runtime").map((e) => C(this, _, Jn).call(this, e))), this.row1SideServices = j(() => this.config().services.filter((e) => e.category === "side-runtime").map((e) => C(this, _, Jn).call(this, e))), this.row1Services = j(() => [...this.row1MainServices()]), this.row2Services = j(() => this.config().services.filter((e) => e.category !== "http-runtime" && e.category !== "side-runtime").map((e) => C(this, _, Jn).call(this, e))), this.resolvedStorage = j(() => {
|
|
970
972
|
const e = this.config().storage;
|
|
971
973
|
return e ? {
|
|
972
974
|
label: e.label ?? "Object storage",
|
|
973
975
|
sublabel: e.sublabel ?? "storage:6379"
|
|
974
976
|
} : null;
|
|
975
|
-
}),
|
|
976
|
-
|
|
977
|
-
C(this,
|
|
978
|
-
})), d(this,
|
|
979
|
-
d(this,
|
|
980
|
-
}), C(this,
|
|
977
|
+
}), ze(() => {
|
|
978
|
+
h(this, $n, !0), h(this, hn, this.lightweight()), h(this, Tn, new ResizeObserver(() => {
|
|
979
|
+
C(this, _, Ln).call(this);
|
|
980
|
+
})), d(this, Tn).observe(d(this, nn).nativeElement), d(this, On).onDestroy(() => {
|
|
981
|
+
d(this, Tn)?.disconnect(), C(this, _, pe).call(this), d(this, H) && cancelAnimationFrame(d(this, H));
|
|
982
|
+
}), C(this, _, Ln).call(this);
|
|
981
983
|
const e = new IntersectionObserver(([n]) => {
|
|
982
|
-
n.isIntersecting ? C(this,
|
|
984
|
+
n.isIntersecting ? C(this, _, Ae).call(this) : C(this, _, pe).call(this);
|
|
983
985
|
}, { rootMargin: "200px 0px" });
|
|
984
|
-
e.observe(d(this, nn).nativeElement), d(this,
|
|
985
|
-
}),
|
|
986
|
-
this.config()
|
|
986
|
+
e.observe(d(this, nn).nativeElement), d(this, On).onDestroy(() => e.disconnect());
|
|
987
|
+
}), Kn(() => {
|
|
988
|
+
this.config();
|
|
989
|
+
const e = this.lightweight();
|
|
990
|
+
if (!d(this, $n))
|
|
991
|
+
return;
|
|
992
|
+
const n = d(this, hn) !== void 0 && d(this, hn) !== e;
|
|
993
|
+
h(this, hn, e), n ? (this.pathsVisible.set(!1), C(this, _, Yn).call(this), setTimeout(() => {
|
|
994
|
+
h(this, gn, !0), C(this, _, Ln).call(this);
|
|
995
|
+
}, 400)) : C(this, _, Ln).call(this);
|
|
987
996
|
});
|
|
988
997
|
}
|
|
989
998
|
};
|
|
990
|
-
nn = new WeakMap(),
|
|
999
|
+
nn = new WeakMap(), On = new WeakMap(), Tn = new WeakMap(), Fn = new WeakMap(), $n = new WeakMap(), H = new WeakMap(), hn = new WeakMap(), gn = new WeakMap(), jn = new WeakMap(), _n = new WeakMap(), pn = new WeakMap(), fn = new WeakMap(), on = new WeakMap(), an = new WeakMap(), rn = new WeakMap(), _ = new WeakSet(), // ─── Private ────────────────────────────────────────────
|
|
991
1000
|
/**
|
|
992
1001
|
* Coalesces all path recomputation requests through a single double-rAF.
|
|
993
1002
|
* Prevents stale DOM measurements when ResizeObserver fires before Angular
|
|
994
1003
|
* has flushed template changes from a config update.
|
|
995
1004
|
*/
|
|
996
|
-
|
|
997
|
-
d(this,
|
|
998
|
-
|
|
999
|
-
|
|
1005
|
+
Ln = function() {
|
|
1006
|
+
d(this, H) && cancelAnimationFrame(d(this, H)), h(this, H, requestAnimationFrame(() => {
|
|
1007
|
+
h(this, H, requestAnimationFrame(() => {
|
|
1008
|
+
h(this, H, 0), C(this, _, Yn).call(this), C(this, _, Re).call(this), C(this, _, Le).call(this);
|
|
1000
1009
|
}));
|
|
1001
1010
|
}));
|
|
1002
|
-
},
|
|
1003
|
-
const e = d(this, nn).nativeElement, o = e.clientWidth /
|
|
1004
|
-
|
|
1011
|
+
}, Re = function() {
|
|
1012
|
+
const e = d(this, nn).nativeElement, o = e.clientWidth / Gt;
|
|
1013
|
+
h(this, Fn, o), e.style.setProperty("--diagram-scale", String(o));
|
|
1005
1014
|
const i = e.querySelector(".__canvas");
|
|
1006
1015
|
i && (e.style.height = `${i.scrollHeight * o}px`);
|
|
1007
|
-
},
|
|
1016
|
+
}, Le = function() {
|
|
1008
1017
|
const e = d(this, nn).nativeElement, n = e.querySelector(".__canvas");
|
|
1009
1018
|
if (!n)
|
|
1010
1019
|
return;
|
|
1011
1020
|
const o = n.getBoundingClientRect();
|
|
1012
1021
|
if (o.width === 0)
|
|
1013
1022
|
return;
|
|
1014
|
-
const i =
|
|
1023
|
+
const i = o.width / n.offsetWidth, O = (r) => {
|
|
1015
1024
|
const l = r.getBoundingClientRect();
|
|
1016
1025
|
return {
|
|
1017
1026
|
x: (l.left - o.left) / i,
|
|
@@ -1022,52 +1031,52 @@ Rn = function() {
|
|
|
1022
1031
|
}, v = (r) => {
|
|
1023
1032
|
const l = O(r);
|
|
1024
1033
|
return [l.x + l.w / 2, l.y];
|
|
1025
|
-
},
|
|
1034
|
+
}, c = (r) => {
|
|
1026
1035
|
const l = O(r);
|
|
1027
1036
|
return [l.x + l.w / 2, l.y + l.h];
|
|
1028
1037
|
}, D = (r) => n.querySelector(`[data-node-id="${r}"]`), q = (r, l) => {
|
|
1029
|
-
const
|
|
1030
|
-
return
|
|
1031
|
-
point: v(
|
|
1038
|
+
const p = D(r);
|
|
1039
|
+
return p ? Array.from(p.querySelectorAll("zui-bar-icon")).map((f, M) => ({
|
|
1040
|
+
point: v(f),
|
|
1032
1041
|
barIndex: M,
|
|
1033
1042
|
active: l !== void 0 ? M < l : !0
|
|
1034
1043
|
})) : [];
|
|
1035
|
-
},
|
|
1036
|
-
const [
|
|
1044
|
+
}, V = 16, k = 27, a = (r) => Math.round(r * 10) / 10, x = (r, l, p) => {
|
|
1045
|
+
const [f, M] = r, [y, I] = l, sn = y - f;
|
|
1037
1046
|
if (Math.abs(sn) < 3) {
|
|
1038
|
-
const cn = a((
|
|
1047
|
+
const cn = a((f + y) / 2);
|
|
1039
1048
|
return `M${cn},${a(M)}L${cn},${a(I)}`;
|
|
1040
1049
|
}
|
|
1041
|
-
const F = Math.min(
|
|
1050
|
+
const F = Math.min(V, Math.abs(sn) / 2, Math.abs(p - M) / 2, Math.abs(I - p) / 2), J = Math.sign(sn), Zn = Math.sign(I - p) || 1;
|
|
1042
1051
|
return [
|
|
1043
|
-
`M${a(
|
|
1044
|
-
`L${a(
|
|
1045
|
-
`Q${a(
|
|
1046
|
-
`L${a(y - F * J)},${a(
|
|
1047
|
-
`Q${a(y)},${a(
|
|
1052
|
+
`M${a(f)},${a(M)}`,
|
|
1053
|
+
`L${a(f)},${a(p - F)}`,
|
|
1054
|
+
`Q${a(f)},${a(p)},${a(f + F * J)},${a(p)}`,
|
|
1055
|
+
`L${a(y - F * J)},${a(p)}`,
|
|
1056
|
+
`Q${a(y)},${a(p)},${a(y)},${a(p + F * Zn)}`,
|
|
1048
1057
|
`L${a(y)},${a(I)}`
|
|
1049
1058
|
].join("");
|
|
1050
|
-
}, b = [], w = this.lightweight(), z = w ? "core-lw" : "ctrl", S = w ? 2 : 3, A = w ? 3 : 4, X = D("endpoint"), tn = this.resolvedInfra(),
|
|
1051
|
-
if (X &&
|
|
1052
|
-
const r =
|
|
1053
|
-
for (const
|
|
1059
|
+
}, b = [], w = this.lightweight(), z = w ? "core-lw" : "ctrl", S = w ? 2 : 3, A = w ? 3 : 4, X = D("endpoint"), tn = this.resolvedInfra(), Z = q(z, w ? void 0 : tn.ctrl.containers.active);
|
|
1060
|
+
if (X && Z.length) {
|
|
1061
|
+
const r = c(X), p = Math.min(...Z.map((f) => f.point[1])) - k;
|
|
1062
|
+
for (const f of Z)
|
|
1054
1063
|
b.push({
|
|
1055
|
-
d: x(r,
|
|
1064
|
+
d: x(r, f.point, p),
|
|
1056
1065
|
depth: 0,
|
|
1057
1066
|
sourceNodeId: "endpoint",
|
|
1058
1067
|
targetNodeId: z,
|
|
1059
|
-
targetBarIndex:
|
|
1060
|
-
active:
|
|
1068
|
+
targetBarIndex: f.barIndex,
|
|
1069
|
+
active: f.active
|
|
1061
1070
|
});
|
|
1062
1071
|
}
|
|
1063
|
-
const B = n.querySelector(".__infra-mode--active .__infra-group"), U = D("l7"), K = D("ctrl"),
|
|
1064
|
-
if (!w && K && U && B &&
|
|
1065
|
-
const r = q("l7",
|
|
1072
|
+
const B = n.querySelector(".__infra-mode--active .__infra-group"), U = D("l7"), K = D("ctrl"), me = this.resolvedRouting();
|
|
1073
|
+
if (!w && K && U && B && me) {
|
|
1074
|
+
const r = q("l7", me.containers.active);
|
|
1066
1075
|
if (r.length) {
|
|
1067
|
-
const l =
|
|
1076
|
+
const l = c(K)[0], p = c(B)[1], f = [l, p], y = Math.min(...r.map((I) => I.point[1])) - k;
|
|
1068
1077
|
for (const I of r)
|
|
1069
1078
|
b.push({
|
|
1070
|
-
d: x(
|
|
1079
|
+
d: x(f, I.point, y),
|
|
1071
1080
|
depth: 1,
|
|
1072
1081
|
sourceNodeId: "ctrl",
|
|
1073
1082
|
targetNodeId: "l7",
|
|
@@ -1079,17 +1088,17 @@ Rn = function() {
|
|
|
1079
1088
|
let Gn = null;
|
|
1080
1089
|
if (w) {
|
|
1081
1090
|
const r = D(z);
|
|
1082
|
-
r && B && (Gn = [
|
|
1083
|
-
} else U && (Gn =
|
|
1091
|
+
r && B && (Gn = [c(r)[0], c(B)[1]]);
|
|
1092
|
+
} else U && (Gn = c(U));
|
|
1084
1093
|
if (Gn) {
|
|
1085
1094
|
const r = w ? z : "l7";
|
|
1086
1095
|
for (const l of this.row1Services()) {
|
|
1087
|
-
const
|
|
1088
|
-
if (
|
|
1089
|
-
const
|
|
1090
|
-
for (const I of
|
|
1096
|
+
const p = q(l.service.id, l.service.containers.active);
|
|
1097
|
+
if (p.length) {
|
|
1098
|
+
const f = Gn, M = Math.min(...p.map((I) => I.point[1])), y = (f[1] + M) / 2;
|
|
1099
|
+
for (const I of p)
|
|
1091
1100
|
b.push({
|
|
1092
|
-
d: x(
|
|
1101
|
+
d: x(f, I.point, y),
|
|
1093
1102
|
depth: w ? 1 : 2,
|
|
1094
1103
|
sourceNodeId: r,
|
|
1095
1104
|
targetNodeId: l.service.id,
|
|
@@ -1099,43 +1108,48 @@ Rn = function() {
|
|
|
1099
1108
|
}
|
|
1100
1109
|
}
|
|
1101
1110
|
}
|
|
1102
|
-
const
|
|
1111
|
+
const ve = 19, te = 11, Dn = [], Nn = [];
|
|
1103
1112
|
for (const r of this.row2Services())
|
|
1104
1113
|
if (r.loadBalancer)
|
|
1105
1114
|
for (const l of q(r.loadBalancer.id, r.loadBalancer.containers.active))
|
|
1106
|
-
|
|
1115
|
+
Nn.push({ ...l, nodeId: r.loadBalancer.id });
|
|
1107
1116
|
else
|
|
1108
1117
|
for (const l of q(r.service.id, r.service.containers.active))
|
|
1109
|
-
|
|
1110
|
-
const
|
|
1111
|
-
|
|
1118
|
+
Dn.push({ ...l, nodeId: r.service.id });
|
|
1119
|
+
const be = n.querySelector(".__external-node"), oe = n.querySelectorAll(".__services-row");
|
|
1120
|
+
if (be && oe.length > 1) {
|
|
1121
|
+
const l = (oe[oe.length - 1].getBoundingClientRect().top - o.top) / i;
|
|
1122
|
+
be.style.top = `${Math.round(l + 11)}px`;
|
|
1123
|
+
}
|
|
1124
|
+
const xe = D("storage"), Hn = xe ? v(xe) : null;
|
|
1125
|
+
let vn = 0, we = 0;
|
|
1112
1126
|
for (const r of this.row1Services()) {
|
|
1113
1127
|
const l = D(r.service.id);
|
|
1114
1128
|
if (!l)
|
|
1115
1129
|
continue;
|
|
1116
|
-
const
|
|
1117
|
-
|
|
1118
|
-
const
|
|
1119
|
-
|
|
1120
|
-
d: x(
|
|
1130
|
+
const p = c(l);
|
|
1131
|
+
we = p[0];
|
|
1132
|
+
const f = Dn.length ? Math.min(...Dn.map((y) => y.point[1])) : Nn.length ? Math.min(...Nn.map((y) => y.point[1])) : 0, M = Math.max(p[1] + V, f - k);
|
|
1133
|
+
vn = M, Hn && b.push({
|
|
1134
|
+
d: x(p, Hn, M - ve),
|
|
1121
1135
|
depth: S,
|
|
1122
1136
|
sourceNodeId: r.service.id,
|
|
1123
1137
|
targetNodeId: "storage",
|
|
1124
1138
|
targetBarIndex: -1,
|
|
1125
1139
|
active: !0
|
|
1126
1140
|
});
|
|
1127
|
-
for (const y of
|
|
1141
|
+
for (const y of Dn)
|
|
1128
1142
|
b.push({
|
|
1129
|
-
d: x(
|
|
1143
|
+
d: x(p, y.point, M),
|
|
1130
1144
|
depth: S,
|
|
1131
1145
|
sourceNodeId: r.service.id,
|
|
1132
1146
|
targetNodeId: y.nodeId,
|
|
1133
1147
|
targetBarIndex: y.barIndex,
|
|
1134
1148
|
active: y.active
|
|
1135
1149
|
});
|
|
1136
|
-
for (const y of
|
|
1150
|
+
for (const y of Nn)
|
|
1137
1151
|
b.push({
|
|
1138
|
-
d: x(
|
|
1152
|
+
d: x(p, y.point, M + te),
|
|
1139
1153
|
depth: S,
|
|
1140
1154
|
sourceNodeId: r.service.id,
|
|
1141
1155
|
targetNodeId: y.nodeId,
|
|
@@ -1145,19 +1159,19 @@ Rn = function() {
|
|
|
1145
1159
|
}
|
|
1146
1160
|
for (const r of this.row1SideServices()) {
|
|
1147
1161
|
const l = D(r.service.id);
|
|
1148
|
-
if (!l || !
|
|
1162
|
+
if (!l || !vn)
|
|
1149
1163
|
continue;
|
|
1150
|
-
const
|
|
1164
|
+
const p = c(l);
|
|
1151
1165
|
b.push({
|
|
1152
|
-
d: `M${a(
|
|
1166
|
+
d: `M${a(p[0])},${a(p[1])}L${a(p[0])},${a(vn)}`,
|
|
1153
1167
|
depth: S,
|
|
1154
1168
|
sourceNodeId: r.service.id,
|
|
1155
1169
|
targetNodeId: "bus-rail",
|
|
1156
1170
|
targetBarIndex: -1,
|
|
1157
1171
|
active: !0,
|
|
1158
1172
|
renderMode: "base-only"
|
|
1159
|
-
}),
|
|
1160
|
-
d: x(
|
|
1173
|
+
}), Hn && b.push({
|
|
1174
|
+
d: x(p, Hn, vn - ve),
|
|
1161
1175
|
depth: S,
|
|
1162
1176
|
sourceNodeId: r.service.id,
|
|
1163
1177
|
targetNodeId: "storage",
|
|
@@ -1165,61 +1179,61 @@ Rn = function() {
|
|
|
1165
1179
|
active: !0,
|
|
1166
1180
|
renderMode: "glow-only"
|
|
1167
1181
|
});
|
|
1168
|
-
for (const
|
|
1182
|
+
for (const f of Dn)
|
|
1169
1183
|
b.push({
|
|
1170
|
-
d: x(
|
|
1184
|
+
d: x(p, f.point, vn),
|
|
1171
1185
|
depth: S,
|
|
1172
1186
|
sourceNodeId: r.service.id,
|
|
1173
|
-
targetNodeId:
|
|
1174
|
-
targetBarIndex:
|
|
1175
|
-
active:
|
|
1187
|
+
targetNodeId: f.nodeId,
|
|
1188
|
+
targetBarIndex: f.barIndex,
|
|
1189
|
+
active: f.active,
|
|
1176
1190
|
renderMode: "glow-only"
|
|
1177
1191
|
});
|
|
1178
|
-
for (const
|
|
1179
|
-
const [M, y] =
|
|
1180
|
-
let
|
|
1181
|
-
if (Math.abs(
|
|
1192
|
+
for (const f of Nn) {
|
|
1193
|
+
const [M, y] = p, [I, sn] = f.point, F = vn, J = we, Zn = J - M, cn = Math.min(V, Math.abs(Zn) / 2, Math.abs(F - y) / 2), Ce = Math.sign(Zn), Un = I - J;
|
|
1194
|
+
let ie;
|
|
1195
|
+
if (Math.abs(Un) < 3) {
|
|
1182
1196
|
const Y = a((J + I) / 2);
|
|
1183
|
-
|
|
1197
|
+
ie = [
|
|
1184
1198
|
`M${a(M)},${a(y)}`,
|
|
1185
1199
|
`L${a(M)},${a(F - cn)}`,
|
|
1186
|
-
`Q${a(M)},${a(F)},${a(M + cn *
|
|
1200
|
+
`Q${a(M)},${a(F)},${a(M + cn * Ce)},${a(F)}`,
|
|
1187
1201
|
`L${a(Y)},${a(F)}`,
|
|
1188
1202
|
`L${a(Y)},${a(sn)}`
|
|
1189
1203
|
].join("");
|
|
1190
1204
|
} else {
|
|
1191
|
-
const Y = F +
|
|
1192
|
-
|
|
1205
|
+
const Y = F + te, ye = Math.sign(Un), Me = Math.min(V, te / 2, Math.abs(Un) / 2), Ie = Math.min(V, Math.abs(Un) / 2, Math.abs(sn - Y) / 2);
|
|
1206
|
+
ie = [
|
|
1193
1207
|
`M${a(M)},${a(y)}`,
|
|
1194
1208
|
`L${a(M)},${a(F - cn)}`,
|
|
1195
|
-
`Q${a(M)},${a(F)},${a(M + cn *
|
|
1209
|
+
`Q${a(M)},${a(F)},${a(M + cn * Ce)},${a(F)}`,
|
|
1196
1210
|
`L${a(J)},${a(F)}`,
|
|
1197
|
-
`L${a(J)},${a(Y -
|
|
1198
|
-
`Q${a(J)},${a(Y)},${a(J +
|
|
1199
|
-
`L${a(I -
|
|
1200
|
-
`Q${a(I)},${a(Y)},${a(I)},${a(Y +
|
|
1211
|
+
`L${a(J)},${a(Y - Me)}`,
|
|
1212
|
+
`Q${a(J)},${a(Y)},${a(J + Me * ye)},${a(Y)}`,
|
|
1213
|
+
`L${a(I - Ie * ye)},${a(Y)}`,
|
|
1214
|
+
`Q${a(I)},${a(Y)},${a(I)},${a(Y + Ie)}`,
|
|
1201
1215
|
`L${a(I)},${a(sn)}`
|
|
1202
1216
|
].join("");
|
|
1203
1217
|
}
|
|
1204
1218
|
b.push({
|
|
1205
|
-
d:
|
|
1219
|
+
d: ie,
|
|
1206
1220
|
depth: S,
|
|
1207
1221
|
sourceNodeId: r.service.id,
|
|
1208
|
-
targetNodeId:
|
|
1209
|
-
targetBarIndex:
|
|
1210
|
-
active:
|
|
1222
|
+
targetNodeId: f.nodeId,
|
|
1223
|
+
targetBarIndex: f.barIndex,
|
|
1224
|
+
active: f.active,
|
|
1211
1225
|
renderMode: "glow-only"
|
|
1212
1226
|
});
|
|
1213
1227
|
}
|
|
1214
1228
|
}
|
|
1215
1229
|
for (const r of this.row2Services())
|
|
1216
1230
|
if (r.loadBalancer) {
|
|
1217
|
-
const l = D(r.loadBalancer.id),
|
|
1218
|
-
if (l &&
|
|
1219
|
-
const
|
|
1220
|
-
for (const I of
|
|
1231
|
+
const l = D(r.loadBalancer.id), p = q(r.service.id, r.service.containers.active);
|
|
1232
|
+
if (l && p.length) {
|
|
1233
|
+
const f = c(l), M = Math.min(...p.map((I) => I.point[1])), y = (f[1] + M) / 2;
|
|
1234
|
+
for (const I of p)
|
|
1221
1235
|
b.push({
|
|
1222
|
-
d: x(
|
|
1236
|
+
d: x(f, I.point, y),
|
|
1223
1237
|
depth: A,
|
|
1224
1238
|
sourceNodeId: r.loadBalancer.id,
|
|
1225
1239
|
targetNodeId: r.service.id,
|
|
@@ -1233,16 +1247,16 @@ Rn = function() {
|
|
|
1233
1247
|
if (!r)
|
|
1234
1248
|
return;
|
|
1235
1249
|
const l = this.annotatedPaths();
|
|
1236
|
-
let
|
|
1237
|
-
for (let
|
|
1238
|
-
if (l[
|
|
1250
|
+
let p = !1;
|
|
1251
|
+
for (let f = 0; f < l.length; f++) {
|
|
1252
|
+
if (l[f].cachedLength != null)
|
|
1239
1253
|
continue;
|
|
1240
|
-
const M = r.querySelector(`[data-path-idx="${
|
|
1241
|
-
M && (l[
|
|
1254
|
+
const M = r.querySelector(`[data-path-idx="${f}"]`);
|
|
1255
|
+
M && (l[f].cachedLength = Math.ceil(M.getTotalLength()), p = !0);
|
|
1242
1256
|
}
|
|
1243
|
-
|
|
1257
|
+
p && this.annotatedPaths.set([...l]), d(this, gn) && (h(this, gn, !1), this.pathsVisible.set(!0));
|
|
1244
1258
|
});
|
|
1245
|
-
},
|
|
1259
|
+
}, Jn = function(e) {
|
|
1246
1260
|
const n = e.category === "managed" ? "orange" : "cyan";
|
|
1247
1261
|
let o;
|
|
1248
1262
|
if (e.hasLoadBalancer) {
|
|
@@ -1258,29 +1272,29 @@ balancers`,
|
|
|
1258
1272
|
}
|
|
1259
1273
|
return { service: e, barColor: n, loadBalancer: o };
|
|
1260
1274
|
}, // ─── Trace orchestrator ────────────────────────────────
|
|
1261
|
-
|
|
1262
|
-
if (d(this,
|
|
1275
|
+
Ae = function() {
|
|
1276
|
+
if (d(this, fn) || typeof window < "u" && window.matchMedia("(prefers-reduced-motion: reduce)").matches)
|
|
1263
1277
|
return;
|
|
1264
|
-
|
|
1278
|
+
h(this, fn, !0);
|
|
1265
1279
|
const e = () => {
|
|
1266
|
-
C(this,
|
|
1280
|
+
C(this, _, Be).call(this), h(this, _n, window.setTimeout(e, Zt + Math.random() * Ut));
|
|
1267
1281
|
};
|
|
1268
|
-
|
|
1282
|
+
h(this, _n, window.setTimeout(e, Te));
|
|
1269
1283
|
const n = () => {
|
|
1270
|
-
C(this,
|
|
1284
|
+
C(this, _, Fe).call(this), h(this, pn, window.setTimeout(n, Jt + Math.random() * Yt));
|
|
1271
1285
|
};
|
|
1272
|
-
this.row1SideServices().length &&
|
|
1273
|
-
},
|
|
1274
|
-
|
|
1275
|
-
},
|
|
1276
|
-
d(this, an).forEach((e) => e()), d(this, an).clear(), d(this, rn).clear(),
|
|
1277
|
-
},
|
|
1286
|
+
this.row1SideServices().length && h(this, pn, window.setTimeout(n, Te + 600));
|
|
1287
|
+
}, pe = function() {
|
|
1288
|
+
h(this, fn, !1), clearTimeout(d(this, _n)), clearTimeout(d(this, pn)), C(this, _, Yn).call(this);
|
|
1289
|
+
}, Yn = function() {
|
|
1290
|
+
d(this, an).forEach((e) => e()), d(this, an).clear(), d(this, rn).clear(), h(this, on, !1);
|
|
1291
|
+
}, Be = function() {
|
|
1278
1292
|
const e = this.annotatedPaths();
|
|
1279
1293
|
if (!e.length)
|
|
1280
1294
|
return;
|
|
1281
|
-
const n = C(this,
|
|
1282
|
-
n.length && C(this,
|
|
1283
|
-
},
|
|
1295
|
+
const n = C(this, _, qe).call(this, e);
|
|
1296
|
+
n.length && C(this, _, fe).call(this, n);
|
|
1297
|
+
}, Fe = function() {
|
|
1284
1298
|
if (d(this, on))
|
|
1285
1299
|
return;
|
|
1286
1300
|
const e = this.annotatedPaths();
|
|
@@ -1289,12 +1303,12 @@ ke = function() {
|
|
|
1289
1303
|
const n = this.row1SideServices();
|
|
1290
1304
|
if (!n.length)
|
|
1291
1305
|
return;
|
|
1292
|
-
const o = n[Math.floor(Math.random() * n.length)], i = C(this,
|
|
1306
|
+
const o = n[Math.floor(Math.random() * n.length)], i = C(this, _, je).call(this, e, o.service.id);
|
|
1293
1307
|
if (i.length) {
|
|
1294
|
-
|
|
1295
|
-
const O = i.length *
|
|
1308
|
+
h(this, on, !0), C(this, _, fe).call(this, i);
|
|
1309
|
+
const O = i.length * ce + En + kn + le + 100;
|
|
1296
1310
|
setTimeout(() => {
|
|
1297
|
-
|
|
1311
|
+
h(this, on, !1);
|
|
1298
1312
|
}, O);
|
|
1299
1313
|
}
|
|
1300
1314
|
}, /**
|
|
@@ -1302,52 +1316,52 @@ ke = function() {
|
|
|
1302
1316
|
* Uses worker's own glow-only depth-3 paths (invisible base, full path to target).
|
|
1303
1317
|
* Optionally continues with depth-4 (LB → managed service).
|
|
1304
1318
|
*/
|
|
1305
|
-
|
|
1306
|
-
const o = [], i = e.filter((
|
|
1319
|
+
je = function(e, n) {
|
|
1320
|
+
const o = [], i = e.filter((c) => c.sourceNodeId === n && c.renderMode === "glow-only" && c.active);
|
|
1307
1321
|
if (!i.length)
|
|
1308
1322
|
return o;
|
|
1309
|
-
const O = C(this,
|
|
1323
|
+
const O = C(this, _, Qn).call(this, i);
|
|
1310
1324
|
o.push(e.indexOf(O));
|
|
1311
|
-
const v = e.filter((
|
|
1325
|
+
const v = e.filter((c) => c.depth === O.depth + 1 && c.sourceNodeId === O.targetNodeId && c.active);
|
|
1312
1326
|
if (v.length) {
|
|
1313
|
-
const
|
|
1314
|
-
o.push(e.indexOf(
|
|
1327
|
+
const c = C(this, _, Qn).call(this, v);
|
|
1328
|
+
o.push(e.indexOf(c));
|
|
1315
1329
|
}
|
|
1316
1330
|
return o;
|
|
1317
|
-
},
|
|
1331
|
+
}, qe = function(e) {
|
|
1318
1332
|
const n = [];
|
|
1319
1333
|
let o = "endpoint";
|
|
1320
1334
|
for (let i = 0; i <= 4; i++) {
|
|
1321
|
-
const O = e.filter((
|
|
1335
|
+
const O = e.filter((c) => c.depth === i && c.sourceNodeId === o && c.active);
|
|
1322
1336
|
if (!O.length)
|
|
1323
1337
|
break;
|
|
1324
|
-
const v = C(this,
|
|
1338
|
+
const v = C(this, _, Qn).call(this, O);
|
|
1325
1339
|
n.push(e.indexOf(v)), o = v.targetNodeId;
|
|
1326
1340
|
}
|
|
1327
1341
|
return n;
|
|
1328
|
-
},
|
|
1342
|
+
}, Qn = function(e) {
|
|
1329
1343
|
if (e.length === 1)
|
|
1330
|
-
return C(this,
|
|
1344
|
+
return C(this, _, Xn).call(this, e[0]), e[0];
|
|
1331
1345
|
const n = e.map((v) => {
|
|
1332
|
-
const
|
|
1333
|
-
return 1 / ((d(this, rn).get(
|
|
1334
|
-
}), o = n.reduce((v,
|
|
1346
|
+
const c = `${v.targetNodeId}:${v.targetBarIndex}`;
|
|
1347
|
+
return 1 / ((d(this, rn).get(c) ?? 0) + 1);
|
|
1348
|
+
}), o = n.reduce((v, c) => v + c, 0);
|
|
1335
1349
|
let i = Math.random() * o;
|
|
1336
1350
|
for (let v = 0; v < e.length; v++)
|
|
1337
1351
|
if (i -= n[v], i <= 0)
|
|
1338
|
-
return C(this,
|
|
1352
|
+
return C(this, _, Xn).call(this, e[v]), e[v];
|
|
1339
1353
|
const O = e.at(-1);
|
|
1340
|
-
return C(this,
|
|
1341
|
-
},
|
|
1354
|
+
return C(this, _, Xn).call(this, O), O;
|
|
1355
|
+
}, Xn = function(e) {
|
|
1342
1356
|
const n = `${e.targetNodeId}:${e.targetBarIndex}`;
|
|
1343
1357
|
d(this, rn).set(n, (d(this, rn).get(n) ?? 0) + 1);
|
|
1344
|
-
},
|
|
1358
|
+
}, fe = function(e) {
|
|
1345
1359
|
const n = this.annotatedPaths(), i = d(this, nn).nativeElement.querySelector(".__canvas"), O = i?.querySelector(":scope > .__svg-layer");
|
|
1346
1360
|
if (!i || !O)
|
|
1347
1361
|
return;
|
|
1348
|
-
const v = [],
|
|
1349
|
-
e.forEach((
|
|
1350
|
-
const x = n[
|
|
1362
|
+
const v = [], c = ++Oe(this, jn)._, D = [];
|
|
1363
|
+
e.forEach((k, a) => {
|
|
1364
|
+
const x = n[k], b = a * ce, w = O.querySelector(`[data-path-idx="${k}"]`);
|
|
1351
1365
|
if (w) {
|
|
1352
1366
|
const S = x.cachedLength ?? Math.ceil(w.getTotalLength());
|
|
1353
1367
|
w.style.setProperty("--path-len", String(S)), D.push({
|
|
@@ -1357,38 +1371,38 @@ Le = function(e, n) {
|
|
|
1357
1371
|
w.classList.add("__path-glow--active");
|
|
1358
1372
|
}, b)), v.push(setTimeout(() => {
|
|
1359
1373
|
w.classList.remove("__path-glow--active"), w.classList.add("__path-glow--decay");
|
|
1360
|
-
}, b +
|
|
1374
|
+
}, b + En + kn)), v.push(setTimeout(() => {
|
|
1361
1375
|
w.classList.remove("__path-glow--decay");
|
|
1362
|
-
}, b +
|
|
1376
|
+
}, b + En + kn + le));
|
|
1363
1377
|
}
|
|
1364
|
-
const z = b +
|
|
1378
|
+
const z = b + En * 0.85;
|
|
1365
1379
|
if (x.targetBarIndex >= 0) {
|
|
1366
1380
|
const A = i.querySelector(`[data-node-id="${x.targetNodeId}"]`)?.querySelectorAll("zui-bar-icon")[x.targetBarIndex];
|
|
1367
1381
|
A && v.push(setTimeout(() => A.dispatchEvent(new CustomEvent("trace-pulse")), z));
|
|
1368
1382
|
} else if (x.targetNodeId === "storage") {
|
|
1369
1383
|
const S = i.querySelector('[data-node-id="storage"]');
|
|
1370
1384
|
if (S) {
|
|
1371
|
-
const A = z +
|
|
1385
|
+
const A = z + kn;
|
|
1372
1386
|
D.push({ el: S, classes: ["--pulse"] }), v.push(setTimeout(() => S.classList.add("--pulse"), z)), v.push(setTimeout(() => S.classList.remove("--pulse"), A));
|
|
1373
1387
|
}
|
|
1374
1388
|
}
|
|
1375
1389
|
});
|
|
1376
1390
|
const q = () => {
|
|
1377
|
-
v.forEach((
|
|
1391
|
+
v.forEach((k) => clearTimeout(k)), D.forEach(({ el: k, classes: a }) => k.classList.remove(...a));
|
|
1378
1392
|
};
|
|
1379
|
-
d(this, an).set(
|
|
1380
|
-
const
|
|
1393
|
+
d(this, an).set(c, q);
|
|
1394
|
+
const V = e.length * ce + En + kn + le + 100;
|
|
1381
1395
|
v.push(setTimeout(() => {
|
|
1382
|
-
d(this, an).delete(
|
|
1383
|
-
},
|
|
1384
|
-
},
|
|
1385
|
-
return new (n ||
|
|
1386
|
-
},
|
|
1387
|
-
if (n & 1 && (m(0, "div", 0)(1, "div", 1), u(2, "zw-diagram-node", 2),
|
|
1396
|
+
d(this, an).delete(c);
|
|
1397
|
+
}, V));
|
|
1398
|
+
}, Cn.ɵfac = function(n) {
|
|
1399
|
+
return new (n || Cn)();
|
|
1400
|
+
}, Cn.ɵcmp = /* @__PURE__ */ ee({ type: Cn, selectors: [["zw-network-diagram"]], inputs: { config: [1, "config"], lightweight: [1, "lightweight"] }, decls: 26, vars: 8, consts: [[1, "__canvas"], ["data-node-id", "endpoint", 1, "__endpoint-row"], ["variant", "endpoint", 3, "label"], [3, "config", "showPaths", "lightweight"], [1, "__zone", "__zone--services"], [1, "__zone-label"], [1, "__services-content"], [1, "__services-row", "__services-row--top"], [1, "__services-side-nodes"], [1, "__services-spacer"], [1, "__services-row", "__services-row--bottom"], ["data-node-id", "storage", 1, "__external-node"], [1, "__svg-layer"], ["variant", "service", 3, "label", "containers", "barColor", "techIcon"], [1, "__compound"], [1, "__compound-lb"], ["variant", "service-highlighted", 3, "label", "containers", "barColor", "highlighted"], [1, "__compound-service"], ["variant", "external", 3, "label", "sublabel"], [1, "__path-base"], [1, "__path-glow"]], template: function(n, o) {
|
|
1401
|
+
if (n & 1 && (m(0, "div", 0)(1, "div", 1), u(2, "zw-diagram-node", 2), g(), m(3, "zw-project-shell", 3)(4, "div", 4)(5, "span", 5), N(6, "Your services"), u(7, "br"), N(8, "with system containers"), g(), m(9, "div", 6)(10, "div", 7), u(11, "div"), R(12, Nt, 2, 5, "div", null, ge), W(14, kt, 3, 0, "div", 8)(15, Rt, 1, 0, "div"), g(), u(16, "div", 9), m(17, "div", 10), R(18, Bt, 2, 1, null, null, ge), g()()()(), W(20, Ft, 2, 2, "div", 11), Wn(), m(21, "svg", 12), R(22, qt, 1, 1, null, null, de), R(24, Wt, 1, 1, null, null, de), g()()), n & 2) {
|
|
1388
1402
|
let i;
|
|
1389
|
-
|
|
1403
|
+
s(2), T("label", o.config().endpoint), s(), T("config", o.shellConfig())("showPaths", !1)("lightweight", o.lightweight()), s(9), L(o.row1MainServices()), s(2), G(o.row1SideServices().length ? 14 : 15), s(4), L(o.row2Services()), s(2), G((i = o.resolvedStorage()) ? 20 : -1, i), s(), bn("__svg-layer--visible", o.pathsVisible()), s(), L(o.annotatedPaths()), s(2), L(o.annotatedPaths());
|
|
1390
1404
|
}
|
|
1391
|
-
}, dependencies: [
|
|
1405
|
+
}, dependencies: [ne, he], styles: [`[_nghost-%COMP%] {
|
|
1392
1406
|
display: block;
|
|
1393
1407
|
position: relative;
|
|
1394
1408
|
width: 100%;
|
|
@@ -1402,6 +1416,11 @@ Le = function(e, n) {
|
|
|
1402
1416
|
overflow: visible;
|
|
1403
1417
|
contain: layout style;
|
|
1404
1418
|
will-change: transform;
|
|
1419
|
+
opacity: 0;
|
|
1420
|
+
transition: opacity 0.18s cubic-bezier(0.4, 0, 0.2, 1);
|
|
1421
|
+
}
|
|
1422
|
+
.__svg-layer--visible[_ngcontent-%COMP%] {
|
|
1423
|
+
opacity: 1;
|
|
1405
1424
|
}
|
|
1406
1425
|
|
|
1407
1426
|
.__path-base[_ngcontent-%COMP%] {
|
|
@@ -1594,17 +1613,17 @@ zw-project-shell[_ngcontent-%COMP%] {
|
|
|
1594
1613
|
display: none;
|
|
1595
1614
|
}
|
|
1596
1615
|
}`], changeDetection: 0 });
|
|
1597
|
-
let
|
|
1598
|
-
function
|
|
1616
|
+
let _e = Cn;
|
|
1617
|
+
function $e(t) {
|
|
1599
1618
|
const e = t.hostname || t.name, n = t.ports?.[0]?.port;
|
|
1600
1619
|
return n ? `${e}:${n}` : e;
|
|
1601
1620
|
}
|
|
1602
|
-
function
|
|
1603
|
-
return t ?
|
|
1621
|
+
function Qt(t) {
|
|
1622
|
+
return t ? Ee[t]?.horizontal === !0 : !1;
|
|
1604
1623
|
}
|
|
1605
|
-
const
|
|
1606
|
-
function
|
|
1607
|
-
const e = t.findIndex((O) => O.techIcon &&
|
|
1624
|
+
const Xt = /* @__PURE__ */ new Set(["postgresql", "mariadb", "mongodb", "clickhouse"]);
|
|
1625
|
+
function Kt(t) {
|
|
1626
|
+
const e = t.findIndex((O) => O.techIcon && Xt.has(O.techIcon));
|
|
1608
1627
|
if (e < 0)
|
|
1609
1628
|
return t;
|
|
1610
1629
|
const n = Math.floor(t.length / 2);
|
|
@@ -1613,70 +1632,70 @@ function Jt(t) {
|
|
|
1613
1632
|
const o = [...t], [i] = o.splice(e, 1);
|
|
1614
1633
|
return o.splice(n, 0, i), o;
|
|
1615
1634
|
}
|
|
1616
|
-
function
|
|
1635
|
+
function no(t) {
|
|
1617
1636
|
const e = t._servicesExtended ?? t.services ?? [];
|
|
1618
1637
|
let n = !1;
|
|
1619
1638
|
const o = [], i = [];
|
|
1620
1639
|
let O = !1, v;
|
|
1621
|
-
for (const
|
|
1622
|
-
if (
|
|
1640
|
+
for (const c of e) {
|
|
1641
|
+
if (c.category === "CORE")
|
|
1623
1642
|
continue;
|
|
1624
|
-
if (
|
|
1625
|
-
O = !0, v =
|
|
1643
|
+
if (c.category === "OBJECT_STORAGE") {
|
|
1644
|
+
O = !0, v = c;
|
|
1626
1645
|
continue;
|
|
1627
1646
|
}
|
|
1628
|
-
const D =
|
|
1629
|
-
id:
|
|
1630
|
-
label:
|
|
1647
|
+
const D = Je(c), q = Ye(c.typeId, D, c.autoscaling?.horizontalAutoscaling?.minContainerCount || 1), V = c.typeId ? Ee[c.typeId]?.HAContainers : void 0, k = D === "HA" && (V?.freeContainers ?? 0) > 0, a = {
|
|
1648
|
+
id: c.hostname || c.name,
|
|
1649
|
+
label: $e(c),
|
|
1631
1650
|
containers: { active: q, standby: 0 },
|
|
1632
|
-
techIcon:
|
|
1633
|
-
...
|
|
1651
|
+
techIcon: c.typeId,
|
|
1652
|
+
...k ? {
|
|
1634
1653
|
hasLoadBalancer: !0,
|
|
1635
1654
|
loadBalancer: {
|
|
1636
|
-
containers: { active:
|
|
1655
|
+
containers: { active: V.freeContainers, standby: 0 }
|
|
1637
1656
|
}
|
|
1638
1657
|
} : {}
|
|
1639
1658
|
};
|
|
1640
|
-
if (
|
|
1659
|
+
if (Qt(c.typeId)) {
|
|
1641
1660
|
const x = n ? "side-runtime" : "http-runtime";
|
|
1642
1661
|
n || (n = !0), o.push({ ...a, category: x });
|
|
1643
1662
|
} else
|
|
1644
1663
|
i.push({ ...a, category: "managed" });
|
|
1645
1664
|
}
|
|
1646
1665
|
return {
|
|
1647
|
-
...
|
|
1648
|
-
services: [...o, ...
|
|
1666
|
+
...ke,
|
|
1667
|
+
services: [...o, ...Kt(i)],
|
|
1649
1668
|
...O && v ? {
|
|
1650
1669
|
storage: {
|
|
1651
1670
|
label: "Object storage",
|
|
1652
|
-
sublabel:
|
|
1671
|
+
sublabel: $e(v)
|
|
1653
1672
|
}
|
|
1654
1673
|
} : {}
|
|
1655
1674
|
};
|
|
1656
1675
|
}
|
|
1657
|
-
function
|
|
1676
|
+
function eo(t, e) {
|
|
1658
1677
|
t & 1 && u(0, "div", 1);
|
|
1659
1678
|
}
|
|
1660
|
-
function
|
|
1661
|
-
if (t & 1 && (m(0, "div", 2), N(1),
|
|
1679
|
+
function to(t, e) {
|
|
1680
|
+
if (t & 1 && (m(0, "div", 2), N(1), g()), t & 2) {
|
|
1662
1681
|
const n = P();
|
|
1663
|
-
|
|
1682
|
+
s(), Se("Could not load recipe “", n.slug() || "unknown", "”.");
|
|
1664
1683
|
}
|
|
1665
1684
|
}
|
|
1666
|
-
function
|
|
1685
|
+
function oo(t, e) {
|
|
1667
1686
|
if (t & 1 && u(0, "zw-network-diagram", 3), t & 2) {
|
|
1668
1687
|
const n = P();
|
|
1669
1688
|
T("config", e)("lightweight", n.lightweight());
|
|
1670
1689
|
}
|
|
1671
1690
|
}
|
|
1672
|
-
var
|
|
1673
|
-
const
|
|
1691
|
+
var qn, Sn, zn, Vn;
|
|
1692
|
+
const yn = class yn {
|
|
1674
1693
|
constructor() {
|
|
1675
|
-
$(this,
|
|
1676
|
-
$(this,
|
|
1677
|
-
$(this,
|
|
1678
|
-
$(this,
|
|
1679
|
-
this.slug =
|
|
1694
|
+
$(this, qn);
|
|
1695
|
+
$(this, Sn);
|
|
1696
|
+
$(this, zn);
|
|
1697
|
+
$(this, Vn);
|
|
1698
|
+
this.slug = E(), this.recipeData = E(void 0, { transform: (e) => {
|
|
1680
1699
|
if (typeof e != "string")
|
|
1681
1700
|
return e ?? void 0;
|
|
1682
1701
|
if (e.trim())
|
|
@@ -1685,43 +1704,43 @@ const bn = class bn {
|
|
|
1685
1704
|
} catch {
|
|
1686
1705
|
return;
|
|
1687
1706
|
}
|
|
1688
|
-
} }), this.environment =
|
|
1707
|
+
} }), this.environment = E("highly-available-production"), this.mode = E("auto"), this.apiBase = E("https://api.zerops.io"), h(this, qn, An(ot)), this.recipe = un(null), this.loading = un(!0), this.error = un(!1), h(this, Sn, j(() => {
|
|
1689
1708
|
const e = this.recipe();
|
|
1690
1709
|
if (!e)
|
|
1691
1710
|
return;
|
|
1692
1711
|
const n = e._environmentsExtended || [];
|
|
1693
|
-
return n.find((o) => o._key === this.environment()) ??
|
|
1712
|
+
return n.find((o) => o._key === this.environment()) ?? Qe(n) ?? void 0;
|
|
1694
1713
|
})), this.diagramConfig = j(() => {
|
|
1695
|
-
const e = d(this,
|
|
1696
|
-
return e ?
|
|
1714
|
+
const e = d(this, Sn).call(this);
|
|
1715
|
+
return e ? no(e) : void 0;
|
|
1697
1716
|
}), this.lightweight = j(() => {
|
|
1698
1717
|
const e = this.mode();
|
|
1699
1718
|
if (e === "lightweight")
|
|
1700
1719
|
return !0;
|
|
1701
1720
|
if (e === "serious")
|
|
1702
1721
|
return !1;
|
|
1703
|
-
const n = d(this,
|
|
1704
|
-
return n ?
|
|
1705
|
-
}),
|
|
1722
|
+
const n = d(this, Sn).call(this);
|
|
1723
|
+
return n ? Xe(n._servicesExtended) === "LIGHT" : !1;
|
|
1724
|
+
}), h(this, zn, new Ke()), h(this, Vn, nt(d(this, zn).pipe(et((e) => it(d(this, qn), this.apiBase(), e))))), Kn(() => {
|
|
1706
1725
|
const e = this.recipeData(), n = this.slug();
|
|
1707
1726
|
if (e) {
|
|
1708
|
-
const o =
|
|
1727
|
+
const o = tt(e);
|
|
1709
1728
|
this.loading.set(!1), this.error.set(o.error), this.recipe.set(o.recipe);
|
|
1710
|
-
} else n && (this.loading.set(!0), this.error.set(!1), this.recipe.set(null), d(this,
|
|
1711
|
-
}),
|
|
1712
|
-
const e = d(this,
|
|
1729
|
+
} else n && (this.loading.set(!0), this.error.set(!1), this.recipe.set(null), d(this, zn).next(n));
|
|
1730
|
+
}), Kn(() => {
|
|
1731
|
+
const e = d(this, Vn).call(this);
|
|
1713
1732
|
e && (this.loading.set(!1), this.error.set(e.error), this.recipe.set(e.recipe));
|
|
1714
1733
|
});
|
|
1715
1734
|
}
|
|
1716
1735
|
};
|
|
1717
|
-
|
|
1718
|
-
return new (n ||
|
|
1719
|
-
},
|
|
1720
|
-
if (n & 1 && (m(0, "div", 0), W(1,
|
|
1736
|
+
qn = new WeakMap(), Sn = new WeakMap(), zn = new WeakMap(), Vn = new WeakMap(), yn.ɵfac = function(n) {
|
|
1737
|
+
return new (n || yn)();
|
|
1738
|
+
}, yn.ɵcmp = /* @__PURE__ */ ee({ type: yn, selectors: [["zwe-network-diagram-element"]], inputs: { slug: [1, "slug"], recipeData: [1, "recipeData"], environment: [1, "environment"], mode: [1, "mode"], apiBase: [1, "apiBase"] }, decls: 4, vars: 1, consts: [[1, "zerops"], ["aria-hidden", "true", 1, "__skeleton"], [1, "__error"], [3, "config", "lightweight"]], template: function(n, o) {
|
|
1739
|
+
if (n & 1 && (m(0, "div", 0), W(1, eo, 1, 0, "div", 1)(2, to, 2, 1, "div", 2)(3, oo, 1, 2, "zw-network-diagram", 3), g()), n & 2) {
|
|
1721
1740
|
let i;
|
|
1722
|
-
|
|
1741
|
+
s(), G(o.loading() ? 1 : o.error() ? 2 : (i = o.diagramConfig()) ? 3 : -1, i);
|
|
1723
1742
|
}
|
|
1724
|
-
}, dependencies: [
|
|
1743
|
+
}, dependencies: [_e], styles: [`[_nghost-%COMP%] { display: block; }
|
|
1725
1744
|
|
|
1726
1745
|
.__skeleton[_ngcontent-%COMP%] {
|
|
1727
1746
|
height: 420px;
|
|
@@ -1738,7 +1757,7 @@ Fn = new WeakMap(), Tn = new WeakMap(), $n = new WeakMap(), jn = new WeakMap(),
|
|
|
1738
1757
|
color: var(--mat-sys-on-error-container);
|
|
1739
1758
|
font-size: 14px;
|
|
1740
1759
|
}`], changeDetection: 0 });
|
|
1741
|
-
let
|
|
1742
|
-
|
|
1743
|
-
customElements.get("zerops-network-diagram") || customElements.define("zerops-network-diagram",
|
|
1760
|
+
let ue = yn;
|
|
1761
|
+
at().then((t) => {
|
|
1762
|
+
customElements.get("zerops-network-diagram") || customElements.define("zerops-network-diagram", rt(ue, { injector: t.injector }));
|
|
1744
1763
|
});
|