1import { E as Te, a as Fe } from "./lit-element.chunk-B6Olh1kf.js"; 2import { e as Ae, i as Ie, t as De, r as X, n as Ue } from "./state.chunk-B35jHvjT.js"; 3const ze = Ae(class extends Ie { 4 constructor(n) { 5 if (super(n), n.type !== De.ATTRIBUTE || n.name !== "class" || n.strings?.length > 2) throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute."); 6 } 7 render(n) { 8 return " " + Object.keys(n).filter((e) => n[e]).join(" ") + " "; 9 } 10 update(n, [e]) { 11 if (this.st === void 0) { 12 this.st = /* @__PURE__ */ new Set(), n.strings !== void 0 && (this.nt = new Set(n.strings.join(" ").split(/\s/).filter((a) => a !== ""))); 13 for (const a in e) e[a] && !this.nt?.has(a) && this.st.add(a); 14 return this.render(e); 15 } 16 const t = n.element.classList; 17 for (const a of this.st) a in e || (t.remove(a), this.st.delete(a)); 18 for (const a in e) { 19 const s = !!e[a]; 20 s === this.st.has(a) || this.nt?.has(a) || (s ? (t.add(a), this.st.add(a)) : (t.remove(a), this.st.delete(a))); 21 } 22 return Te; 23 } 24}), Rt = 320, Ve = 540, Me = 768, Ke = 1024, He = 1366, h = (n) => typeof n == "string", M = () => { 25 let n, e; 26 const t = new Promise((a, s) => { 27 n = a, e = s; 28 }); 29 return t.resolve = n, t.reject = e, t; 30}, le = (n) => n == null ? "" : String(n), Be = (n, e, t) => { 31 n.forEach((a) => { 32 e[a] && (t[a] = e[a]); 33 }); 34}, qe = /###/g, de = (n) => n && n.includes("###") ? n.replace(qe, ".") : n, ue = (n) => !n || h(n), K = (n, e, t) => { 35 const a = h(e) ? e.split(".") : e; 36 let s = 0; 37 for (; s < a.length - 1; ) { 38 if (ue(n)) return {}; 39 const i = de(a[s]); 40 !n[i] && t && (n[i] = new t()), Object.prototype.hasOwnProperty.call(n, i) ? n = n[i] : n = {}, ++s; 41 } 42 return ue(n) ? {} : { 43 obj: n, 44 k: de(a[s]) 45 }; 46}, ce = (n, e, t) => { 47 const { 48 obj: a, 49 k: s 50 } = K(n, e, Object); 51 if (a !== void 0 || e.length === 1) { 52 a[s] = t; 53 return; 54 } 55 let i = e[e.length - 1], r = e.slice(0, e.length - 1), o = K(n, r, Object); 56 for (; o.obj === void 0 && r.length; ) 57 i = `${r[r.length - 1]}.${i}`, r = r.slice(0, r.length - 1), o = K(n, r, Object), o?.obj && typeof o.obj[`${o.k}.${i}`] < "u" && (o.obj = void 0); 58 o.obj[`${o.k}.${i}`] = t; 59}, We = (n, e, t, a) => { 60 const { 61 obj: s, 62 k: i 63 } = K(n, e, Object); 64 s[i] = s[i] || [], s[i].push(t); 65}, _ = (n, e) => { 66 const { 67 obj: t, 68 k: a 69 } = K(n, e); 70 if (t && Object.prototype.hasOwnProperty.call(t, a)) 71 return t[a]; 72}, Ge = (n, e, t) => { 73 const a = _(n, t); 74 return a !== void 0 ? a : _(e, t); 75}, ke = (n, e, t) => { 76 for (const a in e) 77 a !== "__proto__" && a !== "constructor" && (a in n ? h(n[a]) || n[a] instanceof String || h(e[a]) || e[a] instanceof String ? t && (n[a] = e[a]) : ke(n[a], e[a], t) : n[a] = e[a]); 78 return n; 79}, T = (n) => n.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"), Je = { 80 "&": "&", 81 "<": "<", 82 ">": ">", 83 '"': """, 84 "'": "'", 85 "/": "/" 86}, _e = (n) => h(n) ? n.replace(/[&<>"'\/]/g, (e) => Je[e]) : n; 87class Ye { 88 constructor(e) { 89 this.capacity = e, this.regExpMap = /* @__PURE__ */ new Map(), this.regExpQueue = []; 90 } 91 getRegExp(e) { 92 const t = this.regExpMap.get(e); 93 if (t !== void 0) 94 return t; 95 const a = new RegExp(e); 96 return this.regExpQueue.length === this.capacity && this.regExpMap.delete(this.regExpQueue.shift()), this.regExpMap.set(e, a), this.regExpQueue.push(e), a; 97 } 98} 99const Qe = [" ", ",", "?", "!", ";"], Xe = new Ye(20), Ze = (n, e, t) => { 100 e = e || "", t = t || ""; 101 const a = Qe.filter((r) => !e.includes(r) && !t.includes(r)); 102 if (a.length === 0) return !0; 103 const s = Xe.getRegExp(`(${a.map((r) => r === "?" ? "\\?" : r).join("|")})`); 104 let i = !s.test(n); 105 if (!i) { 106 const r = n.indexOf(t); 107 r > 0 && !s.test(n.substring(0, r)) && (i = !0); 108 } 109 return i; 110}, se = (n, e, t = ".") => { 111 if (!n) return; 112 if (n[e]) 113 return Object.prototype.hasOwnProperty.call(n, e) ? n[e] : void 0; 114 const a = e.split(t); 115 let s = n; 116 for (let i = 0; i < a.length; ) { 117 if (!s || typeof s != "object") 118 return; 119 let r, o = ""; 120 for (let l = i; l < a.length; ++l) 121 if (l !== i && (o += t), o += a[l], r = s[o], r !== void 0) { 122 if (["string", "number", "boolean"].includes(typeof r) && l < a.length - 1) 123 continue; 124 i += l - i + 1; 125 break; 126 } 127 s = r; 128 } 129 return s; 130}, B = (n) => n?.replace(/_/g, "-"), et = { 131 type: "logger", 132 log(n) { 133 this.output("log", n); 134 }, 135 warn(n) { 136 this.output("warn", n); 137 }, 138 error(n) { 139 this.output("error", n); 140 }, 141 output(n, e) { 142 console?.[n]?.apply?.(console, e); 143 } 144}; 145class Y { 146 constructor(e, t = {}) { 147 this.init(e, t); 148 } 149 init(e, t = {}) { 150 this.prefix = t.prefix || "i18next:", this.logger = e || et, this.options = t, this.debug = t.debug; 151 } 152 log(...e) { 153 return this.forward(e, "log", "", !0); 154 } 155 warn(...e) { 156 return this.forward(e, "warn", "", !0); 157 } 158 error(...e) { 159 return this.forward(e, "error", ""); 160 } 161 deprecate(...e) { 162 return this.forward(e, "warn", "WARNING DEPRECATED: ", !0); 163 } 164 forward(e, t, a, s) { 165 return s && !this.debug ? null : (h(e[0]) && (e[0] = `${a}${this.prefix} ${e[0]}`), this.logger[t](e)); 166 } 167 create(e) { 168 return new Y(this.logger, { 169 prefix: `${this.prefix}:${e}:`, 170 ...this.options 171 }); 172 } 173 clone(e) { 174 return e = e || this.options, e.prefix = e.prefix || this.prefix, new Y(this.logger, e); 175 } 176} 177var R = new Y(); 178class Z { 179 constructor() { 180 this.observers = {}; 181 } 182 on(e, t) { 183 return e.split(" ").forEach((a) => { 184 this.observers[a] || (this.observers[a] = /* @__PURE__ */ new Map()); 185 const s = this.observers[a].get(t) || 0; 186 this.observers[a].set(t, s + 1); 187 }), this; 188 } 189 off(e, t) { 190 if (this.observers[e]) { 191 if (!t) { 192 delete this.observers[e]; 193 return; 194 } 195 this.observers[e].delete(t); 196 } 197 } 198 once(e, t) { 199 const a = (...s) => { 200 t(...s), this.off(e, a); 201 }; 202 return this.on(e, a), this; 203 } 204 emit(e, ...t) { 205 this.observers[e] && Array.from(this.observers[e].entries()).forEac
vendor: 16,544 bytes, lines 205-570
205h(([s, i]) => { 206 for (let r = 0; r < i; r++) 207 s(...t); 208 }), this.observers["*"] && Array.from(this.observers["*"].entries()).forEach(([s, i]) => { 209 for (let r = 0; r < i; r++) 210 s(e, ...t); 211 }); 212 } 213} 214class pe extends Z { 215 constructor(e, t = { 216 ns: ["translation"], 217 defaultNS: "translation" 218 }) { 219 super(), this.data = e || {}, this.options = t, this.options.keySeparator === void 0 && (this.options.keySeparator = "."), this.options.ignoreJSONStructure === void 0 && (this.options.ignoreJSONStructure = !0); 220 } 221 addNamespaces(e) { 222 this.options.ns.includes(e) || this.options.ns.push(e); 223 } 224 removeNamespaces(e) { 225 const t = this.options.ns.indexOf(e); 226 t > -1 && this.options.ns.splice(t, 1); 227 } 228 getResource(e, t, a, s = {}) { 229 const i = s.keySeparator !== void 0 ? s.keySeparator : this.options.keySeparator, r = s.ignoreJSONStructure !== void 0 ? s.ignoreJSONStructure : this.options.ignoreJSONStructure; 230 let o; 231 e.includes(".") ? o = e.split(".") : (o = [e, t], a && (Array.isArray(a) ? o.push(...a) : h(a) && i ? o.push(...a.split(i)) : o.push(a))); 232 const l = _(this.data, o); 233 return !l && !t && !a && e.includes(".") && (e = o[0], t = o[1], a = o.slice(2).join(".")), l || !r || !h(a) ? l : se(this.data?.[e]?.[t], a, i); 234 } 235 addResource(e, t, a, s, i = { 236 silent: !1 237 }) { 238 const r = i.keySeparator !== void 0 ? i.keySeparator : this.options.keySeparator; 239 let o = [e, t]; 240 a && (o = o.concat(r ? a.split(r) : a)), e.includes(".") && (o = e.split("."), s = t, t = o[1]), this.addNamespaces(t), ce(this.data, o, s), i.silent || this.emit("added", e, t, a, s); 241 } 242 addResources(e, t, a, s = { 243 silent: !1 244 }) { 245 for (const i in a) 246 (h(a[i]) || Array.isArray(a[i])) && this.addResource(e, t, i, a[i], { 247 silent: !0 248 }); 249 s.silent || this.emit("added", e, t, a); 250 } 251 addResourceBundle(e, t, a, s, i, r = { 252 silent: !1, 253 skipCopy: !1 254 }) { 255 let o = [e, t]; 256 e.includes(".") && (o = e.split("."), s = a, a = t, t = o[1]), this.addNamespaces(t); 257 let l = _(this.data, o) || {}; 258 r.skipCopy || (a = JSON.parse(JSON.stringify(a))), s ? ke(l, a, i) : l = { 259 ...l, 260 ...a 261 }, ce(this.data, o, l), r.silent || this.emit("added", e, t, a); 262 } 263 removeResourceBundle(e, t) { 264 this.hasResourceBundle(e, t) && delete this.data[e][t], this.removeNamespaces(t), this.emit("removed", e, t); 265 } 266 hasResourceBundle(e, t) { 267 return this.getResource(e, t) !== void 0; 268 } 269 getResourceBundle(e, t) { 270 return t || (t = this.options.defaultNS), this.getResource(e, t); 271 } 272 getDataByLanguage(e) { 273 return this.data[e]; 274 } 275 hasLanguageSomeTranslations(e) { 276 const t = this.getDataByLanguage(e); 277 return !!(t && Object.keys(t) || []).find((s) => t[s] && Object.keys(t[s]).length > 0); 278 } 279 toJSON() { 280 return this.data; 281 } 282} 283var Pe = { 284 processors: {}, 285 addPostProcessor(n) { 286 this.processors[n.name] = n; 287 }, 288 handle(n, e, t, a, s) { 289 return n.forEach((i) => { 290 e = this.processors[i]?.process(e, t, a, s) ?? e; 291 }), e; 292 } 293}; 294const Re = /* @__PURE__ */ Symbol("i18next/PATH_KEY"); 295function tt() { 296 const n = [], e = /* @__PURE__ */ Object.create(null); 297 let t; 298 return e.get = (a, s) => (t?.revoke?.(), s === Re ? n : (n.push(s), t = Proxy.revocable(a, e), t.proxy)), Proxy.revocable(/* @__PURE__ */ Object.create(null), e).proxy; 299} 300function U(n, e) { 301 const { 302 [Re]: t 303 } = n(tt()), a = e?.keySeparator ?? ".", s = e?.nsSeparator ?? ":"; 304 if (t.length > 1 && s) { 305 const i = e?.ns, r = Array.isArray(i) ? i : null; 306 if (r && r.length > 1 && r.slice(1).includes(t[0])) 307 return `${t[0]}${s}${t.slice(1).join(a)}`; 308 } 309 return t.join(a); 310} 311const ee = (n) => !h(n) && typeof n != "boolean" && typeof n != "number"; 312class Q extends Z { 313 constructor(e, t = {}) { 314 super(), Be(["resourceStore", "languageUtils", "pluralResolver", "interpolator", "backendConnector", "i18nFormat", "utils"], e, this), this.options = t, this.options.keySeparator === void 0 && (this.options.keySeparator = "."), this.logger = R.create("translator"), this.checkedLoadedFor = {}; 315 } 316 changeLanguage(e) { 317 e && (this.language = e); 318 } 319 exists(e, t = { 320 interpolation: {} 321 }) { 322 const a = { 323 ...t 324 }; 325 if (e == null) return !1; 326 const s = this.resolve(e, a); 327 if (s?.res === void 0) return !1; 328 const i = ee(s.res); 329 return !(a.returnObjects === !1 && i); 330 } 331 extractFromKey(e, t) { 332 let a = t.nsSeparator !== void 0 ? t.nsSeparator : this.options.nsSeparator; 333 a === void 0 && (a = ":"); 334 const s = t.keySeparator !== void 0 ? t.keySeparator : this.options.keySeparator; 335 let i = t.ns || this.options.defaultNS || []; 336 const r = a && e.includes(a), o = !this.options.userDefinedKeySeparator && !t.keySeparator && !this.options.userDefinedNsSeparator && !t.nsSeparator && !Ze(e, a, s); 337 if (r && !o) { 338 const l = e.match(this.interpolator.nestingRegexp); 339 if (l && l.length > 0) 340 return { 341 key: e, 342 namespaces: h(i) ? [i] : i 343 }; 344 const d = e.split(a); 345 (a !== s || a === s && this.options.ns.includes(d[0])) && (i = d.shift()), e = d.join(s); 346 } 347 return { 348 key: e, 349 namespaces: h(i) ? [i] : i 350 }; 351 } 352 translate(e, t, a) { 353 let s = typeof t == "object" ? { 354 ...t 355 } : t; 356 if (typeof s != "object" && this.options.overloadTranslationOptionHandler && (s = this.options.overloadTranslationOptionHandler(arguments)), typeof s == "object" && (s = { 357 ...s 358 }), s || (s = {}), e == null) return ""; 359 typeof e == "function" && (e = U(e, { 360 ...this.options, 361 ...s 362 })), Array.isArray(e) || (e = [String(e)]), e = e.map((w) => typeof w == "function" ? U(w, { 363 ...this.options, 364 ...s 365 }) : String(w)); 366 const i = s.returnDetails !== void 0 ? s.returnDetails : this.options.returnDetails, r = s.keySeparator !== void 0 ? s.keySeparator : this.options.keySeparator, { 367 key: o, 368 namespaces: l 369 } = this.extractFromKey(e[e.length - 1], s), d = l[l.length - 1]; 370 let c = s.nsSeparator !== void 0 ? s.nsSeparator : this.options.nsSeparator; 371 c === void 0 && (c = ":"); 372 const u = s.lng || this.language, p = s.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode; 373 if (u?.toLowerCase() === "cimode") 374 return p ? i ? { 375 res: `${d}${c}${o}`, 376 usedKey: o, 377 exactUsedKey: o, 378 usedLng: u, 379 usedNS: d, 380 usedParams: this.getUsedParamsDetails(s) 381 } : `${d}${c}${o}` : i ? { 382 res: o, 383 usedKey: o, 384 exactUsedKey: o, 385 usedLng: u, 386 usedNS: d, 387 usedParams: this.getUsedParamsDetails(s) 388 } : o; 389 const g = this.resolve(e, s); 390 let f = g?.res; 391 const b = g?.usedKey || o, y = g?.exactUsedKey || o, L = ["[object Number]", "[object Function]", "[object RegExp]"], v = s.joinArrays !== void 0 ? s.joinArrays : this.options.joinArrays, $ = !this.i18nFormat || this.i18nFormat.handleAsObject, S = s.count !== void 0 && !h(s.count), O = Q.hasDefaultValue(s), F = S ? this.pluralResolver.getSuffix(u, s.count, s) : "", A = s.ordinal && S ? this.pluralResolver.getSuffix(u, s.count, { 392 ordinal: !1 393 }) : "", ie = S && !s.ordinal && s.count === 0, N = ie && s[`defaultValue${this.options.pluralSeparator}zero`] || s[`defaultValue${F}`] || s[`defaultValue${A}`] || s.defaultValue; 394 let k = f; 395 $ && !f && O && (k = N); 396 const $e = ee(k), je = Object.prototype.toString.apply(k); 397 if ($ && k && $e && !L.includes(je) && !(h(v) && Array.isArray(k))) { 398 if (!s.returnObjects && !this.options.returnObjects) { 399 this.options.returnedObjectHandler || this.logger.warn("accessing an object - but returnObjects options is not enabled!"); 400 const w = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(b, k, { 401 ...s, 402 ns: l 403 }) : `key '${o} (${this.language})' returned an object instead of string.`; 404 return i ? (g.res = w, g.usedParams = this.getUsedParamsDetails(s), g) : w; 405 } 406 if (r) { 407 const w = Array.isArray(k), C = w ? [] : {}, ne = w ? y : b; 408 for (const P in k) 409 if (Object.prototype.hasOwnProperty.call(k, P)) { 410 const E = `${ne}${r}${P}`; 411 O && !f ? C[P] = this.translate(E, { 412 ...s, 413 defaultValue: ee(N) ? N[P] : void 0, 414 joinArrays: !1, 415 ns: l 416 }) : C[P] = this.translate(E, { 417 ...s, 418 joinArrays: !1, 419 ns: l 420 }), C[P] === E && (C[P] = k[P]); 421 } 422 f = C; 423 } 424 } else if ($ && h(v) && Array.isArray(f)) 425 f = f.join(v), f && (f = this.extendTranslation(f, e, s, a)); 426 else { 427 let w = !1, C = !1; 428 !this.isValidLookup(f) && O && (w = !0, f = N), this.isValidLookup(f) || (C = !0, f = o); 429 const P = (s.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey) && C ? void 0 : f, E = O && N !== f && this.options.updateMissing; 430 if (C || w || E) { 431 if (this.logger.log(E ? "updateKey" : "missingKey", u, d, o, E ? N : f), r) { 432 const x = this.resolve(o, { 433 ...s, 434 keySeparator: !1 435 }); 436 x && x.res && this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format."); 437 } 438 let z = []; 439 const G = this.languageUtils.getFallbackCodes(this.options.fallbackLng, s.lng || this.language); 440 if (this.options.saveMissingTo === "fallback" && G && G[0]) 441 for (let x = 0; x < G.length; x++) 442 z.push(G[x]); 443 else this.options.saveMissingTo === "all" ? z = this.languageUtils.toResolveHierarchy(s.lng || this.language) : z.push(s.lng || this.language); 444 const re = (x, j, V) => { 445 const oe = O && V !== f ? V : P; 446 this.options.missingKeyHandler ? this.options.missingKeyHandler(x, d, j, oe, E, s) : this.backendConnector?.saveMissing && this.backendConnector.saveMissing(x, d, j, oe, E, s), this.emit("missingKey", x, d, j, f); 447 }; 448 this.options.saveMissing && (this.options.saveMissingPlurals && S ? z.forEach((x) => { 449 const j = this.pluralResolver.getSuffixes(x, s); 450 ie && s[`defaultValue${this.options.pluralSeparator}zero`] && !j.includes(`${this.options.pluralSeparator}zero`) && j.push(`${this.options.pluralSeparator}zero`), j.forEach((V) => { 451 re([x], o + V, s[`defaultValue${V}`] || N); 452 }); 453 }) : re(z, o, N)); 454 } 455 f = this.extendTranslation(f, e, s, g, a), C && f === o && this.options.appendNamespaceToMissingKey && (f = `${d}${c}${o}`), (C || w) && this.options.parseMissingKeyHandler && (f = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${d}${c}${o}` : o, w ? f : void 0, s)); 456 } 457 return i ? (g.res = f, g.usedParams = this.getUsedParamsDetails(s), g) : f; 458 } 459 extendTranslation(e, t, a, s, i) { 460 if (this.i18nFormat?.parse) 461 e = this.i18nFormat.parse(e, { 462 ...this.options.interpolation.defaultVariables, 463 ...a 464 }, a.lng || this.language || s.usedLng, s.usedNS, s.usedKey, { 465 resolved: s 466 }); 467 else if (!a.skipInterpolation) { 468 a.interpolation && this.interpolator.init({ 469 ...a, 470 interpolation: { 471 ...this.options.interpolation, 472 ...a.interpolation 473 } 474 }); 475 const l = h(e) && (a?.interpolation?.skipOnVariables !== void 0 ? a.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables); 476 let d; 477 if (l) { 478 const u = e.match(this.interpolator.nestingRegexp); 479 d = u && u.length; 480 } 481 let c = a.replace && !h(a.replace) ? a.replace : a; 482 if (this.options.interpolation.defaultVariables && (c = { 483 ...this.options.interpolation.defaultVariables, 484 ...c 485 }), e = this.interpolator.interpolate(e, c, a.lng || this.language || s.usedLng, a), l) { 486 const u = e.match(this.interpolator.nestingRegexp), p = u && u.length; 487 d < p && (a.nest = !1); 488 } 489 !a.lng && s && s.res && (a.lng = this.language || s.usedLng), a.nest !== !1 && (e = this.interpolator.nest(e, (...u) => i?.[0] === u[0] && !a.context ? (this.logger.warn(`It seems you are nesting recursively key: ${u[0]} in key: ${t[0]}`), null) : this.translate(...u, t), a)), a.interpolation && this.interpolator.reset(); 490 } 491 const r = a.postProcess || this.options.postProcess, o = h(r) ? [r] : r; 492 return e != null && o?.length && a.applyPostProcessor !== !1 && (e = Pe.handle(o, e, t, this.options && this.options.postProcessPassResolved ? { 493 i18nResolved: { 494 ...s, 495 usedParams: this.getUsedParamsDetails(a) 496 }, 497 ...a 498 } : a, this)), e; 499 } 500 resolve(e, t = {}) { 501 let a, s, i, r, o; 502 return h(e) && (e = [e]), Array.isArray(e) && (e = e.map((l) => typeof l == "function" ? U(l, { 503 ...this.options, 504 ...t 505 }) : l)), e.forEach((l) => { 506 if (this.isValidLookup(a)) return; 507 const d = this.extractFromKey(l, t), c = d.key; 508 s = c; 509 let u = d.namespaces; 510 this.options.fallbackNS && (u = u.concat(this.options.fallbackNS)); 511 const p = t.count !== void 0 && !h(t.count), g = p && !t.ordinal && t.count === 0, f = t.context !== void 0 && (h(t.context) || typeof t.context == "number") && t.context !== "", b = t.lngs ? t.lngs : this.languageUtils.toResolveHierarchy(t.lng || this.language, t.fallbackLng); 512 u.forEach((y) => { 513 this.isValidLookup(a) || (o = y, !this.checkedLoadedFor[`${b[0]}-${y}`] && this.utils?.hasLoadedNamespace && !this.utils?.hasLoadedNamespace(o) && (this.checkedLoadedFor[`${b[0]}-${y}`] = !0, this.logger.warn(`key "${s}" for languages "${b.join(", ")}" won't get resolved as namespace "${o}" was not yet loaded`, "This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")), b.forEach((L) => { 514 if (this.isValidLookup(a)) return; 515 r = L; 516 const v = [c]; 517 if (this.i18nFormat?.addLookupKeys) 518 this.i18nFormat.addLookupKeys(v, c, L, y, t); 519 else { 520 let S; 521 p && (S = this.pluralResolver.getSuffix(L, t.count, t)); 522 const O = `${this.options.pluralSeparator}zero`, F = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`; 523 if (p && (t.ordinal && S.startsWith(F) && v.push(c + S.replace(F, this.options.pluralSeparator)), v.push(c + S), g && v.push(c + O)), f) { 524 const A = `${c}${this.options.contextSeparator || "_"}${t.context}`; 525 v.push(A), p && (t.ordinal && S.startsWith(F) && v.push(A + S.replace(F, this.options.pluralSeparator)), v.push(A + S), g && v.push(A + O)); 526 } 527 } 528 let $; 529 for (; $ = v.pop(); ) 530 this.isValidLookup(a) || (i = $, a = this.getResource(L, y, $, t)); 531 })); 532 }); 533 }), { 534 res: a, 535 usedKey: s, 536 exactUsedKey: i, 537 usedLng: r, 538 usedNS: o 539 }; 540 } 541 isValidLookup(e) { 542 return e !== void 0 && !(!this.options.returnNull && e === null) && !(!this.options.returnEmptyString && e === ""); 543 } 544 getResource(e, t, a, s = {}) { 545 return this.i18nFormat?.getResource ? this.i18nFormat.getResource(e, t, a, s) : this.resourceStore.getResource(e, t, a, s); 546 } 547 getUsedParamsDetails(e = {}) { 548 const t = ["defaultValue", "ordinal", "context", "replace", "lng", "lngs", "fallbackLng", "ns", "keySeparator", "nsSeparator", "returnObjects", "returnDetails", "joinArrays", "postProcess", "interpolation"], a = e.replace && !h(e.replace); 549 let s = a ? e.replace : e; 550 if (a && typeof e.count < "u" && (s.count = e.count), this.options.interpolation.defaultVariables && (s = { 551 ...this.options.interpolation.defaultVariables, 552 ...s 553 }), !a) { 554 s = { 555 ...s 556 }; 557 for (const i of t) 558 delete s[i]; 559 } 560 return s; 561 } 562 static hasDefaultValue(e) { 563 const t = "defaultValue"; 564 for (const a in e) 565 if (Object.prototype.hasOwnProperty.call(e, a) && a.startsWith(t) && e[a] !== void 0) 566 return !0; 567 return !1; 568 } 569} 570class he {
vendor: 4,334 bytes, lines 571-675
571 constructor(e) { 572 this.options = e, this.supportedLngs = this.options.supportedLngs || !1, this.logger = R.create("languageUtils"); 573 } 574 getScriptPartFromCode(e) { 575 if (e = B(e), !e || !e.includes("-")) return null; 576 const t = e.split("-"); 577 return t.length === 2 || (t.pop(), t[t.length - 1].toLowerCase() === "x") ? null : this.formatLanguageCode(t.join("-")); 578 } 579 getLanguagePartFromCode(e) { 580 if (e = B(e), !e || !e.includes("-")) return e; 581 const t = e.split("-"); 582 return this.formatLanguageCode(t[0]); 583 } 584 formatLanguageCode(e) { 585 if (h(e) && e.includes("-")) { 586 let t; 587 try { 588 t = Intl.getCanonicalLocales(e)[0]; 589 } catch { 590 } 591 return t && this.options.lowerCaseLng && (t = t.toLowerCase()), t || (this.options.lowerCaseLng ? e.toLowerCase() : e); 592 } 593 return this.options.cleanCode || this.options.lowerCaseLng ? e.toLowerCase() : e; 594 } 595 isSupportedCode(e) { 596 return (this.options.load === "languageOnly" || this.options.nonExplicitSupportedLngs) && (e = this.getLanguagePartFromCode(e)), !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.includes(e); 597 } 598 getBestMatchFromCodes(e) { 599 if (!e) return null; 600 let t; 601 return e.forEach((a) => { 602 if (t) return; 603 const s = this.formatLanguageCode(a); 604 (!this.options.supportedLngs || this.isSupportedCode(s)) && (t = s); 605 }), !t && this.options.supportedLngs && e.forEach((a) => { 606 if (t) return; 607 const s = this.getScriptPartFromCode(a); 608 if (this.isSupportedCode(s)) return t = s; 609 const i = this.getLanguagePartFromCode(a); 610 if (this.isSupportedCode(i)) return t = i; 611 t = this.options.supportedLngs.find((r) => r === i ? !0 : !r.includes("-") && !i.includes("-") ? !1 : !!(r.includes("-") && !i.includes("-") && r.slice(0, r.indexOf("-")) === i || r.startsWith(i) && i.length > 1)); 612 }), t || (t = this.getFallbackCodes(this.options.fallbackLng)[0]), t; 613 } 614 getFallbackCodes(e, t) { 615 if (!e) return []; 616 if (typeof e == "function" && (e = e(t)), h(e) && (e = [e]), Array.isArray(e)) return e; 617 if (!t) return e.default || []; 618 let a = e[t]; 619 return a || (a = e[this.getScriptPartFromCode(t)]), a || (a = e[this.formatLanguageCode(t)]), a || (a = e[this.getLanguagePartFromCode(t)]), a || (a = e.default), a || []; 620 } 621 toResolveHierarchy(e, t) { 622 const a = this.getFallbackCodes((t === !1 ? [] : t) || this.options.fallbackLng || [], e), s = [], i = (r) => { 623 r && (this.isSupportedCode(r) ? s.push(r) : this.logger.warn(`rejecting language code not found in supportedLngs: ${r}`)); 624 }; 625 return h(e) && (e.includes("-") || e.includes("_")) ? (this.options.load !== "languageOnly" && i(this.formatLanguageCode(e)), this.options.load !== "languageOnly" && this.options.load !== "currentOnly" && i(this.getScriptPartFromCode(e)), this.options.load !== "currentOnly" && i(this.getLanguagePartFromCode(e))) : h(e) && i(this.formatLanguageCode(e)), a.forEach((r) => { 626 s.includes(r) || i(this.formatLanguageCode(r)); 627 }), s; 628 } 629} 630const fe = { 631 zero: 0, 632 one: 1, 633 two: 2, 634 few: 3, 635 many: 4, 636 other: 5 637}, ge = { 638 select: (n) => n === 1 ? "one" : "other", 639 resolvedOptions: () => ({ 640 pluralCategories: ["one", "other"] 641 }) 642}; 643class at { 644 constructor(e, t = {}) { 645 this.languageUtils = e, this.options = t, this.logger = R.create("pluralResolver"), this.pluralRulesCache = {}; 646 } 647 clearCache() { 648 this.pluralRulesCache = {}; 649 } 650 getRule(e, t = {}) { 651 const a = B(e === "dev" ? "en" : e), s = t.ordinal ? "ordinal" : "cardinal", i = JSON.stringify({ 652 cleanedCode: a, 653 type: s 654 }); 655 if (i in this.pluralRulesCache) 656 return this.pluralRulesCache[i]; 657 let r; 658 try { 659 r = new Intl.PluralRules(a, { 660 type: s 661 }); 662 } catch { 663 if (typeof Intl > "u") 664 return this.logger.error("No Intl support, please use an Intl polyfill!"), ge; 665 if (!e.match(/-|_/)) return ge; 666 const l = this.languageUtils.getLanguagePartFromCode(e); 667 r = this.getRule(l, t); 668 } 669 return this.pluralRulesCache[i] = r, r; 670 } 671 needsPlural(e, t = {}) { 672 let a = this.getRule(e, t); 673 return a || (a = this.getRule("dev", t)), a?.resolvedOptions().pluralCategories.length > 1; 674 } 675 getPluralFormsOfKey(e, t, a = {}) {
vendor: 4,996 bytes, lines 676-783
676 return this.getSuffixes(e, a).map((s) => `${t}${s}`); 677 } 678 getSuffixes(e, t = {}) { 679 let a = this.getRule(e, t); 680 return a || (a = this.getRule("dev", t)), a ? a.resolvedOptions().pluralCategories.sort((s, i) => fe[s] - fe[i]).map((s) => `${this.options.prepend}${t.ordinal ? `ordinal${this.options.prepend}` : ""}${s}`) : []; 681 } 682 getSuffix(e, t, a = {}) { 683 const s = this.getRule(e, a); 684 return s ? `${this.options.prepend}${a.ordinal ? `ordinal${this.options.prepend}` : ""}${s.select(t)}` : (this.logger.warn(`no plural rule found for: ${e}`), this.getSuffix("dev", t, a)); 685 } 686} 687const me = (n, e, t, a = ".", s = !0) => { 688 let i = Ge(n, e, t); 689 return !i && s && h(t) && (i = se(n, t, a), i === void 0 && (i = se(e, t, a))), i; 690}, te = (n) => n.replace(/\$/g, "$$$$"); 691class be { 692 constructor(e = {}) { 693 this.logger = R.create("interpolator"), this.options = e, this.format = e?.interpolation?.format || ((t) => t), this.init(e); 694 } 695 init(e = {}) { 696 e.interpolation || (e.interpolation = { 697 escapeValue: !0 698 }); 699 const { 700 escape: t, 701 escapeValue: a, 702 useRawValueToEscape: s, 703 prefix: i, 704 prefixEscaped: r, 705 suffix: o, 706 suffixEscaped: l, 707 formatSeparator: d, 708 unescapeSuffix: c, 709 unescapePrefix: u, 710 nestingPrefix: p, 711 nestingPrefixEscaped: g, 712 nestingSuffix: f, 713 nestingSuffixEscaped: b, 714 nestingOptionsSeparator: y, 715 maxReplaces: L, 716 alwaysFormat: v 717 } = e.interpolation; 718 this.escape = t !== void 0 ? t : _e, this.escapeValue = a !== void 0 ? a : !0, this.useRawValueToEscape = s !== void 0 ? s : !1, this.prefix = i ? T(i) : r || "{{", this.suffix = o ? T(o) : l || "}}", this.formatSeparator = d || ",", this.unescapePrefix = c ? "" : u || "-", this.unescapeSuffix = this.unescapePrefix ? "" : c || "", this.nestingPrefix = p ? T(p) : g || T("$t("), this.nestingSuffix = f ? T(f) : b || T(")"), this.nestingOptionsSeparator = y || ",", this.maxReplaces = L || 1e3, this.alwaysFormat = v !== void 0 ? v : !1, this.resetRegExp(); 719 } 720 reset() { 721 this.options && this.init(this.options); 722 } 723 resetRegExp() { 724 const e = (t, a) => t?.source === a ? (t.lastIndex = 0, t) : new RegExp(a, "g"); 725 this.regexp = e(this.regexp, `${this.prefix}(.+?)${this.suffix}`), this.regexpUnescape = e(this.regexpUnescape, `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`), this.nestingRegexp = e(this.nestingRegexp, `${this.nestingPrefix}((?:[^()"']+|"[^"]*"|'[^']*'|\\((?:[^()]|"[^"]*"|'[^']*')*\\))*?)${this.nestingSuffix}`); 726 } 727 interpolate(e, t, a, s) { 728 let i, r, o; 729 const l = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {}, d = (g) => { 730 if (!g.includes(this.formatSeparator)) { 731 const L = me(t, l, g, this.options.keySeparator, this.options.ignoreJSONStructure); 732 return this.alwaysFormat ? this.format(L, void 0, a, { 733 ...s, 734 ...t, 735 interpolationkey: g 736 }) : L; 737 } 738 const f = g.split(this.formatSeparator), b = f.shift().trim(), y = f.join(this.formatSeparator).trim(); 739 return this.format(me(t, l, b, this.options.keySeparator, this.options.ignoreJSONStructure), y, a, { 740 ...s, 741 ...t, 742 interpolationkey: b 743 }); 744 }; 745 this.resetRegExp(); 746 const c = s?.missingInterpolationHandler || this.options.missingInterpolationHandler, u = s?.interpolation?.skipOnVariables !== void 0 ? s.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables; 747 return [{ 748 regex: this.regexpUnescape, 749 safeValue: (g) => te(g) 750 }, { 751 regex: this.regexp, 752 safeValue: (g) => this.escapeValue ? te(this.escape(g)) : te(g) 753 }].forEach((g) => { 754 for (o = 0; i = g.regex.exec(e); ) { 755 const f = i[1].trim(); 756 if (r = d(f), r === void 0) 757 if (typeof c == "function") { 758 const y = c(e, i, s); 759 r = h(y) ? y : ""; 760 } else if (s && Object.prototype.hasOwnProperty.call(s, f)) 761 r = ""; 762 else if (u) { 763 r = i[0]; 764 continue; 765 } else 766 this.logger.warn(`missed to pass in variable ${f} for interpolating ${e}`), r = ""; 767 else !h(r) && !this.useRawValueToEscape && (r = le(r)); 768 const b = g.safeValue(r); 769 if (e = e.replace(i[0], b), u ? (g.regex.lastIndex += r.length, g.regex.lastIndex -= i[0].length) : g.regex.lastIndex = 0, o++, o >= this.maxReplaces) 770 break; 771 } 772 }), e; 773 } 774 nest(e, t, a = {}) { 775 let s, i, r; 776 const o = (l, d) => { 777 const c = this.nestingOptionsSeparator; 778 if (!l.includes(c)) return l; 779 const u = l.split(new RegExp(`${T(c)}[ ]*{`)); 780 let p = `{${u[1]}`; 781 l = u[0], p = this.interpolate(p, r); 782 const g = p.match(/'/g), f = p.match(/"/g); 783 ((g?.length ?? 0) % 2 === 0 && !f || (f?.length ?? 0) % 2 !== 0) && (p = p.replace(/'/g, '"'));
vendor: 15,936 bytes, lines 784-1182
784 try { 785 r = JSON.parse(p), d && (r = { 786 ...d, 787 ...r 788 }); 789 } catch (b) { 790 return this.logger.warn(`failed parsing options string in nesting for key ${l}`, b), `${l}${c}${p}`; 791 } 792 return r.defaultValue && r.defaultValue.includes(this.prefix) && delete r.defaultValue, l; 793 }; 794 for (; s = this.nestingRegexp.exec(e); ) { 795 let l = []; 796 r = { 797 ...a 798 }, r = r.replace && !h(r.replace) ? r.replace : r, r.applyPostProcessor = !1, delete r.defaultValue; 799 const d = /{.*}/.test(s[1]) ? s[1].lastIndexOf("}") + 1 : s[1].indexOf(this.formatSeparator); 800 if (d !== -1 && (l = s[1].slice(d).split(this.formatSeparator).map((c) => c.trim()).filter(Boolean), s[1] = s[1].slice(0, d)), i = t(o.call(this, s[1].trim(), r), r), i && s[0] === e && !h(i)) return i; 801 h(i) || (i = le(i)), i || (this.logger.warn(`missed to resolve ${s[1]} for nesting ${e}`), i = ""), l.length && (i = l.reduce((c, u) => this.format(c, u, a.lng, { 802 ...a, 803 interpolationkey: s[1].trim() 804 }), i.trim())), e = e.replace(s[0], i), this.regexp.lastIndex = 0; 805 } 806 return e; 807 } 808} 809const st = (n) => { 810 let e = n.toLowerCase().trim(); 811 const t = {}; 812 if (n.includes("(")) { 813 const a = n.split("("); 814 e = a[0].toLowerCase().trim(); 815 const s = a[1].slice(0, -1); 816 e === "currency" && !s.includes(":") ? t.currency || (t.currency = s.trim()) : e === "relativetime" && !s.includes(":") ? t.range || (t.range = s.trim()) : s.split(";").forEach((r) => { 817 if (r) { 818 const [o, ...l] = r.split(":"), d = l.join(":").trim().replace(/^'+|'+$/g, ""), c = o.trim(); 819 t[c] || (t[c] = d), d === "false" && (t[c] = !1), d === "true" && (t[c] = !0), isNaN(d) || (t[c] = parseInt(d, 10)); 820 } 821 }); 822 } 823 return { 824 formatName: e, 825 formatOptions: t 826 }; 827}, ve = (n) => { 828 const e = {}; 829 return (t, a, s) => { 830 let i = s; 831 s && s.interpolationkey && s.formatParams && s.formatParams[s.interpolationkey] && s[s.interpolationkey] && (i = { 832 ...i, 833 [s.interpolationkey]: void 0 834 }); 835 const r = a + JSON.stringify(i); 836 let o = e[r]; 837 return o || (o = n(B(a), s), e[r] = o), o(t); 838 }; 839}, it = (n) => (e, t, a) => n(B(t), a)(e); 840class nt { 841 constructor(e = {}) { 842 this.logger = R.create("formatter"), this.options = e, this.init(e); 843 } 844 init(e, t = { 845 interpolation: {} 846 }) { 847 this.formatSeparator = t.interpolation.formatSeparator || ","; 848 const a = t.cacheInBuiltFormats ? ve : it; 849 this.formats = { 850 number: a((s, i) => { 851 const r = new Intl.NumberFormat(s, { 852 ...i 853 }); 854 return (o) => r.format(o); 855 }), 856 currency: a((s, i) => { 857 const r = new Intl.NumberFormat(s, { 858 ...i, 859 style: "currency" 860 }); 861 return (o) => r.format(o); 862 }), 863 datetime: a((s, i) => { 864 const r = new Intl.DateTimeFormat(s, { 865 ...i 866 }); 867 return (o) => r.format(o); 868 }), 869 relativetime: a((s, i) => { 870 const r = new Intl.RelativeTimeFormat(s, { 871 ...i 872 }); 873 return (o) => r.format(o, i.range || "day"); 874 }), 875 list: a((s, i) => { 876 const r = new Intl.ListFormat(s, { 877 ...i 878 }); 879 return (o) => r.format(o); 880 }) 881 }; 882 } 883 add(e, t) { 884 this.formats[e.toLowerCase().trim()] = t; 885 } 886 addCached(e, t) { 887 this.formats[e.toLowerCase().trim()] = ve(t); 888 } 889 format(e, t, a, s = {}) { 890 if (!t || e == null) return e; 891 const i = t.split(this.formatSeparator); 892 if (i.length > 1 && i[0].indexOf("(") > 1 && !i[0].includes(")") && i.find((o) => o.includes(")"))) { 893 const o = i.findIndex((l) => l.includes(")")); 894 i[0] = [i[0], ...i.splice(1, o)].join(this.formatSeparator); 895 } 896 return i.reduce((o, l) => { 897 const { 898 formatName: d, 899 formatOptions: c 900 } = st(l); 901 if (this.formats[d]) { 902 let u = o; 903 try { 904 const p = s?.formatParams?.[s.interpolationkey] || {}, g = p.locale || p.lng || s.locale || s.lng || a; 905 u = this.formats[d](o, g, { 906 ...c, 907 ...s, 908 ...p 909 }); 910 } catch (p) { 911 this.logger.warn(p); 912 } 913 return u; 914 } else 915 this.logger.warn(`there was no format function for ${d}`); 916 return o; 917 }, e); 918 } 919} 920const rt = (n, e) => { 921 n.pending[e] !== void 0 && (delete n.pending[e], n.pendingCount--); 922}; 923class ot extends Z { 924 constructor(e, t, a, s = {}) { 925 super(), this.backend = e, this.store = t, this.services = a, this.languageUtils = a.languageUtils, this.options = s, this.logger = R.create("backendConnector"), this.waitingReads = [], this.maxParallelReads = s.maxParallelReads || 10, this.readingCalls = 0, this.maxRetries = s.maxRetries >= 0 ? s.maxRetries : 5, this.retryTimeout = s.retryTimeout >= 1 ? s.retryTimeout : 350, this.state = {}, this.queue = [], this.backend?.init?.(a, s.backend, s); 926 } 927 queueLoad(e, t, a, s) { 928 const i = {}, r = {}, o = {}, l = {}; 929 return e.forEach((d) => { 930 let c = !0; 931 t.forEach((u) => { 932 const p = `${d}|${u}`; 933 !a.reload && this.store.hasResourceBundle(d, u) ? this.state[p] = 2 : this.state[p] < 0 || (this.state[p] === 1 ? r[p] === void 0 && (r[p] = !0) : (this.state[p] = 1, c = !1, r[p] === void 0 && (r[p] = !0), i[p] === void 0 && (i[p] = !0), l[u] === void 0 && (l[u] = !0))); 934 }), c || (o[d] = !0); 935 }), (Object.keys(i).length || Object.keys(r).length) && this.queue.push({ 936 pending: r, 937 pendingCount: Object.keys(r).length, 938 loaded: {}, 939 errors: [], 940 callback: s 941 }), { 942 toLoad: Object.keys(i), 943 pending: Object.keys(r), 944 toLoadLanguages: Object.keys(o), 945 toLoadNamespaces: Object.keys(l) 946 }; 947 } 948 loaded(e, t, a) { 949 const s = e.split("|"), i = s[0], r = s[1]; 950 t && this.emit("failedLoading", i, r, t), !t && a && this.store.addResourceBundle(i, r, a, void 0, void 0, { 951 skipCopy: !0 952 }), this.state[e] = t ? -1 : 2, t && a && (this.state[e] = 0); 953 const o = {}; 954 this.queue.forEach((l) => { 955 We(l.loaded, [i], r), rt(l, e), t && l.errors.push(t), l.pendingCount === 0 && !l.done && (Object.keys(l.loaded).forEach((d) => { 956 o[d] || (o[d] = {}); 957 const c = l.loaded[d]; 958 c.length && c.forEach((u) => { 959 o[d][u] === void 0 && (o[d][u] = !0); 960 }); 961 }), l.done = !0, l.errors.length ? l.callback(l.errors) : l.callback()); 962 }), this.emit("loaded", o), this.queue = this.queue.filter((l) => !l.done); 963 } 964 read(e, t, a, s = 0, i = this.retryTimeout, r) { 965 if (!e.length) return r(null, {}); 966 if (this.readingCalls >= this.maxParallelReads) { 967 this.waitingReads.push({ 968 lng: e, 969 ns: t, 970 fcName: a, 971 tried: s, 972 wait: i, 973 callback: r 974 }); 975 return; 976 } 977 this.readingCalls++; 978 const o = (d, c) => { 979 if (this.readingCalls--, this.waitingReads.length > 0) { 980 const u = this.waitingReads.shift(); 981 this.read(u.lng, u.ns, u.fcName, u.tried, u.wait, u.callback); 982 } 983 if (d && c && s < this.maxRetries) { 984 setTimeout(() => { 985 this.read(e, t, a, s + 1, i * 2, r); 986 }, i); 987 return; 988 } 989 r(d, c); 990 }, l = this.backend[a].bind(this.backend); 991 if (l.length === 2) { 992 try { 993 const d = l(e, t); 994 d && typeof d.then == "function" ? d.then((c) => o(null, c)).catch(o) : o(null, d); 995 } catch (d) { 996 o(d); 997 } 998 return; 999 } 1000 return l(e, t, o); 1001 } 1002 prepareLoading(e, t, a = {}, s) { 1003 if (!this.backend) 1004 return this.logger.warn("No backend was added via i18next.use. Will not load resources."), s && s(); 1005 h(e) && (e = this.languageUtils.toResolveHierarchy(e)), h(t) && (t = [t]); 1006 const i = this.queueLoad(e, t, a, s); 1007 if (!i.toLoad.length) 1008 return i.pending.length || s(), null; 1009 i.toLoad.forEach((r) => { 1010 this.loadOne(r); 1011 }); 1012 } 1013 load(e, t, a) { 1014 this.prepareLoading(e, t, {}, a); 1015 } 1016 reload(e, t, a) { 1017 this.prepareLoading(e, t, { 1018 reload: !0 1019 }, a); 1020 } 1021 loadOne(e, t = "") { 1022 const a = e.split("|"), s = a[0], i = a[1]; 1023 this.read(s, i, "read", void 0, void 0, (r, o) => { 1024 r && this.logger.warn(`${t}loading namespace ${i} for language ${s} failed`, r), !r && o && this.logger.log(`${t}loaded namespace ${i} for language ${s}`, o), this.loaded(e, r, o); 1025 }); 1026 } 1027 saveMissing(e, t, a, s, i, r = {}, o = () => { 1028 }) { 1029 if (this.services?.utils?.hasLoadedNamespace && !this.services?.utils?.hasLoadedNamespace(t)) { 1030 this.logger.warn(`did not save key "${a}" as the namespace "${t}" was not yet loaded`, "This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!"); 1031 return; 1032 } 1033 if (!(a == null || a === "")) { 1034 if (this.backend?.create) { 1035 const l = { 1036 ...r, 1037 isUpdate: i 1038 }, d = this.backend.create.bind(this.backend); 1039 if (d.length < 6) 1040 try { 1041 let c; 1042 d.length === 5 ? c = d(e, t, a, s, l) : c = d(e, t, a, s), c && typeof c.then == "function" ? c.then((u) => o(null, u)).catch(o) : o(null, c); 1043 } catch (c) { 1044 o(c); 1045 } 1046 else 1047 d(e, t, a, s, o, l); 1048 } 1049 !e || !e[0] || this.store.addResource(e[0], t, a, s); 1050 } 1051 } 1052} 1053const ae = () => ({ 1054 debug: !1, 1055 initAsync: !0, 1056 ns: ["translation"], 1057 defaultNS: ["translation"], 1058 fallbackLng: ["dev"], 1059 fallbackNS: !1, 1060 supportedLngs: !1, 1061 nonExplicitSupportedLngs: !1, 1062 load: "all", 1063 preload: !1, 1064 keySeparator: ".", 1065 nsSeparator: ":", 1066 pluralSeparator: "_", 1067 contextSeparator: "_", 1068 partialBundledLanguages: !1, 1069 saveMissing: !1, 1070 updateMissing: !1, 1071 saveMissingTo: "fallback", 1072 saveMissingPlurals: !0, 1073 missingKeyHandler: !1, 1074 missingInterpolationHandler: !1, 1075 postProcess: !1, 1076 postProcessPassResolved: !1, 1077 returnNull: !1, 1078 returnEmptyString: !0, 1079 returnObjects: !1, 1080 joinArrays: !1, 1081 returnedObjectHandler: !1, 1082 parseMissingKeyHandler: !1, 1083 appendNamespaceToMissingKey: !1, 1084 appendNamespaceToCIMode: !1, 1085 overloadTranslationOptionHandler: (n) => { 1086 let e = {}; 1087 if (typeof n[1] == "object" && (e = n[1]), h(n[1]) && (e.defaultValue = n[1]), h(n[2]) && (e.tDescription = n[2]), typeof n[2] == "object" || typeof n[3] == "object") { 1088 const t = n[3] || n[2]; 1089 Object.keys(t).forEach((a) => { 1090 e[a] = t[a]; 1091 }); 1092 } 1093 return e; 1094 }, 1095 interpolation: { 1096 escapeValue: !0, 1097 prefix: "{{", 1098 suffix: "}}", 1099 formatSeparator: ",", 1100 unescapePrefix: "-", 1101 nestingPrefix: "$t(", 1102 nestingSuffix: ")", 1103 nestingOptionsSeparator: ",", 1104 maxReplaces: 1e3, 1105 skipOnVariables: !0 1106 }, 1107 cacheInBuiltFormats: !0 1108}), ye = (n) => (h(n.ns) && (n.ns = [n.ns]), h(n.fallbackLng) && (n.fallbackLng = [n.fallbackLng]), h(n.fallbackNS) && (n.fallbackNS = [n.fallbackNS]), n.supportedLngs && !n.supportedLngs.includes("cimode") && (n.supportedLngs = n.supportedLngs.concat(["cimode"])), n), J = () => { 1109}, lt = (n) => { 1110 Object.getOwnPropertyNames(Object.getPrototypeOf(n)).forEach((t) => { 1111 typeof n[t] == "function" && (n[t] = n[t].bind(n)); 1112 }); 1113}; 1114class H extends Z { 1115 constructor(e = {}, t) { 1116 if (super(), this.options = ye(e), this.services = {}, this.logger = R, this.modules = { 1117 external: [] 1118 }, lt(this), t && !this.isInitialized && !e.isClone) { 1119 if (!this.options.initAsync) 1120 return this.init(e, t), this; 1121 setTimeout(() => { 1122 this.init(e, t); 1123 }, 0); 1124 } 1125 } 1126 init(e = {}, t) { 1127 this.isInitializing = !0, typeof e == "function" && (t = e, e = {}), e.defaultNS == null && e.ns && (h(e.ns) ? e.defaultNS = e.ns : e.ns.includes("translation") || (e.defaultNS = e.ns[0])); 1128 const a = ae(); 1129 this.options = { 1130 ...a, 1131 ...this.options, 1132 ...ye(e) 1133 }, this.options.interpolation = { 1134 ...a.interpolation, 1135 ...this.options.interpolation 1136 }, e.keySeparator !== void 0 && (this.options.userDefinedKeySeparator = e.keySeparator), e.nsSeparator !== void 0 && (this.options.userDefinedNsSeparator = e.nsSeparator), typeof this.options.overloadTranslationOptionHandler != "function" && (this.options.overloadTranslationOptionHandler = a.overloadTranslationOptionHandler); 1137 const s = (d) => d ? typeof d == "function" ? new d() : d : null; 1138 if (!this.options.isClone) { 1139 this.modules.logger ? R.init(s(this.modules.logger), this.options) : R.init(null, this.options); 1140 let d; 1141 this.modules.formatter ? d = this.modules.formatter : d = nt; 1142 const c = new he(this.options); 1143 this.store = new pe(this.options.resources, this.options); 1144 const u = this.services; 1145 u.logger = R, u.resourceStore = this.store, u.languageUtils = c, u.pluralResolver = new at(c, { 1146 prepend: this.options.pluralSeparator 1147 }), d && (u.formatter = s(d), u.formatter.init && u.formatter.init(u, this.options), this.options.interpolation.format = u.formatter.format.bind(u.formatter)), u.interpolator = new be(this.options), u.utils = { 1148 hasLoadedNamespace: this.hasLoadedNamespace.bind(this) 1149 }, u.backendConnector = new ot(s(this.modules.backend), u.resourceStore, u, this.options), u.backendConnector.on("*", (p, ...g) => { 1150 this.emit(p, ...g); 1151 }), this.modules.languageDetector && (u.languageDetector = s(this.modules.languageDetector), u.languageDetector.init && u.languageDetector.init(u, this.options.detection, this.options)), this.modules.i18nFormat && (u.i18nFormat = s(this.modules.i18nFormat), u.i18nFormat.init && u.i18nFormat.init(this)), this.translator = new Q(this.services, this.options), this.translator.on("*", (p, ...g) => { 1152 this.emit(p, ...g); 1153 }), this.modules.external.forEach((p) => { 1154 p.init && p.init(this); 1155 }); 1156 } 1157 if (this.format = this.options.interpolation.format, t || (t = J), this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) { 1158 const d = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng); 1159 d.length > 0 && d[0] !== "dev" && (this.options.lng = d[0]); 1160 } 1161 !this.services.languageDetector && !this.options.lng && this.logger.warn("init: no languageDetector is used and no lng is defined"), ["getResource", "hasResourceBundle", "getResourceBundle", "getDataByLanguage"].forEach((d) => { 1162 this[d] = (...c) => this.store[d](...c); 1163 }), ["addResource", "addResources", "addResourceBundle", "removeResourceBundle"].forEach((d) => { 1164 this[d] = (...c) => (this.store[d](...c), this); 1165 }); 1166 const o = M(), l = () => { 1167 const d = (c, u) => { 1168 this.isInitializing = !1, this.isInitialized && !this.initializedStoreOnce && this.logger.warn("init: i18next is already initialized. You should call init just once!"), this.isInitialized = !0, this.options.isClone || this.logger.log("initialized", this.options), this.emit("initialized", this.options), o.resolve(u), t(c, u); 1169 }; 1170 if (this.languages && !this.isInitialized) return d(null, this.t.bind(this)); 1171 this.changeLanguage(this.options.lng, d); 1172 }; 1173 return this.options.resources || !this.options.initAsync ? l() : setTimeout(l, 0), o; 1174 } 1175 loadResources(e, t = J) { 1176 let a = t; 1177 const s = h(e) ? e : this.language; 1178 if (typeof e == "function" && (a = e), !this.options.resources || this.options.partialBundledLanguages) { 1179 if (s?.toLowerCase() === "cimode" && (!this.options.preload || this.options.preload.length === 0)) return a(); 1180 const i = [], r = (o) => { 1181 if (!o || o === "cimode") return; 1182 this.services.languageUtils.toResolveHierarchy(o).forEac
vendor: 6,277 bytes, lines 1182-1292
1182h((d) => { 1183 d !== "cimode" && (i.includes(d) || i.push(d)); 1184 }); 1185 }; 1186 s ? r(s) : this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach((l) => r(l)), this.options.preload?.forEach?.((o) => r(o)), this.services.backendConnector.load(i, this.options.ns, (o) => { 1187 !o && !this.resolvedLanguage && this.language && this.setResolvedLanguage(this.language), a(o); 1188 }); 1189 } else 1190 a(null); 1191 } 1192 reloadResources(e, t, a) { 1193 const s = M(); 1194 return typeof e == "function" && (a = e, e = void 0), typeof t == "function" && (a = t, t = void 0), e || (e = this.languages), t || (t = this.options.ns), a || (a = J), this.services.backendConnector.reload(e, t, (i) => { 1195 s.resolve(), a(i); 1196 }), s; 1197 } 1198 use(e) { 1199 if (!e) throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()"); 1200 if (!e.type) throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()"); 1201 return e.type === "backend" && (this.modules.backend = e), (e.type === "logger" || e.log && e.warn && e.error) && (this.modules.logger = e), e.type === "languageDetector" && (this.modules.languageDetector = e), e.type === "i18nFormat" && (this.modules.i18nFormat = e), e.type === "postProcessor" && Pe.addPostProcessor(e), e.type === "formatter" && (this.modules.formatter = e), e.type === "3rdParty" && this.modules.external.push(e), this; 1202 } 1203 setResolvedLanguage(e) { 1204 if (!(!e || !this.languages) && !["cimode", "dev"].includes(e)) { 1205 for (let t = 0; t < this.languages.length; t++) { 1206 const a = this.languages[t]; 1207 if (!["cimode", "dev"].includes(a) && this.store.hasLanguageSomeTranslations(a)) { 1208 this.resolvedLanguage = a; 1209 break; 1210 } 1211 } 1212 !this.resolvedLanguage && !this.languages.includes(e) && this.store.hasLanguageSomeTranslations(e) && (this.resolvedLanguage = e, this.languages.unshift(e)); 1213 } 1214 } 1215 changeLanguage(e, t) { 1216 this.isLanguageChangingTo = e; 1217 const a = M(); 1218 this.emit("languageChanging", e); 1219 const s = (o) => { 1220 this.language = o, this.languages = this.services.languageUtils.toResolveHierarchy(o), this.resolvedLanguage = void 0, this.setResolvedLanguage(o); 1221 }, i = (o, l) => { 1222 l ? this.isLanguageChangingTo === e && (s(l), this.translator.changeLanguage(l), this.isLanguageChangingTo = void 0, this.emit("languageChanged", l), this.logger.log("languageChanged", l)) : this.isLanguageChangingTo = void 0, a.resolve((...d) => this.t(...d)), t && t(o, (...d) => this.t(...d)); 1223 }, r = (o) => { 1224 !e && !o && this.services.languageDetector && (o = []); 1225 const l = h(o) ? o : o && o[0], d = this.store.hasLanguageSomeTranslations(l) ? l : this.services.languageUtils.getBestMatchFromCodes(h(o) ? [o] : o); 1226 d && (this.language || s(d), this.translator.language || this.translator.changeLanguage(d), this.services.languageDetector?.cacheUserLanguage?.(d)), this.loadResources(d, (c) => { 1227 i(c, d); 1228 }); 1229 }; 1230 return !e && this.services.languageDetector && !this.services.languageDetector.async ? r(this.services.languageDetector.detect()) : !e && this.services.languageDetector && this.services.languageDetector.async ? this.services.languageDetector.detect.length === 0 ? this.services.languageDetector.detect().then(r) : this.services.languageDetector.detect(r) : r(e), a; 1231 } 1232 getFixedT(e, t, a) { 1233 const s = (i, r, ...o) => { 1234 let l; 1235 typeof r != "object" ? l = this.options.overloadTranslationOptionHandler([i, r].concat(o)) : l = { 1236 ...r 1237 }, l.lng = l.lng || s.lng, l.lngs = l.lngs || s.lngs, l.ns = l.ns || s.ns, l.keyPrefix !== "" && (l.keyPrefix = l.keyPrefix || a || s.keyPrefix); 1238 const d = { 1239 ...this.options, 1240 ...l 1241 }; 1242 typeof l.keyPrefix == "function" && (l.keyPrefix = U(l.keyPrefix, d)); 1243 const c = this.options.keySeparator || "."; 1244 let u; 1245 return l.keyPrefix && Array.isArray(i) ? u = i.map((p) => (typeof p == "function" && (p = U(p, d)), `${l.keyPrefix}${c}${p}`)) : (typeof i == "function" && (i = U(i, d)), u = l.keyPrefix ? `${l.keyPrefix}${c}${i}` : i), this.t(u, l); 1246 }; 1247 return h(e) ? s.lng = e : s.lngs = e, s.ns = t, s.keyPrefix = a, s; 1248 } 1249 t(...e) { 1250 return this.translator?.translate(...e); 1251 } 1252 exists(...e) { 1253 return this.translator?.exists(...e); 1254 } 1255 setDefaultNamespace(e) { 1256 this.options.defaultNS = e; 1257 } 1258 hasLoadedNamespace(e, t = {}) { 1259 if (!this.isInitialized) 1260 return this.logger.warn("hasLoadedNamespace: i18next was not initialized", this.languages), !1; 1261 if (!this.languages || !this.languages.length) 1262 return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty", this.languages), !1; 1263 const a = t.lng || this.resolvedLanguage || this.languages[0], s = this.options ? this.options.fallbackLng : !1, i = this.languages[this.languages.length - 1]; 1264 if (a.toLowerCase() === "cimode") return !0; 1265 const r = (o, l) => { 1266 const d = this.services.backendConnector.state[`${o}|${l}`]; 1267 return d === -1 || d === 0 || d === 2; 1268 }; 1269 if (t.precheck) { 1270 const o = t.precheck(this, r); 1271 if (o !== void 0) return o; 1272 } 1273 return !!(this.hasResourceBundle(a, e) || !this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages || r(a, e) && (!s || r(i, e))); 1274 } 1275 loadNamespaces(e, t) { 1276 const a = M(); 1277 return this.options.ns ? (h(e) && (e = [e]), e.forEach((s) => { 1278 this.options.ns.includes(s) || this.options.ns.push(s); 1279 }), this.loadResources((s) => { 1280 a.resolve(), t && t(s); 1281 }), a) : (t && t(), Promise.resolve()); 1282 } 1283 loadLanguages(e, t) { 1284 const a = M(); 1285 h(e) && (e = [e]); 1286 const s = this.options.preload || [], i = e.filter((r) => !s.includes(r) && this.services.languageUtils.isSupportedCode(r)); 1287 return i.length ? (this.options.preload = s.concat(i), this.loadResources((r) => { 1288 a.resolve(), t && t(r); 1289 }), a) : (t && t(), Promise.resolve()); 1290 } 1291 dir(e) { 1292 if (e || (e = this.resolvedLanguage || (this.languages?.length > 0 ? this.languages[0] : this.language)), !e) return "rtl";
vendor: 3,889 bytes, lines 1293-1404
1293 try { 1294 const s = new Intl.Locale(e); 1295 if (s && s.getTextInfo) { 1296 const i = s.getTextInfo(); 1297 if (i && i.direction) return i.direction; 1298 } 1299 } catch { 1300 } 1301 const t = ["ar", "shu", "sqr", "ssh", "xaa", "yhd", "yud", "aao", "abh", "abv", "acm", "acq", "acw", "acx", "acy", "adf", "ads", "aeb", "aec", "afb", "ajp", "apc", "apd", "arb", "arq", "ars", "ary", "arz", "auz", "avl", "ayh", "ayl", "ayn", "ayp", "bbz", "pga", "he", "iw", "ps", "pbt", "pbu", "pst", "prp", "prd", "ug", "ur", "ydd", "yds", "yih", "ji", "yi", "hbo", "men", "xmn", "fa", "jpr", "peo", "pes", "prs", "dv", "sam", "ckb"], a = this.services?.languageUtils || new he(ae()); 1302 return e.toLowerCase().indexOf("-latn") > 1 ? "ltr" : t.includes(a.getLanguagePartFromCode(e)) || e.toLowerCase().indexOf("-arab") > 1 ? "rtl" : "ltr"; 1303 } 1304 static createInstance(e = {}, t) { 1305 const a = new H(e, t); 1306 return a.createInstance = H.createInstance, a; 1307 } 1308 cloneInstance(e = {}, t = J) { 1309 const a = e.forkResourceStore; 1310 a && delete e.forkResourceStore; 1311 const s = { 1312 ...this.options, 1313 ...e, 1314 isClone: !0 1315 }, i = new H(s); 1316 if ((e.debug !== void 0 || e.prefix !== void 0) && (i.logger = i.logger.clone(e)), ["store", "services", "language"].forEach((o) => { 1317 i[o] = this[o]; 1318 }), i.services = { 1319 ...this.services 1320 }, i.services.utils = { 1321 hasLoadedNamespace: i.hasLoadedNamespace.bind(i) 1322 }, a) { 1323 const o = Object.keys(this.store.data).reduce((l, d) => (l[d] = { 1324 ...this.store.data[d] 1325 }, l[d] = Object.keys(l[d]).reduce((c, u) => (c[u] = { 1326 ...l[d][u] 1327 }, c), l[d]), l), {}); 1328 i.store = new pe(o, s), i.services.resourceStore = i.store; 1329 } 1330 if (e.interpolation) { 1331 const l = { 1332 ...ae().interpolation, 1333 ...this.options.interpolation, 1334 ...e.interpolation 1335 }, d = { 1336 ...s, 1337 interpolation: l 1338 }; 1339 i.services.interpolator = new be(d); 1340 } 1341 return i.translator = new Q(i.services, s), i.translator.on("*", (o, ...l) => { 1342 i.emit(o, ...l); 1343 }), i.init(s, t), i.translator.options = s, i.translator.backendConnector.services.utils = { 1344 hasLoadedNamespace: i.hasLoadedNamespace.bind(i) 1345 }, i; 1346 } 1347 toJSON() { 1348 return { 1349 options: this.options, 1350 store: this.store, 1351 language: this.language, 1352 languages: this.languages, 1353 resolvedLanguage: this.resolvedLanguage 1354 }; 1355 } 1356} 1357const m = H.createInstance(); 1358m.createInstance; 1359m.dir; 1360m.init; 1361m.loadResources; 1362m.reloadResources; 1363m.use; 1364m.changeLanguage; 1365m.getFixedT; 1366m.t; 1367m.exists; 1368m.setDefaultNamespace; 1369m.hasLoadedNamespace; 1370m.loadNamespaces; 1371m.loadLanguages; 1372const { 1373 slice: dt, 1374 forEach: ut 1375} = []; 1376function ct(n) { 1377 return ut.call(dt.call(arguments, 1), (e) => { 1378 if (e) 1379 for (const t in e) 1380 n[t] === void 0 && (n[t] = e[t]); 1381 }), n; 1382} 1383function pt(n) { 1384 return typeof n != "string" ? !1 : [/<\s*script.*?>/i, /<\s*\/\s*script\s*>/i, /<\s*img.*?on\w+\s*=/i, /<\s*\w+\s*on\w+\s*=.*?>/i, /javascript\s*:/i, /vbscript\s*:/i, /expression\s*\(/i, /eval\s*\(/i, /alert\s*\(/i, /document\.cookie/i, /document\.write\s*\(/i, /window\.location/i, /innerHTML/i].some((t) => t.test(n)); 1385} 1386const we = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/, ht = function(n, e) { 1387 const a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : { 1388 path: "/" 1389 }, s = encodeURIComponent(e); 1390 let i = `${n}=${s}`; 1391 if (a.maxAge > 0) { 1392 const r = a.maxAge - 0; 1393 if (Number.isNaN(r)) throw new Error("maxAge should be a Number"); 1394 i += `; Max-Age=${Math.floor(r)}`; 1395 } 1396 if (a.domain) { 1397 if (!we.test(a.domain)) 1398 throw new TypeError("option domain is invalid"); 1399 i += `; Domain=${a.domain}`; 1400 } 1401 if (a.path) { 1402 if (!we.test(a.path)) 1403 throw new TypeError("option path is invalid"); 1404 i += `; Path=${a.path}`;
1405 } 1406 if (a.expires) { 1407 if (typeof a.expires.toUTCString != "function") 1408 throw new TypeError("option expires is invalid"); 1409 i += `; Expires=${a.expires.toUTCString()}`; 1410 } 1411 if (a.httpOnly && (i += "; HttpOnly"), a.secure && (i += "; Secure"), a.sameSite) 1412 switch (typeof a.sameSite == "string" ? a.sameSite.toLowerCase() : a.sameSite) { 1413 case !0: 1414 i += "; SameSite=Strict"; 1415 break; 1416 case "lax": 1417 i += "; SameSite=Lax"; 1418 break; 1419 case "strict": 1420 i += "; SameSite=Strict"; 1421 break; 1422 case "none": 1423 i += "; SameSite=None"; 1424 break; 1425 default: 1426 throw new TypeError("option sameSite is invalid"); 1427 } 1428 return a.partitioned && (i += "; Partitioned"), i; 1429}, xe = { 1430 create(n, e, t, a) { 1431 let s = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : { 1432 path: "/", 1433 sameSite: "strict" 1434 }; 1435 t && (s.expires = /* @__PURE__ */ new Date(), s.expires.setTime(s.expires.getTime() + t * 60 * 1e3)), a && (s.domain = a), document.cookie = ht(n, e, s); 1436 }, 1437 read(n) { 1438 const e = `${n}=`, t = document.cookie.split(";"); 1439 for (let a = 0; a < t.length; a++) { 1440 let s = t[a]; 1441 for (; s.charAt(0) === " "; ) s = s.substring(1, s.length); 1442 if (s.indexOf(e) === 0) return s.substring(e.length, s.length); 1443 } 1444 return null; 1445 }, 1446 remove(n, e) { 1447 this.create(n, "", -1, e); 1448 } 1449}; 1450var ft = { 1451 name: "cookie", 1452 // Deconstruct the options object and extract the lookupCookie property 1453 lookup(n) { 1454 let { 1455 lookupCookie: e 1456 } = n; 1457 if (e && typeof document < "u") 1458 return xe.read(e) || void 0; 1459 }, 1460 // Deconstruct the options object and extract the lookupCookie, cookieMinutes, cookieDomain, and cookieOptions properties 1461 cacheUserLanguage(n, e) { 1462 let { 1463 lookupCookie: t, 1464 cookieMinutes: a, 1465 cookieDomain: s, 1466 cookieOptions: i 1467 } = e; 1468 t && typeof document < "u" && xe.create(t, n, a, s, i); 1469 } 1470}, gt = { 1471 name: "querystring", 1472 // Deconstruct the options object and extract the lookupQuerystring property 1473 lookup(n) { 1474 let { 1475 lookupQuerystring: e 1476 } = n, t; 1477 if (typeof window < "u") { 1478 let { 1479 search: a 1480 } = window.location; 1481 !window.location.search && window.location.hash?.indexOf("?") > -1 && (a = window.location.hash.substring(window.location.hash.indexOf("?"))); 1482 const i = a.substring(1).split("&"); 1483 for (let r = 0; r < i.length; r++) { 1484 const o = i[r].indexOf("="); 1485 o > 0 && i[r].substring(0, o) === e && (t = i[r].substring(o + 1)); 1486 } 1487 } 1488 return t; 1489 } 1490}, mt = { 1491 name: "hash", 1492 // Deconstruct the options object and extract the lookupHash property and the lookupFromHashIndex property 1493 lookup(n) { 1494 let { 1495 lookupHash: e, 1496 lookupFromHashIndex: t 1497 } = n, a; 1498 if (typeof window < "u") { 1499 const { 1500 hash: s 1501 } = window.location; 1502 if (s && s.length > 2) { 1503 const i = s.substring(1); 1504 if (e) { 1505 const r = i.split("&"); 1506 for (let o = 0; o < r.length; o++) { 1507 const l = r[o].indexOf("="); 1508 l > 0 && r[o].substring(0, l) === e && (a = r[o].substring(l + 1)); 1509 } 1510 } 1511 if (a) return a; 1512 if (!a && t > -1) { 1513 const r = s.match(/\/([a-zA-Z-]*)/g); 1514 return Array.isArray(r) ? r[typeof t == "number" ? t : 0]?.replace("/", "") : void 0; 1515 } 1516 } 1517 } 1518 return a; 1519 } 1520}; 1521let I = null; 1522const Se = () => { 1523 if (I !== null) return I; 1524 try { 1525 if (I = typeof window < "u" && window.localStorage !== null, !I) 1526 return !1; 1527 const n = "i18next.translate.boo"; 1528 window.localStorage.setItem(n, "foo"), window.localStorage.removeItem(n); 1529 } catch { 1530 I = !1; 1531 } 1532 return I; 1533}; 1534var bt = { 1535 name: "localStorage", 1536 // Deconstruct the options object and extract the lookupLocalStorage property 1537 lookup(n) { 1538 let { 1539 lookupLocalStorage: e 1540 } = n; 1541 if (e && Se()) 1542 return window.localStorage.getItem(e) || void 0; 1543 }, 1544 // Deconstruct the options object and extract the lookupLocalStorage property 1545 cacheUserLanguage(n, e) { 1546 let { 1547 lookupLocalStorage: t 1548 } = e; 1549 t && Se() && window.localStorage.setItem(t, n); 1550 } 1551}; 1552let D = null; 1553const Le = () => { 1554 if (D !== null) return D; 1555 try { 1556 if (D = typeof window < "u" && window.sessionStorage !== null, !D) 1557 return !1; 1558 const n = "i18next.translate.boo"; 1559 window.sessionStorage.setItem(n, "foo"), window.sessionStorage.removeItem(n); 1560 } catch { 1561 D = !1; 1562 } 1563 return D; 1564}; 1565var vt = { 1566 name: "sessionStorage", 1567 lookup(n) { 1568 let { 1569 lookupSessionStorage: e 1570 } = n; 1571 if (e && Le()) 1572 return window.sessionStorage.getItem(e) || void 0; 1573 }, 1574 cacheUserLanguage(n, e) { 1575 let { 1576 lookupSessionStorage: t 1577 } = e; 1578 t && Le() && window.sessionStorage.setItem(t, n); 1579 } 1580}, yt = { 1581 name: "navigator", 1582 lookup(n) { 1583 const e = []; 1584 if (typeof navigator < "u") { 1585 const { 1586 languages: t, 1587 userLanguage: a, 1588 language: s 1589 } = navigator; 1590 if (t) 1591 for (let i = 0; i < t.length; i++) 1592 e.push(t[i]); 1593 a && e.push(a), s && e.push(s); 1594 } 1595 return e.length > 0 ? e : void 0; 1596 } 1597}, wt = { 1598 name: "htmlTag", 1599 // Deconstruct the options object and extract the htmlTag property 1600 lookup(n) { 1601 let { 1602 htmlTag: e 1603 } = n, t; 1604 const a = e || (typeof document < "u" ? document.documentElement : null); 1605 return a && typeof a.getAttribute == "function" && (t = a.getAttribute("lang")), t; 1606 } 1607}, xt = { 1608 name: "path", 1609 // Deconstruct the options object and extract the lookupFromPathIndex property 1610 lookup(n) { 1611 let { 1612 lookupFromPathIndex: e 1613 } = n; 1614 if (typeof window > "u") return; 1615 const t = window.location.pathname.match(/\/([a-zA-Z-]*)/g); 1616 return Array.isArray(t) ? t[typeof e == "number" ? e : 0]?.replace("/", "") : void 0; 1617 } 1618}, St = { 1619 name: "subdomain", 1620 lookup(n) { 1621 let { 1622 lookupFromSubdomainIndex: e 1623 } = n; 1624 const t = typeof e == "number" ? e + 1 : 1, a = typeof window < "u" && window.location?.hostname?.match(/^(\w{2,5})\.(([a-z0-9-]{1,63}\.[a-z]{2,6})|localhost)/i); 1625 if (a) 1626 return a[t]; 1627 } 1628}; 1629let Ee = !1; 1630try { 1631 document.cookie, Ee = !0; 1632} catch { 1633} 1634const Oe = ["querystring", "cookie", "localStorage", "sessionStorage", "n
vendor: 8,311 bytes, lines 1634-1781
1634avigator", "htmlTag"]; 1635Ee || Oe.splice(1, 1); 1636const Lt = () => ({ 1637 order: Oe, 1638 lookupQuerystring: "lng", 1639 lookupCookie: "i18next", 1640 lookupLocalStorage: "i18nextLng", 1641 lookupSessionStorage: "i18nextLng", 1642 // cache user language 1643 caches: ["localStorage"], 1644 excludeCacheFor: ["cimode"], 1645 // cookieMinutes: 10, 1646 // cookieDomain: 'myDomain' 1647 convertDetectedLanguage: (n) => n 1648}); 1649class Ne { 1650 constructor(e) { 1651 let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; 1652 this.type = "languageDetector", this.detectors = {}, this.init(e, t); 1653 } 1654 init() { 1655 let e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : { 1656 languageUtils: {} 1657 }, t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; 1658 this.services = e, this.options = ct(t, this.options || {}, Lt()), typeof this.options.convertDetectedLanguage == "string" && this.options.convertDetectedLanguage.indexOf("15897") > -1 && (this.options.convertDetectedLanguage = (s) => s.replace("-", "_")), this.options.lookupFromUrlIndex && (this.options.lookupFromPathIndex = this.options.lookupFromUrlIndex), this.i18nOptions = a, this.addDetector(ft), this.addDetector(gt), this.addDetector(bt), this.addDetector(vt), this.addDetector(yt), this.addDetector(wt), this.addDetector(xt), this.addDetector(St), this.addDetector(mt); 1659 } 1660 addDetector(e) { 1661 return this.detectors[e.name] = e, this; 1662 } 1663 detect() { 1664 let e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : this.options.order, t = []; 1665 return e.forEach((a) => { 1666 if (this.detectors[a]) { 1667 let s = this.detectors[a].lookup(this.options); 1668 s && typeof s == "string" && (s = [s]), s && (t = t.concat(s)); 1669 } 1670 }), t = t.filter((a) => a != null && !pt(a)).map((a) => this.options.convertDetectedLanguage(a)), this.services && this.services.languageUtils && this.services.languageUtils.getBestMatchFromCodes ? t : t.length > 0 ? t[0] : null; 1671 } 1672 cacheUserLanguage(e) { 1673 let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : this.options.caches; 1674 t && (this.options.excludeCacheFor && this.options.excludeCacheFor.indexOf(e) > -1 || t.forEach((a) => { 1675 this.detectors[a] && this.detectors[a].cacheUserLanguage(e, this.options); 1676 })); 1677 } 1678} 1679Ne.type = "languageDetector"; 1680const Ce = { 1681 en: { 1682 translation: { 1683 "characters-remaining": "{{charactersRemaining}} characters remaining", 1684 ascending: "ascending", 1685 descending: "descending", 1686 "data-table-sorted": "{{caption}} table, column {{headerName}} is now sorted by {{sortDirection}} values", 1687 date: "date", 1688 "column-headers-buttons-sortable": "column headers with buttons are sortable", 1689 "table-sort-removed": "Table sort removed", 1690 "sort-by-ascending-values": "Sort by ascending values", 1691 "sort-by-descending-values": "Sort by descending values", 1692 "reset-sort": "Reset sort", 1693 "table-now-displaying-page": "Table now displaying page {{pageNumber}} of {{totalPages}}", 1694 "table-now-displaying-rows": "Table now displaying {{pageSize}} rows per page which results in {{totalPages}} total pages for {{totalRows}} rows of data", 1695 "no-matching-results-found": "No matching results found, try another filter term", 1696 "table-filtered": "Table filtered, {{numberOfRows}} rows of data available", 1697 "table-filter-removed": "Filter removed, {{numberOfRows}} rows of data are available", 1698 "filter-cannot-be-used-no-available-data": "Filter cannot be used because there is no available data to display", 1699 "video-duration-is": "Video duration is", 1700 "minutes-and": "minutes and", 1701 "seconds-long": "seconds long", 1702 "view-video-transcript": "View video transcript", 1703 close: "Close", 1704 disabled: "disabled", 1705 breadcrumbs: "breadcrumbs", 1706 calendar: "calendar", 1707 "escape-exit-calendar": "Press escape to exit the calendar.", 1708 "previous-year": "Previous year", 1709 "next-year": "Next year", 1710 "previous-month": "Previous month", 1711 "next-month": "Next month", 1712 "show-today": "Show today", 1713 "clear-value": "Clear value", 1714 "choose-date": "Choose date", 1715 "please-follow-format": "Please follow the {{format}} format.", 1716 "please-enter-valid-date": "Please enter a valid date.", 1717 "press-down-for-calendar": "Press the down arrow key to access the calendar.", 1718 error: "ERROR", 1719 "please-refresh-browser": "Please refresh your browser or try again in a few minutes.", 1720 "sorry-no-permission": "Sorry! It looks like you donât have permission to access this page.", 1721 "sorry-broken-link": "Weâre sorry. It looks like the link you followed may be broken or the page may have been moved.", 1722 "sorry-site-unavailable": "Sorry! This part of our site is currently unavailable, weâre working on resolving the issue as quickly as possible.", 1723 "well-thats-puzzling": 'Well, thatâs <span class="{{spanClass}}">puzzling.</span>', 1724 "well-shoot": '<span class="{{spanClass}}">Well, shoot.</span> Our system doesnât recognize you.', 1725 "uh-oh-small-glitch": '<span class="{{spanClass}}">Uh-oh.</span> Weâre experiencing a small glitch.', 1726 "bump-in-the-road": 'Looks like thereâs a <span class="{{spanClass}}">bump</span> in the road.', 1727 "attach-files": "Attach files", 1728 "attach-file": "Attach file", 1729 "drop-file-click": "Drop a file to attach, or <span class={{spanClass}}>click to browse.</span>", 1730 "drop-files-click": "Drop files to attach, or <span class={{spanClass}}>click to browse.</span>", 1731 "drop-file-tap": "Drop a file to attach, or <span class={{spanClass}}>tap to browse.</span>", 1732 "drop-files-tap": "Drop files to attach, or <span class={{spanClass}}>tap to browse.</span>", 1733 cancel: "Cancel", 1734 "replace-file-confirmation": "Are you sure you want to replace this file:", 1735 with: "With", 1736 replace: "Replace", 1737 "no-files-attached": "No files have been attached.", 1738 "please-ensure-file-formats": "Please make sure your files are in one of the following formats", 1739 "please-ensure-file-size": "Please make sure your files are below", 1740 "file-could-not-be-uploaded": "The following file could not be uploaded", 1741 "try-again": "Try again", 1742 "remove-attachment": "Remove attachment", 1743 "file-added-live-region": "1 file has been attached.", 1744 "files-added-live-region": "{{count}} files have been attached.", 1745 "removed-file-live-region": "Your {{fileToRemove}} file was removed", 1746 "show-more": "Show more", 1747 "show-less": "Show less", 1748 loading: "loading...", 1749 "expand-collapse-row": "Expand/collapse row", 1750 "expand-collapse-column": "Expand/collapse column", 1751 "expand-row": "Expand row", 1752 "collapse-row": "Collapse row", 1753 "trouble-logging-in": "Trouble logging in?", 1754 "get-help": "Get help", 1755 "link-to-principal-homepage": "Link to Principal homepage", 1756 contact: "Contact", 1757 footer: "Footer", 1758 "terms-of-use": "Terms of use", 1759 disclosures: "Disclosures", 1760 privacy: "Privacy", 1761 security: "Security", 1762 "report-fraud": "Report fraud", 1763 accessibility: "Accessibility", 1764 "securities-offered": "Securities offered through Principal Securities, Inc.,", 1765 "member-sipc": "member SIPC", 1766 "principal-on-X": "Principal on X", 1767 "principal-on-youtube": "Principal on YouTube", 1768 "principal-on-facebook": "Principal on Facebook", 1769 "principal-on-linkedin": "Principal on LinkedIn", 1770 "principal-on-AppStore": "Principal on AppStore", 1771 "principal-on-GooglePlay": "Principal on GooglePlay", 1772 "back-to-footnote": "Back to footnote {{footnoteNumber}}", 1773 "mobile-navigation-menu": "Mobile navigation menu", 1774 "few-more-seconds": "Just a few more seconds!", 1775 "session-expired": "Your session has expired.", 1776 "logged-out": "You've logged out.", 1777 "we-logged-you-out": "To keep your account secure, we've logged you out.", 1778 "not-what-you-wanted": "Not what you wanted to do?", 1779 "log-back-in": "Log back in", 1780 "go-to-first-page": "Go to first page", 1781 "go-to-previous-page": "Go to previous page",
1782 "go-to-next-page": "Go to next page", 1783 "go-to-last-page": "Go to last page", 1784 "no-more-additional-pages": "There are no more additional pages.", 1785 "no-more-previous-pages": "There are no more previous pages.", 1786 pagination: "pagination", 1787 "data-table-pagination": "data table pagination", 1788 "primary-navigation": "primary navigation", 1789 "go-to-page": "go to page", 1790 "log-out": "Log out", 1791 "log-in": "Log in", 1792 "skip-to-content": "Skip to content", 1793 search: "Search", 1794 notifications: "Notifications", 1795 messages: "Messages", 1796 "other-alerts": "Other alerts", 1797 "error-displaying-table-data": "Error displaying table data", 1798 "no-available-table-data": "No available table data", 1799 menu: "Menu", 1800 "secondary-navigation": "secondary navigation", 1801 "logout-alert": "Logout alert!", 1802 minutes: "minutes", 1803 "stay-logged-in": "Stay logged in", 1804 seconds: "seconds", 1805 "one-moment": "One moment", 1806 "on-before-a-date": "on", 1807 "close-the-timer": "close the timer", 1808 "to-save-your-work": "to save your work before you get logged out.", 1809 "sorry-something-wrong-session": "Sorry! Something went wrong on our end when trying to extend your session. Give it another try, or ", 1810 "still-there": "Still there? You're about to be logged out.",
1811 "auto-log-you-out-warning": "To keep your account secure, we'll automatically log you out in ", 1812 dismiss: "Dismiss", 1813 minute: "minute", 1814 "time-remaining": "{{time}} remaining", 1815 progress: "progress", 1816 completed: "completed", 1817 incomplete: "incomplete", 1818 "filter-table": "Filter table", 1819 show: "Show", 1820 hide: "Hide", 1821 "value-hidden-show-available": "Value hidden. Show button available.", 1822 "value-visible-hide-available": "Value visible. Hide button available.", 1823 "no-entries": "No entries", 1824 "number-rows-displayed": "Number of rows to display in table", 1825 "rows-per-page": "rows per page", 1826 of: "of", 1827 entries: "entries", 1828 entry: "entry", 1829 "contact-us": "Contact us", 1830 "help-topics": "Help topics", 1831 "call-us-at": "Call us at", 1832 "principal-legal-links": "Principal legal links", 1833 "social-media": "Social media", 1834 "utility-menu": "utility menu", 1835 "user-menu": "user menu", 1836 "dropdown-button": "dropdown-button", 1837 "additional-information": "Additional information", 1838 "required-group": "At least one option within the group must be checked.", 1839 "numeric-characters-allowed": "Only numeric characters are allowed", 1840 "success-alert": "Success alert", 1841 "information-alert": "Information alert", 1842 "warning-alert": "Warning alert", 1843 "error-alert": "Error alert", 1844 "banner-alert": "Banner alert", 1845 "alert-not-dismissible": "This alert is not dismissible", 1846 "not-found": "Not found", 1847 forbidden: "Forbidden", 1848 "internal-server-error": "Internal server error", 1849 "service-unavailable": "Service unavailable", 1850 "this-link-opens-in-a-new-tab": "This link opens in a new tab", 1851 "opens-in-a-new-tab": "opens in a new tab", 1852 "pfg-logo": "Principal Financial Group logo", 1853 "info-toast": "Information toast", 1854 "loading-toast": "Loading toast", 1855 "success-toast": "Success toast", 1856 "error-toast": "Error toast", 1857 "error-loading-chart": "Error loading chart", 1858 retry: "Retry", 1859 label: "Label", 1860 category: "Category", 1861 value: "Value", 1862 total: "Total", 1863 "value-amount": "value", 1864 "bar-chart-aria-label": "Bar chart, {{position}} of {{total}} bars", 1865 description: "Description", 1866 "search-combo-box": "Search combo box", 1867 "your-account-has-notifications": "Your account has notifications", 1868 chart: "Chart", 1869 table: "Table", 1870 "this-triggers-a-tooltip": "This triggers a tooltip", 1871 "no-chart-data": "No chart data available", 1872 expanded: "expanded", 1873 "donut-chart-accompanying-table": "Donut chart has an accompanying table with the following information", 1874 "line-chart-accompanying-table": "Line chart has an accompanying table with the following information", 1875 "line-chart-data-points": "Line chart data points", 1876 "selected-country": "Selected country", 1877 "aria-value-text": "The current value is {{value}} out of a range from {{min}} to {{max}} and increment is {{step}}", 1878 "current-value": "Current value", 1879 "range-slider-aria-value-text": "Range slider with value {{min}} to {{max}}, adjustable in increments of {{step}}. Current slider setting (start) {{rangeStart}}, (end) {{rangeEnd}}", 1880 "range-start": "Range start {{rangeStart}}", 1881 "range-end": "Range end {{rangeEnd}}", 1882 "slider-not-multiple-of-step": "The original value ({{newValue}}) doesn't fall on a valid step increment of {{step}} from the minimum value ({{min}}), so it has been adjusted to the closest valid value ({{clampedValue}}). Use the slider handle to confirm or update this value.", 1883 "slider-outside-valid-range": "The original value ({{newValue}}) was outside of the available range ({{min}} to {{max}}), so it has been adjusted to the closest valid value ({{clampedValue}}). Use the slider handle to confirm or update this value.", 1884 "slider-range-outside-range": "The original values ({{newRangeStart}} and {{newRangeEnd}}) were outside of the available range ({{min}} to {{max}}
1884), so it has been adjusted to the closest valid range ({{min}} to {{max}}). Use the slider handles to confirm or update these values.", 1885 "slider-range-start-above-max": "The original start value ({{newRangeStart}}) is above the maximum range ({{max}}), so it has been adjusted to the valid value ({{min}}). Use the slider handle to confirm or update this value.", 1886 "slider-range-end-below-min": "The original end value ({{newRangeEnd}}) is below the minimum range ({{min}}), so it has been adjusted to the valid value ({{max}}). Use the slider handle to confirm or update this value.", 1887 "slider-range-start-above-range": "The original start value ({{newRangeStart}}) is above the range end value ({{newRangeEnd}}), so it has been adjusted to the valid range ({{min}} to {{max}}). Use the slider handles to confirm or update these values.", 1888 "slider-range-start-outside": "The original start value ({{newRangeStart}}) was outside of the available range ({{min}} to {{max}}), so it has been adjusted to the closest valid value ({{min}}). Use the slider handle to confirm or update this value.", 1889 "slider-range-end-outside": "The original end value ({{newRangeEnd}}) was outside of the available range ({{min}} to {{max}}), so it has been adjusted to the closest valid value ({{max}}). Use the slider handle to confirm or update this value.", 1890 "slider-range-not-multiple-of-step": "The original values ({{newRangeStart}} and {{newRangeEnd}}) don't fall on valid step increments of {{step}} from the minimum value ({{min}}), so they have been adjusted to the closest valid range ({{snappedStart}} to {{snappedEnd}}). Use the slider handles to confirm or update these values.", 1891 "slider-range-start-not-multiple-of-step": "The original value ({{newRangeStart}}) doesn't fall on a valid step increment of {{step}} from the minimum value ({{min}}), so it has been adjusted to the closest valid value ({{snappedStart}}). Use the slider handle to confirm or update this value.", 1892 "slider-range-end-not-multiple-of-step": "The original value ({{newRangeEnd}}) doesn't fall on a valid step increment of {{step}} from the minimum value ({{min}}), so it has been adjusted to the closest valid value ({{snappedEnd}}). Use the slider handle to confirm or update this value.", 1893 "slider-range-same-values": "The original start value ({{newRangeStart}}) and end value ({{newRangeEnd}}) cannot be the same, so it has been adjusted to the valid range ({{min}} to {{max}}). Use the slider handles to confirm or update these values.", 1894 "view-footnote": "View footnote {{footnoteNumber}}", 1895 link: "Link", 1896 through: "through", 1897 "collapse-options": "Collapse options", 1898 "expand-options": "Expand options", 1899 "no-results": "No results", 1900 "clear-all": "Clear all", 1901 "clear-all-items": "Clear all items", 1902 "item-selected": "item selected", 1903 "items-selected": "items selected", 1904 "no-items-selected": "No items selected", 1905 unavailable: "unavailable", 1906 selected: "selected", 1907 "not-selected": "not selected", 1908 deselected: "deselected", 1909 "press-enter-to-deselect": "Press enter to deselect {{label}}", 1910 "almost-there": "Almost there...", 1911 "country-code-dropdown": "A dropdown containing country codes, used to select the country code for the phone number" 1912 } 1913 }, 1914 es: { 1915 translation: { 1916 "characters-remaining": "restantes {{charactersRemaining}} caracteres", 1917 ascending: "ascendentes", 1918 descending: "descendentes", 1919 "data-table-sorted": "{{caption}} tabla, la columna {{headerName}} está ordenada por valores {{sortDirection}}", 1920 date: "fecha", 1921 "column-headers-buttons-sortable": "los encabezados de columna con botones se pueden ordenar", 1922 "table-sort-removed": "La clasificación de la tabla se ha eliminado", 1923 "sort-by-ascending-values": "Ordenar por valores ascendentes", 1924 "sort-by-descending-values": "Ordenar por valores descendientes", 1925 "reset-sort": "Restablecer el orden", 1926 "table-now-displaying-page": "La tabla muestra la página {{pageNumber}} de {{totalPages}}", 1927 "table-now-displaying-rows": "La tabla muestra {{pageSize}} filas por página, es decir {{totalPages}} páginas en total con {{totalRows}} filas de datos", 1928 "no-matching-results-found": "No se encontraron resultados concordantes, intenta otra palabra de filtro",
1929 "table-filtered": "La tabla ha aplicado los filtros, hay {{numberOfRows}} filas de datos disponibles", 1930 "table-filter-removed": "El filtro se ha eliminado, hay {{numberOfRows}} filas de datos disponibles", 1931 "filter-cannot-be-used-no-available-data": "No se pueden utilizar filtros porque no hay datos disponibles para mostrar", 1932 "video-duration-is": "La duración del vÃdeo es de", 1933 "minutes-and": "minutos y", 1934 "seconds-long": "segundos", 1935 "view-video-transcript": "Ver la transcripción del video", 1936 close: "Cerrar", 1937 disabled: "deshabilitado", 1938 breadcrumbs: "ayuda a la navegación", 1939 calendar: "calendario", 1940 "escape-exit-calendar": "Para salir del calendario pulsa la tecla escape.", 1941 "previous-year": "Año anterior", 1942 "next-year": "Año siguiente", 1943 "previous-month": "Mes anterior", 1944 "next-month": "Mes siguiente", 1945 "show-today": "Mostrar la fecha de hoy", 1946 "clear-value": "Borrar la fecha", 1947 "choose-date": "Elegir fecha", 1948 "please-follow-format": "Utiliza el formato {{format}}, por favor.", 1949 "please-enter-valid-date": "Por favor, ingresa una fecha válida.", 1950 "press-down-for-calendar": "Para acceder al calendario pulsa la flecha hacia abajo.", 1951 error: "ERROR", 1952 "please-refresh-browser": "Actualice su navegador o inténtelo de nuevo en unos minutos.", 1953 "sorry-no-permission": "¡Arrepentido! Parece que no tienes permiso para acceder a esta página.", 1954 "sorry-broken-link": "Lo sentimos. Parece que el enlace que siguió puede estar roto o la página puede haber sido movida.", 1955 "sorry-site-unavailable": "Arrepentido! Esta parte de nuestro sitio no está disponible actualmente, estamos trabajando para resolver el problema lo más rápido posible.", 1956 "well-thats-puzzling": 'Bueno, eso es <span class="{{spanClass}}">desconcertante.</span>', 1957 "well-shoot": '<span class="{{spanClass}}">Bueno, dispara.</span> Nuestro sistema no te reconoce.', 1958 "uh-oh-small-glitch": '<span class="{{spanClass}}">Uh-oh.</span> Estamos experimentando una pequeña falla.', 1959 "bump-in-the-road": 'Parece que hay un <span class="{{spanClass}}">chichón</span> en la carretera.', 1960 "attach-files": "Adjuntar archivos", 1961 "attach-file": "Adjuntar archivo", 1962 "drop-file-click": "Arrastra un archivo para adjuntar o <span class={{spanClass}}>haz clic para buscarlo en tu equipo.</span>", 1963 "drop-files-click": "Arrastra los archivos para adjuntar o <span class={{spanClass}}>haz clic para buscarlos en tu equipo.</span>", 1964 "drop-file-tap": "Arrastra un archivo para adjuntar o <span class={{spanClass}}>haz clic para buscarlo en tu equipo.</span>", 1965 "drop-files-tap": "Arrastra los archivos para adjuntar o <span class={{spanClass}}>pulsa para buscarlos en tu equipo.</span>", 1966 cancel: "Cancelar", 1967 "replace-file-confirmation": "¿Está seguro de que desea reemplazar el siguiente archivo?", 1968 with: "Con", 1969 replace: "Reemplazar", 1970 "no-files-attached": "No se adjuntó ningún archivo.", 1971 "please-ensure-file-formats": "Por favor, asegúrate de que tus archivos estén en alguno de los siguientes formatos", 1972 "please-ensure-file-size": "Asegúrese de que sus archivos estén debajo", 1973 "file-could-not-be-uploaded": "El siguiente archivo no se pudo cargar", 1974 "try-again": "Intenta de nuevo", 1975 "remove-attachment": "Eliminar adjunto", 1976 "file-added-live-region": "Se ha adjuntado 1 archivo.", 1977 "files-added-live-region": "Se han adjuntado {{count}} archivos.", 1978 "removed-file-live-region": "Tu {{fileToRemove}} archivo fue eliminado.", 1979 "show-more": "Mostrar más", 1980 "show-less": "Ver menos", 1981 loading: "cargando...", 1982 "expand-collapse-row": "Expandir/contraer fila", 1983 "expand-collapse-column": "Expandir/contraer columna", 1984 "expand-row": "Expanda la fila", 1985 "collapse-row": "Contraiga la fila", 1986 "trouble-logging-in": "¿Tienes problemas para iniciar sesión?", 1987 "get-help": "Consigue ayuda", 1988 "link-to-principal-homepage": "Bienvenida a la página principal", 1989 contact: "ComunÃcate con nosotros", 1990 footer: "Pie de página", 1991 "terms-of-use": "Términos de uso", 1992 disclosures: "Declaraciones", 1993 privacy: "Privacidad", 1994 security: "Seguridad", 1995 "report-fraud": "Reporte de fraudes", 1996 accessibility: "Accesibilidad", 1997 "securities-offered": "Los valores son ofrecidos a través de Principal Securities, Inc.,", 1998 "member-sipc": "miembro de la SIPC", 1999 "principal-on-X": "Principal en X", 2000 "principal-on-youtube": "Principal en YouTube", 2001 "principal-on-facebook": "Principal en Facebook", 2002 "principal-on-linkedin": "Principal en LinkedIn", 2003 "principal-on-AppStore": "Principal en AppStore", 2004 "principal-on-GooglePlay": "Principal en GooglePlay", 2005 "back-to-footnote": "Volver a la nota a pie de página {{footnoteNumber}}", 2006 "mobile-navigation-menu": "Menú de navegación móvil", 2007 "few-more-seconds": "¡Solo unos segundos más!", 2008 "session-expired": "Tu sesión venció.", 2009 "logged-out": "Cerraste sesión.", 2010 "we-logged-you-out": "Para mantener tu cuenta segura, hemos cerrado tu sesión.", 2011 "not-what-you-wanted": "¿No era lo que querÃas hacer?", 2012 "log-back-in": "Iniciar sesión de nuevo", 2013 "go-to-first-page": "Ir a la primera página", 2014 "go-to-previous-page": "Ir a la página anterior", 2015 "go-to-next-page": "Ir a la página siguiente", 2016 "go-to-last-page": "Ir a la última página", 2017 "no-more-additional-pages": "No hay más páginas adicionales", 2018 "no-more-previous-pages": "No hay más páginas anteriores.", 2019 pagination: "paginación", 2020 "data-table-pagination": "paginación de tabla de datos", 2021 "primary-navigation": "navegación primaria", 2022 "go-to-page": "ir a la página", 2023 "log-out": "Cerrar sesión", 2024 "log-in": "Ingresar", 2025 "skip-to-content": "Saltar al contenido", 2026 search: "Buscar", 2027 notifications: "Notificaciones", 2028 messages: "Mensajes", 2029 "other-alerts": "Otras alertas", 2030 "error-displaying-table-data": "Error al mostrar los datos de la tabla", 2031 "no-available-table-data": "No hay datos de tabla disponibles", 2032 menu: "Menú", 2033 "secondary-navigation": "secundario navigation", 2034 "logout-alert": "¡Aviso de cierre de sesión!", 2035 minutes: "minutos", 2036 "stay-logged-in": "Mantener la sesión", 2037 seconds: "segundos", 2038 "one-moment": "Un momento", 2039 "on-before-a-date": "el", 2040 "close-the-timer": "cerrar el temporizador", 2041 "to-save-your-work": " y guarda tu trabajo.", 2042 "sorry-something-wrong-session": "¡Disculpa! Algo salió mal al tratar de alargar tu sesión. Antes de que se te cierre la sesión, inténtalo nuevamente o ", 2043 "still-there": "¿Aún estás aquÃ? Pronto se te cerrará la sesión.",
2044 "auto-log-you-out-warning": "Por la seguridad de tu cuenta, cerraremos tu sesión en ", 2045 dismiss: "Ignorar", 2046 minute: "minuto", 2047 "time-remaining": "El tiempo que te queda es {{time}}", 2048 progress: "progreso", 2049 completed: "paso completo", 2050 incomplete: "paso incompleto", 2051 "filter-table": "Filtrar tabla", 2052 show: "Mostrar", 2053 hide: "Ocultar", 2054 "value-hidden-show-available": "Valor oculto. Botón Mostrar disponible.", 2055 "value-visible-hide-available": "Valor visible. Botón Ocultar disponible.", 2056 "no-entries": "No hay registros", 2057 "number-rows-displayed": "Número de filas que aparecerán en la tabla", 2058 "rows-per-page": "filas por página", 2059 of: "de", 2060 entries: "registros", 2061 entry: "registro", 2062 "contact-us": "ComunÃcate con nosotros", 2063 "help-topics": "Temas de ayuda", 2064 "call-us-at": "Llamenos al", 2065 "principal-legal-links": "Principales enlaces legales", 2066 "social-media": "Medios de comunicación social", 2067 "utility-menu": "menú de utilidades", 2068 "user-menu": "Menú del Usuario", 2069 "dropdown-button": "botón desplegable", 2070 "additional-information": "Información adicional", 2071 "required-group": "Se debe marcar al menos una opción dentro del grupo.", 2072 "numeric-characters-allowed": "Solo se permiten caracteres numéricos", 2073 "success-alert": "Alerta de éxito", 2074 "information-alert": "Alerta de información", 2075 "warning-alert": "Alerta de advertencia", 2076 "error-alert": "Alerta de error", 2077 "banner-alert": "Alerta de banner", 2078 "alert-not-dismissible": "Esta alerta no se puede descartar", 2079 "not-found": "No se encontró", 2080 forbidden: "No está permitido", 2081 "internal-server-error": "Error del servidor interno", 2082 "service-unavailable": "Servicio no disponible", 2083 "this-link-opens-in-a-new-tab": "Este enlace se abre en una nueva pestaña", 2084 "opens-in-a-new-tab": "abre en una nueva pestaña", 2085 "pfg-logo": "Logo de Principal Financial Group", 2086 "info-toast": "Notificación temporal (toast) informativa", 2087 "loading-toast": "Notificación temporal (toast) sobre una carga (loading)", 2088 "success-toast": "Notificación temporal (toast) sobre un paso exitoso", 2089 "error-toast": "Notificación temporal (toast) sobre un error", 2090 "error-loading-chart": "Error al cargar gráfico", 2091 retry: "Intentar otra vez", 2092 label: "Identificar", 2093 category: "CategorÃa", 2094 value: "Valor", 2095 total: "Total", 2096 "value-amount": "cantidad", 2097 "bar-chart-aria-label": "Gráfica de barras, {{position}} de {{total}} barras", 2098 description: "Descripción", 2099 "search-combo-box": "Buscar en cuadro combinado", 2100 "your-account-has-notifications": "Tienes notificaciones en tu cuenta", 2101 chart: "Gráfica", 2102 table: "Tabla", 2103 "this-triggers-a-tooltip": "Esto activa información en pantalla", 2104 "no-chart-data": "No hay datos de gráfica disponibles", 2105 expanded: "Vista expandida", 2106 "donut-chart-accompanying-table": "La gráfica circular está acompañada por una tabla con la siguiente información", 2107 "line-chart-accompanying-table": "El gráfico de lÃneas viene acompañado de una tabla con la siguiente información", 2108 "line-chart-data-points": "Datos del gráfico de lÃneas", 2109 "selected-country": "PaÃs seleccionado", 2110 "aria-value-text": "El valor actual es {{value}} dentro de un rango de {{min}} a {{max}}, en incrementos de {{step}}", 2111 "current-value": "Valor actual", 2112 "range-slider-aria-value-text": "Barra deslizable de rangos con valores del {{min}} al {{max}}, ajustable en incrementos de {{step}}. Configuración actual de la barra deslizable (inicio) {{rangeStart}}, (fin) {{rangeEnd}}", 2113 "range-start": "Inicio de rango {{rangeStart}}", 2114 "range-end": "Fin de rango {{rangeEnd}}", 2115 "slider-not-multiple-of-step": "El valor original ({{newValue}}) no cae en un punto de incremento válido de {{step}} del valor mÃnimo ({{min}}), por ello se ha ajustado al valor válido más cercano ({{clampedValue}}). Usa la barra deslizadora para confirmar o actualizar este valor.", 2116 "slider-outside-valid-range": "El valor original ({{newValue}}) está fuera del rango disponible (de {{min}} a {{max}}), asà que se ajustó al valor válido más cercano ({{clampedValue}}). Usa la barra deslizadora para confirmar o actualizar este valor.", 2117 "slider-range-outside-range": "Los valores originales ({{newRangeStart}} y {{newRangeEnd}}) están fuera del rango disponible (de {{min}} a {{max}}), asà que se ajustó al rango válido más cercano (de {{min}} a {{max}}). Usa las barras deslizadoras para confirmar o actualizar estos valores.", 2118 "slider-range-start-above-max": "El valor inicial original ({{newRangeStart}}) supera el rango máximo ({{max}}), asà que se ajustó al valor válido ({{min}}). Usa la barra deslizadora para confirmar o actualizar este valor.", 2119 "slider-range-end-below-min": "El valor final original ({{newRangeEnd}}) está por debajo del rango mÃnimo ({{min}}), asà que se ajustó al valor válido ({{max}}). Usa la barra deslizadora para confirmar o actualizar este valor.", 2120 "slider-range-start-above-range": "El valor inicial original ({{newRangeStart}}) supera el valor final del rango ({{newRangeEnd}}), asà que se ajustó al rango válido (de {{min}} a {{max}}). Usa las barras deslizadoras para confirmar o actualizar estos valores.",
2121 "slider-range-start-outside": "El valor inicial original ({{newRangeStart}}) está fuera del rango disponible (de {{min}} a {{max}}), asà que se ajustó al valor válido más cercano ({{min}}). Usa la barra deslizadora para confirmar o actualizar este valor.", 2122 "slider-range-end-outside": "El valor final original ({{newRangeEnd}}) está fuera del rango disponible (de {{min}} a {{max}}), asà que se ajustó al valor válido más cercano ({{max}}). Usa la barra deslizadora para confirmar o actualizar este valor.", 2123 "slider-range-not-multiple-of-step": "Los valores originales ({{newRangeStart}} y {{newRangeEnd}}) no caen en puntos de incremento válidos de {{step}} del valor mÃnimo ({{min}}), por ello se han ajustado al rango válido más cercano (de {{snappedStart}} a {{snappedEnd}}). Usa las barras deslizadoras para confirmar o actualizar estos valores.", 2124 "slider-range-start-not-multiple-of-step": "El valor original ({{newRangeStart}}) no cae en un punto de incremento válido de {{step}} del valor mÃnimo ({{min}}), por ello se ha ajustado al valor válido más cercano ({{snappedStart}}). Usa la barra deslizadora para confirmar o actualizar este valor.", 2125 "slider-range-end-not-multiple-of-step": "El valor original ({{newRangeEnd}}) no cae en un punto de incremento válido de {{step}} del valor mÃnimo ({{min}}), por ello se ha ajustado al valor válido más cercano ({{snappedEnd}}). Usa la barra deslizadora para confirmar o actualizar este valor.", 2126 "slider-range-same-values": "El valor inicial original ({{newRangeStart}}) y el valor final ({{newRangeEnd}}) no pueden ser iguales, asà que se ha ajustado al rango válido de ({{min}} a {{max}}). Usa la barra deslizadora para confirmar o actualizar estos valores.", 2127 "view-footnote": "Ver nota a pie de página {{footnoteNumber}}", 2128 link: "Enlace", 2129 through: "a", 2130 "collapse-options": "Opciones de contracción", 2131 "expand-options": "Opciones de ampliación", 2132 "no-results": "No hay resultados", 2133 "clear-all": "Borrar todo", 2134 "clear-all-items": "Borrar todos los Ãtems", 2135 "item-selected": "Ãtem seleccionado", 2136 "items-selected": "Ãtems seleccionados", 2137 "no-items-selected": "No hay Ãtems seleccionados", 2138 unavailable: "indisponible", 2139 selected: "seleccionado", 2140 "not-selected": "no seleccionado", 2141 deselected: "deseleccionado", 2142 "press-enter-to-deselect": "Presione enter para deseleccionar {{label}}", 2143 "almost-there": "Casi listo...", 2144 "country-code-dropdown": "Menú desplegable para seleccionar el código del paÃs que corresponda al número de teléfono" 2145 } 2146 } 2147}; 2148var Ct = Object.defineProperty, q = (n, e, t, a) => { 2149 for (var s = void 0, i = n.length - 1, r; i >= 0; i--) 2150 (r = n[i]) && (s = r(e, t, s) || s); 2151 return s && Ct(e, t, s), s; 2152}; 2153class W extends Fe { 2154 constructor() { 2155 super(...arguments), this.initialRenderForRequiredSlotValidation = !0, this.requiredSlotElements = {}, this.requiredSlotTimeout = null, this.requiredPropertyErrors = [], this.isSuspended = !1, this.isHydrationComplete = !1, this.hasFirstUpdatedRun = !1; 2156 } 2157 /** 2158 * Skip updates when the component is suspended 2159 * @internal 2160 */ 2161 shouldUpdate() { 2162 return !this.isSuspended; 2163 } 2164 /** 2165 * The class map used to derive the class attribute for the component. 2166 * This will be used by the getClass method. 2167 * @internal 2168 */ 2169 get classNames() { 2170 return {}; 2171 } 2172 /** 2173 * The class name prefixed with the appropriate global namespace and class prefix. 2174 * @internal 2175 */ 2176 get classNamespaceAndPrefix() { 2177 const e = { 2178 component: "c", 2179 layout: "l" 2180 }; 2181 return this.isComponent(this.componentType) ? `pds-${e[this.componentCategory]}-${this.componentName}` : `${e[this.componentCategory]}-${this.componentName}`; 2182 } 2183 isComponent(e) { 2184 return e === "component"; 2185 } 2186 /** 2187 * Prepends the appropriate namespace to the class: 'pds-' Components or '' Recipes 2188 * @param key 2189 */ 2190 getClassNamespace(e) { 2191 return this.isComponent(this.componentType) ? `pds-${e}` : ""; 2192 } 2193 /** 2194 * Prepends the appropriate prefix to the class name as a BEM modifier 2195 * @param className 2196 */ 2197 classMod(e) { 2198 return `${this.classNamespaceAndPrefix}--${e}`; 2199 } 2200 /** 2201 * Prepends the appropriate prefix to the class as a BEM element 2202 * @param className 2203 */ 2204 classEl(e) { 2205 return `${this.classNamespaceAndPrefix}__${e}`; 2206 } 2207 /** 2208 * Wraps the classNames object in Lit's classMap directive,
2209 * adding the appropriate prefix to each class name 2210 * @returns the string to pass to the component's class attribute 2211 * @example 2212 * class Button extends PdsElement { 2213 * componentName = 'button'; 2214 * 2215 * componentCategory:ComponentCategory = 'component'; 2216 * 2217 * componentType: ComponentType = 'component'; 2218 * 2219 * \@property() 2220 * variant: 'primary' | 'secondary'; 2221 * 2222 * get classNames() { 2223 * return { 2224 * [this.variant]: !!this.variant, // pds-c-button--primary 2225 * centered: this.aligned === "centered", // pds-c-button--centered 2226 * inverse: this.inverted, // pds-c-button--inverse 2227 * "is-active": this.active, // pds-is-active 2228 * }; 2229 * } 2230 * } 2231 * 2232 * // Given the above component class, if you render the following 2233 * <pds-button variant="primary">Hello world</pds-button> 2234 * 2235 * // then if you call this method, it will return the following (recipe components omit 'pds-') 2236 * this.getClass() // 'pds-c-button pds-c-button--primary' 2237 */ 2238 getClass() { 2239 return ze( 2240 Object.keys(this.classNames).reduce( 2241 (e, t) => { 2242 const a = /^is-/.test(t) ? this.getClassNamespace(t) : this.classMod(t); 2243 return { 2244 ...e, 2245 [a]: this.classNames[t] 2246 }; 2247 }, 2248 { 2249 [this.classNamespaceAndPrefix]: !0 2250 } 2251 ) 2252 ); 2253 } 2254 /** 2255 * Sets the isHydrationComplete check to true 2256 * This needs to get set in the element's 2257 * firstUpdated lifecycle hook (this is done by default) 2258 */ 2259 setHydrationComplete() { 2260 this.isHydrationComplete = !0; 2261 } 2262 /** 2263 * Check if a slot is empty 2264 * This can only be used once hydration is complete, and thus 2265 * setHydrationComplete will need to run first for this to work 2266 * 2267 * @param slotName 2268 */ 2269 slotEmpty(e) { 2270 return this.hasFirstUpdatedRun ? !this.querySelector(`[slot${e ? `="${e}"` : ""}]`) : !0; 2271 } 2272 /** 2273 * Check if a slot is not empty 2274 * This can only be used once hydration is complete, and thus 2275 * setHydrationComplete will need to run first for this to work 2276 * 2277 * @param slotName 2278 */ 2279 slotNotEmpty(e) { 2280 return this.slotEmpty(e) ? "" : !this.slotEmpty(e); 2281 } 2282 firstUpdated() { 2283 this.hasFirstUpdatedRun = !0, typeof window < "u" && this.isConnected && requestAnimationFrame(() => { 2284 this.isConnected && this.setHydrationComplete(); 2285 }), m.isInitialized && m.changeLanguage(); 2286 } 2287 /** 2288 * Dynamically generate random unique IDs 2289 * Returns '' if window.crypto.randomUUID() is not available 2290 */ 2291 getRandomId() { 2292 return window.crypto && window.crypto.randomUUID ? window.crypto.randomUUID() : Math.random().toString(36).substring(2, 10); 2293 } 2294 /** 2295 * This initializes language localization capabilities on a component 2296 * Call this function from the connectedCallback() function, like this: 2297 * 2298 * connectedCallback() { 2299 * super.connectedCallback(); 2300 * this.initLocalization(); 2301 * } 2302 */ 2303 initLocalization() { 2304 m.isInitialized || (m.use(Ne).init({ 2305 fallbackLng: "en", 2306 resources: Ce, 2307 detection: { 2308 lookupLocalStorage: "pds-language", 2309 lookupQuerystring: "lang", 2310 order: [ 2311 "htmlTag", 2312 "localStorage", 2313 "querystring", 2314 "cookie", 2315 "sessionStorage", 2316 "navigator" 2317 ] 2318 } 2319 }), m.languages = ["en", "es"]); 2320 } 2321 /** 2322 * This function is a wrapper for i18next.t(). 2323 * 2324 * It will default to the English translation if i18next 2325 * is not yet available. 2326 */ 2327 translateText(e, t) { 2328 return !this.hasFirstUpdatedRun || !m.isInitialized ? Ce.en.translation[e] : m.t(e, t); 2329 } 2330 /** 2331 * Clone a lit element 2332 */ 2333 cloneLitElement(e) { 2334 const t = e.cloneNode(!0); 2335 try { 2336 this.processProps(e, t), this.processChildPdsElements(e, t); 2337 } catch { 2338 } 2339 return t; 2340 } 2341 // Set event listeners and attributes for the cloned element based on the original element 2342 processProps(e, t) { 2343 const a = Object.getOwnPropertyNames(e).filter( 2344 (r) => r.startsWith("__reactFiber") 2345 )[0], i = Object.getOwnPropertyDescriptors(e)[a]; 2346 if (i?.value?.return?.pendingProps) { 2347 const r = i.value.return.pendingProps, o = Object.keys(r).filter( 2348 (d) => d !== "children" && d !== "suppressHydrationWarning" && !d.startsWith("_") 2349 ).reduce((d, c) => ({ 2350 ...d, 2351 [c]: r[c] 2352 }), {});
2353 Object.keys(o).forEach((d) => { 2354 const c = o[d]; 2355 if (d.startsWith("onPds") && typeof c == "function") { 2356 const u = d.substring(2), p = e; 2357 t.addEventListener(u, (g) => { 2358 const f = new CustomEvent(u, { 2359 bubbles: !0, 2360 cancelable: !0, 2361 detail: g instanceof CustomEvent ? g.detail : {} 2362 }); 2363 p.dispatchEvent(f); 2364 }); 2365 } else c !== !1 && t.setAttribute(d, o[d]); 2366 }); 2367 } 2368 } 2369 /** 2370 * Helper to get direct child PDS elements 2371 */ 2372 getDirectPdsChildren(e) { 2373 return Array.from(e.children).filter( 2374 (t) => t.tagName.toLowerCase().startsWith("pds-") 2375 ); 2376 } 2377 /** 2378 * Recursively process child PDS elements to ensure their React event handlers are preserved 2379 * @internal 2380 */ 2381 processChildPdsElements(e, t) { 2382 const a = this.getDirectPdsChildren(e), s = this.getDirectPdsChildren(t); 2383 for (let i = 0; i < a.length; i++) { 2384 const r = a[i], o = s[i]; 2385 r && o && this.processProps(r, o); 2386 } 2387 } 2388 /** 2389 * Note: this needs to be called on the client only 2390 * You can call it on the client by calling it from a slotchange event 2391 */ 2392 setWindowResizeHandler() { 2393 if (window) { 2394 const e = () => { 2395 const t = window.innerWidth; 2396 t && (t < Ve ? this.responsiveViewportSize = "xs" : t < Me ? this.responsiveViewportSize = "sm" : t < Ke ? this.responsiveViewportSize = "md" : t < He ? this.responsiveViewportSize = "lg" : this.responsiveViewportSize = "xl"); 2397 }; 2398 e(), window.visualViewport?.addEventListener("resize", e); 2399 } 2400 } 2401 /** 2402 * Used to duplicate slot markup if the markup differs between mobile and desktop views. 2403 */ 2404 duplicateSlotMarkup(e) { 2405 const t = e.assignedNodes(); 2406 this.dynamicSlotMarkup = t.map((a) => a); 2407 } 2408 /** 2409 * Returns the duplicated slot markup 2410 */ 2411 getDynamicSlotMarkup() { 2412 if (this.dynamicSlotMarkup) 2413 return this.dynamicSlotMarkup.map((e) => { 2414 if (e instanceof HTMLElement && e.tagName && e.tagName.toLowerCase().startsWith("pds-")) { 2415 const t = this.cloneLitElement(e); 2416 return t.removeAttribute("slot"), t.removeAttribute("id"), t; 2417 } else { 2418 const t = e.cloneNode(!0); 2419 return t instanceof HTMLElement && (t.removeAttribute("slot"), t.removeAttribute("id")), t; 2420 } 2421 }); 2422 } 2423 /** 2424 * Checks if a slotted element is valid for its slot 2425 * Can pass the slot event on slotchange or the slot 2426 * name to validate 2427 */ 2428 handleSlotValidation(e) { 2429 let t; 2430 if (typeof e == "string") { 2431 if (t = this.querySelector( 2432 `slot[name="${e}"]` 2433 ) || this.shadowRoot?.querySelector( 2434 `slot[name="${e}"]` 2435 ), t === null) 2436 return; 2437 } else if (e) 2438 t = e.target; 2439 else if (t = this.querySelector("slot") || this.shadowRoot?.querySelector("slot"), t === null) 2440 return; 2441 const a = t.getAttribute("allowed-elements")?.split(",").map((i) => i.trim().toUpperCase()); 2442 if (typeof a > "u") 2443 return; 2444 t.assignedElements().forEach((i) => { 2445 this.validateSlottedElements(i, a) || (console.error("Invalid slotted element:", i), i.remove()); 2446 }); 2447 } 2448 /** 2449 * Checks if an element's tag name is valid, based on a list of valid tag namesubstrings 2450 */ 2451 validateSlottedElements(e, t) { 2452 return !!(e instanceof Element && t.find((a) => e.tagName.toUpperCase().includes(a))); 2453 } 2454} 2455q([ 2456 Ue({ type: Boolean, reflect: !0 }) 2457], W.prototype, "isSuspended"); 2458q([ 2459 X() 2460], W.prototype, "isHydrationComplete"); 2461q([ 2462 X() 2463], W.prototype, "hasFirstUpdatedRun"); 2464q([ 2465 X() 2466], W.prototype, "responsiveViewportSize"); 2467q([ 2468 X() 2469], W.prototype, "dynamicSlotMarkup"); 2470export { 2471 Ke as B, 2472 W as P, 2473 Rt as a, 2474 Ve as b, 2475 ze as e, 2476 m as i 2477}; 2478//# sourceMappingURL=PdsElement.chunk-BX0ldsof.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.