1import { d as i, f as o, g as Z, m as R, p as W, y as ke } from "./chunk-xgti9j2t.js"; 2import { Ai as ve, Ba as we, Bi as Me, Fn as ye, Gt as C, Jr as be, Kn as ee, Mr as We, Pi as te, Ro as _e, T as Te, To as ie, ai as Re, fi as $, gn as Pe, gt as d, ka as I, la as $e, ni as De, or as Ee, sr as Se, tt as se, wr as Oe, xi as Ce, z as D } from "./chunk-c97c17u8.js"; 3import { A as Ie, C as Le, P as re, T as Ne, s as S } from "./chunk-jrtaqqwj.js"; 4import { i as ne, o as He } from "./chunk-pesy0vb6.js"; 5import { D as Ue, g as Ve } from "./chunk-llc8ry2a.js"; 6import { At as Ae, D as ae, j as xe, kt as je, ut as ze } from "./chunk-fbjoug0d.js"; 7import { r as Be, t as Fe } from "./chunk-c9rg1mp5.js"; 8import { Y as he, y as O } from "./chunk-w0x32net.js"; 9import { n as Ge, t as Je } from "./chunk-k4et3zlq.js"; 10import { n as qe, r as Ke, t as Qe } from "./chunk-ilfhy0in.js"; 11import { t as le } from "./chunk-o4f8w5yc.js"; 12var L; 13function N() { 14 return (N = le((() => { 15 te(), he(), L = (() => { 16 let e = class { 17 constructor() { 18 this._doc = d(ye), this.timerService = d(O), this.documentProperties = this.getDocumentProperties(), this.visibilityStream = new Se({ isVisible: this.isVisible }), this.handleVisibilityChange = () => { 19 let r = this.isVisible, s = this.pageHiddenTimeStamp ? Date.now() - this.pageHiddenTimeStamp : void 0; 20 this.pageHiddenTimeStamp = r ? void 0 : Date.now(), this.timerService.clearTimeout(this.notificationTimeout), this.notificationTimeout = this.timerService.setTimeout(() => this.visibilityStream.next({ 21 isVisible: r, 22 pageHiddenDuration: s 23 }), 150); 24 }, this._doc.addEventListener(this.documentProperties.eventName, this.handleVisibilityChange, !1); 25 } 26 visibilityChange() { 27 return this.visibilityStream.asObservable(); 28 } 29 get isVisible() { 30 return !this._doc[this.documentProperties.hiddenPropertyName]; 31 } 32 getDocumentProperties() { 33 return typeof this._doc.hidden < "u" ? { 34 eventName: "visibilitychange", 35 hiddenPropertyName: "hidden" 36 } : typeof this._doc.msHidden < "u" ? { 37 eventName: "msvisibilitychange", 38 hiddenPropertyName: "msHidden" 39 } : typeof this._doc.webkitHidden < "u" ? { 40 eventName: "webkitvisibilitychange", 41 hiddenPropertyName: "webkitHidden" 42 } : { 43 eventName: "", 44 hiddenPropertyName: "" 45 }; 46 } 47 }; 48 return e.ɵfac = function(t) { 49 return new (t || e)(); 50 }, e.ɵprov = $({ 51 token: e, 52 factory: e.ɵfac, 53 providedIn: "root" 54 }), e; 55 })(); 56 })))(); 57} 58function oe(e) { 59 let t = []; 60 e.data?.preResolve && t.push(e); 61 let r = e._loadedRoutes, s = e.children ?? r; 62 return s?.length && s.forEach((n) => { 63 t.push(...oe(n)); 64 }), t; 65} 66function Xe(e) { 67 return e.outlet === "primary" || !e.outlet; 68} 69function Ye(e) { 70 return typeof e == "boolean" ? {} : Object.fromEntries(e.flatMap(({ posParams: t }) => Object.entries(t || {})).map(([t, r]) => [t, r.path])); 71} 72function H(e, t, r) { 73 if (e.segments.length > r.length) { 74 let h = e.segments.slice(0, r.length); 75 return !t.hasChildren() && U(h, e, r); 76 } 77 if (e.segments.length !== r.length) { 78 let h = r.slice(0, e.segments.length), u = U(e.segments, e, h); 79 if (!u || !e.children.primary) return !1; 80 let c = r.slice(e.segments.length), p = H(e.children[re], t, c); 81 if (p) return u === !0 || p === !0 ? p : u.concat(p); 82 } 83 let s = U(e.segments, e, r); 84 if (!s) return !1; 85 if (!t.hasChildren()) return s; 86 let n = typeof s == "boolean" ? [] : s, a = !1; 87 for (let h in t.children) { 88 if (!e.children[h]) break; 89 let u = H(e.children[h], t.children[h], t.children[h].segments); 90 typeof u != "boolean" ? n.push(...u) : u && (a = u); 91 } 92 return n.length > 0 ? n : a; 93} 94function U(e, t, r) { 95 return e.length !== r.length ? !1 : e.reduce((s, n, a) => { 96 if (s === !1) return !1; 97 let h = r[a]; 98 if (n.path === h.path) return s; 99 if (h.path.startsWith(":") || n.path.startsWith(":")) { 100 let c = { 101 consumed: [n], 102 posParams: { [h.path.replace(":", "")]: n } 103 }; 104 return typeof s == "boolean" ? [c] : (s.push(c), s); 105 } 106 if (h.path !== E) return !1; 107 let u = h.route.matcher([n], t, h.route); 108 return u ? s === !0 ? [u] : [...s, u] : !1; 109 }, !0); 110} 111function Ze(e, t) { 112 return t.length && ue(e.root, t), e; 113} 114function ue(e, t, r = 0) { 115 for (let s of e.segments) s.path === E && (s.route = t[r], r++);
116 e.hasChildren() && Object.values(e.children).forEach((s) => ue(s, t, r)); 117} 118function et(e, t) { 119 return Object.keys(t).length <= Object.keys(e).length && Object.keys(t).every((r) => t[r] === e[r]); 120} 121function tt(e, t) { 122 return et(t.queryParams, e.queryParams) && V(t.root, e.root, e.root.segments, e.matchers); 123} 124function V(e, t, r, s) { 125 if (e.segments.length > r.length) return A(e.segments.slice(0, r.length), r, s) ? !t.hasChildren() : !1; 126 if (e.segments.length === r.length) { 127 if (!A(e.segments, r, s)) return !1; 128 if (!t.hasChildren()) return !0; 129 for (let n in t.children) { 130 if (!e.children[n]) break; 131 if (V(e.children[n], t.children[n], t.children[n].segments, s)) return !0; 132 } 133 return !1; 134 } else { 135 let n = r.slice(0, e.segments.length), a = r.slice(e.segments.length); 136 return !A(e.segments, n, s) || !e.children.primary ? !1 : V(e.children[re], t, a, s); 137 } 138} 139function A(e, t, r) { 140 return e.length !== t.length ? !1 : e.every((s, n) => s.path === t[n].path || s.path.startsWith(":") || t[n].path.startsWith(":") || it(s, t, n, r)); 141} 142function it(e, t, r, s) { 143 return s && s.length && s[0].matcher && t[r].path === E ? !!s[0].matcher([e], [], s[0]) : !1; 144} 145function st(e) { 146 return e.get(F); 147} 148var E, x, j, z, ce, B, pe, F, de, G, fe; 149function me() { 150 return (me = le((() => { 151 ke(), te(), Ie(), He(), Ue(), ze(), Be(), he(), Je(), Ke(), N(), E = "__MatcherPlaceholder__", x = new C("speculative-product-config-preloader"), j = new C("speculative-product-styles-preloader"), z = (e, t) => { 152 e = e.slice(); 153 let r = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Set(); 154 for (; e.length;) { 155 let u = e.shift(); 156 if (!u) continue; 157 if (s.add(u), u === t) break; 158 let c = u.children ?? u._loadedRoutes ?? [], p = u._loadedRoutes || []; 159 for (let f of p) f && f.children && (c = c.concat(f.children)); 160 c.forEach((f) => { 161 s.has(f) || (r.set(f, u), e.push(f)); 162 }); 163 } 164 let n = "", a = t, h = []; 165 for (; a;) { 166 let u = a.matcher ? E : a.path; 167 a.matcher && h.unshift(a), Xe(a) ? n = `/${u}${n}` : n = `/(${a.outlet}:${u}${n})`, a = r.get(a); 168 } 169 return { 170 url: n.replace(/\/+/g, "/").replace(/\/$/, ""), 171 matcherRoutes: h 172 }; 173 }, ce = (() => { 174 var e; 175 let t = class { 176 constructor() { 177 o(this, e, d(S)); 178 } 179 getMatches(s, n) { 180 let a = H(n.root, s.root, s.root.segments); 181 return a ? Ye(a) : null; 182 } 183 getExtendedTree(s) { 184 let { url: n, matcherRoutes: a } = z(i(this, e).config, s); 185 return Ze(i(this, e).parseUrl(n), a); 186 } 187 }; 188 return e = /* @__PURE__ */ new WeakMap(), t.ɵfac = function(r) { 189 return new (r || t)(); 190 }, t.ɵprov = $({ 191 token: t, 192 factory: t.ɵfac, 193 providedIn: "root" 194 }), t; 195 })(), B = (() => { 196 var e, t, r, s, n, a, h, u, c, p, f, l, M, b, _, T, J, q, K, Q, X; 197 let P = class { 198 constructor() { 199 o(this, T), o(this, e, d(S)), o(this, t, d(ie)), o(this, r, d(se)), o(this, s, d(O)), o(this, n, d(ce)), o(this, a, d(x, { optional: !0 })), o(this, h, d(j, { optional: !0 })), o(this, u, d(Fe)), o(this, c, []), o(this, p, /* @__PURE__ */ new Map()), o(this, f, []), o(this, l, /* @__PURE__ */ new WeakMap()), o(this, M, /* @__PURE__ */ new Map()), o(this, b, /* @__PURE__ */ new Map()), o(this, _, 15e3); 200 } 201 add(m) { 202 i(this, c).push(m), R(this, T, Q).call(this, m); 203 } 204 has(m) { 205 return i(this, c).some((g) => g === m); 206 } 207 remove(m) { 208 Ae(i(this, c), (g) => g === m); 209 } 210 registerRoutes(m) { 211 let g = oe(m); 212 if (i(this, f).push(...g), this.shouldPrefetch(m)) { 213 R(this, T, q).call(this, m); 214 let k = /* @__PURE__ */ new Map(); 215 g.forEach((v) => { 216 R(this, T, X).call(this, v).forEach(({ url: y, params: ge }) => { 217 let Y = R(this, T, J).call(this, v, y, ge); 218 k.has(y) ? k.get(y).push(Y) : k.set(y, [Y]); 219 }); 220 }); 221 for (let [v, y] of k) i(this, p).has(v) || i(this, p).set(v, y), this.preResolve(v); 222 } 223 } 224 shouldPrefetch(m) { 225 if (i(this, c).length === 0) return !1; 226 let { url: g, matcherRoutes: k } = z(i(this, e).config, m), v = i(this, e).parseUrl(g); 227 return v.matchers = k, i(this, c).some(tt.bind(null, v)); 228 } 229 preResolve(m) { 230 let g = typeof m == "string" ? m : i(this, e).serializeUrl(m);
231 i(this, p).has(g) && (i(this, p).get(g) ?? []).forEach((k) => { 232 let v = i(this, l).get(k); 233 (!v || (/* @__PURE__ */ new Date()).getTime() - v > i(this, _)) && (i(this, l).set(k, (/* @__PURE__ */ new Date()).getTime()), i(this, s).scheduleIdleCallback(() => Z(this, null, function* () { 234 yield R(this, T, K).call(this), I(i(this, t), () => { 235 i(this, r).runOutsideAngular(() => { 236 k(); 237 }); 238 }); 239 }))); 240 }); 241 } 242 }; 243 return e = /* @__PURE__ */ new WeakMap(), t = /* @__PURE__ */ new WeakMap(), r = /* @__PURE__ */ new WeakMap(), s = /* @__PURE__ */ new WeakMap(), n = /* @__PURE__ */ new WeakMap(), a = /* @__PURE__ */ new WeakMap(), h = /* @__PURE__ */ new WeakMap(), u = /* @__PURE__ */ new WeakMap(), c = /* @__PURE__ */ new WeakMap(), p = /* @__PURE__ */ new WeakMap(), f = /* @__PURE__ */ new WeakMap(), l = /* @__PURE__ */ new WeakMap(), M = /* @__PURE__ */ new WeakMap(), b = /* @__PURE__ */ new WeakMap(), _ = /* @__PURE__ */ new WeakMap(), T = /* @__PURE__ */ new WeakSet(), J = function(w, m, g) { 244 let k = JSON.stringify(g); 245 if (i(this, M).has(w) || i(this, M).set(w, /* @__PURE__ */ new Map()), !i(this, M).get(w).has(k)) { 246 let v = () => w.data.preResolve({ 247 data: w.data, 248 preResolverUrl: m, 249 params: g 250 }); 251 i(this, M).get(w).set(k, v); 252 } 253 return i(this, M).get(w).get(k); 254 }, q = function(w) { 255 var m; 256 let g = w.data?.product; 257 !g || g === i(this, u).current.name || i(this, b).has(g) || (i(this, a) && i(this, b).set(g, i(this, a).call(this, g)), (m = i(this, h)) == null || m.call(this, g)); 258 }, K = function() { 259 return Z(this, null, function* () { 260 i(this, b).size > 0 && (yield Promise.all(i(this, b).values())); 261 }); 262 }, Q = function(w) { 263 let m = i(this, e).serializeUrl(w), g = []; 264 for (let k of i(this, f)) { 265 let v = i(this, n).getExtendedTree(k), y = i(this, n).getMatches(v, w); 266 y && g.push(() => k.data.preResolve({ 267 data: k.data, 268 preResolverUrl: m, 269 params: y 270 })); 271 } 272 g.length && (i(this, p).set(m, g), this.preResolve(m)); 273 }, X = function(w, m = i(this, c)) { 274 let g = i(this, n).getExtendedTree(w); 275 return je(m.map((k) => ({ 276 url: i(this, e).serializeUrl(k), 277 registeredTree: k 278 })), "url").map(({ url: k, registeredTree: v }) => { 279 let y = i(this, n).getMatches(g, v); 280 return y ? { 281 url: k, 282 params: y 283 } : null; 284 }).filter((k) => k !== null); 285 }, P.ɵfac = function(w) { 286 return new (w || P)(); 287 }, P.ɵprov = $({ 288 token: P, 289 factory: P.ɵfac, 290 providedIn: "root" 291 }), P; 292 })(), pe = (() => { 293 var e, t, r, s, n, a; 294 let h = class { 295 constructor() { 296 o(this, e, d(Ne, { optional: !0 })), o(this, t, d(B)), o(this, r, d(se)), o(this, s, d(O)), o(this, n, /* @__PURE__ */ new Map()), o(this, a, new IntersectionObserver((c) => { 297 c.forEach((p) => { 298 if (p.isIntersecting) { 299 let f = p.target, l = i(this, n).get(f)?.urlTree(); 300 if (!l) return; 301 i(this, t).has(l) ? i(this, t).preResolve(l) : (i(this, t).add(l), i(this, s).scheduleIdleCallback(() => { 302 i(this, e)?.preload().subscribe(() => {}); 303 })); 304 } 305 }); 306 }, { threshold: .1 })); 307 } 308 register(c) { 309 i(this, n).set(c.element, c), i(this, r).runOutsideAngular(() => { 310 i(this, a).observe(c.element); 311 }); 312 } 313 unregister(c) { 314 c.registeredTree && i(this, t).remove(c.registeredTree), i(this, n).has(c.element) && (i(this, a).unobserve(c.element), i(this, n).delete(c.element)); 315 } 316 }; 317 return e = /* @__PURE__ */ new WeakMap(), t = /* @__PURE__ */ new WeakMap(), r = /* @__PURE__ */ new WeakMap(), s = /* @__PURE__ */ new WeakMap(), n = /* @__PURE__ */ new WeakMap(), a = /* @__PURE__ */ new WeakMap(), h.ɵfac = function(u) { 318 return new (u || h)(); 319 }, h.ɵprov = $({ 320 token: h, 321 factory: h.ɵfac, 322 providedIn: "root" 323 }), h; 324 })(), $e(), F = (() => { 325 var e = class extends qe {}; 326 let t = (e.ɵfac = (() => { 327 let r; 328 return function(s) { 329 return (r || (r = ve(e)))(s || e); 330 }; 331 })(), e.ɵprov = $({ 332 token: e, 333 factory: function(r) { 334 let s = null; 335 return r ? s = new r() : s = st(be(Qe)), s; 336 }, 337 providedIn: "root" 338 }), e); 339 return t = Oe([Ge({ 340 key: "vnSpeculativeLink", 341 product: xe.SF 342 })], t), t; 343 })(), de = (() => { 344 var e, t, r, s, n, a, h, u, c; 345 let p = class { 346 constructor() { 347 o(this, e), o(this, t), o(this, r), o(this, s), o(this, n), o(this, a), o(this, h), o(this, u), o(this, c), this.path = Ce.required({ alias: "vnSpeculativeLink" }), W(this, e, d(S)), W(this, t, d(ae)), W(this, r, d(L)), W(this, s, d(pe)), W(this, n, d(Ve)), W(this, a, d(F)), this.registeredTree = null, W(this, h, ne(i(this, r).visibilityChange().pipe(ee(({ isVisible: l }) => l)))), W(this, u, ne(i(this, a).whenReady.pipe(ee(() => i(this, a).isEnabled)))), this.urlTree = we(() => { 348 if (i(this, a).isConfigReady && !i(this, a).isEnabled) return null; 349 let l = this.path(); 350 return !i(this, u).call(this) || !l ? null : this.parseUrl(l); 351 }), this.element = d(Ee).nativeElement, W(this, c, Pe(() => { 352 i(this, s).unregister(this), this.urlTree() && i(this, h).call(this) && i(this, n).isFullyHydrated() && i(this, s).register(this), this.registeredTree = this.urlTree(); 353 })); 354 } 355 parseUrl(l) { 356 if (!l.includes("http")) return i(this, e).parseUrl(l); 357 let M = new URL(l); 358 return i(this, t).location.hostname !== M.hostname ? null : i(this, e).parseUrl(M.pathname); 359 } 360 ngOnDestroy() { 361 i(this, s).unregister(this), i(this, c).destroy(); 362 } 363 }; 364 return e = /* @__PURE__ */ new WeakMap(), t = /* @__PURE__ */ new WeakMap(), r = /* @__PURE__ */ new WeakMap(), s = /* @__PURE__ */ new WeakMap(), n = /* @__PURE__ */ new WeakMap(), a = /* @__PURE__ */ new WeakMap(), h = /* @__PURE__ */ new WeakMap(), u = /* @__PURE__ */ new WeakMap(), c = /* @__PURE__ */ new WeakMap(), p.ɵfac = function(f) { 365 return new (f || p)(); 366 }, p.ɵdir = Te({ 367 type: p, 368 selectors: [[ 369 "", 370 "vnSpeculativeLink", 371 "" 372 ]], 373 inputs: { path: [ 374 1, 375 "vnSpeculativeLink", 376 "path" 377 ] } 378 }), p; 379 })(), G = new C("SPECULATIVE_LINK_BEFORE_LOAD"), fe = (() => { 380 var e, t, r, s, n, a, h, u, c; 381 let p = class { 382 constructor() {
383 o(this, h), o(this, e, /* @__PURE__ */ new Set()), o(this, t, d(B)), o(this, r, d(O)), o(this, s, d(ie)), o(this, n, d(ae)), o(this, a, d(G, { optional: !0 })), d(S).events.pipe(_e((l) => l instanceof Le), Me((l) => { 384 i(this, r).scheduleIdleCallback(() => { 385 i(this, t).registerRoutes(l.route); 386 }); 387 })).subscribe(); 388 } 389 preload(l, M) { 390 if (i(this, e).has(l)) return D; 391 let b = i(this, n).navigator, _ = typeof b > "u" ? void 0 : b.connection; 392 return _ && ((_.effectiveType || "").includes("2g") || _.saveData) ? D : l.data && l.data.preload === !1 ? D : R(this, h, c).call(this, l) ? i(this, t).shouldPrefetch(l) ? (i(this, e).add(l), R(this, h, u).call(this, l, M)) : D : D; 393 } 394 }; 395 return e = /* @__PURE__ */ new WeakMap(), t = /* @__PURE__ */ new WeakMap(), r = /* @__PURE__ */ new WeakMap(), s = /* @__PURE__ */ new WeakMap(), n = /* @__PURE__ */ new WeakMap(), a = /* @__PURE__ */ new WeakMap(), h = /* @__PURE__ */ new WeakSet(), u = function(f, l) { 396 return i(this, a) ? i(this, a).call(this, f).pipe(De(1), Re(() => l()), We(() => D)) : l(); 397 }, c = function(f) { 398 if (!f.data) return !0; 399 let l = f.data.canPreload; 400 if (l === "function") return I(i(this, s), () => l(f)); 401 if (Array.isArray(l)) { 402 for (let M = 0; M < l.length; M++) if (!I(i(this, s), () => l[M](f))) return !1; 403 return !0; 404 } 405 return !0; 406 }, p.ɵfac = function(f) { 407 return new (f || p)(); 408 }, p.ɵprov = $({ 409 token: p, 410 factory: p.ɵfac, 411 providedIn: "root" 412 }), p; 413 })(); 414 })))(); 415} 416export { me as a, L as c, G as i, fe as n, j as o, de as r, N as s, x as t }; 417 418//# sourceMappingURL=chunk-bol8t3zz.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.