@zerops/web-components 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,18 +1,18 @@
1
- var me = (t) => {
1
+ var Ce = (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 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) => ({
7
7
  set _(i) {
8
- g(t, e, i, n);
8
+ f(t, e, i, n);
9
9
  },
10
10
  get _() {
11
- return _(t, e, o);
11
+ return d(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 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 = {
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());
75
- }
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);
81
- }
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);
87
- }
88
- }
89
- function nt(t, e) {
90
- if (t & 1 && p(0, "mat-icon", 12), t & 2) {
91
- const n = e.$implicit;
92
- M("svgIcon", n);
93
- }
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());
99
- }
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());
105
- }
106
- }
107
71
  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) {
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);
72
+ if (t & 1 && (m(0, "div", 0)(1, "span", 7), N(2), h()()), t & 2) {
73
+ const n = P();
74
+ c(2), pn(n.label());
112
75
  }
113
76
  }
114
77
  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);
78
+ if (t & 1 && u(0, "zui-bar-icon", 9), t & 2) {
79
+ const n = P(2);
80
+ T("color", n.barColor())("active", !0);
118
81
  }
119
82
  }
120
83
  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());
84
+ if (t & 1 && u(0, "zui-bar-icon", 9), t & 2) {
85
+ const n = P(2);
86
+ T("color", n.barColor())("active", !1);
124
87
  }
125
88
  }
126
89
  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);
90
+ if (t & 1 && u(0, "mat-icon", 12), t & 2) {
91
+ const n = e.$implicit;
92
+ T("svgIcon", n);
130
93
  }
131
94
  }
132
95
  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);
96
+ if (t & 1 && R(0, rt, 1, 1, "mat-icon", 12, Q), t & 2) {
97
+ const n = P(2);
98
+ L(n.techIcons());
136
99
  }
137
100
  }
138
101
  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);
102
+ if (t & 1 && u(0, "mat-icon", 12), t & 2) {
103
+ const n = P(2);
104
+ T("svgIcon", n.techIcon());
142
105
  }
143
106
  }
144
107
  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());
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) {
109
+ let n;
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);
148
112
  }
149
113
  }
150
114
  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);
154
- }
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);
115
+ if (t & 1 && u(0, "zui-bar-icon", 9), t & 2) {
116
+ const n = P(2);
117
+ T("color", n.barColor())("active", !0);
160
118
  }
161
119
  }
162
120
  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);
121
+ if (t & 1 && u(0, "mat-icon", 16), t & 2) {
122
+ const n = P(2);
123
+ T("svgIcon", n.techIcon());
166
124
  }
167
125
  }
168
126
  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());
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) {
128
+ const n = P();
129
+ c(2), L(n.activeRange()), c(4), pn(n.formatLabel(n.label())), c(), V(n.techIcon() ? 7 : -1);
130
+ }
131
+ }
132
+ function _t(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);
172
136
  }
173
137
  }
174
138
  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);
139
+ if (t & 1 && u(0, "zui-bar-icon", 9), t & 2) {
140
+ const n = P(2);
141
+ T("color", n.barColor())("active", !1);
178
142
  }
179
143
  }
180
144
  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);
145
+ if (t & 1 && u(0, "mat-icon", 20), t & 2) {
146
+ const n = P(2);
147
+ T("svgIcon", n.techIcon());
184
148
  }
185
149
  }
186
150
  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);
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) {
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);
190
154
  }
191
155
  }
192
156
  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());
157
+ if (t & 1 && u(0, "zui-bar-icon", 9), t & 2) {
158
+ const n = P(2);
159
+ T("color", n.barColor())("active", !0);
196
160
  }
197
161
  }
198
162
  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());
163
+ if (t & 1 && u(0, "zui-bar-icon", 9), t & 2) {
164
+ const n = P(2);
165
+ T("color", n.barColor())("active", !1);
202
166
  }
203
167
  }
204
168
  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);
169
+ if (t & 1 && u(0, "mat-icon", 12), t & 2) {
170
+ const n = P(2);
171
+ T("svgIcon", n.techIcon());
172
+ }
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) {
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);
178
+ }
179
+ }
180
+ function wt(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
+ }
185
+ }
186
+ function Ct(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
+ }
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) {
194
+ const n = P();
195
+ c(2), L(n.activeRange()), c(2), L(n.inactiveRange()), c(3), pn(n.label());
196
+ }
197
+ }
198
+ function Mt(t, e) {
199
+ if (t & 1 && (m(0, "div", 26)(1, "span", 27), N(2), h()()), t & 2) {
200
+ const n = P(2);
201
+ c(2), pn(n.sublabel());
202
+ }
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) {
206
+ const n = P();
207
+ c(3), Pe("", n.label(), `
208
+ External`), c(), V(n.sublabel() ? 4 : -1);
209
209
  }
210
210
  }
211
211
  const un = class un {
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 = 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(() => {
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
  });
@@ -224,14 +224,14 @@ const un = class un {
224
224
  };
225
225
  un.ɵfac = function(n) {
226
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()));
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()));
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 && 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) {
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
+ 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);
233
233
  }
