@zerops/web-components 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,18 +1,18 @@
1
- var Ce = (t) => {
1
+ var Pe = (t) => {
2
2
  throw TypeError(t);
3
3
  };
4
- var ee = (t, e, n) => e.has(t) || Ce("Cannot " + n);
5
- var d = (t, e, n) => (ee(t, e, "read from private field"), n ? n.call(t) : e.get(t)), $ = (t, e, n) => e.has(t) ? Ce("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(t) : e.set(t, n), f = (t, e, n, o) => (ee(t, e, "write to private field"), o ? o.call(t, n) : e.set(t, n), n), C = (t, e, n) => (ee(t, e, "access private method"), n);
6
- var ye = (t, e, n, o) => ({
4
+ var ae = (t, e, n) => e.has(t) || Pe("Cannot " + n);
5
+ var l = (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
- f(t, e, i, n);
8
+ h(t, e, i, n);
9
9
  },
10
10
  get _() {
11
- return d(t, e, o);
11
+ return l(t, e, o);
12
12
  }
13
13
  });
14
- import { aa as k, at as j, r as Xn, bl as Be, au as Fe, av as je, ax as W, aA as V, ba as qe, bb as kn, aw as m, aC as N, ay as h, aB as P, az as c, aD as pn, bh as R, bN as Q, bi as L, aF as Pe, a3 as u, ao as T, B as xn, l as Ln, b0 as Oe, bA as Yn, n as Te, F as $e, b7 as Ge, b9 as We, bL as qn, bm as re, ak as en, bt as Ve, bs as Ze, bZ as Se, b_ as He, bq as Ue, j as Je, bT as Ye, J as Qe, bW as Xe, bU as Ke, bV as nt, bX as et, bY as tt } from "./chunks/recipe-fetch-D2IpKMVr.js";
15
- const ze = {
14
+ import { aa as E, at as j, r as ee, bl as Ve, au as Ge, av as We, ax as G, aA as W, 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 Bn, b0 as ze, bA as Kn, n as De, F as Ne, b7 as Ze, b9 as Ue, bL as Gn, 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 ot(t, e) {
72
- if (t & 1 && (m(0, "div", 0)(1, "span", 7), N(2), h()()), t & 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
- c(2), pn(n.label());
74
+ s(2), mn(n.label());
75
75
  }
76
76
  }
77
- function it(t, e) {
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 at(t, e) {
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 rt(t, e) {
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 st(t, e) {
96
- if (t & 1 && R(0, rt, 1, 1, "mat-icon", 12, Q), t & 2) {
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 ct(t, e) {
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 lt(t, e) {
108
- if (t & 1 && (m(0, "div", 1)(1, "div", 8), R(2, it, 1, 2, "zui-bar-icon", 9, Q), R(4, at, 1, 2, "zui-bar-icon", 9, Q), h(), m(6, "span", 10), N(7), h(), m(8, "div", 11), W(9, st, 2, 0)(10, ct, 1, 1, "mat-icon", 12), h()()), t & 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), G(9, ht, 2, 0)(10, gt, 1, 1, "mat-icon", 12), g()()), t & 2) {
109
109
  let n;
110
110
  const o = P();
111
- c(2), L(o.activeRange()), c(2), L(o.inactiveRange()), c(3), pn(o.label()), c(2), V((n = o.techIcons()) != null && n.length ? 9 : o.techIcon() ? 10 : -1);
111
+ s(2), L(o.activeRange()), s(2), L(o.inactiveRange()), s(3), mn(o.label()), s(2), W((n = o.techIcons()) != null && n.length ? 9 : o.techIcon() ? 10 : -1);
112
112
  }
113
113
  }
114
- function dt(t, e) {
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 ht(t, e) {
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 gt(t, e) {
127
- if (t & 1 && (m(0, "div", 2)(1, "div", 13), R(2, dt, 1, 2, "zui-bar-icon", 9, Q), h(), m(4, "div", 14)(5, "span", 15), N(6), h(), W(7, ht, 1, 1, "mat-icon", 16), h()()), t & 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(), G(7, ft, 1, 1, "mat-icon", 16), g()()), t & 2) {
128
128
  const n = P();
129
- c(2), L(n.activeRange()), c(4), pn(n.formatLabel(n.label())), c(), V(n.techIcon() ? 7 : -1);
129
+ s(2), L(n.activeRange()), s(4), mn(n.formatLabel(n.label())), s(), W(n.techIcon() ? 7 : -1);
130
130
  }
131
131
  }
132
- function _t(t, e) {
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 pt(t, e) {
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 ft(t, e) {
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 ut(t, e) {
151
- if (t & 1 && (m(0, "div", 3)(1, "div", 17), R(2, _t, 1, 2, "zui-bar-icon", 9, Q), R(4, pt, 1, 2, "zui-bar-icon", 9, Q), h(), m(6, "div", 18)(7, "span", 19), N(8), h(), W(9, ft, 1, 1, "mat-icon", 20), h()()), t & 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(), G(9, bt, 1, 1, "mat-icon", 20), g()()), t & 2) {
152
152
  const n = P();
153
- c(2), L(n.activeRange()), c(2), L(n.inactiveRange()), c(4), pn(n.label()), c(), V(n.techIcon() ? 9 : -1);
153
+ s(2), L(n.activeRange()), s(2), L(n.inactiveRange()), s(4), mn(n.label()), s(), W(n.techIcon() ? 9 : -1);
154
154
  }
155
155
  }
156
- function mt(t, e) {
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 vt(t, e) {
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 bt(t, e) {
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 xt(t, e) {
175
- if (t & 1 && (m(0, "div", 4)(1, "div", 21), R(2, mt, 1, 2, "zui-bar-icon", 9, Q), R(4, vt, 1, 2, "zui-bar-icon", 9, Q), h(), m(6, "div", 22)(7, "span", 23), N(8), h(), W(9, bt, 1, 1, "mat-icon", 12), h()()), t & 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(), G(9, yt, 1, 1, "mat-icon", 12), g()()), t & 2) {
176
176
  const n = P();
177
- c(2), L(n.activeRange()), c(2), L(n.inactiveRange()), c(4), pn(n.formatLabel(n.label())), c(), V(n.techIcon() ? 9 : -1);
177
+ s(2), L(n.activeRange()), s(2), L(n.inactiveRange()), s(4), mn(n.formatLabel(n.label())), s(), W(n.techIcon() ? 9 : -1);
178
178
  }
179
179
  }
180
- function wt(t, e) {
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 Ct(t, e) {
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 yt(t, e) {
193
- if (t & 1 && (m(0, "div", 5)(1, "div", 21), R(2, wt, 1, 2, "zui-bar-icon", 9, Q), R(4, Ct, 1, 2, "zui-bar-icon", 9, Q), h(), m(6, "span", 19), N(7), h()()), t & 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
- c(2), L(n.activeRange()), c(2), L(n.inactiveRange()), c(3), pn(n.label());
195
+ s(2), L(n.activeRange()), s(2), L(n.inactiveRange()), s(3), mn(n.label());
196
196
  }
197
197
  }
198
- function Mt(t, e) {
199
- if (t & 1 && (m(0, "div", 26)(1, "span", 27), N(2), h()()), t & 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
- c(2), pn(n.sublabel());
201
+ s(2), mn(n.sublabel());
202
202
  }
203
203
  }
204
- function It(t, e) {
205
- if (t & 1 && (m(0, "div", 6)(1, "div", 24)(2, "span", 25), N(3), h()(), W(4, Mt, 3, 1, "div", 26), h()), t & 2) {
204
+ function $t(t, e) {
205
+ if (t & 1 && (m(0, "div", 6)(1, "div", 24)(2, "span", 25), N(3), g()(), G(4, Tt, 3, 1, "div", 26), g()), t & 2) {
206
206
  const n = P();
207
- c(3), Pe("", n.label(), `
208
- External`), c(), V(n.sublabel() ? 4 : -1);
207
+ s(3), Se("", n.label(), `
208
+ External`), s(), W(n.sublabel() ? 4 : -1);
209
209
  }
210
210
  }
211
- const un = class un {
211
+ const xn = class xn {
212
212
  constructor() {
213
- this.variant = k.required(), this.label = k.required(), this.sublabel = k(), this.containers = k(), this.barColor = k("orange"), this.techIcon = k(), this.techIcons = k(), this.highlighted = k(!1), this.activeRange = j(() => {
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
- un.ɵfac = function(n) {
226
- return new (n || un)();
227
- }, un.ɵcmp = /* @__PURE__ */ Xn({ type: un, selectors: [["zw-diagram-node"]], hostVars: 4, hostBindings: function(n, o) {
228
- n & 2 && (qe("__node __node--" + o.variant()), kn("__node--highlighted", o.highlighted()));
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, ot, 3, 1, "div", 0)(1, lt, 11, 2, "div", 1)(2, gt, 8, 2, "div", 2)(3, ut, 10, 2, "div", 3)(4, xt, 10, 2, "div", 4)(5, yt, 8, 1, "div", 5)(6, It, 5, 2, "div", 6), n & 2) {
230
+ if (n & 1 && G(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
- V((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);
232
+ W((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: [Be, Fe, je], styles: [`[_nghost-%COMP%] {
234
+ }, dependencies: [Ve, Ge, We], 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 Qn = un;
497
- const Pt = ["*"];
498
- function Ot(t, e) {
499
- if (t & 1 && (qn(), u(0, "path", 28)), t & 2) {
496
+ let ne = xn;
497
+ const St = ["*"];
498
+ function zt(t, e) {
499
+ if (t & 1 && (Gn(), u(0, "path", 28)), t & 2) {
500
500
  const n = e.$implicit;
501
501
  en("d", n);
502
502
  }
503
503
  }
504
- const te = {
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
- }, Tt = {
508
+ }, Dt = {
509
509
  containers: { active: 2, standby: 0 }
510
510
  };
511
- var wn, An, Cn, yn, ln, dn, En;
512
- const mn = class mn {
511
+ var Mn, Fn, In, Pn, ln, dn, Ln;
512
+ const wn = class wn {
513
513
  // ─── Lifecycle ──────────────────────────────────────────
514
514
  constructor() {
515
515
  $(this, dn);
516
- $(this, wn);
517
- $(this, An);
518
- $(this, Cn);
519
- $(this, yn);
516
+ $(this, Mn);
517
+ $(this, Fn);
518
+ $(this, In);
519
+ $(this, Pn);
520
520
  $(this, ln);
521
- this.config = k({}), this.lightweight = k(!1), this.showPaths = k(!0), this.internalPaths = xn([]), this.pathsVisible = xn(!0), f(this, wn, Ln(Te)), f(this, An, Ln($e)), f(this, yn, !1), this.resolvedInfra = {
521
+ this.config = E({}), this.lightweight = E(!1), this.showPaths = E(!0), this.internalPaths = un([]), this.pathsVisible = un(!0), h(this, Mn, Bn(De)), h(this, Fn, Bn(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: te.ctrl,
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: te.stats,
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: te.logger,
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: Tt.containers,
558
+ containers: Dt.containers,
559
559
  techIcon: "nginx",
560
560
  highlighted: !0
561
- }, Oe(() => {
562
- f(this, yn, !0), f(this, ln, this.lightweight()), f(this, Cn, new ResizeObserver(() => C(this, dn, En).call(this))), d(this, Cn).observe(d(this, wn).nativeElement), d(this, An).onDestroy(() => d(this, Cn)?.disconnect()), requestAnimationFrame(() => {
563
- requestAnimationFrame(() => C(this, dn, En).call(this));
561
+ }, ze(() => {
562
+ h(this, Pn, !0), h(this, ln, this.lightweight()), h(this, In, new ResizeObserver(() => C(this, dn, Ln).call(this))), l(this, In).observe(l(this, Mn).nativeElement), l(this, Fn).onDestroy(() => l(this, In)?.disconnect()), requestAnimationFrame(() => {
563
+ requestAnimationFrame(() => C(this, dn, Ln).call(this));
564
564
  });
565
- }), Yn(() => {
565
+ }), Kn(() => {
566
566
  this.config();
567
567
  const e = this.lightweight();
568
- if (!d(this, yn))
568
+ if (!l(this, Pn))
569
569
  return;
570
- const n = d(this, ln) !== void 0 && d(this, ln) !== e;
571
- f(this, ln, e), n ? (this.pathsVisible.set(!1), setTimeout(() => {
570
+ const n = l(this, ln) !== void 0 && l(this, ln) !== e;
571
+ h(this, ln, e), n ? (this.pathsVisible.set(!1), setTimeout(() => {
572
572
  requestAnimationFrame(() => {
573
573
  requestAnimationFrame(() => {
574
- C(this, dn, En).call(this), this.pathsVisible.set(!0);
574
+ C(this, dn, Ln).call(this), this.pathsVisible.set(!0);
575
575
  });
576
576
  });
577
577
  }, 200)) : requestAnimationFrame(() => {
578
- requestAnimationFrame(() => C(this, dn, En).call(this));
578
+ requestAnimationFrame(() => C(this, dn, Ln).call(this));
579
579
  });
580
580
  });
581
581
  }
582
582
  };
583
- wn = new WeakMap(), An = new WeakMap(), Cn = new WeakMap(), yn = new WeakMap(), ln = new WeakMap(), dn = new WeakSet(), // ─── Internal path computation ──────────────────────────
584
- En = function() {
583
+ Mn = new WeakMap(), Fn = new WeakMap(), In = new WeakMap(), Pn = new WeakMap(), ln = new WeakMap(), dn = new WeakSet(), // ─── Internal path computation ──────────────────────────
584
+ Ln = function() {
585
585
  if (!this.showPaths()) {
586
586
  this.internalPaths.set([]);
587
587
  return;
588
588
  }
589
- const n = d(this, wn).nativeElement.querySelector(".__project");
589
+ const n = l(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
- }, s = [], D = 16, q = 27, G = (x, b, w) => {
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 H = 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;
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 - H)}`,
617
- `Q${i(z)},${i(w)},${i(z + H * B)},${i(w)}`,
618
- `L${i(A - H * B)},${i(w)}`,
619
- `Q${i(A)},${i(w)},${i(A)},${i(w + H * U)}`,
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
- }, E = n.querySelector(".__zone--services");
622
+ }, k = n.querySelector(".__zone--services");
623
623
  if (this.lightweight()) {
624
624
  const x = n.querySelector('[data-mode="lw"]');
625
- if (x && E) {
625
+ if (x && k) {
626
626
  const b = x.querySelector(".__infra-group");
627
627
  if (b) {
628
- const [w, z] = O(b), S = v(E)[1];
629
- s.push(`M${i(w)},${i(z)}L${i(w)},${i(S)}`);
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(s);
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")), H = this.resolvedRoutingDisplay.containers.active;
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 >= H)
642
+ if (B >= Z)
643
643
  continue;
644
644
  const U = v(tn[B]), K = U[1] - q;
645
- s.push(G(X, U, K));
645
+ c.push(V(X, U, K));
646
646
  }
647
- if (E) {
648
- const [B, U] = O(z), K = v(E)[1];
649
- s.push(`M${i(B)},${i(U)}L${i(B)},${i(K)}`);
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(s);
654
- }, mn.ɵfac = function(n) {
655
- return new (n || mn)();
656
- }, mn.ɵcmp = /* @__PURE__ */ Xn({ type: mn, selectors: [["zw-project-shell"]], inputs: { config: [1, "config"], lightweight: [1, "lightweight"], showPaths: [1, "showPaths"] }, ngContentSelectors: Pt, 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 && (Ge(), m(0, "div", 0)(1, "div", 1)(2, "span", 2), N(3, "Project"), h(), m(4, "span", 3), N(5, "Private VXLAN network"), h()(), 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"), h(), m(18, "div", 9)(19, "div", 10)(20, "div", 11), u(21, "zw-diagram-node", 12), h()()()()()(), m(22, "div", 13)(23, "div", 6)(24, "div", 14)(25, "span", 8), N(26, "Dedicated infrastructure core"), h(), m(27, "div", 15)(28, "div", 10)(29, "div", 16), u(30, "zw-diagram-node", 12), h(), m(31, "div", 17)(32, "div", 18), u(33, "zw-diagram-node", 19), h(), m(34, "div", 20), u(35, "zw-diagram-node", 19), h()()()()(), u(36, "div", 21), m(37, "div", 22)(38, "span", 8), N(39, "Dedicated routing and balancing"), h(), m(40, "div", 23)(41, "div", 24), u(42, "zw-diagram-node", 25), h()()()()()(), u(43, "div", 26), We(44), qn(), m(45, "svg", 27), R(46, Ot, 1, 1, ":svg:path", 28, re), h()()), n & 2 && (kn("__project--lightweight", o.lightweight()), c(7), kn("__infra-mode--active", o.lightweight()), c(14), T("label", o.resolvedLightweightNode.label)("containers", o.resolvedLightweightNode.containers)("techIcons", o.resolvedLightweightNode.techIcons)("highlighted", o.resolvedLightweightNode.highlighted), c(), kn("__infra-mode--active", !o.lightweight()), c(8), T("label", o.resolvedInfra.ctrl.label)("containers", o.resolvedInfra.ctrl.containers)("techIcons", o.resolvedInfra.ctrl.techIcons)("highlighted", o.resolvedInfra.ctrl.highlighted), c(3), T("label", o.resolvedInfra.stats.label)("containers", o.resolvedInfra.stats.containers)("techIcon", o.resolvedInfra.stats.techIcon)("highlighted", o.resolvedInfra.stats.highlighted), c(2), T("label", o.resolvedInfra.logger.label)("containers", o.resolvedInfra.logger.containers)("techIcon", o.resolvedInfra.logger.techIcon)("highlighted", o.resolvedInfra.logger.highlighted), c(7), T("label", o.resolvedRoutingDisplay.label)("containers", o.resolvedRoutingDisplay.containers)("techIcon", o.resolvedRoutingDisplay.techIcon)("highlighted", o.resolvedRoutingDisplay.highlighted), c(3), kn("__svg-layer--visible", o.pathsVisible()), c(), L(o.internalPaths()));
658
- }, dependencies: [Qn], styles: [`[_nghost-%COMP%] {
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), Gn(), 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 se = mn;
831
- const ce = (t, e) => e.service.id;
832
- function $t(t, e) {
833
- if (t & 1 && (m(0, "div"), u(1, "zw-diagram-node", 13), h()), t & 2) {
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), c(), T("label", n.service.label)("containers", n.service.containers)("barColor", n.barColor)("techIcon", n.service.techIcon);
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 St(t, e) {
839
- if (t & 1 && (m(0, "div"), u(1, "zw-diagram-node", 13), h()), t & 2) {
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), c(), T("label", n.service.label)("containers", n.service.containers)("barColor", n.barColor)("techIcon", n.service.techIcon);
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 zt(t, e) {
845
- if (t & 1 && (m(0, "div", 8), R(1, St, 2, 5, "div", null, ce), h()), t & 2) {
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
- c(), L(n.row1SideServices());
847
+ s(), L(n.row1SideServices());
848
848
  }
849
849
  }
850
- function Dt(t, e) {
850
+ function Rt(t, e) {
851
851
  t & 1 && u(0, "div");
852
852
  }
853
- function Nt(t, e) {
854
- if (t & 1 && (m(0, "div", 14)(1, "div", 15), u(2, "zw-diagram-node", 16), h(), m(3, "div", 17), u(4, "zw-diagram-node", 13), h()()), t & 2) {
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"), c(), en("data-node-id", n.id), c(), T("label", n.label)("containers", n.containers)("barColor", n.barColor)("highlighted", !0), c(), en("data-node-id", o.service.id), c(), T("label", o.service.label)("containers", o.service.containers)("barColor", o.barColor)("techIcon", o.service.techIcon);
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 kt(t, e) {
860
- if (t & 1 && (m(0, "div"), u(1, "zw-diagram-node", 13), h()), t & 2) {
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), c(), T("label", n.service.label)("containers", n.service.containers)("barColor", n.barColor)("techIcon", n.service.techIcon);
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 Et(t, e) {
866
- if (t & 1 && W(0, Nt, 5, 11, "div", 14)(1, kt, 2, 5, "div"), t & 2) {
865
+ function Bt(t, e) {
866
+ if (t & 1 && G(0, Lt, 5, 11, "div", 14)(1, At, 2, 5, "div"), t & 2) {
867
867
  let n;
868
868
  const o = e.$implicit;
869
- V((n = o.loadBalancer) ? 0 : 1, n);
869
+ W((n = o.loadBalancer) ? 0 : 1, n);
870
870
  }
871
871
  }
872
- function Rt(t, e) {
873
- if (t & 1 && (m(0, "div", 11), u(1, "zw-diagram-node", 18), h()), t & 2) {
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
- c(), T("label", n.label)("sublabel", n.sublabel);
875
+ s(), T("label", n.label)("sublabel", n.sublabel);
876
876
  }
877
877
  }
878
- function Lt(t, e) {
879
- if (t & 1 && (qn(), u(0, "path", 19)), t & 2) {
878
+ function jt(t, e) {
879
+ if (t & 1 && (Gn(), u(0, "path", 19)), t & 2) {
880
880
  const n = P().$implicit;
881
881
  en("d", n.d);
882
882
  }
883
883
  }
884
- function At(t, e) {
885
- if (t & 1 && W(0, Lt, 1, 1, ":svg:path", 19), t & 2) {
884
+ function qt(t, e) {
885
+ if (t & 1 && G(0, jt, 1, 1, ":svg:path", 19), t & 2) {
886
886
  const n = e.$implicit;
887
- V(n.renderMode !== "glow-only" ? 0 : -1);
887
+ W(n.renderMode !== "glow-only" ? 0 : -1);
888
888
  }
889
889
  }
890
- function Bt(t, e) {
891
- if (t & 1 && (qn(), u(0, "path", 20)), t & 2) {
890
+ function Vt(t, e) {
891
+ if (t & 1 && (Gn(), 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 Ft(t, e) {
897
- if (t & 1 && W(0, Bt, 1, 2, ":svg:path", 20), t & 2) {
896
+ function Gt(t, e) {
897
+ if (t & 1 && G(0, Vt, 1, 2, ":svg:path", 20), t & 2) {
898
898
  const n = e.$implicit;
899
- V(n.renderMode !== "base-only" ? 0 : -1);
899
+ W(n.renderMode !== "base-only" ? 0 : -1);
900
900
  }
901
901
  }
902
- const jt = 660, oe = {
902
+ const Wt = 660, se = {
903
903
  ctrl: { active: 1, standby: 1 },
904
904
  stats: { active: 1, standby: 0 },
905
905
  logger: { active: 1, standby: 0 }
906
- }, qt = {
906
+ }, Ht = {
907
907
  containers: { active: 2, standby: 0 }
908
- }, Dn = 600, Nn = 1050, ie = 525, ae = 900, Gt = 3300, Wt = 900, Me = 2250, Vt = 2e3, Zt = 400;
909
- var nn, Mn, In, Pn, On, Z, Bn, hn, gn, _n, on, an, rn, g, Rn, De, Ne, Hn, ke, de, he, Ee, Re, Le, Ae, Un, Jn, ge;
910
- const vn = class vn {
908
+ }, kn = 600, Rn = 1050, ce = 525, le = 900, Zt = 3300, Ut = 900, Te = 2250, Jt = 2e3, Yt = 400;
909
+ var nn, On, Tn, $n, Sn, H, hn, gn, jn, _n, pn, fn, on, an, rn, _, An, 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, g);
913
+ $(this, _);
914
914
  $(this, nn);
915
- $(this, Mn);
916
- $(this, In);
917
- $(this, Pn);
918
915
  $(this, On);
919
- $(this, Z);
916
+ $(this, Tn);
917
+ $(this, $n);
918
+ $(this, Sn);
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 = k(ze), this.lightweight = k(!1), this.annotatedPaths = xn([]), f(this, nn, Ln(Te)), f(this, Mn, Ln($e)), f(this, Pn, 1), f(this, On, !1), f(this, Z, 0), f(this, Bn, 0), f(this, hn, 0), f(this, gn, 0), f(this, _n, !1), f(this, on, !1), f(this, an, /* @__PURE__ */ new Map()), f(this, rn, /* @__PURE__ */ new Map()), this.shellConfig = j(() => ({
931
+ this.config = E(ke), this.lightweight = E(!1), this.annotatedPaths = un([]), this.pathsVisible = un(!0), h(this, nn, Bn(De)), h(this, On, Bn(Ne)), h(this, $n, 1), h(this, Sn, !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 ?? oe.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 ?? oe.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 ?? oe.logger,
956
+ containers: e.logger ?? se.logger,
955
957
  techIcon: "victorialogs",
956
958
  highlighted: !1
957
959
  }
@@ -962,112 +964,119 @@ const vn = class vn {
962
964
  id: "l7",
963
965
  label: `L7 HTTP
964
966
  balancer`,
965
- containers: e.containers ?? qt.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, g, Hn).call(this, e))), this.row1SideServices = j(() => this.config().services.filter((e) => e.category === "side-runtime").map((e) => C(this, g, Hn).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, g, Hn).call(this, e))), this.resolvedStorage = j(() => {
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
- }), Oe(() => {
976
- f(this, On, !0), f(this, In, new ResizeObserver(() => {
977
- C(this, g, Rn).call(this);
978
- })), d(this, In).observe(d(this, nn).nativeElement), d(this, Mn).onDestroy(() => {
979
- d(this, In)?.disconnect(), C(this, g, de).call(this), d(this, Z) && cancelAnimationFrame(d(this, Z));
980
- }), C(this, g, Rn).call(this);
977
+ }), ze(() => {
978
+ h(this, Sn, !0), h(this, hn, this.lightweight()), h(this, Tn, new ResizeObserver(() => {
979
+ C(this, _, An).call(this);
980
+ })), l(this, Tn).observe(l(this, nn).nativeElement), l(this, On).onDestroy(() => {
981
+ l(this, Tn)?.disconnect(), C(this, _, pe).call(this), l(this, H) && cancelAnimationFrame(l(this, H));
982
+ }), C(this, _, An).call(this);
981
983
  const e = new IntersectionObserver(([n]) => {
982
- n.isIntersecting ? C(this, g, ke).call(this) : C(this, g, de).call(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, Mn).onDestroy(() => e.disconnect());
985
- }), Yn(() => {
986
- this.config(), this.lightweight(), d(this, On) && (C(this, g, Rn).call(this), setTimeout(() => C(this, g, Rn).call(this), 350));
986
+ e.observe(l(this, nn).nativeElement), l(this, On).onDestroy(() => e.disconnect());
987
+ }), Kn(() => {
988
+ this.config();
989
+ const e = this.lightweight();
990
+ if (!l(this, Sn))
991
+ return;
992
+ const n = l(this, hn) !== void 0 && l(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, _, An).call(this);
995
+ }, 400)) : C(this, _, An).call(this);
987
996
  });
988
997
  }
989
998
  };
990
- nn = new WeakMap(), Mn = new WeakMap(), In = new WeakMap(), Pn = new WeakMap(), On = new WeakMap(), Z = new WeakMap(), Bn = new WeakMap(), hn = new WeakMap(), gn = new WeakMap(), _n = new WeakMap(), on = new WeakMap(), an = new WeakMap(), rn = new WeakMap(), g = new WeakSet(), // ─── Private ────────────────────────────────────────────
999
+ nn = new WeakMap(), On = new WeakMap(), Tn = new WeakMap(), $n = new WeakMap(), Sn = 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
- Rn = function() {
997
- d(this, Z) && cancelAnimationFrame(d(this, Z)), f(this, Z, requestAnimationFrame(() => {
998
- f(this, Z, requestAnimationFrame(() => {
999
- f(this, Z, 0), C(this, g, he).call(this), C(this, g, De).call(this), C(this, g, Ne).call(this);
1005
+ An = function() {
1006
+ l(this, H) && cancelAnimationFrame(l(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
- }, De = function() {
1003
- const e = d(this, nn).nativeElement, o = e.clientWidth / jt;
1004
- f(this, Pn, o), e.style.setProperty("--diagram-scale", String(o));
1011
+ }, Re = function() {
1012
+ const e = l(this, nn).nativeElement, o = e.clientWidth / Wt;
1013
+ h(this, $n, 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
- }, Ne = function() {
1008
- const e = d(this, nn).nativeElement, n = e.querySelector(".__canvas");
1016
+ }, Le = function() {
1017
+ const e = l(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 = d(this, Pn), O = (r) => {
1015
- const l = r.getBoundingClientRect();
1023
+ const i = l(this, $n), O = (r) => {
1024
+ const d = r.getBoundingClientRect();
1016
1025
  return {
1017
- x: (l.left - o.left) / i,
1018
- y: (l.top - o.top) / i,
1019
- w: l.width / i,
1020
- h: l.height / i
1026
+ x: (d.left - o.left) / i,
1027
+ y: (d.top - o.top) / i,
1028
+ w: d.width / i,
1029
+ h: d.height / i
1021
1030
  };
1022
1031
  }, v = (r) => {
1023
- const l = O(r);
1024
- return [l.x + l.w / 2, l.y];
1025
- }, s = (r) => {
1026
- const l = O(r);
1027
- return [l.x + l.w / 2, l.y + l.h];
1028
- }, D = (r) => n.querySelector(`[data-node-id="${r}"]`), q = (r, l) => {
1029
- const _ = D(r);
1030
- return _ ? Array.from(_.querySelectorAll("zui-bar-icon")).map((p, M) => ({
1031
- point: v(p),
1032
+ const d = O(r);
1033
+ return [d.x + d.w / 2, d.y];
1034
+ }, c = (r) => {
1035
+ const d = O(r);
1036
+ return [d.x + d.w / 2, d.y + d.h];
1037
+ }, D = (r) => n.querySelector(`[data-node-id="${r}"]`), q = (r, d) => {
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
- active: l !== void 0 ? M < l : !0
1042
+ active: d !== void 0 ? M < d : !0
1034
1043
  })) : [];
1035
- }, G = 16, E = 27, a = (r) => Math.round(r * 10) / 10, x = (r, l, _) => {
1036
- const [p, M] = r, [y, I] = l, sn = y - p;
1044
+ }, V = 16, k = 27, a = (r) => Math.round(r * 10) / 10, x = (r, d, p) => {
1045
+ const [f, M] = r, [y, I] = d, sn = y - f;
1037
1046
  if (Math.abs(sn) < 3) {
1038
- const cn = a((p + y) / 2);
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(G, Math.abs(sn) / 2, Math.abs(_ - M) / 2, Math.abs(I - _) / 2), J = Math.sign(sn), Vn = Math.sign(I - _) || 1;
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(p)},${a(M)}`,
1044
- `L${a(p)},${a(_ - F)}`,
1045
- `Q${a(p)},${a(_)},${a(p + F * J)},${a(_)}`,
1046
- `L${a(y - F * J)},${a(_)}`,
1047
- `Q${a(y)},${a(_)},${a(y)},${a(_ + F * Vn)}`,
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(), H = q(z, w ? void 0 : tn.ctrl.containers.active);
1051
- if (X && H.length) {
1052
- const r = s(X), _ = Math.min(...H.map((p) => p.point[1])) - E;
1053
- for (const p of H)
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, p.point, _),
1064
+ d: x(r, f.point, p),
1056
1065
  depth: 0,
1057
1066
  sourceNodeId: "endpoint",
1058
1067
  targetNodeId: z,
1059
- targetBarIndex: p.barIndex,
1060
- active: p.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"), pe = this.resolvedRouting();
1064
- if (!w && K && U && B && pe) {
1065
- const r = q("l7", pe.containers.active);
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 = s(K)[0], _ = s(B)[1], p = [l, _], y = Math.min(...r.map((I) => I.point[1])) - E;
1076
+ const d = c(K)[0], p = c(B)[1], f = [d, 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(p, I.point, y),
1079
+ d: x(f, I.point, y),
1071
1080
  depth: 1,
1072
1081
  sourceNodeId: "ctrl",
1073
1082
  targetNodeId: "l7",
@@ -1076,66 +1085,71 @@ Rn = function() {
1076
1085
  });
1077
1086
  }
1078
1087
  }
1079
- let Gn = null;
1088
+ let Wn = null;
1080
1089
  if (w) {
1081
1090
  const r = D(z);
1082
- r && B && (Gn = [s(r)[0], s(B)[1]]);
1083
- } else U && (Gn = s(U));
1084
- if (Gn) {
1091
+ r && B && (Wn = [c(r)[0], c(B)[1]]);
1092
+ } else U && (Wn = c(U));
1093
+ if (Wn) {
1085
1094
  const r = w ? z : "l7";
1086
- for (const l of this.row1Services()) {
1087
- const _ = q(l.service.id, l.service.containers.active);
1088
- if (_.length) {
1089
- const p = Gn, M = Math.min(..._.map((I) => I.point[1])), y = (p[1] + M) / 2;
1090
- for (const I of _)
1095
+ for (const d of this.row1Services()) {
1096
+ const p = q(d.service.id, d.service.containers.active);
1097
+ if (p.length) {
1098
+ const f = Wn, 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(p, I.point, y),
1101
+ d: x(f, I.point, y),
1093
1102
  depth: w ? 1 : 2,
1094
1103
  sourceNodeId: r,
1095
- targetNodeId: l.service.id,
1104
+ targetNodeId: d.service.id,
1096
1105
  targetBarIndex: I.barIndex,
1097
1106
  active: I.active
1098
1107
  });
1099
1108
  }
1100
1109
  }
1101
1110
  }
1102
- const fe = 19, Kn = 11, Sn = [], zn = [];
1111
+ const ve = 19, te = 11, Nn = [], En = [];
1103
1112
  for (const r of this.row2Services())
1104
1113
  if (r.loadBalancer)
1105
- for (const l of q(r.loadBalancer.id, r.loadBalancer.containers.active))
1106
- zn.push({ ...l, nodeId: r.loadBalancer.id });
1114
+ for (const d of q(r.loadBalancer.id, r.loadBalancer.containers.active))
1115
+ En.push({ ...d, nodeId: r.loadBalancer.id });
1107
1116
  else
1108
- for (const l of q(r.service.id, r.service.containers.active))
1109
- Sn.push({ ...l, nodeId: r.service.id });
1110
- const ue = D("storage"), Wn = ue ? v(ue) : null;
1111
- let fn = 0, me = 0;
1117
+ for (const d of q(r.service.id, r.service.containers.active))
1118
+ Nn.push({ ...d, nodeId: r.service.id });
1119
+ const be = n.querySelector(".__external-node"), oe = n.querySelectorAll(".__services-row");
1120
+ if (be && oe.length > 1) {
1121
+ const d = (oe[oe.length - 1].getBoundingClientRect().top - o.top) / i;
1122
+ be.style.top = `${Math.round(d + 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
- const l = D(r.service.id);
1114
- if (!l)
1127
+ const d = D(r.service.id);
1128
+ if (!d)
1115
1129
  continue;
1116
- const _ = s(l);
1117
- me = _[0];
1118
- const p = Sn.length ? Math.min(...Sn.map((y) => y.point[1])) : zn.length ? Math.min(...zn.map((y) => y.point[1])) : 0, M = Math.max(_[1] + G, p - E);
1119
- fn = M, Wn && b.push({
1120
- d: x(_, Wn, M - fe),
1130
+ const p = c(d);
1131
+ we = p[0];
1132
+ const f = Nn.length ? Math.min(...Nn.map((y) => y.point[1])) : En.length ? Math.min(...En.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 Sn)
1141
+ for (const y of Nn)
1128
1142
  b.push({
1129
- d: x(_, y.point, M),
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 zn)
1150
+ for (const y of En)
1137
1151
  b.push({
1138
- d: x(_, y.point, M + Kn),
1152
+ d: x(p, y.point, M + te),
1139
1153
  depth: S,
1140
1154
  sourceNodeId: r.service.id,
1141
1155
  targetNodeId: y.nodeId,
@@ -1144,20 +1158,20 @@ Rn = function() {
1144
1158
  });
1145
1159
  }
1146
1160
  for (const r of this.row1SideServices()) {
1147
- const l = D(r.service.id);
1148
- if (!l || !fn)
1161
+ const d = D(r.service.id);
1162
+ if (!d || !vn)
1149
1163
  continue;
1150
- const _ = s(l);
1164
+ const p = c(d);
1151
1165
  b.push({
1152
- d: `M${a(_[0])},${a(_[1])}L${a(_[0])},${a(fn)}`,
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
- }), Wn && b.push({
1160
- d: x(_, Wn, fn - fe),
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 p of Sn)
1182
+ for (const f of Nn)
1169
1183
  b.push({
1170
- d: x(_, p.point, fn),
1184
+ d: x(p, f.point, vn),
1171
1185
  depth: S,
1172
1186
  sourceNodeId: r.service.id,
1173
- targetNodeId: p.nodeId,
1174
- targetBarIndex: p.barIndex,
1175
- active: p.active,
1187
+ targetNodeId: f.nodeId,
1188
+ targetBarIndex: f.barIndex,
1189
+ active: f.active,
1176
1190
  renderMode: "glow-only"
1177
1191
  });
1178
- for (const p of zn) {
1179
- const [M, y] = _, [I, sn] = p.point, F = fn, J = me, Vn = J - M, cn = Math.min(G, Math.abs(Vn) / 2, Math.abs(F - y) / 2), ve = Math.sign(Vn), Zn = I - J;
1180
- let ne;
1181
- if (Math.abs(Zn) < 3) {
1192
+ for (const f of En) {
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
- ne = [
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 * ve)},${a(F)}`,
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 + Kn, be = Math.sign(Zn), xe = Math.min(G, Kn / 2, Math.abs(Zn) / 2), we = Math.min(G, Math.abs(Zn) / 2, Math.abs(sn - Y) / 2);
1192
- ne = [
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 * ve)},${a(F)}`,
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 - xe)}`,
1198
- `Q${a(J)},${a(Y)},${a(J + xe * be)},${a(Y)}`,
1199
- `L${a(I - we * be)},${a(Y)}`,
1200
- `Q${a(I)},${a(Y)},${a(I)},${a(Y + we)}`,
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: ne,
1219
+ d: ie,
1206
1220
  depth: S,
1207
1221
  sourceNodeId: r.service.id,
1208
- targetNodeId: p.nodeId,
1209
- targetBarIndex: p.barIndex,
1210
- active: p.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), _ = q(r.service.id, r.service.containers.active);
1218
- if (l && _.length) {
1219
- const p = s(l), M = Math.min(..._.map((I) => I.point[1])), y = (p[1] + M) / 2;
1220
- for (const I of _)
1231
+ const d = D(r.loadBalancer.id), p = q(r.service.id, r.service.containers.active);
1232
+ if (d && p.length) {
1233
+ const f = c(d), 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(p, I.point, y),
1236
+ d: x(f, I.point, y),
1223
1237
  depth: A,
1224
1238
  sourceNodeId: r.loadBalancer.id,
1225
1239
  targetNodeId: r.service.id,
@@ -1232,17 +1246,17 @@ Rn = function() {
1232
1246
  const r = e.querySelector(".__canvas > .__svg-layer");
1233
1247
  if (!r)
1234
1248
  return;
1235
- const l = this.annotatedPaths();
1236
- let _ = !1;
1237
- for (let p = 0; p < l.length; p++) {
1238
- if (l[p].cachedLength != null)
1249
+ const d = this.annotatedPaths();
1250
+ let p = !1;
1251
+ for (let f = 0; f < d.length; f++) {
1252
+ if (d[f].cachedLength != null)
1239
1253
  continue;
1240
- const M = r.querySelector(`[data-path-idx="${p}"]`);
1241
- M && (l[p].cachedLength = Math.ceil(M.getTotalLength()), _ = !0);
1254
+ const M = r.querySelector(`[data-path-idx="${f}"]`);
1255
+ M && (d[f].cachedLength = Math.ceil(M.getTotalLength()), p = !0);
1242
1256
  }
1243
- _ && this.annotatedPaths.set([...l]);
1257
+ p && this.annotatedPaths.set([...d]), l(this, gn) && (h(this, gn, !1), this.pathsVisible.set(!0));
1244
1258
  });
1245
- }, Hn = function(e) {
1259
+ }, Jn = function(e) {
1246
1260
  const n = e.category === "managed" ? "orange" : "cyan";
1247
1261
  let o;
1248
1262
  if (e.hasLoadBalancer) {
@@ -1258,30 +1272,30 @@ balancers`,
1258
1272
  }
1259
1273
  return { service: e, barColor: n, loadBalancer: o };
1260
1274
  }, // ─── Trace orchestrator ────────────────────────────────
1261
- ke = function() {
1262
- if (d(this, _n) || typeof window < "u" && window.matchMedia("(prefers-reduced-motion: reduce)").matches)
1275
+ Ae = function() {
1276
+ if (l(this, fn) || typeof window < "u" && window.matchMedia("(prefers-reduced-motion: reduce)").matches)
1263
1277
  return;
1264
- f(this, _n, !0);
1278
+ h(this, fn, !0);
1265
1279
  const e = () => {
1266
- C(this, g, Ee).call(this), f(this, hn, window.setTimeout(e, Gt + Math.random() * Wt));
1280
+ C(this, _, Be).call(this), h(this, _n, window.setTimeout(e, Zt + Math.random() * Ut));
1267
1281
  };
1268
- f(this, hn, window.setTimeout(e, Me));
1282
+ h(this, _n, window.setTimeout(e, Te));
1269
1283
  const n = () => {
1270
- C(this, g, Re).call(this), f(this, gn, window.setTimeout(n, Vt + Math.random() * Zt));
1284
+ C(this, _, Fe).call(this), h(this, pn, window.setTimeout(n, Jt + Math.random() * Yt));
1271
1285
  };
1272
- this.row1SideServices().length && f(this, gn, window.setTimeout(n, Me + 600));
1273
- }, de = function() {
1274
- f(this, _n, !1), clearTimeout(d(this, hn)), clearTimeout(d(this, gn)), C(this, g, he).call(this);
1275
- }, he = function() {
1276
- d(this, an).forEach((e) => e()), d(this, an).clear(), d(this, rn).clear(), f(this, on, !1);
1277
- }, Ee = function() {
1286
+ this.row1SideServices().length && h(this, pn, window.setTimeout(n, Te + 600));
1287
+ }, pe = function() {
1288
+ h(this, fn, !1), clearTimeout(l(this, _n)), clearTimeout(l(this, pn)), C(this, _, Yn).call(this);
1289
+ }, Yn = function() {
1290
+ l(this, an).forEach((e) => e()), l(this, an).clear(), l(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, g, Ae).call(this, e);
1282
- n.length && C(this, g, ge).call(this, n);
1283
- }, Re = function() {
1284
- if (d(this, on))
1295
+ const n = C(this, _, qe).call(this, e);
1296
+ n.length && C(this, _, fe).call(this, n);
1297
+ }, Fe = function() {
1298
+ if (l(this, on))
1285
1299
  return;
1286
1300
  const e = this.annotatedPaths();
1287
1301
  if (!e.length)
@@ -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, g, Le).call(this, e, o.service.id);
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
- f(this, on, !0), C(this, g, ge).call(this, i);
1295
- const O = i.length * ie + Dn + Nn + ae + 100;
1308
+ h(this, on, !0), C(this, _, fe).call(this, i);
1309
+ const O = i.length * ce + kn + Rn + le + 100;
1296
1310
  setTimeout(() => {
1297
- f(this, on, !1);
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
- Le = function(e, n) {
1306
- const o = [], i = e.filter((s) => s.sourceNodeId === n && s.renderMode === "glow-only" && s.active);
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, g, Un).call(this, i);
1323
+ const O = C(this, _, Qn).call(this, i);
1310
1324
  o.push(e.indexOf(O));
1311
- const v = e.filter((s) => s.depth === O.depth + 1 && s.sourceNodeId === O.targetNodeId && s.active);
1325
+ const v = e.filter((c) => c.depth === O.depth + 1 && c.sourceNodeId === O.targetNodeId && c.active);
1312
1326
  if (v.length) {
1313
- const s = C(this, g, Un).call(this, v);
1314
- o.push(e.indexOf(s));
1327
+ const c = C(this, _, Qn).call(this, v);
1328
+ o.push(e.indexOf(c));
1315
1329
  }
1316
1330
  return o;
1317
- }, Ae = function(e) {
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((s) => s.depth === i && s.sourceNodeId === o && s.active);
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, g, Un).call(this, O);
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
- }, Un = function(e) {
1342
+ }, Qn = function(e) {
1329
1343
  if (e.length === 1)
1330
- return C(this, g, Jn).call(this, e[0]), e[0];
1344
+ return C(this, _, Xn).call(this, e[0]), e[0];
1331
1345
  const n = e.map((v) => {
1332
- const s = `${v.targetNodeId}:${v.targetBarIndex}`;
1333
- return 1 / ((d(this, rn).get(s) ?? 0) + 1);
1334
- }), o = n.reduce((v, s) => v + s, 0);
1346
+ const c = `${v.targetNodeId}:${v.targetBarIndex}`;
1347
+ return 1 / ((l(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, g, Jn).call(this, e[v]), e[v];
1352
+ return C(this, _, Xn).call(this, e[v]), e[v];
1339
1353
  const O = e.at(-1);
1340
- return C(this, g, Jn).call(this, O), O;
1341
- }, Jn = function(e) {
1354
+ return C(this, _, Xn).call(this, O), O;
1355
+ }, Xn = function(e) {
1342
1356
  const n = `${e.targetNodeId}:${e.targetBarIndex}`;
1343
- d(this, rn).set(n, (d(this, rn).get(n) ?? 0) + 1);
1344
- }, ge = function(e) {
1345
- const n = this.annotatedPaths(), i = d(this, nn).nativeElement.querySelector(".__canvas"), O = i?.querySelector(":scope > .__svg-layer");
1357
+ l(this, rn).set(n, (l(this, rn).get(n) ?? 0) + 1);
1358
+ }, fe = function(e) {
1359
+ const n = this.annotatedPaths(), i = l(this, nn).nativeElement.querySelector(".__canvas"), O = i?.querySelector(":scope > .__svg-layer");
1346
1360
  if (!i || !O)
1347
1361
  return;
1348
- const v = [], s = ++ye(this, Bn)._, D = [];
1349
- e.forEach((E, a) => {
1350
- const x = n[E], b = a * ie, w = O.querySelector(`[data-path-idx="${E}"]`);
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 + Dn + Nn)), v.push(setTimeout(() => {
1374
+ }, b + kn + Rn)), v.push(setTimeout(() => {
1361
1375
  w.classList.remove("__path-glow--decay");
1362
- }, b + Dn + Nn + ae));
1376
+ }, b + kn + Rn + le));
1363
1377
  }
1364
- const z = b + Dn * 0.85;
1378
+ const z = b + kn * 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 + Nn;
1385
+ const A = z + Rn;
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((E) => clearTimeout(E)), D.forEach(({ el: E, classes: a }) => E.classList.remove(...a));
1391
+ v.forEach((k) => clearTimeout(k)), D.forEach(({ el: k, classes: a }) => k.classList.remove(...a));
1378
1392
  };
1379
- d(this, an).set(s, q);
1380
- const G = e.length * ie + Dn + Nn + ae + 100;
1393
+ l(this, an).set(c, q);
1394
+ const V = e.length * ce + kn + Rn + le + 100;
1381
1395
  v.push(setTimeout(() => {
1382
- d(this, an).delete(s);
1383
- }, G));
1384
- }, vn.ɵfac = function(n) {
1385
- return new (n || vn)();
1386
- }, vn.ɵcmp = /* @__PURE__ */ Xn({ type: vn, selectors: [["zw-network-diagram"]], inputs: { config: [1, "config"], lightweight: [1, "lightweight"] }, decls: 26, vars: 6, 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) {
1387
- if (n & 1 && (m(0, "div", 0)(1, "div", 1), u(2, "zw-diagram-node", 2), h(), m(3, "zw-project-shell", 3)(4, "div", 4)(5, "span", 5), N(6, "Your services"), u(7, "br"), N(8, "with system containers"), h(), m(9, "div", 6)(10, "div", 7), u(11, "div"), R(12, $t, 2, 5, "div", null, ce), W(14, zt, 3, 0, "div", 8)(15, Dt, 1, 0, "div"), h(), u(16, "div", 9), m(17, "div", 10), R(18, Et, 2, 1, null, null, ce), h()()()(), W(20, Rt, 2, 2, "div", 11), qn(), m(21, "svg", 12), R(22, At, 1, 1, null, null, re), R(24, Ft, 1, 1, null, null, re), h()()), n & 2) {
1396
+ l(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), G(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()()()(), G(20, Ft, 2, 2, "div", 11), Gn(), m(21, "svg", 12), R(22, qt, 1, 1, null, null, de), R(24, Gt, 1, 1, null, null, de), g()()), n & 2) {
1388
1402
  let i;
1389
- c(2), T("label", o.config().endpoint), c(), T("config", o.shellConfig())("showPaths", !1)("lightweight", o.lightweight()), c(9), L(o.row1MainServices()), c(2), V(o.row1SideServices().length ? 14 : 15), c(4), L(o.row2Services()), c(2), V((i = o.resolvedStorage()) ? 20 : -1, i), c(2), L(o.annotatedPaths()), c(2), L(o.annotatedPaths());
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), W(o.row1SideServices().length ? 14 : 15), s(4), L(o.row2Services()), s(2), W((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: [Qn, se], styles: [`[_nghost-%COMP%] {
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 le = vn;
1598
- function Ie(t) {
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 Ht(t) {
1603
- return t ? Se[t]?.horizontal === !0 : !1;
1621
+ function Qt(t) {
1622
+ return t ? Ee[t]?.horizontal === !0 : !1;
1604
1623
  }
1605
- const Ut = /* @__PURE__ */ new Set(["postgresql", "mariadb", "mongodb", "clickhouse"]);
1606
- function Jt(t) {
1607
- const e = t.findIndex((O) => O.techIcon && Ut.has(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 Yt(t) {
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 s of e) {
1622
- if (s.category === "CORE")
1640
+ for (const c of e) {
1641
+ if (c.category === "CORE")
1623
1642
  continue;
1624
- if (s.category === "OBJECT_STORAGE") {
1625
- O = !0, v = s;
1643
+ if (c.category === "OBJECT_STORAGE") {
1644
+ O = !0, v = c;
1626
1645
  continue;
1627
1646
  }
1628
- const D = Ve(s), q = Ze(s.typeId, D, s.autoscaling?.horizontalAutoscaling?.minContainerCount || 1), G = s.typeId ? Se[s.typeId]?.HAContainers : void 0, E = D === "HA" && (G?.freeContainers ?? 0) > 0, a = {
1629
- id: s.hostname || s.name,
1630
- label: Ie(s),
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: s.typeId,
1633
- ...E ? {
1651
+ techIcon: c.typeId,
1652
+ ...k ? {
1634
1653
  hasLoadBalancer: !0,
1635
1654
  loadBalancer: {
1636
- containers: { active: G.freeContainers, standby: 0 }
1655
+ containers: { active: V.freeContainers, standby: 0 }
1637
1656
  }
1638
1657
  } : {}
1639
1658
  };
1640
- if (Ht(s.typeId)) {
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
- ...ze,
1648
- services: [...o, ...Jt(i)],
1666
+ ...ke,
1667
+ services: [...o, ...Kt(i)],
1649
1668
  ...O && v ? {
1650
1669
  storage: {
1651
1670
  label: "Object storage",
1652
- sublabel: Ie(v)
1671
+ sublabel: $e(v)
1653
1672
  }
1654
1673
  } : {}
1655
1674
  };
1656
1675
  }
1657
- function Qt(t, e) {
1676
+ function eo(t, e) {
1658
1677
  t & 1 && u(0, "div", 1);
1659
1678
  }
1660
- function Xt(t, e) {
1661
- if (t & 1 && (m(0, "div", 2), N(1), h()), t & 2) {
1679
+ function to(t, e) {
1680
+ if (t & 1 && (m(0, "div", 2), N(1), g()), t & 2) {
1662
1681
  const n = P();
1663
- c(), Pe("Could not load recipe “", n.slug() || "unknown", "”.");
1682
+ s(), Se("Could not load recipe “", n.slug() || "unknown", "”.");
1664
1683
  }
1665
1684
  }
1666
- function Kt(t, e) {
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 Fn, Tn, $n, jn;
1673
- const bn = class bn {
1691
+ var qn, zn, Dn, Vn;
1692
+ const yn = class yn {
1674
1693
  constructor() {
1675
- $(this, Fn);
1676
- $(this, Tn);
1677
- $(this, $n);
1678
- $(this, jn);
1679
- this.slug = k(), this.recipeData = k(void 0, { transform: (e) => {
1694
+ $(this, qn);
1695
+ $(this, zn);
1696
+ $(this, Dn);
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 = k("highly-available-production"), this.mode = k("auto"), this.apiBase = k("https://api.zerops.io"), f(this, Fn, Ln(Ke)), this.recipe = xn(null), this.loading = xn(!0), this.error = xn(!1), f(this, Tn, j(() => {
1707
+ } }), this.environment = E("highly-available-production"), this.mode = E("auto"), this.apiBase = E("https://api.zerops.io"), h(this, qn, Bn(ot)), this.recipe = un(null), this.loading = un(!0), this.error = un(!1), h(this, zn, 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()) ?? He(n) ?? void 0;
1712
+ return n.find((o) => o._key === this.environment()) ?? Qe(n) ?? void 0;
1694
1713
  })), this.diagramConfig = j(() => {
1695
- const e = d(this, Tn).call(this);
1696
- return e ? Yt(e) : void 0;
1714
+ const e = l(this, zn).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, Tn).call(this);
1704
- return n ? Ue(n._servicesExtended) === "LIGHT" : !1;
1705
- }), f(this, $n, new Je()), f(this, jn, Ye(d(this, $n).pipe(Qe((e) => nt(d(this, Fn), this.apiBase(), e))))), Yn(() => {
1722
+ const n = l(this, zn).call(this);
1723
+ return n ? Xe(n._servicesExtended) === "LIGHT" : !1;
1724
+ }), h(this, Dn, new Ke()), h(this, Vn, nt(l(this, Dn).pipe(et((e) => it(l(this, qn), this.apiBase(), e))))), Kn(() => {
1706
1725
  const e = this.recipeData(), n = this.slug();
1707
1726
  if (e) {
1708
- const o = Xe(e);
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, $n).next(n));
1711
- }), Yn(() => {
1712
- const e = d(this, jn).call(this);
1729
+ } else n && (this.loading.set(!0), this.error.set(!1), this.recipe.set(null), l(this, Dn).next(n));
1730
+ }), Kn(() => {
1731
+ const e = l(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
- Fn = new WeakMap(), Tn = new WeakMap(), $n = new WeakMap(), jn = new WeakMap(), bn.ɵfac = function(n) {
1718
- return new (n || bn)();
1719
- }, bn.ɵcmp = /* @__PURE__ */ Xn({ type: bn, 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) {
1720
- if (n & 1 && (m(0, "div", 0), W(1, Qt, 1, 0, "div", 1)(2, Xt, 2, 1, "div", 2)(3, Kt, 1, 2, "zw-network-diagram", 3), h()), n & 2) {
1736
+ qn = new WeakMap(), zn = new WeakMap(), Dn = 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), G(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
- c(), V(o.loading() ? 1 : o.error() ? 2 : (i = o.diagramConfig()) ? 3 : -1, i);
1741
+ s(), W(o.loading() ? 1 : o.error() ? 2 : (i = o.diagramConfig()) ? 3 : -1, i);
1723
1742
  }
1724
- }, dependencies: [le], styles: [`[_nghost-%COMP%] { display: block; }
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 _e = bn;
1742
- et().then((t) => {
1743
- customElements.get("zerops-network-diagram") || customElements.define("zerops-network-diagram", tt(_e, { injector: t.injector }));
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
  });