@richard.fadiora/liveness-detection 4.2.13 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.es.js DELETED
@@ -1,4400 +0,0 @@
1
- var vr = Object.defineProperty;
2
- var br = (n, e, t) => e in n ? vr(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t;
3
- var a = (n, e, t) => br(n, typeof e != "symbol" ? e + "" : e, t);
4
- import { FilesetResolver as Ar, FaceLandmarker as _r, HandLandmarker as wr } from "@mediapipe/tasks-vision";
5
- import Sr, { useState as Tr, useRef as _n, useEffect as wn, useCallback as Sn } from "react";
6
- import Ir from "react-webcam";
7
- import * as s from "@angular/core";
8
- import { Injectable as $, inject as Z, DOCUMENT as Wn, InjectionToken as Vt, Optional as $e, Inject as Y, ɵɵinject as Or, ɵstringify as un, createNgModule as Br, ɵRuntimeError as R, Injector as Rr, RendererStyleFlags2 as kr, ɵINTERNAL_APPLICATION_ERROR_HANDLER as Mr, ɵisPromise as Vr, ɵisSubscribable as xr, LOCALE_ID as j, DEFAULT_CURRENCY_CODE as Xn, NgModuleRef as Pr, untracked as Tn, isSignal as Lr, ɵfindLocaleData as M, ɵLocaleDataIndex as b, ɵformatRuntimeError as jr, ɵgetLocalePluralCase as Nr, Input as m, Directive as G, Host as cn, Attribute as Ur, Pipe as V, NgModule as $r, ViewChild as Gr, Output as Jn, Component as Hr, EventEmitter as In } from "@angular/core";
9
- const Yr = async (n, e, t) => {
10
- const r = new FormData();
11
- e.forEach((u, c) => {
12
- r.append("files", u, `frame_${c}.jpg`);
13
- }), r.append("challenge", JSON.stringify(t));
14
- const i = await fetch(`${n}/v1/verify`, {
15
- method: "POST",
16
- body: r
17
- });
18
- if (!i.ok)
19
- throw new Error("Network response was not ok");
20
- return await i.json();
21
- }, zr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
22
- __proto__: null,
23
- verifyLiveness: Yr
24
- }, Symbol.toStringTag, { value: "Module" }));
25
- class Qn {
26
- constructor(e) {
27
- this.models = { face: null, hand: null }, this.webcam = null, this.currentStepRef = 0, this.isStepTransitioningRef = !1, this.timerId = null, this.requestId = null, this.offscreenCanvas = document.createElement("canvas"), this.CHALLENGE_POOL = ["Smile", "Blink", "Turn_Head", "Thumbs_Up"], this.attachVideo = (t) => {
28
- this.webcam = t, console.log("[LivenessEngine] Video stream attached.");
29
- }, this.start = () => {
30
- if (this.state.status !== "ready" || !this.webcam) {
31
- console.warn("[LivenessEngine] Engine not ready or video missing.");
32
- return;
33
- }
34
- console.log("[LivenessEngine] Session Starting..."), this.state.status = "capturing", this.updateState({ status: "capturing" }), this.startTimer(), this.detectLoop();
35
- }, this.stop = () => {
36
- this.timerId && clearInterval(this.timerId), this.requestId && cancelAnimationFrame(this.requestId), this.timerId = null, this.requestId = null;
37
- }, this.reset = () => {
38
- this.stop(), this.currentStepRef = 0, this.isStepTransitioningRef = !1, this.generateSequence(), this.updateState({
39
- status: "ready",
40
- currentStep: 0,
41
- timeLeft: this.config.duration,
42
- isStepTransitioning: !1,
43
- errorMsg: ""
44
- });
45
- }, this.detectLoop = () => {
46
- var r;
47
- if (this.state.status !== "capturing" || !this.webcam || !this.models.face) return;
48
- const t = performance.now();
49
- try {
50
- const i = this.models.face.detectForVideo(this.webcam, t), o = (r = this.models.hand) == null ? void 0 : r.detectForVideo(this.webcam, t), u = this.state.sequence[this.currentStepRef];
51
- if (this.checkAction(i, o, u)) {
52
- this.handleStepSuccess();
53
- return;
54
- }
55
- } catch (i) {
56
- console.error("[LivenessEngine] Loop detection error:", i);
57
- }
58
- this.requestId = requestAnimationFrame(this.detectLoop);
59
- }, this.config = {
60
- apiUrl: e.apiUrl,
61
- duration: e.duration ?? 60,
62
- smileThreshold: e.smileThreshold ?? 0.2,
63
- blinkThreshold: e.blinkThreshold ?? 0.012,
64
- minturnHeadThreshold: e.minturnHeadThreshold ?? 0.15,
65
- maxturnHeadThreshold: e.maxturnHeadThreshold ?? 0.85,
66
- onStateChange: e.onStateChange || (() => {
67
- }),
68
- onComplete: e.onComplete || (() => {
69
- }),
70
- onError: e.onError || (() => {
71
- })
72
- }, this.state = {
73
- status: "loading",
74
- sequence: [],
75
- currentStep: 0,
76
- timeLeft: this.config.duration,
77
- isStepTransitioning: !1,
78
- errorMsg: ""
79
- }, this.offscreenCanvas.width = 224, this.offscreenCanvas.height = 224;
80
- }
81
- /**
82
- * Phase 1: Load AI Assets (Call this immediately on mount)
83
- */
84
- async loadModels() {
85
- console.log("[LivenessEngine] Loading AI Models...");
86
- try {
87
- const e = await Ar.forVisionTasks(
88
- "https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision@0.10.3/wasm"
89
- );
90
- this.models.face = await _r.createFromOptions(e, {
91
- baseOptions: {
92
- modelAssetPath: "https://storage.googleapis.com/mediapipe-models/face_landmarker/face_landmarker/float16/1/face_landmarker.task",
93
- delegate: "GPU"
94
- },
95
- outputFaceBlendshapes: !0,
96
- runningMode: "VIDEO"
97
- }), this.models.hand = await wr.createFromOptions(e, {
98
- baseOptions: {
99
- modelAssetPath: "https://storage.googleapis.com/mediapipe-models/hand_landmarker/hand_landmarker/float16/1/hand_landmarker.task",
100
- delegate: "GPU"
101
- },
102
- runningMode: "VIDEO",
103
- numHands: 1
104
- }), this.generateSequence(), this.updateState({ status: "ready" }), console.log("[LivenessEngine] Models Loaded.");
105
- } catch (e) {
106
- console.error("[LivenessEngine] Init Error:", e), this.updateState({ status: "error", errorMsg: "Failed to load security assets." });
107
- }
108
- }
109
- updateState(e) {
110
- this.state = { ...this.state, ...e }, this.config.onStateChange(this.state);
111
- }
112
- generateSequence() {
113
- const e = [...this.CHALLENGE_POOL].sort(() => 0.5 - Math.random()).slice(0, 3);
114
- return this.state.sequence = e, e;
115
- }
116
- startTimer() {
117
- this.timerId && clearInterval(this.timerId), this.timerId = setInterval(() => {
118
- this.state.timeLeft > 0 ? this.updateState({ timeLeft: this.state.timeLeft - 1 }) : (this.stop(), this.updateState({ status: "expired" }));
119
- }, 1e3);
120
- }
121
- handleStepSuccess() {
122
- this.isStepTransitioningRef || (this.isStepTransitioningRef = !0, this.updateState({ isStepTransitioning: !0 }), setTimeout(() => {
123
- this.currentStepRef < this.state.sequence.length - 1 ? (this.currentStepRef++, this.isStepTransitioningRef = !1, this.updateState({
124
- currentStep: this.currentStepRef,
125
- isStepTransitioning: !1
126
- }), this.requestId = requestAnimationFrame(this.detectLoop)) : this.sendFinalProof();
127
- }, 1500));
128
- }
129
- checkAction(e, t, r) {
130
- var i, o;
131
- if (this.isStepTransitioningRef) return !1;
132
- if (r === "Thumbs_Up" && ((i = t == null ? void 0 : t.landmarks) == null ? void 0 : i.length) > 0) {
133
- const u = t.landmarks[0];
134
- return u[4].y < u[2].y && [8, 12, 16, 20].every((c) => u[c].y > u[c - 2].y);
135
- }
136
- if (((o = e == null ? void 0 : e.faceLandmarks) == null ? void 0 : o.length) > 0) {
137
- const u = e.faceLandmarks[0];
138
- switch (r) {
139
- case "Smile":
140
- return u[291].x - u[61].x > this.config.smileThreshold;
141
- case "Blink":
142
- const c = Math.abs(u[159].y - u[145].y), d = Math.abs(u[386].y - u[374].y);
143
- return (c + d) / 2 < this.config.blinkThreshold;
144
- case "Turn_Head":
145
- const D = (u[1].x - u[33].x) / (u[263].x - u[33].x);
146
- return D < this.config.minturnHeadThreshold || D > this.config.maxturnHeadThreshold;
147
- default:
148
- return !1;
149
- }
150
- }
151
- return !1;
152
- }
153
- async sendFinalProof() {
154
- var e, t;
155
- this.stop(), this.updateState({ status: "verifying" });
156
- try {
157
- const r = [];
158
- let i = "";
159
- for (let c = 0; c < 5 && this.webcam; c++) {
160
- const d = (e = this.models.face) == null ? void 0 : e.detectForVideo(this.webcam, performance.now());
161
- if ((t = d == null ? void 0 : d.faceLandmarks) != null && t[0]) {
162
- const D = this.getFaceCrop(this.webcam, d.faceLandmarks[0]), f = await new Promise((p) => D.toBlob(p, "image/jpeg", 0.9));
163
- f && r.push(f), c === 4 && (i = D.toDataURL("image/jpeg"));
164
- }
165
- await new Promise((D) => setTimeout(D, 100));
166
- }
167
- const { verifyLiveness: o } = await Promise.resolve().then(() => zr), u = await o(this.config.apiUrl, r, this.state.sequence);
168
- if (u.is_live)
169
- this.updateState({ status: "success" }), this.config.onComplete({ success: !0, image: i, skinConfidence: u.skin_confidence });
170
- else {
171
- const c = u.reason || "Liveness check failed";
172
- this.updateState({ status: "error", errorMsg: c }), this.config.onError({ success: !1, reason: c });
173
- }
174
- } catch {
175
- this.updateState({ status: "error", errorMsg: "Verification failed." }), this.config.onError({ success: !1, reason: "Network error" });
176
- }
177
- }
178
- getFaceCrop(e, t) {
179
- const r = this.offscreenCanvas.getContext("2d"), i = t.map((h) => h.x * e.videoWidth), o = t.map((h) => h.y * e.videoHeight), u = Math.min(...i), c = Math.max(...i), d = Math.min(...o), D = Math.max(...o), f = c - u, p = D - d, y = f * 0.3;
180
- return r.clearRect(0, 0, 224, 224), r.drawImage(
181
- e,
182
- u - y,
183
- d - y,
184
- f + y * 2,
185
- p + y * 2,
186
- 0,
187
- 0,
188
- 224,
189
- 224
190
- ), this.offscreenCanvas;
191
- }
192
- }
193
- const Zr = (n) => {
194
- const [e, t] = Tr({
195
- status: "loading",
196
- sequence: [],
197
- currentStep: 0,
198
- timeLeft: n.duration || 60,
199
- isStepTransitioning: !1,
200
- errorMsg: ""
201
- }), r = _n(null), i = _n(null);
202
- wn(() => {
203
- const c = new Qn({
204
- ...n,
205
- onStateChange: (d) => t({ ...d })
206
- });
207
- return r.current = c, c.loadModels(), () => c.stop();
208
- }, []), wn(() => {
209
- var c, d;
210
- if (e.status !== "loading" && e.status !== "error") {
211
- const D = (c = i.current) == null ? void 0 : c.video;
212
- if (D && D.readyState >= 2)
213
- (d = r.current) == null || d.attachVideo(D);
214
- else {
215
- const f = setInterval(() => {
216
- var y, h;
217
- const p = (y = i.current) == null ? void 0 : y.video;
218
- p && p.readyState >= 2 && ((h = r.current) == null || h.attachVideo(p), clearInterval(f));
219
- }, 100);
220
- return () => clearInterval(f);
221
- }
222
- }
223
- }, [e.status]);
224
- const o = Sn(() => {
225
- var c;
226
- console.log("[Hook] Start Clicked"), (c = r.current) == null || c.start();
227
- }, []), u = Sn(() => {
228
- var c;
229
- console.log("[Hook] Reset Clicked"), (c = r.current) == null || c.reset();
230
- }, []);
231
- return {
232
- ...e,
233
- webcamRef: i,
234
- start: o,
235
- reset: u
236
- };
237
- };
238
- var Xt = { exports: {} }, pt = {};
239
- /**
240
- * @license React
241
- * react-jsx-runtime.production.js
242
- *
243
- * Copyright (c) Meta Platforms, Inc. and affiliates.
244
- *
245
- * This source code is licensed under the MIT license found in the
246
- * LICENSE file in the root directory of this source tree.
247
- */
248
- var On;
249
- function Kr() {
250
- if (On) return pt;
251
- On = 1;
252
- var n = Symbol.for("react.transitional.element"), e = Symbol.for("react.fragment");
253
- function t(r, i, o) {
254
- var u = null;
255
- if (o !== void 0 && (u = "" + o), i.key !== void 0 && (u = "" + i.key), "key" in i) {
256
- o = {};
257
- for (var c in i)
258
- c !== "key" && (o[c] = i[c]);
259
- } else o = i;
260
- return i = o.ref, {
261
- $$typeof: n,
262
- type: r,
263
- key: u,
264
- ref: i !== void 0 ? i : null,
265
- props: o
266
- };
267
- }
268
- return pt.Fragment = e, pt.jsx = t, pt.jsxs = t, pt;
269
- }
270
- var Dt = {};
271
- /**
272
- * @license React
273
- * react-jsx-runtime.development.js
274
- *
275
- * Copyright (c) Meta Platforms, Inc. and affiliates.
276
- *
277
- * This source code is licensed under the MIT license found in the
278
- * LICENSE file in the root directory of this source tree.
279
- */
280
- var Bn;
281
- function qr() {
282
- return Bn || (Bn = 1, process.env.NODE_ENV !== "production" && function() {
283
- function n(l) {
284
- if (l == null) return null;
285
- if (typeof l == "function")
286
- return l.$$typeof === Cr ? null : l.displayName || l.name || null;
287
- if (typeof l == "string") return l;
288
- switch (l) {
289
- case N:
290
- return "Fragment";
291
- case J:
292
- return "Profiler";
293
- case Ce:
294
- return "StrictMode";
295
- case hr:
296
- return "Suspense";
297
- case gr:
298
- return "SuspenseList";
299
- case yr:
300
- return "Activity";
301
- }
302
- if (typeof l == "object")
303
- switch (typeof l.tag == "number" && console.error(
304
- "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
305
- ), l.$$typeof) {
306
- case T:
307
- return "Portal";
308
- case dt:
309
- return l.displayName || "Context";
310
- case Ct:
311
- return (l._context.displayName || "Context") + ".Consumer";
312
- case Ft:
313
- var g = l.render;
314
- return l = l.displayName, l || (l = g.displayName || g.name || "", l = l !== "" ? "ForwardRef(" + l + ")" : "ForwardRef"), l;
315
- case mr:
316
- return g = l.displayName || null, g !== null ? g : n(l.type) || "Memo";
317
- case Lt:
318
- g = l._payload, l = l._init;
319
- try {
320
- return n(l(g));
321
- } catch {
322
- }
323
- }
324
- return null;
325
- }
326
- function e(l) {
327
- return "" + l;
328
- }
329
- function t(l) {
330
- try {
331
- e(l);
332
- var g = !1;
333
- } catch {
334
- g = !0;
335
- }
336
- if (g) {
337
- g = console;
338
- var E = g.error, I = typeof Symbol == "function" && Symbol.toStringTag && l[Symbol.toStringTag] || l.constructor.name || "Object";
339
- return E.call(
340
- g,
341
- "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
342
- I
343
- ), e(l);
344
- }
345
- }
346
- function r(l) {
347
- if (l === N) return "<>";
348
- if (typeof l == "object" && l !== null && l.$$typeof === Lt)
349
- return "<...>";
350
- try {
351
- var g = n(l);
352
- return g ? "<" + g + ">" : "<...>";
353
- } catch {
354
- return "<...>";
355
- }
356
- }
357
- function i() {
358
- var l = jt.A;
359
- return l === null ? null : l.getOwner();
360
- }
361
- function o() {
362
- return Error("react-stack-top-frame");
363
- }
364
- function u(l) {
365
- if (Cn.call(l, "key")) {
366
- var g = Object.getOwnPropertyDescriptor(l, "key").get;
367
- if (g && g.isReactWarning) return !1;
368
- }
369
- return l.key !== void 0;
370
- }
371
- function c(l, g) {
372
- function E() {
373
- Fn || (Fn = !0, console.error(
374
- "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
375
- g
376
- ));
377
- }
378
- E.isReactWarning = !0, Object.defineProperty(l, "key", {
379
- get: E,
380
- configurable: !0
381
- });
382
- }
383
- function d() {
384
- var l = n(this.type);
385
- return En[l] || (En[l] = !0, console.error(
386
- "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
387
- )), l = this.props.ref, l !== void 0 ? l : null;
388
- }
389
- function D(l, g, E, I, Et, Ut) {
390
- var O = E.ref;
391
- return l = {
392
- $$typeof: _,
393
- type: l,
394
- key: g,
395
- props: E,
396
- _owner: I
397
- }, (O !== void 0 ? O : null) !== null ? Object.defineProperty(l, "ref", {
398
- enumerable: !1,
399
- get: d
400
- }) : Object.defineProperty(l, "ref", { enumerable: !1, value: null }), l._store = {}, Object.defineProperty(l._store, "validated", {
401
- configurable: !1,
402
- enumerable: !1,
403
- writable: !0,
404
- value: 0
405
- }), Object.defineProperty(l, "_debugInfo", {
406
- configurable: !1,
407
- enumerable: !1,
408
- writable: !0,
409
- value: null
410
- }), Object.defineProperty(l, "_debugStack", {
411
- configurable: !1,
412
- enumerable: !1,
413
- writable: !0,
414
- value: Et
415
- }), Object.defineProperty(l, "_debugTask", {
416
- configurable: !1,
417
- enumerable: !1,
418
- writable: !0,
419
- value: Ut
420
- }), Object.freeze && (Object.freeze(l.props), Object.freeze(l)), l;
421
- }
422
- function f(l, g, E, I, Et, Ut) {
423
- var O = g.children;
424
- if (O !== void 0)
425
- if (I)
426
- if (Fr(O)) {
427
- for (I = 0; I < O.length; I++)
428
- p(O[I]);
429
- Object.freeze && Object.freeze(O);
430
- } else
431
- console.error(
432
- "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
433
- );
434
- else p(O);
435
- if (Cn.call(g, "key")) {
436
- O = n(l);
437
- var Fe = Object.keys(g).filter(function(Er) {
438
- return Er !== "key";
439
- });
440
- I = 0 < Fe.length ? "{key: someKey, " + Fe.join(": ..., ") + ": ...}" : "{key: someKey}", An[O + I] || (Fe = 0 < Fe.length ? "{" + Fe.join(": ..., ") + ": ...}" : "{}", console.error(
441
- `A props object containing a "key" prop is being spread into JSX:
442
- let props = %s;
443
- <%s {...props} />
444
- React keys must be passed directly to JSX without using spread:
445
- let props = %s;
446
- <%s key={someKey} {...props} />`,
447
- I,
448
- O,
449
- Fe,
450
- O
451
- ), An[O + I] = !0);
452
- }
453
- if (O = null, E !== void 0 && (t(E), O = "" + E), u(g) && (t(g.key), O = "" + g.key), "key" in g) {
454
- E = {};
455
- for (var $t in g)
456
- $t !== "key" && (E[$t] = g[$t]);
457
- } else E = g;
458
- return O && c(
459
- E,
460
- typeof l == "function" ? l.displayName || l.name || "Unknown" : l
461
- ), D(
462
- l,
463
- O,
464
- E,
465
- i(),
466
- Et,
467
- Ut
468
- );
469
- }
470
- function p(l) {
471
- y(l) ? l._store && (l._store.validated = 1) : typeof l == "object" && l !== null && l.$$typeof === Lt && (l._payload.status === "fulfilled" ? y(l._payload.value) && l._payload.value._store && (l._payload.value._store.validated = 1) : l._store && (l._store.validated = 1));
472
- }
473
- function y(l) {
474
- return typeof l == "object" && l !== null && l.$$typeof === _;
475
- }
476
- var h = Sr, _ = Symbol.for("react.transitional.element"), T = Symbol.for("react.portal"), N = Symbol.for("react.fragment"), Ce = Symbol.for("react.strict_mode"), J = Symbol.for("react.profiler"), Ct = Symbol.for("react.consumer"), dt = Symbol.for("react.context"), Ft = Symbol.for("react.forward_ref"), hr = Symbol.for("react.suspense"), gr = Symbol.for("react.suspense_list"), mr = Symbol.for("react.memo"), Lt = Symbol.for("react.lazy"), yr = Symbol.for("react.activity"), Cr = Symbol.for("react.client.reference"), jt = h.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, Cn = Object.prototype.hasOwnProperty, Fr = Array.isArray, Nt = console.createTask ? console.createTask : function() {
477
- return null;
478
- };
479
- h = {
480
- react_stack_bottom_frame: function(l) {
481
- return l();
482
- }
483
- };
484
- var Fn, En = {}, vn = h.react_stack_bottom_frame.bind(
485
- h,
486
- o
487
- )(), bn = Nt(r(o)), An = {};
488
- Dt.Fragment = N, Dt.jsx = function(l, g, E) {
489
- var I = 1e4 > jt.recentlyCreatedOwnerStacks++;
490
- return f(
491
- l,
492
- g,
493
- E,
494
- !1,
495
- I ? Error("react-stack-top-frame") : vn,
496
- I ? Nt(r(l)) : bn
497
- );
498
- }, Dt.jsxs = function(l, g, E) {
499
- var I = 1e4 > jt.recentlyCreatedOwnerStacks++;
500
- return f(
501
- l,
502
- g,
503
- E,
504
- !0,
505
- I ? Error("react-stack-top-frame") : vn,
506
- I ? Nt(r(l)) : bn
507
- );
508
- };
509
- }()), Dt;
510
- }
511
- process.env.NODE_ENV === "production" ? Xt.exports = Kr() : Xt.exports = qr();
512
- var x = Xt.exports;
513
- const hi = ({
514
- apiUrl: n,
515
- duration: e,
516
- onComplete: t,
517
- onError: r,
518
- classNames: i = {},
519
- render: o,
520
- smileThreshold: u,
521
- blinkThreshold: c,
522
- minturnHeadThreshold: d,
523
- maxturnHeadThreshold: D
524
- }) => {
525
- var p;
526
- const f = Zr({ apiUrl: n, duration: e, smileThreshold: u, blinkThreshold: c, minturnHeadThreshold: d, maxturnHeadThreshold: D, onComplete: t, onError: r });
527
- return o ? o(f) : /* @__PURE__ */ x.jsxs("div", { className: i.container, children: [
528
- f.status === "loading" && /* @__PURE__ */ x.jsx("div", { children: "Initializing..." }),
529
- ["ready", "capturing", "verifying"].includes(f.status) && /* @__PURE__ */ x.jsxs(x.Fragment, { children: [
530
- /* @__PURE__ */ x.jsx(
531
- Ir,
532
- {
533
- ref: f.webcamRef,
534
- mirrored: !0,
535
- screenshotFormat: "image/jpeg",
536
- className: i.webcam
537
- }
538
- ),
539
- f.status === "capturing" && /* @__PURE__ */ x.jsx("div", { className: "liveness-challenge", children: f.isStepTransitioning ? "Step verified! Get ready for the next..." : `Do this: ${(p = f.sequence[f.currentStep]) == null ? void 0 : p.replace("_", " ")}` }),
540
- ["capturing", "ready"].includes(f.status) && /* @__PURE__ */ x.jsxs("div", { className: i.timer, children: [
541
- f.timeLeft,
542
- "s"
543
- ] }),
544
- f.status === "ready" && /* @__PURE__ */ x.jsx("button", { onClick: f.start, className: i.button, children: "Start Challenge" }),
545
- f.status === "verifying" && /* @__PURE__ */ x.jsx("div", { children: "Analyzing..." })
546
- ] }),
547
- f.status === "error" && /* @__PURE__ */ x.jsxs("div", { className: i.error, children: [
548
- f.errorMsg,
549
- /* @__PURE__ */ x.jsx("button", { onClick: f.reset, className: i.button, children: "Retry" })
550
- ] }),
551
- f.status === "success" && /* @__PURE__ */ x.jsx("div", { className: i.success, children: "Verification Complete" })
552
- ] });
553
- };
554
- var Jt = function(n, e) {
555
- return Jt = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(t, r) {
556
- t.__proto__ = r;
557
- } || function(t, r) {
558
- for (var i in r) Object.prototype.hasOwnProperty.call(r, i) && (t[i] = r[i]);
559
- }, Jt(n, e);
560
- };
561
- function yt(n, e) {
562
- if (typeof e != "function" && e !== null)
563
- throw new TypeError("Class extends value " + String(e) + " is not a constructor or null");
564
- Jt(n, e);
565
- function t() {
566
- this.constructor = n;
567
- }
568
- n.prototype = e === null ? Object.create(e) : (t.prototype = e.prototype, new t());
569
- }
570
- function Qt(n) {
571
- var e = typeof Symbol == "function" && Symbol.iterator, t = e && n[e], r = 0;
572
- if (t) return t.call(n);
573
- if (n && typeof n.length == "number") return {
574
- next: function() {
575
- return n && r >= n.length && (n = void 0), { value: n && n[r++], done: !n };
576
- }
577
- };
578
- throw new TypeError(e ? "Object is not iterable." : "Symbol.iterator is not defined.");
579
- }
580
- function en(n, e) {
581
- var t = typeof Symbol == "function" && n[Symbol.iterator];
582
- if (!t) return n;
583
- var r = t.call(n), i, o = [], u;
584
- try {
585
- for (; (e === void 0 || e-- > 0) && !(i = r.next()).done; ) o.push(i.value);
586
- } catch (c) {
587
- u = { error: c };
588
- } finally {
589
- try {
590
- i && !i.done && (t = r.return) && t.call(r);
591
- } finally {
592
- if (u) throw u.error;
593
- }
594
- }
595
- return o;
596
- }
597
- function tn(n, e, t) {
598
- if (t || arguments.length === 2) for (var r = 0, i = e.length, o; r < i; r++)
599
- (o || !(r in e)) && (o || (o = Array.prototype.slice.call(e, 0, r)), o[r] = e[r]);
600
- return n.concat(o || Array.prototype.slice.call(e));
601
- }
602
- function W(n) {
603
- return typeof n == "function";
604
- }
605
- function er(n) {
606
- var e = function(r) {
607
- Error.call(r), r.stack = new Error().stack;
608
- }, t = n(e);
609
- return t.prototype = Object.create(Error.prototype), t.prototype.constructor = t, t;
610
- }
611
- var Gt = er(function(n) {
612
- return function(t) {
613
- n(this), this.message = t ? t.length + ` errors occurred during unsubscription:
614
- ` + t.map(function(r, i) {
615
- return i + 1 + ") " + r.toString();
616
- }).join(`
617
- `) : "", this.name = "UnsubscriptionError", this.errors = t;
618
- };
619
- });
620
- function nn(n, e) {
621
- if (n) {
622
- var t = n.indexOf(e);
623
- 0 <= t && n.splice(t, 1);
624
- }
625
- }
626
- var xt = function() {
627
- function n(e) {
628
- this.initialTeardown = e, this.closed = !1, this._parentage = null, this._finalizers = null;
629
- }
630
- return n.prototype.unsubscribe = function() {
631
- var e, t, r, i, o;
632
- if (!this.closed) {
633
- this.closed = !0;
634
- var u = this._parentage;
635
- if (u)
636
- if (this._parentage = null, Array.isArray(u))
637
- try {
638
- for (var c = Qt(u), d = c.next(); !d.done; d = c.next()) {
639
- var D = d.value;
640
- D.remove(this);
641
- }
642
- } catch (T) {
643
- e = { error: T };
644
- } finally {
645
- try {
646
- d && !d.done && (t = c.return) && t.call(c);
647
- } finally {
648
- if (e) throw e.error;
649
- }
650
- }
651
- else
652
- u.remove(this);
653
- var f = this.initialTeardown;
654
- if (W(f))
655
- try {
656
- f();
657
- } catch (T) {
658
- o = T instanceof Gt ? T.errors : [T];
659
- }
660
- var p = this._finalizers;
661
- if (p) {
662
- this._finalizers = null;
663
- try {
664
- for (var y = Qt(p), h = y.next(); !h.done; h = y.next()) {
665
- var _ = h.value;
666
- try {
667
- Rn(_);
668
- } catch (T) {
669
- o = o ?? [], T instanceof Gt ? o = tn(tn([], en(o)), en(T.errors)) : o.push(T);
670
- }
671
- }
672
- } catch (T) {
673
- r = { error: T };
674
- } finally {
675
- try {
676
- h && !h.done && (i = y.return) && i.call(y);
677
- } finally {
678
- if (r) throw r.error;
679
- }
680
- }
681
- }
682
- if (o)
683
- throw new Gt(o);
684
- }
685
- }, n.prototype.add = function(e) {
686
- var t;
687
- if (e && e !== this)
688
- if (this.closed)
689
- Rn(e);
690
- else {
691
- if (e instanceof n) {
692
- if (e.closed || e._hasParent(this))
693
- return;
694
- e._addParent(this);
695
- }
696
- (this._finalizers = (t = this._finalizers) !== null && t !== void 0 ? t : []).push(e);
697
- }
698
- }, n.prototype._hasParent = function(e) {
699
- var t = this._parentage;
700
- return t === e || Array.isArray(t) && t.includes(e);
701
- }, n.prototype._addParent = function(e) {
702
- var t = this._parentage;
703
- this._parentage = Array.isArray(t) ? (t.push(e), t) : t ? [t, e] : e;
704
- }, n.prototype._removeParent = function(e) {
705
- var t = this._parentage;
706
- t === e ? this._parentage = null : Array.isArray(t) && nn(t, e);
707
- }, n.prototype.remove = function(e) {
708
- var t = this._finalizers;
709
- t && nn(t, e), e instanceof n && e._removeParent(this);
710
- }, n.EMPTY = function() {
711
- var e = new n();
712
- return e.closed = !0, e;
713
- }(), n;
714
- }(), tr = xt.EMPTY;
715
- function nr(n) {
716
- return n instanceof xt || n && "closed" in n && W(n.remove) && W(n.add) && W(n.unsubscribe);
717
- }
718
- function Rn(n) {
719
- W(n) ? n() : n.unsubscribe();
720
- }
721
- var Wr = {
722
- Promise: void 0
723
- }, Xr = {
724
- setTimeout: function(n, e) {
725
- for (var t = [], r = 2; r < arguments.length; r++)
726
- t[r - 2] = arguments[r];
727
- return setTimeout.apply(void 0, tn([n, e], en(t)));
728
- },
729
- clearTimeout: function(n) {
730
- return clearTimeout(n);
731
- },
732
- delegate: void 0
733
- };
734
- function Jr(n) {
735
- Xr.setTimeout(function() {
736
- throw n;
737
- });
738
- }
739
- function kn() {
740
- }
741
- function It(n) {
742
- n();
743
- }
744
- var rr = function(n) {
745
- yt(e, n);
746
- function e(t) {
747
- var r = n.call(this) || this;
748
- return r.isStopped = !1, t ? (r.destination = t, nr(t) && t.add(r)) : r.destination = ts, r;
749
- }
750
- return e.create = function(t, r, i) {
751
- return new rn(t, r, i);
752
- }, e.prototype.next = function(t) {
753
- this.isStopped || this._next(t);
754
- }, e.prototype.error = function(t) {
755
- this.isStopped || (this.isStopped = !0, this._error(t));
756
- }, e.prototype.complete = function() {
757
- this.isStopped || (this.isStopped = !0, this._complete());
758
- }, e.prototype.unsubscribe = function() {
759
- this.closed || (this.isStopped = !0, n.prototype.unsubscribe.call(this), this.destination = null);
760
- }, e.prototype._next = function(t) {
761
- this.destination.next(t);
762
- }, e.prototype._error = function(t) {
763
- try {
764
- this.destination.error(t);
765
- } finally {
766
- this.unsubscribe();
767
- }
768
- }, e.prototype._complete = function() {
769
- try {
770
- this.destination.complete();
771
- } finally {
772
- this.unsubscribe();
773
- }
774
- }, e;
775
- }(xt), Qr = function() {
776
- function n(e) {
777
- this.partialObserver = e;
778
- }
779
- return n.prototype.next = function(e) {
780
- var t = this.partialObserver;
781
- if (t.next)
782
- try {
783
- t.next(e);
784
- } catch (r) {
785
- vt(r);
786
- }
787
- }, n.prototype.error = function(e) {
788
- var t = this.partialObserver;
789
- if (t.error)
790
- try {
791
- t.error(e);
792
- } catch (r) {
793
- vt(r);
794
- }
795
- else
796
- vt(e);
797
- }, n.prototype.complete = function() {
798
- var e = this.partialObserver;
799
- if (e.complete)
800
- try {
801
- e.complete();
802
- } catch (t) {
803
- vt(t);
804
- }
805
- }, n;
806
- }(), rn = function(n) {
807
- yt(e, n);
808
- function e(t, r, i) {
809
- var o = n.call(this) || this, u;
810
- return W(t) || !t ? u = {
811
- next: t ?? void 0,
812
- error: r ?? void 0,
813
- complete: i ?? void 0
814
- } : u = t, o.destination = new Qr(u), o;
815
- }
816
- return e;
817
- }(rr);
818
- function vt(n) {
819
- Jr(n);
820
- }
821
- function es(n) {
822
- throw n;
823
- }
824
- var ts = {
825
- closed: !0,
826
- next: kn,
827
- error: es,
828
- complete: kn
829
- }, ns = function() {
830
- return typeof Symbol == "function" && Symbol.observable || "@@observable";
831
- }();
832
- function rs(n) {
833
- return n;
834
- }
835
- function ss(n) {
836
- return n.length === 0 ? rs : n.length === 1 ? n[0] : function(t) {
837
- return n.reduce(function(r, i) {
838
- return i(r);
839
- }, t);
840
- };
841
- }
842
- var Mn = function() {
843
- function n(e) {
844
- e && (this._subscribe = e);
845
- }
846
- return n.prototype.lift = function(e) {
847
- var t = new n();
848
- return t.source = this, t.operator = e, t;
849
- }, n.prototype.subscribe = function(e, t, r) {
850
- var i = this, o = os(e) ? e : new rn(e, t, r);
851
- return It(function() {
852
- var u = i, c = u.operator, d = u.source;
853
- o.add(c ? c.call(o, d) : d ? i._subscribe(o) : i._trySubscribe(o));
854
- }), o;
855
- }, n.prototype._trySubscribe = function(e) {
856
- try {
857
- return this._subscribe(e);
858
- } catch (t) {
859
- e.error(t);
860
- }
861
- }, n.prototype.forEach = function(e, t) {
862
- var r = this;
863
- return t = Vn(t), new t(function(i, o) {
864
- var u = new rn({
865
- next: function(c) {
866
- try {
867
- e(c);
868
- } catch (d) {
869
- o(d), u.unsubscribe();
870
- }
871
- },
872
- error: o,
873
- complete: i
874
- });
875
- r.subscribe(u);
876
- });
877
- }, n.prototype._subscribe = function(e) {
878
- var t;
879
- return (t = this.source) === null || t === void 0 ? void 0 : t.subscribe(e);
880
- }, n.prototype[ns] = function() {
881
- return this;
882
- }, n.prototype.pipe = function() {
883
- for (var e = [], t = 0; t < arguments.length; t++)
884
- e[t] = arguments[t];
885
- return ss(e)(this);
886
- }, n.prototype.toPromise = function(e) {
887
- var t = this;
888
- return e = Vn(e), new e(function(r, i) {
889
- var o;
890
- t.subscribe(function(u) {
891
- return o = u;
892
- }, function(u) {
893
- return i(u);
894
- }, function() {
895
- return r(o);
896
- });
897
- });
898
- }, n.create = function(e) {
899
- return new n(e);
900
- }, n;
901
- }();
902
- function Vn(n) {
903
- var e;
904
- return (e = n ?? Wr.Promise) !== null && e !== void 0 ? e : Promise;
905
- }
906
- function is(n) {
907
- return n && W(n.next) && W(n.error) && W(n.complete);
908
- }
909
- function os(n) {
910
- return n && n instanceof rr || is(n) && nr(n);
911
- }
912
- var as = er(function(n) {
913
- return function() {
914
- n(this), this.name = "ObjectUnsubscribedError", this.message = "object unsubscribed";
915
- };
916
- }), ln = function(n) {
917
- yt(e, n);
918
- function e() {
919
- var t = n.call(this) || this;
920
- return t.closed = !1, t.currentObservers = null, t.observers = [], t.isStopped = !1, t.hasError = !1, t.thrownError = null, t;
921
- }
922
- return e.prototype.lift = function(t) {
923
- var r = new xn(this, this);
924
- return r.operator = t, r;
925
- }, e.prototype._throwIfClosed = function() {
926
- if (this.closed)
927
- throw new as();
928
- }, e.prototype.next = function(t) {
929
- var r = this;
930
- It(function() {
931
- var i, o;
932
- if (r._throwIfClosed(), !r.isStopped) {
933
- r.currentObservers || (r.currentObservers = Array.from(r.observers));
934
- try {
935
- for (var u = Qt(r.currentObservers), c = u.next(); !c.done; c = u.next()) {
936
- var d = c.value;
937
- d.next(t);
938
- }
939
- } catch (D) {
940
- i = { error: D };
941
- } finally {
942
- try {
943
- c && !c.done && (o = u.return) && o.call(u);
944
- } finally {
945
- if (i) throw i.error;
946
- }
947
- }
948
- }
949
- });
950
- }, e.prototype.error = function(t) {
951
- var r = this;
952
- It(function() {
953
- if (r._throwIfClosed(), !r.isStopped) {
954
- r.hasError = r.isStopped = !0, r.thrownError = t;
955
- for (var i = r.observers; i.length; )
956
- i.shift().error(t);
957
- }
958
- });
959
- }, e.prototype.complete = function() {
960
- var t = this;
961
- It(function() {
962
- if (t._throwIfClosed(), !t.isStopped) {
963
- t.isStopped = !0;
964
- for (var r = t.observers; r.length; )
965
- r.shift().complete();
966
- }
967
- });
968
- }, e.prototype.unsubscribe = function() {
969
- this.isStopped = this.closed = !0, this.observers = this.currentObservers = null;
970
- }, Object.defineProperty(e.prototype, "observed", {
971
- get: function() {
972
- var t;
973
- return ((t = this.observers) === null || t === void 0 ? void 0 : t.length) > 0;
974
- },
975
- enumerable: !1,
976
- configurable: !0
977
- }), e.prototype._trySubscribe = function(t) {
978
- return this._throwIfClosed(), n.prototype._trySubscribe.call(this, t);
979
- }, e.prototype._subscribe = function(t) {
980
- return this._throwIfClosed(), this._checkFinalizedStatuses(t), this._innerSubscribe(t);
981
- }, e.prototype._innerSubscribe = function(t) {
982
- var r = this, i = this, o = i.hasError, u = i.isStopped, c = i.observers;
983
- return o || u ? tr : (this.currentObservers = null, c.push(t), new xt(function() {
984
- r.currentObservers = null, nn(c, t);
985
- }));
986
- }, e.prototype._checkFinalizedStatuses = function(t) {
987
- var r = this, i = r.hasError, o = r.thrownError, u = r.isStopped;
988
- i ? t.error(o) : u && t.complete();
989
- }, e.prototype.asObservable = function() {
990
- var t = new Mn();
991
- return t.source = this, t;
992
- }, e.create = function(t, r) {
993
- return new xn(t, r);
994
- }, e;
995
- }(Mn), xn = function(n) {
996
- yt(e, n);
997
- function e(t, r) {
998
- var i = n.call(this) || this;
999
- return i.destination = t, i.source = r, i;
1000
- }
1001
- return e.prototype.next = function(t) {
1002
- var r, i;
1003
- (i = (r = this.destination) === null || r === void 0 ? void 0 : r.next) === null || i === void 0 || i.call(r, t);
1004
- }, e.prototype.error = function(t) {
1005
- var r, i;
1006
- (i = (r = this.destination) === null || r === void 0 ? void 0 : r.error) === null || i === void 0 || i.call(r, t);
1007
- }, e.prototype.complete = function() {
1008
- var t, r;
1009
- (r = (t = this.destination) === null || t === void 0 ? void 0 : t.complete) === null || r === void 0 || r.call(t);
1010
- }, e.prototype._subscribe = function(t) {
1011
- var r, i;
1012
- return (i = (r = this.source) === null || r === void 0 ? void 0 : r.subscribe(t)) !== null && i !== void 0 ? i : tr;
1013
- }, e;
1014
- }(ln), us = function(n) {
1015
- yt(e, n);
1016
- function e(t) {
1017
- var r = n.call(this) || this;
1018
- return r._value = t, r;
1019
- }
1020
- return Object.defineProperty(e.prototype, "value", {
1021
- get: function() {
1022
- return this.getValue();
1023
- },
1024
- enumerable: !1,
1025
- configurable: !0
1026
- }), e.prototype._subscribe = function(t) {
1027
- var r = n.prototype._subscribe.call(this, t);
1028
- return !r.closed && t.next(this._value), r;
1029
- }, e.prototype.getValue = function() {
1030
- var t = this, r = t.hasError, i = t.thrownError, o = t._value;
1031
- if (r)
1032
- throw i;
1033
- return this._throwIfClosed(), o;
1034
- }, e.prototype.next = function(t) {
1035
- n.prototype.next.call(this, this._value = t);
1036
- }, e;
1037
- }(ln), cs = Object.getOwnPropertyDescriptor, ls = (n, e, t, r) => {
1038
- for (var i = r > 1 ? void 0 : r ? cs(e, t) : e, o = n.length - 1, u; o >= 0; o--)
1039
- (u = n[o]) && (i = u(i) || i);
1040
- return i;
1041
- };
1042
- let Pn = class {
1043
- constructor(n) {
1044
- this.ngZone = n, this.stateSubject = new us(null), this.state$ = this.stateSubject.asObservable();
1045
- }
1046
- init(n) {
1047
- this.ngZone.runOutsideAngular(() => {
1048
- this.engine = new Qn({
1049
- ...n,
1050
- onStateChange: (e) => {
1051
- this.ngZone.run(() => this.stateSubject.next(e));
1052
- }
1053
- }), this.engine.loadModels();
1054
- });
1055
- }
1056
- attach(n) {
1057
- var e;
1058
- (e = this.engine) == null || e.attachVideo(n);
1059
- }
1060
- start() {
1061
- var n;
1062
- (n = this.engine) == null || n.start();
1063
- }
1064
- reset() {
1065
- var n;
1066
- (n = this.engine) == null || n.reset();
1067
- }
1068
- ngOnDestroy() {
1069
- var n;
1070
- (n = this.engine) == null || n.stop();
1071
- }
1072
- };
1073
- Pn = ls([
1074
- $({ providedIn: "root" })
1075
- ], Pn);
1076
- /**
1077
- * @license Angular v21.2.3
1078
- * (c) 2010-2026 Google LLC. https://angular.dev/
1079
- * License: MIT
1080
- */
1081
- let fs = null;
1082
- function Ht() {
1083
- return fs;
1084
- }
1085
- const ve = class ve {
1086
- historyGo(e) {
1087
- throw new Error(ngDevMode ? "Not implemented" : "");
1088
- }
1089
- };
1090
- a(ve, "ɵfac", s.ɵɵngDeclareFactory({
1091
- minVersion: "12.0.0",
1092
- version: "21.2.3",
1093
- ngImport: s,
1094
- type: ve,
1095
- deps: [],
1096
- target: s.ɵɵFactoryTarget.Injectable
1097
- })), a(ve, "ɵprov", s.ɵɵngDeclareInjectable({
1098
- minVersion: "12.0.0",
1099
- version: "21.2.3",
1100
- ngImport: s,
1101
- type: ve,
1102
- providedIn: "platform",
1103
- useFactory: () => Z(Ge)
1104
- }));
1105
- let te = ve;
1106
- s.ɵɵngDeclareClassMetadata({
1107
- minVersion: "12.0.0",
1108
- version: "21.2.3",
1109
- ngImport: s,
1110
- type: te,
1111
- decorators: [{
1112
- type: $,
1113
- args: [{
1114
- providedIn: "platform",
1115
- useFactory: () => Z(Ge)
1116
- }]
1117
- }]
1118
- });
1119
- new Vt(typeof ngDevMode < "u" && ngDevMode ? "Location Initialized" : "");
1120
- const oe = class oe extends te {
1121
- constructor() {
1122
- super();
1123
- a(this, "_location");
1124
- a(this, "_history");
1125
- a(this, "_doc", Z(Wn));
1126
- this._location = window.location, this._history = window.history;
1127
- }
1128
- getBaseHrefFromDOM() {
1129
- return Ht().getBaseHref(this._doc);
1130
- }
1131
- onPopState(t) {
1132
- const r = Ht().getGlobalEventTarget(this._doc, "window");
1133
- return r.addEventListener("popstate", t, !1), () => r.removeEventListener("popstate", t);
1134
- }
1135
- onHashChange(t) {
1136
- const r = Ht().getGlobalEventTarget(this._doc, "window");
1137
- return r.addEventListener("hashchange", t, !1), () => r.removeEventListener("hashchange", t);
1138
- }
1139
- get href() {
1140
- return this._location.href;
1141
- }
1142
- get protocol() {
1143
- return this._location.protocol;
1144
- }
1145
- get hostname() {
1146
- return this._location.hostname;
1147
- }
1148
- get port() {
1149
- return this._location.port;
1150
- }
1151
- get pathname() {
1152
- return this._location.pathname;
1153
- }
1154
- get search() {
1155
- return this._location.search;
1156
- }
1157
- get hash() {
1158
- return this._location.hash;
1159
- }
1160
- set pathname(t) {
1161
- this._location.pathname = t;
1162
- }
1163
- pushState(t, r, i) {
1164
- this._history.pushState(t, r, i);
1165
- }
1166
- replaceState(t, r, i) {
1167
- this._history.replaceState(t, r, i);
1168
- }
1169
- forward() {
1170
- this._history.forward();
1171
- }
1172
- back() {
1173
- this._history.back();
1174
- }
1175
- historyGo(t = 0) {
1176
- this._history.go(t);
1177
- }
1178
- getState() {
1179
- return this._history.state;
1180
- }
1181
- };
1182
- a(oe, "ɵfac", s.ɵɵngDeclareFactory({
1183
- minVersion: "12.0.0",
1184
- version: "21.2.3",
1185
- ngImport: s,
1186
- type: oe,
1187
- deps: [],
1188
- target: s.ɵɵFactoryTarget.Injectable
1189
- })), a(oe, "ɵprov", s.ɵɵngDeclareInjectable({
1190
- minVersion: "12.0.0",
1191
- version: "21.2.3",
1192
- ngImport: s,
1193
- type: oe,
1194
- providedIn: "platform",
1195
- useFactory: () => new oe()
1196
- }));
1197
- let Ge = oe;
1198
- s.ɵɵngDeclareClassMetadata({
1199
- minVersion: "12.0.0",
1200
- version: "21.2.3",
1201
- ngImport: s,
1202
- type: Ge,
1203
- decorators: [{
1204
- type: $,
1205
- args: [{
1206
- providedIn: "platform",
1207
- useFactory: () => new Ge()
1208
- }]
1209
- }],
1210
- ctorParameters: () => []
1211
- });
1212
- /**
1213
- * @license Angular v21.2.3
1214
- * (c) 2010-2026 Google LLC. https://angular.dev/
1215
- * License: MIT
1216
- */
1217
- function fn(n, e) {
1218
- return n ? e ? n.endsWith("/") ? e.startsWith("/") ? n + e.slice(1) : n + e : e.startsWith("/") ? n + e : `${n}/${e}` : n : e;
1219
- }
1220
- function Ln(n) {
1221
- const e = n.search(/#|\?|$/);
1222
- return n[e - 1] === "/" ? n.slice(0, e - 1) + n.slice(e) : n;
1223
- }
1224
- function q(n) {
1225
- return n && n[0] !== "?" ? `?${n}` : n;
1226
- }
1227
- const be = class be {
1228
- historyGo(e) {
1229
- throw new Error(ngDevMode ? "Not implemented" : "");
1230
- }
1231
- };
1232
- a(be, "ɵfac", s.ɵɵngDeclareFactory({
1233
- minVersion: "12.0.0",
1234
- version: "21.2.3",
1235
- ngImport: s,
1236
- type: be,
1237
- deps: [],
1238
- target: s.ɵɵFactoryTarget.Injectable
1239
- })), a(be, "ɵprov", s.ɵɵngDeclareInjectable({
1240
- minVersion: "12.0.0",
1241
- version: "21.2.3",
1242
- ngImport: s,
1243
- type: be,
1244
- providedIn: "root",
1245
- useFactory: () => Z(ye)
1246
- }));
1247
- let ne = be;
1248
- s.ɵɵngDeclareClassMetadata({
1249
- minVersion: "12.0.0",
1250
- version: "21.2.3",
1251
- ngImport: s,
1252
- type: ne,
1253
- decorators: [{
1254
- type: $,
1255
- args: [{
1256
- providedIn: "root",
1257
- useFactory: () => Z(ye)
1258
- }]
1259
- }]
1260
- });
1261
- const Pt = new Vt(typeof ngDevMode < "u" && ngDevMode ? "appBaseHref" : ""), Ae = class Ae extends ne {
1262
- constructor(t, r) {
1263
- var i;
1264
- super();
1265
- a(this, "_platformLocation");
1266
- a(this, "_baseHref");
1267
- a(this, "_removeListenerFns", []);
1268
- this._platformLocation = t, this._baseHref = r ?? this._platformLocation.getBaseHrefFromDOM() ?? ((i = Z(Wn).location) == null ? void 0 : i.origin) ?? "";
1269
- }
1270
- ngOnDestroy() {
1271
- for (; this._removeListenerFns.length; )
1272
- this._removeListenerFns.pop()();
1273
- }
1274
- onPopState(t) {
1275
- this._removeListenerFns.push(this._platformLocation.onPopState(t), this._platformLocation.onHashChange(t));
1276
- }
1277
- getBaseHref() {
1278
- return this._baseHref;
1279
- }
1280
- prepareExternalUrl(t) {
1281
- return fn(this._baseHref, t);
1282
- }
1283
- path(t = !1) {
1284
- const r = this._platformLocation.pathname + q(this._platformLocation.search), i = this._platformLocation.hash;
1285
- return i && t ? `${r}${i}` : r;
1286
- }
1287
- pushState(t, r, i, o) {
1288
- const u = this.prepareExternalUrl(i + q(o));
1289
- this._platformLocation.pushState(t, r, u);
1290
- }
1291
- replaceState(t, r, i, o) {
1292
- const u = this.prepareExternalUrl(i + q(o));
1293
- this._platformLocation.replaceState(t, r, u);
1294
- }
1295
- forward() {
1296
- this._platformLocation.forward();
1297
- }
1298
- back() {
1299
- this._platformLocation.back();
1300
- }
1301
- getState() {
1302
- return this._platformLocation.getState();
1303
- }
1304
- historyGo(t = 0) {
1305
- var r, i;
1306
- (i = (r = this._platformLocation).historyGo) == null || i.call(r, t);
1307
- }
1308
- };
1309
- a(Ae, "ɵfac", s.ɵɵngDeclareFactory({
1310
- minVersion: "12.0.0",
1311
- version: "21.2.3",
1312
- ngImport: s,
1313
- type: Ae,
1314
- deps: [{
1315
- token: te
1316
- }, {
1317
- token: Pt,
1318
- optional: !0
1319
- }],
1320
- target: s.ɵɵFactoryTarget.Injectable
1321
- })), a(Ae, "ɵprov", s.ɵɵngDeclareInjectable({
1322
- minVersion: "12.0.0",
1323
- version: "21.2.3",
1324
- ngImport: s,
1325
- type: Ae,
1326
- providedIn: "root"
1327
- }));
1328
- let ye = Ae;
1329
- s.ɵɵngDeclareClassMetadata({
1330
- minVersion: "12.0.0",
1331
- version: "21.2.3",
1332
- ngImport: s,
1333
- type: ye,
1334
- decorators: [{
1335
- type: $,
1336
- args: [{
1337
- providedIn: "root"
1338
- }]
1339
- }],
1340
- ctorParameters: () => [{
1341
- type: te
1342
- }, {
1343
- type: void 0,
1344
- decorators: [{
1345
- type: $e
1346
- }, {
1347
- type: Y,
1348
- args: [Pt]
1349
- }]
1350
- }]
1351
- });
1352
- const _e = class _e extends ye {
1353
- prepareExternalUrl(e) {
1354
- const t = sr(e);
1355
- return t.endsWith("/") && t.length > 1 && (e = t.slice(0, -1) + e.slice(t.length)), super.prepareExternalUrl(e);
1356
- }
1357
- };
1358
- a(_e, "ɵfac", s.ɵɵngDeclareFactory({
1359
- minVersion: "12.0.0",
1360
- version: "21.2.3",
1361
- ngImport: s,
1362
- type: _e,
1363
- deps: null,
1364
- target: s.ɵɵFactoryTarget.Injectable
1365
- })), a(_e, "ɵprov", s.ɵɵngDeclareInjectable({
1366
- minVersion: "12.0.0",
1367
- version: "21.2.3",
1368
- ngImport: s,
1369
- type: _e,
1370
- providedIn: "root"
1371
- }));
1372
- let sn = _e;
1373
- s.ɵɵngDeclareClassMetadata({
1374
- minVersion: "12.0.0",
1375
- version: "21.2.3",
1376
- ngImport: s,
1377
- type: sn,
1378
- decorators: [{
1379
- type: $,
1380
- args: [{
1381
- providedIn: "root"
1382
- }]
1383
- }]
1384
- });
1385
- const we = class we extends ye {
1386
- prepareExternalUrl(e) {
1387
- const t = sr(e);
1388
- return t.endsWith("/") || (e = t + "/" + e.slice(t.length)), super.prepareExternalUrl(e);
1389
- }
1390
- };
1391
- a(we, "ɵfac", s.ɵɵngDeclareFactory({
1392
- minVersion: "12.0.0",
1393
- version: "21.2.3",
1394
- ngImport: s,
1395
- type: we,
1396
- deps: null,
1397
- target: s.ɵɵFactoryTarget.Injectable
1398
- })), a(we, "ɵprov", s.ɵɵngDeclareInjectable({
1399
- minVersion: "12.0.0",
1400
- version: "21.2.3",
1401
- ngImport: s,
1402
- type: we,
1403
- providedIn: "root"
1404
- }));
1405
- let on = we;
1406
- s.ɵɵngDeclareClassMetadata({
1407
- minVersion: "12.0.0",
1408
- version: "21.2.3",
1409
- ngImport: s,
1410
- type: on,
1411
- decorators: [{
1412
- type: $,
1413
- args: [{
1414
- providedIn: "root"
1415
- }]
1416
- }]
1417
- });
1418
- function sr(n) {
1419
- const e = n.search(/[?#]/), t = e > -1 ? e : n.length;
1420
- return n.slice(0, t);
1421
- }
1422
- const H = class H {
1423
- constructor(e) {
1424
- a(this, "_subject", new ln());
1425
- a(this, "_basePath");
1426
- a(this, "_locationStrategy");
1427
- a(this, "_urlChangeListeners", []);
1428
- a(this, "_urlChangeSubscription", null);
1429
- this._locationStrategy = e;
1430
- const t = this._locationStrategy.getBaseHref();
1431
- this._basePath = ps(Ln(jn(t))), this._locationStrategy.onPopState((r) => {
1432
- this._subject.next({
1433
- url: this.path(!0),
1434
- pop: !0,
1435
- state: r.state,
1436
- type: r.type
1437
- });
1438
- });
1439
- }
1440
- ngOnDestroy() {
1441
- var e;
1442
- (e = this._urlChangeSubscription) == null || e.unsubscribe(), this._urlChangeListeners = [];
1443
- }
1444
- path(e = !1) {
1445
- return this.normalize(this._locationStrategy.path(e));
1446
- }
1447
- getState() {
1448
- return this._locationStrategy.getState();
1449
- }
1450
- isCurrentPathEqualTo(e, t = "") {
1451
- return this.path() == this.normalize(e + q(t));
1452
- }
1453
- normalize(e) {
1454
- return H.stripTrailingSlash(ds(this._basePath, jn(e)));
1455
- }
1456
- prepareExternalUrl(e) {
1457
- return e && e[0] !== "/" && (e = "/" + e), this._locationStrategy.prepareExternalUrl(e);
1458
- }
1459
- go(e, t = "", r = null) {
1460
- this._locationStrategy.pushState(r, "", e, t), this._notifyUrlChangeListeners(this.prepareExternalUrl(e + q(t)), r);
1461
- }
1462
- replaceState(e, t = "", r = null) {
1463
- this._locationStrategy.replaceState(r, "", e, t), this._notifyUrlChangeListeners(this.prepareExternalUrl(e + q(t)), r);
1464
- }
1465
- forward() {
1466
- this._locationStrategy.forward();
1467
- }
1468
- back() {
1469
- this._locationStrategy.back();
1470
- }
1471
- historyGo(e = 0) {
1472
- var t, r;
1473
- (r = (t = this._locationStrategy).historyGo) == null || r.call(t, e);
1474
- }
1475
- onUrlChange(e) {
1476
- return this._urlChangeListeners.push(e), this._urlChangeSubscription ?? (this._urlChangeSubscription = this.subscribe((t) => {
1477
- this._notifyUrlChangeListeners(t.url, t.state);
1478
- })), () => {
1479
- var r;
1480
- const t = this._urlChangeListeners.indexOf(e);
1481
- this._urlChangeListeners.splice(t, 1), this._urlChangeListeners.length === 0 && ((r = this._urlChangeSubscription) == null || r.unsubscribe(), this._urlChangeSubscription = null);
1482
- };
1483
- }
1484
- _notifyUrlChangeListeners(e = "", t) {
1485
- this._urlChangeListeners.forEach((r) => r(e, t));
1486
- }
1487
- subscribe(e, t, r) {
1488
- return this._subject.subscribe({
1489
- next: e,
1490
- error: t ?? void 0,
1491
- complete: r ?? void 0
1492
- });
1493
- }
1494
- };
1495
- a(H, "normalizeQueryParams", q), a(H, "joinWithSlash", fn), a(H, "stripTrailingSlash", Ln), a(H, "ɵfac", s.ɵɵngDeclareFactory({
1496
- minVersion: "12.0.0",
1497
- version: "21.2.3",
1498
- ngImport: s,
1499
- type: H,
1500
- deps: [{
1501
- token: ne
1502
- }],
1503
- target: s.ɵɵFactoryTarget.Injectable
1504
- })), a(H, "ɵprov", s.ɵɵngDeclareInjectable({
1505
- minVersion: "12.0.0",
1506
- version: "21.2.3",
1507
- ngImport: s,
1508
- type: H,
1509
- providedIn: "root",
1510
- useFactory: ir
1511
- }));
1512
- let Bt = H;
1513
- s.ɵɵngDeclareClassMetadata({
1514
- minVersion: "12.0.0",
1515
- version: "21.2.3",
1516
- ngImport: s,
1517
- type: Bt,
1518
- decorators: [{
1519
- type: $,
1520
- args: [{
1521
- providedIn: "root",
1522
- useFactory: ir
1523
- }]
1524
- }],
1525
- ctorParameters: () => [{
1526
- type: ne
1527
- }]
1528
- });
1529
- function ir() {
1530
- return new Bt(Or(ne));
1531
- }
1532
- function ds(n, e) {
1533
- if (!n || !e.startsWith(n))
1534
- return e;
1535
- const t = e.substring(n.length);
1536
- return t === "" || ["/", ";", "?", "#"].includes(t[0]) ? t : e;
1537
- }
1538
- function jn(n) {
1539
- return n.replace(/\/index.html$/, "");
1540
- }
1541
- function ps(n) {
1542
- if (new RegExp("^(https?:)?//").test(n)) {
1543
- const [, t] = n.split(/\/\/[^\/]+/);
1544
- return t;
1545
- }
1546
- return n;
1547
- }
1548
- /**
1549
- * @license Angular v21.2.3
1550
- * (c) 2010-2026 Google LLC. https://angular.dev/
1551
- * License: MIT
1552
- */
1553
- const Se = class Se extends ne {
1554
- constructor(t, r) {
1555
- super();
1556
- a(this, "_platformLocation");
1557
- a(this, "_baseHref", "");
1558
- a(this, "_removeListenerFns", []);
1559
- this._platformLocation = t, r != null && (this._baseHref = r);
1560
- }
1561
- ngOnDestroy() {
1562
- for (; this._removeListenerFns.length; )
1563
- this._removeListenerFns.pop()();
1564
- }
1565
- onPopState(t) {
1566
- this._removeListenerFns.push(this._platformLocation.onPopState(t), this._platformLocation.onHashChange(t));
1567
- }
1568
- getBaseHref() {
1569
- return this._baseHref;
1570
- }
1571
- path(t = !1) {
1572
- const r = this._platformLocation.hash ?? "#";
1573
- return r.length > 0 ? r.substring(1) : r;
1574
- }
1575
- prepareExternalUrl(t) {
1576
- const r = fn(this._baseHref, t);
1577
- return r.length > 0 ? "#" + r : r;
1578
- }
1579
- pushState(t, r, i, o) {
1580
- const u = this.prepareExternalUrl(i + q(o)) || this._platformLocation.pathname;
1581
- this._platformLocation.pushState(t, r, u);
1582
- }
1583
- replaceState(t, r, i, o) {
1584
- const u = this.prepareExternalUrl(i + q(o)) || this._platformLocation.pathname;
1585
- this._platformLocation.replaceState(t, r, u);
1586
- }
1587
- forward() {
1588
- this._platformLocation.forward();
1589
- }
1590
- back() {
1591
- this._platformLocation.back();
1592
- }
1593
- getState() {
1594
- return this._platformLocation.getState();
1595
- }
1596
- historyGo(t = 0) {
1597
- var r, i;
1598
- (i = (r = this._platformLocation).historyGo) == null || i.call(r, t);
1599
- }
1600
- };
1601
- a(Se, "ɵfac", s.ɵɵngDeclareFactory({
1602
- minVersion: "12.0.0",
1603
- version: "21.2.3",
1604
- ngImport: s,
1605
- type: Se,
1606
- deps: [{
1607
- token: te
1608
- }, {
1609
- token: Pt,
1610
- optional: !0
1611
- }],
1612
- target: s.ɵɵFactoryTarget.Injectable
1613
- })), a(Se, "ɵprov", s.ɵɵngDeclareInjectable({
1614
- minVersion: "12.0.0",
1615
- version: "21.2.3",
1616
- ngImport: s,
1617
- type: Se
1618
- }));
1619
- let an = Se;
1620
- s.ɵɵngDeclareClassMetadata({
1621
- minVersion: "12.0.0",
1622
- version: "21.2.3",
1623
- ngImport: s,
1624
- type: an,
1625
- decorators: [{
1626
- type: $
1627
- }],
1628
- ctorParameters: () => [{
1629
- type: te
1630
- }, {
1631
- type: void 0,
1632
- decorators: [{
1633
- type: $e
1634
- }, {
1635
- type: Y,
1636
- args: [Pt]
1637
- }]
1638
- }]
1639
- });
1640
- const or = {
1641
- ADP: [void 0, void 0, 0],
1642
- AFN: [void 0, "؋", 0],
1643
- ALL: [void 0, void 0, 0],
1644
- AMD: [void 0, "֏", 2],
1645
- AOA: [void 0, "Kz"],
1646
- ARS: [void 0, "$"],
1647
- AUD: ["A$", "$"],
1648
- AZN: [void 0, "₼"],
1649
- BAM: [void 0, "KM"],
1650
- BBD: [void 0, "$"],
1651
- BDT: [void 0, "৳"],
1652
- BHD: [void 0, void 0, 3],
1653
- BIF: [void 0, void 0, 0],
1654
- BMD: [void 0, "$"],
1655
- BND: [void 0, "$"],
1656
- BOB: [void 0, "Bs"],
1657
- BRL: ["R$"],
1658
- BSD: [void 0, "$"],
1659
- BWP: [void 0, "P"],
1660
- BYN: [void 0, void 0, 2],
1661
- BYR: [void 0, void 0, 0],
1662
- BZD: [void 0, "$"],
1663
- CAD: ["CA$", "$", 2],
1664
- CHF: [void 0, void 0, 2],
1665
- CLF: [void 0, void 0, 4],
1666
- CLP: [void 0, "$", 0],
1667
- CNY: ["CN¥", "¥"],
1668
- COP: [void 0, "$", 2],
1669
- CRC: [void 0, "₡", 2],
1670
- CUC: [void 0, "$"],
1671
- CUP: [void 0, "$"],
1672
- CZK: [void 0, "Kč", 2],
1673
- DJF: [void 0, void 0, 0],
1674
- DKK: [void 0, "kr", 2],
1675
- DOP: [void 0, "$"],
1676
- EGP: [void 0, "E£"],
1677
- ESP: [void 0, "₧", 0],
1678
- EUR: ["€"],
1679
- FJD: [void 0, "$"],
1680
- FKP: [void 0, "£"],
1681
- GBP: ["£"],
1682
- GEL: [void 0, "₾"],
1683
- GHS: [void 0, "GH₵"],
1684
- GIP: [void 0, "£"],
1685
- GNF: [void 0, "FG", 0],
1686
- GTQ: [void 0, "Q"],
1687
- GYD: [void 0, "$", 2],
1688
- HKD: ["HK$", "$"],
1689
- HNL: [void 0, "L"],
1690
- HRK: [void 0, "kn"],
1691
- HUF: [void 0, "Ft", 2],
1692
- IDR: [void 0, "Rp", 2],
1693
- ILS: ["₪"],
1694
- INR: ["₹"],
1695
- IQD: [void 0, void 0, 0],
1696
- IRR: [void 0, void 0, 0],
1697
- ISK: [void 0, "kr", 0],
1698
- ITL: [void 0, void 0, 0],
1699
- JMD: [void 0, "$"],
1700
- JOD: [void 0, void 0, 3],
1701
- JPY: ["¥", void 0, 0],
1702
- KGS: [void 0, "⃀"],
1703
- KHR: [void 0, "៛"],
1704
- KMF: [void 0, "CF", 0],
1705
- KPW: [void 0, "₩", 0],
1706
- KRW: ["₩", void 0, 0],
1707
- KWD: [void 0, void 0, 3],
1708
- KYD: [void 0, "$"],
1709
- KZT: [void 0, "₸"],
1710
- LAK: [void 0, "₭", 0],
1711
- LBP: [void 0, "L£", 0],
1712
- LKR: [void 0, "Rs"],
1713
- LRD: [void 0, "$"],
1714
- LTL: [void 0, "Lt"],
1715
- LUF: [void 0, void 0, 0],
1716
- LVL: [void 0, "Ls"],
1717
- LYD: [void 0, void 0, 3],
1718
- MGA: [void 0, "Ar", 0],
1719
- MGF: [void 0, void 0, 0],
1720
- MMK: [void 0, "K", 0],
1721
- MNT: [void 0, "₮", 2],
1722
- MRO: [void 0, void 0, 0],
1723
- MUR: [void 0, "Rs", 2],
1724
- MXN: ["MX$", "$"],
1725
- MYR: [void 0, "RM"],
1726
- NAD: [void 0, "$"],
1727
- NGN: [void 0, "₦"],
1728
- NIO: [void 0, "C$"],
1729
- NOK: [void 0, "kr", 2],
1730
- NPR: [void 0, "Rs"],
1731
- NZD: ["NZ$", "$"],
1732
- OMR: [void 0, void 0, 3],
1733
- PHP: ["₱"],
1734
- PKR: [void 0, "Rs", 2],
1735
- PLN: [void 0, "zł"],
1736
- PYG: [void 0, "₲", 0],
1737
- RON: [void 0, "lei"],
1738
- RSD: [void 0, void 0, 0],
1739
- RUB: [void 0, "₽"],
1740
- RWF: [void 0, "RF", 0],
1741
- SBD: [void 0, "$"],
1742
- SEK: [void 0, "kr", 2],
1743
- SGD: [void 0, "$"],
1744
- SHP: [void 0, "£"],
1745
- SLE: [void 0, void 0, 2],
1746
- SLL: [void 0, void 0, 0],
1747
- SOS: [void 0, void 0, 0],
1748
- SRD: [void 0, "$"],
1749
- SSP: [void 0, "£"],
1750
- STD: [void 0, void 0, 0],
1751
- STN: [void 0, "Db"],
1752
- SYP: [void 0, "£", 0],
1753
- THB: [void 0, "฿"],
1754
- TMM: [void 0, void 0, 0],
1755
- TND: [void 0, void 0, 3],
1756
- TOP: [void 0, "T$"],
1757
- TRL: [void 0, void 0, 0],
1758
- TRY: [void 0, "₺"],
1759
- TTD: [void 0, "$"],
1760
- TWD: ["NT$", "$", 2],
1761
- TZS: [void 0, void 0, 2],
1762
- UAH: [void 0, "₴"],
1763
- UGX: [void 0, void 0, 0],
1764
- USD: ["$"],
1765
- UYI: [void 0, void 0, 0],
1766
- UYU: [void 0, "$"],
1767
- UYW: [void 0, void 0, 4],
1768
- UZS: [void 0, void 0, 2],
1769
- VEF: [void 0, "Bs", 2],
1770
- VND: ["₫", void 0, 0],
1771
- VUV: [void 0, void 0, 0],
1772
- XAF: ["FCFA", void 0, 0],
1773
- XCD: ["EC$", "$"],
1774
- XCG: ["Cg."],
1775
- XOF: ["F CFA", void 0, 0],
1776
- XPF: ["CFPF", void 0, 0],
1777
- XXX: ["¤"],
1778
- YER: [void 0, void 0, 0],
1779
- ZAR: [void 0, "R"],
1780
- ZMK: [void 0, void 0, 0],
1781
- ZMW: [void 0, "ZK"],
1782
- ZWD: [void 0, void 0, 0]
1783
- };
1784
- var gt;
1785
- (function(n) {
1786
- n[n.Decimal = 0] = "Decimal", n[n.Percent = 1] = "Percent", n[n.Currency = 2] = "Currency", n[n.Scientific = 3] = "Scientific";
1787
- })(gt || (gt = {}));
1788
- var ie;
1789
- (function(n) {
1790
- n[n.Zero = 0] = "Zero", n[n.One = 1] = "One", n[n.Two = 2] = "Two", n[n.Few = 3] = "Few", n[n.Many = 4] = "Many", n[n.Other = 5] = "Other";
1791
- })(ie || (ie = {}));
1792
- var B;
1793
- (function(n) {
1794
- n[n.Format = 0] = "Format", n[n.Standalone = 1] = "Standalone";
1795
- })(B || (B = {}));
1796
- var C;
1797
- (function(n) {
1798
- n[n.Narrow = 0] = "Narrow", n[n.Abbreviated = 1] = "Abbreviated", n[n.Wide = 2] = "Wide", n[n.Short = 3] = "Short";
1799
- })(C || (C = {}));
1800
- var k;
1801
- (function(n) {
1802
- n[n.Short = 0] = "Short", n[n.Medium = 1] = "Medium", n[n.Long = 2] = "Long", n[n.Full = 3] = "Full";
1803
- })(k || (k = {}));
1804
- const S = {
1805
- Decimal: 0,
1806
- Group: 1,
1807
- PercentSign: 3,
1808
- MinusSign: 5,
1809
- Exponential: 6,
1810
- Infinity: 9,
1811
- CurrencyDecimal: 12,
1812
- CurrencyGroup: 13
1813
- };
1814
- var Nn;
1815
- (function(n) {
1816
- n[n.Sunday = 0] = "Sunday", n[n.Monday = 1] = "Monday", n[n.Tuesday = 2] = "Tuesday", n[n.Wednesday = 3] = "Wednesday", n[n.Thursday = 4] = "Thursday", n[n.Friday = 5] = "Friday", n[n.Saturday = 6] = "Saturday";
1817
- })(Nn || (Nn = {}));
1818
- function Ds(n) {
1819
- return M(n)[b.LocaleId];
1820
- }
1821
- function hs(n, e, t) {
1822
- const r = M(n), i = [r[b.DayPeriodsFormat], r[b.DayPeriodsStandalone]], o = L(i, e);
1823
- return L(o, t);
1824
- }
1825
- function gs(n, e, t) {
1826
- const r = M(n), i = [r[b.DaysFormat], r[b.DaysStandalone]], o = L(i, e);
1827
- return L(o, t);
1828
- }
1829
- function ms(n, e, t) {
1830
- const r = M(n), i = [r[b.MonthsFormat], r[b.MonthsStandalone]], o = L(i, e);
1831
- return L(o, t);
1832
- }
1833
- function ys(n, e) {
1834
- const r = M(n)[b.Eras];
1835
- return L(r, e);
1836
- }
1837
- function bt(n, e) {
1838
- const t = M(n);
1839
- return L(t[b.DateFormat], e);
1840
- }
1841
- function At(n, e) {
1842
- const t = M(n);
1843
- return L(t[b.TimeFormat], e);
1844
- }
1845
- function _t(n, e) {
1846
- const r = M(n)[b.DateTimeFormat];
1847
- return L(r, e);
1848
- }
1849
- function P(n, e) {
1850
- const t = M(n), r = t[b.NumberSymbols][e];
1851
- if (typeof r > "u") {
1852
- if (e === S.CurrencyDecimal)
1853
- return t[b.NumberSymbols][S.Decimal];
1854
- if (e === S.CurrencyGroup)
1855
- return t[b.NumberSymbols][S.Group];
1856
- }
1857
- return r;
1858
- }
1859
- function dn(n, e) {
1860
- return M(n)[b.NumberFormats][e];
1861
- }
1862
- function Cs(n) {
1863
- return M(n)[b.Currencies];
1864
- }
1865
- const Fs = Nr;
1866
- function ar(n) {
1867
- if (!n[b.ExtraData])
1868
- throw new R(2303, ngDevMode && `Missing extra locale data for the locale "${n[b.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`);
1869
- }
1870
- function Es(n) {
1871
- const e = M(n);
1872
- return ar(e), (e[b.ExtraData][2] || []).map((r) => typeof r == "string" ? Yt(r) : [Yt(r[0]), Yt(r[1])]);
1873
- }
1874
- function vs(n, e, t) {
1875
- const r = M(n);
1876
- ar(r);
1877
- const i = [r[b.ExtraData][0], r[b.ExtraData][1]], o = L(i, e) || [];
1878
- return L(o, t) || [];
1879
- }
1880
- function L(n, e) {
1881
- for (let t = e; t > -1; t--)
1882
- if (typeof n[t] < "u")
1883
- return n[t];
1884
- throw new R(2304, ngDevMode && "Locale data API: locale data undefined");
1885
- }
1886
- function Yt(n) {
1887
- const [e, t] = n.split(":");
1888
- return {
1889
- hours: +e,
1890
- minutes: +t
1891
- };
1892
- }
1893
- function bs(n, e, t = "en") {
1894
- const r = Cs(t)[n] || or[n] || [], i = r[1];
1895
- return e === "narrow" && typeof i == "string" ? i : r[0] || n;
1896
- }
1897
- const As = 2;
1898
- function _s(n) {
1899
- let e;
1900
- const t = or[n];
1901
- return t && (e = t[2]), typeof e == "number" ? e : As;
1902
- }
1903
- const ws = /^(\d{4,})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/, Ee = {}, Ss = /((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;
1904
- function Ts(n, e, t, r) {
1905
- let i = Ls(n);
1906
- e = K(t, e) || e;
1907
- let u = [], c;
1908
- for (; e; )
1909
- if (c = Ss.exec(e), c) {
1910
- u = u.concat(c.slice(1));
1911
- const f = u.pop();
1912
- if (!f)
1913
- break;
1914
- e = f;
1915
- } else {
1916
- u.push(e);
1917
- break;
1918
- }
1919
- (typeof ngDevMode > "u" || ngDevMode) && Is(u);
1920
- let d = i.getTimezoneOffset();
1921
- r && (d = cr(r, d), i = Ps(i, r));
1922
- let D = "";
1923
- return u.forEach((f) => {
1924
- const p = Vs(f);
1925
- D += p ? p(i, t, d) : f === "''" ? "'" : f.replace(/(^'|'$)/g, "").replace(/''/g, "'");
1926
- }), D;
1927
- }
1928
- function Is(n) {
1929
- if (n.some((e) => /^Y+$/.test(e)) && !n.some((e) => /^w+$/.test(e))) {
1930
- const e = `Suspicious use of week-based year "Y" in date pattern "${n.join("")}". Did you mean to use calendar year "y" instead?`;
1931
- if (n.length === 1)
1932
- console.error(jr(2300, e));
1933
- else
1934
- throw new R(2300, e);
1935
- }
1936
- }
1937
- function Rt(n, e, t) {
1938
- const r = /* @__PURE__ */ new Date(0);
1939
- return r.setFullYear(n, e, t), r.setHours(0, 0, 0), r;
1940
- }
1941
- function K(n, e) {
1942
- const t = Ds(n);
1943
- if (Ee[t] ?? (Ee[t] = {}), Ee[t][e])
1944
- return Ee[t][e];
1945
- let r = "";
1946
- switch (e) {
1947
- case "shortDate":
1948
- r = bt(n, k.Short);
1949
- break;
1950
- case "mediumDate":
1951
- r = bt(n, k.Medium);
1952
- break;
1953
- case "longDate":
1954
- r = bt(n, k.Long);
1955
- break;
1956
- case "fullDate":
1957
- r = bt(n, k.Full);
1958
- break;
1959
- case "shortTime":
1960
- r = At(n, k.Short);
1961
- break;
1962
- case "mediumTime":
1963
- r = At(n, k.Medium);
1964
- break;
1965
- case "longTime":
1966
- r = At(n, k.Long);
1967
- break;
1968
- case "fullTime":
1969
- r = At(n, k.Full);
1970
- break;
1971
- case "short":
1972
- const i = K(n, "shortTime"), o = K(n, "shortDate");
1973
- r = wt(_t(n, k.Short), [i, o]);
1974
- break;
1975
- case "medium":
1976
- const u = K(n, "mediumTime"), c = K(n, "mediumDate");
1977
- r = wt(_t(n, k.Medium), [u, c]);
1978
- break;
1979
- case "long":
1980
- const d = K(n, "longTime"), D = K(n, "longDate");
1981
- r = wt(_t(n, k.Long), [d, D]);
1982
- break;
1983
- case "full":
1984
- const f = K(n, "fullTime"), p = K(n, "fullDate");
1985
- r = wt(_t(n, k.Full), [f, p]);
1986
- break;
1987
- }
1988
- return r && (Ee[t][e] = r), r;
1989
- }
1990
- function wt(n, e) {
1991
- return e && (n = n.replace(/\{([^}]+)}/g, function(t, r) {
1992
- return e != null && r in e ? e[r] : t;
1993
- })), n;
1994
- }
1995
- function U(n, e, t = "-", r, i) {
1996
- let o = "";
1997
- (n < 0 || i && n <= 0) && (i ? n = -n + 1 : (n = -n, o = t));
1998
- let u = String(n);
1999
- for (; u.length < e; )
2000
- u = "0" + u;
2001
- return r && (u = u.slice(u.length - e)), o + u;
2002
- }
2003
- function Os(n, e) {
2004
- return U(n, 3).substring(0, e);
2005
- }
2006
- function w(n, e, t = 0, r = !1, i = !1) {
2007
- return function(o, u) {
2008
- let c = Bs(n, o);
2009
- if ((t > 0 || c > -t) && (c += t), n === 3)
2010
- c === 0 && t === -12 && (c = 12);
2011
- else if (n === 6)
2012
- return Os(c, e);
2013
- const d = P(u, S.MinusSign);
2014
- return U(c, e, d, r, i);
2015
- };
2016
- }
2017
- function Bs(n, e) {
2018
- switch (n) {
2019
- case 0:
2020
- return e.getFullYear();
2021
- case 1:
2022
- return e.getMonth();
2023
- case 2:
2024
- return e.getDate();
2025
- case 3:
2026
- return e.getHours();
2027
- case 4:
2028
- return e.getMinutes();
2029
- case 5:
2030
- return e.getSeconds();
2031
- case 6:
2032
- return e.getMilliseconds();
2033
- case 7:
2034
- return e.getDay();
2035
- default:
2036
- throw new R(2301, ngDevMode && `Unknown DateType value "${n}".`);
2037
- }
2038
- }
2039
- function F(n, e, t = B.Format, r = !1) {
2040
- return function(i, o) {
2041
- return Rs(i, o, n, e, t, r);
2042
- };
2043
- }
2044
- function Rs(n, e, t, r, i, o) {
2045
- switch (t) {
2046
- case 2:
2047
- return ms(e, i, r)[n.getMonth()];
2048
- case 1:
2049
- return gs(e, i, r)[n.getDay()];
2050
- case 0:
2051
- const u = n.getHours(), c = n.getMinutes();
2052
- if (o) {
2053
- const D = Es(e), f = vs(e, i, r), p = D.findIndex((y) => {
2054
- if (Array.isArray(y)) {
2055
- const [h, _] = y, T = u >= h.hours && c >= h.minutes, N = u < _.hours || u === _.hours && c < _.minutes;
2056
- if (h.hours < _.hours) {
2057
- if (T && N)
2058
- return !0;
2059
- } else if (T || N)
2060
- return !0;
2061
- } else if (y.hours === u && y.minutes === c)
2062
- return !0;
2063
- return !1;
2064
- });
2065
- if (p !== -1)
2066
- return f[p];
2067
- }
2068
- return hs(e, i, r)[u < 12 ? 0 : 1];
2069
- case 3:
2070
- return ys(e, r)[n.getFullYear() <= 0 ? 0 : 1];
2071
- default:
2072
- const d = t;
2073
- throw new R(2302, ngDevMode && `unexpected translation type ${d}`);
2074
- }
2075
- }
2076
- function St(n) {
2077
- return function(e, t, r) {
2078
- const i = -1 * r, o = P(t, S.MinusSign), u = i > 0 ? Math.floor(i / 60) : Math.ceil(i / 60);
2079
- switch (n) {
2080
- case 0:
2081
- return (i >= 0 ? "+" : "") + U(u, 2, o) + U(Math.abs(i % 60), 2, o);
2082
- case 1:
2083
- return "GMT" + (i >= 0 ? "+" : "") + U(u, 1, o);
2084
- case 2:
2085
- return "GMT" + (i >= 0 ? "+" : "") + U(u, 2, o) + ":" + U(Math.abs(i % 60), 2, o);
2086
- case 3:
2087
- return r === 0 ? "Z" : (i >= 0 ? "+" : "") + U(u, 2, o) + ":" + U(Math.abs(i % 60), 2, o);
2088
- default:
2089
- throw new R(2310, ngDevMode && `Unknown zone width "${n}"`);
2090
- }
2091
- };
2092
- }
2093
- const ks = 0, Ot = 4;
2094
- function Ms(n) {
2095
- const e = Rt(n, ks, 1).getDay();
2096
- return Rt(n, 0, 1 + (e <= Ot ? Ot : Ot + 7) - e);
2097
- }
2098
- function ur(n) {
2099
- const e = n.getDay(), t = e === 0 ? -3 : Ot - e;
2100
- return Rt(n.getFullYear(), n.getMonth(), n.getDate() + t);
2101
- }
2102
- function zt(n, e = !1) {
2103
- return function(t, r) {
2104
- let i;
2105
- if (e) {
2106
- const o = new Date(t.getFullYear(), t.getMonth(), 1).getDay() - 1, u = t.getDate();
2107
- i = 1 + Math.floor((u + o) / 7);
2108
- } else {
2109
- const o = ur(t), u = Ms(o.getFullYear()), c = o.getTime() - u.getTime();
2110
- i = 1 + Math.round(c / 6048e5);
2111
- }
2112
- return U(i, n, P(r, S.MinusSign));
2113
- };
2114
- }
2115
- function Tt(n, e = !1) {
2116
- return function(t, r) {
2117
- const o = ur(t).getFullYear();
2118
- return U(o, n, P(r, S.MinusSign), e);
2119
- };
2120
- }
2121
- const Zt = {};
2122
- function Vs(n) {
2123
- if (Zt[n])
2124
- return Zt[n];
2125
- let e;
2126
- switch (n) {
2127
- case "G":
2128
- case "GG":
2129
- case "GGG":
2130
- e = F(3, C.Abbreviated);
2131
- break;
2132
- case "GGGG":
2133
- e = F(3, C.Wide);
2134
- break;
2135
- case "GGGGG":
2136
- e = F(3, C.Narrow);
2137
- break;
2138
- case "y":
2139
- e = w(0, 1, 0, !1, !0);
2140
- break;
2141
- case "yy":
2142
- e = w(0, 2, 0, !0, !0);
2143
- break;
2144
- case "yyy":
2145
- e = w(0, 3, 0, !1, !0);
2146
- break;
2147
- case "yyyy":
2148
- e = w(0, 4, 0, !1, !0);
2149
- break;
2150
- case "Y":
2151
- e = Tt(1);
2152
- break;
2153
- case "YY":
2154
- e = Tt(2, !0);
2155
- break;
2156
- case "YYY":
2157
- e = Tt(3);
2158
- break;
2159
- case "YYYY":
2160
- e = Tt(4);
2161
- break;
2162
- case "M":
2163
- case "L":
2164
- e = w(1, 1, 1);
2165
- break;
2166
- case "MM":
2167
- case "LL":
2168
- e = w(1, 2, 1);
2169
- break;
2170
- case "MMM":
2171
- e = F(2, C.Abbreviated);
2172
- break;
2173
- case "MMMM":
2174
- e = F(2, C.Wide);
2175
- break;
2176
- case "MMMMM":
2177
- e = F(2, C.Narrow);
2178
- break;
2179
- case "LLL":
2180
- e = F(2, C.Abbreviated, B.Standalone);
2181
- break;
2182
- case "LLLL":
2183
- e = F(2, C.Wide, B.Standalone);
2184
- break;
2185
- case "LLLLL":
2186
- e = F(2, C.Narrow, B.Standalone);
2187
- break;
2188
- case "w":
2189
- e = zt(1);
2190
- break;
2191
- case "ww":
2192
- e = zt(2);
2193
- break;
2194
- case "W":
2195
- e = zt(1, !0);
2196
- break;
2197
- case "d":
2198
- e = w(2, 1);
2199
- break;
2200
- case "dd":
2201
- e = w(2, 2);
2202
- break;
2203
- case "c":
2204
- case "cc":
2205
- e = w(7, 1);
2206
- break;
2207
- case "ccc":
2208
- e = F(1, C.Abbreviated, B.Standalone);
2209
- break;
2210
- case "cccc":
2211
- e = F(1, C.Wide, B.Standalone);
2212
- break;
2213
- case "ccccc":
2214
- e = F(1, C.Narrow, B.Standalone);
2215
- break;
2216
- case "cccccc":
2217
- e = F(1, C.Short, B.Standalone);
2218
- break;
2219
- case "E":
2220
- case "EE":
2221
- case "EEE":
2222
- e = F(1, C.Abbreviated);
2223
- break;
2224
- case "EEEE":
2225
- e = F(1, C.Wide);
2226
- break;
2227
- case "EEEEE":
2228
- e = F(1, C.Narrow);
2229
- break;
2230
- case "EEEEEE":
2231
- e = F(1, C.Short);
2232
- break;
2233
- case "a":
2234
- case "aa":
2235
- case "aaa":
2236
- e = F(0, C.Abbreviated);
2237
- break;
2238
- case "aaaa":
2239
- e = F(0, C.Wide);
2240
- break;
2241
- case "aaaaa":
2242
- e = F(0, C.Narrow);
2243
- break;
2244
- case "b":
2245
- case "bb":
2246
- case "bbb":
2247
- e = F(0, C.Abbreviated, B.Standalone, !0);
2248
- break;
2249
- case "bbbb":
2250
- e = F(0, C.Wide, B.Standalone, !0);
2251
- break;
2252
- case "bbbbb":
2253
- e = F(0, C.Narrow, B.Standalone, !0);
2254
- break;
2255
- case "B":
2256
- case "BB":
2257
- case "BBB":
2258
- e = F(0, C.Abbreviated, B.Format, !0);
2259
- break;
2260
- case "BBBB":
2261
- e = F(0, C.Wide, B.Format, !0);
2262
- break;
2263
- case "BBBBB":
2264
- e = F(0, C.Narrow, B.Format, !0);
2265
- break;
2266
- case "h":
2267
- e = w(3, 1, -12);
2268
- break;
2269
- case "hh":
2270
- e = w(3, 2, -12);
2271
- break;
2272
- case "H":
2273
- e = w(3, 1);
2274
- break;
2275
- case "HH":
2276
- e = w(3, 2);
2277
- break;
2278
- case "m":
2279
- e = w(4, 1);
2280
- break;
2281
- case "mm":
2282
- e = w(4, 2);
2283
- break;
2284
- case "s":
2285
- e = w(5, 1);
2286
- break;
2287
- case "ss":
2288
- e = w(5, 2);
2289
- break;
2290
- case "S":
2291
- e = w(6, 1);
2292
- break;
2293
- case "SS":
2294
- e = w(6, 2);
2295
- break;
2296
- case "SSS":
2297
- e = w(6, 3);
2298
- break;
2299
- case "Z":
2300
- case "ZZ":
2301
- case "ZZZ":
2302
- e = St(0);
2303
- break;
2304
- case "ZZZZZ":
2305
- e = St(3);
2306
- break;
2307
- case "O":
2308
- case "OO":
2309
- case "OOO":
2310
- case "z":
2311
- case "zz":
2312
- case "zzz":
2313
- e = St(1);
2314
- break;
2315
- case "OOOO":
2316
- case "ZZZZ":
2317
- case "zzzz":
2318
- e = St(2);
2319
- break;
2320
- default:
2321
- return null;
2322
- }
2323
- return Zt[n] = e, e;
2324
- }
2325
- function cr(n, e) {
2326
- n = n.replace(/:/g, "");
2327
- const t = Date.parse("Jan 01, 1970 00:00:00 " + n) / 6e4;
2328
- return isNaN(t) ? e : t;
2329
- }
2330
- function xs(n, e) {
2331
- return n = new Date(n.getTime()), n.setMinutes(n.getMinutes() + e), n;
2332
- }
2333
- function Ps(n, e, t) {
2334
- const i = n.getTimezoneOffset(), o = cr(e, i);
2335
- return xs(n, -1 * (o - i));
2336
- }
2337
- function Ls(n) {
2338
- if (Un(n))
2339
- return n;
2340
- if (typeof n == "number" && !isNaN(n))
2341
- return new Date(n);
2342
- if (typeof n == "string") {
2343
- if (n = n.trim(), /^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(n)) {
2344
- const [i, o = 1, u = 1] = n.split("-").map((c) => +c);
2345
- return Rt(i, o - 1, u);
2346
- }
2347
- const t = parseFloat(n);
2348
- if (!isNaN(n - t))
2349
- return new Date(t);
2350
- let r;
2351
- if (r = n.match(ws))
2352
- return js(r);
2353
- }
2354
- const e = new Date(n);
2355
- if (!Un(e))
2356
- throw new R(2311, ngDevMode && `Unable to convert "${n}" into a date`);
2357
- return e;
2358
- }
2359
- function js(n) {
2360
- const e = /* @__PURE__ */ new Date(0);
2361
- let t = 0, r = 0;
2362
- const i = n[8] ? e.setUTCFullYear : e.setFullYear, o = n[8] ? e.setUTCHours : e.setHours;
2363
- n[9] && (t = Number(n[9] + n[10]), r = Number(n[9] + n[11])), i.call(e, Number(n[1]), Number(n[2]) - 1, Number(n[3]));
2364
- const u = Number(n[4] || 0) - t, c = Number(n[5] || 0) - r, d = Number(n[6] || 0), D = Math.floor(parseFloat("0." + (n[7] || 0)) * 1e3);
2365
- return o.call(e, u, c, d, D), e;
2366
- }
2367
- function Un(n) {
2368
- return n instanceof Date && !isNaN(n.valueOf());
2369
- }
2370
- const Ns = /^(\d+)?\.((\d+)(-(\d+))?)?$/, $n = 22, kt = ".", ht = "0", Us = ";", $s = ",", Kt = "#", Gn = "¤", Gs = "%";
2371
- function pn(n, e, t, r, i, o, u = !1) {
2372
- let c = "", d = !1;
2373
- if (!isFinite(n))
2374
- c = P(t, S.Infinity);
2375
- else {
2376
- let D = Ks(n);
2377
- u && (D = Zs(D));
2378
- let f = e.minInt, p = e.minFrac, y = e.maxFrac;
2379
- if (o) {
2380
- const J = o.match(Ns);
2381
- if (J === null)
2382
- throw new R(2306, ngDevMode && `${o} is not a valid digit info`);
2383
- const Ct = J[1], dt = J[3], Ft = J[5];
2384
- Ct != null && (f = qt(Ct)), dt != null && (p = qt(dt)), Ft != null ? y = qt(Ft) : dt != null && p > y && (y = p);
2385
- }
2386
- qs(D, p, y);
2387
- let h = D.digits, _ = D.integerLen;
2388
- const T = D.exponent;
2389
- let N = [];
2390
- for (d = h.every((J) => !J); _ < f; _++)
2391
- h.unshift(0);
2392
- for (; _ < 0; _++)
2393
- h.unshift(0);
2394
- _ > 0 ? N = h.splice(_, h.length) : (N = h, h = [0]);
2395
- const Ce = [];
2396
- for (h.length >= e.lgSize && Ce.unshift(h.splice(-e.lgSize, h.length).join("")); h.length > e.gSize; )
2397
- Ce.unshift(h.splice(-e.gSize, h.length).join(""));
2398
- h.length && Ce.unshift(h.join("")), c = Ce.join(P(t, r)), N.length && (c += P(t, i) + N.join("")), T && (c += P(t, S.Exponential) + "+" + T);
2399
- }
2400
- return n < 0 && !d ? c = e.negPre + c + e.negSuf : c = e.posPre + c + e.posSuf, c;
2401
- }
2402
- function Hs(n, e, t, r, i) {
2403
- const o = dn(e, gt.Currency), u = Dn(o, P(e, S.MinusSign));
2404
- return u.minFrac = _s(r), u.maxFrac = u.minFrac, pn(n, u, e, S.CurrencyGroup, S.CurrencyDecimal, i).replace(Gn, t).replace(Gn, "").trim();
2405
- }
2406
- function Ys(n, e, t) {
2407
- const r = dn(e, gt.Percent), i = Dn(r, P(e, S.MinusSign));
2408
- return pn(n, i, e, S.Group, S.Decimal, t, !0).replace(new RegExp(Gs, "g"), P(e, S.PercentSign));
2409
- }
2410
- function zs(n, e, t) {
2411
- const r = dn(e, gt.Decimal), i = Dn(r, P(e, S.MinusSign));
2412
- return pn(n, i, e, S.Group, S.Decimal, t);
2413
- }
2414
- function Dn(n, e = "-") {
2415
- const t = {
2416
- minInt: 1,
2417
- minFrac: 0,
2418
- maxFrac: 0,
2419
- posPre: "",
2420
- posSuf: "",
2421
- negPre: "",
2422
- negSuf: "",
2423
- gSize: 0,
2424
- lgSize: 0
2425
- }, r = n.split(Us), i = r[0], o = r[1], u = i.indexOf(kt) !== -1 ? i.split(kt) : [i.substring(0, i.lastIndexOf(ht) + 1), i.substring(i.lastIndexOf(ht) + 1)], c = u[0], d = u[1] || "";
2426
- t.posPre = c.substring(0, c.indexOf(Kt));
2427
- for (let f = 0; f < d.length; f++) {
2428
- const p = d.charAt(f);
2429
- p === ht ? t.minFrac = t.maxFrac = f + 1 : p === Kt ? t.maxFrac = f + 1 : t.posSuf += p;
2430
- }
2431
- const D = c.split($s);
2432
- if (t.gSize = D[1] ? D[1].length : 0, t.lgSize = D[2] || D[1] ? (D[2] || D[1]).length : 0, o) {
2433
- const f = i.length - t.posPre.length - t.posSuf.length, p = o.indexOf(Kt);
2434
- t.negPre = o.substring(0, p).replace(/'/g, ""), t.negSuf = o.slice(p + f).replace(/'/g, "");
2435
- } else
2436
- t.negPre = e + t.posPre, t.negSuf = t.posSuf;
2437
- return t;
2438
- }
2439
- function Zs(n) {
2440
- if (n.digits[0] === 0)
2441
- return n;
2442
- const e = n.digits.length - n.integerLen;
2443
- return n.exponent ? n.exponent += 2 : (e === 0 ? n.digits.push(0, 0) : e === 1 && n.digits.push(0), n.integerLen += 2), n;
2444
- }
2445
- function Ks(n) {
2446
- let e = Math.abs(n) + "", t = 0, r, i, o, u, c;
2447
- for ((i = e.indexOf(kt)) > -1 && (e = e.replace(kt, "")), (o = e.search(/e/i)) > 0 ? (i < 0 && (i = o), i += +e.slice(o + 1), e = e.substring(0, o)) : i < 0 && (i = e.length), o = 0; e.charAt(o) === ht; o++)
2448
- ;
2449
- if (o === (c = e.length))
2450
- r = [0], i = 1;
2451
- else {
2452
- for (c--; e.charAt(c) === ht; ) c--;
2453
- for (i -= o, r = [], u = 0; o <= c; o++, u++)
2454
- r[u] = Number(e.charAt(o));
2455
- }
2456
- return i > $n && (r = r.splice(0, $n - 1), t = i - 1, i = 1), {
2457
- digits: r,
2458
- exponent: t,
2459
- integerLen: i
2460
- };
2461
- }
2462
- function qs(n, e, t) {
2463
- if (e > t)
2464
- throw new R(2307, ngDevMode && `The minimum number of digits after fraction (${e}) is higher than the maximum (${t}).`);
2465
- let r = n.digits, i = r.length - n.integerLen;
2466
- const o = Math.min(Math.max(e, i), t);
2467
- let u = o + n.integerLen, c = r[u];
2468
- if (u > 0) {
2469
- r.splice(Math.max(n.integerLen, u));
2470
- for (let p = u; p < r.length; p++)
2471
- r[p] = 0;
2472
- } else {
2473
- i = Math.max(0, i), n.integerLen = 1, r.length = Math.max(1, u = o + 1), r[0] = 0;
2474
- for (let p = 1; p < u; p++) r[p] = 0;
2475
- }
2476
- if (c >= 5)
2477
- if (u - 1 < 0) {
2478
- for (let p = 0; p > u; p--)
2479
- r.unshift(0), n.integerLen++;
2480
- r.unshift(1), n.integerLen++;
2481
- } else
2482
- r[u - 1]++;
2483
- for (; i < Math.max(0, o); i++) r.push(0);
2484
- let d = o !== 0;
2485
- const D = e + n.integerLen, f = r.reduceRight(function(p, y, h, _) {
2486
- return y = y + p, _[h] = y < 10 ? y : y - 10, d && (_[h] === 0 && h >= D ? _.pop() : d = !1), y >= 10 ? 1 : 0;
2487
- }, 0);
2488
- f && (r.unshift(f), n.integerLen++);
2489
- }
2490
- function qt(n) {
2491
- const e = parseInt(n);
2492
- if (isNaN(e))
2493
- throw new R(2305, ngDevMode && "Invalid integer literal when parsing " + n);
2494
- return e;
2495
- }
2496
- const Te = class Te {
2497
- };
2498
- a(Te, "ɵfac", s.ɵɵngDeclareFactory({
2499
- minVersion: "12.0.0",
2500
- version: "21.2.3",
2501
- ngImport: s,
2502
- type: Te,
2503
- deps: [],
2504
- target: s.ɵɵFactoryTarget.Injectable
2505
- })), a(Te, "ɵprov", s.ɵɵngDeclareInjectable({
2506
- minVersion: "12.0.0",
2507
- version: "21.2.3",
2508
- ngImport: s,
2509
- type: Te,
2510
- providedIn: "root",
2511
- useFactory: () => new mt(Z(j))
2512
- }));
2513
- let re = Te;
2514
- s.ɵɵngDeclareClassMetadata({
2515
- minVersion: "12.0.0",
2516
- version: "21.2.3",
2517
- ngImport: s,
2518
- type: re,
2519
- decorators: [{
2520
- type: $,
2521
- args: [{
2522
- providedIn: "root",
2523
- useFactory: () => new mt(Z(j))
2524
- }]
2525
- }]
2526
- });
2527
- function lr(n, e, t, r) {
2528
- let i = `=${n}`;
2529
- if (e.indexOf(i) > -1 || (i = t.getPluralCategory(n, r), e.indexOf(i) > -1))
2530
- return i;
2531
- if (e.indexOf("other") > -1)
2532
- return "other";
2533
- throw new R(2308, ngDevMode && `No plural message found for value "${n}"`);
2534
- }
2535
- const Ie = class Ie extends re {
2536
- constructor(t) {
2537
- super();
2538
- a(this, "locale");
2539
- this.locale = t;
2540
- }
2541
- getPluralCategory(t, r) {
2542
- switch (Fs(r || this.locale)(t)) {
2543
- case ie.Zero:
2544
- return "zero";
2545
- case ie.One:
2546
- return "one";
2547
- case ie.Two:
2548
- return "two";
2549
- case ie.Few:
2550
- return "few";
2551
- case ie.Many:
2552
- return "many";
2553
- default:
2554
- return "other";
2555
- }
2556
- }
2557
- };
2558
- a(Ie, "ɵfac", s.ɵɵngDeclareFactory({
2559
- minVersion: "12.0.0",
2560
- version: "21.2.3",
2561
- ngImport: s,
2562
- type: Ie,
2563
- deps: [{
2564
- token: j
2565
- }],
2566
- target: s.ɵɵFactoryTarget.Injectable
2567
- })), a(Ie, "ɵprov", s.ɵɵngDeclareInjectable({
2568
- minVersion: "12.0.0",
2569
- version: "21.2.3",
2570
- ngImport: s,
2571
- type: Ie
2572
- }));
2573
- let mt = Ie;
2574
- s.ɵɵngDeclareClassMetadata({
2575
- minVersion: "12.0.0",
2576
- version: "21.2.3",
2577
- ngImport: s,
2578
- type: mt,
2579
- decorators: [{
2580
- type: $
2581
- }],
2582
- ctorParameters: () => [{
2583
- type: void 0,
2584
- decorators: [{
2585
- type: Y,
2586
- args: [j]
2587
- }]
2588
- }]
2589
- });
2590
- const Wt = /\s+/, Hn = [], Oe = class Oe {
2591
- constructor(e, t) {
2592
- a(this, "_ngEl");
2593
- a(this, "_renderer");
2594
- a(this, "initialClasses", Hn);
2595
- a(this, "rawClass");
2596
- a(this, "stateMap", /* @__PURE__ */ new Map());
2597
- this._ngEl = e, this._renderer = t;
2598
- }
2599
- set klass(e) {
2600
- this.initialClasses = e != null ? e.trim().split(Wt) : Hn;
2601
- }
2602
- set ngClass(e) {
2603
- this.rawClass = typeof e == "string" ? e.trim().split(Wt) : e;
2604
- }
2605
- ngDoCheck() {
2606
- for (const t of this.initialClasses)
2607
- this._updateState(t, !0);
2608
- const e = this.rawClass;
2609
- if (Array.isArray(e) || e instanceof Set)
2610
- for (const t of e)
2611
- this._updateState(t, !0);
2612
- else if (e != null)
2613
- for (const t of Object.keys(e))
2614
- this._updateState(t, !!e[t]);
2615
- this._applyStateDiff();
2616
- }
2617
- _updateState(e, t) {
2618
- const r = this.stateMap.get(e);
2619
- r !== void 0 ? (r.enabled !== t && (r.changed = !0, r.enabled = t), r.touched = !0) : this.stateMap.set(e, {
2620
- enabled: t,
2621
- changed: !0,
2622
- touched: !0
2623
- });
2624
- }
2625
- _applyStateDiff() {
2626
- for (const e of this.stateMap) {
2627
- const t = e[0], r = e[1];
2628
- r.changed ? (this._toggleClass(t, r.enabled), r.changed = !1) : r.touched || (r.enabled && this._toggleClass(t, !1), this.stateMap.delete(t)), r.touched = !1;
2629
- }
2630
- }
2631
- _toggleClass(e, t) {
2632
- if (ngDevMode && typeof e != "string")
2633
- throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${un(e)}`);
2634
- e = e.trim(), e.length > 0 && e.split(Wt).forEach((r) => {
2635
- t ? this._renderer.addClass(this._ngEl.nativeElement, r) : this._renderer.removeClass(this._ngEl.nativeElement, r);
2636
- });
2637
- }
2638
- };
2639
- a(Oe, "ɵfac", s.ɵɵngDeclareFactory({
2640
- minVersion: "12.0.0",
2641
- version: "21.2.3",
2642
- ngImport: s,
2643
- type: Oe,
2644
- deps: [{
2645
- token: s.ElementRef
2646
- }, {
2647
- token: s.Renderer2
2648
- }],
2649
- target: s.ɵɵFactoryTarget.Directive
2650
- })), a(Oe, "ɵdir", s.ɵɵngDeclareDirective({
2651
- minVersion: "14.0.0",
2652
- version: "21.2.3",
2653
- type: Oe,
2654
- isStandalone: !0,
2655
- selector: "[ngClass]",
2656
- inputs: {
2657
- klass: ["class", "klass"],
2658
- ngClass: "ngClass"
2659
- },
2660
- ngImport: s
2661
- }));
2662
- let He = Oe;
2663
- s.ɵɵngDeclareClassMetadata({
2664
- minVersion: "12.0.0",
2665
- version: "21.2.3",
2666
- ngImport: s,
2667
- type: He,
2668
- decorators: [{
2669
- type: G,
2670
- args: [{
2671
- selector: "[ngClass]"
2672
- }]
2673
- }],
2674
- ctorParameters: () => [{
2675
- type: s.ElementRef
2676
- }, {
2677
- type: s.Renderer2
2678
- }],
2679
- propDecorators: {
2680
- klass: [{
2681
- type: m,
2682
- args: ["class"]
2683
- }],
2684
- ngClass: [{
2685
- type: m,
2686
- args: ["ngClass"]
2687
- }]
2688
- }
2689
- });
2690
- const Be = class Be {
2691
- constructor(e) {
2692
- a(this, "_viewContainerRef");
2693
- a(this, "ngComponentOutlet", null);
2694
- a(this, "ngComponentOutletInputs");
2695
- a(this, "ngComponentOutletInjector");
2696
- a(this, "ngComponentOutletEnvironmentInjector");
2697
- a(this, "ngComponentOutletContent");
2698
- a(this, "ngComponentOutletNgModule");
2699
- a(this, "_componentRef");
2700
- a(this, "_moduleRef");
2701
- a(this, "_inputsUsed", /* @__PURE__ */ new Map());
2702
- this._viewContainerRef = e;
2703
- }
2704
- get componentInstance() {
2705
- var e;
2706
- return ((e = this._componentRef) == null ? void 0 : e.instance) ?? null;
2707
- }
2708
- _needToReCreateNgModuleInstance(e) {
2709
- return e.ngComponentOutletNgModule !== void 0;
2710
- }
2711
- _needToReCreateComponentInstance(e) {
2712
- return e.ngComponentOutlet !== void 0 || e.ngComponentOutletContent !== void 0 || e.ngComponentOutletInjector !== void 0 || e.ngComponentOutletEnvironmentInjector !== void 0 || this._needToReCreateNgModuleInstance(e);
2713
- }
2714
- ngOnChanges(e) {
2715
- var t;
2716
- if (this._needToReCreateComponentInstance(e) && (this._viewContainerRef.clear(), this._inputsUsed.clear(), this._componentRef = void 0, this.ngComponentOutlet)) {
2717
- const r = this.ngComponentOutletInjector || this._viewContainerRef.parentInjector;
2718
- this._needToReCreateNgModuleInstance(e) && ((t = this._moduleRef) == null || t.destroy(), this.ngComponentOutletNgModule ? this._moduleRef = Br(this.ngComponentOutletNgModule, Ws(r)) : this._moduleRef = void 0), this._componentRef = this._viewContainerRef.createComponent(this.ngComponentOutlet, {
2719
- injector: r,
2720
- ngModuleRef: this._moduleRef,
2721
- projectableNodes: this.ngComponentOutletContent,
2722
- environmentInjector: this.ngComponentOutletEnvironmentInjector
2723
- });
2724
- }
2725
- }
2726
- ngDoCheck() {
2727
- if (this._componentRef) {
2728
- if (this.ngComponentOutletInputs)
2729
- for (const e of Object.keys(this.ngComponentOutletInputs))
2730
- this._inputsUsed.set(e, !0);
2731
- this._applyInputStateDiff(this._componentRef);
2732
- }
2733
- }
2734
- ngOnDestroy() {
2735
- var e;
2736
- (e = this._moduleRef) == null || e.destroy();
2737
- }
2738
- _applyInputStateDiff(e) {
2739
- for (const [t, r] of this._inputsUsed)
2740
- r ? (e.setInput(t, this.ngComponentOutletInputs[t]), this._inputsUsed.set(t, !1)) : (e.setInput(t, void 0), this._inputsUsed.delete(t));
2741
- }
2742
- };
2743
- a(Be, "ɵfac", s.ɵɵngDeclareFactory({
2744
- minVersion: "12.0.0",
2745
- version: "21.2.3",
2746
- ngImport: s,
2747
- type: Be,
2748
- deps: [{
2749
- token: s.ViewContainerRef
2750
- }],
2751
- target: s.ɵɵFactoryTarget.Directive
2752
- })), a(Be, "ɵdir", s.ɵɵngDeclareDirective({
2753
- minVersion: "14.0.0",
2754
- version: "21.2.3",
2755
- type: Be,
2756
- isStandalone: !0,
2757
- selector: "[ngComponentOutlet]",
2758
- inputs: {
2759
- ngComponentOutlet: "ngComponentOutlet",
2760
- ngComponentOutletInputs: "ngComponentOutletInputs",
2761
- ngComponentOutletInjector: "ngComponentOutletInjector",
2762
- ngComponentOutletEnvironmentInjector: "ngComponentOutletEnvironmentInjector",
2763
- ngComponentOutletContent: "ngComponentOutletContent",
2764
- ngComponentOutletNgModule: "ngComponentOutletNgModule"
2765
- },
2766
- exportAs: ["ngComponentOutlet"],
2767
- usesOnChanges: !0,
2768
- ngImport: s
2769
- }));
2770
- let Ye = Be;
2771
- s.ɵɵngDeclareClassMetadata({
2772
- minVersion: "12.0.0",
2773
- version: "21.2.3",
2774
- ngImport: s,
2775
- type: Ye,
2776
- decorators: [{
2777
- type: G,
2778
- args: [{
2779
- selector: "[ngComponentOutlet]",
2780
- exportAs: "ngComponentOutlet"
2781
- }]
2782
- }],
2783
- ctorParameters: () => [{
2784
- type: s.ViewContainerRef
2785
- }],
2786
- propDecorators: {
2787
- ngComponentOutlet: [{
2788
- type: m
2789
- }],
2790
- ngComponentOutletInputs: [{
2791
- type: m
2792
- }],
2793
- ngComponentOutletInjector: [{
2794
- type: m
2795
- }],
2796
- ngComponentOutletEnvironmentInjector: [{
2797
- type: m
2798
- }],
2799
- ngComponentOutletContent: [{
2800
- type: m
2801
- }],
2802
- ngComponentOutletNgModule: [{
2803
- type: m
2804
- }]
2805
- }
2806
- });
2807
- function Ws(n) {
2808
- return n.get(Pr).injector;
2809
- }
2810
- class Xs {
2811
- constructor(e, t, r, i) {
2812
- a(this, "$implicit");
2813
- a(this, "ngForOf");
2814
- a(this, "index");
2815
- a(this, "count");
2816
- this.$implicit = e, this.ngForOf = t, this.index = r, this.count = i;
2817
- }
2818
- get first() {
2819
- return this.index === 0;
2820
- }
2821
- get last() {
2822
- return this.index === this.count - 1;
2823
- }
2824
- get even() {
2825
- return this.index % 2 === 0;
2826
- }
2827
- get odd() {
2828
- return !this.even;
2829
- }
2830
- }
2831
- const Re = class Re {
2832
- constructor(e, t, r) {
2833
- a(this, "_viewContainer");
2834
- a(this, "_template");
2835
- a(this, "_differs");
2836
- a(this, "_ngForOf", null);
2837
- a(this, "_ngForOfDirty", !0);
2838
- a(this, "_differ", null);
2839
- a(this, "_trackByFn");
2840
- this._viewContainer = e, this._template = t, this._differs = r;
2841
- }
2842
- set ngForOf(e) {
2843
- this._ngForOf = e, this._ngForOfDirty = !0;
2844
- }
2845
- set ngForTrackBy(e) {
2846
- (typeof ngDevMode > "u" || ngDevMode) && e != null && typeof e != "function" && console.warn(`trackBy must be a function, but received ${JSON.stringify(e)}. See https://angular.dev/api/common/NgForOf#change-propagation for more information.`), this._trackByFn = e;
2847
- }
2848
- get ngForTrackBy() {
2849
- return this._trackByFn;
2850
- }
2851
- set ngForTemplate(e) {
2852
- e && (this._template = e);
2853
- }
2854
- ngDoCheck() {
2855
- if (this._ngForOfDirty) {
2856
- this._ngForOfDirty = !1;
2857
- const e = this._ngForOf;
2858
- if (!this._differ && e)
2859
- if (typeof ngDevMode > "u" || ngDevMode)
2860
- try {
2861
- this._differ = this._differs.find(e).create(this.ngForTrackBy);
2862
- } catch {
2863
- let t = `Cannot find a differ supporting object '${e}' of type '${Js(e)}'. NgFor only supports binding to Iterables, such as Arrays.`;
2864
- throw typeof e == "object" && (t += " Did you mean to use the keyvalue pipe?"), new R(-2200, t);
2865
- }
2866
- else
2867
- this._differ = this._differs.find(e).create(this.ngForTrackBy);
2868
- }
2869
- if (this._differ) {
2870
- const e = this._differ.diff(this._ngForOf);
2871
- e && this._applyChanges(e);
2872
- }
2873
- }
2874
- _applyChanges(e) {
2875
- const t = this._viewContainer;
2876
- e.forEachOperation((r, i, o) => {
2877
- if (r.previousIndex == null)
2878
- t.createEmbeddedView(this._template, new Xs(r.item, this._ngForOf, -1, -1), o === null ? void 0 : o);
2879
- else if (o == null)
2880
- t.remove(i === null ? void 0 : i);
2881
- else if (i !== null) {
2882
- const u = t.get(i);
2883
- t.move(u, o), Yn(u, r);
2884
- }
2885
- });
2886
- for (let r = 0, i = t.length; r < i; r++) {
2887
- const u = t.get(r).context;
2888
- u.index = r, u.count = i, u.ngForOf = this._ngForOf;
2889
- }
2890
- e.forEachIdentityChange((r) => {
2891
- const i = t.get(r.currentIndex);
2892
- Yn(i, r);
2893
- });
2894
- }
2895
- static ngTemplateContextGuard(e, t) {
2896
- return !0;
2897
- }
2898
- };
2899
- a(Re, "ɵfac", s.ɵɵngDeclareFactory({
2900
- minVersion: "12.0.0",
2901
- version: "21.2.3",
2902
- ngImport: s,
2903
- type: Re,
2904
- deps: [{
2905
- token: s.ViewContainerRef
2906
- }, {
2907
- token: s.TemplateRef
2908
- }, {
2909
- token: s.IterableDiffers
2910
- }],
2911
- target: s.ɵɵFactoryTarget.Directive
2912
- })), a(Re, "ɵdir", s.ɵɵngDeclareDirective({
2913
- minVersion: "14.0.0",
2914
- version: "21.2.3",
2915
- type: Re,
2916
- isStandalone: !0,
2917
- selector: "[ngFor][ngForOf]",
2918
- inputs: {
2919
- ngForOf: "ngForOf",
2920
- ngForTrackBy: "ngForTrackBy",
2921
- ngForTemplate: "ngForTemplate"
2922
- },
2923
- ngImport: s
2924
- }));
2925
- let ze = Re;
2926
- s.ɵɵngDeclareClassMetadata({
2927
- minVersion: "12.0.0",
2928
- version: "21.2.3",
2929
- ngImport: s,
2930
- type: ze,
2931
- decorators: [{
2932
- type: G,
2933
- args: [{
2934
- selector: "[ngFor][ngForOf]"
2935
- }]
2936
- }],
2937
- ctorParameters: () => [{
2938
- type: s.ViewContainerRef
2939
- }, {
2940
- type: s.TemplateRef
2941
- }, {
2942
- type: s.IterableDiffers
2943
- }],
2944
- propDecorators: {
2945
- ngForOf: [{
2946
- type: m
2947
- }],
2948
- ngForTrackBy: [{
2949
- type: m
2950
- }],
2951
- ngForTemplate: [{
2952
- type: m
2953
- }]
2954
- }
2955
- });
2956
- function Yn(n, e) {
2957
- n.context.$implicit = e.item;
2958
- }
2959
- function Js(n) {
2960
- return n.name || typeof n;
2961
- }
2962
- const Q = class Q {
2963
- constructor(e, t) {
2964
- a(this, "_viewContainer");
2965
- a(this, "_context", new Qs());
2966
- a(this, "_thenTemplateRef", null);
2967
- a(this, "_elseTemplateRef", null);
2968
- a(this, "_thenViewRef", null);
2969
- a(this, "_elseViewRef", null);
2970
- this._viewContainer = e, this._thenTemplateRef = t;
2971
- }
2972
- set ngIf(e) {
2973
- this._context.$implicit = this._context.ngIf = e, this._updateView();
2974
- }
2975
- set ngIfThen(e) {
2976
- zn(e, (typeof ngDevMode > "u" || ngDevMode) && "ngIfThen"), this._thenTemplateRef = e, this._thenViewRef = null, this._updateView();
2977
- }
2978
- set ngIfElse(e) {
2979
- zn(e, (typeof ngDevMode > "u" || ngDevMode) && "ngIfElse"), this._elseTemplateRef = e, this._elseViewRef = null, this._updateView();
2980
- }
2981
- _updateView() {
2982
- this._context.$implicit ? this._thenViewRef || (this._viewContainer.clear(), this._elseViewRef = null, this._thenTemplateRef && (this._thenViewRef = this._viewContainer.createEmbeddedView(this._thenTemplateRef, this._context))) : this._elseViewRef || (this._viewContainer.clear(), this._thenViewRef = null, this._elseTemplateRef && (this._elseViewRef = this._viewContainer.createEmbeddedView(this._elseTemplateRef, this._context)));
2983
- }
2984
- static ngTemplateContextGuard(e, t) {
2985
- return !0;
2986
- }
2987
- };
2988
- a(Q, "ngIfUseIfTypeGuard"), a(Q, "ngTemplateGuard_ngIf"), a(Q, "ɵfac", s.ɵɵngDeclareFactory({
2989
- minVersion: "12.0.0",
2990
- version: "21.2.3",
2991
- ngImport: s,
2992
- type: Q,
2993
- deps: [{
2994
- token: s.ViewContainerRef
2995
- }, {
2996
- token: s.TemplateRef
2997
- }],
2998
- target: s.ɵɵFactoryTarget.Directive
2999
- })), a(Q, "ɵdir", s.ɵɵngDeclareDirective({
3000
- minVersion: "14.0.0",
3001
- version: "21.2.3",
3002
- type: Q,
3003
- isStandalone: !0,
3004
- selector: "[ngIf]",
3005
- inputs: {
3006
- ngIf: "ngIf",
3007
- ngIfThen: "ngIfThen",
3008
- ngIfElse: "ngIfElse"
3009
- },
3010
- ngImport: s
3011
- }));
3012
- let Ze = Q;
3013
- s.ɵɵngDeclareClassMetadata({
3014
- minVersion: "12.0.0",
3015
- version: "21.2.3",
3016
- ngImport: s,
3017
- type: Ze,
3018
- decorators: [{
3019
- type: G,
3020
- args: [{
3021
- selector: "[ngIf]"
3022
- }]
3023
- }],
3024
- ctorParameters: () => [{
3025
- type: s.ViewContainerRef
3026
- }, {
3027
- type: s.TemplateRef
3028
- }],
3029
- propDecorators: {
3030
- ngIf: [{
3031
- type: m
3032
- }],
3033
- ngIfThen: [{
3034
- type: m
3035
- }],
3036
- ngIfElse: [{
3037
- type: m
3038
- }]
3039
- }
3040
- });
3041
- class Qs {
3042
- constructor() {
3043
- a(this, "$implicit", null);
3044
- a(this, "ngIf", null);
3045
- }
3046
- }
3047
- function zn(n, e) {
3048
- if (n && !n.createEmbeddedView)
3049
- throw new R(2020, (typeof ngDevMode > "u" || ngDevMode) && `${e} must be a TemplateRef, but received '${un(n)}'.`);
3050
- }
3051
- class hn {
3052
- constructor(e, t) {
3053
- a(this, "_viewContainerRef");
3054
- a(this, "_templateRef");
3055
- a(this, "_created", !1);
3056
- this._viewContainerRef = e, this._templateRef = t;
3057
- }
3058
- create() {
3059
- this._created = !0, this._viewContainerRef.createEmbeddedView(this._templateRef);
3060
- }
3061
- destroy() {
3062
- this._created = !1, this._viewContainerRef.clear();
3063
- }
3064
- enforceState(e) {
3065
- e && !this._created ? this.create() : !e && this._created && this.destroy();
3066
- }
3067
- }
3068
- const ke = class ke {
3069
- constructor() {
3070
- a(this, "_defaultViews", []);
3071
- a(this, "_defaultUsed", !1);
3072
- a(this, "_caseCount", 0);
3073
- a(this, "_lastCaseCheckIndex", 0);
3074
- a(this, "_lastCasesMatched", !1);
3075
- a(this, "_ngSwitch");
3076
- }
3077
- set ngSwitch(e) {
3078
- this._ngSwitch = e, this._caseCount === 0 && this._updateDefaultCases(!0);
3079
- }
3080
- _addCase() {
3081
- return this._caseCount++;
3082
- }
3083
- _addDefault(e) {
3084
- this._defaultViews.push(e);
3085
- }
3086
- _matchCase(e) {
3087
- const t = e === this._ngSwitch;
3088
- return this._lastCasesMatched || (this._lastCasesMatched = t), this._lastCaseCheckIndex++, this._lastCaseCheckIndex === this._caseCount && (this._updateDefaultCases(!this._lastCasesMatched), this._lastCaseCheckIndex = 0, this._lastCasesMatched = !1), t;
3089
- }
3090
- _updateDefaultCases(e) {
3091
- if (this._defaultViews.length > 0 && e !== this._defaultUsed) {
3092
- this._defaultUsed = e;
3093
- for (const t of this._defaultViews)
3094
- t.enforceState(e);
3095
- }
3096
- }
3097
- };
3098
- a(ke, "ɵfac", s.ɵɵngDeclareFactory({
3099
- minVersion: "12.0.0",
3100
- version: "21.2.3",
3101
- ngImport: s,
3102
- type: ke,
3103
- deps: [],
3104
- target: s.ɵɵFactoryTarget.Directive
3105
- })), a(ke, "ɵdir", s.ɵɵngDeclareDirective({
3106
- minVersion: "14.0.0",
3107
- version: "21.2.3",
3108
- type: ke,
3109
- isStandalone: !0,
3110
- selector: "[ngSwitch]",
3111
- inputs: {
3112
- ngSwitch: "ngSwitch"
3113
- },
3114
- ngImport: s
3115
- }));
3116
- let z = ke;
3117
- s.ɵɵngDeclareClassMetadata({
3118
- minVersion: "12.0.0",
3119
- version: "21.2.3",
3120
- ngImport: s,
3121
- type: z,
3122
- decorators: [{
3123
- type: G,
3124
- args: [{
3125
- selector: "[ngSwitch]"
3126
- }]
3127
- }],
3128
- propDecorators: {
3129
- ngSwitch: [{
3130
- type: m
3131
- }]
3132
- }
3133
- });
3134
- const Me = class Me {
3135
- constructor(e, t, r) {
3136
- a(this, "ngSwitch");
3137
- a(this, "_view");
3138
- a(this, "ngSwitchCase");
3139
- this.ngSwitch = r, (typeof ngDevMode > "u" || ngDevMode) && !r && fr("ngSwitchCase", "NgSwitchCase"), r._addCase(), this._view = new hn(e, t);
3140
- }
3141
- ngDoCheck() {
3142
- this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase));
3143
- }
3144
- };
3145
- a(Me, "ɵfac", s.ɵɵngDeclareFactory({
3146
- minVersion: "12.0.0",
3147
- version: "21.2.3",
3148
- ngImport: s,
3149
- type: Me,
3150
- deps: [{
3151
- token: s.ViewContainerRef
3152
- }, {
3153
- token: s.TemplateRef
3154
- }, {
3155
- token: z,
3156
- host: !0,
3157
- optional: !0
3158
- }],
3159
- target: s.ɵɵFactoryTarget.Directive
3160
- })), a(Me, "ɵdir", s.ɵɵngDeclareDirective({
3161
- minVersion: "14.0.0",
3162
- version: "21.2.3",
3163
- type: Me,
3164
- isStandalone: !0,
3165
- selector: "[ngSwitchCase]",
3166
- inputs: {
3167
- ngSwitchCase: "ngSwitchCase"
3168
- },
3169
- ngImport: s
3170
- }));
3171
- let Ke = Me;
3172
- s.ɵɵngDeclareClassMetadata({
3173
- minVersion: "12.0.0",
3174
- version: "21.2.3",
3175
- ngImport: s,
3176
- type: Ke,
3177
- decorators: [{
3178
- type: G,
3179
- args: [{
3180
- selector: "[ngSwitchCase]"
3181
- }]
3182
- }],
3183
- ctorParameters: () => [{
3184
- type: s.ViewContainerRef
3185
- }, {
3186
- type: s.TemplateRef
3187
- }, {
3188
- type: z,
3189
- decorators: [{
3190
- type: $e
3191
- }, {
3192
- type: cn
3193
- }]
3194
- }],
3195
- propDecorators: {
3196
- ngSwitchCase: [{
3197
- type: m
3198
- }]
3199
- }
3200
- });
3201
- const Ve = class Ve {
3202
- constructor(e, t, r) {
3203
- (typeof ngDevMode > "u" || ngDevMode) && !r && fr("ngSwitchDefault", "NgSwitchDefault"), r._addDefault(new hn(e, t));
3204
- }
3205
- };
3206
- a(Ve, "ɵfac", s.ɵɵngDeclareFactory({
3207
- minVersion: "12.0.0",
3208
- version: "21.2.3",
3209
- ngImport: s,
3210
- type: Ve,
3211
- deps: [{
3212
- token: s.ViewContainerRef
3213
- }, {
3214
- token: s.TemplateRef
3215
- }, {
3216
- token: z,
3217
- host: !0,
3218
- optional: !0
3219
- }],
3220
- target: s.ɵɵFactoryTarget.Directive
3221
- })), a(Ve, "ɵdir", s.ɵɵngDeclareDirective({
3222
- minVersion: "14.0.0",
3223
- version: "21.2.3",
3224
- type: Ve,
3225
- isStandalone: !0,
3226
- selector: "[ngSwitchDefault]",
3227
- ngImport: s
3228
- }));
3229
- let qe = Ve;
3230
- s.ɵɵngDeclareClassMetadata({
3231
- minVersion: "12.0.0",
3232
- version: "21.2.3",
3233
- ngImport: s,
3234
- type: qe,
3235
- decorators: [{
3236
- type: G,
3237
- args: [{
3238
- selector: "[ngSwitchDefault]"
3239
- }]
3240
- }],
3241
- ctorParameters: () => [{
3242
- type: s.ViewContainerRef
3243
- }, {
3244
- type: s.TemplateRef
3245
- }, {
3246
- type: z,
3247
- decorators: [{
3248
- type: $e
3249
- }, {
3250
- type: cn
3251
- }]
3252
- }]
3253
- });
3254
- function fr(n, e) {
3255
- throw new R(2e3, `An element with the "${n}" attribute (matching the "${e}" directive) must be located inside an element with the "ngSwitch" attribute (matching "NgSwitch" directive)`);
3256
- }
3257
- const xe = class xe {
3258
- constructor(e) {
3259
- a(this, "_localization");
3260
- a(this, "_activeView");
3261
- a(this, "_caseViews", {});
3262
- this._localization = e;
3263
- }
3264
- set ngPlural(e) {
3265
- this._updateView(e);
3266
- }
3267
- addCase(e, t) {
3268
- this._caseViews[e] = t;
3269
- }
3270
- _updateView(e) {
3271
- this._clearViews();
3272
- const t = Object.keys(this._caseViews), r = lr(e, t, this._localization);
3273
- this._activateView(this._caseViews[r]);
3274
- }
3275
- _clearViews() {
3276
- this._activeView && this._activeView.destroy();
3277
- }
3278
- _activateView(e) {
3279
- e && (this._activeView = e, this._activeView.create());
3280
- }
3281
- };
3282
- a(xe, "ɵfac", s.ɵɵngDeclareFactory({
3283
- minVersion: "12.0.0",
3284
- version: "21.2.3",
3285
- ngImport: s,
3286
- type: xe,
3287
- deps: [{
3288
- token: re
3289
- }],
3290
- target: s.ɵɵFactoryTarget.Directive
3291
- })), a(xe, "ɵdir", s.ɵɵngDeclareDirective({
3292
- minVersion: "14.0.0",
3293
- version: "21.2.3",
3294
- type: xe,
3295
- isStandalone: !0,
3296
- selector: "[ngPlural]",
3297
- inputs: {
3298
- ngPlural: "ngPlural"
3299
- },
3300
- ngImport: s
3301
- }));
3302
- let se = xe;
3303
- s.ɵɵngDeclareClassMetadata({
3304
- minVersion: "12.0.0",
3305
- version: "21.2.3",
3306
- ngImport: s,
3307
- type: se,
3308
- decorators: [{
3309
- type: G,
3310
- args: [{
3311
- selector: "[ngPlural]"
3312
- }]
3313
- }],
3314
- ctorParameters: () => [{
3315
- type: re
3316
- }],
3317
- propDecorators: {
3318
- ngPlural: [{
3319
- type: m
3320
- }]
3321
- }
3322
- });
3323
- const Pe = class Pe {
3324
- constructor(e, t, r, i) {
3325
- a(this, "value");
3326
- this.value = e;
3327
- const o = !isNaN(Number(e));
3328
- i.addCase(o ? `=${e}` : e, new hn(r, t));
3329
- }
3330
- };
3331
- a(Pe, "ɵfac", s.ɵɵngDeclareFactory({
3332
- minVersion: "12.0.0",
3333
- version: "21.2.3",
3334
- ngImport: s,
3335
- type: Pe,
3336
- deps: [{
3337
- token: "ngPluralCase",
3338
- attribute: !0
3339
- }, {
3340
- token: s.TemplateRef
3341
- }, {
3342
- token: s.ViewContainerRef
3343
- }, {
3344
- token: se,
3345
- host: !0
3346
- }],
3347
- target: s.ɵɵFactoryTarget.Directive
3348
- })), a(Pe, "ɵdir", s.ɵɵngDeclareDirective({
3349
- minVersion: "14.0.0",
3350
- version: "21.2.3",
3351
- type: Pe,
3352
- isStandalone: !0,
3353
- selector: "[ngPluralCase]",
3354
- ngImport: s
3355
- }));
3356
- let We = Pe;
3357
- s.ɵɵngDeclareClassMetadata({
3358
- minVersion: "12.0.0",
3359
- version: "21.2.3",
3360
- ngImport: s,
3361
- type: We,
3362
- decorators: [{
3363
- type: G,
3364
- args: [{
3365
- selector: "[ngPluralCase]"
3366
- }]
3367
- }],
3368
- ctorParameters: () => [{
3369
- type: void 0,
3370
- decorators: [{
3371
- type: Ur,
3372
- args: ["ngPluralCase"]
3373
- }]
3374
- }, {
3375
- type: s.TemplateRef
3376
- }, {
3377
- type: s.ViewContainerRef
3378
- }, {
3379
- type: se,
3380
- decorators: [{
3381
- type: cn
3382
- }]
3383
- }]
3384
- });
3385
- const Le = class Le {
3386
- constructor(e, t, r) {
3387
- a(this, "_ngEl");
3388
- a(this, "_differs");
3389
- a(this, "_renderer");
3390
- a(this, "_ngStyle", null);
3391
- a(this, "_differ", null);
3392
- this._ngEl = e, this._differs = t, this._renderer = r;
3393
- }
3394
- set ngStyle(e) {
3395
- this._ngStyle = e, !this._differ && e && (this._differ = this._differs.find(e).create());
3396
- }
3397
- ngDoCheck() {
3398
- if (this._differ) {
3399
- const e = this._differ.diff(this._ngStyle);
3400
- e && this._applyChanges(e);
3401
- }
3402
- }
3403
- _setStyle(e, t) {
3404
- const [r, i] = e.split("."), o = r.indexOf("-") === -1 ? void 0 : kr.DashCase;
3405
- t != null ? this._renderer.setStyle(this._ngEl.nativeElement, r, i ? `${t}${i}` : t, o) : this._renderer.removeStyle(this._ngEl.nativeElement, r, o);
3406
- }
3407
- _applyChanges(e) {
3408
- e.forEachRemovedItem((t) => this._setStyle(t.key, null)), e.forEachAddedItem((t) => this._setStyle(t.key, t.currentValue)), e.forEachChangedItem((t) => this._setStyle(t.key, t.currentValue));
3409
- }
3410
- };
3411
- a(Le, "ɵfac", s.ɵɵngDeclareFactory({
3412
- minVersion: "12.0.0",
3413
- version: "21.2.3",
3414
- ngImport: s,
3415
- type: Le,
3416
- deps: [{
3417
- token: s.ElementRef
3418
- }, {
3419
- token: s.KeyValueDiffers
3420
- }, {
3421
- token: s.Renderer2
3422
- }],
3423
- target: s.ɵɵFactoryTarget.Directive
3424
- })), a(Le, "ɵdir", s.ɵɵngDeclareDirective({
3425
- minVersion: "14.0.0",
3426
- version: "21.2.3",
3427
- type: Le,
3428
- isStandalone: !0,
3429
- selector: "[ngStyle]",
3430
- inputs: {
3431
- ngStyle: "ngStyle"
3432
- },
3433
- ngImport: s
3434
- }));
3435
- let Xe = Le;
3436
- s.ɵɵngDeclareClassMetadata({
3437
- minVersion: "12.0.0",
3438
- version: "21.2.3",
3439
- ngImport: s,
3440
- type: Xe,
3441
- decorators: [{
3442
- type: G,
3443
- args: [{
3444
- selector: "[ngStyle]"
3445
- }]
3446
- }],
3447
- ctorParameters: () => [{
3448
- type: s.ElementRef
3449
- }, {
3450
- type: s.KeyValueDiffers
3451
- }, {
3452
- type: s.Renderer2
3453
- }],
3454
- propDecorators: {
3455
- ngStyle: [{
3456
- type: m,
3457
- args: ["ngStyle"]
3458
- }]
3459
- }
3460
- });
3461
- const je = class je {
3462
- constructor(e) {
3463
- a(this, "_viewContainerRef");
3464
- a(this, "_viewRef", null);
3465
- a(this, "ngTemplateOutletContext", null);
3466
- a(this, "ngTemplateOutlet", null);
3467
- a(this, "ngTemplateOutletInjector", null);
3468
- a(this, "injector", Z(Rr));
3469
- this._viewContainerRef = e;
3470
- }
3471
- ngOnChanges(e) {
3472
- if (this._shouldRecreateView(e)) {
3473
- const t = this._viewContainerRef;
3474
- if (this._viewRef && t.remove(t.indexOf(this._viewRef)), !this.ngTemplateOutlet) {
3475
- this._viewRef = null;
3476
- return;
3477
- }
3478
- const r = this._createContextForwardProxy();
3479
- this._viewRef = t.createEmbeddedView(this.ngTemplateOutlet, r, {
3480
- injector: this._getInjector()
3481
- });
3482
- }
3483
- }
3484
- _getInjector() {
3485
- return this.ngTemplateOutletInjector === "outlet" ? this.injector : this.ngTemplateOutletInjector ?? void 0;
3486
- }
3487
- _shouldRecreateView(e) {
3488
- return !!e.ngTemplateOutlet || !!e.ngTemplateOutletInjector;
3489
- }
3490
- _createContextForwardProxy() {
3491
- return new Proxy({}, {
3492
- set: (e, t, r) => this.ngTemplateOutletContext ? Reflect.set(this.ngTemplateOutletContext, t, r) : !1,
3493
- get: (e, t, r) => {
3494
- if (this.ngTemplateOutletContext)
3495
- return Reflect.get(this.ngTemplateOutletContext, t, r);
3496
- }
3497
- });
3498
- }
3499
- };
3500
- a(je, "ɵfac", s.ɵɵngDeclareFactory({
3501
- minVersion: "12.0.0",
3502
- version: "21.2.3",
3503
- ngImport: s,
3504
- type: je,
3505
- deps: [{
3506
- token: s.ViewContainerRef
3507
- }],
3508
- target: s.ɵɵFactoryTarget.Directive
3509
- })), a(je, "ɵdir", s.ɵɵngDeclareDirective({
3510
- minVersion: "14.0.0",
3511
- version: "21.2.3",
3512
- type: je,
3513
- isStandalone: !0,
3514
- selector: "[ngTemplateOutlet]",
3515
- inputs: {
3516
- ngTemplateOutletContext: "ngTemplateOutletContext",
3517
- ngTemplateOutlet: "ngTemplateOutlet",
3518
- ngTemplateOutletInjector: "ngTemplateOutletInjector"
3519
- },
3520
- usesOnChanges: !0,
3521
- ngImport: s
3522
- }));
3523
- let Je = je;
3524
- s.ɵɵngDeclareClassMetadata({
3525
- minVersion: "12.0.0",
3526
- version: "21.2.3",
3527
- ngImport: s,
3528
- type: Je,
3529
- decorators: [{
3530
- type: G,
3531
- args: [{
3532
- selector: "[ngTemplateOutlet]"
3533
- }]
3534
- }],
3535
- ctorParameters: () => [{
3536
- type: s.ViewContainerRef
3537
- }],
3538
- propDecorators: {
3539
- ngTemplateOutletContext: [{
3540
- type: m
3541
- }],
3542
- ngTemplateOutlet: [{
3543
- type: m
3544
- }],
3545
- ngTemplateOutletInjector: [{
3546
- type: m
3547
- }]
3548
- }
3549
- });
3550
- const Zn = [He, Ye, ze, Ze, Je, Xe, z, Ke, qe, se, We];
3551
- function X(n, e) {
3552
- return new R(2100, ngDevMode && `InvalidPipeArgument: '${e}' for pipe '${un(n)}'`);
3553
- }
3554
- function dr(n, e) {
3555
- Lr(e) && console.warn(`The ${n} does not unwrap signals. Received a signal with value:`, e());
3556
- }
3557
- class ei {
3558
- createSubscription(e, t, r) {
3559
- return Tn(() => e.subscribe({
3560
- next: t,
3561
- error: r
3562
- }));
3563
- }
3564
- dispose(e) {
3565
- Tn(() => e.unsubscribe());
3566
- }
3567
- }
3568
- class ti {
3569
- createSubscription(e, t, r) {
3570
- return e.then((i) => t == null ? void 0 : t(i), (i) => r == null ? void 0 : r(i)), {
3571
- unsubscribe: () => {
3572
- t = null, r = null;
3573
- }
3574
- };
3575
- }
3576
- dispose(e) {
3577
- e.unsubscribe();
3578
- }
3579
- }
3580
- const ni = new ti(), ri = new ei(), ae = class ae {
3581
- constructor(e) {
3582
- a(this, "_ref");
3583
- a(this, "_latestValue", null);
3584
- a(this, "markForCheckOnValueUpdate", !0);
3585
- a(this, "_subscription", null);
3586
- a(this, "_obj", null);
3587
- a(this, "_strategy", null);
3588
- a(this, "applicationErrorHandler", Z(Mr));
3589
- this._ref = e;
3590
- }
3591
- ngOnDestroy() {
3592
- this._subscription && this._dispose(), this._ref = null;
3593
- }
3594
- transform(e) {
3595
- if (!this._obj) {
3596
- if (e)
3597
- try {
3598
- this.markForCheckOnValueUpdate = !1, this._subscribe(e);
3599
- } finally {
3600
- this.markForCheckOnValueUpdate = !0;
3601
- }
3602
- return this._latestValue;
3603
- }
3604
- return e !== this._obj ? (this._dispose(), this.transform(e)) : this._latestValue;
3605
- }
3606
- _subscribe(e) {
3607
- this._obj = e, this._strategy = this._selectStrategy(e), this._subscription = this._strategy.createSubscription(e, (t) => this._updateLatestValue(e, t), (t) => this.applicationErrorHandler(t));
3608
- }
3609
- _selectStrategy(e) {
3610
- if (Vr(e))
3611
- return ni;
3612
- if (xr(e))
3613
- return ri;
3614
- throw X(ae, e);
3615
- }
3616
- _dispose() {
3617
- this._strategy.dispose(this._subscription), this._latestValue = null, this._subscription = null, this._obj = null;
3618
- }
3619
- _updateLatestValue(e, t) {
3620
- var r;
3621
- e === this._obj && (this._latestValue = t, this.markForCheckOnValueUpdate && ((r = this._ref) == null || r.markForCheck()));
3622
- }
3623
- };
3624
- a(ae, "ɵfac", s.ɵɵngDeclareFactory({
3625
- minVersion: "12.0.0",
3626
- version: "21.2.3",
3627
- ngImport: s,
3628
- type: ae,
3629
- deps: [{
3630
- token: s.ChangeDetectorRef
3631
- }],
3632
- target: s.ɵɵFactoryTarget.Pipe
3633
- })), a(ae, "ɵpipe", s.ɵɵngDeclarePipe({
3634
- minVersion: "14.0.0",
3635
- version: "21.2.3",
3636
- ngImport: s,
3637
- type: ae,
3638
- isStandalone: !0,
3639
- name: "async",
3640
- pure: !1
3641
- }));
3642
- let Qe = ae;
3643
- s.ɵɵngDeclareClassMetadata({
3644
- minVersion: "12.0.0",
3645
- version: "21.2.3",
3646
- ngImport: s,
3647
- type: Qe,
3648
- decorators: [{
3649
- type: V,
3650
- args: [{
3651
- name: "async",
3652
- pure: !1
3653
- }]
3654
- }],
3655
- ctorParameters: () => [{
3656
- type: s.ChangeDetectorRef
3657
- }]
3658
- });
3659
- const ue = class ue {
3660
- transform(e) {
3661
- return e == null ? null : (gn(ue, e), e.toLowerCase());
3662
- }
3663
- };
3664
- a(ue, "ɵfac", s.ɵɵngDeclareFactory({
3665
- minVersion: "12.0.0",
3666
- version: "21.2.3",
3667
- ngImport: s,
3668
- type: ue,
3669
- deps: [],
3670
- target: s.ɵɵFactoryTarget.Pipe
3671
- })), a(ue, "ɵpipe", s.ɵɵngDeclarePipe({
3672
- minVersion: "14.0.0",
3673
- version: "21.2.3",
3674
- ngImport: s,
3675
- type: ue,
3676
- isStandalone: !0,
3677
- name: "lowercase"
3678
- }));
3679
- let et = ue;
3680
- s.ɵɵngDeclareClassMetadata({
3681
- minVersion: "12.0.0",
3682
- version: "21.2.3",
3683
- ngImport: s,
3684
- type: et,
3685
- decorators: [{
3686
- type: V,
3687
- args: [{
3688
- name: "lowercase"
3689
- }]
3690
- }]
3691
- });
3692
- const si = /(?:[0-9A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])\S*/g, ce = class ce {
3693
- transform(e) {
3694
- return e == null ? null : (gn(ce, e), e.replace(si, (t) => t[0].toUpperCase() + t.slice(1).toLowerCase()));
3695
- }
3696
- };
3697
- a(ce, "ɵfac", s.ɵɵngDeclareFactory({
3698
- minVersion: "12.0.0",
3699
- version: "21.2.3",
3700
- ngImport: s,
3701
- type: ce,
3702
- deps: [],
3703
- target: s.ɵɵFactoryTarget.Pipe
3704
- })), a(ce, "ɵpipe", s.ɵɵngDeclarePipe({
3705
- minVersion: "14.0.0",
3706
- version: "21.2.3",
3707
- ngImport: s,
3708
- type: ce,
3709
- isStandalone: !0,
3710
- name: "titlecase"
3711
- }));
3712
- let tt = ce;
3713
- s.ɵɵngDeclareClassMetadata({
3714
- minVersion: "12.0.0",
3715
- version: "21.2.3",
3716
- ngImport: s,
3717
- type: tt,
3718
- decorators: [{
3719
- type: V,
3720
- args: [{
3721
- name: "titlecase"
3722
- }]
3723
- }]
3724
- });
3725
- const le = class le {
3726
- transform(e) {
3727
- return e == null ? null : (gn(le, e), e.toUpperCase());
3728
- }
3729
- };
3730
- a(le, "ɵfac", s.ɵɵngDeclareFactory({
3731
- minVersion: "12.0.0",
3732
- version: "21.2.3",
3733
- ngImport: s,
3734
- type: le,
3735
- deps: [],
3736
- target: s.ɵɵFactoryTarget.Pipe
3737
- })), a(le, "ɵpipe", s.ɵɵngDeclarePipe({
3738
- minVersion: "14.0.0",
3739
- version: "21.2.3",
3740
- ngImport: s,
3741
- type: le,
3742
- isStandalone: !0,
3743
- name: "uppercase"
3744
- }));
3745
- let nt = le;
3746
- s.ɵɵngDeclareClassMetadata({
3747
- minVersion: "12.0.0",
3748
- version: "21.2.3",
3749
- ngImport: s,
3750
- type: nt,
3751
- decorators: [{
3752
- type: V,
3753
- args: [{
3754
- name: "uppercase"
3755
- }]
3756
- }]
3757
- });
3758
- function gn(n, e) {
3759
- if (typeof e != "string")
3760
- throw X(n, e);
3761
- }
3762
- const ii = "mediumDate", pr = new Vt(typeof ngDevMode < "u" && ngDevMode ? "DATE_PIPE_DEFAULT_TIMEZONE" : ""), Dr = new Vt(typeof ngDevMode < "u" && ngDevMode ? "DATE_PIPE_DEFAULT_OPTIONS" : ""), fe = class fe {
3763
- constructor(e, t, r) {
3764
- a(this, "locale");
3765
- a(this, "defaultTimezone");
3766
- a(this, "defaultOptions");
3767
- this.locale = e, this.defaultTimezone = t, this.defaultOptions = r;
3768
- }
3769
- transform(e, t, r, i) {
3770
- var o, u;
3771
- if (e == null || e === "" || e !== e) return null;
3772
- try {
3773
- const c = t ?? ((o = this.defaultOptions) == null ? void 0 : o.dateFormat) ?? ii, d = r ?? ((u = this.defaultOptions) == null ? void 0 : u.timezone) ?? this.defaultTimezone ?? void 0;
3774
- return Ts(e, c, i || this.locale, d);
3775
- } catch (c) {
3776
- throw X(fe, c.message);
3777
- }
3778
- }
3779
- };
3780
- a(fe, "ɵfac", s.ɵɵngDeclareFactory({
3781
- minVersion: "12.0.0",
3782
- version: "21.2.3",
3783
- ngImport: s,
3784
- type: fe,
3785
- deps: [{
3786
- token: j
3787
- }, {
3788
- token: pr,
3789
- optional: !0
3790
- }, {
3791
- token: Dr,
3792
- optional: !0
3793
- }],
3794
- target: s.ɵɵFactoryTarget.Pipe
3795
- })), a(fe, "ɵpipe", s.ɵɵngDeclarePipe({
3796
- minVersion: "14.0.0",
3797
- version: "21.2.3",
3798
- ngImport: s,
3799
- type: fe,
3800
- isStandalone: !0,
3801
- name: "date"
3802
- }));
3803
- let rt = fe;
3804
- s.ɵɵngDeclareClassMetadata({
3805
- minVersion: "12.0.0",
3806
- version: "21.2.3",
3807
- ngImport: s,
3808
- type: rt,
3809
- decorators: [{
3810
- type: V,
3811
- args: [{
3812
- name: "date"
3813
- }]
3814
- }],
3815
- ctorParameters: () => [{
3816
- type: void 0,
3817
- decorators: [{
3818
- type: Y,
3819
- args: [j]
3820
- }]
3821
- }, {
3822
- type: void 0,
3823
- decorators: [{
3824
- type: Y,
3825
- args: [pr]
3826
- }, {
3827
- type: $e
3828
- }]
3829
- }, {
3830
- type: void 0,
3831
- decorators: [{
3832
- type: Y,
3833
- args: [Dr]
3834
- }, {
3835
- type: $e
3836
- }]
3837
- }]
3838
- });
3839
- const oi = /#/g, de = class de {
3840
- constructor(e) {
3841
- a(this, "_localization");
3842
- this._localization = e;
3843
- }
3844
- transform(e, t, r) {
3845
- if (e == null) return "";
3846
- if (typeof t != "object" || t === null)
3847
- throw X(de, t);
3848
- const i = lr(e, Object.keys(t), this._localization, r);
3849
- return t[i].replace(oi, e.toString());
3850
- }
3851
- };
3852
- a(de, "ɵfac", s.ɵɵngDeclareFactory({
3853
- minVersion: "12.0.0",
3854
- version: "21.2.3",
3855
- ngImport: s,
3856
- type: de,
3857
- deps: [{
3858
- token: re
3859
- }],
3860
- target: s.ɵɵFactoryTarget.Pipe
3861
- })), a(de, "ɵpipe", s.ɵɵngDeclarePipe({
3862
- minVersion: "14.0.0",
3863
- version: "21.2.3",
3864
- ngImport: s,
3865
- type: de,
3866
- isStandalone: !0,
3867
- name: "i18nPlural"
3868
- }));
3869
- let st = de;
3870
- s.ɵɵngDeclareClassMetadata({
3871
- minVersion: "12.0.0",
3872
- version: "21.2.3",
3873
- ngImport: s,
3874
- type: st,
3875
- decorators: [{
3876
- type: V,
3877
- args: [{
3878
- name: "i18nPlural"
3879
- }]
3880
- }],
3881
- ctorParameters: () => [{
3882
- type: re
3883
- }]
3884
- });
3885
- const pe = class pe {
3886
- transform(e, t) {
3887
- if (e == null) return "";
3888
- if (typeof t != "object" || typeof e != "string")
3889
- throw X(pe, t);
3890
- return t.hasOwnProperty(e) ? t[e] : t.hasOwnProperty("other") ? t.other : "";
3891
- }
3892
- };
3893
- a(pe, "ɵfac", s.ɵɵngDeclareFactory({
3894
- minVersion: "12.0.0",
3895
- version: "21.2.3",
3896
- ngImport: s,
3897
- type: pe,
3898
- deps: [],
3899
- target: s.ɵɵFactoryTarget.Pipe
3900
- })), a(pe, "ɵpipe", s.ɵɵngDeclarePipe({
3901
- minVersion: "14.0.0",
3902
- version: "21.2.3",
3903
- ngImport: s,
3904
- type: pe,
3905
- isStandalone: !0,
3906
- name: "i18nSelect"
3907
- }));
3908
- let it = pe;
3909
- s.ɵɵngDeclareClassMetadata({
3910
- minVersion: "12.0.0",
3911
- version: "21.2.3",
3912
- ngImport: s,
3913
- type: it,
3914
- decorators: [{
3915
- type: V,
3916
- args: [{
3917
- name: "i18nSelect"
3918
- }]
3919
- }]
3920
- });
3921
- const Ne = class Ne {
3922
- transform(e) {
3923
- return ngDevMode && dr("JsonPipe", e), JSON.stringify(e, null, 2);
3924
- }
3925
- };
3926
- a(Ne, "ɵfac", s.ɵɵngDeclareFactory({
3927
- minVersion: "12.0.0",
3928
- version: "21.2.3",
3929
- ngImport: s,
3930
- type: Ne,
3931
- deps: [],
3932
- target: s.ɵɵFactoryTarget.Pipe
3933
- })), a(Ne, "ɵpipe", s.ɵɵngDeclarePipe({
3934
- minVersion: "14.0.0",
3935
- version: "21.2.3",
3936
- ngImport: s,
3937
- type: Ne,
3938
- isStandalone: !0,
3939
- name: "json",
3940
- pure: !1
3941
- }));
3942
- let ot = Ne;
3943
- s.ɵɵngDeclareClassMetadata({
3944
- minVersion: "12.0.0",
3945
- version: "21.2.3",
3946
- ngImport: s,
3947
- type: ot,
3948
- decorators: [{
3949
- type: V,
3950
- args: [{
3951
- name: "json",
3952
- pure: !1
3953
- }]
3954
- }]
3955
- });
3956
- function ai(n, e) {
3957
- return {
3958
- key: n,
3959
- value: e
3960
- };
3961
- }
3962
- const Ue = class Ue {
3963
- constructor(e) {
3964
- a(this, "differs");
3965
- a(this, "differ");
3966
- a(this, "keyValues", []);
3967
- a(this, "compareFn", Kn);
3968
- this.differs = e;
3969
- }
3970
- transform(e, t = Kn) {
3971
- if (ngDevMode && dr("KeyValuePipe", e), !e || !(e instanceof Map) && typeof e != "object")
3972
- return null;
3973
- this.differ ?? (this.differ = this.differs.find(e).create());
3974
- const r = this.differ.diff(e), i = t !== this.compareFn;
3975
- return r && (this.keyValues = [], r.forEachItem((o) => {
3976
- this.keyValues.push(ai(o.key, o.currentValue));
3977
- })), (r || i) && (t && this.keyValues.sort(t), this.compareFn = t), this.keyValues;
3978
- }
3979
- };
3980
- a(Ue, "ɵfac", s.ɵɵngDeclareFactory({
3981
- minVersion: "12.0.0",
3982
- version: "21.2.3",
3983
- ngImport: s,
3984
- type: Ue,
3985
- deps: [{
3986
- token: s.KeyValueDiffers
3987
- }],
3988
- target: s.ɵɵFactoryTarget.Pipe
3989
- })), a(Ue, "ɵpipe", s.ɵɵngDeclarePipe({
3990
- minVersion: "14.0.0",
3991
- version: "21.2.3",
3992
- ngImport: s,
3993
- type: Ue,
3994
- isStandalone: !0,
3995
- name: "keyvalue",
3996
- pure: !1
3997
- }));
3998
- let at = Ue;
3999
- s.ɵɵngDeclareClassMetadata({
4000
- minVersion: "12.0.0",
4001
- version: "21.2.3",
4002
- ngImport: s,
4003
- type: at,
4004
- decorators: [{
4005
- type: V,
4006
- args: [{
4007
- name: "keyvalue",
4008
- pure: !1
4009
- }]
4010
- }],
4011
- ctorParameters: () => [{
4012
- type: s.KeyValueDiffers
4013
- }]
4014
- });
4015
- function Kn(n, e) {
4016
- const t = n.key, r = e.key;
4017
- if (t === r) return 0;
4018
- if (t == null) return 1;
4019
- if (r == null) return -1;
4020
- if (typeof t == "string" && typeof r == "string")
4021
- return t < r ? -1 : 1;
4022
- if (typeof t == "number" && typeof r == "number")
4023
- return t - r;
4024
- if (typeof t == "boolean" && typeof r == "boolean")
4025
- return t < r ? -1 : 1;
4026
- const i = String(t), o = String(r);
4027
- return i == o ? 0 : i < o ? -1 : 1;
4028
- }
4029
- const De = class De {
4030
- constructor(e) {
4031
- a(this, "_locale");
4032
- this._locale = e;
4033
- }
4034
- transform(e, t, r) {
4035
- if (!mn(e)) return null;
4036
- r || (r = this._locale);
4037
- try {
4038
- const i = yn(e);
4039
- return zs(i, r, t);
4040
- } catch (i) {
4041
- throw X(De, i.message);
4042
- }
4043
- }
4044
- };
4045
- a(De, "ɵfac", s.ɵɵngDeclareFactory({
4046
- minVersion: "12.0.0",
4047
- version: "21.2.3",
4048
- ngImport: s,
4049
- type: De,
4050
- deps: [{
4051
- token: j
4052
- }],
4053
- target: s.ɵɵFactoryTarget.Pipe
4054
- })), a(De, "ɵpipe", s.ɵɵngDeclarePipe({
4055
- minVersion: "14.0.0",
4056
- version: "21.2.3",
4057
- ngImport: s,
4058
- type: De,
4059
- isStandalone: !0,
4060
- name: "number"
4061
- }));
4062
- let ut = De;
4063
- s.ɵɵngDeclareClassMetadata({
4064
- minVersion: "12.0.0",
4065
- version: "21.2.3",
4066
- ngImport: s,
4067
- type: ut,
4068
- decorators: [{
4069
- type: V,
4070
- args: [{
4071
- name: "number"
4072
- }]
4073
- }],
4074
- ctorParameters: () => [{
4075
- type: void 0,
4076
- decorators: [{
4077
- type: Y,
4078
- args: [j]
4079
- }]
4080
- }]
4081
- });
4082
- const he = class he {
4083
- constructor(e) {
4084
- a(this, "_locale");
4085
- this._locale = e;
4086
- }
4087
- transform(e, t, r) {
4088
- if (!mn(e)) return null;
4089
- r || (r = this._locale);
4090
- try {
4091
- const i = yn(e);
4092
- return Ys(i, r, t);
4093
- } catch (i) {
4094
- throw X(he, i.message);
4095
- }
4096
- }
4097
- };
4098
- a(he, "ɵfac", s.ɵɵngDeclareFactory({
4099
- minVersion: "12.0.0",
4100
- version: "21.2.3",
4101
- ngImport: s,
4102
- type: he,
4103
- deps: [{
4104
- token: j
4105
- }],
4106
- target: s.ɵɵFactoryTarget.Pipe
4107
- })), a(he, "ɵpipe", s.ɵɵngDeclarePipe({
4108
- minVersion: "14.0.0",
4109
- version: "21.2.3",
4110
- ngImport: s,
4111
- type: he,
4112
- isStandalone: !0,
4113
- name: "percent"
4114
- }));
4115
- let ct = he;
4116
- s.ɵɵngDeclareClassMetadata({
4117
- minVersion: "12.0.0",
4118
- version: "21.2.3",
4119
- ngImport: s,
4120
- type: ct,
4121
- decorators: [{
4122
- type: V,
4123
- args: [{
4124
- name: "percent"
4125
- }]
4126
- }],
4127
- ctorParameters: () => [{
4128
- type: void 0,
4129
- decorators: [{
4130
- type: Y,
4131
- args: [j]
4132
- }]
4133
- }]
4134
- });
4135
- const ge = class ge {
4136
- constructor(e, t = "USD") {
4137
- a(this, "_locale");
4138
- a(this, "_defaultCurrencyCode");
4139
- this._locale = e, this._defaultCurrencyCode = t;
4140
- }
4141
- transform(e, t = this._defaultCurrencyCode, r = "symbol", i, o) {
4142
- if (!mn(e)) return null;
4143
- o || (o = this._locale), typeof r == "boolean" && ((typeof ngDevMode > "u" || ngDevMode) && console.warn('Warning: the currency pipe has been changed in Angular v5. The symbolDisplay option (third parameter) is now a string instead of a boolean. The accepted values are "code", "symbol" or "symbol-narrow".'), r = r ? "symbol" : "code");
4144
- let u = t || this._defaultCurrencyCode;
4145
- r !== "code" && (r === "symbol" || r === "symbol-narrow" ? u = bs(u, r === "symbol" ? "wide" : "narrow", o) : u = r);
4146
- try {
4147
- const c = yn(e);
4148
- return Hs(c, o, u, t, i);
4149
- } catch (c) {
4150
- throw X(ge, c.message);
4151
- }
4152
- }
4153
- };
4154
- a(ge, "ɵfac", s.ɵɵngDeclareFactory({
4155
- minVersion: "12.0.0",
4156
- version: "21.2.3",
4157
- ngImport: s,
4158
- type: ge,
4159
- deps: [{
4160
- token: j
4161
- }, {
4162
- token: Xn
4163
- }],
4164
- target: s.ɵɵFactoryTarget.Pipe
4165
- })), a(ge, "ɵpipe", s.ɵɵngDeclarePipe({
4166
- minVersion: "14.0.0",
4167
- version: "21.2.3",
4168
- ngImport: s,
4169
- type: ge,
4170
- isStandalone: !0,
4171
- name: "currency"
4172
- }));
4173
- let lt = ge;
4174
- s.ɵɵngDeclareClassMetadata({
4175
- minVersion: "12.0.0",
4176
- version: "21.2.3",
4177
- ngImport: s,
4178
- type: lt,
4179
- decorators: [{
4180
- type: V,
4181
- args: [{
4182
- name: "currency"
4183
- }]
4184
- }],
4185
- ctorParameters: () => [{
4186
- type: void 0,
4187
- decorators: [{
4188
- type: Y,
4189
- args: [j]
4190
- }]
4191
- }, {
4192
- type: void 0,
4193
- decorators: [{
4194
- type: Y,
4195
- args: [Xn]
4196
- }]
4197
- }]
4198
- });
4199
- function mn(n) {
4200
- return !(n == null || n === "" || n !== n);
4201
- }
4202
- function yn(n) {
4203
- if (typeof n == "string" && !isNaN(Number(n) - parseFloat(n)))
4204
- return Number(n);
4205
- if (typeof n != "number")
4206
- throw new R(2309, ngDevMode && `${n} is not a number`);
4207
- return n;
4208
- }
4209
- const me = class me {
4210
- transform(e, t, r) {
4211
- if (e == null) return null;
4212
- if (!(typeof e == "string" || Array.isArray(e)))
4213
- throw X(me, e);
4214
- return e.slice(t, r);
4215
- }
4216
- };
4217
- a(me, "ɵfac", s.ɵɵngDeclareFactory({
4218
- minVersion: "12.0.0",
4219
- version: "21.2.3",
4220
- ngImport: s,
4221
- type: me,
4222
- deps: [],
4223
- target: s.ɵɵFactoryTarget.Pipe
4224
- })), a(me, "ɵpipe", s.ɵɵngDeclarePipe({
4225
- minVersion: "14.0.0",
4226
- version: "21.2.3",
4227
- ngImport: s,
4228
- type: me,
4229
- isStandalone: !0,
4230
- name: "slice",
4231
- pure: !1
4232
- }));
4233
- let ft = me;
4234
- s.ɵɵngDeclareClassMetadata({
4235
- minVersion: "12.0.0",
4236
- version: "21.2.3",
4237
- ngImport: s,
4238
- type: ft,
4239
- decorators: [{
4240
- type: V,
4241
- args: [{
4242
- name: "slice",
4243
- pure: !1
4244
- }]
4245
- }]
4246
- });
4247
- const qn = [Qe, nt, et, ot, ft, ut, ct, tt, lt, rt, st, it, at], ee = class ee {
4248
- };
4249
- a(ee, "ɵfac", s.ɵɵngDeclareFactory({
4250
- minVersion: "12.0.0",
4251
- version: "21.2.3",
4252
- ngImport: s,
4253
- type: ee,
4254
- deps: [],
4255
- target: s.ɵɵFactoryTarget.NgModule
4256
- })), a(ee, "ɵmod", s.ɵɵngDeclareNgModule({
4257
- minVersion: "14.0.0",
4258
- version: "21.2.3",
4259
- ngImport: s,
4260
- type: ee,
4261
- imports: [He, Ye, ze, Ze, Je, Xe, z, Ke, qe, se, We, Qe, nt, et, ot, ft, ut, ct, tt, lt, rt, st, it, at],
4262
- exports: [He, Ye, ze, Ze, Je, Xe, z, Ke, qe, se, We, Qe, nt, et, ot, ft, ut, ct, tt, lt, rt, st, it, at]
4263
- })), a(ee, "ɵinj", s.ɵɵngDeclareInjector({
4264
- minVersion: "12.0.0",
4265
- version: "21.2.3",
4266
- ngImport: s,
4267
- type: ee
4268
- }));
4269
- let Mt = ee;
4270
- s.ɵɵngDeclareClassMetadata({
4271
- minVersion: "12.0.0",
4272
- version: "21.2.3",
4273
- ngImport: s,
4274
- type: Mt,
4275
- decorators: [{
4276
- type: $r,
4277
- args: [{
4278
- imports: [Zn, qn],
4279
- exports: [Zn, qn]
4280
- }]
4281
- }]
4282
- });
4283
- var ui = Object.defineProperty, ci = Object.getOwnPropertyDescriptor, A = (n, e, t, r) => {
4284
- for (var i = r > 1 ? void 0 : r ? ci(e, t) : e, o = n.length - 1, u; o >= 0; o--)
4285
- (u = n[o]) && (i = (r ? u(e, t, i) : u(i)) || i);
4286
- return r && i && ui(e, t, i), i;
4287
- };
4288
- let v = class {
4289
- constructor(n) {
4290
- this.liveness = n, this.duration = 60, this.containerClass = "", this.videoWrapperClass = "", this.videoClass = "", this.timerClass = "", this.challengeTextClass = "", this.buttonClass = "", this.retryButtonClass = "", this.statusOverlayClass = "", this.successMessageClass = "", this.errorMessageClass = "", this.instructionBoxClass = "", this.onComplete = new In(), this.onError = new In();
4291
- }
4292
- ngOnInit() {
4293
- this.liveness.init({
4294
- apiUrl: this.apiUrl,
4295
- duration: this.duration,
4296
- smileThreshold: this.smileThreshold,
4297
- blinkThreshold: this.blinkThreshold,
4298
- minturnHeadThreshold: this.minturnHeadThreshold,
4299
- maxturnHeadThreshold: this.maxturnHeadThreshold,
4300
- onComplete: (n) => this.onComplete.emit(n),
4301
- onError: (n) => this.onError.emit(n)
4302
- });
4303
- }
4304
- async ngAfterViewInit() {
4305
- try {
4306
- const n = await navigator.mediaDevices.getUserMedia({
4307
- video: { width: 640, height: 480, facingMode: "user" }
4308
- }), e = this.webcamRef.nativeElement;
4309
- e.srcObject = n, e.onloadedmetadata = () => {
4310
- e.play(), this.liveness.attach(e);
4311
- };
4312
- } catch {
4313
- this.onError.emit({ success: !1, reason: "Camera access denied" });
4314
- }
4315
- }
4316
- ngOnDestroy() {
4317
- var e, t;
4318
- const n = (t = (e = this.webcamRef) == null ? void 0 : e.nativeElement) == null ? void 0 : t.srcObject;
4319
- n == null || n.getTracks().forEach((r) => r.stop());
4320
- }
4321
- };
4322
- A([
4323
- Gr("webcam")
4324
- ], v.prototype, "webcamRef", 2);
4325
- A([
4326
- m()
4327
- ], v.prototype, "apiUrl", 2);
4328
- A([
4329
- m()
4330
- ], v.prototype, "duration", 2);
4331
- A([
4332
- m()
4333
- ], v.prototype, "smileThreshold", 2);
4334
- A([
4335
- m()
4336
- ], v.prototype, "blinkThreshold", 2);
4337
- A([
4338
- m()
4339
- ], v.prototype, "minturnHeadThreshold", 2);
4340
- A([
4341
- m()
4342
- ], v.prototype, "maxturnHeadThreshold", 2);
4343
- A([
4344
- m()
4345
- ], v.prototype, "containerClass", 2);
4346
- A([
4347
- m()
4348
- ], v.prototype, "videoWrapperClass", 2);
4349
- A([
4350
- m()
4351
- ], v.prototype, "videoClass", 2);
4352
- A([
4353
- m()
4354
- ], v.prototype, "timerClass", 2);
4355
- A([
4356
- m()
4357
- ], v.prototype, "challengeTextClass", 2);
4358
- A([
4359
- m()
4360
- ], v.prototype, "buttonClass", 2);
4361
- A([
4362
- m()
4363
- ], v.prototype, "retryButtonClass", 2);
4364
- A([
4365
- m()
4366
- ], v.prototype, "statusOverlayClass", 2);
4367
- A([
4368
- m()
4369
- ], v.prototype, "successMessageClass", 2);
4370
- A([
4371
- m()
4372
- ], v.prototype, "errorMessageClass", 2);
4373
- A([
4374
- m()
4375
- ], v.prototype, "instructionBoxClass", 2);
4376
- A([
4377
- Jn()
4378
- ], v.prototype, "onComplete", 2);
4379
- A([
4380
- Jn()
4381
- ], v.prototype, "onError", 2);
4382
- v = A([
4383
- Hr({
4384
- selector: "LivenessCheck",
4385
- standalone: !0,
4386
- // Make it standalone
4387
- imports: [Mt],
4388
- // Add CommonModule here to fix NG8002
4389
- templateUrl: "./liveness.component.html",
4390
- styleUrls: ["./liveness.component.css"]
4391
- })
4392
- ], v);
4393
- export {
4394
- v as LivenessComponent,
4395
- Qn as LivenessEngine,
4396
- hi as LivenessSDK,
4397
- Pn as LivenessService,
4398
- Zr as useLiveness,
4399
- Yr as verifyLiveness
4400
- };