234
- }, dependencies: [ke, Ee, Re], styles: [`[_nghost-%COMP%] {
234
+ }, dependencies: [Be, Fe, je], 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 Qn = un;
497
+ const Pt = ["*"];
498
+ function Ot(t, e) {
499
+ if (t & 1 && (qn(), 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 te = {
505
505
  ctrl: { active: 1, standby: 1 },
506
506
  stats: { active: 1, standby: 0 },
507
507
  logger: { active: 1, standby: 0 }
508
- }, wt = {
508
+ }, Tt = {
509
509
  containers: { active: 2, standby: 0 }
510
510
  };
511
- var Cn, En, wn, yn, ln, dn, Nn;
511
+ var wn, An, Cn, yn, ln, dn, En;
512
512
  const mn = class mn {
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, wn);
517
+ $(this, An);
518
+ $(this, Cn);
519
+ $(this, yn);
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 = {
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: te.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: te.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: te.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: Tt.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
+ }, 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));
564
564
  });
565
- }), Un(() => {
565
+ }), Yn(() => {
566
566
  this.config();
567
567
  const e = this.lightweight();
568
- if (!_(this, yn))
568
+ if (!d(this, yn))
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 = d(this, ln) !== void 0 && d(this, ln) !== e;
571
+ f(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, En).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, En).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
+ wn = new WeakMap(), An = new WeakMap(), Cn = new WeakMap(), yn = new WeakMap(), ln = new WeakMap(), dn = new WeakSet(), // ─── Internal path computation ──────────────────────────
584
+ En = 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 = d(this, wn).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
+ }, s = [], D = 16, q = 27, G = (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 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;
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 - 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)}`,
620
+ `L${i(A)},${i(X)}`
621
621
  ].join("");
622
- }, k = n.querySelector(".__zone--services");
622
+ }, E = 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 && E) {
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(E)[1];
629
+ s.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) {
635
- this.internalPaths.set(c);
633
+ const x = n.querySelector('[data-mode="hw"]');
634
+ if (!x) {
635
+ this.internalPaths.set(s);
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")), H = this.resolvedRoutingDisplay.containers.active;
641
+ for (let B = 0; B < tn.length; B++) {
642
+ if (B >= H)
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
+ s.push(G(X, U, K));
646
646
  }
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)}`);
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)}`);
650
650
  }
651
651
  }
652
652
  }
653
- this.internalPaths.set(c);
653
+ this.internalPaths.set(s);
654
654
  }, mn.ɵfac = function(n) {
655
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%] {
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%] {
659
659
  display: block;
660
660
  position: relative;
661
661
  }
