@angular/core 16.0.0 → 16.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/esm2022/src/application_ref.mjs +60 -55
  2. package/esm2022/src/change_detection/change_detector_ref.mjs +2 -2
  3. package/esm2022/src/core_private_export.mjs +1 -2
  4. package/esm2022/src/di/injectable.mjs +2 -1
  5. package/esm2022/src/di/metadata.mjs +6 -5
  6. package/esm2022/src/di/metadata_attr.mjs +2 -1
  7. package/esm2022/src/di/r3_injector.mjs +6 -3
  8. package/esm2022/src/errors.mjs +1 -1
  9. package/esm2022/src/hydration/annotate.mjs +1 -1
  10. package/esm2022/src/hydration/api.mjs +32 -4
  11. package/esm2022/src/hydration/skip_hydration.mjs +12 -1
  12. package/esm2022/src/hydration/utils.mjs +9 -3
  13. package/esm2022/src/i18n/locale_data_api.mjs +2 -2
  14. package/esm2022/src/linker/element_ref.mjs +1 -1
  15. package/esm2022/src/linker/view_container_ref.mjs +16 -6
  16. package/esm2022/src/metadata/di.mjs +5 -4
  17. package/esm2022/src/metadata/directives.mjs +7 -7
  18. package/esm2022/src/metadata/ng_module.mjs +2 -1
  19. package/esm2022/src/render/api.mjs +1 -1
  20. package/esm2022/src/render3/bindings.mjs +2 -2
  21. package/esm2022/src/render3/component.mjs +4 -4
  22. package/esm2022/src/render3/definition.mjs +5 -2
  23. package/esm2022/src/render3/errors.mjs +6 -3
  24. package/esm2022/src/render3/instructions/element_validation.mjs +2 -2
  25. package/esm2022/src/render3/instructions/listener.mjs +1 -3
  26. package/esm2022/src/render3/instructions/shared.mjs +7 -3
  27. package/esm2022/src/render3/interfaces/document.mjs +6 -4
  28. package/esm2022/src/render3/interfaces/node.mjs +1 -1
  29. package/esm2022/src/render3/node_manipulation.mjs +10 -2
  30. package/esm2022/src/signals/src/api.mjs +5 -3
  31. package/esm2022/src/transfer_state.mjs +13 -28
  32. package/esm2022/src/util/assert.mjs +2 -5
  33. package/esm2022/src/version.mjs +1 -1
  34. package/esm2022/testing/src/logger.mjs +3 -3
  35. package/esm2022/testing/src/test_bed.mjs +4 -4
  36. package/esm2022/testing/src/test_bed_common.mjs +1 -1
  37. package/fesm2022/core.mjs +237 -171
  38. package/fesm2022/core.mjs.map +1 -1
  39. package/fesm2022/rxjs-interop.mjs +5 -3
  40. package/fesm2022/rxjs-interop.mjs.map +1 -1
  41. package/fesm2022/testing.mjs +134 -102
  42. package/fesm2022/testing.mjs.map +1 -1
  43. package/index.d.ts +48 -43
  44. package/package.json +1 -1
  45. package/rxjs-interop/index.d.ts +1 -1
  46. package/schematics/migrations/guard-and-resolve-interfaces/bundle.js +13 -13
  47. package/schematics/migrations/remove-module-id/bundle.js +14 -14
  48. package/schematics/ng-generate/standalone-migration/bundle.js +415 -361
  49. package/schematics/ng-generate/standalone-migration/bundle.js.map +3 -3
  50. package/testing/index.d.ts +5 -5
package/fesm2022/core.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v16.0.0
2
+ * @license Angular v16.0.2
3
3
  * (c) 2010-2022 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -302,10 +302,7 @@ function throwError(msg, actual, expected, comparison) {
302
302
  (comparison == null ? '' : ` [Expected=> ${expected} ${comparison} ${actual} <=Actual]`));
303
303
  }
