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; }; var __async = (__this, __arguments, generator) => { return new Promise((resolve, reject) => { var fulfilled = (value) => { try { step(generator.next(value)); } catch (e) { reject(e); } }; var rejected = (value) => { try { step(generator.throw(value)); } catch (e) { reject(e); } }; var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); step((generator = generator.apply(__this, __arguments)).next()); }); }; // node_modules/@angular/core/fesm2022/primitives/signals.mjs function defaultEquals(a, b) { return Object.is(a, b); } var activeConsumer = null; var inNotificationPhase = false; var epoch = 1; var SIGNAL = 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, producerNode: void 0, producerLastReadVersion: void 0, producerIndexOfThis: void 0, nextProducerIndex: 0, liveConsumerNode: void 0, liveConsumerIndexOfThis: void 0, consumerAllowSignalWrites: false, consumerIsAlwaysLive: false, 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 idx = activeConsumer.nextProducerIndex++; assertConsumerNode(activeConsumer); if (idx < activeConsumer.producerNode.length && activeConsumer.producerNode[idx] !== node) { if (consumerIsLive(activeConsumer)) { const staleProducer = activeConsumer.producerNode[idx]; producerRemoveLiveConsumerAtIndex(staleProducer, activeConsumer.producerIndexOfThis[idx]); } } if (activeConsumer.producerNode[idx] !== node) { activeConsumer.producerNode[idx] = node; activeConsumer.producerIndexOfThis[idx] = consumerIsLive(activeConsumer) ? producerAddLiveConsumer(node, activeConsumer, idx) : 0; } activeConsumer.producerLastReadVersion[idx] = node.version; } 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)) { node.dirty = false; node.lastCleanEpoch = epoch; return; } node.producerRecomputeValue(node); node.dirty = false; node.lastCleanEpoch = epoch; } function producerNotifyConsumers(node) { if (node.liveConsumerNode === void 0) { return; } const prev = inNotificationPhase; inNotificationPhase = true; try { for (const consumer of node.liveConsumerNode) { 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 consumerBeforeComputation(node) { node && (node.nextProducerIndex = 0); return setActiveConsumer(node); } function consumerAfterComputation(node, prevConsumer) { setActiveConsumer(prevConsumer); if (!node || node.producerNode === void 0 || node.producerIndexOfThis === void 0 || node.producerLastReadVersion === void 0) { return; } if (consumerIsLive(node)) { for (let i = node.nextProducerIndex; i < node.producerNode.length; i++) { producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]); } } while (node.producerNode.length > node.nextProducerIndex) { node.producerNode.pop(); node.producerLastReadVersion.pop(); node.producerIndexOfThis.pop(); } } function consumerPollProducersForChange(node) { assertConsumerNode(node); for (let i = 0; i < node.producerNode.length; i++) { const producer = node.producerNode[i]; const seenVersion = node.producerLastReadVersion[i]; if (seenVersion !== producer.version) { return true; } producerUpdateValueVersion(producer); if (seenVersion !== producer.version) { return true; } } return false; } function consumerDestroy(node) { assertConsumerNode(node); if (consumerIsLive(node)) { for (let i = 0; i < node.producerNode.length; i++) { producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]); } } node.producerNode.length = node.producerLastReadVersion.length = node.producerIndexOfThis.length = 0; if (node.liveConsumerNode) { node.liveConsumerNode.length = node.liveConsumerIndexOfThis.length = 0; } } function producerAddLiveConsumer(node, consumer, indexOfThis) { assertProducerNode(node); assertConsumerNode(node); if (node.liveConsumerNode.length === 0) { for (let i = 0; i < node.producerNode.length; i++) { node.producerIndexOfThis[i] = producerAddLiveConsumer(node.producerNode[i], node, i); } } node.liveConsumerIndexOfThis.push(indexOfThis); return node.liveConsumerNode.push(consumer) - 1; } function producerRemoveLiveConsumerAtIndex(node, idx) { assertProducerNode(node); assertConsumerNode(node); if (typeof ngDevMode !== "undefined" && ngDevMode && idx >= node.liveConsumerNode.length) { throw new Error(`Assertion error: active consumer index ${idx} is out of bounds of ${node.liveConsumerNode.length} consumers)`); } if (node.liveConsumerNode.length === 1) { for (let i = 0; i < node.producerNode.length; i++) { producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]); } } const lastIdx = node.liveConsumerNode.length - 1; node.liveConsumerNode[idx] = node.liveConsumerNode[lastIdx]; node.liveConsumerIndexOfThis[idx] = node.liveConsumerIndexOfThis[lastIdx]; node.liveConsumerNode.length--; node.liveConsumerIndexOfThis.length--; if (idx < node.liveConsumerNode.length) { const idxProducer = node.liveConsumerIndexOfThis[idx]; const consumer = node.liveConsumerNode[idx]; assertConsumerNode(consumer); consumer.producerIndexOfThis[idxProducer] = idx; } } function consumerIsLive(node) { return node.consumerIsAlwaysLive || (node?.liveConsumerNode?.length ?? 0) > 0; } function assertConsumerNode(node) { node.producerNode ??= []; node.producerIndexOfThis ??= []; node.producerLastReadVersion ??= []; } function assertProducerNode(node) { node.liveConsumerNode ??= []; node.liveConsumerIndexOfThis ??= []; } function createComputed(computation) { const node = Object.create(COMPUTED_NODE); node.computation = computation; const computed2 = () => { producerUpdateValueVersion(node); producerAccessed(node); if (node.value === ERRORED) { throw node.error; } return node.value; }; computed2[SIGNAL] = node; return computed2; } var UNSET = Symbol("UNSET"); var COMPUTING = Symbol("COMPUTING"); var ERRORED = Symbol("ERRORED"); var COMPUTED_NODE = (() => { return __spreadProps(__spreadValues({}, REACTIVE_NODE), { value: UNSET, dirty: true, error: null, equal: defaultEquals, producerMustRecompute(node) { return node.value === UNSET || node.value === COMPUTING; }, producerRecomputeValue(node) { if (node.value === COMPUTING) { throw new Error("Detected cycle in computations."); } const oldValue = node.value; node.value = COMPUTING; const prevConsumer = consumerBeforeComputation(node); let newValue; try { newValue = node.computation(); } catch (err) { newValue = ERRORED; node.error = err; } finally { consumerAfterComputation(node, prevConsumer); } if (oldValue !== UNSET && oldValue !== ERRORED && newValue !== ERRORED && node.equal(oldValue, newValue)) { node.value = oldValue; return; } node.value = newValue; node.version++; } }); })(); function defaultThrowError() { throw new Error(); } var throwInvalidWriteToSignalErrorFn = defaultThrowError; function throwInvalidWriteToSignalError() { throwInvalidWriteToSignalErrorFn(); } function setThrowInvalidWriteToSignalError(fn) { throwInvalidWriteToSignalErrorFn = fn; } var postSignalSetFn = null; function createSignal(initialValue) { const node = Object.create(SIGNAL_NODE); node.value = initialValue; const getter = () => { producerAccessed(node); return node.value; }; getter[SIGNAL] = node; return getter; } function signalSetFn(node, newValue) { if (!producerUpdatesAllowed()) { throwInvalidWriteToSignalError(); } if (!node.equal(node.value, newValue)) { node.value = newValue; signalValueChanged(node); } } function signalUpdateFn(node, updater) { if (!producerUpdatesAllowed()) { throwInvalidWriteToSignalError(); } signalSetFn(node, updater(node.value)); } var SIGNAL_NODE = (() => { return __spreadProps(__spreadValues({}, REACTIVE_NODE), { equal: defaultEquals, value: void 0 }); })(); function signalValueChanged(node) { node.version++; producerIncrementEpoch(); producerNotifyConsumers(node); postSignalSetFn?.(); } function createWatch(fn, schedule, allowSignalWrites) { const node = Object.create(WATCH_NODE); if (allowSignalWrites) { node.consumerAllowSignalWrites = true; } node.fn = fn; node.schedule = schedule; const registerOnCleanup = (cleanupFn) => { node.cleanupFn = cleanupFn; }; function isWatchNodeDestroyed(node2) { return node2.fn === null && node2.schedule === null; } function destroyWatchNode(node2) { if (!isWatchNodeDestroyed(node2)) { consumerDestroy(node2); node2.cleanupFn(); node2.fn = null; node2.schedule = null; node2.cleanupFn = NOOP_CLEANUP_FN; } } const run = () => { if (node.fn === null) { return; } if (isInNotificationPhase()) { throw new Error(`Schedulers cannot synchronously execute watches while scheduling.`); } node.dirty = false; if (node.hasRun && !consumerPollProducersForChange(node)) { return; } node.hasRun = true; const prevConsumer = consumerBeforeComputation(node); try { node.cleanupFn(); node.cleanupFn = NOOP_CLEANUP_FN; node.fn(registerOnCleanup); } finally { consumerAfterComputation(node, prevConsumer); } }; node.ref = { notify: () => consumerMarkDirty(node), run, cleanup: () => node.cleanupFn(), destroy: () => destroyWatchNode(node), [SIGNAL]: node }; return node.ref; } var NOOP_CLEANUP_FN = () => { }; var WATCH_NODE = (() => { return __spreadProps(__spreadValues({}, REACTIVE_NODE), { consumerIsAlwaysLive: true, consumerAllowSignalWrites: false, consumerMarkedDirty: (node) => { if (node.schedule !== null) { node.schedule(node.ref); } }, hasRun: false, cleanupFn: NOOP_CLEANUP_FN }); })(); // node_modules/tslib/tslib.es6.mjs var extendStatics = function(d, b) { extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { d2.__proto__ = b2; } || function(d2, b2) { for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; }; return extendStatics(d, b); }; function __extends(d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); } 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 __generator(thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function(v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } } 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 __read(o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = { error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; } function __spreadArray(to, from2, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from2.length, ar; i < l; i++) { if (ar || !(i in from2)) { if (!ar) ar = Array.prototype.slice.call(from2, 0, i); ar[i] = from2[i]; } } return to.concat(ar || Array.prototype.slice.call(from2)); } 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 = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() { return this; }, i; function verb(n) { if (g[n]) i[n] = function(v) { return new Promise(function(a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } 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/esm5/internal/util/isFunction.js function isFunction(value) { return typeof value === "function"; } // node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js function createErrorClass(createImpl) { var _super = function(instance) { Error.call(instance); instance.stack = new Error().stack; }; var ctorFunc = createImpl(_super); ctorFunc.prototype = Object.create(Error.prototype); ctorFunc.prototype.constructor = ctorFunc; return ctorFunc; } // node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js var UnsubscriptionError = createErrorClass(function(_super) { return function UnsubscriptionErrorImpl(errors) { _super(this); this.message = errors ? errors.length + " errors occurred during unsubscription:\n" + errors.map(function(err, i) { return i + 1 + ") " + err.toString(); }).join("\n ") : ""; this.name = "UnsubscriptionError"; this.errors = errors; }; }); // node_modules/rxjs/dist/esm5/internal/util/arrRemove.js function arrRemove(arr, item) { if (arr) { var index = arr.indexOf(item); 0 <= index && arr.splice(index, 1); } } // node_modules/rxjs/dist/esm5/internal/Subscription.js var Subscription = function() { function Subscription2(initialTeardown) { this.initialTeardown = initialTeardown; this.closed = false; this._parentage = null; this._finalizers = null; } Subscription2.prototype.unsubscribe = function() { var e_1, _a, e_2, _b; var errors; if (!this.closed) { this.closed = true; var _parentage = this._parentage; if (_parentage) { this._parentage = null; if (Array.isArray(_parentage)) { try { for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) { var parent_1 = _parentage_1_1.value; parent_1.remove(this); } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1); } finally { if (e_1) throw e_1.error; } } } else { _parentage.remove(this); } } var initialFinalizer = this.initialTeardown; if (isFunction(initialFinalizer)) { try { initialFinalizer(); } catch (e) { errors = e instanceof UnsubscriptionError ? e.errors : [e]; } } var _finalizers = this._finalizers; if (_finalizers) { this._finalizers = null; try { for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) { var finalizer = _finalizers_1_1.value; try { execFinalizer(finalizer); } catch (err) { errors = errors !== null && errors !== void 0 ? errors : []; if (err instanceof UnsubscriptionError) { errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors)); } else { errors.push(err); } } } } catch (e_2_1) { e_2 = { error: e_2_1 }; } finally { try { if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1); } finally { if (e_2) throw e_2.error; } } } if (errors) { throw new UnsubscriptionError(errors); } } }; Subscription2.prototype.add = function(teardown) { var _a; if (teardown && teardown !== this) { if (this.closed) { execFinalizer(teardown); } else { if (teardown instanceof Subscription2) { if (teardown.closed || teardown._hasParent(this)) { return; } teardown._addParent(this); } (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown); } } }; Subscription2.prototype._hasParent = function(parent) { var _parentage = this._parentage; return _parentage === parent || Array.isArray(_parentage) && _parentage.includes(parent); }; Subscription2.prototype._addParent = function(parent) { var _parentage = this._parentage; this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent; }; Subscription2.prototype._removeParent = function(parent) { var _parentage = this._parentage; if (_parentage === parent) { this._parentage = null; } else if (Array.isArray(_parentage)) { arrRemove(_parentage, parent); } }; Subscription2.prototype.remove = function(teardown) { var _finalizers = this._finalizers; _finalizers && arrRemove(_finalizers, teardown); if (teardown instanceof Subscription2) { teardown._removeParent(this); } }; Subscription2.EMPTY = function() { var empty2 = new Subscription2(); empty2.closed = true; return empty2; }(); return Subscription2; }(); 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/esm5/internal/config.js var config = { onUnhandledError: null, onStoppedNotification: null, Promise: void 0, useDeprecatedSynchronousErrorHandling: false, useDeprecatedNextContext: false }; // node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js var timeoutProvider = { setTimeout: function(handler, timeout2) { var args = []; for (var _i = 2; _i < arguments.length; _i++) { args[_i - 2] = arguments[_i]; } var delegate = timeoutProvider.delegate; if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) { return delegate.setTimeout.apply(delegate, __spreadArray([handler, timeout2], __read(args))); } return setTimeout.apply(void 0, __spreadArray([handler, timeout2], __read(args))); }, clearTimeout: function(handle) { var delegate = timeoutProvider.delegate; return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle); }, delegate: void 0 }; // node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js function reportUnhandledError(err) { timeoutProvider.setTimeout(function() { var onUnhandledError = config.onUnhandledError; if (onUnhandledError) { onUnhandledError(err); } else { throw err; } }); } // node_modules/rxjs/dist/esm5/internal/util/noop.js function noop() { } // node_modules/rxjs/dist/esm5/internal/NotificationFactories.js var COMPLETE_NOTIFICATION = function() { return 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/esm5/internal/util/errorContext.js var context = null; function errorContext(cb) { if (config.useDeprecatedSynchronousErrorHandling) { var isRoot = !context; if (isRoot) { context = { errorThrown: false, error: null }; } cb(); if (isRoot) { var _a = context, errorThrown = _a.errorThrown, error = _a.error; 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/esm5/internal/Subscriber.js var Subscriber = function(_super) { __extends(Subscriber2, _super); function Subscriber2(destination) { var _this = _super.call(this) || this; _this.isStopped = false; if (destination) { _this.destination = destination; if (isSubscription(destination)) { destination.add(_this); } } else { _this.destination = EMPTY_OBSERVER; } return _this; } Subscriber2.create = function(next, error, complete) { return new SafeSubscriber(next, error, complete); }; Subscriber2.prototype.next = function(value) { if (this.isStopped) { handleStoppedNotification(nextNotification(value), this); } else { this._next(value); } }; Subscriber2.prototype.error = function(err) { if (this.isStopped) { handleStoppedNotification(errorNotification(err), this); } else { this.isStopped = true; this._error(err); } }; Subscriber2.prototype.complete = function() { if (this.isStopped) { handleStoppedNotification(COMPLETE_NOTIFICATION, this); } else { this.isStopped = true; this._complete(); } }; Subscriber2.prototype.unsubscribe = function() { if (!this.closed) { this.isStopped = true; _super.prototype.unsubscribe.call(this); this.destination = null; } }; Subscriber2.prototype._next = function(value) { this.destination.next(value); }; Subscriber2.prototype._error = function(err) { try { this.destination.error(err); } finally { this.unsubscribe(); } }; Subscriber2.prototype._complete = function() { try { this.destination.complete(); } finally { this.unsubscribe(); } }; return Subscriber2; }(Subscription); var _bind = Function.prototype.bind; function bind(fn, thisArg) { return _bind.call(fn, thisArg); } var ConsumerObserver = function() { function ConsumerObserver2(partialObserver) { this.partialObserver = partialObserver; } ConsumerObserver2.prototype.next = function(value) { var partialObserver = this.partialObserver; if (partialObserver.next) { try { partialObserver.next(value); } catch (error) { handleUnhandledError(error); } } }; ConsumerObserver2.prototype.error = function(err) { var partialObserver = this.partialObserver; if (partialObserver.error) { try { partialObserver.error(err); } catch (error) { handleUnhandledError(error); } } else { handleUnhandledError(err); } }; ConsumerObserver2.prototype.complete = function() { var partialObserver = this.partialObserver; if (partialObserver.complete) { try { partialObserver.complete(); } catch (error) { handleUnhandledError(error); } } }; return ConsumerObserver2; }(); var SafeSubscriber = function(_super) { __extends(SafeSubscriber2, _super); function SafeSubscriber2(observerOrNext, error, complete) { var _this = _super.call(this) || this; var 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 { var context_1; if (_this && config.useDeprecatedNextContext) { context_1 = Object.create(observerOrNext); context_1.unsubscribe = function() { return _this.unsubscribe(); }; partialObserver = { next: observerOrNext.next && bind(observerOrNext.next, context_1), error: observerOrNext.error && bind(observerOrNext.error, context_1), complete: observerOrNext.complete && bind(observerOrNext.complete, context_1) }; } else { partialObserver = observerOrNext; } } _this.destination = new ConsumerObserver(partialObserver); return _this; } return SafeSubscriber2; }(Subscriber); function handleUnhandledError(error) { if (config.useDeprecatedSynchronousErrorHandling) { captureError(error); } else { reportUnhandledError(error); } } function defaultErrorHandler(err) { throw err; } function handleStoppedNotification(notification, subscriber) { var onStoppedNotification = config.onStoppedNotification; onStoppedNotification && timeoutProvider.setTimeout(function() { return onStoppedNotification(notification, subscriber); }); } var EMPTY_OBSERVER = { closed: true, next: noop, error: defaultErrorHandler, complete: noop }; // node_modules/rxjs/dist/esm5/internal/symbol/observable.js var observable = function() { return typeof Symbol === "function" && Symbol.observable || "@@observable"; }(); // node_modules/rxjs/dist/esm5/internal/util/identity.js function identity(x) { return x; } // node_modules/rxjs/dist/esm5/internal/util/pipe.js function pipe() { var fns = []; for (var _i = 0; _i < arguments.length; _i++) { fns[_i] = arguments[_i]; } 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(function(prev, fn) { return fn(prev); }, input2); }; } // node_modules/rxjs/dist/esm5/internal/Observable.js var Observable = function() { function Observable2(subscribe) { if (subscribe) { this._subscribe = subscribe; } } Observable2.prototype.lift = function(operator) { var observable2 = new Observable2(); observable2.source = this; observable2.operator = operator; return observable2; }; Observable2.prototype.subscribe = function(observerOrNext, error, complete) { var _this = this; var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete); errorContext(function() { var _a = _this, operator = _a.operator, source = _a.source; subscriber.add(operator ? operator.call(subscriber, source) : source ? _this._subscribe(subscriber) : _this._trySubscribe(subscriber)); }); return subscriber; }; Observable2.prototype._trySubscribe = function(sink) { try { return this._subscribe(sink); } catch (err) { sink.error(err); } }; Observable2.prototype.forEach = function(next, promiseCtor) { var _this = this; promiseCtor = getPromiseCtor(promiseCtor); return new promiseCtor(function(resolve, reject) { var subscriber = new SafeSubscriber({ next: function(value) { try { next(value); } catch (err) { reject(err); subscriber.unsubscribe(); } }, error: reject, complete: resolve }); _this.subscribe(subscriber); }); }; Observable2.prototype._subscribe = function(subscriber) { var _a; return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber); }; Observable2.prototype[observable] = function() { return this; }; Observable2.prototype.pipe = function() { var operations = []; for (var _i = 0; _i < arguments.length; _i++) { operations[_i] = arguments[_i]; } return pipeFromArray(operations)(this); }; Observable2.prototype.toPromise = function(promiseCtor) { var _this = this; promiseCtor = getPromiseCtor(promiseCtor); return new promiseCtor(function(resolve, reject) { var value; _this.subscribe(function(x) { return value = x; }, function(err) { return reject(err); }, function() { return resolve(value); }); }); }; Observable2.create = function(subscribe) { return new Observable2(subscribe); }; return Observable2; }(); 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/esm5/internal/util/lift.js function hasLift(source) { return isFunction(source === null || source === void 0 ? void 0 : source.lift); } function operate(init) { return function(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/esm5/internal/operators/OperatorSubscriber.js function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) { return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize); } var OperatorSubscriber = function(_super) { __extends(OperatorSubscriber2, _super); function OperatorSubscriber2(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) { var _this = _super.call(this, destination) || this; _this.onFinalize = onFinalize; _this.shouldUnsubscribe = shouldUnsubscribe; _this._next = onNext ? function(value) { try { onNext(value); } catch (err) { destination.error(err); } } : _super.prototype._next; _this._error = onError ? function(err) { try { onError(err); } catch (err2) { destination.error(err2); } finally { this.unsubscribe(); } } : _super.prototype._error; _this._complete = onComplete ? function() { try { onComplete(); } catch (err) { destination.error(err); } finally { this.unsubscribe(); } } : _super.prototype._complete; return _this; } OperatorSubscriber2.prototype.unsubscribe = function() { var _a; if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) { var closed_1 = this.closed; _super.prototype.unsubscribe.call(this); !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this)); } }; return OperatorSubscriber2; }(Subscriber); // node_modules/rxjs/dist/esm5/internal/operators/refCount.js function refCount() { return operate(function(source, subscriber) { var connection = null; source._refCount++; var refCounter = createOperatorSubscriber(subscriber, void 0, void 0, void 0, function() { if (!source || source._refCount <= 0 || 0 < --source._refCount) { connection = null; return; } var sharedConnection = source._connection; var conn = connection; connection = null; if (sharedConnection && (!conn || sharedConnection === conn)) { sharedConnection.unsubscribe(); } subscriber.unsubscribe(); }); source.subscribe(refCounter); if (!refCounter.closed) { connection = source.connect(); } }); } // node_modules/rxjs/dist/esm5/internal/observable/ConnectableObservable.js var ConnectableObservable = function(_super) { __extends(ConnectableObservable2, _super); function ConnectableObservable2(source, subjectFactory) { var _this = _super.call(this) || this; _this.source = source; _this.subjectFactory = subjectFactory; _this._subject = null; _this._refCount = 0; _this._connection = null; if (hasLift(source)) { _this.lift = source.lift; } return _this; } ConnectableObservable2.prototype._subscribe = function(subscriber) { return this.getSubject().subscribe(subscriber); }; ConnectableObservable2.prototype.getSubject = function() { var subject = this._subject; if (!subject || subject.isStopped) { this._subject = this.subjectFactory(); } return this._subject; }; ConnectableObservable2.prototype._teardown = function() { this._refCount = 0; var _connection = this._connection; this._subject = this._connection = null; _connection === null || _connection === void 0 ? void 0 : _connection.unsubscribe(); }; ConnectableObservable2.prototype.connect = function() { var _this = this; var connection = this._connection; if (!connection) { connection = this._connection = new Subscription(); var subject_1 = this.getSubject(); connection.add(this.source.subscribe(createOperatorSubscriber(subject_1, void 0, function() { _this._teardown(); subject_1.complete(); }, function(err) { _this._teardown(); subject_1.error(err); }, function() { return _this._teardown(); }))); if (connection.closed) { this._connection = null; connection = Subscription.EMPTY; } } return connection; }; ConnectableObservable2.prototype.refCount = function() { return refCount()(this); }; return ConnectableObservable2; }(Observable); // node_modules/rxjs/dist/esm5/internal/scheduler/performanceTimestampProvider.js var performanceTimestampProvider = { now: function() { return (performanceTimestampProvider.delegate || performance).now(); }, delegate: void 0 }; // node_modules/rxjs/dist/esm5/internal/scheduler/animationFrameProvider.js var animationFrameProvider = { schedule: function(callback) { var request = requestAnimationFrame; var cancel = cancelAnimationFrame; var delegate = animationFrameProvider.delegate; if (delegate) { request = delegate.requestAnimationFrame; cancel = delegate.cancelAnimationFrame; } var handle = request(function(timestamp2) { cancel = void 0; callback(timestamp2); }); return new Subscription(function() { return cancel === null || cancel === void 0 ? void 0 : cancel(handle); }); }, requestAnimationFrame: function() { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } var delegate = animationFrameProvider.delegate; return ((delegate === null || delegate === void 0 ? void 0 : delegate.requestAnimationFrame) || requestAnimationFrame).apply(void 0, __spreadArray([], __read(args))); }, cancelAnimationFrame: function() { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } var delegate = animationFrameProvider.delegate; return ((delegate === null || delegate === void 0 ? void 0 : delegate.cancelAnimationFrame) || cancelAnimationFrame).apply(void 0, __spreadArray([], __read(args))); }, delegate: void 0 }; // node_modules/rxjs/dist/esm5/internal/observable/dom/animationFrames.js function animationFramesFactory(timestampProvider) { return new Observable(function(subscriber) { var provider = timestampProvider || performanceTimestampProvider; var start = provider.now(); var id = 0; var run = function() { if (!subscriber.closed) { id = animationFrameProvider.requestAnimationFrame(function(timestamp2) { id = 0; var now = provider.now(); subscriber.next({ timestamp: timestampProvider ? now : timestamp2, elapsed: now - start }); run(); }); } }; run(); return function() { if (id) { animationFrameProvider.cancelAnimationFrame(id); } }; }); } var DEFAULT_ANIMATION_FRAMES = animationFramesFactory(); // node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js var ObjectUnsubscribedError = createErrorClass(function(_super) { return function ObjectUnsubscribedErrorImpl() { _super(this); this.name = "ObjectUnsubscribedError"; this.message = "object unsubscribed"; }; }); // node_modules/rxjs/dist/esm5/internal/Subject.js var Subject = function(_super) { __extends(Subject2, _super); function Subject2() { var _this = _super.call(this) || this; _this.closed = false; _this.currentObservers = null; _this.observers = []; _this.isStopped = false; _this.hasError = false; _this.thrownError = null; return _this; } Subject2.prototype.lift = function(operator) { var subject = new AnonymousSubject(this, this); subject.operator = operator; return subject; }; Subject2.prototype._throwIfClosed = function() { if (this.closed) { throw new ObjectUnsubscribedError(); } }; Subject2.prototype.next = function(value) { var _this = this; errorContext(function() { var e_1, _a; _this._throwIfClosed(); if (!_this.isStopped) { if (!_this.currentObservers) { _this.currentObservers = Array.from(_this.observers); } try { for (var _b = __values(_this.currentObservers), _c = _b.next(); !_c.done; _c = _b.next()) { var observer = _c.value; observer.next(value); } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (_c && !_c.done && (_a = _b.return)) _a.call(_b); } finally { if (e_1) throw e_1.error; } } } }); }; Subject2.prototype.error = function(err) { var _this = this; errorContext(function() { _this._throwIfClosed(); if (!_this.isStopped) { _this.hasError = _this.isStopped = true; _this.thrownError = err; var observers = _this.observers; while (observers.length) { observers.shift().error(err); } } }); }; Subject2.prototype.complete = function() { var _this = this; errorContext(function() { _this._throwIfClosed(); if (!_this.isStopped) { _this.isStopped = true; var observers = _this.observers; while (observers.length) { observers.shift().complete(); } } }); }; Subject2.prototype.unsubscribe = function() { this.isStopped = this.closed = true; this.observers = this.currentObservers = null; }; Object.defineProperty(Subject2.prototype, "observed", { get: function() { var _a; return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0; }, enumerable: false, configurable: true }); Subject2.prototype._trySubscribe = function(subscriber) { this._throwIfClosed(); return _super.prototype._trySubscribe.call(this, subscriber); }; Subject2.prototype._subscribe = function(subscriber) { this._throwIfClosed(); this._checkFinalizedStatuses(subscriber); return this._innerSubscribe(subscriber); }; Subject2.prototype._innerSubscribe = function(subscriber) { var _this = this; var _a = this, hasError = _a.hasError, isStopped = _a.isStopped, observers = _a.observers; if (hasError || isStopped) { return EMPTY_SUBSCRIPTION; } this.currentObservers = null; observers.push(subscriber); return new Subscription(function() { _this.currentObservers = null; arrRemove(observers, subscriber); }); }; Subject2.prototype._checkFinalizedStatuses = function(subscriber) { var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, isStopped = _a.isStopped; if (hasError) { subscriber.error(thrownError); } else if (isStopped) { subscriber.complete(); } }; Subject2.prototype.asObservable = function() { var observable2 = new Observable(); observable2.source = this; return observable2; }; Subject2.create = function(destination, source) { return new AnonymousSubject(destination, source); }; return Subject2; }(Observable); var AnonymousSubject = function(_super) { __extends(AnonymousSubject2, _super); function AnonymousSubject2(destination, source) { var _this = _super.call(this) || this; _this.destination = destination; _this.source = source; return _this; } AnonymousSubject2.prototype.next = function(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); }; AnonymousSubject2.prototype.error = function(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); }; AnonymousSubject2.prototype.complete = function() { var _a, _b; (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a); }; AnonymousSubject2.prototype._subscribe = function(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; }; return AnonymousSubject2; }(Subject); // node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js var BehaviorSubject = function(_super) { __extends(BehaviorSubject2, _super); function BehaviorSubject2(_value) { var _this = _super.call(this) || this; _this._value = _value; return _this; } Object.defineProperty(BehaviorSubject2.prototype, "value", { get: function() { return this.getValue(); }, enumerable: false, configurable: true }); BehaviorSubject2.prototype._subscribe = function(subscriber) { var subscription = _super.prototype._subscribe.call(this, subscriber); !subscription.closed && subscriber.next(this._value); return subscription; }; BehaviorSubject2.prototype.getValue = function() { var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, _value = _a._value; if (hasError) { throw thrownError; } this._throwIfClosed(); return _value; }; BehaviorSubject2.prototype.next = function(value) { _super.prototype.next.call(this, this._value = value); }; return BehaviorSubject2; }(Subject); // node_modules/rxjs/dist/esm5/internal/scheduler/dateTimestampProvider.js var dateTimestampProvider = { now: function() { return (dateTimestampProvider.delegate || Date).now(); }, delegate: void 0 }; // node_modules/rxjs/dist/esm5/internal/ReplaySubject.js var ReplaySubject = function(_super) { __extends(ReplaySubject2, _super); function ReplaySubject2(_bufferSize, _windowTime, _timestampProvider) { if (_bufferSize === void 0) { _bufferSize = Infinity; } if (_windowTime === void 0) { _windowTime = Infinity; } if (_timestampProvider === void 0) { _timestampProvider = dateTimestampProvider; } var _this = _super.call(this) || this; _this._bufferSize = _bufferSize; _this._windowTime = _windowTime; _this._timestampProvider = _timestampProvider; _this._buffer = []; _this._infiniteTimeWindow = true; _this._infiniteTimeWindow = _windowTime === Infinity; _this._bufferSize = Math.max(1, _bufferSize); _this._windowTime = Math.max(1, _windowTime); return _this; } ReplaySubject2.prototype.next = function(value) { var _a = this, isStopped = _a.isStopped, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow, _timestampProvider = _a._timestampProvider, _windowTime = _a._windowTime; if (!isStopped) { _buffer.push(value); !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime); } this._trimBuffer(); _super.prototype.next.call(this, value); }; ReplaySubject2.prototype._subscribe = function(subscriber) { this._throwIfClosed(); this._trimBuffer(); var subscription = this._innerSubscribe(subscriber); var _a = this, _infiniteTimeWindow = _a._infiniteTimeWindow, _buffer = _a._buffer; var copy = _buffer.slice(); for (var i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) { subscriber.next(copy[i]); } this._checkFinalizedStatuses(subscriber); return subscription; }; ReplaySubject2.prototype._trimBuffer = function() { var _a = this, _bufferSize = _a._bufferSize, _timestampProvider = _a._timestampProvider, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow; var adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize; _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize); if (!_infiniteTimeWindow) { var now = _timestampProvider.now(); var last3 = 0; for (var i = 1; i < _buffer.length && _buffer[i] <= now; i += 2) { last3 = i; } last3 && _buffer.splice(0, last3 + 1); } }; return ReplaySubject2; }(Subject); // node_modules/rxjs/dist/esm5/internal/AsyncSubject.js var AsyncSubject = function(_super) { __extends(AsyncSubject2, _super); function AsyncSubject2() { var _this = _super !== null && _super.apply(this, arguments) || this; _this._value = null; _this._hasValue = false; _this._isComplete = false; return _this; } AsyncSubject2.prototype._checkFinalizedStatuses = function(subscriber) { var _a = this, hasError = _a.hasError, _hasValue = _a._hasValue, _value = _a._value, thrownError = _a.thrownError, isStopped = _a.isStopped, _isComplete = _a._isComplete; if (hasError) { subscriber.error(thrownError); } else if (isStopped || _isComplete) { _hasValue && subscriber.next(_value); subscriber.complete(); } }; AsyncSubject2.prototype.next = function(value) { if (!this.isStopped) { this._value = value; this._hasValue = true; } }; AsyncSubject2.prototype.complete = function() { var _a = this, _hasValue = _a._hasValue, _value = _a._value, _isComplete = _a._isComplete; if (!_isComplete) { this._isComplete = true; _hasValue && _super.prototype.next.call(this, _value); _super.prototype.complete.call(this); } }; return AsyncSubject2; }(Subject); // node_modules/rxjs/dist/esm5/internal/scheduler/Action.js var Action = function(_super) { __extends(Action2, _super); function Action2(scheduler, work) { return _super.call(this) || this; } Action2.prototype.schedule = function(state, delay2) { if (delay2 === void 0) { delay2 = 0; } return this; }; return Action2; }(Subscription); // node_modules/rxjs/dist/esm5/internal/scheduler/intervalProvider.js var intervalProvider = { setInterval: function(handler, timeout2) { var args = []; for (var _i = 2; _i < arguments.length; _i++) { args[_i - 2] = arguments[_i]; } var delegate = intervalProvider.delegate; if (delegate === null || delegate === void 0 ? void 0 : delegate.setInterval) { return delegate.setInterval.apply(delegate, __spreadArray([handler, timeout2], __read(args))); } return setInterval.apply(void 0, __spreadArray([handler, timeout2], __read(args))); }, clearInterval: function(handle) { var delegate = intervalProvider.delegate; return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearInterval) || clearInterval)(handle); }, delegate: void 0 }; // node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js var AsyncAction = function(_super) { __extends(AsyncAction2, _super); function AsyncAction2(scheduler, work) { var _this = _super.call(this, scheduler, work) || this; _this.scheduler = scheduler; _this.work = work; _this.pending = false; return _this; } AsyncAction2.prototype.schedule = function(state, delay2) { var _a; if (delay2 === void 0) { delay2 = 0; } if (this.closed) { return this; } this.state = state; var id = this.id; var scheduler = this.scheduler; if (id != null) { this.id = this.recycleAsyncId(scheduler, id, delay2); } this.pending = true; this.delay = delay2; this.id = (_a = this.id) !== null && _a !== void 0 ? _a : this.requestAsyncId(scheduler, this.id, delay2); return this; }; AsyncAction2.prototype.requestAsyncId = function(scheduler, _id, delay2) { if (delay2 === void 0) { delay2 = 0; } return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay2); }; AsyncAction2.prototype.recycleAsyncId = function(_scheduler, id, delay2) { if (delay2 === void 0) { delay2 = 0; } if (delay2 != null && this.delay === delay2 && this.pending === false) { return id; } if (id != null) { intervalProvider.clearInterval(id); } return void 0; }; AsyncAction2.prototype.execute = function(state, delay2) { if (this.closed) { return new Error("executing a cancelled action"); } this.pending = false; var error = this._execute(state, delay2); if (error) { return error; } else if (this.pending === false && this.id != null) { this.id = this.recycleAsyncId(this.scheduler, this.id, null); } }; AsyncAction2.prototype._execute = function(state, _delay) { var errored = false; var 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; } }; AsyncAction2.prototype.unsubscribe = function() { if (!this.closed) { var _a = this, id = _a.id, scheduler = _a.scheduler; var actions = scheduler.actions; 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.prototype.unsubscribe.call(this); } }; return AsyncAction2; }(Action); // node_modules/rxjs/dist/esm5/internal/util/Immediate.js var nextHandle = 1; var resolved; var activeHandles = {}; function findAndClearHandle(handle) { if (handle in activeHandles) { delete activeHandles[handle]; return true; } return false; } var Immediate = { setImmediate: function(cb) { var handle = nextHandle++; activeHandles[handle] = true; if (!resolved) { resolved = Promise.resolve(); } resolved.then(function() { return findAndClearHandle(handle) && cb(); }); return handle; }, clearImmediate: function(handle) { findAndClearHandle(handle); } }; // node_modules/rxjs/dist/esm5/internal/scheduler/immediateProvider.js var setImmediate = Immediate.setImmediate; var clearImmediate = Immediate.clearImmediate; var immediateProvider = { setImmediate: function() { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } var delegate = immediateProvider.delegate; return ((delegate === null || delegate === void 0 ? void 0 : delegate.setImmediate) || setImmediate).apply(void 0, __spreadArray([], __read(args))); }, clearImmediate: function(handle) { var delegate = immediateProvider.delegate; return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearImmediate) || clearImmediate)(handle); }, delegate: void 0 }; // node_modules/rxjs/dist/esm5/internal/scheduler/AsapAction.js var AsapAction = function(_super) { __extends(AsapAction2, _super); function AsapAction2(scheduler, work) { var _this = _super.call(this, scheduler, work) || this; _this.scheduler = scheduler; _this.work = work; return _this; } AsapAction2.prototype.requestAsyncId = function(scheduler, id, delay2) { if (delay2 === void 0) { delay2 = 0; } if (delay2 !== null && delay2 > 0) { return _super.prototype.requestAsyncId.call(this, scheduler, id, delay2); } scheduler.actions.push(this); return scheduler._scheduled || (scheduler._scheduled = immediateProvider.setImmediate(scheduler.flush.bind(scheduler, void 0))); }; AsapAction2.prototype.recycleAsyncId = function(scheduler, id, delay2) { var _a; if (delay2 === void 0) { delay2 = 0; } if (delay2 != null ? delay2 > 0 : this.delay > 0) { return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay2); } var actions = scheduler.actions; if (id != null && ((_a = actions[actions.length - 1]) === null || _a === void 0 ? void 0 : _a.id) !== id) { immediateProvider.clearImmediate(id); if (scheduler._scheduled === id) { scheduler._scheduled = void 0; } } return void 0; }; return AsapAction2; }(AsyncAction); // node_modules/rxjs/dist/esm5/internal/Scheduler.js var Scheduler = function() { function Scheduler2(schedulerActionCtor, now) { if (now === void 0) { now = Scheduler2.now; } this.schedulerActionCtor = schedulerActionCtor; this.now = now; } Scheduler2.prototype.schedule = function(work, delay2, state) { if (delay2 === void 0) { delay2 = 0; } return new this.schedulerActionCtor(this, work).schedule(state, delay2); }; Scheduler2.now = dateTimestampProvider.now; return Scheduler2; }(); // node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js var AsyncScheduler = function(_super) { __extends(AsyncScheduler2, _super); function AsyncScheduler2(SchedulerAction, now) { if (now === void 0) { now = Scheduler.now; } var _this = _super.call(this, SchedulerAction, now) || this; _this.actions = []; _this._active = false; return _this; } AsyncScheduler2.prototype.flush = function(action) { var actions = this.actions; if (this._active) { actions.push(action); return; } var 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; } }; return AsyncScheduler2; }(Scheduler); // node_modules/rxjs/dist/esm5/internal/scheduler/AsapScheduler.js var AsapScheduler = function(_super) { __extends(AsapScheduler2, _super); function AsapScheduler2() { return _super !== null && _super.apply(this, arguments) || this; } AsapScheduler2.prototype.flush = function(action) { this._active = true; var flushId = this._scheduled; this._scheduled = void 0; var actions = this.actions; var error; action = action || actions.shift(); do { if (error = action.execute(action.state, action.delay)) { break; } } while ((action = actions[0]) && action.id === flushId && actions.shift()); this._active = false; if (error) { while ((action = actions[0]) && action.id === flushId && actions.shift()) { action.unsubscribe(); } throw error; } }; return AsapScheduler2; }(AsyncScheduler); // node_modules/rxjs/dist/esm5/internal/scheduler/asap.js var asapScheduler = new AsapScheduler(AsapAction); // node_modules/rxjs/dist/esm5/internal/scheduler/async.js var asyncScheduler = new AsyncScheduler(AsyncAction); // node_modules/rxjs/dist/esm5/internal/scheduler/QueueAction.js var QueueAction = function(_super) { __extends(QueueAction2, _super); function QueueAction2(scheduler, work) { var _this = _super.call(this, scheduler, work) || this; _this.scheduler = scheduler; _this.work = work; return _this; } QueueAction2.prototype.schedule = function(state, delay2) { if (delay2 === void 0) { delay2 = 0; } if (delay2 > 0) { return _super.prototype.schedule.call(this, state, delay2); } this.delay = delay2; this.state = state; this.scheduler.flush(this); return this; }; QueueAction2.prototype.execute = function(state, delay2) { return delay2 > 0 || this.closed ? _super.prototype.execute.call(this, state, delay2) : this._execute(state, delay2); }; QueueAction2.prototype.requestAsyncId = function(scheduler, id, delay2) { if (delay2 === void 0) { delay2 = 0; } if (delay2 != null && delay2 > 0 || delay2 == null && this.delay > 0) { return _super.prototype.requestAsyncId.call(this, scheduler, id, delay2); } scheduler.flush(this); return 0; }; return QueueAction2; }(AsyncAction); // node_modules/rxjs/dist/esm5/internal/scheduler/QueueScheduler.js var QueueScheduler = function(_super) { __extends(QueueScheduler2, _super); function QueueScheduler2() { return _super !== null && _super.apply(this, arguments) || this; } return QueueScheduler2; }(AsyncScheduler); // node_modules/rxjs/dist/esm5/internal/scheduler/queue.js var queueScheduler = new QueueScheduler(QueueAction); // node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameAction.js var AnimationFrameAction = function(_super) { __extends(AnimationFrameAction2, _super); function AnimationFrameAction2(scheduler, work) { var _this = _super.call(this, scheduler, work) || this; _this.scheduler = scheduler; _this.work = work; return _this; } AnimationFrameAction2.prototype.requestAsyncId = function(scheduler, id, delay2) { if (delay2 === void 0) { delay2 = 0; } if (delay2 !== null && delay2 > 0) { return _super.prototype.requestAsyncId.call(this, scheduler, id, delay2); } scheduler.actions.push(this); return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider.requestAnimationFrame(function() { return scheduler.flush(void 0); })); }; AnimationFrameAction2.prototype.recycleAsyncId = function(scheduler, id, delay2) { var _a; if (delay2 === void 0) { delay2 = 0; } if (delay2 != null ? delay2 > 0 : this.delay > 0) { return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay2); } var actions = scheduler.actions; if (id != null && ((_a = actions[actions.length - 1]) === null || _a === void 0 ? void 0 : _a.id) !== id) { animationFrameProvider.cancelAnimationFrame(id); scheduler._scheduled = void 0; } return void 0; }; return AnimationFrameAction2; }(AsyncAction); // node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameScheduler.js var AnimationFrameScheduler = function(_super) { __extends(AnimationFrameScheduler2, _super); function AnimationFrameScheduler2() { return _super !== null && _super.apply(this, arguments) || this; } AnimationFrameScheduler2.prototype.flush = function(action) { this._active = true; var flushId = this._scheduled; this._scheduled = void 0; var actions = this.actions; var error; action = action || actions.shift(); do { if (error = action.execute(action.state, action.delay)) { break; } } while ((action = actions[0]) && action.id === flushId && actions.shift()); this._active = false; if (error) { while ((action = actions[0]) && action.id === flushId && actions.shift()) { action.unsubscribe(); } throw error; } }; return AnimationFrameScheduler2; }(AsyncScheduler); // node_modules/rxjs/dist/esm5/internal/scheduler/animationFrame.js var animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction); // node_modules/rxjs/dist/esm5/internal/scheduler/VirtualTimeScheduler.js var VirtualTimeScheduler = function(_super) { __extends(VirtualTimeScheduler2, _super); function VirtualTimeScheduler2(schedulerActionCtor, maxFrames) { if (schedulerActionCtor === void 0) { schedulerActionCtor = VirtualAction; } if (maxFrames === void 0) { maxFrames = Infinity; } var _this = _super.call(this, schedulerActionCtor, function() { return _this.frame; }) || this; _this.maxFrames = maxFrames; _this.frame = 0; _this.index = -1; return _this; } VirtualTimeScheduler2.prototype.flush = function() { var _a = this, actions = _a.actions, maxFrames = _a.maxFrames; var error; var action; while ((action = actions[0]) && action.delay <= maxFrames) { actions.shift(); this.frame = action.delay; if (error = action.execute(action.state, action.delay)) { break; } } if (error) { while (action = actions.shift()) { action.unsubscribe(); } throw error; } }; VirtualTimeScheduler2.frameTimeFactor = 10; return VirtualTimeScheduler2; }(AsyncScheduler); var VirtualAction = function(_super) { __extends(VirtualAction2, _super); function VirtualAction2(scheduler, work, index) { if (index === void 0) { index = scheduler.index += 1; } var _this = _super.call(this, scheduler, work) || this; _this.scheduler = scheduler; _this.work = work; _this.index = index; _this.active = true; _this.index = scheduler.index = index; return _this; } VirtualAction2.prototype.schedule = function(state, delay2) { if (delay2 === void 0) { delay2 = 0; } if (Number.isFinite(delay2)) { if (!this.id) { return _super.prototype.schedule.call(this, state, delay2); } this.active = false; var action = new VirtualAction2(this.scheduler, this.work); this.add(action); return action.schedule(state, delay2); } else { return Subscription.EMPTY; } }; VirtualAction2.prototype.requestAsyncId = function(scheduler, id, delay2) { if (delay2 === void 0) { delay2 = 0; } this.delay = scheduler.frame + delay2; var actions = scheduler.actions; actions.push(this); actions.sort(VirtualAction2.sortActions); return 1; }; VirtualAction2.prototype.recycleAsyncId = function(scheduler, id, delay2) { if (delay2 === void 0) { delay2 = 0; } return void 0; }; VirtualAction2.prototype._execute = function(state, delay2) { if (this.active === true) { return _super.prototype._execute.call(this, state, delay2); } }; VirtualAction2.sortActions = function(a, b) { if (a.delay === b.delay) { if (a.index === b.index) { return 0; } else if (a.index > b.index) { return 1; } else { return -1; } } else if (a.delay > b.delay) { return 1; } else { return -1; } }; return VirtualAction2; }(AsyncAction); // node_modules/rxjs/dist/esm5/internal/observable/empty.js var EMPTY = new Observable(function(subscriber) { return subscriber.complete(); }); // node_modules/rxjs/dist/esm5/internal/util/isScheduler.js function isScheduler(value) { return value && isFunction(value.schedule); } // node_modules/rxjs/dist/esm5/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/rxjs/dist/esm5/internal/util/isArrayLike.js var isArrayLike = function(x) { return x && typeof x.length === "number" && typeof x !== "function"; }; // node_modules/rxjs/dist/esm5/internal/util/isPromise.js function isPromise(value) { return isFunction(value === null || value === void 0 ? void 0 : value.then); } // node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js function isInteropObservable(input2) { return isFunction(input2[observable]); } // node_modules/rxjs/dist/esm5/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/esm5/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/esm5/internal/symbol/iterator.js function getSymbolIterator() { if (typeof Symbol !== "function" || !Symbol.iterator) { return "@@iterator"; } return Symbol.iterator; } var iterator = getSymbolIterator(); // node_modules/rxjs/dist/esm5/internal/util/isIterable.js function isIterable(input2) { return isFunction(input2 === null || input2 === void 0 ? void 0 : input2[iterator]); } // node_modules/rxjs/dist/esm5/internal/util/isReadableStreamLike.js function readableStreamLikeToAsyncGenerator(readableStream) { return __asyncGenerator(this, arguments, function readableStreamLikeToAsyncGenerator_1() { var reader, _a, value, done; return __generator(this, function(_b) { switch (_b.label) { case 0: reader = readableStream.getReader(); _b.label = 1; case 1: _b.trys.push([1, , 9, 10]); _b.label = 2; case 2: if (false) return [3, 8]; return [4, __await(reader.read())]; case 3: _a = _b.sent(), value = _a.value, done = _a.done; if (!done) return [3, 5]; return [4, __await(void 0)]; case 4: return [2, _b.sent()]; case 5: return [4, __await(value)]; case 6: return [4, _b.sent()]; case 7: _b.sent(); return [3, 2]; case 8: return [3, 10]; case 9: reader.releaseLock(); return [7]; case 10: return [2]; } }); }); } function isReadableStreamLike(obj) { return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader); } // node_modules/rxjs/dist/esm5/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(function(subscriber) { var 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(function(subscriber) { for (var i = 0; i < array.length && !subscriber.closed; i++) { subscriber.next(array[i]); } subscriber.complete(); }); } function fromPromise(promise) { return new Observable(function(subscriber) { promise.then(function(value) { if (!subscriber.closed) { subscriber.next(value); subscriber.complete(); } }, function(err) { return subscriber.error(err); }).then(null, reportUnhandledError); }); } function fromIterable(iterable) { return new Observable(function(subscriber) { var e_1, _a; try { for (var iterable_1 = __values(iterable), iterable_1_1 = iterable_1.next(); !iterable_1_1.done; iterable_1_1 = iterable_1.next()) { var value = iterable_1_1.value; subscriber.next(value); if (subscriber.closed) { return; } } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (iterable_1_1 && !iterable_1_1.done && (_a = iterable_1.return)) _a.call(iterable_1); } finally { if (e_1) throw e_1.error; } } subscriber.complete(); }); } function fromAsyncIterable(asyncIterable) { return new Observable(function(subscriber) { process(asyncIterable, subscriber).catch(function(err) { return subscriber.error(err); }); }); } function fromReadableStreamLike(readableStream) { return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream)); } function process(asyncIterable, subscriber) { var asyncIterable_1, asyncIterable_1_1; var e_2, _a; return __awaiter(this, void 0, void 0, function() { var value, e_2_1; return __generator(this, function(_b) { switch (_b.label) { case 0: _b.trys.push([0, 5, 6, 11]); asyncIterable_1 = __asyncValues(asyncIterable); _b.label = 1; case 1: return [4, asyncIterable_1.next()]; case 2: if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) return [3, 4]; value = asyncIterable_1_1.value; subscriber.next(value); if (subscriber.closed) { return [2]; } _b.label = 3; case 3: return [3, 1]; case 4: return [3, 11]; case 5: e_2_1 = _b.sent(); e_2 = { error: e_2_1 }; return [3, 11]; case 6: _b.trys.push([6, , 9, 10]); if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) return [3, 8]; return [4, _a.call(asyncIterable_1)]; case 7: _b.sent(); _b.label = 8; case 8: return [3, 10]; case 9: if (e_2) throw e_2.error; return [7]; case 10: return [7]; case 11: subscriber.complete(); return [2]; } }); }); } // node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js function executeSchedule(parentSubscription, scheduler, work, delay2, repeat2) { if (delay2 === void 0) { delay2 = 0; } if (repeat2 === void 0) { repeat2 = false; } var scheduleSubscription = scheduler.schedule(function() { work(); if (repeat2) { parentSubscription.add(this.schedule(null, delay2)); } else { this.unsubscribe(); } }, delay2); parentSubscription.add(scheduleSubscription); if (!repeat2) { return scheduleSubscription; } } // node_modules/rxjs/dist/esm5/internal/operators/observeOn.js function observeOn(scheduler, delay2) { if (delay2 === void 0) { delay2 = 0; } return operate(function(source, subscriber) { source.subscribe(createOperatorSubscriber(subscriber, function(value) { return executeSchedule(subscriber, scheduler, function() { return subscriber.next(value); }, delay2); }, function() { return executeSchedule(subscriber, scheduler, function() { return subscriber.complete(); }, delay2); }, function(err) { return executeSchedule(subscriber, scheduler, function() { return subscriber.error(err); }, delay2); })); }); } // node_modules/rxjs/dist/esm5/internal/operators/subscribeOn.js function subscribeOn(scheduler, delay2) { if (delay2 === void 0) { delay2 = 0; } return operate(function(source, subscriber) { subscriber.add(scheduler.schedule(function() { return source.subscribe(subscriber); }, delay2)); }); } // node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js function scheduleObservable(input2, scheduler) { return innerFrom(input2).pipe(subscribeOn(scheduler), observeOn(scheduler)); } // node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js function schedulePromise(input2, scheduler) { return innerFrom(input2).pipe(subscribeOn(scheduler), observeOn(scheduler)); } // node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js function scheduleArray(input2, scheduler) { return new Observable(function(subscriber) { var 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/esm5/internal/scheduled/scheduleIterable.js function scheduleIterable(input2, scheduler) { return new Observable(function(subscriber) { var iterator2; executeSchedule(subscriber, scheduler, function() { iterator2 = input2[iterator](); executeSchedule(subscriber, scheduler, function() { var _a; var value; var done; try { _a = iterator2.next(), value = _a.value, done = _a.done; } catch (err) { subscriber.error(err); return; } if (done) { subscriber.complete(); } else { subscriber.next(value); } }, 0, true); }); return function() { return isFunction(iterator2 === null || iterator2 === void 0 ? void 0 : iterator2.return) && iterator2.return(); }; }); } // node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js function scheduleAsyncIterable(input2, scheduler) { if (!input2) { throw new Error("Iterable cannot be null"); } return new Observable(function(subscriber) { executeSchedule(subscriber, scheduler, function() { var iterator2 = input2[Symbol.asyncIterator](); executeSchedule(subscriber, scheduler, function() { iterator2.next().then(function(result) { if (result.done) { subscriber.complete(); } else { subscriber.next(result.value); } }); }, 0, true); }); }); } // node_modules/rxjs/dist/esm5/internal/scheduled/scheduleReadableStreamLike.js function scheduleReadableStreamLike(input2, scheduler) { return scheduleAsyncIterable(readableStreamLikeToAsyncGenerator(input2), scheduler); } // node_modules/rxjs/dist/esm5/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/esm5/internal/observable/from.js function from(input2, scheduler) { return scheduler ? scheduled(input2, scheduler) : innerFrom(input2); } // node_modules/rxjs/dist/esm5/internal/observable/of.js function of() { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } var scheduler = popScheduler(args); return from(args, scheduler); } // node_modules/rxjs/dist/esm5/internal/observable/throwError.js function throwError(errorOrErrorFactory, scheduler) { var errorFactory = isFunction(errorOrErrorFactory) ? errorOrErrorFactory : function() { return errorOrErrorFactory; }; var init = function(subscriber) { return subscriber.error(errorFactory()); }; return new Observable(scheduler ? function(subscriber) { return scheduler.schedule(init, 0, subscriber); } : init); } // node_modules/rxjs/dist/esm5/internal/Notification.js var NotificationKind; (function(NotificationKind2) { NotificationKind2["NEXT"] = "N"; NotificationKind2["ERROR"] = "E"; NotificationKind2["COMPLETE"] = "C"; })(NotificationKind || (NotificationKind = {})); var Notification = function() { function Notification2(kind, value, error) { this.kind = kind; this.value = value; this.error = error; this.hasValue = kind === "N"; } Notification2.prototype.observe = function(observer) { return observeNotification(this, observer); }; Notification2.prototype.do = function(nextHandler, errorHandler, completeHandler) { var _a = this, kind = _a.kind, value = _a.value, error = _a.error; return kind === "N" ? nextHandler === null || nextHandler === void 0 ? void 0 : nextHandler(value) : kind === "E" ? errorHandler === null || errorHandler === void 0 ? void 0 : errorHandler(error) : completeHandler === null || completeHandler === void 0 ? void 0 : completeHandler(); }; Notification2.prototype.accept = function(nextOrObserver, error, complete) { var _a; return isFunction((_a = nextOrObserver) === null || _a === void 0 ? void 0 : _a.next) ? this.observe(nextOrObserver) : this.do(nextOrObserver, error, complete); }; Notification2.prototype.toObservable = function() { var _a = this, kind = _a.kind, value = _a.value, error = _a.error; var result = kind === "N" ? of(value) : kind === "E" ? throwError(function() { return error; }) : kind === "C" ? EMPTY : 0; if (!result) { throw new TypeError("Unexpected notification kind " + kind); } return result; }; Notification2.createNext = function(value) { return new Notification2("N", value); }; Notification2.createError = function(err) { return new Notification2("E", void 0, err); }; Notification2.createComplete = function() { return Notification2.completeNotification; }; Notification2.completeNotification = new Notification2("C"); return Notification2; }(); function observeNotification(notification, observer) { var _a, _b, _c; var _d = notification, kind = _d.kind, value = _d.value, error = _d.error; if (typeof kind !== "string") { throw new TypeError('Invalid notification, missing "kind"'); } kind === "N" ? (_a = observer.next) === null || _a === void 0 ? void 0 : _a.call(observer, value) : kind === "E" ? (_b = observer.error) === null || _b === void 0 ? void 0 : _b.call(observer, error) : (_c = observer.complete) === null || _c === void 0 ? void 0 : _c.call(observer); } // node_modules/rxjs/dist/esm5/internal/util/isObservable.js function isObservable(obj) { return !!obj && (obj instanceof Observable || isFunction(obj.lift) && isFunction(obj.subscribe)); } // node_modules/rxjs/dist/esm5/internal/util/EmptyError.js var EmptyError = createErrorClass(function(_super) { return function EmptyErrorImpl() { _super(this); this.name = "EmptyError"; this.message = "no elements in sequence"; }; }); // node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js var ArgumentOutOfRangeError = createErrorClass(function(_super) { return function ArgumentOutOfRangeErrorImpl() { _super(this); this.name = "ArgumentOutOfRangeError"; this.message = "argument out of range"; }; }); // node_modules/rxjs/dist/esm5/internal/util/NotFoundError.js var NotFoundError = createErrorClass(function(_super) { return function NotFoundErrorImpl(message) { _super(this); this.name = "NotFoundError"; this.message = message; }; }); // node_modules/rxjs/dist/esm5/internal/util/SequenceError.js var SequenceError = createErrorClass(function(_super) { return function SequenceErrorImpl(message) { _super(this); this.name = "SequenceError"; this.message = message; }; }); // node_modules/rxjs/dist/esm5/internal/operators/timeout.js var TimeoutError = createErrorClass(function(_super) { return function TimeoutErrorImpl(info) { if (info === void 0) { info = null; } _super(this); this.message = "Timeout has occurred"; this.name = "TimeoutError"; this.info = info; }; }); // node_modules/rxjs/dist/esm5/internal/operators/map.js function map(project, thisArg) { return operate(function(source, subscriber) { var index = 0; source.subscribe(createOperatorSubscriber(subscriber, function(value) { subscriber.next(project.call(thisArg, value, index++)); })); }); } // node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js var isArray = Array.isArray; function callOrApply(fn, args) { return isArray(args) ? fn.apply(void 0, __spreadArray([], __read(args))) : fn(args); } function mapOneOrManyArgs(fn) { return map(function(args) { return callOrApply(fn, args); }); } // node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js var isArray2 = Array.isArray; var getPrototypeOf = Object.getPrototypeOf; var objectProto = Object.prototype; var getKeys = Object.keys; function argsArgArrayOrObject(args) { if (args.length === 1) { var first_1 = args[0]; if (isArray2(first_1)) { return { args: first_1, keys: null }; } if (isPOJO(first_1)) { var keys = getKeys(first_1); return { args: keys.map(function(key) { return first_1[key]; }), keys }; } } return { args, keys: null }; } function isPOJO(obj) { return obj && typeof obj === "object" && getPrototypeOf(obj) === objectProto; } // node_modules/rxjs/dist/esm5/internal/util/createObject.js function createObject(keys, values) { return keys.reduce(function(result, key, i) { return result[key] = values[i], result; }, {}); } // node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js function combineLatest() { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } var scheduler = popScheduler(args); var resultSelector = popResultSelector(args); var _a = argsArgArrayOrObject(args), observables = _a.args, keys = _a.keys; if (observables.length === 0) { return from([], scheduler); } var result = new Observable(combineLatestInit(observables, scheduler, keys ? function(values) { return createObject(keys, values); } : identity)); return resultSelector ? result.pipe(mapOneOrManyArgs(resultSelector)) : result; } function combineLatestInit(observables, scheduler, valueTransform) { if (valueTransform === void 0) { valueTransform = identity; } return function(subscriber) { maybeSchedule(scheduler, function() { var length = observables.length; var values = new Array(length); var active = length; var remainingFirstValues = length; var _loop_1 = function(i2) { maybeSchedule(scheduler, function() { var source = from(observables[i2], scheduler); var hasFirstValue = false; source.subscribe(createOperatorSubscriber(subscriber, function(value) { values[i2] = value; if (!hasFirstValue) { hasFirstValue = true; remainingFirstValues--; } if (!remainingFirstValues) { subscriber.next(valueTransform(values.slice())); } }, function() { if (!--active) { subscriber.complete(); } })); }, subscriber); }; for (var i = 0; i < length; i++) { _loop_1(i); } }, subscriber); }; } function maybeSchedule(scheduler, execute, subscription) { if (scheduler) { executeSchedule(subscription, scheduler, execute); } else { execute(); } } // node_modules/rxjs/dist/esm5/internal/operators/mergeInternals.js function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand2, innerSubScheduler, additionalFinalizer) { var buffer2 = []; var active = 0; var index = 0; var isComplete = false; var checkComplete = function() { if (isComplete && !buffer2.length && !active) { subscriber.complete(); } }; var outerNext = function(value) { return active < concurrent ? doInnerSub(value) : buffer2.push(value); }; var doInnerSub = function(value) { expand2 && subscriber.next(value); active++; var innerComplete = false; innerFrom(project(value, index++)).subscribe(createOperatorSubscriber(subscriber, function(innerValue) { onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue); if (expand2) { outerNext(innerValue); } else { subscriber.next(innerValue); } }, function() { innerComplete = true; }, void 0, function() { if (innerComplete) { try { active--; var _loop_1 = function() { var bufferedValue = buffer2.shift(); if (innerSubScheduler) { executeSchedule(subscriber, innerSubScheduler, function() { return doInnerSub(bufferedValue); }); } else { doInnerSub(bufferedValue); } }; while (buffer2.length && active < concurrent) { _loop_1(); } checkComplete(); } catch (err) { subscriber.error(err); } } })); }; source.subscribe(createOperatorSubscriber(subscriber, outerNext, function() { isComplete = true; checkComplete(); })); return function() { additionalFinalizer === null || additionalFinalizer === void 0 ? void 0 : additionalFinalizer(); }; } // node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js function mergeMap(project, resultSelector, concurrent) { if (concurrent === void 0) { concurrent = Infinity; } if (isFunction(resultSelector)) { return mergeMap(function(a, i) { return map(function(b, ii) { return resultSelector(a, b, i, ii); })(innerFrom(project(a, i))); }, concurrent); } else if (typeof resultSelector === "number") { concurrent = resultSelector; } return operate(function(source, subscriber) { return mergeInternals(source, subscriber, project, concurrent); }); } // node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js function mergeAll(concurrent) { if (concurrent === void 0) { concurrent = Infinity; } return mergeMap(identity, concurrent); } // node_modules/rxjs/dist/esm5/internal/operators/concatAll.js function concatAll() { return mergeAll(1); } // node_modules/rxjs/dist/esm5/internal/observable/concat.js function concat() { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } return concatAll()(from(args, popScheduler(args))); } // node_modules/rxjs/dist/esm5/internal/observable/defer.js function defer(observableFactory) { return new Observable(function(subscriber) { innerFrom(observableFactory()).subscribe(subscriber); }); } // node_modules/rxjs/dist/esm5/internal/observable/never.js var NEVER = new Observable(noop); // node_modules/rxjs/dist/esm5/internal/util/argsOrArgArray.js var isArray3 = Array.isArray; // node_modules/rxjs/dist/esm5/internal/operators/filter.js function filter(predicate, thisArg) { return operate(function(source, subscriber) { var index = 0; source.subscribe(createOperatorSubscriber(subscriber, function(value) { return predicate.call(thisArg, value, index++) && subscriber.next(value); })); }); } // node_modules/rxjs/dist/esm5/internal/operators/catchError.js function catchError(selector) { return operate(function(source, subscriber) { var innerSub = null; var syncUnsub = false; var handledResult; innerSub = source.subscribe(createOperatorSubscriber(subscriber, void 0, void 0, function(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/esm5/internal/operators/scanInternals.js function scanInternals(accumulator, seed, hasSeed, emitOnNext, emitBeforeComplete) { return function(source, subscriber) { var hasState = hasSeed; var state = seed; var index = 0; source.subscribe(createOperatorSubscriber(subscriber, function(value) { var i = index++; state = hasState ? accumulator(state, value, i) : (hasState = true, value); emitOnNext && subscriber.next(state); }, emitBeforeComplete && function() { hasState && subscriber.next(state); subscriber.complete(); })); }; } // node_modules/rxjs/dist/esm5/internal/operators/concatMap.js function concatMap(project, resultSelector) { return isFunction(resultSelector) ? mergeMap(project, resultSelector, 1) : mergeMap(project, 1); } // node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js function defaultIfEmpty(defaultValue) { return operate(function(source, subscriber) { var hasValue = false; source.subscribe(createOperatorSubscriber(subscriber, function(value) { hasValue = true; subscriber.next(value); }, function() { if (!hasValue) { subscriber.next(defaultValue); } subscriber.complete(); })); }); } // node_modules/rxjs/dist/esm5/internal/operators/take.js function take(count2) { return count2 <= 0 ? function() { return EMPTY; } : operate(function(source, subscriber) { var seen = 0; source.subscribe(createOperatorSubscriber(subscriber, function(value) { if (++seen <= count2) { subscriber.next(value); if (count2 <= seen) { subscriber.complete(); } } })); }); } // node_modules/rxjs/dist/esm5/internal/operators/mapTo.js function mapTo(value) { return map(function() { return value; }); } // node_modules/rxjs/dist/esm5/internal/operators/throwIfEmpty.js function throwIfEmpty(errorFactory) { if (errorFactory === void 0) { errorFactory = defaultErrorFactory; } return operate(function(source, subscriber) { var hasValue = false; source.subscribe(createOperatorSubscriber(subscriber, function(value) { hasValue = true; subscriber.next(value); }, function() { return hasValue ? subscriber.complete() : subscriber.error(errorFactory()); })); }); } function defaultErrorFactory() { return new EmptyError(); } // node_modules/rxjs/dist/esm5/internal/operators/finalize.js function finalize(callback) { return operate(function(source, subscriber) { try { source.subscribe(subscriber); } finally { subscriber.add(callback); } }); } // node_modules/rxjs/dist/esm5/internal/operators/first.js function first(predicate, defaultValue) { var hasDefaultValue = arguments.length >= 2; return function(source) { return source.pipe(predicate ? filter(function(v, i) { return predicate(v, i, source); }) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function() { return new EmptyError(); })); }; } // node_modules/rxjs/dist/esm5/internal/operators/takeLast.js function takeLast(count2) { return count2 <= 0 ? function() { return EMPTY; } : operate(function(source, subscriber) { var buffer2 = []; source.subscribe(createOperatorSubscriber(subscriber, function(value) { buffer2.push(value); count2 < buffer2.length && buffer2.shift(); }, function() { var e_1, _a; try { for (var buffer_1 = __values(buffer2), buffer_1_1 = buffer_1.next(); !buffer_1_1.done; buffer_1_1 = buffer_1.next()) { var value = buffer_1_1.value; subscriber.next(value); } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (buffer_1_1 && !buffer_1_1.done && (_a = buffer_1.return)) _a.call(buffer_1); } finally { if (e_1) throw e_1.error; } } subscriber.complete(); }, void 0, function() { buffer2 = null; })); }); } // node_modules/rxjs/dist/esm5/internal/operators/last.js function last2(predicate, defaultValue) { var hasDefaultValue = arguments.length >= 2; return function(source) { return source.pipe(predicate ? filter(function(v, i) { return predicate(v, i, source); }) : identity, takeLast(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function() { return new EmptyError(); })); }; } // node_modules/rxjs/dist/esm5/internal/operators/scan.js function scan(accumulator, seed) { return operate(scanInternals(accumulator, seed, arguments.length >= 2, true)); } // node_modules/rxjs/dist/esm5/internal/operators/startWith.js function startWith() { var values = []; for (var _i = 0; _i < arguments.length; _i++) { values[_i] = arguments[_i]; } var scheduler = popScheduler(values); return operate(function(source, subscriber) { (scheduler ? concat(values, source, scheduler) : concat(values, source)).subscribe(subscriber); }); } // node_modules/rxjs/dist/esm5/internal/operators/switchMap.js function switchMap(project, resultSelector) { return operate(function(source, subscriber) { var innerSubscriber = null; var index = 0; var isComplete = false; var checkComplete = function() { return isComplete && !innerSubscriber && subscriber.complete(); }; source.subscribe(createOperatorSubscriber(subscriber, function(value) { innerSubscriber === null || innerSubscriber === void 0 ? void 0 : innerSubscriber.unsubscribe(); var innerIndex = 0; var outerIndex = index++; innerFrom(project(value, outerIndex)).subscribe(innerSubscriber = createOperatorSubscriber(subscriber, function(innerValue) { return subscriber.next(resultSelector ? resultSelector(value, innerValue, outerIndex, innerIndex++) : innerValue); }, function() { innerSubscriber = null; checkComplete(); })); }, function() { isComplete = true; checkComplete(); })); }); } // node_modules/rxjs/dist/esm5/internal/operators/takeUntil.js function takeUntil(notifier) { return operate(function(source, subscriber) { innerFrom(notifier).subscribe(createOperatorSubscriber(subscriber, function() { return subscriber.complete(); }, noop)); !subscriber.closed && source.subscribe(subscriber); }); } // node_modules/rxjs/dist/esm5/internal/operators/tap.js function tap(observerOrNext, error, complete) { var tapObserver = isFunction(observerOrNext) || error || complete ? { next: observerOrNext, error, complete } : observerOrNext; return tapObserver ? operate(function(source, subscriber) { var _a; (_a = tapObserver.subscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver); var isUnsub = true; source.subscribe(createOperatorSubscriber(subscriber, function(value) { var _a2; (_a2 = tapObserver.next) === null || _a2 === void 0 ? void 0 : _a2.call(tapObserver, value); subscriber.next(value); }, function() { var _a2; isUnsub = false; (_a2 = tapObserver.complete) === null || _a2 === void 0 ? void 0 : _a2.call(tapObserver); subscriber.complete(); }, function(err) { var _a2; isUnsub = false; (_a2 = tapObserver.error) === null || _a2 === void 0 ? void 0 : _a2.call(tapObserver, err); subscriber.error(err); }, function() { 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/core.mjs var ERROR_DETAILS_PAGE_BASE_URL = "https://angular.io/errors"; var XSS_SECURITY_URL = "https://g.co/ng/security#xss"; var RuntimeError = class extends Error { constructor(code, message) { super(formatRuntimeError(code, message)); this.code = code; } }; function formatRuntimeError(code, message) { const fullCode = `NG0${Math.abs(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 REQUIRED_UNSET_VALUE = Symbol("InputSignalNode#UNSET"); var INPUT_SIGNAL_NODE = (() => { return __spreadProps(__spreadValues({}, SIGNAL_NODE), { transformFn: void 0, applyValueToInputSignal(node, value) { signalSetFn(node, value); } }); })(); var ɵINPUT_SIGNAL_BRAND_READ_TYPE = Symbol(); var ɵINPUT_SIGNAL_BRAND_WRITE_TYPE = Symbol(); function createInputSignal(initialValue, options) { const node = Object.create(INPUT_SIGNAL_NODE); node.value = initialValue; node.transformFn = options?.transform; function inputValueFn() { producerAccessed(node); if (node.value === REQUIRED_UNSET_VALUE) { throw new RuntimeError(-950, ngDevMode && "Input is required but no value is available yet."); } return node.value; } inputValueFn[SIGNAL] = node; return inputValueFn; } function inputFunction(initialValue, opts) { return createInputSignal(initialValue, opts); } function inputRequiredFunction(opts) { return createInputSignal(REQUIRED_UNSET_VALUE, opts); } var input = (() => { inputFunction.required = inputRequiredFunction; return inputFunction; })(); function getClosureSafeProperty(objWithPropertyToExtract) { for (let key in objWithPropertyToExtract) { if (objWithPropertyToExtract[key] === getClosureSafeProperty) { return key; } } throw Error("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; } if (token.overriddenName) { return `${token.overriddenName}`; } if (token.name) { return `${token.name}`; } const res = token.toString(); if (res == null) { return "" + res; } const newLineIndex = res.indexOf("\n"); return newLineIndex === -1 ? res : res.substring(0, newLineIndex); } function concatStringsWithSpace(before, after) { return before == null || before === "" ? after === null ? "" : after : after == null || after === "" ? before : 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; 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 isEnvironmentProviders(value) { return value && !!value.ɵproviders; } var NG_COMP_DEF = getClosureSafeProperty({ ɵcmp: getClosureSafeProperty }); var NG_DIR_DEF = getClosureSafeProperty({ ɵdir: getClosureSafeProperty }); var NG_PIPE_DEF = getClosureSafeProperty({ ɵpipe: getClosureSafeProperty }); var NG_MOD_DEF = getClosureSafeProperty({ ɵmod: getClosureSafeProperty }); var NG_FACTORY_DEF = getClosureSafeProperty({ ɵfac: getClosureSafeProperty }); var NG_ELEMENT_ID = getClosureSafeProperty({ __NG_ELEMENT_ID__: getClosureSafeProperty }); var NG_ENV_ID = getClosureSafeProperty({ __NG_ENV_ID__: getClosureSafeProperty }); 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) { let componentDef = type[NG_COMP_DEF] || null; 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})`; } } function throwCyclicDependencyError(token, path) { const depPath = path ? `. Dependency path: ${path.join(" > ")} > ${token}` : ""; throw new RuntimeError(-200, ngDevMode ? `Circular dependency in DI detected for ${token}${depPath}` : token); } 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.ɵfromNgModule) { 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 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 ɵɵdefineInjectable(opts) { return { token: opts.token, providedIn: opts.providedIn || null, factory: opts.factory, value: void 0 }; } var defineInjectable = ɵɵdefineInjectable; function ɵɵdefineInjector(options) { return { providers: options.providers || [], imports: options.imports || [] }; } function getInjectableDef(type) { return getOwnDefinition(type, NG_PROV_DEF) || getOwnDefinition(type, NG_INJECTABLE_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 && (type[NG_PROV_DEF] || type[NG_INJECTABLE_DEF]); 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.hasOwnProperty(NG_INJECTOR_DEF)) ? type[NG_INJ_DEF] : null; } var NG_PROV_DEF = getClosureSafeProperty({ ɵprov: getClosureSafeProperty }); var NG_INJ_DEF = getClosureSafeProperty({ ɵinj: getClosureSafeProperty }); var NG_INJECTABLE_DEF = getClosureSafeProperty({ ngInjectableDef: getClosureSafeProperty }); var NG_INJECTOR_DEF = getClosureSafeProperty({ ngInjectorDef: getClosureSafeProperty }); var InjectFlags; (function(InjectFlags2) { InjectFlags2[InjectFlags2["Default"] = 0] = "Default"; InjectFlags2[InjectFlags2["Host"] = 1] = "Host"; InjectFlags2[InjectFlags2["Self"] = 2] = "Self"; InjectFlags2[InjectFlags2["SkipSelf"] = 4] = "SkipSelf"; InjectFlags2[InjectFlags2["Optional"] = 8] = "Optional"; })(InjectFlags || (InjectFlags = {})); 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 & InjectFlags.Optional) return null; if (notFoundValue !== void 0) return notFoundValue; throwProviderNotFoundError(token, "Injector"); } function assertInjectImplementationNotEqual(fn) { ngDevMode && assertNotEqual(_injectImplementation, fn, "Calling ɵɵinject would cause infinite recursion"); } var _global = globalThis; function ngDevModeResetPerfCounters() { const locationString = typeof location !== "undefined" ? location.toString() : ""; const newCounters = { namedConstructors: locationString.indexOf("ngDevMode=namedConstructors") != -1, firstCreatePass: 0, tNode: 0, tView: 0, rendererCreateTextNode: 0, rendererSetText: 0, rendererCreateElement: 0, rendererAddEventListener: 0, rendererSetAttribute: 0, rendererRemoveAttribute: 0, rendererSetProperty: 0, rendererSetClassName: 0, rendererAddClass: 0, rendererRemoveClass: 0, rendererSetStyle: 0, rendererRemoveStyle: 0, rendererDestroy: 0, rendererDestroyNode: 0, rendererMoveNode: 0, rendererRemoveNode: 0, rendererAppendChild: 0, rendererInsertBefore: 0, rendererCreateComment: 0, hydratedNodes: 0, hydratedComponents: 0, dehydratedViewsRemoved: 0, dehydratedViewsCleanupRuns: 0, componentsSkippedHydration: 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; } var InjectionToken = class { /** * @param _desc Description for the token, * used only for debugging purposes, * it should but does not need to be unique * @param options Options for the token's usage, as described above */ constructor(_desc, options) { this._desc = _desc; this.ngMetadataName = "InjectionToken"; this.ɵprov = 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.ɵprov = ɵɵdefineInjectable({ token: this, providedIn: options.providedIn || "root", factory: options.factory }); } } /** * @internal */ 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 injectorProfilerCallback = null; var setInjectorProfiler = (injectorProfiler2) => { !ngDevMode && throwError2("setInjectorProfiler should never be called in production mode"); injectorProfilerCallback = injectorProfiler2; }; function injectorProfiler(event) { !ngDevMode && throwError2("Injector profiler should never be called in production mode"); if (injectorProfilerCallback != null) { 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.ɵprov || eventProvider; } injectorProfiler({ type: 2, context: getInjectorProfilerContext(), providerRecord: { token, provider, isViewProvider } }); } 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 runInInjectorProfilerContext(injector, token, callback) { !ngDevMode && throwError2("runInInjectorProfilerContext should never be called in production mode"); const prevInjectContext = setInjectorProfilerContext({ injector, token }); try { callback(); } finally { setInjectorProfilerContext(prevInjectContext); } } var _THROW_IF_NOT_FOUND = {}; var THROW_IF_NOT_FOUND = _THROW_IF_NOT_FOUND; var DI_DECORATOR_FLAG = "__NG_DI_FLAG__"; var NG_TEMP_TOKEN_PATH = "ngTempTokenPath"; var NG_TOKEN_PATH = "ngTokenPath"; var NEW_LINE = /\n/gm; var NO_NEW_LINE = "ɵ"; var SOURCE = "__source"; var _currentInjector = void 0; function getCurrentInjector() { return _currentInjector; } function setCurrentInjector(injector) { const former = _currentInjector; _currentInjector = injector; return former; } function injectInjectorOnly(token, flags = InjectFlags.Default) { if (_currentInjector === void 0) { throw new RuntimeError(-203, ngDevMode && `inject() 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 value = _currentInjector.get(token, flags & InjectFlags.Optional ? null : void 0, flags); ngDevMode && emitInjectEvent(token, value, flags); return value; } } function ɵɵinject(token, flags = InjectFlags.Default) { return (getInjectImplementation() || injectInjectorOnly)(resolveForwardRef(token), flags); } function ɵɵinvalidFactoryDep(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 inject(token, flags = InjectFlags.Default) { return ɵɵinject(token, convertToBitFlags(flags)); } function convertToBitFlags(flags) { if (typeof flags === "undefined" || typeof flags === "number") { return flags; } return 0 | // comment to force a line break in the formatter (flags.optional && 8) | (flags.host && 1) | (flags.self && 2) | (flags.skipSelf && 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 = InjectFlags.Default; 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(ɵɵinject(type, flags)); } else { args.push(ɵɵinject(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 catchInjectorError(e, token, injectorErrorName, source) { const tokenPath = e[NG_TEMP_TOKEN_PATH]; if (token[SOURCE]) { tokenPath.unshift(token[SOURCE]); } e.message = formatError("\n" + e.message, tokenPath, injectorErrorName, source); e[NG_TOKEN_PATH] = tokenPath; e[NG_TEMP_TOKEN_PATH] = null; throw e; } function formatError(text, obj, injectorErrorName, source = null) { text = text && text.charAt(0) === "\n" && text.charAt(1) == NO_NEW_LINE ? text.slice(2) : text; let context2 = stringify(obj); if (Array.isArray(obj)) { context2 = obj.map(stringify).join(" -> "); } else if (typeof obj === "object") { let parts = []; for (let key in obj) { if (obj.hasOwnProperty(key)) { let value = obj[key]; parts.push(key + ":" + (typeof value === "string" ? JSON.stringify(value) : stringify(value))); } } context2 = `{${parts.join(", ")}}`; } return `${injectorErrorName}${source ? "(" + source + ")" : ""}[${context2}]: ${text.replace(NEW_LINE, "\n ")}`; } function noSideEffects(fn) { return { toString: fn }.toString(); } var ChangeDetectionStrategy; (function(ChangeDetectionStrategy2) { ChangeDetectionStrategy2[ChangeDetectionStrategy2["OnPush"] = 0] = "OnPush"; ChangeDetectionStrategy2[ChangeDetectionStrategy2["Default"] = 1] = "Default"; })(ChangeDetectionStrategy || (ChangeDetectionStrategy = {})); var ViewEncapsulation$1; (function(ViewEncapsulation2) { ViewEncapsulation2[ViewEncapsulation2["Emulated"] = 0] = "Emulated"; ViewEncapsulation2[ViewEncapsulation2["None"] = 2] = "None"; ViewEncapsulation2[ViewEncapsulation2["ShadowDom"] = 3] = "ShadowDom"; })(ViewEncapsulation$1 || (ViewEncapsulation$1 = {})); var EMPTY_OBJ = {}; var EMPTY_ARRAY = []; if ((typeof ngDevMode === "undefined" || ngDevMode) && initNgDevMode()) { Object.freeze(EMPTY_OBJ); Object.freeze(EMPTY_ARRAY); } var InputFlags; (function(InputFlags2) { InputFlags2[InputFlags2["None"] = 0] = "None"; InputFlags2[InputFlags2["SignalBased"] = 1] = "SignalBased"; InputFlags2[InputFlags2["HasDecoratorInputTransform"] = 2] = "HasDecoratorInputTransform"; })(InputFlags || (InputFlags = {})); 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; } } 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++]; ngDevMode && ngDevMode.rendererSetAttribute++; renderer.setAttribute(native, attrName, attrVal, namespaceURI); } else { const attrName = value; const attrVal = attrs[++i]; ngDevMode && ngDevMode.rendererSetAttribute++; 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 (key2 === null) { if (value !== null) { dst[i + 1] = value; } return; } else if (key2 === dst[i + 1]) { dst[i + 2] = value; return; } } i++; if (key2 !== null) i++; if (value !== null) i++; } if (markerInsertPosition !== -1) { dst.splice(markerInsertPosition, 0, marker); i = markerInsertPosition + 1; } dst.splice(i++, 0, key1); if (key2 !== null) { dst.splice(i++, 0, key2); } if (value !== null) { dst.splice(i++, 0, value); } } var NG_TEMPLATE_SELECTOR = "ng-template"; function isCssClassMatching(attrs, cssClassToMatch, isProjectionMode) { ngDevMode && assertEqual(cssClassToMatch, cssClassToMatch.toLowerCase(), "Class name expected to be lowercase."); let i = 0; let isImplicitAttrsSection = true; while (i < attrs.length) { let item = attrs[i++]; if (typeof item === "string" && isImplicitAttrsSection) { const value = attrs[i++]; if (isProjectionMode && item === "class") { if (classIndexOf(value.toLowerCase(), cssClassToMatch, 0) !== -1) { return true; } } } else if (item === 1) { while (i < attrs.length && typeof (item = attrs[i++]) == "string") { if (item.toLowerCase() === cssClassToMatch) return true; } return false; } else if (typeof item === "number") { isImplicitAttrsSection = false; } } 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 = getNameOnlyMarkerIndex(nodeAttrs); 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 { const selectorAttrValue = mode & 8 ? current : selector[++i]; if (mode & 8 && tNode.attrs !== null) { if (!isCssClassMatching(tNode.attrs, selectorAttrValue, isProjectionMode)) { if (isPositive(mode)) return false; skipToNextSelector = true; } continue; } const attrName = mode & 8 ? "class" : current; const attrIndexInNode = findAttrIndexInNode(attrName, 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(); } const compareAgainstClassName = mode & 8 ? nodeAttrValue : null; if (compareAgainstClassName && classIndexOf(compareAgainstClassName, selectorAttrValue, 0) !== -1 || 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 /* AttributeMarker.ProjectAs */ ); 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 /* AttributeMarker.Template */ ); 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++; } return { attrs, classes }; } function ɵɵdefineComponent(componentDefinition) { return noSideEffects(() => { (typeof ngDevMode === "undefined" || ngDevMode) && initNgDevMode(); const baseDef = getNgDirectiveDef(componentDefinition); const def = __spreadProps(__spreadValues({}, baseDef), { decls: componentDefinition.decls, vars: componentDefinition.vars, template: componentDefinition.template, consts: componentDefinition.consts || null, ngContentSelectors: componentDefinition.ngContentSelectors, onPush: componentDefinition.changeDetection === ChangeDetectionStrategy.OnPush, directiveDefs: null, // assigned in noSideEffects pipeDefs: null, // assigned in noSideEffects dependencies: baseDef.standalone && componentDefinition.dependencies || null, getStandaloneInjector: null, signals: componentDefinition.signals ?? false, data: componentDefinition.data || {}, encapsulation: componentDefinition.encapsulation || ViewEncapsulation$1.Emulated, styles: componentDefinition.styles || EMPTY_ARRAY, _: null, schemas: componentDefinition.schemas || null, tView: null, id: "" }); initFeatures(def); const dependencies = componentDefinition.dependencies; def.directiveDefs = extractDefListOrFactory( dependencies, /* pipeDef */ false ); def.pipeDefs = extractDefListOrFactory( dependencies, /* pipeDef */ true ); def.id = getComponentId(def); return def; }); } function extractDirectiveDef(type) { return getComponentDef(type) || getDirectiveDef(type); } function nonNull(value) { return value !== null; } function ɵɵdefineNgModule(def) { return noSideEffects(() => { const res = { type: def.type, bootstrap: def.bootstrap || EMPTY_ARRAY, declarations: def.declarations || EMPTY_ARRAY, imports: def.imports || EMPTY_ARRAY, exports: def.exports || EMPTY_ARRAY, transitiveCompileScopes: null, schemas: def.schemas || null, id: def.id || null }; return res; }); } function parseAndConvertBindingsForDefinition(obj, declaredInputs) { if (obj == null) return EMPTY_OBJ; const newLookup = {}; for (const minifiedKey in obj) { if (obj.hasOwnProperty(minifiedKey)) { const value = obj[minifiedKey]; let publicName; let declaredName; let inputFlags = InputFlags.None; if (Array.isArray(value)) { inputFlags = value[0]; publicName = value[1]; declaredName = value[2] ?? publicName; } else { publicName = value; declaredName = value; } if (declaredInputs) { newLookup[publicName] = inputFlags !== InputFlags.None ? [minifiedKey, inputFlags] : minifiedKey; declaredInputs[publicName] = declaredName; } else { newLookup[publicName] = minifiedKey; } } } return newLookup; } function ɵɵdefineDirective(directiveDefinition) { return noSideEffects(() => { const def = getNgDirectiveDef(directiveDefinition); initFeatures(def); return def; }); } function ɵɵdefinePipe(pipeDef) { return { type: pipeDef.type, name: pipeDef.name, factory: null, pure: pipeDef.pure !== false, standalone: pipeDef.standalone === true, onDestroy: pipeDef.type.prototype.ngOnDestroy || null }; } function getComponentDef(type) { return type[NG_COMP_DEF] || null; } function getDirectiveDef(type) { return type[NG_DIR_DEF] || null; } function getPipeDef$1(type) { return type[NG_PIPE_DEF] || null; } function isStandalone(type) { const def = getComponentDef(type) || getDirectiveDef(type) || getPipeDef$1(type); return def !== null ? def.standalone : false; } function getNgModuleDef(type, throwNotFound) { const ngModuleDef = type[NG_MOD_DEF] || null; if (!ngModuleDef && throwNotFound === true) { throw new Error(`Type ${stringify(type)} does not have 'ɵmod' property.`); } return ngModuleDef; } function getNgDirectiveDef(directiveDefinition) { const declaredInputs = {}; return { type: directiveDefinition.type, providersResolver: null, factory: null, hostBindings: directiveDefinition.hostBindings || null, hostVars: directiveDefinition.hostVars || 0, hostAttrs: directiveDefinition.hostAttrs || null, contentQueries: directiveDefinition.contentQueries || null, declaredInputs, inputTransforms: null, inputConfig: directiveDefinition.inputs || EMPTY_OBJ, exportAs: directiveDefinition.exportAs || null, standalone: directiveDefinition.standalone === true, signals: directiveDefinition.signals === true, selectors: directiveDefinition.selectors || EMPTY_ARRAY, viewQuery: directiveDefinition.viewQuery || null, features: directiveDefinition.features || null, setInput: null, findHostDirectiveDefs: null, hostDirectives: null, inputs: parseAndConvertBindingsForDefinition(directiveDefinition.inputs, declaredInputs), outputs: parseAndConvertBindingsForDefinition(directiveDefinition.outputs), debugInfo: null }; } function initFeatures(definition) { definition.features?.forEach((fn) => fn(definition)); } function extractDefListOrFactory(dependencies, pipeDef) { if (!dependencies) { return null; } const defExtractor = pipeDef ? getPipeDef$1 : extractDirectiveDef; return () => (typeof dependencies === "function" ? dependencies() : dependencies).map((dep) => defExtractor(dep)).filter(nonNull); } var GENERATED_COMP_IDS = /* @__PURE__ */ new Map(); function getComponentId(componentDef) { let hash = 0; const hashSelectors = [ componentDef.selectors, componentDef.ngContentSelectors, componentDef.hostVars, componentDef.hostAttrs, componentDef.consts, componentDef.vars, componentDef.decls, componentDef.encapsulation, componentDef.standalone, componentDef.signals, componentDef.exportAs, JSON.stringify(componentDef.inputs), JSON.stringify(componentDef.outputs), // We cannot use 'componentDef.type.name' as the name of the symbol will change and will not // match in the server and browser bundles. Object.getOwnPropertyNames(componentDef.type.prototype), !!componentDef.contentQueries, !!componentDef.viewQuery ].join("|"); for (const char of hashSelectors) { hash = Math.imul(31, hash) + char.charCodeAt(0) << 0; } hash += 2147483647 + 1; const compId = "c" + hash; if (typeof ngDevMode === "undefined" || ngDevMode) { if (GENERATED_COMP_IDS.has(compId)) { const previousCompDefType = GENERATED_COMP_IDS.get(compId); if (previousCompDefType !== componentDef.type) { console.warn(formatRuntimeError(-912, `Component ID generation collision detected. Components '${previousCompDefType.name}' and '${componentDef.type.name}' with selector '${stringifyCSSSelectorList(componentDef.selectors)}' generated the same component ID. To fix this, you can change the selector of one of those components or add an extra host attribute to force a different ID.`)); } } else { GENERATED_COMP_IDS.set(compId, componentDef.type); } } return compId; } 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$1 = 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 REACTIVE_TEMPLATE_CONSUMER = 23; var HEADER_OFFSET = 25; var TYPE = 1; var DEHYDRATED_VIEWS = 6; var NATIVE = 7; var VIEW_REFS = 8; var MOVED_VIEWS = 9; var CONTAINER_HEADER_OFFSET = 10; var LContainerFlags; (function(LContainerFlags2) { LContainerFlags2[LContainerFlags2["None"] = 0] = "None"; LContainerFlags2[LContainerFlags2["HasTransplantedViews"] = 2] = "HasTransplantedViews"; })(LContainerFlags || (LContainerFlags = {})); 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 isProjectionTNode(tNode) { return (tNode.type & 16) === 16; } function hasI18n(lView) { return (lView[FLAGS] & 32) === 32; } function isDestroyed(lView) { return (lView[FLAGS] & 256) === 256; } function assertTNodeForLView(tNode, lView) { assertTNodeForTView(tNode, lView[TVIEW]); } 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 'ɵcmp' property.") { if (!getComponentDef(actual)) { throwError2(msg); } } function assertNgModuleType(actual, msg = "Type passed in is not NgModuleType, it does not have 'ɵmod' 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, errMessage || "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, errMessage || "Components with projection nodes () must have projection slots defined."); } function assertParentView(lView, errMessage) { assertDefined(lView, errMessage || "Component views should always have a parent view (component's host view)"); } function assertNoDuplicateDirectives(directives) { if (directives.length < 2) { return; } const seenDirectives = /* @__PURE__ */ new Set(); for (const current of directives) { if (seenDirectives.has(current)) { throw new RuntimeError(309, `Directive ${current.type.name} matches multiple times on the same element. Directives can only match an element once.`); } seenDirectives.add(current); } } function assertNodeInjector(lView, injectorIndex) { assertIndexInExpandoRange(lView, injectorIndex); assertIndexInExpandoRange( lView, injectorIndex + 8 /* NodeInjectorOffset.PARENT */ ); 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 /* NodeInjectorOffset.PARENT */ ], "injectorIndex should point to parent injector"); } 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 'ɵfac' property.`); } return hasFactoryDef ? type[NG_FACTORY_DEF] : null; } var SimpleChange = class { constructor(previousValue, currentValue, firstChange) { this.previousValue = previousValue; this.currentValue = currentValue; this.firstChange = firstChange; } /** * Check whether the new value is the first value assigned. */ isFirstChange() { return this.firstChange; } }; function applyValueToInputField(instance, inputSignalNode, privateName, value) { if (inputSignalNode !== null) { inputSignalNode.applyValueToInputSignal(inputSignalNode, value); } else { instance[privateName] = value; } } function ɵɵNgOnChangesFeature() { return NgOnChangesFeatureImpl; } function NgOnChangesFeatureImpl(definition) { if (definition.type.prototype.ngOnChanges) { definition.setInput = ngOnChangesSetInput; } return rememberChangeHistoryAndInvokeOnChangesHook; } ɵɵNgOnChangesFeature.ngInherit = true; 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 profilerCallback = null; var setProfiler = (profiler2) => { profilerCallback = profiler2; }; var profiler = function(event, instance, hookOrListener) { if (profilerCallback != null) { profilerCallback(event, instance, hookOrListener); } }; var SVG_NAMESPACE = "svg"; var MATH_ML_NAMESPACE = "math"; var _ensureDirtyViewsAreAlwaysReachable = false; function getEnsureDirtyViewsAreAlwaysReachable() { return _ensureDirtyViewsAreAlwaysReachable; } function setEnsureDirtyViewsAreAlwaysReachable(v) { _ensureDirtyViewsAreAlwaysReachable = v; } 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 getNativeByTNodeOrNull(tNode, lView) { const index = tNode === null ? -1 : tNode.index; if (index !== -1) { ngDevMode && assertTNodeForLView(tNode, lView); const node = unwrapRNode(lView[index]); return node; } return null; } 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 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) { if (requiresRefreshOrTraversal(lView)) { markAncestorsForTraversal(lView); } else if (lView[FLAGS] & 64) { if (getEnsureDirtyViewsAreAlwaysReachable()) { lView[FLAGS] |= 1024; markAncestorsForTraversal(lView); } else { lView[ENVIRONMENT].changeDetectionScheduler?.notify(); } } } function markAncestorsForTraversal(lView) { lView[ENVIRONMENT].changeDetectionScheduler?.notify(); 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 ((lView[FLAGS] & 256) === 256) { 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; } var instructionState = { lFrame: createLFrame(null), bindingsEnabled: true, skipHydrationRootTNode: null }; var _isInCheckNoChangesMode = false; function getElementDepthCount() { return instructionState.lFrame.elementDepthCount; } function increaseElementDepthCount() { instructionState.lFrame.elementDepthCount++; } function decreaseElementDepthCount() { instructionState.lFrame.elementDepthCount--; } function getBindingsEnabled() { return instructionState.bindingsEnabled; } function isInSkipHydrationBlock$1() { return instructionState.skipHydrationRootTNode !== null; } function isSkipHydrationRootTNode(tNode) { return instructionState.skipHydrationRootTNode === tNode; } function ɵɵenableBindings() { instructionState.bindingsEnabled = true; } function enterSkipHydrationBlock(tNode) { instructionState.skipHydrationRootTNode = tNode; } function ɵɵdisableBindings() { instructionState.bindingsEnabled = false; } function leaveSkipHydrationBlock() { instructionState.skipHydrationRootTNode = null; } function getLView() { return instructionState.lFrame.lView; } function getTView() { return instructionState.lFrame.tView; } function ɵɵrestoreView(viewToRestore) { instructionState.lFrame.contextLView = viewToRestore; return viewToRestore[CONTEXT]; } function ɵɵresetView(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 _isInCheckNoChangesMode; } function setIsInCheckNoChangesMode(mode) { !ngDevMode && throwError2("Must never be called in production mode"); _isInCheckNoChangesMode = mode; } 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(count2) { const lFrame = instructionState.lFrame; const index = lFrame.bindingIndex; lFrame.bindingIndex = lFrame.bindingIndex + count2; 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 & InjectFlags.SkipSelf) { 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 & InjectFlags.Host)) { 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 ɵɵnamespaceSVG() { instructionState.lFrame.currentNamespace = SVG_NAMESPACE; } function ɵɵnamespaceMathML() { instructionState.lFrame.currentNamespace = MATH_ML_NAMESPACE; } function ɵɵnamespaceHTML() { namespaceHTMLInternal(); } function namespaceHTMLInternal() { instructionState.lFrame.currentNamespace = null; } function getNamespace$1() { return instructionState.lFrame.currentNamespace; } var _wasLastNodeCreated = true; function wasLastNodeCreated() { return _wasLastNodeCreated; } function lastNodeWasCreated(flag) { _wasLastNodeCreated = flag; } 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 max2 = arr.length - 1; let lastNodeIndexFound = 0; for (let i = startIndex; i < max2; 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(4, directive, hook); const prevConsumer = setActiveConsumer(null); try { hook.call(directive); } finally { setActiveConsumer(prevConsumer); profiler(5, 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 { constructor(factory, isViewProvider, injectImplementation) { this.factory = factory; this.resolving = false; ngDevMode && assertDefined(factory, "Factory not specified"); ngDevMode && assertEqual(typeof factory, "function", "Expected factory function."); this.canSeeViewProviders = isViewProvider; this.injectImpl = injectImplementation; } }; function isFactory(obj) { return obj instanceof NodeInjectorFactory; } 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"); 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)) { throwError2(`Expected TNodeType to have only a single type selected, but got ${toTNodeTypeAsString(type)}.`); } } 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_FOUND = {}; 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 /* NodeInjectorOffset.PARENT */ ] = 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 || // If the injector index is the same as its parent's injector index, then the index has been // copied down from the parent node. No injector has been created yet on this node. tNode.parent && tNode.parent.injectorIndex === tNode.injectorIndex || // After the first template pass, the injector index might exist but the parent values // might not have been calculated yet for this instance lView[ tNode.injectorIndex + 8 /* NodeInjectorOffset.PARENT */ ] === 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 /* TNodeType.AnyRNode */ ); 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 & InjectFlags.Optional || notFoundValue !== void 0) { return notFoundValue; } else { throwProviderNotFoundError(token, "NodeInjector"); } } function lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue) { if (flags & InjectFlags.Optional && notFoundValue === void 0) { notFoundValue = null; } if ((flags & (InjectFlags.Self | InjectFlags.Host)) === 0) { const moduleInjector = lView[INJECTOR$1]; const previousInjectImplementation = setInjectImplementation(void 0); try { if (moduleInjector) { return moduleInjector.get(token, notFoundValue, flags & InjectFlags.Optional); } else { return injectRootLimpMode(token, notFoundValue, flags & InjectFlags.Optional); } } finally { setInjectImplementation(previousInjectImplementation); } } return notFoundValueOrThrow(notFoundValue, token, flags); } function getOrCreateInjectable(tNode, lView, token, flags = InjectFlags.Default, notFoundValue) { if (tNode !== null) { if (lView[FLAGS] & 2048 && // The token must be present on the current node injector when the `Self` // flag is set, so the lookup on embedded view injector(s) can be skipped. !(flags & InjectFlags.Self)) { const embeddedInjectorValue = lookupTokenUsingEmbeddedInjector(tNode, lView, token, flags, NOT_FOUND); if (embeddedInjectorValue !== NOT_FOUND) { return embeddedInjectorValue; } } const value = lookupTokenUsingNodeInjector(tNode, lView, token, flags, NOT_FOUND); if (value !== NOT_FOUND) { 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 & InjectFlags.Host ? notFoundValueOrThrow(notFoundValue, token, flags) : lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue); } try { let value; if (ngDevMode) { runInInjectorProfilerContext(new NodeInjector(getCurrentTNode(), getLView()), token, () => { value = bloomHash(flags); if (value != null) { emitInstanceCreatedByInjectorEvent(value); } }); } else { value = bloomHash(flags); } if (value == null && !(flags & InjectFlags.Optional)) { 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 & InjectFlags.Host ? lView[DECLARATION_COMPONENT_VIEW][T_HOST] : null; if (injectorIndex === -1 || flags & InjectFlags.SkipSelf) { parentLocation = injectorIndex === -1 ? getParentInjectorLocation(tNode, lView) : lView[ injectorIndex + 8 /* NodeInjectorOffset.PARENT */ ]; 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 /* NodeInjectorOffset.TNODE */ ], lView); if (bloomHasToken(bloomHash, injectorIndex, tView.data)) { const instance = searchTokensOnInjector(injectorIndex, lView, token, previousTView, flags, hostTElementNode); if (instance !== NOT_FOUND) { return instance; } } parentLocation = lView[ injectorIndex + 8 /* NodeInjectorOffset.PARENT */ ]; if (parentLocation !== NO_PARENT_INJECTOR && shouldSearchParent(flags, lView[TVIEW].data[ injectorIndex + 8 /* NodeInjectorOffset.TNODE */ ] === 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 /* NodeInjectorOffset.TNODE */ ]; const canAccessViewProviders = previousTView == null ? ( // 1) This is the first invocation `previousTView == null` which means that we are at the // `TNode` of where injector is starting to look. In such a case the only time we are allowed // to look into the ViewProviders is if: // - we are on a component // - AND the injector set `includeViewProviders` to true (implying that the token can see // ViewProviders because it is the Component or a Service which itself was declared in // ViewProviders) isComponentHost(tNode) && includeViewProviders ) : ( // 2) `previousTView != null` which means that we are now walking across the parent nodes. // In such a case we are only allowed to look into the ViewProviders if: // - We just crossed from child View to Parent View `previousTView != currentTView` // - AND the parent TNode is an Element. // This means that we just came from the Component's View and therefore are allowed to see // into the ViewProviders. previousTView != currentTView && (tNode.type & 3) !== 0 ); const isHostSpecialCase = flags & InjectFlags.Host && hostTElementNode === tNode; const injectableIdx = locateDirectiveOrProvider(tNode, currentTView, token, canAccessViewProviders, isHostSpecialCase); if (injectableIdx !== null) { return getNodeInjectable(lView, currentTView, injectableIdx, tNode); } else { return NOT_FOUND; } } 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; } function getNodeInjectable(lView, tView, index, tNode) { let value = lView[index]; const tData = tView.data; if (isFactory(value)) { const factory = value; if (factory.resolving) { throwCyclicDependencyError(stringifyForError(tData[index])); } const previousIncludeViewProviders = setIncludeViewProviders(factory.canSeeViewProviders); factory.resolving = true; let prevInjectContext; if (ngDevMode) { const token = tData[index].type || tData[index]; const injector = new NodeInjector(tNode, lView); prevInjectContext = setInjectorProfilerContext({ injector, token }); } const previousInjectImplementation = factory.injectImpl ? setInjectImplementation(factory.injectImpl) : null; const success = enterDI(lView, tNode, InjectFlags.Default); ngDevMode && assertEqual(success, true, "Because flags do not contain `SkipSelf' we expect this to always succeed."); try { value = lView[index] = factory.factory(void 0, 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(); } } return value; } function bloomHashBitOrFactory(token) { ngDevMode && assertDefined(token, "token must be defined"); if (typeof token === "string") { return token.charCodeAt(0) || 0; } const tokenId = ( // First check with `hasOwnProperty` so we don't get an inherited ID. 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 & InjectFlags.Self) && !(flags & InjectFlags.Host && isFirstHostTNode); } function getNodeInjectorLView(nodeInjector) { return nodeInjector._lView; } function getNodeInjectorTNode(nodeInjector) { return nodeInjector._tNode; } var NodeInjector = class { 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 ɵɵgetInheritedFactory(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 && !(currentLView[FLAGS] & 512)) { ngDevMode && assertTNodeForLView(currentTNode, currentLView); const nodeInjectorValue = lookupTokenUsingNodeInjector(currentTNode, currentLView, token, flags | InjectFlags.Self, NOT_FOUND); if (nodeInjectorValue !== NOT_FOUND) { return nodeInjectorValue; } let parentTNode = currentTNode.parent; if (!parentTNode) { const embeddedViewInjector = currentLView[EMBEDDED_VIEW_INJECTOR]; if (embeddedViewInjector) { const embeddedViewInjectorValue = embeddedViewInjector.get(token, NOT_FOUND, flags); if (embeddedViewInjectorValue !== NOT_FOUND) { 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 ɵɵinjectAttribute(attrNameToInject) { return injectAttributeImpl(getCurrentTNode(), attrNameToInject); } 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); if (additionalProcessing) additionalProcessing(cls); 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; } } if (parentClass) { ParamDecoratorFactory.prototype = Object.create(parentClass.prototype); } 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); if (additionalProcessing) additionalProcessing(target, name2, ...args); } return PropDecorator; } if (parentClass) { PropDecoratorFactory.prototype = Object.create(parentClass.prototype); } PropDecoratorFactory.prototype.ngMetadataName = name; PropDecoratorFactory.annotationCls = PropDecoratorFactory; return PropDecoratorFactory; }); } var Attribute = makeParamDecorator("Attribute", (attributeName) => ({ attributeName, __NG_ELEMENT_ID__: () => ɵɵinjectAttribute(attributeName) })); var emitDistinctChangesOnlyDefaultValue = true; var Query = class { }; var ContentChildren = makePropDecorator("ContentChildren", (selector, data = {}) => __spreadValues({ selector, first: false, isViewQuery: false, descendants: false, emitDistinctChangesOnly: emitDistinctChangesOnlyDefaultValue }, data), Query); var ContentChild = makePropDecorator("ContentChild", (selector, data = {}) => __spreadValues({ selector, first: true, isViewQuery: false, descendants: true }, data), Query); var ViewChildren = makePropDecorator("ViewChildren", (selector, data = {}) => __spreadValues({ selector, first: false, isViewQuery: true, descendants: true, emitDistinctChangesOnly: emitDistinctChangesOnlyDefaultValue }, data), Query); var ViewChild = makePropDecorator("ViewChild", (selector, data) => __spreadValues({ selector, first: true, isViewQuery: true, descendants: true }, data), Query); var FactoryTarget; (function(FactoryTarget2) { FactoryTarget2[FactoryTarget2["Directive"] = 0] = "Directive"; FactoryTarget2[FactoryTarget2["Component"] = 1] = "Component"; FactoryTarget2[FactoryTarget2["Injectable"] = 2] = "Injectable"; FactoryTarget2[FactoryTarget2["Pipe"] = 3] = "Pipe"; FactoryTarget2[FactoryTarget2["NgModule"] = 4] = "NgModule"; })(FactoryTarget || (FactoryTarget = {})); var R3TemplateDependencyKind; (function(R3TemplateDependencyKind2) { R3TemplateDependencyKind2[R3TemplateDependencyKind2["Directive"] = 0] = "Directive"; R3TemplateDependencyKind2[R3TemplateDependencyKind2["Pipe"] = 1] = "Pipe"; R3TemplateDependencyKind2[R3TemplateDependencyKind2["NgModule"] = 2] = "NgModule"; })(R3TemplateDependencyKind || (R3TemplateDependencyKind = {})); var ViewEncapsulation; (function(ViewEncapsulation2) { ViewEncapsulation2[ViewEncapsulation2["Emulated"] = 0] = "Emulated"; ViewEncapsulation2[ViewEncapsulation2["None"] = 2] = "None"; ViewEncapsulation2[ViewEncapsulation2["ShadowDom"] = 3] = "ShadowDom"; })(ViewEncapsulation || (ViewEncapsulation = {})); function getCompilerFacade(request) { const globalNg = _global["ng"]; if (globalNg && globalNg.ɵcompilerFacade) { return globalNg.ɵcompilerFacade; } 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 Type = Function; function isType(v) { return typeof v === "function"; } 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, count2) { const length = array.length - count2; while (index < length) { array[index] = array[index + count2]; index++; } while (count2--) { 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 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 { constructor(reflect) { this._reflect = reflect || _global["Reflect"]; } factory(t) { return (...args) => new t(...args); } /** @internal */ _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; } var Inject = attachInjectFlag( // Disable tslint because `DecoratorFlags` is a const enum which gets inlined. // tslint:disable-next-line: no-toplevel-property-access makeParamDecorator("Inject", (token) => ({ token })), -1 /* DecoratorFlags.Inject */ ); var Optional = ( // Disable tslint because `InternalInjectFlags` is a const enum which gets inlined. // tslint:disable-next-line: no-toplevel-property-access attachInjectFlag( makeParamDecorator("Optional"), 8 /* InternalInjectFlags.Optional */ ) ); var Self = ( // Disable tslint because `InternalInjectFlags` is a const enum which gets inlined. // tslint:disable-next-line: no-toplevel-property-access attachInjectFlag( makeParamDecorator("Self"), 2 /* InternalInjectFlags.Self */ ) ); var SkipSelf = ( // Disable tslint because `InternalInjectFlags` is a const enum which gets inlined. // tslint:disable-next-line: no-toplevel-property-access attachInjectFlag( makeParamDecorator("SkipSelf"), 4 /* InternalInjectFlags.SkipSelf */ ) ); var Host = ( // Disable tslint because `InternalInjectFlags` is a const enum which gets inlined. // tslint:disable-next-line: no-toplevel-property-access attachInjectFlag( makeParamDecorator("Host"), 1 /* InternalInjectFlags.Host */ ) ); 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 resolveComponentResources(resourceResolver) { const componentResolved = []; const urlMap = /* @__PURE__ */ new Map(); function cachedResourceResolve(url) { let promise = urlMap.get(url); if (!promise) { const resp = resourceResolver(url); urlMap.set(url, promise = resp.then(unwrapResponse)); } return promise; } componentResourceResolutionQueue.forEach((component, type) => { const promises = []; if (component.templateUrl) { promises.push(cachedResourceResolve(component.templateUrl).then((template) => { component.template = template; })); } const styles = typeof component.styles === "string" ? [component.styles] : component.styles || []; component.styles = styles; if (component.styleUrl && component.styleUrls?.length) { throw new Error("@Component cannot define both `styleUrl` and `styleUrls`. Use `styleUrl` if the component has one stylesheet, or `styleUrls` if it has multiple"); } else if (component.styleUrls?.length) { const styleOffset = component.styles.length; const styleUrls = component.styleUrls; component.styleUrls.forEach((styleUrl, index) => { styles.push(""); promises.push(cachedResourceResolve(styleUrl).then((style) => { styles[styleOffset + index] = style; styleUrls.splice(styleUrls.indexOf(styleUrl), 1); if (styleUrls.length == 0) { component.styleUrls = void 0; } })); }); } else if (component.styleUrl) { promises.push(cachedResourceResolve(component.styleUrl).then((style) => { styles.push(style); component.styleUrl = void 0; })); } const fullyResolved = Promise.all(promises).then(() => componentDefResolved(type)); componentResolved.push(fullyResolved); }); clearResolutionOfComponentResourcesQueue(); return Promise.all(componentResolved).then(() => void 0); } var componentResourceResolutionQueue = /* @__PURE__ */ new Map(); var componentDefPendingResolution = /* @__PURE__ */ new Set(); function maybeQueueResolutionOfComponentResources(type, metadata) { if (componentNeedsResolution(metadata)) { componentResourceResolutionQueue.set(type, metadata); componentDefPendingResolution.add(type); } } function isComponentDefPendingResolution(type) { return componentDefPendingResolution.has(type); } function componentNeedsResolution(component) { return !!(component.templateUrl && !component.hasOwnProperty("template") || component.styleUrls && component.styleUrls.length || component.styleUrl); } function clearResolutionOfComponentResourcesQueue() { const old = componentResourceResolutionQueue; componentResourceResolutionQueue = /* @__PURE__ */ new Map(); return old; } function restoreComponentResolutionQueue(queue2) { componentDefPendingResolution.clear(); queue2.forEach((_, type) => componentDefPendingResolution.add(type)); componentResourceResolutionQueue = queue2; } function isComponentResourceResolutionQueueEmpty() { return componentResourceResolutionQueue.size === 0; } function unwrapResponse(response) { return typeof response == "string" ? response : response.text(); } function componentDefResolved(type) { componentDefPendingResolution.delete(type); } var ENVIRONMENT_INITIALIZER = new InjectionToken(ngDevMode ? "ENVIRONMENT_INITIALIZER" : ""); var INJECTOR = new InjectionToken( ngDevMode ? "INJECTOR" : "", // Disable tslint because this is const enum which gets inlined not top level prop access. // tslint:disable-next-line: no-toplevel-property-access -1 /* InjectorMarkers.Injector */ ); var INJECTOR_DEF_TYPES = new InjectionToken(ngDevMode ? "INJECTOR_DEF_TYPES" : ""); var NullInjector = class { get(token, notFoundValue = THROW_IF_NOT_FOUND) { if (notFoundValue === THROW_IF_NOT_FOUND) { const error = new Error(`NullInjectorError: No provider for ${stringify(token)}!`); error.name = "NullInjectorError"; throw error; } return notFoundValue; } }; function makeEnvironmentProviders(providers) { return { ɵproviders: providers }; } function importProvidersFrom(...sources) { return { ɵproviders: internalImportProvidersFrom(true, sources), ɵfromNgModule: 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); throwCyclicDependencyError(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: () => ɵɵinject(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.ɵproviders; } if (Array.isArray(provider)) { deepForEachProvider(provider, fn); } else { fn(provider); } } } var USE_VALUE$1 = getClosureSafeProperty({ provide: String, useValue: getClosureSafeProperty }); function isValueProvider(value) { return value !== null && typeof value == "object" && USE_VALUE$1 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(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 { /** * Flag indicating that this injector was previously destroyed. */ get destroyed() { return this._destroyed; } constructor(providers, parent, source, scopes) { super(); this.parent = parent; this.source = source; this.scopes = scopes; this.records = /* @__PURE__ */ new Map(); this._ngOnDestroyHooks = /* @__PURE__ */ new Set(); this._onDestroyHooks = []; this._destroyed = false; forEachSingleProvider(providers, (provider) => this.processProvider(provider)); this.records.set(INJECTOR, 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, InjectFlags.Self)); } /** * Destroy the injector and release references to every instance or provider associated with it. * * Also calls the `OnDestroy` lifecycle hooks of every instance that was created for which a * hook was found. */ destroy() { this.assertNotDestroyed(); this._destroyed = true; 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(); } } onDestroy(callback) { this.assertNotDestroyed(); this._onDestroyHooks.push(callback); return () => this.removeOnDestroy(callback); } runInContext(fn) { this.assertNotDestroyed(); 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, flags = InjectFlags.Default) { this.assertNotDestroyed(); if (token.hasOwnProperty(NG_ENV_ID)) { return token[NG_ENV_ID](this); } flags = convertToBitFlags(flags); let prevInjectContext; if (ngDevMode) { prevInjectContext = setInjectorProfilerContext({ injector: this, token }); } const previousInjector = setCurrentInjector(this); const previousInjectImplementation = setInjectImplementation(void 0); try { if (!(flags & InjectFlags.SkipSelf)) { 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); } } const nextInjector = !(flags & InjectFlags.Self) ? this.parent : getNullInjector(); notFoundValue = flags & InjectFlags.Optional && notFoundValue === THROW_IF_NOT_FOUND ? null : notFoundValue; return nextInjector.get(token, notFoundValue); } catch (e) { if (e.name === "NullInjectorError") { const path = e[NG_TEMP_TOKEN_PATH] = e[NG_TEMP_TOKEN_PATH] || []; path.unshift(stringify(token)); if (previousInjector) { throw e; } else { return catchInjectorError(e, token, "R3InjectorError", this.source); } } else { throw e; } } finally { setInjectImplementation(previousInjectImplementation); setCurrentInjector(previousInjector); ngDevMode && setInjectorProfilerContext(prevInjectContext); } } /** @internal */ resolveInjectorInitializers() { 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, InjectFlags.Self); 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); } } toString() { const tokens = []; const records = this.records; for (const token of records.keys()) { tokens.push(stringify(token)); } return `R3Injector[${tokens.join(", ")}]`; } assertNotDestroyed() { if (this._destroyed) { throw new RuntimeError(205, ngDevMode && "Injector has already been destroyed."); } } /** * Process a `SingleProvider` and add it. */ 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)) { 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) { if (ngDevMode && record.value === CIRCULAR) { throwCyclicDependencyError(stringify(token)); } else if (record.value === NOT_YET) { record.value = CIRCULAR; if (ngDevMode) { runInInjectorProfilerContext(this, token, () => { record.value = record.factory(); emitInstanceCreatedByInjectorEvent(record.value); }); } else { record.value = record.factory(); } } if (typeof record.value === "object" && record.value && hasOnDestroy(record.value)) { this._ngOnDestroyHooks.add(record.value); } return record.value; } 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 ɵprov 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 = () => ɵɵinject(resolveForwardRef(provider.useExisting)); } 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 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 instanceof InjectionToken; } function forEachSingleProvider(providers, fn) { for (const provider of providers) { if (Array.isArray(provider)) { forEachSingleProvider(provider, fn); } else if (provider && isEnvironmentProviders(provider)) { forEachSingleProvider(provider.ɵproviders, fn); } else { fn(provider); } } } function runInInjectionContext(injector, fn) { if (injector instanceof R3Injector) { injector.assertNotDestroyed(); } let prevInjectorProfilerContext; if (ngDevMode) { prevInjectorProfilerContext = setInjectorProfilerContext({ injector, token: null }); } const prevInjector = setCurrentInjector(injector); const previousInjectImplementation = setInjectImplementation(void 0); try { return fn(); } finally { setCurrentInjector(prevInjector); ngDevMode && setInjectorProfilerContext(prevInjectorProfilerContext); setInjectImplementation(previousInjectImplementation); } } function assertInInjectionContext(debugFn) { if (!getInjectImplementation() && !getCurrentInjector()) { 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 angularCoreDiEnv = { "ɵɵdefineInjectable": ɵɵdefineInjectable, "ɵɵdefineInjector": ɵɵdefineInjector, "ɵɵinject": ɵɵinject, "ɵɵinvalidFactoryDep": ɵɵinvalidFactoryDep, "resolveForwardRef": resolveForwardRef }; 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}/ɵprov.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}/ɵfac.js`, { name: type.name, type, typeArgumentCount: 0, // In JIT mode types are not available nor used. deps: reflectDependencies(type), target: compiler.FactoryTarget.Injectable }); } return ngFactoryDef; }, // Leave this configurable so that the factories from directives or pipes can take precedence. configurable: true }); } } var USE_VALUE = getClosureSafeProperty({ provide: String, useValue: getClosureSafeProperty }); function isUseClassProvider(meta) { return meta.useClass !== void 0; } function isUseValueProvider(meta) { return USE_VALUE 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 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) ]; name = name || (typeof defType === "object" ? void 0 : stringify(defType)); return new R3Injector(providers, parent || getNullInjector(), name || null, scopes); } var _Injector = class _Injector { 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); } } }; _Injector.THROW_IF_NOT_FOUND = THROW_IF_NOT_FOUND; _Injector.NULL = new NullInjector(); _Injector.ɵprov = ɵɵdefineInjectable({ token: _Injector, providedIn: "any", factory: () => ɵɵinject(INJECTOR) }); _Injector.__NG_ELEMENT_ID__ = -1; var Injector = _Injector; function isModuleWithProviders(value) { return value.ngModule !== void 0; } function isNgModule(value) { return !!getNgModuleDef(value); } function isPipe(value) { return !!getPipeDef$1(value); } function isDirective(value) { return !!getDirectiveDef(value); } function isComponent(value) { return !!getComponentDef(value); } function getDependencyTypeForError(type) { if (getComponentDef(type)) return "component"; if (getDirectiveDef(type)) return "directive"; if (getPipeDef$1(type)) return "pipe"; return "type"; } function verifyStandaloneImport(depType, importingType) { if (isForwardRef(depType)) { depType = resolveForwardRef(depType); if (!depType) { throw new Error(`Expected forwardRef function, imported from "${stringifyForError(importingType)}", to return a standalone entity or NgModule but got "${stringifyForError(depType) || depType}".`); } } if (getNgModuleDef(depType) == null) { const def = getComponentDef(depType) || getDirectiveDef(depType) || getPipeDef$1(depType); if (def != null) { if (!def.standalone) { throw new Error(`The "${stringifyForError(depType)}" ${getDependencyTypeForError(depType)}, imported from "${stringifyForError(importingType)}", is not standalone. Did you forget to add the standalone: true flag?`); } } else { if (isModuleWithProviders(depType)) { throw new Error(`A module with providers was imported from "${stringifyForError(importingType)}". Modules with providers are not supported in standalone components imports.`); } else { throw new Error(`The "${stringifyForError(depType)}" type, imported from "${stringifyForError(importingType)}", must be a standalone component / directive / pipe or an NgModule. Did you forget to add the required @Component / @Directive / @Pipe or @NgModule annotation?`); } } } } var DOCUMENT = void 0; function setDocument(document2) { DOCUMENT = document2; } function getDocument() { if (DOCUMENT !== void 0) { return DOCUMENT; } 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(ngDevMode ? "AppId" : "", { providedIn: "root", factory: () => DEFAULT_APP_ID }); var DEFAULT_APP_ID = "ng"; var PLATFORM_INITIALIZER = new InjectionToken(ngDevMode ? "Platform Initializer" : ""); var PLATFORM_ID = new InjectionToken(ngDevMode ? "Platform ID" : "", { providedIn: "platform", factory: () => "unknown" // set a default platform name, when none set explicitly }); var PACKAGE_ROOT_URL = new InjectionToken(ngDevMode ? "Application Packages Root URL" : ""); var ANIMATION_MODULE_TYPE = new InjectionToken(ngDevMode ? "AnimationModuleType" : ""); var CSP_NONCE = new InjectionToken(ngDevMode ? "CSP nonce" : "", { providedIn: "root", factory: () => { return getDocument().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], disableImageSizeWarning: false, disableImageLazyLoadWarning: false }; var IMAGE_CONFIG = new InjectionToken(ngDevMode ? "ImageConfig" : "", { providedIn: "root", factory: () => IMAGE_CONFIG_DEFAULTS }); function ɵɵresolveWindow(element) { return element.ownerDocument.defaultView; } function ɵɵresolveDocument(element) { return element.ownerDocument; } function ɵɵresolveBody(element) { return element.ownerDocument.body; } var INTERPOLATION_DELIMITER = `�`; function maybeUnwrapFn(value) { if (value instanceof Function) { return value(); } else { return value; } } function isPlatformBrowser(injector) { return (injector ?? inject(Injector)).get(PLATFORM_ID) === "browser"; } var USE_RUNTIME_DEPS_TRACKER_FOR_JIT = true; var DepsTracker = class { constructor() { this.ownerNgModule = /* @__PURE__ */ new Map(); this.ngModulesWithSomeUnresolvedDecls = /* @__PURE__ */ new Set(); this.ngModulesScopeCache = /* @__PURE__ */ new Map(); this.standaloneComponentsScopeCache = /* @__PURE__ */ new Map(); } /** * Attempts to resolve ng module's forward ref declarations as much as possible and add them to * the `ownerNgModule` map. This method normally should be called after the initial parsing when * all the forward refs are resolved (e.g., when trying to render a component) */ resolveNgModulesDecls() { if (this.ngModulesWithSomeUnresolvedDecls.size === 0) { return; } for (const moduleType of this.ngModulesWithSomeUnresolvedDecls) { const def = getNgModuleDef(moduleType); if (def?.declarations) { for (const decl of maybeUnwrapFn(def.declarations)) { if (isComponent(decl)) { this.ownerNgModule.set(decl, moduleType); } } } } this.ngModulesWithSomeUnresolvedDecls.clear(); } /** @override */ getComponentDependencies(type, rawImports) { this.resolveNgModulesDecls(); const def = getComponentDef(type); if (def === null) { throw new Error(`Attempting to get component dependencies for a type that is not a component: ${type}`); } if (def.standalone) { const scope = this.getStandaloneComponentScope(type, rawImports); if (scope.compilation.isPoisoned) { return { dependencies: [] }; } return { dependencies: [ ...scope.compilation.directives, ...scope.compilation.pipes, ...scope.compilation.ngModules ] }; } else { if (!this.ownerNgModule.has(type)) { return { dependencies: [] }; } const scope = this.getNgModuleScope(this.ownerNgModule.get(type)); if (scope.compilation.isPoisoned) { return { dependencies: [] }; } return { dependencies: [ ...scope.compilation.directives, ...scope.compilation.pipes ] }; } } /** * @override * This implementation does not make use of param scopeInfo since it assumes the scope info is * already added to the type itself through methods like {@link ɵɵsetNgModuleScope} */ registerNgModule(type, scopeInfo) { if (!isNgModule(type)) { throw new Error(`Attempting to register a Type which is not NgModule as NgModule: ${type}`); } this.ngModulesWithSomeUnresolvedDecls.add(type); } /** @override */ clearScopeCacheFor(type) { this.ngModulesScopeCache.delete(type); this.standaloneComponentsScopeCache.delete(type); } /** @override */ getNgModuleScope(type) { if (this.ngModulesScopeCache.has(type)) { return this.ngModulesScopeCache.get(type); } const scope = this.computeNgModuleScope(type); this.ngModulesScopeCache.set(type, scope); return scope; } /** Compute NgModule scope afresh. */ computeNgModuleScope(type) { const def = getNgModuleDef(type, true); const scope = { exported: { directives: /* @__PURE__ */ new Set(), pipes: /* @__PURE__ */ new Set() }, compilation: { directives: /* @__PURE__ */ new Set(), pipes: /* @__PURE__ */ new Set() } }; for (const imported of maybeUnwrapFn(def.imports)) { if (isNgModule(imported)) { const importedScope = this.getNgModuleScope(imported); addSet(importedScope.exported.directives, scope.compilation.directives); addSet(importedScope.exported.pipes, scope.compilation.pipes); } else if (isStandalone(imported)) { if (isDirective(imported) || isComponent(imported)) { scope.compilation.directives.add(imported); } else if (isPipe(imported)) { scope.compilation.pipes.add(imported); } else { throw new RuntimeError(1e3, "The standalone imported type is neither a component nor a directive nor a pipe"); } } else { scope.compilation.isPoisoned = true; break; } } if (!scope.compilation.isPoisoned) { for (const decl of maybeUnwrapFn(def.declarations)) { if (isNgModule(decl) || isStandalone(decl)) { scope.compilation.isPoisoned = true; break; } if (isPipe(decl)) { scope.compilation.pipes.add(decl); } else { scope.compilation.directives.add(decl); } } } for (const exported of maybeUnwrapFn(def.exports)) { if (isNgModule(exported)) { const exportedScope = this.getNgModuleScope(exported); addSet(exportedScope.exported.directives, scope.exported.directives); addSet(exportedScope.exported.pipes, scope.exported.pipes); addSet(exportedScope.exported.directives, scope.compilation.directives); addSet(exportedScope.exported.pipes, scope.compilation.pipes); } else if (isPipe(exported)) { scope.exported.pipes.add(exported); } else { scope.exported.directives.add(exported); } } return scope; } /** @override */ getStandaloneComponentScope(type, rawImports) { if (this.standaloneComponentsScopeCache.has(type)) { return this.standaloneComponentsScopeCache.get(type); } const ans = this.computeStandaloneComponentScope(type, rawImports); this.standaloneComponentsScopeCache.set(type, ans); return ans; } computeStandaloneComponentScope(type, rawImports) { const ans = { compilation: { // Standalone components are always able to self-reference. directives: /* @__PURE__ */ new Set([type]), pipes: /* @__PURE__ */ new Set(), ngModules: /* @__PURE__ */ new Set() } }; for (const rawImport of flatten(rawImports ?? [])) { const imported = resolveForwardRef(rawImport); try { verifyStandaloneImport(imported, type); } catch (e) { ans.compilation.isPoisoned = true; return ans; } if (isNgModule(imported)) { ans.compilation.ngModules.add(imported); const importedScope = this.getNgModuleScope(imported); if (importedScope.exported.isPoisoned) { ans.compilation.isPoisoned = true; return ans; } addSet(importedScope.exported.directives, ans.compilation.directives); addSet(importedScope.exported.pipes, ans.compilation.pipes); } else if (isPipe(imported)) { ans.compilation.pipes.add(imported); } else if (isDirective(imported) || isComponent(imported)) { ans.compilation.directives.add(imported); } else { ans.compilation.isPoisoned = true; return ans; } } return ans; } /** @override */ isOrphanComponent(cmp) { const def = getComponentDef(cmp); if (!def || def.standalone) { return false; } this.resolveNgModulesDecls(); return !this.ownerNgModule.has(cmp); } }; function addSet(sourceSet, targetSet) { for (const m of sourceSet) { targetSet.add(m); } } var depsTracker = new DepsTracker(); var modules = /* @__PURE__ */ new Map(); var checkForDuplicateNgModules = true; function assertSameOrNotExisting(id, type, incoming) { if (type && type !== incoming && checkForDuplicateNgModules) { throw new Error(`Duplicate module registered for ${id} - ${stringify(type)} vs ${stringify(type.name)}`); } } function registerNgModuleType(ngModuleType, id) { const existing = modules.get(id) || null; assertSameOrNotExisting(id, existing, ngModuleType); modules.set(id, ngModuleType); } function getRegisteredNgModuleType(id) { return modules.get(id); } function setAllowDuplicateNgModuleIdsForTest(allowDuplicates) { checkForDuplicateNgModules = !allowDuplicates; } var CUSTOM_ELEMENTS_SCHEMA = { name: "custom-elements" }; var NO_ERRORS_SCHEMA = { name: "no-errors-schema" }; var shouldThrowErrorOnUnknownElement = false; function ɵsetUnknownElementStrictMode(shouldThrow) { shouldThrowErrorOnUnknownElement = shouldThrow; } function ɵgetUnknownElementStrictMode() { return shouldThrowErrorOnUnknownElement; } var shouldThrowErrorOnUnknownProperty = false; function ɵsetUnknownPropertyStrictMode(shouldThrow) { shouldThrowErrorOnUnknownProperty = shouldThrow; } function ɵgetUnknownPropertyStrictMode() { return shouldThrowErrorOnUnknownProperty; } function validateElementIsKnown(element, lView, tagName, schemas, hasDirectives) { if (schemas === null) return; if (!hasDirectives && tagName !== null) { const isUnknown = ( // Note that we can't check for `typeof HTMLUnknownElement === 'function'` because // Domino doesn't expose HTMLUnknownElement globally. typeof HTMLUnknownElement !== "undefined" && HTMLUnknownElement && element instanceof HTMLUnknownElement || typeof customElements !== "undefined" && tagName.indexOf("-") > -1 && !customElements.get(tagName) ); if (isUnknown && !matchingSchemas(schemas, tagName)) { const isHostStandalone = isHostComponentStandalone(lView); const templateLocation = getTemplateLocationDetails(lView); const schemas2 = `'${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 ${schemas2} of this component to suppress this message.`; } else { message += `2. To allow any element add 'NO_ERRORS_SCHEMA' to the ${schemas2} 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 SKIP_HYDRATION_ATTR_NAME = "ngSkipHydration"; var SKIP_HYDRATION_ATTR_NAME_LOWER_CASE = "ngskiphydration"; function hasSkipHydrationAttrOnTNode(tNode) { const attrs = tNode.mergedAttrs; if (attrs === null) return false; for (let i = 0; i < attrs.length; i += 2) { const value = attrs[i]; if (typeof value === "number") return false; if (typeof value === "string" && value.toLowerCase() === SKIP_HYDRATION_ATTR_NAME_LOWER_CASE) { return true; } } return false; } function hasSkipHydrationAttrOnRElement(rNode) { return rNode.hasAttribute(SKIP_HYDRATION_ATTR_NAME); } function hasInSkipHydrationBlockFlag(tNode) { return (tNode.flags & 128) === 128; } function isInSkipHydrationBlock(tNode) { if (hasInSkipHydrationBlockFlag(tNode)) { return true; } let currentTNode = tNode.parent; while (currentTNode) { if (hasInSkipHydrationBlockFlag(tNode) || hasSkipHydrationAttrOnTNode(currentTNode)) { return true; } currentTNode = currentTNode.parent; } return false; } var RendererStyleFlags2; (function(RendererStyleFlags22) { RendererStyleFlags22[RendererStyleFlags22["Important"] = 1] = "Important"; RendererStyleFlags22[RendererStyleFlags22["DashCase"] = 2] = "DashCase"; })(RendererStyleFlags2 || (RendererStyleFlags2 = {})); var COMMENT_DISALLOWED = /^>|^->||--!>|)/g; var COMMENT_DELIMITER_ESCAPED = "​$1​"; function escapeCommentText(value) { return value.replace(COMMENT_DISALLOWED, (text) => text.replace(COMMENT_DELIMITER, COMMENT_DELIMITER_ESCAPED)); } 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]); } var LContext = class { /** Component's parent view data. */ 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.ɵcmp; } function isDirectiveInstance(instance) { return instance && instance.constructor && instance.constructor.ɵdir; } 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]; const { directiveStart, componentOffset } = tNode; return componentOffset > -1 ? lView[directiveStart + componentOffset] : null; } function discoverLocalRefs(lView, nodeIndex) { const tNode = lView[TVIEW].data[nodeIndex]; if (tNode && tNode.localNames) { const result = {}; let localIndex = tNode.index + 1; for (let i = 0; i < tNode.localNames.length; i += 2) { result[tNode.localNames[i]] = lView[localIndex]; localIndex++; } return result; } return null; } var _icuContainerIterate; function icuContainerIterate(tIcuContainerNode, lView) { return _icuContainerIterate(tIcuContainerNode, lView); } function ensureIcuContainerVisitorLoaded(loader) { if (_icuContainerIterate === void 0) { _icuContainerIterate = loader(); } } function applyToElementOrContainer(action, renderer, parent, lNodeToHandle, beforeNode) { 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) { if (beforeNode == null) { nativeAppendChild(renderer, parent, rNode); } else { nativeInsertBefore(renderer, parent, rNode, beforeNode || null, true); } } else if (action === 1 && parent !== null) { nativeInsertBefore(renderer, parent, rNode, beforeNode || null, true); } else if (action === 2) { nativeRemoveNode(renderer, rNode, isComponent2); } else if (action === 3) { ngDevMode && ngDevMode.rendererDestroyNode++; renderer.destroyNode(rNode); } if (lContainer != null) { applyContainer(renderer, action, lContainer, parent, beforeNode); } } } function createTextNode(renderer, value) { ngDevMode && ngDevMode.rendererCreateTextNode++; ngDevMode && ngDevMode.rendererSetText++; return renderer.createText(value); } function updateTextNode(renderer, rNode, value) { ngDevMode && ngDevMode.rendererSetText++; renderer.setValue(rNode, value); } function createCommentNode(renderer, value) { ngDevMode && ngDevMode.rendererCreateComment++; return renderer.createComment(escapeCommentText(value)); } function createElementNode(renderer, name, namespace) { ngDevMode && ngDevMode.rendererCreateElement++; return renderer.createElement(name, namespace); } 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) { 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 insertView(tView, lView, lContainer, index) { ngDevMode && assertLView(lView); ngDevMode && assertLContainer(lContainer); const indexInContainer = CONTAINER_HEADER_OFFSET + index; const containerLength = lContainer.length; if (index > 0) { lContainer[indexInContainer - 1][NEXT] = lView; } if (index < containerLength - CONTAINER_HEADER_OFFSET) { lView[NEXT] = lContainer[indexInContainer]; addToArray(lContainer, CONTAINER_HEADER_OFFSET + index, lView); } else { lContainer.push(lView); lView[NEXT] = null; } lView[PARENT] = lContainer; const declarationLContainer = lView[DECLARATION_LCONTAINER]; if (declarationLContainer !== null && lContainer !== declarationLContainer) { trackMovedView(declarationLContainer, lView); } const lQueries = lView[QUERIES]; if (lQueries !== null) { lQueries.insertView(tView); } updateAncestorTraversalFlagsOnAttach(lView); lView[FLAGS] |= 128; } function trackMovedView(declarationContainer, lView) { ngDevMode && assertDefined(lView, "LView required"); ngDevMode && assertLContainer(declarationContainer); const movedViews = declarationContainer[MOVED_VIEWS]; const insertedLContainer = lView[PARENT]; ngDevMode && assertLContainer(insertedLContainer); const insertedComponentLView = insertedLContainer[PARENT][DECLARATION_COMPONENT_VIEW]; ngDevMode && assertDefined(insertedComponentLView, "Missing insertedComponentLView"); const declaredComponentLView = lView[DECLARATION_COMPONENT_VIEW]; ngDevMode && assertDefined(declaredComponentLView, "Missing declaredComponentLView"); if (declaredComponentLView !== insertedComponentLView) { declarationContainer[FLAGS] |= LContainerFlags.HasTransplantedViews; } if (movedViews === null) { declarationContainer[MOVED_VIEWS] = [lView]; } else { movedViews.push(lView); } } 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); ngDevMode && assertLContainer(lView[PARENT]); movedViews.splice(declarationViewIndex, 1); } function detachView(lContainer, removeIndex) { if (lContainer.length <= CONTAINER_HEADER_OFFSET) return; const indexInContainer = CONTAINER_HEADER_OFFSET + removeIndex; const viewToDetach = lContainer[indexInContainer]; if (viewToDetach) { const declarationLContainer = viewToDetach[DECLARATION_LCONTAINER]; if (declarationLContainer !== null && declarationLContainer !== lContainer) { detachMovedView(declarationLContainer, viewToDetach); } if (removeIndex > 0) { lContainer[indexInContainer - 1][NEXT] = viewToDetach[NEXT]; } const removedLView = removeFromArray(lContainer, CONTAINER_HEADER_OFFSET + removeIndex); removeViewFromDOM(viewToDetach[TVIEW], viewToDetach); const lQueries = removedLView[QUERIES]; if (lQueries !== null) { lQueries.detachView(removedLView[TVIEW]); } viewToDetach[PARENT] = null; viewToDetach[NEXT] = null; viewToDetach[FLAGS] &= ~128; } return viewToDetach; } function destroyLView(tView, lView) { if (!(lView[FLAGS] & 256)) { const renderer = lView[RENDERER]; if (renderer.destroyNode) { applyView(tView, lView, renderer, 3, null, null); } destroyViewTree(lView); } } function cleanUpView(tView, lView) { if (!(lView[FLAGS] & 256)) { 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) { ngDevMode && ngDevMode.rendererDestroy++; 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); } } function processCleanups(tView, lView) { 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(); } } } function executeOnDestroys(tView, lView) { 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(4, callContext, hook); try { hook.call(callContext); } finally { profiler(5, callContext, hook); } } } else { profiler(4, context2, toCall); try { toCall.call(context2); } finally { profiler(5, 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)) { tNode = parentTNode; parentTNode = tNode.parent; } if (parentTNode === null) { return lView[HOST]; } else { ngDevMode && assertTNodeType( parentTNode, 3 | 4 /* TNodeType.Container */ ); const { componentOffset } = parentTNode; if (componentOffset > -1) { ngDevMode && assertTNodeForLView(parentTNode, lView); const { encapsulation } = tView.data[parentTNode.directiveStart + componentOffset]; if (encapsulation === ViewEncapsulation$1.None || encapsulation === ViewEncapsulation$1.Emulated) { return null; } } return getNativeByTNode(parentTNode, lView); } } function nativeInsertBefore(renderer, parent, child, beforeNode, isMove) { ngDevMode && ngDevMode.rendererInsertBefore++; renderer.insertBefore(parent, child, beforeNode, isMove); } function nativeAppendChild(renderer, parent, child) { ngDevMode && ngDevMode.rendererAppendChild++; 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 nativeRemoveChild(renderer, parent, child, isHostElement) { renderer.removeChild(parent, child, isHostElement); } function nativeParentNode(renderer, node) { return renderer.parentNode(node); } function nativeNextSibling(renderer, node) { return renderer.nextSibling(node); } 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 /* TNodeType.Projection */ ); 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 & 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 nativeRemoveNode(renderer, rNode, isHostElement) { ngDevMode && ngDevMode.rendererRemoveNode++; const nativeParent = nativeParentNode(renderer, rNode); if (nativeParent) { nativeRemoveChild(renderer, nativeParent, rNode, isHostElement); } } function clearElementContents(rElement) { rElement.textContent = ""; } function applyNodes(renderer, action, tNode, lView, parentRElement, beforeNode, isProjection) { while (tNode != null) { ngDevMode && assertTNodeForLView(tNode, lView); ngDevMode && assertTNodeType( tNode, 3 | 12 | 16 | 32 /* TNodeType.Icu */ ); const rawSlotValue = lView[tNode.index]; const tNodeType = tNode.type; if (isProjection) { if (action === 0) { rawSlotValue && attachPatchData(unwrapRNode(rawSlotValue), lView); tNode.flags |= 2; } } if ((tNode.flags & 32) !== 32) { if (tNodeType & 8) { applyNodes(renderer, action, tNode.child, lView, parentRElement, beforeNode, false); applyToElementOrContainer(action, renderer, parentRElement, rawSlotValue, beforeNode); } else if (tNodeType & 32) { const nextRNode = icuContainerIterate(tNode, lView); let rNode; while (rNode = nextRNode()) { applyToElementOrContainer(action, renderer, parentRElement, rNode, beforeNode); } applyToElementOrContainer(action, renderer, parentRElement, rawSlotValue, beforeNode); } else if (tNodeType & 16) { applyProjectionRecursive(renderer, action, lView, tNode, parentRElement, beforeNode); } else { ngDevMode && assertTNodeType( tNode, 3 | 4 /* TNodeType.Container */ ); applyToElementOrContainer(action, renderer, parentRElement, rawSlotValue, beforeNode); } } 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, parentRElement, rNode, beforeNode); } } 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, lContainer, parentRElement, beforeNode) { ngDevMode && assertLContainer(lContainer); const anchor = lContainer[NATIVE]; const native = unwrapRNode(lContainer); if (anchor !== native) { applyToElementOrContainer(action, renderer, parentRElement, anchor, 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) { ngDevMode && ngDevMode.rendererRemoveClass++; renderer.removeClass(rNode, prop); } else { ngDevMode && ngDevMode.rendererAddClass++; renderer.addClass(rNode, prop); } } else { let flags = prop.indexOf("-") === -1 ? void 0 : RendererStyleFlags2.DashCase; if (value == null) { ngDevMode && ngDevMode.rendererRemoveStyle++; 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; } ngDevMode && ngDevMode.rendererSetStyle++; renderer.setStyle(rNode, prop, value, flags); } } } function writeDirectStyle(renderer, element, newValue) { ngDevMode && assertString(newValue, "'newValue' should be a string"); renderer.setAttribute(element, "style", newValue); ngDevMode && ngDevMode.rendererSetStyle++; } 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); } ngDevMode && ngDevMode.rendererSetClassName++; } 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); } } 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; } function ɵɵvalidateIframeAttribute(attrValue, tagName, attrName) { const lView = getLView(); const tNode = getSelectedTNode(); const element = getNativeByTNode(tNode, lView); if (tNode.type === 2 && tagName.toLowerCase() === "iframe") { const iframe = element; iframe.src = ""; iframe.srcdoc = trustedHTMLFromString(""); nativeRemoveNode(lView[RENDERER], iframe); const errorMessage = ngDevMode && `Angular has detected that the \`${attrName}\` was applied as a binding to an