diff --git "a/frontend/dist/frontend/browser/main.js" "b/frontend/dist/frontend/browser/main.js" deleted file mode 100644--- "a/frontend/dist/frontend/browser/main.js" +++ /dev/null @@ -1,44624 +0,0 @@ -var __defProp = Object.defineProperty; -var __defProps = Object.defineProperties; -var __getOwnPropDescs = Object.getOwnPropertyDescriptors; -var __getOwnPropSymbols = Object.getOwnPropertySymbols; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __propIsEnum = Object.prototype.propertyIsEnumerable; -var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; -var __spreadValues = (a, b) => { - for (var prop in b ||= {}) - if (__hasOwnProp.call(b, prop)) - __defNormalProp(a, prop, b[prop]); - if (__getOwnPropSymbols) - for (var prop of __getOwnPropSymbols(b)) { - if (__propIsEnum.call(b, prop)) - __defNormalProp(a, prop, b[prop]); - } - return a; -}; -var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); -var __objRest = (source, exclude) => { - var target = {}; - for (var prop in source) - if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0) - target[prop] = source[prop]; - if (source != null && __getOwnPropSymbols) - for (var prop of __getOwnPropSymbols(source)) { - if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop)) - target[prop] = source[prop]; - } - return target; -}; - -// node_modules/@angular/core/fesm2022/_effect-chunk.mjs -/** - * @license Angular v21.2.17 - * (c) 2010-2026 Google LLC. https://angular.dev/ - * License: MIT - */ -var activeConsumer = null; -var inNotificationPhase = false; -var epoch = 1; -var postProducerCreatedFn = null; -var SIGNAL = /* @__PURE__ */ Symbol("SIGNAL"); -function setActiveConsumer(consumer) { - const prev = activeConsumer; - activeConsumer = consumer; - return prev; -} -function getActiveConsumer() { - return activeConsumer; -} -function isInNotificationPhase() { - return inNotificationPhase; -} -var REACTIVE_NODE = { - version: 0, - lastCleanEpoch: 0, - dirty: false, - producers: void 0, - producersTail: void 0, - consumers: void 0, - consumersTail: void 0, - recomputing: false, - consumerAllowSignalWrites: false, - consumerIsAlwaysLive: false, - kind: "unknown", - producerMustRecompute: () => false, - producerRecomputeValue: () => { - }, - consumerMarkedDirty: () => { - }, - consumerOnSignalRead: () => { - } -}; -function producerAccessed(node) { - if (inNotificationPhase) { - throw new Error(typeof ngDevMode !== "undefined" && ngDevMode ? `Assertion error: signal read during notification phase` : ""); - } - if (activeConsumer === null) { - return; - } - activeConsumer.consumerOnSignalRead(node); - const prevProducerLink = activeConsumer.producersTail; - if (prevProducerLink !== void 0 && prevProducerLink.producer === node) { - return; - } - let nextProducerLink = void 0; - const isRecomputing = activeConsumer.recomputing; - if (isRecomputing) { - nextProducerLink = prevProducerLink !== void 0 ? prevProducerLink.nextProducer : activeConsumer.producers; - if (nextProducerLink !== void 0 && nextProducerLink.producer === node) { - activeConsumer.producersTail = nextProducerLink; - nextProducerLink.lastReadVersion = node.version; - return; - } - } - const prevConsumerLink = node.consumersTail; - if (prevConsumerLink !== void 0 && prevConsumerLink.consumer === activeConsumer && (!isRecomputing || isValidLink(prevConsumerLink, activeConsumer))) { - return; - } - const isLive = consumerIsLive(activeConsumer); - const newLink = { - producer: node, - consumer: activeConsumer, - nextProducer: nextProducerLink, - prevConsumer: prevConsumerLink, - lastReadVersion: node.version, - nextConsumer: void 0 - }; - activeConsumer.producersTail = newLink; - if (prevProducerLink !== void 0) { - prevProducerLink.nextProducer = newLink; - } else { - activeConsumer.producers = newLink; - } - if (isLive) { - producerAddLiveConsumer(node, newLink); - } -} -function producerIncrementEpoch() { - epoch++; -} -function producerUpdateValueVersion(node) { - if (consumerIsLive(node) && !node.dirty) { - return; - } - if (!node.dirty && node.lastCleanEpoch === epoch) { - return; - } - if (!node.producerMustRecompute(node) && !consumerPollProducersForChange(node)) { - producerMarkClean(node); - return; - } - node.producerRecomputeValue(node); - producerMarkClean(node); -} -function producerNotifyConsumers(node) { - if (node.consumers === void 0) { - return; - } - const prev = inNotificationPhase; - inNotificationPhase = true; - try { - for (let link = node.consumers; link !== void 0; link = link.nextConsumer) { - const consumer = link.consumer; - if (!consumer.dirty) { - consumerMarkDirty(consumer); - } - } - } finally { - inNotificationPhase = prev; - } -} -function producerUpdatesAllowed() { - return activeConsumer?.consumerAllowSignalWrites !== false; -} -function consumerMarkDirty(node) { - node.dirty = true; - producerNotifyConsumers(node); - node.consumerMarkedDirty?.(node); -} -function producerMarkClean(node) { - node.dirty = false; - node.lastCleanEpoch = epoch; -} -function consumerBeforeComputation(node) { - if (node) resetConsumerBeforeComputation(node); - return setActiveConsumer(node); -} -function resetConsumerBeforeComputation(node) { - node.producersTail = void 0; - node.recomputing = true; -} -function consumerAfterComputation(node, prevConsumer) { - setActiveConsumer(prevConsumer); - if (node) finalizeConsumerAfterComputation(node); -} -function finalizeConsumerAfterComputation(node) { - node.recomputing = false; - const producersTail = node.producersTail; - let toRemove = producersTail !== void 0 ? producersTail.nextProducer : node.producers; - if (toRemove !== void 0) { - if (consumerIsLive(node)) { - do { - toRemove = producerRemoveLiveConsumerLink(toRemove); - } while (toRemove !== void 0); - } - if (producersTail !== void 0) { - producersTail.nextProducer = void 0; - } else { - node.producers = void 0; - } - } -} -function consumerPollProducersForChange(node) { - for (let link = node.producers; link !== void 0; link = link.nextProducer) { - const producer = link.producer; - const seenVersion = link.lastReadVersion; - if (seenVersion !== producer.version) { - return true; - } - producerUpdateValueVersion(producer); - if (seenVersion !== producer.version) { - return true; - } - } - return false; -} -function consumerDestroy(node) { - if (consumerIsLive(node)) { - let link = node.producers; - while (link !== void 0) { - link = producerRemoveLiveConsumerLink(link); - } - } - node.producers = void 0; - node.producersTail = void 0; - node.consumers = void 0; - node.consumersTail = void 0; -} -function producerAddLiveConsumer(node, link) { - const consumersTail = node.consumersTail; - const wasLive = consumerIsLive(node); - if (consumersTail !== void 0) { - link.nextConsumer = consumersTail.nextConsumer; - consumersTail.nextConsumer = link; - } else { - link.nextConsumer = void 0; - node.consumers = link; - } - link.prevConsumer = consumersTail; - node.consumersTail = link; - if (!wasLive) { - for (let link2 = node.producers; link2 !== void 0; link2 = link2.nextProducer) { - producerAddLiveConsumer(link2.producer, link2); - } - } -} -function producerRemoveLiveConsumerLink(link) { - const producer = link.producer; - const nextProducer = link.nextProducer; - const nextConsumer = link.nextConsumer; - const prevConsumer = link.prevConsumer; - link.nextConsumer = void 0; - link.prevConsumer = void 0; - if (nextConsumer !== void 0) { - nextConsumer.prevConsumer = prevConsumer; - } else { - producer.consumersTail = prevConsumer; - } - if (prevConsumer !== void 0) { - prevConsumer.nextConsumer = nextConsumer; - } else { - producer.consumers = nextConsumer; - if (!consumerIsLive(producer)) { - let producerLink = producer.producers; - while (producerLink !== void 0) { - producerLink = producerRemoveLiveConsumerLink(producerLink); - } - } - } - return nextProducer; -} -function consumerIsLive(node) { - return node.consumerIsAlwaysLive || node.consumers !== void 0; -} -function runPostProducerCreatedFn(node) { - postProducerCreatedFn?.(node); -} -function isValidLink(checkLink, consumer) { - const producersTail = consumer.producersTail; - if (producersTail !== void 0) { - let link = consumer.producers; - do { - if (link === checkLink) { - return true; - } - if (link === producersTail) { - break; - } - link = link.nextProducer; - } while (link !== void 0); - } - return false; -} -function defaultEquals(a, b) { - return Object.is(a, b); -} -function createComputed(computation, equal) { - const node = Object.create(COMPUTED_NODE); - node.computation = computation; - if (equal !== void 0) { - node.equal = equal; - } - const computed2 = () => { - producerUpdateValueVersion(node); - producerAccessed(node); - if (node.value === ERRORED) { - throw node.error; - } - return node.value; - }; - computed2[SIGNAL] = node; - if (typeof ngDevMode !== "undefined" && ngDevMode) { - computed2.toString = () => `[Computed${node.debugName ? " (" + node.debugName + ")" : ""}: ${String(node.value)}]`; - } - runPostProducerCreatedFn(node); - return computed2; -} -var UNSET = /* @__PURE__ */ Symbol("UNSET"); -var COMPUTING = /* @__PURE__ */ Symbol("COMPUTING"); -var ERRORED = /* @__PURE__ */ Symbol("ERRORED"); -var COMPUTED_NODE = /* @__PURE__ */ (() => { - return __spreadProps(__spreadValues({}, REACTIVE_NODE), { - value: UNSET, - dirty: true, - error: null, - equal: defaultEquals, - kind: "computed", - producerMustRecompute(node) { - return node.value === UNSET || node.value === COMPUTING; - }, - producerRecomputeValue(node) { - if (node.value === COMPUTING) { - throw new Error(typeof ngDevMode !== "undefined" && ngDevMode ? "Detected cycle in computations." : ""); - } - const oldValue = node.value; - node.value = COMPUTING; - const prevConsumer = consumerBeforeComputation(node); - let newValue; - let wasEqual = false; - try { - newValue = node.computation(); - setActiveConsumer(null); - wasEqual = oldValue !== UNSET && oldValue !== ERRORED && newValue !== ERRORED && node.equal(oldValue, newValue); - } catch (err) { - newValue = ERRORED; - node.error = err; - } finally { - consumerAfterComputation(node, prevConsumer); - } - if (wasEqual) { - node.value = oldValue; - return; - } - node.value = newValue; - node.version++; - } - }); -})(); -function defaultThrowError() { - throw new Error(); -} -var throwInvalidWriteToSignalErrorFn = defaultThrowError; -function throwInvalidWriteToSignalError(node) { - throwInvalidWriteToSignalErrorFn(node); -} -function setThrowInvalidWriteToSignalError(fn) { - throwInvalidWriteToSignalErrorFn = fn; -} -var postSignalSetFn = null; -function createSignal(initialValue, equal) { - const node = Object.create(SIGNAL_NODE); - node.value = initialValue; - if (equal !== void 0) { - node.equal = equal; - } - const getter = () => signalGetFn(node); - getter[SIGNAL] = node; - if (typeof ngDevMode !== "undefined" && ngDevMode) { - getter.toString = () => `[Signal${node.debugName ? " (" + node.debugName + ")" : ""}: ${String(node.value)}]`; - } - runPostProducerCreatedFn(node); - const set = (newValue) => signalSetFn(node, newValue); - const update = (updateFn) => signalUpdateFn(node, updateFn); - return [getter, set, update]; -} -function signalGetFn(node) { - producerAccessed(node); - return node.value; -} -function signalSetFn(node, newValue) { - if (!producerUpdatesAllowed()) { - throwInvalidWriteToSignalError(node); - } - if (!node.equal(node.value, newValue)) { - node.value = newValue; - signalValueChanged(node); - } -} -function signalUpdateFn(node, updater) { - if (!producerUpdatesAllowed()) { - throwInvalidWriteToSignalError(node); - } - signalSetFn(node, updater(node.value)); -} -var SIGNAL_NODE = /* @__PURE__ */ (() => { - return __spreadProps(__spreadValues({}, REACTIVE_NODE), { - equal: defaultEquals, - value: void 0, - kind: "signal" - }); -})(); -function signalValueChanged(node) { - node.version++; - producerIncrementEpoch(); - producerNotifyConsumers(node); - postSignalSetFn?.(node); -} -var BASE_EFFECT_NODE = /* @__PURE__ */ (() => __spreadProps(__spreadValues({}, REACTIVE_NODE), { - consumerIsAlwaysLive: true, - consumerAllowSignalWrites: true, - dirty: true, - kind: "effect" -}))(); -function runEffect(node) { - node.dirty = false; - if (node.version > 0 && !consumerPollProducersForChange(node)) { - return; - } - node.version++; - const prevNode = consumerBeforeComputation(node); - try { - node.cleanup(); - node.fn(); - } finally { - consumerAfterComputation(node, prevNode); - } -} - -// node_modules/rxjs/dist/esm/internal/util/isFunction.js -function isFunction(value) { - return typeof value === "function"; -} - -// node_modules/rxjs/dist/esm/internal/util/createErrorClass.js -function createErrorClass(createImpl) { - const _super = (instance) => { - Error.call(instance); - instance.stack = new Error().stack; - }; - const ctorFunc = createImpl(_super); - ctorFunc.prototype = Object.create(Error.prototype); - ctorFunc.prototype.constructor = ctorFunc; - return ctorFunc; -} - -// node_modules/rxjs/dist/esm/internal/util/UnsubscriptionError.js -var UnsubscriptionError = createErrorClass((_super) => function UnsubscriptionErrorImpl(errors) { - _super(this); - this.message = errors ? `${errors.length} errors occurred during unsubscription: -${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join("\n ")}` : ""; - this.name = "UnsubscriptionError"; - this.errors = errors; -}); - -// node_modules/rxjs/dist/esm/internal/util/arrRemove.js -function arrRemove(arr, item) { - if (arr) { - const index = arr.indexOf(item); - 0 <= index && arr.splice(index, 1); - } -} - -// node_modules/rxjs/dist/esm/internal/Subscription.js -var Subscription = class _Subscription { - constructor(initialTeardown) { - this.initialTeardown = initialTeardown; - this.closed = false; - this._parentage = null; - this._finalizers = null; - } - unsubscribe() { - let errors; - if (!this.closed) { - this.closed = true; - const { _parentage } = this; - if (_parentage) { - this._parentage = null; - if (Array.isArray(_parentage)) { - for (const parent of _parentage) { - parent.remove(this); - } - } else { - _parentage.remove(this); - } - } - const { initialTeardown: initialFinalizer } = this; - if (isFunction(initialFinalizer)) { - try { - initialFinalizer(); - } catch (e) { - errors = e instanceof UnsubscriptionError ? e.errors : [e]; - } - } - const { _finalizers } = this; - if (_finalizers) { - this._finalizers = null; - for (const finalizer of _finalizers) { - try { - execFinalizer(finalizer); - } catch (err) { - errors = errors !== null && errors !== void 0 ? errors : []; - if (err instanceof UnsubscriptionError) { - errors = [...errors, ...err.errors]; - } else { - errors.push(err); - } - } - } - } - if (errors) { - throw new UnsubscriptionError(errors); - } - } - } - add(teardown) { - var _a; - if (teardown && teardown !== this) { - if (this.closed) { - execFinalizer(teardown); - } else { - if (teardown instanceof _Subscription) { - if (teardown.closed || teardown._hasParent(this)) { - return; - } - teardown._addParent(this); - } - (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown); - } - } - } - _hasParent(parent) { - const { _parentage } = this; - return _parentage === parent || Array.isArray(_parentage) && _parentage.includes(parent); - } - _addParent(parent) { - const { _parentage } = this; - this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent; - } - _removeParent(parent) { - const { _parentage } = this; - if (_parentage === parent) { - this._parentage = null; - } else if (Array.isArray(_parentage)) { - arrRemove(_parentage, parent); - } - } - remove(teardown) { - const { _finalizers } = this; - _finalizers && arrRemove(_finalizers, teardown); - if (teardown instanceof _Subscription) { - teardown._removeParent(this); - } - } -}; -Subscription.EMPTY = (() => { - const empty = new Subscription(); - empty.closed = true; - return empty; -})(); -var EMPTY_SUBSCRIPTION = Subscription.EMPTY; -function isSubscription(value) { - return value instanceof Subscription || value && "closed" in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe); -} -function execFinalizer(finalizer) { - if (isFunction(finalizer)) { - finalizer(); - } else { - finalizer.unsubscribe(); - } -} - -// node_modules/rxjs/dist/esm/internal/config.js -var config = { - onUnhandledError: null, - onStoppedNotification: null, - Promise: void 0, - useDeprecatedSynchronousErrorHandling: false, - useDeprecatedNextContext: false -}; - -// node_modules/rxjs/dist/esm/internal/scheduler/timeoutProvider.js -var timeoutProvider = { - setTimeout(handler, timeout2, ...args) { - const { delegate } = timeoutProvider; - if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) { - return delegate.setTimeout(handler, timeout2, ...args); - } - return setTimeout(handler, timeout2, ...args); - }, - clearTimeout(handle) { - const { delegate } = timeoutProvider; - return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle); - }, - delegate: void 0 -}; - -// node_modules/rxjs/dist/esm/internal/util/reportUnhandledError.js -function reportUnhandledError(err) { - timeoutProvider.setTimeout(() => { - const { onUnhandledError } = config; - if (onUnhandledError) { - onUnhandledError(err); - } else { - throw err; - } - }); -} - -// node_modules/rxjs/dist/esm/internal/util/noop.js -function noop() { -} - -// node_modules/rxjs/dist/esm/internal/NotificationFactories.js -var COMPLETE_NOTIFICATION = (() => createNotification("C", void 0, void 0))(); -function errorNotification(error) { - return createNotification("E", void 0, error); -} -function nextNotification(value) { - return createNotification("N", value, void 0); -} -function createNotification(kind, value, error) { - return { - kind, - value, - error - }; -} - -// node_modules/rxjs/dist/esm/internal/util/errorContext.js -var context = null; -function errorContext(cb) { - if (config.useDeprecatedSynchronousErrorHandling) { - const isRoot = !context; - if (isRoot) { - context = { errorThrown: false, error: null }; - } - cb(); - if (isRoot) { - const { errorThrown, error } = context; - context = null; - if (errorThrown) { - throw error; - } - } - } else { - cb(); - } -} -function captureError(err) { - if (config.useDeprecatedSynchronousErrorHandling && context) { - context.errorThrown = true; - context.error = err; - } -} - -// node_modules/rxjs/dist/esm/internal/Subscriber.js -var Subscriber = class extends Subscription { - constructor(destination) { - super(); - this.isStopped = false; - if (destination) { - this.destination = destination; - if (isSubscription(destination)) { - destination.add(this); - } - } else { - this.destination = EMPTY_OBSERVER; - } - } - static create(next, error, complete) { - return new SafeSubscriber(next, error, complete); - } - next(value) { - if (this.isStopped) { - handleStoppedNotification(nextNotification(value), this); - } else { - this._next(value); - } - } - error(err) { - if (this.isStopped) { - handleStoppedNotification(errorNotification(err), this); - } else { - this.isStopped = true; - this._error(err); - } - } - complete() { - if (this.isStopped) { - handleStoppedNotification(COMPLETE_NOTIFICATION, this); - } else { - this.isStopped = true; - this._complete(); - } - } - unsubscribe() { - if (!this.closed) { - this.isStopped = true; - super.unsubscribe(); - this.destination = null; - } - } - _next(value) { - this.destination.next(value); - } - _error(err) { - try { - this.destination.error(err); - } finally { - this.unsubscribe(); - } - } - _complete() { - try { - this.destination.complete(); - } finally { - this.unsubscribe(); - } - } -}; -var _bind = Function.prototype.bind; -function bind(fn, thisArg) { - return _bind.call(fn, thisArg); -} -var ConsumerObserver = class { - constructor(partialObserver) { - this.partialObserver = partialObserver; - } - next(value) { - const { partialObserver } = this; - if (partialObserver.next) { - try { - partialObserver.next(value); - } catch (error) { - handleUnhandledError(error); - } - } - } - error(err) { - const { partialObserver } = this; - if (partialObserver.error) { - try { - partialObserver.error(err); - } catch (error) { - handleUnhandledError(error); - } - } else { - handleUnhandledError(err); - } - } - complete() { - const { partialObserver } = this; - if (partialObserver.complete) { - try { - partialObserver.complete(); - } catch (error) { - handleUnhandledError(error); - } - } - } -}; -var SafeSubscriber = class extends Subscriber { - constructor(observerOrNext, error, complete) { - super(); - let partialObserver; - if (isFunction(observerOrNext) || !observerOrNext) { - partialObserver = { - next: observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : void 0, - error: error !== null && error !== void 0 ? error : void 0, - complete: complete !== null && complete !== void 0 ? complete : void 0 - }; - } else { - let context2; - if (this && config.useDeprecatedNextContext) { - context2 = Object.create(observerOrNext); - context2.unsubscribe = () => this.unsubscribe(); - partialObserver = { - next: observerOrNext.next && bind(observerOrNext.next, context2), - error: observerOrNext.error && bind(observerOrNext.error, context2), - complete: observerOrNext.complete && bind(observerOrNext.complete, context2) - }; - } else { - partialObserver = observerOrNext; - } - } - this.destination = new ConsumerObserver(partialObserver); - } -}; -function handleUnhandledError(error) { - if (config.useDeprecatedSynchronousErrorHandling) { - captureError(error); - } else { - reportUnhandledError(error); - } -} -function defaultErrorHandler(err) { - throw err; -} -function handleStoppedNotification(notification, subscriber) { - const { onStoppedNotification } = config; - onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber)); -} -var EMPTY_OBSERVER = { - closed: true, - next: noop, - error: defaultErrorHandler, - complete: noop -}; - -// node_modules/rxjs/dist/esm/internal/symbol/observable.js -var observable = (() => typeof Symbol === "function" && Symbol.observable || "@@observable")(); - -// node_modules/rxjs/dist/esm/internal/util/identity.js -function identity(x) { - return x; -} - -// node_modules/rxjs/dist/esm/internal/util/pipe.js -function pipe(...fns) { - return pipeFromArray(fns); -} -function pipeFromArray(fns) { - if (fns.length === 0) { - return identity; - } - if (fns.length === 1) { - return fns[0]; - } - return function piped(input2) { - return fns.reduce((prev, fn) => fn(prev), input2); - }; -} - -// node_modules/rxjs/dist/esm/internal/Observable.js -var Observable = class _Observable { - constructor(subscribe) { - if (subscribe) { - this._subscribe = subscribe; - } - } - lift(operator) { - const observable2 = new _Observable(); - observable2.source = this; - observable2.operator = operator; - return observable2; - } - subscribe(observerOrNext, error, complete) { - const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete); - errorContext(() => { - const { operator, source } = this; - subscriber.add(operator ? operator.call(subscriber, source) : source ? this._subscribe(subscriber) : this._trySubscribe(subscriber)); - }); - return subscriber; - } - _trySubscribe(sink) { - try { - return this._subscribe(sink); - } catch (err) { - sink.error(err); - } - } - forEach(next, promiseCtor) { - promiseCtor = getPromiseCtor(promiseCtor); - return new promiseCtor((resolve, reject) => { - const subscriber = new SafeSubscriber({ - next: (value) => { - try { - next(value); - } catch (err) { - reject(err); - subscriber.unsubscribe(); - } - }, - error: reject, - complete: resolve - }); - this.subscribe(subscriber); - }); - } - _subscribe(subscriber) { - var _a; - return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber); - } - [observable]() { - return this; - } - pipe(...operations) { - return pipeFromArray(operations)(this); - } - toPromise(promiseCtor) { - promiseCtor = getPromiseCtor(promiseCtor); - return new promiseCtor((resolve, reject) => { - let value; - this.subscribe((x) => value = x, (err) => reject(err), () => resolve(value)); - }); - } -}; -Observable.create = (subscribe) => { - return new Observable(subscribe); -}; -function getPromiseCtor(promiseCtor) { - var _a; - return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise; -} -function isObserver(value) { - return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete); -} -function isSubscriber(value) { - return value && value instanceof Subscriber || isObserver(value) && isSubscription(value); -} - -// node_modules/rxjs/dist/esm/internal/util/lift.js -function hasLift(source) { - return isFunction(source === null || source === void 0 ? void 0 : source.lift); -} -function operate(init) { - return (source) => { - if (hasLift(source)) { - return source.lift(function(liftedSource) { - try { - return init(liftedSource, this); - } catch (err) { - this.error(err); - } - }); - } - throw new TypeError("Unable to lift unknown Observable type"); - }; -} - -// node_modules/rxjs/dist/esm/internal/operators/OperatorSubscriber.js -function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) { - return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize); -} -var OperatorSubscriber = class extends Subscriber { - constructor(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) { - super(destination); - this.onFinalize = onFinalize; - this.shouldUnsubscribe = shouldUnsubscribe; - this._next = onNext ? function(value) { - try { - onNext(value); - } catch (err) { - destination.error(err); - } - } : super._next; - this._error = onError ? function(err) { - try { - onError(err); - } catch (err2) { - destination.error(err2); - } finally { - this.unsubscribe(); - } - } : super._error; - this._complete = onComplete ? function() { - try { - onComplete(); - } catch (err) { - destination.error(err); - } finally { - this.unsubscribe(); - } - } : super._complete; - } - unsubscribe() { - var _a; - if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) { - const { closed } = this; - super.unsubscribe(); - !closed && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this)); - } - } -}; - -// node_modules/rxjs/dist/esm/internal/util/ObjectUnsubscribedError.js -var ObjectUnsubscribedError = createErrorClass((_super) => function ObjectUnsubscribedErrorImpl() { - _super(this); - this.name = "ObjectUnsubscribedError"; - this.message = "object unsubscribed"; -}); - -// node_modules/rxjs/dist/esm/internal/Subject.js -var Subject = class extends Observable { - constructor() { - super(); - this.closed = false; - this.currentObservers = null; - this.observers = []; - this.isStopped = false; - this.hasError = false; - this.thrownError = null; - } - lift(operator) { - const subject = new AnonymousSubject(this, this); - subject.operator = operator; - return subject; - } - _throwIfClosed() { - if (this.closed) { - throw new ObjectUnsubscribedError(); - } - } - next(value) { - errorContext(() => { - this._throwIfClosed(); - if (!this.isStopped) { - if (!this.currentObservers) { - this.currentObservers = Array.from(this.observers); - } - for (const observer of this.currentObservers) { - observer.next(value); - } - } - }); - } - error(err) { - errorContext(() => { - this._throwIfClosed(); - if (!this.isStopped) { - this.hasError = this.isStopped = true; - this.thrownError = err; - const { observers } = this; - while (observers.length) { - observers.shift().error(err); - } - } - }); - } - complete() { - errorContext(() => { - this._throwIfClosed(); - if (!this.isStopped) { - this.isStopped = true; - const { observers } = this; - while (observers.length) { - observers.shift().complete(); - } - } - }); - } - unsubscribe() { - this.isStopped = this.closed = true; - this.observers = this.currentObservers = null; - } - get observed() { - var _a; - return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0; - } - _trySubscribe(subscriber) { - this._throwIfClosed(); - return super._trySubscribe(subscriber); - } - _subscribe(subscriber) { - this._throwIfClosed(); - this._checkFinalizedStatuses(subscriber); - return this._innerSubscribe(subscriber); - } - _innerSubscribe(subscriber) { - const { hasError, isStopped, observers } = this; - if (hasError || isStopped) { - return EMPTY_SUBSCRIPTION; - } - this.currentObservers = null; - observers.push(subscriber); - return new Subscription(() => { - this.currentObservers = null; - arrRemove(observers, subscriber); - }); - } - _checkFinalizedStatuses(subscriber) { - const { hasError, thrownError, isStopped } = this; - if (hasError) { - subscriber.error(thrownError); - } else if (isStopped) { - subscriber.complete(); - } - } - asObservable() { - const observable2 = new Observable(); - observable2.source = this; - return observable2; - } -}; -Subject.create = (destination, source) => { - return new AnonymousSubject(destination, source); -}; -var AnonymousSubject = class extends Subject { - constructor(destination, source) { - super(); - this.destination = destination; - this.source = source; - } - next(value) { - var _a, _b; - (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value); - } - error(err) { - var _a, _b; - (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err); - } - complete() { - var _a, _b; - (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a); - } - _subscribe(subscriber) { - var _a, _b; - return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION; - } -}; - -// node_modules/rxjs/dist/esm/internal/BehaviorSubject.js -var BehaviorSubject = class extends Subject { - constructor(_value) { - super(); - this._value = _value; - } - get value() { - return this.getValue(); - } - _subscribe(subscriber) { - const subscription = super._subscribe(subscriber); - !subscription.closed && subscriber.next(this._value); - return subscription; - } - getValue() { - const { hasError, thrownError, _value } = this; - if (hasError) { - throw thrownError; - } - this._throwIfClosed(); - return _value; - } - next(value) { - super.next(this._value = value); - } -}; - -// node_modules/rxjs/dist/esm/internal/scheduler/dateTimestampProvider.js -var dateTimestampProvider = { - now() { - return (dateTimestampProvider.delegate || Date).now(); - }, - delegate: void 0 -}; - -// node_modules/rxjs/dist/esm/internal/scheduler/Action.js -var Action = class extends Subscription { - constructor(scheduler, work) { - super(); - } - schedule(state, delay = 0) { - return this; - } -}; - -// node_modules/rxjs/dist/esm/internal/scheduler/intervalProvider.js -var intervalProvider = { - setInterval(handler, timeout2, ...args) { - const { delegate } = intervalProvider; - if (delegate === null || delegate === void 0 ? void 0 : delegate.setInterval) { - return delegate.setInterval(handler, timeout2, ...args); - } - return setInterval(handler, timeout2, ...args); - }, - clearInterval(handle) { - const { delegate } = intervalProvider; - return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearInterval) || clearInterval)(handle); - }, - delegate: void 0 -}; - -// node_modules/rxjs/dist/esm/internal/scheduler/AsyncAction.js -var AsyncAction = class extends Action { - constructor(scheduler, work) { - super(scheduler, work); - this.scheduler = scheduler; - this.work = work; - this.pending = false; - } - schedule(state, delay = 0) { - var _a; - if (this.closed) { - return this; - } - this.state = state; - const id = this.id; - const scheduler = this.scheduler; - if (id != null) { - this.id = this.recycleAsyncId(scheduler, id, delay); - } - this.pending = true; - this.delay = delay; - this.id = (_a = this.id) !== null && _a !== void 0 ? _a : this.requestAsyncId(scheduler, this.id, delay); - return this; - } - requestAsyncId(scheduler, _id, delay = 0) { - return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay); - } - recycleAsyncId(_scheduler, id, delay = 0) { - if (delay != null && this.delay === delay && this.pending === false) { - return id; - } - if (id != null) { - intervalProvider.clearInterval(id); - } - return void 0; - } - execute(state, delay) { - if (this.closed) { - return new Error("executing a cancelled action"); - } - this.pending = false; - const error = this._execute(state, delay); - if (error) { - return error; - } else if (this.pending === false && this.id != null) { - this.id = this.recycleAsyncId(this.scheduler, this.id, null); - } - } - _execute(state, _delay) { - let errored = false; - let errorValue; - try { - this.work(state); - } catch (e) { - errored = true; - errorValue = e ? e : new Error("Scheduled action threw falsy error"); - } - if (errored) { - this.unsubscribe(); - return errorValue; - } - } - unsubscribe() { - if (!this.closed) { - const { id, scheduler } = this; - const { actions } = scheduler; - this.work = this.state = this.scheduler = null; - this.pending = false; - arrRemove(actions, this); - if (id != null) { - this.id = this.recycleAsyncId(scheduler, id, null); - } - this.delay = null; - super.unsubscribe(); - } - } -}; - -// node_modules/rxjs/dist/esm/internal/Scheduler.js -var Scheduler = class _Scheduler { - constructor(schedulerActionCtor, now = _Scheduler.now) { - this.schedulerActionCtor = schedulerActionCtor; - this.now = now; - } - schedule(work, delay = 0, state) { - return new this.schedulerActionCtor(this, work).schedule(state, delay); - } -}; -Scheduler.now = dateTimestampProvider.now; - -// node_modules/rxjs/dist/esm/internal/scheduler/AsyncScheduler.js -var AsyncScheduler = class extends Scheduler { - constructor(SchedulerAction, now = Scheduler.now) { - super(SchedulerAction, now); - this.actions = []; - this._active = false; - } - flush(action) { - const { actions } = this; - if (this._active) { - actions.push(action); - return; - } - let error; - this._active = true; - do { - if (error = action.execute(action.state, action.delay)) { - break; - } - } while (action = actions.shift()); - this._active = false; - if (error) { - while (action = actions.shift()) { - action.unsubscribe(); - } - throw error; - } - } -}; - -// node_modules/rxjs/dist/esm/internal/scheduler/async.js -var asyncScheduler = new AsyncScheduler(AsyncAction); - -// node_modules/rxjs/dist/esm/internal/observable/empty.js -var EMPTY = new Observable((subscriber) => subscriber.complete()); - -// node_modules/rxjs/dist/esm/internal/util/isScheduler.js -function isScheduler(value) { - return value && isFunction(value.schedule); -} - -// node_modules/rxjs/dist/esm/internal/util/args.js -function last(arr) { - return arr[arr.length - 1]; -} -function popResultSelector(args) { - return isFunction(last(args)) ? args.pop() : void 0; -} -function popScheduler(args) { - return isScheduler(last(args)) ? args.pop() : void 0; -} - -// node_modules/tslib/tslib.es6.mjs -function __awaiter(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -} -function __values(o) { - var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; - if (m) return m.call(o); - if (o && typeof o.length === "number") return { - next: function() { - if (o && i >= o.length) o = void 0; - return { value: o && o[i++], done: !o }; - } - }; - throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); -} -function __await(v) { - return this instanceof __await ? (this.v = v, this) : new __await(v); -} -function __asyncGenerator(thisArg, _arguments, generator) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var g = generator.apply(thisArg, _arguments || []), i, q = []; - return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function() { - return this; - }, i; - function awaitReturn(f) { - return function(v) { - return Promise.resolve(v).then(f, reject); - }; - } - function verb(n, f) { - if (g[n]) { - i[n] = function(v) { - return new Promise(function(a, b) { - q.push([n, v, a, b]) > 1 || resume(n, v); - }); - }; - if (f) i[n] = f(i[n]); - } - } - function resume(n, v) { - try { - step(g[n](v)); - } catch (e) { - settle(q[0][3], e); - } - } - function step(r) { - r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); - } - function fulfill(value) { - resume("next", value); - } - function reject(value) { - resume("throw", value); - } - function settle(f, v) { - if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); - } -} -function __asyncValues(o) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var m = o[Symbol.asyncIterator], i; - return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() { - return this; - }, i); - function verb(n) { - i[n] = o[n] && function(v) { - return new Promise(function(resolve, reject) { - v = o[n](v), settle(resolve, reject, v.done, v.value); - }); - }; - } - function settle(resolve, reject, d, v) { - Promise.resolve(v).then(function(v2) { - resolve({ value: v2, done: d }); - }, reject); - } -} - -// node_modules/rxjs/dist/esm/internal/util/isArrayLike.js -var isArrayLike = ((x) => x && typeof x.length === "number" && typeof x !== "function"); - -// node_modules/rxjs/dist/esm/internal/util/isPromise.js -function isPromise(value) { - return isFunction(value === null || value === void 0 ? void 0 : value.then); -} - -// node_modules/rxjs/dist/esm/internal/util/isInteropObservable.js -function isInteropObservable(input2) { - return isFunction(input2[observable]); -} - -// node_modules/rxjs/dist/esm/internal/util/isAsyncIterable.js -function isAsyncIterable(obj) { - return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]); -} - -// node_modules/rxjs/dist/esm/internal/util/throwUnobservableError.js -function createInvalidObservableTypeError(input2) { - return new TypeError(`You provided ${input2 !== null && typeof input2 === "object" ? "an invalid object" : `'${input2}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`); -} - -// node_modules/rxjs/dist/esm/internal/symbol/iterator.js -function getSymbolIterator() { - if (typeof Symbol !== "function" || !Symbol.iterator) { - return "@@iterator"; - } - return Symbol.iterator; -} -var iterator = getSymbolIterator(); - -// node_modules/rxjs/dist/esm/internal/util/isIterable.js -function isIterable(input2) { - return isFunction(input2 === null || input2 === void 0 ? void 0 : input2[iterator]); -} - -// node_modules/rxjs/dist/esm/internal/util/isReadableStreamLike.js -function readableStreamLikeToAsyncGenerator(readableStream) { - return __asyncGenerator(this, arguments, function* readableStreamLikeToAsyncGenerator_1() { - const reader = readableStream.getReader(); - try { - while (true) { - const { value, done } = yield __await(reader.read()); - if (done) { - return yield __await(void 0); - } - yield yield __await(value); - } - } finally { - reader.releaseLock(); - } - }); -} -function isReadableStreamLike(obj) { - return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader); -} - -// node_modules/rxjs/dist/esm/internal/observable/innerFrom.js -function innerFrom(input2) { - if (input2 instanceof Observable) { - return input2; - } - if (input2 != null) { - if (isInteropObservable(input2)) { - return fromInteropObservable(input2); - } - if (isArrayLike(input2)) { - return fromArrayLike(input2); - } - if (isPromise(input2)) { - return fromPromise(input2); - } - if (isAsyncIterable(input2)) { - return fromAsyncIterable(input2); - } - if (isIterable(input2)) { - return fromIterable(input2); - } - if (isReadableStreamLike(input2)) { - return fromReadableStreamLike(input2); - } - } - throw createInvalidObservableTypeError(input2); -} -function fromInteropObservable(obj) { - return new Observable((subscriber) => { - const obs = obj[observable](); - if (isFunction(obs.subscribe)) { - return obs.subscribe(subscriber); - } - throw new TypeError("Provided object does not correctly implement Symbol.observable"); - }); -} -function fromArrayLike(array) { - return new Observable((subscriber) => { - for (let i = 0; i < array.length && !subscriber.closed; i++) { - subscriber.next(array[i]); - } - subscriber.complete(); - }); -} -function fromPromise(promise) { - return new Observable((subscriber) => { - promise.then((value) => { - if (!subscriber.closed) { - subscriber.next(value); - subscriber.complete(); - } - }, (err) => subscriber.error(err)).then(null, reportUnhandledError); - }); -} -function fromIterable(iterable) { - return new Observable((subscriber) => { - for (const value of iterable) { - subscriber.next(value); - if (subscriber.closed) { - return; - } - } - subscriber.complete(); - }); -} -function fromAsyncIterable(asyncIterable) { - return new Observable((subscriber) => { - process(asyncIterable, subscriber).catch((err) => subscriber.error(err)); - }); -} -function fromReadableStreamLike(readableStream) { - return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream)); -} -function process(asyncIterable, subscriber) { - var asyncIterable_1, asyncIterable_1_1; - var e_1, _a; - return __awaiter(this, void 0, void 0, function* () { - try { - for (asyncIterable_1 = __asyncValues(asyncIterable); asyncIterable_1_1 = yield asyncIterable_1.next(), !asyncIterable_1_1.done; ) { - const value = asyncIterable_1_1.value; - subscriber.next(value); - if (subscriber.closed) { - return; - } - } - } catch (e_1_1) { - e_1 = { error: e_1_1 }; - } finally { - try { - if (asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return)) yield _a.call(asyncIterable_1); - } finally { - if (e_1) throw e_1.error; - } - } - subscriber.complete(); - }); -} - -// node_modules/rxjs/dist/esm/internal/util/executeSchedule.js -function executeSchedule(parentSubscription, scheduler, work, delay = 0, repeat = false) { - const scheduleSubscription = scheduler.schedule(function() { - work(); - if (repeat) { - parentSubscription.add(this.schedule(null, delay)); - } else { - this.unsubscribe(); - } - }, delay); - parentSubscription.add(scheduleSubscription); - if (!repeat) { - return scheduleSubscription; - } -} - -// node_modules/rxjs/dist/esm/internal/operators/observeOn.js -function observeOn(scheduler, delay = 0) { - return operate((source, subscriber) => { - source.subscribe(createOperatorSubscriber(subscriber, (value) => executeSchedule(subscriber, scheduler, () => subscriber.next(value), delay), () => executeSchedule(subscriber, scheduler, () => subscriber.complete(), delay), (err) => executeSchedule(subscriber, scheduler, () => subscriber.error(err), delay))); - }); -} - -// node_modules/rxjs/dist/esm/internal/operators/subscribeOn.js -function subscribeOn(scheduler, delay = 0) { - return operate((source, subscriber) => { - subscriber.add(scheduler.schedule(() => source.subscribe(subscriber), delay)); - }); -} - -// node_modules/rxjs/dist/esm/internal/scheduled/scheduleObservable.js -function scheduleObservable(input2, scheduler) { - return innerFrom(input2).pipe(subscribeOn(scheduler), observeOn(scheduler)); -} - -// node_modules/rxjs/dist/esm/internal/scheduled/schedulePromise.js -function schedulePromise(input2, scheduler) { - return innerFrom(input2).pipe(subscribeOn(scheduler), observeOn(scheduler)); -} - -// node_modules/rxjs/dist/esm/internal/scheduled/scheduleArray.js -function scheduleArray(input2, scheduler) { - return new Observable((subscriber) => { - let i = 0; - return scheduler.schedule(function() { - if (i === input2.length) { - subscriber.complete(); - } else { - subscriber.next(input2[i++]); - if (!subscriber.closed) { - this.schedule(); - } - } - }); - }); -} - -// node_modules/rxjs/dist/esm/internal/scheduled/scheduleIterable.js -function scheduleIterable(input2, scheduler) { - return new Observable((subscriber) => { - let iterator2; - executeSchedule(subscriber, scheduler, () => { - iterator2 = input2[iterator](); - executeSchedule(subscriber, scheduler, () => { - let value; - let done; - try { - ({ value, done } = iterator2.next()); - } catch (err) { - subscriber.error(err); - return; - } - if (done) { - subscriber.complete(); - } else { - subscriber.next(value); - } - }, 0, true); - }); - return () => isFunction(iterator2 === null || iterator2 === void 0 ? void 0 : iterator2.return) && iterator2.return(); - }); -} - -// node_modules/rxjs/dist/esm/internal/scheduled/scheduleAsyncIterable.js -function scheduleAsyncIterable(input2, scheduler) { - if (!input2) { - throw new Error("Iterable cannot be null"); - } - return new Observable((subscriber) => { - executeSchedule(subscriber, scheduler, () => { - const iterator2 = input2[Symbol.asyncIterator](); - executeSchedule(subscriber, scheduler, () => { - iterator2.next().then((result) => { - if (result.done) { - subscriber.complete(); - } else { - subscriber.next(result.value); - } - }); - }, 0, true); - }); - }); -} - -// node_modules/rxjs/dist/esm/internal/scheduled/scheduleReadableStreamLike.js -function scheduleReadableStreamLike(input2, scheduler) { - return scheduleAsyncIterable(readableStreamLikeToAsyncGenerator(input2), scheduler); -} - -// node_modules/rxjs/dist/esm/internal/scheduled/scheduled.js -function scheduled(input2, scheduler) { - if (input2 != null) { - if (isInteropObservable(input2)) { - return scheduleObservable(input2, scheduler); - } - if (isArrayLike(input2)) { - return scheduleArray(input2, scheduler); - } - if (isPromise(input2)) { - return schedulePromise(input2, scheduler); - } - if (isAsyncIterable(input2)) { - return scheduleAsyncIterable(input2, scheduler); - } - if (isIterable(input2)) { - return scheduleIterable(input2, scheduler); - } - if (isReadableStreamLike(input2)) { - return scheduleReadableStreamLike(input2, scheduler); - } - } - throw createInvalidObservableTypeError(input2); -} - -// node_modules/rxjs/dist/esm/internal/observable/from.js -function from(input2, scheduler) { - return scheduler ? scheduled(input2, scheduler) : innerFrom(input2); -} - -// node_modules/rxjs/dist/esm/internal/observable/of.js -function of(...args) { - const scheduler = popScheduler(args); - return from(args, scheduler); -} - -// node_modules/rxjs/dist/esm/internal/observable/throwError.js -function throwError(errorOrErrorFactory, scheduler) { - const errorFactory = isFunction(errorOrErrorFactory) ? errorOrErrorFactory : () => errorOrErrorFactory; - const init = (subscriber) => subscriber.error(errorFactory()); - return new Observable(scheduler ? (subscriber) => scheduler.schedule(init, 0, subscriber) : init); -} - -// node_modules/rxjs/dist/esm/internal/util/isObservable.js -function isObservable(obj) { - return !!obj && (obj instanceof Observable || isFunction(obj.lift) && isFunction(obj.subscribe)); -} - -// node_modules/rxjs/dist/esm/internal/util/EmptyError.js -var EmptyError = createErrorClass((_super) => function EmptyErrorImpl() { - _super(this); - this.name = "EmptyError"; - this.message = "no elements in sequence"; -}); - -// node_modules/rxjs/dist/esm/internal/util/isDate.js -function isValidDate(value) { - return value instanceof Date && !isNaN(value); -} - -// node_modules/rxjs/dist/esm/internal/operators/timeout.js -var TimeoutError = createErrorClass((_super) => function TimeoutErrorImpl(info = null) { - _super(this); - this.message = "Timeout has occurred"; - this.name = "TimeoutError"; - this.info = info; -}); -function timeout(config2, schedulerArg) { - const { first: first2, each, with: _with = timeoutErrorFactory, scheduler = schedulerArg !== null && schedulerArg !== void 0 ? schedulerArg : asyncScheduler, meta = null } = isValidDate(config2) ? { first: config2 } : typeof config2 === "number" ? { each: config2 } : config2; - if (first2 == null && each == null) { - throw new TypeError("No timeout provided."); - } - return operate((source, subscriber) => { - let originalSourceSubscription; - let timerSubscription; - let lastValue = null; - let seen = 0; - const startTimer = (delay) => { - timerSubscription = executeSchedule(subscriber, scheduler, () => { - try { - originalSourceSubscription.unsubscribe(); - innerFrom(_with({ - meta, - lastValue, - seen - })).subscribe(subscriber); - } catch (err) { - subscriber.error(err); - } - }, delay); - }; - originalSourceSubscription = source.subscribe(createOperatorSubscriber(subscriber, (value) => { - timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe(); - seen++; - subscriber.next(lastValue = value); - each > 0 && startTimer(each); - }, void 0, void 0, () => { - if (!(timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.closed)) { - timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe(); - } - lastValue = null; - })); - !seen && startTimer(first2 != null ? typeof first2 === "number" ? first2 : +first2 - scheduler.now() : each); - }); -} -function timeoutErrorFactory(info) { - throw new TimeoutError(info); -} - -// node_modules/rxjs/dist/esm/internal/operators/map.js -function map(project, thisArg) { - return operate((source, subscriber) => { - let index = 0; - source.subscribe(createOperatorSubscriber(subscriber, (value) => { - subscriber.next(project.call(thisArg, value, index++)); - })); - }); -} - -// node_modules/rxjs/dist/esm/internal/util/mapOneOrManyArgs.js -var { isArray } = Array; -function callOrApply(fn, args) { - return isArray(args) ? fn(...args) : fn(args); -} -function mapOneOrManyArgs(fn) { - return map((args) => callOrApply(fn, args)); -} - -// node_modules/rxjs/dist/esm/internal/util/argsArgArrayOrObject.js -var { isArray: isArray2 } = Array; -var { getPrototypeOf, prototype: objectProto, keys: getKeys } = Object; -function argsArgArrayOrObject(args) { - if (args.length === 1) { - const first2 = args[0]; - if (isArray2(first2)) { - return { args: first2, keys: null }; - } - if (isPOJO(first2)) { - const keys = getKeys(first2); - return { - args: keys.map((key) => first2[key]), - keys - }; - } - } - return { args, keys: null }; -} -function isPOJO(obj) { - return obj && typeof obj === "object" && getPrototypeOf(obj) === objectProto; -} - -// node_modules/rxjs/dist/esm/internal/util/createObject.js -function createObject(keys, values) { - return keys.reduce((result, key, i) => (result[key] = values[i], result), {}); -} - -// node_modules/rxjs/dist/esm/internal/observable/combineLatest.js -function combineLatest(...args) { - const scheduler = popScheduler(args); - const resultSelector = popResultSelector(args); - const { args: observables, keys } = argsArgArrayOrObject(args); - if (observables.length === 0) { - return from([], scheduler); - } - const result = new Observable(combineLatestInit(observables, scheduler, keys ? (values) => createObject(keys, values) : identity)); - return resultSelector ? result.pipe(mapOneOrManyArgs(resultSelector)) : result; -} -function combineLatestInit(observables, scheduler, valueTransform = identity) { - return (subscriber) => { - maybeSchedule(scheduler, () => { - const { length } = observables; - const values = new Array(length); - let active = length; - let remainingFirstValues = length; - for (let i = 0; i < length; i++) { - maybeSchedule(scheduler, () => { - const source = from(observables[i], scheduler); - let hasFirstValue = false; - source.subscribe(createOperatorSubscriber(subscriber, (value) => { - values[i] = value; - if (!hasFirstValue) { - hasFirstValue = true; - remainingFirstValues--; - } - if (!remainingFirstValues) { - subscriber.next(valueTransform(values.slice())); - } - }, () => { - if (!--active) { - subscriber.complete(); - } - })); - }, subscriber); - } - }, subscriber); - }; -} -function maybeSchedule(scheduler, execute, subscription) { - if (scheduler) { - executeSchedule(subscription, scheduler, execute); - } else { - execute(); - } -} - -// node_modules/rxjs/dist/esm/internal/operators/mergeInternals.js -function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalFinalizer) { - const buffer = []; - let active = 0; - let index = 0; - let isComplete = false; - const checkComplete = () => { - if (isComplete && !buffer.length && !active) { - subscriber.complete(); - } - }; - const outerNext = (value) => active < concurrent ? doInnerSub(value) : buffer.push(value); - const doInnerSub = (value) => { - expand && subscriber.next(value); - active++; - let innerComplete = false; - innerFrom(project(value, index++)).subscribe(createOperatorSubscriber(subscriber, (innerValue) => { - onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue); - if (expand) { - outerNext(innerValue); - } else { - subscriber.next(innerValue); - } - }, () => { - innerComplete = true; - }, void 0, () => { - if (innerComplete) { - try { - active--; - while (buffer.length && active < concurrent) { - const bufferedValue = buffer.shift(); - if (innerSubScheduler) { - executeSchedule(subscriber, innerSubScheduler, () => doInnerSub(bufferedValue)); - } else { - doInnerSub(bufferedValue); - } - } - checkComplete(); - } catch (err) { - subscriber.error(err); - } - } - })); - }; - source.subscribe(createOperatorSubscriber(subscriber, outerNext, () => { - isComplete = true; - checkComplete(); - })); - return () => { - additionalFinalizer === null || additionalFinalizer === void 0 ? void 0 : additionalFinalizer(); - }; -} - -// node_modules/rxjs/dist/esm/internal/operators/mergeMap.js -function mergeMap(project, resultSelector, concurrent = Infinity) { - if (isFunction(resultSelector)) { - return mergeMap((a, i) => map((b, ii) => resultSelector(a, b, i, ii))(innerFrom(project(a, i))), concurrent); - } else if (typeof resultSelector === "number") { - concurrent = resultSelector; - } - return operate((source, subscriber) => mergeInternals(source, subscriber, project, concurrent)); -} - -// node_modules/rxjs/dist/esm/internal/operators/mergeAll.js -function mergeAll(concurrent = Infinity) { - return mergeMap(identity, concurrent); -} - -// node_modules/rxjs/dist/esm/internal/operators/concatAll.js -function concatAll() { - return mergeAll(1); -} - -// node_modules/rxjs/dist/esm/internal/observable/concat.js -function concat(...args) { - return concatAll()(from(args, popScheduler(args))); -} - -// node_modules/rxjs/dist/esm/internal/observable/defer.js -function defer(observableFactory) { - return new Observable((subscriber) => { - innerFrom(observableFactory()).subscribe(subscriber); - }); -} - -// node_modules/rxjs/dist/esm/internal/observable/forkJoin.js -function forkJoin(...args) { - const resultSelector = popResultSelector(args); - const { args: sources, keys } = argsArgArrayOrObject(args); - const result = new Observable((subscriber) => { - const { length } = sources; - if (!length) { - subscriber.complete(); - return; - } - const values = new Array(length); - let remainingCompletions = length; - let remainingEmissions = length; - for (let sourceIndex = 0; sourceIndex < length; sourceIndex++) { - let hasValue = false; - innerFrom(sources[sourceIndex]).subscribe(createOperatorSubscriber(subscriber, (value) => { - if (!hasValue) { - hasValue = true; - remainingEmissions--; - } - values[sourceIndex] = value; - }, () => remainingCompletions--, void 0, () => { - if (!remainingCompletions || !hasValue) { - if (!remainingEmissions) { - subscriber.next(keys ? createObject(keys, values) : values); - } - subscriber.complete(); - } - })); - } - }); - return resultSelector ? result.pipe(mapOneOrManyArgs(resultSelector)) : result; -} - -// node_modules/rxjs/dist/esm/internal/operators/filter.js -function filter(predicate, thisArg) { - return operate((source, subscriber) => { - let index = 0; - source.subscribe(createOperatorSubscriber(subscriber, (value) => predicate.call(thisArg, value, index++) && subscriber.next(value))); - }); -} - -// node_modules/rxjs/dist/esm/internal/operators/catchError.js -function catchError(selector) { - return operate((source, subscriber) => { - let innerSub = null; - let syncUnsub = false; - let handledResult; - innerSub = source.subscribe(createOperatorSubscriber(subscriber, void 0, void 0, (err) => { - handledResult = innerFrom(selector(err, catchError(selector)(source))); - if (innerSub) { - innerSub.unsubscribe(); - innerSub = null; - handledResult.subscribe(subscriber); - } else { - syncUnsub = true; - } - })); - if (syncUnsub) { - innerSub.unsubscribe(); - innerSub = null; - handledResult.subscribe(subscriber); - } - }); -} - -// node_modules/rxjs/dist/esm/internal/operators/concatMap.js -function concatMap(project, resultSelector) { - return isFunction(resultSelector) ? mergeMap(project, resultSelector, 1) : mergeMap(project, 1); -} - -// node_modules/rxjs/dist/esm/internal/operators/defaultIfEmpty.js -function defaultIfEmpty(defaultValue) { - return operate((source, subscriber) => { - let hasValue = false; - source.subscribe(createOperatorSubscriber(subscriber, (value) => { - hasValue = true; - subscriber.next(value); - }, () => { - if (!hasValue) { - subscriber.next(defaultValue); - } - subscriber.complete(); - })); - }); -} - -// node_modules/rxjs/dist/esm/internal/operators/take.js -function take(count) { - return count <= 0 ? () => EMPTY : operate((source, subscriber) => { - let seen = 0; - source.subscribe(createOperatorSubscriber(subscriber, (value) => { - if (++seen <= count) { - subscriber.next(value); - if (count <= seen) { - subscriber.complete(); - } - } - })); - }); -} - -// node_modules/rxjs/dist/esm/internal/operators/throwIfEmpty.js -function throwIfEmpty(errorFactory = defaultErrorFactory) { - return operate((source, subscriber) => { - let hasValue = false; - source.subscribe(createOperatorSubscriber(subscriber, (value) => { - hasValue = true; - subscriber.next(value); - }, () => hasValue ? subscriber.complete() : subscriber.error(errorFactory()))); - }); -} -function defaultErrorFactory() { - return new EmptyError(); -} - -// node_modules/rxjs/dist/esm/internal/operators/finalize.js -function finalize(callback) { - return operate((source, subscriber) => { - try { - source.subscribe(subscriber); - } finally { - subscriber.add(callback); - } - }); -} - -// node_modules/rxjs/dist/esm/internal/operators/first.js -function first(predicate, defaultValue) { - const hasDefaultValue = arguments.length >= 2; - return (source) => source.pipe(predicate ? filter((v, i) => predicate(v, i, source)) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(() => new EmptyError())); -} - -// node_modules/rxjs/dist/esm/internal/operators/takeLast.js -function takeLast(count) { - return count <= 0 ? () => EMPTY : operate((source, subscriber) => { - let buffer = []; - source.subscribe(createOperatorSubscriber(subscriber, (value) => { - buffer.push(value); - count < buffer.length && buffer.shift(); - }, () => { - for (const value of buffer) { - subscriber.next(value); - } - subscriber.complete(); - }, void 0, () => { - buffer = null; - })); - }); -} - -// node_modules/rxjs/dist/esm/internal/operators/startWith.js -function startWith(...values) { - const scheduler = popScheduler(values); - return operate((source, subscriber) => { - (scheduler ? concat(values, source, scheduler) : concat(values, source)).subscribe(subscriber); - }); -} - -// node_modules/rxjs/dist/esm/internal/operators/switchMap.js -function switchMap(project, resultSelector) { - return operate((source, subscriber) => { - let innerSubscriber = null; - let index = 0; - let isComplete = false; - const checkComplete = () => isComplete && !innerSubscriber && subscriber.complete(); - source.subscribe(createOperatorSubscriber(subscriber, (value) => { - innerSubscriber === null || innerSubscriber === void 0 ? void 0 : innerSubscriber.unsubscribe(); - let innerIndex = 0; - const outerIndex = index++; - innerFrom(project(value, outerIndex)).subscribe(innerSubscriber = createOperatorSubscriber(subscriber, (innerValue) => subscriber.next(resultSelector ? resultSelector(value, innerValue, outerIndex, innerIndex++) : innerValue), () => { - innerSubscriber = null; - checkComplete(); - })); - }, () => { - isComplete = true; - checkComplete(); - })); - }); -} - -// node_modules/rxjs/dist/esm/internal/operators/takeUntil.js -function takeUntil(notifier) { - return operate((source, subscriber) => { - innerFrom(notifier).subscribe(createOperatorSubscriber(subscriber, () => subscriber.complete(), noop)); - !subscriber.closed && source.subscribe(subscriber); - }); -} - -// node_modules/rxjs/dist/esm/internal/operators/tap.js -function tap(observerOrNext, error, complete) { - const tapObserver = isFunction(observerOrNext) || error || complete ? { next: observerOrNext, error, complete } : observerOrNext; - return tapObserver ? operate((source, subscriber) => { - var _a; - (_a = tapObserver.subscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver); - let isUnsub = true; - source.subscribe(createOperatorSubscriber(subscriber, (value) => { - var _a2; - (_a2 = tapObserver.next) === null || _a2 === void 0 ? void 0 : _a2.call(tapObserver, value); - subscriber.next(value); - }, () => { - var _a2; - isUnsub = false; - (_a2 = tapObserver.complete) === null || _a2 === void 0 ? void 0 : _a2.call(tapObserver); - subscriber.complete(); - }, (err) => { - var _a2; - isUnsub = false; - (_a2 = tapObserver.error) === null || _a2 === void 0 ? void 0 : _a2.call(tapObserver, err); - subscriber.error(err); - }, () => { - var _a2, _b; - if (isUnsub) { - (_a2 = tapObserver.unsubscribe) === null || _a2 === void 0 ? void 0 : _a2.call(tapObserver); - } - (_b = tapObserver.finalize) === null || _b === void 0 ? void 0 : _b.call(tapObserver); - })); - }) : identity; -} - -// node_modules/@angular/core/fesm2022/_not_found-chunk.mjs -/** - * @license Angular v21.2.17 - * (c) 2010-2026 Google LLC. https://angular.dev/ - * License: MIT - */ -var _currentInjector = void 0; -function getCurrentInjector() { - return _currentInjector; -} -function setCurrentInjector(injector) { - const former = _currentInjector; - _currentInjector = injector; - return former; -} -var NOT_FOUND = /* @__PURE__ */ Symbol("NotFound"); -function isNotFound(e) { - return e === NOT_FOUND || e?.name === "\u0275NotFound"; -} - -// node_modules/@angular/core/fesm2022/_untracked-chunk.mjs -/** - * @license Angular v21.2.17 - * (c) 2010-2026 Google LLC. https://angular.dev/ - * License: MIT - */ -function createLinkedSignal(sourceFn, computationFn, equalityFn) { - const node = Object.create(LINKED_SIGNAL_NODE); - node.source = sourceFn; - node.computation = computationFn; - if (equalityFn != void 0) { - node.equal = equalityFn; - } - const linkedSignalGetter = () => { - producerUpdateValueVersion(node); - producerAccessed(node); - if (node.value === ERRORED) { - throw node.error; - } - return node.value; - }; - const getter = linkedSignalGetter; - getter[SIGNAL] = node; - if (typeof ngDevMode !== "undefined" && ngDevMode) { - getter.toString = () => `[LinkedSignal${node.debugName ? " (" + node.debugName + ")" : ""}: ${String(node.value)}]`; - } - runPostProducerCreatedFn(node); - return getter; -} -function linkedSignalSetFn(node, newValue) { - producerUpdateValueVersion(node); - signalSetFn(node, newValue); - producerMarkClean(node); -} -function linkedSignalUpdateFn(node, updater) { - producerUpdateValueVersion(node); - if (node.value === ERRORED) { - throw node.error; - } - signalUpdateFn(node, updater); - producerMarkClean(node); -} -var LINKED_SIGNAL_NODE = /* @__PURE__ */ (() => { - return __spreadProps(__spreadValues({}, REACTIVE_NODE), { - value: UNSET, - dirty: true, - error: null, - equal: defaultEquals, - kind: "linkedSignal", - producerMustRecompute(node) { - return node.value === UNSET || node.value === COMPUTING; - }, - producerRecomputeValue(node) { - if (node.value === COMPUTING) { - throw new Error(typeof ngDevMode !== "undefined" && ngDevMode ? "Detected cycle in computations." : ""); - } - const oldValue = node.value; - node.value = COMPUTING; - const prevConsumer = consumerBeforeComputation(node); - let newValue; - let wasEqual = false; - try { - const newSourceValue = node.source(); - const oldValueValid = oldValue !== UNSET && oldValue !== ERRORED; - const prev = oldValueValid ? { - source: node.sourceValue, - value: oldValue - } : void 0; - newValue = node.computation(newSourceValue, prev); - node.sourceValue = newSourceValue; - setActiveConsumer(null); - wasEqual = oldValueValid && newValue !== ERRORED && node.equal(oldValue, newValue); - } catch (err) { - newValue = ERRORED; - node.error = err; - } finally { - consumerAfterComputation(node, prevConsumer); - } - if (wasEqual) { - node.value = oldValue; - return; - } - node.value = newValue; - node.version++; - } - }); -})(); -function untracked(nonReactiveReadsFn) { - const prevConsumer = setActiveConsumer(null); - try { - return nonReactiveReadsFn(); - } finally { - setActiveConsumer(prevConsumer); - } -} - -// node_modules/@angular/core/fesm2022/primitives-signals.mjs -/** - * @license Angular v21.2.17 - * (c) 2010-2026 Google LLC. https://angular.dev/ - * License: MIT - */ -var formatter = { - header: (sig, config2) => { - if (!isSignal(sig) || config2?.ngSkipFormatting) return null; - let value; - try { - value = sig(); - } catch (e) { - return ["span", `Signal(\u26A0\uFE0F Error)${e.message ? `: ${e.message}` : ""}`]; - } - const kind = "computation" in sig[SIGNAL] ? "Computed" : "Signal"; - const isPrimitive = value === null || !Array.isArray(value) && typeof value !== "object"; - return ["span", {}, ["span", {}, `${kind}(`], (() => { - if (isSignal(value)) { - return formatter.header(value, config2); - } else if (isPrimitive && value !== void 0 && typeof value !== "function") { - return ["object", { - object: value - }]; - } else { - return prettifyPreview(value); - } - })(), ["span", {}, `)`]]; - }, - hasBody: (sig, config2) => { - if (!isSignal(sig)) return false; - try { - sig(); - } catch { - return false; - } - return !config2?.ngSkipFormatting; - }, - body: (sig, config2) => { - const color = "var(--sys-color-primary)"; - return ["div", { - style: `background: #FFFFFF10; padding-left: 4px; padding-top: 2px; padding-bottom: 2px;` - }, ["div", { - style: `color: ${color}` - }, "Signal value: "], ["div", { - style: `padding-left: .5rem;` - }, ["object", { - object: sig(), - config: config2 - }]], ["div", { - style: `color: ${color}` - }, "Signal function: "], ["div", { - style: `padding-left: .5rem;` - }, ["object", { - object: sig, - config: __spreadProps(__spreadValues({}, config2), { - ngSkipFormatting: true - }) - }]]]; - } -}; -function prettifyPreview(value) { - if (value === null) return "null"; - if (Array.isArray(value)) return `Array(${value.length})`; - if (value instanceof Element) return `<${value.tagName.toLowerCase()}>`; - if (value instanceof URL) return `URL`; - switch (typeof value) { - case "undefined": { - return "undefined"; - } - case "function": { - if ("prototype" in value) { - return "class"; - } else { - return "() => {\u2026}"; - } - } - case "object": { - if (value.constructor.name === "Object") { - return "{\u2026}"; - } else { - return `${value.constructor.name} {}`; - } - } - default: { - return ["object", { - object: value, - config: { - ngSkipFormatting: true - } - }]; - } - } -} -function isSignal(value) { - return value[SIGNAL] !== void 0; -} -function installDevToolsSignalFormatter() { - globalThis.devtoolsFormatters ??= []; - if (!globalThis.devtoolsFormatters.some((f) => f === formatter)) { - globalThis.devtoolsFormatters.push(formatter); - } -} -if (typeof ngDevMode === "undefined" || ngDevMode) { - installDevToolsSignalFormatter(); -} - -// node_modules/@angular/core/fesm2022/primitives-di.mjs -/** - * @license Angular v21.2.17 - * (c) 2010-2026 Google LLC. https://angular.dev/ - * License: MIT - */ - -// node_modules/@angular/core/fesm2022/_effect-chunk2.mjs -/** - * @license Angular v21.2.17 - * (c) 2010-2026 Google LLC. https://angular.dev/ - * License: MIT - */ -var Version = class { - full; - major; - minor; - patch; - constructor(full) { - this.full = full; - const parts = full.split("."); - this.major = parts[0]; - this.minor = parts[1]; - this.patch = parts.slice(2).join("."); - } -}; -var VERSION = /* @__PURE__ */ new Version("21.2.17"); -var DOC_PAGE_BASE_URL = (() => { - const full = VERSION.full; - const isPreRelease = full.includes("-next") || full.includes("-rc") || full === "0.0.0-PLACEHOLDER"; - const prefix = isPreRelease ? "next" : `v${VERSION.major}`; - return `https://${prefix}.angular.dev`; -})(); -var ERROR_DETAILS_PAGE_BASE_URL = (() => { - return `${DOC_PAGE_BASE_URL}/errors`; -})(); -var XSS_SECURITY_URL = "https://angular.dev/best-practices/security#preventing-cross-site-scripting-xss"; -var RuntimeError = class extends Error { - code; - constructor(code, message) { - super(formatRuntimeError(code, message)); - this.code = code; - } -}; -function formatRuntimeErrorCode(code) { - return `NG0${Math.abs(code)}`; -} -function formatRuntimeError(code, message) { - const fullCode = formatRuntimeErrorCode(code); - let errorMessage = `${fullCode}${message ? ": " + message : ""}`; - if (ngDevMode && code < 0) { - const addPeriodSeparator = !errorMessage.match(/[.,;!?\n]$/); - const separator = addPeriodSeparator ? "." : ""; - errorMessage = `${errorMessage}${separator} Find more at ${ERROR_DETAILS_PAGE_BASE_URL}/${fullCode}`; - } - return errorMessage; -} -var _global = globalThis; -function ngDevModeResetPerfCounters() { - const locationString = typeof location !== "undefined" ? location.toString() : ""; - const newCounters = { - hydratedNodes: 0, - hydratedComponents: 0, - dehydratedViewsRemoved: 0, - dehydratedViewsCleanupRuns: 0, - componentsSkippedHydration: 0, - deferBlocksWithIncrementalHydration: 0 - }; - const allowNgDevModeTrue = locationString.indexOf("ngDevMode=false") === -1; - if (!allowNgDevModeTrue) { - _global["ngDevMode"] = false; - } else { - if (typeof _global["ngDevMode"] !== "object") { - _global["ngDevMode"] = {}; - } - Object.assign(_global["ngDevMode"], newCounters); - } - return newCounters; -} -function initNgDevMode() { - if (typeof ngDevMode === "undefined" || ngDevMode) { - if (typeof ngDevMode !== "object" || Object.keys(ngDevMode).length === 0) { - ngDevModeResetPerfCounters(); - } - return typeof ngDevMode !== "undefined" && !!ngDevMode; - } - return false; -} -function getClosureSafeProperty(objWithPropertyToExtract) { - for (let key in objWithPropertyToExtract) { - if (objWithPropertyToExtract[key] === getClosureSafeProperty) { - return key; - } - } - throw Error(typeof ngDevMode !== "undefined" && ngDevMode ? "Could not find renamed property on target object." : ""); -} -function fillProperties(target, source) { - for (const key in source) { - if (source.hasOwnProperty(key) && !target.hasOwnProperty(key)) { - target[key] = source[key]; - } - } -} -function stringify(token) { - if (typeof token === "string") { - return token; - } - if (Array.isArray(token)) { - return `[${token.map(stringify).join(", ")}]`; - } - if (token == null) { - return "" + token; - } - const name = token.overriddenName || token.name; - if (name) { - return `${name}`; - } - const result = token.toString(); - if (result == null) { - return "" + result; - } - const newLineIndex = result.indexOf("\n"); - return newLineIndex >= 0 ? result.slice(0, newLineIndex) : result; -} -function concatStringsWithSpace(before, after) { - if (!before) return after || ""; - if (!after) return before; - return `${before} ${after}`; -} -function truncateMiddle(str, maxLength = 100) { - if (!str || maxLength < 1 || str.length <= maxLength) return str; - if (maxLength == 1) return str.substring(0, 1) + "..."; - const halfLimit = Math.round(maxLength / 2); - return str.substring(0, halfLimit) + "..." + str.substring(str.length - halfLimit); -} -var __forward_ref__ = getClosureSafeProperty({ - __forward_ref__: getClosureSafeProperty -}); -function forwardRef(forwardRefFn) { - forwardRefFn.__forward_ref__ = forwardRef; - if (ngDevMode) { - forwardRefFn.toString = function() { - return stringify(this()); - }; - } - return forwardRefFn; -} -function resolveForwardRef(type) { - return isForwardRef(type) ? type() : type; -} -function isForwardRef(fn) { - return typeof fn === "function" && fn.hasOwnProperty(__forward_ref__) && fn.__forward_ref__ === forwardRef; -} -function assertNumber(actual, msg) { - if (!(typeof actual === "number")) { - throwError2(msg, typeof actual, "number", "==="); - } -} -function assertNumberInRange(actual, minInclusive, maxInclusive) { - assertNumber(actual, "Expected a number"); - assertLessThanOrEqual(actual, maxInclusive, "Expected number to be less than or equal to"); - assertGreaterThanOrEqual(actual, minInclusive, "Expected number to be greater than or equal to"); -} -function assertString(actual, msg) { - if (!(typeof actual === "string")) { - throwError2(msg, actual === null ? "null" : typeof actual, "string", "==="); - } -} -function assertFunction(actual, msg) { - if (!(typeof actual === "function")) { - throwError2(msg, actual === null ? "null" : typeof actual, "function", "==="); - } -} -function assertEqual(actual, expected, msg) { - if (!(actual == expected)) { - throwError2(msg, actual, expected, "=="); - } -} -function assertNotEqual(actual, expected, msg) { - if (!(actual != expected)) { - throwError2(msg, actual, expected, "!="); - } -} -function assertSame(actual, expected, msg) { - if (!(actual === expected)) { - throwError2(msg, actual, expected, "==="); - } -} -function assertNotSame(actual, expected, msg) { - if (!(actual !== expected)) { - throwError2(msg, actual, expected, "!=="); - } -} -function assertLessThan(actual, expected, msg) { - if (!(actual < expected)) { - throwError2(msg, actual, expected, "<"); - } -} -function assertLessThanOrEqual(actual, expected, msg) { - if (!(actual <= expected)) { - throwError2(msg, actual, expected, "<="); - } -} -function assertGreaterThan(actual, expected, msg) { - if (!(actual > expected)) { - throwError2(msg, actual, expected, ">"); - } -} -function assertGreaterThanOrEqual(actual, expected, msg) { - if (!(actual >= expected)) { - throwError2(msg, actual, expected, ">="); - } -} -function assertDefined(actual, msg) { - if (actual == null) { - throwError2(msg, actual, null, "!="); - } -} -function throwError2(msg, actual, expected, comparison) { - throw new Error(`ASSERTION ERROR: ${msg}` + (comparison == null ? "" : ` [Expected=> ${expected} ${comparison} ${actual} <=Actual]`)); -} -function assertDomNode(node) { - if (!(node instanceof Node)) { - throwError2(`The provided value must be an instance of a DOM Node but got ${stringify(node)}`); - } -} -function assertElement(node) { - if (!(node instanceof Element)) { - throwError2(`The provided value must be an element but got ${stringify(node)}`); - } -} -function assertIndexInRange(arr, index) { - assertDefined(arr, "Array must be defined."); - const maxLen = arr.length; - if (index < 0 || index >= maxLen) { - throwError2(`Index expected to be less than ${maxLen} but got ${index}`); - } -} -function assertOneOf(value, ...validValues) { - if (validValues.indexOf(value) !== -1) return true; - throwError2(`Expected value to be one of ${JSON.stringify(validValues)} but was ${JSON.stringify(value)}.`); -} -function assertNotReactive(fn) { - if (getActiveConsumer() !== null) { - throwError2(`${fn}() should never be called in a reactive context.`); - } -} -function \u0275\u0275defineInjectable(opts) { - return { - token: opts.token, - providedIn: opts.providedIn || null, - factory: opts.factory, - value: void 0 - }; -} -function \u0275\u0275defineInjector(options) { - return { - providers: options.providers || [], - imports: options.imports || [] - }; -} -function getInjectableDef(type) { - return getOwnDefinition(type, NG_PROV_DEF); -} -function isInjectable(type) { - return getInjectableDef(type) !== null; -} -function getOwnDefinition(type, field) { - return type.hasOwnProperty(field) && type[field] || null; -} -function getInheritedInjectableDef(type) { - const def = type?.[NG_PROV_DEF] ?? null; - if (def) { - ngDevMode && console.warn(`DEPRECATED: DI is instantiating a token "${type.name}" that inherits its @Injectable decorator but does not provide one itself. -This will become an error in a future version of Angular. Please add @Injectable() to the "${type.name}" class.`); - return def; - } else { - return null; - } -} -function getInjectorDef(type) { - return type && type.hasOwnProperty(NG_INJ_DEF) ? type[NG_INJ_DEF] : null; -} -var NG_PROV_DEF = getClosureSafeProperty({ - \u0275prov: getClosureSafeProperty -}); -var NG_INJ_DEF = getClosureSafeProperty({ - \u0275inj: getClosureSafeProperty -}); -var InjectionToken = class { - _desc; - ngMetadataName = "InjectionToken"; - \u0275prov; - constructor(_desc, options) { - this._desc = _desc; - this.\u0275prov = void 0; - if (typeof options == "number") { - (typeof ngDevMode === "undefined" || ngDevMode) && assertLessThan(options, 0, "Only negative numbers are supported here"); - this.__NG_ELEMENT_ID__ = options; - } else if (options !== void 0) { - this.\u0275prov = \u0275\u0275defineInjectable({ - token: this, - providedIn: options.providedIn || "root", - factory: options.factory - }); - } - } - get multi() { - return this; - } - toString() { - return `InjectionToken ${this._desc}`; - } -}; -var _injectorProfilerContext; -function getInjectorProfilerContext() { - !ngDevMode && throwError2("getInjectorProfilerContext should never be called in production mode"); - return _injectorProfilerContext; -} -function setInjectorProfilerContext(context2) { - !ngDevMode && throwError2("setInjectorProfilerContext should never be called in production mode"); - const previous = _injectorProfilerContext; - _injectorProfilerContext = context2; - return previous; -} -var injectorProfilerCallbacks = []; -var NOOP_PROFILER_REMOVAL = () => { -}; -function removeProfiler(profiler2) { - const profilerIdx = injectorProfilerCallbacks.indexOf(profiler2); - if (profilerIdx !== -1) { - injectorProfilerCallbacks.splice(profilerIdx, 1); - } -} -function setInjectorProfiler(injectorProfiler2) { - !ngDevMode && throwError2("setInjectorProfiler should never be called in production mode"); - if (injectorProfiler2 !== null) { - if (!injectorProfilerCallbacks.includes(injectorProfiler2)) { - injectorProfilerCallbacks.push(injectorProfiler2); - } - return () => removeProfiler(injectorProfiler2); - } else { - injectorProfilerCallbacks.length = 0; - return NOOP_PROFILER_REMOVAL; - } -} -function injectorProfiler(event) { - !ngDevMode && throwError2("Injector profiler should never be called in production mode"); - for (let i = 0; i < injectorProfilerCallbacks.length; i++) { - const injectorProfilerCallback = injectorProfilerCallbacks[i]; - injectorProfilerCallback(event); - } -} -function emitProviderConfiguredEvent(eventProvider, isViewProvider = false) { - !ngDevMode && throwError2("Injector profiler should never be called in production mode"); - let token; - if (typeof eventProvider === "function") { - token = eventProvider; - } else if (eventProvider instanceof InjectionToken) { - token = eventProvider; - } else { - token = resolveForwardRef(eventProvider.provide); - } - let provider = eventProvider; - if (eventProvider instanceof InjectionToken) { - provider = eventProvider.\u0275prov || eventProvider; - } - injectorProfiler({ - type: 2, - context: getInjectorProfilerContext(), - providerRecord: { - token, - provider, - isViewProvider - } - }); -} -function emitInjectorToCreateInstanceEvent(token) { - !ngDevMode && throwError2("Injector profiler should never be called in production mode"); - injectorProfiler({ - type: 5, - context: getInjectorProfilerContext(), - token - }); -} -function emitInstanceCreatedByInjectorEvent(instance) { - !ngDevMode && throwError2("Injector profiler should never be called in production mode"); - injectorProfiler({ - type: 1, - context: getInjectorProfilerContext(), - instance: { - value: instance - } - }); -} -function emitInjectEvent(token, value, flags) { - !ngDevMode && throwError2("Injector profiler should never be called in production mode"); - injectorProfiler({ - type: 0, - context: getInjectorProfilerContext(), - service: { - token, - value, - flags - } - }); -} -function emitEffectCreatedEvent(effect2) { - !ngDevMode && throwError2("Injector profiler should never be called in production mode"); - injectorProfiler({ - type: 3, - context: getInjectorProfilerContext(), - effect: effect2 - }); -} -function runInInjectorProfilerContext(injector, token, callback) { - !ngDevMode && throwError2("runInInjectorProfilerContext should never be called in production mode"); - const prevInjectContext = setInjectorProfilerContext({ - injector, - token - }); - try { - callback(); - } finally { - setInjectorProfilerContext(prevInjectContext); - } -} -function isEnvironmentProviders(value) { - return value && !!value.\u0275providers; -} -var NG_COMP_DEF = getClosureSafeProperty({ - \u0275cmp: getClosureSafeProperty -}); -var NG_DIR_DEF = getClosureSafeProperty({ - \u0275dir: getClosureSafeProperty -}); -var NG_PIPE_DEF = getClosureSafeProperty({ - \u0275pipe: getClosureSafeProperty -}); -var NG_MOD_DEF = getClosureSafeProperty({ - \u0275mod: getClosureSafeProperty -}); -var NG_FACTORY_DEF = getClosureSafeProperty({ - \u0275fac: getClosureSafeProperty -}); -var NG_ELEMENT_ID = getClosureSafeProperty({ - __NG_ELEMENT_ID__: getClosureSafeProperty -}); -var NG_ENV_ID = getClosureSafeProperty({ - __NG_ENV_ID__: getClosureSafeProperty -}); -function getNgModuleDef(type) { - assertTypeDefined(type, "@NgModule"); - return type[NG_MOD_DEF] || null; -} -function getNgModuleDefOrThrow(type) { - const ngModuleDef = getNgModuleDef(type); - if (!ngModuleDef) { - throw new RuntimeError(915, (typeof ngDevMode === "undefined" || ngDevMode) && `Type ${stringify(type)} does not have '\u0275mod' property.`); - } - return ngModuleDef; -} -function getComponentDef(type) { - assertTypeDefined(type, "@Component"); - return type[NG_COMP_DEF] || null; -} -function getDirectiveDefOrThrow(type) { - const def = getDirectiveDef(type); - if (!def) { - throw new RuntimeError(916, (typeof ngDevMode === "undefined" || ngDevMode) && `Type ${stringify(type)} does not have '\u0275dir' property.`); - } - return def; -} -function getDirectiveDef(type) { - assertTypeDefined(type, "@Directive"); - return type[NG_DIR_DEF] || null; -} -function getPipeDef(type) { - assertTypeDefined(type, "@Pipe"); - return type[NG_PIPE_DEF] || null; -} -function assertTypeDefined(type, symbolType) { - if (type == null) { - throw new RuntimeError(-919, (typeof ngDevMode === "undefined" || ngDevMode) && `Cannot read ${symbolType} metadata. This can indicate a runtime circular dependency in your app that needs to be resolved.`); - } -} -function isStandalone(type) { - const def = getComponentDef(type) || getDirectiveDef(type) || getPipeDef(type); - return def !== null && def.standalone; -} -function renderStringify(value) { - if (typeof value === "string") return value; - if (value == null) return ""; - return String(value); -} -function stringifyForError(value) { - if (typeof value === "function") return value.name || value.toString(); - if (typeof value === "object" && value != null && typeof value.type === "function") { - return value.type.name || value.type.toString(); - } - return renderStringify(value); -} -function debugStringifyTypeForError(type) { - const componentDef = getComponentDef(type); - if (componentDef !== null && componentDef.debugInfo) { - return stringifyTypeFromDebugInfo(componentDef.debugInfo); - } - return stringifyForError(type); -} -function stringifyTypeFromDebugInfo(debugInfo) { - if (!debugInfo.filePath || !debugInfo.lineNumber) { - return debugInfo.className; - } else { - return `${debugInfo.className} (at ${debugInfo.filePath}:${debugInfo.lineNumber})`; - } -} -var NG_RUNTIME_ERROR_CODE = getClosureSafeProperty({ - "ngErrorCode": getClosureSafeProperty -}); -var NG_RUNTIME_ERROR_MESSAGE = getClosureSafeProperty({ - "ngErrorMessage": getClosureSafeProperty -}); -var NG_TOKEN_PATH = getClosureSafeProperty({ - "ngTokenPath": getClosureSafeProperty -}); -function cyclicDependencyError(token, path) { - const message = ngDevMode ? `Circular dependency detected for \`${token}\`.` : ""; - return createRuntimeError(message, -200, path); -} -function cyclicDependencyErrorWithDetails(token, path) { - return augmentRuntimeError(cyclicDependencyError(token, path), null); -} -function throwMixedMultiProviderError() { - throw new Error(`Cannot mix multi providers and regular providers`); -} -function throwInvalidProviderError(ngModuleType, providers, provider) { - if (ngModuleType && providers) { - const providerDetail = providers.map((v) => v == provider ? "?" + provider + "?" : "..."); - throw new Error(`Invalid provider for the NgModule '${stringify(ngModuleType)}' - only instances of Provider and Type are allowed, got: [${providerDetail.join(", ")}]`); - } else if (isEnvironmentProviders(provider)) { - if (provider.\u0275fromNgModule) { - throw new RuntimeError(-207, `Invalid providers from 'importProvidersFrom' present in a non-environment injector. 'importProvidersFrom' can't be used for component providers.`); - } else { - throw new RuntimeError(-207, `Invalid providers present in a non-environment injector. 'EnvironmentProviders' can't be used for component providers.`); - } - } else { - throw new Error("Invalid provider"); - } -} -function throwProviderNotFoundError(token, injectorName) { - const errorMessage = ngDevMode && `No provider for ${stringifyForError(token)} found${injectorName ? ` in ${injectorName}` : ""}`; - throw new RuntimeError(-201, errorMessage); -} -function prependTokenToDependencyPath(error, token) { - error[NG_TOKEN_PATH] ??= []; - const currentPath = error[NG_TOKEN_PATH]; - let pathStr; - if (typeof token === "object" && "multi" in token && token?.multi === true) { - assertDefined(token.provide, "Token with multi: true should have a provide property"); - pathStr = stringifyForError(token.provide); - } else { - pathStr = stringifyForError(token); - } - if (currentPath[0] !== pathStr) { - error[NG_TOKEN_PATH].unshift(pathStr); - } -} -function augmentRuntimeError(error, source) { - const tokenPath = error[NG_TOKEN_PATH]; - const errorCode = error[NG_RUNTIME_ERROR_CODE]; - const message = error[NG_RUNTIME_ERROR_MESSAGE] || error.message; - error.message = formatErrorMessage(message, errorCode, tokenPath, source); - return error; -} -function createRuntimeError(message, code, path) { - const error = new RuntimeError(code, message); - error[NG_RUNTIME_ERROR_CODE] = code; - error[NG_RUNTIME_ERROR_MESSAGE] = message; - if (path) { - error[NG_TOKEN_PATH] = path; - } - return error; -} -function getRuntimeErrorCode(error) { - return error[NG_RUNTIME_ERROR_CODE]; -} -function formatErrorMessage(text, code, path = [], source = null) { - let pathDetails = ""; - if (path && path.length > 1) { - pathDetails = ` Path: ${path.join(" -> ")}.`; - } - const sourceDetails = source ? ` Source: ${source}.` : ""; - return formatRuntimeError(code, `${text}${sourceDetails}${pathDetails}`); -} -var _injectImplementation; -function getInjectImplementation() { - return _injectImplementation; -} -function setInjectImplementation(impl) { - const previous = _injectImplementation; - _injectImplementation = impl; - return previous; -} -function injectRootLimpMode(token, notFoundValue, flags) { - const injectableDef = getInjectableDef(token); - if (injectableDef && injectableDef.providedIn == "root") { - return injectableDef.value === void 0 ? injectableDef.value = injectableDef.factory() : injectableDef.value; - } - if (flags & 8) return null; - if (notFoundValue !== void 0) return notFoundValue; - throwProviderNotFoundError(token, typeof ngDevMode !== "undefined" && ngDevMode ? "Injector" : ""); -} -function assertInjectImplementationNotEqual(fn) { - ngDevMode && assertNotEqual(_injectImplementation, fn, "Calling \u0275\u0275inject would cause infinite recursion"); -} -var _THROW_IF_NOT_FOUND = {}; -var THROW_IF_NOT_FOUND = _THROW_IF_NOT_FOUND; -var DI_DECORATOR_FLAG = "__NG_DI_FLAG__"; -var RetrievingInjector = class { - injector; - constructor(injector) { - this.injector = injector; - } - retrieve(token, options) { - const flags = convertToBitFlags(options) || 0; - try { - return this.injector.get(token, flags & 8 ? null : THROW_IF_NOT_FOUND, flags); - } catch (e) { - if (isNotFound(e)) { - return e; - } - throw e; - } - } -}; -function injectInjectorOnly(token, flags = 0) { - const currentInjector = getCurrentInjector(); - if (currentInjector === void 0) { - throw new RuntimeError(-203, ngDevMode && `The \`${stringify(token)}\` token injection failed. \`inject()\` function must be called from an injection context such as a constructor, a factory function, a field initializer, or a function used with \`runInInjectionContext\`.`); - } else if (currentInjector === null) { - return injectRootLimpMode(token, void 0, flags); - } else { - const options = convertToInjectOptions(flags); - const value = currentInjector.retrieve(token, options); - ngDevMode && emitInjectEvent(token, value, flags); - if (isNotFound(value)) { - if (options.optional) { - return null; - } - throw value; - } - return value; - } -} -function \u0275\u0275inject(token, flags = 0) { - return (getInjectImplementation() || injectInjectorOnly)(resolveForwardRef(token), flags); -} -function \u0275\u0275invalidFactoryDep(index) { - throw new RuntimeError(202, ngDevMode && `This constructor is not compatible with Angular Dependency Injection because its dependency at index ${index} of the parameter list is invalid. -This can happen if the dependency type is a primitive like a string or if an ancestor of this class is missing an Angular decorator. - -Please check that 1) the type for the parameter at index ${index} is correct and 2) the correct Angular decorators are defined for this class and its ancestors.`); -} -function inject2(token, options) { - return \u0275\u0275inject(token, convertToBitFlags(options)); -} -function convertToBitFlags(flags) { - if (typeof flags === "undefined" || typeof flags === "number") { - return flags; - } - return 0 | (flags.optional && 8) | (flags.host && 1) | (flags.self && 2) | (flags.skipSelf && 4); -} -function convertToInjectOptions(flags) { - return { - optional: !!(flags & 8), - host: !!(flags & 1), - self: !!(flags & 2), - skipSelf: !!(flags & 4) - }; -} -function injectArgs(types) { - const args = []; - for (let i = 0; i < types.length; i++) { - const arg = resolveForwardRef(types[i]); - if (Array.isArray(arg)) { - if (arg.length === 0) { - throw new RuntimeError(900, ngDevMode && "Arguments array must have arguments."); - } - let type = void 0; - let flags = 0; - for (let j = 0; j < arg.length; j++) { - const meta = arg[j]; - const flag = getInjectFlag(meta); - if (typeof flag === "number") { - if (flag === -1) { - type = meta.token; - } else { - flags |= flag; - } - } else { - type = meta; - } - } - args.push(\u0275\u0275inject(type, flags)); - } else { - args.push(\u0275\u0275inject(arg)); - } - } - return args; -} -function attachInjectFlag(decorator, flag) { - decorator[DI_DECORATOR_FLAG] = flag; - decorator.prototype[DI_DECORATOR_FLAG] = flag; - return decorator; -} -function getInjectFlag(token) { - return token[DI_DECORATOR_FLAG]; -} -function getFactoryDef(type, throwNotFound) { - const hasFactoryDef = type.hasOwnProperty(NG_FACTORY_DEF); - if (!hasFactoryDef && throwNotFound === true && ngDevMode) { - throw new Error(`Type ${stringify(type)} does not have '\u0275fac' property.`); - } - return hasFactoryDef ? type[NG_FACTORY_DEF] : null; -} -function arrayEquals(a, b, identityAccessor) { - if (a.length !== b.length) return false; - for (let i = 0; i < a.length; i++) { - let valueA = a[i]; - let valueB = b[i]; - if (identityAccessor) { - valueA = identityAccessor(valueA); - valueB = identityAccessor(valueB); - } - if (valueB !== valueA) { - return false; - } - } - return true; -} -function flatten(list) { - return list.flat(Number.POSITIVE_INFINITY); -} -function deepForEach(input2, fn) { - input2.forEach((value) => Array.isArray(value) ? deepForEach(value, fn) : fn(value)); -} -function addToArray(arr, index, value) { - if (index >= arr.length) { - arr.push(value); - } else { - arr.splice(index, 0, value); - } -} -function removeFromArray(arr, index) { - if (index >= arr.length - 1) { - return arr.pop(); - } else { - return arr.splice(index, 1)[0]; - } -} -function newArray(size, value) { - const list = []; - for (let i = 0; i < size; i++) { - list.push(value); - } - return list; -} -function arraySplice(array, index, count) { - const length = array.length - count; - while (index < length) { - array[index] = array[index + count]; - index++; - } - while (count--) { - array.pop(); - } -} -function arrayInsert2(array, index, value1, value2) { - ngDevMode && assertLessThanOrEqual(index, array.length, "Can't insert past array end."); - let end = array.length; - if (end == index) { - array.push(value1, value2); - } else if (end === 1) { - array.push(value2, array[0]); - array[0] = value1; - } else { - end--; - array.push(array[end - 1], array[end]); - while (end > index) { - const previousEnd = end - 2; - array[end] = array[previousEnd]; - end--; - } - array[index] = value1; - array[index + 1] = value2; - } -} -function keyValueArraySet(keyValueArray, key, value) { - let index = keyValueArrayIndexOf(keyValueArray, key); - if (index >= 0) { - keyValueArray[index | 1] = value; - } else { - index = ~index; - arrayInsert2(keyValueArray, index, key, value); - } - return index; -} -function keyValueArrayGet(keyValueArray, key) { - const index = keyValueArrayIndexOf(keyValueArray, key); - if (index >= 0) { - return keyValueArray[index | 1]; - } - return void 0; -} -function keyValueArrayIndexOf(keyValueArray, key) { - return _arrayIndexOfSorted(keyValueArray, key, 1); -} -function _arrayIndexOfSorted(array, value, shift) { - ngDevMode && assertEqual(Array.isArray(array), true, "Expecting an array"); - let start = 0; - let end = array.length >> shift; - while (end !== start) { - const middle = start + (end - start >> 1); - const current = array[middle << shift]; - if (value === current) { - return middle << shift; - } else if (current > value) { - end = middle; - } else { - start = middle + 1; - } - } - return ~(end << shift); -} -var EMPTY_OBJ = {}; -var EMPTY_ARRAY = []; -if ((typeof ngDevMode === "undefined" || ngDevMode) && initNgDevMode()) { - Object.freeze(EMPTY_OBJ); - Object.freeze(EMPTY_ARRAY); -} -var ENVIRONMENT_INITIALIZER = new InjectionToken(typeof ngDevMode !== "undefined" && ngDevMode ? "ENVIRONMENT_INITIALIZER" : ""); -var INJECTOR$1 = new InjectionToken(typeof ngDevMode !== "undefined" && ngDevMode ? "INJECTOR" : "", -1); -var INJECTOR_DEF_TYPES = new InjectionToken(typeof ngDevMode !== "undefined" && ngDevMode ? "INJECTOR_DEF_TYPES" : ""); -var NullInjector = class { - get(token, notFoundValue = THROW_IF_NOT_FOUND) { - if (notFoundValue === THROW_IF_NOT_FOUND) { - const message = ngDevMode ? `No provider found for \`${stringify(token)}\`.` : ""; - const error = createRuntimeError(message, -201); - error.name = "\u0275NotFound"; - throw error; - } - return notFoundValue; - } -}; -function makeEnvironmentProviders(providers) { - return { - \u0275providers: providers - }; -} -function provideEnvironmentInitializer(initializerFn) { - return makeEnvironmentProviders([{ - provide: ENVIRONMENT_INITIALIZER, - multi: true, - useValue: initializerFn - }]); -} -function importProvidersFrom(...sources) { - return { - \u0275providers: internalImportProvidersFrom(true, sources), - \u0275fromNgModule: true - }; -} -function internalImportProvidersFrom(checkForStandaloneCmp, ...sources) { - const providersOut = []; - const dedup = /* @__PURE__ */ new Set(); - let injectorTypesWithProviders; - const collectProviders = (provider) => { - providersOut.push(provider); - }; - deepForEach(sources, (source) => { - if ((typeof ngDevMode === "undefined" || ngDevMode) && checkForStandaloneCmp) { - const cmpDef = getComponentDef(source); - if (cmpDef?.standalone) { - throw new RuntimeError(800, `Importing providers supports NgModule or ModuleWithProviders but got a standalone component "${stringifyForError(source)}"`); - } - } - const internalSource = source; - if (walkProviderTree(internalSource, collectProviders, [], dedup)) { - injectorTypesWithProviders ||= []; - injectorTypesWithProviders.push(internalSource); - } - }); - if (injectorTypesWithProviders !== void 0) { - processInjectorTypesWithProviders(injectorTypesWithProviders, collectProviders); - } - return providersOut; -} -function processInjectorTypesWithProviders(typesWithProviders, visitor) { - for (let i = 0; i < typesWithProviders.length; i++) { - const { - ngModule, - providers - } = typesWithProviders[i]; - deepForEachProvider(providers, (provider) => { - ngDevMode && validateProvider(provider, providers || EMPTY_ARRAY, ngModule); - visitor(provider, ngModule); - }); - } -} -function walkProviderTree(container, visitor, parents, dedup) { - container = resolveForwardRef(container); - if (!container) return false; - let defType = null; - let injDef = getInjectorDef(container); - const cmpDef = !injDef && getComponentDef(container); - if (!injDef && !cmpDef) { - const ngModule = container.ngModule; - injDef = getInjectorDef(ngModule); - if (injDef) { - defType = ngModule; - } else { - return false; - } - } else if (cmpDef && !cmpDef.standalone) { - return false; - } else { - defType = container; - } - if (ngDevMode && parents.indexOf(defType) !== -1) { - const defName = stringify(defType); - const path = parents.map(stringify).concat(defName); - throw cyclicDependencyErrorWithDetails(defName, path); - } - const isDuplicate = dedup.has(defType); - if (cmpDef) { - if (isDuplicate) { - return false; - } - dedup.add(defType); - if (cmpDef.dependencies) { - const deps = typeof cmpDef.dependencies === "function" ? cmpDef.dependencies() : cmpDef.dependencies; - for (const dep of deps) { - walkProviderTree(dep, visitor, parents, dedup); - } - } - } else if (injDef) { - if (injDef.imports != null && !isDuplicate) { - ngDevMode && parents.push(defType); - dedup.add(defType); - let importTypesWithProviders; - try { - deepForEach(injDef.imports, (imported) => { - if (walkProviderTree(imported, visitor, parents, dedup)) { - importTypesWithProviders ||= []; - importTypesWithProviders.push(imported); - } - }); - } finally { - ngDevMode && parents.pop(); - } - if (importTypesWithProviders !== void 0) { - processInjectorTypesWithProviders(importTypesWithProviders, visitor); - } - } - if (!isDuplicate) { - const factory = getFactoryDef(defType) || (() => new defType()); - visitor({ - provide: defType, - useFactory: factory, - deps: EMPTY_ARRAY - }, defType); - visitor({ - provide: INJECTOR_DEF_TYPES, - useValue: defType, - multi: true - }, defType); - visitor({ - provide: ENVIRONMENT_INITIALIZER, - useValue: () => \u0275\u0275inject(defType), - multi: true - }, defType); - } - const defProviders = injDef.providers; - if (defProviders != null && !isDuplicate) { - const injectorType = container; - deepForEachProvider(defProviders, (provider) => { - ngDevMode && validateProvider(provider, defProviders, injectorType); - visitor(provider, injectorType); - }); - } - } else { - return false; - } - return defType !== container && container.providers !== void 0; -} -function validateProvider(provider, providers, containerType) { - if (isTypeProvider(provider) || isValueProvider(provider) || isFactoryProvider(provider) || isExistingProvider(provider)) { - return; - } - const classRef = resolveForwardRef(provider && (provider.useClass || provider.provide)); - if (!classRef) { - throwInvalidProviderError(containerType, providers, provider); - } -} -function deepForEachProvider(providers, fn) { - for (let provider of providers) { - if (isEnvironmentProviders(provider)) { - provider = provider.\u0275providers; - } - if (Array.isArray(provider)) { - deepForEachProvider(provider, fn); - } else { - fn(provider); - } - } -} -var USE_VALUE = getClosureSafeProperty({ - provide: String, - useValue: getClosureSafeProperty -}); -function isValueProvider(value) { - return value !== null && typeof value == "object" && USE_VALUE in value; -} -function isExistingProvider(value) { - return !!(value && value.useExisting); -} -function isFactoryProvider(value) { - return !!(value && value.useFactory); -} -function isTypeProvider(value) { - return typeof value === "function"; -} -function isClassProvider(value) { - return !!value.useClass; -} -var INJECTOR_SCOPE = new InjectionToken(typeof ngDevMode !== "undefined" && ngDevMode ? "Set Injector scope." : ""); -var NOT_YET = {}; -var CIRCULAR = {}; -var NULL_INJECTOR = void 0; -function getNullInjector() { - if (NULL_INJECTOR === void 0) { - NULL_INJECTOR = new NullInjector(); - } - return NULL_INJECTOR; -} -var EnvironmentInjector = class { -}; -var R3Injector = class extends EnvironmentInjector { - parent; - source; - scopes; - records = /* @__PURE__ */ new Map(); - _ngOnDestroyHooks = /* @__PURE__ */ new Set(); - _onDestroyHooks = []; - get destroyed() { - return this._destroyed; - } - _destroyed = false; - injectorDefTypes; - constructor(providers, parent, source, scopes) { - super(); - this.parent = parent; - this.source = source; - this.scopes = scopes; - forEachSingleProvider(providers, (provider) => this.processProvider(provider)); - this.records.set(INJECTOR$1, makeRecord(void 0, this)); - if (scopes.has("environment")) { - this.records.set(EnvironmentInjector, makeRecord(void 0, this)); - } - const record = this.records.get(INJECTOR_SCOPE); - if (record != null && typeof record.value === "string") { - this.scopes.add(record.value); - } - this.injectorDefTypes = new Set(this.get(INJECTOR_DEF_TYPES, EMPTY_ARRAY, { - self: true - })); - } - retrieve(token, options) { - const flags = convertToBitFlags(options) || 0; - try { - return this.get(token, THROW_IF_NOT_FOUND, flags); - } catch (e) { - if (isNotFound(e)) { - return e; - } - throw e; - } - } - destroy() { - assertNotDestroyed(this); - this._destroyed = true; - const prevConsumer = setActiveConsumer(null); - try { - for (const service of this._ngOnDestroyHooks) { - service.ngOnDestroy(); - } - const onDestroyHooks = this._onDestroyHooks; - this._onDestroyHooks = []; - for (const hook of onDestroyHooks) { - hook(); - } - } finally { - this.records.clear(); - this._ngOnDestroyHooks.clear(); - this.injectorDefTypes.clear(); - setActiveConsumer(prevConsumer); - } - } - onDestroy(callback) { - assertNotDestroyed(this); - this._onDestroyHooks.push(callback); - return () => this.removeOnDestroy(callback); - } - runInContext(fn) { - assertNotDestroyed(this); - const previousInjector = setCurrentInjector(this); - const previousInjectImplementation = setInjectImplementation(void 0); - let prevInjectContext; - if (ngDevMode) { - prevInjectContext = setInjectorProfilerContext({ - injector: this, - token: null - }); - } - try { - return fn(); - } finally { - setCurrentInjector(previousInjector); - setInjectImplementation(previousInjectImplementation); - ngDevMode && setInjectorProfilerContext(prevInjectContext); - } - } - get(token, notFoundValue = THROW_IF_NOT_FOUND, options) { - assertNotDestroyed(this); - if (token.hasOwnProperty(NG_ENV_ID)) { - return token[NG_ENV_ID](this); - } - const flags = convertToBitFlags(options); - let prevInjectContext; - if (ngDevMode) { - prevInjectContext = setInjectorProfilerContext({ - injector: this, - token - }); - } - const previousInjector = setCurrentInjector(this); - const previousInjectImplementation = setInjectImplementation(void 0); - try { - if (!(flags & 4)) { - let record = this.records.get(token); - if (record === void 0) { - const def = couldBeInjectableType(token) && getInjectableDef(token); - if (def && this.injectableDefInScope(def)) { - if (ngDevMode) { - runInInjectorProfilerContext(this, token, () => { - emitProviderConfiguredEvent(token); - }); - } - record = makeRecord(injectableDefOrInjectorDefFactory(token), NOT_YET); - } else { - record = null; - } - this.records.set(token, record); - } - if (record != null) { - return this.hydrate(token, record, flags); - } - } - const nextInjector = !(flags & 2) ? this.parent : getNullInjector(); - notFoundValue = flags & 8 && notFoundValue === THROW_IF_NOT_FOUND ? null : notFoundValue; - return nextInjector.get(token, notFoundValue); - } catch (error) { - const errorCode = getRuntimeErrorCode(error); - if (errorCode === -200 || errorCode === -201) { - if (ngDevMode) { - prependTokenToDependencyPath(error, token); - if (previousInjector) { - throw error; - } else { - throw augmentRuntimeError(error, this.source); - } - } else { - throw new RuntimeError(errorCode, null); - } - } else { - throw error; - } - } finally { - setInjectImplementation(previousInjectImplementation); - setCurrentInjector(previousInjector); - ngDevMode && setInjectorProfilerContext(prevInjectContext); - } - } - resolveInjectorInitializers() { - const prevConsumer = setActiveConsumer(null); - const previousInjector = setCurrentInjector(this); - const previousInjectImplementation = setInjectImplementation(void 0); - let prevInjectContext; - if (ngDevMode) { - prevInjectContext = setInjectorProfilerContext({ - injector: this, - token: null - }); - } - try { - const initializers = this.get(ENVIRONMENT_INITIALIZER, EMPTY_ARRAY, { - self: true - }); - if (ngDevMode && !Array.isArray(initializers)) { - throw new RuntimeError(-209, `Unexpected type of the \`ENVIRONMENT_INITIALIZER\` token value (expected an array, but got ${typeof initializers}). Please check that the \`ENVIRONMENT_INITIALIZER\` token is configured as a \`multi: true\` provider.`); - } - for (const initializer of initializers) { - initializer(); - } - } finally { - setCurrentInjector(previousInjector); - setInjectImplementation(previousInjectImplementation); - ngDevMode && setInjectorProfilerContext(prevInjectContext); - setActiveConsumer(prevConsumer); - } - } - toString() { - if (ngDevMode) { - const tokens = []; - const records = this.records; - for (const token of records.keys()) { - tokens.push(stringify(token)); - } - return `R3Injector[${tokens.join(", ")}]`; - } - return "R3Injector[...]"; - } - processProvider(provider) { - provider = resolveForwardRef(provider); - let token = isTypeProvider(provider) ? provider : resolveForwardRef(provider && provider.provide); - const record = providerToRecord(provider); - if (ngDevMode) { - runInInjectorProfilerContext(this, token, () => { - if (isValueProvider(provider)) { - emitInjectorToCreateInstanceEvent(token); - emitInstanceCreatedByInjectorEvent(provider.useValue); - } - emitProviderConfiguredEvent(provider); - }); - } - if (!isTypeProvider(provider) && provider.multi === true) { - let multiRecord = this.records.get(token); - if (multiRecord) { - if (ngDevMode && multiRecord.multi === void 0) { - throwMixedMultiProviderError(); - } - } else { - multiRecord = makeRecord(void 0, NOT_YET, true); - multiRecord.factory = () => injectArgs(multiRecord.multi); - this.records.set(token, multiRecord); - } - token = provider; - multiRecord.multi.push(provider); - } else { - if (ngDevMode) { - const existing = this.records.get(token); - if (existing && existing.multi !== void 0) { - throwMixedMultiProviderError(); - } - } - } - this.records.set(token, record); - } - hydrate(token, record, flags) { - const prevConsumer = setActiveConsumer(null); - try { - if (record.value === CIRCULAR) { - throw cyclicDependencyError(ngDevMode ? stringify(token) : ""); - } else if (record.value === NOT_YET) { - record.value = CIRCULAR; - if (ngDevMode) { - runInInjectorProfilerContext(this, token, () => { - emitInjectorToCreateInstanceEvent(token); - record.value = record.factory(void 0, flags); - emitInstanceCreatedByInjectorEvent(record.value); - }); - } else { - record.value = record.factory(void 0, flags); - } - } - if (typeof record.value === "object" && record.value && hasOnDestroy(record.value)) { - this._ngOnDestroyHooks.add(record.value); - } - return record.value; - } finally { - setActiveConsumer(prevConsumer); - } - } - injectableDefInScope(def) { - if (!def.providedIn) { - return false; - } - const providedIn = resolveForwardRef(def.providedIn); - if (typeof providedIn === "string") { - return providedIn === "any" || this.scopes.has(providedIn); - } else { - return this.injectorDefTypes.has(providedIn); - } - } - removeOnDestroy(callback) { - const destroyCBIdx = this._onDestroyHooks.indexOf(callback); - if (destroyCBIdx !== -1) { - this._onDestroyHooks.splice(destroyCBIdx, 1); - } - } -}; -function injectableDefOrInjectorDefFactory(token) { - const injectableDef = getInjectableDef(token); - const factory = injectableDef !== null ? injectableDef.factory : getFactoryDef(token); - if (factory !== null) { - return factory; - } - if (token instanceof InjectionToken) { - throw new RuntimeError(-204, ngDevMode && `Token ${stringify(token)} is missing a \u0275prov definition.`); - } - if (token instanceof Function) { - return getUndecoratedInjectableFactory(token); - } - throw new RuntimeError(-204, ngDevMode && "unreachable"); -} -function getUndecoratedInjectableFactory(token) { - const paramLength = token.length; - if (paramLength > 0) { - throw new RuntimeError(-204, ngDevMode && `Can't resolve all parameters for ${stringify(token)}: (${newArray(paramLength, "?").join(", ")}).`); - } - const inheritedInjectableDef = getInheritedInjectableDef(token); - if (inheritedInjectableDef !== null) { - return () => inheritedInjectableDef.factory(token); - } else { - return () => new token(); - } -} -function providerToRecord(provider) { - if (isValueProvider(provider)) { - return makeRecord(void 0, provider.useValue); - } else { - const factory = providerToFactory(provider); - return makeRecord(factory, NOT_YET); - } -} -function providerToFactory(provider, ngModuleType, providers) { - let factory = void 0; - if (ngDevMode && isEnvironmentProviders(provider)) { - throwInvalidProviderError(void 0, providers, provider); - } - if (isTypeProvider(provider)) { - const unwrappedProvider = resolveForwardRef(provider); - return getFactoryDef(unwrappedProvider) || injectableDefOrInjectorDefFactory(unwrappedProvider); - } else { - if (isValueProvider(provider)) { - factory = () => resolveForwardRef(provider.useValue); - } else if (isFactoryProvider(provider)) { - factory = () => provider.useFactory(...injectArgs(provider.deps || [])); - } else if (isExistingProvider(provider)) { - factory = (_, flags) => \u0275\u0275inject(resolveForwardRef(provider.useExisting), flags !== void 0 && flags & 8 ? 8 : void 0); - } else { - const classRef = resolveForwardRef(provider && (provider.useClass || provider.provide)); - if (ngDevMode && !classRef) { - throwInvalidProviderError(ngModuleType, providers, provider); - } - if (hasDeps(provider)) { - factory = () => new classRef(...injectArgs(provider.deps)); - } else { - return getFactoryDef(classRef) || injectableDefOrInjectorDefFactory(classRef); - } - } - } - return factory; -} -function assertNotDestroyed(injector) { - if (injector.destroyed) { - throw new RuntimeError(-205, ngDevMode && "Injector has already been destroyed."); - } -} -function makeRecord(factory, value, multi = false) { - return { - factory, - value, - multi: multi ? [] : void 0 - }; -} -function hasDeps(value) { - return !!value.deps; -} -function hasOnDestroy(value) { - return value !== null && typeof value === "object" && typeof value.ngOnDestroy === "function"; -} -function couldBeInjectableType(value) { - return typeof value === "function" || typeof value === "object" && value.ngMetadataName === "InjectionToken"; -} -function forEachSingleProvider(providers, fn) { - for (const provider of providers) { - if (Array.isArray(provider)) { - forEachSingleProvider(provider, fn); - } else if (provider && isEnvironmentProviders(provider)) { - forEachSingleProvider(provider.\u0275providers, fn); - } else { - fn(provider); - } - } -} -function runInInjectionContext(injector, fn) { - let internalInjector; - if (injector instanceof R3Injector) { - assertNotDestroyed(injector); - internalInjector = injector; - } else { - internalInjector = new RetrievingInjector(injector); - } - let prevInjectorProfilerContext; - if (ngDevMode) { - prevInjectorProfilerContext = setInjectorProfilerContext({ - injector, - token: null - }); - } - const prevInjector = setCurrentInjector(internalInjector); - const previousInjectImplementation = setInjectImplementation(void 0); - try { - return fn(); - } finally { - setCurrentInjector(prevInjector); - ngDevMode && setInjectorProfilerContext(prevInjectorProfilerContext); - setInjectImplementation(previousInjectImplementation); - } -} -function isInInjectionContext() { - return getInjectImplementation() !== void 0 || getCurrentInjector() != null; -} -function assertInInjectionContext(debugFn) { - if (!isInInjectionContext()) { - throw new RuntimeError(-203, ngDevMode && debugFn.name + "() can only be used within an injection context such as a constructor, a factory function, a field initializer, or a function used with `runInInjectionContext`"); - } -} -var HOST = 0; -var TVIEW = 1; -var FLAGS = 2; -var PARENT = 3; -var NEXT = 4; -var T_HOST = 5; -var HYDRATION = 6; -var CLEANUP = 7; -var CONTEXT = 8; -var INJECTOR = 9; -var ENVIRONMENT = 10; -var RENDERER = 11; -var CHILD_HEAD = 12; -var CHILD_TAIL = 13; -var DECLARATION_VIEW = 14; -var DECLARATION_COMPONENT_VIEW = 15; -var DECLARATION_LCONTAINER = 16; -var PREORDER_HOOK_FLAGS = 17; -var QUERIES = 18; -var ID = 19; -var EMBEDDED_VIEW_INJECTOR = 20; -var ON_DESTROY_HOOKS = 21; -var EFFECTS_TO_SCHEDULE = 22; -var EFFECTS = 23; -var REACTIVE_TEMPLATE_CONSUMER = 24; -var AFTER_RENDER_SEQUENCES_TO_ADD = 25; -var ANIMATIONS = 26; -var HEADER_OFFSET = 27; -var TYPE = 1; -var DEHYDRATED_VIEWS = 6; -var NATIVE = 7; -var VIEW_REFS = 8; -var MOVED_VIEWS = 9; -var CONTAINER_HEADER_OFFSET = 10; -function isLView(value) { - return Array.isArray(value) && typeof value[TYPE] === "object"; -} -function isLContainer(value) { - return Array.isArray(value) && value[TYPE] === true; -} -function isContentQueryHost(tNode) { - return (tNode.flags & 4) !== 0; -} -function isComponentHost(tNode) { - return tNode.componentOffset > -1; -} -function isDirectiveHost(tNode) { - return (tNode.flags & 1) === 1; -} -function isComponentDef(def) { - return !!def.template; -} -function isRootView(target) { - return (target[FLAGS] & 512) !== 0; -} -function isDestroyed(lView) { - return (lView[FLAGS] & 256) === 256; -} -function assertTNodeForLView(tNode, lView) { - assertTNodeForTView(tNode, lView[TVIEW]); -} -function assertTNodeCreationIndex(lView, index) { - const adjustedIndex = index + HEADER_OFFSET; - assertIndexInRange(lView, adjustedIndex); - assertLessThan(adjustedIndex, lView[TVIEW].bindingStartIndex, "TNodes should be created before any bindings"); -} -function assertTNodeForTView(tNode, tView) { - assertTNode(tNode); - const tData = tView.data; - for (let i = HEADER_OFFSET; i < tData.length; i++) { - if (tData[i] === tNode) { - return; - } - } - throwError2("This TNode does not belong to this TView."); -} -function assertTNode(tNode) { - assertDefined(tNode, "TNode must be defined"); - if (!(tNode && typeof tNode === "object" && tNode.hasOwnProperty("directiveStylingLast"))) { - throwError2("Not of type TNode, got: " + tNode); - } -} -function assertTIcu(tIcu) { - assertDefined(tIcu, "Expected TIcu to be defined"); - if (!(typeof tIcu.currentCaseLViewIndex === "number")) { - throwError2("Object is not of TIcu type."); - } -} -function assertComponentType(actual, msg = "Type passed in is not ComponentType, it does not have '\u0275cmp' property.") { - if (!getComponentDef(actual)) { - throwError2(msg); - } -} -function assertNgModuleType(actual, msg = "Type passed in is not NgModuleType, it does not have '\u0275mod' property.") { - if (!getNgModuleDef(actual)) { - throwError2(msg); - } -} -function assertHasParent(tNode) { - assertDefined(tNode, "currentTNode should exist!"); - assertDefined(tNode.parent, "currentTNode should have a parent"); -} -function assertLContainer(value) { - assertDefined(value, "LContainer must be defined"); - assertEqual(isLContainer(value), true, "Expecting LContainer"); -} -function assertLViewOrUndefined(value) { - value && assertEqual(isLView(value), true, "Expecting LView or undefined or null"); -} -function assertLView(value) { - assertDefined(value, "LView must be defined"); - assertEqual(isLView(value), true, "Expecting LView"); -} -function assertFirstCreatePass(tView, errMessage) { - assertEqual(tView.firstCreatePass, true, errMessage || "Should only be called in first create pass."); -} -function assertFirstUpdatePass(tView, errMessage) { - assertEqual(tView.firstUpdatePass, true, "Should only be called in first update pass."); -} -function assertDirectiveDef(obj) { - if (obj.type === void 0 || obj.selectors == void 0 || obj.inputs === void 0) { - throwError2(`Expected a DirectiveDef/ComponentDef and this object does not seem to have the expected shape.`); - } -} -function assertIndexInDeclRange(tView, index) { - assertBetween(HEADER_OFFSET, tView.bindingStartIndex, index); -} -function assertIndexInExpandoRange(lView, index) { - const tView = lView[1]; - assertBetween(tView.expandoStartIndex, lView.length, index); -} -function assertBetween(lower, upper, index) { - if (!(lower <= index && index < upper)) { - throwError2(`Index out of range (expecting ${lower} <= ${index} < ${upper})`); - } -} -function assertProjectionSlots(lView, errMessage) { - assertDefined(lView[DECLARATION_COMPONENT_VIEW], "Component views should exist."); - assertDefined(lView[DECLARATION_COMPONENT_VIEW][T_HOST].projection, "Components with projection nodes () must have projection slots defined."); -} -function assertParentView(lView, errMessage) { - assertDefined(lView, "Component views should always have a parent view (component's host view)"); -} -function assertNodeInjector(lView, injectorIndex) { - assertIndexInExpandoRange(lView, injectorIndex); - assertIndexInExpandoRange(lView, injectorIndex + 8); - assertNumber(lView[injectorIndex + 0], "injectorIndex should point to a bloom filter"); - assertNumber(lView[injectorIndex + 1], "injectorIndex should point to a bloom filter"); - assertNumber(lView[injectorIndex + 2], "injectorIndex should point to a bloom filter"); - assertNumber(lView[injectorIndex + 3], "injectorIndex should point to a bloom filter"); - assertNumber(lView[injectorIndex + 4], "injectorIndex should point to a bloom filter"); - assertNumber(lView[injectorIndex + 5], "injectorIndex should point to a bloom filter"); - assertNumber(lView[injectorIndex + 6], "injectorIndex should point to a bloom filter"); - assertNumber(lView[injectorIndex + 7], "injectorIndex should point to a bloom filter"); - assertNumber(lView[injectorIndex + 8], "injectorIndex should point to parent injector"); -} -var SVG_NAMESPACE = "svg"; -var MATH_ML_NAMESPACE = "math"; -function unwrapRNode(value) { - while (Array.isArray(value)) { - value = value[HOST]; - } - return value; -} -function unwrapLView(value) { - while (Array.isArray(value)) { - if (typeof value[TYPE] === "object") return value; - value = value[HOST]; - } - return null; -} -function getNativeByIndex(index, lView) { - ngDevMode && assertIndexInRange(lView, index); - ngDevMode && assertGreaterThanOrEqual(index, HEADER_OFFSET, "Expected to be past HEADER_OFFSET"); - return unwrapRNode(lView[index]); -} -function getNativeByTNode(tNode, lView) { - ngDevMode && assertTNodeForLView(tNode, lView); - ngDevMode && assertIndexInRange(lView, tNode.index); - const node = unwrapRNode(lView[tNode.index]); - return node; -} -function getTNode(tView, index) { - ngDevMode && assertGreaterThan(index, -1, "wrong index for TNode"); - ngDevMode && assertLessThan(index, tView.data.length, "wrong index for TNode"); - const tNode = tView.data[index]; - ngDevMode && tNode !== null && assertTNode(tNode); - return tNode; -} -function load(view, index) { - ngDevMode && assertIndexInRange(view, index); - return view[index]; -} -function store(tView, lView, index, value) { - if (index >= tView.data.length) { - tView.data[index] = null; - tView.blueprint[index] = null; - } - lView[index] = value; -} -function getComponentLViewByIndex(nodeIndex, hostView) { - ngDevMode && assertIndexInRange(hostView, nodeIndex); - const slotValue = hostView[nodeIndex]; - const lView = isLView(slotValue) ? slotValue : slotValue[HOST]; - return lView; -} -function isCreationMode(view) { - return (view[FLAGS] & 4) === 4; -} -function viewAttachedToChangeDetector(view) { - return (view[FLAGS] & 128) === 128; -} -function viewAttachedToContainer(view) { - return isLContainer(view[PARENT]); -} -function getConstant(consts, index) { - if (index === null || index === void 0) return null; - ngDevMode && assertIndexInRange(consts, index); - return consts[index]; -} -function resetPreOrderHookFlags(lView) { - lView[PREORDER_HOOK_FLAGS] = 0; -} -function markViewForRefresh(lView) { - if (lView[FLAGS] & 1024) { - return; - } - lView[FLAGS] |= 1024; - if (viewAttachedToChangeDetector(lView)) { - markAncestorsForTraversal(lView); - } -} -function walkUpViews(nestingLevel, currentView) { - while (nestingLevel > 0) { - ngDevMode && assertDefined(currentView[DECLARATION_VIEW], "Declaration view should be defined if nesting level is greater than 0."); - currentView = currentView[DECLARATION_VIEW]; - nestingLevel--; - } - return currentView; -} -function requiresRefreshOrTraversal(lView) { - return !!(lView[FLAGS] & (1024 | 8192) || lView[REACTIVE_TEMPLATE_CONSUMER]?.dirty); -} -function updateAncestorTraversalFlagsOnAttach(lView) { - lView[ENVIRONMENT].changeDetectionScheduler?.notify(8); - if (lView[FLAGS] & 64) { - lView[FLAGS] |= 1024; - } - if (requiresRefreshOrTraversal(lView)) { - markAncestorsForTraversal(lView); - } -} -function markAncestorsForTraversal(lView) { - lView[ENVIRONMENT].changeDetectionScheduler?.notify(0); - let parent = getLViewParent(lView); - while (parent !== null) { - if (parent[FLAGS] & 8192) { - break; - } - parent[FLAGS] |= 8192; - if (!viewAttachedToChangeDetector(parent)) { - break; - } - parent = getLViewParent(parent); - } -} -function storeLViewOnDestroy(lView, onDestroyCallback) { - if (isDestroyed(lView)) { - throw new RuntimeError(911, ngDevMode && "View has already been destroyed."); - } - if (lView[ON_DESTROY_HOOKS] === null) { - lView[ON_DESTROY_HOOKS] = []; - } - lView[ON_DESTROY_HOOKS].push(onDestroyCallback); -} -function removeLViewOnDestroy(lView, onDestroyCallback) { - if (lView[ON_DESTROY_HOOKS] === null) return; - const destroyCBIdx = lView[ON_DESTROY_HOOKS].indexOf(onDestroyCallback); - if (destroyCBIdx !== -1) { - lView[ON_DESTROY_HOOKS].splice(destroyCBIdx, 1); - } -} -function getLViewParent(lView) { - ngDevMode && assertLView(lView); - const parent = lView[PARENT]; - return isLContainer(parent) ? parent[PARENT] : parent; -} -function getOrCreateLViewCleanup(view) { - return view[CLEANUP] ??= []; -} -function getOrCreateTViewCleanup(tView) { - return tView.cleanup ??= []; -} -function storeCleanupWithContext(tView, lView, context2, cleanupFn) { - const lCleanup = getOrCreateLViewCleanup(lView); - ngDevMode && assertDefined(context2, "Cleanup context is mandatory when registering framework-level destroy hooks"); - lCleanup.push(context2); - if (tView.firstCreatePass) { - getOrCreateTViewCleanup(tView).push(cleanupFn, lCleanup.length - 1); - } else { - if (ngDevMode) { - Object.freeze(getOrCreateTViewCleanup(tView)); - } - } -} -var instructionState = { - lFrame: createLFrame(null), - bindingsEnabled: true, - skipHydrationRootTNode: null -}; -var CheckNoChangesMode; -(function(CheckNoChangesMode2) { - CheckNoChangesMode2[CheckNoChangesMode2["Off"] = 0] = "Off"; - CheckNoChangesMode2[CheckNoChangesMode2["Exhaustive"] = 1] = "Exhaustive"; - CheckNoChangesMode2[CheckNoChangesMode2["OnlyDirtyViews"] = 2] = "OnlyDirtyViews"; -})(CheckNoChangesMode || (CheckNoChangesMode = {})); -var _checkNoChangesMode = 0; -var _isRefreshingViews = false; -function getElementDepthCount() { - return instructionState.lFrame.elementDepthCount; -} -function increaseElementDepthCount() { - instructionState.lFrame.elementDepthCount++; -} -function decreaseElementDepthCount() { - instructionState.lFrame.elementDepthCount--; -} -function getBindingsEnabled() { - return instructionState.bindingsEnabled; -} -function isInSkipHydrationBlock() { - return instructionState.skipHydrationRootTNode !== null; -} -function isSkipHydrationRootTNode(tNode) { - return instructionState.skipHydrationRootTNode === tNode; -} -function \u0275\u0275enableBindings() { - instructionState.bindingsEnabled = true; -} -function \u0275\u0275disableBindings() { - instructionState.bindingsEnabled = false; -} -function leaveSkipHydrationBlock() { - instructionState.skipHydrationRootTNode = null; -} -function getLView() { - return instructionState.lFrame.lView; -} -function getTView() { - return instructionState.lFrame.tView; -} -function \u0275\u0275restoreView(viewToRestore) { - instructionState.lFrame.contextLView = viewToRestore; - return viewToRestore[CONTEXT]; -} -function \u0275\u0275resetView(value) { - instructionState.lFrame.contextLView = null; - return value; -} -function getCurrentTNode() { - let currentTNode = getCurrentTNodePlaceholderOk(); - while (currentTNode !== null && currentTNode.type === 64) { - currentTNode = currentTNode.parent; - } - return currentTNode; -} -function getCurrentTNodePlaceholderOk() { - return instructionState.lFrame.currentTNode; -} -function getCurrentParentTNode() { - const lFrame = instructionState.lFrame; - const currentTNode = lFrame.currentTNode; - return lFrame.isParent ? currentTNode : currentTNode.parent; -} -function setCurrentTNode(tNode, isParent) { - ngDevMode && tNode && assertTNodeForTView(tNode, instructionState.lFrame.tView); - const lFrame = instructionState.lFrame; - lFrame.currentTNode = tNode; - lFrame.isParent = isParent; -} -function isCurrentTNodeParent() { - return instructionState.lFrame.isParent; -} -function setCurrentTNodeAsNotParent() { - instructionState.lFrame.isParent = false; -} -function getContextLView() { - const contextLView = instructionState.lFrame.contextLView; - ngDevMode && assertDefined(contextLView, "contextLView must be defined."); - return contextLView; -} -function isInCheckNoChangesMode() { - !ngDevMode && throwError2("Must never be called in production mode"); - return _checkNoChangesMode !== CheckNoChangesMode.Off; -} -function isExhaustiveCheckNoChanges() { - !ngDevMode && throwError2("Must never be called in production mode"); - return _checkNoChangesMode === CheckNoChangesMode.Exhaustive; -} -function setIsInCheckNoChangesMode(mode) { - !ngDevMode && throwError2("Must never be called in production mode"); - _checkNoChangesMode = mode; -} -function isRefreshingViews() { - return _isRefreshingViews; -} -function setIsRefreshingViews(mode) { - const prev = _isRefreshingViews; - _isRefreshingViews = mode; - return prev; -} -function getBindingRoot() { - const lFrame = instructionState.lFrame; - let index = lFrame.bindingRootIndex; - if (index === -1) { - index = lFrame.bindingRootIndex = lFrame.tView.bindingStartIndex; - } - return index; -} -function getBindingIndex() { - return instructionState.lFrame.bindingIndex; -} -function setBindingIndex(value) { - return instructionState.lFrame.bindingIndex = value; -} -function nextBindingIndex() { - return instructionState.lFrame.bindingIndex++; -} -function incrementBindingIndex(count) { - const lFrame = instructionState.lFrame; - const index = lFrame.bindingIndex; - lFrame.bindingIndex = lFrame.bindingIndex + count; - return index; -} -function isInI18nBlock() { - return instructionState.lFrame.inI18n; -} -function setInI18nBlock(isInI18nBlock2) { - instructionState.lFrame.inI18n = isInI18nBlock2; -} -function setBindingRootForHostBindings(bindingRootIndex, currentDirectiveIndex) { - const lFrame = instructionState.lFrame; - lFrame.bindingIndex = lFrame.bindingRootIndex = bindingRootIndex; - setCurrentDirectiveIndex(currentDirectiveIndex); -} -function getCurrentDirectiveIndex() { - return instructionState.lFrame.currentDirectiveIndex; -} -function setCurrentDirectiveIndex(currentDirectiveIndex) { - instructionState.lFrame.currentDirectiveIndex = currentDirectiveIndex; -} -function getCurrentDirectiveDef(tData) { - const currentDirectiveIndex = instructionState.lFrame.currentDirectiveIndex; - return currentDirectiveIndex === -1 ? null : tData[currentDirectiveIndex]; -} -function getCurrentQueryIndex() { - return instructionState.lFrame.currentQueryIndex; -} -function setCurrentQueryIndex(value) { - instructionState.lFrame.currentQueryIndex = value; -} -function getDeclarationTNode(lView) { - const tView = lView[TVIEW]; - if (tView.type === 2) { - ngDevMode && assertDefined(tView.declTNode, "Embedded TNodes should have declaration parents."); - return tView.declTNode; - } - if (tView.type === 1) { - return lView[T_HOST]; - } - return null; -} -function enterDI(lView, tNode, flags) { - ngDevMode && assertLViewOrUndefined(lView); - if (flags & 4) { - ngDevMode && assertTNodeForTView(tNode, lView[TVIEW]); - let parentTNode = tNode; - let parentLView = lView; - while (true) { - ngDevMode && assertDefined(parentTNode, "Parent TNode should be defined"); - parentTNode = parentTNode.parent; - if (parentTNode === null && !(flags & 1)) { - parentTNode = getDeclarationTNode(parentLView); - if (parentTNode === null) break; - ngDevMode && assertDefined(parentLView, "Parent LView should be defined"); - parentLView = parentLView[DECLARATION_VIEW]; - if (parentTNode.type & (2 | 8)) { - break; - } - } else { - break; - } - } - if (parentTNode === null) { - return false; - } else { - tNode = parentTNode; - lView = parentLView; - } - } - ngDevMode && assertTNodeForLView(tNode, lView); - const lFrame = instructionState.lFrame = allocLFrame(); - lFrame.currentTNode = tNode; - lFrame.lView = lView; - return true; -} -function enterView(newView) { - ngDevMode && assertNotEqual(newView[0], newView[1], "????"); - ngDevMode && assertLViewOrUndefined(newView); - const newLFrame = allocLFrame(); - if (ngDevMode) { - assertEqual(newLFrame.isParent, true, "Expected clean LFrame"); - assertEqual(newLFrame.lView, null, "Expected clean LFrame"); - assertEqual(newLFrame.tView, null, "Expected clean LFrame"); - assertEqual(newLFrame.selectedIndex, -1, "Expected clean LFrame"); - assertEqual(newLFrame.elementDepthCount, 0, "Expected clean LFrame"); - assertEqual(newLFrame.currentDirectiveIndex, -1, "Expected clean LFrame"); - assertEqual(newLFrame.currentNamespace, null, "Expected clean LFrame"); - assertEqual(newLFrame.bindingRootIndex, -1, "Expected clean LFrame"); - assertEqual(newLFrame.currentQueryIndex, 0, "Expected clean LFrame"); - } - const tView = newView[TVIEW]; - instructionState.lFrame = newLFrame; - ngDevMode && tView.firstChild && assertTNodeForTView(tView.firstChild, tView); - newLFrame.currentTNode = tView.firstChild; - newLFrame.lView = newView; - newLFrame.tView = tView; - newLFrame.contextLView = newView; - newLFrame.bindingIndex = tView.bindingStartIndex; - newLFrame.inI18n = false; -} -function allocLFrame() { - const currentLFrame = instructionState.lFrame; - const childLFrame = currentLFrame === null ? null : currentLFrame.child; - const newLFrame = childLFrame === null ? createLFrame(currentLFrame) : childLFrame; - return newLFrame; -} -function createLFrame(parent) { - const lFrame = { - currentTNode: null, - isParent: true, - lView: null, - tView: null, - selectedIndex: -1, - contextLView: null, - elementDepthCount: 0, - currentNamespace: null, - currentDirectiveIndex: -1, - bindingRootIndex: -1, - bindingIndex: -1, - currentQueryIndex: 0, - parent, - child: null, - inI18n: false - }; - parent !== null && (parent.child = lFrame); - return lFrame; -} -function leaveViewLight() { - const oldLFrame = instructionState.lFrame; - instructionState.lFrame = oldLFrame.parent; - oldLFrame.currentTNode = null; - oldLFrame.lView = null; - return oldLFrame; -} -var leaveDI = leaveViewLight; -function leaveView() { - const oldLFrame = leaveViewLight(); - oldLFrame.isParent = true; - oldLFrame.tView = null; - oldLFrame.selectedIndex = -1; - oldLFrame.contextLView = null; - oldLFrame.elementDepthCount = 0; - oldLFrame.currentDirectiveIndex = -1; - oldLFrame.currentNamespace = null; - oldLFrame.bindingRootIndex = -1; - oldLFrame.bindingIndex = -1; - oldLFrame.currentQueryIndex = 0; -} -function nextContextImpl(level) { - const contextLView = instructionState.lFrame.contextLView = walkUpViews(level, instructionState.lFrame.contextLView); - return contextLView[CONTEXT]; -} -function getSelectedIndex() { - return instructionState.lFrame.selectedIndex; -} -function setSelectedIndex(index) { - ngDevMode && index !== -1 && assertGreaterThanOrEqual(index, HEADER_OFFSET, "Index must be past HEADER_OFFSET (or -1)."); - ngDevMode && assertLessThan(index, instructionState.lFrame.lView.length, "Can't set index passed end of LView"); - instructionState.lFrame.selectedIndex = index; -} -function getSelectedTNode() { - const lFrame = instructionState.lFrame; - return getTNode(lFrame.tView, lFrame.selectedIndex); -} -function \u0275\u0275namespaceSVG() { - instructionState.lFrame.currentNamespace = SVG_NAMESPACE; -} -function \u0275\u0275namespaceMathML() { - instructionState.lFrame.currentNamespace = MATH_ML_NAMESPACE; -} -function \u0275\u0275namespaceHTML() { - namespaceHTMLInternal(); -} -function namespaceHTMLInternal() { - instructionState.lFrame.currentNamespace = null; -} -function getNamespace() { - return instructionState.lFrame.currentNamespace; -} -var _wasLastNodeCreated = true; -function wasLastNodeCreated() { - return _wasLastNodeCreated; -} -function lastNodeWasCreated(flag) { - _wasLastNodeCreated = flag; -} -function createInjector(defType, parent = null, additionalProviders = null, name) { - const injector = createInjectorWithoutInjectorInstances(defType, parent, additionalProviders, name); - injector.resolveInjectorInitializers(); - return injector; -} -function createInjectorWithoutInjectorInstances(defType, parent = null, additionalProviders = null, name, scopes = /* @__PURE__ */ new Set()) { - const providers = [additionalProviders || EMPTY_ARRAY, importProvidersFrom(defType)]; - let source = void 0; - if (ngDevMode) { - source = name || (typeof defType === "object" ? void 0 : stringify(defType)); - } - return new R3Injector(providers, parent || getNullInjector(), source || null, scopes); -} -var Injector = class _Injector { - static THROW_IF_NOT_FOUND = THROW_IF_NOT_FOUND; - static NULL = new NullInjector(); - static create(options, parent) { - if (Array.isArray(options)) { - return createInjector({ - name: "" - }, parent, options, ""); - } else { - const name = options.name ?? ""; - return createInjector({ - name - }, options.parent, options.providers, name); - } - } - static \u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({ - token: _Injector, - providedIn: "any", - factory: () => \u0275\u0275inject(INJECTOR$1) - }); - static __NG_ELEMENT_ID__ = -1; -}; -var DOCUMENT = new InjectionToken(typeof ngDevMode !== "undefined" && ngDevMode ? "DocumentToken" : ""); -var DestroyRef = class { - static __NG_ELEMENT_ID__ = injectDestroyRef; - static __NG_ENV_ID__ = (injector) => injector; -}; -var NodeInjectorDestroyRef = class extends DestroyRef { - _lView; - constructor(_lView) { - super(); - this._lView = _lView; - } - get destroyed() { - return isDestroyed(this._lView); - } - onDestroy(callback) { - const lView = this._lView; - storeLViewOnDestroy(lView, callback); - return () => removeLViewOnDestroy(lView, callback); - } -}; -function injectDestroyRef() { - return new NodeInjectorDestroyRef(getLView()); -} -var SCHEDULE_IN_ROOT_ZONE_DEFAULT = false; -var DEBUG_TASK_TRACKER = new InjectionToken(typeof ngDevMode !== "undefined" && ngDevMode ? "DEBUG_TASK_TRACKER" : ""); -var PendingTasksInternal = class _PendingTasksInternal { - taskId = 0; - pendingTasks = /* @__PURE__ */ new Set(); - destroyed = false; - pendingTask = new BehaviorSubject(false); - debugTaskTracker = inject2(DEBUG_TASK_TRACKER, { - optional: true - }); - get hasPendingTasks() { - return this.destroyed ? false : this.pendingTask.value; - } - get hasPendingTasksObservable() { - if (this.destroyed) { - return new Observable((subscriber) => { - subscriber.next(false); - subscriber.complete(); - }); - } - return this.pendingTask; - } - add() { - if (!this.hasPendingTasks && !this.destroyed) { - this.pendingTask.next(true); - } - const taskId = this.taskId++; - this.pendingTasks.add(taskId); - this.debugTaskTracker?.add(taskId); - return taskId; - } - has(taskId) { - return this.pendingTasks.has(taskId); - } - remove(taskId) { - this.pendingTasks.delete(taskId); - this.debugTaskTracker?.remove(taskId); - if (this.pendingTasks.size === 0 && this.hasPendingTasks) { - this.pendingTask.next(false); - } - } - ngOnDestroy() { - this.pendingTasks.clear(); - if (this.hasPendingTasks) { - this.pendingTask.next(false); - } - this.destroyed = true; - this.pendingTask.unsubscribe(); - } - static \u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({ - token: _PendingTasksInternal, - providedIn: "root", - factory: () => new _PendingTasksInternal() - }); -}; -var EventEmitter_ = class extends Subject { - __isAsync; - destroyRef = void 0; - pendingTasks = void 0; - constructor(isAsync = false) { - super(); - this.__isAsync = isAsync; - if (isInInjectionContext()) { - this.destroyRef = inject2(DestroyRef, { - optional: true - }) ?? void 0; - this.pendingTasks = inject2(PendingTasksInternal, { - optional: true - }) ?? void 0; - } - } - emit(value) { - const prevConsumer = setActiveConsumer(null); - try { - super.next(value); - } finally { - setActiveConsumer(prevConsumer); - } - } - subscribe(observerOrNext, error, complete) { - let nextFn = observerOrNext; - let errorFn = error || (() => null); - let completeFn = complete; - if (observerOrNext && typeof observerOrNext === "object") { - const observer = observerOrNext; - nextFn = observer.next?.bind(observer); - errorFn = observer.error?.bind(observer); - completeFn = observer.complete?.bind(observer); - } - if (this.__isAsync) { - errorFn = this.wrapInTimeout(errorFn); - if (nextFn) { - nextFn = this.wrapInTimeout(nextFn); - } - if (completeFn) { - completeFn = this.wrapInTimeout(completeFn); - } - } - const sink = super.subscribe({ - next: nextFn, - error: errorFn, - complete: completeFn - }); - if (observerOrNext instanceof Subscription) { - observerOrNext.add(sink); - } - return sink; - } - wrapInTimeout(fn) { - return (value) => { - const taskId = this.pendingTasks?.add(); - setTimeout(() => { - try { - fn(value); - } finally { - if (taskId !== void 0) { - this.pendingTasks?.remove(taskId); - } - } - }); - }; - } -}; -var EventEmitter = EventEmitter_; -function noop2(...args) { -} -function scheduleCallbackWithRafRace(callback) { - let timeoutId; - let animationFrameId; - function cleanup() { - callback = noop2; - try { - if (animationFrameId !== void 0 && typeof cancelAnimationFrame === "function") { - cancelAnimationFrame(animationFrameId); - } - if (timeoutId !== void 0) { - clearTimeout(timeoutId); - } - } catch { - } - } - timeoutId = setTimeout(() => { - callback(); - cleanup(); - }); - if (typeof requestAnimationFrame === "function") { - animationFrameId = requestAnimationFrame(() => { - callback(); - cleanup(); - }); - } - return () => cleanup(); -} -function scheduleCallbackWithMicrotask(callback) { - queueMicrotask(() => callback()); - return () => { - callback = noop2; - }; -} -var AsyncStackTaggingZoneSpec = class { - createTask; - constructor(namePrefix, consoleAsyncStackTaggingImpl = console) { - this.name = "asyncStackTagging for " + namePrefix; - this.createTask = consoleAsyncStackTaggingImpl?.createTask ?? (() => null); - } - name; - onScheduleTask(delegate, _current, target, task) { - task.consoleTask = this.createTask(`Zone - ${task.source || task.type}`); - return delegate.scheduleTask(target, task); - } - onInvokeTask(delegate, _currentZone, targetZone, task, applyThis, applyArgs) { - let ret; - if (task.consoleTask) { - ret = task.consoleTask.run(() => delegate.invokeTask(targetZone, task, applyThis, applyArgs)); - } else { - ret = delegate.invokeTask(targetZone, task, applyThis, applyArgs); - } - return ret; - } -}; -var isAngularZoneProperty = "isAngularZone"; -var angularZoneInstanceIdProperty = isAngularZoneProperty + "_ID"; -var ngZoneInstanceId = 0; -var NgZone = class _NgZone { - hasPendingMacrotasks = false; - hasPendingMicrotasks = false; - isStable = true; - onUnstable = new EventEmitter(false); - onMicrotaskEmpty = new EventEmitter(false); - onStable = new EventEmitter(false); - onError = new EventEmitter(false); - constructor(options) { - const { - enableLongStackTrace = false, - shouldCoalesceEventChangeDetection = false, - shouldCoalesceRunChangeDetection = false, - scheduleInRootZone = SCHEDULE_IN_ROOT_ZONE_DEFAULT - } = options; - if (typeof Zone == "undefined") { - throw new RuntimeError(908, ngDevMode && `In this configuration Angular requires Zone.js`); - } - Zone.assertZonePatched(); - const self = this; - self._nesting = 0; - self._outer = self._inner = Zone.current; - if (ngDevMode) { - self._inner = self._inner.fork(new AsyncStackTaggingZoneSpec("Angular")); - } - if (Zone["TaskTrackingZoneSpec"]) { - self._inner = self._inner.fork(new Zone["TaskTrackingZoneSpec"]()); - } - if (enableLongStackTrace && Zone["longStackTraceZoneSpec"]) { - self._inner = self._inner.fork(Zone["longStackTraceZoneSpec"]); - } - self.shouldCoalesceEventChangeDetection = !shouldCoalesceRunChangeDetection && shouldCoalesceEventChangeDetection; - self.shouldCoalesceRunChangeDetection = shouldCoalesceRunChangeDetection; - self.callbackScheduled = false; - self.scheduleInRootZone = scheduleInRootZone; - forkInnerZoneWithAngularBehavior(self); - } - static isInAngularZone() { - return typeof Zone !== "undefined" && Zone.current.get(isAngularZoneProperty) === true; - } - static assertInAngularZone() { - if (!_NgZone.isInAngularZone()) { - throw new RuntimeError(909, ngDevMode && "Expected to be in Angular Zone, but it is not!"); - } - } - static assertNotInAngularZone() { - if (_NgZone.isInAngularZone()) { - throw new RuntimeError(909, ngDevMode && "Expected to not be in Angular Zone, but it is!"); - } - } - run(fn, applyThis, applyArgs) { - return this._inner.run(fn, applyThis, applyArgs); - } - runTask(fn, applyThis, applyArgs, name) { - const zone = this._inner; - const task = zone.scheduleEventTask("NgZoneEvent: " + name, fn, EMPTY_PAYLOAD, noop2, noop2); - try { - return zone.runTask(task, applyThis, applyArgs); - } finally { - zone.cancelTask(task); - } - } - runGuarded(fn, applyThis, applyArgs) { - return this._inner.runGuarded(fn, applyThis, applyArgs); - } - runOutsideAngular(fn) { - return this._outer.run(fn); - } -}; -var EMPTY_PAYLOAD = {}; -function checkStable(zone) { - if (zone._nesting == 0 && !zone.hasPendingMicrotasks && !zone.isStable) { - try { - zone._nesting++; - zone.onMicrotaskEmpty.emit(null); - } finally { - zone._nesting--; - if (!zone.hasPendingMicrotasks) { - try { - zone.runOutsideAngular(() => zone.onStable.emit(null)); - } finally { - zone.isStable = true; - } - } - } - } -} -function delayChangeDetectionForEvents(zone) { - if (zone.isCheckStableRunning || zone.callbackScheduled) { - return; - } - zone.callbackScheduled = true; - function scheduleCheckStable() { - scheduleCallbackWithRafRace(() => { - zone.callbackScheduled = false; - updateMicroTaskStatus(zone); - zone.isCheckStableRunning = true; - checkStable(zone); - zone.isCheckStableRunning = false; - }); - } - if (zone.scheduleInRootZone) { - Zone.root.run(() => { - scheduleCheckStable(); - }); - } else { - zone._outer.run(() => { - scheduleCheckStable(); - }); - } - updateMicroTaskStatus(zone); -} -function forkInnerZoneWithAngularBehavior(zone) { - const delayChangeDetectionForEventsDelegate = () => { - delayChangeDetectionForEvents(zone); - }; - const instanceId = ngZoneInstanceId++; - zone._inner = zone._inner.fork({ - name: "angular", - properties: { - [isAngularZoneProperty]: true, - [angularZoneInstanceIdProperty]: instanceId, - [angularZoneInstanceIdProperty + instanceId]: true - }, - onInvokeTask: (delegate, current, target, task, applyThis, applyArgs) => { - if (shouldBeIgnoredByZone(applyArgs)) { - return delegate.invokeTask(target, task, applyThis, applyArgs); - } - try { - onEnter(zone); - return delegate.invokeTask(target, task, applyThis, applyArgs); - } finally { - if (zone.shouldCoalesceEventChangeDetection && task.type === "eventTask" || zone.shouldCoalesceRunChangeDetection) { - delayChangeDetectionForEventsDelegate(); - } - onLeave(zone); - } - }, - onInvoke: (delegate, current, target, callback, applyThis, applyArgs, source) => { - try { - onEnter(zone); - return delegate.invoke(target, callback, applyThis, applyArgs, source); - } finally { - if (zone.shouldCoalesceRunChangeDetection && !zone.callbackScheduled && !isSchedulerTick(applyArgs)) { - delayChangeDetectionForEventsDelegate(); - } - onLeave(zone); - } - }, - onHasTask: (delegate, current, target, hasTaskState) => { - delegate.hasTask(target, hasTaskState); - if (current === target) { - if (hasTaskState.change == "microTask") { - zone._hasPendingMicrotasks = hasTaskState.microTask; - updateMicroTaskStatus(zone); - checkStable(zone); - } else if (hasTaskState.change == "macroTask") { - zone.hasPendingMacrotasks = hasTaskState.macroTask; - } - } - }, - onHandleError: (delegate, current, target, error) => { - delegate.handleError(target, error); - zone.runOutsideAngular(() => zone.onError.emit(error)); - return false; - } - }); -} -function updateMicroTaskStatus(zone) { - if (zone._hasPendingMicrotasks || (zone.shouldCoalesceEventChangeDetection || zone.shouldCoalesceRunChangeDetection) && zone.callbackScheduled === true) { - zone.hasPendingMicrotasks = true; - } else { - zone.hasPendingMicrotasks = false; - } -} -function onEnter(zone) { - zone._nesting++; - if (zone.isStable) { - zone.isStable = false; - zone.onUnstable.emit(null); - } -} -function onLeave(zone) { - zone._nesting--; - checkStable(zone); -} -var NoopNgZone = class { - hasPendingMicrotasks = false; - hasPendingMacrotasks = false; - isStable = true; - onUnstable = new EventEmitter(); - onMicrotaskEmpty = new EventEmitter(); - onStable = new EventEmitter(); - onError = new EventEmitter(); - run(fn, applyThis, applyArgs) { - return fn.apply(applyThis, applyArgs); - } - runGuarded(fn, applyThis, applyArgs) { - return fn.apply(applyThis, applyArgs); - } - runOutsideAngular(fn) { - return fn(); - } - runTask(fn, applyThis, applyArgs, name) { - return fn.apply(applyThis, applyArgs); - } -}; -function shouldBeIgnoredByZone(applyArgs) { - return hasApplyArgsData(applyArgs, "__ignore_ng_zone__"); -} -function isSchedulerTick(applyArgs) { - return hasApplyArgsData(applyArgs, "__scheduler_tick__"); -} -function hasApplyArgsData(applyArgs, key) { - if (!Array.isArray(applyArgs)) { - return false; - } - if (applyArgs.length !== 1) { - return false; - } - return applyArgs[0]?.data?.[key] === true; -} -var ErrorHandler = class { - _console = console; - handleError(error) { - this._console.error("ERROR", error); - } -}; -var INTERNAL_APPLICATION_ERROR_HANDLER = new InjectionToken(typeof ngDevMode === "undefined" || ngDevMode ? "internal error handler" : "", { - factory: () => { - const zone = inject2(NgZone); - const injector = inject2(EnvironmentInjector); - let userErrorHandler; - return (e) => { - zone.runOutsideAngular(() => { - if (injector.destroyed && !userErrorHandler) { - setTimeout(() => { - throw e; - }); - } else { - userErrorHandler ??= injector.get(ErrorHandler); - userErrorHandler.handleError(e); - } - }); - }; - } -}); -var errorHandlerEnvironmentInitializer = { - provide: ENVIRONMENT_INITIALIZER, - useValue: () => { - const handler = inject2(ErrorHandler, { - optional: true - }); - if ((typeof ngDevMode === "undefined" || ngDevMode) && handler === null) { - throw new RuntimeError(402, `A required Injectable was not found in the dependency injection tree. If you are bootstrapping an NgModule, make sure that the \`BrowserModule\` is imported.`); - } - }, - multi: true -}; -var globalErrorListeners = new InjectionToken(typeof ngDevMode !== "undefined" && ngDevMode ? "GlobalErrorListeners" : "", { - factory: () => { - if (false) { - return; - } - const window2 = inject2(DOCUMENT).defaultView; - if (!window2) { - return; - } - const errorHandler2 = inject2(INTERNAL_APPLICATION_ERROR_HANDLER); - const rejectionListener = (e) => { - errorHandler2(e.reason); - e.preventDefault(); - }; - const errorListener = (e) => { - if (e.error) { - errorHandler2(e.error); - } else { - errorHandler2(new Error(ngDevMode ? `An ErrorEvent with no error occurred. See Error.cause for details: ${e.message}` : e.message, { - cause: e - })); - } - e.preventDefault(); - }; - const setupEventListeners = () => { - window2.addEventListener("unhandledrejection", rejectionListener); - window2.addEventListener("error", errorListener); - }; - if (typeof Zone !== "undefined") { - Zone.root.run(setupEventListeners); - } else { - setupEventListeners(); - } - inject2(DestroyRef).onDestroy(() => { - window2.removeEventListener("error", errorListener); - window2.removeEventListener("unhandledrejection", rejectionListener); - }); - } -}); -function provideBrowserGlobalErrorListeners() { - return makeEnvironmentProviders([provideEnvironmentInitializer(() => void inject2(globalErrorListeners))]); -} -function signal(initialValue, options) { - const [get, set, update] = createSignal(initialValue, options?.equal); - const signalFn = get; - const node = signalFn[SIGNAL]; - signalFn.set = set; - signalFn.update = update; - signalFn.asReadonly = signalAsReadonlyFn.bind(signalFn); - if (typeof ngDevMode !== "undefined" && ngDevMode) { - const debugName = options?.debugName; - node.debugName = debugName; - signalFn.toString = () => `[Signal${debugName ? " (" + debugName + ")" : ""}: ${signalFn()}]`; - } - return signalFn; -} -function signalAsReadonlyFn() { - const node = this[SIGNAL]; - if (node.readonlyFn === void 0) { - const readonlyFn = () => this(); - readonlyFn[SIGNAL] = node; - node.readonlyFn = readonlyFn; - } - return node.readonlyFn; -} -function assertNotInReactiveContext(debugFn, extraContext) { - if (getActiveConsumer() !== null) { - throw new RuntimeError(-602, ngDevMode && `${debugFn.name}() cannot be called from within a reactive context.${extraContext ? ` ${extraContext}` : ""}`); - } -} -var ViewContext = class { - view; - node; - constructor(view, node) { - this.view = view; - this.node = node; - } - static __NG_ELEMENT_ID__ = injectViewContext; -}; -function injectViewContext() { - return new ViewContext(getLView(), getCurrentTNode()); -} -var ChangeDetectionScheduler = class { -}; -var ZONELESS_ENABLED = new InjectionToken(typeof ngDevMode === "undefined" || ngDevMode ? "Zoneless enabled" : "", { - factory: () => true -}); -var PROVIDED_ZONELESS = new InjectionToken(typeof ngDevMode === "undefined" || ngDevMode ? "Zoneless provided" : "", { - factory: () => false -}); -var SCHEDULE_IN_ROOT_ZONE = new InjectionToken(typeof ngDevMode === "undefined" || ngDevMode ? "run changes outside zone in root" : ""); -var PendingTasks = class _PendingTasks { - internalPendingTasks = inject2(PendingTasksInternal); - scheduler = inject2(ChangeDetectionScheduler); - errorHandler = inject2(INTERNAL_APPLICATION_ERROR_HANDLER); - add() { - const taskId = this.internalPendingTasks.add(); - return () => { - if (!this.internalPendingTasks.has(taskId)) { - return; - } - this.scheduler.notify(11); - this.internalPendingTasks.remove(taskId); - }; - } - run(fn) { - const removeTask = this.add(); - fn().catch(this.errorHandler).finally(removeTask); - } - static \u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({ - token: _PendingTasks, - providedIn: "root", - factory: () => new _PendingTasks() - }); -}; -var EffectScheduler = class _EffectScheduler { - static \u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({ - token: _EffectScheduler, - providedIn: "root", - factory: () => new ZoneAwareEffectScheduler() - }); -}; -var ZoneAwareEffectScheduler = class { - dirtyEffectCount = 0; - queues = /* @__PURE__ */ new Map(); - add(handle) { - this.enqueue(handle); - this.schedule(handle); - } - schedule(handle) { - if (!handle.dirty) { - return; - } - this.dirtyEffectCount++; - } - remove(handle) { - const zone = handle.zone; - const queue = this.queues.get(zone); - if (!queue.has(handle)) { - return; - } - queue.delete(handle); - if (handle.dirty) { - this.dirtyEffectCount--; - } - } - enqueue(handle) { - const zone = handle.zone; - if (!this.queues.has(zone)) { - this.queues.set(zone, /* @__PURE__ */ new Set()); - } - const queue = this.queues.get(zone); - if (queue.has(handle)) { - return; - } - queue.add(handle); - } - flush() { - while (this.dirtyEffectCount > 0) { - let ranOneEffect = false; - for (const [zone, queue] of this.queues) { - if (zone === null) { - ranOneEffect ||= this.flushQueue(queue); - } else { - ranOneEffect ||= zone.run(() => this.flushQueue(queue)); - } - } - if (!ranOneEffect) { - this.dirtyEffectCount = 0; - } - } - } - flushQueue(queue) { - let ranOneEffect = false; - for (const handle of queue) { - if (!handle.dirty) { - continue; - } - this.dirtyEffectCount--; - ranOneEffect = true; - handle.run(); - } - return ranOneEffect; - } -}; -var EffectRefImpl = class { - [SIGNAL]; - constructor(node) { - this[SIGNAL] = node; - } - destroy() { - this[SIGNAL].destroy(); - } -}; -function effect(effectFn, options) { - ngDevMode && assertNotInReactiveContext(effect, "Call `effect` outside of a reactive context. For example, schedule the effect inside the component constructor."); - if (ngDevMode && !options?.injector) { - assertInInjectionContext(effect); - } - if (ngDevMode && options?.allowSignalWrites !== void 0) { - console.warn(`The 'allowSignalWrites' flag is deprecated and no longer impacts effect() (writes are always allowed)`); - } - const injector = options?.injector ?? inject2(Injector); - let destroyRef = options?.manualCleanup !== true ? injector.get(DestroyRef) : null; - let node; - const viewContext = injector.get(ViewContext, null, { - optional: true - }); - const notifier = injector.get(ChangeDetectionScheduler); - if (viewContext !== null) { - node = createViewEffect(viewContext.view, notifier, effectFn); - if (destroyRef instanceof NodeInjectorDestroyRef && destroyRef._lView === viewContext.view) { - destroyRef = null; - } - } else { - node = createRootEffect(effectFn, injector.get(EffectScheduler), notifier); - } - node.injector = injector; - if (destroyRef !== null) { - node.onDestroyFns = [destroyRef.onDestroy(() => node.destroy())]; - } - const effectRef = new EffectRefImpl(node); - if (ngDevMode) { - node.debugName = options?.debugName ?? ""; - const prevInjectorProfilerContext = setInjectorProfilerContext({ - injector, - token: null - }); - try { - emitEffectCreatedEvent(effectRef); - } finally { - setInjectorProfilerContext(prevInjectorProfilerContext); - } - } - return effectRef; -} -var EFFECT_NODE = /* @__PURE__ */ (() => __spreadProps(__spreadValues({}, BASE_EFFECT_NODE), { - cleanupFns: void 0, - zone: null, - onDestroyFns: null, - run() { - if (ngDevMode && isInNotificationPhase()) { - throw new Error(`Schedulers cannot synchronously execute watches while scheduling.`); - } - const prevRefreshingViews = setIsRefreshingViews(false); - try { - runEffect(this); - } finally { - setIsRefreshingViews(prevRefreshingViews); - } - }, - cleanup() { - if (!this.cleanupFns?.length) { - return; - } - const prevConsumer = setActiveConsumer(null); - try { - while (this.cleanupFns.length) { - this.cleanupFns.pop()(); - } - } finally { - this.cleanupFns = []; - setActiveConsumer(prevConsumer); - } - } -}))(); -var ROOT_EFFECT_NODE = /* @__PURE__ */ (() => __spreadProps(__spreadValues({}, EFFECT_NODE), { - consumerMarkedDirty() { - this.scheduler.schedule(this); - this.notifier.notify(12); - }, - destroy() { - consumerDestroy(this); - if (this.onDestroyFns !== null) { - for (const fn of this.onDestroyFns) { - fn(); - } - } - this.cleanup(); - this.scheduler.remove(this); - } -}))(); -var VIEW_EFFECT_NODE = /* @__PURE__ */ (() => __spreadProps(__spreadValues({}, EFFECT_NODE), { - consumerMarkedDirty() { - this.view[FLAGS] |= 8192; - markAncestorsForTraversal(this.view); - this.notifier.notify(13); - }, - destroy() { - consumerDestroy(this); - if (this.onDestroyFns !== null) { - for (const fn of this.onDestroyFns) { - fn(); - } - } - this.cleanup(); - this.view[EFFECTS]?.delete(this); - } -}))(); -function createViewEffect(view, notifier, fn) { - const node = Object.create(VIEW_EFFECT_NODE); - node.view = view; - node.zone = typeof Zone !== "undefined" ? Zone.current : null; - node.notifier = notifier; - node.fn = createEffectFn(node, fn); - view[EFFECTS] ??= /* @__PURE__ */ new Set(); - view[EFFECTS].add(node); - node.consumerMarkedDirty(node); - return node; -} -function createRootEffect(fn, scheduler, notifier) { - const node = Object.create(ROOT_EFFECT_NODE); - node.fn = createEffectFn(node, fn); - node.scheduler = scheduler; - node.notifier = notifier; - node.zone = typeof Zone !== "undefined" ? Zone.current : null; - node.scheduler.add(node); - node.notifier.notify(12); - return node; -} -function createEffectFn(node, fn) { - return () => { - fn((cleanupFn) => (node.cleanupFns ??= []).push(cleanupFn)); - }; -} - -// node_modules/@angular/core/fesm2022/_debug_node-chunk.mjs -/** - * @license Angular v21.2.17 - * (c) 2010-2026 Google LLC. https://angular.dev/ - * License: MIT - */ -function noSideEffects(fn) { - return { - toString: fn - }.toString(); -} -var ANNOTATIONS = "__annotations__"; -var PARAMETERS = "__parameters__"; -var PROP_METADATA = "__prop__metadata__"; -function makeDecorator(name, props, parentClass, additionalProcessing, typeFn) { - return noSideEffects(() => { - const metaCtor = makeMetadataCtor(props); - function DecoratorFactory(...args) { - if (this instanceof DecoratorFactory) { - metaCtor.call(this, ...args); - return this; - } - const annotationInstance = new DecoratorFactory(...args); - return function TypeDecorator(cls) { - if (typeFn) typeFn(cls, ...args); - const annotations = cls.hasOwnProperty(ANNOTATIONS) ? cls[ANNOTATIONS] : Object.defineProperty(cls, ANNOTATIONS, { - value: [] - })[ANNOTATIONS]; - annotations.push(annotationInstance); - return cls; - }; - } - if (parentClass) { - DecoratorFactory.prototype = Object.create(parentClass.prototype); - } - DecoratorFactory.prototype.ngMetadataName = name; - DecoratorFactory.annotationCls = DecoratorFactory; - return DecoratorFactory; - }); -} -function makeMetadataCtor(props) { - return function ctor(...args) { - if (props) { - const values = props(...args); - for (const propName in values) { - this[propName] = values[propName]; - } - } - }; -} -function makeParamDecorator(name, props, parentClass) { - return noSideEffects(() => { - const metaCtor = makeMetadataCtor(props); - function ParamDecoratorFactory(...args) { - if (this instanceof ParamDecoratorFactory) { - metaCtor.apply(this, args); - return this; - } - const annotationInstance = new ParamDecoratorFactory(...args); - ParamDecorator.annotation = annotationInstance; - return ParamDecorator; - function ParamDecorator(cls, unusedKey, index) { - const parameters = cls.hasOwnProperty(PARAMETERS) ? cls[PARAMETERS] : Object.defineProperty(cls, PARAMETERS, { - value: [] - })[PARAMETERS]; - while (parameters.length <= index) { - parameters.push(null); - } - (parameters[index] = parameters[index] || []).push(annotationInstance); - return cls; - } - } - ParamDecoratorFactory.prototype.ngMetadataName = name; - ParamDecoratorFactory.annotationCls = ParamDecoratorFactory; - return ParamDecoratorFactory; - }); -} -function makePropDecorator(name, props, parentClass, additionalProcessing) { - return noSideEffects(() => { - const metaCtor = makeMetadataCtor(props); - function PropDecoratorFactory(...args) { - if (this instanceof PropDecoratorFactory) { - metaCtor.apply(this, args); - return this; - } - const decoratorInstance = new PropDecoratorFactory(...args); - function PropDecorator(target, name2) { - if (target === void 0) { - throw new Error("Standard Angular field decorators are not supported in JIT mode."); - } - const constructor = target.constructor; - const meta = constructor.hasOwnProperty(PROP_METADATA) ? constructor[PROP_METADATA] : Object.defineProperty(constructor, PROP_METADATA, { - value: {} - })[PROP_METADATA]; - meta[name2] = meta.hasOwnProperty(name2) && meta[name2] || []; - meta[name2].unshift(decoratorInstance); - } - return PropDecorator; - } - if (parentClass) { - PropDecoratorFactory.prototype = Object.create(parentClass.prototype); - } - PropDecoratorFactory.prototype.ngMetadataName = name; - PropDecoratorFactory.annotationCls = PropDecoratorFactory; - return PropDecoratorFactory; - }); -} -var Inject = attachInjectFlag(makeParamDecorator("Inject", (token) => ({ - token -})), -1); -var Optional = attachInjectFlag(makeParamDecorator("Optional"), 8); -var Self = attachInjectFlag(makeParamDecorator("Self"), 2); -var SkipSelf = attachInjectFlag(makeParamDecorator("SkipSelf"), 4); -var Host = attachInjectFlag(makeParamDecorator("Host"), 1); -function getCompilerFacade(request) { - const globalNg = _global["ng"]; - if (globalNg && globalNg.\u0275compilerFacade) { - return globalNg.\u0275compilerFacade; - } - if (typeof ngDevMode === "undefined" || ngDevMode) { - console.error(`JIT compilation failed for ${request.kind}`, request.type); - let message = `The ${request.kind} '${request.type.name}' needs to be compiled using the JIT compiler, but '@angular/compiler' is not available. - -`; - if (request.usage === 1) { - message += `The ${request.kind} is part of a library that has been partially compiled. -`; - message += `However, the Angular Linker has not processed the library such that JIT compilation is used as fallback. -`; - message += "\n"; - message += `Ideally, the library is processed using the Angular Linker to become fully AOT compiled. -`; - } else { - message += `JIT compilation is discouraged for production use-cases! Consider using AOT mode instead. -`; - } - message += `Alternatively, the JIT compiler should be loaded by bootstrapping using '@angular/platform-browser-dynamic' or '@angular/platform-server', -`; - message += `or manually provide the compiler with 'import "@angular/compiler";' before bootstrapping.`; - throw new Error(message); - } else { - throw new Error("JIT compiler unavailable"); - } -} -var angularCoreDiEnv = { - "\u0275\u0275defineInjectable": \u0275\u0275defineInjectable, - "\u0275\u0275defineInjector": \u0275\u0275defineInjector, - "\u0275\u0275inject": \u0275\u0275inject, - "\u0275\u0275invalidFactoryDep": \u0275\u0275invalidFactoryDep, - "resolveForwardRef": resolveForwardRef -}; -var Type = Function; -function isType(v) { - return typeof v === "function"; -} -var ES5_DELEGATE_CTOR = /^function\s+\S+\(\)\s*{[\s\S]+\.apply\(this,\s*(arguments|(?:[^()]+\(\[\],)?[^()]+\(arguments\).*)\)/; -var ES2015_INHERITED_CLASS = /^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{/; -var ES2015_INHERITED_CLASS_WITH_CTOR = /^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{[\s\S]*constructor\s*\(/; -var ES2015_INHERITED_CLASS_WITH_DELEGATE_CTOR = /^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{[\s\S]*constructor\s*\(\)\s*{[^}]*super\(\.\.\.arguments\)/; -function isDelegateCtor(typeStr) { - return ES5_DELEGATE_CTOR.test(typeStr) || ES2015_INHERITED_CLASS_WITH_DELEGATE_CTOR.test(typeStr) || ES2015_INHERITED_CLASS.test(typeStr) && !ES2015_INHERITED_CLASS_WITH_CTOR.test(typeStr); -} -var ReflectionCapabilities = class { - _reflect; - constructor(reflect) { - this._reflect = reflect || _global["Reflect"]; - } - factory(t) { - return (...args) => new t(...args); - } - _zipTypesAndAnnotations(paramTypes, paramAnnotations) { - let result; - if (typeof paramTypes === "undefined") { - result = newArray(paramAnnotations.length); - } else { - result = newArray(paramTypes.length); - } - for (let i = 0; i < result.length; i++) { - if (typeof paramTypes === "undefined") { - result[i] = []; - } else if (paramTypes[i] && paramTypes[i] != Object) { - result[i] = [paramTypes[i]]; - } else { - result[i] = []; - } - if (paramAnnotations && paramAnnotations[i] != null) { - result[i] = result[i].concat(paramAnnotations[i]); - } - } - return result; - } - _ownParameters(type, parentCtor) { - const typeStr = type.toString(); - if (isDelegateCtor(typeStr)) { - return null; - } - if (type.parameters && type.parameters !== parentCtor.parameters) { - return type.parameters; - } - const tsickleCtorParams = type.ctorParameters; - if (tsickleCtorParams && tsickleCtorParams !== parentCtor.ctorParameters) { - const ctorParameters = typeof tsickleCtorParams === "function" ? tsickleCtorParams() : tsickleCtorParams; - const paramTypes2 = ctorParameters.map((ctorParam) => ctorParam && ctorParam.type); - const paramAnnotations2 = ctorParameters.map((ctorParam) => ctorParam && convertTsickleDecoratorIntoMetadata(ctorParam.decorators)); - return this._zipTypesAndAnnotations(paramTypes2, paramAnnotations2); - } - const paramAnnotations = type.hasOwnProperty(PARAMETERS) && type[PARAMETERS]; - const paramTypes = this._reflect && this._reflect.getOwnMetadata && this._reflect.getOwnMetadata("design:paramtypes", type); - if (paramTypes || paramAnnotations) { - return this._zipTypesAndAnnotations(paramTypes, paramAnnotations); - } - return newArray(type.length); - } - parameters(type) { - if (!isType(type)) { - return []; - } - const parentCtor = getParentCtor(type); - let parameters = this._ownParameters(type, parentCtor); - if (!parameters && parentCtor !== Object) { - parameters = this.parameters(parentCtor); - } - return parameters || []; - } - _ownAnnotations(typeOrFunc, parentCtor) { - if (typeOrFunc.annotations && typeOrFunc.annotations !== parentCtor.annotations) { - let annotations = typeOrFunc.annotations; - if (typeof annotations === "function" && annotations.annotations) { - annotations = annotations.annotations; - } - return annotations; - } - if (typeOrFunc.decorators && typeOrFunc.decorators !== parentCtor.decorators) { - return convertTsickleDecoratorIntoMetadata(typeOrFunc.decorators); - } - if (typeOrFunc.hasOwnProperty(ANNOTATIONS)) { - return typeOrFunc[ANNOTATIONS]; - } - return null; - } - annotations(typeOrFunc) { - if (!isType(typeOrFunc)) { - return []; - } - const parentCtor = getParentCtor(typeOrFunc); - const ownAnnotations = this._ownAnnotations(typeOrFunc, parentCtor) || []; - const parentAnnotations = parentCtor !== Object ? this.annotations(parentCtor) : []; - return parentAnnotations.concat(ownAnnotations); - } - _ownPropMetadata(typeOrFunc, parentCtor) { - if (typeOrFunc.propMetadata && typeOrFunc.propMetadata !== parentCtor.propMetadata) { - let propMetadata = typeOrFunc.propMetadata; - if (typeof propMetadata === "function" && propMetadata.propMetadata) { - propMetadata = propMetadata.propMetadata; - } - return propMetadata; - } - if (typeOrFunc.propDecorators && typeOrFunc.propDecorators !== parentCtor.propDecorators) { - const propDecorators = typeOrFunc.propDecorators; - const propMetadata = {}; - Object.keys(propDecorators).forEach((prop) => { - propMetadata[prop] = convertTsickleDecoratorIntoMetadata(propDecorators[prop]); - }); - return propMetadata; - } - if (typeOrFunc.hasOwnProperty(PROP_METADATA)) { - return typeOrFunc[PROP_METADATA]; - } - return null; - } - propMetadata(typeOrFunc) { - if (!isType(typeOrFunc)) { - return {}; - } - const parentCtor = getParentCtor(typeOrFunc); - const propMetadata = {}; - if (parentCtor !== Object) { - const parentPropMetadata = this.propMetadata(parentCtor); - Object.keys(parentPropMetadata).forEach((propName) => { - propMetadata[propName] = parentPropMetadata[propName]; - }); - } - const ownPropMetadata = this._ownPropMetadata(typeOrFunc, parentCtor); - if (ownPropMetadata) { - Object.keys(ownPropMetadata).forEach((propName) => { - const decorators = []; - if (propMetadata.hasOwnProperty(propName)) { - decorators.push(...propMetadata[propName]); - } - decorators.push(...ownPropMetadata[propName]); - propMetadata[propName] = decorators; - }); - } - return propMetadata; - } - ownPropMetadata(typeOrFunc) { - if (!isType(typeOrFunc)) { - return {}; - } - return this._ownPropMetadata(typeOrFunc, getParentCtor(typeOrFunc)) || {}; - } - hasLifecycleHook(type, lcProperty) { - return type instanceof Type && lcProperty in type.prototype; - } -}; -function convertTsickleDecoratorIntoMetadata(decoratorInvocations) { - if (!decoratorInvocations) { - return []; - } - return decoratorInvocations.map((decoratorInvocation) => { - const decoratorType = decoratorInvocation.type; - const annotationCls = decoratorType.annotationCls; - const annotationArgs = decoratorInvocation.args ? decoratorInvocation.args : []; - return new annotationCls(...annotationArgs); - }); -} -function getParentCtor(ctor) { - const parentProto = ctor.prototype ? Object.getPrototypeOf(ctor.prototype) : null; - const parentCtor = parentProto ? parentProto.constructor : null; - return parentCtor || Object; -} -function applyValueToInputField(instance, inputSignalNode, privateName, value) { - if (inputSignalNode !== null) { - inputSignalNode.applyValueToInputSignal(inputSignalNode, value); - } else { - instance[privateName] = value; - } -} -var SimpleChange = class { - previousValue; - currentValue; - firstChange; - constructor(previousValue, currentValue, firstChange) { - this.previousValue = previousValue; - this.currentValue = currentValue; - this.firstChange = firstChange; - } - isFirstChange() { - return this.firstChange; - } -}; -var \u0275\u0275NgOnChangesFeature = /* @__PURE__ */ (() => { - const \u0275\u0275NgOnChangesFeatureImpl = () => NgOnChangesFeatureImpl; - \u0275\u0275NgOnChangesFeatureImpl.ngInherit = true; - return \u0275\u0275NgOnChangesFeatureImpl; -})(); -function NgOnChangesFeatureImpl(definition) { - if (definition.type.prototype.ngOnChanges) { - definition.setInput = ngOnChangesSetInput; - } - return rememberChangeHistoryAndInvokeOnChangesHook; -} -function rememberChangeHistoryAndInvokeOnChangesHook() { - const simpleChangesStore = getSimpleChangesStore(this); - const current = simpleChangesStore?.current; - if (current) { - const previous = simpleChangesStore.previous; - if (previous === EMPTY_OBJ) { - simpleChangesStore.previous = current; - } else { - for (let key in current) { - previous[key] = current[key]; - } - } - simpleChangesStore.current = null; - this.ngOnChanges(current); - } -} -function ngOnChangesSetInput(instance, inputSignalNode, value, publicName, privateName) { - const declaredName = this.declaredInputs[publicName]; - ngDevMode && assertString(declaredName, "Name of input in ngOnChanges has to be a string"); - const simpleChangesStore = getSimpleChangesStore(instance) || setSimpleChangesStore(instance, { - previous: EMPTY_OBJ, - current: null - }); - const current = simpleChangesStore.current || (simpleChangesStore.current = {}); - const previous = simpleChangesStore.previous; - const previousChange = previous[declaredName]; - current[declaredName] = new SimpleChange(previousChange && previousChange.currentValue, value, previous === EMPTY_OBJ); - applyValueToInputField(instance, inputSignalNode, privateName, value); -} -var SIMPLE_CHANGES_STORE = "__ngSimpleChanges__"; -function getSimpleChangesStore(instance) { - return instance[SIMPLE_CHANGES_STORE] || null; -} -function setSimpleChangesStore(instance, store2) { - return instance[SIMPLE_CHANGES_STORE] = store2; -} -var profilerCallbacks = []; -var NOOP_PROFILER_REMOVAL2 = () => { -}; -function removeProfiler2(profiler2) { - const profilerIdx = profilerCallbacks.indexOf(profiler2); - if (profilerIdx !== -1) { - profilerCallbacks.splice(profilerIdx, 1); - } -} -function setProfiler(profiler2) { - if (profiler2 !== null) { - if (!profilerCallbacks.includes(profiler2)) { - profilerCallbacks.push(profiler2); - } - return () => removeProfiler2(profiler2); - } else { - profilerCallbacks.length = 0; - return NOOP_PROFILER_REMOVAL2; - } -} -var profiler = function(event, instance = null, eventFn) { - for (let i = 0; i < profilerCallbacks.length; i++) { - const profilerCallback = profilerCallbacks[i]; - profilerCallback(event, instance, eventFn); - } -}; -var ProfilerEvent; -(function(ProfilerEvent2) { - ProfilerEvent2[ProfilerEvent2["TemplateCreateStart"] = 0] = "TemplateCreateStart"; - ProfilerEvent2[ProfilerEvent2["TemplateCreateEnd"] = 1] = "TemplateCreateEnd"; - ProfilerEvent2[ProfilerEvent2["TemplateUpdateStart"] = 2] = "TemplateUpdateStart"; - ProfilerEvent2[ProfilerEvent2["TemplateUpdateEnd"] = 3] = "TemplateUpdateEnd"; - ProfilerEvent2[ProfilerEvent2["LifecycleHookStart"] = 4] = "LifecycleHookStart"; - ProfilerEvent2[ProfilerEvent2["LifecycleHookEnd"] = 5] = "LifecycleHookEnd"; - ProfilerEvent2[ProfilerEvent2["OutputStart"] = 6] = "OutputStart"; - ProfilerEvent2[ProfilerEvent2["OutputEnd"] = 7] = "OutputEnd"; - ProfilerEvent2[ProfilerEvent2["BootstrapApplicationStart"] = 8] = "BootstrapApplicationStart"; - ProfilerEvent2[ProfilerEvent2["BootstrapApplicationEnd"] = 9] = "BootstrapApplicationEnd"; - ProfilerEvent2[ProfilerEvent2["BootstrapComponentStart"] = 10] = "BootstrapComponentStart"; - ProfilerEvent2[ProfilerEvent2["BootstrapComponentEnd"] = 11] = "BootstrapComponentEnd"; - ProfilerEvent2[ProfilerEvent2["ChangeDetectionStart"] = 12] = "ChangeDetectionStart"; - ProfilerEvent2[ProfilerEvent2["ChangeDetectionEnd"] = 13] = "ChangeDetectionEnd"; - ProfilerEvent2[ProfilerEvent2["ChangeDetectionSyncStart"] = 14] = "ChangeDetectionSyncStart"; - ProfilerEvent2[ProfilerEvent2["ChangeDetectionSyncEnd"] = 15] = "ChangeDetectionSyncEnd"; - ProfilerEvent2[ProfilerEvent2["AfterRenderHooksStart"] = 16] = "AfterRenderHooksStart"; - ProfilerEvent2[ProfilerEvent2["AfterRenderHooksEnd"] = 17] = "AfterRenderHooksEnd"; - ProfilerEvent2[ProfilerEvent2["ComponentStart"] = 18] = "ComponentStart"; - ProfilerEvent2[ProfilerEvent2["ComponentEnd"] = 19] = "ComponentEnd"; - ProfilerEvent2[ProfilerEvent2["DeferBlockStateStart"] = 20] = "DeferBlockStateStart"; - ProfilerEvent2[ProfilerEvent2["DeferBlockStateEnd"] = 21] = "DeferBlockStateEnd"; - ProfilerEvent2[ProfilerEvent2["DynamicComponentStart"] = 22] = "DynamicComponentStart"; - ProfilerEvent2[ProfilerEvent2["DynamicComponentEnd"] = 23] = "DynamicComponentEnd"; - ProfilerEvent2[ProfilerEvent2["HostBindingsUpdateStart"] = 24] = "HostBindingsUpdateStart"; - ProfilerEvent2[ProfilerEvent2["HostBindingsUpdateEnd"] = 25] = "HostBindingsUpdateEnd"; -})(ProfilerEvent || (ProfilerEvent = {})); -function registerPreOrderHooks(directiveIndex, directiveDef, tView) { - ngDevMode && assertFirstCreatePass(tView); - const { - ngOnChanges, - ngOnInit, - ngDoCheck - } = directiveDef.type.prototype; - if (ngOnChanges) { - const wrappedOnChanges = NgOnChangesFeatureImpl(directiveDef); - (tView.preOrderHooks ??= []).push(directiveIndex, wrappedOnChanges); - (tView.preOrderCheckHooks ??= []).push(directiveIndex, wrappedOnChanges); - } - if (ngOnInit) { - (tView.preOrderHooks ??= []).push(0 - directiveIndex, ngOnInit); - } - if (ngDoCheck) { - (tView.preOrderHooks ??= []).push(directiveIndex, ngDoCheck); - (tView.preOrderCheckHooks ??= []).push(directiveIndex, ngDoCheck); - } -} -function registerPostOrderHooks(tView, tNode) { - ngDevMode && assertFirstCreatePass(tView); - for (let i = tNode.directiveStart, end = tNode.directiveEnd; i < end; i++) { - const directiveDef = tView.data[i]; - ngDevMode && assertDefined(directiveDef, "Expecting DirectiveDef"); - const lifecycleHooks = directiveDef.type.prototype; - const { - ngAfterContentInit, - ngAfterContentChecked, - ngAfterViewInit, - ngAfterViewChecked, - ngOnDestroy - } = lifecycleHooks; - if (ngAfterContentInit) { - (tView.contentHooks ??= []).push(-i, ngAfterContentInit); - } - if (ngAfterContentChecked) { - (tView.contentHooks ??= []).push(i, ngAfterContentChecked); - (tView.contentCheckHooks ??= []).push(i, ngAfterContentChecked); - } - if (ngAfterViewInit) { - (tView.viewHooks ??= []).push(-i, ngAfterViewInit); - } - if (ngAfterViewChecked) { - (tView.viewHooks ??= []).push(i, ngAfterViewChecked); - (tView.viewCheckHooks ??= []).push(i, ngAfterViewChecked); - } - if (ngOnDestroy != null) { - (tView.destroyHooks ??= []).push(i, ngOnDestroy); - } - } -} -function executeCheckHooks(lView, hooks, nodeIndex) { - callHooks(lView, hooks, 3, nodeIndex); -} -function executeInitAndCheckHooks(lView, hooks, initPhase, nodeIndex) { - ngDevMode && assertNotEqual(initPhase, 3, "Init pre-order hooks should not be called more than once"); - if ((lView[FLAGS] & 3) === initPhase) { - callHooks(lView, hooks, initPhase, nodeIndex); - } -} -function incrementInitPhaseFlags(lView, initPhase) { - ngDevMode && assertNotEqual(initPhase, 3, "Init hooks phase should not be incremented after all init hooks have been run."); - let flags = lView[FLAGS]; - if ((flags & 3) === initPhase) { - flags &= 16383; - flags += 1; - lView[FLAGS] = flags; - } -} -function callHooks(currentView, arr, initPhase, currentNodeIndex) { - ngDevMode && assertEqual(isInCheckNoChangesMode(), false, "Hooks should never be run when in check no changes mode."); - const startIndex = currentNodeIndex !== void 0 ? currentView[PREORDER_HOOK_FLAGS] & 65535 : 0; - const nodeIndexLimit = currentNodeIndex != null ? currentNodeIndex : -1; - const max = arr.length - 1; - let lastNodeIndexFound = 0; - for (let i = startIndex; i < max; i++) { - const hook = arr[i + 1]; - if (typeof hook === "number") { - lastNodeIndexFound = arr[i]; - if (currentNodeIndex != null && lastNodeIndexFound >= currentNodeIndex) { - break; - } - } else { - const isInitHook = arr[i] < 0; - if (isInitHook) { - currentView[PREORDER_HOOK_FLAGS] += 65536; - } - if (lastNodeIndexFound < nodeIndexLimit || nodeIndexLimit == -1) { - callHook(currentView, initPhase, arr, i); - currentView[PREORDER_HOOK_FLAGS] = (currentView[PREORDER_HOOK_FLAGS] & 4294901760) + i + 2; - } - i++; - } - } -} -function callHookInternal(directive, hook) { - profiler(ProfilerEvent.LifecycleHookStart, directive, hook); - const prevConsumer = setActiveConsumer(null); - try { - hook.call(directive); - } finally { - setActiveConsumer(prevConsumer); - profiler(ProfilerEvent.LifecycleHookEnd, directive, hook); - } -} -function callHook(currentView, initPhase, arr, i) { - const isInitHook = arr[i] < 0; - const hook = arr[i + 1]; - const directiveIndex = isInitHook ? -arr[i] : arr[i]; - const directive = currentView[directiveIndex]; - if (isInitHook) { - const indexWithintInitPhase = currentView[FLAGS] >> 14; - if (indexWithintInitPhase < currentView[PREORDER_HOOK_FLAGS] >> 16 && (currentView[FLAGS] & 3) === initPhase) { - currentView[FLAGS] += 16384; - callHookInternal(directive, hook); - } - } else { - callHookInternal(directive, hook); - } -} -var NO_PARENT_INJECTOR = -1; -var NodeInjectorFactory = class { - factory; - name; - injectImpl; - resolving = false; - canSeeViewProviders; - multi; - componentProviders; - index; - providerFactory; - constructor(factory, isViewProvider, injectImplementation, name) { - this.factory = factory; - this.name = name; - ngDevMode && assertDefined(factory, "Factory not specified"); - ngDevMode && assertEqual(typeof factory, "function", "Expected factory function."); - this.canSeeViewProviders = isViewProvider; - this.injectImpl = injectImplementation; - } -}; -function toTNodeTypeAsString(tNodeType) { - let text = ""; - tNodeType & 1 && (text += "|Text"); - tNodeType & 2 && (text += "|Element"); - tNodeType & 4 && (text += "|Container"); - tNodeType & 8 && (text += "|ElementContainer"); - tNodeType & 16 && (text += "|Projection"); - tNodeType & 32 && (text += "|IcuContainer"); - tNodeType & 64 && (text += "|Placeholder"); - tNodeType & 128 && (text += "|LetDeclaration"); - return text.length > 0 ? text.substring(1) : text; -} -function isTNodeShape(value) { - return value != null && typeof value === "object" && (value.insertBeforeIndex === null || typeof value.insertBeforeIndex === "number" || Array.isArray(value.insertBeforeIndex)); -} -function hasClassInput(tNode) { - return (tNode.flags & 8) !== 0; -} -function hasStyleInput(tNode) { - return (tNode.flags & 16) !== 0; -} -function assertTNodeType(tNode, expectedTypes, message) { - assertDefined(tNode, "should be called with a TNode"); - if ((tNode.type & expectedTypes) === 0) { - throwError2(message || `Expected [${toTNodeTypeAsString(expectedTypes)}] but got ${toTNodeTypeAsString(tNode.type)}.`); - } -} -function assertPureTNodeType(type) { - if (!(type === 2 || type === 1 || type === 4 || type === 8 || type === 32 || type === 16 || type === 64 || type === 128)) { - throwError2(`Expected TNodeType to have only a single type selected, but got ${toTNodeTypeAsString(type)}.`); - } -} -function setUpAttributes(renderer, native, attrs) { - let i = 0; - while (i < attrs.length) { - const value = attrs[i]; - if (typeof value === "number") { - if (value !== 0) { - break; - } - i++; - const namespaceURI = attrs[i++]; - const attrName = attrs[i++]; - const attrVal = attrs[i++]; - renderer.setAttribute(native, attrName, attrVal, namespaceURI); - } else { - const attrName = value; - const attrVal = attrs[++i]; - if (isAnimationProp(attrName)) { - renderer.setProperty(native, attrName, attrVal); - } else { - renderer.setAttribute(native, attrName, attrVal); - } - i++; - } - } - return i; -} -function isNameOnlyAttributeMarker(marker) { - return marker === 3 || marker === 4 || marker === 6; -} -function isAnimationProp(name) { - return name.charCodeAt(0) === 64; -} -function mergeHostAttrs(dst, src) { - if (src === null || src.length === 0) ; - else if (dst === null || dst.length === 0) { - dst = src.slice(); - } else { - let srcMarker = -1; - for (let i = 0; i < src.length; i++) { - const item = src[i]; - if (typeof item === "number") { - srcMarker = item; - } else { - if (srcMarker === 0) ; - else if (srcMarker === -1 || srcMarker === 2) { - mergeHostAttribute(dst, srcMarker, item, null, src[++i]); - } else { - mergeHostAttribute(dst, srcMarker, item, null, null); - } - } - } - } - return dst; -} -function mergeHostAttribute(dst, marker, key1, key2, value) { - let i = 0; - let markerInsertPosition = dst.length; - if (marker === -1) { - markerInsertPosition = -1; - } else { - while (i < dst.length) { - const dstValue = dst[i++]; - if (typeof dstValue === "number") { - if (dstValue === marker) { - markerInsertPosition = -1; - break; - } else if (dstValue > marker) { - markerInsertPosition = i - 1; - break; - } - } - } - } - while (i < dst.length) { - const item = dst[i]; - if (typeof item === "number") { - break; - } else if (item === key1) { - { - if (value !== null) { - dst[i + 1] = value; - } - return; - } - } - i++; - if (value !== null) i++; - } - if (markerInsertPosition !== -1) { - dst.splice(markerInsertPosition, 0, marker); - i = markerInsertPosition + 1; - } - dst.splice(i++, 0, key1); - if (value !== null) { - dst.splice(i++, 0, value); - } -} -function hasParentInjector(parentLocation) { - return parentLocation !== NO_PARENT_INJECTOR; -} -function getParentInjectorIndex(parentLocation) { - if (ngDevMode) { - assertNumber(parentLocation, "Number expected"); - assertNotEqual(parentLocation, -1, "Not a valid state."); - const parentInjectorIndex = parentLocation & 32767; - assertGreaterThan(parentInjectorIndex, HEADER_OFFSET, "Parent injector must be pointing past HEADER_OFFSET."); - } - return parentLocation & 32767; -} -function getParentInjectorViewOffset(parentLocation) { - return parentLocation >> 16; -} -function getParentInjectorView(location2, startView) { - let viewOffset = getParentInjectorViewOffset(location2); - let parentView = startView; - while (viewOffset > 0) { - parentView = parentView[DECLARATION_VIEW]; - viewOffset--; - } - return parentView; -} -var includeViewProviders = true; -function setIncludeViewProviders(v) { - const oldValue = includeViewProviders; - includeViewProviders = v; - return oldValue; -} -var BLOOM_SIZE = 256; -var BLOOM_MASK = BLOOM_SIZE - 1; -var BLOOM_BUCKET_BITS = 5; -var nextNgElementId = 0; -var NOT_FOUND2 = {}; -function bloomAdd(injectorIndex, tView, type) { - ngDevMode && assertEqual(tView.firstCreatePass, true, "expected firstCreatePass to be true"); - let id; - if (typeof type === "string") { - id = type.charCodeAt(0) || 0; - } else if (type.hasOwnProperty(NG_ELEMENT_ID)) { - id = type[NG_ELEMENT_ID]; - } - if (id == null) { - id = type[NG_ELEMENT_ID] = nextNgElementId++; - } - const bloomHash = id & BLOOM_MASK; - const mask = 1 << bloomHash; - tView.data[injectorIndex + (bloomHash >> BLOOM_BUCKET_BITS)] |= mask; -} -function getOrCreateNodeInjectorForNode(tNode, lView) { - const existingInjectorIndex = getInjectorIndex(tNode, lView); - if (existingInjectorIndex !== -1) { - return existingInjectorIndex; - } - const tView = lView[TVIEW]; - if (tView.firstCreatePass) { - tNode.injectorIndex = lView.length; - insertBloom(tView.data, tNode); - insertBloom(lView, null); - insertBloom(tView.blueprint, null); - } - const parentLoc = getParentInjectorLocation(tNode, lView); - const injectorIndex = tNode.injectorIndex; - if (hasParentInjector(parentLoc)) { - const parentIndex = getParentInjectorIndex(parentLoc); - const parentLView = getParentInjectorView(parentLoc, lView); - const parentData = parentLView[TVIEW].data; - for (let i = 0; i < 8; i++) { - lView[injectorIndex + i] = parentLView[parentIndex + i] | parentData[parentIndex + i]; - } - } - lView[injectorIndex + 8] = parentLoc; - return injectorIndex; -} -function insertBloom(arr, footer) { - arr.push(0, 0, 0, 0, 0, 0, 0, 0, footer); -} -function getInjectorIndex(tNode, lView) { - if (tNode.injectorIndex === -1 || tNode.parent && tNode.parent.injectorIndex === tNode.injectorIndex || lView[tNode.injectorIndex + 8] === null) { - return -1; - } else { - ngDevMode && assertIndexInRange(lView, tNode.injectorIndex); - return tNode.injectorIndex; - } -} -function getParentInjectorLocation(tNode, lView) { - if (tNode.parent && tNode.parent.injectorIndex !== -1) { - return tNode.parent.injectorIndex; - } - let declarationViewOffset = 0; - let parentTNode = null; - let lViewCursor = lView; - while (lViewCursor !== null) { - parentTNode = getTNodeFromLView(lViewCursor); - if (parentTNode === null) { - return NO_PARENT_INJECTOR; - } - ngDevMode && parentTNode && assertTNodeForLView(parentTNode, lViewCursor[DECLARATION_VIEW]); - declarationViewOffset++; - lViewCursor = lViewCursor[DECLARATION_VIEW]; - if (parentTNode.injectorIndex !== -1) { - return parentTNode.injectorIndex | declarationViewOffset << 16; - } - } - return NO_PARENT_INJECTOR; -} -function diPublicInInjector(injectorIndex, tView, token) { - bloomAdd(injectorIndex, tView, token); -} -function injectAttributeImpl(tNode, attrNameToInject) { - ngDevMode && assertTNodeType(tNode, 12 | 3); - ngDevMode && assertDefined(tNode, "expecting tNode"); - if (attrNameToInject === "class") { - return tNode.classes; - } - if (attrNameToInject === "style") { - return tNode.styles; - } - const attrs = tNode.attrs; - if (attrs) { - const attrsLength = attrs.length; - let i = 0; - while (i < attrsLength) { - const value = attrs[i]; - if (isNameOnlyAttributeMarker(value)) break; - if (value === 0) { - i = i + 2; - } else if (typeof value === "number") { - i++; - while (i < attrsLength && typeof attrs[i] === "string") { - i++; - } - } else if (value === attrNameToInject) { - return attrs[i + 1]; - } else { - i = i + 2; - } - } - } - return null; -} -function notFoundValueOrThrow(notFoundValue, token, flags) { - if (flags & 8 || notFoundValue !== void 0) { - return notFoundValue; - } else { - throwProviderNotFoundError(token, "NodeInjector"); - } -} -function lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue) { - if (flags & 8 && notFoundValue === void 0) { - notFoundValue = null; - } - if ((flags & (2 | 1)) === 0) { - const moduleInjector = lView[INJECTOR]; - const previousInjectImplementation = setInjectImplementation(void 0); - try { - if (moduleInjector) { - return moduleInjector.get(token, notFoundValue, flags & 8); - } else { - return injectRootLimpMode(token, notFoundValue, flags & 8); - } - } finally { - setInjectImplementation(previousInjectImplementation); - } - } - return notFoundValueOrThrow(notFoundValue, token, flags); -} -function getOrCreateInjectable(tNode, lView, token, flags = 0, notFoundValue) { - if (tNode !== null) { - if (lView[FLAGS] & 2048 && !(flags & 2)) { - const embeddedInjectorValue = lookupTokenUsingEmbeddedInjector(tNode, lView, token, flags, NOT_FOUND2); - if (embeddedInjectorValue !== NOT_FOUND2) { - return embeddedInjectorValue; - } - } - const value = lookupTokenUsingNodeInjector(tNode, lView, token, flags, NOT_FOUND2); - if (value !== NOT_FOUND2) { - return value; - } - } - return lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue); -} -function lookupTokenUsingNodeInjector(tNode, lView, token, flags, notFoundValue) { - const bloomHash = bloomHashBitOrFactory(token); - if (typeof bloomHash === "function") { - if (!enterDI(lView, tNode, flags)) { - return flags & 1 ? notFoundValueOrThrow(notFoundValue, token, flags) : lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue); - } - try { - let value; - if (ngDevMode) { - runInInjectorProfilerContext(new NodeInjector(getCurrentTNode(), getLView()), token, () => { - emitInjectorToCreateInstanceEvent(token); - value = bloomHash(flags); - emitInstanceCreatedByInjectorEvent(value); - }); - } else { - value = bloomHash(flags); - } - if (value == null && !(flags & 8)) { - throwProviderNotFoundError(token); - } else { - return value; - } - } finally { - leaveDI(); - } - } else if (typeof bloomHash === "number") { - let previousTView = null; - let injectorIndex = getInjectorIndex(tNode, lView); - let parentLocation = NO_PARENT_INJECTOR; - let hostTElementNode = flags & 1 ? lView[DECLARATION_COMPONENT_VIEW][T_HOST] : null; - if (injectorIndex === -1 || flags & 4) { - parentLocation = injectorIndex === -1 ? getParentInjectorLocation(tNode, lView) : lView[injectorIndex + 8]; - if (parentLocation === NO_PARENT_INJECTOR || !shouldSearchParent(flags, false)) { - injectorIndex = -1; - } else { - previousTView = lView[TVIEW]; - injectorIndex = getParentInjectorIndex(parentLocation); - lView = getParentInjectorView(parentLocation, lView); - } - } - while (injectorIndex !== -1) { - ngDevMode && assertNodeInjector(lView, injectorIndex); - const tView = lView[TVIEW]; - ngDevMode && assertTNodeForLView(tView.data[injectorIndex + 8], lView); - if (bloomHasToken(bloomHash, injectorIndex, tView.data)) { - const instance = searchTokensOnInjector(injectorIndex, lView, token, previousTView, flags, hostTElementNode); - if (instance !== NOT_FOUND2) { - return instance; - } - } - parentLocation = lView[injectorIndex + 8]; - if (parentLocation !== NO_PARENT_INJECTOR && shouldSearchParent(flags, lView[TVIEW].data[injectorIndex + 8] === hostTElementNode) && bloomHasToken(bloomHash, injectorIndex, lView)) { - previousTView = tView; - injectorIndex = getParentInjectorIndex(parentLocation); - lView = getParentInjectorView(parentLocation, lView); - } else { - injectorIndex = -1; - } - } - } - return notFoundValue; -} -function searchTokensOnInjector(injectorIndex, lView, token, previousTView, flags, hostTElementNode) { - const currentTView = lView[TVIEW]; - const tNode = currentTView.data[injectorIndex + 8]; - const canAccessViewProviders = previousTView == null ? isComponentHost(tNode) && includeViewProviders : previousTView != currentTView && (tNode.type & 3) !== 0; - const isHostSpecialCase = flags & 1 && hostTElementNode === tNode; - const injectableIdx = locateDirectiveOrProvider(tNode, currentTView, token, canAccessViewProviders, isHostSpecialCase); - if (injectableIdx !== null) { - return getNodeInjectable(lView, currentTView, injectableIdx, tNode, flags); - } else { - return NOT_FOUND2; - } -} -function locateDirectiveOrProvider(tNode, tView, token, canAccessViewProviders, isHostSpecialCase) { - const nodeProviderIndexes = tNode.providerIndexes; - const tInjectables = tView.data; - const injectablesStart = nodeProviderIndexes & 1048575; - const directivesStart = tNode.directiveStart; - const directiveEnd = tNode.directiveEnd; - const cptViewProvidersCount = nodeProviderIndexes >> 20; - const startingIndex = canAccessViewProviders ? injectablesStart : injectablesStart + cptViewProvidersCount; - const endIndex = isHostSpecialCase ? injectablesStart + cptViewProvidersCount : directiveEnd; - for (let i = startingIndex; i < endIndex; i++) { - const providerTokenOrDef = tInjectables[i]; - if (i < directivesStart && token === providerTokenOrDef || i >= directivesStart && providerTokenOrDef.type === token) { - return i; - } - } - if (isHostSpecialCase) { - const dirDef = tInjectables[directivesStart]; - if (dirDef && isComponentDef(dirDef) && dirDef.type === token) { - return directivesStart; - } - } - return null; -} -var injectionPath = []; -function getNodeInjectable(lView, tView, index, tNode, flags) { - let value = lView[index]; - const tData = tView.data; - if (value instanceof NodeInjectorFactory) { - const factory = value; - ngDevMode && injectionPath.push(factory.name ?? "unknown"); - if (factory.resolving) { - let token2 = ""; - if (ngDevMode) { - token2 = stringifyForError(tData[index]); - throw cyclicDependencyErrorWithDetails(token2, injectionPath); - } else { - throw cyclicDependencyError(token2); - } - } - const previousIncludeViewProviders = setIncludeViewProviders(factory.canSeeViewProviders); - factory.resolving = true; - const token = tData[index].type || tData[index]; - let prevInjectContext; - if (ngDevMode) { - const injector = new NodeInjector(tNode, lView); - prevInjectContext = setInjectorProfilerContext({ - injector, - token - }); - } - const previousInjectImplementation = factory.injectImpl ? setInjectImplementation(factory.injectImpl) : null; - const success = enterDI(lView, tNode, 0); - ngDevMode && assertEqual(success, true, "Because flags do not contain `SkipSelf' we expect this to always succeed."); - try { - ngDevMode && emitInjectorToCreateInstanceEvent(token); - value = lView[index] = factory.factory(void 0, flags, tData, lView, tNode); - ngDevMode && emitInstanceCreatedByInjectorEvent(value); - if (tView.firstCreatePass && index >= tNode.directiveStart) { - ngDevMode && assertDirectiveDef(tData[index]); - registerPreOrderHooks(index, tData[index], tView); - } - } finally { - ngDevMode && setInjectorProfilerContext(prevInjectContext); - previousInjectImplementation !== null && setInjectImplementation(previousInjectImplementation); - setIncludeViewProviders(previousIncludeViewProviders); - factory.resolving = false; - leaveDI(); - ngDevMode && (injectionPath = []); - } - } - return value; -} -function bloomHashBitOrFactory(token) { - ngDevMode && assertDefined(token, "token must be defined"); - if (typeof token === "string") { - return token.charCodeAt(0) || 0; - } - const tokenId = token.hasOwnProperty(NG_ELEMENT_ID) ? token[NG_ELEMENT_ID] : void 0; - if (typeof tokenId === "number") { - if (tokenId >= 0) { - return tokenId & BLOOM_MASK; - } else { - ngDevMode && assertEqual(tokenId, -1, "Expecting to get Special Injector Id"); - return createNodeInjector; - } - } else { - return tokenId; - } -} -function bloomHasToken(bloomHash, injectorIndex, injectorView) { - const mask = 1 << bloomHash; - const value = injectorView[injectorIndex + (bloomHash >> BLOOM_BUCKET_BITS)]; - return !!(value & mask); -} -function shouldSearchParent(flags, isFirstHostTNode) { - return !(flags & 2) && !(flags & 1 && isFirstHostTNode); -} -function getNodeInjectorLView(nodeInjector) { - return nodeInjector._lView; -} -function getNodeInjectorTNode(nodeInjector) { - return nodeInjector._tNode; -} -var NodeInjector = class { - _tNode; - _lView; - constructor(_tNode, _lView) { - this._tNode = _tNode; - this._lView = _lView; - } - get(token, notFoundValue, flags) { - return getOrCreateInjectable(this._tNode, this._lView, token, convertToBitFlags(flags), notFoundValue); - } -}; -function createNodeInjector() { - return new NodeInjector(getCurrentTNode(), getLView()); -} -function \u0275\u0275getInheritedFactory(type) { - return noSideEffects(() => { - const ownConstructor = type.prototype.constructor; - const ownFactory = ownConstructor[NG_FACTORY_DEF] || getFactoryOf(ownConstructor); - const objectPrototype = Object.prototype; - let parent = Object.getPrototypeOf(type.prototype).constructor; - while (parent && parent !== objectPrototype) { - const factory = parent[NG_FACTORY_DEF] || getFactoryOf(parent); - if (factory && factory !== ownFactory) { - return factory; - } - parent = Object.getPrototypeOf(parent); - } - return (t) => new t(); - }); -} -function getFactoryOf(type) { - if (isForwardRef(type)) { - return () => { - const factory = getFactoryOf(resolveForwardRef(type)); - return factory && factory(); - }; - } - return getFactoryDef(type); -} -function lookupTokenUsingEmbeddedInjector(tNode, lView, token, flags, notFoundValue) { - let currentTNode = tNode; - let currentLView = lView; - while (currentTNode !== null && currentLView !== null && currentLView[FLAGS] & 2048 && !isRootView(currentLView)) { - ngDevMode && assertTNodeForLView(currentTNode, currentLView); - const nodeInjectorValue = lookupTokenUsingNodeInjector(currentTNode, currentLView, token, flags | 2, NOT_FOUND2); - if (nodeInjectorValue !== NOT_FOUND2) { - return nodeInjectorValue; - } - let parentTNode = currentTNode.parent; - if (!parentTNode) { - const embeddedViewInjector = currentLView[EMBEDDED_VIEW_INJECTOR]; - if (embeddedViewInjector) { - const embeddedViewInjectorValue = embeddedViewInjector.get(token, NOT_FOUND2, flags & -5); - if (embeddedViewInjectorValue !== NOT_FOUND2) { - return embeddedViewInjectorValue; - } - } - parentTNode = getTNodeFromLView(currentLView); - currentLView = currentLView[DECLARATION_VIEW]; - } - currentTNode = parentTNode; - } - return notFoundValue; -} -function getTNodeFromLView(lView) { - const tView = lView[TVIEW]; - const tViewType = tView.type; - if (tViewType === 2) { - ngDevMode && assertDefined(tView.declTNode, "Embedded TNodes should have declaration parents."); - return tView.declTNode; - } else if (tViewType === 1) { - return lView[T_HOST]; - } - return null; -} -function \u0275\u0275injectAttribute(attrNameToInject) { - return injectAttributeImpl(getCurrentTNode(), attrNameToInject); -} -var Attribute = makeParamDecorator("Attribute", (attributeName) => ({ - attributeName, - __NG_ELEMENT_ID__: () => \u0275\u0275injectAttribute(attributeName) -})); -var _reflect = null; -function getReflect() { - return _reflect = _reflect || new ReflectionCapabilities(); -} -function reflectDependencies(type) { - return convertDependencies(getReflect().parameters(type)); -} -function convertDependencies(deps) { - return deps.map((dep) => reflectDependency(dep)); -} -function reflectDependency(dep) { - const meta = { - token: null, - attribute: null, - host: false, - optional: false, - self: false, - skipSelf: false - }; - if (Array.isArray(dep) && dep.length > 0) { - for (let j = 0; j < dep.length; j++) { - const param = dep[j]; - if (param === void 0) { - continue; - } - const proto = Object.getPrototypeOf(param); - if (param instanceof Optional || proto.ngMetadataName === "Optional") { - meta.optional = true; - } else if (param instanceof SkipSelf || proto.ngMetadataName === "SkipSelf") { - meta.skipSelf = true; - } else if (param instanceof Self || proto.ngMetadataName === "Self") { - meta.self = true; - } else if (param instanceof Host || proto.ngMetadataName === "Host") { - meta.host = true; - } else if (param instanceof Inject) { - meta.token = param.token; - } else if (param instanceof Attribute) { - if (param.attributeName === void 0) { - throw new RuntimeError(-204, ngDevMode && `Attribute name must be defined.`); - } - meta.attribute = param.attributeName; - } else { - meta.token = param; - } - } - } else if (dep === void 0 || Array.isArray(dep) && dep.length === 0) { - meta.token = null; - } else { - meta.token = dep; - } - return meta; -} -function compileInjectable(type, meta) { - let ngInjectableDef = null; - let ngFactoryDef = null; - if (!type.hasOwnProperty(NG_PROV_DEF)) { - Object.defineProperty(type, NG_PROV_DEF, { - get: () => { - if (ngInjectableDef === null) { - const compiler = getCompilerFacade({ - usage: 0, - kind: "injectable", - type - }); - ngInjectableDef = compiler.compileInjectable(angularCoreDiEnv, `ng:///${type.name}/\u0275prov.js`, getInjectableMetadata(type, meta)); - } - return ngInjectableDef; - } - }); - } - if (!type.hasOwnProperty(NG_FACTORY_DEF)) { - Object.defineProperty(type, NG_FACTORY_DEF, { - get: () => { - if (ngFactoryDef === null) { - const compiler = getCompilerFacade({ - usage: 0, - kind: "injectable", - type - }); - ngFactoryDef = compiler.compileFactory(angularCoreDiEnv, `ng:///${type.name}/\u0275fac.js`, { - name: type.name, - type, - typeArgumentCount: 0, - deps: reflectDependencies(type), - target: compiler.FactoryTarget.Injectable - }); - } - return ngFactoryDef; - }, - configurable: true - }); - } -} -var USE_VALUE2 = getClosureSafeProperty({ - provide: String, - useValue: getClosureSafeProperty -}); -function isUseClassProvider(meta) { - return meta.useClass !== void 0; -} -function isUseValueProvider(meta) { - return USE_VALUE2 in meta; -} -function isUseFactoryProvider(meta) { - return meta.useFactory !== void 0; -} -function isUseExistingProvider(meta) { - return meta.useExisting !== void 0; -} -function getInjectableMetadata(type, srcMeta) { - const meta = srcMeta || { - providedIn: null - }; - const compilerMeta = { - name: type.name, - type, - typeArgumentCount: 0, - providedIn: meta.providedIn - }; - if ((isUseClassProvider(meta) || isUseFactoryProvider(meta)) && meta.deps !== void 0) { - compilerMeta.deps = convertDependencies(meta.deps); - } - if (isUseClassProvider(meta)) { - compilerMeta.useClass = meta.useClass; - } else if (isUseValueProvider(meta)) { - compilerMeta.useValue = meta.useValue; - } else if (isUseFactoryProvider(meta)) { - compilerMeta.useFactory = meta.useFactory; - } else if (isUseExistingProvider(meta)) { - compilerMeta.useExisting = meta.useExisting; - } - return compilerMeta; -} -var Injectable = makeDecorator("Injectable", void 0, void 0, void 0, (type, meta) => compileInjectable(type, meta)); -function injectElementRef() { - return createElementRef(getCurrentTNode(), getLView()); -} -function createElementRef(tNode, lView) { - return new ElementRef(getNativeByTNode(tNode, lView)); -} -var ElementRef = class { - nativeElement; - constructor(nativeElement) { - this.nativeElement = nativeElement; - } - static __NG_ELEMENT_ID__ = injectElementRef; -}; -function unwrapElementRef(value) { - return value instanceof ElementRef ? value.nativeElement : value; -} -function symbolIterator() { - return this._results[Symbol.iterator](); -} -var QueryList = class { - _emitDistinctChangesOnly; - dirty = true; - _onDirty = void 0; - _results = []; - _changesDetected = false; - _changes = void 0; - length = 0; - first = void 0; - last = void 0; - get changes() { - return this._changes ??= new Subject(); - } - constructor(_emitDistinctChangesOnly = false) { - this._emitDistinctChangesOnly = _emitDistinctChangesOnly; - } - get(index) { - return this._results[index]; - } - map(fn) { - return this._results.map(fn); - } - filter(fn) { - return this._results.filter(fn); - } - find(fn) { - return this._results.find(fn); - } - reduce(fn, init) { - return this._results.reduce(fn, init); - } - forEach(fn) { - this._results.forEach(fn); - } - some(fn) { - return this._results.some(fn); - } - toArray() { - return this._results.slice(); - } - toString() { - return this._results.toString(); - } - reset(resultsTree, identityAccessor) { - this.dirty = false; - const newResultFlat = flatten(resultsTree); - if (this._changesDetected = !arrayEquals(this._results, newResultFlat, identityAccessor)) { - this._results = newResultFlat; - this.length = newResultFlat.length; - this.last = newResultFlat[this.length - 1]; - this.first = newResultFlat[0]; - } - } - notifyOnChanges() { - if (this._changes !== void 0 && (this._changesDetected || !this._emitDistinctChangesOnly)) this._changes.next(this); - } - onDirty(cb) { - this._onDirty = cb; - } - setDirty() { - this.dirty = true; - this._onDirty?.(); - } - destroy() { - if (this._changes !== void 0) { - this._changes.complete(); - this._changes.unsubscribe(); - } - } - [Symbol.iterator] = /* @__PURE__ */ (() => symbolIterator)(); -}; -function hasInSkipHydrationBlockFlag(tNode) { - return (tNode.flags & 128) === 128; -} -var ChangeDetectionStrategy; -(function(ChangeDetectionStrategy2) { - ChangeDetectionStrategy2[ChangeDetectionStrategy2["OnPush"] = 0] = "OnPush"; - ChangeDetectionStrategy2[ChangeDetectionStrategy2["Eager"] = 1] = "Eager"; - ChangeDetectionStrategy2[ChangeDetectionStrategy2["Default"] = 1] = "Default"; -})(ChangeDetectionStrategy || (ChangeDetectionStrategy = {})); -var TRACKED_LVIEWS = /* @__PURE__ */ new Map(); -var uniqueIdCounter = 0; -function getUniqueLViewId() { - return uniqueIdCounter++; -} -function registerLView(lView) { - ngDevMode && assertNumber(lView[ID], "LView must have an ID in order to be registered"); - TRACKED_LVIEWS.set(lView[ID], lView); -} -function getLViewById(id) { - ngDevMode && assertNumber(id, "ID used for LView lookup must be a number"); - return TRACKED_LVIEWS.get(id) || null; -} -function unregisterLView(lView) { - ngDevMode && assertNumber(lView[ID], "Cannot stop tracking an LView that does not have an ID"); - TRACKED_LVIEWS.delete(lView[ID]); -} -function getTrackedLViews() { - return TRACKED_LVIEWS; -} -var LContext = class { - lViewId; - nodeIndex; - native; - component; - directives; - localRefs; - get lView() { - return getLViewById(this.lViewId); - } - constructor(lViewId, nodeIndex, native) { - this.lViewId = lViewId; - this.nodeIndex = nodeIndex; - this.native = native; - } -}; -function getLContext(target) { - let mpValue = readPatchedData(target); - if (mpValue) { - if (isLView(mpValue)) { - const lView = mpValue; - let nodeIndex; - let component = void 0; - let directives = void 0; - if (isComponentInstance(target)) { - nodeIndex = findViaComponent(lView, target); - if (nodeIndex == -1) { - throw new Error("The provided component was not found in the application"); - } - component = target; - } else if (isDirectiveInstance(target)) { - nodeIndex = findViaDirective(lView, target); - if (nodeIndex == -1) { - throw new Error("The provided directive was not found in the application"); - } - directives = getDirectivesAtNodeIndex(nodeIndex, lView); - } else { - nodeIndex = findViaNativeElement(lView, target); - if (nodeIndex == -1) { - return null; - } - } - const native = unwrapRNode(lView[nodeIndex]); - const existingCtx = readPatchedData(native); - const context2 = existingCtx && !Array.isArray(existingCtx) ? existingCtx : createLContext(lView, nodeIndex, native); - if (component && context2.component === void 0) { - context2.component = component; - attachPatchData(context2.component, context2); - } - if (directives && context2.directives === void 0) { - context2.directives = directives; - for (let i = 0; i < directives.length; i++) { - attachPatchData(directives[i], context2); - } - } - attachPatchData(context2.native, context2); - mpValue = context2; - } - } else { - const rElement = target; - ngDevMode && assertDomNode(rElement); - let parent = rElement; - while (parent = parent.parentNode) { - const parentContext = readPatchedData(parent); - if (parentContext) { - const lView = Array.isArray(parentContext) ? parentContext : parentContext.lView; - if (!lView) { - return null; - } - const index = findViaNativeElement(lView, rElement); - if (index >= 0) { - const native = unwrapRNode(lView[index]); - const context2 = createLContext(lView, index, native); - attachPatchData(native, context2); - mpValue = context2; - break; - } - } - } - } - return mpValue || null; -} -function createLContext(lView, nodeIndex, native) { - return new LContext(lView[ID], nodeIndex, native); -} -function getComponentViewByInstance(componentInstance) { - let patchedData = readPatchedData(componentInstance); - let lView; - if (isLView(patchedData)) { - const contextLView = patchedData; - const nodeIndex = findViaComponent(contextLView, componentInstance); - lView = getComponentLViewByIndex(nodeIndex, contextLView); - const context2 = createLContext(contextLView, nodeIndex, lView[HOST]); - context2.component = componentInstance; - attachPatchData(componentInstance, context2); - attachPatchData(context2.native, context2); - } else { - const context2 = patchedData; - const contextLView = context2.lView; - ngDevMode && assertLView(contextLView); - lView = getComponentLViewByIndex(context2.nodeIndex, contextLView); - } - return lView; -} -var MONKEY_PATCH_KEY_NAME = "__ngContext__"; -function attachPatchData(target, data) { - ngDevMode && assertDefined(target, "Target expected"); - if (isLView(data)) { - target[MONKEY_PATCH_KEY_NAME] = data[ID]; - registerLView(data); - } else { - target[MONKEY_PATCH_KEY_NAME] = data; - } -} -function readPatchedData(target) { - ngDevMode && assertDefined(target, "Target expected"); - const data = target[MONKEY_PATCH_KEY_NAME]; - return typeof data === "number" ? getLViewById(data) : data || null; -} -function readPatchedLView(target) { - const value = readPatchedData(target); - if (value) { - return isLView(value) ? value : value.lView; - } - return null; -} -function isComponentInstance(instance) { - return instance && instance.constructor && instance.constructor.\u0275cmp; -} -function isDirectiveInstance(instance) { - return instance && instance.constructor && instance.constructor.\u0275dir; -} -function findViaNativeElement(lView, target) { - const tView = lView[TVIEW]; - for (let i = HEADER_OFFSET; i < tView.bindingStartIndex; i++) { - if (unwrapRNode(lView[i]) === target) { - return i; - } - } - return -1; -} -function traverseNextElement(tNode) { - if (tNode.child) { - return tNode.child; - } else if (tNode.next) { - return tNode.next; - } else { - while (tNode.parent && !tNode.parent.next) { - tNode = tNode.parent; - } - return tNode.parent && tNode.parent.next; - } -} -function findViaComponent(lView, componentInstance) { - const componentIndices = lView[TVIEW].components; - if (componentIndices) { - for (let i = 0; i < componentIndices.length; i++) { - const elementComponentIndex = componentIndices[i]; - const componentView = getComponentLViewByIndex(elementComponentIndex, lView); - if (componentView[CONTEXT] === componentInstance) { - return elementComponentIndex; - } - } - } else { - const rootComponentView = getComponentLViewByIndex(HEADER_OFFSET, lView); - const rootComponent = rootComponentView[CONTEXT]; - if (rootComponent === componentInstance) { - return HEADER_OFFSET; - } - } - return -1; -} -function findViaDirective(lView, directiveInstance) { - let tNode = lView[TVIEW].firstChild; - while (tNode) { - const directiveIndexStart = tNode.directiveStart; - const directiveIndexEnd = tNode.directiveEnd; - for (let i = directiveIndexStart; i < directiveIndexEnd; i++) { - if (lView[i] === directiveInstance) { - return tNode.index; - } - } - tNode = traverseNextElement(tNode); - } - return -1; -} -function getDirectivesAtNodeIndex(nodeIndex, lView) { - const tNode = lView[TVIEW].data[nodeIndex]; - if (tNode.directiveStart === 0) return EMPTY_ARRAY; - const results = []; - for (let i = tNode.directiveStart; i < tNode.directiveEnd; i++) { - const directiveInstance = lView[i]; - if (!isComponentInstance(directiveInstance)) { - results.push(directiveInstance); - } - } - return results; -} -function getComponentAtNodeIndex(nodeIndex, lView) { - const tNode = lView[TVIEW].data[nodeIndex]; - return isComponentHost(tNode) ? lView[tNode.directiveStart + tNode.componentOffset] : null; -} -function getRootView(componentOrLView) { - ngDevMode && assertDefined(componentOrLView, "component"); - let lView = isLView(componentOrLView) ? componentOrLView : readPatchedLView(componentOrLView); - while (lView && !isRootView(lView)) { - lView = getLViewParent(lView); - } - ngDevMode && assertLView(lView); - return lView; -} -function getRootContext(viewOrComponent) { - const rootView = getRootView(viewOrComponent); - ngDevMode && assertDefined(rootView[CONTEXT], "Root view has no context. Perhaps it is disconnected?"); - return rootView[CONTEXT]; -} -function getFirstLContainer(lView) { - return getNearestLContainer(lView[CHILD_HEAD]); -} -function getNextLContainer(container) { - return getNearestLContainer(container[NEXT]); -} -function getNearestLContainer(viewOrContainer) { - while (viewOrContainer !== null && !isLContainer(viewOrContainer)) { - viewOrContainer = viewOrContainer[NEXT]; - } - return viewOrContainer; -} -function getComponent(element) { - ngDevMode && assertDomElement(element); - const context2 = getLContext(element); - if (context2 === null) return null; - if (context2.component === void 0) { - const lView = context2.lView; - if (lView === null) { - return null; - } - context2.component = getComponentAtNodeIndex(context2.nodeIndex, lView); - } - return context2.component; -} -function getContext(element) { - assertDomElement(element); - const context2 = getLContext(element); - const lView = context2 ? context2.lView : null; - return lView === null ? null : lView[CONTEXT]; -} -function getOwningComponent(elementOrDir) { - const context2 = getLContext(elementOrDir); - let lView = context2 ? context2.lView : null; - if (lView === null) return null; - let parent; - while (lView[TVIEW].type === 2 && (parent = getLViewParent(lView))) { - lView = parent; - } - return isRootView(lView) ? null : lView[CONTEXT]; -} -function getRootComponents(elementOrDir) { - const lView = readPatchedLView(elementOrDir); - return lView !== null ? [getRootContext(lView)] : []; -} -function getInjector(elementOrDir) { - const context2 = getLContext(elementOrDir); - const lView = context2 ? context2.lView : null; - if (lView === null) return Injector.NULL; - const tNode = lView[TVIEW].data[context2.nodeIndex]; - return new NodeInjector(tNode, lView); -} -function getDirectives(node) { - if (node instanceof Text) { - return []; - } - const context2 = getLContext(node); - const lView = context2 ? context2.lView : null; - if (lView === null) { - return []; - } - const tView = lView[TVIEW]; - const nodeIndex = context2.nodeIndex; - if (!tView?.data[nodeIndex]) { - return []; - } - if (context2.directives === void 0) { - context2.directives = getDirectivesAtNodeIndex(nodeIndex, lView); - } - return context2.directives === null ? [] : [...context2.directives]; -} -var AcxChangeDetectionStrategy; -(function(AcxChangeDetectionStrategy2) { - AcxChangeDetectionStrategy2[AcxChangeDetectionStrategy2["Default"] = 0] = "Default"; - AcxChangeDetectionStrategy2[AcxChangeDetectionStrategy2["OnPush"] = 1] = "OnPush"; -})(AcxChangeDetectionStrategy || (AcxChangeDetectionStrategy = {})); -var AcxViewEncapsulation; -(function(AcxViewEncapsulation2) { - AcxViewEncapsulation2[AcxViewEncapsulation2["Emulated"] = 0] = "Emulated"; - AcxViewEncapsulation2[AcxViewEncapsulation2["None"] = 1] = "None"; -})(AcxViewEncapsulation || (AcxViewEncapsulation = {})); -function getDirectiveMetadata$1(directiveOrComponentInstance) { - const { - constructor - } = directiveOrComponentInstance; - if (!constructor) { - throw new Error("Unable to find the instance constructor"); - } - const componentDef = getComponentDef(constructor); - if (componentDef) { - const inputs = extractInputDebugMetadata(componentDef.inputs); - return { - inputs, - outputs: componentDef.outputs, - encapsulation: componentDef.encapsulation, - changeDetection: componentDef.onPush ? ChangeDetectionStrategy.OnPush : ChangeDetectionStrategy.Eager - }; - } - const directiveDef = getDirectiveDef(constructor); - if (directiveDef) { - const inputs = extractInputDebugMetadata(directiveDef.inputs); - return { - inputs, - outputs: directiveDef.outputs - }; - } - return null; -} -function getHostElement(componentOrDirective) { - return getLContext(componentOrDirective).native; -} -function getListeners(element) { - ngDevMode && assertDomElement(element); - const lContext = getLContext(element); - const lView = lContext === null ? null : lContext.lView; - if (lView === null) return []; - const tView = lView[TVIEW]; - const lCleanup = lView[CLEANUP]; - const tCleanup = tView.cleanup; - const listeners = []; - if (tCleanup && lCleanup) { - for (let i = 0; i < tCleanup.length; ) { - const firstParam = tCleanup[i++]; - const secondParam = tCleanup[i++]; - if (typeof firstParam === "string") { - const name = firstParam; - const listenerElement = unwrapRNode(lView[secondParam]); - const callback = lCleanup[tCleanup[i++]]; - const useCaptureOrIndx = tCleanup[i++]; - const type = typeof useCaptureOrIndx === "boolean" || useCaptureOrIndx >= 0 ? "dom" : "output"; - const useCapture = typeof useCaptureOrIndx === "boolean" ? useCaptureOrIndx : false; - if (element == listenerElement) { - listeners.push({ - element, - name, - callback, - useCapture, - type - }); - } - } - } - } - listeners.sort(sortListeners); - return listeners; -} -function sortListeners(a, b) { - if (a.name == b.name) return 0; - return a.name < b.name ? -1 : 1; -} -function assertDomElement(value) { - if (typeof Element !== "undefined" && !(value instanceof Element)) { - throw new Error("Expecting instance of DOM Element"); - } -} -function extractInputDebugMetadata(inputs) { - const res = {}; - for (const key in inputs) { - if (inputs.hasOwnProperty(key)) { - const value = inputs[key]; - if (value !== void 0) { - res[key] = value[0]; - } - } - } - return res; -} -var DOCUMENT2 = void 0; -function setDocument(document2) { - DOCUMENT2 = document2; -} -function getDocument() { - if (DOCUMENT2 !== void 0) { - return DOCUMENT2; - } else if (typeof document !== "undefined") { - return document; - } - throw new RuntimeError(210, (typeof ngDevMode === "undefined" || ngDevMode) && `The document object is not available in this context. Make sure the DOCUMENT injection token is provided.`); -} -var APP_ID = new InjectionToken(typeof ngDevMode !== "undefined" && ngDevMode ? "AppId" : "", { - factory: () => DEFAULT_APP_ID -}); -var DEFAULT_APP_ID = "ng"; -var validAppIdInitializer = { - provide: ENVIRONMENT_INITIALIZER, - multi: true, - useValue: () => { - const appId = inject2(APP_ID); - const isAlphanumeric = /^[a-zA-Z0-9\-_]+$/.test(appId); - if (!isAlphanumeric) { - throw new RuntimeError(211, `APP_ID value "${appId}" is not alphanumeric. The APP_ID must be a string of alphanumeric characters. (a-zA-Z0-9), hyphens (-) and underscores (_) are allowed.`); - } - } -}; -var PLATFORM_INITIALIZER = new InjectionToken(typeof ngDevMode !== "undefined" && ngDevMode ? "Platform Initializer" : ""); -var PLATFORM_ID = new InjectionToken(typeof ngDevMode !== "undefined" && ngDevMode ? "Platform ID" : "", { - providedIn: "platform", - factory: () => "unknown" -}); -var ANIMATION_MODULE_TYPE = new InjectionToken(typeof ngDevMode !== "undefined" && ngDevMode ? "AnimationModuleType" : ""); -var CSP_NONCE = new InjectionToken(typeof ngDevMode !== "undefined" && ngDevMode ? "CSP nonce" : "", { - factory: () => { - return inject2(DOCUMENT).body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce") || null; - } -}); -var IMAGE_CONFIG_DEFAULTS = { - breakpoints: [16, 32, 48, 64, 96, 128, 256, 384, 640, 750, 828, 1080, 1200, 1920, 2048, 3840], - placeholderResolution: 30, - disableImageSizeWarning: false, - disableImageLazyLoadWarning: false -}; -var IMAGE_CONFIG = new InjectionToken(typeof ngDevMode !== "undefined" && ngDevMode ? "ImageConfig" : "", { - factory: () => IMAGE_CONFIG_DEFAULTS -}); -function makeStateKey(key) { - return key; -} -var TransferState = class _TransferState { - static \u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({ - token: _TransferState, - providedIn: "root", - factory: () => { - const transferState = new _TransferState(); - if (true) { - transferState.store = retrieveTransferredState(inject2(DOCUMENT), inject2(APP_ID)); - } - return transferState; - } - }); - store = {}; - onSerializeCallbacks = {}; - get(key, defaultValue) { - return this.store[key] !== void 0 ? this.store[key] : defaultValue; - } - set(key, value) { - this.store[key] = value; - } - remove(key) { - delete this.store[key]; - } - hasKey(key) { - return this.store.hasOwnProperty(key); - } - get isEmpty() { - return Object.keys(this.store).length === 0; - } - onSerialize(key, callback) { - this.onSerializeCallbacks[key] = callback; - } - toJson() { - for (const key in this.onSerializeCallbacks) { - if (this.onSerializeCallbacks.hasOwnProperty(key)) { - try { - this.store[key] = this.onSerializeCallbacks[key](); - } catch (e) { - console.warn("Exception in onSerialize callback: ", e); - } - } - } - return JSON.stringify(this.store).replace(/ PRESERVE_HOST_CONTENT_DEFAULT -}); -var IS_I18N_HYDRATION_ENABLED = new InjectionToken(typeof ngDevMode === "undefined" || ngDevMode ? "IS_I18N_HYDRATION_ENABLED" : ""); -var IS_EVENT_REPLAY_ENABLED = new InjectionToken(typeof ngDevMode === "undefined" || ngDevMode ? "IS_EVENT_REPLAY_ENABLED" : ""); -var EVENT_REPLAY_QUEUE = new InjectionToken(typeof ngDevMode !== "undefined" && ngDevMode ? "EVENT_REPLAY_QUEUE" : "", { - factory: () => [] -}); -var IS_INCREMENTAL_HYDRATION_ENABLED = new InjectionToken(typeof ngDevMode === "undefined" || ngDevMode ? "IS_INCREMENTAL_HYDRATION_ENABLED" : ""); -var JSACTION_BLOCK_ELEMENT_MAP = new InjectionToken(typeof ngDevMode !== "undefined" && ngDevMode ? "JSACTION_BLOCK_ELEMENT_MAP" : "", { - factory: () => /* @__PURE__ */ new Map() -}); -var IS_ENABLED_BLOCKING_INITIAL_NAVIGATION = new InjectionToken(typeof ngDevMode === "undefined" || ngDevMode ? "IS_ENABLED_BLOCKING_INITIAL_NAVIGATION" : ""); -var eventListenerOptions = { - passive: true, - capture: true -}; -var hoverTriggers = /* @__PURE__ */ new WeakMap(); -var interactionTriggers = /* @__PURE__ */ new WeakMap(); -var viewportTriggers = /* @__PURE__ */ new WeakMap(); -var interactionEventNames = ["click", "keydown"]; -var hoverEventNames = ["mouseenter", "mouseover", "focusin"]; -var intersectionObservers = /* @__PURE__ */ new Map(); -var DeferEventEntry = class { - callbacks = /* @__PURE__ */ new Set(); - listener = () => { - for (const callback of this.callbacks) { - callback(); - } - }; -}; -function onInteraction(trigger, callback) { - let entry = interactionTriggers.get(trigger); - if (!entry) { - entry = new DeferEventEntry(); - interactionTriggers.set(trigger, entry); - for (const name of interactionEventNames) { - trigger.addEventListener(name, entry.listener, eventListenerOptions); - } - } - entry.callbacks.add(callback); - return () => { - const { - callbacks, - listener - } = entry; - callbacks.delete(callback); - if (callbacks.size === 0) { - interactionTriggers.delete(trigger); - for (const name of interactionEventNames) { - trigger.removeEventListener(name, listener, eventListenerOptions); - } - } - }; -} -function onHover(trigger, callback) { - let entry = hoverTriggers.get(trigger); - if (!entry) { - entry = new DeferEventEntry(); - hoverTriggers.set(trigger, entry); - for (const name of hoverEventNames) { - trigger.addEventListener(name, entry.listener, eventListenerOptions); - } - } - entry.callbacks.add(callback); - return () => { - const { - callbacks, - listener - } = entry; - callbacks.delete(callback); - if (callbacks.size === 0) { - for (const name of hoverEventNames) { - trigger.removeEventListener(name, listener, eventListenerOptions); - } - hoverTriggers.delete(trigger); - } - }; -} -function createIntersectionObserver(options) { - const key = getIntersectionObserverKey(options); - return new IntersectionObserver((entries) => { - for (const current of entries) { - if (current.isIntersecting && viewportTriggers.has(current.target)) { - viewportTriggers.get(current.target)?.get(key)?.listener(); - } - } - }, options); -} -function onViewport(trigger, callback, observerFactoryFn, options) { - const key = getIntersectionObserverKey(options); - let entry = viewportTriggers.get(trigger)?.get(key); - if (!intersectionObservers.has(key)) { - intersectionObservers.set(key, { - observer: observerFactoryFn(options), - count: 0 - }); - } - const config2 = intersectionObservers.get(key); - if (!entry) { - entry = new DeferEventEntry(); - config2.observer.observe(trigger); - let triggerConfig = viewportTriggers.get(trigger); - if (triggerConfig) { - triggerConfig.set(key, entry); - } else { - triggerConfig = /* @__PURE__ */ new Map(); - viewportTriggers.set(trigger, triggerConfig); - } - triggerConfig.set(key, entry); - config2.count++; - } - entry.callbacks.add(callback); - return () => { - if (!viewportTriggers.get(trigger)?.has(key)) { - return; - } - entry.callbacks.delete(callback); - if (entry.callbacks.size === 0) { - config2.observer.unobserve(trigger); - config2.count--; - const triggerConfig = viewportTriggers.get(trigger); - if (triggerConfig) { - triggerConfig.delete(key); - if (triggerConfig.size === 0) { - viewportTriggers.delete(trigger); - } - } - } - if (config2.count === 0) { - config2.observer.disconnect(); - intersectionObservers.delete(key); - } - }; -} -function getIntersectionObserverKey(options) { - if (!options) { - return ""; - } - return `${options.rootMargin}/${typeof options.threshold === "number" ? options.threshold : options.threshold?.join("\n")}`; -} -var JSACTION_EVENT_CONTRACT = new InjectionToken(typeof ngDevMode !== "undefined" && ngDevMode ? "EVENT_CONTRACT_DETAILS" : "", { - factory: () => ({}) -}); -var handledEventElements = /* @__PURE__ */ new WeakMap(); -function markEventHandledForElement(event, element) { - if (event == null || typeof event !== "object") return; - let elements = handledEventElements.get(event); - if (!elements) { - elements = /* @__PURE__ */ new WeakSet(); - handledEventElements.set(event, elements); - } - elements.add(element); -} -var _stashEventListenerImpl = (lView, target, eventName, wrappedListener) => { -}; -function stashEventListenerImpl(lView, target, eventName, wrappedListener) { - _stashEventListenerImpl(lView, target, eventName, wrappedListener); -} -var DEHYDRATED_BLOCK_REGISTRY = new InjectionToken(typeof ngDevMode !== "undefined" && ngDevMode ? "DEHYDRATED_BLOCK_REGISTRY" : ""); -function isDetachedByI18n(tNode) { - return (tNode.flags & 32) === 32; -} -var TRANSFER_STATE_TOKEN_ID = "__nghData__"; -var NGH_DATA_KEY = makeStateKey(TRANSFER_STATE_TOKEN_ID); -var TRANSFER_STATE_DEFER_BLOCKS_INFO = "__nghDeferData__"; -var NGH_DEFER_BLOCKS_KEY = makeStateKey(TRANSFER_STATE_DEFER_BLOCKS_INFO); -function isInternalHydrationTransferStateKey(key) { - return key === TRANSFER_STATE_TOKEN_ID || key === TRANSFER_STATE_DEFER_BLOCKS_INFO; -} -var _retrieveHydrationInfoImpl = () => null; -function retrieveHydrationInfo(rNode, injector, isRootView2 = false) { - return _retrieveHydrationInfoImpl(rNode, injector, isRootView2); -} -function getLNodeForHydration(viewRef) { - let lView = viewRef._lView; - const tView = lView[TVIEW]; - if (tView.type === 2) { - return null; - } - if (isRootView(lView)) { - lView = lView[HEADER_OFFSET]; - } - return lView; -} -var HydrationStatus; -(function(HydrationStatus2) { - HydrationStatus2["Hydrated"] = "hydrated"; - HydrationStatus2["Skipped"] = "skipped"; - HydrationStatus2["Mismatched"] = "mismatched"; -})(HydrationStatus || (HydrationStatus = {})); -var HYDRATION_INFO_KEY = "__ngDebugHydrationInfo__"; -function patchHydrationInfo(node, info) { - node[HYDRATION_INFO_KEY] = info; -} -function markRNodeAsHavingHydrationMismatch(node, expectedNodeDetails = null, actualNodeDetails = null) { - if (!ngDevMode) { - throw new Error("Calling `markRNodeAsMismatchedByHydration` in prod mode is not supported and likely a mistake."); - } - while (node && !getComponent(node)) { - node = node?.parentNode; - } - if (node) { - patchHydrationInfo(node, { - status: HydrationStatus.Mismatched, - expectedNodeDetails, - actualNodeDetails - }); - } -} -function isIncrementalHydrationEnabled(injector) { - return injector.get(IS_INCREMENTAL_HYDRATION_ENABLED, false, { - optional: true - }); -} -var incrementalHydrationEnabledWarned = false; -function warnIncrementalHydrationNotConfigured() { - if (!incrementalHydrationEnabledWarned) { - incrementalHydrationEnabledWarned = true; - console.warn(formatRuntimeError(508, "Angular has detected that some `@defer` blocks use `hydrate` triggers, but incremental hydration was not enabled. Please ensure that the `withIncrementalHydration()` call is added as an argument for the `provideClientHydration()` function call in your application config.")); - } -} -function assertSsrIdDefined(ssrUniqueId) { - assertDefined(ssrUniqueId, "Internal error: expecting an SSR id for a defer block that should be hydrated, but the id is not present"); -} -function getParentBlockHydrationQueue(deferBlockId, injector) { - const dehydratedBlockRegistry = injector.get(DEHYDRATED_BLOCK_REGISTRY); - const transferState = injector.get(TransferState); - const deferBlockParents = transferState.get(NGH_DEFER_BLOCKS_KEY, {}); - let isTopMostDeferBlock = false; - let currentBlockId = deferBlockId; - let parentBlockPromise = null; - const hydrationQueue = []; - while (!isTopMostDeferBlock && currentBlockId) { - ngDevMode && assertEqual(hydrationQueue.indexOf(currentBlockId), -1, "Internal error: defer block hierarchy has a cycle."); - isTopMostDeferBlock = dehydratedBlockRegistry.has(currentBlockId); - const hydratingParentBlock = dehydratedBlockRegistry.hydrating.get(currentBlockId); - if (parentBlockPromise === null && hydratingParentBlock != null) { - parentBlockPromise = hydratingParentBlock.promise; - break; - } - hydrationQueue.unshift(currentBlockId); - currentBlockId = deferBlockParents[currentBlockId][DEFER_PARENT_BLOCK_ID]; - } - return { - parentBlockPromise, - hydrationQueue - }; -} -function refreshContentQueries(tView, lView) { - const contentQueries = tView.contentQueries; - if (contentQueries !== null) { - const prevConsumer = setActiveConsumer(null); - try { - for (let i = 0; i < contentQueries.length; i += 2) { - const queryStartIdx = contentQueries[i]; - const directiveDefIdx = contentQueries[i + 1]; - if (directiveDefIdx !== -1) { - const directiveDef = tView.data[directiveDefIdx]; - ngDevMode && assertDefined(directiveDef, "DirectiveDef not found."); - ngDevMode && assertDefined(directiveDef.contentQueries, "contentQueries function should be defined"); - setCurrentQueryIndex(queryStartIdx); - directiveDef.contentQueries(2, lView[directiveDefIdx], directiveDefIdx); - } - } - } finally { - setActiveConsumer(prevConsumer); - } - } -} -function executeViewQueryFn(flags, viewQueryFn, component) { - ngDevMode && assertDefined(viewQueryFn, "View queries function to execute must be defined."); - setCurrentQueryIndex(0); - const prevConsumer = setActiveConsumer(null); - try { - viewQueryFn(flags, component); - } finally { - setActiveConsumer(prevConsumer); - } -} -function executeContentQueries(tView, tNode, lView) { - if (isContentQueryHost(tNode)) { - const prevConsumer = setActiveConsumer(null); - try { - const start = tNode.directiveStart; - const end = tNode.directiveEnd; - for (let directiveIndex = start; directiveIndex < end; directiveIndex++) { - const def = tView.data[directiveIndex]; - if (def.contentQueries) { - const directiveInstance = lView[directiveIndex]; - ngDevMode && assertDefined(directiveIndex, "Incorrect reference to a directive defining a content query"); - def.contentQueries(1, directiveInstance, directiveIndex); - } - } - } finally { - setActiveConsumer(prevConsumer); - } - } -} -var ViewEncapsulation; -(function(ViewEncapsulation3) { - ViewEncapsulation3[ViewEncapsulation3["Emulated"] = 0] = "Emulated"; - ViewEncapsulation3[ViewEncapsulation3["None"] = 2] = "None"; - ViewEncapsulation3[ViewEncapsulation3["ShadowDom"] = 3] = "ShadowDom"; - ViewEncapsulation3[ViewEncapsulation3["ExperimentalIsolatedShadowDom"] = 4] = "ExperimentalIsolatedShadowDom"; -})(ViewEncapsulation || (ViewEncapsulation = {})); -var CUSTOM_ELEMENTS_SCHEMA = { - name: "custom-elements" -}; -var NO_ERRORS_SCHEMA = { - name: "no-errors-schema" -}; -var shouldThrowErrorOnUnknownElement = false; -var shouldThrowErrorOnUnknownProperty = false; -function validateElementIsKnown(lView, tNode) { - const tView = lView[TVIEW]; - if (tView.schemas === null) return; - const tagName = tNode.value; - if (!isDirectiveHost(tNode) && tagName !== null) { - const isUnknown = typeof HTMLUnknownElement !== "undefined" && HTMLUnknownElement && getNativeByTNode(tNode, lView) instanceof HTMLUnknownElement || typeof customElements !== "undefined" && tagName.indexOf("-") > -1 && !customElements.get(tagName); - if (isUnknown && !matchingSchemas(tView.schemas, tagName)) { - const isHostStandalone = isHostComponentStandalone(lView); - const templateLocation = getTemplateLocationDetails(lView); - const schemas = `'${isHostStandalone ? "@Component" : "@NgModule"}.schemas'`; - let message = `'${tagName}' is not a known element${templateLocation}: -`; - message += `1. If '${tagName}' is an Angular component, then verify that it is ${isHostStandalone ? "included in the '@Component.imports' of this component" : "a part of an @NgModule where this component is declared"}. -`; - if (tagName && tagName.indexOf("-") > -1) { - message += `2. If '${tagName}' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the ${schemas} of this component to suppress this message.`; - } else { - message += `2. To allow any element add 'NO_ERRORS_SCHEMA' to the ${schemas} of this component.`; - } - if (shouldThrowErrorOnUnknownElement) { - throw new RuntimeError(304, message); - } else { - console.error(formatRuntimeError(304, message)); - } - } - } -} -function isPropertyValid(element, propName, tagName, schemas) { - if (schemas === null) return true; - if (matchingSchemas(schemas, tagName) || propName in element || isAnimationProp(propName)) { - return true; - } - return typeof Node === "undefined" || Node === null || !(element instanceof Node); -} -function handleUnknownPropertyError(propName, tagName, nodeType, lView) { - if (!tagName && nodeType === 4) { - tagName = "ng-template"; - } - const isHostStandalone = isHostComponentStandalone(lView); - const templateLocation = getTemplateLocationDetails(lView); - let message = `Can't bind to '${propName}' since it isn't a known property of '${tagName}'${templateLocation}.`; - const schemas = `'${isHostStandalone ? "@Component" : "@NgModule"}.schemas'`; - const importLocation = isHostStandalone ? "included in the '@Component.imports' of this component" : "a part of an @NgModule where this component is declared"; - if (KNOWN_CONTROL_FLOW_DIRECTIVES.has(propName)) { - const correspondingImport = KNOWN_CONTROL_FLOW_DIRECTIVES.get(propName); - message += ` -If the '${propName}' is an Angular control flow directive, please make sure that either the '${correspondingImport}' directive or the 'CommonModule' is ${importLocation}.`; - } else { - message += ` -1. If '${tagName}' is an Angular component and it has the '${propName}' input, then verify that it is ${importLocation}.`; - if (tagName && tagName.indexOf("-") > -1) { - message += ` -2. If '${tagName}' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the ${schemas} of this component to suppress this message.`; - message += ` -3. To allow any property add 'NO_ERRORS_SCHEMA' to the ${schemas} of this component.`; - } else { - message += ` -2. To allow any property add 'NO_ERRORS_SCHEMA' to the ${schemas} of this component.`; - } - } - reportUnknownPropertyError(message); -} -function reportUnknownPropertyError(message) { - if (shouldThrowErrorOnUnknownProperty) { - throw new RuntimeError(303, message); - } else { - console.error(formatRuntimeError(303, message)); - } -} -function getDeclarationComponentDef(lView) { - !ngDevMode && throwError2("Must never be called in production mode"); - const declarationLView = lView[DECLARATION_COMPONENT_VIEW]; - const context2 = declarationLView[CONTEXT]; - if (!context2) return null; - return context2.constructor ? getComponentDef(context2.constructor) : null; -} -function isHostComponentStandalone(lView) { - !ngDevMode && throwError2("Must never be called in production mode"); - const componentDef = getDeclarationComponentDef(lView); - return !!componentDef?.standalone; -} -function getTemplateLocationDetails(lView) { - !ngDevMode && throwError2("Must never be called in production mode"); - const hostComponentDef = getDeclarationComponentDef(lView); - const componentClassName = hostComponentDef?.type?.name; - return componentClassName ? ` (used in the '${componentClassName}' component template)` : ""; -} -var KNOWN_CONTROL_FLOW_DIRECTIVES = /* @__PURE__ */ new Map([["ngIf", "NgIf"], ["ngFor", "NgFor"], ["ngSwitchCase", "NgSwitchCase"], ["ngSwitchDefault", "NgSwitchDefault"]]); -function matchingSchemas(schemas, tagName) { - if (schemas !== null) { - for (let i = 0; i < schemas.length; i++) { - const schema = schemas[i]; - if (schema === NO_ERRORS_SCHEMA || schema === CUSTOM_ELEMENTS_SCHEMA && tagName && tagName.indexOf("-") > -1) { - return true; - } - } - } - return false; -} -var policy$1; -function getPolicy$1() { - if (policy$1 === void 0) { - policy$1 = null; - if (_global.trustedTypes) { - try { - policy$1 = _global.trustedTypes.createPolicy("angular", { - createHTML: (s) => s, - createScript: (s) => s, - createScriptURL: (s) => s - }); - } catch { - } - } - } - return policy$1; -} -function trustedHTMLFromString(html) { - return getPolicy$1()?.createHTML(html) || html; -} -function trustedScriptURLFromString(url) { - return getPolicy$1()?.createScriptURL(url) || url; -} -var policy; -function getPolicy() { - if (policy === void 0) { - policy = null; - if (_global.trustedTypes) { - try { - policy = _global.trustedTypes.createPolicy("angular#unsafe-bypass", { - createHTML: (s) => s, - createScript: (s) => s, - createScriptURL: (s) => s - }); - } catch { - } - } - } - return policy; -} -function trustedHTMLFromStringBypass(html) { - return getPolicy()?.createHTML(html) || html; -} -function trustedScriptFromStringBypass(script) { - return getPolicy()?.createScript(script) || script; -} -function trustedScriptURLFromStringBypass(url) { - return getPolicy()?.createScriptURL(url) || url; -} -var SafeValueImpl = class { - changingThisBreaksApplicationSecurity; - constructor(changingThisBreaksApplicationSecurity) { - this.changingThisBreaksApplicationSecurity = changingThisBreaksApplicationSecurity; - } - toString() { - return `SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${XSS_SECURITY_URL})`; - } -}; -var SafeHtmlImpl = class extends SafeValueImpl { - getTypeName() { - return "HTML"; - } -}; -var SafeStyleImpl = class extends SafeValueImpl { - getTypeName() { - return "Style"; - } -}; -var SafeScriptImpl = class extends SafeValueImpl { - getTypeName() { - return "Script"; - } -}; -var SafeUrlImpl = class extends SafeValueImpl { - getTypeName() { - return "URL"; - } -}; -var SafeResourceUrlImpl = class extends SafeValueImpl { - getTypeName() { - return "ResourceURL"; - } -}; -function unwrapSafeValue(value) { - return value instanceof SafeValueImpl ? value.changingThisBreaksApplicationSecurity : value; -} -function allowSanitizationBypassAndThrow(value, type) { - const actualType = getSanitizationBypassType(value); - if (actualType != null && actualType !== type) { - if (actualType === "ResourceURL" && type === "URL") return true; - throw new Error(`Required a safe ${type}, got a ${actualType} (see ${XSS_SECURITY_URL})`); - } - return actualType === type; -} -function getSanitizationBypassType(value) { - return value instanceof SafeValueImpl && value.getTypeName() || null; -} -function bypassSanitizationTrustHtml(trustedHtml) { - return new SafeHtmlImpl(trustedHtml); -} -function bypassSanitizationTrustStyle(trustedStyle) { - return new SafeStyleImpl(trustedStyle); -} -function bypassSanitizationTrustScript(trustedScript) { - return new SafeScriptImpl(trustedScript); -} -function bypassSanitizationTrustUrl(trustedUrl) { - return new SafeUrlImpl(trustedUrl); -} -function bypassSanitizationTrustResourceUrl(trustedResourceUrl) { - return new SafeResourceUrlImpl(trustedResourceUrl); -} -function getInertBodyHelper(defaultDoc) { - const inertDocumentHelper = new InertDocumentHelper(defaultDoc); - return isDOMParserAvailable() ? new DOMParserHelper(inertDocumentHelper) : inertDocumentHelper; -} -var DOMParserHelper = class { - inertDocumentHelper; - constructor(inertDocumentHelper) { - this.inertDocumentHelper = inertDocumentHelper; - } - getInertBodyElement(html) { - html = "" + html; - try { - const body = new window.DOMParser().parseFromString(trustedHTMLFromString(html), "text/html").body; - if (body === null) { - return this.inertDocumentHelper.getInertBodyElement(html); - } - body.firstChild?.remove(); - return body; - } catch { - return null; - } - } -}; -var InertDocumentHelper = class { - defaultDoc; - inertDocument; - constructor(defaultDoc) { - this.defaultDoc = defaultDoc; - this.inertDocument = this.defaultDoc.implementation.createHTMLDocument("sanitization-inert"); - } - getInertBodyElement(html) { - const templateEl = this.inertDocument.createElement("template"); - templateEl.innerHTML = trustedHTMLFromString(html); - return templateEl; - } -}; -function isDOMParserAvailable() { - try { - return !!new window.DOMParser().parseFromString(trustedHTMLFromString(""), "text/html"); - } catch { - return false; - } -} -var SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i; -function _sanitizeUrl(url) { - url = String(url); - if (url.match(SAFE_URL_PATTERN)) return url; - if (typeof ngDevMode === "undefined" || ngDevMode) { - console.warn(`WARNING: sanitizing unsafe URL value ${url} (see ${XSS_SECURITY_URL})`); - } - return "unsafe:" + url; -} -function tagSet(tags) { - const res = {}; - for (const t of tags.split(",")) res[t] = true; - return res; -} -function merge(...sets) { - const res = {}; - for (const s of sets) { - for (const v in s) { - if (s.hasOwnProperty(v)) res[v] = true; - } - } - return res; -} -var VOID_ELEMENTS = tagSet("area,br,col,hr,img,wbr"); -var OPTIONAL_END_TAG_BLOCK_ELEMENTS = tagSet("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"); -var OPTIONAL_END_TAG_INLINE_ELEMENTS = tagSet("rp,rt"); -var OPTIONAL_END_TAG_ELEMENTS = merge(OPTIONAL_END_TAG_INLINE_ELEMENTS, OPTIONAL_END_TAG_BLOCK_ELEMENTS); -var BLOCK_ELEMENTS = merge(OPTIONAL_END_TAG_BLOCK_ELEMENTS, tagSet("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")); -var INLINE_ELEMENTS = merge(OPTIONAL_END_TAG_INLINE_ELEMENTS, tagSet("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")); -var VALID_ELEMENTS = merge(VOID_ELEMENTS, BLOCK_ELEMENTS, INLINE_ELEMENTS, OPTIONAL_END_TAG_ELEMENTS); -var URI_ATTRS = tagSet("background,cite,href,itemtype,longdesc,poster,src,xlink:href"); -var HTML_ATTRS = tagSet("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"); -var ARIA_ATTRS = tagSet("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext"); -var VALID_ATTRS = merge(URI_ATTRS, HTML_ATTRS, ARIA_ATTRS); -var SKIP_TRAVERSING_CONTENT_IF_INVALID_ELEMENTS = tagSet("script,style,template"); -var SanitizingHtmlSerializer = class { - sanitizedSomething = false; - buf = []; - sanitizeChildren(el) { - let current = el.firstChild; - let traverseContent = true; - let parentNodes = []; - while (current) { - if (current.nodeType === Node.ELEMENT_NODE) { - traverseContent = this.startElement(current); - } else if (current.nodeType === Node.TEXT_NODE) { - this.chars(current.nodeValue); - } else { - this.sanitizedSomething = true; - } - if (traverseContent && current.firstChild) { - parentNodes.push(current); - current = getFirstChild(current); - continue; - } - while (current) { - if (current.nodeType === Node.ELEMENT_NODE) { - this.endElement(current); - } - let next = getNextSibling(current); - if (next) { - current = next; - break; - } - current = parentNodes.pop(); - } - } - return this.buf.join(""); - } - startElement(element) { - const tagName = getNodeName(element).toLowerCase(); - if (!VALID_ELEMENTS.hasOwnProperty(tagName)) { - this.sanitizedSomething = true; - return !SKIP_TRAVERSING_CONTENT_IF_INVALID_ELEMENTS.hasOwnProperty(tagName); - } - this.buf.push("<"); - this.buf.push(tagName); - const elAttrs = element.attributes; - for (let i = 0; i < elAttrs.length; i++) { - const elAttr = elAttrs.item(i); - const attrName = elAttr.name; - const lower = attrName.toLowerCase(); - if (!VALID_ATTRS.hasOwnProperty(lower)) { - this.sanitizedSomething = true; - continue; - } - let value = elAttr.value; - if (URI_ATTRS[lower]) value = _sanitizeUrl(value); - this.buf.push(" ", attrName, '="', encodeEntities(value), '"'); - } - this.buf.push(">"); - return true; - } - endElement(current) { - const tagName = getNodeName(current).toLowerCase(); - if (VALID_ELEMENTS.hasOwnProperty(tagName) && !VOID_ELEMENTS.hasOwnProperty(tagName)) { - this.buf.push(""); - } - } - chars(chars) { - this.buf.push(encodeEntities(chars)); - } -}; -function isClobberedElement(parentNode, childNode) { - return (parentNode.compareDocumentPosition(childNode) & Node.DOCUMENT_POSITION_CONTAINED_BY) !== Node.DOCUMENT_POSITION_CONTAINED_BY; -} -function getNextSibling(node) { - const nextSibling = node.nextSibling; - if (nextSibling && node !== nextSibling.previousSibling) { - throw clobberedElementError(nextSibling); - } - return nextSibling; -} -function getFirstChild(node) { - const firstChild = node.firstChild; - if (firstChild && isClobberedElement(node, firstChild)) { - throw clobberedElementError(firstChild); - } - return firstChild; -} -function getNodeName(node) { - const nodeName = node.nodeName; - return typeof nodeName === "string" ? nodeName : "FORM"; -} -function clobberedElementError(node) { - return new Error(`Failed to sanitize html because the element is clobbered: ${node.outerHTML}`); -} -var SURROGATE_PAIR_REGEXP = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; -var NON_ALPHANUMERIC_REGEXP = /([^\#-~ |!])/g; -function encodeEntities(value) { - return value.replace(/&/g, "&").replace(SURROGATE_PAIR_REGEXP, function(match2) { - const hi = match2.charCodeAt(0); - const low = match2.charCodeAt(1); - return "&#" + ((hi - 55296) * 1024 + (low - 56320) + 65536) + ";"; - }).replace(NON_ALPHANUMERIC_REGEXP, function(match2) { - return "&#" + match2.charCodeAt(0) + ";"; - }).replace(//g, ">"); -} -var inertBodyHelper; -function _sanitizeHtml(defaultDoc, unsafeHtmlInput) { - let inertBodyElement = null; - try { - inertBodyHelper = inertBodyHelper || getInertBodyHelper(defaultDoc); - let unsafeHtml = unsafeHtmlInput ? String(unsafeHtmlInput) : ""; - inertBodyElement = inertBodyHelper.getInertBodyElement(unsafeHtml); - let mXSSAttempts = 5; - let parsedHtml = unsafeHtml; - do { - if (mXSSAttempts === 0) { - throw new Error("Failed to sanitize html because the input is unstable"); - } - mXSSAttempts--; - unsafeHtml = parsedHtml; - parsedHtml = inertBodyElement.innerHTML; - inertBodyElement = inertBodyHelper.getInertBodyElement(unsafeHtml); - } while (unsafeHtml !== parsedHtml); - const sanitizer = new SanitizingHtmlSerializer(); - const safeHtml = sanitizer.sanitizeChildren(getTemplateContent(inertBodyElement) || inertBodyElement); - if ((typeof ngDevMode === "undefined" || ngDevMode) && sanitizer.sanitizedSomething) { - console.warn(`WARNING: sanitizing HTML stripped some content, see ${XSS_SECURITY_URL}`); - } - return trustedHTMLFromString(safeHtml); - } finally { - if (inertBodyElement) { - const parent = getTemplateContent(inertBodyElement) || inertBodyElement; - while (parent.firstChild) { - parent.firstChild.remove(); - } - } - } -} -function getTemplateContent(el) { - return "content" in el && isTemplateElement(el) ? el.content : null; -} -function isTemplateElement(el) { - return el.nodeType === Node.ELEMENT_NODE && el.nodeName === "TEMPLATE"; -} -var COMMENT_DISALLOWED = /^>|^->||--!>|)/g; -var COMMENT_DELIMITER_ESCAPED = "\u200B$1\u200B"; -function escapeCommentText(value) { - return value.replace(COMMENT_DISALLOWED, (text) => text.replace(COMMENT_DELIMITER, COMMENT_DELIMITER_ESCAPED)); -} -function createTextNode(renderer, value) { - return renderer.createText(value); -} -function updateTextNode(renderer, rNode, value) { - renderer.setValue(rNode, value); -} -function createCommentNode(renderer, value) { - return renderer.createComment(escapeCommentText(value)); -} -function createElementNode(renderer, name, namespace) { - return renderer.createElement(name, namespace); -} -function nativeInsertBefore(renderer, parent, child, beforeNode, isMove) { - renderer.insertBefore(parent, child, beforeNode, isMove); -} -function nativeAppendChild(renderer, parent, child) { - ngDevMode && assertDefined(parent, "parent node must be defined"); - renderer.appendChild(parent, child); -} -function nativeAppendOrInsertBefore(renderer, parent, child, beforeNode, isMove) { - if (beforeNode !== null) { - nativeInsertBefore(renderer, parent, child, beforeNode, isMove); - } else { - nativeAppendChild(renderer, parent, child); - } -} -function nativeRemoveNode(renderer, rNode, isHostElement, requireSynchronousElementRemoval) { - renderer.removeChild(null, rNode, isHostElement, requireSynchronousElementRemoval); -} -function writeDirectStyle(renderer, element, newValue) { - ngDevMode && assertString(newValue, "'newValue' should be a string"); - renderer.setAttribute(element, "style", newValue); -} -function writeDirectClass(renderer, element, newValue) { - ngDevMode && assertString(newValue, "'newValue' should be a string"); - if (newValue === "") { - renderer.removeAttribute(element, "class"); - } else { - renderer.setAttribute(element, "class", newValue); - } -} -function setupStaticAttributes(renderer, element, tNode) { - const { - mergedAttrs, - classes, - styles - } = tNode; - if (mergedAttrs !== null) { - setUpAttributes(renderer, element, mergedAttrs); - } - if (classes !== null) { - writeDirectClass(renderer, element, classes); - } - if (styles !== null) { - writeDirectStyle(renderer, element, styles); - } -} -function enforceIframeSecurity(iframe) { - const lView = getLView(); - iframe.src = ""; - iframe.srcdoc = trustedHTMLFromString(""); - nativeRemoveNode(lView[RENDERER], iframe); -} -var SecurityContext; -(function(SecurityContext2) { - SecurityContext2[SecurityContext2["NONE"] = 0] = "NONE"; - SecurityContext2[SecurityContext2["HTML"] = 1] = "HTML"; - SecurityContext2[SecurityContext2["STYLE"] = 2] = "STYLE"; - SecurityContext2[SecurityContext2["SCRIPT"] = 3] = "SCRIPT"; - SecurityContext2[SecurityContext2["URL"] = 4] = "URL"; - SecurityContext2[SecurityContext2["RESOURCE_URL"] = 5] = "RESOURCE_URL"; - SecurityContext2[SecurityContext2["ATTRIBUTE_NO_BINDING"] = 6] = "ATTRIBUTE_NO_BINDING"; -})(SecurityContext || (SecurityContext = {})); -var _SECURITY_SCHEMA; -var SVG_NAMESPACE2 = "svg"; -var MATH_ML_NAMESPACE2 = "math"; -function SECURITY_SCHEMA() { - if (!_SECURITY_SCHEMA) { - _SECURITY_SCHEMA = {}; - registerContext(SecurityContext.HTML, void 0, [["iframe", ["srcdoc"]], ["*", ["innerHTML", "outerHTML"]]]); - registerContext(SecurityContext.STYLE, void 0, [["*", ["style"]]]); - registerContext(SecurityContext.URL, void 0, [["*", ["formAction"]], ["area", ["href"]], ["a", ["href", "xlink:href"]], ["form", ["action"]], ["img", ["src"]], ["video", ["src"]]]); - registerContext(SecurityContext.URL, MATH_ML_NAMESPACE2, [["annotation", ["href", "xlink:href"]], ["annotation-xml", ["href", "xlink:href"]], ["maction", ["href", "xlink:href"]], ["malignmark", ["href", "xlink:href"]], ["math", ["href", "xlink:href"]], ["mroot", ["href", "xlink:href"]], ["msqrt", ["href", "xlink:href"]], ["merror", ["href", "xlink:href"]], ["mfrac", ["href", "xlink:href"]], ["mglyph", ["href", "xlink:href"]], ["msub", ["href", "xlink:href"]], ["msup", ["href", "xlink:href"]], ["msubsup", ["href", "xlink:href"]], ["mmultiscripts", ["href", "xlink:href"]], ["mprescripts", ["href", "xlink:href"]], ["mi", ["href", "xlink:href"]], ["mn", ["href", "xlink:href"]], ["mo", ["href", "xlink:href"]], ["mpadded", ["href", "xlink:href"]], ["mphantom", ["href", "xlink:href"]], ["mrow", ["href", "xlink:href"]], ["ms", ["href", "xlink:href"]], ["mspace", ["href", "xlink:href"]], ["mstyle", ["href", "xlink:href"]], ["mtable", ["href", "xlink:href"]], ["mtd", ["href", "xlink:href"]], ["mtr", ["href", "xlink:href"]], ["mtext", ["href", "xlink:href"]], ["mover", ["href", "xlink:href"]], ["munder", ["href", "xlink:href"]], ["munderover", ["href", "xlink:href"]], ["semantics", ["href", "xlink:href"]], ["none", ["href", "xlink:href"]]]); - registerContext(SecurityContext.RESOURCE_URL, void 0, [["base", ["href"]], ["embed", ["src"]], ["frame", ["src"]], ["iframe", ["src"]], ["link", ["href"]], ["object", ["codebase", "data"]]]); - registerContext(SecurityContext.URL, SVG_NAMESPACE2, [["a", ["href", "xlink:href"]]]); - registerContext(SecurityContext.ATTRIBUTE_NO_BINDING, SVG_NAMESPACE2, [["animate", ["attributeName", "values", "to", "from"]], ["set", ["to", "attributeName"]], ["animateMotion", ["attributeName"]], ["animateTransform", ["attributeName"]]]); - registerContext(SecurityContext.ATTRIBUTE_NO_BINDING, void 0, [["unknown", ["attributeName", "values", "to", "from", "sandbox", "allow", "allowFullscreen", "referrerPolicy", "csp", "fetchPriority"]], ["iframe", ["sandbox", "allow", "allowFullscreen", "referrerPolicy", "csp", "fetchPriority"]]]); - } - return _SECURITY_SCHEMA; -} -function registerContext(ctx, namespace, specs) { - for (const [element, attributeNames] of specs) { - let tagName = namespace && element !== "*" && element !== "unknown" ? `:${namespace}:${element}` : element; - tagName = tagName.toLowerCase(); - for (const attr of attributeNames) { - _SECURITY_SCHEMA[`${tagName}|${attr.toLowerCase()}`] = ctx; - } - } -} -function \u0275\u0275sanitizeHtml(unsafeHtml) { - const sanitizer = getSanitizer(); - if (sanitizer) { - return trustedHTMLFromStringBypass(sanitizer.sanitize(SecurityContext.HTML, unsafeHtml) || ""); - } - if (allowSanitizationBypassAndThrow(unsafeHtml, "HTML")) { - return trustedHTMLFromStringBypass(unwrapSafeValue(unsafeHtml)); - } - return _sanitizeHtml(getDocument(), renderStringify(unsafeHtml)); -} -function \u0275\u0275sanitizeStyle(unsafeStyle) { - const sanitizer = getSanitizer(); - if (sanitizer) { - return sanitizer.sanitize(SecurityContext.STYLE, unsafeStyle) || ""; - } - if (allowSanitizationBypassAndThrow(unsafeStyle, "Style")) { - return unwrapSafeValue(unsafeStyle); - } - return renderStringify(unsafeStyle); -} -function \u0275\u0275sanitizeUrl(unsafeUrl) { - const sanitizer = getSanitizer(); - if (sanitizer) { - return sanitizer.sanitize(SecurityContext.URL, unsafeUrl) || ""; - } - if (allowSanitizationBypassAndThrow(unsafeUrl, "URL")) { - return unwrapSafeValue(unsafeUrl); - } - return _sanitizeUrl(renderStringify(unsafeUrl)); -} -function \u0275\u0275sanitizeResourceUrl(unsafeResourceUrl) { - const sanitizer = getSanitizer(); - if (sanitizer) { - return trustedScriptURLFromStringBypass(sanitizer.sanitize(SecurityContext.RESOURCE_URL, unsafeResourceUrl) || ""); - } - if (allowSanitizationBypassAndThrow(unsafeResourceUrl, "ResourceURL")) { - return trustedScriptURLFromStringBypass(unwrapSafeValue(unsafeResourceUrl)); - } - throw new RuntimeError(904, ngDevMode && `unsafe value used in a resource URL context (see ${XSS_SECURITY_URL})`); -} -function \u0275\u0275sanitizeScript(unsafeScript) { - const sanitizer = getSanitizer(); - if (sanitizer) { - return trustedScriptFromStringBypass(sanitizer.sanitize(SecurityContext.SCRIPT, unsafeScript) || ""); - } - if (allowSanitizationBypassAndThrow(unsafeScript, "Script")) { - return trustedScriptFromStringBypass(unwrapSafeValue(unsafeScript)); - } - throw new RuntimeError(905, ngDevMode && "unsafe value used in a script context"); -} -function \u0275\u0275trustConstantHtml(html) { - if (ngDevMode && (!Array.isArray(html) || !Array.isArray(html.raw) || html.length !== 1)) { - throw new Error(`Unexpected interpolation in trusted HTML constant: ${html.join("?")}`); - } - return trustedHTMLFromString(html[0]); -} -function \u0275\u0275trustConstantResourceUrl(url) { - if (ngDevMode && (!Array.isArray(url) || !Array.isArray(url.raw) || url.length !== 1)) { - throw new Error(`Unexpected interpolation in trusted URL constant: ${url.join("?")}`); - } - return trustedScriptURLFromString(url[0]); -} -var RESOURCE_MAP = { - "embed": { - "src": true - }, - "frame": { - "src": true - }, - "iframe": { - "src": true - }, - "media": { - "src": true - }, - "base": { - "href": true - }, - "link": { - "href": true - }, - "object": { - "data": true, - "codebase": true - } -}; -function getUrlSanitizer(tag, prop) { - const isResource = RESOURCE_MAP[tag.toLowerCase()]?.[prop.toLowerCase()] === true; - return isResource ? \u0275\u0275sanitizeResourceUrl : \u0275\u0275sanitizeUrl; -} -function \u0275\u0275sanitizeUrlOrResourceUrl(unsafeUrl, tag, prop) { - return getUrlSanitizer(tag, prop)(unsafeUrl); -} -function validateAgainstEventProperties(name) { - if (name.toLowerCase().startsWith("on")) { - const errorMessage = `Binding to event property '${name}' is disallowed for security reasons, please use (${name.slice(2)})=... -If '${name}' is a directive input, make sure the directive is imported by the current module.`; - throw new RuntimeError(306, errorMessage); - } -} -function getSanitizer() { - const lView = getLView(); - return lView && lView[ENVIRONMENT].sanitizer; -} -var SECURITY_SENSITIVE_ATTRIBUTE_NAMES = /* @__PURE__ */ new Set(["href", "xlink:href"]); -var SVG_ANIMATION_ATTRIBUTE_NAME_CANDIDATES = ["attributeName", "attributename"]; -var SECURITY_SENSITIVE_ELEMENTS = { - "iframe": { - "sandbox": true, - "allow": true, - "allowfullscreen": true, - "referrerpolicy": true, - "csp": true, - "fetchpriority": true - }, - ":svg:animate": { - "attributename": true, - "to": SECURITY_SENSITIVE_ATTRIBUTE_NAMES, - "values": SECURITY_SENSITIVE_ATTRIBUTE_NAMES, - "from": SECURITY_SENSITIVE_ATTRIBUTE_NAMES - }, - ":svg:set": { - "attributename": true, - "to": SECURITY_SENSITIVE_ATTRIBUTE_NAMES - }, - ":svg:animatemotion": { - "attributename": true - }, - ":svg:animatetransform": { - "attributename": true - } -}; -function \u0275\u0275validateAttribute(value, tagName, attributeName) { - const lowerCaseTagName = tagName.toLowerCase(); - const lowerCaseAttrName = attributeName.toLowerCase(); - const index = getSelectedIndex(); - const tNode = index === -1 ? null : getSelectedTNode(); - if (tNode && tNode.type !== 2) { - return value; - } - const fullTagName = lowerCaseTagName[0] !== ":" && tNode?.namespace ? `:${tNode.namespace}:${lowerCaseTagName}` : lowerCaseTagName; - const validationConfig = SECURITY_SENSITIVE_ELEMENTS[fullTagName]?.[lowerCaseAttrName]; - if (!validationConfig) { - return value; - } - const lView = getLView(); - if (tNode && lowerCaseTagName === "iframe") { - const element = getNativeByTNode(tNode, lView); - enforceIframeSecurity(element); - } - const displayTagName = tagName[0] === ":" ? tagName.split(":").pop() : tagName; - if (typeof validationConfig !== "boolean") { - if (!tNode) { - const errorMessage2 = ngDevMode && `Angular has detected that the \`${attributeName}\` was applied as a binding to the <${tagName}> element. For security reasons, the \`${attributeName}\` can be set on the <${tagName}> element as a static attribute only. -To fix this, switch the \`${attributeName}\` binding to a static attribute in a template or in host bindings section.`; - throw new RuntimeError(-910, errorMessage2); - } - const element = getNativeByTNode(tNode, lView); - const attributeNameValue = getSecuritySensitiveSVGAnimationAttributeName(element, validationConfig); - if (attributeNameValue) { - const errorMessage2 = ngDevMode && `Angular has detected that the \`${attributeName}\` was applied as a binding to the <${displayTagName}> element${getTemplateLocationDetails(lView)}. For security reasons, the \`${attributeName}\` can be set on the <${displayTagName}> element as a static attribute only when the "attributeName" is set to '${attributeNameValue}'. -To fix this, switch the \`${attributeNameValue}\` binding to a static attribute in a template or in host bindings section.`; - throw new RuntimeError(-910, errorMessage2); - } - return value; - } - const errorMessage = ngDevMode && `Angular has detected that the \`${attributeName}\` was applied as a binding to the <${displayTagName}> element${tNode ? getTemplateLocationDetails(lView) : ""}. For security reasons, the \`${attributeName}\` can be set on the <${displayTagName}> element as a static attribute only. -To fix this, switch the \`${attributeName}\` binding to a static attribute in a template or in host bindings section.`; - throw new RuntimeError(-910, errorMessage); -} -function getSecuritySensitiveSVGAnimationAttributeName(element, validationConfig) { - for (const attributeName of SVG_ANIMATION_ATTRIBUTE_NAME_CANDIDATES) { - const attributeNameValue = element.getAttribute(attributeName); - if (attributeNameValue !== null && validationConfig.has(attributeNameValue.toLowerCase())) { - return attributeNameValue; - } - } - return null; -} -var NG_REFLECT_ATTRS_FLAG_DEFAULT = false; -var NG_REFLECT_ATTRS_FLAG = new InjectionToken(typeof ngDevMode === "undefined" || ngDevMode ? "NG_REFLECT_FLAG" : "", { - factory: () => NG_REFLECT_ATTRS_FLAG_DEFAULT -}); -function normalizeDebugBindingName(name) { - name = camelCaseToDashCase(name.replace(/[$@]/g, "_")); - return `ng-reflect-${name}`; -} -var CAMEL_CASE_REGEXP = /([A-Z])/g; -function camelCaseToDashCase(input2) { - return input2.replace(CAMEL_CASE_REGEXP, (...m) => "-" + m[1].toLowerCase()); -} -function normalizeDebugBindingValue(value) { - try { - return value != null ? value.toString().slice(0, 30) : value; - } catch (e) { - return "[ERROR] Exception while trying to serialize the value"; - } -} -function \u0275\u0275resolveWindow(element) { - return element.ownerDocument.defaultView; -} -function \u0275\u0275resolveDocument(element) { - return element.ownerDocument; -} -function \u0275\u0275resolveBody(element) { - return element.ownerDocument.body; -} -var INTERPOLATION_DELIMITER = `\uFFFD`; -function maybeUnwrapFn(value) { - if (value instanceof Function) { - return value(); - } else { - return value; - } -} -var VALUE_STRING_LENGTH_LIMIT = 200; -function assertStandaloneComponentType(type) { - assertComponentDef(type); - const componentDef = getComponentDef(type); - if (!componentDef.standalone) { - throw new RuntimeError(907, `The ${stringifyForError(type)} component is not marked as standalone, but Angular expects to have a standalone component here. Please make sure the ${stringifyForError(type)} component does not have the \`standalone: false\` flag in the decorator.`); - } -} -function assertComponentDef(type) { - if (!getComponentDef(type)) { - throw new RuntimeError(906, `The ${stringifyForError(type)} is not an Angular component, make sure it has the \`@Component\` decorator.`); - } -} -function throwMultipleComponentError(tNode, first2, second) { - throw new RuntimeError(-300, `Multiple components match node with tagname ${tNode.value}: ${stringifyForError(first2)} and ${stringifyForError(second)}`); -} -function throwErrorIfNoChangesMode(creationMode, oldValue, currValue, propName, lView) { - const hostComponentDef = getDeclarationComponentDef(lView); - const componentClassName = hostComponentDef?.type?.name; - const field = propName ? ` for '${propName}'` : ""; - let msg = `ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value${field}: '${formatValue(oldValue)}'. Current value: '${formatValue(currValue)}'.${componentClassName ? ` Expression location: ${componentClassName} component` : ""}`; - if (creationMode) { - msg += ` It seems like the view has been created after its parent and its children have been dirty checked. Has it been created in a change detection hook?`; - } - throw new RuntimeError(-100, msg); -} -function formatValue(value) { - let strValue = String(value); - try { - if (Array.isArray(value) || strValue === "[object Object]") { - strValue = JSON.stringify(value); - } - } catch (error) { - } - return strValue.length > VALUE_STRING_LENGTH_LIMIT ? strValue.substring(0, VALUE_STRING_LENGTH_LIMIT) + "\u2026" : strValue; -} -function constructDetailsForInterpolation(lView, rootIndex, expressionIndex, meta, changedValue) { - const [propName, prefix, ...chunks] = meta.split(INTERPOLATION_DELIMITER); - let oldValue = prefix, newValue = prefix; - for (let i = 0; i < chunks.length; i++) { - const slotIdx = rootIndex + i; - oldValue += `${lView[slotIdx]}${chunks[i]}`; - newValue += `${slotIdx === expressionIndex ? changedValue : lView[slotIdx]}${chunks[i]}`; - } - return { - propName, - oldValue, - newValue - }; -} -function getExpressionChangedErrorDetails(lView, bindingIndex, oldValue, newValue) { - const tData = lView[TVIEW].data; - const metadata = tData[bindingIndex]; - if (typeof metadata === "string") { - if (metadata.indexOf(INTERPOLATION_DELIMITER) > -1) { - return constructDetailsForInterpolation(lView, bindingIndex, bindingIndex, metadata, newValue); - } - return { - propName: metadata, - oldValue, - newValue - }; - } - if (metadata === null) { - let idx = bindingIndex - 1; - while (typeof tData[idx] !== "string" && tData[idx + 1] === null) { - idx--; - } - const meta = tData[idx]; - if (typeof meta === "string") { - const matches = meta.match(new RegExp(INTERPOLATION_DELIMITER, "g")); - if (matches && matches.length - 1 > bindingIndex - idx) { - return constructDetailsForInterpolation(lView, idx, bindingIndex, meta, newValue); - } - } - } - return { - propName: void 0, - oldValue, - newValue - }; -} -function classIndexOf(className, classToSearch, startingIndex) { - ngDevMode && assertNotEqual(classToSearch, "", 'can not look for "" string.'); - let end = className.length; - while (true) { - const foundIndex = className.indexOf(classToSearch, startingIndex); - if (foundIndex === -1) return foundIndex; - if (foundIndex === 0 || className.charCodeAt(foundIndex - 1) <= 32) { - const length = classToSearch.length; - if (foundIndex + length === end || className.charCodeAt(foundIndex + length) <= 32) { - return foundIndex; - } - } - startingIndex = foundIndex + 1; - } -} -var NG_TEMPLATE_SELECTOR = "ng-template"; -function isCssClassMatching(tNode, attrs, cssClassToMatch, isProjectionMode) { - ngDevMode && assertEqual(cssClassToMatch, cssClassToMatch.toLowerCase(), "Class name expected to be lowercase."); - let i = 0; - if (isProjectionMode) { - for (; i < attrs.length && typeof attrs[i] === "string"; i += 2) { - if (attrs[i] === "class" && classIndexOf(attrs[i + 1].toLowerCase(), cssClassToMatch, 0) !== -1) { - return true; - } - } - } else if (isInlineTemplate(tNode)) { - return false; - } - i = attrs.indexOf(1, i); - if (i > -1) { - let item; - while (++i < attrs.length && typeof (item = attrs[i]) === "string") { - if (item.toLowerCase() === cssClassToMatch) { - return true; - } - } - } - return false; -} -function isInlineTemplate(tNode) { - return tNode.type === 4 && tNode.value !== NG_TEMPLATE_SELECTOR; -} -function hasTagAndTypeMatch(tNode, currentSelector, isProjectionMode) { - const tagNameToCompare = tNode.type === 4 && !isProjectionMode ? NG_TEMPLATE_SELECTOR : tNode.value; - return currentSelector === tagNameToCompare; -} -function isNodeMatchingSelector(tNode, selector, isProjectionMode) { - ngDevMode && assertDefined(selector[0], "Selector should have a tag name"); - let mode = 4; - const nodeAttrs = tNode.attrs; - const nameOnlyMarkerIdx = nodeAttrs !== null ? getNameOnlyMarkerIndex(nodeAttrs) : 0; - let skipToNextSelector = false; - for (let i = 0; i < selector.length; i++) { - const current = selector[i]; - if (typeof current === "number") { - if (!skipToNextSelector && !isPositive(mode) && !isPositive(current)) { - return false; - } - if (skipToNextSelector && isPositive(current)) continue; - skipToNextSelector = false; - mode = current | mode & 1; - continue; - } - if (skipToNextSelector) continue; - if (mode & 4) { - mode = 2 | mode & 1; - if (current !== "" && !hasTagAndTypeMatch(tNode, current, isProjectionMode) || current === "" && selector.length === 1) { - if (isPositive(mode)) return false; - skipToNextSelector = true; - } - } else if (mode & 8) { - if (nodeAttrs === null || !isCssClassMatching(tNode, nodeAttrs, current, isProjectionMode)) { - if (isPositive(mode)) return false; - skipToNextSelector = true; - } - } else { - const selectorAttrValue = selector[++i]; - const attrIndexInNode = findAttrIndexInNode(current, nodeAttrs, isInlineTemplate(tNode), isProjectionMode); - if (attrIndexInNode === -1) { - if (isPositive(mode)) return false; - skipToNextSelector = true; - continue; - } - if (selectorAttrValue !== "") { - let nodeAttrValue; - if (attrIndexInNode > nameOnlyMarkerIdx) { - nodeAttrValue = ""; - } else { - ngDevMode && assertNotEqual(nodeAttrs[attrIndexInNode], 0, "We do not match directives on namespaced attributes"); - nodeAttrValue = nodeAttrs[attrIndexInNode + 1].toLowerCase(); - } - if (mode & 2 && selectorAttrValue !== nodeAttrValue) { - if (isPositive(mode)) return false; - skipToNextSelector = true; - } - } - } - } - return isPositive(mode) || skipToNextSelector; -} -function isPositive(mode) { - return (mode & 1) === 0; -} -function findAttrIndexInNode(name, attrs, isInlineTemplate2, isProjectionMode) { - if (attrs === null) return -1; - let i = 0; - if (isProjectionMode || !isInlineTemplate2) { - let bindingsMode = false; - while (i < attrs.length) { - const maybeAttrName = attrs[i]; - if (maybeAttrName === name) { - return i; - } else if (maybeAttrName === 3 || maybeAttrName === 6) { - bindingsMode = true; - } else if (maybeAttrName === 1 || maybeAttrName === 2) { - let value = attrs[++i]; - while (typeof value === "string") { - value = attrs[++i]; - } - continue; - } else if (maybeAttrName === 4) { - break; - } else if (maybeAttrName === 0) { - i += 4; - continue; - } - i += bindingsMode ? 1 : 2; - } - return -1; - } else { - return matchTemplateAttribute(attrs, name); - } -} -function isNodeMatchingSelectorList(tNode, selector, isProjectionMode = false) { - for (let i = 0; i < selector.length; i++) { - if (isNodeMatchingSelector(tNode, selector[i], isProjectionMode)) { - return true; - } - } - return false; -} -function getProjectAsAttrValue(tNode) { - const nodeAttrs = tNode.attrs; - if (nodeAttrs != null) { - const ngProjectAsAttrIdx = nodeAttrs.indexOf(5); - if ((ngProjectAsAttrIdx & 1) === 0) { - return nodeAttrs[ngProjectAsAttrIdx + 1]; - } - } - return null; -} -function getNameOnlyMarkerIndex(nodeAttrs) { - for (let i = 0; i < nodeAttrs.length; i++) { - const nodeAttr = nodeAttrs[i]; - if (isNameOnlyAttributeMarker(nodeAttr)) { - return i; - } - } - return nodeAttrs.length; -} -function matchTemplateAttribute(attrs, name) { - let i = attrs.indexOf(4); - if (i > -1) { - i++; - while (i < attrs.length) { - const attr = attrs[i]; - if (typeof attr === "number") return -1; - if (attr === name) return i; - i++; - } - } - return -1; -} -function isSelectorInSelectorList(selector, list) { - selectorListLoop: for (let i = 0; i < list.length; i++) { - const currentSelectorInList = list[i]; - if (selector.length !== currentSelectorInList.length) { - continue; - } - for (let j = 0; j < selector.length; j++) { - if (selector[j] !== currentSelectorInList[j]) { - continue selectorListLoop; - } - } - return true; - } - return false; -} -function maybeWrapInNotSelector(isNegativeMode, chunk) { - return isNegativeMode ? ":not(" + chunk.trim() + ")" : chunk; -} -function stringifyCSSSelector(selector) { - let result = selector[0]; - let i = 1; - let mode = 2; - let currentChunk = ""; - let isNegativeMode = false; - while (i < selector.length) { - let valueOrMarker = selector[i]; - if (typeof valueOrMarker === "string") { - if (mode & 2) { - const attrValue = selector[++i]; - currentChunk += "[" + valueOrMarker + (attrValue.length > 0 ? '="' + attrValue + '"' : "") + "]"; - } else if (mode & 8) { - currentChunk += "." + valueOrMarker; - } else if (mode & 4) { - currentChunk += " " + valueOrMarker; - } - } else { - if (currentChunk !== "" && !isPositive(valueOrMarker)) { - result += maybeWrapInNotSelector(isNegativeMode, currentChunk); - currentChunk = ""; - } - mode = valueOrMarker; - isNegativeMode = isNegativeMode || !isPositive(mode); - } - i++; - } - if (currentChunk !== "") { - result += maybeWrapInNotSelector(isNegativeMode, currentChunk); - } - return result; -} -function stringifyCSSSelectorList(selectorList) { - return selectorList.map(stringifyCSSSelector).join(","); -} -function extractAttrsAndClassesFromSelector(selector) { - const attrs = []; - const classes = []; - let i = 1; - let mode = 2; - while (i < selector.length) { - let valueOrMarker = selector[i]; - if (typeof valueOrMarker === "string") { - if (mode === 2) { - if (valueOrMarker !== "") { - attrs.push(valueOrMarker, selector[++i]); - } - } else if (mode === 8) { - classes.push(valueOrMarker); - } - } else { - if (!isPositive(mode)) break; - mode = valueOrMarker; - } - i++; - } - if (classes.length) { - attrs.push(1, ...classes); - } - return attrs; -} -var NO_CHANGE = typeof ngDevMode === "undefined" || ngDevMode ? { - __brand__: "NO_CHANGE" -} : {}; -function createTView(type, declTNode, templateFn, decls, vars, directives, pipes, viewQuery, schemas, constsOrFactory, ssrId) { - const bindingStartIndex = HEADER_OFFSET + decls; - const initialViewLength = bindingStartIndex + vars; - const blueprint = createViewBlueprint(bindingStartIndex, initialViewLength); - const consts = typeof constsOrFactory === "function" ? constsOrFactory() : constsOrFactory; - const tView = blueprint[TVIEW] = { - type, - blueprint, - template: templateFn, - queries: null, - viewQuery, - declTNode, - data: blueprint.slice().fill(null, bindingStartIndex), - bindingStartIndex, - expandoStartIndex: initialViewLength, - hostBindingOpCodes: null, - firstCreatePass: true, - firstUpdatePass: true, - staticViewQueries: false, - staticContentQueries: false, - preOrderHooks: null, - preOrderCheckHooks: null, - contentHooks: null, - contentCheckHooks: null, - viewHooks: null, - viewCheckHooks: null, - destroyHooks: null, - cleanup: null, - contentQueries: null, - components: null, - directiveRegistry: typeof directives === "function" ? directives() : directives, - pipeRegistry: typeof pipes === "function" ? pipes() : pipes, - firstChild: null, - schemas, - consts, - incompleteFirstPass: false, - ssrId - }; - if (ngDevMode) { - Object.seal(tView); - } - return tView; -} -function createViewBlueprint(bindingStartIndex, initialViewLength) { - const blueprint = []; - for (let i = 0; i < initialViewLength; i++) { - blueprint.push(i < bindingStartIndex ? null : NO_CHANGE); - } - return blueprint; -} -function getOrCreateComponentTView(def) { - const tView = def.tView; - if (tView === null || tView.incompleteFirstPass) { - const declTNode = null; - return def.tView = createTView(1, declTNode, def.template, def.decls, def.vars, def.directiveDefs, def.pipeDefs, def.viewQuery, def.schemas, def.consts, def.id); - } - return tView; -} -function createLView(parentLView, tView, context2, flags, host, tHostNode, environment, renderer, injector, embeddedViewInjector, hydrationInfo) { - const lView = tView.blueprint.slice(); - lView[HOST] = host; - lView[FLAGS] = flags | 4 | 128 | 8 | 64 | 1024; - if (embeddedViewInjector !== null || parentLView && parentLView[FLAGS] & 2048) { - lView[FLAGS] |= 2048; - } - resetPreOrderHookFlags(lView); - ngDevMode && tView.declTNode && parentLView && assertTNodeForLView(tView.declTNode, parentLView); - lView[PARENT] = lView[DECLARATION_VIEW] = parentLView; - lView[CONTEXT] = context2; - lView[ENVIRONMENT] = environment || parentLView && parentLView[ENVIRONMENT]; - ngDevMode && assertDefined(lView[ENVIRONMENT], "LViewEnvironment is required"); - lView[RENDERER] = renderer || parentLView && parentLView[RENDERER]; - ngDevMode && assertDefined(lView[RENDERER], "Renderer is required"); - lView[INJECTOR] = injector || parentLView && parentLView[INJECTOR] || null; - lView[T_HOST] = tHostNode; - lView[ID] = getUniqueLViewId(); - lView[HYDRATION] = hydrationInfo; - lView[EMBEDDED_VIEW_INJECTOR] = embeddedViewInjector; - ngDevMode && assertEqual(tView.type == 2 ? parentLView !== null : true, true, "Embedded views must have parentLView"); - lView[DECLARATION_COMPONENT_VIEW] = tView.type == 2 ? parentLView[DECLARATION_COMPONENT_VIEW] : lView; - return lView; -} -function createComponentLView(lView, hostTNode, def) { - const native = getNativeByTNode(hostTNode, lView); - const tView = getOrCreateComponentTView(def); - const rendererFactory = lView[ENVIRONMENT].rendererFactory; - const componentView = addToEndOfViewTree(lView, createLView(lView, tView, null, getInitialLViewFlagsFromDef(def), native, hostTNode, null, rendererFactory.createRenderer(native, def), null, null, null)); - return lView[hostTNode.index] = componentView; -} -function getInitialLViewFlagsFromDef(def) { - let flags = 16; - if (def.signals) { - flags = 4096; - } else if (def.onPush) { - flags = 64; - } - return flags; -} -function allocExpando(tView, lView, numSlotsToAlloc, initialValue) { - if (numSlotsToAlloc === 0) return -1; - if (ngDevMode) { - assertFirstCreatePass(tView); - assertSame(tView, lView[TVIEW], "`LView` must be associated with `TView`!"); - assertEqual(tView.data.length, lView.length, "Expecting LView to be same size as TView"); - assertEqual(tView.data.length, tView.blueprint.length, "Expecting Blueprint to be same size as TView"); - assertFirstUpdatePass(tView); - } - const allocIdx = lView.length; - for (let i = 0; i < numSlotsToAlloc; i++) { - lView.push(initialValue); - tView.blueprint.push(initialValue); - tView.data.push(null); - } - return allocIdx; -} -function addToEndOfViewTree(lView, lViewOrLContainer) { - if (lView[CHILD_HEAD]) { - lView[CHILD_TAIL][NEXT] = lViewOrLContainer; - } else { - lView[CHILD_HEAD] = lViewOrLContainer; - } - lView[CHILD_TAIL] = lViewOrLContainer; - return lViewOrLContainer; -} -function \u0275\u0275advance(delta = 1) { - ngDevMode && assertGreaterThan(delta, 0, "Can only advance forward"); - selectIndexInternal(getTView(), getLView(), getSelectedIndex() + delta, !!ngDevMode && isInCheckNoChangesMode()); -} -function selectIndexInternal(tView, lView, index, checkNoChangesMode) { - ngDevMode && assertIndexInDeclRange(lView[TVIEW], index); - if (!checkNoChangesMode) { - const hooksInitPhaseCompleted = (lView[FLAGS] & 3) === 3; - if (hooksInitPhaseCompleted) { - const preOrderCheckHooks = tView.preOrderCheckHooks; - if (preOrderCheckHooks !== null) { - executeCheckHooks(lView, preOrderCheckHooks, index); - } - } else { - const preOrderHooks = tView.preOrderHooks; - if (preOrderHooks !== null) { - executeInitAndCheckHooks(lView, preOrderHooks, 0, index); - } - } - } - setSelectedIndex(index); -} -var InputFlags; -(function(InputFlags2) { - InputFlags2[InputFlags2["None"] = 0] = "None"; - InputFlags2[InputFlags2["SignalBased"] = 1] = "SignalBased"; - InputFlags2[InputFlags2["HasDecoratorInputTransform"] = 2] = "HasDecoratorInputTransform"; -})(InputFlags || (InputFlags = {})); -function writeToDirectiveInput(def, instance, publicName, value) { - const prevConsumer = setActiveConsumer(null); - try { - if (ngDevMode) { - if (!def.inputs.hasOwnProperty(publicName)) { - throw new Error(`ASSERTION ERROR: Directive ${def.type.name} does not have an input with a public name of "${publicName}"`); - } - if (instance instanceof NodeInjectorFactory) { - throw new Error(`ASSERTION ERROR: Cannot write input to factory for type ${def.type.name}. Directive has not been created yet.`); - } - } - const [privateName, flags, transform] = def.inputs[publicName]; - let inputSignalNode = null; - if ((flags & InputFlags.SignalBased) !== 0) { - const field = instance[privateName]; - inputSignalNode = field[SIGNAL]; - } - if (inputSignalNode !== null && inputSignalNode.transformFn !== void 0) { - value = inputSignalNode.transformFn(value); - } else if (transform !== null) { - value = transform.call(instance, value); - } - if (def.setInput !== null) { - def.setInput(instance, inputSignalNode, value, publicName, privateName); - } else { - applyValueToInputField(instance, inputSignalNode, privateName, value); - } - } finally { - setActiveConsumer(prevConsumer); - } -} -var RendererStyleFlags2; -(function(RendererStyleFlags22) { - RendererStyleFlags22[RendererStyleFlags22["Important"] = 1] = "Important"; - RendererStyleFlags22[RendererStyleFlags22["DashCase"] = 2] = "DashCase"; -})(RendererStyleFlags2 || (RendererStyleFlags2 = {})); -var _icuContainerIterate; -function icuContainerIterate(tIcuContainerNode, lView) { - return _icuContainerIterate(tIcuContainerNode, lView); -} -function ensureIcuContainerVisitorLoaded(loader) { - if (_icuContainerIterate === void 0) { - _icuContainerIterate = loader(); - } -} -var ANIMATIONS_DISABLED = new InjectionToken(typeof ngDevMode !== "undefined" && ngDevMode ? "AnimationsDisabled" : "", { - factory: () => false -}); -var MAX_ANIMATION_TIMEOUT = new InjectionToken(typeof ngDevMode !== "undefined" && ngDevMode ? "MaxAnimationTimeout" : "", { - factory: () => MAX_ANIMATION_TIMEOUT_DEFAULT -}); -var MAX_ANIMATION_TIMEOUT_DEFAULT = 4e3; -var DEFAULT_ANIMATIONS_DISABLED = false; -var areAnimationSupported = typeof document !== "undefined" && typeof document?.documentElement?.getAnimations === "function"; -function areAnimationsDisabled(lView) { - const injector = lView[INJECTOR]; - return injector.get(ANIMATIONS_DISABLED, DEFAULT_ANIMATIONS_DISABLED); -} -function assertAnimationTypes(value, instruction) { - if (value == null || typeof value !== "string" && typeof value !== "function") { - throw new RuntimeError(650, `'${instruction}' value must be a string of CSS classes or an animation function, got ${stringify(value)}`); - } -} -function assertElementNodes(nativeElement, instruction) { - if (nativeElement.nodeType !== Node.ELEMENT_NODE) { - throw new RuntimeError(650, `'${instruction}' can only be used on an element node, got ${stringify(nativeElement.nodeType)}`); - } -} -function trackEnterClasses(el, classList, cleanupFns) { - const elementData = enterClassMap.get(el); - if (elementData) { - for (const klass of classList) { - elementData.classList.push(klass); - } - for (const fn of cleanupFns) { - elementData.cleanupFns.push(fn); - } - } else { - enterClassMap.set(el, { - classList, - cleanupFns - }); - } -} -function cleanupEnterClassData(element) { - const elementData = enterClassMap.get(element); - if (elementData) { - for (const fn of elementData.cleanupFns) { - fn(); - } - enterClassMap.delete(element); - } - longestAnimations.delete(element); -} -var noOpAnimationComplete = () => { -}; -var enterClassMap = /* @__PURE__ */ new WeakMap(); -var longestAnimations = /* @__PURE__ */ new WeakMap(); -var leavingNodes = /* @__PURE__ */ new WeakMap(); -var reusedNodes = /* @__PURE__ */ new WeakSet(); -function clearLeavingNodes(tNode, el) { - const nodes = leavingNodes.get(tNode); - if (nodes && nodes.length > 0) { - const ix = nodes.findIndex((node) => node === el); - if (ix > -1) nodes.splice(ix, 1); - } - if (nodes?.length === 0) { - leavingNodes.delete(tNode); - } -} -function cancelLeavingNodes(tNode, newElement) { - const nodes = leavingNodes.get(tNode); - if (!nodes || nodes.length === 0) return; - const newParent = newElement.parentNode; - const prevSibling = newElement.previousSibling; - for (let i = nodes.length - 1; i >= 0; i--) { - const leavingEl = nodes[i]; - const leavingParent = leavingEl.parentNode; - if (leavingEl === newElement) { - nodes.splice(i, 1); - reusedNodes.add(leavingEl); - leavingEl.dispatchEvent(new CustomEvent("animationend", { - detail: { - cancel: true - } - })); - } else if (prevSibling && leavingEl === prevSibling || leavingParent && newParent && leavingParent !== newParent) { - nodes.splice(i, 1); - leavingEl.dispatchEvent(new CustomEvent("animationend", { - detail: { - cancel: true - } - })); - leavingEl.parentNode?.removeChild(leavingEl); - } - } -} -function trackLeavingNodes(tNode, el) { - const nodes = leavingNodes.get(tNode); - if (nodes) { - if (!nodes.includes(el)) { - nodes.push(el); - } - } else { - leavingNodes.set(tNode, [el]); - } -} -function getLViewEnterAnimations(lView) { - const animationData = lView[ANIMATIONS] ??= {}; - return animationData.enter ??= /* @__PURE__ */ new Map(); -} -function getLViewLeaveAnimations(lView) { - const animationData = lView[ANIMATIONS] ??= {}; - return animationData.leave ??= /* @__PURE__ */ new Map(); -} -function getClassListFromValue(value) { - const classes = typeof value === "function" ? value() : value; - let classList = Array.isArray(classes) ? classes : null; - if (typeof classes === "string") { - classList = classes.trim().split(/\s+/).filter((k) => k); - } - return classList; -} -function cancelAnimationsIfRunning(element, renderer) { - if (!areAnimationSupported) return; - const elementData = enterClassMap.get(element); - if (elementData && elementData.classList.length > 0 && elementHasClassList(element, elementData.classList)) { - for (const klass of elementData.classList) { - renderer.removeClass(element, klass); - } - } - cleanupEnterClassData(element); -} -function elementHasClassList(element, classList) { - for (const className of classList) { - if (element.classList.contains(className)) return true; - } - return false; -} -function getEventTarget(event) { - return event.composedPath ? event.composedPath()[0] : event.target; -} -function isLongestAnimation(event, nativeElement) { - const longestAnimation = longestAnimations.get(nativeElement); - if (longestAnimation === void 0) return true; - return nativeElement === getEventTarget(event) && (longestAnimation.animationName !== void 0 && event.animationName === longestAnimation.animationName || longestAnimation.propertyName !== void 0 && (longestAnimation.propertyName === "all" || event.propertyName === longestAnimation.propertyName)); -} -function addAnimationToLView(animations, tNode, fn) { - const nodeAnimations = animations.get(tNode.index) ?? { - animateFns: [] - }; - nodeAnimations.animateFns.push(fn); - animations.set(tNode.index, nodeAnimations); -} -function cleanupAfterLeaveAnimations(resolvers, cleanupFns) { - if (resolvers) { - for (const fn of resolvers) { - fn(); - } - } - for (const fn of cleanupFns) { - fn(); - } -} -function clearLViewNodeAnimationResolvers(lView, tNode) { - const nodeAnimations = getLViewLeaveAnimations(lView).get(tNode.index); - if (nodeAnimations) nodeAnimations.resolvers = void 0; -} -function leaveAnimationFunctionCleanup(lView, tNode, nativeElement, resolvers, cleanupFns) { - clearLeavingNodes(tNode, nativeElement); - cleanupAfterLeaveAnimations(resolvers, cleanupFns); - clearLViewNodeAnimationResolvers(lView, tNode); -} -function parseCssTimeUnitsToMs(value) { - if (!value) return 0; - const multiplier = value.toLowerCase().indexOf("ms") > -1 ? 1 : 1e3; - return parseFloat(value) * multiplier; -} -function parseCssPropertyValue(computedStyle, name) { - const value = computedStyle.getPropertyValue(name); - return value.split(",").map((part) => part.trim()); -} -function getLongestComputedTransition(computedStyle) { - const transitionedProperties = parseCssPropertyValue(computedStyle, "transition-property"); - const rawDurations = parseCssPropertyValue(computedStyle, "transition-duration"); - const rawDelays = parseCssPropertyValue(computedStyle, "transition-delay"); - const longest = { - propertyName: "", - duration: 0, - animationName: void 0 - }; - for (let i = 0; i < transitionedProperties.length; i++) { - const duration = parseCssTimeUnitsToMs(rawDelays[i]) + parseCssTimeUnitsToMs(rawDurations[i]); - if (duration > longest.duration) { - longest.propertyName = transitionedProperties[i]; - longest.duration = duration; - } - } - return longest; -} -function getLongestComputedAnimation(computedStyle) { - const rawNames = parseCssPropertyValue(computedStyle, "animation-name"); - const rawDelays = parseCssPropertyValue(computedStyle, "animation-delay"); - const rawDurations = parseCssPropertyValue(computedStyle, "animation-duration"); - const rawIterationCounts = parseCssPropertyValue(computedStyle, "animation-iteration-count"); - const longest = { - animationName: "", - propertyName: void 0, - duration: 0 - }; - for (let i = 0; i < rawNames.length; i++) { - const duration = parseCssTimeUnitsToMs(rawDelays[i]) + parseCssTimeUnitsToMs(rawDurations[i]); - const iterationCount = rawIterationCounts[i]; - if (duration > longest.duration && iterationCount !== "infinite") { - longest.animationName = rawNames[i]; - longest.duration = duration; - } - } - return longest; -} -function isShorterThanExistingAnimation(existing, longest) { - return existing !== void 0 && existing.duration > longest.duration; -} -function longestExists(longest) { - return (longest.animationName != void 0 || longest.propertyName != void 0) && longest.duration > 0; -} -function determineLongestAnimationFromComputedStyles(el, animationsMap) { - const computedStyle = getComputedStyle(el); - const longestAnimation = getLongestComputedAnimation(computedStyle); - const longestTransition = getLongestComputedTransition(computedStyle); - const longest = longestAnimation.duration > longestTransition.duration ? longestAnimation : longestTransition; - if (isShorterThanExistingAnimation(animationsMap.get(el), longest)) return; - if (longestExists(longest)) { - animationsMap.set(el, longest); - } -} -function determineLongestAnimation(el, animationsMap, areAnimationSupported2) { - if (!areAnimationSupported2) return; - const animations = el.getAnimations(); - return animations.length === 0 ? determineLongestAnimationFromComputedStyles(el, animationsMap) : determineLongestAnimationFromElementAnimations(el, animationsMap, animations); -} -function determineLongestAnimationFromElementAnimations(el, animationsMap, animations) { - let longest = { - animationName: void 0, - propertyName: void 0, - duration: 0 - }; - for (const animation of animations) { - const timing = animation.effect?.getTiming(); - if (timing?.iterations === Infinity) { - continue; - } - const animDuration = typeof timing?.duration === "number" ? timing.duration : 0; - let duration = (timing?.delay ?? 0) + animDuration; - const playbackRate = animation.playbackRate; - if (playbackRate !== void 0 && playbackRate !== 0 && playbackRate !== 1) { - duration /= Math.abs(playbackRate); - } - let propertyName; - let animationName; - if (animation.animationName) { - animationName = animation.animationName; - } else { - propertyName = animation.transitionProperty; - } - if (duration >= longest.duration) { - longest = { - animationName, - propertyName, - duration - }; - } - } - if (isShorterThanExistingAnimation(animationsMap.get(el), longest)) return; - if (longestExists(longest)) { - animationsMap.set(el, longest); - } -} -var allLeavingAnimations = /* @__PURE__ */ new Set(); -var TracingAction; -(function(TracingAction2) { - TracingAction2[TracingAction2["CHANGE_DETECTION"] = 0] = "CHANGE_DETECTION"; - TracingAction2[TracingAction2["AFTER_NEXT_RENDER"] = 1] = "AFTER_NEXT_RENDER"; -})(TracingAction || (TracingAction = {})); -var TracingService = new InjectionToken(typeof ngDevMode !== "undefined" && ngDevMode ? "TracingService" : ""); -var markedFeatures = /* @__PURE__ */ new Set(); -function performanceMarkFeature(feature) { - if (markedFeatures.has(feature)) { - return; - } - markedFeatures.add(feature); - performance?.mark?.("mark_feature_usage", { - detail: { - feature - } - }); -} -var AfterRenderManager = class _AfterRenderManager { - impl = null; - execute() { - this.impl?.execute(); - } - static \u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({ - token: _AfterRenderManager, - providedIn: "root", - factory: () => new _AfterRenderManager() - }); -}; -var AFTER_RENDER_PHASES = /* @__PURE__ */ (() => [0, 1, 2, 3])(); -var AfterRenderImpl = class _AfterRenderImpl { - ngZone = inject2(NgZone); - scheduler = inject2(ChangeDetectionScheduler); - errorHandler = inject2(ErrorHandler, { - optional: true - }); - sequences = /* @__PURE__ */ new Set(); - deferredRegistrations = /* @__PURE__ */ new Set(); - executing = false; - constructor() { - inject2(TracingService, { - optional: true - }); - } - execute() { - const hasSequencesToExecute = this.sequences.size > 0; - if (hasSequencesToExecute) { - profiler(ProfilerEvent.AfterRenderHooksStart); - } - this.executing = true; - for (const phase of AFTER_RENDER_PHASES) { - for (const sequence of this.sequences) { - if (sequence.erroredOrDestroyed || !sequence.hooks[phase]) { - continue; - } - try { - sequence.pipelinedValue = this.ngZone.runOutsideAngular(() => this.maybeTrace(() => { - const hookFn = sequence.hooks[phase]; - const value = hookFn(sequence.pipelinedValue); - return value; - }, sequence.snapshot)); - } catch (err) { - sequence.erroredOrDestroyed = true; - this.errorHandler?.handleError(err); - } - } - } - this.executing = false; - for (const sequence of this.sequences) { - sequence.afterRun(); - if (sequence.once) { - this.sequences.delete(sequence); - sequence.destroy(); - } - } - for (const sequence of this.deferredRegistrations) { - this.sequences.add(sequence); - } - if (this.deferredRegistrations.size > 0) { - this.scheduler.notify(7); - } - this.deferredRegistrations.clear(); - if (hasSequencesToExecute) { - profiler(ProfilerEvent.AfterRenderHooksEnd); - } - } - register(sequence) { - const { - view - } = sequence; - if (view !== void 0) { - (view[AFTER_RENDER_SEQUENCES_TO_ADD] ??= []).push(sequence); - markAncestorsForTraversal(view); - view[FLAGS] |= 8192; - } else if (!this.executing) { - this.addSequence(sequence); - } else { - this.deferredRegistrations.add(sequence); - } - } - addSequence(sequence) { - this.sequences.add(sequence); - this.scheduler.notify(7); - } - unregister(sequence) { - if (this.executing && this.sequences.has(sequence)) { - sequence.erroredOrDestroyed = true; - sequence.pipelinedValue = void 0; - sequence.once = true; - } else { - this.sequences.delete(sequence); - this.deferredRegistrations.delete(sequence); - } - } - maybeTrace(fn, snapshot) { - return snapshot ? snapshot.run(TracingAction.AFTER_NEXT_RENDER, fn) : fn(); - } - static \u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({ - token: _AfterRenderImpl, - providedIn: "root", - factory: () => new _AfterRenderImpl() - }); -}; -var AfterRenderSequence = class { - impl; - hooks; - view; - once; - snapshot; - erroredOrDestroyed = false; - pipelinedValue = void 0; - unregisterOnDestroy; - constructor(impl, hooks, view, once, destroyRef, snapshot = null) { - this.impl = impl; - this.hooks = hooks; - this.view = view; - this.once = once; - this.snapshot = snapshot; - this.unregisterOnDestroy = destroyRef?.onDestroy(() => this.destroy()); - } - afterRun() { - this.erroredOrDestroyed = false; - this.pipelinedValue = void 0; - this.snapshot?.dispose(); - this.snapshot = null; - } - destroy() { - this.impl.unregister(this); - this.unregisterOnDestroy?.(); - const scheduled2 = this.view?.[AFTER_RENDER_SEQUENCES_TO_ADD]; - if (scheduled2) { - this.view[AFTER_RENDER_SEQUENCES_TO_ADD] = scheduled2.filter((s) => s !== this); - } - } -}; -function afterEveryRender(callbackOrSpec, options) { - ngDevMode && assertNotInReactiveContext(afterEveryRender, "Call `afterEveryRender` outside of a reactive context. For example, schedule the render callback inside the component constructor`."); - if (ngDevMode && !options?.injector) { - assertInInjectionContext(afterEveryRender); - } - const injector = options?.injector ?? inject2(Injector); - if (false) { - return NOOP_AFTER_RENDER_REF; - } - performanceMarkFeature("NgAfterRender"); - return afterEveryRenderImpl(callbackOrSpec, injector, options, false); -} -function afterNextRender(callbackOrSpec, options) { - if (ngDevMode && !options?.injector) { - assertInInjectionContext(afterNextRender); - } - const injector = options?.injector ?? inject2(Injector); - if (false) { - return NOOP_AFTER_RENDER_REF; - } - performanceMarkFeature("NgAfterNextRender"); - return afterEveryRenderImpl(callbackOrSpec, injector, options, true); -} -function getHooks(callbackOrSpec) { - if (callbackOrSpec instanceof Function) { - return [void 0, void 0, callbackOrSpec, void 0]; - } else { - return [callbackOrSpec.earlyRead, callbackOrSpec.write, callbackOrSpec.mixedReadWrite, callbackOrSpec.read]; - } -} -function afterEveryRenderImpl(callbackOrSpec, injector, options, once) { - const manager = injector.get(AfterRenderManager); - manager.impl ??= injector.get(AfterRenderImpl); - const tracing = injector.get(TracingService, null, { - optional: true - }); - const destroyRef = options?.manualCleanup !== true ? injector.get(DestroyRef) : null; - const viewContext = injector.get(ViewContext, null, { - optional: true - }); - const sequence = new AfterRenderSequence(manager.impl, getHooks(callbackOrSpec), viewContext?.view, once, destroyRef, tracing?.snapshot(null)); - manager.impl.register(sequence); - return sequence; -} -var ANIMATION_QUEUE = new InjectionToken(typeof ngDevMode !== "undefined" && ngDevMode ? "AnimationQueue" : "", { - factory: () => { - return { - queue: /* @__PURE__ */ new Set(), - isScheduled: false, - scheduler: null, - injector: inject2(EnvironmentInjector) - }; - } -}); -function addToAnimationQueue(injector, animationFns, animationData) { - const animationQueue = injector.get(ANIMATION_QUEUE); - if (Array.isArray(animationFns)) { - for (const animateFn of animationFns) { - animationQueue.queue.add(animateFn); - animationData?.detachedLeaveAnimationFns?.push(animateFn); - } - } else { - animationQueue.queue.add(animationFns); - animationData?.detachedLeaveAnimationFns?.push(animationFns); - } - animationQueue.scheduler && animationQueue.scheduler(injector); -} -function removeFromAnimationQueue(injector, animationData) { - const animationQueue = injector.get(ANIMATION_QUEUE); - if (animationData.detachedLeaveAnimationFns) { - for (const animationFn of animationData.detachedLeaveAnimationFns) { - animationQueue.queue.delete(animationFn); - } - animationData.detachedLeaveAnimationFns = void 0; - } -} -function scheduleAnimationQueue(injector) { - const animationQueue = injector.get(ANIMATION_QUEUE); - if (!animationQueue.isScheduled) { - afterNextRender(() => { - animationQueue.isScheduled = false; - for (let animateFn of animationQueue.queue) { - animateFn(); - } - animationQueue.queue.clear(); - }, { - injector: animationQueue.injector - }); - animationQueue.isScheduled = true; - } -} -function initializeAnimationQueueScheduler(injector) { - const animationQueue = injector.get(ANIMATION_QUEUE); - animationQueue.scheduler = scheduleAnimationQueue; - animationQueue.scheduler(injector); -} -function queueEnterAnimations(injector, enterAnimations) { - for (const [_, nodeAnimations] of enterAnimations) { - addToAnimationQueue(injector, nodeAnimations.animateFns); - } -} -function maybeQueueEnterAnimation(parentLView, parent, tNode, injector) { - const enterAnimations = parentLView?.[ANIMATIONS]?.enter; - if (parent !== null && enterAnimations && enterAnimations.has(tNode.index)) { - queueEnterAnimations(injector, enterAnimations); - } -} -function applyToElementOrContainer(action, renderer, injector, parent, lNodeToHandle, tNode, beforeNode, parentLView) { - if (lNodeToHandle != null) { - let lContainer; - let isComponent2 = false; - if (isLContainer(lNodeToHandle)) { - lContainer = lNodeToHandle; - } else if (isLView(lNodeToHandle)) { - isComponent2 = true; - ngDevMode && assertDefined(lNodeToHandle[HOST], "HOST must be defined for a component LView"); - lNodeToHandle = lNodeToHandle[HOST]; - } - const rNode = unwrapRNode(lNodeToHandle); - if (action === 0 && parent !== null) { - maybeQueueEnterAnimation(parentLView, parent, tNode, injector); - if (beforeNode == null) { - nativeAppendChild(renderer, parent, rNode); - } else { - nativeInsertBefore(renderer, parent, rNode, beforeNode || null, true); - } - } else if (action === 1 && parent !== null) { - maybeQueueEnterAnimation(parentLView, parent, tNode, injector); - nativeInsertBefore(renderer, parent, rNode, beforeNode || null, true); - cancelLeavingNodes(tNode, rNode); - } else if (action === 2) { - if (parentLView?.[ANIMATIONS]?.leave?.has(tNode.index)) { - trackLeavingNodes(tNode, rNode); - } - reusedNodes.delete(rNode); - runLeaveAnimationsWithCallback(parentLView, tNode, injector, (nodeHasLeaveAnimations) => { - if (reusedNodes.has(rNode)) { - reusedNodes.delete(rNode); - return; - } - nativeRemoveNode(renderer, rNode, isComponent2, nodeHasLeaveAnimations); - }); - } else if (action === 3) { - reusedNodes.delete(rNode); - runLeaveAnimationsWithCallback(parentLView, tNode, injector, () => { - renderer.destroyNode(rNode); - }); - } - if (lContainer != null) { - applyContainer(renderer, action, injector, lContainer, tNode, parent, beforeNode); - } - } -} -function removeViewFromDOM(tView, lView) { - detachViewFromDOM(tView, lView); - lView[HOST] = null; - lView[T_HOST] = null; -} -function addViewToDOM(tView, parentTNode, renderer, lView, parentNativeNode, beforeNode) { - lView[HOST] = parentNativeNode; - lView[T_HOST] = parentTNode; - applyView(tView, lView, renderer, 1, parentNativeNode, beforeNode); -} -function detachViewFromDOM(tView, lView) { - lView[ENVIRONMENT].changeDetectionScheduler?.notify(9); - applyView(tView, lView, lView[RENDERER], 2, null, null); -} -function destroyViewTree(rootView) { - let lViewOrLContainer = rootView[CHILD_HEAD]; - if (!lViewOrLContainer) { - return cleanUpView(rootView[TVIEW], rootView); - } - while (lViewOrLContainer) { - let next = null; - if (isLView(lViewOrLContainer)) { - next = lViewOrLContainer[CHILD_HEAD]; - } else { - ngDevMode && assertLContainer(lViewOrLContainer); - const firstView = lViewOrLContainer[CONTAINER_HEADER_OFFSET]; - if (firstView) next = firstView; - } - if (!next) { - while (lViewOrLContainer && !lViewOrLContainer[NEXT] && lViewOrLContainer !== rootView) { - if (isLView(lViewOrLContainer)) { - cleanUpView(lViewOrLContainer[TVIEW], lViewOrLContainer); - } - lViewOrLContainer = lViewOrLContainer[PARENT]; - } - if (lViewOrLContainer === null) lViewOrLContainer = rootView; - if (isLView(lViewOrLContainer)) { - cleanUpView(lViewOrLContainer[TVIEW], lViewOrLContainer); - } - next = lViewOrLContainer && lViewOrLContainer[NEXT]; - } - lViewOrLContainer = next; - } -} -function detachMovedView(declarationContainer, lView) { - ngDevMode && assertLContainer(declarationContainer); - ngDevMode && assertDefined(declarationContainer[MOVED_VIEWS], "A projected view should belong to a non-empty projected views collection"); - const movedViews = declarationContainer[MOVED_VIEWS]; - const declarationViewIndex = movedViews.indexOf(lView); - movedViews.splice(declarationViewIndex, 1); -} -function destroyLView(tView, lView) { - if (isDestroyed(lView)) { - return; - } - const renderer = lView[RENDERER]; - if (renderer.destroyNode) { - applyView(tView, lView, renderer, 3, null, null); - } - destroyViewTree(lView); -} -function cleanUpView(tView, lView) { - if (isDestroyed(lView)) { - return; - } - const prevConsumer = setActiveConsumer(null); - try { - lView[FLAGS] &= ~128; - lView[FLAGS] |= 256; - lView[REACTIVE_TEMPLATE_CONSUMER] && consumerDestroy(lView[REACTIVE_TEMPLATE_CONSUMER]); - executeOnDestroys(tView, lView); - processCleanups(tView, lView); - if (lView[TVIEW].type === 1) { - lView[RENDERER].destroy(); - } - const declarationContainer = lView[DECLARATION_LCONTAINER]; - if (declarationContainer !== null && isLContainer(lView[PARENT])) { - if (declarationContainer !== lView[PARENT]) { - detachMovedView(declarationContainer, lView); - } - const lQueries = lView[QUERIES]; - if (lQueries !== null) { - lQueries.detachView(tView); - } - } - unregisterLView(lView); - } finally { - setActiveConsumer(prevConsumer); - } -} -function runLeaveAnimationsWithCallback(lView, tNode, injector, callback) { - const animations = lView?.[ANIMATIONS]; - if (animations == null || animations.leave == void 0 || !animations.leave.has(tNode.index)) return callback(false); - if (lView) allLeavingAnimations.add(lView[ID]); - addToAnimationQueue(injector, () => { - if (animations.leave && animations.leave.has(tNode.index)) { - const leaveAnimationMap = animations.leave; - const leaveAnimations = leaveAnimationMap.get(tNode.index); - const runningAnimations = []; - if (leaveAnimations) { - for (let index = 0; index < leaveAnimations.animateFns.length; index++) { - const animationFn = leaveAnimations.animateFns[index]; - const { - promise - } = animationFn(); - runningAnimations.push(promise); - } - animations.detachedLeaveAnimationFns = void 0; - } - animations.running = Promise.allSettled(runningAnimations); - runAfterLeaveAnimations(lView, callback); - } else { - if (lView) allLeavingAnimations.delete(lView[ID]); - callback(false); - } - }, animations); -} -function runAfterLeaveAnimations(lView, callback) { - const runningAnimations = lView[ANIMATIONS]?.running; - if (runningAnimations) { - runningAnimations.then(() => { - lView[ANIMATIONS].running = void 0; - allLeavingAnimations.delete(lView[ID]); - callback(true); - }); - return; - } - callback(false); -} -function processCleanups(tView, lView) { - ngDevMode && assertNotReactive(processCleanups.name); - const tCleanup = tView.cleanup; - const lCleanup = lView[CLEANUP]; - if (tCleanup !== null) { - for (let i = 0; i < tCleanup.length - 1; i += 2) { - if (typeof tCleanup[i] === "string") { - const targetIdx = tCleanup[i + 3]; - ngDevMode && assertNumber(targetIdx, "cleanup target must be a number"); - if (targetIdx >= 0) { - lCleanup[targetIdx](); - } else { - lCleanup[-targetIdx].unsubscribe(); - } - i += 2; - } else { - const context2 = lCleanup[tCleanup[i + 1]]; - tCleanup[i].call(context2); - } - } - } - if (lCleanup !== null) { - lView[CLEANUP] = null; - } - const destroyHooks = lView[ON_DESTROY_HOOKS]; - if (destroyHooks !== null) { - lView[ON_DESTROY_HOOKS] = null; - for (let i = 0; i < destroyHooks.length; i++) { - const destroyHooksFn = destroyHooks[i]; - ngDevMode && assertFunction(destroyHooksFn, "Expecting destroy hook to be a function."); - destroyHooksFn(); - } - } - const effects = lView[EFFECTS]; - if (effects !== null) { - lView[EFFECTS] = null; - for (const effect2 of effects) { - effect2.destroy(); - } - } -} -function executeOnDestroys(tView, lView) { - ngDevMode && assertNotReactive(executeOnDestroys.name); - let destroyHooks; - if (tView != null && (destroyHooks = tView.destroyHooks) != null) { - for (let i = 0; i < destroyHooks.length; i += 2) { - const context2 = lView[destroyHooks[i]]; - if (!(context2 instanceof NodeInjectorFactory)) { - const toCall = destroyHooks[i + 1]; - if (Array.isArray(toCall)) { - for (let j = 0; j < toCall.length; j += 2) { - const callContext = context2[toCall[j]]; - const hook = toCall[j + 1]; - profiler(ProfilerEvent.LifecycleHookStart, callContext, hook); - try { - hook.call(callContext); - } finally { - profiler(ProfilerEvent.LifecycleHookEnd, callContext, hook); - } - } - } else { - profiler(ProfilerEvent.LifecycleHookStart, context2, toCall); - try { - toCall.call(context2); - } finally { - profiler(ProfilerEvent.LifecycleHookEnd, context2, toCall); - } - } - } - } - } -} -function getParentRElement(tView, tNode, lView) { - return getClosestRElement(tView, tNode.parent, lView); -} -function getClosestRElement(tView, tNode, lView) { - let parentTNode = tNode; - while (parentTNode !== null && parentTNode.type & (8 | 32 | 128)) { - tNode = parentTNode; - parentTNode = tNode.parent; - } - if (parentTNode === null) { - return lView[HOST]; - } else { - ngDevMode && assertTNodeType(parentTNode, 3 | 4); - if (isComponentHost(parentTNode)) { - ngDevMode && assertTNodeForLView(parentTNode, lView); - const { - encapsulation - } = tView.data[parentTNode.directiveStart + parentTNode.componentOffset]; - if (encapsulation === ViewEncapsulation.None || encapsulation === ViewEncapsulation.Emulated) { - return null; - } - } - return getNativeByTNode(parentTNode, lView); - } -} -function getInsertInFrontOfRNode(parentTNode, currentTNode, lView) { - return _getInsertInFrontOfRNodeWithI18n(parentTNode, currentTNode, lView); -} -function getInsertInFrontOfRNodeWithNoI18n(parentTNode, currentTNode, lView) { - if (parentTNode.type & (8 | 32)) { - return getNativeByTNode(parentTNode, lView); - } - return null; -} -var _getInsertInFrontOfRNodeWithI18n = getInsertInFrontOfRNodeWithNoI18n; -var _processI18nInsertBefore; -function setI18nHandling(getInsertInFrontOfRNodeWithI18n2, processI18nInsertBefore2) { - _getInsertInFrontOfRNodeWithI18n = getInsertInFrontOfRNodeWithI18n2; - _processI18nInsertBefore = processI18nInsertBefore2; -} -function appendChild(tView, lView, childRNode, childTNode) { - const parentRNode = getParentRElement(tView, childTNode, lView); - const renderer = lView[RENDERER]; - const parentTNode = childTNode.parent || lView[T_HOST]; - const anchorNode = getInsertInFrontOfRNode(parentTNode, childTNode, lView); - if (parentRNode != null) { - if (Array.isArray(childRNode)) { - for (let i = 0; i < childRNode.length; i++) { - nativeAppendOrInsertBefore(renderer, parentRNode, childRNode[i], anchorNode, false); - } - } else { - nativeAppendOrInsertBefore(renderer, parentRNode, childRNode, anchorNode, false); - } - } - _processI18nInsertBefore !== void 0 && _processI18nInsertBefore(renderer, childTNode, lView, childRNode, parentRNode); -} -function getFirstNativeNode(lView, tNode) { - if (tNode !== null) { - ngDevMode && assertTNodeType(tNode, 3 | 12 | 32 | 16 | 128); - const tNodeType = tNode.type; - if (tNodeType & 3) { - return getNativeByTNode(tNode, lView); - } else if (tNodeType & 4) { - return getBeforeNodeForView(-1, lView[tNode.index]); - } else if (tNodeType & 8) { - const elIcuContainerChild = tNode.child; - if (elIcuContainerChild !== null) { - return getFirstNativeNode(lView, elIcuContainerChild); - } else { - const rNodeOrLContainer = lView[tNode.index]; - if (isLContainer(rNodeOrLContainer)) { - return getBeforeNodeForView(-1, rNodeOrLContainer); - } else { - return unwrapRNode(rNodeOrLContainer); - } - } - } else if (tNodeType & 128) { - return getFirstNativeNode(lView, tNode.next); - } else if (tNodeType & 32) { - let nextRNode = icuContainerIterate(tNode, lView); - let rNode = nextRNode(); - return rNode || unwrapRNode(lView[tNode.index]); - } else { - const projectionNodes = getProjectionNodes(lView, tNode); - if (projectionNodes !== null) { - if (Array.isArray(projectionNodes)) { - return projectionNodes[0]; - } - const parentView = getLViewParent(lView[DECLARATION_COMPONENT_VIEW]); - ngDevMode && assertParentView(parentView); - return getFirstNativeNode(parentView, projectionNodes); - } else { - return getFirstNativeNode(lView, tNode.next); - } - } - } - return null; -} -function getProjectionNodes(lView, tNode) { - if (tNode !== null) { - const componentView = lView[DECLARATION_COMPONENT_VIEW]; - const componentHost = componentView[T_HOST]; - const slotIdx = tNode.projection; - ngDevMode && assertProjectionSlots(lView); - return componentHost.projection[slotIdx]; - } - return null; -} -function getBeforeNodeForView(viewIndexInContainer, lContainer) { - const nextViewIndex = CONTAINER_HEADER_OFFSET + viewIndexInContainer + 1; - if (nextViewIndex < lContainer.length) { - const lView = lContainer[nextViewIndex]; - const firstTNodeOfView = lView[TVIEW].firstChild; - if (firstTNodeOfView !== null) { - return getFirstNativeNode(lView, firstTNodeOfView); - } - } - return lContainer[NATIVE]; -} -function applyNodes(renderer, action, tNode, lView, parentRElement, beforeNode, isProjection) { - while (tNode != null) { - ngDevMode && assertTNodeForLView(tNode, lView); - const injector = lView[INJECTOR]; - if (tNode.type === 128) { - tNode = tNode.next; - continue; - } - ngDevMode && assertTNodeType(tNode, 3 | 12 | 16 | 32); - const rawSlotValue = lView[tNode.index]; - const tNodeType = tNode.type; - if (isProjection) { - if (action === 0) { - rawSlotValue && attachPatchData(unwrapRNode(rawSlotValue), lView); - tNode.flags |= 2; - } - } - if (!isDetachedByI18n(tNode)) { - if (tNodeType & 8) { - applyNodes(renderer, action, tNode.child, lView, parentRElement, beforeNode, false); - applyToElementOrContainer(action, renderer, injector, parentRElement, rawSlotValue, tNode, beforeNode, lView); - } else if (tNodeType & 32) { - const nextRNode = icuContainerIterate(tNode, lView); - let rNode; - while (rNode = nextRNode()) { - applyToElementOrContainer(action, renderer, injector, parentRElement, rNode, tNode, beforeNode, lView); - } - applyToElementOrContainer(action, renderer, injector, parentRElement, rawSlotValue, tNode, beforeNode, lView); - } else if (tNodeType & 16) { - applyProjectionRecursive(renderer, action, lView, tNode, parentRElement, beforeNode); - } else { - ngDevMode && assertTNodeType(tNode, 3 | 4); - applyToElementOrContainer(action, renderer, injector, parentRElement, rawSlotValue, tNode, beforeNode, lView); - } - } - tNode = isProjection ? tNode.projectionNext : tNode.next; - } -} -function applyView(tView, lView, renderer, action, parentRElement, beforeNode) { - applyNodes(renderer, action, tView.firstChild, lView, parentRElement, beforeNode, false); -} -function applyProjection(tView, lView, tProjectionNode) { - const renderer = lView[RENDERER]; - const parentRNode = getParentRElement(tView, tProjectionNode, lView); - const parentTNode = tProjectionNode.parent || lView[T_HOST]; - let beforeNode = getInsertInFrontOfRNode(parentTNode, tProjectionNode, lView); - applyProjectionRecursive(renderer, 0, lView, tProjectionNode, parentRNode, beforeNode); -} -function applyProjectionRecursive(renderer, action, lView, tProjectionNode, parentRElement, beforeNode) { - const componentLView = lView[DECLARATION_COMPONENT_VIEW]; - const componentNode = componentLView[T_HOST]; - ngDevMode && assertEqual(typeof tProjectionNode.projection, "number", "expecting projection index"); - const nodeToProjectOrRNodes = componentNode.projection[tProjectionNode.projection]; - if (Array.isArray(nodeToProjectOrRNodes)) { - for (let i = 0; i < nodeToProjectOrRNodes.length; i++) { - const rNode = nodeToProjectOrRNodes[i]; - applyToElementOrContainer(action, renderer, lView[INJECTOR], parentRElement, rNode, tProjectionNode, beforeNode, lView); - } - } else { - let nodeToProject = nodeToProjectOrRNodes; - const projectedComponentLView = componentLView[PARENT]; - if (hasInSkipHydrationBlockFlag(tProjectionNode)) { - nodeToProject.flags |= 128; - } - applyNodes(renderer, action, nodeToProject, projectedComponentLView, parentRElement, beforeNode, true); - } -} -function applyContainer(renderer, action, injector, lContainer, tNode, parentRElement, beforeNode) { - ngDevMode && assertLContainer(lContainer); - const anchor = lContainer[NATIVE]; - const native = unwrapRNode(lContainer); - if (anchor !== native) { - applyToElementOrContainer(action, renderer, injector, parentRElement, anchor, tNode, beforeNode); - } - for (let i = CONTAINER_HEADER_OFFSET; i < lContainer.length; i++) { - const lView = lContainer[i]; - applyView(lView[TVIEW], lView, renderer, action, parentRElement, anchor); - } -} -function applyStyling(renderer, isClassBased, rNode, prop, value) { - if (isClassBased) { - if (!value) { - renderer.removeClass(rNode, prop); - } else { - renderer.addClass(rNode, prop); - } - } else { - let flags = prop.indexOf("-") === -1 ? void 0 : RendererStyleFlags2.DashCase; - if (value == null) { - renderer.removeStyle(rNode, prop, flags); - } else { - const isImportant = typeof value === "string" ? value.endsWith("!important") : false; - if (isImportant) { - value = value.slice(0, -10); - flags |= RendererStyleFlags2.Important; - } - renderer.setStyle(rNode, prop, value, flags); - } - } -} -function executeTemplate(tView, lView, templateFn, rf, context2) { - const prevSelectedIndex = getSelectedIndex(); - const isUpdatePhase = rf & 2; - try { - setSelectedIndex(-1); - if (isUpdatePhase && lView.length > HEADER_OFFSET) { - selectIndexInternal(tView, lView, HEADER_OFFSET, !!ngDevMode && isInCheckNoChangesMode()); - } - const preHookType = isUpdatePhase ? ProfilerEvent.TemplateUpdateStart : ProfilerEvent.TemplateCreateStart; - profiler(preHookType, context2, templateFn); - templateFn(rf, context2); - } finally { - setSelectedIndex(prevSelectedIndex); - const postHookType = isUpdatePhase ? ProfilerEvent.TemplateUpdateEnd : ProfilerEvent.TemplateCreateEnd; - profiler(postHookType, context2, templateFn); - } -} -function createDirectivesInstances(tView, lView, tNode) { - instantiateAllDirectives(tView, lView, tNode); - if ((tNode.flags & 64) === 64) { - invokeDirectivesHostBindings(tView, lView, tNode); - } -} -function saveResolvedLocalsInData(viewData, tNode, localRefExtractor = getNativeByTNode) { - const localNames = tNode.localNames; - if (localNames !== null) { - let localIndex = tNode.index + 1; - for (let i = 0; i < localNames.length; i += 2) { - const index = localNames[i + 1]; - const value = index === -1 ? localRefExtractor(tNode, viewData) : viewData[index]; - viewData[localIndex++] = value; - } - } -} -function locateHostElement(renderer, elementOrSelector, encapsulation, injector) { - const preserveHostContent = injector.get(PRESERVE_HOST_CONTENT, PRESERVE_HOST_CONTENT_DEFAULT); - const preserveContent = preserveHostContent || encapsulation === ViewEncapsulation.ShadowDom || encapsulation === ViewEncapsulation.ExperimentalIsolatedShadowDom; - const rootElement = renderer.selectRootElement(elementOrSelector, preserveContent); - if (rootElement.tagName.toLowerCase() === "script") { - throw new RuntimeError(905, ngDevMode && `"