@@ -827,109 +827,109 @@ 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 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) {
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), c(), 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 St(t, e) {
839
+ if (t & 1 && (m(0, "div"), u(1, "zw-diagram-node", 13), h()), 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), c(), 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 zt(t, e) {
845
+ if (t & 1 && (m(0, "div", 8), R(1, St, 2, 5, "div", null, ce), h()), t & 2) {
846
+ const n = P();
847
+ c(), L(n.row1SideServices());
848
848
  }
849
849
  }
850
- function Pt(t, e) {
851
- t & 1 && p(0, "div");
850
+ function Dt(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 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) {
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);
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 kt(t, e) {
860
+ if (t & 1 && (m(0, "div"), u(1, "zw-diagram-node", 13), h()), t & 2) {
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);
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 Et(t, e) {
866
+ if (t & 1 && W(0, Nt, 5, 11, "div", 14)(1, kt, 2, 5, "div"), t & 2) {
867
867
  let n;
868
868
  const o = e.$implicit;
869
- Z((n = o.loadBalancer) ? 0 : 1, n);
869
+ V((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 Rt(t, e) {
873
+ if (t & 1 && (m(0, "div", 11), u(1, "zw-diagram-node", 18), h()), t & 2) {
874
874
  const n = e;
875
- s(), M("label", n.label)("sublabel", n.sublabel);
875
+ c(), 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 Lt(t, e) {
879
+ if (t & 1 && (qn(), 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 At(t, e) {
885
+ if (t & 1 && W(0, Lt, 1, 1, ":svg:path", 19), t & 2) {
886
886
  const n = e.$implicit;
887
- Z(n.renderMode !== "glow-only" ? 0 : -1);
887
+ V(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 Bt(t, e) {
891
+ if (t & 1 && (qn(), 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 Ft(t, e) {
897
+ if (t & 1 && W(0, Bt, 1, 2, ":svg:path", 20), t & 2) {
898
898
  const n = e.$implicit;
899
- Z(n.renderMode !== "base-only" ? 0 : -1);
899
+ V(n.renderMode !== "base-only" ? 0 : -1);
900
900
  }
901
901
  }
902
- const Et = 660, ne = {
902
+ const jt = 660, oe = {
903
903
  ctrl: { active: 1, standby: 1 },
904
904
  stats: { active: 1, standby: 0 },
905
905
  logger: { active: 1, standby: 0 }
906
- }, Rt = {
906
+ }, qt = {
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;
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
910
  const vn = class vn {
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, g);
914
+ $(this, nn);
915
+ $(this, Mn);
916
+ $(this, In);
917
+ $(this, Pn);
918
+ $(this, On);
919
+ $(this, Z);
920
920
  // rAF id for coalesced recomputation
921
921
  // ─── 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(() => ({
922
+ $(this, Bn);
923
+ $(this, hn);
924
+ $(this, gn);
925
+ $(this, _n);
926
+ $(this, on);
927
+ $(this, an);
928
+ $(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(() => ({
930
930
  infrastructure: this.config().infrastructure,
931
931
  routing: this.config().routing
932
- })), this.resolvedInfra = G(() => {
932
+ })), this.resolvedInfra = j(() => {
933
933
  const e = this.config().infrastructure ?? {};
934
934
  return {
935
935
  ctrl: {
@@ -937,81 +937,81 @@ const vn = class vn {
937
937
  label: `Project ctrl
938
938
  & L3 balancer
939
939
  + firewall`,
940
- containers: e.ctrl ?? ne.ctrl,
940
+ containers: e.ctrl ?? oe.ctrl,
941
941
  techIcons: ["go"],
942
942
  highlighted: !0
943
943
  },
944
944
  stats: {
945
945
  id: "stats",
946
946
  label: "Stats",
947
- containers: e.stats ?? ne.stats,
947
+ containers: e.stats ?? oe.stats,
948
948
  techIcon: "sqlite",
949
949
  highlighted: !1
950
950
  },
951
951
  logger: {
952
952
  id: "logger",
953
953
  label: "Logger",
954
- containers: e.logger ?? ne.logger,
954
+ containers: e.logger ?? oe.logger,
955
955
  techIcon: "victorialogs",
956
956
  highlighted: !1
957
957
  }
958
958
  };
959
- }), this.resolvedRouting = G(() => {
959
+ }), this.resolvedRouting = j(() => {
960
960
  const e = this.config().routing;
961
961
  return e ? {
962
962
  id: "l7",
963
963
  label: `L7 HTTP
964
964
  balancer`,
965
- containers: e.containers ?? Rt.containers,
965
+ containers: e.containers ?? qt.containers,
966
966
  techIcon: "nginx",
967
967
  highlighted: !0
968
968
  } : 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(() => {
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(() => {
970
970
  const e = this.config().storage;
971
971
  return e ? {
972
972
  label: e.label ?? "Object storage",
973
973
  sublabel: e.sublabel ?? "storage:6379"
974
974
  } : 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);
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);
981
981
  const e = new IntersectionObserver(([n]) => {
982
- n.isIntersecting ? w(this, h, $e).call(this) : w(this, h, se).call(this);
982
+ n.isIntersecting ? C(this, g, ke).call(this) : C(this, g, de).call(this);
983
983
  }, { 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);
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));
987
987
  });
988
988
  }
989
989
  };
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 ────────────────────────────────────────────
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 ────────────────────────────────────────────
991
991
  /**
992
992
  * Coalesces all path recomputation requests through a single double-rAF.
993
993
  * Prevents stale DOM measurements when ResizeObserver fires before Angular
994
994
  * has flushed template changes from a config update.
995
995
  */
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);
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);
1000
1000
  }));
1001
1001
  }));
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));
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));
1005
1005
  const i = e.querySelector(".__canvas");
1006
1006
  i && (e.style.height = `${i.scrollHeight * o}px`);
1007
- }, Te = function() {
1008
- const e = _(this, en).nativeElement, n = e.querySelector(".__canvas");
1007
+ }, Ne = function() {
1008
+ const e = d(this, nn).nativeElement, n = e.querySelector(".__canvas");
1009
1009
  if (!n)
1010
1010
  return;
1011
1011
  const o = n.getBoundingClientRect();
1012
1012
  if (o.width === 0)
1013
1013
  return;
1014
- const i = _(this, Pn), P = (r) => {
1014
+ const i = d(this, Pn), O = (r) => {
1015
1015
  const l = r.getBoundingClientRect();
1016
1016
  return {
1017
1017
  x: (l.left - o.left) / i,
@@ -1020,204 +1020,211 @@ Gn = function() {
1020
1020
  h: l.height / i
1021
1021
  };
1022
1022
  }, v = (r) => {
1023
- const l = P(r);
1023
+ const l = O(r);
1024
1024
  return [l.x + l.w / 2, l.y];
1025
- }, c = (r) => {
1026
- const l = P(r);
1025
+ }, s = (r) => {
1026
+ const l = O(r);
1027
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
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
+ barIndex: M,
1033
+ active: l !== void 0 ? M < l : !0
1034
1034
  })) : [];
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;
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;
1037
1037
  if (Math.abs(sn) < 3) {
1038
- const cn = a((u + x) / 2);
1039
- return `M${cn},${a(y)}L${cn},${a($)}`;
1038
+ const cn = a((p + y) / 2);
1039
+ return `M${cn},${a(M)}L${cn},${a(I)}`;
1040
1040
  }
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;
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;
1042
1042
  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($)}`
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)}`,
1048
+ `L${a(y)},${a(I)}`
1049
1049
  ].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)
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)
1054
1054
  b.push({
1055
- d: C(r, u.point, f),
1055
+ d: x(r, p.point, _),
1056
1056
  depth: 0,
1057
1057
  sourceNodeId: "endpoint",
1058
- targetNodeId: "ctrl",
1059
- targetBarIndex: u.barIndex,
1060
- active: u.active
1058
+ targetNodeId: z,
1059
+ targetBarIndex: p.barIndex,
1060
+ active: p.active
1061
1061
  });
1062
1062
  }
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);
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);
1066
1066
  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)
