1import { y as A } from "./chunk-xgti9j2t.js"; 2import { Ea as k, Hn as M, Kn as B, Li as h, Mr as L, Pi as O, Pt as p, Ro as W, Sa as d, Sn as b, Sr as E, To as y, Y as c, fa as w, fi as f, fr as z, gt as s, in as G, l as x, t as F, tn as m, zo as P } from "./chunk-c97c17u8.js"; 3import { M as q, U as Q, u as $ } from "./chunk-l3jkbhly.js"; 4import { p as j } from "./chunk-k52vj1ic.js"; 5import { o as J } from "./chunk-l24fzhmb.js"; 6import { A as X } from "./chunk-jrtaqqwj.js"; 7import { o as Z, t as v } from "./chunk-pesy0vb6.js"; 8import { D as K, o as U } from "./chunk-llc8ry2a.js"; 9import { a as Y, mt as V, ut as tt } from "./chunk-fbjoug0d.js"; 10import { a as et } from "./chunk-ewplex8i.js"; 11import { n as it } from "./chunk-c18gpzrj.js"; 12import { r as nt, t as rt } from "./chunk-c9rg1mp5.js"; 13import { n as ot, t as st } from "./chunk-kyqvtgtk.js"; 14import { Y as at, gt as ht, pt as ct, q as mt, w as ut } from "./chunk-w0x32net.js"; 15import { d as C, h as S, p as lt } from "./chunk-bhnvkbxx.js"; 16import { ot as pt } from "./chunk-f2v2cgea.js"; 17import { c as dt } from "./chunk-og5uebri.js"; 18import { Dn as ft, Tt as vt, _ as _t, an as gt, b as u, hr as D, jr as kt } from "./chunk-go6pvd0a.js"; 19import { t as bt } from "./chunk-k4et3zlq.js"; 20import { i as yt, p as wt } from "./chunk-hul0ult7.js"; 21import { n as xt } from "./chunk-lmnwxprc.js"; 22import { r as Ct } from "./chunk-ilfhy0in.js"; 23import { n as St } from "./chunk-ohg30iel.js"; 24import { $ as Dt, st as H, ut as Ht } from "./chunk-iuhjzybw.js"; 25import { a as Nt, s as Rt } from "./chunk-bol8t3zz.js"; 26import { c as It } from "./chunk-pccxjem8.js"; 27import { r as Tt, t as At } from "./chunk-i1knml6i.js"; 28import { r as Mt, t as Bt } from "./chunk-bt0uh5ix.js"; 29import { n as Lt } from "./chunk-bh3f6w1f.js"; 30import { i as Ot } from "./chunk-eoj30x9t.js"; 31import { t as Wt } from "./chunk-bwsrvyqb.js"; 32import { n as Et } from "./chunk-k0kygnvj.js"; 33import { $t as zt, A as Gt, At as Ft, C as Pt, Dt as qt, L as Qt, T as $t, _t as jt, it as Jt, lt as Xt, on as Zt, pt as Kt, q as Ut, wt as Yt, xt as Vt, yt as te } from "./chunk-g8mtbi19.js"; 34import { t as ee } from "./chunk-o4f8w5yc.js"; 35function ie(e, n) { 36 e & 1 && b(0, "span", 2), e & 2 && m("ngClass", d().hintIcon); 37} 38function ne(e, n) { 39 if (e & 1) { 40 let t = E(); 41 k(0, "vn-icon", 4), F("click", function() { 42 return z(t), P(d(3).closeMessage()); 43 }), w(); 44 } 45 e & 2 && m("name", d(3).closeIcon); 46} 47function re(e, n) { 48 if (e & 1 && (c(0, ie, 1, 1, "span", 2), c(1, ne, 1, 1, "vn-icon", 3)), e & 2) { 49 let t = n; 50 h(t.hintIcon ? 0 : -1), p(), h(t.showCloseButton === "true" ? 1 : -1); 51 } 52} 53function oe(e, n) { 54 e & 1 && b(0, "vn-page-matrix", 1), e & 2 && m("content", n); 55} 56function se(e, n) { 57 if (e & 1 && (k(0, "div", 0), c(1, re, 2, 2), c(2, oe, 1, 1, "vn-page-matrix", 1), w()), e & 2) { 58 let t, i, r = n; 59 m("ngClass", r.parameters?.hintClass || void 0), p(), h((t = r?.parameters) ? 1 : -1, t), p(), h((i = r) ? 2 : -1, i); 60 } 61} 62function ae() { 63 return [vt(I)]; 64} 65var N, R, _, l, I; 66function T() { 67 return (T = ee((() => { 68 A(), O(), q(), j(), J(), X(), Z(), K(), tt(), et(), it(), nt(), st(), U(), ht(), lt(), pt(), at(), dt(), kt(), bt(), wt(), yt(), xt(), Ct(), St(), Dt(), ft(), Rt(), Nt(), It(), Tt(), Bt(), Lt(), Ot(), Wt(), Et(), Zt(), zt(), Ft(), qt(), Yt(), Vt(), te(), jt(), Kt(), Xt(), Jt(), Ut(), Qt(), Gt(), Pt(), N = (() => { 69 let e = class { 70 constructor() { 71 this.overlayRef = s(H), this.webWorkerService = s(D); 72 } 73 ngOnInit() { 74 this.closeIcon = this.hint?.parameters?.closeIcon || "theme-close-i"; 75 let t = this.hint?.parameters?.timeOut; 76 if (t) { 77 let i = V(t); 78 i && this.webWorkerService.createWorker(u.HintTimerTimeout, { timeout: i }, () => { 79 this.closeMessage(); 80 }); 81 } 82 } 83 ngOnDestroy() { 84 this.webWorkerService.removeWorker(u.HintTimerTimeout); 85 } 86 closeMessage() { 87 this.overlayRef.detach(); 88 } 89 }; 90 return e.ɵfac = function(n) { 91 return new (n || e)(); 92 }, e.ɵcmp = M({ 93 type: e, 94 selectors: [["vn-hint"]], 95 inputs: { hint: "hint" }, 96 decls: 1, 97 vars: 1, 98 consts: [ 99 [ 100 1, 101 "hint-message", 102 3, 103 "ngClass" 104 ], 105 [3, "content"], 106 [ 107 1, 108 "hint-icon", 109 3, 110 "ngClass" 111 ], 112 [ 113 "extraClass", 114 "ui-icon hint-message__icon-close", 115 3, 116 "name" 117 ], 118 [ 119 "extraClass", 120 "ui-icon hint-message__icon-close", 121 3, 122 "click", 123 "name" 124 ] 125 ], 126 template: function(n, t) { 127 if (n & 1 && c(0, se, 3, 3, "div", 0), n & 2) { 128 let i; 129 h((i = t.hint) ? 0 : -1, i); 130 } 131 }, 132 dependencies: [ 133 Q, 134 $, 135 $t, 136 At 137 ], 138 styles: [`@charset "UTF-8";.vn-overlay-hint-container{background:var(--%NS%hint-bg-color);border-radius:16px;bottom:.5rem;box-sizing:border-box;left:0;margin:1rem;padding:var(--%NS%site-spacer);position:absolute!important;width:calc(100% - 2rem)}.vn-overlay-hint-container:before{background:var(--%NS%hint-bg-color);bottom:-.5rem;content:" ";height:1rem;left:0;margin:0 auto;position:absolute;right:0;transform:rotate(45deg);width:1rem}.vn-overlay-hint-container .hint-message{font-family:var(--%NS%theme-font-family-base)}.vn-overlay-hint-container .hint-message .hint-message__icon-close{align-items:center;color:var(--%NS%hint-close-color);display:flex;justify-content:center;position:absolute;right:0;top:0}.vn-overlay-hint-container .hint-message .pc-h{color:var(--%NS%hint-txt-color);font-size:10px;margin:0}.vn-overlay-hint-container .hint-message .hint-header{color:var(--%NS%hint-txt-color);font-size:16px;
138font-weight:var(--%NS%hint-header-font-weight)}.vn-overlay-hint-container .hint-message .hint-brand-logo-wrapper{color:var(--%NS%color-black);height:60px;margin-right:var(--%NS%site-spacer);width:60px}.vn-overlay-hint-container .hint-message .hint-brand-logo-wrapper .hint-brand-logo-image{display:block;height:100%;max-width:none;width:auto}.vn-overlay-hint-container .hint-message .hint-content{color:var(--%NS%hint-content-color);font-size:14px}.vn-overlay-hint-container .hint-message .hint-content span,.vn-overlay-hint-container .hint-message .hint-content p{font-size:inherit}.vn-overlay-hint-container .hint-message .hint-content .hint-content-muted{color:var(--%NS%hint-content-muted-color);font-size:10px}.vn-overlay-hint-container .hint-message .hint-content .theme-safari-share,.vn-overlay-hint-container .hint-message .hint-content .theme-safari-add-to-home{line-height:10px;vertical-align:sub}.vn-overlay-hint-container .hint-message .hint-content .theme-safari-add-to-home{margin:var(--%NS%site-spacer-s)}.device-tablet .vn-overlay-hint-container{bottom:initial;left:initial;margin:0;right:1rem;top:1rem;width:343px}.device-tablet .vn-overlay-hint-container:before{left:initial;right:117px;top:-.5rem;width:1rem}.device-tablet .vn-overlay-hint-container .hint-message .hint-brand-logo-wrapper{height:76px;width:76px}@media(orientation:landscape){.device-mobile-phone .vn-overlay-hint-container{bottom:initial;left:initial;margin:0;right:1rem;top:1rem;width:343px}.device-mobile-phone .vn-overlay-hint-container:before{left:initial;top:-.5rem}}@media only screen and (min-width:375px)and (max-width:667px)and (orientation:landscape){.device-mobile-phone .vn-overlay-hint-container:before{right:97px}}@media only screen and (min-width:375px)and (max-width:812px)and (-webkit-device-pixel-ratio:3)and (orientation:landscape),only screen and (min-width:414px)and (min-height:896px)and (-webkit-device-pixel-ratio:2)and (orientation:landscape){.device-mobile-phone .vn-overlay-hint-container:before{right:87px}} 139`], 140 encapsulation: 2 141 }), e; 142 })(), R = (() => { 143 let e = class { 144 constructor() { 145 this.overlay = s(Mt), this.injector = s(y); 146 } 147 show(t) { 148 let i = this.overlay.create({ 149 panelClass: "vn-overlay-hint-container", 150 scrollStrategy: this.overlay.scrollStrategies.noop() 151 }); 152 i.backdropClick().subscribe(() => i.detach()); 153 let r = new Ht(N, null, y.create({ 154 providers: [{ 155 provide: H, 156 useValue: i 157 }], 158 parent: this.injector 159 })), o = i.attach(r); 160 return o.setInput("hint", t), [i, o]; 161 } 162 }; 163 return e.ɵfac = function(n) { 164 return new (n || e)(); 165 }, e.ɵprov = f({ 166 token: e, 167 factory: e.ɵfac, 168 providedIn: "root" 169 }), e; 170 })(), _ = (() => { 171 let e = class { 172 constructor() { 173 this.contentService = s(_t), this.log = s(ct), this.page = s(ot), this.user = s(C), this.hintOverlayService = s(R), this.productService = s(rt), this.webWorkerService = s(D), this.destroyRef = s(x), this.predicate = (i, r) => i.name === r && (i.product === this.productService.current.name || !i.product); 174 let t = s(gt); 175 this.db = t.createList(ut.HintQueue, this.generateExpiryDate(365)); 176 } 177 add(t) { 178 t && (t = t.toLowerCase(), this.removeExpired(), this.db.getOne((i) => this.predicate(i, t)) ? this.db.update((i) => this.predicate(i, t), (i) => i.shouldShow = !0) : this.db.insert({ 179 name: t, 180 shouldShow: !0 181 }), this.webWorkerService.createWorker(u.HintQueueTimeout, { timeout: 0 }, () => { 182 this.display(), this.webWorkerService.removeWorker(u.HintQueueTimeout); 183 })); 184 } 185 remove(t) { 186 t && this.db.delete((i) => i.name === t.toLowerCase()); 187 } 188 clear() { 189 this.db.deleteAll(); 190 } 191 removeExpired() { 192 this.db.delete((t) => !!t.expires && (/* @__PURE__ */ new Date()).getTime() > t.expires); 193 } 194 display() { 195 this.currentRef || (this.hintsContent ? this.showNextHint() : this.loadHints()); 196 } 197 showNextHint() { 198 let t = this.db.getOne((o) => o.shouldShow && (o.product === this.productService.current.name || !o.product)); 199 if (!t) return; 200 let i = t.name.toLowerCase(), r = this.hintsContent.find((o) => o.name === i); 201 if (r?.items && (r = r.items[0]), !r) { 202 if (this.db.update((o) => this.predicate(o, t.name), (o) => o.shouldShow = !1), this.log.warn(`No content found for hint ${i}.`), this.currentRef) { 203 this.currentRef.detach(); 204 return; 205 } 206 this.showNextHint(); 207 return; 208 } 209 if (this.currentRef && this.componentRef) { 210 this.componentRef.setInput("hint", r); 211 return; 212 } 213 if (r.parameters && t.displayCounter && r.parameters.displayCounter && t.displayCounter >= parseInt(r.parameters.displayCounter)) { 214 this.db.update((o) => this.predicate(o, t.name), (o) => o.shouldShow = !1), this.log.info(`Hint ${i} is already shown max number of times ${r.parameters.displayCounter}.`), this.showNextHint(); 215 return; 216 } 217 [this.currentRef, this.componentRef] = this.hintOverlayService.show(r), this.currentRef.detachments().subscribe(() => { 218 if (r?.parameters?.displayCounter) { 219 let o = r.parameters.cookieExpireDays ? this.generateExpiryDate(r.parameters.cookieExpireDays)?.getTime() : void 0, g = mt(r.parameters.isProductSpecific) ? this.productService.current.name : void 0; 220 this.db.update((a) => this.predicate(a, t.name), (a) => { 221 a.shouldShow = !1, a.displayCounter = (t.displayCounter || 0) + 1, o && (a.expires = o), g && (a.product = g); 222 }); 223 } else this.db.delete((o) => o.name === t.name); 224 this.currentRef.dispose(), this.currentRef = null, this.componentRef = null, this.showNextHint(); 225 }); 226 } 227 loadHints() { 228 this.loading || this.hintsContent || (this.loading = !0, this.page.isAnonymousAccessRestricted && !this.user.isAuthenticated ? this.user.events.pipe(G((t) => t instanceof S), v(this.destroyRef)).subscribe(() => this.loadHintContent()) : this.loadHintContent()); 229 } 230 loadHintContent() { 231 this.contentService.getJsonFiltered("App-v1.0/Hints").pipe(B((t) => t.items || []), L(() => []), v(this.destroyRef)).subscribe((t) => { 232 this.hintsContent = t, this.loading = !1, this.currentRef ? this.showNextHint() : this.display(); 233 }); 234 } 235 generateExpiryDate(t) { 236 if (!t) return; 237 let i = /* @__PURE__ */ new Date(); 238 return i.setDate(i.getDate() + (Y(t) ? t : parseInt(t, 10))), i; 239 } 240 }; 241 return e.ɵfac = function(n) { 242 return new (n || e)(); 243 }, e.ɵprov = f({ 244 token: e, 245 factory: e.ɵfac, 246 providedIn: "root" 247 }), e; 248 })(), l = (function(e) { 249 return e.HomeScreen = "homescreen", e; 250 })(l || {}), I = (() => { 251 let e = class { 252 constructor() { 253 this.hintQueueService = s(_), this.user = s(C), this.destroyRef = s(x); 254 } 255 onFeatureInit() { 256 this.user.isAuthenticated || this.hintQueueService.add(l.HomeScreen), this.user.events.pipe(W((t) => t instanceof S), v(this.destroyRef)).subscribe(() => this.hintQueueService.add(l.HomeScreen)); 257 } 258 }; 259 return e.ɵfac = function(n) { 260 return new (n || e)(); 261 }, e.ɵprov = f({ 262 token: e, 263 factory: e.ɵfac 264 }), e; 265 })(); 266 })))(); 267} 268T(); 269export { _ as HintQueueService, ae as provide }; 270 271//# sourceMappingURL=chunk-iihrq1m7.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.