304
304
  function assertDomNode(node) {
305
- // If we're in a worker, `Node` will not be defined.
306
- if (!(typeof Node !== 'undefined' && node instanceof Node) &&
307
- !(typeof node === 'object' && node != null &&
308
- node.constructor.name === 'WebWorkerRenderNode')) {
305
+ if (!(node instanceof Node)) {
309
306
  throwError(`The provided value must be an instance of a DOM Node but got ${stringify(node)}`);
310
307
  }
311
308
  }
@@ -1823,7 +1820,7 @@ function getPipeDef$1(type) {
1823
1820
  /**
1824
1821
  * Checks whether a given Component, Directive or Pipe is marked as standalone.
1825
1822
  * This will return false if passed anything other than a Component, Directive, or Pipe class
1826
- * See this guide for additional information: https://angular.io/guide/standalone-components
1823
+ * See [this guide](/guide/standalone-components) for additional information:
1827
1824
  *
1828
1825
  * @param type A reference to a Component, Directive or Pipe.
1829
1826
  * @publicApi
@@ -1903,6 +1900,9 @@ function getComponentId(componentDef) {
1903
1900
  componentDef.decls,
1904
1901
  componentDef.encapsulation,
1905
1902
  componentDef.standalone,
1903
+ componentDef.exportAs,
1904
+ JSON.stringify(componentDef.inputs),
1905
+ JSON.stringify(componentDef.outputs),
1906
1906
  // We cannot use 'componentDef.type.name' as the name of the symbol will change and will not
1907
1907
  // match in the server and browser bundles.
1908
1908
  Object.getOwnPropertyNames(componentDef.type.prototype),
@@ -2166,10 +2166,12 @@ function getFactoryDef(type, throwNotFound) {
2166
2166
  */
2167
2167
  const SIGNAL = Symbol('SIGNAL');
2168
2168
  /**
2169
- * Checks if the given `value` function is a reactive `Signal`.
2169
+ * Checks if the given `value` is a reactive `Signal`.
2170
+ *
2171
+ * @developerPreview
2170
2172
  */
2171
2173
  function isSignal(value) {
2172
- return value[SIGNAL] !== undefined;
2174
+ return typeof value === 'function' && value[SIGNAL] !== undefined;
2173
2175
  }
2174
2176
  /**
2175
2177
  * Converts `fn` into a marked signal function (where `isSignal(fn)` will be `true`), and
@@ -4938,6 +4940,7 @@ function makePropDecorator(name, props, parentClass, additionalProcessing) {
4938
4940
  /**
4939
4941
  * Attribute decorator and metadata.
4940
4942
  *
4943
+ * @Annotation
4941
4944
  * @publicApi
4942
4945
  */
4943
4946
  const Attribute = makeParamDecorator('Attribute', (attributeName) => ({ attributeName, __NG_ELEMENT_ID__: () => ɵɵinjectAttribute(attributeName) }));
@@ -4961,6 +4964,7 @@ class Query {
4961
4964
  * ContentChildren decorator and metadata.
4962
4965
  *
4963
4966
  *
4967
+ * @Annotation
4964
4968
  * @publicApi
4965
4969
  */
4966
4970
  const ContentChildren = makePropDecorator('ContentChildren', (selector, data = {}) => ({
@@ -4975,7 +4979,7 @@ const ContentChildren = makePropDecorator('ContentChildren', (selector, data = {
4975
4979
  * ContentChild decorator and metadata.
4976
4980
  *
4977
4981
  *
4978
-
4982
+ * @Annotation
4979
4983
  *
4980
4984
  * @publicApi
4981
4985
  */
@@ -4983,7 +4987,7 @@ const ContentChild = makePropDecorator('ContentChild', (selector, data = {}) =>
4983
4987
  /**
4984
4988
  * ViewChildren decorator and metadata.
4985
4989
  *
4986
-
4990
+ * @Annotation
4987
4991
  * @publicApi
4988
4992
  */
4989
4993
  const ViewChildren = makePropDecorator('ViewChildren', (selector, data = {}) => ({
@@ -4997,7 +5001,7 @@ const ViewChildren = makePropDecorator('ViewChildren', (selector, data = {}) =>
4997
5001
  /**
4998
5002
  * ViewChild decorator and metadata.
4999
5003
  *
5000
-
5004
+ * @Annotation
5001
5005
  * @publicApi
5002
5006
  */
5003
5007
  const ViewChild = makePropDecorator('ViewChild', (selector, data) => ({ selector, first: true, isViewQuery: true, descendants: true, ...data }), Query);
@@ -5584,6 +5588,7 @@ function getParentCtor(ctor) {
5584
5588
  /**
5585
5589
  * Inject decorator and metadata.
5586
5590
  *
5591
+ * @Annotation
5587
5592
  * @publicApi
5588
5593
  */
5589
5594
  const Inject = attachInjectFlag(
@@ -5593,7 +5598,7 @@ makeParamDecorator('Inject', (token) => ({ token })), -1 /* DecoratorFlags.Injec
5593
5598
  /**
5594
5599
  * Optional decorator and metadata.
5595
5600
  *
5596
-
5601
+ * @Annotation
5597
5602
  * @publicApi
5598
5603
  */
5599
5604
  const Optional =
@@ -5603,7 +5608,7 @@ attachInjectFlag(makeParamDecorator('Optional'), 8 /* InternalInjectFlags.Option
5603
5608
  /**
5604
5609
  * Self decorator and metadata.
5605
5610
  *
5606
-
5611
+ * @Annotation
5607
5612
  * @publicApi
5608
5613
  */
5609
5614
  const Self =
@@ -5613,7 +5618,7 @@ attachInjectFlag(makeParamDecorator('Self'), 2 /* InternalInjectFlags.Self */);
5613
5618
  /**
5614
5619
  * `SkipSelf` decorator and metadata.
5615
5620
  *
5616
-
5621
+ * @Annotation
5617
5622
  * @publicApi
5618
5623
  */
5619
5624
  const SkipSelf =
@@ -5623,7 +5628,7 @@ attachInjectFlag(makeParamDecorator('SkipSelf'), 4 /* InternalInjectFlags.SkipSe
5623
5628
  /**
5624
5629
  * Host decorator and metadata.
5625
5630
  *
5626
-
5631
+ * @Annotation
5627
5632
  * @publicApi
5628
5633
  */
5629
5634
  const Host =
@@ -5986,7 +5991,7 @@ function isPropertyValid(element, propName, tagName, schemas) {
5986
5991
  if (schemas === null)
5987
5992
  return true;
5988
5993
  // The property is considered valid if the element matches the schema, it exists on the element,
5989
- // or it is synthetic, and we are in a browser context (web worker nodes should be skipped).
5994
+ // or it is synthetic.
5990
5995
  if (matchingSchemas(schemas, tagName) || propName in element || isAnimationProp(propName)) {
5991
5996
  return true;
5992
5997
  }
@@ -6128,6 +6133,59 @@ function matchingSchemas(schemas, tagName) {
6128
6133
  return false;
6129
6134
  }
6130
6135
 
6136
+ /**
6137
+ * The name of an attribute that can be added to the hydration boundary node
6138
+ * (component host node) to disable hydration for the content within that boundary.
6139
+ */
6140
+ const SKIP_HYDRATION_ATTR_NAME = 'ngSkipHydration';
6141
+ /**
6142
+ * Helper function to check if a given node has the 'ngSkipHydration' attribute
6143
+ */
6144
+ function hasNgSkipHydrationAttr(tNode) {
6145
+ const SKIP_HYDRATION_ATTR_NAME_LOWER_CASE = SKIP_HYDRATION_ATTR_NAME.toLowerCase();
6146
+ const attrs = tNode.mergedAttrs;
6147
+ if (attrs === null)
6148
+ return false;
6149
+ // only ever look at the attribute name and skip the values
6150
+ for (let i = 0; i < attrs.length; i += 2) {
6151
+ const value = attrs[i];
6152
+ // This is a marker, which means that the static attributes section is over,
6153
+ // so we can exit early.
6154
+ if (typeof value === 'number')
6155
+ return false;
6156
+ if (typeof value === 'string' && value.toLowerCase() === SKIP_HYDRATION_ATTR_NAME_LOWER_CASE) {
6157
+ return true;
6158
+ }
6159
+ }
6160
+ return false;
6161
+ }
6162
+ /**
6163
+ * Checks whether a TNode has a flag to indicate that it's a part of
6164
+ * a skip hydration block.
6165
+ */
6166
+ function hasInSkipHydrationBlockFlag(tNode) {
6167
+ return (tNode.flags & 128 /* TNodeFlags.inSkipHydrationBlock */) === 128 /* TNodeFlags.inSkipHydrationBlock */;
6168
+ }
6169
+ /**
6170
+ * Helper function that determines if a given node is within a skip hydration block
6171
+ * by navigating up the TNode tree to see if any parent nodes have skip hydration
6172
+ * attribute.
6173
+ *
6174
+ * TODO(akushnir): this function should contain the logic of `hasInSkipHydrationBlockFlag`,
6175
+ * there is no need to traverse parent nodes when we have a TNode flag (which would also
6176
+ * make this lookup O(1)).
6177
+ */
6178
+ function isInSkipHydrationBlock(tNode) {
6179
+ let currentTNode = tNode.parent;
6180
+ while (currentTNode) {
6181
+ if (hasNgSkipHydrationAttr(currentTNode)) {
6182
+ return true;
6183
+ }
6184
+ currentTNode = currentTNode.parent;
6185
+ }
6186
+ return false;
6187
+ }
6188
+
6131
6189
  /**
6132
6190
  * Flags for renderer-specific style modifiers.
6133
6191
  * @publicApi
@@ -7007,12 +7065,14 @@ function processCleanups(tView, lView) {
7007
7065
  }
7008
7066
  const destroyHooks = lView[ON_DESTROY_HOOKS];
7009
7067
  if (destroyHooks !== null) {
7068
+ // Reset the ON_DESTROY_HOOKS array before iterating over it to prevent hooks that unregister
7069
+ // themselves from mutating the array during iteration.
7070
+ lView[ON_DESTROY_HOOKS] = null;
7010
7071
  for (let i = 0; i < destroyHooks.length; i++) {
7011
7072
  const destroyHooksFn = destroyHooks[i];
7012
7073
  ngDevMode && assertFunction(destroyHooksFn, 'Expecting destroy hook to be a function.');
7013
7074
  destroyHooksFn();
7014
7075
  }
7015
- lView[ON_DESTROY_HOOKS] = null;
7016
7076
  }
7017
7077
  }
7018
7078
  /** Calls onDestroy hooks for this view */
@@ -7427,6 +7487,11 @@ function applyProjectionRecursive(renderer, action, lView, tProjectionNode, pare
7427
7487
  else {
7428
7488
  let nodeToProject = nodeToProjectOrRNodes;
7429
7489
  const projectedComponentLView = componentLView[PARENT];
7490
+ // If a parent <ng-content> is located within a skip hydration block,
7491
+ // annotate an actual node that is being projected with the same flag too.
7492
+ if (hasInSkipHydrationBlockFlag(tProjectionNode)) {
7493
+ nodeToProject.flags |= 128 /* TNodeFlags.inSkipHydrationBlock */;
7494
+ }
7430
7495
  applyNodes(renderer, action, nodeToProject, projectedComponentLView, parentRElement, beforeNode, true);
7431
7496
  }
7432
7497
  }
@@ -7727,7 +7792,7 @@ function ɵɵvalidateIframeAttribute(attrValue, tagName, attrName) {
7727
7792
  * When running ivy outside of a browser environment, it is necessary to call `setDocument()` to
7728
7793
  * tell ivy what the global `document` is.
7729
7794
  *
7730
- * Angular does this for us in each of the standard platforms (`Browser`, `Server`, and `WebWorker`)
7795
+ * Angular does this for us in each of the standard platforms (`Browser` and `Server`)
7731
7796
  * by calling `setDocument()` when providing the `DOCUMENT` token.
7732
7797
  */
7733
7798
  let DOCUMENT = undefined;
@@ -7754,12 +7819,13 @@ function getDocument() {
7754
7819
  else if (typeof document !== 'undefined') {
7755
7820
  return document;
7756
7821
  }
7822
+ throw new RuntimeError(210 /* RuntimeErrorCode.MISSING_DOCUMENT */, (typeof ngDevMode === 'undefined' || ngDevMode) &&
7823
+ `The document object is not available in this context. Make sure the DOCUMENT injection token is provided.`);
7757
7824
  // No "document" can be found. This should only happen if we are running ivy outside Angular and
7758
7825
  // the current platform is not a browser. Since this is not a supported scenario at the moment
7759
7826
  // this should not happen in Angular apps.
7760
7827
  // Once we support running ivy outside of Angular we will need to publish `setDocument()` as a
7761
- // public API. Meanwhile we just return `undefined` and let the application fail.
7762
- return undefined;
7828
+ // public API.
7763
7829
  }
7764
7830
 
7765
7831
  /**
@@ -9003,7 +9069,11 @@ class R3Injector extends EnvironmentInjector {
9003
9069
  for (const service of this._ngOnDestroyHooks) {
9004
9070
  service.ngOnDestroy();
9005
9071
  }
9006
- for (const hook of this._onDestroyHooks) {
9072
+ const onDestroyHooks = this._onDestroyHooks;
9073
+ // Reset the _onDestroyHooks array before iterating over it to prevent hooks that unregister
9074
+ // themselves from mutating the array during iteration.
9075
+ this._onDestroyHooks = [];
9076
+ for (const hook of onDestroyHooks) {
9007
9077
  hook();
9008
9078
  }
9009
9079
  }
@@ -9012,7 +9082,6 @@ class R3Injector extends EnvironmentInjector {
9012
9082
  this.records.clear();
9013
9083
  this._ngOnDestroyHooks.clear();
9014
9084
  this.injectorDefTypes.clear();
9015
- this._onDestroyHooks.length = 0;
9016
9085
  }
9017
9086
  }
9018
9087
  onDestroy(callback) {
@@ -9426,26 +9495,6 @@ const ENABLED_SSR_FEATURES = new InjectionToken((typeof ngDevMode === 'undefined
9426
9495
  factory: () => new Set(),
9427
9496
  });
9428
9497
 
9429
- function escapeTransferStateContent(text) {
9430
- const escapedText = {
9431
- '&': '&a;',
9432
- '"': '&q;',
9433
- '\'': '&s;',
9434
- '<': '&l;',
9435
- '>': '&g;',
9436
- };
9437
- return text.replace(/[&"'<>]/g, s => escapedText[s]);
9438
- }
9439
- function unescapeTransferStateContent(text) {
9440
- const unescapedText = {
9441
- '&a;': '&',
9442
- '&q;': '"',
9443
- '&s;': '\'',
9444
- '&l;': '<',
9445
- '&g;': '>',
9446
- };
9447
- return text.replace(/&[^;]+;/g, s => unescapedText[s]);
9448
- }
9449
9498
  /**
9450
9499
  * Create a `StateKey<T>` that can be used to store value of type T with `TransferState`.
9451
9500
  *
@@ -9465,7 +9514,9 @@ function makeStateKey(key) {
9465
9514
  }
9466
9515
  function initTransferState() {
9467
9516
  const transferState = new TransferState();
9468
- transferState.store = retrieveTransferredState(getDocument(), inject(APP_ID));
9517
+ if (inject(PLATFORM_ID) === 'browser') {
9518
+ transferState.store = retrieveTransferredState(getDocument(), inject(APP_ID));
9519
+ }
9469
9520
  return transferState;
9470
9521
  }
9471
9522
  /**
@@ -9547,24 +9598,27 @@ class TransferState {
9547
9598
  }
9548
9599
  }
9549
9600
  }
9550
- return JSON.stringify(this.store);
9601
+ // Escape script tag to avoid break out of <script> tag in serialized output.
9602
+ // Encoding of `<` is the same behaviour as G3 script_builders.
9603
+ return JSON.stringify(this.store).replace(/</g, '\\u003C');
9551
9604
  }
9552
9605
  }
9553
9606
  function retrieveTransferredState(doc, appId) {
9554
9607
  // Locate the script tag with the JSON data transferred from the server.
9555
9608
  // The id of the script tag is set to the Angular appId + 'state'.
9556
9609
  const script = doc.getElementById(appId + '-state');
9557
- let initialState = {};
9558
- if (script && script.textContent) {
9610
+ if (script?.textContent) {
9559
9611
  try {
9560
9612
  // Avoid using any here as it triggers lint errors in google3 (any is not allowed).
9561
- initialState = JSON.parse(unescapeTransferStateContent(script.textContent));
9613
+ // Decoding of `<` is done of the box by browsers and node.js, same behaviour as G3
9614
+ // script_builders.
9615
+ return JSON.parse(script.textContent);
9562
9616
  }
9563
9617
  catch (e) {
9564
9618
  console.warn('Exception while restoring TransferState for app ' + appId, e);
9565
9619
  }
9566
9620
  }
9567
- return initialState;
9621
+ return {};
9568
9622
  }
9569
9623
 
9570
9624
  /** Encodes that the node lookup should start from the host node of this component. */
@@ -9683,6 +9737,12 @@ function getComponentLViewForHydration(viewRef) {
9683
9737
  if (isRootView(lView)) {
9684
9738
  lView = lView[HEADER_OFFSET];
9685
9739
  }
9740
+ // If a `ViewContainerRef` was injected in a component class, this resulted
9741
+ // in an LContainer creation at that location. In this case, the component
9742
+ // LView is in the LContainer's `HOST` slot.
9743
+ if (isLContainer(lView)) {
9744
+ lView = lView[HOST];
9745
+ }
9686
9746
  return lView;
9687
9747
  }
9688
9748
  function getTextNodeContent(node) {
@@ -9978,7 +10038,7 @@ class Version {
9978
10038
  /**
9979
10039
  * @publicApi
9980
10040
  */
9981
- const VERSION = new Version('16.0.0');
10041
+ const VERSION = new Version('16.0.2');
9982
10042
 
9983
10043
  // This default value is when checking the hierarchy for a token.
9984
10044
  //
@@ -10084,48 +10144,6 @@ class ErrorHandler {
10084
10144
  }
10085
10145
  }
10086
10146
 
10087
- /**
10088
- * The name of an attribute that can be added to the hydration boundary node
10089
- * (component host node) to disable hydration for the content within that boundary.
10090
- */
10091
- const SKIP_HYDRATION_ATTR_NAME = 'ngSkipHydration';
10092
- /**
10093
- * Helper function to check if a given node has the 'ngSkipHydration' attribute
10094
- */
10095
- function hasNgSkipHydrationAttr(tNode) {
10096
- const SKIP_HYDRATION_ATTR_NAME_LOWER_CASE = SKIP_HYDRATION_ATTR_NAME.toLowerCase();
10097
- const attrs = tNode.mergedAttrs;
10098
- if (attrs === null)
10099
- return false;
10100
- // only ever look at the attribute name and skip the values
10101
- for (let i = 0; i < attrs.length; i += 2) {
10102
- const value = attrs[i];
10103
- // This is a marker, which means that the static attributes section is over,
10104
- // so we can exit early.
10105
- if (typeof value === 'number')
10106
- return false;
10107
- if (typeof value === 'string' && value.toLowerCase() === SKIP_HYDRATION_ATTR_NAME_LOWER_CASE) {
10108
- return true;
10109
- }
10110
- }
10111
- return false;
10112
- }
10113
- /**
10114
- * Helper function that determines if a given node is within a skip hydration block
10115
- * by navigating up the TNode tree to see if any parent nodes have skip hydration
10116
- * attribute.
10117
- */
10118
- function isInSkipHydrationBlock(tNode) {
10119
- let currentTNode = tNode.parent;
10120
- while (currentTNode) {
10121
- if (hasNgSkipHydrationAttr(currentTNode)) {
10122
- return true;
10123
- }
10124
- currentTNode = currentTNode.parent;
10125
- }
10126
- return false;
10127
- }
10128
-
10129
10147
  /**
10130
10148
  * Internal token that specifies whether DOM reuse logic
10131
10149
  * during hydration is enabled.
@@ -10235,9 +10253,11 @@ function throwMultipleComponentError(tNode, first, second) {
10235
10253
  `${stringifyForError(second)}`);
10236
10254
  }
10237
10255
  /** Throws an ExpressionChangedAfterChecked error if checkNoChanges mode is on. */
10238
- function throwErrorIfNoChangesMode(creationMode, oldValue, currValue, propName) {
10256
+ function throwErrorIfNoChangesMode(creationMode, oldValue, currValue, propName, lView) {
10257
+ const hostComponentDef = getDeclarationComponentDef(lView);
10258
+ const componentClassName = hostComponentDef?.type?.name;
10239
10259
  const field = propName ? ` for '${propName}'` : '';
10240
- let msg = `ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value${field}: '${oldValue}'. Current value: '${currValue}'.`;
10260
+ let msg = `ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value${field}: '${oldValue}'. Current value: '${currValue}'.${componentClassName ? ` Expression location: ${componentClassName} component` : ''}`;
10241
10261
  if (creationMode) {
10242
10262
  msg +=
10243
10263
  ` It seems like the view has been created after its parent and its children have been dirty checked.` +
@@ -10563,6 +10583,7 @@ function getInjectableMetadata(type, srcMeta) {
10563
10583
  /**
10564
10584
  * Injectable decorator and metadata.
10565
10585
  *
10586
+ * @Annotation
10566
10587
  * @publicApi
10567
10588
  */
10568
10589
  const Injectable = makeDecorator('Injectable', undefined, undefined, undefined, (type, meta) => compileInjectable(type, meta));
@@ -11119,6 +11140,10 @@ function createTNode(tView, tParent, type, index, value, attrs) {
11119
11140
  ngDevMode && ngDevMode.tNode++;
11120
11141
  ngDevMode && tParent && assertTNodeForTView(tParent, tView);
11121
11142
  let injectorIndex = tParent ? tParent.injectorIndex : -1;
11143
+ let flags = 0;
11144
+ if (isInSkipHydrationBlock$1()) {
11145
+ flags |= 128 /* TNodeFlags.inSkipHydrationBlock */;
11146
+ }
11122
11147
  const tNode = {
11123
11148
  type,
11124
11149
  index,
@@ -11129,7 +11154,7 @@ function createTNode(tView, tParent, type, index, value, attrs) {
11129
11154
  directiveStylingLast: -1,
11130
11155
  componentOffset: -1,
11131
11156
  propertyBindings: null,
11132
- flags: 0,
11157
+ flags,
11133
11158
  providerIndexes: 0,
11134
11159
  value: value,
11135
11160
  attrs: attrs,
@@ -13683,7 +13708,7 @@ function bindingUpdated(lView, bindingIndex, value) {
13683
13708
  const oldValueToCompare = oldValue !== NO_CHANGE ? oldValue : undefined;
13684
13709
  if (!devModeEqual(oldValueToCompare, value)) {
13685
13710
  const details = getExpressionChangedErrorDetails(lView, bindingIndex, oldValueToCompare, value);
13686
- throwErrorIfNoChangesMode(oldValue === NO_CHANGE, details.oldValue, details.newValue, details.propName);
13711
+ throwErrorIfNoChangesMode(oldValue === NO_CHANGE, details.oldValue, details.newValue, details.propName, lView);
13687
13712
  }
13688
13713
  // There was a change, but the `devModeEqual` decided that the change is exempt from an error.
13689
13714
  // For this reason we exit as if no change. The early exit is needed to prevent the changed
@@ -15668,8 +15693,6 @@ function wrapListener(tNode, lView, context, listenerFn, wrapWithPreventDefault)
15668
15693
  }
15669
15694
  if (wrapWithPreventDefault && result === false) {
15670
15695
  e.preventDefault();
15671
- // Necessary for legacy browsers that don't support preventDefault (e.g. IE)
15672
- e.returnValue = false;
15673
15696
  }
15674
15697
  return result;
15675
15698
  };
@@ -19202,7 +19225,7 @@ function getLocaleCurrencyCode(locale) {
19202
19225
  * @param locale A locale code for the locale format rules to use.
19203
19226
  * @returns The plural function for the locale.
19204
19227
  * @see `NgPlural`
19205
- * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)
19228
+ * @see [Internationalization (i18n) Guide](/guide/i18n-overview)
19206
19229
  */
19207
19230
  function getLocalePluralCase(locale) {
19208
19231
  const data = findLocaleData(locale);
@@ -23117,7 +23140,11 @@ const R3ViewContainerRef = class ViewContainerRef extends VE_ViewContainerRef {
23117
23140
  }
23118
23141
  const hydrationInfo = findMatchingDehydratedView(this._lContainer, templateRef.ssrId);
23119
23142
  const viewRef = templateRef.createEmbeddedViewImpl(context || {}, injector, hydrationInfo);
23120
- this.insertImpl(viewRef, index, !!hydrationInfo);
23143
+ // If there is a matching dehydrated view, but the host TNode is located in the skip
23144
+ // hydration block, this means that the content was detached (as a part of the skip
23145
+ // hydration logic) and it needs to be appended into the DOM.
23146
+ const skipDomInsertion = !!hydrationInfo && !hasInSkipHydrationBlockFlag(this._hostTNode);
23147
+ this.insertImpl(viewRef, index, skipDomInsertion);
23121
23148
  return viewRef;
23122
23149
  }
23123
23150
  createComponent(componentFactoryOrType, indexOrOptions, injector, projectableNodes, environmentInjector) {
@@ -23191,7 +23218,11 @@ const R3ViewContainerRef = class ViewContainerRef extends VE_ViewContainerRef {
23191
23218
  const dehydratedView = findMatchingDehydratedView(this._lContainer, componentDef?.id ?? null);
23192
23219
  const rNode = dehydratedView?.firstChild ?? null;
23193
23220
  const componentRef = componentFactory.create(contextInjector, projectableNodes, rNode, environmentInjector);
23194
- this.insertImpl(componentRef.hostView, index, !!dehydratedView);
23221
+ // If there is a matching dehydrated view, but the host TNode is located in the skip
23222
+ // hydration block, this means that the content was detached (as a part of the skip
23223
+ // hydration logic) and it needs to be appended into the DOM.
23224
+ const skipDomInsertion = !!dehydratedView && !hasInSkipHydrationBlockFlag(this._hostTNode);
23225
+ this.insertImpl(componentRef.hostView, index, skipDomInsertion);
23195
23226
  return componentRef;
23196
23227
  }
23197
23228
  insert(viewRef, index) {
@@ -23365,8 +23396,10 @@ function locateOrCreateAnchorNode(lContainer, hostLView, hostTNode, slotValue) {
23365
23396
  return;
23366
23397
  const hydrationInfo = hostLView[HYDRATION];
23367
23398
  const noOffsetIndex = hostTNode.index - HEADER_OFFSET;
23368
- const isNodeCreationMode = !hydrationInfo || isInSkipHydrationBlock(hostTNode) ||
23369
- isDisconnectedNode$1(hydrationInfo, noOffsetIndex);
23399
+ // TODO(akushnir): this should really be a single condition, refactor the code
23400
+ // to use `hasInSkipHydrationBlockFlag` logic inside `isInSkipHydrationBlock`.
23401
+ const skipHydration = isInSkipHydrationBlock(hostTNode) || hasInSkipHydrationBlockFlag(hostTNode);
23402
+ const isNodeCreationMode = !hydrationInfo || skipHydration || isDisconnectedNode$1(hydrationInfo, noOffsetIndex);
23370
23403
  // Regular creation mode.
23371
23404
  if (isNodeCreationMode) {
23372
23405
  return createAnchorNode(lContainer, hostLView, hostTNode, slotValue);
@@ -25062,17 +25095,17 @@ const Directive = makeDecorator('Directive', (dir = {}) => dir, undefined, undef
25062
25095
  /**
25063
25096
  * Component decorator and metadata.
25064
25097
  *
25065
-
25098
+ * @Annotation
25066
25099
  * @publicApi
25067
25100
  */
25068
25101
  const Component = makeDecorator('Component', (c = {}) => ({ changeDetection: ChangeDetectionStrategy.Default, ...c }), Directive, undefined, (type, meta) => compileComponent(type, meta));
25069
25102
  /**
25070
-
25103
+ * @Annotation
25071
25104
  * @publicApi
25072
25105
  */
25073
25106
  const Pipe = makeDecorator('Pipe', (p) => ({ pure: true, ...p }), undefined, undefined, (type, meta) => compilePipe(type, meta));
25074
25107
  /**
25075
-
25108
+ * @Annotation
25076
25109
  * @publicApi
25077
25110
  */
25078
25111
  const Input = makePropDecorator('Input', (arg) => {
@@ -25082,12 +25115,12 @@ const Input = makePropDecorator('Input', (arg) => {
25082
25115
  return typeof arg === 'string' ? { alias: arg } : arg;
25083
25116
  });
25084
25117
  /**
25085
-
25118
+ * @Annotation
25086
25119
  * @publicApi
25087
25120
  */
25088
25121
  const Output = makePropDecorator('Output', (alias) => ({ alias }));
25089
25122
  /**
25090
-
25123
+ * @Annotation
25091
25124
  * @publicApi
25092
25125
  */
25093
25126
  const HostBinding = makePropDecorator('HostBinding', (hostPropertyName) => ({ hostPropertyName }));
@@ -25153,12 +25186,13 @@ const HostBinding = makePropDecorator('HostBinding', (hostPropertyName) => ({ ho
25153
25186
  * The global target names that can be used to prefix an event name are
25154
25187
  * `document:`, `window:` and `body:`.
25155
25188
  *
25156
-
25189
+ * @Annotation
25157
25190
  * @publicApi
25158
25191
  */
25159
25192
  const HostListener = makePropDecorator('HostListener', (eventName, args) => ({ eventName, args }));
25160
25193
 
25161
25194
  /**
25195
+ * @Annotation
25162
25196
  */
25163
25197
  const NgModule = makeDecorator('NgModule', (ngModule) => ngModule, undefined, undefined,
25164
25198
  /**
@@ -26645,64 +26679,69 @@ function runPlatformInitializers(injector) {
26645
26679
  * @returns A promise that returns an `ApplicationRef` instance once resolved.
26646
26680
  */
26647
26681
  function internalCreateApplication(config) {
26648
- const { rootComponent, appProviders, platformProviders } = config;
26649
- if ((typeof ngDevMode === 'undefined' || ngDevMode) && rootComponent !== undefined) {
26650
- assertStandaloneComponentType(rootComponent);
26651
- }
26652
- const platformInjector = createOrReusePlatformInjector(platformProviders);
26653
- // Create root application injector based on a set of providers configured at the platform
26654
- // bootstrap level as well as providers passed to the bootstrap call by a user.
26655
- const allAppProviders = [
26656
- provideZoneChangeDetection(),
26657
- ...(appProviders || []),
26658
- ];
26659
- const adapter = new EnvironmentNgModuleRefAdapter({
26660
- providers: allAppProviders,
26661
- parent: platformInjector,
26662
- debugName: (typeof ngDevMode === 'undefined' || ngDevMode) ? 'Environment Injector' : '',
26663
- // We skip environment initializers because we need to run them inside the NgZone, which happens
26664
- // after we get the NgZone instance from the Injector.
26665
- runEnvironmentInitializers: false,
26666
- });
26667
- const envInjector = adapter.injector;
26668
- const ngZone = envInjector.get(NgZone);
26669
- return ngZone.run(() => {
26670
- envInjector.resolveInjectorInitializers();
26671
- const exceptionHandler = envInjector.get(ErrorHandler, null);
26672
- if ((typeof ngDevMode === 'undefined' || ngDevMode) && !exceptionHandler) {
26673
- throw new RuntimeError(402 /* RuntimeErrorCode.MISSING_REQUIRED_INJECTABLE_IN_BOOTSTRAP */, 'No `ErrorHandler` found in the Dependency Injection tree.');
26674
- }
26675
- let onErrorSubscription;
26676
- ngZone.runOutsideAngular(() => {
26677
- onErrorSubscription = ngZone.onError.subscribe({
26678
- next: (error) => {
26679
- exceptionHandler.handleError(error);
26680
- }
26681
- });
26682
- });
26683
- // If the whole platform is destroyed, invoke the `destroy` method
26684
- // for all bootstrapped applications as well.
26685
- const destroyListener = () => envInjector.destroy();
26686
- const onPlatformDestroyListeners = platformInjector.get(PLATFORM_DESTROY_LISTENERS);
26687
- onPlatformDestroyListeners.add(destroyListener);
26688
- envInjector.onDestroy(() => {
26689
- onErrorSubscription.unsubscribe();
26690
- onPlatformDestroyListeners.delete(destroyListener);
26682
+ try {
26683
+ const { rootComponent, appProviders, platformProviders } = config;
26684
+ if ((typeof ngDevMode === 'undefined' || ngDevMode) && rootComponent !== undefined) {
26685
+ assertStandaloneComponentType(rootComponent);
26686
+ }
26687
+ const platformInjector = createOrReusePlatformInjector(platformProviders);
26688
+ // Create root application injector based on a set of providers configured at the platform
26689
+ // bootstrap level as well as providers passed to the bootstrap call by a user.
26690
+ const allAppProviders = [
26691
+ provideZoneChangeDetection(),
26692
+ ...(appProviders || []),
26693
+ ];
26694
+ const adapter = new EnvironmentNgModuleRefAdapter({
26695
+ providers: allAppProviders,
26696
+ parent: platformInjector,
26697
+ debugName: (typeof ngDevMode === 'undefined' || ngDevMode) ? 'Environment Injector' : '',
26698
+ // We skip environment initializers because we need to run them inside the NgZone, which
26699
+ // happens after we get the NgZone instance from the Injector.
26700
+ runEnvironmentInitializers: false,
26691
26701
  });
26692
- return _callAndReportToErrorHandler(exceptionHandler, ngZone, () => {
26693
- const initStatus = envInjector.get(ApplicationInitStatus);
26694
- initStatus.runInitializers();
26695
- return initStatus.donePromise.then(() => {
26696
- const localeId = envInjector.get(LOCALE_ID, DEFAULT_LOCALE_ID);
26697
- setLocaleId(localeId || DEFAULT_LOCALE_ID);
26698
- const appRef = envInjector.get(ApplicationRef);
26699
- if (rootComponent !== undefined) {
26700
- appRef.bootstrap(rootComponent);
26701
- }
26702
- return appRef;
26702
+ const envInjector = adapter.injector;
26703
+ const ngZone = envInjector.get(NgZone);
26704
+ return ngZone.run(() => {
26705
+ envInjector.resolveInjectorInitializers();
26706
+ const exceptionHandler = envInjector.get(ErrorHandler, null);
26707
+ if ((typeof ngDevMode === 'undefined' || ngDevMode) && !exceptionHandler) {
26708
+ throw new RuntimeError(402 /* RuntimeErrorCode.MISSING_REQUIRED_INJECTABLE_IN_BOOTSTRAP */, 'No `ErrorHandler` found in the Dependency Injection tree.');
26709
+ }
26710
+ let onErrorSubscription;
26711
+ ngZone.runOutsideAngular(() => {
26712
+ onErrorSubscription = ngZone.onError.subscribe({
26713
+ next: (error) => {
26714
+ exceptionHandler.handleError(error);
26715
+ }
26716
+ });
26717
+ });
26718
+ // If the whole platform is destroyed, invoke the `destroy` method
26719
+ // for all bootstrapped applications as well.
26720
+ const destroyListener = () => envInjector.destroy();
26721
+ const onPlatformDestroyListeners = platformInjector.get(PLATFORM_DESTROY_LISTENERS);
26722
+ onPlatformDestroyListeners.add(destroyListener);
26723
+ envInjector.onDestroy(() => {
26724
+ onErrorSubscription.unsubscribe();
26725
+ onPlatformDestroyListeners.delete(destroyListener);
26726
+ });
26727
+ return _callAndReportToErrorHandler(exceptionHandler, ngZone, () => {
26728
+ const initStatus = envInjector.get(ApplicationInitStatus);
26729
+ initStatus.runInitializers();
26730
+ return initStatus.donePromise.then(() => {
26731
+ const localeId = envInjector.get(LOCALE_ID, DEFAULT_LOCALE_ID);
26732
+ setLocaleId(localeId || DEFAULT_LOCALE_ID);
26733
+ const appRef = envInjector.get(ApplicationRef);
26734
+ if (rootComponent !== undefined) {
26735
+ appRef.bootstrap(rootComponent);
26736
+ }
26737
+ return appRef;
26738
+ });
26703
26739
  });
26704
26740
  });
26705
- });
26741
+ }
26742
+ catch (e) {
26743
+ return Promise.reject(e);
26744
+ }
26706
26745
  }
26707
26746
  /**
26708
26747
  * Creates a factory for a platform. Can be used to provide or override `Providers` specific to
@@ -27513,7 +27552,7 @@ function noModuleError(id) {
27513
27552
  *
27514
27553
  * The following example sets the `OnPush` change-detection strategy for a component
27515
27554
  * (`CheckOnce`, rather than the default `CheckAlways`), then forces a second check
27516
- * after an interval. See [live demo](https://plnkr.co/edit/GC512b?p=preview).
27555
+ * after an interval.
27517
27556
  *
27518
27557
  * <code-example path="core/ts/change_detect/change-detection.ts"
27519
27558
  * region="mark-for-check"></code-example>
@@ -29772,6 +29811,11 @@ class InitialRenderPendingTasks {
29772
29811
  * prevents adding it multiple times.
29773
29812
  */
29774
29813
  let isHydrationSupportEnabled = false;
29814
+ /**
29815
+ * Defines a period of time that Angular waits for the `ApplicationRef.isStable` to emit `true`.
29816
+ * If there was no event with the `true` value during this time, Angular reports a warning.
29817
+ */
29818
+ const APPLICATION_IS_STABLE_TIMEOUT = 10000;
29775
29819
  /**
29776
29820
  * Brings the necessary hydration code in tree-shakable manner.
29777
29821
  * The code is only present when the `provideClientHydration` is
@@ -29813,15 +29857,27 @@ function printHydrationStats(injector) {
29813
29857
  `and ${ngDevMode.hydratedNodes} node(s), ` +
29814
29858
  `${ngDevMode.componentsSkippedHydration} component(s) were skipped. ` +
29815
29859
  `Note: this feature is in Developer Preview mode. ` +
29816
- `Learn more at https://next.angular.io/guide/hydration.`;
29860
+ `Learn more at https://angular.io/guide/hydration.`;
29817
29861
  // tslint:disable-next-line:no-console
29818
29862
  console.log(message);
29819
29863
  }
29820
29864
  /**
29821
29865
  * Returns a Promise that is resolved when an application becomes stable.
29822
29866
  */
29823
- function whenStable(appRef, pendingTasks) {
29867
+ function whenStable(appRef, pendingTasks, injector) {
29824
29868
  const isStablePromise = appRef.isStable.pipe(first((isStable) => isStable)).toPromise();
29869
+ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
29870
+ const timeoutTime = APPLICATION_IS_STABLE_TIMEOUT;
29871
+ const console = injector.get(Console);
29872
+ const ngZone = injector.get(NgZone);
29873
+ // The following call should not and does not prevent the app to become stable
29874
+ // We cannot use RxJS timer here because the app would remain unstable.
29875
+ // This also avoids an extra change detection cycle.
29876
+ const timeoutId = ngZone.runOutsideAngular(() => {
29877
+ return setTimeout(() => logWarningOnStableTimedout(timeoutTime, console), timeoutTime);
29878
+ });
29879
+ isStablePromise.finally(() => clearTimeout(timeoutId));
29880
+ }
29825
29881
  const pendingTasksPromise = pendingTasks.whenAllTasksComplete;
29826
29882
  return Promise.allSettled([isStablePromise, pendingTasksPromise]);
29827
29883
  }
@@ -29895,7 +29951,7 @@ function withDomHydration() {
29895
29951
  const pendingTasks = inject(InitialRenderPendingTasks);
29896
29952
  const injector = inject(Injector);
29897
29953
  return () => {
29898
- whenStable(appRef, pendingTasks).then(() => {
29954
+ whenStable(appRef, pendingTasks, injector).then(() => {
29899
29955
  // Wait until an app becomes stable and cleanup all views that
29900
29956
  // were not claimed during the application bootstrap process.
29901
29957
  // The timing is similar to when we start the serialization process
@@ -29913,6 +29969,16 @@ function withDomHydration() {
29913
29969
  }
29914
29970
  ]);
29915
29971
  }
29972
+ /**
29973
+ *
29974
+ * @param time The time in ms until the stable timedout warning message is logged
29975
+ */
29976
+ function logWarningOnStableTimedout(time, console) {
29977
+ const message = `Angular hydration expected the ApplicationRef.isStable() to emit \`true\`, but it ` +
29978
+ `didn't happen within ${time}ms. Angular hydration logic depends on the application becoming stable ` +
29979
+ `as a signal to complete hydration process.`;
29980
+ console.warn(formatRuntimeError(-506 /* RuntimeErrorCode.HYDRATION_STABLE_TIMEDOUT */, message));
29981
+ }
29916
29982
 
29917
29983
  /** Coerces a value (typically a string) to a boolean. */
29918
29984
  function coerceToBoolean(value) {
@@ -30064,12 +30130,12 @@ function ɵɵngDeclarePipe(decl) {
30064
30130
  * @param component Component class reference.
30065
30131
  * @param options Set of options to use:
30066
30132
  * * `environmentInjector`: An `EnvironmentInjector` instance to be used for the component, see
30067
- * additional info about it at https://angular.io/guide/standalone-components#environment-injectors.
30133
+ * additional info about it [here](/guide/standalone-components#environment-injectors).
30068
30134
  * * `hostElement` (optional): A DOM node that should act as a host node for the component. If not
30069
30135
  * provided, Angular creates one based on the tag name used in the component selector (and falls
30070
30136
  * back to using `div` if selector doesn't have tag name info).
30071
- * * `elementInjector` (optional): An `ElementInjector` instance, see additional info about it at
30072
- * https://angular.io/guide/hierarchical-dependency-injection#elementinjector.
30137
+ * * `elementInjector` (optional): An `ElementInjector` instance, see additional info about it
30138
+ * [here](/guide/hierarchical-dependency-injection#elementinjector).
30073
30139
  * * `projectableNodes` (optional): A list of DOM nodes that should be projected through
30074
30140
  * [`<ng-content>`](api/core/ng-content) of the new component instance.
30075
30141
  * @returns ComponentRef instance that represents a given Component.
@@ -30198,5 +30264,5 @@ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
30198
30264
  * Generated bundle index. Do not edit.
30199
30265
  */
30200
30266
 
30201
- export { ANIMATION_MODULE_TYPE, APP_BOOTSTRAP_LISTENER, APP_ID, APP_INITIALIZER, ApplicationInitStatus, ApplicationModule, ApplicationRef, Attribute, COMPILER_OPTIONS, CSP_NONCE, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Compiler, CompilerFactory, Component, ComponentFactory$1 as ComponentFactory, ComponentFactoryResolver$1 as ComponentFactoryResolver, ComponentRef$1 as ComponentRef, ContentChild, ContentChildren, DEFAULT_CURRENCY_CODE, DebugElement, DebugEventListener, DebugNode, DefaultIterableDiffer, DestroyRef, Directive, ENVIRONMENT_INITIALIZER, ElementRef, EmbeddedViewRef, EnvironmentInjector, ErrorHandler, EventEmitter, Host, HostBinding, HostListener, INJECTOR, Inject, InjectFlags, Injectable, InjectionToken, Injector, Input, IterableDiffers, KeyValueDiffers, LOCALE_ID, MissingTranslationStrategy, ModuleWithComponentFactories, NO_ERRORS_SCHEMA, NgModule, NgModuleFactory$1 as NgModuleFactory, NgModuleRef$1 as NgModuleRef, NgProbeToken, NgZone, Optional, Output, PACKAGE_ROOT_URL, PLATFORM_ID, PLATFORM_INITIALIZER, Pipe, PlatformRef, Query, QueryList, Renderer2, RendererFactory2, RendererStyleFlags2, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, TransferState, Type, VERSION, Version, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation$1 as ViewEncapsulation, ViewRef, asNativeElements, assertInInjectionContext, assertPlatform, computed, createComponent, createEnvironmentInjector, createNgModule, createNgModuleRef, createPlatform, createPlatformFactory, defineInjectable, destroyPlatform, effect, enableProdMode, forwardRef, getDebugNode, getModuleFactory, getNgModuleById, getPlatform, importProvidersFrom, inject, isDevMode, isSignal, isStandalone, makeEnvironmentProviders, makeStateKey, mergeApplicationConfig, platformCore, provideZoneChangeDetection, reflectComponentType, resolveForwardRef, runInInjectionContext, setTestabilityGetter, signal, untracked, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, ComponentFactory$1 as ɵComponentFactory, Console as ɵConsole, DEFAULT_LOCALE_ID as ɵDEFAULT_LOCALE_ID, ENABLED_SSR_FEATURES as ɵENABLED_SSR_FEATURES, INJECTOR_SCOPE as ɵINJECTOR_SCOPE, IS_HYDRATION_DOM_REUSE_ENABLED as ɵIS_HYDRATION_DOM_REUSE_ENABLED, InitialRenderPendingTasks as ɵInitialRenderPendingTasks, LContext as ɵLContext, LifecycleHooksFeature as ɵLifecycleHooksFeature, LocaleDataIndex as ɵLocaleDataIndex, NG_COMP_DEF as ɵNG_COMP_DEF, NG_DIR_DEF as ɵNG_DIR_DEF, NG_ELEMENT_ID as ɵNG_ELEMENT_ID, NG_INJ_DEF as ɵNG_INJ_DEF, NG_MOD_DEF as ɵNG_MOD_DEF, NG_PIPE_DEF as ɵNG_PIPE_DEF, NG_PROV_DEF as ɵNG_PROV_DEF, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR as ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, NO_CHANGE as ɵNO_CHANGE, NgModuleFactory as ɵNgModuleFactory, NoopNgZone as ɵNoopNgZone, ReflectionCapabilities as ɵReflectionCapabilities, ComponentFactory as ɵRender3ComponentFactory, ComponentRef as ɵRender3ComponentRef, NgModuleRef as ɵRender3NgModuleRef, RuntimeError as ɵRuntimeError, TESTABILITY as ɵTESTABILITY, TESTABILITY_GETTER as ɵTESTABILITY_GETTER, ViewRef$1 as ɵViewRef, XSS_SECURITY_URL as ɵXSS_SECURITY_URL, _sanitizeHtml as ɵ_sanitizeHtml, _sanitizeUrl as ɵ_sanitizeUrl, allowSanitizationBypassAndThrow as ɵallowSanitizationBypassAndThrow, annotateForHydration as ɵannotateForHydration, bypassSanitizationTrustHtml as ɵbypassSanitizationTrustHtml, bypassSanitizationTrustResourceUrl as ɵbypassSanitizationTrustResourceUrl, bypassSanitizationTrustScript as ɵbypassSanitizationTrustScript, bypassSanitizationTrustStyle as ɵbypassSanitizationTrustStyle, bypassSanitizationTrustUrl as ɵbypassSanitizationTrustUrl, clearResolutionOfComponentResourcesQueue as ɵclearResolutionOfComponentResourcesQueue, coerceToBoolean as ɵcoerceToBoolean, compileComponent as ɵcompileComponent, compileDirective as ɵcompileDirective, compileNgModule as ɵcompileNgModule, compileNgModuleDefs as ɵcompileNgModuleDefs, compileNgModuleFactory as ɵcompileNgModuleFactory, compilePipe as ɵcompilePipe, convertToBitFlags as ɵconvertToBitFlags, createInjector as ɵcreateInjector, defaultIterableDiffers as ɵdefaultIterableDiffers, defaultKeyValueDiffers as ɵdefaultKeyValueDiffers, detectChanges as ɵdetectChanges, devModeEqual as ɵdevModeEqual, escapeTransferStateContent as ɵescapeTransferStateContent, findLocaleData as ɵfindLocaleData, flushModuleScopingQueueAsMuchAsPossible as ɵflushModuleScopingQueueAsMuchAsPossible, formatRuntimeError as ɵformatRuntimeError, getDebugNode as ɵgetDebugNode, getDirectives as ɵgetDirectives, getHostElement as ɵgetHostElement, getInjectableDef as ɵgetInjectableDef, getLContext as ɵgetLContext, getLocaleCurrencyCode as ɵgetLocaleCurrencyCode, getLocalePluralCase as ɵgetLocalePluralCase, getSanitizationBypassType as ɵgetSanitizationBypassType, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, _global as ɵglobal, injectChangeDetectorRef as ɵinjectChangeDetectorRef, internalCreateApplication as ɵinternalCreateApplication, isBoundToModule as ɵisBoundToModule, isEnvironmentProviders as ɵisEnvironmentProviders, isInjectable as ɵisInjectable, isNgModule as ɵisNgModule, isPromise as ɵisPromise, isSubscribable as ɵisSubscribable, noSideEffects as ɵnoSideEffects, patchComponentDefWithScope as ɵpatchComponentDefWithScope, publishDefaultGlobalUtils$1 as ɵpublishDefaultGlobalUtils, publishGlobalUtil as ɵpublishGlobalUtil, registerLocaleData as ɵregisterLocaleData, resetCompiledComponents as ɵresetCompiledComponents, resetJitOptions as ɵresetJitOptions, resolveComponentResources as ɵresolveComponentResources, setAllowDuplicateNgModuleIdsForTest as ɵsetAllowDuplicateNgModuleIdsForTest, setAlternateWeakRefImpl as ɵsetAlternateWeakRefImpl, setClassMetadata as ɵsetClassMetadata, setCurrentInjector as ɵsetCurrentInjector, setDocument as ɵsetDocument, setLocaleId as ɵsetLocaleId, ɵsetUnknownElementStrictMode, ɵsetUnknownPropertyStrictMode, store as ɵstore, stringify as ɵstringify, transitiveScopesFor as ɵtransitiveScopesFor, unescapeTransferStateContent as ɵunescapeTransferStateContent, unregisterAllLocaleData as ɵunregisterLocaleData, unwrapSafeValue as ɵunwrapSafeValue, withDomHydration as ɵwithDomHydration, ɵɵCopyDefinitionFeature, FactoryTarget as ɵɵFactoryTarget, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵStandaloneFeature, ɵɵadvance, ɵɵattribute, ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV, ɵɵclassMap, ɵɵclassMapInterpolate1, ɵɵclassMapInterpolate2, ɵɵclassMapInterpolate3, ɵɵclassMapInterpolate4, ɵɵclassMapInterpolate5, ɵɵclassMapInterpolate6, ɵɵclassMapInterpolate7, ɵɵclassMapInterpolate8, ɵɵclassMapInterpolateV, ɵɵclassProp, ɵɵcontentQuery, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineInjectable, ɵɵdefineInjector, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdisableBindings, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵenableBindings, ɵɵgetCurrentView, ɵɵgetInheritedFactory, ɵɵhostProperty, ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart, ɵɵinject, ɵɵinjectAttribute, ɵɵinvalidFactory, ɵɵinvalidFactoryDep, ɵɵlistener, ɵɵloadQuery, ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG, ɵɵnextContext, ɵɵngDeclareClassMetadata, ɵɵngDeclareComponent, ɵɵngDeclareDirective, ɵɵngDeclareFactory, ɵɵngDeclareInjectable, ɵɵngDeclareInjector, ɵɵngDeclareNgModule, ɵɵngDeclarePipe, ɵɵpipe, ɵɵpipeBind1, ɵɵpipeBind2, ɵɵpipeBind3, ɵɵpipeBind4, ɵɵpipeBindV, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵpropertyInterpolate, ɵɵpropertyInterpolate1, ɵɵpropertyInterpolate2, ɵɵpropertyInterpolate3, ɵɵpropertyInterpolate4, ɵɵpropertyInterpolate5, ɵɵpropertyInterpolate6, ɵɵpropertyInterpolate7, ɵɵpropertyInterpolate8, ɵɵpropertyInterpolateV, ɵɵpureFunction0, ɵɵpureFunction1, ɵɵpureFunction2, ɵɵpureFunction3, ɵɵpureFunction4, ɵɵpureFunction5, ɵɵpureFunction6, ɵɵpureFunction7, ɵɵpureFunction8, ɵɵpureFunctionV, ɵɵqueryRefresh, ɵɵreference, registerNgModuleType as ɵɵregisterNgModuleType, ɵɵresetView, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵrestoreView, ɵɵsanitizeHtml, ɵɵsanitizeResourceUrl, ɵɵsanitizeScript, ɵɵsanitizeStyle, ɵɵsanitizeUrl, ɵɵsanitizeUrlOrResourceUrl, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵstyleMap, ɵɵstyleMapInterpolate1, ɵɵstyleMapInterpolate2, ɵɵstyleMapInterpolate3, ɵɵstyleMapInterpolate4, ɵɵstyleMapInterpolate5, ɵɵstyleMapInterpolate6, ɵɵstyleMapInterpolate7, ɵɵstyleMapInterpolate8, ɵɵstyleMapInterpolateV, ɵɵstyleProp, ɵɵstylePropInterpolate1, ɵɵstylePropInterpolate2, ɵɵstylePropInterpolate3, ɵɵstylePropInterpolate4, ɵɵstylePropInterpolate5, ɵɵstylePropInterpolate6, ɵɵstylePropInterpolate7, ɵɵstylePropInterpolate8, ɵɵstylePropInterpolateV, ɵɵsyntheticHostListener, ɵɵsyntheticHostProperty, ɵɵtemplate, ɵɵtemplateRefExtractor, ɵɵtext, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, ɵɵtrustConstantHtml, ɵɵtrustConstantResourceUrl, ɵɵvalidateIframeAttribute, ɵɵviewQuery };
30267
+ export { ANIMATION_MODULE_TYPE, APP_BOOTSTRAP_LISTENER, APP_ID, APP_INITIALIZER, ApplicationInitStatus, ApplicationModule, ApplicationRef, Attribute, COMPILER_OPTIONS, CSP_NONCE, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Compiler, CompilerFactory, Component, ComponentFactory$1 as ComponentFactory, ComponentFactoryResolver$1 as ComponentFactoryResolver, ComponentRef$1 as ComponentRef, ContentChild, ContentChildren, DEFAULT_CURRENCY_CODE, DebugElement, DebugEventListener, DebugNode, DefaultIterableDiffer, DestroyRef, Directive, ENVIRONMENT_INITIALIZER, ElementRef, EmbeddedViewRef, EnvironmentInjector, ErrorHandler, EventEmitter, Host, HostBinding, HostListener, INJECTOR, Inject, InjectFlags, Injectable, InjectionToken, Injector, Input, IterableDiffers, KeyValueDiffers, LOCALE_ID, MissingTranslationStrategy, ModuleWithComponentFactories, NO_ERRORS_SCHEMA, NgModule, NgModuleFactory$1 as NgModuleFactory, NgModuleRef$1 as NgModuleRef, NgProbeToken, NgZone, Optional, Output, PACKAGE_ROOT_URL, PLATFORM_ID, PLATFORM_INITIALIZER, Pipe, PlatformRef, Query, QueryList, Renderer2, RendererFactory2, RendererStyleFlags2, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, TransferState, Type, VERSION, Version, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation$1 as ViewEncapsulation, ViewRef, asNativeElements, assertInInjectionContext, assertPlatform, computed, createComponent, createEnvironmentInjector, createNgModule, createNgModuleRef, createPlatform, createPlatformFactory, defineInjectable, destroyPlatform, effect, enableProdMode, forwardRef, getDebugNode, getModuleFactory, getNgModuleById, getPlatform, importProvidersFrom, inject, isDevMode, isSignal, isStandalone, makeEnvironmentProviders, makeStateKey, mergeApplicationConfig, platformCore, provideZoneChangeDetection, reflectComponentType, resolveForwardRef, runInInjectionContext, setTestabilityGetter, signal, untracked, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, ComponentFactory$1 as ɵComponentFactory, Console as ɵConsole, DEFAULT_LOCALE_ID as ɵDEFAULT_LOCALE_ID, ENABLED_SSR_FEATURES as ɵENABLED_SSR_FEATURES, INJECTOR_SCOPE as ɵINJECTOR_SCOPE, IS_HYDRATION_DOM_REUSE_ENABLED as ɵIS_HYDRATION_DOM_REUSE_ENABLED, InitialRenderPendingTasks as ɵInitialRenderPendingTasks, LContext as ɵLContext, LifecycleHooksFeature as ɵLifecycleHooksFeature, LocaleDataIndex as ɵLocaleDataIndex, NG_COMP_DEF as ɵNG_COMP_DEF, NG_DIR_DEF as ɵNG_DIR_DEF, NG_ELEMENT_ID as ɵNG_ELEMENT_ID, NG_INJ_DEF as ɵNG_INJ_DEF, NG_MOD_DEF as ɵNG_MOD_DEF, NG_PIPE_DEF as ɵNG_PIPE_DEF, NG_PROV_DEF as ɵNG_PROV_DEF, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR as ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, NO_CHANGE as ɵNO_CHANGE, NgModuleFactory as ɵNgModuleFactory, NoopNgZone as ɵNoopNgZone, ReflectionCapabilities as ɵReflectionCapabilities, ComponentFactory as ɵRender3ComponentFactory, ComponentRef as ɵRender3ComponentRef, NgModuleRef as ɵRender3NgModuleRef, RuntimeError as ɵRuntimeError, TESTABILITY as ɵTESTABILITY, TESTABILITY_GETTER as ɵTESTABILITY_GETTER, ViewRef$1 as ɵViewRef, XSS_SECURITY_URL as ɵXSS_SECURITY_URL, _sanitizeHtml as ɵ_sanitizeHtml, _sanitizeUrl as ɵ_sanitizeUrl, allowSanitizationBypassAndThrow as ɵallowSanitizationBypassAndThrow, annotateForHydration as ɵannotateForHydration, bypassSanitizationTrustHtml as ɵbypassSanitizationTrustHtml, bypassSanitizationTrustResourceUrl as ɵbypassSanitizationTrustResourceUrl, bypassSanitizationTrustScript as ɵbypassSanitizationTrustScript, bypassSanitizationTrustStyle as ɵbypassSanitizationTrustStyle, bypassSanitizationTrustUrl as ɵbypassSanitizationTrustUrl, clearResolutionOfComponentResourcesQueue as ɵclearResolutionOfComponentResourcesQueue, coerceToBoolean as ɵcoerceToBoolean, compileComponent as ɵcompileComponent, compileDirective as ɵcompileDirective, compileNgModule as ɵcompileNgModule, compileNgModuleDefs as ɵcompileNgModuleDefs, compileNgModuleFactory as ɵcompileNgModuleFactory, compilePipe as ɵcompilePipe, convertToBitFlags as ɵconvertToBitFlags, createInjector as ɵcreateInjector, defaultIterableDiffers as ɵdefaultIterableDiffers, defaultKeyValueDiffers as ɵdefaultKeyValueDiffers, detectChanges as ɵdetectChanges, devModeEqual as ɵdevModeEqual, findLocaleData as ɵfindLocaleData, flushModuleScopingQueueAsMuchAsPossible as ɵflushModuleScopingQueueAsMuchAsPossible, formatRuntimeError as ɵformatRuntimeError, getDebugNode as ɵgetDebugNode, getDirectives as ɵgetDirectives, getHostElement as ɵgetHostElement, getInjectableDef as ɵgetInjectableDef, getLContext as ɵgetLContext, getLocaleCurrencyCode as ɵgetLocaleCurrencyCode, getLocalePluralCase as ɵgetLocalePluralCase, getSanitizationBypassType as ɵgetSanitizationBypassType, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, _global as ɵglobal, injectChangeDetectorRef as ɵinjectChangeDetectorRef, internalCreateApplication as ɵinternalCreateApplication, isBoundToModule as ɵisBoundToModule, isEnvironmentProviders as ɵisEnvironmentProviders, isInjectable as ɵisInjectable, isNgModule as ɵisNgModule, isPromise as ɵisPromise, isSubscribable as ɵisSubscribable, noSideEffects as ɵnoSideEffects, patchComponentDefWithScope as ɵpatchComponentDefWithScope, publishDefaultGlobalUtils$1 as ɵpublishDefaultGlobalUtils, publishGlobalUtil as ɵpublishGlobalUtil, registerLocaleData as ɵregisterLocaleData, resetCompiledComponents as ɵresetCompiledComponents, resetJitOptions as ɵresetJitOptions, resolveComponentResources as ɵresolveComponentResources, setAllowDuplicateNgModuleIdsForTest as ɵsetAllowDuplicateNgModuleIdsForTest, setAlternateWeakRefImpl as ɵsetAlternateWeakRefImpl, setClassMetadata as ɵsetClassMetadata, setCurrentInjector as ɵsetCurrentInjector, setDocument as ɵsetDocument, setLocaleId as ɵsetLocaleId, ɵsetUnknownElementStrictMode, ɵsetUnknownPropertyStrictMode, store as ɵstore, stringify as ɵstringify, transitiveScopesFor as ɵtransitiveScopesFor, unregisterAllLocaleData as ɵunregisterLocaleData, unwrapSafeValue as ɵunwrapSafeValue, withDomHydration as ɵwithDomHydration, ɵɵCopyDefinitionFeature, FactoryTarget as ɵɵFactoryTarget, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵStandaloneFeature, ɵɵadvance, ɵɵattribute, ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV, ɵɵclassMap, ɵɵclassMapInterpolate1, ɵɵclassMapInterpolate2, ɵɵclassMapInterpolate3, ɵɵclassMapInterpolate4, ɵɵclassMapInterpolate5, ɵɵclassMapInterpolate6, ɵɵclassMapInterpolate7, ɵɵclassMapInterpolate8, ɵɵclassMapInterpolateV, ɵɵclassProp, ɵɵcontentQuery, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineInjectable, ɵɵdefineInjector, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdisableBindings, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵenableBindings, ɵɵgetCurrentView, ɵɵgetInheritedFactory, ɵɵhostProperty, ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart, ɵɵinject, ɵɵinjectAttribute, ɵɵinvalidFactory, ɵɵinvalidFactoryDep, ɵɵlistener, ɵɵloadQuery, ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG, ɵɵnextContext, ɵɵngDeclareClassMetadata, ɵɵngDeclareComponent, ɵɵngDeclareDirective, ɵɵngDeclareFactory, ɵɵngDeclareInjectable, ɵɵngDeclareInjector, ɵɵngDeclareNgModule, ɵɵngDeclarePipe, ɵɵpipe, ɵɵpipeBind1, ɵɵpipeBind2, ɵɵpipeBind3, ɵɵpipeBind4, ɵɵpipeBindV, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵpropertyInterpolate, ɵɵpropertyInterpolate1, ɵɵpropertyInterpolate2, ɵɵpropertyInterpolate3, ɵɵpropertyInterpolate4, ɵɵpropertyInterpolate5, ɵɵpropertyInterpolate6, ɵɵpropertyInterpolate7, ɵɵpropertyInterpolate8, ɵɵpropertyInterpolateV, ɵɵpureFunction0, ɵɵpureFunction1, ɵɵpureFunction2, ɵɵpureFunction3, ɵɵpureFunction4, ɵɵpureFunction5, ɵɵpureFunction6, ɵɵpureFunction7, ɵɵpureFunction8, ɵɵpureFunctionV, ɵɵqueryRefresh, ɵɵreference, registerNgModuleType as ɵɵregisterNgModuleType, ɵɵresetView, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵrestoreView, ɵɵsanitizeHtml, ɵɵsanitizeResourceUrl, ɵɵsanitizeScript, ɵɵsanitizeStyle, ɵɵsanitizeUrl, ɵɵsanitizeUrlOrResourceUrl, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵstyleMap, ɵɵstyleMapInterpolate1, ɵɵstyleMapInterpolate2, ɵɵstyleMapInterpolate3, ɵɵstyleMapInterpolate4, ɵɵstyleMapInterpolate5, ɵɵstyleMapInterpolate6, ɵɵstyleMapInterpolate7, ɵɵstyleMapInterpolate8, ɵɵstyleMapInterpolateV, ɵɵstyleProp, ɵɵstylePropInterpolate1, ɵɵstylePropInterpolate2, ɵɵstylePropInterpolate3, ɵɵstylePropInterpolate4, ɵɵstylePropInterpolate5, ɵɵstylePropInterpolate6, ɵɵstylePropInterpolate7, ɵɵstylePropInterpolate8, ɵɵstylePropInterpolateV, ɵɵsyntheticHostListener, ɵɵsyntheticHostProperty, ɵɵtemplate, ɵɵtemplateRefExtractor, ɵɵtext, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, ɵɵtrustConstantHtml, ɵɵtrustConstantResourceUrl, ɵɵvalidateIframeAttribute, ɵɵviewQuery };
30202
30268
  //# sourceMappingURL=core.mjs.map