1067
+ const l = s(K)[0], _ = s(B)[1], p = [l, _], y = Math.min(...r.map((I) => I.point[1])) - E;
1068
+ for (const I of r)
1069
1069
  b.push({
1070
- d: C(u, $.point, x),
1070
+ d: x(p, I.point, y),
1071
1071
  depth: 1,
1072
1072
  sourceNodeId: "ctrl",
1073
1073
  targetNodeId: "l7",
1074
- targetBarIndex: $.barIndex,
1075
- active: $.active
1074
+ targetBarIndex: I.barIndex,
1075
+ active: I.active
1076
1076
  });
1077
1077
  }
1078
1078
  }
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)
1079
+ let Gn = null;
1080
+ if (w) {
1081
+ const r = D(z);
1082
+ r && B && (Gn = [s(r)[0], s(B)[1]]);
1083
+ } else U && (Gn = s(U));
1084
+ if (Gn) {
1085
+ 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 _)
1085
1091
  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
1092
+ d: x(p, I.point, y),
1093
+ depth: w ? 1 : 2,
1094
+ sourceNodeId: r,
1095
+ targetNodeId: l.service.id,
1096
+ targetBarIndex: I.barIndex,
1097
+ active: I.active
1092
1098
  });
1093
1099
  }
1094
1100
  }
1095
- const F = 19, J = 11, W = [], $n = [];
1101
+ }
1102
+ const fe = 19, Kn = 11, Sn = [], zn = [];
1096
1103
  for (const r of this.row2Services())
1097
1104
  if (r.loadBalancer)
1098
- for (const l of j(r.loadBalancer.id, r.loadBalancer.containers.active))
1099
- $n.push({ ...l, nodeId: r.loadBalancer.id });
1105
+ for (const l of q(r.loadBalancer.id, r.loadBalancer.containers.active))
1106
+ zn.push({ ...l, nodeId: r.loadBalancer.id });
1100
1107
  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;
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;
1105
1112
  for (const r of this.row1Services()) {
1106
1113
  const l = D(r.service.id);
1107
1114
  if (!l)
1108
1115
  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,
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),
1121
+ depth: S,
1115
1122
  sourceNodeId: r.service.id,
1116
1123
  targetNodeId: "storage",
1117
1124
  targetBarIndex: -1,
1118
1125
  active: !0
1119
1126
  });
1120
- for (const x of W)
1127
+ for (const y of Sn)
1121
1128
  b.push({
1122
- d: C(f, x.point, y),
1123
- depth: 3,
1129
+ d: x(_, y.point, M),
1130
+ depth: S,
1124
1131
  sourceNodeId: r.service.id,
1125
- targetNodeId: x.nodeId,
1126
- targetBarIndex: x.barIndex,
1127
- active: x.active
1132
+ targetNodeId: y.nodeId,
1133
+ targetBarIndex: y.barIndex,
1134
+ active: y.active
1128
1135
  });
1129
- for (const x of $n)
1136
+ for (const y of zn)
1130
1137
  b.push({
1131
- d: C(f, x.point, y + J),
1132
- depth: 3,
1138
+ d: x(_, y.point, M + Kn),
1139
+ depth: S,
1133
1140
  sourceNodeId: r.service.id,
1134
- targetNodeId: x.nodeId,
1135
- targetBarIndex: x.barIndex,
1136
- active: x.active
1141
+ targetNodeId: y.nodeId,
1142
+ targetBarIndex: y.barIndex,
1143
+ active: y.active
1137
1144
  });
1138
1145
  }
