{"version":3,"file":"scripts/@angular/core/angular-core-18.min.js","mappings":"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","sources":["webpack://baas-static-web/webpack/bootstrap","webpack://baas-static-web/webpack/runtime/define property getters","webpack://baas-static-web/webpack/runtime/hasOwnProperty shorthand","webpack://baas-static-web/webpack/runtime/make namespace object","webpack://baas-static-web/./node_modules/@angular/core/fesm2022/primitives/signals.mjs","webpack://baas-static-web/external var \"rxjs\"","webpack://baas-static-web/external var \"rxjs.operators\"","webpack://baas-static-web/./node_modules/@angular/core/fesm2022/primitives/event-dispatch.mjs","webpack://baas-static-web/./node_modules/@angular/core/fesm2022/core.mjs","webpack://baas-static-web/./src/@angular/core/angular-core.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * @license Angular v18.2.13\n * (c) 2010-2024 Google LLC. https://angular.io/\n * License: MIT\n */\n\n/**\n * The default equality function used for `signal` and `computed`, which uses referential equality.\n */\nfunction defaultEquals(a, b) {\n return Object.is(a, b);\n}\n\n/**\n * The currently active consumer `ReactiveNode`, if running code in a reactive context.\n *\n * Change this via `setActiveConsumer`.\n */\nlet activeConsumer = null;\nlet inNotificationPhase = false;\n/**\n * Global epoch counter. Incremented whenever a source signal is set.\n */\nlet epoch = 1;\n/**\n * Symbol used to tell `Signal`s apart from other functions.\n *\n * This can be used to auto-unwrap signals in various cases, or to auto-wrap non-signal values.\n */\nconst SIGNAL = /* @__PURE__ */ Symbol('SIGNAL');\nfunction setActiveConsumer(consumer) {\n const prev = activeConsumer;\n activeConsumer = consumer;\n return prev;\n}\nfunction getActiveConsumer() {\n return activeConsumer;\n}\nfunction isInNotificationPhase() {\n return inNotificationPhase;\n}\nfunction isReactive(value) {\n return value[SIGNAL] !== undefined;\n}\nconst REACTIVE_NODE = {\n version: 0,\n lastCleanEpoch: 0,\n dirty: false,\n producerNode: undefined,\n producerLastReadVersion: undefined,\n producerIndexOfThis: undefined,\n nextProducerIndex: 0,\n liveConsumerNode: undefined,\n liveConsumerIndexOfThis: undefined,\n consumerAllowSignalWrites: false,\n consumerIsAlwaysLive: false,\n producerMustRecompute: () => false,\n producerRecomputeValue: () => { },\n consumerMarkedDirty: () => { },\n consumerOnSignalRead: () => { },\n};\n/**\n * Called by implementations when a producer's signal is read.\n */\nfunction producerAccessed(node) {\n if (inNotificationPhase) {\n throw new Error(typeof ngDevMode !== 'undefined' && ngDevMode\n ? `Assertion error: signal read during notification phase`\n : '');\n }\n if (activeConsumer === null) {\n // Accessed outside of a reactive context, so nothing to record.\n return;\n }\n activeConsumer.consumerOnSignalRead(node);\n // This producer is the `idx`th dependency of `activeConsumer`.\n const idx = activeConsumer.nextProducerIndex++;\n assertConsumerNode(activeConsumer);\n if (idx < activeConsumer.producerNode.length && activeConsumer.producerNode[idx] !== node) {\n // There's been a change in producers since the last execution of `activeConsumer`.\n // `activeConsumer.producerNode[idx]` holds a stale dependency which will be be removed and\n // replaced with `this`.\n //\n // If `activeConsumer` isn't live, then this is a no-op, since we can replace the producer in\n // `activeConsumer.producerNode` directly. However, if `activeConsumer` is live, then we need\n // to remove it from the stale producer's `liveConsumer`s.\n if (consumerIsLive(activeConsumer)) {\n const staleProducer = activeConsumer.producerNode[idx];\n producerRemoveLiveConsumerAtIndex(staleProducer, activeConsumer.producerIndexOfThis[idx]);\n // At this point, the only record of `staleProducer` is the reference at\n // `activeConsumer.producerNode[idx]` which will be overwritten below.\n }\n }\n if (activeConsumer.producerNode[idx] !== node) {\n // We're a new dependency of the consumer (at `idx`).\n activeConsumer.producerNode[idx] = node;\n // If the active consumer is live, then add it as a live consumer. If not, then use 0 as a\n // placeholder value.\n activeConsumer.producerIndexOfThis[idx] = consumerIsLive(activeConsumer)\n ? producerAddLiveConsumer(node, activeConsumer, idx)\n : 0;\n }\n activeConsumer.producerLastReadVersion[idx] = node.version;\n}\n/**\n * Increment the global epoch counter.\n *\n * Called by source producers (that is, not computeds) whenever their values change.\n */\nfunction producerIncrementEpoch() {\n epoch++;\n}\n/**\n * Ensure this producer's `version` is up-to-date.\n */\nfunction producerUpdateValueVersion(node) {\n if (consumerIsLive(node) && !node.dirty) {\n // A live consumer will be marked dirty by producers, so a clean state means that its version\n // is guaranteed to be up-to-date.\n return;\n }\n if (!node.dirty && node.lastCleanEpoch === epoch) {\n // Even non-live consumers can skip polling if they previously found themselves to be clean at\n // the current epoch, since their dependencies could not possibly have changed (such a change\n // would've increased the epoch).\n return;\n }\n if (!node.producerMustRecompute(node) && !consumerPollProducersForChange(node)) {\n // None of our producers report a change since the last time they were read, so no\n // recomputation of our value is necessary, and we can consider ourselves clean.\n node.dirty = false;\n node.lastCleanEpoch = epoch;\n return;\n }\n node.producerRecomputeValue(node);\n // After recomputing the value, we're no longer dirty.\n node.dirty = false;\n node.lastCleanEpoch = epoch;\n}\n/**\n * Propagate a dirty notification to live consumers of this producer.\n */\nfunction producerNotifyConsumers(node) {\n if (node.liveConsumerNode === undefined) {\n return;\n }\n // Prevent signal reads when we're updating the graph\n const prev = inNotificationPhase;\n inNotificationPhase = true;\n try {\n for (const consumer of node.liveConsumerNode) {\n if (!consumer.dirty) {\n consumerMarkDirty(consumer);\n }\n }\n }\n finally {\n inNotificationPhase = prev;\n }\n}\n/**\n * Whether this `ReactiveNode` in its producer capacity is currently allowed to initiate updates,\n * based on the current consumer context.\n */\nfunction producerUpdatesAllowed() {\n return activeConsumer?.consumerAllowSignalWrites !== false;\n}\nfunction consumerMarkDirty(node) {\n node.dirty = true;\n producerNotifyConsumers(node);\n node.consumerMarkedDirty?.(node);\n}\n/**\n * Prepare this consumer to run a computation in its reactive context.\n *\n * Must be called by subclasses which represent reactive computations, before those computations\n * begin.\n */\nfunction consumerBeforeComputation(node) {\n node && (node.nextProducerIndex = 0);\n return setActiveConsumer(node);\n}\n/**\n * Finalize this consumer's state after a reactive computation has run.\n *\n * Must be called by subclasses which represent reactive computations, after those computations\n * have finished.\n */\nfunction consumerAfterComputation(node, prevConsumer) {\n setActiveConsumer(prevConsumer);\n if (!node ||\n node.producerNode === undefined ||\n node.producerIndexOfThis === undefined ||\n node.producerLastReadVersion === undefined) {\n return;\n }\n if (consumerIsLive(node)) {\n // For live consumers, we need to remove the producer -> consumer edge for any stale producers\n // which weren't dependencies after the recomputation.\n for (let i = node.nextProducerIndex; i < node.producerNode.length; i++) {\n producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]);\n }\n }\n // Truncate the producer tracking arrays.\n // Perf note: this is essentially truncating the length to `node.nextProducerIndex`, but\n // benchmarking has shown that individual pop operations are faster.\n while (node.producerNode.length > node.nextProducerIndex) {\n node.producerNode.pop();\n node.producerLastReadVersion.pop();\n node.producerIndexOfThis.pop();\n }\n}\n/**\n * Determine whether this consumer has any dependencies which have changed since the last time\n * they were read.\n */\nfunction consumerPollProducersForChange(node) {\n assertConsumerNode(node);\n // Poll producers for change.\n for (let i = 0; i < node.producerNode.length; i++) {\n const producer = node.producerNode[i];\n const seenVersion = node.producerLastReadVersion[i];\n // First check the versions. A mismatch means that the producer's value is known to have\n // changed since the last time we read it.\n if (seenVersion !== producer.version) {\n return true;\n }\n // The producer's version is the same as the last time we read it, but it might itself be\n // stale. Force the producer to recompute its version (calculating a new value if necessary).\n producerUpdateValueVersion(producer);\n // Now when we do this check, `producer.version` is guaranteed to be up to date, so if the\n // versions still match then it has not changed since the last time we read it.\n if (seenVersion !== producer.version) {\n return true;\n }\n }\n return false;\n}\n/**\n * Disconnect this consumer from the graph.\n */\nfunction consumerDestroy(node) {\n assertConsumerNode(node);\n if (consumerIsLive(node)) {\n // Drop all connections from the graph to this node.\n for (let i = 0; i < node.producerNode.length; i++) {\n producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]);\n }\n }\n // Truncate all the arrays to drop all connection from this node to the graph.\n node.producerNode.length =\n node.producerLastReadVersion.length =\n node.producerIndexOfThis.length =\n 0;\n if (node.liveConsumerNode) {\n node.liveConsumerNode.length = node.liveConsumerIndexOfThis.length = 0;\n }\n}\n/**\n * Add `consumer` as a live consumer of this node.\n *\n * Note that this operation is potentially transitive. If this node becomes live, then it becomes\n * a live consumer of all of its current producers.\n */\nfunction producerAddLiveConsumer(node, consumer, indexOfThis) {\n assertProducerNode(node);\n if (node.liveConsumerNode.length === 0 && isConsumerNode(node)) {\n // When going from 0 to 1 live consumers, we become a live consumer to our producers.\n for (let i = 0; i < node.producerNode.length; i++) {\n node.producerIndexOfThis[i] = producerAddLiveConsumer(node.producerNode[i], node, i);\n }\n }\n node.liveConsumerIndexOfThis.push(indexOfThis);\n return node.liveConsumerNode.push(consumer) - 1;\n}\n/**\n * Remove the live consumer at `idx`.\n */\nfunction producerRemoveLiveConsumerAtIndex(node, idx) {\n assertProducerNode(node);\n if (typeof ngDevMode !== 'undefined' && ngDevMode && idx >= node.liveConsumerNode.length) {\n throw new Error(`Assertion error: active consumer index ${idx} is out of bounds of ${node.liveConsumerNode.length} consumers)`);\n }\n if (node.liveConsumerNode.length === 1 && isConsumerNode(node)) {\n // When removing the last live consumer, we will no longer be live. We need to remove\n // ourselves from our producers' tracking (which may cause consumer-producers to lose\n // liveness as well).\n for (let i = 0; i < node.producerNode.length; i++) {\n producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]);\n }\n }\n // Move the last value of `liveConsumers` into `idx`. Note that if there's only a single\n // live consumer, this is a no-op.\n const lastIdx = node.liveConsumerNode.length - 1;\n node.liveConsumerNode[idx] = node.liveConsumerNode[lastIdx];\n node.liveConsumerIndexOfThis[idx] = node.liveConsumerIndexOfThis[lastIdx];\n // Truncate the array.\n node.liveConsumerNode.length--;\n node.liveConsumerIndexOfThis.length--;\n // If the index is still valid, then we need to fix the index pointer from the producer to this\n // consumer, and update it from `lastIdx` to `idx` (accounting for the move above).\n if (idx < node.liveConsumerNode.length) {\n const idxProducer = node.liveConsumerIndexOfThis[idx];\n const consumer = node.liveConsumerNode[idx];\n assertConsumerNode(consumer);\n consumer.producerIndexOfThis[idxProducer] = idx;\n }\n}\nfunction consumerIsLive(node) {\n return node.consumerIsAlwaysLive || (node?.liveConsumerNode?.length ?? 0) > 0;\n}\nfunction assertConsumerNode(node) {\n node.producerNode ??= [];\n node.producerIndexOfThis ??= [];\n node.producerLastReadVersion ??= [];\n}\nfunction assertProducerNode(node) {\n node.liveConsumerNode ??= [];\n node.liveConsumerIndexOfThis ??= [];\n}\nfunction isConsumerNode(node) {\n return node.producerNode !== undefined;\n}\n\n/**\n * Create a computed signal which derives a reactive value from an expression.\n */\nfunction createComputed(computation) {\n const node = Object.create(COMPUTED_NODE);\n node.computation = computation;\n const computed = () => {\n // Check if the value needs updating before returning it.\n producerUpdateValueVersion(node);\n // Record that someone looked at this signal.\n producerAccessed(node);\n if (node.value === ERRORED) {\n throw node.error;\n }\n return node.value;\n };\n computed[SIGNAL] = node;\n return computed;\n}\n/**\n * A dedicated symbol used before a computed value has been calculated for the first time.\n * Explicitly typed as `any` so we can use it as signal's value.\n */\nconst UNSET = /* @__PURE__ */ Symbol('UNSET');\n/**\n * A dedicated symbol used in place of a computed signal value to indicate that a given computation\n * is in progress. Used to detect cycles in computation chains.\n * Explicitly typed as `any` so we can use it as signal's value.\n */\nconst COMPUTING = /* @__PURE__ */ Symbol('COMPUTING');\n/**\n * A dedicated symbol used in place of a computed signal value to indicate that a given computation\n * failed. The thrown error is cached until the computation gets dirty again.\n * Explicitly typed as `any` so we can use it as signal's value.\n */\nconst ERRORED = /* @__PURE__ */ Symbol('ERRORED');\n// Note: Using an IIFE here to ensure that the spread assignment is not considered\n// a side-effect, ending up preserving `COMPUTED_NODE` and `REACTIVE_NODE`.\n// TODO: remove when https://github.com/evanw/esbuild/issues/3392 is resolved.\nconst COMPUTED_NODE = /* @__PURE__ */ (() => {\n return {\n ...REACTIVE_NODE,\n value: UNSET,\n dirty: true,\n error: null,\n equal: defaultEquals,\n producerMustRecompute(node) {\n // Force a recomputation if there's no current value, or if the current value is in the\n // process of being calculated (which should throw an error).\n return node.value === UNSET || node.value === COMPUTING;\n },\n producerRecomputeValue(node) {\n if (node.value === COMPUTING) {\n // Our computation somehow led to a cyclic read of itself.\n throw new Error('Detected cycle in computations.');\n }\n const oldValue = node.value;\n node.value = COMPUTING;\n const prevConsumer = consumerBeforeComputation(node);\n let newValue;\n try {\n newValue = node.computation();\n }\n catch (err) {\n newValue = ERRORED;\n node.error = err;\n }\n finally {\n consumerAfterComputation(node, prevConsumer);\n }\n if (oldValue !== UNSET &&\n oldValue !== ERRORED &&\n newValue !== ERRORED &&\n node.equal(oldValue, newValue)) {\n // No change to `valueVersion` - old and new values are\n // semantically equivalent.\n node.value = oldValue;\n return;\n }\n node.value = newValue;\n node.version++;\n },\n };\n})();\n\nfunction defaultThrowError() {\n throw new Error();\n}\nlet throwInvalidWriteToSignalErrorFn = defaultThrowError;\nfunction throwInvalidWriteToSignalError() {\n throwInvalidWriteToSignalErrorFn();\n}\nfunction setThrowInvalidWriteToSignalError(fn) {\n throwInvalidWriteToSignalErrorFn = fn;\n}\n\n/**\n * If set, called after `WritableSignal`s are updated.\n *\n * This hook can be used to achieve various effects, such as running effects synchronously as part\n * of setting a signal.\n */\nlet postSignalSetFn = null;\n/**\n * Create a `Signal` that can be set or updated directly.\n */\nfunction createSignal(initialValue) {\n const node = Object.create(SIGNAL_NODE);\n node.value = initialValue;\n const getter = (() => {\n producerAccessed(node);\n return node.value;\n });\n getter[SIGNAL] = node;\n return getter;\n}\nfunction setPostSignalSetFn(fn) {\n const prev = postSignalSetFn;\n postSignalSetFn = fn;\n return prev;\n}\nfunction signalGetFn() {\n producerAccessed(this);\n return this.value;\n}\nfunction signalSetFn(node, newValue) {\n if (!producerUpdatesAllowed()) {\n throwInvalidWriteToSignalError();\n }\n if (!node.equal(node.value, newValue)) {\n node.value = newValue;\n signalValueChanged(node);\n }\n}\nfunction signalUpdateFn(node, updater) {\n if (!producerUpdatesAllowed()) {\n throwInvalidWriteToSignalError();\n }\n signalSetFn(node, updater(node.value));\n}\nfunction runPostSignalSetFn() {\n postSignalSetFn?.();\n}\n// Note: Using an IIFE here to ensure that the spread assignment is not considered\n// a side-effect, ending up preserving `COMPUTED_NODE` and `REACTIVE_NODE`.\n// TODO: remove when https://github.com/evanw/esbuild/issues/3392 is resolved.\nconst SIGNAL_NODE = /* @__PURE__ */ (() => {\n return {\n ...REACTIVE_NODE,\n equal: defaultEquals,\n value: undefined,\n };\n})();\nfunction signalValueChanged(node) {\n node.version++;\n producerIncrementEpoch();\n producerNotifyConsumers(node);\n postSignalSetFn?.();\n}\n\nfunction createWatch(fn, schedule, allowSignalWrites) {\n const node = Object.create(WATCH_NODE);\n if (allowSignalWrites) {\n node.consumerAllowSignalWrites = true;\n }\n node.fn = fn;\n node.schedule = schedule;\n const registerOnCleanup = (cleanupFn) => {\n node.cleanupFn = cleanupFn;\n };\n function isWatchNodeDestroyed(node) {\n return node.fn === null && node.schedule === null;\n }\n function destroyWatchNode(node) {\n if (!isWatchNodeDestroyed(node)) {\n consumerDestroy(node); // disconnect watcher from the reactive graph\n node.cleanupFn();\n // nullify references to the integration functions to mark node as destroyed\n node.fn = null;\n node.schedule = null;\n node.cleanupFn = NOOP_CLEANUP_FN;\n }\n }\n const run = () => {\n if (node.fn === null) {\n // trying to run a destroyed watch is noop\n return;\n }\n if (isInNotificationPhase()) {\n throw new Error(`Schedulers cannot synchronously execute watches while scheduling.`);\n }\n node.dirty = false;\n if (node.hasRun && !consumerPollProducersForChange(node)) {\n return;\n }\n node.hasRun = true;\n const prevConsumer = consumerBeforeComputation(node);\n try {\n node.cleanupFn();\n node.cleanupFn = NOOP_CLEANUP_FN;\n node.fn(registerOnCleanup);\n }\n finally {\n consumerAfterComputation(node, prevConsumer);\n }\n };\n node.ref = {\n notify: () => consumerMarkDirty(node),\n run,\n cleanup: () => node.cleanupFn(),\n destroy: () => destroyWatchNode(node),\n [SIGNAL]: node,\n };\n return node.ref;\n}\nconst NOOP_CLEANUP_FN = () => { };\n// Note: Using an IIFE here to ensure that the spread assignment is not considered\n// a side-effect, ending up preserving `COMPUTED_NODE` and `REACTIVE_NODE`.\n// TODO: remove when https://github.com/evanw/esbuild/issues/3392 is resolved.\nconst WATCH_NODE = /* @__PURE__ */ (() => {\n return {\n ...REACTIVE_NODE,\n consumerIsAlwaysLive: true,\n consumerAllowSignalWrites: false,\n consumerMarkedDirty: (node) => {\n if (node.schedule !== null) {\n node.schedule(node.ref);\n }\n },\n hasRun: false,\n cleanupFn: NOOP_CLEANUP_FN,\n };\n})();\n\nfunction setAlternateWeakRefImpl(impl) {\n // TODO: remove this function\n}\n\nexport { REACTIVE_NODE, SIGNAL, SIGNAL_NODE, consumerAfterComputation, consumerBeforeComputation, consumerDestroy, consumerMarkDirty, consumerPollProducersForChange, createComputed, createSignal, createWatch, defaultEquals, getActiveConsumer, isInNotificationPhase, isReactive, producerAccessed, producerIncrementEpoch, producerNotifyConsumers, producerUpdateValueVersion, producerUpdatesAllowed, runPostSignalSetFn, setActiveConsumer, setAlternateWeakRefImpl, setPostSignalSetFn, setThrowInvalidWriteToSignalError, signalSetFn, signalUpdateFn };\n//# sourceMappingURL=signals.mjs.map\n","const __WEBPACK_NAMESPACE_OBJECT__ = rxjs;","const __WEBPACK_NAMESPACE_OBJECT__ = rxjs.operators;","/**\n * @license Angular v18.2.13\n * (c) 2010-2024 Google LLC. https://angular.io/\n * License: MIT\n */\n\nconst Attribute = {\n /**\n * The jsaction attribute defines a mapping of a DOM event to a\n * generic event (aka jsaction), to which the actual event handlers\n * that implement the behavior of the application are bound. The\n * value is a semicolon separated list of colon separated pairs of\n * an optional DOM event name and a jsaction name. If the optional\n * DOM event name is omitted, 'click' is assumed. The jsaction names\n * are dot separated pairs of a namespace and a simple jsaction\n * name.\n *\n * See grammar in README.md for expected syntax in the attribute value.\n */\n JSACTION: 'jsaction',\n};\n\n/** All properties that are used by jsaction. */\nconst Property = {\n /**\n * The parsed value of the jsaction attribute is stored in this\n * property on the DOM node. The parsed value is an Object. The\n * property names of the object are the events; the values are the\n * names of the actions. This property is attached even on nodes\n * that don't have a jsaction attribute as an optimization, because\n * property lookup is faster than attribute access.\n */\n JSACTION: '__jsaction',\n /**\n * The owner property references an a logical owner for a DOM node. JSAction\n * will follow this reference instead of parentNode when traversing the DOM\n * to find jsaction attributes. This allows overlaying a logical structure\n * over a document where the DOM structure can't reflect that structure.\n */\n OWNER: '__owner',\n};\n\n/**\n * Map from jsaction annotation to a parsed map from event name to action name.\n */\nconst parseCache = {};\n/**\n * Reads the jsaction parser cache from the given DOM Element.\n */\nfunction get(element) {\n return element[Property.JSACTION];\n}\n/**\n * Reads the jsaction parser cache for the given DOM element. If no cache is yet present,\n * creates an empty one.\n */\nfunction getDefaulted(element) {\n const cache = get(element) ?? {};\n set(element, cache);\n return cache;\n}\n/**\n * Writes the jsaction parser cache to the given DOM Element.\n */\nfunction set(element, actionMap) {\n element[Property.JSACTION] = actionMap;\n}\n/**\n * Looks up the parsed action map from the source jsaction attribute value.\n *\n * @param text Unparsed jsaction attribute value.\n * @return Parsed jsaction attribute value, if already present in the cache.\n */\nfunction getParsed(text) {\n return parseCache[text];\n}\n/**\n * Inserts the parse result for the given source jsaction value into the cache.\n *\n * @param text Unparsed jsaction attribute value.\n * @param parsed Attribute value parsed into the action map.\n */\nfunction setParsed(text, parsed) {\n parseCache[text] = parsed;\n}\n/**\n * Clears the jsaction parser cache from the given DOM Element.\n *\n * @param element .\n */\nfunction clear(element) {\n if (Property.JSACTION in element) {\n delete element[Property.JSACTION];\n }\n}\n\n/*\n * Names of events that are special to jsaction. These are not all\n * event types that are legal to use in either HTML or the addEvent()\n * API, but these are the ones that are treated specially. All other\n * DOM events can be used in either addEvent() or in the value of the\n * jsaction attribute. Beware of browser specific events or events\n * that don't bubble though: If they are not mentioned here, then\n * event contract doesn't work around their peculiarities.\n */\nconst EventType = {\n /**\n * Mouse middle click, introduced in Chrome 55 and not yet supported on\n * other browsers.\n */\n AUXCLICK: 'auxclick',\n /**\n * The change event fired by browsers when the `value` attribute of input,\n * select, and textarea elements are changed.\n */\n CHANGE: 'change',\n /**\n * The click event. In addEvent() refers to all click events, in the\n * jsaction attribute it refers to the unmodified click and Enter/Space\n * keypress events. In the latter case, a jsaction click will be triggered,\n * for accessibility reasons. See clickmod and clickonly, below.\n */\n CLICK: 'click',\n /**\n * Specifies the jsaction for a modified click event (i.e. a mouse\n * click with the modifier key Cmd/Ctrl pressed). This event isn't\n * separately enabled in addEvent(), because in the DOM, it's just a\n * click event.\n */\n CLICKMOD: 'clickmod',\n /**\n * Specifies the jsaction for a click-only event. Click-only doesn't take\n * into account the case where an element with focus receives an Enter/Space\n * keypress. This event isn't separately enabled in addEvent().\n */\n CLICKONLY: 'clickonly',\n /**\n * The dblclick event.\n */\n DBLCLICK: 'dblclick',\n /**\n * Focus doesn't bubble, but you can use it in addEvent() and\n * jsaction anyway. EventContract does the right thing under the\n * hood.\n */\n FOCUS: 'focus',\n /**\n * This event only exists in IE. For addEvent() and jsaction, use\n * focus instead; EventContract does the right thing even though\n * focus doesn't bubble.\n */\n FOCUSIN: 'focusin',\n /**\n * Analog to focus.\n */\n BLUR: 'blur',\n /**\n * Analog to focusin.\n */\n FOCUSOUT: 'focusout',\n /**\n * Submit doesn't bubble, so it cannot be used with event\n * contract. However, the browser helpfully fires a click event on\n * the submit button of a form (even if the form is not submitted by\n * a click on the submit button). So you should handle click on the\n * submit button instead.\n */\n SUBMIT: 'submit',\n /**\n * The keydown event. In addEvent() and non-click jsaction it represents the\n * regular DOM keydown event. It represents click actions in non-Gecko\n * browsers.\n */\n KEYDOWN: 'keydown',\n /**\n * The keypress event. In addEvent() and non-click jsaction it represents the\n * regular DOM keypress event. It represents click actions in Gecko browsers.\n */\n KEYPRESS: 'keypress',\n /**\n * The keyup event. In addEvent() and non-click jsaction it represents the\n * regular DOM keyup event. It represents click actions in non-Gecko\n * browsers.\n */\n KEYUP: 'keyup',\n /**\n * The mouseup event. Can either be used directly or used implicitly to\n * capture mouseup events. In addEvent(), it represents a regular DOM\n * mouseup event.\n */\n MOUSEUP: 'mouseup',\n /**\n * The mousedown event. Can either be used directly or used implicitly to\n * capture mouseenter events. In addEvent(), it represents a regular DOM\n * mouseover event.\n */\n MOUSEDOWN: 'mousedown',\n /**\n * The mouseover event. Can either be used directly or used implicitly to\n * capture mouseenter events. In addEvent(), it represents a regular DOM\n * mouseover event.\n */\n MOUSEOVER: 'mouseover',\n /**\n * The mouseout event. Can either be used directly or used implicitly to\n * capture mouseover events. In addEvent(), it represents a regular DOM\n * mouseout event.\n */\n MOUSEOUT: 'mouseout',\n /**\n * The mouseenter event. Does not bubble and fires individually on each\n * element being entered within a DOM tree.\n */\n MOUSEENTER: 'mouseenter',\n /**\n * The mouseleave event. Does not bubble and fires individually on each\n * element being entered within a DOM tree.\n */\n MOUSELEAVE: 'mouseleave',\n /**\n * The mousemove event.\n */\n MOUSEMOVE: 'mousemove',\n /**\n * The pointerup event. Can either be used directly or used implicitly to\n * capture pointerup events. In addEvent(), it represents a regular DOM\n * pointerup event.\n */\n POINTERUP: 'pointerup',\n /**\n * The pointerdown event. Can either be used directly or used implicitly to\n * capture pointerenter events. In addEvent(), it represents a regular DOM\n * mouseover event.\n */\n POINTERDOWN: 'pointerdown',\n /**\n * The pointerover event. Can either be used directly or used implicitly to\n * capture pointerenter events. In addEvent(), it represents a regular DOM\n * pointerover event.\n */\n POINTEROVER: 'pointerover',\n /**\n * The pointerout event. Can either be used directly or used implicitly to\n * capture pointerover events. In addEvent(), it represents a regular DOM\n * pointerout event.\n */\n POINTEROUT: 'pointerout',\n /**\n * The pointerenter event. Does not bubble and fires individually on each\n * element being entered within a DOM tree.\n */\n POINTERENTER: 'pointerenter',\n /**\n * The pointerleave event. Does not bubble and fires individually on each\n * element being entered within a DOM tree.\n */\n POINTERLEAVE: 'pointerleave',\n /**\n * The pointermove event.\n */\n POINTERMOVE: 'pointermove',\n /**\n * The pointercancel event.\n */\n POINTERCANCEL: 'pointercancel',\n /**\n * The gotpointercapture event is fired when\n * Element.setPointerCapture(pointerId) is called on a mouse input, or\n * implicitly when a touch input begins.\n */\n GOTPOINTERCAPTURE: 'gotpointercapture',\n /**\n * The lostpointercapture event is fired when\n * Element.releasePointerCapture(pointerId) is called, or implicitly after a\n * touch input ends.\n */\n LOSTPOINTERCAPTURE: 'lostpointercapture',\n /**\n * The error event. The error event doesn't bubble, but you can use it in\n * addEvent() and jsaction anyway. EventContract does the right thing under\n * the hood (except in IE8 which does not use error events).\n */\n ERROR: 'error',\n /**\n * The load event. The load event doesn't bubble, but you can use it in\n * addEvent() and jsaction anyway. EventContract does the right thing\n * under the hood.\n */\n LOAD: 'load',\n /**\n * The unload event.\n */\n UNLOAD: 'unload',\n /**\n * The touchstart event. Bubbles, will only ever fire in browsers with\n * touch support.\n */\n TOUCHSTART: 'touchstart',\n /**\n * The touchend event. Bubbles, will only ever fire in browsers with\n * touch support.\n */\n TOUCHEND: 'touchend',\n /**\n * The touchmove event. Bubbles, will only ever fire in browsers with\n * touch support.\n */\n TOUCHMOVE: 'touchmove',\n /**\n * The input event.\n */\n INPUT: 'input',\n /**\n * The scroll event.\n */\n SCROLL: 'scroll',\n /**\n * The toggle event. The toggle event doesn't bubble, but you can use it in\n * addEvent() and jsaction anyway. EventContract does the right thing\n * under the hood.\n */\n TOGGLE: 'toggle',\n /**\n * A custom event. The actual custom event type is declared as the 'type'\n * field in the event details. Supported in Firefox 6+, IE 9+, and all Chrome\n * versions.\n *\n * This is an internal name. Users should use jsaction's fireCustomEvent to\n * fire custom events instead of relying on this type to create them.\n */\n CUSTOM: '_custom',\n};\n/** All event types that do not bubble or capture and need a polyfill. */\nconst MOUSE_SPECIAL_EVENT_TYPES = [\n EventType.MOUSEENTER,\n EventType.MOUSELEAVE,\n 'pointerenter',\n 'pointerleave',\n];\n/** All event types that are registered in the bubble phase. */\nconst BUBBLE_EVENT_TYPES = [\n EventType.CLICK,\n EventType.DBLCLICK,\n EventType.FOCUSIN,\n EventType.FOCUSOUT,\n EventType.KEYDOWN,\n EventType.KEYUP,\n EventType.KEYPRESS,\n EventType.MOUSEOVER,\n EventType.MOUSEOUT,\n EventType.SUBMIT,\n EventType.TOUCHSTART,\n EventType.TOUCHEND,\n EventType.TOUCHMOVE,\n 'touchcancel',\n 'auxclick',\n 'change',\n 'compositionstart',\n 'compositionupdate',\n 'compositionend',\n 'beforeinput',\n 'input',\n 'select',\n 'copy',\n 'cut',\n 'paste',\n 'mousedown',\n 'mouseup',\n 'wheel',\n 'contextmenu',\n 'dragover',\n 'dragenter',\n 'dragleave',\n 'drop',\n 'dragstart',\n 'dragend',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointercancel',\n 'pointerover',\n 'pointerout',\n 'gotpointercapture',\n 'lostpointercapture',\n // Video events.\n 'ended',\n 'loadedmetadata',\n // Page visibility events.\n 'pagehide',\n 'pageshow',\n 'visibilitychange',\n // Content visibility events.\n 'beforematch',\n];\n/** All event types that are registered in the capture phase. */\nconst CAPTURE_EVENT_TYPES = [\n EventType.FOCUS,\n EventType.BLUR,\n EventType.ERROR,\n EventType.LOAD,\n EventType.TOGGLE,\n];\n/**\n * Whether or not an event type should be registered in the capture phase.\n * @param eventType\n * @returns bool\n */\nconst isCaptureEventType = (eventType) => CAPTURE_EVENT_TYPES.indexOf(eventType) >= 0;\n/** All event types that are registered early. */\nconst EARLY_EVENT_TYPES = BUBBLE_EVENT_TYPES.concat(CAPTURE_EVENT_TYPES);\n/**\n * Whether or not an event type is registered in the early contract.\n */\nconst isEarlyEventType = (eventType) => EARLY_EVENT_TYPES.indexOf(eventType) >= 0;\n\n/**\n * If on a Macintosh with an extended keyboard, the Enter key located in the\n * numeric pad has a different ASCII code.\n */\nconst MAC_ENTER = 3;\n/** The Enter key. */\nconst ENTER = 13;\n/** The Space key. */\nconst SPACE = 32;\n/** Special keycodes used by jsaction for the generic click action. */\nconst KeyCode = { MAC_ENTER, ENTER, SPACE };\n\n/**\n * Gets a browser event type, if it would differ from the JSAction event type.\n */\nfunction getBrowserEventType(eventType) {\n // Mouseenter and mouseleave events are not handled directly because they\n // are not available everywhere. In browsers where they are available, they\n // don't bubble and aren't visible at the container boundary. Instead, we\n // synthesize the mouseenter and mouseleave events from mouseover and\n // mouseout events, respectively. Cf. eventcontract.js.\n if (eventType === EventType.MOUSEENTER) {\n return EventType.MOUSEOVER;\n }\n else if (eventType === EventType.MOUSELEAVE) {\n return EventType.MOUSEOUT;\n }\n else if (eventType === EventType.POINTERENTER) {\n return EventType.POINTEROVER;\n }\n else if (eventType === EventType.POINTERLEAVE) {\n return EventType.POINTEROUT;\n }\n return eventType;\n}\n/**\n * Registers the event handler function with the given DOM element for\n * the given event type.\n *\n * @param element The element.\n * @param eventType The event type.\n * @param handler The handler function to install.\n * @return Information needed to uninstall the event handler eventually.\n */\nfunction addEventListener(element, eventType, handler) {\n // All event handlers are registered in the bubbling\n // phase.\n //\n // All browsers support focus and blur, but these events only are propagated\n // in the capture phase. Very legacy browsers do not support focusin or\n // focusout.\n //\n // It would be a bad idea to register all event handlers in the\n // capture phase because then regular onclick handlers would not be\n // executed at all on events that trigger a jsaction. That's not\n // entirely what we want, at least for now.\n //\n // Error and load events (i.e. on images) do not bubble so they are also\n // handled in the capture phase.\n let capture = false;\n if (isCaptureEventType(eventType)) {\n capture = true;\n }\n element.addEventListener(eventType, handler, capture);\n return { eventType, handler, capture };\n}\n/**\n * Removes the event handler for the given event from the element.\n * the given event type.\n *\n * @param element The element.\n * @param info The information needed to deregister the handler, as returned by\n * addEventListener(), above.\n */\nfunction removeEventListener(element, info) {\n if (element.removeEventListener) {\n element.removeEventListener(info.eventType, info.handler, info.capture);\n // `detachEvent` is an old DOM API.\n // tslint:disable-next-line:no-any\n }\n else if (element.detachEvent) {\n // `detachEvent` is an old DOM API.\n // tslint:disable-next-line:no-any\n element.detachEvent(`on${info.eventType}`, info.handler);\n }\n}\n/**\n * Cancels propagation of an event.\n * @param e The event to cancel propagation for.\n */\nfunction stopPropagation(e) {\n e.stopPropagation ? e.stopPropagation() : (e.cancelBubble = true);\n}\n/**\n * Prevents the default action of an event.\n * @param e The event to prevent the default action for.\n */\nfunction preventDefault(e) {\n e.preventDefault ? e.preventDefault() : (e.returnValue = false);\n}\n/**\n * Gets the target Element of the event. In Firefox, a text node may appear as\n * the target of the event, in which case we return the parent element of the\n * text node.\n * @param e The event to get the target of.\n * @return The target element.\n */\nfunction getTarget(e) {\n let el = e.target;\n // In Firefox, the event may have a text node as its target. We always\n // want the parent Element the text node belongs to, however.\n if (!el.getAttribute && el.parentNode) {\n el = el.parentNode;\n }\n return el;\n}\n/**\n * Whether we are on a Mac. Not pulling in useragent just for this.\n */\nlet isMac = typeof navigator !== 'undefined' && /Macintosh/.test(navigator.userAgent);\n/**\n * Determines and returns whether the given event (which is assumed to be a\n * click event) is a middle click.\n * NOTE: There is not a consistent way to identify middle click\n * http://www.unixpapa.com/js/mouse.html\n */\nfunction isMiddleClick(e) {\n return (\n // `which` is an old DOM API.\n // tslint:disable-next-line:no-any\n e.which === 2 ||\n // `which` is an old DOM API.\n // tslint:disable-next-line:no-any\n (e.which == null &&\n // `button` is an old DOM API.\n // tslint:disable-next-line:no-any\n e.button === 4) // middle click for IE\n );\n}\n/**\n * Determines and returns whether the given event (which is assumed\n * to be a click event) is modified. A middle click is considered a modified\n * click to retain the default browser action, which opens a link in a new tab.\n * @param e The event.\n * @return Whether the given event is modified.\n */\nfunction isModifiedClickEvent(e) {\n return (\n // `metaKey` is an old DOM API.\n // tslint:disable-next-line:no-any\n (isMac && e.metaKey) ||\n // `ctrlKey` is an old DOM API.\n // tslint:disable-next-line:no-any\n (!isMac && e.ctrlKey) ||\n isMiddleClick(e) ||\n // `shiftKey` is an old DOM API.\n // tslint:disable-next-line:no-any\n e.shiftKey);\n}\n/** Whether we are on WebKit (e.g., Chrome). */\nconst isWebKit = typeof navigator !== 'undefined' &&\n !/Opera/.test(navigator.userAgent) &&\n /WebKit/.test(navigator.userAgent);\n/** Whether we are on IE. */\nconst isIe = typeof navigator !== 'undefined' &&\n (/MSIE/.test(navigator.userAgent) || /Trident/.test(navigator.userAgent));\n/** Whether we are on Gecko (e.g., Firefox). */\nconst isGecko = typeof navigator !== 'undefined' &&\n !/Opera|WebKit/.test(navigator.userAgent) &&\n /Gecko/.test(navigator.product);\n/**\n * Determines and returns whether the given element is a valid target for\n * keypress/keydown DOM events that act like regular DOM clicks.\n * @param el The element.\n * @return Whether the given element is a valid action key target.\n */\nfunction isValidActionKeyTarget(el) {\n if (!('getAttribute' in el)) {\n return false;\n }\n if (isTextControl(el)) {\n return false;\n }\n if (isNativelyActivatable(el)) {\n return false;\n }\n // `isContentEditable` is an old DOM API.\n // tslint:disable-next-line:no-any\n if (el.isContentEditable) {\n return false;\n }\n return true;\n}\n/**\n * Whether an event has a modifier key activated.\n * @param e The event.\n * @return True, if a modifier key is activated.\n */\nfunction hasModifierKey(e) {\n return (\n // `ctrlKey` is an old DOM API.\n // tslint:disable-next-line:no-any\n e.ctrlKey ||\n // `shiftKey` is an old DOM API.\n // tslint:disable-next-line:no-any\n e.shiftKey ||\n // `altKey` is an old DOM API.\n // tslint:disable-next-line:no-any\n e.altKey ||\n // `metaKey` is an old DOM API.\n // tslint:disable-next-line:no-any\n e.metaKey);\n}\n/**\n * Determines and returns whether the given event has a target that already\n * has event handlers attached because it is a native HTML control. Used to\n * determine if preventDefault should be called when isActionKeyEvent is true.\n * @param e The event.\n * @return If preventDefault should be called.\n */\nfunction shouldCallPreventDefaultOnNativeHtmlControl(e) {\n const el = getTarget(e);\n const tagName = el.tagName.toUpperCase();\n const role = (el.getAttribute('role') || '').toUpperCase();\n if (tagName === 'BUTTON' || role === 'BUTTON') {\n return true;\n }\n if (!isNativeHTMLControl(el)) {\n return false;\n }\n if (tagName === 'A') {\n return false;\n }\n /**\n * Fix for physical d-pads on feature phone platforms; the native event\n * (ie. isTrusted: true) needs to fire to show the OPTION list. See\n * b/135288469 for more info.\n */\n if (tagName === 'SELECT') {\n return false;\n }\n if (processSpace(el)) {\n return false;\n }\n if (isTextControl(el)) {\n return false;\n }\n return true;\n}\n/**\n * Determines and returns whether the given event acts like a regular DOM click,\n * and should be handled instead of the click. If this returns true, the caller\n * will call preventDefault() to prevent a possible duplicate event.\n * This is represented by a keypress (keydown on Gecko browsers) on Enter or\n * Space key.\n * @param e The event.\n * @return True, if the event emulates a DOM click.\n */\nfunction isActionKeyEvent(e) {\n let key = \n // `which` is an old DOM API.\n // tslint:disable-next-line:no-any\n e.which ||\n // `keyCode` is an old DOM API.\n // tslint:disable-next-line:no-any\n e.keyCode;\n if (!key && e.key) {\n key = ACTION_KEY_TO_KEYCODE[e.key];\n }\n if (isWebKit && key === KeyCode.MAC_ENTER) {\n key = KeyCode.ENTER;\n }\n if (key !== KeyCode.ENTER && key !== KeyCode.SPACE) {\n return false;\n }\n const el = getTarget(e);\n if (e.type !== EventType.KEYDOWN || !isValidActionKeyTarget(el) || hasModifierKey(e)) {\n return false;\n }\n // For , we must only handle the browser's native click\n // event, so that the browser can toggle the checkbox.\n if (processSpace(el) && key === KeyCode.SPACE) {\n return false;\n }\n // If this element is non-focusable, ignore stray keystrokes (b/18337209)\n // Sscreen readers can move without tab focus, so any tabIndex is focusable.\n // See B/21809604\n if (!isFocusable(el)) {\n return false;\n }\n const type = (el.getAttribute('role') ||\n el.type ||\n el.tagName).toUpperCase();\n const isSpecificTriggerKey = IDENTIFIER_TO_KEY_TRIGGER_MAPPING[type] % key === 0;\n const isDefaultTriggerKey = !(type in IDENTIFIER_TO_KEY_TRIGGER_MAPPING) && key === KeyCode.ENTER;\n const hasType = el.tagName.toUpperCase() !== 'INPUT' || !!el.type;\n return (isSpecificTriggerKey || isDefaultTriggerKey) && hasType;\n}\n/**\n * Checks whether a DOM element can receive keyboard focus.\n * This code is based on goog.dom.isFocusable, but simplified since we shouldn't\n * care about visibility if we're already handling a keyboard event.\n */\nfunction isFocusable(el) {\n return ((el.tagName in NATIVELY_FOCUSABLE_ELEMENTS || hasSpecifiedTabIndex(el)) &&\n !el.disabled);\n}\n/**\n * @param element Element to check.\n * @return Whether the element has a specified tab index.\n */\nfunction hasSpecifiedTabIndex(element) {\n // IE returns 0 for an unset tabIndex, so we must use getAttributeNode(),\n // which returns an object with a 'specified' property if tabIndex is\n // specified. This works on other browsers, too.\n const attrNode = element.getAttributeNode('tabindex'); // Must be lowercase!\n return attrNode != null && attrNode.specified;\n}\n/** Element tagnames that are focusable by default. */\nconst NATIVELY_FOCUSABLE_ELEMENTS = {\n 'A': 1,\n 'INPUT': 1,\n 'TEXTAREA': 1,\n 'SELECT': 1,\n 'BUTTON': 1,\n};\n/** @return True, if the Space key was pressed. */\nfunction isSpaceKeyEvent(e) {\n const key = \n // `which` is an old DOM API.\n // tslint:disable-next-line:no-any\n e.which ||\n // `keyCode` is an old DOM API.\n // tslint:disable-next-line:no-any\n e.keyCode;\n const el = getTarget(e);\n const elementName = (el.type || el.tagName).toUpperCase();\n return key === KeyCode.SPACE && elementName !== 'CHECKBOX';\n}\n/**\n * Determines whether the event corresponds to a non-bubbling mouse\n * event type (mouseenter, mouseleave, pointerenter, and pointerleave).\n *\n * During mouseover (mouseenter) and pointerover (pointerenter), the\n * relatedTarget is the element being entered from. During mouseout (mouseleave)\n * and pointerout (pointerleave), the relatedTarget is the element being exited\n * to.\n *\n * In both cases, if relatedTarget is outside target, then the corresponding\n * special event has occurred, otherwise it hasn't.\n *\n * @param e The mouseover/mouseout event.\n * @param type The type of the mouse special event.\n * @param element The element on which the jsaction for the\n * mouseenter/mouseleave event is defined.\n * @return True if the event is a mouseenter/mouseleave event.\n */\nfunction isMouseSpecialEvent(e, type, element) {\n // `relatedTarget` is an old DOM API.\n // tslint:disable-next-line:no-any\n const related = e.relatedTarget;\n return (((e.type === EventType.MOUSEOVER && type === EventType.MOUSEENTER) ||\n (e.type === EventType.MOUSEOUT && type === EventType.MOUSELEAVE) ||\n (e.type === EventType.POINTEROVER && type === EventType.POINTERENTER) ||\n (e.type === EventType.POINTEROUT && type === EventType.POINTERLEAVE)) &&\n (!related || (related !== element && !element.contains(related))));\n}\n/**\n * Creates a new EventLike object for a mouseenter/mouseleave event that's\n * derived from the original corresponding mouseover/mouseout event.\n * @param e The event.\n * @param target The element on which the jsaction for the mouseenter/mouseleave\n * event is defined.\n * @return A modified event-like object copied from the event object passed into\n * this function.\n */\nfunction createMouseSpecialEvent(e, target) {\n // We have to create a copy of the event object because we need to mutate\n // its fields. We do this for the special mouse events because the event\n // target needs to be retargeted to the action element rather than the real\n // element (since we are simulating the special mouse events with mouseover/\n // mouseout).\n //\n // Since we're making a copy anyways, we might as well attempt to convert\n // this event into a pseudo-real mouseenter/mouseleave event by adjusting\n // its type.\n //\n // tslint:disable-next-line:no-any\n const copy = {};\n for (const property in e) {\n if (property === 'srcElement' || property === 'target') {\n continue;\n }\n const key = property;\n // Making a copy requires iterating through all properties of `Event`.\n // tslint:disable-next-line:no-dict-access-on-struct-type\n const value = e[key];\n if (typeof value === 'function') {\n continue;\n }\n // Value should be the expected type, but the value of `key` is not known\n // statically.\n // tslint:disable-next-line:no-any\n copy[key] = value;\n }\n if (e.type === EventType.MOUSEOVER) {\n copy['type'] = EventType.MOUSEENTER;\n }\n else if (e.type === EventType.MOUSEOUT) {\n copy['type'] = EventType.MOUSELEAVE;\n }\n else if (e.type === EventType.POINTEROVER) {\n copy['type'] = EventType.POINTERENTER;\n }\n else {\n copy['type'] = EventType.POINTERLEAVE;\n }\n copy['target'] = copy['srcElement'] = target;\n copy['bubbles'] = false;\n return copy;\n}\n/**\n * Returns touch data extracted from the touch event: clientX, clientY, screenX\n * and screenY. If the event has no touch information at all, the returned\n * value is null.\n *\n * The fields of this Object are unquoted.\n *\n * @param event A touch event.\n */\nfunction getTouchData(event) {\n const touch = (event.changedTouches && event.changedTouches[0]) || (event.touches && event.touches[0]);\n if (!touch) {\n return null;\n }\n return {\n clientX: touch.clientX,\n clientY: touch.clientY,\n screenX: touch.screenX,\n screenY: touch.screenY,\n };\n}\n/**\n * Creates a new EventLike object for a \"click\" event that's derived from the\n * original corresponding \"touchend\" event for a fast-click implementation.\n *\n * It takes a touch event, adds common fields found in a click event and\n * changes the type to 'click', so that the resulting event looks more like\n * a real click event.\n *\n * @param event A touch event.\n * @return A modified event-like object copied from the event object passed into\n * this function.\n */\nfunction recreateTouchEventAsClick(event) {\n const click = {};\n click['originalEventType'] = event.type;\n click['type'] = EventType.CLICK;\n for (const property in event) {\n if (property === 'type' || property === 'srcElement') {\n continue;\n }\n const key = property;\n // Making a copy requires iterating through all properties of `TouchEvent`.\n // tslint:disable-next-line:no-dict-access-on-struct-type\n const value = event[key];\n if (typeof value === 'function') {\n continue;\n }\n // Value should be the expected type, but the value of `key` is not known\n // statically.\n // tslint:disable-next-line:no-any\n click[key] = value;\n }\n // Ensure that the event has the most recent timestamp. This timestamp\n // may be used in the future to validate or cancel subsequent click events.\n click['timeStamp'] = Date.now();\n // Emulate preventDefault and stopPropagation behavior\n click['defaultPrevented'] = false;\n click['preventDefault'] = syntheticPreventDefault;\n click['_propagationStopped'] = false;\n click['stopPropagation'] = syntheticStopPropagation;\n // Emulate click coordinates using touch info\n const touch = getTouchData(event);\n if (touch) {\n click['clientX'] = touch.clientX;\n click['clientY'] = touch.clientY;\n click['screenX'] = touch.screenX;\n click['screenY'] = touch.screenY;\n }\n return click;\n}\n/**\n * An implementation of \"preventDefault\" for a synthesized event. Simply\n * sets \"defaultPrevented\" property to true.\n */\nfunction syntheticPreventDefault() {\n this.defaultPrevented = true;\n}\n/**\n * An implementation of \"stopPropagation\" for a synthesized event. It simply\n * sets a synthetic non-standard \"_propagationStopped\" property to true.\n */\nfunction syntheticStopPropagation() {\n this._propagationStopped = true;\n}\n/**\n * Mapping of KeyboardEvent.key values to\n * KeyCode values.\n */\nconst ACTION_KEY_TO_KEYCODE = {\n 'Enter': KeyCode.ENTER,\n ' ': KeyCode.SPACE,\n};\n/**\n * Mapping of HTML element identifiers (ARIA role, type, or tagName) to the\n * keys (enter and/or space) that should activate them. A value of zero means\n * that both should activate them.\n */\nconst IDENTIFIER_TO_KEY_TRIGGER_MAPPING = {\n 'A': KeyCode.ENTER,\n 'BUTTON': 0,\n 'CHECKBOX': KeyCode.SPACE,\n 'COMBOBOX': KeyCode.ENTER,\n 'FILE': 0,\n 'GRIDCELL': KeyCode.ENTER,\n 'LINK': KeyCode.ENTER,\n 'LISTBOX': KeyCode.ENTER,\n 'MENU': 0,\n 'MENUBAR': 0,\n 'MENUITEM': 0,\n 'MENUITEMCHECKBOX': 0,\n 'MENUITEMRADIO': 0,\n 'OPTION': 0,\n 'RADIO': KeyCode.SPACE,\n 'RADIOGROUP': KeyCode.SPACE,\n 'RESET': 0,\n 'SUBMIT': 0,\n 'SWITCH': KeyCode.SPACE,\n 'TAB': 0,\n 'TREE': KeyCode.ENTER,\n 'TREEITEM': KeyCode.ENTER,\n};\n/**\n * Returns whether or not to process space based on the type of the element;\n * checks to make sure that type is not null.\n * @param element The element.\n * @return Whether or not to process space based on type.\n */\nfunction processSpace(element) {\n const type = (element.getAttribute('type') || element.tagName).toUpperCase();\n return type in PROCESS_SPACE;\n}\n/**\n * Returns whether or not the given element is a text control.\n * @param el The element.\n * @return Whether or not the given element is a text control.\n */\nfunction isTextControl(el) {\n const type = (el.getAttribute('type') || el.tagName).toUpperCase();\n return type in TEXT_CONTROLS;\n}\n/**\n * Returns if the given element is a native HTML control.\n * @param el The element.\n * @return If the given element is a native HTML control.\n */\nfunction isNativeHTMLControl(el) {\n return el.tagName.toUpperCase() in NATIVE_HTML_CONTROLS;\n}\n/**\n * Returns if the given element is natively activatable. Browsers emit click\n * events for natively activatable elements, even when activated via keyboard.\n * For these elements, we don't need to raise a11y click events.\n * @param el The element.\n * @return If the given element is a native HTML control.\n */\nfunction isNativelyActivatable(el) {\n return (el.tagName.toUpperCase() === 'BUTTON' ||\n (!!el.type && el.type.toUpperCase() === 'FILE'));\n}\n/**\n * HTML types (not ARIA roles) which will auto-trigger a click event for\n * the Space key, with side-effects. We will not call preventDefault if space is\n * pressed, nor will we raise a11y click events. For all other elements, we can\n * suppress the default event (which has no desired side-effects) and handle the\n * keydown ourselves.\n */\nconst PROCESS_SPACE = {\n 'CHECKBOX': true,\n 'FILE': true,\n 'OPTION': true,\n 'RADIO': true,\n};\n/** TagNames and Input types for which to not process enter/space as click. */\nconst TEXT_CONTROLS = {\n 'COLOR': true,\n 'DATE': true,\n 'DATETIME': true,\n 'DATETIME-LOCAL': true,\n 'EMAIL': true,\n 'MONTH': true,\n 'NUMBER': true,\n 'PASSWORD': true,\n 'RANGE': true,\n 'SEARCH': true,\n 'TEL': true,\n 'TEXT': true,\n 'TEXTAREA': true,\n 'TIME': true,\n 'URL': true,\n 'WEEK': true,\n};\n/** TagNames that are native HTML controls. */\nconst NATIVE_HTML_CONTROLS = {\n 'A': true,\n 'AREA': true,\n 'BUTTON': true,\n 'DIALOG': true,\n 'IMG': true,\n 'INPUT': true,\n 'LINK': true,\n 'MENU': true,\n 'OPTGROUP': true,\n 'OPTION': true,\n 'PROGRESS': true,\n 'SELECT': true,\n 'TEXTAREA': true,\n};\n/** Exported for testing. */\nconst testing = {\n setIsMac(value) {\n isMac = value;\n },\n};\n\n/**\n * Whether the user agent is running on iOS.\n */\nconst isIos = typeof navigator !== 'undefined' && /iPhone|iPad|iPod/.test(navigator.userAgent);\n/**\n * A class representing a container node and all the event handlers\n * installed on it. Used so that handlers can be cleaned up if the\n * container is removed from the contract.\n */\nclass EventContractContainer {\n /**\n * @param element The container Element.\n */\n constructor(element) {\n this.element = element;\n /**\n * Array of event handlers and their corresponding event types that are\n * installed on this container.\n *\n */\n this.handlerInfos = [];\n }\n /**\n * Installs the provided installer on the element owned by this container,\n * and maintains a reference to resulting handler in order to remove it\n * later if desired.\n */\n addEventListener(eventType, getHandler) {\n // In iOS, event bubbling doesn't happen automatically in any DOM element,\n // unless it has an onclick attribute or DOM event handler attached to it.\n // This breaks JsAction in some cases. See \"Making Elements Clickable\"\n // section at http://goo.gl/2VoGnB.\n //\n // A workaround for this issue is to change the CSS cursor style to 'pointer'\n // for the container element, which magically turns on event bubbling. This\n // solution is described in the comments section at http://goo.gl/6pEO1z.\n //\n // We use a navigator.userAgent check here as this problem is present both\n // on Mobile Safari and thin WebKit wrappers, such as Chrome for iOS.\n if (isIos) {\n this.element.style.cursor = 'pointer';\n }\n this.handlerInfos.push(addEventListener(this.element, eventType, getHandler(this.element)));\n }\n /**\n * Removes all the handlers installed on this container.\n */\n cleanUp() {\n for (let i = 0; i < this.handlerInfos.length; i++) {\n removeEventListener(this.element, this.handlerInfos[i]);\n }\n this.handlerInfos = [];\n }\n}\n\nconst Char = {\n /**\n * The separator between the namespace and the action name in the\n * jsaction attribute value.\n */\n NAMESPACE_ACTION_SEPARATOR: '.',\n /**\n * The separator between the event name and action in the jsaction\n * attribute value.\n */\n EVENT_ACTION_SEPARATOR: ':',\n};\n\n/** Added for readability when accessing stable property names. */\nfunction getEventType(eventInfo) {\n return eventInfo.eventType;\n}\n/** Added for readability when accessing stable property names. */\nfunction setEventType(eventInfo, eventType) {\n eventInfo.eventType = eventType;\n}\n/** Added for readability when accessing stable property names. */\nfunction getEvent(eventInfo) {\n return eventInfo.event;\n}\n/** Added for readability when accessing stable property names. */\nfunction setEvent(eventInfo, event) {\n eventInfo.event = event;\n}\n/** Added for readability when accessing stable property names. */\nfunction getTargetElement(eventInfo) {\n return eventInfo.targetElement;\n}\n/** Added for readability when accessing stable property names. */\nfunction setTargetElement(eventInfo, targetElement) {\n eventInfo.targetElement = targetElement;\n}\n/** Added for readability when accessing stable property names. */\nfunction getContainer(eventInfo) {\n return eventInfo.eic;\n}\n/** Added for readability when accessing stable property names. */\nfunction setContainer(eventInfo, container) {\n eventInfo.eic = container;\n}\n/** Added for readability when accessing stable property names. */\nfunction getTimestamp(eventInfo) {\n return eventInfo.timeStamp;\n}\n/** Added for readability when accessing stable property names. */\nfunction setTimestamp(eventInfo, timestamp) {\n eventInfo.timeStamp = timestamp;\n}\n/** Added for readability when accessing stable property names. */\nfunction getAction(eventInfo) {\n return eventInfo.eia;\n}\n/** Added for readability when accessing stable property names. */\nfunction setAction(eventInfo, actionName, actionElement) {\n eventInfo.eia = [actionName, actionElement];\n}\n/** Added for readability when accessing stable property names. */\nfunction unsetAction(eventInfo) {\n eventInfo.eia = undefined;\n}\n/** Added for readability when accessing stable property names. */\nfunction getActionName(actionInfo) {\n return actionInfo[0];\n}\n/** Added for readability when accessing stable property names. */\nfunction getActionElement(actionInfo) {\n return actionInfo[1];\n}\n/** Added for readability when accessing stable property names. */\nfunction getIsReplay(eventInfo) {\n return eventInfo.eirp;\n}\n/** Added for readability when accessing stable property names. */\nfunction setIsReplay(eventInfo, replay) {\n eventInfo.eirp = replay;\n}\n/** Added for readability when accessing stable property names. */\nfunction getA11yClickKey(eventInfo) {\n return eventInfo.eiack;\n}\n/** Added for readability when accessing stable property names. */\nfunction setA11yClickKey(eventInfo, a11yClickKey) {\n eventInfo.eiack = a11yClickKey;\n}\n/** Added for readability when accessing stable property names. */\nfunction getResolved(eventInfo) {\n return eventInfo.eir;\n}\n/** Added for readability when accessing stable property names. */\nfunction setResolved(eventInfo, resolved) {\n eventInfo.eir = resolved;\n}\n/** Clones an `EventInfo` */\nfunction cloneEventInfo(eventInfo) {\n return {\n eventType: eventInfo.eventType,\n event: eventInfo.event,\n targetElement: eventInfo.targetElement,\n eic: eventInfo.eic,\n eia: eventInfo.eia,\n timeStamp: eventInfo.timeStamp,\n eirp: eventInfo.eirp,\n eiack: eventInfo.eiack,\n eir: eventInfo.eir,\n };\n}\n/**\n * Utility function for creating an `EventInfo`.\n *\n * This can be used from code-size sensitive compilation units, as taking\n * parameters vs. an `Object` literal reduces code size.\n */\nfunction createEventInfoFromParameters(eventType, event, targetElement, container, timestamp, action, isReplay, a11yClickKey) {\n return {\n eventType,\n event,\n targetElement,\n eic: container,\n timeStamp: timestamp,\n eia: action,\n eirp: isReplay,\n eiack: a11yClickKey,\n };\n}\n/**\n * Utility function for creating an `EventInfo`.\n *\n * This should be used in compilation units that are less sensitive to code\n * size.\n */\nfunction createEventInfo({ eventType, event, targetElement, container, timestamp, action, isReplay, a11yClickKey, }) {\n return {\n eventType,\n event,\n targetElement,\n eic: container,\n timeStamp: timestamp,\n eia: action ? [action.name, action.element] : undefined,\n eirp: isReplay,\n eiack: a11yClickKey,\n };\n}\n/**\n * Utility class around an `EventInfo`.\n *\n * This should be used in compilation units that are less sensitive to code\n * size.\n */\nclass EventInfoWrapper {\n constructor(eventInfo) {\n this.eventInfo = eventInfo;\n }\n getEventType() {\n return getEventType(this.eventInfo);\n }\n setEventType(eventType) {\n setEventType(this.eventInfo, eventType);\n }\n getEvent() {\n return getEvent(this.eventInfo);\n }\n setEvent(event) {\n setEvent(this.eventInfo, event);\n }\n getTargetElement() {\n return getTargetElement(this.eventInfo);\n }\n setTargetElement(targetElement) {\n setTargetElement(this.eventInfo, targetElement);\n }\n getContainer() {\n return getContainer(this.eventInfo);\n }\n setContainer(container) {\n setContainer(this.eventInfo, container);\n }\n getTimestamp() {\n return getTimestamp(this.eventInfo);\n }\n setTimestamp(timestamp) {\n setTimestamp(this.eventInfo, timestamp);\n }\n getAction() {\n const action = getAction(this.eventInfo);\n if (!action)\n return undefined;\n return {\n name: action[0],\n element: action[1],\n };\n }\n setAction(action) {\n if (!action) {\n unsetAction(this.eventInfo);\n return;\n }\n setAction(this.eventInfo, action.name, action.element);\n }\n getIsReplay() {\n return getIsReplay(this.eventInfo);\n }\n setIsReplay(replay) {\n setIsReplay(this.eventInfo, replay);\n }\n getResolved() {\n return getResolved(this.eventInfo);\n }\n setResolved(resolved) {\n setResolved(this.eventInfo, resolved);\n }\n clone() {\n return new EventInfoWrapper(cloneEventInfo(this.eventInfo));\n }\n}\n\n/**\n * Since maps from event to action are immutable we can use a single map\n * to represent the empty map.\n */\nconst EMPTY_ACTION_MAP = {};\n/**\n * This regular expression matches a semicolon.\n */\nconst REGEXP_SEMICOLON = /\\s*;\\s*/;\n/** If no event type is defined, defaults to `click`. */\nconst DEFAULT_EVENT_TYPE = EventType.CLICK;\n/** Resolves actions for Events. */\nclass ActionResolver {\n constructor({ syntheticMouseEventSupport = false, clickModSupport = true, } = {}) {\n this.a11yClickSupport = false;\n this.clickModSupport = true;\n this.updateEventInfoForA11yClick = undefined;\n this.preventDefaultForA11yClick = undefined;\n this.populateClickOnlyAction = undefined;\n this.syntheticMouseEventSupport = syntheticMouseEventSupport;\n this.clickModSupport = clickModSupport;\n }\n resolveEventType(eventInfo) {\n // We distinguish modified and plain clicks in order to support the\n // default browser behavior of modified clicks on links; usually to\n // open the URL of the link in new tab or new window on ctrl/cmd\n // click. A DOM 'click' event is mapped to the jsaction 'click'\n // event iff there is no modifier present on the event. If there is\n // a modifier, it's mapped to 'clickmod' instead.\n //\n // It's allowed to omit the event in the jsaction attribute. In that\n // case, 'click' is assumed. Thus the following two are equivalent:\n //\n // \n // \n //\n // For unmodified clicks, EventContract invokes the jsaction\n // 'gna.fu'. For modified clicks, EventContract won't find a\n // suitable action and leave the event to be handled by the\n // browser.\n //\n // In order to also invoke a jsaction handler for a modifier click,\n // 'clickmod' needs to be used:\n //\n // \n //\n // EventContract invokes the jsaction 'gna.fu' for modified\n // clicks. Unmodified clicks are left to the browser.\n //\n // In order to set up the event contract to handle both clickonly and\n // clickmod, only addEvent(EventType.CLICK) is necessary.\n //\n // In order to set up the event contract to handle click,\n // addEvent() is necessary for CLICK, KEYDOWN, and KEYPRESS event types. If\n // a11y click support is enabled, addEvent() will set up the appropriate key\n // event handler automatically.\n if (this.clickModSupport &&\n getEventType(eventInfo) === EventType.CLICK &&\n isModifiedClickEvent(getEvent(eventInfo))) {\n setEventType(eventInfo, EventType.CLICKMOD);\n }\n else if (this.a11yClickSupport) {\n this.updateEventInfoForA11yClick(eventInfo);\n }\n }\n resolveAction(eventInfo) {\n if (getResolved(eventInfo)) {\n return;\n }\n this.populateAction(eventInfo, getTargetElement(eventInfo));\n setResolved(eventInfo, true);\n }\n resolveParentAction(eventInfo) {\n const action = getAction(eventInfo);\n const actionElement = action && getActionElement(action);\n unsetAction(eventInfo);\n const parentNode = actionElement && this.getParentNode(actionElement);\n if (!parentNode) {\n return;\n }\n this.populateAction(eventInfo, parentNode);\n }\n /**\n * Searches for a jsaction that the DOM event maps to and creates an\n * object containing event information used for dispatching by\n * jsaction.Dispatcher. This method populates the `action` and `actionElement`\n * fields of the EventInfo object passed in by finding the first\n * jsaction attribute above the target Node of the event, and below\n * the container Node, that specifies a jsaction for the event\n * type. If no such jsaction is found, then action is undefined.\n *\n * @param eventInfo `EventInfo` to set `action` and `actionElement` if an\n * action is found on any `Element` in the path of the `Event`.\n */\n populateAction(eventInfo, currentTarget) {\n let actionElement = currentTarget;\n while (actionElement && actionElement !== getContainer(eventInfo)) {\n if (actionElement.nodeType === Node.ELEMENT_NODE) {\n this.populateActionOnElement(actionElement, eventInfo);\n }\n if (getAction(eventInfo)) {\n // An event is handled by at most one jsaction. Thus we stop at the\n // first matching jsaction specified in a jsaction attribute up the\n // ancestor chain of the event target node.\n break;\n }\n actionElement = this.getParentNode(actionElement);\n }\n const action = getAction(eventInfo);\n if (!action) {\n // No action found.\n return;\n }\n if (this.a11yClickSupport) {\n this.preventDefaultForA11yClick(eventInfo);\n }\n // We attempt to handle the mouseenter/mouseleave events here by\n // detecting whether the mouseover/mouseout events correspond to\n // entering/leaving an element.\n if (this.syntheticMouseEventSupport) {\n if (getEventType(eventInfo) === EventType.MOUSEENTER ||\n getEventType(eventInfo) === EventType.MOUSELEAVE ||\n getEventType(eventInfo) === EventType.POINTERENTER ||\n getEventType(eventInfo) === EventType.POINTERLEAVE) {\n // We attempt to handle the mouseenter/mouseleave events here by\n // detecting whether the mouseover/mouseout events correspond to\n // entering/leaving an element.\n if (isMouseSpecialEvent(getEvent(eventInfo), getEventType(eventInfo), getActionElement(action))) {\n // If both mouseover/mouseout and mouseenter/mouseleave events are\n // enabled, two separate handlers for mouseover/mouseout are\n // registered. Both handlers will see the same event instance\n // so we create a copy to avoid interfering with the dispatching of\n // the mouseover/mouseout event.\n const copiedEvent = createMouseSpecialEvent(getEvent(eventInfo), getActionElement(action));\n setEvent(eventInfo, copiedEvent);\n // Since the mouseenter/mouseleave events do not bubble, the target\n // of the event is technically the `actionElement` (the node with the\n // `jsaction` attribute)\n setTargetElement(eventInfo, getActionElement(action));\n }\n else {\n unsetAction(eventInfo);\n }\n }\n }\n }\n /**\n * Walk to the parent node, unless the node has a different owner in\n * which case we walk to the owner. Attempt to walk to host of a\n * shadow root if needed.\n */\n getParentNode(element) {\n const owner = element[Property.OWNER];\n if (owner) {\n return owner;\n }\n const parentNode = element.parentNode;\n if (parentNode?.nodeName === '#document-fragment') {\n return parentNode?.host ?? null;\n }\n return parentNode;\n }\n /**\n * Accesses the jsaction map on a node and retrieves the name of the\n * action the given event is mapped to, if any. It parses the\n * attribute value and stores it in a property on the node for\n * subsequent retrieval without re-parsing and re-accessing the\n * attribute.\n *\n * @param actionElement The DOM node to retrieve the jsaction map from.\n * @param eventInfo `EventInfo` to set `action` and `actionElement` if an\n * action is found on the `actionElement`.\n */\n populateActionOnElement(actionElement, eventInfo) {\n const actionMap = this.parseActions(actionElement);\n const actionName = actionMap[getEventType(eventInfo)];\n if (actionName !== undefined) {\n setAction(eventInfo, actionName, actionElement);\n }\n if (this.a11yClickSupport) {\n this.populateClickOnlyAction(actionElement, eventInfo, actionMap);\n }\n }\n /**\n * Parses and caches an element's jsaction element into a map.\n *\n * This is primarily for internal use.\n *\n * @param actionElement The DOM node to retrieve the jsaction map from.\n * @return Map from event to qualified name of the jsaction bound to it.\n */\n parseActions(actionElement) {\n let actionMap = get(actionElement);\n if (!actionMap) {\n const jsactionAttribute = actionElement.getAttribute(Attribute.JSACTION);\n if (!jsactionAttribute) {\n actionMap = EMPTY_ACTION_MAP;\n set(actionElement, actionMap);\n }\n else {\n actionMap = getParsed(jsactionAttribute);\n if (!actionMap) {\n actionMap = {};\n const values = jsactionAttribute.split(REGEXP_SEMICOLON);\n for (let idx = 0; idx < values.length; idx++) {\n const value = values[idx];\n if (!value) {\n continue;\n }\n const colon = value.indexOf(Char.EVENT_ACTION_SEPARATOR);\n const hasColon = colon !== -1;\n const type = hasColon ? value.substr(0, colon).trim() : DEFAULT_EVENT_TYPE;\n const action = hasColon ? value.substr(colon + 1).trim() : value;\n actionMap[type] = action;\n }\n setParsed(jsactionAttribute, actionMap);\n }\n set(actionElement, actionMap);\n }\n }\n return actionMap;\n }\n addA11yClickSupport(updateEventInfoForA11yClick, preventDefaultForA11yClick, populateClickOnlyAction) {\n this.a11yClickSupport = true;\n this.updateEventInfoForA11yClick = updateEventInfoForA11yClick;\n this.preventDefaultForA11yClick = preventDefaultForA11yClick;\n this.populateClickOnlyAction = populateClickOnlyAction;\n }\n}\n\n/**\n * @fileoverview An enum to control who can call certain jsaction APIs.\n */\nvar Restriction;\n(function (Restriction) {\n Restriction[Restriction[\"I_AM_THE_JSACTION_FRAMEWORK\"] = 0] = \"I_AM_THE_JSACTION_FRAMEWORK\";\n})(Restriction || (Restriction = {}));\n\n/**\n * Receives a DOM event, determines the jsaction associated with the source\n * element of the DOM event, and invokes the handler associated with the\n * jsaction.\n */\nclass Dispatcher {\n /**\n * Options are:\n * - `eventReplayer`: When the event contract dispatches replay events\n * to the Dispatcher, the Dispatcher collects them and in the next tick\n * dispatches them to the `eventReplayer`. Defaults to dispatching to `dispatchDelegate`.\n * @param dispatchDelegate A function that should handle dispatching an `EventInfoWrapper` to handlers.\n */\n constructor(dispatchDelegate, { actionResolver, eventReplayer, } = {}) {\n this.dispatchDelegate = dispatchDelegate;\n /** Whether the event replay is scheduled. */\n this.eventReplayScheduled = false;\n /** The queue of events. */\n this.replayEventInfoWrappers = [];\n this.actionResolver = actionResolver;\n this.eventReplayer = eventReplayer;\n }\n /**\n * Receives an event or the event queue from the EventContract. The event\n * queue is copied and it attempts to replay.\n * If event info is passed in it looks for an action handler that can handle\n * the given event. If there is no handler registered queues the event and\n * checks if a loader is registered for the given namespace. If so, calls it.\n *\n * Alternatively, if in global dispatch mode, calls all registered global\n * handlers for the appropriate event type.\n *\n * The three functionalities of this call are deliberately not split into\n * three methods (and then declared as an abstract interface), because the\n * interface is used by EventContract, which lives in a different jsbinary.\n * Therefore the interface between the three is defined entirely in terms that\n * are invariant under jscompiler processing (Function and Array, as opposed\n * to a custom type with method names).\n *\n * @param eventInfo The info for the event that triggered this call or the\n * queue of events from EventContract.\n */\n dispatch(eventInfo) {\n const eventInfoWrapper = new EventInfoWrapper(eventInfo);\n this.actionResolver?.resolveEventType(eventInfo);\n this.actionResolver?.resolveAction(eventInfo);\n const action = eventInfoWrapper.getAction();\n if (action && shouldPreventDefaultBeforeDispatching(action.element, eventInfoWrapper)) {\n preventDefault(eventInfoWrapper.getEvent());\n }\n if (this.eventReplayer && eventInfoWrapper.getIsReplay()) {\n this.scheduleEventInfoWrapperReplay(eventInfoWrapper);\n return;\n }\n this.dispatchDelegate(eventInfoWrapper);\n }\n /**\n * Schedules an `EventInfoWrapper` for replay. The replaying will happen in its own\n * stack once the current flow cedes control. This is done to mimic\n * browser event handling.\n */\n scheduleEventInfoWrapperReplay(eventInfoWrapper) {\n this.replayEventInfoWrappers.push(eventInfoWrapper);\n if (this.eventReplayScheduled) {\n return;\n }\n this.eventReplayScheduled = true;\n Promise.resolve().then(() => {\n this.eventReplayScheduled = false;\n this.eventReplayer(this.replayEventInfoWrappers);\n });\n }\n}\n/**\n * Creates an `EventReplayer` that calls the `replay` function for every `eventInfoWrapper` in\n * the queue.\n */\nfunction createEventReplayer(replay) {\n return (eventInfoWrappers) => {\n for (const eventInfoWrapper of eventInfoWrappers) {\n replay(eventInfoWrapper);\n }\n };\n}\n/**\n * Returns true if the default action of this event should be prevented before\n * this event is dispatched.\n */\nfunction shouldPreventDefaultBeforeDispatching(actionElement, eventInfoWrapper) {\n // Prevent browser from following node links if a jsaction is present\n // and we are dispatching the action now. Note that the targetElement may be\n // a child of an anchor that has a jsaction attached. For that reason, we\n // need to check the actionElement rather than the targetElement.\n return (actionElement.tagName === 'A' &&\n (eventInfoWrapper.getEventType() === EventType.CLICK ||\n eventInfoWrapper.getEventType() === EventType.CLICKMOD));\n}\n/**\n * Registers deferred functionality for an EventContract and a Jsaction\n * Dispatcher.\n */\nfunction registerDispatcher$2(eventContract, dispatcher) {\n eventContract.ecrd((eventInfo) => {\n dispatcher.dispatch(eventInfo);\n }, Restriction.I_AM_THE_JSACTION_FRAMEWORK);\n}\n\n/** An internal symbol used to indicate whether propagation should be stopped or not. */\nconst PROPAGATION_STOPPED_SYMBOL = Symbol.for('propagationStopped');\n/** Extra event phases beyond what the browser provides. */\nconst EventPhase = {\n REPLAY: 101,\n};\nconst PREVENT_DEFAULT_ERROR_MESSAGE_DETAILS = ' Because event replay occurs after browser dispatch, `preventDefault` would have no ' +\n 'effect. You can check whether an event is being replayed by accessing the event phase: ' +\n '`event.eventPhase === EventPhase.REPLAY`.';\nconst PREVENT_DEFAULT_ERROR_MESSAGE = `\\`preventDefault\\` called during event replay.`;\nconst COMPOSED_PATH_ERROR_MESSAGE_DETAILS = ' Because event replay occurs after browser ' +\n 'dispatch, `composedPath()` will be empty. Iterate parent nodes from `event.target` or ' +\n '`event.currentTarget` if you need to check elements in the event path.';\nconst COMPOSED_PATH_ERROR_MESSAGE = `\\`composedPath\\` called during event replay.`;\n/**\n * A dispatcher that uses browser-based `Event` semantics, for example bubbling, `stopPropagation`,\n * `currentTarget`, etc.\n */\nclass EventDispatcher {\n constructor(dispatchDelegate, clickModSupport = true) {\n this.dispatchDelegate = dispatchDelegate;\n this.clickModSupport = clickModSupport;\n this.actionResolver = new ActionResolver({ clickModSupport });\n this.dispatcher = new Dispatcher((eventInfoWrapper) => {\n this.dispatchToDelegate(eventInfoWrapper);\n }, {\n actionResolver: this.actionResolver,\n });\n }\n /**\n * The entrypoint for the `EventContract` dispatch.\n */\n dispatch(eventInfo) {\n this.dispatcher.dispatch(eventInfo);\n }\n /** Internal method that does basic disaptching. */\n dispatchToDelegate(eventInfoWrapper) {\n if (eventInfoWrapper.getIsReplay()) {\n prepareEventForReplay(eventInfoWrapper);\n }\n prepareEventForBubbling(eventInfoWrapper);\n while (eventInfoWrapper.getAction()) {\n prepareEventForDispatch(eventInfoWrapper);\n // If this is a capture event, ONLY dispatch if the action element is the target.\n if (isCaptureEventType(eventInfoWrapper.getEventType()) &&\n eventInfoWrapper.getAction().element !== eventInfoWrapper.getTargetElement()) {\n return;\n }\n this.dispatchDelegate(eventInfoWrapper.getEvent(), eventInfoWrapper.getAction().name);\n if (propagationStopped(eventInfoWrapper)) {\n return;\n }\n this.actionResolver.resolveParentAction(eventInfoWrapper.eventInfo);\n }\n }\n}\nfunction prepareEventForBubbling(eventInfoWrapper) {\n const event = eventInfoWrapper.getEvent();\n const originalStopPropagation = eventInfoWrapper.getEvent().stopPropagation.bind(event);\n const stopPropagation = () => {\n event[PROPAGATION_STOPPED_SYMBOL] = true;\n originalStopPropagation();\n };\n patchEventInstance(event, 'stopPropagation', stopPropagation);\n patchEventInstance(event, 'stopImmediatePropagation', stopPropagation);\n}\nfunction propagationStopped(eventInfoWrapper) {\n const event = eventInfoWrapper.getEvent();\n return !!event[PROPAGATION_STOPPED_SYMBOL];\n}\nfunction prepareEventForReplay(eventInfoWrapper) {\n const event = eventInfoWrapper.getEvent();\n const target = eventInfoWrapper.getTargetElement();\n const originalPreventDefault = event.preventDefault.bind(event);\n patchEventInstance(event, 'target', target);\n patchEventInstance(event, 'eventPhase', EventPhase.REPLAY);\n patchEventInstance(event, 'preventDefault', () => {\n originalPreventDefault();\n throw new Error(PREVENT_DEFAULT_ERROR_MESSAGE + (ngDevMode ? PREVENT_DEFAULT_ERROR_MESSAGE_DETAILS : ''));\n });\n patchEventInstance(event, 'composedPath', () => {\n throw new Error(COMPOSED_PATH_ERROR_MESSAGE + (ngDevMode ? COMPOSED_PATH_ERROR_MESSAGE_DETAILS : ''));\n });\n}\nfunction prepareEventForDispatch(eventInfoWrapper) {\n const event = eventInfoWrapper.getEvent();\n const currentTarget = eventInfoWrapper.getAction()?.element;\n if (currentTarget) {\n patchEventInstance(event, 'currentTarget', currentTarget, {\n // `currentTarget` is going to get reassigned every dispatch.\n configurable: true,\n });\n }\n}\n/**\n * Patch `Event` instance during non-standard `Event` dispatch. This patches just the `Event`\n * instance that the browser created, it does not patch global properties or methods.\n *\n * This is necessary because dispatching an `Event` outside of browser dispatch results in\n * incorrect properties and methods that need to be polyfilled or do not work.\n *\n * JSAction dispatch adds two extra \"phases\" to event dispatch:\n * 1. Event delegation - the event is being dispatched by a delegating event handler on a container\n * (typically `window.document.documentElement`), to a delegated event handler on some child\n * element. Certain `Event` properties will be unintuitive, such as `currentTarget`, which would\n * be the container rather than the child element. Bubbling would also not work. In order to\n * emulate the browser, these properties and methods on the `Event` are patched.\n * 2. Event replay - the event is being dispatched by the framework once the handlers have been\n * loaded (during hydration, or late-loaded). Certain `Event` properties can be unset by the\n * browser because the `Event` is no longer actively being dispatched, such as `target`. Other\n * methods have no effect because the `Event` has already been dispatched, such as\n * `preventDefault`. Bubbling would also not work. These properties and methods are patched,\n * either to fill in information that the browser may have removed, or to throw errors in methods\n * that no longer behave as expected.\n */\nfunction patchEventInstance(event, property, value, { configurable = false } = {}) {\n Object.defineProperty(event, property, { value, configurable });\n}\n/**\n * Registers deferred functionality for an EventContract and a Jsaction\n * Dispatcher.\n */\nfunction registerDispatcher$1(eventContract, dispatcher) {\n eventContract.ecrd((eventInfo) => {\n dispatcher.dispatch(eventInfo);\n }, Restriction.I_AM_THE_JSACTION_FRAMEWORK);\n}\n\n/**\n * EarlyEventContract intercepts events in the bubbling phase at the\n * boundary of the document body. This mapping will be passed to the\n * late-loaded EventContract.\n */\nclass EarlyEventContract {\n constructor(dataContainer = window, container = window.document.documentElement) {\n this.dataContainer = dataContainer;\n dataContainer._ejsa = createEarlyJsactionData(container);\n }\n /**\n * Installs a list of event types for container .\n */\n addEvents(types, capture) {\n addEvents(this.dataContainer._ejsa, types, capture);\n }\n}\n/** Creates an `EarlyJsactionData` object. */\nfunction createEarlyJsactionData(container) {\n const q = [];\n const d = (eventInfo) => {\n q.push(eventInfo);\n };\n const h = (event) => {\n d(createEventInfoFromParameters(event.type, event, event.target, container, Date.now()));\n };\n return {\n c: container,\n q,\n et: [],\n etc: [],\n d,\n h,\n };\n}\n/** Add all the events to the container stored in the `EarlyJsactionData`. */\nfunction addEvents(earlyJsactionData, types, capture) {\n for (let i = 0; i < types.length; i++) {\n const eventType = types[i];\n const eventTypes = capture ? earlyJsactionData.etc : earlyJsactionData.et;\n eventTypes.push(eventType);\n earlyJsactionData.c.addEventListener(eventType, earlyJsactionData.h, capture);\n }\n}\n/** Get the queued `EventInfo` objects that were dispatched before a dispatcher was registered. */\nfunction getQueuedEventInfos(earlyJsactionData) {\n return earlyJsactionData?.q ?? [];\n}\n/** Register a different dispatcher function on the `EarlyJsactionData`. */\nfunction registerDispatcher(earlyJsactionData, dispatcher) {\n if (!earlyJsactionData) {\n return;\n }\n earlyJsactionData.d = dispatcher;\n}\n/** Removes all event listener handlers. */\nfunction removeAllEventListeners(earlyJsactionData) {\n if (!earlyJsactionData) {\n return;\n }\n removeEventListeners(earlyJsactionData.c, earlyJsactionData.et, earlyJsactionData.h);\n removeEventListeners(earlyJsactionData.c, earlyJsactionData.etc, earlyJsactionData.h, true);\n}\nfunction removeEventListeners(container, eventTypes, earlyEventHandler, capture) {\n for (let i = 0; i < eventTypes.length; i++) {\n container.removeEventListener(eventTypes[i], earlyEventHandler, /* useCapture */ capture);\n }\n}\n\n/**\n * @define Support for the non-bubbling mouseenter and mouseleave events. This\n * flag can be overridden in a build rule.\n */\nconst MOUSE_SPECIAL_SUPPORT = false;\n\n/**\n * @fileoverview Implements the local event handling contract. This\n * allows DOM objects in a container that enters into this contract to\n * define event handlers which are executed in a local context.\n *\n * One EventContract instance can manage the contract for multiple\n * containers, which are added using the addContainer() method.\n *\n * Events can be registered using the addEvent() method.\n *\n * A Dispatcher is added using the registerDispatcher() method. Until there is\n * a dispatcher, events are queued. The idea is that the EventContract\n * class is inlined in the HTML of the top level page and instantiated\n * right after the start of . The Dispatcher class is contained\n * in the external deferred js, and instantiated and registered with\n * EventContract when the external javascript in the page loads. The\n * external javascript will also register the jsaction handlers, which\n * then pick up the queued events at the time of registration.\n *\n * Since this class is meant to be inlined in the main page HTML, the\n * size of the binary compiled from this file MUST be kept as small as\n * possible and thus its dependencies to a minimum.\n */\n/**\n * EventContract intercepts events in the bubbling phase at the\n * boundary of a container element, and maps them to generic actions\n * which are specified using the custom jsaction attribute in\n * HTML. Behavior of the application is then specified in terms of\n * handler for such actions, cf. jsaction.Dispatcher in dispatcher.js.\n *\n * This has several benefits: (1) No DOM event handlers need to be\n * registered on the specific elements in the UI. (2) The set of\n * events that the application has to handle can be specified in terms\n * of the semantics of the application, rather than in terms of DOM\n * events. (3) Invocation of handlers can be delayed and handlers can\n * be delay loaded in a generic way.\n */\nclass EventContract {\n static { this.MOUSE_SPECIAL_SUPPORT = MOUSE_SPECIAL_SUPPORT; }\n constructor(containerManager) {\n /**\n * The DOM events which this contract covers. Used to prevent double\n * registration of event types. The value of the map is the\n * internally created DOM event handler function that handles the\n * DOM events. See addEvent().\n *\n */\n this.eventHandlers = {};\n this.browserEventTypeToExtraEventTypes = {};\n /**\n * The dispatcher function. Events are passed to this function for\n * handling once it was set using the registerDispatcher() method. This is\n * done because the function is passed from another jsbinary, so passing the\n * instance and invoking the method here would require to leave the method\n * unobfuscated.\n */\n this.dispatcher = null;\n /**\n * The list of suspended `EventInfo` that will be dispatched\n * as soon as the `Dispatcher` is registered.\n */\n this.queuedEventInfos = [];\n this.containerManager = containerManager;\n }\n handleEvent(eventType, event, container) {\n const eventInfo = createEventInfoFromParameters(\n /* eventType= */ eventType, \n /* event= */ event, \n /* targetElement= */ event.target, \n /* container= */ container, \n /* timestamp= */ Date.now());\n this.handleEventInfo(eventInfo);\n }\n /**\n * Handle an `EventInfo`.\n */\n handleEventInfo(eventInfo) {\n if (!this.dispatcher) {\n // All events are queued when the dispatcher isn't yet loaded.\n setIsReplay(eventInfo, true);\n this.queuedEventInfos?.push(eventInfo);\n return;\n }\n this.dispatcher(eventInfo);\n }\n /**\n * Enables jsaction handlers to be called for the event type given by\n * name.\n *\n * If the event is already registered, this does nothing.\n *\n * @param prefixedEventType If supplied, this event is used in\n * the actual browser event registration instead of the name that is\n * exposed to jsaction. Use this if you e.g. want users to be able\n * to subscribe to jsaction=\"transitionEnd:foo\" while the underlying\n * event is webkitTransitionEnd in one browser and mozTransitionEnd\n * in another.\n */\n addEvent(eventType, prefixedEventType) {\n if (eventType in this.eventHandlers || !this.containerManager) {\n return;\n }\n if (!EventContract.MOUSE_SPECIAL_SUPPORT && MOUSE_SPECIAL_EVENT_TYPES.indexOf(eventType) >= 0) {\n return;\n }\n const eventHandler = (eventType, event, container) => {\n this.handleEvent(eventType, event, container);\n };\n // Store the callback to allow us to replay events.\n this.eventHandlers[eventType] = eventHandler;\n const browserEventType = getBrowserEventType(prefixedEventType || eventType);\n if (browserEventType !== eventType) {\n const eventTypes = this.browserEventTypeToExtraEventTypes[browserEventType] || [];\n eventTypes.push(eventType);\n this.browserEventTypeToExtraEventTypes[browserEventType] = eventTypes;\n }\n this.containerManager.addEventListener(browserEventType, (element) => {\n return (event) => {\n eventHandler(eventType, event, element);\n };\n });\n }\n /**\n * Gets the queued early events and replay them using the appropriate handler\n * in the provided event contract. Once all the events are replayed, it cleans\n * up the early contract.\n */\n replayEarlyEvents(earlyJsactionData = window._ejsa) {\n // Check if the early contract is present and prevent calling this function\n // more than once.\n if (!earlyJsactionData) {\n return;\n }\n // Replay the early contract events.\n this.replayEarlyEventInfos(earlyJsactionData.q);\n // Clean up the early contract.\n removeAllEventListeners(earlyJsactionData);\n delete window._ejsa;\n }\n /**\n * Replays all the early `EventInfo` objects, dispatching them through the normal\n * `EventContract` flow.\n */\n replayEarlyEventInfos(earlyEventInfos) {\n for (let i = 0; i < earlyEventInfos.length; i++) {\n const earlyEventInfo = earlyEventInfos[i];\n const eventTypes = this.getEventTypesForBrowserEventType(earlyEventInfo.eventType);\n for (let j = 0; j < eventTypes.length; j++) {\n const eventInfo = cloneEventInfo(earlyEventInfo);\n // EventInfo eventType maps to JSAction's internal event type,\n // rather than the browser event type.\n setEventType(eventInfo, eventTypes[j]);\n this.handleEventInfo(eventInfo);\n }\n }\n }\n /**\n * Returns all JSAction event types that have been registered for a given\n * browser event type.\n */\n getEventTypesForBrowserEventType(browserEventType) {\n const eventTypes = [];\n if (this.eventHandlers[browserEventType]) {\n eventTypes.push(browserEventType);\n }\n if (this.browserEventTypeToExtraEventTypes[browserEventType]) {\n eventTypes.push(...this.browserEventTypeToExtraEventTypes[browserEventType]);\n }\n return eventTypes;\n }\n /**\n * Returns the event handler function for a given event type.\n */\n handler(eventType) {\n return this.eventHandlers[eventType];\n }\n /**\n * Cleans up the event contract. This resets all of the `EventContract`'s\n * internal state. Users are responsible for not using this `EventContract`\n * after it has been cleaned up.\n */\n cleanUp() {\n this.containerManager.cleanUp();\n this.containerManager = null;\n this.eventHandlers = {};\n this.browserEventTypeToExtraEventTypes = {};\n this.dispatcher = null;\n this.queuedEventInfos = [];\n }\n /**\n * Register a dispatcher function. Event info of each event mapped to\n * a jsaction is passed for handling to this callback. The queued\n * events are passed as well to the dispatcher for later replaying\n * once the dispatcher is registered. Clears the event queue to null.\n *\n * @param dispatcher The dispatcher function.\n * @param restriction\n */\n registerDispatcher(dispatcher, restriction) {\n this.ecrd(dispatcher, restriction);\n }\n /**\n * Unrenamed alias for registerDispatcher. Necessary for any codebases that\n * split the `EventContract` and `Dispatcher` code into different compilation\n * units.\n */\n ecrd(dispatcher, restriction) {\n this.dispatcher = dispatcher;\n if (this.queuedEventInfos?.length) {\n for (let i = 0; i < this.queuedEventInfos.length; i++) {\n this.handleEventInfo(this.queuedEventInfos[i]);\n }\n this.queuedEventInfos = null;\n }\n }\n}\n\n/**\n * Creates an `EarlyJsactionData`, adds events to it, and populates it on a nested object on\n * the window.\n */\nfunction bootstrapAppScopedEarlyEventContract(container, appId, bubbleEventTypes, captureEventTypes, dataContainer = window) {\n const earlyJsactionData = createEarlyJsactionData(container);\n if (!dataContainer._ejsas) {\n dataContainer._ejsas = {};\n }\n dataContainer._ejsas[appId] = earlyJsactionData;\n addEvents(earlyJsactionData, bubbleEventTypes);\n addEvents(earlyJsactionData, captureEventTypes, /* capture= */ true);\n}\n/** Get the queued `EventInfo` objects that were dispatched before a dispatcher was registered. */\nfunction getAppScopedQueuedEventInfos(appId, dataContainer = window) {\n return getQueuedEventInfos(dataContainer._ejsas?.[appId]);\n}\n/**\n * Registers a dispatcher function on the `EarlyJsactionData` present on the nested object on the\n * window.\n */\nfunction registerAppScopedDispatcher(restriction, appId, dispatcher, dataContainer = window) {\n registerDispatcher(dataContainer._ejsas?.[appId], dispatcher);\n}\n/** Removes all event listener handlers. */\nfunction removeAllAppScopedEventListeners(appId, dataContainer = window) {\n removeAllEventListeners(dataContainer._ejsas?.[appId]);\n}\n/** Clear the early event contract. */\nfunction clearAppScopedEarlyEventContract(appId, dataContainer = window) {\n if (!dataContainer._ejsas) {\n return;\n }\n dataContainer._ejsas[appId] = undefined;\n}\n\nexport { Attribute, EventContract, EventContractContainer, EventDispatcher, EventInfoWrapper, EventPhase, bootstrapAppScopedEarlyEventContract, clearAppScopedEarlyEventContract, getDefaulted as getActionCache, getAppScopedQueuedEventInfos, isCaptureEventType, isEarlyEventType, registerAppScopedDispatcher, registerDispatcher$1 as registerDispatcher, removeAllAppScopedEventListeners };\n//# sourceMappingURL=event-dispatch.mjs.map\n","/**\n * @license Angular v18.2.13\n * (c) 2010-2024 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { SIGNAL_NODE as SIGNAL_NODE$1, signalSetFn as signalSetFn$1, producerAccessed as producerAccessed$1, SIGNAL as SIGNAL$1, getActiveConsumer as getActiveConsumer$1, setActiveConsumer as setActiveConsumer$1, consumerDestroy as consumerDestroy$1, REACTIVE_NODE as REACTIVE_NODE$1, consumerBeforeComputation as consumerBeforeComputation$1, consumerAfterComputation as consumerAfterComputation$1, consumerPollProducersForChange as consumerPollProducersForChange$1, createSignal as createSignal$1, signalUpdateFn as signalUpdateFn$1, createComputed as createComputed$1, setThrowInvalidWriteToSignalError as setThrowInvalidWriteToSignalError$1, createWatch as createWatch$1 } from '@angular/core/primitives/signals';\nexport { SIGNAL as ɵSIGNAL } from '@angular/core/primitives/signals';\nimport { BehaviorSubject, Subject, Subscription } from 'rxjs';\nimport { map, first } from 'rxjs/operators';\nimport { Attribute as Attribute$1, EventContract, EventContractContainer, getAppScopedQueuedEventInfos, clearAppScopedEarlyEventContract, EventDispatcher, registerDispatcher, isEarlyEventType, isCaptureEventType } from '@angular/core/primitives/event-dispatch';\n\n/**\n * Base URL for the error details page.\n *\n * Keep this constant in sync across:\n * - packages/compiler-cli/src/ngtsc/diagnostics/src/error_details_base_url.ts\n * - packages/core/src/error_details_base_url.ts\n */\nconst ERROR_DETAILS_PAGE_BASE_URL = 'https://angular.dev/errors';\n/**\n * URL for the XSS security documentation.\n */\nconst XSS_SECURITY_URL = 'https://g.co/ng/security#xss';\n\n/**\n * Class that represents a runtime error.\n * Formats and outputs the error message in a consistent way.\n *\n * Example:\n * ```\n * throw new RuntimeError(\n * RuntimeErrorCode.INJECTOR_ALREADY_DESTROYED,\n * ngDevMode && 'Injector has already been destroyed.');\n * ```\n *\n * Note: the `message` argument contains a descriptive error message as a string in development\n * mode (when the `ngDevMode` is defined). In production mode (after tree-shaking pass), the\n * `message` argument becomes `false`, thus we account for it in the typings and the runtime\n * logic.\n */\nclass RuntimeError extends Error {\n constructor(code, message) {\n super(formatRuntimeError(code, message));\n this.code = code;\n }\n}\n/**\n * Called to format a runtime error.\n * See additional info on the `message` argument type in the `RuntimeError` class description.\n */\nfunction formatRuntimeError(code, message) {\n // Error code might be a negative number, which is a special marker that instructs the logic to\n // generate a link to the error details page on angular.io.\n // We also prepend `0` to non-compile-time errors.\n const fullCode = `NG0${Math.abs(code)}`;\n let errorMessage = `${fullCode}${message ? ': ' + message : ''}`;\n if (ngDevMode && code < 0) {\n const addPeriodSeparator = !errorMessage.match(/[.,;!?\\n]$/);\n const separator = addPeriodSeparator ? '.' : '';\n errorMessage = `${errorMessage}${separator} Find more at ${ERROR_DETAILS_PAGE_BASE_URL}/${fullCode}`;\n }\n return errorMessage;\n}\n\nconst REQUIRED_UNSET_VALUE = /* @__PURE__ */ Symbol('InputSignalNode#UNSET');\n// Note: Using an IIFE here to ensure that the spread assignment is not considered\n// a side-effect, ending up preserving `COMPUTED_NODE` and `REACTIVE_NODE`.\n// TODO: remove when https://github.com/evanw/esbuild/issues/3392 is resolved.\nconst INPUT_SIGNAL_NODE = /* @__PURE__ */ (() => {\n return {\n ...SIGNAL_NODE$1,\n transformFn: undefined,\n applyValueToInputSignal(node, value) {\n signalSetFn$1(node, value);\n },\n };\n})();\n\nconst ɵINPUT_SIGNAL_BRAND_READ_TYPE = /* @__PURE__ */ Symbol();\nconst ɵINPUT_SIGNAL_BRAND_WRITE_TYPE = /* @__PURE__ */ Symbol();\n/**\n * Creates an input signal.\n *\n * @param initialValue The initial value.\n * Can be set to {@link REQUIRED_UNSET_VALUE} for required inputs.\n * @param options Additional options for the input. e.g. a transform, or an alias.\n */\nfunction createInputSignal(initialValue, options) {\n const node = Object.create(INPUT_SIGNAL_NODE);\n node.value = initialValue;\n // Perf note: Always set `transformFn` here to ensure that `node` always\n // has the same v8 class shape, allowing monomorphic reads on input signals.\n node.transformFn = options?.transform;\n function inputValueFn() {\n // Record that someone looked at this signal.\n producerAccessed$1(node);\n if (node.value === REQUIRED_UNSET_VALUE) {\n throw new RuntimeError(-950 /* RuntimeErrorCode.REQUIRED_INPUT_NO_VALUE */, ngDevMode && 'Input is required but no value is available yet.');\n }\n return node.value;\n }\n inputValueFn[SIGNAL$1] = node;\n if (ngDevMode) {\n inputValueFn.toString = () => `[Input Signal: ${inputValueFn()}]`;\n }\n return inputValueFn;\n}\n\n/**\n * Convince closure compiler that the wrapped function has no side-effects.\n *\n * Closure compiler always assumes that `toString` has no side-effects. We use this quirk to\n * allow us to execute a function but have closure compiler mark the call as no-side-effects.\n * It is important that the return value for the `noSideEffects` function be assigned\n * to something which is retained otherwise the call to `noSideEffects` will be removed by closure\n * compiler.\n */\nfunction noSideEffects(fn) {\n return { toString: fn }.toString();\n}\n\nconst ANNOTATIONS = '__annotations__';\nconst PARAMETERS = '__parameters__';\nconst PROP_METADATA = '__prop__metadata__';\n/**\n * @suppress {globalThis}\n */\nfunction makeDecorator(name, props, parentClass, additionalProcessing, typeFn) {\n return noSideEffects(() => {\n const metaCtor = makeMetadataCtor(props);\n function DecoratorFactory(...args) {\n if (this instanceof DecoratorFactory) {\n metaCtor.call(this, ...args);\n return this;\n }\n const annotationInstance = new DecoratorFactory(...args);\n return function TypeDecorator(cls) {\n if (typeFn)\n typeFn(cls, ...args);\n // Use of Object.defineProperty is important since it creates non-enumerable property which\n // prevents the property is copied during subclassing.\n const annotations = cls.hasOwnProperty(ANNOTATIONS)\n ? cls[ANNOTATIONS]\n : Object.defineProperty(cls, ANNOTATIONS, { value: [] })[ANNOTATIONS];\n annotations.push(annotationInstance);\n if (additionalProcessing)\n additionalProcessing(cls);\n return cls;\n };\n }\n if (parentClass) {\n DecoratorFactory.prototype = Object.create(parentClass.prototype);\n }\n DecoratorFactory.prototype.ngMetadataName = name;\n DecoratorFactory.annotationCls = DecoratorFactory;\n return DecoratorFactory;\n });\n}\nfunction makeMetadataCtor(props) {\n return function ctor(...args) {\n if (props) {\n const values = props(...args);\n for (const propName in values) {\n this[propName] = values[propName];\n }\n }\n };\n}\nfunction makeParamDecorator(name, props, parentClass) {\n return noSideEffects(() => {\n const metaCtor = makeMetadataCtor(props);\n function ParamDecoratorFactory(...args) {\n if (this instanceof ParamDecoratorFactory) {\n metaCtor.apply(this, args);\n return this;\n }\n const annotationInstance = new ParamDecoratorFactory(...args);\n ParamDecorator.annotation = annotationInstance;\n return ParamDecorator;\n function ParamDecorator(cls, unusedKey, index) {\n // Use of Object.defineProperty is important since it creates non-enumerable property which\n // prevents the property is copied during subclassing.\n const parameters = cls.hasOwnProperty(PARAMETERS)\n ? cls[PARAMETERS]\n : Object.defineProperty(cls, PARAMETERS, { value: [] })[PARAMETERS];\n // there might be gaps if some in between parameters do not have annotations.\n // we pad with nulls.\n while (parameters.length <= index) {\n parameters.push(null);\n }\n (parameters[index] = parameters[index] || []).push(annotationInstance);\n return cls;\n }\n }\n if (parentClass) {\n ParamDecoratorFactory.prototype = Object.create(parentClass.prototype);\n }\n ParamDecoratorFactory.prototype.ngMetadataName = name;\n ParamDecoratorFactory.annotationCls = ParamDecoratorFactory;\n return ParamDecoratorFactory;\n });\n}\nfunction makePropDecorator(name, props, parentClass, additionalProcessing) {\n return noSideEffects(() => {\n const metaCtor = makeMetadataCtor(props);\n function PropDecoratorFactory(...args) {\n if (this instanceof PropDecoratorFactory) {\n metaCtor.apply(this, args);\n return this;\n }\n const decoratorInstance = new PropDecoratorFactory(...args);\n function PropDecorator(target, name) {\n // target is undefined with standard decorators. This case is not supported and will throw\n // if this decorator is used in JIT mode with standard decorators.\n if (target === undefined) {\n throw new Error('Standard Angular field decorators are not supported in JIT mode.');\n }\n const constructor = target.constructor;\n // Use of Object.defineProperty is important because it creates a non-enumerable property\n // which prevents the property from being copied during subclassing.\n const meta = constructor.hasOwnProperty(PROP_METADATA)\n ? constructor[PROP_METADATA]\n : Object.defineProperty(constructor, PROP_METADATA, { value: {} })[PROP_METADATA];\n meta[name] = (meta.hasOwnProperty(name) && meta[name]) || [];\n meta[name].unshift(decoratorInstance);\n if (additionalProcessing)\n additionalProcessing(target, name, ...args);\n }\n return PropDecorator;\n }\n if (parentClass) {\n PropDecoratorFactory.prototype = Object.create(parentClass.prototype);\n }\n PropDecoratorFactory.prototype.ngMetadataName = name;\n PropDecoratorFactory.annotationCls = PropDecoratorFactory;\n return PropDecoratorFactory;\n });\n}\n\nconst _global = globalThis;\n\nfunction ngDevModeResetPerfCounters() {\n const locationString = typeof location !== 'undefined' ? location.toString() : '';\n const newCounters = {\n namedConstructors: locationString.indexOf('ngDevMode=namedConstructors') != -1,\n firstCreatePass: 0,\n tNode: 0,\n tView: 0,\n rendererCreateTextNode: 0,\n rendererSetText: 0,\n rendererCreateElement: 0,\n rendererAddEventListener: 0,\n rendererSetAttribute: 0,\n rendererRemoveAttribute: 0,\n rendererSetProperty: 0,\n rendererSetClassName: 0,\n rendererAddClass: 0,\n rendererRemoveClass: 0,\n rendererSetStyle: 0,\n rendererRemoveStyle: 0,\n rendererDestroy: 0,\n rendererDestroyNode: 0,\n rendererMoveNode: 0,\n rendererRemoveNode: 0,\n rendererAppendChild: 0,\n rendererInsertBefore: 0,\n rendererCreateComment: 0,\n hydratedNodes: 0,\n hydratedComponents: 0,\n dehydratedViewsRemoved: 0,\n dehydratedViewsCleanupRuns: 0,\n componentsSkippedHydration: 0,\n };\n // Make sure to refer to ngDevMode as ['ngDevMode'] for closure.\n const allowNgDevModeTrue = locationString.indexOf('ngDevMode=false') === -1;\n if (!allowNgDevModeTrue) {\n _global['ngDevMode'] = false;\n }\n else {\n if (typeof _global['ngDevMode'] !== 'object') {\n _global['ngDevMode'] = {};\n }\n Object.assign(_global['ngDevMode'], newCounters);\n }\n return newCounters;\n}\n/**\n * This function checks to see if the `ngDevMode` has been set. If yes,\n * then we honor it, otherwise we default to dev mode with additional checks.\n *\n * The idea is that unless we are doing production build where we explicitly\n * set `ngDevMode == false` we should be helping the developer by providing\n * as much early warning and errors as possible.\n *\n * `ɵɵdefineComponent` is guaranteed to have been called before any component template functions\n * (and thus Ivy instructions), so a single initialization there is sufficient to ensure ngDevMode\n * is defined for the entire instruction set.\n *\n * When checking `ngDevMode` on toplevel, always init it before referencing it\n * (e.g. `((typeof ngDevMode === 'undefined' || ngDevMode) && initNgDevMode())`), otherwise you can\n * get a `ReferenceError` like in https://github.com/angular/angular/issues/31595.\n *\n * Details on possible values for `ngDevMode` can be found on its docstring.\n *\n * NOTE:\n * - changes to the `ngDevMode` name must be synced with `compiler-cli/src/tooling.ts`.\n */\nfunction initNgDevMode() {\n // The below checks are to ensure that calling `initNgDevMode` multiple times does not\n // reset the counters.\n // If the `ngDevMode` is not an object, then it means we have not created the perf counters\n // yet.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (typeof ngDevMode !== 'object' || Object.keys(ngDevMode).length === 0) {\n ngDevModeResetPerfCounters();\n }\n return typeof ngDevMode !== 'undefined' && !!ngDevMode;\n }\n return false;\n}\n\nfunction getClosureSafeProperty(objWithPropertyToExtract) {\n for (let key in objWithPropertyToExtract) {\n if (objWithPropertyToExtract[key] === getClosureSafeProperty) {\n return key;\n }\n }\n throw Error('Could not find renamed property on target object.');\n}\n/**\n * Sets properties on a target object from a source object, but only if\n * the property doesn't already exist on the target object.\n * @param target The target to set properties on\n * @param source The source of the property keys and values to set\n */\nfunction fillProperties(target, source) {\n for (const key in source) {\n if (source.hasOwnProperty(key) && !target.hasOwnProperty(key)) {\n target[key] = source[key];\n }\n }\n}\n\nfunction stringify(token) {\n if (typeof token === 'string') {\n return token;\n }\n if (Array.isArray(token)) {\n return '[' + token.map(stringify).join(', ') + ']';\n }\n if (token == null) {\n return '' + token;\n }\n if (token.overriddenName) {\n return `${token.overriddenName}`;\n }\n if (token.name) {\n return `${token.name}`;\n }\n const res = token.toString();\n if (res == null) {\n return '' + res;\n }\n const newLineIndex = res.indexOf('\\n');\n return newLineIndex === -1 ? res : res.substring(0, newLineIndex);\n}\n/**\n * Concatenates two strings with separator, allocating new strings only when necessary.\n *\n * @param before before string.\n * @param separator separator string.\n * @param after after string.\n * @returns concatenated string.\n */\nfunction concatStringsWithSpace(before, after) {\n return before == null || before === ''\n ? after === null\n ? ''\n : after\n : after == null || after === ''\n ? before\n : before + ' ' + after;\n}\n/**\n * Ellipses the string in the middle when longer than the max length\n *\n * @param string\n * @param maxLength of the output string\n * @returns ellipsed string with ... in the middle\n */\nfunction truncateMiddle(str, maxLength = 100) {\n if (!str || maxLength < 1 || str.length <= maxLength)\n return str;\n if (maxLength == 1)\n return str.substring(0, 1) + '...';\n const halfLimit = Math.round(maxLength / 2);\n return str.substring(0, halfLimit) + '...' + str.substring(str.length - halfLimit);\n}\n\nconst __forward_ref__ = getClosureSafeProperty({ __forward_ref__: getClosureSafeProperty });\n/**\n * Allows to refer to references which are not yet defined.\n *\n * For instance, `forwardRef` is used when the `token` which we need to refer to for the purposes of\n * DI is declared, but not yet defined. It is also used when the `token` which we use when creating\n * a query is not yet defined.\n *\n * `forwardRef` is also used to break circularities in standalone components imports.\n *\n * @usageNotes\n * ### Circular dependency example\n * {@example core/di/ts/forward_ref/forward_ref_spec.ts region='forward_ref'}\n *\n * ### Circular standalone reference import example\n * ```ts\n * @Component({\n * standalone: true,\n * imports: [ChildComponent],\n * selector: 'app-parent',\n * template: ``,\n * })\n * export class ParentComponent {\n * @Input() hideParent: boolean;\n * }\n *\n *\n * @Component({\n * standalone: true,\n * imports: [CommonModule, forwardRef(() => ParentComponent)],\n * selector: 'app-child',\n * template: ``,\n * })\n * export class ChildComponent {\n * @Input() hideParent: boolean;\n * }\n * ```\n *\n * @publicApi\n */\nfunction forwardRef(forwardRefFn) {\n forwardRefFn.__forward_ref__ = forwardRef;\n forwardRefFn.toString = function () {\n return stringify(this());\n };\n return forwardRefFn;\n}\n/**\n * Lazily retrieves the reference value from a forwardRef.\n *\n * Acts as the identity function when given a non-forward-ref value.\n *\n * @usageNotes\n * ### Example\n *\n * {@example core/di/ts/forward_ref/forward_ref_spec.ts region='resolve_forward_ref'}\n *\n * @see {@link forwardRef}\n * @publicApi\n */\nfunction resolveForwardRef(type) {\n return isForwardRef(type) ? type() : type;\n}\n/** Checks whether a function is wrapped by a `forwardRef`. */\nfunction isForwardRef(fn) {\n return (typeof fn === 'function' &&\n fn.hasOwnProperty(__forward_ref__) &&\n fn.__forward_ref__ === forwardRef);\n}\n\n// The functions in this file verify that the assumptions we are making\nfunction assertNumber(actual, msg) {\n if (!(typeof actual === 'number')) {\n throwError(msg, typeof actual, 'number', '===');\n }\n}\nfunction assertNumberInRange(actual, minInclusive, maxInclusive) {\n assertNumber(actual, 'Expected a number');\n assertLessThanOrEqual(actual, maxInclusive, 'Expected number to be less than or equal to');\n assertGreaterThanOrEqual(actual, minInclusive, 'Expected number to be greater than or equal to');\n}\nfunction assertString(actual, msg) {\n if (!(typeof actual === 'string')) {\n throwError(msg, actual === null ? 'null' : typeof actual, 'string', '===');\n }\n}\nfunction assertFunction(actual, msg) {\n if (!(typeof actual === 'function')) {\n throwError(msg, actual === null ? 'null' : typeof actual, 'function', '===');\n }\n}\nfunction assertEqual(actual, expected, msg) {\n if (!(actual == expected)) {\n throwError(msg, actual, expected, '==');\n }\n}\nfunction assertNotEqual(actual, expected, msg) {\n if (!(actual != expected)) {\n throwError(msg, actual, expected, '!=');\n }\n}\nfunction assertSame(actual, expected, msg) {\n if (!(actual === expected)) {\n throwError(msg, actual, expected, '===');\n }\n}\nfunction assertNotSame(actual, expected, msg) {\n if (!(actual !== expected)) {\n throwError(msg, actual, expected, '!==');\n }\n}\nfunction assertLessThan(actual, expected, msg) {\n if (!(actual < expected)) {\n throwError(msg, actual, expected, '<');\n }\n}\nfunction assertLessThanOrEqual(actual, expected, msg) {\n if (!(actual <= expected)) {\n throwError(msg, actual, expected, '<=');\n }\n}\nfunction assertGreaterThan(actual, expected, msg) {\n if (!(actual > expected)) {\n throwError(msg, actual, expected, '>');\n }\n}\nfunction assertGreaterThanOrEqual(actual, expected, msg) {\n if (!(actual >= expected)) {\n throwError(msg, actual, expected, '>=');\n }\n}\nfunction assertNotDefined(actual, msg) {\n if (actual != null) {\n throwError(msg, actual, null, '==');\n }\n}\nfunction assertDefined(actual, msg) {\n if (actual == null) {\n throwError(msg, actual, null, '!=');\n }\n}\nfunction throwError(msg, actual, expected, comparison) {\n throw new Error(`ASSERTION ERROR: ${msg}` +\n (comparison == null ? '' : ` [Expected=> ${expected} ${comparison} ${actual} <=Actual]`));\n}\nfunction assertDomNode(node) {\n if (!(node instanceof Node)) {\n throwError(`The provided value must be an instance of a DOM Node but got ${stringify(node)}`);\n }\n}\nfunction assertElement(node) {\n if (!(node instanceof Element)) {\n throwError(`The provided value must be an element but got ${stringify(node)}`);\n }\n}\nfunction assertIndexInRange(arr, index) {\n assertDefined(arr, 'Array must be defined.');\n const maxLen = arr.length;\n if (index < 0 || index >= maxLen) {\n throwError(`Index expected to be less than ${maxLen} but got ${index}`);\n }\n}\nfunction assertOneOf(value, ...validValues) {\n if (validValues.indexOf(value) !== -1)\n return true;\n throwError(`Expected value to be one of ${JSON.stringify(validValues)} but was ${JSON.stringify(value)}.`);\n}\nfunction assertNotReactive(fn) {\n if (getActiveConsumer$1() !== null) {\n throwError(`${fn}() should never be called in a reactive context.`);\n }\n}\n\n/**\n * Construct an injectable definition which defines how a token will be constructed by the DI\n * system, and in which injectors (if any) it will be available.\n *\n * This should be assigned to a static `ɵprov` field on a type, which will then be an\n * `InjectableType`.\n *\n * Options:\n * * `providedIn` determines which injectors will include the injectable, by either associating it\n * with an `@NgModule` or other `InjectorType`, or by specifying that this injectable should be\n * provided in the `'root'` injector, which will be the application-level injector in most apps.\n * * `factory` gives the zero argument function which will create an instance of the injectable.\n * The factory can call [`inject`](api/core/inject) to access the `Injector` and request injection\n * of dependencies.\n *\n * @codeGenApi\n * @publicApi This instruction has been emitted by ViewEngine for some time and is deployed to npm.\n */\nfunction ɵɵdefineInjectable(opts) {\n return {\n token: opts.token,\n providedIn: opts.providedIn || null,\n factory: opts.factory,\n value: undefined,\n };\n}\n/**\n * @deprecated in v8, delete after v10. This API should be used only by generated code, and that\n * code should now use ɵɵdefineInjectable instead.\n * @publicApi\n */\nconst defineInjectable = ɵɵdefineInjectable;\n/**\n * Construct an `InjectorDef` which configures an injector.\n *\n * This should be assigned to a static injector def (`ɵinj`) field on a type, which will then be an\n * `InjectorType`.\n *\n * Options:\n *\n * * `providers`: an optional array of providers to add to the injector. Each provider must\n * either have a factory or point to a type which has a `ɵprov` static property (the\n * type must be an `InjectableType`).\n * * `imports`: an optional array of imports of other `InjectorType`s or `InjectorTypeWithModule`s\n * whose providers will also be added to the injector. Locally provided types will override\n * providers from imports.\n *\n * @codeGenApi\n */\nfunction ɵɵdefineInjector(options) {\n return { providers: options.providers || [], imports: options.imports || [] };\n}\n/**\n * Read the injectable def (`ɵprov`) for `type` in a way which is immune to accidentally reading\n * inherited value.\n *\n * @param type A type which may have its own (non-inherited) `ɵprov`.\n */\nfunction getInjectableDef(type) {\n return getOwnDefinition(type, NG_PROV_DEF) || getOwnDefinition(type, NG_INJECTABLE_DEF);\n}\nfunction isInjectable(type) {\n return getInjectableDef(type) !== null;\n}\n/**\n * Return definition only if it is defined directly on `type` and is not inherited from a base\n * class of `type`.\n */\nfunction getOwnDefinition(type, field) {\n return type.hasOwnProperty(field) ? type[field] : null;\n}\n/**\n * Read the injectable def (`ɵprov`) for `type` or read the `ɵprov` from one of its ancestors.\n *\n * @param type A type which may have `ɵprov`, via inheritance.\n *\n * @deprecated Will be removed in a future version of Angular, where an error will occur in the\n * scenario if we find the `ɵprov` on an ancestor only.\n */\nfunction getInheritedInjectableDef(type) {\n const def = type && (type[NG_PROV_DEF] || type[NG_INJECTABLE_DEF]);\n if (def) {\n ngDevMode &&\n console.warn(`DEPRECATED: DI is instantiating a token \"${type.name}\" that inherits its @Injectable decorator but does not provide one itself.\\n` +\n `This will become an error in a future version of Angular. Please add @Injectable() to the \"${type.name}\" class.`);\n return def;\n }\n else {\n return null;\n }\n}\n/**\n * Read the injector def type in a way which is immune to accidentally reading inherited value.\n *\n * @param type type which may have an injector def (`ɵinj`)\n */\nfunction getInjectorDef(type) {\n return type && (type.hasOwnProperty(NG_INJ_DEF) || type.hasOwnProperty(NG_INJECTOR_DEF))\n ? type[NG_INJ_DEF]\n : null;\n}\nconst NG_PROV_DEF = getClosureSafeProperty({ ɵprov: getClosureSafeProperty });\nconst NG_INJ_DEF = getClosureSafeProperty({ ɵinj: getClosureSafeProperty });\n// We need to keep these around so we can read off old defs if new defs are unavailable\nconst NG_INJECTABLE_DEF = getClosureSafeProperty({ ngInjectableDef: getClosureSafeProperty });\nconst NG_INJECTOR_DEF = getClosureSafeProperty({ ngInjectorDef: getClosureSafeProperty });\n\n/**\n * Creates a token that can be used in a DI Provider.\n *\n * Use an `InjectionToken` whenever the type you are injecting is not reified (does not have a\n * runtime representation) such as when injecting an interface, callable type, array or\n * parameterized type.\n *\n * `InjectionToken` is parameterized on `T` which is the type of object which will be returned by\n * the `Injector`. This provides an additional level of type safety.\n *\n *
\n *\n * **Important Note**: Ensure that you use the same instance of the `InjectionToken` in both the\n * provider and the injection call. Creating a new instance of `InjectionToken` in different places,\n * even with the same description, will be treated as different tokens by Angular's DI system,\n * leading to a `NullInjectorError`.\n *\n *
\n *\n * \n *\n * When creating an `InjectionToken`, you can optionally specify a factory function which returns\n * (possibly by creating) a default value of the parameterized type `T`. This sets up the\n * `InjectionToken` using this factory as a provider as if it was defined explicitly in the\n * application's root injector. If the factory function, which takes zero arguments, needs to inject\n * dependencies, it can do so using the [`inject`](api/core/inject) function.\n * As you can see in the Tree-shakable InjectionToken example below.\n *\n * Additionally, if a `factory` is specified you can also specify the `providedIn` option, which\n * overrides the above behavior and marks the token as belonging to a particular `@NgModule` (note:\n * this option is now deprecated). As mentioned above, `'root'` is the default value for\n * `providedIn`.\n *\n * The `providedIn: NgModule` and `providedIn: 'any'` options are deprecated.\n *\n * @usageNotes\n * ### Basic Examples\n *\n * ### Plain InjectionToken\n *\n * {@example core/di/ts/injector_spec.ts region='InjectionToken'}\n *\n * ### Tree-shakable InjectionToken\n *\n * {@example core/di/ts/injector_spec.ts region='ShakableInjectionToken'}\n *\n * @publicApi\n */\nclass InjectionToken {\n /**\n * @param _desc Description for the token,\n * used only for debugging purposes,\n * it should but does not need to be unique\n * @param options Options for the token's usage, as described above\n */\n constructor(_desc, options) {\n this._desc = _desc;\n /** @internal */\n this.ngMetadataName = 'InjectionToken';\n this.ɵprov = undefined;\n if (typeof options == 'number') {\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n assertLessThan(options, 0, 'Only negative numbers are supported here');\n // This is a special hack to assign __NG_ELEMENT_ID__ to this instance.\n // See `InjectorMarkers`\n this.__NG_ELEMENT_ID__ = options;\n }\n else if (options !== undefined) {\n this.ɵprov = ɵɵdefineInjectable({\n token: this,\n providedIn: options.providedIn || 'root',\n factory: options.factory,\n });\n }\n }\n /**\n * @internal\n */\n get multi() {\n return this;\n }\n toString() {\n return `InjectionToken ${this._desc}`;\n }\n}\n\nlet _injectorProfilerContext;\nfunction getInjectorProfilerContext() {\n !ngDevMode && throwError('getInjectorProfilerContext should never be called in production mode');\n return _injectorProfilerContext;\n}\nfunction setInjectorProfilerContext(context) {\n !ngDevMode && throwError('setInjectorProfilerContext should never be called in production mode');\n const previous = _injectorProfilerContext;\n _injectorProfilerContext = context;\n return previous;\n}\nlet injectorProfilerCallback = null;\n/**\n * Sets the callback function which will be invoked during certain DI events within the\n * runtime (for example: injecting services, creating injectable instances, configuring providers)\n *\n * Warning: this function is *INTERNAL* and should not be relied upon in application's code.\n * The contract of the function might be changed in any release and/or the function can be removed\n * completely.\n *\n * @param profiler function provided by the caller or null value to disable profiling.\n */\nconst setInjectorProfiler = (injectorProfiler) => {\n !ngDevMode && throwError('setInjectorProfiler should never be called in production mode');\n injectorProfilerCallback = injectorProfiler;\n};\n/**\n * Injector profiler function which emits on DI events executed by the runtime.\n *\n * @param event InjectorProfilerEvent corresponding to the DI event being emitted\n */\nfunction injectorProfiler(event) {\n !ngDevMode && throwError('Injector profiler should never be called in production mode');\n if (injectorProfilerCallback != null /* both `null` and `undefined` */) {\n injectorProfilerCallback(event);\n }\n}\n/**\n * Emits an InjectorProfilerEventType.ProviderConfigured to the injector profiler. The data in the\n * emitted event includes the raw provider, as well as the token that provider is providing.\n *\n * @param eventProvider A provider object\n */\nfunction emitProviderConfiguredEvent(eventProvider, isViewProvider = false) {\n !ngDevMode && throwError('Injector profiler should never be called in production mode');\n let token;\n // if the provider is a TypeProvider (typeof provider is function) then the token is the\n // provider itself\n if (typeof eventProvider === 'function') {\n token = eventProvider;\n }\n // if the provider is an injection token, then the token is the injection token.\n else if (eventProvider instanceof InjectionToken) {\n token = eventProvider;\n }\n // in all other cases we can access the token via the `provide` property of the provider\n else {\n token = resolveForwardRef(eventProvider.provide);\n }\n let provider = eventProvider;\n // Injection tokens may define their own default provider which gets attached to the token itself\n // as `ɵprov`. In this case, we want to emit the provider that is attached to the token, not the\n // token itself.\n if (eventProvider instanceof InjectionToken) {\n provider = eventProvider.ɵprov || eventProvider;\n }\n injectorProfiler({\n type: 2 /* InjectorProfilerEventType.ProviderConfigured */,\n context: getInjectorProfilerContext(),\n providerRecord: { token, provider, isViewProvider },\n });\n}\n/**\n * Emits an event to the injector profiler with the instance that was created. Note that\n * the injector associated with this emission can be accessed by using getDebugInjectContext()\n *\n * @param instance an object created by an injector\n */\nfunction emitInstanceCreatedByInjectorEvent(instance) {\n !ngDevMode && throwError('Injector profiler should never be called in production mode');\n injectorProfiler({\n type: 1 /* InjectorProfilerEventType.InstanceCreatedByInjector */,\n context: getInjectorProfilerContext(),\n instance: { value: instance },\n });\n}\n/**\n * @param token DI token associated with injected service\n * @param value the instance of the injected service (i.e the result of `inject(token)`)\n * @param flags the flags that the token was injected with\n */\nfunction emitInjectEvent(token, value, flags) {\n !ngDevMode && throwError('Injector profiler should never be called in production mode');\n injectorProfiler({\n type: 0 /* InjectorProfilerEventType.Inject */,\n context: getInjectorProfilerContext(),\n service: { token, value, flags },\n });\n}\nfunction runInInjectorProfilerContext(injector, token, callback) {\n !ngDevMode &&\n throwError('runInInjectorProfilerContext should never be called in production mode');\n const prevInjectContext = setInjectorProfilerContext({ injector, token });\n try {\n callback();\n }\n finally {\n setInjectorProfilerContext(prevInjectContext);\n }\n}\n\nfunction isEnvironmentProviders(value) {\n return value && !!value.ɵproviders;\n}\n\nconst NG_COMP_DEF = getClosureSafeProperty({ ɵcmp: getClosureSafeProperty });\nconst NG_DIR_DEF = getClosureSafeProperty({ ɵdir: getClosureSafeProperty });\nconst NG_PIPE_DEF = getClosureSafeProperty({ ɵpipe: getClosureSafeProperty });\nconst NG_MOD_DEF = getClosureSafeProperty({ ɵmod: getClosureSafeProperty });\nconst NG_FACTORY_DEF = getClosureSafeProperty({ ɵfac: getClosureSafeProperty });\n/**\n * If a directive is diPublic, bloomAdd sets a property on the type with this constant as\n * the key and the directive's unique ID as the value. This allows us to map directives to their\n * bloom filter bit for DI.\n */\n// TODO(misko): This is wrong. The NG_ELEMENT_ID should never be minified.\nconst NG_ELEMENT_ID = getClosureSafeProperty({ __NG_ELEMENT_ID__: getClosureSafeProperty });\n/**\n * The `NG_ENV_ID` field on a DI token indicates special processing in the `EnvironmentInjector`:\n * getting such tokens from the `EnvironmentInjector` will bypass the standard DI resolution\n * strategy and instead will return implementation produced by the `NG_ENV_ID` factory function.\n *\n * This particular retrieval of DI tokens is mostly done to eliminate circular dependencies and\n * improve tree-shaking.\n */\nconst NG_ENV_ID = getClosureSafeProperty({ __NG_ENV_ID__: getClosureSafeProperty });\n\n/**\n * Used for stringify render output in Ivy.\n * Important! This function is very performance-sensitive and we should\n * be extra careful not to introduce megamorphic reads in it.\n * Check `core/test/render3/perf/render_stringify` for benchmarks and alternate implementations.\n */\nfunction renderStringify(value) {\n if (typeof value === 'string')\n return value;\n if (value == null)\n return '';\n // Use `String` so that it invokes the `toString` method of the value. Note that this\n // appears to be faster than calling `value.toString` (see `render_stringify` benchmark).\n return String(value);\n}\n/**\n * Used to stringify a value so that it can be displayed in an error message.\n *\n * Important! This function contains a megamorphic read and should only be\n * used for error messages.\n */\nfunction stringifyForError(value) {\n if (typeof value === 'function')\n return value.name || value.toString();\n if (typeof value === 'object' && value != null && typeof value.type === 'function') {\n return value.type.name || value.type.toString();\n }\n return renderStringify(value);\n}\n/**\n * Used to stringify a `Type` and including the file path and line number in which it is defined, if\n * possible, for better debugging experience.\n *\n * Important! This function contains a megamorphic read and should only be used for error messages.\n */\nfunction debugStringifyTypeForError(type) {\n // TODO(pmvald): Do some refactoring so that we can use getComponentDef here without creating\n // circular deps.\n let componentDef = type[NG_COMP_DEF] || null;\n if (componentDef !== null && componentDef.debugInfo) {\n return stringifyTypeFromDebugInfo(componentDef.debugInfo);\n }\n return stringifyForError(type);\n}\n// TODO(pmvald): Do some refactoring so that we can use the type ClassDebugInfo for the param\n// debugInfo here without creating circular deps.\nfunction stringifyTypeFromDebugInfo(debugInfo) {\n if (!debugInfo.filePath || !debugInfo.lineNumber) {\n return debugInfo.className;\n }\n else {\n return `${debugInfo.className} (at ${debugInfo.filePath}:${debugInfo.lineNumber})`;\n }\n}\n\n/** Called when directives inject each other (creating a circular dependency) */\nfunction throwCyclicDependencyError(token, path) {\n const depPath = path ? `. Dependency path: ${path.join(' > ')} > ${token}` : '';\n throw new RuntimeError(-200 /* RuntimeErrorCode.CYCLIC_DI_DEPENDENCY */, ngDevMode ? `Circular dependency in DI detected for ${token}${depPath}` : token);\n}\nfunction throwMixedMultiProviderError() {\n throw new Error(`Cannot mix multi providers and regular providers`);\n}\nfunction throwInvalidProviderError(ngModuleType, providers, provider) {\n if (ngModuleType && providers) {\n const providerDetail = providers.map((v) => (v == provider ? '?' + provider + '?' : '...'));\n throw new Error(`Invalid provider for the NgModule '${stringify(ngModuleType)}' - only instances of Provider and Type are allowed, got: [${providerDetail.join(', ')}]`);\n }\n else if (isEnvironmentProviders(provider)) {\n if (provider.ɵfromNgModule) {\n throw new RuntimeError(207 /* RuntimeErrorCode.PROVIDER_IN_WRONG_CONTEXT */, `Invalid providers from 'importProvidersFrom' present in a non-environment injector. 'importProvidersFrom' can't be used for component providers.`);\n }\n else {\n throw new RuntimeError(207 /* RuntimeErrorCode.PROVIDER_IN_WRONG_CONTEXT */, `Invalid providers present in a non-environment injector. 'EnvironmentProviders' can't be used for component providers.`);\n }\n }\n else {\n throw new Error('Invalid provider');\n }\n}\n/** Throws an error when a token is not found in DI. */\nfunction throwProviderNotFoundError(token, injectorName) {\n const errorMessage = ngDevMode &&\n `No provider for ${stringifyForError(token)} found${injectorName ? ` in ${injectorName}` : ''}`;\n throw new RuntimeError(-201 /* RuntimeErrorCode.PROVIDER_NOT_FOUND */, errorMessage);\n}\n\n/**\n * Injection flags for DI.\n *\n * @publicApi\n * @deprecated use an options object for [`inject`](api/core/inject) instead.\n */\nvar InjectFlags;\n(function (InjectFlags) {\n // TODO(alxhub): make this 'const' (and remove `InternalInjectFlags` enum) when ngc no longer\n // writes exports of it into ngfactory files.\n /** Check self and check parent injector if needed */\n InjectFlags[InjectFlags[\"Default\"] = 0] = \"Default\";\n /**\n * Specifies that an injector should retrieve a dependency from any injector until reaching the\n * host element of the current component. (Only used with Element Injector)\n */\n InjectFlags[InjectFlags[\"Host\"] = 1] = \"Host\";\n /** Don't ascend to ancestors of the node requesting injection. */\n InjectFlags[InjectFlags[\"Self\"] = 2] = \"Self\";\n /** Skip the node that is requesting injection. */\n InjectFlags[InjectFlags[\"SkipSelf\"] = 4] = \"SkipSelf\";\n /** Inject `defaultValue` instead if token not found. */\n InjectFlags[InjectFlags[\"Optional\"] = 8] = \"Optional\";\n})(InjectFlags || (InjectFlags = {}));\n\n/**\n * Current implementation of inject.\n *\n * By default, it is `injectInjectorOnly`, which makes it `Injector`-only aware. It can be changed\n * to `directiveInject`, which brings in the `NodeInjector` system of ivy. It is designed this\n * way for two reasons:\n * 1. `Injector` should not depend on ivy logic.\n * 2. To maintain tree shake-ability we don't want to bring in unnecessary code.\n */\nlet _injectImplementation;\nfunction getInjectImplementation() {\n return _injectImplementation;\n}\n/**\n * Sets the current inject implementation.\n */\nfunction setInjectImplementation(impl) {\n const previous = _injectImplementation;\n _injectImplementation = impl;\n return previous;\n}\n/**\n * Injects `root` tokens in limp mode.\n *\n * If no injector exists, we can still inject tree-shakable providers which have `providedIn` set to\n * `\"root\"`. This is known as the limp mode injection. In such case the value is stored in the\n * injectable definition.\n */\nfunction injectRootLimpMode(token, notFoundValue, flags) {\n const injectableDef = getInjectableDef(token);\n if (injectableDef && injectableDef.providedIn == 'root') {\n return injectableDef.value === undefined\n ? (injectableDef.value = injectableDef.factory())\n : injectableDef.value;\n }\n if (flags & InjectFlags.Optional)\n return null;\n if (notFoundValue !== undefined)\n return notFoundValue;\n throwProviderNotFoundError(token, 'Injector');\n}\n/**\n * Assert that `_injectImplementation` is not `fn`.\n *\n * This is useful, to prevent infinite recursion.\n *\n * @param fn Function which it should not equal to\n */\nfunction assertInjectImplementationNotEqual(fn) {\n ngDevMode &&\n assertNotEqual(_injectImplementation, fn, 'Calling ɵɵinject would cause infinite recursion');\n}\n\nconst _THROW_IF_NOT_FOUND = {};\nconst THROW_IF_NOT_FOUND = _THROW_IF_NOT_FOUND;\n/*\n * Name of a property (that we patch onto DI decorator), which is used as an annotation of which\n * InjectFlag this decorator represents. This allows to avoid direct references to the DI decorators\n * in the code, thus making them tree-shakable.\n */\nconst DI_DECORATOR_FLAG = '__NG_DI_FLAG__';\nconst NG_TEMP_TOKEN_PATH = 'ngTempTokenPath';\nconst NG_TOKEN_PATH = 'ngTokenPath';\nconst NEW_LINE = /\\n/gm;\nconst NO_NEW_LINE = 'ɵ';\nconst SOURCE = '__source';\n/**\n * Current injector value used by `inject`.\n * - `undefined`: it is an error to call `inject`\n * - `null`: `inject` can be called but there is no injector (limp-mode).\n * - Injector instance: Use the injector for resolution.\n */\nlet _currentInjector = undefined;\nfunction getCurrentInjector() {\n return _currentInjector;\n}\nfunction setCurrentInjector(injector) {\n const former = _currentInjector;\n _currentInjector = injector;\n return former;\n}\nfunction injectInjectorOnly(token, flags = InjectFlags.Default) {\n if (_currentInjector === undefined) {\n throw new RuntimeError(-203 /* RuntimeErrorCode.MISSING_INJECTION_CONTEXT */, ngDevMode &&\n `inject() must be called from an injection context such as a constructor, a factory function, a field initializer, or a function used with \\`runInInjectionContext\\`.`);\n }\n else if (_currentInjector === null) {\n return injectRootLimpMode(token, undefined, flags);\n }\n else {\n const value = _currentInjector.get(token, flags & InjectFlags.Optional ? null : undefined, flags);\n ngDevMode && emitInjectEvent(token, value, flags);\n return value;\n }\n}\nfunction ɵɵinject(token, flags = InjectFlags.Default) {\n return (getInjectImplementation() || injectInjectorOnly)(resolveForwardRef(token), flags);\n}\n/**\n * Throws an error indicating that a factory function could not be generated by the compiler for a\n * particular class.\n *\n * The name of the class is not mentioned here, but will be in the generated factory function name\n * and thus in the stack trace.\n *\n * @codeGenApi\n */\nfunction ɵɵinvalidFactoryDep(index) {\n throw new RuntimeError(202 /* RuntimeErrorCode.INVALID_FACTORY_DEPENDENCY */, ngDevMode &&\n `This constructor is not compatible with Angular Dependency Injection because its dependency at index ${index} of the parameter list is invalid.\nThis can happen if the dependency type is a primitive like a string or if an ancestor of this class is missing an Angular decorator.\n\nPlease 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.`);\n}\n/**\n * Injects a token from the currently active injector.\n * `inject` is only supported in an [injection context](guide/di/dependency-injection-context). It\n * can be used during:\n * - Construction (via the `constructor`) of a class being instantiated by the DI system, such\n * as an `@Injectable` or `@Component`.\n * - In the initializer for fields of such classes.\n * - In the factory function specified for `useFactory` of a `Provider` or an `@Injectable`.\n * - In the `factory` function specified for an `InjectionToken`.\n * - In a stackframe of a function call in a DI context\n *\n * @param token A token that represents a dependency that should be injected.\n * @param flags Optional flags that control how injection is executed.\n * The flags correspond to injection strategies that can be specified with\n * parameter decorators `@Host`, `@Self`, `@SkipSelf`, and `@Optional`.\n * @returns the injected value if operation is successful, `null` otherwise.\n * @throws if called outside of a supported context.\n *\n * @usageNotes\n * In practice the `inject()` calls are allowed in a constructor, a constructor parameter and a\n * field initializer:\n *\n * ```typescript\n * @Injectable({providedIn: 'root'})\n * export class Car {\n * radio: Radio|undefined;\n * // OK: field initializer\n * spareTyre = inject(Tyre);\n *\n * constructor() {\n * // OK: constructor body\n * this.radio = inject(Radio);\n * }\n * }\n * ```\n *\n * It is also legal to call `inject` from a provider's factory:\n *\n * ```typescript\n * providers: [\n * {provide: Car, useFactory: () => {\n * // OK: a class factory\n * const engine = inject(Engine);\n * return new Car(engine);\n * }}\n * ]\n * ```\n *\n * Calls to the `inject()` function outside of the class creation context will result in error. Most\n * notably, calls to `inject()` are disallowed after a class instance was created, in methods\n * (including lifecycle hooks):\n *\n * ```typescript\n * @Component({ ... })\n * export class CarComponent {\n * ngOnInit() {\n * // ERROR: too late, the component instance was already created\n * const engine = inject(Engine);\n * engine.start();\n * }\n * }\n * ```\n *\n * @publicApi\n */\nfunction inject(token, flags = InjectFlags.Default) {\n // The `as any` here _shouldn't_ be necessary, but without it JSCompiler\n // throws a disambiguation error due to the multiple signatures.\n return ɵɵinject(token, convertToBitFlags(flags));\n}\n// Converts object-based DI flags (`InjectOptions`) to bit flags (`InjectFlags`).\nfunction convertToBitFlags(flags) {\n if (typeof flags === 'undefined' || typeof flags === 'number') {\n return flags;\n }\n // While TypeScript doesn't accept it without a cast, bitwise OR with false-y values in\n // JavaScript is a no-op. We can use that for a very codesize-efficient conversion from\n // `InjectOptions` to `InjectFlags`.\n return (0 /* InternalInjectFlags.Default */ | // comment to force a line break in the formatter\n (flags.optional && 8 /* InternalInjectFlags.Optional */) |\n (flags.host && 1 /* InternalInjectFlags.Host */) |\n (flags.self && 2 /* InternalInjectFlags.Self */) |\n (flags.skipSelf && 4 /* InternalInjectFlags.SkipSelf */));\n}\nfunction injectArgs(types) {\n const args = [];\n for (let i = 0; i < types.length; i++) {\n const arg = resolveForwardRef(types[i]);\n if (Array.isArray(arg)) {\n if (arg.length === 0) {\n throw new RuntimeError(900 /* RuntimeErrorCode.INVALID_DIFFER_INPUT */, ngDevMode && 'Arguments array must have arguments.');\n }\n let type = undefined;\n let flags = InjectFlags.Default;\n for (let j = 0; j < arg.length; j++) {\n const meta = arg[j];\n const flag = getInjectFlag(meta);\n if (typeof flag === 'number') {\n // Special case when we handle @Inject decorator.\n if (flag === -1 /* DecoratorFlags.Inject */) {\n type = meta.token;\n }\n else {\n flags |= flag;\n }\n }\n else {\n type = meta;\n }\n }\n args.push(ɵɵinject(type, flags));\n }\n else {\n args.push(ɵɵinject(arg));\n }\n }\n return args;\n}\n/**\n * Attaches a given InjectFlag to a given decorator using monkey-patching.\n * Since DI decorators can be used in providers `deps` array (when provider is configured using\n * `useFactory`) without initialization (e.g. `Host`) and as an instance (e.g. `new Host()`), we\n * attach the flag to make it available both as a static property and as a field on decorator\n * instance.\n *\n * @param decorator Provided DI decorator.\n * @param flag InjectFlag that should be applied.\n */\nfunction attachInjectFlag(decorator, flag) {\n decorator[DI_DECORATOR_FLAG] = flag;\n decorator.prototype[DI_DECORATOR_FLAG] = flag;\n return decorator;\n}\n/**\n * Reads monkey-patched property that contains InjectFlag attached to a decorator.\n *\n * @param token Token that may contain monkey-patched DI flags property.\n */\nfunction getInjectFlag(token) {\n return token[DI_DECORATOR_FLAG];\n}\nfunction catchInjectorError(e, token, injectorErrorName, source) {\n const tokenPath = e[NG_TEMP_TOKEN_PATH];\n if (token[SOURCE]) {\n tokenPath.unshift(token[SOURCE]);\n }\n e.message = formatError('\\n' + e.message, tokenPath, injectorErrorName, source);\n e[NG_TOKEN_PATH] = tokenPath;\n e[NG_TEMP_TOKEN_PATH] = null;\n throw e;\n}\nfunction formatError(text, obj, injectorErrorName, source = null) {\n text = text && text.charAt(0) === '\\n' && text.charAt(1) == NO_NEW_LINE ? text.slice(2) : text;\n let context = stringify(obj);\n if (Array.isArray(obj)) {\n context = obj.map(stringify).join(' -> ');\n }\n else if (typeof obj === 'object') {\n let parts = [];\n for (let key in obj) {\n if (obj.hasOwnProperty(key)) {\n let value = obj[key];\n parts.push(key + ':' + (typeof value === 'string' ? JSON.stringify(value) : stringify(value)));\n }\n }\n context = `{${parts.join(', ')}}`;\n }\n return `${injectorErrorName}${source ? '(' + source + ')' : ''}[${context}]: ${text.replace(NEW_LINE, '\\n ')}`;\n}\n\n/**\n * Inject decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Inject = attachInjectFlag(\n// Disable tslint because `DecoratorFlags` is a const enum which gets inlined.\nmakeParamDecorator('Inject', (token) => ({ token })), -1 /* DecoratorFlags.Inject */);\n/**\n * Optional decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Optional = \n// Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.\n// tslint:disable-next-line: no-toplevel-property-access\nattachInjectFlag(makeParamDecorator('Optional'), 8 /* InternalInjectFlags.Optional */);\n/**\n * Self decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Self = \n// Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.\n// tslint:disable-next-line: no-toplevel-property-access\nattachInjectFlag(makeParamDecorator('Self'), 2 /* InternalInjectFlags.Self */);\n/**\n * `SkipSelf` decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst SkipSelf = \n// Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.\n// tslint:disable-next-line: no-toplevel-property-access\nattachInjectFlag(makeParamDecorator('SkipSelf'), 4 /* InternalInjectFlags.SkipSelf */);\n/**\n * Host decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Host = \n// Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.\n// tslint:disable-next-line: no-toplevel-property-access\nattachInjectFlag(makeParamDecorator('Host'), 1 /* InternalInjectFlags.Host */);\n\nfunction getFactoryDef(type, throwNotFound) {\n const hasFactoryDef = type.hasOwnProperty(NG_FACTORY_DEF);\n if (!hasFactoryDef && throwNotFound === true && ngDevMode) {\n throw new Error(`Type ${stringify(type)} does not have 'ɵfac' property.`);\n }\n return hasFactoryDef ? type[NG_FACTORY_DEF] : null;\n}\n\n/**\n * Determines if the contents of two arrays is identical\n *\n * @param a first array\n * @param b second array\n * @param identityAccessor Optional function for extracting stable object identity from a value in\n * the array.\n */\nfunction arrayEquals(a, b, identityAccessor) {\n if (a.length !== b.length)\n return false;\n for (let i = 0; i < a.length; i++) {\n let valueA = a[i];\n let valueB = b[i];\n if (identityAccessor) {\n valueA = identityAccessor(valueA);\n valueB = identityAccessor(valueB);\n }\n if (valueB !== valueA) {\n return false;\n }\n }\n return true;\n}\n/**\n * Flattens an array.\n */\nfunction flatten(list) {\n return list.flat(Number.POSITIVE_INFINITY);\n}\nfunction deepForEach(input, fn) {\n input.forEach((value) => (Array.isArray(value) ? deepForEach(value, fn) : fn(value)));\n}\nfunction addToArray(arr, index, value) {\n // perf: array.push is faster than array.splice!\n if (index >= arr.length) {\n arr.push(value);\n }\n else {\n arr.splice(index, 0, value);\n }\n}\nfunction removeFromArray(arr, index) {\n // perf: array.pop is faster than array.splice!\n if (index >= arr.length - 1) {\n return arr.pop();\n }\n else {\n return arr.splice(index, 1)[0];\n }\n}\nfunction newArray(size, value) {\n const list = [];\n for (let i = 0; i < size; i++) {\n list.push(value);\n }\n return list;\n}\n/**\n * Remove item from array (Same as `Array.splice()` but faster.)\n *\n * `Array.splice()` is not as fast because it has to allocate an array for the elements which were\n * removed. This causes memory pressure and slows down code when most of the time we don't\n * care about the deleted items array.\n *\n * https://jsperf.com/fast-array-splice (About 20x faster)\n *\n * @param array Array to splice\n * @param index Index of element in array to remove.\n * @param count Number of items to remove.\n */\nfunction arraySplice(array, index, count) {\n const length = array.length - count;\n while (index < length) {\n array[index] = array[index + count];\n index++;\n }\n while (count--) {\n array.pop(); // shrink the array\n }\n}\n/**\n * Same as `Array.splice(index, 0, value)` but faster.\n *\n * `Array.splice()` is not fast because it has to allocate an array for the elements which were\n * removed. This causes memory pressure and slows down code when most of the time we don't\n * care about the deleted items array.\n *\n * @param array Array to splice.\n * @param index Index in array where the `value` should be added.\n * @param value Value to add to array.\n */\nfunction arrayInsert(array, index, value) {\n ngDevMode && assertLessThanOrEqual(index, array.length, \"Can't insert past array end.\");\n let end = array.length;\n while (end > index) {\n const previousEnd = end - 1;\n array[end] = array[previousEnd];\n end = previousEnd;\n }\n array[index] = value;\n}\n/**\n * Same as `Array.splice2(index, 0, value1, value2)` but faster.\n *\n * `Array.splice()` is not fast because it has to allocate an array for the elements which were\n * removed. This causes memory pressure and slows down code when most of the time we don't\n * care about the deleted items array.\n *\n * @param array Array to splice.\n * @param index Index in array where the `value` should be added.\n * @param value1 Value to add to array.\n * @param value2 Value to add to array.\n */\nfunction arrayInsert2(array, index, value1, value2) {\n ngDevMode && assertLessThanOrEqual(index, array.length, \"Can't insert past array end.\");\n let end = array.length;\n if (end == index) {\n // inserting at the end.\n array.push(value1, value2);\n }\n else if (end === 1) {\n // corner case when we have less items in array than we have items to insert.\n array.push(value2, array[0]);\n array[0] = value1;\n }\n else {\n end--;\n array.push(array[end - 1], array[end]);\n while (end > index) {\n const previousEnd = end - 2;\n array[end] = array[previousEnd];\n end--;\n }\n array[index] = value1;\n array[index + 1] = value2;\n }\n}\n/**\n * Get an index of an `value` in a sorted `array`.\n *\n * NOTE:\n * - This uses binary search algorithm for fast removals.\n *\n * @param array A sorted array to binary search.\n * @param value The value to look for.\n * @returns index of the value.\n * - positive index if value found.\n * - negative index if value not found. (`~index` to get the value where it should have been\n * located)\n */\nfunction arrayIndexOfSorted(array, value) {\n return _arrayIndexOfSorted(array, value, 0);\n}\n/**\n * Set a `value` for a `key`.\n *\n * @param keyValueArray to modify.\n * @param key The key to locate or create.\n * @param value The value to set for a `key`.\n * @returns index (always even) of where the value vas set.\n */\nfunction keyValueArraySet(keyValueArray, key, value) {\n let index = keyValueArrayIndexOf(keyValueArray, key);\n if (index >= 0) {\n // if we found it set it.\n keyValueArray[index | 1] = value;\n }\n else {\n index = ~index;\n arrayInsert2(keyValueArray, index, key, value);\n }\n return index;\n}\n/**\n * Retrieve a `value` for a `key` (on `undefined` if not found.)\n *\n * @param keyValueArray to search.\n * @param key The key to locate.\n * @return The `value` stored at the `key` location or `undefined if not found.\n */\nfunction keyValueArrayGet(keyValueArray, key) {\n const index = keyValueArrayIndexOf(keyValueArray, key);\n if (index >= 0) {\n // if we found it retrieve it.\n return keyValueArray[index | 1];\n }\n return undefined;\n}\n/**\n * Retrieve a `key` index value in the array or `-1` if not found.\n *\n * @param keyValueArray to search.\n * @param key The key to locate.\n * @returns index of where the key is (or should have been.)\n * - positive (even) index if key found.\n * - negative index if key not found. (`~index` (even) to get the index where it should have\n * been inserted.)\n */\nfunction keyValueArrayIndexOf(keyValueArray, key) {\n return _arrayIndexOfSorted(keyValueArray, key, 1);\n}\n/**\n * Delete a `key` (and `value`) from the `KeyValueArray`.\n *\n * @param keyValueArray to modify.\n * @param key The key to locate or delete (if exist).\n * @returns index of where the key was (or should have been.)\n * - positive (even) index if key found and deleted.\n * - negative index if key not found. (`~index` (even) to get the index where it should have\n * been.)\n */\nfunction keyValueArrayDelete(keyValueArray, key) {\n const index = keyValueArrayIndexOf(keyValueArray, key);\n if (index >= 0) {\n // if we found it remove it.\n arraySplice(keyValueArray, index, 2);\n }\n return index;\n}\n/**\n * INTERNAL: Get an index of an `value` in a sorted `array` by grouping search by `shift`.\n *\n * NOTE:\n * - This uses binary search algorithm for fast removals.\n *\n * @param array A sorted array to binary search.\n * @param value The value to look for.\n * @param shift grouping shift.\n * - `0` means look at every location\n * - `1` means only look at every other (even) location (the odd locations are to be ignored as\n * they are values.)\n * @returns index of the value.\n * - positive index if value found.\n * - negative index if value not found. (`~index` to get the value where it should have been\n * inserted)\n */\nfunction _arrayIndexOfSorted(array, value, shift) {\n ngDevMode && assertEqual(Array.isArray(array), true, 'Expecting an array');\n let start = 0;\n let end = array.length >> shift;\n while (end !== start) {\n const middle = start + ((end - start) >> 1); // find the middle.\n const current = array[middle << shift];\n if (value === current) {\n return middle << shift;\n }\n else if (current > value) {\n end = middle;\n }\n else {\n start = middle + 1; // We already searched middle so make it non-inclusive by adding 1\n }\n }\n return ~(end << shift);\n}\n\n/**\n * This file contains reuseable \"empty\" symbols that can be used as default return values\n * in different parts of the rendering code. Because the same symbols are returned, this\n * allows for identity checks against these values to be consistently used by the framework\n * code.\n */\nconst EMPTY_OBJ = {};\nconst EMPTY_ARRAY = [];\n// freezing the values prevents any code from accidentally inserting new values in\nif ((typeof ngDevMode === 'undefined' || ngDevMode) && initNgDevMode()) {\n // These property accesses can be ignored because ngDevMode will be set to false\n // when optimizing code and the whole if statement will be dropped.\n // tslint:disable-next-line:no-toplevel-property-access\n Object.freeze(EMPTY_OBJ);\n // tslint:disable-next-line:no-toplevel-property-access\n Object.freeze(EMPTY_ARRAY);\n}\n\n/**\n * A multi-provider token for initialization functions that will run upon construction of an\n * environment injector.\n *\n * Note: As opposed to the `APP_INITIALIZER` token, the `ENVIRONMENT_INITIALIZER` functions are not awaited,\n * hence they should not be `async`.\n *\n * @publicApi\n */\nconst ENVIRONMENT_INITIALIZER = new InjectionToken(ngDevMode ? 'ENVIRONMENT_INITIALIZER' : '');\n\n/**\n * An InjectionToken that gets the current `Injector` for `createInjector()`-style injectors.\n *\n * Requesting this token instead of `Injector` allows `StaticInjector` to be tree-shaken from a\n * project.\n *\n * @publicApi\n */\nconst INJECTOR$1 = new InjectionToken(ngDevMode ? 'INJECTOR' : '', \n// Disable tslint because this is const enum which gets inlined not top level prop access.\n// tslint:disable-next-line: no-toplevel-property-access\n-1 /* InjectorMarkers.Injector */);\n\nconst INJECTOR_DEF_TYPES = new InjectionToken(ngDevMode ? 'INJECTOR_DEF_TYPES' : '');\n\nclass NullInjector {\n get(token, notFoundValue = THROW_IF_NOT_FOUND) {\n if (notFoundValue === THROW_IF_NOT_FOUND) {\n const error = new Error(`NullInjectorError: No provider for ${stringify(token)}!`);\n error.name = 'NullInjectorError';\n throw error;\n }\n return notFoundValue;\n }\n}\n\n/**\n * The strategy that the default change detector uses to detect changes.\n * When set, takes effect the next time change detection is triggered.\n *\n * @see [Change detection usage](/api/core/ChangeDetectorRef?tab=usage-notes)\n * @see [Skipping component subtrees](/best-practices/skipping-subtrees)\n *\n * @publicApi\n */\nvar ChangeDetectionStrategy;\n(function (ChangeDetectionStrategy) {\n /**\n * Use the `CheckOnce` strategy, meaning that automatic change detection is deactivated\n * until reactivated by setting the strategy to `Default` (`CheckAlways`).\n * Change detection can still be explicitly invoked.\n * This strategy applies to all child directives and cannot be overridden.\n */\n ChangeDetectionStrategy[ChangeDetectionStrategy[\"OnPush\"] = 0] = \"OnPush\";\n /**\n * Use the default `CheckAlways` strategy, in which change detection is automatic until\n * explicitly deactivated.\n */\n ChangeDetectionStrategy[ChangeDetectionStrategy[\"Default\"] = 1] = \"Default\";\n})(ChangeDetectionStrategy || (ChangeDetectionStrategy = {}));\n\n/**\n * Defines the CSS styles encapsulation policies for the {@link Component} decorator's\n * `encapsulation` option.\n *\n * See {@link Component#encapsulation encapsulation}.\n *\n * @usageNotes\n * ### Example\n *\n * {@example core/ts/metadata/encapsulation.ts region='longform'}\n *\n * @publicApi\n */\nvar ViewEncapsulation$1;\n(function (ViewEncapsulation) {\n // TODO: consider making `ViewEncapsulation` a `const enum` instead. See\n // https://github.com/angular/angular/issues/44119 for additional information.\n /**\n * Emulates a native Shadow DOM encapsulation behavior by adding a specific attribute to the\n * component's host element and applying the same attribute to all the CSS selectors provided\n * via {@link Component#styles styles} or {@link Component#styleUrls styleUrls}.\n *\n * This is the default option.\n */\n ViewEncapsulation[ViewEncapsulation[\"Emulated\"] = 0] = \"Emulated\";\n // Historically the 1 value was for `Native` encapsulation which has been removed as of v11.\n /**\n * Doesn't provide any sort of CSS style encapsulation, meaning that all the styles provided\n * via {@link Component#styles styles} or {@link Component#styleUrls styleUrls} are applicable\n * to any HTML element of the application regardless of their host Component.\n */\n ViewEncapsulation[ViewEncapsulation[\"None\"] = 2] = \"None\";\n /**\n * Uses the browser's native Shadow DOM API to encapsulate CSS styles, meaning that it creates\n * a ShadowRoot for the component's host element which is then used to encapsulate\n * all the Component's styling.\n */\n ViewEncapsulation[ViewEncapsulation[\"ShadowDom\"] = 3] = \"ShadowDom\";\n})(ViewEncapsulation$1 || (ViewEncapsulation$1 = {}));\n\n/** Flags describing an input for a directive. */\nvar InputFlags;\n(function (InputFlags) {\n InputFlags[InputFlags[\"None\"] = 0] = \"None\";\n InputFlags[InputFlags[\"SignalBased\"] = 1] = \"SignalBased\";\n InputFlags[InputFlags[\"HasDecoratorInputTransform\"] = 2] = \"HasDecoratorInputTransform\";\n})(InputFlags || (InputFlags = {}));\n\n/**\n * Returns an index of `classToSearch` in `className` taking token boundaries into account.\n *\n * `classIndexOf('AB A', 'A', 0)` will be 3 (not 0 since `AB!==A`)\n *\n * @param className A string containing classes (whitespace separated)\n * @param classToSearch A class name to locate\n * @param startingIndex Starting location of search\n * @returns an index of the located class (or -1 if not found)\n */\nfunction classIndexOf(className, classToSearch, startingIndex) {\n ngDevMode && assertNotEqual(classToSearch, '', 'can not look for \"\" string.');\n let end = className.length;\n while (true) {\n const foundIndex = className.indexOf(classToSearch, startingIndex);\n if (foundIndex === -1)\n return foundIndex;\n if (foundIndex === 0 || className.charCodeAt(foundIndex - 1) <= 32 /* CharCode.SPACE */) {\n // Ensure that it has leading whitespace\n const length = classToSearch.length;\n if (foundIndex + length === end ||\n className.charCodeAt(foundIndex + length) <= 32 /* CharCode.SPACE */) {\n // Ensure that it has trailing whitespace\n return foundIndex;\n }\n }\n // False positive, keep searching from where we left off.\n startingIndex = foundIndex + 1;\n }\n}\n\n/**\n * Assigns all attribute values to the provided element via the inferred renderer.\n *\n * This function accepts two forms of attribute entries:\n *\n * default: (key, value):\n * attrs = [key1, value1, key2, value2]\n *\n * namespaced: (NAMESPACE_MARKER, uri, name, value)\n * attrs = [NAMESPACE_MARKER, uri, name, value, NAMESPACE_MARKER, uri, name, value]\n *\n * The `attrs` array can contain a mix of both the default and namespaced entries.\n * The \"default\" values are set without a marker, but if the function comes across\n * a marker value then it will attempt to set a namespaced value. If the marker is\n * not of a namespaced value then the function will quit and return the index value\n * where it stopped during the iteration of the attrs array.\n *\n * See [AttributeMarker] to understand what the namespace marker value is.\n *\n * Note that this instruction does not support assigning style and class values to\n * an element. See `elementStart` and `elementHostAttrs` to learn how styling values\n * are applied to an element.\n * @param renderer The renderer to be used\n * @param native The element that the attributes will be assigned to\n * @param attrs The attribute array of values that will be assigned to the element\n * @returns the index value that was last accessed in the attributes array\n */\nfunction setUpAttributes(renderer, native, attrs) {\n let i = 0;\n while (i < attrs.length) {\n const value = attrs[i];\n if (typeof value === 'number') {\n // only namespaces are supported. Other value types (such as style/class\n // entries) are not supported in this function.\n if (value !== 0 /* AttributeMarker.NamespaceURI */) {\n break;\n }\n // we just landed on the marker value ... therefore\n // we should skip to the next entry\n i++;\n const namespaceURI = attrs[i++];\n const attrName = attrs[i++];\n const attrVal = attrs[i++];\n ngDevMode && ngDevMode.rendererSetAttribute++;\n renderer.setAttribute(native, attrName, attrVal, namespaceURI);\n }\n else {\n // attrName is string;\n const attrName = value;\n const attrVal = attrs[++i];\n // Standard attributes\n ngDevMode && ngDevMode.rendererSetAttribute++;\n if (isAnimationProp(attrName)) {\n renderer.setProperty(native, attrName, attrVal);\n }\n else {\n renderer.setAttribute(native, attrName, attrVal);\n }\n i++;\n }\n }\n // another piece of code may iterate over the same attributes array. Therefore\n // it may be helpful to return the exact spot where the attributes array exited\n // whether by running into an unsupported marker or if all the static values were\n // iterated over.\n return i;\n}\n/**\n * Test whether the given value is a marker that indicates that the following\n * attribute values in a `TAttributes` array are only the names of attributes,\n * and not name-value pairs.\n * @param marker The attribute marker to test.\n * @returns true if the marker is a \"name-only\" marker (e.g. `Bindings`, `Template` or `I18n`).\n */\nfunction isNameOnlyAttributeMarker(marker) {\n return (marker === 3 /* AttributeMarker.Bindings */ ||\n marker === 4 /* AttributeMarker.Template */ ||\n marker === 6 /* AttributeMarker.I18n */);\n}\nfunction isAnimationProp(name) {\n // Perf note: accessing charCodeAt to check for the first character of a string is faster as\n // compared to accessing a character at index 0 (ex. name[0]). The main reason for this is that\n // charCodeAt doesn't allocate memory to return a substring.\n return name.charCodeAt(0) === 64 /* CharCode.AT_SIGN */;\n}\n/**\n * Merges `src` `TAttributes` into `dst` `TAttributes` removing any duplicates in the process.\n *\n * This merge function keeps the order of attrs same.\n *\n * @param dst Location of where the merged `TAttributes` should end up.\n * @param src `TAttributes` which should be appended to `dst`\n */\nfunction mergeHostAttrs(dst, src) {\n if (src === null || src.length === 0) {\n // do nothing\n }\n else if (dst === null || dst.length === 0) {\n // We have source, but dst is empty, just make a copy.\n dst = src.slice();\n }\n else {\n let srcMarker = -1 /* AttributeMarker.ImplicitAttributes */;\n for (let i = 0; i < src.length; i++) {\n const item = src[i];\n if (typeof item === 'number') {\n srcMarker = item;\n }\n else {\n if (srcMarker === 0 /* AttributeMarker.NamespaceURI */) {\n // Case where we need to consume `key1`, `key2`, `value` items.\n }\n else if (srcMarker === -1 /* AttributeMarker.ImplicitAttributes */ ||\n srcMarker === 2 /* AttributeMarker.Styles */) {\n // Case where we have to consume `key1` and `value` only.\n mergeHostAttribute(dst, srcMarker, item, null, src[++i]);\n }\n else {\n // Case where we have to consume `key1` only.\n mergeHostAttribute(dst, srcMarker, item, null, null);\n }\n }\n }\n }\n return dst;\n}\n/**\n * Append `key`/`value` to existing `TAttributes` taking region marker and duplicates into account.\n *\n * @param dst `TAttributes` to append to.\n * @param marker Region where the `key`/`value` should be added.\n * @param key1 Key to add to `TAttributes`\n * @param key2 Key to add to `TAttributes` (in case of `AttributeMarker.NamespaceURI`)\n * @param value Value to add or to overwrite to `TAttributes` Only used if `marker` is not Class.\n */\nfunction mergeHostAttribute(dst, marker, key1, key2, value) {\n let i = 0;\n // Assume that new markers will be inserted at the end.\n let markerInsertPosition = dst.length;\n // scan until correct type.\n if (marker === -1 /* AttributeMarker.ImplicitAttributes */) {\n markerInsertPosition = -1;\n }\n else {\n while (i < dst.length) {\n const dstValue = dst[i++];\n if (typeof dstValue === 'number') {\n if (dstValue === marker) {\n markerInsertPosition = -1;\n break;\n }\n else if (dstValue > marker) {\n // We need to save this as we want the markers to be inserted in specific order.\n markerInsertPosition = i - 1;\n break;\n }\n }\n }\n }\n // search until you find place of insertion\n while (i < dst.length) {\n const item = dst[i];\n if (typeof item === 'number') {\n // since `i` started as the index after the marker, we did not find it if we are at the next\n // marker\n break;\n }\n else if (item === key1) {\n // We already have same token\n if (key2 === null) {\n if (value !== null) {\n dst[i + 1] = value;\n }\n return;\n }\n else if (key2 === dst[i + 1]) {\n dst[i + 2] = value;\n return;\n }\n }\n // Increment counter.\n i++;\n if (key2 !== null)\n i++;\n if (value !== null)\n i++;\n }\n // insert at location.\n if (markerInsertPosition !== -1) {\n dst.splice(markerInsertPosition, 0, marker);\n i = markerInsertPosition + 1;\n }\n dst.splice(i++, 0, key1);\n if (key2 !== null) {\n dst.splice(i++, 0, key2);\n }\n if (value !== null) {\n dst.splice(i++, 0, value);\n }\n}\n\nconst NG_TEMPLATE_SELECTOR = 'ng-template';\n/**\n * Search the `TAttributes` to see if it contains `cssClassToMatch` (case insensitive)\n *\n * @param tNode static data of the node to match\n * @param attrs `TAttributes` to search through.\n * @param cssClassToMatch class to match (lowercase)\n * @param isProjectionMode Whether or not class matching should look into the attribute `class` in\n * addition to the `AttributeMarker.Classes`.\n */\nfunction isCssClassMatching(tNode, attrs, cssClassToMatch, isProjectionMode) {\n ngDevMode &&\n assertEqual(cssClassToMatch, cssClassToMatch.toLowerCase(), 'Class name expected to be lowercase.');\n let i = 0;\n if (isProjectionMode) {\n for (; i < attrs.length && typeof attrs[i] === 'string'; i += 2) {\n // Search for an implicit `class` attribute and check if its value matches `cssClassToMatch`.\n if (attrs[i] === 'class' &&\n classIndexOf(attrs[i + 1].toLowerCase(), cssClassToMatch, 0) !== -1) {\n return true;\n }\n }\n }\n else if (isInlineTemplate(tNode)) {\n // Matching directives (i.e. when not matching for projection mode) should not consider the\n // class bindings that are present on inline templates, as those class bindings only target\n // the root node of the template, not the template itself.\n return false;\n }\n // Resume the search for classes after the `Classes` marker.\n i = attrs.indexOf(1 /* AttributeMarker.Classes */, i);\n if (i > -1) {\n // We found the classes section. Start searching for the class.\n let item;\n while (++i < attrs.length && typeof (item = attrs[i]) === 'string') {\n if (item.toLowerCase() === cssClassToMatch) {\n return true;\n }\n }\n }\n return false;\n}\n/**\n * Checks whether the `tNode` represents an inline template (e.g. `*ngFor`).\n *\n * @param tNode current TNode\n */\nfunction isInlineTemplate(tNode) {\n return tNode.type === 4 /* TNodeType.Container */ && tNode.value !== NG_TEMPLATE_SELECTOR;\n}\n/**\n * Function that checks whether a given tNode matches tag-based selector and has a valid type.\n *\n * Matching can be performed in 2 modes: projection mode (when we project nodes) and regular\n * directive matching mode:\n * - in the \"directive matching\" mode we do _not_ take TContainer's tagName into account if it is\n * different from NG_TEMPLATE_SELECTOR (value different from NG_TEMPLATE_SELECTOR indicates that a\n * tag name was extracted from * syntax so we would match the same directive twice);\n * - in the \"projection\" mode, we use a tag name potentially extracted from the * syntax processing\n * (applicable to TNodeType.Container only).\n */\nfunction hasTagAndTypeMatch(tNode, currentSelector, isProjectionMode) {\n const tagNameToCompare = tNode.type === 4 /* TNodeType.Container */ && !isProjectionMode ? NG_TEMPLATE_SELECTOR : tNode.value;\n return currentSelector === tagNameToCompare;\n}\n/**\n * A utility function to match an Ivy node static data against a simple CSS selector\n *\n * @param tNode static data of the node to match\n * @param selector The selector to try matching against the node.\n * @param isProjectionMode if `true` we are matching for content projection, otherwise we are doing\n * directive matching.\n * @returns true if node matches the selector.\n */\nfunction isNodeMatchingSelector(tNode, selector, isProjectionMode) {\n ngDevMode && assertDefined(selector[0], 'Selector should have a tag name');\n let mode = 4 /* SelectorFlags.ELEMENT */;\n const nodeAttrs = tNode.attrs;\n // Find the index of first attribute that has no value, only a name.\n const nameOnlyMarkerIdx = nodeAttrs !== null ? getNameOnlyMarkerIndex(nodeAttrs) : 0;\n // When processing \":not\" selectors, we skip to the next \":not\" if the\n // current one doesn't match\n let skipToNextSelector = false;\n for (let i = 0; i < selector.length; i++) {\n const current = selector[i];\n if (typeof current === 'number') {\n // If we finish processing a :not selector and it hasn't failed, return false\n if (!skipToNextSelector && !isPositive(mode) && !isPositive(current)) {\n return false;\n }\n // If we are skipping to the next :not() and this mode flag is positive,\n // it's a part of the current :not() selector, and we should keep skipping\n if (skipToNextSelector && isPositive(current))\n continue;\n skipToNextSelector = false;\n mode = current | (mode & 1 /* SelectorFlags.NOT */);\n continue;\n }\n if (skipToNextSelector)\n continue;\n if (mode & 4 /* SelectorFlags.ELEMENT */) {\n mode = 2 /* SelectorFlags.ATTRIBUTE */ | (mode & 1 /* SelectorFlags.NOT */);\n if ((current !== '' && !hasTagAndTypeMatch(tNode, current, isProjectionMode)) ||\n (current === '' && selector.length === 1)) {\n if (isPositive(mode))\n return false;\n skipToNextSelector = true;\n }\n }\n else if (mode & 8 /* SelectorFlags.CLASS */) {\n if (nodeAttrs === null || !isCssClassMatching(tNode, nodeAttrs, current, isProjectionMode)) {\n if (isPositive(mode))\n return false;\n skipToNextSelector = true;\n }\n }\n else {\n const selectorAttrValue = selector[++i];\n const attrIndexInNode = findAttrIndexInNode(current, nodeAttrs, isInlineTemplate(tNode), isProjectionMode);\n if (attrIndexInNode === -1) {\n if (isPositive(mode))\n return false;\n skipToNextSelector = true;\n continue;\n }\n if (selectorAttrValue !== '') {\n let nodeAttrValue;\n if (attrIndexInNode > nameOnlyMarkerIdx) {\n nodeAttrValue = '';\n }\n else {\n ngDevMode &&\n assertNotEqual(nodeAttrs[attrIndexInNode], 0 /* AttributeMarker.NamespaceURI */, 'We do not match directives on namespaced attributes');\n // we lowercase the attribute value to be able to match\n // selectors without case-sensitivity\n // (selectors are already in lowercase when generated)\n nodeAttrValue = nodeAttrs[attrIndexInNode + 1].toLowerCase();\n }\n if (mode & 2 /* SelectorFlags.ATTRIBUTE */ && selectorAttrValue !== nodeAttrValue) {\n if (isPositive(mode))\n return false;\n skipToNextSelector = true;\n }\n }\n }\n }\n return isPositive(mode) || skipToNextSelector;\n}\nfunction isPositive(mode) {\n return (mode & 1 /* SelectorFlags.NOT */) === 0;\n}\n/**\n * Examines the attribute's definition array for a node to find the index of the\n * attribute that matches the given `name`.\n *\n * NOTE: This will not match namespaced attributes.\n *\n * Attribute matching depends upon `isInlineTemplate` and `isProjectionMode`.\n * The following table summarizes which types of attributes we attempt to match:\n *\n * ===========================================================================================================\n * Modes | Normal Attributes | Bindings Attributes | Template Attributes | I18n\n * Attributes\n * ===========================================================================================================\n * Inline + Projection | YES | YES | NO | YES\n * -----------------------------------------------------------------------------------------------------------\n * Inline + Directive | NO | NO | YES | NO\n * -----------------------------------------------------------------------------------------------------------\n * Non-inline + Projection | YES | YES | NO | YES\n * -----------------------------------------------------------------------------------------------------------\n * Non-inline + Directive | YES | YES | NO | YES\n * ===========================================================================================================\n *\n * @param name the name of the attribute to find\n * @param attrs the attribute array to examine\n * @param isInlineTemplate true if the node being matched is an inline template (e.g. `*ngFor`)\n * rather than a manually expanded template node (e.g ``).\n * @param isProjectionMode true if we are matching against content projection otherwise we are\n * matching against directives.\n */\nfunction findAttrIndexInNode(name, attrs, isInlineTemplate, isProjectionMode) {\n if (attrs === null)\n return -1;\n let i = 0;\n if (isProjectionMode || !isInlineTemplate) {\n let bindingsMode = false;\n while (i < attrs.length) {\n const maybeAttrName = attrs[i];\n if (maybeAttrName === name) {\n return i;\n }\n else if (maybeAttrName === 3 /* AttributeMarker.Bindings */ ||\n maybeAttrName === 6 /* AttributeMarker.I18n */) {\n bindingsMode = true;\n }\n else if (maybeAttrName === 1 /* AttributeMarker.Classes */ ||\n maybeAttrName === 2 /* AttributeMarker.Styles */) {\n let value = attrs[++i];\n // We should skip classes here because we have a separate mechanism for\n // matching classes in projection mode.\n while (typeof value === 'string') {\n value = attrs[++i];\n }\n continue;\n }\n else if (maybeAttrName === 4 /* AttributeMarker.Template */) {\n // We do not care about Template attributes in this scenario.\n break;\n }\n else if (maybeAttrName === 0 /* AttributeMarker.NamespaceURI */) {\n // Skip the whole namespaced attribute and value. This is by design.\n i += 4;\n continue;\n }\n // In binding mode there are only names, rather than name-value pairs.\n i += bindingsMode ? 1 : 2;\n }\n // We did not match the attribute\n return -1;\n }\n else {\n return matchTemplateAttribute(attrs, name);\n }\n}\nfunction isNodeMatchingSelectorList(tNode, selector, isProjectionMode = false) {\n for (let i = 0; i < selector.length; i++) {\n if (isNodeMatchingSelector(tNode, selector[i], isProjectionMode)) {\n return true;\n }\n }\n return false;\n}\nfunction getProjectAsAttrValue(tNode) {\n const nodeAttrs = tNode.attrs;\n if (nodeAttrs != null) {\n const ngProjectAsAttrIdx = nodeAttrs.indexOf(5 /* AttributeMarker.ProjectAs */);\n // only check for ngProjectAs in attribute names, don't accidentally match attribute's value\n // (attribute names are stored at even indexes)\n if ((ngProjectAsAttrIdx & 1) === 0) {\n return nodeAttrs[ngProjectAsAttrIdx + 1];\n }\n }\n return null;\n}\nfunction getNameOnlyMarkerIndex(nodeAttrs) {\n for (let i = 0; i < nodeAttrs.length; i++) {\n const nodeAttr = nodeAttrs[i];\n if (isNameOnlyAttributeMarker(nodeAttr)) {\n return i;\n }\n }\n return nodeAttrs.length;\n}\nfunction matchTemplateAttribute(attrs, name) {\n let i = attrs.indexOf(4 /* AttributeMarker.Template */);\n if (i > -1) {\n i++;\n while (i < attrs.length) {\n const attr = attrs[i];\n // Return in case we checked all template attrs and are switching to the next section in the\n // attrs array (that starts with a number that represents an attribute marker).\n if (typeof attr === 'number')\n return -1;\n if (attr === name)\n return i;\n i++;\n }\n }\n return -1;\n}\n/**\n * Checks whether a selector is inside a CssSelectorList\n * @param selector Selector to be checked.\n * @param list List in which to look for the selector.\n */\nfunction isSelectorInSelectorList(selector, list) {\n selectorListLoop: for (let i = 0; i < list.length; i++) {\n const currentSelectorInList = list[i];\n if (selector.length !== currentSelectorInList.length) {\n continue;\n }\n for (let j = 0; j < selector.length; j++) {\n if (selector[j] !== currentSelectorInList[j]) {\n continue selectorListLoop;\n }\n }\n return true;\n }\n return false;\n}\nfunction maybeWrapInNotSelector(isNegativeMode, chunk) {\n return isNegativeMode ? ':not(' + chunk.trim() + ')' : chunk;\n}\nfunction stringifyCSSSelector(selector) {\n let result = selector[0];\n let i = 1;\n let mode = 2 /* SelectorFlags.ATTRIBUTE */;\n let currentChunk = '';\n let isNegativeMode = false;\n while (i < selector.length) {\n let valueOrMarker = selector[i];\n if (typeof valueOrMarker === 'string') {\n if (mode & 2 /* SelectorFlags.ATTRIBUTE */) {\n const attrValue = selector[++i];\n currentChunk +=\n '[' + valueOrMarker + (attrValue.length > 0 ? '=\"' + attrValue + '\"' : '') + ']';\n }\n else if (mode & 8 /* SelectorFlags.CLASS */) {\n currentChunk += '.' + valueOrMarker;\n }\n else if (mode & 4 /* SelectorFlags.ELEMENT */) {\n currentChunk += ' ' + valueOrMarker;\n }\n }\n else {\n //\n // Append current chunk to the final result in case we come across SelectorFlag, which\n // indicates that the previous section of a selector is over. We need to accumulate content\n // between flags to make sure we wrap the chunk later in :not() selector if needed, e.g.\n // ```\n // ['', Flags.CLASS, '.classA', Flags.CLASS | Flags.NOT, '.classB', '.classC']\n // ```\n // should be transformed to `.classA :not(.classB .classC)`.\n //\n // Note: for negative selector part, we accumulate content between flags until we find the\n // next negative flag. This is needed to support a case where `:not()` rule contains more than\n // one chunk, e.g. the following selector:\n // ```\n // ['', Flags.ELEMENT | Flags.NOT, 'p', Flags.CLASS, 'foo', Flags.CLASS | Flags.NOT, 'bar']\n // ```\n // should be stringified to `:not(p.foo) :not(.bar)`\n //\n if (currentChunk !== '' && !isPositive(valueOrMarker)) {\n result += maybeWrapInNotSelector(isNegativeMode, currentChunk);\n currentChunk = '';\n }\n mode = valueOrMarker;\n // According to CssSelector spec, once we come across `SelectorFlags.NOT` flag, the negative\n // mode is maintained for remaining chunks of a selector.\n isNegativeMode = isNegativeMode || !isPositive(mode);\n }\n i++;\n }\n if (currentChunk !== '') {\n result += maybeWrapInNotSelector(isNegativeMode, currentChunk);\n }\n return result;\n}\n/**\n * Generates string representation of CSS selector in parsed form.\n *\n * ComponentDef and DirectiveDef are generated with the selector in parsed form to avoid doing\n * additional parsing at runtime (for example, for directive matching). However in some cases (for\n * example, while bootstrapping a component), a string version of the selector is required to query\n * for the host element on the page. This function takes the parsed form of a selector and returns\n * its string representation.\n *\n * @param selectorList selector in parsed form\n * @returns string representation of a given selector\n */\nfunction stringifyCSSSelectorList(selectorList) {\n return selectorList.map(stringifyCSSSelector).join(',');\n}\n/**\n * Extracts attributes and classes information from a given CSS selector.\n *\n * This function is used while creating a component dynamically. In this case, the host element\n * (that is created dynamically) should contain attributes and classes specified in component's CSS\n * selector.\n *\n * @param selector CSS selector in parsed form (in a form of array)\n * @returns object with `attrs` and `classes` fields that contain extracted information\n */\nfunction extractAttrsAndClassesFromSelector(selector) {\n const attrs = [];\n const classes = [];\n let i = 1;\n let mode = 2 /* SelectorFlags.ATTRIBUTE */;\n while (i < selector.length) {\n let valueOrMarker = selector[i];\n if (typeof valueOrMarker === 'string') {\n if (mode === 2 /* SelectorFlags.ATTRIBUTE */) {\n if (valueOrMarker !== '') {\n attrs.push(valueOrMarker, selector[++i]);\n }\n }\n else if (mode === 8 /* SelectorFlags.CLASS */) {\n classes.push(valueOrMarker);\n }\n }\n else {\n // According to CssSelector spec, once we come across `SelectorFlags.NOT` flag, the negative\n // mode is maintained for remaining chunks of a selector. Since attributes and classes are\n // extracted only for \"positive\" part of the selector, we can stop here.\n if (!isPositive(mode))\n break;\n mode = valueOrMarker;\n }\n i++;\n }\n return { attrs, classes };\n}\n\n/**\n * Create a component definition object.\n *\n *\n * # Example\n * ```\n * class MyComponent {\n * // Generated by Angular Template Compiler\n * // [Symbol] syntax will not be supported by TypeScript until v2.7\n * static ɵcmp = defineComponent({\n * ...\n * });\n * }\n * ```\n * @codeGenApi\n */\nfunction ɵɵdefineComponent(componentDefinition) {\n return noSideEffects(() => {\n // Initialize ngDevMode. This must be the first statement in ɵɵdefineComponent.\n // See the `initNgDevMode` docstring for more information.\n (typeof ngDevMode === 'undefined' || ngDevMode) && initNgDevMode();\n const baseDef = getNgDirectiveDef(componentDefinition);\n const def = {\n ...baseDef,\n decls: componentDefinition.decls,\n vars: componentDefinition.vars,\n template: componentDefinition.template,\n consts: componentDefinition.consts || null,\n ngContentSelectors: componentDefinition.ngContentSelectors,\n onPush: componentDefinition.changeDetection === ChangeDetectionStrategy.OnPush,\n directiveDefs: null, // assigned in noSideEffects\n pipeDefs: null, // assigned in noSideEffects\n dependencies: (baseDef.standalone && componentDefinition.dependencies) || null,\n getStandaloneInjector: null,\n signals: componentDefinition.signals ?? false,\n data: componentDefinition.data || {},\n encapsulation: componentDefinition.encapsulation || ViewEncapsulation$1.Emulated,\n styles: componentDefinition.styles || EMPTY_ARRAY,\n _: null,\n schemas: componentDefinition.schemas || null,\n tView: null,\n id: '',\n };\n initFeatures(def);\n const dependencies = componentDefinition.dependencies;\n def.directiveDefs = extractDefListOrFactory(dependencies, /* pipeDef */ false);\n def.pipeDefs = extractDefListOrFactory(dependencies, /* pipeDef */ true);\n def.id = getComponentId(def);\n return def;\n });\n}\nfunction extractDirectiveDef(type) {\n return getComponentDef(type) || getDirectiveDef(type);\n}\nfunction nonNull(value) {\n return value !== null;\n}\n/**\n * @codeGenApi\n */\nfunction ɵɵdefineNgModule(def) {\n return noSideEffects(() => {\n const res = {\n type: def.type,\n bootstrap: def.bootstrap || EMPTY_ARRAY,\n declarations: def.declarations || EMPTY_ARRAY,\n imports: def.imports || EMPTY_ARRAY,\n exports: def.exports || EMPTY_ARRAY,\n transitiveCompileScopes: null,\n schemas: def.schemas || null,\n id: def.id || null,\n };\n return res;\n });\n}\nfunction parseAndConvertBindingsForDefinition(obj, declaredInputs) {\n if (obj == null)\n return EMPTY_OBJ;\n const newLookup = {};\n for (const minifiedKey in obj) {\n if (obj.hasOwnProperty(minifiedKey)) {\n const value = obj[minifiedKey];\n let publicName;\n let declaredName;\n let inputFlags = InputFlags.None;\n if (Array.isArray(value)) {\n inputFlags = value[0];\n publicName = value[1];\n declaredName = value[2] ?? publicName; // declared name might not be set to save bytes.\n }\n else {\n publicName = value;\n declaredName = value;\n }\n // For inputs, capture the declared name, or if some flags are set.\n if (declaredInputs) {\n // Perf note: An array is only allocated for the input if there are flags.\n newLookup[publicName] =\n inputFlags !== InputFlags.None ? [minifiedKey, inputFlags] : minifiedKey;\n declaredInputs[publicName] = declaredName;\n }\n else {\n newLookup[publicName] = minifiedKey;\n }\n }\n }\n return newLookup;\n}\n/**\n * Create a directive definition object.\n *\n * # Example\n * ```ts\n * class MyDirective {\n * // Generated by Angular Template Compiler\n * // [Symbol] syntax will not be supported by TypeScript until v2.7\n * static ɵdir = ɵɵdefineDirective({\n * ...\n * });\n * }\n * ```\n *\n * @codeGenApi\n */\nfunction ɵɵdefineDirective(directiveDefinition) {\n return noSideEffects(() => {\n const def = getNgDirectiveDef(directiveDefinition);\n initFeatures(def);\n return def;\n });\n}\n/**\n * Create a pipe definition object.\n *\n * # Example\n * ```\n * class MyPipe implements PipeTransform {\n * // Generated by Angular Template Compiler\n * static ɵpipe = definePipe({\n * ...\n * });\n * }\n * ```\n * @param pipeDef Pipe definition generated by the compiler\n *\n * @codeGenApi\n */\nfunction ɵɵdefinePipe(pipeDef) {\n return {\n type: pipeDef.type,\n name: pipeDef.name,\n factory: null,\n pure: pipeDef.pure !== false,\n standalone: pipeDef.standalone === true,\n onDestroy: pipeDef.type.prototype.ngOnDestroy || null,\n };\n}\n/**\n * The following getter methods retrieve the definition from the type. Currently the retrieval\n * honors inheritance, but in the future we may change the rule to require that definitions are\n * explicit. This would require some sort of migration strategy.\n */\nfunction getComponentDef(type) {\n return type[NG_COMP_DEF] || null;\n}\nfunction getDirectiveDef(type) {\n return type[NG_DIR_DEF] || null;\n}\nfunction getPipeDef$1(type) {\n return type[NG_PIPE_DEF] || null;\n}\n/**\n * Checks whether a given Component, Directive or Pipe is marked as standalone.\n * This will return false if passed anything other than a Component, Directive, or Pipe class\n * See [this guide](guide/components/importing) for additional information:\n *\n * @param type A reference to a Component, Directive or Pipe.\n * @publicApi\n */\nfunction isStandalone(type) {\n const def = getComponentDef(type) || getDirectiveDef(type) || getPipeDef$1(type);\n return def !== null ? def.standalone : false;\n}\nfunction getNgModuleDef(type, throwNotFound) {\n const ngModuleDef = type[NG_MOD_DEF] || null;\n if (!ngModuleDef && throwNotFound === true) {\n throw new Error(`Type ${stringify(type)} does not have 'ɵmod' property.`);\n }\n return ngModuleDef;\n}\nfunction getNgDirectiveDef(directiveDefinition) {\n const declaredInputs = {};\n return {\n type: directiveDefinition.type,\n providersResolver: null,\n factory: null,\n hostBindings: directiveDefinition.hostBindings || null,\n hostVars: directiveDefinition.hostVars || 0,\n hostAttrs: directiveDefinition.hostAttrs || null,\n contentQueries: directiveDefinition.contentQueries || null,\n declaredInputs: declaredInputs,\n inputTransforms: null,\n inputConfig: directiveDefinition.inputs || EMPTY_OBJ,\n exportAs: directiveDefinition.exportAs || null,\n standalone: directiveDefinition.standalone === true,\n signals: directiveDefinition.signals === true,\n selectors: directiveDefinition.selectors || EMPTY_ARRAY,\n viewQuery: directiveDefinition.viewQuery || null,\n features: directiveDefinition.features || null,\n setInput: null,\n findHostDirectiveDefs: null,\n hostDirectives: null,\n inputs: parseAndConvertBindingsForDefinition(directiveDefinition.inputs, declaredInputs),\n outputs: parseAndConvertBindingsForDefinition(directiveDefinition.outputs),\n debugInfo: null,\n };\n}\nfunction initFeatures(definition) {\n definition.features?.forEach((fn) => fn(definition));\n}\nfunction extractDefListOrFactory(dependencies, pipeDef) {\n if (!dependencies) {\n return null;\n }\n const defExtractor = pipeDef ? getPipeDef$1 : extractDirectiveDef;\n return () => (typeof dependencies === 'function' ? dependencies() : dependencies)\n .map((dep) => defExtractor(dep))\n .filter(nonNull);\n}\n/**\n * A map that contains the generated component IDs and type.\n */\nconst GENERATED_COMP_IDS = new Map();\n/**\n * A method can returns a component ID from the component definition using a variant of DJB2 hash\n * algorithm.\n */\nfunction getComponentId(componentDef) {\n let hash = 0;\n // We cannot rely solely on the component selector as the same selector can be used in different\n // modules.\n //\n // `componentDef.style` is not used, due to it causing inconsistencies. Ex: when server\n // component styles has no sourcemaps and browsers do.\n //\n // Example:\n // https://github.com/angular/components/blob/d9f82c8f95309e77a6d82fd574c65871e91354c2/src/material/core/option/option.ts#L248\n // https://github.com/angular/components/blob/285f46dc2b4c5b127d356cb7c4714b221f03ce50/src/material/legacy-core/option/option.ts#L32\n const hashSelectors = [\n componentDef.selectors,\n componentDef.ngContentSelectors,\n componentDef.hostVars,\n componentDef.hostAttrs,\n componentDef.consts,\n componentDef.vars,\n componentDef.decls,\n componentDef.encapsulation,\n componentDef.standalone,\n componentDef.signals,\n componentDef.exportAs,\n JSON.stringify(componentDef.inputs),\n JSON.stringify(componentDef.outputs),\n // We cannot use 'componentDef.type.name' as the name of the symbol will change and will not\n // match in the server and browser bundles.\n Object.getOwnPropertyNames(componentDef.type.prototype),\n !!componentDef.contentQueries,\n !!componentDef.viewQuery,\n ].join('|');\n for (const char of hashSelectors) {\n hash = (Math.imul(31, hash) + char.charCodeAt(0)) << 0;\n }\n // Force positive number hash.\n // 2147483647 = equivalent of Integer.MAX_VALUE.\n hash += 2147483647 + 1;\n const compId = 'c' + hash;\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (GENERATED_COMP_IDS.has(compId)) {\n const previousCompDefType = GENERATED_COMP_IDS.get(compId);\n if (previousCompDefType !== componentDef.type) {\n console.warn(formatRuntimeError(-912 /* RuntimeErrorCode.COMPONENT_ID_COLLISION */, `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.`));\n }\n }\n else {\n GENERATED_COMP_IDS.set(compId, componentDef.type);\n }\n }\n return compId;\n}\n\n/**\n * Wrap an array of `Provider`s into `EnvironmentProviders`, preventing them from being accidentally\n * referenced in `@Component` in a component injector.\n */\nfunction makeEnvironmentProviders(providers) {\n return {\n ɵproviders: providers,\n };\n}\n/**\n * Collects providers from all NgModules and standalone components, including transitively imported\n * ones.\n *\n * Providers extracted via `importProvidersFrom` are only usable in an application injector or\n * another environment injector (such as a route injector). They should not be used in component\n * providers.\n *\n * More information about standalone components can be found in [this\n * guide](guide/components/importing).\n *\n * @usageNotes\n * The results of the `importProvidersFrom` call can be used in the `bootstrapApplication` call:\n *\n * ```typescript\n * await bootstrapApplication(RootComponent, {\n * providers: [\n * importProvidersFrom(NgModuleOne, NgModuleTwo)\n * ]\n * });\n * ```\n *\n * You can also use the `importProvidersFrom` results in the `providers` field of a route, when a\n * standalone component is used:\n *\n * ```typescript\n * export const ROUTES: Route[] = [\n * {\n * path: 'foo',\n * providers: [\n * importProvidersFrom(NgModuleOne, NgModuleTwo)\n * ],\n * component: YourStandaloneComponent\n * }\n * ];\n * ```\n *\n * @returns Collected providers from the specified list of types.\n * @publicApi\n */\nfunction importProvidersFrom(...sources) {\n return {\n ɵproviders: internalImportProvidersFrom(true, sources),\n ɵfromNgModule: true,\n };\n}\nfunction internalImportProvidersFrom(checkForStandaloneCmp, ...sources) {\n const providersOut = [];\n const dedup = new Set(); // already seen types\n let injectorTypesWithProviders;\n const collectProviders = (provider) => {\n providersOut.push(provider);\n };\n deepForEach(sources, (source) => {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && checkForStandaloneCmp) {\n const cmpDef = getComponentDef(source);\n if (cmpDef?.standalone) {\n throw new RuntimeError(800 /* RuntimeErrorCode.IMPORT_PROVIDERS_FROM_STANDALONE */, `Importing providers supports NgModule or ModuleWithProviders but got a standalone component \"${stringifyForError(source)}\"`);\n }\n }\n // Narrow `source` to access the internal type analogue for `ModuleWithProviders`.\n const internalSource = source;\n if (walkProviderTree(internalSource, collectProviders, [], dedup)) {\n injectorTypesWithProviders ||= [];\n injectorTypesWithProviders.push(internalSource);\n }\n });\n // Collect all providers from `ModuleWithProviders` types.\n if (injectorTypesWithProviders !== undefined) {\n processInjectorTypesWithProviders(injectorTypesWithProviders, collectProviders);\n }\n return providersOut;\n}\n/**\n * Collects all providers from the list of `ModuleWithProviders` and appends them to the provided\n * array.\n */\nfunction processInjectorTypesWithProviders(typesWithProviders, visitor) {\n for (let i = 0; i < typesWithProviders.length; i++) {\n const { ngModule, providers } = typesWithProviders[i];\n deepForEachProvider(providers, (provider) => {\n ngDevMode && validateProvider(provider, providers || EMPTY_ARRAY, ngModule);\n visitor(provider, ngModule);\n });\n }\n}\n/**\n * The logic visits an `InjectorType`, an `InjectorTypeWithProviders`, or a standalone\n * `ComponentType`, and all of its transitive providers and collects providers.\n *\n * If an `InjectorTypeWithProviders` that declares providers besides the type is specified,\n * the function will return \"true\" to indicate that the providers of the type definition need\n * to be processed. This allows us to process providers of injector types after all imports of\n * an injector definition are processed. (following View Engine semantics: see FW-1349)\n */\nfunction walkProviderTree(container, visitor, parents, dedup) {\n container = resolveForwardRef(container);\n if (!container)\n return false;\n // The actual type which had the definition. Usually `container`, but may be an unwrapped type\n // from `InjectorTypeWithProviders`.\n let defType = null;\n let injDef = getInjectorDef(container);\n const cmpDef = !injDef && getComponentDef(container);\n if (!injDef && !cmpDef) {\n // `container` is not an injector type or a component type. It might be:\n // * An `InjectorTypeWithProviders` that wraps an injector type.\n // * A standalone directive or pipe that got pulled in from a standalone component's\n // dependencies.\n // Try to unwrap it as an `InjectorTypeWithProviders` first.\n const ngModule = container\n .ngModule;\n injDef = getInjectorDef(ngModule);\n if (injDef) {\n defType = ngModule;\n }\n else {\n // Not a component or injector type, so ignore it.\n return false;\n }\n }\n else if (cmpDef && !cmpDef.standalone) {\n return false;\n }\n else {\n defType = container;\n }\n // Check for circular dependencies.\n if (ngDevMode && parents.indexOf(defType) !== -1) {\n const defName = stringify(defType);\n const path = parents.map(stringify);\n throwCyclicDependencyError(defName, path);\n }\n // Check for multiple imports of the same module\n const isDuplicate = dedup.has(defType);\n if (cmpDef) {\n if (isDuplicate) {\n // This component definition has already been processed.\n return false;\n }\n dedup.add(defType);\n if (cmpDef.dependencies) {\n const deps = typeof cmpDef.dependencies === 'function' ? cmpDef.dependencies() : cmpDef.dependencies;\n for (const dep of deps) {\n walkProviderTree(dep, visitor, parents, dedup);\n }\n }\n }\n else if (injDef) {\n // First, include providers from any imports.\n if (injDef.imports != null && !isDuplicate) {\n // Before processing defType's imports, add it to the set of parents. This way, if it ends\n // up deeply importing itself, this can be detected.\n ngDevMode && parents.push(defType);\n // Add it to the set of dedups. This way we can detect multiple imports of the same module\n dedup.add(defType);\n let importTypesWithProviders;\n try {\n deepForEach(injDef.imports, (imported) => {\n if (walkProviderTree(imported, visitor, parents, dedup)) {\n importTypesWithProviders ||= [];\n // If the processed import is an injector type with providers, we store it in the\n // list of import types with providers, so that we can process those afterwards.\n importTypesWithProviders.push(imported);\n }\n });\n }\n finally {\n // Remove it from the parents set when finished.\n ngDevMode && parents.pop();\n }\n // Imports which are declared with providers (TypeWithProviders) need to be processed\n // after all imported modules are processed. This is similar to how View Engine\n // processes/merges module imports in the metadata resolver. See: FW-1349.\n if (importTypesWithProviders !== undefined) {\n processInjectorTypesWithProviders(importTypesWithProviders, visitor);\n }\n }\n if (!isDuplicate) {\n // Track the InjectorType and add a provider for it.\n // It's important that this is done after the def's imports.\n const factory = getFactoryDef(defType) || (() => new defType());\n // Append extra providers to make more info available for consumers (to retrieve an injector\n // type), as well as internally (to calculate an injection scope correctly and eagerly\n // instantiate a `defType` when an injector is created).\n // Provider to create `defType` using its factory.\n visitor({ provide: defType, useFactory: factory, deps: EMPTY_ARRAY }, defType);\n // Make this `defType` available to an internal logic that calculates injector scope.\n visitor({ provide: INJECTOR_DEF_TYPES, useValue: defType, multi: true }, defType);\n // Provider to eagerly instantiate `defType` via `INJECTOR_INITIALIZER`.\n visitor({ provide: ENVIRONMENT_INITIALIZER, useValue: () => ɵɵinject(defType), multi: true }, defType);\n }\n // Next, include providers listed on the definition itself.\n const defProviders = injDef.providers;\n if (defProviders != null && !isDuplicate) {\n const injectorType = container;\n deepForEachProvider(defProviders, (provider) => {\n ngDevMode && validateProvider(provider, defProviders, injectorType);\n visitor(provider, injectorType);\n });\n }\n }\n else {\n // Should not happen, but just in case.\n return false;\n }\n return (defType !== container && container.providers !== undefined);\n}\nfunction validateProvider(provider, providers, containerType) {\n if (isTypeProvider(provider) ||\n isValueProvider(provider) ||\n isFactoryProvider(provider) ||\n isExistingProvider(provider)) {\n return;\n }\n // Here we expect the provider to be a `useClass` provider (by elimination).\n const classRef = resolveForwardRef(provider && (provider.useClass || provider.provide));\n if (!classRef) {\n throwInvalidProviderError(containerType, providers, provider);\n }\n}\nfunction deepForEachProvider(providers, fn) {\n for (let provider of providers) {\n if (isEnvironmentProviders(provider)) {\n provider = provider.ɵproviders;\n }\n if (Array.isArray(provider)) {\n deepForEachProvider(provider, fn);\n }\n else {\n fn(provider);\n }\n }\n}\nconst USE_VALUE$1 = getClosureSafeProperty({\n provide: String,\n useValue: getClosureSafeProperty,\n});\nfunction isValueProvider(value) {\n return value !== null && typeof value == 'object' && USE_VALUE$1 in value;\n}\nfunction isExistingProvider(value) {\n return !!(value && value.useExisting);\n}\nfunction isFactoryProvider(value) {\n return !!(value && value.useFactory);\n}\nfunction isTypeProvider(value) {\n return typeof value === 'function';\n}\nfunction isClassProvider(value) {\n return !!value.useClass;\n}\n\n/**\n * An internal token whose presence in an injector indicates that the injector should treat itself\n * as a root scoped injector when processing requests for unknown tokens which may indicate\n * they are provided in the root scope.\n */\nconst INJECTOR_SCOPE = new InjectionToken(ngDevMode ? 'Set Injector scope.' : '');\n\n/**\n * Marker which indicates that a value has not yet been created from the factory function.\n */\nconst NOT_YET = {};\n/**\n * Marker which indicates that the factory function for a token is in the process of being called.\n *\n * If the injector is asked to inject a token with its value set to CIRCULAR, that indicates\n * injection of a dependency has recursively attempted to inject the original token, and there is\n * a circular dependency among the providers.\n */\nconst CIRCULAR = {};\n/**\n * A lazily initialized NullInjector.\n */\nlet NULL_INJECTOR = undefined;\nfunction getNullInjector() {\n if (NULL_INJECTOR === undefined) {\n NULL_INJECTOR = new NullInjector();\n }\n return NULL_INJECTOR;\n}\n/**\n * An `Injector` that's part of the environment injector hierarchy, which exists outside of the\n * component tree.\n */\nclass EnvironmentInjector {\n}\nclass R3Injector extends EnvironmentInjector {\n /**\n * Flag indicating that this injector was previously destroyed.\n */\n get destroyed() {\n return this._destroyed;\n }\n constructor(providers, parent, source, scopes) {\n super();\n this.parent = parent;\n this.source = source;\n this.scopes = scopes;\n /**\n * Map of tokens to records which contain the instances of those tokens.\n * - `null` value implies that we don't have the record. Used by tree-shakable injectors\n * to prevent further searches.\n */\n this.records = new Map();\n /**\n * Set of values instantiated by this injector which contain `ngOnDestroy` lifecycle hooks.\n */\n this._ngOnDestroyHooks = new Set();\n this._onDestroyHooks = [];\n this._destroyed = false;\n // Start off by creating Records for every provider.\n forEachSingleProvider(providers, (provider) => this.processProvider(provider));\n // Make sure the INJECTOR token provides this injector.\n this.records.set(INJECTOR$1, makeRecord(undefined, this));\n // And `EnvironmentInjector` if the current injector is supposed to be env-scoped.\n if (scopes.has('environment')) {\n this.records.set(EnvironmentInjector, makeRecord(undefined, this));\n }\n // Detect whether this injector has the APP_ROOT_SCOPE token and thus should provide\n // any injectable scoped to APP_ROOT_SCOPE.\n const record = this.records.get(INJECTOR_SCOPE);\n if (record != null && typeof record.value === 'string') {\n this.scopes.add(record.value);\n }\n this.injectorDefTypes = new Set(this.get(INJECTOR_DEF_TYPES, EMPTY_ARRAY, InjectFlags.Self));\n }\n /**\n * Destroy the injector and release references to every instance or provider associated with it.\n *\n * Also calls the `OnDestroy` lifecycle hooks of every instance that was created for which a\n * hook was found.\n */\n destroy() {\n this.assertNotDestroyed();\n // Set destroyed = true first, in case lifecycle hooks re-enter destroy().\n this._destroyed = true;\n const prevConsumer = setActiveConsumer$1(null);\n try {\n // Call all the lifecycle hooks.\n for (const service of this._ngOnDestroyHooks) {\n service.ngOnDestroy();\n }\n const onDestroyHooks = this._onDestroyHooks;\n // Reset the _onDestroyHooks array before iterating over it to prevent hooks that unregister\n // themselves from mutating the array during iteration.\n this._onDestroyHooks = [];\n for (const hook of onDestroyHooks) {\n hook();\n }\n }\n finally {\n // Release all references.\n this.records.clear();\n this._ngOnDestroyHooks.clear();\n this.injectorDefTypes.clear();\n setActiveConsumer$1(prevConsumer);\n }\n }\n onDestroy(callback) {\n this.assertNotDestroyed();\n this._onDestroyHooks.push(callback);\n return () => this.removeOnDestroy(callback);\n }\n runInContext(fn) {\n this.assertNotDestroyed();\n const previousInjector = setCurrentInjector(this);\n const previousInjectImplementation = setInjectImplementation(undefined);\n let prevInjectContext;\n if (ngDevMode) {\n prevInjectContext = setInjectorProfilerContext({ injector: this, token: null });\n }\n try {\n return fn();\n }\n finally {\n setCurrentInjector(previousInjector);\n setInjectImplementation(previousInjectImplementation);\n ngDevMode && setInjectorProfilerContext(prevInjectContext);\n }\n }\n get(token, notFoundValue = THROW_IF_NOT_FOUND, flags = InjectFlags.Default) {\n this.assertNotDestroyed();\n if (token.hasOwnProperty(NG_ENV_ID)) {\n return token[NG_ENV_ID](this);\n }\n flags = convertToBitFlags(flags);\n // Set the injection context.\n let prevInjectContext;\n if (ngDevMode) {\n prevInjectContext = setInjectorProfilerContext({ injector: this, token: token });\n }\n const previousInjector = setCurrentInjector(this);\n const previousInjectImplementation = setInjectImplementation(undefined);\n try {\n // Check for the SkipSelf flag.\n if (!(flags & InjectFlags.SkipSelf)) {\n // SkipSelf isn't set, check if the record belongs to this injector.\n let record = this.records.get(token);\n if (record === undefined) {\n // No record, but maybe the token is scoped to this injector. Look for an injectable\n // def with a scope matching this injector.\n const def = couldBeInjectableType(token) && getInjectableDef(token);\n if (def && this.injectableDefInScope(def)) {\n // Found an injectable def and it's scoped to this injector. Pretend as if it was here\n // all along.\n if (ngDevMode) {\n runInInjectorProfilerContext(this, token, () => {\n emitProviderConfiguredEvent(token);\n });\n }\n record = makeRecord(injectableDefOrInjectorDefFactory(token), NOT_YET);\n }\n else {\n record = null;\n }\n this.records.set(token, record);\n }\n // If a record was found, get the instance for it and return it.\n if (record != null /* NOT null || undefined */) {\n return this.hydrate(token, record);\n }\n }\n // Select the next injector based on the Self flag - if self is set, the next injector is\n // the NullInjector, otherwise it's the parent.\n const nextInjector = !(flags & InjectFlags.Self) ? this.parent : getNullInjector();\n // Set the notFoundValue based on the Optional flag - if optional is set and notFoundValue\n // is undefined, the value is null, otherwise it's the notFoundValue.\n notFoundValue =\n flags & InjectFlags.Optional && notFoundValue === THROW_IF_NOT_FOUND ? null : notFoundValue;\n return nextInjector.get(token, notFoundValue);\n }\n catch (e) {\n if (e.name === 'NullInjectorError') {\n const path = (e[NG_TEMP_TOKEN_PATH] = e[NG_TEMP_TOKEN_PATH] || []);\n path.unshift(stringify(token));\n if (previousInjector) {\n // We still have a parent injector, keep throwing\n throw e;\n }\n else {\n // Format & throw the final error message when we don't have any previous injector\n return catchInjectorError(e, token, 'R3InjectorError', this.source);\n }\n }\n else {\n throw e;\n }\n }\n finally {\n // Lastly, restore the previous injection context.\n setInjectImplementation(previousInjectImplementation);\n setCurrentInjector(previousInjector);\n ngDevMode && setInjectorProfilerContext(prevInjectContext);\n }\n }\n /** @internal */\n resolveInjectorInitializers() {\n const prevConsumer = setActiveConsumer$1(null);\n const previousInjector = setCurrentInjector(this);\n const previousInjectImplementation = setInjectImplementation(undefined);\n let prevInjectContext;\n if (ngDevMode) {\n prevInjectContext = setInjectorProfilerContext({ injector: this, token: null });\n }\n try {\n const initializers = this.get(ENVIRONMENT_INITIALIZER, EMPTY_ARRAY, InjectFlags.Self);\n if (ngDevMode && !Array.isArray(initializers)) {\n throw new RuntimeError(-209 /* RuntimeErrorCode.INVALID_MULTI_PROVIDER */, 'Unexpected type of the `ENVIRONMENT_INITIALIZER` token value ' +\n `(expected an array, but got ${typeof initializers}). ` +\n 'Please check that the `ENVIRONMENT_INITIALIZER` token is configured as a ' +\n '`multi: true` provider.');\n }\n for (const initializer of initializers) {\n initializer();\n }\n }\n finally {\n setCurrentInjector(previousInjector);\n setInjectImplementation(previousInjectImplementation);\n ngDevMode && setInjectorProfilerContext(prevInjectContext);\n setActiveConsumer$1(prevConsumer);\n }\n }\n toString() {\n const tokens = [];\n const records = this.records;\n for (const token of records.keys()) {\n tokens.push(stringify(token));\n }\n return `R3Injector[${tokens.join(', ')}]`;\n }\n assertNotDestroyed() {\n if (this._destroyed) {\n throw new RuntimeError(205 /* RuntimeErrorCode.INJECTOR_ALREADY_DESTROYED */, ngDevMode && 'Injector has already been destroyed.');\n }\n }\n /**\n * Process a `SingleProvider` and add it.\n */\n processProvider(provider) {\n // Determine the token from the provider. Either it's its own token, or has a {provide: ...}\n // property.\n provider = resolveForwardRef(provider);\n let token = isTypeProvider(provider)\n ? provider\n : resolveForwardRef(provider && provider.provide);\n // Construct a `Record` for the provider.\n const record = providerToRecord(provider);\n if (ngDevMode) {\n runInInjectorProfilerContext(this, token, () => {\n // Emit InjectorProfilerEventType.Create if provider is a value provider because\n // these are the only providers that do not go through the value hydration logic\n // where this event would normally be emitted from.\n if (isValueProvider(provider)) {\n emitInstanceCreatedByInjectorEvent(provider.useValue);\n }\n emitProviderConfiguredEvent(provider);\n });\n }\n if (!isTypeProvider(provider) && provider.multi === true) {\n // If the provider indicates that it's a multi-provider, process it specially.\n // First check whether it's been defined already.\n let multiRecord = this.records.get(token);\n if (multiRecord) {\n // It has. Throw a nice error if\n if (ngDevMode && multiRecord.multi === undefined) {\n throwMixedMultiProviderError();\n }\n }\n else {\n multiRecord = makeRecord(undefined, NOT_YET, true);\n multiRecord.factory = () => injectArgs(multiRecord.multi);\n this.records.set(token, multiRecord);\n }\n token = provider;\n multiRecord.multi.push(provider);\n }\n else {\n if (ngDevMode) {\n const existing = this.records.get(token);\n if (existing && existing.multi !== undefined) {\n throwMixedMultiProviderError();\n }\n }\n }\n this.records.set(token, record);\n }\n hydrate(token, record) {\n const prevConsumer = setActiveConsumer$1(null);\n try {\n if (ngDevMode && record.value === CIRCULAR) {\n throwCyclicDependencyError(stringify(token));\n }\n else if (record.value === NOT_YET) {\n record.value = CIRCULAR;\n if (ngDevMode) {\n runInInjectorProfilerContext(this, token, () => {\n record.value = record.factory();\n emitInstanceCreatedByInjectorEvent(record.value);\n });\n }\n else {\n record.value = record.factory();\n }\n }\n if (typeof record.value === 'object' && record.value && hasOnDestroy(record.value)) {\n this._ngOnDestroyHooks.add(record.value);\n }\n return record.value;\n }\n finally {\n setActiveConsumer$1(prevConsumer);\n }\n }\n injectableDefInScope(def) {\n if (!def.providedIn) {\n return false;\n }\n const providedIn = resolveForwardRef(def.providedIn);\n if (typeof providedIn === 'string') {\n return providedIn === 'any' || this.scopes.has(providedIn);\n }\n else {\n return this.injectorDefTypes.has(providedIn);\n }\n }\n removeOnDestroy(callback) {\n const destroyCBIdx = this._onDestroyHooks.indexOf(callback);\n if (destroyCBIdx !== -1) {\n this._onDestroyHooks.splice(destroyCBIdx, 1);\n }\n }\n}\nfunction injectableDefOrInjectorDefFactory(token) {\n // Most tokens will have an injectable def directly on them, which specifies a factory directly.\n const injectableDef = getInjectableDef(token);\n const factory = injectableDef !== null ? injectableDef.factory : getFactoryDef(token);\n if (factory !== null) {\n return factory;\n }\n // InjectionTokens should have an injectable def (ɵprov) and thus should be handled above.\n // If it's missing that, it's an error.\n if (token instanceof InjectionToken) {\n throw new RuntimeError(204 /* RuntimeErrorCode.INVALID_INJECTION_TOKEN */, ngDevMode && `Token ${stringify(token)} is missing a ɵprov definition.`);\n }\n // Undecorated types can sometimes be created if they have no constructor arguments.\n if (token instanceof Function) {\n return getUndecoratedInjectableFactory(token);\n }\n // There was no way to resolve a factory for this token.\n throw new RuntimeError(204 /* RuntimeErrorCode.INVALID_INJECTION_TOKEN */, ngDevMode && 'unreachable');\n}\nfunction getUndecoratedInjectableFactory(token) {\n // If the token has parameters then it has dependencies that we cannot resolve implicitly.\n const paramLength = token.length;\n if (paramLength > 0) {\n throw new RuntimeError(204 /* RuntimeErrorCode.INVALID_INJECTION_TOKEN */, ngDevMode &&\n `Can't resolve all parameters for ${stringify(token)}: (${newArray(paramLength, '?').join(', ')}).`);\n }\n // The constructor function appears to have no parameters.\n // This might be because it inherits from a super-class. In which case, use an injectable\n // def from an ancestor if there is one.\n // Otherwise this really is a simple class with no dependencies, so return a factory that\n // just instantiates the zero-arg constructor.\n const inheritedInjectableDef = getInheritedInjectableDef(token);\n if (inheritedInjectableDef !== null) {\n return () => inheritedInjectableDef.factory(token);\n }\n else {\n return () => new token();\n }\n}\nfunction providerToRecord(provider) {\n if (isValueProvider(provider)) {\n return makeRecord(undefined, provider.useValue);\n }\n else {\n const factory = providerToFactory(provider);\n return makeRecord(factory, NOT_YET);\n }\n}\n/**\n * Converts a `SingleProvider` into a factory function.\n *\n * @param provider provider to convert to factory\n */\nfunction providerToFactory(provider, ngModuleType, providers) {\n let factory = undefined;\n if (ngDevMode && isEnvironmentProviders(provider)) {\n throwInvalidProviderError(undefined, providers, provider);\n }\n if (isTypeProvider(provider)) {\n const unwrappedProvider = resolveForwardRef(provider);\n return getFactoryDef(unwrappedProvider) || injectableDefOrInjectorDefFactory(unwrappedProvider);\n }\n else {\n if (isValueProvider(provider)) {\n factory = () => resolveForwardRef(provider.useValue);\n }\n else if (isFactoryProvider(provider)) {\n factory = () => provider.useFactory(...injectArgs(provider.deps || []));\n }\n else if (isExistingProvider(provider)) {\n factory = () => ɵɵinject(resolveForwardRef(provider.useExisting));\n }\n else {\n const classRef = resolveForwardRef(provider &&\n (provider.useClass || provider.provide));\n if (ngDevMode && !classRef) {\n throwInvalidProviderError(ngModuleType, providers, provider);\n }\n if (hasDeps(provider)) {\n factory = () => new classRef(...injectArgs(provider.deps));\n }\n else {\n return getFactoryDef(classRef) || injectableDefOrInjectorDefFactory(classRef);\n }\n }\n }\n return factory;\n}\nfunction makeRecord(factory, value, multi = false) {\n return {\n factory: factory,\n value: value,\n multi: multi ? [] : undefined,\n };\n}\nfunction hasDeps(value) {\n return !!value.deps;\n}\nfunction hasOnDestroy(value) {\n return (value !== null &&\n typeof value === 'object' &&\n typeof value.ngOnDestroy === 'function');\n}\nfunction couldBeInjectableType(value) {\n return (typeof value === 'function' || (typeof value === 'object' && value instanceof InjectionToken));\n}\nfunction forEachSingleProvider(providers, fn) {\n for (const provider of providers) {\n if (Array.isArray(provider)) {\n forEachSingleProvider(provider, fn);\n }\n else if (provider && isEnvironmentProviders(provider)) {\n forEachSingleProvider(provider.ɵproviders, fn);\n }\n else {\n fn(provider);\n }\n }\n}\n\n/**\n * Runs the given function in the [context](guide/di/dependency-injection-context) of the given\n * `Injector`.\n *\n * Within the function's stack frame, [`inject`](api/core/inject) can be used to inject dependencies\n * from the given `Injector`. Note that `inject` is only usable synchronously, and cannot be used in\n * any asynchronous callbacks or after any `await` points.\n *\n * @param injector the injector which will satisfy calls to [`inject`](api/core/inject) while `fn`\n * is executing\n * @param fn the closure to be run in the context of `injector`\n * @returns the return value of the function, if any\n * @publicApi\n */\nfunction runInInjectionContext(injector, fn) {\n if (injector instanceof R3Injector) {\n injector.assertNotDestroyed();\n }\n let prevInjectorProfilerContext;\n if (ngDevMode) {\n prevInjectorProfilerContext = setInjectorProfilerContext({ injector, token: null });\n }\n const prevInjector = setCurrentInjector(injector);\n const previousInjectImplementation = setInjectImplementation(undefined);\n try {\n return fn();\n }\n finally {\n setCurrentInjector(prevInjector);\n ngDevMode && setInjectorProfilerContext(prevInjectorProfilerContext);\n setInjectImplementation(previousInjectImplementation);\n }\n}\n/**\n * Whether the current stack frame is inside an injection context.\n */\nfunction isInInjectionContext() {\n return getInjectImplementation() !== undefined || getCurrentInjector() != null;\n}\n/**\n * Asserts that the current stack frame is within an [injection\n * context](guide/di/dependency-injection-context) and has access to `inject`.\n *\n * @param debugFn a reference to the function making the assertion (used for the error message).\n *\n * @publicApi\n */\nfunction assertInInjectionContext(debugFn) {\n // Taking a `Function` instead of a string name here prevents the unminified name of the function\n // from being retained in the bundle regardless of minification.\n if (!isInInjectionContext()) {\n throw new RuntimeError(-203 /* RuntimeErrorCode.MISSING_INJECTION_CONTEXT */, ngDevMode &&\n debugFn.name +\n '() can only be used within an injection context such as a constructor, a factory function, a field initializer, or a function used with `runInInjectionContext`');\n }\n}\n\nvar FactoryTarget;\n(function (FactoryTarget) {\n FactoryTarget[FactoryTarget[\"Directive\"] = 0] = \"Directive\";\n FactoryTarget[FactoryTarget[\"Component\"] = 1] = \"Component\";\n FactoryTarget[FactoryTarget[\"Injectable\"] = 2] = \"Injectable\";\n FactoryTarget[FactoryTarget[\"Pipe\"] = 3] = \"Pipe\";\n FactoryTarget[FactoryTarget[\"NgModule\"] = 4] = \"NgModule\";\n})(FactoryTarget || (FactoryTarget = {}));\nvar R3TemplateDependencyKind;\n(function (R3TemplateDependencyKind) {\n R3TemplateDependencyKind[R3TemplateDependencyKind[\"Directive\"] = 0] = \"Directive\";\n R3TemplateDependencyKind[R3TemplateDependencyKind[\"Pipe\"] = 1] = \"Pipe\";\n R3TemplateDependencyKind[R3TemplateDependencyKind[\"NgModule\"] = 2] = \"NgModule\";\n})(R3TemplateDependencyKind || (R3TemplateDependencyKind = {}));\nvar ViewEncapsulation;\n(function (ViewEncapsulation) {\n ViewEncapsulation[ViewEncapsulation[\"Emulated\"] = 0] = \"Emulated\";\n // Historically the 1 value was for `Native` encapsulation which has been removed as of v11.\n ViewEncapsulation[ViewEncapsulation[\"None\"] = 2] = \"None\";\n ViewEncapsulation[ViewEncapsulation[\"ShadowDom\"] = 3] = \"ShadowDom\";\n})(ViewEncapsulation || (ViewEncapsulation = {}));\n\nfunction getCompilerFacade(request) {\n const globalNg = _global['ng'];\n if (globalNg && globalNg.ɵcompilerFacade) {\n return globalNg.ɵcompilerFacade;\n }\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n // Log the type as an error so that a developer can easily navigate to the type from the\n // console.\n console.error(`JIT compilation failed for ${request.kind}`, request.type);\n let message = `The ${request.kind} '${request.type.name}' needs to be compiled using the JIT compiler, but '@angular/compiler' is not available.\\n\\n`;\n if (request.usage === 1 /* JitCompilerUsage.PartialDeclaration */) {\n message += `The ${request.kind} is part of a library that has been partially compiled.\\n`;\n message += `However, the Angular Linker has not processed the library such that JIT compilation is used as fallback.\\n`;\n message += '\\n';\n message += `Ideally, the library is processed using the Angular Linker to become fully AOT compiled.\\n`;\n }\n else {\n message += `JIT compilation is discouraged for production use-cases! Consider using AOT mode instead.\\n`;\n }\n message += `Alternatively, the JIT compiler should be loaded by bootstrapping using '@angular/platform-browser-dynamic' or '@angular/platform-server',\\n`;\n message += `or manually provide the compiler with 'import \"@angular/compiler\";' before bootstrapping.`;\n throw new Error(message);\n }\n else {\n throw new Error('JIT compiler unavailable');\n }\n}\n\n/**\n * A mapping of the @angular/core API surface used in generated expressions to the actual symbols.\n *\n * This should be kept up to date with the public exports of @angular/core.\n */\nconst angularCoreDiEnv = {\n 'ɵɵdefineInjectable': ɵɵdefineInjectable,\n 'ɵɵdefineInjector': ɵɵdefineInjector,\n 'ɵɵinject': ɵɵinject,\n 'ɵɵinvalidFactoryDep': ɵɵinvalidFactoryDep,\n 'resolveForwardRef': resolveForwardRef,\n};\n\n/**\n * @description\n *\n * Represents a type that a Component or other object is instances of.\n *\n * An example of a `Type` is `MyCustomComponent` class, which in JavaScript is represented by\n * the `MyCustomComponent` constructor function.\n *\n * @publicApi\n */\nconst Type = Function;\nfunction isType(v) {\n return typeof v === 'function';\n}\n\n/*\n * #########################\n * Attention: These Regular expressions have to hold even if the code is minified!\n * ##########################\n */\n/**\n * Regular expression that detects pass-through constructors for ES5 output. This Regex\n * intends to capture the common delegation pattern emitted by TypeScript and Babel. Also\n * it intends to capture the pattern where existing constructors have been downleveled from\n * ES2015 to ES5 using TypeScript w/ downlevel iteration. e.g.\n *\n * ```\n * function MyClass() {\n * var _this = _super.apply(this, arguments) || this;\n * ```\n *\n * downleveled to ES5 with `downlevelIteration` for TypeScript < 4.2:\n * ```\n * function MyClass() {\n * var _this = _super.apply(this, __spread(arguments)) || this;\n * ```\n *\n * or downleveled to ES5 with `downlevelIteration` for TypeScript >= 4.2:\n * ```\n * function MyClass() {\n * var _this = _super.apply(this, __spreadArray([], __read(arguments), false)) || this;\n * ```\n *\n * More details can be found in: https://github.com/angular/angular/issues/38453.\n */\nconst ES5_DELEGATE_CTOR = /^function\\s+\\S+\\(\\)\\s*{[\\s\\S]+\\.apply\\(this,\\s*(arguments|(?:[^()]+\\(\\[\\],)?[^()]+\\(arguments\\).*)\\)/;\n/** Regular expression that detects ES2015 classes which extend from other classes. */\nconst ES2015_INHERITED_CLASS = /^class\\s+[A-Za-z\\d$_]*\\s*extends\\s+[^{]+{/;\n/**\n * Regular expression that detects ES2015 classes which extend from other classes and\n * have an explicit constructor defined.\n */\nconst ES2015_INHERITED_CLASS_WITH_CTOR = /^class\\s+[A-Za-z\\d$_]*\\s*extends\\s+[^{]+{[\\s\\S]*constructor\\s*\\(/;\n/**\n * Regular expression that detects ES2015 classes which extend from other classes\n * and inherit a constructor.\n */\nconst ES2015_INHERITED_CLASS_WITH_DELEGATE_CTOR = /^class\\s+[A-Za-z\\d$_]*\\s*extends\\s+[^{]+{[\\s\\S]*constructor\\s*\\(\\)\\s*{[^}]*super\\(\\.\\.\\.arguments\\)/;\n/**\n * Determine whether a stringified type is a class which delegates its constructor\n * to its parent.\n *\n * This is not trivial since compiled code can actually contain a constructor function\n * even if the original source code did not. For instance, when the child class contains\n * an initialized instance property.\n */\nfunction isDelegateCtor(typeStr) {\n return (ES5_DELEGATE_CTOR.test(typeStr) ||\n ES2015_INHERITED_CLASS_WITH_DELEGATE_CTOR.test(typeStr) ||\n (ES2015_INHERITED_CLASS.test(typeStr) && !ES2015_INHERITED_CLASS_WITH_CTOR.test(typeStr)));\n}\nclass ReflectionCapabilities {\n constructor(reflect) {\n this._reflect = reflect || _global['Reflect'];\n }\n factory(t) {\n return (...args) => new t(...args);\n }\n /** @internal */\n _zipTypesAndAnnotations(paramTypes, paramAnnotations) {\n let result;\n if (typeof paramTypes === 'undefined') {\n result = newArray(paramAnnotations.length);\n }\n else {\n result = newArray(paramTypes.length);\n }\n for (let i = 0; i < result.length; i++) {\n // TS outputs Object for parameters without types, while Traceur omits\n // the annotations. For now we preserve the Traceur behavior to aid\n // migration, but this can be revisited.\n if (typeof paramTypes === 'undefined') {\n result[i] = [];\n }\n else if (paramTypes[i] && paramTypes[i] != Object) {\n result[i] = [paramTypes[i]];\n }\n else {\n result[i] = [];\n }\n if (paramAnnotations && paramAnnotations[i] != null) {\n result[i] = result[i].concat(paramAnnotations[i]);\n }\n }\n return result;\n }\n _ownParameters(type, parentCtor) {\n const typeStr = type.toString();\n // If we have no decorators, we only have function.length as metadata.\n // In that case, to detect whether a child class declared an own constructor or not,\n // we need to look inside of that constructor to check whether it is\n // just calling the parent.\n // This also helps to work around for https://github.com/Microsoft/TypeScript/issues/12439\n // that sets 'design:paramtypes' to []\n // if a class inherits from another class but has no ctor declared itself.\n if (isDelegateCtor(typeStr)) {\n return null;\n }\n // Prefer the direct API.\n if (type.parameters && type.parameters !== parentCtor.parameters) {\n return type.parameters;\n }\n // API of tsickle for lowering decorators to properties on the class.\n const tsickleCtorParams = type.ctorParameters;\n if (tsickleCtorParams && tsickleCtorParams !== parentCtor.ctorParameters) {\n // Newer tsickle uses a function closure\n // Retain the non-function case for compatibility with older tsickle\n const ctorParameters = typeof tsickleCtorParams === 'function' ? tsickleCtorParams() : tsickleCtorParams;\n const paramTypes = ctorParameters.map((ctorParam) => ctorParam && ctorParam.type);\n const paramAnnotations = ctorParameters.map((ctorParam) => ctorParam && convertTsickleDecoratorIntoMetadata(ctorParam.decorators));\n return this._zipTypesAndAnnotations(paramTypes, paramAnnotations);\n }\n // API for metadata created by invoking the decorators.\n const paramAnnotations = type.hasOwnProperty(PARAMETERS) && type[PARAMETERS];\n const paramTypes = this._reflect &&\n this._reflect.getOwnMetadata &&\n this._reflect.getOwnMetadata('design:paramtypes', type);\n if (paramTypes || paramAnnotations) {\n return this._zipTypesAndAnnotations(paramTypes, paramAnnotations);\n }\n // If a class has no decorators, at least create metadata\n // based on function.length.\n // Note: We know that this is a real constructor as we checked\n // the content of the constructor above.\n return newArray(type.length);\n }\n parameters(type) {\n // Note: only report metadata if we have at least one class decorator\n // to stay in sync with the static reflector.\n if (!isType(type)) {\n return [];\n }\n const parentCtor = getParentCtor(type);\n let parameters = this._ownParameters(type, parentCtor);\n if (!parameters && parentCtor !== Object) {\n parameters = this.parameters(parentCtor);\n }\n return parameters || [];\n }\n _ownAnnotations(typeOrFunc, parentCtor) {\n // Prefer the direct API.\n if (typeOrFunc.annotations && typeOrFunc.annotations !== parentCtor.annotations) {\n let annotations = typeOrFunc.annotations;\n if (typeof annotations === 'function' && annotations.annotations) {\n annotations = annotations.annotations;\n }\n return annotations;\n }\n // API of tsickle for lowering decorators to properties on the class.\n if (typeOrFunc.decorators && typeOrFunc.decorators !== parentCtor.decorators) {\n return convertTsickleDecoratorIntoMetadata(typeOrFunc.decorators);\n }\n // API for metadata created by invoking the decorators.\n if (typeOrFunc.hasOwnProperty(ANNOTATIONS)) {\n return typeOrFunc[ANNOTATIONS];\n }\n return null;\n }\n annotations(typeOrFunc) {\n if (!isType(typeOrFunc)) {\n return [];\n }\n const parentCtor = getParentCtor(typeOrFunc);\n const ownAnnotations = this._ownAnnotations(typeOrFunc, parentCtor) || [];\n const parentAnnotations = parentCtor !== Object ? this.annotations(parentCtor) : [];\n return parentAnnotations.concat(ownAnnotations);\n }\n _ownPropMetadata(typeOrFunc, parentCtor) {\n // Prefer the direct API.\n if (typeOrFunc.propMetadata &&\n typeOrFunc.propMetadata !== parentCtor.propMetadata) {\n let propMetadata = typeOrFunc.propMetadata;\n if (typeof propMetadata === 'function' && propMetadata.propMetadata) {\n propMetadata = propMetadata.propMetadata;\n }\n return propMetadata;\n }\n // API of tsickle for lowering decorators to properties on the class.\n if (typeOrFunc.propDecorators &&\n typeOrFunc.propDecorators !== parentCtor.propDecorators) {\n const propDecorators = typeOrFunc.propDecorators;\n const propMetadata = {};\n Object.keys(propDecorators).forEach((prop) => {\n propMetadata[prop] = convertTsickleDecoratorIntoMetadata(propDecorators[prop]);\n });\n return propMetadata;\n }\n // API for metadata created by invoking the decorators.\n if (typeOrFunc.hasOwnProperty(PROP_METADATA)) {\n return typeOrFunc[PROP_METADATA];\n }\n return null;\n }\n propMetadata(typeOrFunc) {\n if (!isType(typeOrFunc)) {\n return {};\n }\n const parentCtor = getParentCtor(typeOrFunc);\n const propMetadata = {};\n if (parentCtor !== Object) {\n const parentPropMetadata = this.propMetadata(parentCtor);\n Object.keys(parentPropMetadata).forEach((propName) => {\n propMetadata[propName] = parentPropMetadata[propName];\n });\n }\n const ownPropMetadata = this._ownPropMetadata(typeOrFunc, parentCtor);\n if (ownPropMetadata) {\n Object.keys(ownPropMetadata).forEach((propName) => {\n const decorators = [];\n if (propMetadata.hasOwnProperty(propName)) {\n decorators.push(...propMetadata[propName]);\n }\n decorators.push(...ownPropMetadata[propName]);\n propMetadata[propName] = decorators;\n });\n }\n return propMetadata;\n }\n ownPropMetadata(typeOrFunc) {\n if (!isType(typeOrFunc)) {\n return {};\n }\n return this._ownPropMetadata(typeOrFunc, getParentCtor(typeOrFunc)) || {};\n }\n hasLifecycleHook(type, lcProperty) {\n return type instanceof Type && lcProperty in type.prototype;\n }\n}\nfunction convertTsickleDecoratorIntoMetadata(decoratorInvocations) {\n if (!decoratorInvocations) {\n return [];\n }\n return decoratorInvocations.map((decoratorInvocation) => {\n const decoratorType = decoratorInvocation.type;\n const annotationCls = decoratorType.annotationCls;\n const annotationArgs = decoratorInvocation.args ? decoratorInvocation.args : [];\n return new annotationCls(...annotationArgs);\n });\n}\nfunction getParentCtor(ctor) {\n const parentProto = ctor.prototype ? Object.getPrototypeOf(ctor.prototype) : null;\n const parentCtor = parentProto ? parentProto.constructor : null;\n // Note: We always use `Object` as the null value\n // to simplify checking later on.\n return parentCtor || Object;\n}\n\n// Below are constants for LView indices to help us look up LView members\n// without having to remember the specific indices.\n// Uglify will inline these when minifying so there shouldn't be a cost.\nconst HOST = 0;\nconst TVIEW = 1;\n// Shared with LContainer\nconst FLAGS = 2;\nconst PARENT = 3;\nconst NEXT = 4;\nconst T_HOST = 5;\n// End shared with LContainer\nconst HYDRATION = 6;\nconst CLEANUP = 7;\nconst CONTEXT = 8;\nconst INJECTOR = 9;\nconst ENVIRONMENT = 10;\nconst RENDERER = 11;\nconst CHILD_HEAD = 12;\nconst CHILD_TAIL = 13;\n// FIXME(misko): Investigate if the three declarations aren't all same thing.\nconst DECLARATION_VIEW = 14;\nconst DECLARATION_COMPONENT_VIEW = 15;\nconst DECLARATION_LCONTAINER = 16;\nconst PREORDER_HOOK_FLAGS = 17;\nconst QUERIES = 18;\nconst ID = 19;\nconst EMBEDDED_VIEW_INJECTOR = 20;\nconst ON_DESTROY_HOOKS = 21;\nconst EFFECTS_TO_SCHEDULE = 22;\nconst REACTIVE_TEMPLATE_CONSUMER = 23;\n/**\n * Size of LView's header. Necessary to adjust for it when setting slots.\n *\n * IMPORTANT: `HEADER_OFFSET` should only be referred to the in the `ɵɵ*` instructions to translate\n * instruction index into `LView` index. All other indexes should be in the `LView` index space and\n * there should be no need to refer to `HEADER_OFFSET` anywhere else.\n */\nconst HEADER_OFFSET = 25;\n\n/**\n * Special location which allows easy identification of type. If we have an array which was\n * retrieved from the `LView` and that array has `true` at `TYPE` location, we know it is\n * `LContainer`.\n */\nconst TYPE = 1;\n/**\n * Below are constants for LContainer indices to help us look up LContainer members\n * without having to remember the specific indices.\n * Uglify will inline these when minifying so there shouldn't be a cost.\n */\n// FLAGS, PARENT, NEXT, and T_HOST are indices 2, 3, 4, and 5\n// As we already have these constants in LView, we don't need to re-create them.\nconst DEHYDRATED_VIEWS = 6;\nconst NATIVE = 7;\nconst VIEW_REFS = 8;\nconst MOVED_VIEWS = 9;\n/**\n * Size of LContainer's header. Represents the index after which all views in the\n * container will be inserted. We need to keep a record of current views so we know\n * which views are already in the DOM (and don't need to be re-added) and so we can\n * remove views from the DOM when they are no longer required.\n */\nconst CONTAINER_HEADER_OFFSET = 10;\n/** Flags associated with an LContainer (saved in LContainer[FLAGS]) */\nvar LContainerFlags;\n(function (LContainerFlags) {\n LContainerFlags[LContainerFlags[\"None\"] = 0] = \"None\";\n /**\n * Flag to signify that this `LContainer` may have transplanted views which need to be change\n * detected. (see: `LView[DECLARATION_COMPONENT_VIEW])`.\n *\n * This flag, once set, is never unset for the `LContainer`.\n */\n LContainerFlags[LContainerFlags[\"HasTransplantedViews\"] = 2] = \"HasTransplantedViews\";\n})(LContainerFlags || (LContainerFlags = {}));\n\n/**\n * True if `value` is `LView`.\n * @param value wrapped value of `RNode`, `LView`, `LContainer`\n */\nfunction isLView(value) {\n return Array.isArray(value) && typeof value[TYPE] === 'object';\n}\n/**\n * True if `value` is `LContainer`.\n * @param value wrapped value of `RNode`, `LView`, `LContainer`\n */\nfunction isLContainer(value) {\n return Array.isArray(value) && value[TYPE] === true;\n}\nfunction isContentQueryHost(tNode) {\n return (tNode.flags & 4 /* TNodeFlags.hasContentQuery */) !== 0;\n}\nfunction isComponentHost(tNode) {\n return tNode.componentOffset > -1;\n}\nfunction isDirectiveHost(tNode) {\n return (tNode.flags & 1 /* TNodeFlags.isDirectiveHost */) === 1 /* TNodeFlags.isDirectiveHost */;\n}\nfunction isComponentDef(def) {\n return !!def.template;\n}\nfunction isRootView(target) {\n return (target[FLAGS] & 512 /* LViewFlags.IsRoot */) !== 0;\n}\nfunction isProjectionTNode(tNode) {\n return (tNode.type & 16 /* TNodeType.Projection */) === 16 /* TNodeType.Projection */;\n}\nfunction hasI18n(lView) {\n return (lView[FLAGS] & 32 /* LViewFlags.HasI18n */) === 32 /* LViewFlags.HasI18n */;\n}\nfunction isDestroyed(lView) {\n return (lView[FLAGS] & 256 /* LViewFlags.Destroyed */) === 256 /* LViewFlags.Destroyed */;\n}\n\n// [Assert functions do not constraint type when they are guarded by a truthy\n// expression.](https://github.com/microsoft/TypeScript/issues/37295)\nfunction assertTNodeForLView(tNode, lView) {\n assertTNodeForTView(tNode, lView[TVIEW]);\n}\nfunction assertTNodeForTView(tNode, tView) {\n assertTNode(tNode);\n const tData = tView.data;\n for (let i = HEADER_OFFSET; i < tData.length; i++) {\n if (tData[i] === tNode) {\n return;\n }\n }\n throwError('This TNode does not belong to this TView.');\n}\nfunction assertTNode(tNode) {\n assertDefined(tNode, 'TNode must be defined');\n if (!(tNode && typeof tNode === 'object' && tNode.hasOwnProperty('directiveStylingLast'))) {\n throwError('Not of type TNode, got: ' + tNode);\n }\n}\nfunction assertTIcu(tIcu) {\n assertDefined(tIcu, 'Expected TIcu to be defined');\n if (!(typeof tIcu.currentCaseLViewIndex === 'number')) {\n throwError('Object is not of TIcu type.');\n }\n}\nfunction assertComponentType(actual, msg = \"Type passed in is not ComponentType, it does not have 'ɵcmp' property.\") {\n if (!getComponentDef(actual)) {\n throwError(msg);\n }\n}\nfunction assertNgModuleType(actual, msg = \"Type passed in is not NgModuleType, it does not have 'ɵmod' property.\") {\n if (!getNgModuleDef(actual)) {\n throwError(msg);\n }\n}\nfunction assertCurrentTNodeIsParent(isParent) {\n assertEqual(isParent, true, 'currentTNode should be a parent');\n}\nfunction assertHasParent(tNode) {\n assertDefined(tNode, 'currentTNode should exist!');\n assertDefined(tNode.parent, 'currentTNode should have a parent');\n}\nfunction assertLContainer(value) {\n assertDefined(value, 'LContainer must be defined');\n assertEqual(isLContainer(value), true, 'Expecting LContainer');\n}\nfunction assertLViewOrUndefined(value) {\n value && assertEqual(isLView(value), true, 'Expecting LView or undefined or null');\n}\nfunction assertLView(value) {\n assertDefined(value, 'LView must be defined');\n assertEqual(isLView(value), true, 'Expecting LView');\n}\nfunction assertFirstCreatePass(tView, errMessage) {\n assertEqual(tView.firstCreatePass, true, errMessage || 'Should only be called in first create pass.');\n}\nfunction assertFirstUpdatePass(tView, errMessage) {\n assertEqual(tView.firstUpdatePass, true, errMessage || 'Should only be called in first update pass.');\n}\n/**\n * This is a basic sanity check that an object is probably a directive def. DirectiveDef is\n * an interface, so we can't do a direct instanceof check.\n */\nfunction assertDirectiveDef(obj) {\n if (obj.type === undefined || obj.selectors == undefined || obj.inputs === undefined) {\n throwError(`Expected a DirectiveDef/ComponentDef and this object does not seem to have the expected shape.`);\n }\n}\nfunction assertIndexInDeclRange(tView, index) {\n assertBetween(HEADER_OFFSET, tView.bindingStartIndex, index);\n}\nfunction assertIndexInExpandoRange(lView, index) {\n const tView = lView[1];\n assertBetween(tView.expandoStartIndex, lView.length, index);\n}\nfunction assertBetween(lower, upper, index) {\n if (!(lower <= index && index < upper)) {\n throwError(`Index out of range (expecting ${lower} <= ${index} < ${upper})`);\n }\n}\nfunction assertProjectionSlots(lView, errMessage) {\n assertDefined(lView[DECLARATION_COMPONENT_VIEW], 'Component views should exist.');\n assertDefined(lView[DECLARATION_COMPONENT_VIEW][T_HOST].projection, errMessage ||\n 'Components with projection nodes () must have projection slots defined.');\n}\nfunction assertParentView(lView, errMessage) {\n assertDefined(lView, errMessage || \"Component views should always have a parent view (component's host view)\");\n}\nfunction assertNoDuplicateDirectives(directives) {\n // The array needs at least two elements in order to have duplicates.\n if (directives.length < 2) {\n return;\n }\n const seenDirectives = new Set();\n for (const current of directives) {\n if (seenDirectives.has(current)) {\n throw new RuntimeError(309 /* RuntimeErrorCode.DUPLICATE_DIRECTIVE */, `Directive ${current.type.name} matches multiple times on the same element. ` +\n `Directives can only match an element once.`);\n }\n seenDirectives.add(current);\n }\n}\n/**\n * This is a basic sanity check that the `injectorIndex` seems to point to what looks like a\n * NodeInjector data structure.\n *\n * @param lView `LView` which should be checked.\n * @param injectorIndex index into the `LView` where the `NodeInjector` is expected.\n */\nfunction assertNodeInjector(lView, injectorIndex) {\n assertIndexInExpandoRange(lView, injectorIndex);\n assertIndexInExpandoRange(lView, injectorIndex + 8 /* NodeInjectorOffset.PARENT */);\n assertNumber(lView[injectorIndex + 0], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 1], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 2], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 3], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 4], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 5], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 6], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 7], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 8 /* NodeInjectorOffset.PARENT */], 'injectorIndex should point to parent injector');\n}\n\n/**\n * Represents a basic change from a previous to a new value for a single\n * property on a directive instance. Passed as a value in a\n * {@link SimpleChanges} object to the `ngOnChanges` hook.\n *\n * @see {@link OnChanges}\n *\n * @publicApi\n */\nclass SimpleChange {\n constructor(previousValue, currentValue, firstChange) {\n this.previousValue = previousValue;\n this.currentValue = currentValue;\n this.firstChange = firstChange;\n }\n /**\n * Check whether the new value is the first value assigned.\n */\n isFirstChange() {\n return this.firstChange;\n }\n}\n\nfunction applyValueToInputField(instance, inputSignalNode, privateName, value) {\n if (inputSignalNode !== null) {\n inputSignalNode.applyValueToInputSignal(inputSignalNode, value);\n }\n else {\n instance[privateName] = value;\n }\n}\n\n/**\n * The NgOnChangesFeature decorates a component with support for the ngOnChanges\n * lifecycle hook, so it should be included in any component that implements\n * that hook.\n *\n * If the component or directive uses inheritance, the NgOnChangesFeature MUST\n * be included as a feature AFTER {@link InheritDefinitionFeature}, otherwise\n * inherited properties will not be propagated to the ngOnChanges lifecycle\n * hook.\n *\n * Example usage:\n *\n * ```\n * static ɵcmp = defineComponent({\n * ...\n * inputs: {name: 'publicName'},\n * features: [NgOnChangesFeature]\n * });\n * ```\n *\n * @codeGenApi\n */\nfunction ɵɵNgOnChangesFeature() {\n return NgOnChangesFeatureImpl;\n}\nfunction NgOnChangesFeatureImpl(definition) {\n if (definition.type.prototype.ngOnChanges) {\n definition.setInput = ngOnChangesSetInput;\n }\n return rememberChangeHistoryAndInvokeOnChangesHook;\n}\n// This option ensures that the ngOnChanges lifecycle hook will be inherited\n// from superclasses (in InheritDefinitionFeature).\n/** @nocollapse */\n// tslint:disable-next-line:no-toplevel-property-access\nɵɵNgOnChangesFeature.ngInherit = true;\n/**\n * This is a synthetic lifecycle hook which gets inserted into `TView.preOrderHooks` to simulate\n * `ngOnChanges`.\n *\n * The hook reads the `NgSimpleChangesStore` data from the component instance and if changes are\n * found it invokes `ngOnChanges` on the component instance.\n *\n * @param this Component instance. Because this function gets inserted into `TView.preOrderHooks`,\n * it is guaranteed to be called with component instance.\n */\nfunction rememberChangeHistoryAndInvokeOnChangesHook() {\n const simpleChangesStore = getSimpleChangesStore(this);\n const current = simpleChangesStore?.current;\n if (current) {\n const previous = simpleChangesStore.previous;\n if (previous === EMPTY_OBJ) {\n simpleChangesStore.previous = current;\n }\n else {\n // New changes are copied to the previous store, so that we don't lose history for inputs\n // which were not changed this time\n for (let key in current) {\n previous[key] = current[key];\n }\n }\n simpleChangesStore.current = null;\n this.ngOnChanges(current);\n }\n}\nfunction ngOnChangesSetInput(instance, inputSignalNode, value, publicName, privateName) {\n const declaredName = this.declaredInputs[publicName];\n ngDevMode && assertString(declaredName, 'Name of input in ngOnChanges has to be a string');\n const simpleChangesStore = getSimpleChangesStore(instance) ||\n setSimpleChangesStore(instance, { previous: EMPTY_OBJ, current: null });\n const current = simpleChangesStore.current || (simpleChangesStore.current = {});\n const previous = simpleChangesStore.previous;\n const previousChange = previous[declaredName];\n current[declaredName] = new SimpleChange(previousChange && previousChange.currentValue, value, previous === EMPTY_OBJ);\n applyValueToInputField(instance, inputSignalNode, privateName, value);\n}\nconst SIMPLE_CHANGES_STORE = '__ngSimpleChanges__';\nfunction getSimpleChangesStore(instance) {\n return instance[SIMPLE_CHANGES_STORE] || null;\n}\nfunction setSimpleChangesStore(instance, store) {\n return (instance[SIMPLE_CHANGES_STORE] = store);\n}\n\nlet profilerCallback = null;\n/**\n * Sets the callback function which will be invoked before and after performing certain actions at\n * runtime (for example, before and after running change detection).\n *\n * Warning: this function is *INTERNAL* and should not be relied upon in application's code.\n * The contract of the function might be changed in any release and/or the function can be removed\n * completely.\n *\n * @param profiler function provided by the caller or null value to disable profiling.\n */\nconst setProfiler = (profiler) => {\n profilerCallback = profiler;\n};\n/**\n * Profiler function which wraps user code executed by the runtime.\n *\n * @param event ProfilerEvent corresponding to the execution context\n * @param instance component instance\n * @param hookOrListener lifecycle hook function or output listener. The value depends on the\n * execution context\n * @returns\n */\nconst profiler = function (event, instance, hookOrListener) {\n if (profilerCallback != null /* both `null` and `undefined` */) {\n profilerCallback(event, instance, hookOrListener);\n }\n};\n\nconst SVG_NAMESPACE = 'svg';\nconst MATH_ML_NAMESPACE = 'math';\n\n/**\n * For efficiency reasons we often put several different data types (`RNode`, `LView`, `LContainer`)\n * in same location in `LView`. This is because we don't want to pre-allocate space for it\n * because the storage is sparse. This file contains utilities for dealing with such data types.\n *\n * How do we know what is stored at a given location in `LView`.\n * - `Array.isArray(value) === false` => `RNode` (The normal storage value)\n * - `Array.isArray(value) === true` => then the `value[0]` represents the wrapped value.\n * - `typeof value[TYPE] === 'object'` => `LView`\n * - This happens when we have a component at a given location\n * - `typeof value[TYPE] === true` => `LContainer`\n * - This happens when we have `LContainer` binding at a given location.\n *\n *\n * NOTE: it is assumed that `Array.isArray` and `typeof` operations are very efficient.\n */\n/**\n * Returns `RNode`.\n * @param value wrapped value of `RNode`, `LView`, `LContainer`\n */\nfunction unwrapRNode(value) {\n while (Array.isArray(value)) {\n value = value[HOST];\n }\n return value;\n}\n/**\n * Returns `LView` or `null` if not found.\n * @param value wrapped value of `RNode`, `LView`, `LContainer`\n */\nfunction unwrapLView(value) {\n while (Array.isArray(value)) {\n // This check is same as `isLView()` but we don't call at as we don't want to call\n // `Array.isArray()` twice and give JITer more work for inlining.\n if (typeof value[TYPE] === 'object')\n return value;\n value = value[HOST];\n }\n return null;\n}\n/**\n * Retrieves an element value from the provided `viewData`, by unwrapping\n * from any containers, component views, or style contexts.\n */\nfunction getNativeByIndex(index, lView) {\n ngDevMode && assertIndexInRange(lView, index);\n ngDevMode && assertGreaterThanOrEqual(index, HEADER_OFFSET, 'Expected to be past HEADER_OFFSET');\n return unwrapRNode(lView[index]);\n}\n/**\n * Retrieve an `RNode` for a given `TNode` and `LView`.\n *\n * This function guarantees in dev mode to retrieve a non-null `RNode`.\n *\n * @param tNode\n * @param lView\n */\nfunction getNativeByTNode(tNode, lView) {\n ngDevMode && assertTNodeForLView(tNode, lView);\n ngDevMode && assertIndexInRange(lView, tNode.index);\n const node = unwrapRNode(lView[tNode.index]);\n return node;\n}\n/**\n * Retrieve an `RNode` or `null` for a given `TNode` and `LView`.\n *\n * Some `TNode`s don't have associated `RNode`s. For example `Projection`\n *\n * @param tNode\n * @param lView\n */\nfunction getNativeByTNodeOrNull(tNode, lView) {\n const index = tNode === null ? -1 : tNode.index;\n if (index !== -1) {\n ngDevMode && assertTNodeForLView(tNode, lView);\n const node = unwrapRNode(lView[index]);\n return node;\n }\n return null;\n}\n// fixme(misko): The return Type should be `TNode|null`\nfunction getTNode(tView, index) {\n ngDevMode && assertGreaterThan(index, -1, 'wrong index for TNode');\n ngDevMode && assertLessThan(index, tView.data.length, 'wrong index for TNode');\n const tNode = tView.data[index];\n ngDevMode && tNode !== null && assertTNode(tNode);\n return tNode;\n}\n/** Retrieves a value from any `LView` or `TData`. */\nfunction load(view, index) {\n ngDevMode && assertIndexInRange(view, index);\n return view[index];\n}\nfunction getComponentLViewByIndex(nodeIndex, hostView) {\n // Could be an LView or an LContainer. If LContainer, unwrap to find LView.\n ngDevMode && assertIndexInRange(hostView, nodeIndex);\n const slotValue = hostView[nodeIndex];\n const lView = isLView(slotValue) ? slotValue : slotValue[HOST];\n return lView;\n}\n/** Checks whether a given view is in creation mode */\nfunction isCreationMode(view) {\n return (view[FLAGS] & 4 /* LViewFlags.CreationMode */) === 4 /* LViewFlags.CreationMode */;\n}\n/**\n * Returns a boolean for whether the view is attached to the change detection tree.\n *\n * Note: This determines whether a view should be checked, not whether it's inserted\n * into a container. For that, you'll want `viewAttachedToContainer` below.\n */\nfunction viewAttachedToChangeDetector(view) {\n return (view[FLAGS] & 128 /* LViewFlags.Attached */) === 128 /* LViewFlags.Attached */;\n}\n/** Returns a boolean for whether the view is attached to a container. */\nfunction viewAttachedToContainer(view) {\n return isLContainer(view[PARENT]);\n}\nfunction getConstant(consts, index) {\n if (index === null || index === undefined)\n return null;\n ngDevMode && assertIndexInRange(consts, index);\n return consts[index];\n}\n/**\n * Resets the pre-order hook flags of the view.\n * @param lView the LView on which the flags are reset\n */\nfunction resetPreOrderHookFlags(lView) {\n lView[PREORDER_HOOK_FLAGS] = 0;\n}\n/**\n * Adds the `RefreshView` flag from the lView and updates HAS_CHILD_VIEWS_TO_REFRESH flag of\n * parents.\n */\nfunction markViewForRefresh(lView) {\n if (lView[FLAGS] & 1024 /* LViewFlags.RefreshView */) {\n return;\n }\n lView[FLAGS] |= 1024 /* LViewFlags.RefreshView */;\n if (viewAttachedToChangeDetector(lView)) {\n markAncestorsForTraversal(lView);\n }\n}\n/**\n * Walks up the LView hierarchy.\n * @param nestingLevel Number of times to walk up in hierarchy.\n * @param currentView View from which to start the lookup.\n */\nfunction walkUpViews(nestingLevel, currentView) {\n while (nestingLevel > 0) {\n ngDevMode &&\n assertDefined(currentView[DECLARATION_VIEW], 'Declaration view should be defined if nesting level is greater than 0.');\n currentView = currentView[DECLARATION_VIEW];\n nestingLevel--;\n }\n return currentView;\n}\nfunction requiresRefreshOrTraversal(lView) {\n return !!(lView[FLAGS] & (1024 /* LViewFlags.RefreshView */ | 8192 /* LViewFlags.HasChildViewsToRefresh */) ||\n lView[REACTIVE_TEMPLATE_CONSUMER]?.dirty);\n}\n/**\n * Updates the `HasChildViewsToRefresh` flag on the parents of the `LView` as well as the\n * parents above.\n */\nfunction updateAncestorTraversalFlagsOnAttach(lView) {\n lView[ENVIRONMENT].changeDetectionScheduler?.notify(8 /* NotificationSource.ViewAttached */);\n if (lView[FLAGS] & 64 /* LViewFlags.Dirty */) {\n lView[FLAGS] |= 1024 /* LViewFlags.RefreshView */;\n }\n if (requiresRefreshOrTraversal(lView)) {\n markAncestorsForTraversal(lView);\n }\n}\n/**\n * Ensures views above the given `lView` are traversed during change detection even when they are\n * not dirty.\n *\n * This is done by setting the `HAS_CHILD_VIEWS_TO_REFRESH` flag up to the root, stopping when the\n * flag is already `true` or the `lView` is detached.\n */\nfunction markAncestorsForTraversal(lView) {\n lView[ENVIRONMENT].changeDetectionScheduler?.notify(0 /* NotificationSource.MarkAncestorsForTraversal */);\n let parent = getLViewParent(lView);\n while (parent !== null) {\n // We stop adding markers to the ancestors once we reach one that already has the marker. This\n // is to avoid needlessly traversing all the way to the root when the marker already exists.\n if (parent[FLAGS] & 8192 /* LViewFlags.HasChildViewsToRefresh */) {\n break;\n }\n parent[FLAGS] |= 8192 /* LViewFlags.HasChildViewsToRefresh */;\n if (!viewAttachedToChangeDetector(parent)) {\n break;\n }\n parent = getLViewParent(parent);\n }\n}\n/**\n * Stores a LView-specific destroy callback.\n */\nfunction storeLViewOnDestroy(lView, onDestroyCallback) {\n if ((lView[FLAGS] & 256 /* LViewFlags.Destroyed */) === 256 /* LViewFlags.Destroyed */) {\n throw new RuntimeError(911 /* RuntimeErrorCode.VIEW_ALREADY_DESTROYED */, ngDevMode && 'View has already been destroyed.');\n }\n if (lView[ON_DESTROY_HOOKS] === null) {\n lView[ON_DESTROY_HOOKS] = [];\n }\n lView[ON_DESTROY_HOOKS].push(onDestroyCallback);\n}\n/**\n * Removes previously registered LView-specific destroy callback.\n */\nfunction removeLViewOnDestroy(lView, onDestroyCallback) {\n if (lView[ON_DESTROY_HOOKS] === null)\n return;\n const destroyCBIdx = lView[ON_DESTROY_HOOKS].indexOf(onDestroyCallback);\n if (destroyCBIdx !== -1) {\n lView[ON_DESTROY_HOOKS].splice(destroyCBIdx, 1);\n }\n}\n/**\n * Gets the parent LView of the passed LView, if the PARENT is an LContainer, will get the parent of\n * that LContainer, which is an LView\n * @param lView the lView whose parent to get\n */\nfunction getLViewParent(lView) {\n ngDevMode && assertLView(lView);\n const parent = lView[PARENT];\n return isLContainer(parent) ? parent[PARENT] : parent;\n}\n\nconst instructionState = {\n lFrame: createLFrame(null),\n bindingsEnabled: true,\n skipHydrationRootTNode: null,\n};\nvar CheckNoChangesMode;\n(function (CheckNoChangesMode) {\n CheckNoChangesMode[CheckNoChangesMode[\"Off\"] = 0] = \"Off\";\n CheckNoChangesMode[CheckNoChangesMode[\"Exhaustive\"] = 1] = \"Exhaustive\";\n CheckNoChangesMode[CheckNoChangesMode[\"OnlyDirtyViews\"] = 2] = \"OnlyDirtyViews\";\n})(CheckNoChangesMode || (CheckNoChangesMode = {}));\n/**\n * In this mode, any changes in bindings will throw an ExpressionChangedAfterChecked error.\n *\n * Necessary to support ChangeDetectorRef.checkNoChanges().\n *\n * The `checkNoChanges` function is invoked only in ngDevMode=true and verifies that no unintended\n * changes exist in the change detector or its children.\n */\nlet _checkNoChangesMode = 0; /* CheckNoChangesMode.Off */\n/**\n * Flag used to indicate that we are in the middle running change detection on a view\n *\n * @see detectChangesInViewWhileDirty\n */\nlet _isRefreshingViews = false;\n/**\n * Returns true if the instruction state stack is empty.\n *\n * Intended to be called from tests only (tree shaken otherwise).\n */\nfunction specOnlyIsInstructionStateEmpty() {\n return instructionState.lFrame.parent === null;\n}\nfunction getElementDepthCount() {\n return instructionState.lFrame.elementDepthCount;\n}\nfunction increaseElementDepthCount() {\n instructionState.lFrame.elementDepthCount++;\n}\nfunction decreaseElementDepthCount() {\n instructionState.lFrame.elementDepthCount--;\n}\nfunction getBindingsEnabled() {\n return instructionState.bindingsEnabled;\n}\n/**\n * Returns true if currently inside a skip hydration block.\n * @returns boolean\n */\nfunction isInSkipHydrationBlock$1() {\n return instructionState.skipHydrationRootTNode !== null;\n}\n/**\n * Returns true if this is the root TNode of the skip hydration block.\n * @param tNode the current TNode\n * @returns boolean\n */\nfunction isSkipHydrationRootTNode(tNode) {\n return instructionState.skipHydrationRootTNode === tNode;\n}\n/**\n * Enables directive matching on elements.\n *\n * * Example:\n * ```\n * \n * Should match component / directive.\n * \n *
\n * \n * \n * Should not match component / directive because we are in ngNonBindable.\n * \n * \n *
\n * ```\n *\n * @codeGenApi\n */\nfunction ɵɵenableBindings() {\n instructionState.bindingsEnabled = true;\n}\n/**\n * Sets a flag to specify that the TNode is in a skip hydration block.\n * @param tNode the current TNode\n */\nfunction enterSkipHydrationBlock(tNode) {\n instructionState.skipHydrationRootTNode = tNode;\n}\n/**\n * Disables directive matching on element.\n *\n * * Example:\n * ```\n * \n * Should match component / directive.\n * \n *
\n * \n * \n * Should not match component / directive because we are in ngNonBindable.\n * \n * \n *
\n * ```\n *\n * @codeGenApi\n */\nfunction ɵɵdisableBindings() {\n instructionState.bindingsEnabled = false;\n}\n/**\n * Clears the root skip hydration node when leaving a skip hydration block.\n */\nfunction leaveSkipHydrationBlock() {\n instructionState.skipHydrationRootTNode = null;\n}\n/**\n * Return the current `LView`.\n */\nfunction getLView() {\n return instructionState.lFrame.lView;\n}\n/**\n * Return the current `TView`.\n */\nfunction getTView() {\n return instructionState.lFrame.tView;\n}\n/**\n * Restores `contextViewData` to the given OpaqueViewState instance.\n *\n * Used in conjunction with the getCurrentView() instruction to save a snapshot\n * of the current view and restore it when listeners are invoked. This allows\n * walking the declaration view tree in listeners to get vars from parent views.\n *\n * @param viewToRestore The OpaqueViewState instance to restore.\n * @returns Context of the restored OpaqueViewState instance.\n *\n * @codeGenApi\n */\nfunction ɵɵrestoreView(viewToRestore) {\n instructionState.lFrame.contextLView = viewToRestore;\n return viewToRestore[CONTEXT];\n}\n/**\n * Clears the view set in `ɵɵrestoreView` from memory. Returns the passed in\n * value so that it can be used as a return value of an instruction.\n *\n * @codeGenApi\n */\nfunction ɵɵresetView(value) {\n instructionState.lFrame.contextLView = null;\n return value;\n}\nfunction getCurrentTNode() {\n let currentTNode = getCurrentTNodePlaceholderOk();\n while (currentTNode !== null && currentTNode.type === 64 /* TNodeType.Placeholder */) {\n currentTNode = currentTNode.parent;\n }\n return currentTNode;\n}\nfunction getCurrentTNodePlaceholderOk() {\n return instructionState.lFrame.currentTNode;\n}\nfunction getCurrentParentTNode() {\n const lFrame = instructionState.lFrame;\n const currentTNode = lFrame.currentTNode;\n return lFrame.isParent ? currentTNode : currentTNode.parent;\n}\nfunction setCurrentTNode(tNode, isParent) {\n ngDevMode && tNode && assertTNodeForTView(tNode, instructionState.lFrame.tView);\n const lFrame = instructionState.lFrame;\n lFrame.currentTNode = tNode;\n lFrame.isParent = isParent;\n}\nfunction isCurrentTNodeParent() {\n return instructionState.lFrame.isParent;\n}\nfunction setCurrentTNodeAsNotParent() {\n instructionState.lFrame.isParent = false;\n}\nfunction getContextLView() {\n const contextLView = instructionState.lFrame.contextLView;\n ngDevMode && assertDefined(contextLView, 'contextLView must be defined.');\n return contextLView;\n}\nfunction isInCheckNoChangesMode() {\n !ngDevMode && throwError('Must never be called in production mode');\n return _checkNoChangesMode !== CheckNoChangesMode.Off;\n}\nfunction isExhaustiveCheckNoChanges() {\n !ngDevMode && throwError('Must never be called in production mode');\n return _checkNoChangesMode === CheckNoChangesMode.Exhaustive;\n}\nfunction setIsInCheckNoChangesMode(mode) {\n !ngDevMode && throwError('Must never be called in production mode');\n _checkNoChangesMode = mode;\n}\nfunction isRefreshingViews() {\n return _isRefreshingViews;\n}\nfunction setIsRefreshingViews(mode) {\n _isRefreshingViews = mode;\n}\n// top level variables should not be exported for performance reasons (PERF_NOTES.md)\nfunction getBindingRoot() {\n const lFrame = instructionState.lFrame;\n let index = lFrame.bindingRootIndex;\n if (index === -1) {\n index = lFrame.bindingRootIndex = lFrame.tView.bindingStartIndex;\n }\n return index;\n}\nfunction getBindingIndex() {\n return instructionState.lFrame.bindingIndex;\n}\nfunction setBindingIndex(value) {\n return (instructionState.lFrame.bindingIndex = value);\n}\nfunction nextBindingIndex() {\n return instructionState.lFrame.bindingIndex++;\n}\nfunction incrementBindingIndex(count) {\n const lFrame = instructionState.lFrame;\n const index = lFrame.bindingIndex;\n lFrame.bindingIndex = lFrame.bindingIndex + count;\n return index;\n}\nfunction isInI18nBlock() {\n return instructionState.lFrame.inI18n;\n}\nfunction setInI18nBlock(isInI18nBlock) {\n instructionState.lFrame.inI18n = isInI18nBlock;\n}\n/**\n * Set a new binding root index so that host template functions can execute.\n *\n * Bindings inside the host template are 0 index. But because we don't know ahead of time\n * how many host bindings we have we can't pre-compute them. For this reason they are all\n * 0 index and we just shift the root so that they match next available location in the LView.\n *\n * @param bindingRootIndex Root index for `hostBindings`\n * @param currentDirectiveIndex `TData[currentDirectiveIndex]` will point to the current directive\n * whose `hostBindings` are being processed.\n */\nfunction setBindingRootForHostBindings(bindingRootIndex, currentDirectiveIndex) {\n const lFrame = instructionState.lFrame;\n lFrame.bindingIndex = lFrame.bindingRootIndex = bindingRootIndex;\n setCurrentDirectiveIndex(currentDirectiveIndex);\n}\n/**\n * When host binding is executing this points to the directive index.\n * `TView.data[getCurrentDirectiveIndex()]` is `DirectiveDef`\n * `LView[getCurrentDirectiveIndex()]` is directive instance.\n */\nfunction getCurrentDirectiveIndex() {\n return instructionState.lFrame.currentDirectiveIndex;\n}\n/**\n * Sets an index of a directive whose `hostBindings` are being processed.\n *\n * @param currentDirectiveIndex `TData` index where current directive instance can be found.\n */\nfunction setCurrentDirectiveIndex(currentDirectiveIndex) {\n instructionState.lFrame.currentDirectiveIndex = currentDirectiveIndex;\n}\n/**\n * Retrieve the current `DirectiveDef` which is active when `hostBindings` instruction is being\n * executed.\n *\n * @param tData Current `TData` where the `DirectiveDef` will be looked up at.\n */\nfunction getCurrentDirectiveDef(tData) {\n const currentDirectiveIndex = instructionState.lFrame.currentDirectiveIndex;\n return currentDirectiveIndex === -1 ? null : tData[currentDirectiveIndex];\n}\nfunction getCurrentQueryIndex() {\n return instructionState.lFrame.currentQueryIndex;\n}\nfunction setCurrentQueryIndex(value) {\n instructionState.lFrame.currentQueryIndex = value;\n}\n/**\n * Returns a `TNode` of the location where the current `LView` is declared at.\n *\n * @param lView an `LView` that we want to find parent `TNode` for.\n */\nfunction getDeclarationTNode(lView) {\n const tView = lView[TVIEW];\n // Return the declaration parent for embedded views\n if (tView.type === 2 /* TViewType.Embedded */) {\n ngDevMode && assertDefined(tView.declTNode, 'Embedded TNodes should have declaration parents.');\n return tView.declTNode;\n }\n // Components don't have `TView.declTNode` because each instance of component could be\n // inserted in different location, hence `TView.declTNode` is meaningless.\n // Falling back to `T_HOST` in case we cross component boundary.\n if (tView.type === 1 /* TViewType.Component */) {\n return lView[T_HOST];\n }\n // Remaining TNode type is `TViewType.Root` which doesn't have a parent TNode.\n return null;\n}\n/**\n * This is a light weight version of the `enterView` which is needed by the DI system.\n *\n * @param lView `LView` location of the DI context.\n * @param tNode `TNode` for DI context\n * @param flags DI context flags. if `SkipSelf` flag is set than we walk up the declaration\n * tree from `tNode` until we find parent declared `TElementNode`.\n * @returns `true` if we have successfully entered DI associated with `tNode` (or with declared\n * `TNode` if `flags` has `SkipSelf`). Failing to enter DI implies that no associated\n * `NodeInjector` can be found and we should instead use `ModuleInjector`.\n * - If `true` than this call must be fallowed by `leaveDI`\n * - If `false` than this call failed and we should NOT call `leaveDI`\n */\nfunction enterDI(lView, tNode, flags) {\n ngDevMode && assertLViewOrUndefined(lView);\n if (flags & InjectFlags.SkipSelf) {\n ngDevMode && assertTNodeForTView(tNode, lView[TVIEW]);\n let parentTNode = tNode;\n let parentLView = lView;\n while (true) {\n ngDevMode && assertDefined(parentTNode, 'Parent TNode should be defined');\n parentTNode = parentTNode.parent;\n if (parentTNode === null && !(flags & InjectFlags.Host)) {\n parentTNode = getDeclarationTNode(parentLView);\n if (parentTNode === null)\n break;\n // In this case, a parent exists and is definitely an element. So it will definitely\n // have an existing lView as the declaration view, which is why we can assume it's defined.\n ngDevMode && assertDefined(parentLView, 'Parent LView should be defined');\n parentLView = parentLView[DECLARATION_VIEW];\n // In Ivy there are Comment nodes that correspond to ngIf and NgFor embedded directives\n // We want to skip those and look only at Elements and ElementContainers to ensure\n // we're looking at true parent nodes, and not content or other types.\n if (parentTNode.type & (2 /* TNodeType.Element */ | 8 /* TNodeType.ElementContainer */)) {\n break;\n }\n }\n else {\n break;\n }\n }\n if (parentTNode === null) {\n // If we failed to find a parent TNode this means that we should use module injector.\n return false;\n }\n else {\n tNode = parentTNode;\n lView = parentLView;\n }\n }\n ngDevMode && assertTNodeForLView(tNode, lView);\n const lFrame = (instructionState.lFrame = allocLFrame());\n lFrame.currentTNode = tNode;\n lFrame.lView = lView;\n return true;\n}\n/**\n * Swap the current lView with a new lView.\n *\n * For performance reasons we store the lView in the top level of the module.\n * This way we minimize the number of properties to read. Whenever a new view\n * is entered we have to store the lView for later, and when the view is\n * exited the state has to be restored\n *\n * @param newView New lView to become active\n * @returns the previously active lView;\n */\nfunction enterView(newView) {\n ngDevMode && assertNotEqual(newView[0], newView[1], '????');\n ngDevMode && assertLViewOrUndefined(newView);\n const newLFrame = allocLFrame();\n if (ngDevMode) {\n assertEqual(newLFrame.isParent, true, 'Expected clean LFrame');\n assertEqual(newLFrame.lView, null, 'Expected clean LFrame');\n assertEqual(newLFrame.tView, null, 'Expected clean LFrame');\n assertEqual(newLFrame.selectedIndex, -1, 'Expected clean LFrame');\n assertEqual(newLFrame.elementDepthCount, 0, 'Expected clean LFrame');\n assertEqual(newLFrame.currentDirectiveIndex, -1, 'Expected clean LFrame');\n assertEqual(newLFrame.currentNamespace, null, 'Expected clean LFrame');\n assertEqual(newLFrame.bindingRootIndex, -1, 'Expected clean LFrame');\n assertEqual(newLFrame.currentQueryIndex, 0, 'Expected clean LFrame');\n }\n const tView = newView[TVIEW];\n instructionState.lFrame = newLFrame;\n ngDevMode && tView.firstChild && assertTNodeForTView(tView.firstChild, tView);\n newLFrame.currentTNode = tView.firstChild;\n newLFrame.lView = newView;\n newLFrame.tView = tView;\n newLFrame.contextLView = newView;\n newLFrame.bindingIndex = tView.bindingStartIndex;\n newLFrame.inI18n = false;\n}\n/**\n * Allocates next free LFrame. This function tries to reuse the `LFrame`s to lower memory pressure.\n */\nfunction allocLFrame() {\n const currentLFrame = instructionState.lFrame;\n const childLFrame = currentLFrame === null ? null : currentLFrame.child;\n const newLFrame = childLFrame === null ? createLFrame(currentLFrame) : childLFrame;\n return newLFrame;\n}\nfunction createLFrame(parent) {\n const lFrame = {\n currentTNode: null,\n isParent: true,\n lView: null,\n tView: null,\n selectedIndex: -1,\n contextLView: null,\n elementDepthCount: 0,\n currentNamespace: null,\n currentDirectiveIndex: -1,\n bindingRootIndex: -1,\n bindingIndex: -1,\n currentQueryIndex: 0,\n parent: parent,\n child: null,\n inI18n: false,\n };\n parent !== null && (parent.child = lFrame); // link the new LFrame for reuse.\n return lFrame;\n}\n/**\n * A lightweight version of leave which is used with DI.\n *\n * This function only resets `currentTNode` and `LView` as those are the only properties\n * used with DI (`enterDI()`).\n *\n * NOTE: This function is reexported as `leaveDI`. However `leaveDI` has return type of `void` where\n * as `leaveViewLight` has `LFrame`. This is so that `leaveViewLight` can be used in `leaveView`.\n */\nfunction leaveViewLight() {\n const oldLFrame = instructionState.lFrame;\n instructionState.lFrame = oldLFrame.parent;\n oldLFrame.currentTNode = null;\n oldLFrame.lView = null;\n return oldLFrame;\n}\n/**\n * This is a lightweight version of the `leaveView` which is needed by the DI system.\n *\n * NOTE: this function is an alias so that we can change the type of the function to have `void`\n * return type.\n */\nconst leaveDI = leaveViewLight;\n/**\n * Leave the current `LView`\n *\n * This pops the `LFrame` with the associated `LView` from the stack.\n *\n * IMPORTANT: We must zero out the `LFrame` values here otherwise they will be retained. This is\n * because for performance reasons we don't release `LFrame` but rather keep it for next use.\n */\nfunction leaveView() {\n const oldLFrame = leaveViewLight();\n oldLFrame.isParent = true;\n oldLFrame.tView = null;\n oldLFrame.selectedIndex = -1;\n oldLFrame.contextLView = null;\n oldLFrame.elementDepthCount = 0;\n oldLFrame.currentDirectiveIndex = -1;\n oldLFrame.currentNamespace = null;\n oldLFrame.bindingRootIndex = -1;\n oldLFrame.bindingIndex = -1;\n oldLFrame.currentQueryIndex = 0;\n}\nfunction nextContextImpl(level) {\n const contextLView = (instructionState.lFrame.contextLView = walkUpViews(level, instructionState.lFrame.contextLView));\n return contextLView[CONTEXT];\n}\n/**\n * Gets the currently selected element index.\n *\n * Used with {@link property} instruction (and more in the future) to identify the index in the\n * current `LView` to act on.\n */\nfunction getSelectedIndex() {\n return instructionState.lFrame.selectedIndex;\n}\n/**\n * Sets the most recent index passed to {@link select}\n *\n * Used with {@link property} instruction (and more in the future) to identify the index in the\n * current `LView` to act on.\n *\n * (Note that if an \"exit function\" was set earlier (via `setElementExitFn()`) then that will be\n * run if and when the provided `index` value is different from the current selected index value.)\n */\nfunction setSelectedIndex(index) {\n ngDevMode &&\n index !== -1 &&\n assertGreaterThanOrEqual(index, HEADER_OFFSET, 'Index must be past HEADER_OFFSET (or -1).');\n ngDevMode &&\n assertLessThan(index, instructionState.lFrame.lView.length, \"Can't set index passed end of LView\");\n instructionState.lFrame.selectedIndex = index;\n}\n/**\n * Gets the `tNode` that represents currently selected element.\n */\nfunction getSelectedTNode() {\n const lFrame = instructionState.lFrame;\n return getTNode(lFrame.tView, lFrame.selectedIndex);\n}\n/**\n * Sets the namespace used to create elements to `'http://www.w3.org/2000/svg'` in global state.\n *\n * @codeGenApi\n */\nfunction ɵɵnamespaceSVG() {\n instructionState.lFrame.currentNamespace = SVG_NAMESPACE;\n}\n/**\n * Sets the namespace used to create elements to `'http://www.w3.org/1998/MathML/'` in global state.\n *\n * @codeGenApi\n */\nfunction ɵɵnamespaceMathML() {\n instructionState.lFrame.currentNamespace = MATH_ML_NAMESPACE;\n}\n/**\n * Sets the namespace used to create elements to `null`, which forces element creation to use\n * `createElement` rather than `createElementNS`.\n *\n * @codeGenApi\n */\nfunction ɵɵnamespaceHTML() {\n namespaceHTMLInternal();\n}\n/**\n * Sets the namespace used to create elements to `null`, which forces element creation to use\n * `createElement` rather than `createElementNS`.\n */\nfunction namespaceHTMLInternal() {\n instructionState.lFrame.currentNamespace = null;\n}\nfunction getNamespace$1() {\n return instructionState.lFrame.currentNamespace;\n}\nlet _wasLastNodeCreated = true;\n/**\n * Retrieves a global flag that indicates whether the most recent DOM node\n * was created or hydrated.\n */\nfunction wasLastNodeCreated() {\n return _wasLastNodeCreated;\n}\n/**\n * Sets a global flag to indicate whether the most recent DOM node\n * was created or hydrated.\n */\nfunction lastNodeWasCreated(flag) {\n _wasLastNodeCreated = flag;\n}\n\n/**\n * Adds all directive lifecycle hooks from the given `DirectiveDef` to the given `TView`.\n *\n * Must be run *only* on the first template pass.\n *\n * Sets up the pre-order hooks on the provided `tView`,\n * see {@link HookData} for details about the data structure.\n *\n * @param directiveIndex The index of the directive in LView\n * @param directiveDef The definition containing the hooks to setup in tView\n * @param tView The current TView\n */\nfunction registerPreOrderHooks(directiveIndex, directiveDef, tView) {\n ngDevMode && assertFirstCreatePass(tView);\n const { ngOnChanges, ngOnInit, ngDoCheck } = directiveDef.type.prototype;\n if (ngOnChanges) {\n const wrappedOnChanges = NgOnChangesFeatureImpl(directiveDef);\n (tView.preOrderHooks ??= []).push(directiveIndex, wrappedOnChanges);\n (tView.preOrderCheckHooks ??= []).push(directiveIndex, wrappedOnChanges);\n }\n if (ngOnInit) {\n (tView.preOrderHooks ??= []).push(0 - directiveIndex, ngOnInit);\n }\n if (ngDoCheck) {\n (tView.preOrderHooks ??= []).push(directiveIndex, ngDoCheck);\n (tView.preOrderCheckHooks ??= []).push(directiveIndex, ngDoCheck);\n }\n}\n/**\n *\n * Loops through the directives on the provided `tNode` and queues hooks to be\n * run that are not initialization hooks.\n *\n * Should be executed during `elementEnd()` and similar to\n * preserve hook execution order. Content, view, and destroy hooks for projected\n * components and directives must be called *before* their hosts.\n *\n * Sets up the content, view, and destroy hooks on the provided `tView`,\n * see {@link HookData} for details about the data structure.\n *\n * NOTE: This does not set up `onChanges`, `onInit` or `doCheck`, those are set up\n * separately at `elementStart`.\n *\n * @param tView The current TView\n * @param tNode The TNode whose directives are to be searched for hooks to queue\n */\nfunction registerPostOrderHooks(tView, tNode) {\n ngDevMode && assertFirstCreatePass(tView);\n // It's necessary to loop through the directives at elementEnd() (rather than processing in\n // directiveCreate) so we can preserve the current hook order. Content, view, and destroy\n // hooks for projected components and directives must be called *before* their hosts.\n for (let i = tNode.directiveStart, end = tNode.directiveEnd; i < end; i++) {\n const directiveDef = tView.data[i];\n ngDevMode && assertDefined(directiveDef, 'Expecting DirectiveDef');\n const lifecycleHooks = directiveDef.type.prototype;\n const { ngAfterContentInit, ngAfterContentChecked, ngAfterViewInit, ngAfterViewChecked, ngOnDestroy, } = lifecycleHooks;\n if (ngAfterContentInit) {\n (tView.contentHooks ??= []).push(-i, ngAfterContentInit);\n }\n if (ngAfterContentChecked) {\n (tView.contentHooks ??= []).push(i, ngAfterContentChecked);\n (tView.contentCheckHooks ??= []).push(i, ngAfterContentChecked);\n }\n if (ngAfterViewInit) {\n (tView.viewHooks ??= []).push(-i, ngAfterViewInit);\n }\n if (ngAfterViewChecked) {\n (tView.viewHooks ??= []).push(i, ngAfterViewChecked);\n (tView.viewCheckHooks ??= []).push(i, ngAfterViewChecked);\n }\n if (ngOnDestroy != null) {\n (tView.destroyHooks ??= []).push(i, ngOnDestroy);\n }\n }\n}\n/**\n * Executing hooks requires complex logic as we need to deal with 2 constraints.\n *\n * 1. Init hooks (ngOnInit, ngAfterContentInit, ngAfterViewInit) must all be executed once and only\n * once, across many change detection cycles. This must be true even if some hooks throw, or if\n * some recursively trigger a change detection cycle.\n * To solve that, it is required to track the state of the execution of these init hooks.\n * This is done by storing and maintaining flags in the view: the {@link InitPhaseState},\n * and the index within that phase. They can be seen as a cursor in the following structure:\n * [[onInit1, onInit2], [afterContentInit1], [afterViewInit1, afterViewInit2, afterViewInit3]]\n * They are stored as flags in LView[FLAGS].\n *\n * 2. Pre-order hooks can be executed in batches, because of the select instruction.\n * To be able to pause and resume their execution, we also need some state about the hook's array\n * that is being processed:\n * - the index of the next hook to be executed\n * - the number of init hooks already found in the processed part of the array\n * They are stored as flags in LView[PREORDER_HOOK_FLAGS].\n */\n/**\n * Executes pre-order check hooks ( OnChanges, DoChanges) given a view where all the init hooks were\n * executed once. This is a light version of executeInitAndCheckPreOrderHooks where we can skip read\n * / write of the init-hooks related flags.\n * @param lView The LView where hooks are defined\n * @param hooks Hooks to be run\n * @param nodeIndex 3 cases depending on the value:\n * - undefined: all hooks from the array should be executed (post-order case)\n * - null: execute hooks only from the saved index until the end of the array (pre-order case, when\n * flushing the remaining hooks)\n * - number: execute hooks only from the saved index until that node index exclusive (pre-order\n * case, when executing select(number))\n */\nfunction executeCheckHooks(lView, hooks, nodeIndex) {\n callHooks(lView, hooks, 3 /* InitPhaseState.InitPhaseCompleted */, nodeIndex);\n}\n/**\n * Executes post-order init and check hooks (one of AfterContentInit, AfterContentChecked,\n * AfterViewInit, AfterViewChecked) given a view where there are pending init hooks to be executed.\n * @param lView The LView where hooks are defined\n * @param hooks Hooks to be run\n * @param initPhase A phase for which hooks should be run\n * @param nodeIndex 3 cases depending on the value:\n * - undefined: all hooks from the array should be executed (post-order case)\n * - null: execute hooks only from the saved index until the end of the array (pre-order case, when\n * flushing the remaining hooks)\n * - number: execute hooks only from the saved index until that node index exclusive (pre-order\n * case, when executing select(number))\n */\nfunction executeInitAndCheckHooks(lView, hooks, initPhase, nodeIndex) {\n ngDevMode &&\n assertNotEqual(initPhase, 3 /* InitPhaseState.InitPhaseCompleted */, 'Init pre-order hooks should not be called more than once');\n if ((lView[FLAGS] & 3 /* LViewFlags.InitPhaseStateMask */) === initPhase) {\n callHooks(lView, hooks, initPhase, nodeIndex);\n }\n}\nfunction incrementInitPhaseFlags(lView, initPhase) {\n ngDevMode &&\n assertNotEqual(initPhase, 3 /* InitPhaseState.InitPhaseCompleted */, 'Init hooks phase should not be incremented after all init hooks have been run.');\n let flags = lView[FLAGS];\n if ((flags & 3 /* LViewFlags.InitPhaseStateMask */) === initPhase) {\n flags &= 16383 /* LViewFlags.IndexWithinInitPhaseReset */;\n flags += 1 /* LViewFlags.InitPhaseStateIncrementer */;\n lView[FLAGS] = flags;\n }\n}\n/**\n * Calls lifecycle hooks with their contexts, skipping init hooks if it's not\n * the first LView pass\n *\n * @param currentView The current view\n * @param arr The array in which the hooks are found\n * @param initPhaseState the current state of the init phase\n * @param currentNodeIndex 3 cases depending on the value:\n * - undefined: all hooks from the array should be executed (post-order case)\n * - null: execute hooks only from the saved index until the end of the array (pre-order case, when\n * flushing the remaining hooks)\n * - number: execute hooks only from the saved index until that node index exclusive (pre-order\n * case, when executing select(number))\n */\nfunction callHooks(currentView, arr, initPhase, currentNodeIndex) {\n ngDevMode &&\n assertEqual(isInCheckNoChangesMode(), false, 'Hooks should never be run when in check no changes mode.');\n const startIndex = currentNodeIndex !== undefined\n ? currentView[PREORDER_HOOK_FLAGS] & 65535 /* PreOrderHookFlags.IndexOfTheNextPreOrderHookMaskMask */\n : 0;\n const nodeIndexLimit = currentNodeIndex != null ? currentNodeIndex : -1;\n const max = arr.length - 1; // Stop the loop at length - 1, because we look for the hook at i + 1\n let lastNodeIndexFound = 0;\n for (let i = startIndex; i < max; i++) {\n const hook = arr[i + 1];\n if (typeof hook === 'number') {\n lastNodeIndexFound = arr[i];\n if (currentNodeIndex != null && lastNodeIndexFound >= currentNodeIndex) {\n break;\n }\n }\n else {\n const isInitHook = arr[i] < 0;\n if (isInitHook) {\n currentView[PREORDER_HOOK_FLAGS] += 65536 /* PreOrderHookFlags.NumberOfInitHooksCalledIncrementer */;\n }\n if (lastNodeIndexFound < nodeIndexLimit || nodeIndexLimit == -1) {\n callHook(currentView, initPhase, arr, i);\n currentView[PREORDER_HOOK_FLAGS] =\n (currentView[PREORDER_HOOK_FLAGS] & 4294901760 /* PreOrderHookFlags.NumberOfInitHooksCalledMask */) +\n i +\n 2;\n }\n i++;\n }\n }\n}\n/**\n * Executes a single lifecycle hook, making sure that:\n * - it is called in the non-reactive context;\n * - profiling data are registered.\n */\nfunction callHookInternal(directive, hook) {\n profiler(4 /* ProfilerEvent.LifecycleHookStart */, directive, hook);\n const prevConsumer = setActiveConsumer$1(null);\n try {\n hook.call(directive);\n }\n finally {\n setActiveConsumer$1(prevConsumer);\n profiler(5 /* ProfilerEvent.LifecycleHookEnd */, directive, hook);\n }\n}\n/**\n * Execute one hook against the current `LView`.\n *\n * @param currentView The current view\n * @param initPhaseState the current state of the init phase\n * @param arr The array in which the hooks are found\n * @param i The current index within the hook data array\n */\nfunction callHook(currentView, initPhase, arr, i) {\n const isInitHook = arr[i] < 0;\n const hook = arr[i + 1];\n const directiveIndex = isInitHook ? -arr[i] : arr[i];\n const directive = currentView[directiveIndex];\n if (isInitHook) {\n const indexWithintInitPhase = currentView[FLAGS] >> 14 /* LViewFlags.IndexWithinInitPhaseShift */;\n // The init phase state must be always checked here as it may have been recursively updated.\n if (indexWithintInitPhase <\n currentView[PREORDER_HOOK_FLAGS] >> 16 /* PreOrderHookFlags.NumberOfInitHooksCalledShift */ &&\n (currentView[FLAGS] & 3 /* LViewFlags.InitPhaseStateMask */) === initPhase) {\n currentView[FLAGS] += 16384 /* LViewFlags.IndexWithinInitPhaseIncrementer */;\n callHookInternal(directive, hook);\n }\n }\n else {\n callHookInternal(directive, hook);\n }\n}\n\nconst NO_PARENT_INJECTOR = -1;\n/**\n * Each injector is saved in 9 contiguous slots in `LView` and 9 contiguous slots in\n * `TView.data`. This allows us to store information about the current node's tokens (which\n * can be shared in `TView`) as well as the tokens of its ancestor nodes (which cannot be\n * shared, so they live in `LView`).\n *\n * Each of these slots (aside from the last slot) contains a bloom filter. This bloom filter\n * determines whether a directive is available on the associated node or not. This prevents us\n * from searching the directives array at this level unless it's probable the directive is in it.\n *\n * See: https://en.wikipedia.org/wiki/Bloom_filter for more about bloom filters.\n *\n * Because all injectors have been flattened into `LView` and `TViewData`, they cannot typed\n * using interfaces as they were previously. The start index of each `LInjector` and `TInjector`\n * will differ based on where it is flattened into the main array, so it's not possible to know\n * the indices ahead of time and save their types here. The interfaces are still included here\n * for documentation purposes.\n *\n * export interface LInjector extends Array {\n *\n * // Cumulative bloom for directive IDs 0-31 (IDs are % BLOOM_SIZE)\n * [0]: number;\n *\n * // Cumulative bloom for directive IDs 32-63\n * [1]: number;\n *\n * // Cumulative bloom for directive IDs 64-95\n * [2]: number;\n *\n * // Cumulative bloom for directive IDs 96-127\n * [3]: number;\n *\n * // Cumulative bloom for directive IDs 128-159\n * [4]: number;\n *\n * // Cumulative bloom for directive IDs 160 - 191\n * [5]: number;\n *\n * // Cumulative bloom for directive IDs 192 - 223\n * [6]: number;\n *\n * // Cumulative bloom for directive IDs 224 - 255\n * [7]: number;\n *\n * // We need to store a reference to the injector's parent so DI can keep looking up\n * // the injector tree until it finds the dependency it's looking for.\n * [PARENT_INJECTOR]: number;\n * }\n *\n * export interface TInjector extends Array {\n *\n * // Shared node bloom for directive IDs 0-31 (IDs are % BLOOM_SIZE)\n * [0]: number;\n *\n * // Shared node bloom for directive IDs 32-63\n * [1]: number;\n *\n * // Shared node bloom for directive IDs 64-95\n * [2]: number;\n *\n * // Shared node bloom for directive IDs 96-127\n * [3]: number;\n *\n * // Shared node bloom for directive IDs 128-159\n * [4]: number;\n *\n * // Shared node bloom for directive IDs 160 - 191\n * [5]: number;\n *\n * // Shared node bloom for directive IDs 192 - 223\n * [6]: number;\n *\n * // Shared node bloom for directive IDs 224 - 255\n * [7]: number;\n *\n * // Necessary to find directive indices for a particular node.\n * [TNODE]: TElementNode|TElementContainerNode|TContainerNode;\n * }\n */\n/**\n * Factory for creating instances of injectors in the NodeInjector.\n *\n * This factory is complicated by the fact that it can resolve `multi` factories as well.\n *\n * NOTE: Some of the fields are optional which means that this class has two hidden classes.\n * - One without `multi` support (most common)\n * - One with `multi` values, (rare).\n *\n * Since VMs can cache up to 4 inline hidden classes this is OK.\n *\n * - Single factory: Only `resolving` and `factory` is defined.\n * - `providers` factory: `componentProviders` is a number and `index = -1`.\n * - `viewProviders` factory: `componentProviders` is a number and `index` points to `providers`.\n */\nclass NodeInjectorFactory {\n constructor(\n /**\n * Factory to invoke in order to create a new instance.\n */\n factory, \n /**\n * Set to `true` if the token is declared in `viewProviders` (or if it is component).\n */\n isViewProvider, injectImplementation) {\n this.factory = factory;\n /**\n * Marker set to true during factory invocation to see if we get into recursive loop.\n * Recursive loop causes an error to be displayed.\n */\n this.resolving = false;\n ngDevMode && assertDefined(factory, 'Factory not specified');\n ngDevMode && assertEqual(typeof factory, 'function', 'Expected factory function.');\n this.canSeeViewProviders = isViewProvider;\n this.injectImpl = injectImplementation;\n }\n}\nfunction isFactory(obj) {\n return obj instanceof NodeInjectorFactory;\n}\n\n/**\n * Converts `TNodeType` into human readable text.\n * Make sure this matches with `TNodeType`\n */\nfunction toTNodeTypeAsString(tNodeType) {\n let text = '';\n tNodeType & 1 /* TNodeType.Text */ && (text += '|Text');\n tNodeType & 2 /* TNodeType.Element */ && (text += '|Element');\n tNodeType & 4 /* TNodeType.Container */ && (text += '|Container');\n tNodeType & 8 /* TNodeType.ElementContainer */ && (text += '|ElementContainer');\n tNodeType & 16 /* TNodeType.Projection */ && (text += '|Projection');\n tNodeType & 32 /* TNodeType.Icu */ && (text += '|IcuContainer');\n tNodeType & 64 /* TNodeType.Placeholder */ && (text += '|Placeholder');\n tNodeType & 128 /* TNodeType.LetDeclaration */ && (text += '|LetDeclaration');\n return text.length > 0 ? text.substring(1) : text;\n}\n/**\n * Helper function to detect if a given value matches a `TNode` shape.\n *\n * The logic uses the `insertBeforeIndex` and its possible values as\n * a way to differentiate a TNode shape from other types of objects\n * within the `TView.data`. This is not a perfect check, but it can\n * be a reasonable differentiator, since we control the shapes of objects\n * within `TView.data`.\n */\nfunction isTNodeShape(value) {\n return (value != null &&\n typeof value === 'object' &&\n (value.insertBeforeIndex === null ||\n typeof value.insertBeforeIndex === 'number' ||\n Array.isArray(value.insertBeforeIndex)));\n}\nfunction isLetDeclaration(tNode) {\n return !!(tNode.type & 128 /* TNodeType.LetDeclaration */);\n}\n/**\n * Returns `true` if the `TNode` has a directive which has `@Input()` for `class` binding.\n *\n * ```\n *
\n * ```\n * and\n * ```\n * @Directive({\n * })\n * class MyDirective {\n * @Input()\n * class: string;\n * }\n * ```\n *\n * In the above case it is necessary to write the reconciled styling information into the\n * directive's input.\n *\n * @param tNode\n */\nfunction hasClassInput(tNode) {\n return (tNode.flags & 8 /* TNodeFlags.hasClassInput */) !== 0;\n}\n/**\n * Returns `true` if the `TNode` has a directive which has `@Input()` for `style` binding.\n *\n * ```\n *
\n * ```\n * and\n * ```\n * @Directive({\n * })\n * class MyDirective {\n * @Input()\n * class: string;\n * }\n * ```\n *\n * In the above case it is necessary to write the reconciled styling information into the\n * directive's input.\n *\n * @param tNode\n */\nfunction hasStyleInput(tNode) {\n return (tNode.flags & 16 /* TNodeFlags.hasStyleInput */) !== 0;\n}\n\nfunction assertTNodeType(tNode, expectedTypes, message) {\n assertDefined(tNode, 'should be called with a TNode');\n if ((tNode.type & expectedTypes) === 0) {\n throwError(message ||\n `Expected [${toTNodeTypeAsString(expectedTypes)}] but got ${toTNodeTypeAsString(tNode.type)}.`);\n }\n}\nfunction assertPureTNodeType(type) {\n if (!(type === 2 /* TNodeType.Element */ ||\n type === 1 /* TNodeType.Text */ ||\n type === 4 /* TNodeType.Container */ ||\n type === 8 /* TNodeType.ElementContainer */ ||\n type === 32 /* TNodeType.Icu */ ||\n type === 16 /* TNodeType.Projection */ ||\n type === 64 /* TNodeType.Placeholder */ ||\n type === 128 /* TNodeType.LetDeclaration */)) {\n throwError(`Expected TNodeType to have only a single type selected, but got ${toTNodeTypeAsString(type)}.`);\n }\n}\n\n// This default value is when checking the hierarchy for a token.\n//\n// It means both:\n// - the token is not provided by the current injector,\n// - only the element injectors should be checked (ie do not check module injectors\n//\n// mod1\n// /\n// el1 mod2\n// \\ /\n// el2\n//\n// When requesting el2.injector.get(token), we should check in the following order and return the\n// first found value:\n// - el2.injector.get(token, default)\n// - el1.injector.get(token, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR) -> do not check the module\n// - mod2.injector.get(token, default)\nconst NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR = {};\n\n/**\n * Injector that looks up a value using a specific injector, before falling back to the module\n * injector. Used primarily when creating components or embedded views dynamically.\n */\nclass ChainedInjector {\n constructor(injector, parentInjector) {\n this.injector = injector;\n this.parentInjector = parentInjector;\n }\n get(token, notFoundValue, flags) {\n flags = convertToBitFlags(flags);\n const value = this.injector.get(token, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, flags);\n if (value !== NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR ||\n notFoundValue === NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR) {\n // Return the value from the root element injector when\n // - it provides it\n // (value !== NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR)\n // - the module injector should not be checked\n // (notFoundValue === NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR)\n return value;\n }\n return this.parentInjector.get(token, notFoundValue, flags);\n }\n}\n\n/// Parent Injector Utils ///////////////////////////////////////////////////////////////\nfunction hasParentInjector(parentLocation) {\n return parentLocation !== NO_PARENT_INJECTOR;\n}\nfunction getParentInjectorIndex(parentLocation) {\n if (ngDevMode) {\n assertNumber(parentLocation, 'Number expected');\n assertNotEqual(parentLocation, -1, 'Not a valid state.');\n const parentInjectorIndex = parentLocation & 32767 /* RelativeInjectorLocationFlags.InjectorIndexMask */;\n assertGreaterThan(parentInjectorIndex, HEADER_OFFSET, 'Parent injector must be pointing past HEADER_OFFSET.');\n }\n return parentLocation & 32767 /* RelativeInjectorLocationFlags.InjectorIndexMask */;\n}\nfunction getParentInjectorViewOffset(parentLocation) {\n return parentLocation >> 16 /* RelativeInjectorLocationFlags.ViewOffsetShift */;\n}\n/**\n * Unwraps a parent injector location number to find the view offset from the current injector,\n * then walks up the declaration view tree until the view is found that contains the parent\n * injector.\n *\n * @param location The location of the parent injector, which contains the view offset\n * @param startView The LView instance from which to start walking up the view tree\n * @returns The LView instance that contains the parent injector\n */\nfunction getParentInjectorView(location, startView) {\n let viewOffset = getParentInjectorViewOffset(location);\n let parentView = startView;\n // For most cases, the parent injector can be found on the host node (e.g. for component\n // or container), but we must keep the loop here to support the rarer case of deeply nested\n // tags or inline views, where the parent injector might live many views\n // above the child injector.\n while (viewOffset > 0) {\n parentView = parentView[DECLARATION_VIEW];\n viewOffset--;\n }\n return parentView;\n}\n/**\n * Detects whether an injector is an instance of a `ChainedInjector`,\n * created based on the `OutletInjector`.\n */\nfunction isRouterOutletInjector(currentInjector) {\n return (currentInjector instanceof ChainedInjector &&\n typeof currentInjector.injector.__ngOutletInjector === 'function');\n}\n\n/**\n * Defines if the call to `inject` should include `viewProviders` in its resolution.\n *\n * This is set to true when we try to instantiate a component. This value is reset in\n * `getNodeInjectable` to a value which matches the declaration location of the token about to be\n * instantiated. This is done so that if we are injecting a token which was declared outside of\n * `viewProviders` we don't accidentally pull `viewProviders` in.\n *\n * Example:\n *\n * ```\n * @Injectable()\n * class MyService {\n * constructor(public value: String) {}\n * }\n *\n * @Component({\n * providers: [\n * MyService,\n * {provide: String, value: 'providers' }\n * ]\n * viewProviders: [\n * {provide: String, value: 'viewProviders'}\n * ]\n * })\n * class MyComponent {\n * constructor(myService: MyService, value: String) {\n * // We expect that Component can see into `viewProviders`.\n * expect(value).toEqual('viewProviders');\n * // `MyService` was not declared in `viewProviders` hence it can't see it.\n * expect(myService.value).toEqual('providers');\n * }\n * }\n *\n * ```\n */\nlet includeViewProviders = true;\nfunction setIncludeViewProviders(v) {\n const oldValue = includeViewProviders;\n includeViewProviders = v;\n return oldValue;\n}\n/**\n * The number of slots in each bloom filter (used by DI). The larger this number, the fewer\n * directives that will share slots, and thus, the fewer false positives when checking for\n * the existence of a directive.\n */\nconst BLOOM_SIZE = 256;\nconst BLOOM_MASK = BLOOM_SIZE - 1;\n/**\n * The number of bits that is represented by a single bloom bucket. JS bit operations are 32 bits,\n * so each bucket represents 32 distinct tokens which accounts for log2(32) = 5 bits of a bloom hash\n * number.\n */\nconst BLOOM_BUCKET_BITS = 5;\n/** Counter used to generate unique IDs for directives. */\nlet nextNgElementId = 0;\n/** Value used when something wasn't found by an injector. */\nconst NOT_FOUND = {};\n/**\n * Registers this directive as present in its node's injector by flipping the directive's\n * corresponding bit in the injector's bloom filter.\n *\n * @param injectorIndex The index of the node injector where this token should be registered\n * @param tView The TView for the injector's bloom filters\n * @param type The directive token to register\n */\nfunction bloomAdd(injectorIndex, tView, type) {\n ngDevMode && assertEqual(tView.firstCreatePass, true, 'expected firstCreatePass to be true');\n let id;\n if (typeof type === 'string') {\n id = type.charCodeAt(0) || 0;\n }\n else if (type.hasOwnProperty(NG_ELEMENT_ID)) {\n id = type[NG_ELEMENT_ID];\n }\n // Set a unique ID on the directive type, so if something tries to inject the directive,\n // we can easily retrieve the ID and hash it into the bloom bit that should be checked.\n if (id == null) {\n id = type[NG_ELEMENT_ID] = nextNgElementId++;\n }\n // We only have BLOOM_SIZE (256) slots in our bloom filter (8 buckets * 32 bits each),\n // so all unique IDs must be modulo-ed into a number from 0 - 255 to fit into the filter.\n const bloomHash = id & BLOOM_MASK;\n // Create a mask that targets the specific bit associated with the directive.\n // JS bit operations are 32 bits, so this will be a number between 2^0 and 2^31, corresponding\n // to bit positions 0 - 31 in a 32 bit integer.\n const mask = 1 << bloomHash;\n // Each bloom bucket in `tData` represents `BLOOM_BUCKET_BITS` number of bits of `bloomHash`.\n // Any bits in `bloomHash` beyond `BLOOM_BUCKET_BITS` indicate the bucket offset that the mask\n // should be written to.\n tView.data[injectorIndex + (bloomHash >> BLOOM_BUCKET_BITS)] |= mask;\n}\n/**\n * Creates (or gets an existing) injector for a given element or container.\n *\n * @param tNode for which an injector should be retrieved / created.\n * @param lView View where the node is stored\n * @returns Node injector\n */\nfunction getOrCreateNodeInjectorForNode(tNode, lView) {\n const existingInjectorIndex = getInjectorIndex(tNode, lView);\n if (existingInjectorIndex !== -1) {\n return existingInjectorIndex;\n }\n const tView = lView[TVIEW];\n if (tView.firstCreatePass) {\n tNode.injectorIndex = lView.length;\n insertBloom(tView.data, tNode); // foundation for node bloom\n insertBloom(lView, null); // foundation for cumulative bloom\n insertBloom(tView.blueprint, null);\n }\n const parentLoc = getParentInjectorLocation(tNode, lView);\n const injectorIndex = tNode.injectorIndex;\n // If a parent injector can't be found, its location is set to -1.\n // In that case, we don't need to set up a cumulative bloom\n if (hasParentInjector(parentLoc)) {\n const parentIndex = getParentInjectorIndex(parentLoc);\n const parentLView = getParentInjectorView(parentLoc, lView);\n const parentData = parentLView[TVIEW].data;\n // Creates a cumulative bloom filter that merges the parent's bloom filter\n // and its own cumulative bloom (which contains tokens for all ancestors)\n for (let i = 0; i < 8 /* NodeInjectorOffset.BLOOM_SIZE */; i++) {\n lView[injectorIndex + i] = parentLView[parentIndex + i] | parentData[parentIndex + i];\n }\n }\n lView[injectorIndex + 8 /* NodeInjectorOffset.PARENT */] = parentLoc;\n return injectorIndex;\n}\nfunction insertBloom(arr, footer) {\n arr.push(0, 0, 0, 0, 0, 0, 0, 0, footer);\n}\nfunction getInjectorIndex(tNode, lView) {\n if (tNode.injectorIndex === -1 ||\n // If the injector index is the same as its parent's injector index, then the index has been\n // copied down from the parent node. No injector has been created yet on this node.\n (tNode.parent && tNode.parent.injectorIndex === tNode.injectorIndex) ||\n // After the first template pass, the injector index might exist but the parent values\n // might not have been calculated yet for this instance\n lView[tNode.injectorIndex + 8 /* NodeInjectorOffset.PARENT */] === null) {\n return -1;\n }\n else {\n ngDevMode && assertIndexInRange(lView, tNode.injectorIndex);\n return tNode.injectorIndex;\n }\n}\n/**\n * Finds the index of the parent injector, with a view offset if applicable. Used to set the\n * parent injector initially.\n *\n * @returns Returns a number that is the combination of the number of LViews that we have to go up\n * to find the LView containing the parent inject AND the index of the injector within that LView.\n */\nfunction getParentInjectorLocation(tNode, lView) {\n if (tNode.parent && tNode.parent.injectorIndex !== -1) {\n // If we have a parent `TNode` and there is an injector associated with it we are done, because\n // the parent injector is within the current `LView`.\n return tNode.parent.injectorIndex; // ViewOffset is 0\n }\n // When parent injector location is computed it may be outside of the current view. (ie it could\n // be pointing to a declared parent location). This variable stores number of declaration parents\n // we need to walk up in order to find the parent injector location.\n let declarationViewOffset = 0;\n let parentTNode = null;\n let lViewCursor = lView;\n // The parent injector is not in the current `LView`. We will have to walk the declared parent\n // `LView` hierarchy and look for it. If we walk of the top, that means that there is no parent\n // `NodeInjector`.\n while (lViewCursor !== null) {\n parentTNode = getTNodeFromLView(lViewCursor);\n if (parentTNode === null) {\n // If we have no parent, than we are done.\n return NO_PARENT_INJECTOR;\n }\n ngDevMode && parentTNode && assertTNodeForLView(parentTNode, lViewCursor[DECLARATION_VIEW]);\n // Every iteration of the loop requires that we go to the declared parent.\n declarationViewOffset++;\n lViewCursor = lViewCursor[DECLARATION_VIEW];\n if (parentTNode.injectorIndex !== -1) {\n // We found a NodeInjector which points to something.\n return (parentTNode.injectorIndex |\n (declarationViewOffset <<\n 16 /* RelativeInjectorLocationFlags.ViewOffsetShift */));\n }\n }\n return NO_PARENT_INJECTOR;\n}\n/**\n * Makes a type or an injection token public to the DI system by adding it to an\n * injector's bloom filter.\n *\n * @param di The node injector in which a directive will be added\n * @param token The type or the injection token to be made public\n */\nfunction diPublicInInjector(injectorIndex, tView, token) {\n bloomAdd(injectorIndex, tView, token);\n}\n/**\n * Inject static attribute value into directive constructor.\n *\n * This method is used with `factory` functions which are generated as part of\n * `defineDirective` or `defineComponent`. The method retrieves the static value\n * of an attribute. (Dynamic attributes are not supported since they are not resolved\n * at the time of injection and can change over time.)\n *\n * # Example\n * Given:\n * ```\n * @Component(...)\n * class MyComponent {\n * constructor(@Attribute('title') title: string) { ... }\n * }\n * ```\n * When instantiated with\n * ```\n * \n * ```\n *\n * Then factory method generated is:\n * ```\n * MyComponent.ɵcmp = defineComponent({\n * factory: () => new MyComponent(injectAttribute('title'))\n * ...\n * })\n * ```\n *\n * @publicApi\n */\nfunction injectAttributeImpl(tNode, attrNameToInject) {\n ngDevMode && assertTNodeType(tNode, 12 /* TNodeType.AnyContainer */ | 3 /* TNodeType.AnyRNode */);\n ngDevMode && assertDefined(tNode, 'expecting tNode');\n if (attrNameToInject === 'class') {\n return tNode.classes;\n }\n if (attrNameToInject === 'style') {\n return tNode.styles;\n }\n const attrs = tNode.attrs;\n if (attrs) {\n const attrsLength = attrs.length;\n let i = 0;\n while (i < attrsLength) {\n const value = attrs[i];\n // If we hit a `Bindings` or `Template` marker then we are done.\n if (isNameOnlyAttributeMarker(value))\n break;\n // Skip namespaced attributes\n if (value === 0 /* AttributeMarker.NamespaceURI */) {\n // we skip the next two values\n // as namespaced attributes looks like\n // [..., AttributeMarker.NamespaceURI, 'http://someuri.com/test', 'test:exist',\n // 'existValue', ...]\n i = i + 2;\n }\n else if (typeof value === 'number') {\n // Skip to the first value of the marked attribute.\n i++;\n while (i < attrsLength && typeof attrs[i] === 'string') {\n i++;\n }\n }\n else if (value === attrNameToInject) {\n return attrs[i + 1];\n }\n else {\n i = i + 2;\n }\n }\n }\n return null;\n}\nfunction notFoundValueOrThrow(notFoundValue, token, flags) {\n if (flags & InjectFlags.Optional || notFoundValue !== undefined) {\n return notFoundValue;\n }\n else {\n throwProviderNotFoundError(token, 'NodeInjector');\n }\n}\n/**\n * Returns the value associated to the given token from the ModuleInjector or throws exception\n *\n * @param lView The `LView` that contains the `tNode`\n * @param token The token to look for\n * @param flags Injection flags\n * @param notFoundValue The value to return when the injection flags is `InjectFlags.Optional`\n * @returns the value from the injector or throws an exception\n */\nfunction lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue) {\n if (flags & InjectFlags.Optional && notFoundValue === undefined) {\n // This must be set or the NullInjector will throw for optional deps\n notFoundValue = null;\n }\n if ((flags & (InjectFlags.Self | InjectFlags.Host)) === 0) {\n const moduleInjector = lView[INJECTOR];\n // switch to `injectInjectorOnly` implementation for module injector, since module injector\n // should not have access to Component/Directive DI scope (that may happen through\n // `directiveInject` implementation)\n const previousInjectImplementation = setInjectImplementation(undefined);\n try {\n if (moduleInjector) {\n return moduleInjector.get(token, notFoundValue, flags & InjectFlags.Optional);\n }\n else {\n return injectRootLimpMode(token, notFoundValue, flags & InjectFlags.Optional);\n }\n }\n finally {\n setInjectImplementation(previousInjectImplementation);\n }\n }\n return notFoundValueOrThrow(notFoundValue, token, flags);\n}\n/**\n * Returns the value associated to the given token from the NodeInjectors => ModuleInjector.\n *\n * Look for the injector providing the token by walking up the node injector tree and then\n * the module injector tree.\n *\n * This function patches `token` with `__NG_ELEMENT_ID__` which contains the id for the bloom\n * filter. `-1` is reserved for injecting `Injector` (implemented by `NodeInjector`)\n *\n * @param tNode The Node where the search for the injector should start\n * @param lView The `LView` that contains the `tNode`\n * @param token The token to look for\n * @param flags Injection flags\n * @param notFoundValue The value to return when the injection flags is `InjectFlags.Optional`\n * @returns the value from the injector, `null` when not found, or `notFoundValue` if provided\n */\nfunction getOrCreateInjectable(tNode, lView, token, flags = InjectFlags.Default, notFoundValue) {\n if (tNode !== null) {\n // If the view or any of its ancestors have an embedded\n // view injector, we have to look it up there first.\n if (lView[FLAGS] & 2048 /* LViewFlags.HasEmbeddedViewInjector */ &&\n // The token must be present on the current node injector when the `Self`\n // flag is set, so the lookup on embedded view injector(s) can be skipped.\n !(flags & InjectFlags.Self)) {\n const embeddedInjectorValue = lookupTokenUsingEmbeddedInjector(tNode, lView, token, flags, NOT_FOUND);\n if (embeddedInjectorValue !== NOT_FOUND) {\n return embeddedInjectorValue;\n }\n }\n // Otherwise try the node injector.\n const value = lookupTokenUsingNodeInjector(tNode, lView, token, flags, NOT_FOUND);\n if (value !== NOT_FOUND) {\n return value;\n }\n }\n // Finally, fall back to the module injector.\n return lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue);\n}\n/**\n * Returns the value associated to the given token from the node injector.\n *\n * @param tNode The Node where the search for the injector should start\n * @param lView The `LView` that contains the `tNode`\n * @param token The token to look for\n * @param flags Injection flags\n * @param notFoundValue The value to return when the injection flags is `InjectFlags.Optional`\n * @returns the value from the injector, `null` when not found, or `notFoundValue` if provided\n */\nfunction lookupTokenUsingNodeInjector(tNode, lView, token, flags, notFoundValue) {\n const bloomHash = bloomHashBitOrFactory(token);\n // If the ID stored here is a function, this is a special object like ElementRef or TemplateRef\n // so just call the factory function to create it.\n if (typeof bloomHash === 'function') {\n if (!enterDI(lView, tNode, flags)) {\n // Failed to enter DI, try module injector instead. If a token is injected with the @Host\n // flag, the module injector is not searched for that token in Ivy.\n return flags & InjectFlags.Host\n ? notFoundValueOrThrow(notFoundValue, token, flags)\n : lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue);\n }\n try {\n let value;\n if (ngDevMode) {\n runInInjectorProfilerContext(new NodeInjector(getCurrentTNode(), getLView()), token, () => {\n value = bloomHash(flags);\n if (value != null) {\n emitInstanceCreatedByInjectorEvent(value);\n }\n });\n }\n else {\n value = bloomHash(flags);\n }\n if (value == null && !(flags & InjectFlags.Optional)) {\n throwProviderNotFoundError(token);\n }\n else {\n return value;\n }\n }\n finally {\n leaveDI();\n }\n }\n else if (typeof bloomHash === 'number') {\n // A reference to the previous injector TView that was found while climbing the element\n // injector tree. This is used to know if viewProviders can be accessed on the current\n // injector.\n let previousTView = null;\n let injectorIndex = getInjectorIndex(tNode, lView);\n let parentLocation = NO_PARENT_INJECTOR;\n let hostTElementNode = flags & InjectFlags.Host ? lView[DECLARATION_COMPONENT_VIEW][T_HOST] : null;\n // If we should skip this injector, or if there is no injector on this node, start by\n // searching the parent injector.\n if (injectorIndex === -1 || flags & InjectFlags.SkipSelf) {\n parentLocation =\n injectorIndex === -1\n ? getParentInjectorLocation(tNode, lView)\n : lView[injectorIndex + 8 /* NodeInjectorOffset.PARENT */];\n if (parentLocation === NO_PARENT_INJECTOR || !shouldSearchParent(flags, false)) {\n injectorIndex = -1;\n }\n else {\n previousTView = lView[TVIEW];\n injectorIndex = getParentInjectorIndex(parentLocation);\n lView = getParentInjectorView(parentLocation, lView);\n }\n }\n // Traverse up the injector tree until we find a potential match or until we know there\n // *isn't* a match.\n while (injectorIndex !== -1) {\n ngDevMode && assertNodeInjector(lView, injectorIndex);\n // Check the current injector. If it matches, see if it contains token.\n const tView = lView[TVIEW];\n ngDevMode &&\n assertTNodeForLView(tView.data[injectorIndex + 8 /* NodeInjectorOffset.TNODE */], lView);\n if (bloomHasToken(bloomHash, injectorIndex, tView.data)) {\n // At this point, we have an injector which *may* contain the token, so we step through\n // the providers and directives associated with the injector's corresponding node to get\n // the instance.\n const instance = searchTokensOnInjector(injectorIndex, lView, token, previousTView, flags, hostTElementNode);\n if (instance !== NOT_FOUND) {\n return instance;\n }\n }\n parentLocation = lView[injectorIndex + 8 /* NodeInjectorOffset.PARENT */];\n if (parentLocation !== NO_PARENT_INJECTOR &&\n shouldSearchParent(flags, lView[TVIEW].data[injectorIndex + 8 /* NodeInjectorOffset.TNODE */] === hostTElementNode) &&\n bloomHasToken(bloomHash, injectorIndex, lView)) {\n // The def wasn't found anywhere on this node, so it was a false positive.\n // Traverse up the tree and continue searching.\n previousTView = tView;\n injectorIndex = getParentInjectorIndex(parentLocation);\n lView = getParentInjectorView(parentLocation, lView);\n }\n else {\n // If we should not search parent OR If the ancestor bloom filter value does not have the\n // bit corresponding to the directive we can give up on traversing up to find the specific\n // injector.\n injectorIndex = -1;\n }\n }\n }\n return notFoundValue;\n}\nfunction searchTokensOnInjector(injectorIndex, lView, token, previousTView, flags, hostTElementNode) {\n const currentTView = lView[TVIEW];\n const tNode = currentTView.data[injectorIndex + 8 /* NodeInjectorOffset.TNODE */];\n // First, we need to determine if view providers can be accessed by the starting element.\n // There are two possibilities\n const canAccessViewProviders = previousTView == null\n ? // 1) This is the first invocation `previousTView == null` which means that we are at the\n // `TNode` of where injector is starting to look. In such a case the only time we are allowed\n // to look into the ViewProviders is if:\n // - we are on a component\n // - AND the injector set `includeViewProviders` to true (implying that the token can see\n // ViewProviders because it is the Component or a Service which itself was declared in\n // ViewProviders)\n isComponentHost(tNode) && includeViewProviders\n : // 2) `previousTView != null` which means that we are now walking across the parent nodes.\n // In such a case we are only allowed to look into the ViewProviders if:\n // - We just crossed from child View to Parent View `previousTView != currentTView`\n // - AND the parent TNode is an Element.\n // This means that we just came from the Component's View and therefore are allowed to see\n // into the ViewProviders.\n previousTView != currentTView && (tNode.type & 3 /* TNodeType.AnyRNode */) !== 0;\n // This special case happens when there is a @host on the inject and when we are searching\n // on the host element node.\n const isHostSpecialCase = flags & InjectFlags.Host && hostTElementNode === tNode;\n const injectableIdx = locateDirectiveOrProvider(tNode, currentTView, token, canAccessViewProviders, isHostSpecialCase);\n if (injectableIdx !== null) {\n return getNodeInjectable(lView, currentTView, injectableIdx, tNode);\n }\n else {\n return NOT_FOUND;\n }\n}\n/**\n * Searches for the given token among the node's directives and providers.\n *\n * @param tNode TNode on which directives are present.\n * @param tView The tView we are currently processing\n * @param token Provider token or type of a directive to look for.\n * @param canAccessViewProviders Whether view providers should be considered.\n * @param isHostSpecialCase Whether the host special case applies.\n * @returns Index of a found directive or provider, or null when none found.\n */\nfunction locateDirectiveOrProvider(tNode, tView, token, canAccessViewProviders, isHostSpecialCase) {\n const nodeProviderIndexes = tNode.providerIndexes;\n const tInjectables = tView.data;\n const injectablesStart = nodeProviderIndexes & 1048575 /* TNodeProviderIndexes.ProvidersStartIndexMask */;\n const directivesStart = tNode.directiveStart;\n const directiveEnd = tNode.directiveEnd;\n const cptViewProvidersCount = nodeProviderIndexes >> 20 /* TNodeProviderIndexes.CptViewProvidersCountShift */;\n const startingIndex = canAccessViewProviders\n ? injectablesStart\n : injectablesStart + cptViewProvidersCount;\n // When the host special case applies, only the viewProviders and the component are visible\n const endIndex = isHostSpecialCase ? injectablesStart + cptViewProvidersCount : directiveEnd;\n for (let i = startingIndex; i < endIndex; i++) {\n const providerTokenOrDef = tInjectables[i];\n if ((i < directivesStart && token === providerTokenOrDef) ||\n (i >= directivesStart && providerTokenOrDef.type === token)) {\n return i;\n }\n }\n if (isHostSpecialCase) {\n const dirDef = tInjectables[directivesStart];\n if (dirDef && isComponentDef(dirDef) && dirDef.type === token) {\n return directivesStart;\n }\n }\n return null;\n}\n/**\n * Retrieve or instantiate the injectable from the `LView` at particular `index`.\n *\n * This function checks to see if the value has already been instantiated and if so returns the\n * cached `injectable`. Otherwise if it detects that the value is still a factory it\n * instantiates the `injectable` and caches the value.\n */\nfunction getNodeInjectable(lView, tView, index, tNode) {\n let value = lView[index];\n const tData = tView.data;\n if (isFactory(value)) {\n const factory = value;\n if (factory.resolving) {\n throwCyclicDependencyError(stringifyForError(tData[index]));\n }\n const previousIncludeViewProviders = setIncludeViewProviders(factory.canSeeViewProviders);\n factory.resolving = true;\n let prevInjectContext;\n if (ngDevMode) {\n // tData indexes mirror the concrete instances in its corresponding LView.\n // lView[index] here is either the injectable instace itself or a factory,\n // therefore tData[index] is the constructor of that injectable or a\n // definition object that contains the constructor in a `.type` field.\n const token = tData[index].type || tData[index];\n const injector = new NodeInjector(tNode, lView);\n prevInjectContext = setInjectorProfilerContext({ injector, token });\n }\n const previousInjectImplementation = factory.injectImpl\n ? setInjectImplementation(factory.injectImpl)\n : null;\n const success = enterDI(lView, tNode, InjectFlags.Default);\n ngDevMode &&\n assertEqual(success, true, \"Because flags do not contain `SkipSelf' we expect this to always succeed.\");\n try {\n value = lView[index] = factory.factory(undefined, tData, lView, tNode);\n ngDevMode && emitInstanceCreatedByInjectorEvent(value);\n // This code path is hit for both directives and providers.\n // For perf reasons, we want to avoid searching for hooks on providers.\n // It does no harm to try (the hooks just won't exist), but the extra\n // checks are unnecessary and this is a hot path. So we check to see\n // if the index of the dependency is in the directive range for this\n // tNode. If it's not, we know it's a provider and skip hook registration.\n if (tView.firstCreatePass && index >= tNode.directiveStart) {\n ngDevMode && assertDirectiveDef(tData[index]);\n registerPreOrderHooks(index, tData[index], tView);\n }\n }\n finally {\n ngDevMode && setInjectorProfilerContext(prevInjectContext);\n previousInjectImplementation !== null &&\n setInjectImplementation(previousInjectImplementation);\n setIncludeViewProviders(previousIncludeViewProviders);\n factory.resolving = false;\n leaveDI();\n }\n }\n return value;\n}\n/**\n * Returns the bit in an injector's bloom filter that should be used to determine whether or not\n * the directive might be provided by the injector.\n *\n * When a directive is public, it is added to the bloom filter and given a unique ID that can be\n * retrieved on the Type. When the directive isn't public or the token is not a directive `null`\n * is returned as the node injector can not possibly provide that token.\n *\n * @param token the injection token\n * @returns the matching bit to check in the bloom filter or `null` if the token is not known.\n * When the returned value is negative then it represents special values such as `Injector`.\n */\nfunction bloomHashBitOrFactory(token) {\n ngDevMode && assertDefined(token, 'token must be defined');\n if (typeof token === 'string') {\n return token.charCodeAt(0) || 0;\n }\n const tokenId = \n // First check with `hasOwnProperty` so we don't get an inherited ID.\n token.hasOwnProperty(NG_ELEMENT_ID) ? token[NG_ELEMENT_ID] : undefined;\n // Negative token IDs are used for special objects such as `Injector`\n if (typeof tokenId === 'number') {\n if (tokenId >= 0) {\n return tokenId & BLOOM_MASK;\n }\n else {\n ngDevMode &&\n assertEqual(tokenId, -1 /* InjectorMarkers.Injector */, 'Expecting to get Special Injector Id');\n return createNodeInjector;\n }\n }\n else {\n return tokenId;\n }\n}\nfunction bloomHasToken(bloomHash, injectorIndex, injectorView) {\n // Create a mask that targets the specific bit associated with the directive we're looking for.\n // JS bit operations are 32 bits, so this will be a number between 2^0 and 2^31, corresponding\n // to bit positions 0 - 31 in a 32 bit integer.\n const mask = 1 << bloomHash;\n // Each bloom bucket in `injectorView` represents `BLOOM_BUCKET_BITS` number of bits of\n // `bloomHash`. Any bits in `bloomHash` beyond `BLOOM_BUCKET_BITS` indicate the bucket offset\n // that should be used.\n const value = injectorView[injectorIndex + (bloomHash >> BLOOM_BUCKET_BITS)];\n // If the bloom filter value has the bit corresponding to the directive's bloomBit flipped on,\n // this injector is a potential match.\n return !!(value & mask);\n}\n/** Returns true if flags prevent parent injector from being searched for tokens */\nfunction shouldSearchParent(flags, isFirstHostTNode) {\n return !(flags & InjectFlags.Self) && !(flags & InjectFlags.Host && isFirstHostTNode);\n}\nfunction getNodeInjectorLView(nodeInjector) {\n return nodeInjector._lView;\n}\nfunction getNodeInjectorTNode(nodeInjector) {\n return nodeInjector._tNode;\n}\nclass NodeInjector {\n constructor(_tNode, _lView) {\n this._tNode = _tNode;\n this._lView = _lView;\n }\n get(token, notFoundValue, flags) {\n return getOrCreateInjectable(this._tNode, this._lView, token, convertToBitFlags(flags), notFoundValue);\n }\n}\n/** Creates a `NodeInjector` for the current node. */\nfunction createNodeInjector() {\n return new NodeInjector(getCurrentTNode(), getLView());\n}\n/**\n * @codeGenApi\n */\nfunction ɵɵgetInheritedFactory(type) {\n return noSideEffects(() => {\n const ownConstructor = type.prototype.constructor;\n const ownFactory = ownConstructor[NG_FACTORY_DEF] || getFactoryOf(ownConstructor);\n const objectPrototype = Object.prototype;\n let parent = Object.getPrototypeOf(type.prototype).constructor;\n // Go up the prototype until we hit `Object`.\n while (parent && parent !== objectPrototype) {\n const factory = parent[NG_FACTORY_DEF] || getFactoryOf(parent);\n // If we hit something that has a factory and the factory isn't the same as the type,\n // we've found the inherited factory. Note the check that the factory isn't the type's\n // own factory is redundant in most cases, but if the user has custom decorators on the\n // class, this lookup will start one level down in the prototype chain, causing us to\n // find the own factory first and potentially triggering an infinite loop downstream.\n if (factory && factory !== ownFactory) {\n return factory;\n }\n parent = Object.getPrototypeOf(parent);\n }\n // There is no factory defined. Either this was improper usage of inheritance\n // (no Angular decorator on the superclass) or there is no constructor at all\n // in the inheritance chain. Since the two cases cannot be distinguished, the\n // latter has to be assumed.\n return (t) => new t();\n });\n}\nfunction getFactoryOf(type) {\n if (isForwardRef(type)) {\n return () => {\n const factory = getFactoryOf(resolveForwardRef(type));\n return factory && factory();\n };\n }\n return getFactoryDef(type);\n}\n/**\n * Returns a value from the closest embedded or node injector.\n *\n * @param tNode The Node where the search for the injector should start\n * @param lView The `LView` that contains the `tNode`\n * @param token The token to look for\n * @param flags Injection flags\n * @param notFoundValue The value to return when the injection flags is `InjectFlags.Optional`\n * @returns the value from the injector, `null` when not found, or `notFoundValue` if provided\n */\nfunction lookupTokenUsingEmbeddedInjector(tNode, lView, token, flags, notFoundValue) {\n let currentTNode = tNode;\n let currentLView = lView;\n // When an LView with an embedded view injector is inserted, it'll likely be interlaced with\n // nodes who may have injectors (e.g. node injector -> embedded view injector -> node injector).\n // Since the bloom filters for the node injectors have already been constructed and we don't\n // have a way of extracting the records from an injector, the only way to maintain the correct\n // hierarchy when resolving the value is to walk it node-by-node while attempting to resolve\n // the token at each level.\n while (currentTNode !== null &&\n currentLView !== null &&\n currentLView[FLAGS] & 2048 /* LViewFlags.HasEmbeddedViewInjector */ &&\n !(currentLView[FLAGS] & 512 /* LViewFlags.IsRoot */)) {\n ngDevMode && assertTNodeForLView(currentTNode, currentLView);\n // Note that this lookup on the node injector is using the `Self` flag, because\n // we don't want the node injector to look at any parent injectors since we\n // may hit the embedded view injector first.\n const nodeInjectorValue = lookupTokenUsingNodeInjector(currentTNode, currentLView, token, flags | InjectFlags.Self, NOT_FOUND);\n if (nodeInjectorValue !== NOT_FOUND) {\n return nodeInjectorValue;\n }\n // Has an explicit type due to a TS bug: https://github.com/microsoft/TypeScript/issues/33191\n let parentTNode = currentTNode.parent;\n // `TNode.parent` includes the parent within the current view only. If it doesn't exist,\n // it means that we've hit the view boundary and we need to go up to the next view.\n if (!parentTNode) {\n // Before we go to the next LView, check if the token exists on the current embedded injector.\n const embeddedViewInjector = currentLView[EMBEDDED_VIEW_INJECTOR];\n if (embeddedViewInjector) {\n const embeddedViewInjectorValue = embeddedViewInjector.get(token, NOT_FOUND, flags);\n if (embeddedViewInjectorValue !== NOT_FOUND) {\n return embeddedViewInjectorValue;\n }\n }\n // Otherwise keep going up the tree.\n parentTNode = getTNodeFromLView(currentLView);\n currentLView = currentLView[DECLARATION_VIEW];\n }\n currentTNode = parentTNode;\n }\n return notFoundValue;\n}\n/** Gets the TNode associated with an LView inside of the declaration view. */\nfunction getTNodeFromLView(lView) {\n const tView = lView[TVIEW];\n const tViewType = tView.type;\n // The parent pointer differs based on `TView.type`.\n if (tViewType === 2 /* TViewType.Embedded */) {\n ngDevMode && assertDefined(tView.declTNode, 'Embedded TNodes should have declaration parents.');\n return tView.declTNode;\n }\n else if (tViewType === 1 /* TViewType.Component */) {\n // Components don't have `TView.declTNode` because each instance of component could be\n // inserted in different location, hence `TView.declTNode` is meaningless.\n return lView[T_HOST];\n }\n return null;\n}\n\n/**\n * Facade for the attribute injection from DI.\n *\n * @codeGenApi\n */\nfunction ɵɵinjectAttribute(attrNameToInject) {\n return injectAttributeImpl(getCurrentTNode(), attrNameToInject);\n}\n\n/**\n * Attribute decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Attribute = makeParamDecorator('Attribute', (attributeName) => ({\n attributeName,\n __NG_ELEMENT_ID__: () => ɵɵinjectAttribute(attributeName),\n}));\n\nlet _reflect = null;\nfunction getReflect() {\n return (_reflect = _reflect || new ReflectionCapabilities());\n}\nfunction reflectDependencies(type) {\n return convertDependencies(getReflect().parameters(type));\n}\nfunction convertDependencies(deps) {\n return deps.map((dep) => reflectDependency(dep));\n}\nfunction reflectDependency(dep) {\n const meta = {\n token: null,\n attribute: null,\n host: false,\n optional: false,\n self: false,\n skipSelf: false,\n };\n if (Array.isArray(dep) && dep.length > 0) {\n for (let j = 0; j < dep.length; j++) {\n const param = dep[j];\n if (param === undefined) {\n // param may be undefined if type of dep is not set by ngtsc\n continue;\n }\n const proto = Object.getPrototypeOf(param);\n if (param instanceof Optional || proto.ngMetadataName === 'Optional') {\n meta.optional = true;\n }\n else if (param instanceof SkipSelf || proto.ngMetadataName === 'SkipSelf') {\n meta.skipSelf = true;\n }\n else if (param instanceof Self || proto.ngMetadataName === 'Self') {\n meta.self = true;\n }\n else if (param instanceof Host || proto.ngMetadataName === 'Host') {\n meta.host = true;\n }\n else if (param instanceof Inject) {\n meta.token = param.token;\n }\n else if (param instanceof Attribute) {\n if (param.attributeName === undefined) {\n throw new RuntimeError(204 /* RuntimeErrorCode.INVALID_INJECTION_TOKEN */, ngDevMode && `Attribute name must be defined.`);\n }\n meta.attribute = param.attributeName;\n }\n else {\n meta.token = param;\n }\n }\n }\n else if (dep === undefined || (Array.isArray(dep) && dep.length === 0)) {\n meta.token = null;\n }\n else {\n meta.token = dep;\n }\n return meta;\n}\n\n/**\n * Compile an Angular injectable according to its `Injectable` metadata, and patch the resulting\n * injectable def (`ɵprov`) onto the injectable type.\n */\nfunction compileInjectable(type, meta) {\n let ngInjectableDef = null;\n let ngFactoryDef = null;\n // if NG_PROV_DEF is already defined on this class then don't overwrite it\n if (!type.hasOwnProperty(NG_PROV_DEF)) {\n Object.defineProperty(type, NG_PROV_DEF, {\n get: () => {\n if (ngInjectableDef === null) {\n const compiler = getCompilerFacade({\n usage: 0 /* JitCompilerUsage.Decorator */,\n kind: 'injectable',\n type,\n });\n ngInjectableDef = compiler.compileInjectable(angularCoreDiEnv, `ng:///${type.name}/ɵprov.js`, getInjectableMetadata(type, meta));\n }\n return ngInjectableDef;\n },\n });\n }\n // if NG_FACTORY_DEF is already defined on this class then don't overwrite it\n if (!type.hasOwnProperty(NG_FACTORY_DEF)) {\n Object.defineProperty(type, NG_FACTORY_DEF, {\n get: () => {\n if (ngFactoryDef === null) {\n const compiler = getCompilerFacade({\n usage: 0 /* JitCompilerUsage.Decorator */,\n kind: 'injectable',\n type,\n });\n ngFactoryDef = compiler.compileFactory(angularCoreDiEnv, `ng:///${type.name}/ɵfac.js`, {\n name: type.name,\n type,\n typeArgumentCount: 0, // In JIT mode types are not available nor used.\n deps: reflectDependencies(type),\n target: compiler.FactoryTarget.Injectable,\n });\n }\n return ngFactoryDef;\n },\n // Leave this configurable so that the factories from directives or pipes can take precedence.\n configurable: true,\n });\n }\n}\nconst USE_VALUE = getClosureSafeProperty({\n provide: String,\n useValue: getClosureSafeProperty,\n});\nfunction isUseClassProvider(meta) {\n return meta.useClass !== undefined;\n}\nfunction isUseValueProvider(meta) {\n return USE_VALUE in meta;\n}\nfunction isUseFactoryProvider(meta) {\n return meta.useFactory !== undefined;\n}\nfunction isUseExistingProvider(meta) {\n return meta.useExisting !== undefined;\n}\nfunction getInjectableMetadata(type, srcMeta) {\n // Allow the compilation of a class with a `@Injectable()` decorator without parameters\n const meta = srcMeta || { providedIn: null };\n const compilerMeta = {\n name: type.name,\n type: type,\n typeArgumentCount: 0,\n providedIn: meta.providedIn,\n };\n if ((isUseClassProvider(meta) || isUseFactoryProvider(meta)) && meta.deps !== undefined) {\n compilerMeta.deps = convertDependencies(meta.deps);\n }\n // Check to see if the user explicitly provided a `useXxxx` property.\n if (isUseClassProvider(meta)) {\n compilerMeta.useClass = meta.useClass;\n }\n else if (isUseValueProvider(meta)) {\n compilerMeta.useValue = meta.useValue;\n }\n else if (isUseFactoryProvider(meta)) {\n compilerMeta.useFactory = meta.useFactory;\n }\n else if (isUseExistingProvider(meta)) {\n compilerMeta.useExisting = meta.useExisting;\n }\n return compilerMeta;\n}\n\n/**\n * Injectable decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Injectable = makeDecorator('Injectable', undefined, undefined, undefined, (type, meta) => compileInjectable(type, meta));\n\n/**\n * Create a new `Injector` which is configured using a `defType` of `InjectorType`s.\n */\nfunction createInjector(defType, parent = null, additionalProviders = null, name) {\n const injector = createInjectorWithoutInjectorInstances(defType, parent, additionalProviders, name);\n injector.resolveInjectorInitializers();\n return injector;\n}\n/**\n * Creates a new injector without eagerly resolving its injector types. Can be used in places\n * where resolving the injector types immediately can lead to an infinite loop. The injector types\n * should be resolved at a later point by calling `_resolveInjectorDefTypes`.\n */\nfunction createInjectorWithoutInjectorInstances(defType, parent = null, additionalProviders = null, name, scopes = new Set()) {\n const providers = [additionalProviders || EMPTY_ARRAY, importProvidersFrom(defType)];\n name = name || (typeof defType === 'object' ? undefined : stringify(defType));\n return new R3Injector(providers, parent || getNullInjector(), name || null, scopes);\n}\n\n/**\n * Concrete injectors implement this interface. Injectors are configured\n * with [providers](guide/di/dependency-injection-providers) that associate\n * dependencies of various types with [injection tokens](guide/di/dependency-injection-providers).\n *\n * @see [DI Providers](guide/di/dependency-injection-providers).\n * @see {@link StaticProvider}\n *\n * @usageNotes\n *\n * The following example creates a service injector instance.\n *\n * {@example core/di/ts/provider_spec.ts region='ConstructorProvider'}\n *\n * ### Usage example\n *\n * {@example core/di/ts/injector_spec.ts region='Injector'}\n *\n * `Injector` returns itself when given `Injector` as a token:\n *\n * {@example core/di/ts/injector_spec.ts region='injectInjector'}\n *\n * @publicApi\n */\nclass Injector {\n static { this.THROW_IF_NOT_FOUND = THROW_IF_NOT_FOUND; }\n static { this.NULL = new NullInjector(); }\n static create(options, parent) {\n if (Array.isArray(options)) {\n return createInjector({ name: '' }, parent, options, '');\n }\n else {\n const name = options.name ?? '';\n return createInjector({ name }, options.parent, options.providers, name);\n }\n }\n /** @nocollapse */\n static { this.ɵprov = ɵɵdefineInjectable({\n token: Injector,\n providedIn: 'any',\n factory: () => ɵɵinject(INJECTOR$1),\n }); }\n /**\n * @internal\n * @nocollapse\n */\n static { this.__NG_ELEMENT_ID__ = -1 /* InjectorMarkers.Injector */; }\n}\n\n/*!\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n/**\n * Creates a token that can be used to inject static attributes of the host node.\n *\n * @usageNotes\n * ### Injecting an attribute that is known to exist\n * ```typescript\n * @Directive()\n * class MyDir {\n * attr: string = inject(new HostAttributeToken('some-attr'));\n * }\n * ```\n *\n * ### Optionally injecting an attribute\n * ```typescript\n * @Directive()\n * class MyDir {\n * attr: string | null = inject(new HostAttributeToken('some-attr'), {optional: true});\n * }\n * ```\n * @publicApi\n */\nclass HostAttributeToken {\n constructor(attributeName) {\n this.attributeName = attributeName;\n /** @internal */\n this.__NG_ELEMENT_ID__ = () => ɵɵinjectAttribute(this.attributeName);\n }\n toString() {\n return `HostAttributeToken ${this.attributeName}`;\n }\n}\n\n/**\n * A token that can be used to inject the tag name of the host node.\n *\n * @usageNotes\n * ### Injecting a tag name that is known to exist\n * ```typescript\n * @Directive()\n * class MyDir {\n * tagName: string = inject(HOST_TAG_NAME);\n * }\n * ```\n *\n * ### Optionally injecting a tag name\n * ```typescript\n * @Directive()\n * class MyDir {\n * tagName: string | null = inject(HOST_TAG_NAME, {optional: true});\n * }\n * ```\n * @publicApi\n */\nconst HOST_TAG_NAME = new InjectionToken(ngDevMode ? 'HOST_TAG_NAME' : '');\n// HOST_TAG_NAME should be resolved at the current node, similar to e.g. ElementRef,\n// so we manually specify __NG_ELEMENT_ID__ here, instead of using a factory.\n// tslint:disable-next-line:no-toplevel-property-access\nHOST_TAG_NAME.__NG_ELEMENT_ID__ = (flags) => {\n const tNode = getCurrentTNode();\n if (tNode === null) {\n throw new RuntimeError(204 /* RuntimeErrorCode.INVALID_INJECTION_TOKEN */, ngDevMode &&\n 'HOST_TAG_NAME can only be injected in directives and components ' +\n 'during construction time (in a class constructor or as a class field initializer)');\n }\n if (tNode.type & 2 /* TNodeType.Element */) {\n return tNode.value;\n }\n if (flags & InjectFlags.Optional) {\n return null;\n }\n throw new RuntimeError(204 /* RuntimeErrorCode.INVALID_INJECTION_TOKEN */, ngDevMode &&\n `HOST_TAG_NAME was used on ${getDevModeNodeName(tNode)} which doesn't have an underlying element in the DOM. ` +\n `This is invalid, and so the dependency should be marked as optional.`);\n};\nfunction getDevModeNodeName(tNode) {\n if (tNode.type & 8 /* TNodeType.ElementContainer */) {\n return 'an ';\n }\n else if (tNode.type & 4 /* TNodeType.Container */) {\n return 'an ';\n }\n else if (tNode.type & 128 /* TNodeType.LetDeclaration */) {\n return 'an @let declaration';\n }\n else {\n return 'a node';\n }\n}\n\n/**\n * @module\n * @description\n * The `di` module provides dependency injection container services.\n */\n\n/**\n * This file should not be necessary because node resolution should just default to `./di/index`!\n *\n * However it does not seem to work and it breaks:\n * - //packages/animations/browser/test:test_web_chromium-local\n * - //packages/compiler-cli/test:extract_i18n\n * - //packages/compiler-cli/test:ngc\n * - //packages/compiler-cli/test:perform_watch\n * - //packages/compiler-cli/test/diagnostics:check_types\n * - //packages/compiler-cli/test/transformers:test\n * - //packages/compiler/test:test\n * - //tools/public_api_guard:core_api\n *\n * Remove this file once the above is solved or wait until `ngc` is deleted and then it should be\n * safe to delete this file.\n */\n\nconst ERROR_ORIGINAL_ERROR = 'ngOriginalError';\nfunction wrappedError(message, originalError) {\n const msg = `${message} caused by: ${originalError instanceof Error ? originalError.message : originalError}`;\n const error = Error(msg);\n error[ERROR_ORIGINAL_ERROR] = originalError;\n return error;\n}\nfunction getOriginalError(error) {\n return error[ERROR_ORIGINAL_ERROR];\n}\n\nconst SCHEDULE_IN_ROOT_ZONE_DEFAULT = true;\n\n/**\n * `DestroyRef` lets you set callbacks to run for any cleanup or destruction behavior.\n * The scope of this destruction depends on where `DestroyRef` is injected. If `DestroyRef`\n * is injected in a component or directive, the callbacks run when that component or\n * directive is destroyed. Otherwise the callbacks run when a corresponding injector is destroyed.\n *\n * @publicApi\n */\nclass DestroyRef {\n /**\n * @internal\n * @nocollapse\n */\n static { this.__NG_ELEMENT_ID__ = injectDestroyRef; }\n /**\n * @internal\n * @nocollapse\n */\n static { this.__NG_ENV_ID__ = (injector) => injector; }\n}\nclass NodeInjectorDestroyRef extends DestroyRef {\n constructor(_lView) {\n super();\n this._lView = _lView;\n }\n onDestroy(callback) {\n storeLViewOnDestroy(this._lView, callback);\n return () => removeLViewOnDestroy(this._lView, callback);\n }\n}\nfunction injectDestroyRef() {\n return new NodeInjectorDestroyRef(getLView());\n}\n\n/**\n * Internal implementation of the pending tasks service.\n */\nclass PendingTasks {\n constructor() {\n this.taskId = 0;\n this.pendingTasks = new Set();\n this.hasPendingTasks = new BehaviorSubject(false);\n }\n get _hasPendingTasks() {\n return this.hasPendingTasks.value;\n }\n add() {\n if (!this._hasPendingTasks) {\n this.hasPendingTasks.next(true);\n }\n const taskId = this.taskId++;\n this.pendingTasks.add(taskId);\n return taskId;\n }\n remove(taskId) {\n this.pendingTasks.delete(taskId);\n if (this.pendingTasks.size === 0 && this._hasPendingTasks) {\n this.hasPendingTasks.next(false);\n }\n }\n ngOnDestroy() {\n this.pendingTasks.clear();\n if (this._hasPendingTasks) {\n this.hasPendingTasks.next(false);\n }\n }\n /** @nocollapse */\n static { this.ɵprov = ɵɵdefineInjectable({\n token: PendingTasks,\n providedIn: 'root',\n factory: () => new PendingTasks(),\n }); }\n}\n/**\n * Experimental service that keeps track of pending tasks contributing to the stableness of Angular\n * application. While several existing Angular services (ex.: `HttpClient`) will internally manage\n * tasks influencing stability, this API gives control over stability to library and application\n * developers for specific cases not covered by Angular internals.\n *\n * The concept of stability comes into play in several important scenarios:\n * - SSR process needs to wait for the application stability before serializing and sending rendered\n * HTML;\n * - tests might want to delay assertions until the application becomes stable;\n *\n * @usageNotes\n * ```typescript\n * const pendingTasks = inject(ExperimentalPendingTasks);\n * const taskCleanup = pendingTasks.add();\n * // do work that should block application's stability and then:\n * taskCleanup();\n * ```\n *\n * This API is experimental. Neither the shape, nor the underlying behavior is stable and can change\n * in patch versions. We will iterate on the exact API based on the feedback and our understanding\n * of the problem and solution space.\n *\n * @publicApi\n * @experimental\n */\nclass ExperimentalPendingTasks {\n constructor() {\n this.internalPendingTasks = inject(PendingTasks);\n }\n /**\n * Adds a new task that should block application's stability.\n * @returns A cleanup function that removes a task when called.\n */\n add() {\n const taskId = this.internalPendingTasks.add();\n return () => this.internalPendingTasks.remove(taskId);\n }\n /** @nocollapse */\n static { this.ɵprov = ɵɵdefineInjectable({\n token: ExperimentalPendingTasks,\n providedIn: 'root',\n factory: () => new ExperimentalPendingTasks(),\n }); }\n}\n\nclass EventEmitter_ extends Subject {\n constructor(isAsync = false) {\n super();\n this.destroyRef = undefined;\n this.pendingTasks = undefined;\n this.__isAsync = isAsync;\n // Attempt to retrieve a `DestroyRef` and `PendingTasks` optionally.\n // For backwards compatibility reasons, this cannot be required.\n if (isInInjectionContext()) {\n // `DestroyRef` is optional because it is not available in all contexts.\n // But it is useful to properly complete the `EventEmitter` if used with `outputToObservable`\n // when the component/directive is destroyed. (See `outputToObservable` for more details.)\n this.destroyRef = inject(DestroyRef, { optional: true }) ?? undefined;\n this.pendingTasks = inject(PendingTasks, { optional: true }) ?? undefined;\n }\n }\n emit(value) {\n const prevConsumer = setActiveConsumer$1(null);\n try {\n super.next(value);\n }\n finally {\n setActiveConsumer$1(prevConsumer);\n }\n }\n subscribe(observerOrNext, error, complete) {\n let nextFn = observerOrNext;\n let errorFn = error || (() => null);\n let completeFn = complete;\n if (observerOrNext && typeof observerOrNext === 'object') {\n const observer = observerOrNext;\n nextFn = observer.next?.bind(observer);\n errorFn = observer.error?.bind(observer);\n completeFn = observer.complete?.bind(observer);\n }\n if (this.__isAsync) {\n errorFn = this.wrapInTimeout(errorFn);\n if (nextFn) {\n nextFn = this.wrapInTimeout(nextFn);\n }\n if (completeFn) {\n completeFn = this.wrapInTimeout(completeFn);\n }\n }\n const sink = super.subscribe({ next: nextFn, error: errorFn, complete: completeFn });\n if (observerOrNext instanceof Subscription) {\n observerOrNext.add(sink);\n }\n return sink;\n }\n wrapInTimeout(fn) {\n return (value) => {\n const taskId = this.pendingTasks?.add();\n setTimeout(() => {\n fn(value);\n if (taskId !== undefined) {\n this.pendingTasks?.remove(taskId);\n }\n });\n };\n }\n}\n/**\n * @publicApi\n */\nconst EventEmitter = EventEmitter_;\n\nfunction noop(...args) {\n // Do nothing.\n}\n\n/**\n * Gets a scheduling function that runs the callback after the first of setTimeout and\n * requestAnimationFrame resolves.\n *\n * - `requestAnimationFrame` ensures that change detection runs ahead of a browser repaint.\n * This ensures that the create and update passes of a change detection always happen\n * in the same frame.\n * - When the browser is resource-starved, `rAF` can execute _before_ a `setTimeout` because\n * rendering is a very high priority process. This means that `setTimeout` cannot guarantee\n * same-frame create and update pass, when `setTimeout` is used to schedule the update phase.\n * - While `rAF` gives us the desirable same-frame updates, it has two limitations that\n * prevent it from being used alone. First, it does not run in background tabs, which would\n * prevent Angular from initializing an application when opened in a new tab (for example).\n * Second, repeated calls to requestAnimationFrame will execute at the refresh rate of the\n * hardware (~16ms for a 60Hz display). This would cause significant slowdown of tests that\n * are written with several updates and asserts in the form of \"update; await stable; assert;\".\n * - Both `setTimeout` and `rAF` are able to \"coalesce\" several events from a single user\n * interaction into a single change detection. Importantly, this reduces view tree traversals when\n * compared to an alternative timing mechanism like `queueMicrotask`, where change detection would\n * then be interleaves between each event.\n *\n * By running change detection after the first of `setTimeout` and `rAF` to execute, we get the\n * best of both worlds.\n *\n * @returns a function to cancel the scheduled callback\n */\nfunction scheduleCallbackWithRafRace(callback) {\n let timeoutId;\n let animationFrameId;\n function cleanup() {\n callback = noop;\n try {\n if (animationFrameId !== undefined && typeof cancelAnimationFrame === 'function') {\n cancelAnimationFrame(animationFrameId);\n }\n if (timeoutId !== undefined) {\n clearTimeout(timeoutId);\n }\n }\n catch {\n // Clearing/canceling can fail in tests due to the timing of functions being patched and unpatched\n // Just ignore the errors - we protect ourselves from this issue by also making the callback a no-op.\n }\n }\n timeoutId = setTimeout(() => {\n callback();\n cleanup();\n });\n if (typeof requestAnimationFrame === 'function') {\n animationFrameId = requestAnimationFrame(() => {\n callback();\n cleanup();\n });\n }\n return () => cleanup();\n}\nfunction scheduleCallbackWithMicrotask(callback) {\n queueMicrotask(() => callback());\n return () => {\n callback = noop;\n };\n}\n\nclass AsyncStackTaggingZoneSpec {\n constructor(namePrefix, consoleAsyncStackTaggingImpl = console) {\n this.name = 'asyncStackTagging for ' + namePrefix;\n this.createTask = consoleAsyncStackTaggingImpl?.createTask ?? (() => null);\n }\n onScheduleTask(delegate, _current, target, task) {\n task.consoleTask = this.createTask(`Zone - ${task.source || task.type}`);\n return delegate.scheduleTask(target, task);\n }\n onInvokeTask(delegate, _currentZone, targetZone, task, applyThis, applyArgs) {\n let ret;\n if (task.consoleTask) {\n ret = task.consoleTask.run(() => delegate.invokeTask(targetZone, task, applyThis, applyArgs));\n }\n else {\n ret = delegate.invokeTask(targetZone, task, applyThis, applyArgs);\n }\n return ret;\n }\n}\n\nconst isAngularZoneProperty = 'isAngularZone';\nconst angularZoneInstanceIdProperty = isAngularZoneProperty + '_ID';\nlet ngZoneInstanceId = 0;\n/**\n * An injectable service for executing work inside or outside of the Angular zone.\n *\n * The most common use of this service is to optimize performance when starting a work consisting of\n * one or more asynchronous tasks that don't require UI updates or error handling to be handled by\n * Angular. Such tasks can be kicked off via {@link #runOutsideAngular} and if needed, these tasks\n * can reenter the Angular zone via {@link #run}.\n *\n * \n *\n * @usageNotes\n * ### Example\n *\n * ```\n * import {Component, NgZone} from '@angular/core';\n * import {NgIf} from '@angular/common';\n *\n * @Component({\n * selector: 'ng-zone-demo',\n * template: `\n *

Demo: NgZone

\n *\n *

Progress: {{progress}}%

\n *

= 100\">Done processing {{label}} of Angular zone!

\n *\n * \n * \n * `,\n * })\n * export class NgZoneDemo {\n * progress: number = 0;\n * label: string;\n *\n * constructor(private _ngZone: NgZone) {}\n *\n * // Loop inside the Angular zone\n * // so the UI DOES refresh after each setTimeout cycle\n * processWithinAngularZone() {\n * this.label = 'inside';\n * this.progress = 0;\n * this._increaseProgress(() => console.log('Inside Done!'));\n * }\n *\n * // Loop outside of the Angular zone\n * // so the UI DOES NOT refresh after each setTimeout cycle\n * processOutsideOfAngularZone() {\n * this.label = 'outside';\n * this.progress = 0;\n * this._ngZone.runOutsideAngular(() => {\n * this._increaseProgress(() => {\n * // reenter the Angular zone and display done\n * this._ngZone.run(() => { console.log('Outside Done!'); });\n * });\n * });\n * }\n *\n * _increaseProgress(doneCallback: () => void) {\n * this.progress += 1;\n * console.log(`Current progress: ${this.progress}%`);\n *\n * if (this.progress < 100) {\n * window.setTimeout(() => this._increaseProgress(doneCallback), 10);\n * } else {\n * doneCallback();\n * }\n * }\n * }\n * ```\n *\n * @publicApi\n */\nclass NgZone {\n constructor(options) {\n this.hasPendingMacrotasks = false;\n this.hasPendingMicrotasks = false;\n /**\n * Whether there are no outstanding microtasks or macrotasks.\n */\n this.isStable = true;\n /**\n * Notifies when code enters Angular Zone. This gets fired first on VM Turn.\n */\n this.onUnstable = new EventEmitter(false);\n /**\n * Notifies when there is no more microtasks enqueued in the current VM Turn.\n * This is a hint for Angular to do change detection, which may enqueue more microtasks.\n * For this reason this event can fire multiple times per VM Turn.\n */\n this.onMicrotaskEmpty = new EventEmitter(false);\n /**\n * Notifies when the last `onMicrotaskEmpty` has run and there are no more microtasks, which\n * implies we are about to relinquish VM turn.\n * This event gets called just once.\n */\n this.onStable = new EventEmitter(false);\n /**\n * Notifies that an error has been delivered.\n */\n this.onError = new EventEmitter(false);\n const { enableLongStackTrace = false, shouldCoalesceEventChangeDetection = false, shouldCoalesceRunChangeDetection = false, scheduleInRootZone = SCHEDULE_IN_ROOT_ZONE_DEFAULT, } = options;\n if (typeof Zone == 'undefined') {\n throw new RuntimeError(908 /* RuntimeErrorCode.MISSING_ZONEJS */, ngDevMode && `In this configuration Angular requires Zone.js`);\n }\n Zone.assertZonePatched();\n const self = this;\n self._nesting = 0;\n self._outer = self._inner = Zone.current;\n // AsyncStackTaggingZoneSpec provides `linked stack traces` to show\n // where the async operation is scheduled. For more details, refer\n // to this article, https://developer.chrome.com/blog/devtools-better-angular-debugging/\n // And we only import this AsyncStackTaggingZoneSpec in development mode,\n // in the production mode, the AsyncStackTaggingZoneSpec will be tree shaken away.\n if (ngDevMode) {\n self._inner = self._inner.fork(new AsyncStackTaggingZoneSpec('Angular'));\n }\n if (Zone['TaskTrackingZoneSpec']) {\n self._inner = self._inner.fork(new Zone['TaskTrackingZoneSpec']());\n }\n if (enableLongStackTrace && Zone['longStackTraceZoneSpec']) {\n self._inner = self._inner.fork(Zone['longStackTraceZoneSpec']);\n }\n // if shouldCoalesceRunChangeDetection is true, all tasks including event tasks will be\n // coalesced, so shouldCoalesceEventChangeDetection option is not necessary and can be skipped.\n self.shouldCoalesceEventChangeDetection =\n !shouldCoalesceRunChangeDetection && shouldCoalesceEventChangeDetection;\n self.shouldCoalesceRunChangeDetection = shouldCoalesceRunChangeDetection;\n self.callbackScheduled = false;\n self.scheduleInRootZone = scheduleInRootZone;\n forkInnerZoneWithAngularBehavior(self);\n }\n /**\n This method checks whether the method call happens within an Angular Zone instance.\n */\n static isInAngularZone() {\n // Zone needs to be checked, because this method might be called even when NoopNgZone is used.\n return typeof Zone !== 'undefined' && Zone.current.get(isAngularZoneProperty) === true;\n }\n /**\n Assures that the method is called within the Angular Zone, otherwise throws an error.\n */\n static assertInAngularZone() {\n if (!NgZone.isInAngularZone()) {\n throw new RuntimeError(909 /* RuntimeErrorCode.UNEXPECTED_ZONE_STATE */, ngDevMode && 'Expected to be in Angular Zone, but it is not!');\n }\n }\n /**\n Assures that the method is called outside of the Angular Zone, otherwise throws an error.\n */\n static assertNotInAngularZone() {\n if (NgZone.isInAngularZone()) {\n throw new RuntimeError(909 /* RuntimeErrorCode.UNEXPECTED_ZONE_STATE */, ngDevMode && 'Expected to not be in Angular Zone, but it is!');\n }\n }\n /**\n * Executes the `fn` function synchronously within the Angular zone and returns value returned by\n * the function.\n *\n * Running functions via `run` allows you to reenter Angular zone from a task that was executed\n * outside of the Angular zone (typically started via {@link #runOutsideAngular}).\n *\n * Any future tasks or microtasks scheduled from within this function will continue executing from\n * within the Angular zone.\n *\n * If a synchronous error happens it will be rethrown and not reported via `onError`.\n */\n run(fn, applyThis, applyArgs) {\n return this._inner.run(fn, applyThis, applyArgs);\n }\n /**\n * Executes the `fn` function synchronously within the Angular zone as a task and returns value\n * returned by the function.\n *\n * Running functions via `run` allows you to reenter Angular zone from a task that was executed\n * outside of the Angular zone (typically started via {@link #runOutsideAngular}).\n *\n * Any future tasks or microtasks scheduled from within this function will continue executing from\n * within the Angular zone.\n *\n * If a synchronous error happens it will be rethrown and not reported via `onError`.\n */\n runTask(fn, applyThis, applyArgs, name) {\n const zone = this._inner;\n const task = zone.scheduleEventTask('NgZoneEvent: ' + name, fn, EMPTY_PAYLOAD, noop, noop);\n try {\n return zone.runTask(task, applyThis, applyArgs);\n }\n finally {\n zone.cancelTask(task);\n }\n }\n /**\n * Same as `run`, except that synchronous errors are caught and forwarded via `onError` and not\n * rethrown.\n */\n runGuarded(fn, applyThis, applyArgs) {\n return this._inner.runGuarded(fn, applyThis, applyArgs);\n }\n /**\n * Executes the `fn` function synchronously in Angular's parent zone and returns value returned by\n * the function.\n *\n * Running functions via {@link #runOutsideAngular} allows you to escape Angular's zone and do\n * work that\n * doesn't trigger Angular change-detection or is subject to Angular's error handling.\n *\n * Any future tasks or microtasks scheduled from within this function will continue executing from\n * outside of the Angular zone.\n *\n * Use {@link #run} to reenter the Angular zone and do work that updates the application model.\n */\n runOutsideAngular(fn) {\n return this._outer.run(fn);\n }\n}\nconst EMPTY_PAYLOAD = {};\nfunction checkStable(zone) {\n // TODO: @JiaLiPassion, should check zone.isCheckStableRunning to prevent\n // re-entry. The case is:\n //\n // @Component({...})\n // export class AppComponent {\n // constructor(private ngZone: NgZone) {\n // this.ngZone.onStable.subscribe(() => {\n // this.ngZone.run(() => console.log('stable'););\n // });\n // }\n //\n // The onStable subscriber run another function inside ngZone\n // which causes `checkStable()` re-entry.\n // But this fix causes some issues in g3, so this fix will be\n // launched in another PR.\n if (zone._nesting == 0 && !zone.hasPendingMicrotasks && !zone.isStable) {\n try {\n zone._nesting++;\n zone.onMicrotaskEmpty.emit(null);\n }\n finally {\n zone._nesting--;\n if (!zone.hasPendingMicrotasks) {\n try {\n zone.runOutsideAngular(() => zone.onStable.emit(null));\n }\n finally {\n zone.isStable = true;\n }\n }\n }\n }\n}\nfunction delayChangeDetectionForEvents(zone) {\n /**\n * We also need to check _nesting here\n * Consider the following case with shouldCoalesceRunChangeDetection = true\n *\n * ngZone.run(() => {});\n * ngZone.run(() => {});\n *\n * We want the two `ngZone.run()` only trigger one change detection\n * when shouldCoalesceRunChangeDetection is true.\n * And because in this case, change detection run in async way(requestAnimationFrame),\n * so we also need to check the _nesting here to prevent multiple\n * change detections.\n */\n if (zone.isCheckStableRunning || zone.callbackScheduled) {\n return;\n }\n zone.callbackScheduled = true;\n function scheduleCheckStable() {\n scheduleCallbackWithRafRace(() => {\n zone.callbackScheduled = false;\n updateMicroTaskStatus(zone);\n zone.isCheckStableRunning = true;\n checkStable(zone);\n zone.isCheckStableRunning = false;\n });\n }\n if (zone.scheduleInRootZone) {\n Zone.root.run(() => {\n scheduleCheckStable();\n });\n }\n else {\n zone._outer.run(() => {\n scheduleCheckStable();\n });\n }\n updateMicroTaskStatus(zone);\n}\nfunction forkInnerZoneWithAngularBehavior(zone) {\n const delayChangeDetectionForEventsDelegate = () => {\n delayChangeDetectionForEvents(zone);\n };\n const instanceId = ngZoneInstanceId++;\n zone._inner = zone._inner.fork({\n name: 'angular',\n properties: {\n [isAngularZoneProperty]: true,\n [angularZoneInstanceIdProperty]: instanceId,\n [angularZoneInstanceIdProperty + instanceId]: true,\n },\n onInvokeTask: (delegate, current, target, task, applyThis, applyArgs) => {\n // Prevent triggering change detection when the flag is detected.\n if (shouldBeIgnoredByZone(applyArgs)) {\n return delegate.invokeTask(target, task, applyThis, applyArgs);\n }\n try {\n onEnter(zone);\n return delegate.invokeTask(target, task, applyThis, applyArgs);\n }\n finally {\n if ((zone.shouldCoalesceEventChangeDetection && task.type === 'eventTask') ||\n zone.shouldCoalesceRunChangeDetection) {\n delayChangeDetectionForEventsDelegate();\n }\n onLeave(zone);\n }\n },\n onInvoke: (delegate, current, target, callback, applyThis, applyArgs, source) => {\n try {\n onEnter(zone);\n return delegate.invoke(target, callback, applyThis, applyArgs, source);\n }\n finally {\n if (zone.shouldCoalesceRunChangeDetection &&\n // Do not delay change detection when the task is the scheduler's tick.\n // We need to synchronously trigger the stability logic so that the\n // zone-based scheduler can prevent a duplicate ApplicationRef.tick\n // by first checking if the scheduler tick is running. This does seem a bit roundabout,\n // but we _do_ still want to trigger all the correct events when we exit the zone.run\n // (`onMicrotaskEmpty` and `onStable` _should_ emit; developers can have code which\n // relies on these events happening after change detection runs).\n // Note: `zone.callbackScheduled` is already in delayChangeDetectionForEventsDelegate\n // but is added here as well to prevent reads of applyArgs when not necessary\n !zone.callbackScheduled &&\n !isSchedulerTick(applyArgs)) {\n delayChangeDetectionForEventsDelegate();\n }\n onLeave(zone);\n }\n },\n onHasTask: (delegate, current, target, hasTaskState) => {\n delegate.hasTask(target, hasTaskState);\n if (current === target) {\n // We are only interested in hasTask events which originate from our zone\n // (A child hasTask event is not interesting to us)\n if (hasTaskState.change == 'microTask') {\n zone._hasPendingMicrotasks = hasTaskState.microTask;\n updateMicroTaskStatus(zone);\n checkStable(zone);\n }\n else if (hasTaskState.change == 'macroTask') {\n zone.hasPendingMacrotasks = hasTaskState.macroTask;\n }\n }\n },\n onHandleError: (delegate, current, target, error) => {\n delegate.handleError(target, error);\n zone.runOutsideAngular(() => zone.onError.emit(error));\n return false;\n },\n });\n}\nfunction updateMicroTaskStatus(zone) {\n if (zone._hasPendingMicrotasks ||\n ((zone.shouldCoalesceEventChangeDetection || zone.shouldCoalesceRunChangeDetection) &&\n zone.callbackScheduled === true)) {\n zone.hasPendingMicrotasks = true;\n }\n else {\n zone.hasPendingMicrotasks = false;\n }\n}\nfunction onEnter(zone) {\n zone._nesting++;\n if (zone.isStable) {\n zone.isStable = false;\n zone.onUnstable.emit(null);\n }\n}\nfunction onLeave(zone) {\n zone._nesting--;\n checkStable(zone);\n}\n/**\n * Provides a noop implementation of `NgZone` which does nothing. This zone requires explicit calls\n * to framework to perform rendering.\n */\nclass NoopNgZone {\n constructor() {\n this.hasPendingMicrotasks = false;\n this.hasPendingMacrotasks = false;\n this.isStable = true;\n this.onUnstable = new EventEmitter();\n this.onMicrotaskEmpty = new EventEmitter();\n this.onStable = new EventEmitter();\n this.onError = new EventEmitter();\n }\n run(fn, applyThis, applyArgs) {\n return fn.apply(applyThis, applyArgs);\n }\n runGuarded(fn, applyThis, applyArgs) {\n return fn.apply(applyThis, applyArgs);\n }\n runOutsideAngular(fn) {\n return fn();\n }\n runTask(fn, applyThis, applyArgs, name) {\n return fn.apply(applyThis, applyArgs);\n }\n}\nfunction shouldBeIgnoredByZone(applyArgs) {\n return hasApplyArgsData(applyArgs, '__ignore_ng_zone__');\n}\nfunction isSchedulerTick(applyArgs) {\n return hasApplyArgsData(applyArgs, '__scheduler_tick__');\n}\nfunction hasApplyArgsData(applyArgs, key) {\n if (!Array.isArray(applyArgs)) {\n return false;\n }\n // We should only ever get 1 arg passed through to invokeTask.\n // Short circuit here incase that behavior changes.\n if (applyArgs.length !== 1) {\n return false;\n }\n return applyArgs[0]?.data?.[key] === true;\n}\nfunction getNgZone(ngZoneToUse = 'zone.js', options) {\n if (ngZoneToUse === 'noop') {\n return new NoopNgZone();\n }\n if (ngZoneToUse === 'zone.js') {\n return new NgZone(options);\n }\n return ngZoneToUse;\n}\n\n// Public API for Zone\n\n/**\n * Provides a hook for centralized exception handling.\n *\n * The default implementation of `ErrorHandler` prints error messages to the `console`. To\n * intercept error handling, write a custom exception handler that replaces this default as\n * appropriate for your app.\n *\n * @usageNotes\n * ### Example\n *\n * ```\n * class MyErrorHandler implements ErrorHandler {\n * handleError(error) {\n * // do something with the exception\n * }\n * }\n *\n * @NgModule({\n * providers: [{provide: ErrorHandler, useClass: MyErrorHandler}]\n * })\n * class MyModule {}\n * ```\n *\n * @publicApi\n */\nclass ErrorHandler {\n constructor() {\n /**\n * @internal\n */\n this._console = console;\n }\n handleError(error) {\n const originalError = this._findOriginalError(error);\n this._console.error('ERROR', error);\n if (originalError) {\n this._console.error('ORIGINAL ERROR', originalError);\n }\n }\n /** @internal */\n _findOriginalError(error) {\n let e = error && getOriginalError(error);\n while (e && getOriginalError(e)) {\n e = getOriginalError(e);\n }\n return e || null;\n }\n}\n/**\n * `InjectionToken` used to configure how to call the `ErrorHandler`.\n *\n * `NgZone` is provided by default today so the default (and only) implementation for this\n * is calling `ErrorHandler.handleError` outside of the Angular zone.\n */\nconst INTERNAL_APPLICATION_ERROR_HANDLER = new InjectionToken(typeof ngDevMode === 'undefined' || ngDevMode ? 'internal error handler' : '', {\n providedIn: 'root',\n factory: () => {\n const zone = inject(NgZone);\n const userErrorHandler = inject(ErrorHandler);\n return (e) => zone.runOutsideAngular(() => userErrorHandler.handleError(e));\n },\n});\n\n/**\n * An `OutputEmitterRef` is created by the `output()` function and can be\n * used to emit values to consumers of your directive or component.\n *\n * Consumers of your directive/component can bind to the output and\n * subscribe to changes via the bound event syntax. For example:\n *\n * ```html\n * \n * ```\n *\n * @developerPreview\n */\nclass OutputEmitterRef {\n constructor() {\n this.destroyed = false;\n this.listeners = null;\n this.errorHandler = inject(ErrorHandler, { optional: true });\n /** @internal */\n this.destroyRef = inject(DestroyRef);\n // Clean-up all listeners and mark as destroyed upon destroy.\n this.destroyRef.onDestroy(() => {\n this.destroyed = true;\n this.listeners = null;\n });\n }\n subscribe(callback) {\n if (this.destroyed) {\n throw new RuntimeError(953 /* RuntimeErrorCode.OUTPUT_REF_DESTROYED */, ngDevMode &&\n 'Unexpected subscription to destroyed `OutputRef`. ' +\n 'The owning directive/component is destroyed.');\n }\n (this.listeners ??= []).push(callback);\n return {\n unsubscribe: () => {\n const idx = this.listeners?.indexOf(callback);\n if (idx !== undefined && idx !== -1) {\n this.listeners?.splice(idx, 1);\n }\n },\n };\n }\n /** Emits a new value to the output. */\n emit(value) {\n if (this.destroyed) {\n throw new RuntimeError(953 /* RuntimeErrorCode.OUTPUT_REF_DESTROYED */, ngDevMode &&\n 'Unexpected emit for destroyed `OutputRef`. ' +\n 'The owning directive/component is destroyed.');\n }\n if (this.listeners === null) {\n return;\n }\n const previousConsumer = setActiveConsumer$1(null);\n try {\n for (const listenerFn of this.listeners) {\n try {\n listenerFn(value);\n }\n catch (err) {\n this.errorHandler?.handleError(err);\n }\n }\n }\n finally {\n setActiveConsumer$1(previousConsumer);\n }\n }\n}\n/** Gets the owning `DestroyRef` for the given output. */\nfunction getOutputDestroyRef(ref) {\n return ref.destroyRef;\n}\n\n/**\n * The `output` function allows declaration of Angular outputs in\n * directives and components.\n *\n * You can use outputs to emit values to parent directives and component.\n * Parents can subscribe to changes via:\n *\n * - template event bindings. For example, `(myOutput)=\"doSomething($event)\"`\n * - programmatic subscription by using `OutputRef#subscribe`.\n *\n * @usageNotes\n *\n * To use `output()`, import the function from `@angular/core`.\n *\n * ```ts\n * import {output} from '@angular/core';\n * ```\n *\n * Inside your component, introduce a new class member and initialize\n * it with a call to `output`.\n *\n * ```ts\n * @Directive({\n * ...\n * })\n * export class MyDir {\n * nameChange = output(); // OutputEmitterRef\n * onClick = output(); // OutputEmitterRef\n * }\n * ```\n *\n * You can emit values to consumers of your directive, by using\n * the `emit` method from `OutputEmitterRef`.\n *\n * ```ts\n * updateName(newName: string): void {\n * this.nameChange.emit(newName);\n * }\n * ```\n *\n * @developerPreview\n * @initializerApiFunction {\"showTypesInSignaturePreview\": true}\n */\nfunction output(opts) {\n ngDevMode && assertInInjectionContext(output);\n return new OutputEmitterRef();\n}\n\nfunction inputFunction(initialValue, opts) {\n ngDevMode && assertInInjectionContext(input);\n return createInputSignal(initialValue, opts);\n}\nfunction inputRequiredFunction(opts) {\n ngDevMode && assertInInjectionContext(input);\n return createInputSignal(REQUIRED_UNSET_VALUE, opts);\n}\n/**\n * The `input` function allows declaration of Angular inputs in directives\n * and components.\n *\n * There are two variants of inputs that can be declared:\n *\n * 1. **Optional inputs** with an initial value.\n * 2. **Required inputs** that consumers need to set.\n *\n * By default, the `input` function will declare optional inputs that\n * always have an initial value. Required inputs can be declared\n * using the `input.required()` function.\n *\n * Inputs are signals. The values of an input are exposed as a `Signal`.\n * The signal always holds the latest value of the input that is bound\n * from the parent.\n *\n * @usageNotes\n * To use signal-based inputs, import `input` from `@angular/core`.\n *\n * ```\n * import {input} from '@angular/core`;\n * ```\n *\n * Inside your component, introduce a new class member and initialize\n * it with a call to `input` or `input.required`.\n *\n * ```ts\n * @Component({\n * ...\n * })\n * export class UserProfileComponent {\n * firstName = input(); // Signal\n * lastName = input.required(); // Signal\n * age = input(0) // Signal\n * }\n * ```\n *\n * Inside your component template, you can display values of the inputs\n * by calling the signal.\n *\n * ```html\n * {{firstName()}}\n * ```\n *\n * @developerPreview\n * @initializerApiFunction\n */\nconst input = (() => {\n // Note: This may be considered a side-effect, but nothing will depend on\n // this assignment, unless this `input` constant export is accessed. It's a\n // self-contained side effect that is local to the user facing`input` export.\n inputFunction.required = inputRequiredFunction;\n return inputFunction;\n})();\n\n/**\n * Creates an ElementRef from the most recent node.\n *\n * @returns The ElementRef instance to use\n */\nfunction injectElementRef() {\n return createElementRef(getCurrentTNode(), getLView());\n}\n/**\n * Creates an ElementRef given a node.\n *\n * @param tNode The node for which you'd like an ElementRef\n * @param lView The view to which the node belongs\n * @returns The ElementRef instance to use\n */\nfunction createElementRef(tNode, lView) {\n return new ElementRef(getNativeByTNode(tNode, lView));\n}\n/**\n * A wrapper around a native element inside of a View.\n *\n * An `ElementRef` is backed by a render-specific element. In the browser, this is usually a DOM\n * element.\n *\n * @security Permitting direct access to the DOM can make your application more vulnerable to\n * XSS attacks. Carefully review any use of `ElementRef` in your code. For more detail, see the\n * [Security Guide](https://g.co/ng/security).\n *\n * @publicApi\n */\n// Note: We don't expose things like `Injector`, `ViewContainer`, ... here,\n// i.e. users have to ask for what they need. With that, we can build better analysis tools\n// and could do better codegen in the future.\nclass ElementRef {\n constructor(nativeElement) {\n this.nativeElement = nativeElement;\n }\n /**\n * @internal\n * @nocollapse\n */\n static { this.__NG_ELEMENT_ID__ = injectElementRef; }\n}\n/**\n * Unwraps `ElementRef` and return the `nativeElement`.\n *\n * @param value value to unwrap\n * @returns `nativeElement` if `ElementRef` otherwise returns value as is.\n */\nfunction unwrapElementRef(value) {\n return value instanceof ElementRef ? value.nativeElement : value;\n}\n\nfunction symbolIterator() {\n // @ts-expect-error accessing a private member\n return this._results[Symbol.iterator]();\n}\n/**\n * An unmodifiable list of items that Angular keeps up to date when the state\n * of the application changes.\n *\n * The type of object that {@link ViewChildren}, {@link ContentChildren}, and {@link QueryList}\n * provide.\n *\n * Implements an iterable interface, therefore it can be used in both ES6\n * javascript `for (var i of items)` loops as well as in Angular templates with\n * `*ngFor=\"let i of myList\"`.\n *\n * Changes can be observed by subscribing to the changes `Observable`.\n *\n * NOTE: In the future this class will implement an `Observable` interface.\n *\n * @usageNotes\n * ### Example\n * ```typescript\n * @Component({...})\n * class Container {\n * @ViewChildren(Item) items:QueryList;\n * }\n * ```\n *\n * @publicApi\n */\nclass QueryList {\n static { Symbol.iterator; }\n /**\n * Returns `Observable` of `QueryList` notifying the subscriber of changes.\n */\n get changes() {\n return (this._changes ??= new EventEmitter());\n }\n /**\n * @param emitDistinctChangesOnly Whether `QueryList.changes` should fire only when actual change\n * has occurred. Or if it should fire when query is recomputed. (recomputing could resolve in\n * the same result)\n */\n constructor(_emitDistinctChangesOnly = false) {\n this._emitDistinctChangesOnly = _emitDistinctChangesOnly;\n this.dirty = true;\n this._onDirty = undefined;\n this._results = [];\n this._changesDetected = false;\n this._changes = undefined;\n this.length = 0;\n this.first = undefined;\n this.last = undefined;\n // This function should be declared on the prototype, but doing so there will cause the class\n // declaration to have side-effects and become not tree-shakable. For this reason we do it in\n // the constructor.\n // [Symbol.iterator](): Iterator { ... }\n const proto = QueryList.prototype;\n if (!proto[Symbol.iterator])\n proto[Symbol.iterator] = symbolIterator;\n }\n /**\n * Returns the QueryList entry at `index`.\n */\n get(index) {\n return this._results[index];\n }\n /**\n * See\n * [Array.map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map)\n */\n map(fn) {\n return this._results.map(fn);\n }\n filter(fn) {\n return this._results.filter(fn);\n }\n /**\n * See\n * [Array.find](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find)\n */\n find(fn) {\n return this._results.find(fn);\n }\n /**\n * See\n * [Array.reduce](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce)\n */\n reduce(fn, init) {\n return this._results.reduce(fn, init);\n }\n /**\n * See\n * [Array.forEach](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach)\n */\n forEach(fn) {\n this._results.forEach(fn);\n }\n /**\n * See\n * [Array.some](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some)\n */\n some(fn) {\n return this._results.some(fn);\n }\n /**\n * Returns a copy of the internal results list as an Array.\n */\n toArray() {\n return this._results.slice();\n }\n toString() {\n return this._results.toString();\n }\n /**\n * Updates the stored data of the query list, and resets the `dirty` flag to `false`, so that\n * on change detection, it will not notify of changes to the queries, unless a new change\n * occurs.\n *\n * @param resultsTree The query results to store\n * @param identityAccessor Optional function for extracting stable object identity from a value\n * in the array. This function is executed for each element of the query result list while\n * comparing current query list with the new one (provided as a first argument of the `reset`\n * function) to detect if the lists are different. If the function is not provided, elements\n * are compared as is (without any pre-processing).\n */\n reset(resultsTree, identityAccessor) {\n this.dirty = false;\n const newResultFlat = flatten(resultsTree);\n if ((this._changesDetected = !arrayEquals(this._results, newResultFlat, identityAccessor))) {\n this._results = newResultFlat;\n this.length = newResultFlat.length;\n this.last = newResultFlat[this.length - 1];\n this.first = newResultFlat[0];\n }\n }\n /**\n * Triggers a change event by emitting on the `changes` {@link EventEmitter}.\n */\n notifyOnChanges() {\n if (this._changes !== undefined && (this._changesDetected || !this._emitDistinctChangesOnly))\n this._changes.emit(this);\n }\n /** @internal */\n onDirty(cb) {\n this._onDirty = cb;\n }\n /** internal */\n setDirty() {\n this.dirty = true;\n this._onDirty?.();\n }\n /** internal */\n destroy() {\n if (this._changes !== undefined) {\n this._changes.complete();\n this._changes.unsubscribe();\n }\n }\n}\n\n/**\n * The name of an attribute that can be added to the hydration boundary node\n * (component host node) to disable hydration for the content within that boundary.\n */\nconst SKIP_HYDRATION_ATTR_NAME = 'ngSkipHydration';\n/** Lowercase name of the `ngSkipHydration` attribute used for case-insensitive comparisons. */\nconst SKIP_HYDRATION_ATTR_NAME_LOWER_CASE = 'ngskiphydration';\n/**\n * Helper function to check if a given TNode has the 'ngSkipHydration' attribute.\n */\nfunction hasSkipHydrationAttrOnTNode(tNode) {\n const attrs = tNode.mergedAttrs;\n if (attrs === null)\n return false;\n // only ever look at the attribute name and skip the values\n for (let i = 0; i < attrs.length; i += 2) {\n const value = attrs[i];\n // This is a marker, which means that the static attributes section is over,\n // so we can exit early.\n if (typeof value === 'number')\n return false;\n if (typeof value === 'string' && value.toLowerCase() === SKIP_HYDRATION_ATTR_NAME_LOWER_CASE) {\n return true;\n }\n }\n return false;\n}\n/**\n * Helper function to check if a given RElement has the 'ngSkipHydration' attribute.\n */\nfunction hasSkipHydrationAttrOnRElement(rNode) {\n return rNode.hasAttribute(SKIP_HYDRATION_ATTR_NAME);\n}\n/**\n * Checks whether a TNode has a flag to indicate that it's a part of\n * a skip hydration block.\n */\nfunction hasInSkipHydrationBlockFlag(tNode) {\n return (tNode.flags & 128 /* TNodeFlags.inSkipHydrationBlock */) === 128 /* TNodeFlags.inSkipHydrationBlock */;\n}\n/**\n * Helper function that determines if a given node is within a skip hydration block\n * by navigating up the TNode tree to see if any parent nodes have skip hydration\n * attribute.\n */\nfunction isInSkipHydrationBlock(tNode) {\n if (hasInSkipHydrationBlockFlag(tNode)) {\n return true;\n }\n let currentTNode = tNode.parent;\n while (currentTNode) {\n if (hasInSkipHydrationBlockFlag(tNode) || hasSkipHydrationAttrOnTNode(currentTNode)) {\n return true;\n }\n currentTNode = currentTNode.parent;\n }\n return false;\n}\n/**\n * Check if an i18n block is in a skip hydration section by looking at a parent TNode\n * to determine if this TNode is in a skip hydration section or the TNode has\n * the `ngSkipHydration` attribute.\n */\nfunction isI18nInSkipHydrationBlock(parentTNode) {\n return (hasInSkipHydrationBlockFlag(parentTNode) ||\n hasSkipHydrationAttrOnTNode(parentTNode) ||\n isInSkipHydrationBlock(parentTNode));\n}\n\n// Keeps track of the currently-active LViews.\nconst TRACKED_LVIEWS = new Map();\n// Used for generating unique IDs for LViews.\nlet uniqueIdCounter = 0;\n/** Gets a unique ID that can be assigned to an LView. */\nfunction getUniqueLViewId() {\n return uniqueIdCounter++;\n}\n/** Starts tracking an LView. */\nfunction registerLView(lView) {\n ngDevMode && assertNumber(lView[ID], 'LView must have an ID in order to be registered');\n TRACKED_LVIEWS.set(lView[ID], lView);\n}\n/** Gets an LView by its unique ID. */\nfunction getLViewById(id) {\n ngDevMode && assertNumber(id, 'ID used for LView lookup must be a number');\n return TRACKED_LVIEWS.get(id) || null;\n}\n/** Stops tracking an LView. */\nfunction unregisterLView(lView) {\n ngDevMode && assertNumber(lView[ID], 'Cannot stop tracking an LView that does not have an ID');\n TRACKED_LVIEWS.delete(lView[ID]);\n}\n\n/**\n * The internal view context which is specific to a given DOM element, directive or\n * component instance. Each value in here (besides the LView and element node details)\n * can be present, null or undefined. If undefined then it implies the value has not been\n * looked up yet, otherwise, if null, then a lookup was executed and nothing was found.\n *\n * Each value will get filled when the respective value is examined within the getContext\n * function. The component, element and each directive instance will share the same instance\n * of the context.\n */\nclass LContext {\n /** Component's parent view data. */\n get lView() {\n return getLViewById(this.lViewId);\n }\n constructor(\n /**\n * ID of the component's parent view data.\n */\n lViewId, \n /**\n * The index instance of the node.\n */\n nodeIndex, \n /**\n * The instance of the DOM node that is attached to the lNode.\n */\n native) {\n this.lViewId = lViewId;\n this.nodeIndex = nodeIndex;\n this.native = native;\n }\n}\n\n/**\n * Returns the matching `LContext` data for a given DOM node, directive or component instance.\n *\n * This function will examine the provided DOM element, component, or directive instance\\'s\n * monkey-patched property to derive the `LContext` data. Once called then the monkey-patched\n * value will be that of the newly created `LContext`.\n *\n * If the monkey-patched value is the `LView` instance then the context value for that\n * target will be created and the monkey-patch reference will be updated. Therefore when this\n * function is called it may mutate the provided element\\'s, component\\'s or any of the associated\n * directive\\'s monkey-patch values.\n *\n * If the monkey-patch value is not detected then the code will walk up the DOM until an element\n * is found which contains a monkey-patch reference. When that occurs then the provided element\n * will be updated with a new context (which is then returned). If the monkey-patch value is not\n * detected for a component/directive instance then it will throw an error (all components and\n * directives should be automatically monkey-patched by ivy).\n *\n * @param target Component, Directive or DOM Node.\n */\nfunction getLContext(target) {\n let mpValue = readPatchedData(target);\n if (mpValue) {\n // only when it's an array is it considered an LView instance\n // ... otherwise it's an already constructed LContext instance\n if (isLView(mpValue)) {\n const lView = mpValue;\n let nodeIndex;\n let component = undefined;\n let directives = undefined;\n if (isComponentInstance(target)) {\n nodeIndex = findViaComponent(lView, target);\n if (nodeIndex == -1) {\n throw new Error('The provided component was not found in the application');\n }\n component = target;\n }\n else if (isDirectiveInstance(target)) {\n nodeIndex = findViaDirective(lView, target);\n if (nodeIndex == -1) {\n throw new Error('The provided directive was not found in the application');\n }\n directives = getDirectivesAtNodeIndex(nodeIndex, lView);\n }\n else {\n nodeIndex = findViaNativeElement(lView, target);\n if (nodeIndex == -1) {\n return null;\n }\n }\n // the goal is not to fill the entire context full of data because the lookups\n // are expensive. Instead, only the target data (the element, component, container, ICU\n // expression or directive details) are filled into the context. If called multiple times\n // with different target values then the missing target data will be filled in.\n const native = unwrapRNode(lView[nodeIndex]);\n const existingCtx = readPatchedData(native);\n const context = existingCtx && !Array.isArray(existingCtx)\n ? existingCtx\n : createLContext(lView, nodeIndex, native);\n // only when the component has been discovered then update the monkey-patch\n if (component && context.component === undefined) {\n context.component = component;\n attachPatchData(context.component, context);\n }\n // only when the directives have been discovered then update the monkey-patch\n if (directives && context.directives === undefined) {\n context.directives = directives;\n for (let i = 0; i < directives.length; i++) {\n attachPatchData(directives[i], context);\n }\n }\n attachPatchData(context.native, context);\n mpValue = context;\n }\n }\n else {\n const rElement = target;\n ngDevMode && assertDomNode(rElement);\n // if the context is not found then we need to traverse upwards up the DOM\n // to find the nearest element that has already been monkey patched with data\n let parent = rElement;\n while ((parent = parent.parentNode)) {\n const parentContext = readPatchedData(parent);\n if (parentContext) {\n const lView = Array.isArray(parentContext) ? parentContext : parentContext.lView;\n // the edge of the app was also reached here through another means\n // (maybe because the DOM was changed manually).\n if (!lView) {\n return null;\n }\n const index = findViaNativeElement(lView, rElement);\n if (index >= 0) {\n const native = unwrapRNode(lView[index]);\n const context = createLContext(lView, index, native);\n attachPatchData(native, context);\n mpValue = context;\n break;\n }\n }\n }\n }\n return mpValue || null;\n}\n/**\n * Creates an empty instance of a `LContext` context\n */\nfunction createLContext(lView, nodeIndex, native) {\n return new LContext(lView[ID], nodeIndex, native);\n}\n/**\n * Takes a component instance and returns the view for that component.\n *\n * @param componentInstance\n * @returns The component's view\n */\nfunction getComponentViewByInstance(componentInstance) {\n let patchedData = readPatchedData(componentInstance);\n let lView;\n if (isLView(patchedData)) {\n const contextLView = patchedData;\n const nodeIndex = findViaComponent(contextLView, componentInstance);\n lView = getComponentLViewByIndex(nodeIndex, contextLView);\n const context = createLContext(contextLView, nodeIndex, lView[HOST]);\n context.component = componentInstance;\n attachPatchData(componentInstance, context);\n attachPatchData(context.native, context);\n }\n else {\n const context = patchedData;\n const contextLView = context.lView;\n ngDevMode && assertLView(contextLView);\n lView = getComponentLViewByIndex(context.nodeIndex, contextLView);\n }\n return lView;\n}\n/**\n * This property will be monkey-patched on elements, components and directives.\n */\nconst MONKEY_PATCH_KEY_NAME = '__ngContext__';\nfunction attachLViewId(target, data) {\n target[MONKEY_PATCH_KEY_NAME] = data[ID];\n}\n/**\n * Returns the monkey-patch value data present on the target (which could be\n * a component, directive or a DOM node).\n */\nfunction readLView(target) {\n const data = readPatchedData(target);\n if (isLView(data)) {\n return data;\n }\n return data ? data.lView : null;\n}\n/**\n * Assigns the given data to the given target (which could be a component,\n * directive or DOM node instance) using monkey-patching.\n */\nfunction attachPatchData(target, data) {\n ngDevMode && assertDefined(target, 'Target expected');\n // Only attach the ID of the view in order to avoid memory leaks (see #41047). We only do this\n // for `LView`, because we have control over when an `LView` is created and destroyed, whereas\n // we can't know when to remove an `LContext`.\n if (isLView(data)) {\n target[MONKEY_PATCH_KEY_NAME] = data[ID];\n registerLView(data);\n }\n else {\n target[MONKEY_PATCH_KEY_NAME] = data;\n }\n}\n/**\n * Returns the monkey-patch value data present on the target (which could be\n * a component, directive or a DOM node).\n */\nfunction readPatchedData(target) {\n ngDevMode && assertDefined(target, 'Target expected');\n const data = target[MONKEY_PATCH_KEY_NAME];\n return typeof data === 'number' ? getLViewById(data) : data || null;\n}\nfunction readPatchedLView(target) {\n const value = readPatchedData(target);\n if (value) {\n return (isLView(value) ? value : value.lView);\n }\n return null;\n}\nfunction isComponentInstance(instance) {\n return instance && instance.constructor && instance.constructor.ɵcmp;\n}\nfunction isDirectiveInstance(instance) {\n return instance && instance.constructor && instance.constructor.ɵdir;\n}\n/**\n * Locates the element within the given LView and returns the matching index\n */\nfunction findViaNativeElement(lView, target) {\n const tView = lView[TVIEW];\n for (let i = HEADER_OFFSET; i < tView.bindingStartIndex; i++) {\n if (unwrapRNode(lView[i]) === target) {\n return i;\n }\n }\n return -1;\n}\n/**\n * Locates the next tNode (child, sibling or parent).\n */\nfunction traverseNextElement(tNode) {\n if (tNode.child) {\n return tNode.child;\n }\n else if (tNode.next) {\n return tNode.next;\n }\n else {\n // Let's take the following template:
text
\n // After checking the text node, we need to find the next parent that has a \"next\" TNode,\n // in this case the parent `div`, so that we can find the component.\n while (tNode.parent && !tNode.parent.next) {\n tNode = tNode.parent;\n }\n return tNode.parent && tNode.parent.next;\n }\n}\n/**\n * Locates the component within the given LView and returns the matching index\n */\nfunction findViaComponent(lView, componentInstance) {\n const componentIndices = lView[TVIEW].components;\n if (componentIndices) {\n for (let i = 0; i < componentIndices.length; i++) {\n const elementComponentIndex = componentIndices[i];\n const componentView = getComponentLViewByIndex(elementComponentIndex, lView);\n if (componentView[CONTEXT] === componentInstance) {\n return elementComponentIndex;\n }\n }\n }\n else {\n const rootComponentView = getComponentLViewByIndex(HEADER_OFFSET, lView);\n const rootComponent = rootComponentView[CONTEXT];\n if (rootComponent === componentInstance) {\n // we are dealing with the root element here therefore we know that the\n // element is the very first element after the HEADER data in the lView\n return HEADER_OFFSET;\n }\n }\n return -1;\n}\n/**\n * Locates the directive within the given LView and returns the matching index\n */\nfunction findViaDirective(lView, directiveInstance) {\n // if a directive is monkey patched then it will (by default)\n // have a reference to the LView of the current view. The\n // element bound to the directive being search lives somewhere\n // in the view data. We loop through the nodes and check their\n // list of directives for the instance.\n let tNode = lView[TVIEW].firstChild;\n while (tNode) {\n const directiveIndexStart = tNode.directiveStart;\n const directiveIndexEnd = tNode.directiveEnd;\n for (let i = directiveIndexStart; i < directiveIndexEnd; i++) {\n if (lView[i] === directiveInstance) {\n return tNode.index;\n }\n }\n tNode = traverseNextElement(tNode);\n }\n return -1;\n}\n/**\n * Returns a list of directives applied to a node at a specific index. The list includes\n * directives matched by selector and any host directives, but it excludes components.\n * Use `getComponentAtNodeIndex` to find the component applied to a node.\n *\n * @param nodeIndex The node index\n * @param lView The target view data\n */\nfunction getDirectivesAtNodeIndex(nodeIndex, lView) {\n const tNode = lView[TVIEW].data[nodeIndex];\n if (tNode.directiveStart === 0)\n return EMPTY_ARRAY;\n const results = [];\n for (let i = tNode.directiveStart; i < tNode.directiveEnd; i++) {\n const directiveInstance = lView[i];\n if (!isComponentInstance(directiveInstance)) {\n results.push(directiveInstance);\n }\n }\n return results;\n}\nfunction getComponentAtNodeIndex(nodeIndex, lView) {\n const tNode = lView[TVIEW].data[nodeIndex];\n const { directiveStart, componentOffset } = tNode;\n return componentOffset > -1 ? lView[directiveStart + componentOffset] : null;\n}\n/**\n * Returns a map of local references (local reference name => element or directive instance) that\n * exist on a given element.\n */\nfunction discoverLocalRefs(lView, nodeIndex) {\n const tNode = lView[TVIEW].data[nodeIndex];\n if (tNode && tNode.localNames) {\n const result = {};\n let localIndex = tNode.index + 1;\n for (let i = 0; i < tNode.localNames.length; i += 2) {\n result[tNode.localNames[i]] = lView[localIndex];\n localIndex++;\n }\n return result;\n }\n return null;\n}\n\n/**\n * Retrieve the root view from any component or `LView` by walking the parent `LView` until\n * reaching the root `LView`.\n *\n * @param componentOrLView any component or `LView`\n */\nfunction getRootView(componentOrLView) {\n ngDevMode && assertDefined(componentOrLView, 'component');\n let lView = isLView(componentOrLView) ? componentOrLView : readPatchedLView(componentOrLView);\n while (lView && !(lView[FLAGS] & 512 /* LViewFlags.IsRoot */)) {\n lView = getLViewParent(lView);\n }\n ngDevMode && assertLView(lView);\n return lView;\n}\n/**\n * Returns the context information associated with the application where the target is situated. It\n * does this by walking the parent views until it gets to the root view, then getting the context\n * off of that.\n *\n * @param viewOrComponent the `LView` or component to get the root context for.\n */\nfunction getRootContext(viewOrComponent) {\n const rootView = getRootView(viewOrComponent);\n ngDevMode &&\n assertDefined(rootView[CONTEXT], 'Root view has no context. Perhaps it is disconnected?');\n return rootView[CONTEXT];\n}\n/**\n * Gets the first `LContainer` in the LView or `null` if none exists.\n */\nfunction getFirstLContainer(lView) {\n return getNearestLContainer(lView[CHILD_HEAD]);\n}\n/**\n * Gets the next `LContainer` that is a sibling of the given container.\n */\nfunction getNextLContainer(container) {\n return getNearestLContainer(container[NEXT]);\n}\nfunction getNearestLContainer(viewOrContainer) {\n while (viewOrContainer !== null && !isLContainer(viewOrContainer)) {\n viewOrContainer = viewOrContainer[NEXT];\n }\n return viewOrContainer;\n}\n\n/**\n * Retrieves the component instance associated with a given DOM element.\n *\n * @usageNotes\n * Given the following DOM structure:\n *\n * ```html\n * \n *
\n * \n *
\n *
\n * ```\n *\n * Calling `getComponent` on `` will return the instance of `ChildComponent`\n * associated with this DOM element.\n *\n * Calling the function on `` will return the `MyApp` instance.\n *\n *\n * @param element DOM element from which the component should be retrieved.\n * @returns Component instance associated with the element or `null` if there\n * is no component associated with it.\n *\n * @publicApi\n */\nfunction getComponent$1(element) {\n ngDevMode && assertDomElement(element);\n const context = getLContext(element);\n if (context === null)\n return null;\n if (context.component === undefined) {\n const lView = context.lView;\n if (lView === null) {\n return null;\n }\n context.component = getComponentAtNodeIndex(context.nodeIndex, lView);\n }\n return context.component;\n}\n/**\n * If inside an embedded view (e.g. `*ngIf` or `*ngFor`), retrieves the context of the embedded\n * view that the element is part of. Otherwise retrieves the instance of the component whose view\n * owns the element (in this case, the result is the same as calling `getOwningComponent`).\n *\n * @param element Element for which to get the surrounding component instance.\n * @returns Instance of the component that is around the element or null if the element isn't\n * inside any component.\n *\n * @publicApi\n */\nfunction getContext(element) {\n assertDomElement(element);\n const context = getLContext(element);\n const lView = context ? context.lView : null;\n return lView === null ? null : lView[CONTEXT];\n}\n/**\n * Retrieves the component instance whose view contains the DOM element.\n *\n * For example, if `` is used in the template of ``\n * (i.e. a `ViewChild` of ``), calling `getOwningComponent` on ``\n * would return ``.\n *\n * @param elementOrDir DOM element, component or directive instance\n * for which to retrieve the root components.\n * @returns Component instance whose view owns the DOM element or null if the element is not\n * part of a component view.\n *\n * @publicApi\n */\nfunction getOwningComponent(elementOrDir) {\n const context = getLContext(elementOrDir);\n let lView = context ? context.lView : null;\n if (lView === null)\n return null;\n let parent;\n while (lView[TVIEW].type === 2 /* TViewType.Embedded */ && (parent = getLViewParent(lView))) {\n lView = parent;\n }\n return lView[FLAGS] & 512 /* LViewFlags.IsRoot */ ? null : lView[CONTEXT];\n}\n/**\n * Retrieves all root components associated with a DOM element, directive or component instance.\n * Root components are those which have been bootstrapped by Angular.\n *\n * @param elementOrDir DOM element, component or directive instance\n * for which to retrieve the root components.\n * @returns Root components associated with the target object.\n *\n * @publicApi\n */\nfunction getRootComponents(elementOrDir) {\n const lView = readPatchedLView(elementOrDir);\n return lView !== null ? [getRootContext(lView)] : [];\n}\n/**\n * Retrieves an `Injector` associated with an element, component or directive instance.\n *\n * @param elementOrDir DOM element, component or directive instance for which to\n * retrieve the injector.\n * @returns Injector associated with the element, component or directive instance.\n *\n * @publicApi\n */\nfunction getInjector(elementOrDir) {\n const context = getLContext(elementOrDir);\n const lView = context ? context.lView : null;\n if (lView === null)\n return Injector.NULL;\n const tNode = lView[TVIEW].data[context.nodeIndex];\n return new NodeInjector(tNode, lView);\n}\n/**\n * Retrieve a set of injection tokens at a given DOM node.\n *\n * @param element Element for which the injection tokens should be retrieved.\n */\nfunction getInjectionTokens(element) {\n const context = getLContext(element);\n const lView = context ? context.lView : null;\n if (lView === null)\n return [];\n const tView = lView[TVIEW];\n const tNode = tView.data[context.nodeIndex];\n const providerTokens = [];\n const startIndex = tNode.providerIndexes & 1048575 /* TNodeProviderIndexes.ProvidersStartIndexMask */;\n const endIndex = tNode.directiveEnd;\n for (let i = startIndex; i < endIndex; i++) {\n let value = tView.data[i];\n if (isDirectiveDefHack(value)) {\n // The fact that we sometimes store Type and sometimes DirectiveDef in this location is a\n // design flaw. We should always store same type so that we can be monomorphic. The issue\n // is that for Components/Directives we store the def instead the type. The correct behavior\n // is that we should always be storing injectable type in this location.\n value = value.type;\n }\n providerTokens.push(value);\n }\n return providerTokens;\n}\n/**\n * Retrieves directive instances associated with a given DOM node. Does not include\n * component instances.\n *\n * @usageNotes\n * Given the following DOM structure:\n *\n * ```html\n * \n * \n * \n * \n * ```\n *\n * Calling `getDirectives` on `