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