1139
1146
  for (const r of this.row1SideServices()) {
1140
1147
  const l = D(r.service.id);
1141
1148
  if (!l || !fn)
1142
1149
  continue;
1143
- const f = c(l);
1150
+ const _ = s(l);
1144
1151
  b.push({
1145
- d: `M${a(f[0])},${a(f[1])}L${a(f[0])},${a(fn)}`,
1146
- depth: 3,
1152
+ d: `M${a(_[0])},${a(_[1])}L${a(_[0])},${a(fn)}`,
1153
+ depth: S,
1147
1154
  sourceNodeId: r.service.id,
1148
1155
  targetNodeId: "bus-rail",
1149
1156
  targetBarIndex: -1,
1150
1157
  active: !0,
1151
1158
  renderMode: "base-only"
1152
- }), jn && b.push({
1153
- d: C(f, jn, fn - F),
1154
- depth: 3,
1159
+ }), Wn && b.push({
1160
+ d: x(_, Wn, fn - fe),
1161
+ depth: S,
1155
1162
  sourceNodeId: r.service.id,
1156
1163
  targetNodeId: "storage",
1157
1164
  targetBarIndex: -1,
1158
1165
  active: !0,
1159
1166
  renderMode: "glow-only"
1160
1167
  });
1161
- for (const u of W)
1168
+ for (const p of Sn)
1162
1169
  b.push({
1163
- d: C(f, u.point, fn),
1164
- depth: 3,
1170
+ d: x(_, p.point, fn),
1171
+ depth: S,
1165
1172
  sourceNodeId: r.service.id,
1166
- targetNodeId: u.nodeId,
1167
- targetBarIndex: u.barIndex,
1168
- active: u.active,
1173
+ targetNodeId: p.nodeId,
1174
+ targetBarIndex: p.barIndex,
1175
+ active: p.active,
1169
1176
  renderMode: "glow-only"
1170
1177
  });
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)}`
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) {
1182
+ const Y = a((J + I) / 2);
1183
+ ne = [
1184
+ `M${a(M)},${a(y)}`,
1185
+ `L${a(M)},${a(F - cn)}`,
1186
+ `Q${a(M)},${a(F)},${a(M + cn * ve)},${a(F)}`,
1187
+ `L${a(Y)},${a(F)}`,
1188
+ `L${a(Y)},${a(sn)}`
1182
1189
  ].join("");
1183
1190
  } 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)}`
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 = [
1193
+ `M${a(M)},${a(y)}`,
1194
+ `L${a(M)},${a(F - cn)}`,
1195
+ `Q${a(M)},${a(F)},${a(M + cn * ve)},${a(F)}`,
1196
+ `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)}`,
1201
+ `L${a(I)},${a(sn)}`
1195
1202
  ].join("");
1196
1203
  }
1197
1204
  b.push({
1198
- d: Qn,
1199
- depth: 3,
1205
+ d: ne,
1206
+ depth: S,
1200
1207
  sourceNodeId: r.service.id,
1201
- targetNodeId: u.nodeId,
1202
- targetBarIndex: u.barIndex,
1203
- active: u.active,
1208
+ targetNodeId: p.nodeId,
1209
+ targetBarIndex: p.barIndex,
1210
+ active: p.active,
1204
1211
  renderMode: "glow-only"
1205
1212
  });
1206
1213
  }
1207
1214
  }
1208
1215
  for (const r of this.row2Services())
1209
1216
  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)
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 _)
1214
1221
  b.push({
1215
- d: C(u, $.point, x),
1216
- depth: 4,
1222
+ d: x(p, I.point, y),
1223
+ depth: A,
1217
1224
  sourceNodeId: r.loadBalancer.id,
1218
1225
  targetNodeId: r.service.id,
1219
- targetBarIndex: $.barIndex,
1220
- active: $.active
1226
+ targetBarIndex: I.barIndex,
1227
+ active: I.active
1221
1228
  });
1222
1229
  }
1223
1230
  }
@@ -1226,16 +1233,16 @@ Gn = function() {
1226
1233
  if (!r)
1227
1234
  return;
1228
1235
  const l = this.annotatedPaths();
1229
- let f = !1;
1230
- for (let u = 0; u < l.length; u++) {
1231
- if (l[u].cachedLength != null)
1236
+ let _ = !1;
1237
+ for (let p = 0; p < l.length; p++) {
1238
+ if (l[p].cachedLength != null)
1232
1239
  continue;
1233
- const y = r.querySelector(`[data-path-idx="${u}"]`);
1234
- y && (l[u].cachedLength = Math.ceil(y.getTotalLength()), f = !0);
1240
+ const M = r.querySelector(`[data-path-idx="${p}"]`);
1241
+ M && (l[p].cachedLength = Math.ceil(M.getTotalLength()), _ = !0);
1235
1242
  }
1236
- f && this.annotatedPaths.set([...l]);
1243
+ _ && this.annotatedPaths.set([...l]);
1237
1244
  });
1238
- }, Vn = function(e) {
1245
+ }, Hn = function(e) {
1239
1246
  const n = e.category === "managed" ? "orange" : "cyan";
1240
1247
  let o;
1241
1248
  if (e.hasLoadBalancer) {
@@ -1251,30 +1258,30 @@ balancers`,
1251
1258
  }
1252
1259
  return { service: e, barColor: n, loadBalancer: o };
1253
1260
  }, // ─── Trace orchestrator ────────────────────────────────
1254
- $e = function() {
1255
- if (_(this, gn) || typeof window < "u" && window.matchMedia("(prefers-reduced-motion: reduce)").matches)
1261
+ ke = function() {
1262
+ if (d(this, _n) || typeof window < "u" && window.matchMedia("(prefers-reduced-motion: reduce)").matches)
1256
1263
  return;
1257
- g(this, gn, !0);
1264
+ f(this, _n, !0);
1258
1265
  const e = () => {
1259
- w(this, h, Se).call(this), g(this, _n, window.setTimeout(e, Lt + Math.random() * At));
1266
+ C(this, g, Ee).call(this), f(this, hn, window.setTimeout(e, Gt + Math.random() * Wt));
1260
1267
  };
1261
- g(this, _n, window.setTimeout(e, be));
1268
+ f(this, hn, window.setTimeout(e, Me));
1262
1269
  const n = () => {
1263
- w(this, h, ze).call(this), g(this, hn, window.setTimeout(n, Bt + Math.random() * Ft));
1270
+ C(this, g, Re).call(this), f(this, gn, window.setTimeout(n, Vt + Math.random() * Zt));
1264
1271
  };
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() {
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() {
1271
1278
  const e = this.annotatedPaths();
1272
1279
  if (!e.length)
1273
1280
  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))
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))
1278
1285
  return;
1279
1286
  const e = this.annotatedPaths();
1280
1287
  if (!e.length)
@@ -1282,106 +1289,106 @@ $e = function() {
1282
1289
  const n = this.row1SideServices();
1283
1290
  if (!n.length)
1284
1291
  return;
1285
- const o = n[Math.floor(Math.random() * n.length)], i = w(this, h, De).call(this, e, o.service.id);
1292
+ const o = n[Math.floor(Math.random() * n.length)], i = C(this, g, Le).call(this, e, o.service.id);
1286
1293
  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;
1294
+ f(this, on, !0), C(this, g, ge).call(this, i);
1295
+ const O = i.length * ie + Dn + Nn + ae + 100;
1289
1296
  setTimeout(() => {
1290
- g(this, on, !1);
1291
- }, P);
1297
+ f(this, on, !1);
1298
+ }, O);
1292
1299
  }
1293
1300
  }, /**
1294
1301
  * Pick a route starting from a side service (worker).
1295
1302
  * Uses worker's own glow-only depth-3 paths (invisible base, full path to target).
1296
1303
  * Optionally continues with depth-4 (LB → managed service).
1297
1304
  */
1298
- De = function(e, n) {
1299
- const o = [], i = e.filter((c) => c.depth === 3 && c.sourceNodeId === n && c.renderMode === "glow-only" && c.active);
1305
+ Le = function(e, n) {
1306
+ const o = [], i = e.filter((s) => s.sourceNodeId === n && s.renderMode === "glow-only" && s.active);
1300
1307
  if (!i.length)
1301
1308
  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);
1309
+ const O = C(this, g, Un).call(this, i);
1310
+ o.push(e.indexOf(O));
1311
+ const v = e.filter((s) => s.depth === O.depth + 1 && s.sourceNodeId === O.targetNodeId && s.active);
1305
1312
  if (v.length) {
1306
- const c = w(this, h, Zn).call(this, v);
1307
- o.push(e.indexOf(c));
1313
+ const s = C(this, g, Un).call(this, v);
1314
+ o.push(e.indexOf(s));
1308
1315
  }
1309
1316
  return o;
1310
- }, Ne = function(e) {
1317
+ }, Ae = function(e) {
1311
1318
  const n = [];
1312
1319
  let o = "endpoint";
1313
1320
  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)
1321
+ const O = e.filter((s) => s.depth === i && s.sourceNodeId === o && s.active);
1322
+ if (!O.length)
1316
1323
  break;
1317
- const v = w(this, h, Zn).call(this, P);
1324
+ const v = C(this, g, Un).call(this, O);
1318
1325
  n.push(e.indexOf(v)), o = v.targetNodeId;
1319
1326
  }
1320
1327
  return n;
1321
- }, Zn = function(e) {
1328
+ }, Un = function(e) {
1322
1329
  if (e.length === 1)
1323
- return w(this, h, Hn).call(this, e[0]), e[0];
1330
+ return C(this, g, Jn).call(this, e[0]), e[0];
1324
1331
  const n = e.map((v) => {
1325
- const c = `${v.targetNodeId}:${v.targetBarIndex}`;
1326
- return 1 / ((_(this, rn).get(c) ?? 0) + 1);
1327
- }), o = n.reduce((v, c) => v + c, 0);
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);
1328
1335
  let i = Math.random() * o;
1329
1336
  for (let v = 0; v < e.length; v++)
1330
1337
  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) {
1338
+ return C(this, g, Jn).call(this, e[v]), e[v];
1339
+ const O = e.at(-1);
1340
+ return C(this, g, Jn).call(this, O), O;
1341
+ }, Jn = function(e) {
1335
1342
  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)
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");
1346
+ if (!i || !O)
1340
1347
  return;
1341
- const v = [], c = ++ve(this, Rn)._, D = [];
1342
- 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,
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}"]`);
1351
+ if (w) {
1352
+ const S = x.cachedLength ?? Math.ceil(w.getTotalLength());
1353
+ w.style.setProperty("--path-len", String(S)), D.push({
1354
+ el: w,
1348
1355
  classes: ["__path-glow--active", "__path-glow--decay"]
1349
1356
  }), v.push(setTimeout(() => {
1350
- O.classList.add("__path-glow--active");
1357
+ w.classList.add("__path-glow--active");
1351
1358
  }, 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));
1359
+ w.classList.remove("__path-glow--active"), w.classList.add("__path-glow--decay");
1360
+ }, b + Dn + Nn)), v.push(setTimeout(() => {
1361
+ w.classList.remove("__path-glow--decay");
1362
+ }, b + Dn + Nn + ae));
1356
1363
  }
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") {
1364
+ const z = b + Dn * 0.85;
1365
+ if (x.targetBarIndex >= 0) {
1366
+ const A = i.querySelector(`[data-node-id="${x.targetNodeId}"]`)?.querySelectorAll("zui-bar-icon")[x.targetBarIndex];
1367
+ A && v.push(setTimeout(() => A.dispatchEvent(new CustomEvent("trace-pulse")), z));
1368
+ } else if (x.targetNodeId === "storage") {
1362
1369
  const S = i.querySelector('[data-node-id="storage"]');
1363
1370
  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));
1371
+ const A = z + Nn;
1372
+ D.push({ el: S, classes: ["--pulse"] }), v.push(setTimeout(() => S.classList.add("--pulse"), z)), v.push(setTimeout(() => S.classList.remove("--pulse"), A));
1366
1373
  }
1367
1374
  }
1368
1375
  });
1369
- const j = () => {
1370
- v.forEach((k) => clearTimeout(k)), D.forEach(({ el: k, classes: a }) => k.classList.remove(...a));
1376
+ const q = () => {
1377
+ v.forEach((E) => clearTimeout(E)), D.forEach(({ el: E, classes: a }) => E.classList.remove(...a));
1371
1378
  };
1372
- _(this, an).set(c, j);
1373
- const q = e.length * ee + Sn + zn + te + 100;
1379
+ d(this, an).set(s, q);
1380
+ const G = e.length * ie + Dn + Nn + ae + 100;
1374
1381
  v.push(setTimeout(() => {
1375
- _(this, an).delete(c);
1376
- }, q));
1382
+ d(this, an).delete(s);
1383
+ }, G));
1377
1384
  }, vn.ɵfac = function(n) {
1378
1385
  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) {
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) {
1381
1388
  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());
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());
1383
1390
  }
1384
- }, dependencies: [Jn, ie], styles: [`[_nghost-%COMP%] {
1391
+ }, dependencies: [Qn, se], styles: [`[_nghost-%COMP%] {
1385
1392
  display: block;
1386
1393
  position: relative;
1387
1394
  width: 100%;
@@ -1587,17 +1594,17 @@ zw-project-shell[_ngcontent-%COMP%] {
1587
1594
  display: none;
1588
1595
  }
1589
1596
  }`], changeDetection: 0 });
1590
- let re = vn;
1591
- function xe(t) {
1597
+ let le = vn;
1598
+ function Ie(t) {
1592
1599
  const e = t.hostname || t.name, n = t.ports?.[0]?.port;
1593
1600
  return n ? `${e}:${n}` : e;
1594
1601
  }
1595
- function jt(t) {
1596
- return t ? Ie[t]?.horizontal === !0 : !1;
1602
+ function Ht(t) {
1603
+ return t ? Se[t]?.horizontal === !0 : !1;
1597
1604
  }
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));
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));
1601
1608
  if (e < 0)
1602
1609
  return t;
1603
1610
  const n = Math.floor(t.length / 2);
@@ -1606,67 +1613,70 @@ function Wt(t) {
1606
1613
  const o = [...t], [i] = o.splice(e, 1);
1607
1614
  return o.splice(n, 0, i), o;
1608
1615
  }
1609
- function Gt(t) {
1616
+ function Yt(t) {
1610
1617
  const e = t._servicesExtended ?? t.services ?? [];
1611
1618
  let n = !1;
1612
1619
  const o = [], i = [];
1613
- let P = !1, v;
1614
- for (const c of e) {
1615
- if (c.category === "CORE")
1620
+ let O = !1, v;
1621
+ for (const s of e) {
1622
+ if (s.category === "CORE")
1616
1623
  continue;
1617
- if (c.category === "OBJECT_STORAGE") {
1618
- P = !0, v = c;
1624
+ if (s.category === "OBJECT_STORAGE") {
1625
+ O = !0, v = s;
1619
1626
  continue;
1620
1627
  }
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 = {
1622
- id: c.hostname || c.name,
1623
- label: xe(c),
1624
- containers: { active: j, standby: 0 },
1625
- techIcon: c.typeId,
1626
- ...k ? {
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),
1631
+ containers: { active: q, standby: 0 },
1632
+ techIcon: s.typeId,
1633
+ ...E ? {
1627
1634
  hasLoadBalancer: !0,
1628
1635
  loadBalancer: {
1629
- containers: { active: q.freeContainers, standby: 0 }
1636
+ containers: { active: G.freeContainers, standby: 0 }
1630
1637
  }
1631
1638
  } : {}
1632
1639
  };
1633
- if (jt(c.typeId)) {
1634
- const C = n ? "side-runtime" : "http-runtime";
1635
- n || (n = !0), o.push({ ...a, category: C });
1640
+ if (Ht(s.typeId)) {
1641
+ const x = n ? "side-runtime" : "http-runtime";
1642
+ n || (n = !0), o.push({ ...a, category: x });
1636
1643
  } else
1637
1644
  i.push({ ...a, category: "managed" });
1638
1645
  }
1639
1646
  return {
1640
- ...Pe,
1641
- services: [...o, ...Wt(i)],
1642
- ...P && v ? {
1647
+ ...ze,
1648
+ services: [...o, ...Jt(i)],
1649
+ ...O && v ? {
1643
1650
  storage: {
1644
1651
  label: "Object storage",
1645
- sublabel: xe(v)
1652
+ sublabel: Ie(v)
1646
1653
  }
1647
1654
  } : {}
1648
1655
  };
1649
1656
  }
1650
- function Vt(t, e) {
1651
- t & 1 && p(0, "div", 1);
1657
+ function Qt(t, e) {
1658
+ t & 1 && u(0, "div", 1);
1652
1659
  }
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", "”.");
1660
+ function Xt(t, e) {
1661
+ if (t & 1 && (m(0, "div", 2), N(1), h()), t & 2) {
1662
+ const n = P();
1663
+ c(), Pe("Could not load recipe “", n.slug() || "unknown", "”.");
1657
1664
  }
1658
1665
  }
1659
- function Ht(t, e) {
1660
- t & 1 && p(0, "zw-network-diagram", 3), t & 2 && M("config", e);
1666
+ function Kt(t, e) {
1667
+ if (t & 1 && u(0, "zw-network-diagram", 3), t & 2) {
1668
+ const n = P();
1669
+ T("config", e)("lightweight", n.lightweight());
1670
+ }
1661
1671
  }
1662
- var Ln, An, Tn, Bn;
1672
+ var Fn, Tn, $n, jn;
1663
1673
  const bn = class bn {
1664
1674
  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) => {
1675
+ $(this, Fn);
1676
+ $(this, Tn);
1677
+ $(this, $n);
1678
+ $(this, jn);
1679
+ this.slug = k(), this.recipeData = k(void 0, { transform: (e) => {
1670
1680
  if (typeof e != "string")
1671
1681
  return e ?? void 0;
1672
1682
  if (e.trim())
@@ -1675,35 +1685,43 @@ const bn = class bn {
1675
1685
  } catch {
1676
1686
  return;
1677
1687
  }
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(() => {
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(() => {
1679
1689
  const e = this.recipe();
1680
1690
  if (!e)
1681
1691
  return;
1682
1692
  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(() => {
1693
+ return n.find((o) => o._key === this.environment()) ?? He(n) ?? void 0;
1694
+ })), this.diagramConfig = j(() => {
1695
+ const e = d(this, Tn).call(this);
1696
+ return e ? Yt(e) : void 0;
1697
+ }), this.lightweight = j(() => {
1698
+ const e = this.mode();
1699
+ if (e === "lightweight")
1700
+ return !0;
1701
+ if (e === "serious")
1702
+ 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(() => {
1688
1706
  const e = this.recipeData(), n = this.slug();
1689
1707
  if (e) {
1690
- const o = Ze(e);
1708
+ const o = Xe(e);
1691
1709
  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);
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);
1695
1713
  e && (this.loading.set(!1), this.error.set(e.error), this.recipe.set(e.recipe));
1696
1714
  });
1697
1715
  }
1698
1716
  };
1699
- Ln = new WeakMap(), An = new WeakMap(), Tn = new WeakMap(), Bn = new WeakMap(), bn.ɵfac = function(n) {
1717
+ Fn = new WeakMap(), Tn = new WeakMap(), $n = new WeakMap(), jn = new WeakMap(), bn.ɵfac = function(n) {
1700
1718
  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) {
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) {
1703
1721
  let i;
1704
- s(), Z(o.loading() ? 1 : o.error() ? 2 : (i = o.diagramConfig()) ? 3 : -1, i);
1722
+ c(), V(o.loading() ? 1 : o.error() ? 2 : (i = o.diagramConfig()) ? 3 : -1, i);
1705
1723
  }
1706
- }, dependencies: [re], styles: [`[_nghost-%COMP%] { display: block; }
1724
+ }, dependencies: [le], styles: [`[_nghost-%COMP%] { display: block; }
1707
1725
 
1708
1726
  .__skeleton[_ngcontent-%COMP%] {
1709
1727
  height: 420px;
@@ -1720,7 +1738,7 @@ Ln = new WeakMap(), An = new WeakMap(), Tn = new WeakMap(), Bn = new WeakMap(),
1720
1738
  color: var(--mat-sys-on-error-container);
1721
1739
  font-size: 14px;
1722
1740
  }`], 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 }));
1741
+ let _e = bn;
1742
+ et().then((t) => {
1743
+ customElements.get("zerops-network-diagram") || customElements.define("zerops-network-diagram", tt(_e, { injector: t.injector }));
1726
1744
  });