@angular/core 9.1.3 → 9.1.7

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 (68) hide show
  1. package/bundles/core-testing.umd.js +1 -1
  2. package/bundles/core-testing.umd.min.js +1 -1
  3. package/bundles/core-testing.umd.min.js.map +1 -1
  4. package/bundles/core.umd.js +251 -360
  5. package/bundles/core.umd.js.map +1 -1
  6. package/bundles/core.umd.min.js +109 -117
  7. package/bundles/core.umd.min.js.map +1 -1
  8. package/core.d.ts +37 -70
  9. package/core.metadata.json +1 -1
  10. package/esm2015/index.js +2 -2
  11. package/esm2015/public_api.js +2 -2
  12. package/esm2015/src/core.js +2 -2
  13. package/esm2015/src/core_render3_private_export.js +2 -2
  14. package/esm2015/src/i18n/localization.js +7 -16
  15. package/esm2015/src/render3/assert.js +1 -8
  16. package/esm2015/src/render3/component_ref.js +15 -13
  17. package/esm2015/src/render3/hooks.js +3 -3
  18. package/esm2015/src/render3/index.js +2 -2
  19. package/esm2015/src/render3/instructions/all.js +3 -4
  20. package/esm2015/src/render3/instructions/host_property.js +6 -4
  21. package/esm2015/src/render3/instructions/listener.js +7 -5
  22. package/esm2015/src/render3/instructions/lview_debug.js +7 -3
  23. package/esm2015/src/render3/instructions/shared.js +166 -76
  24. package/esm2015/src/render3/instructions/styling.js +3 -15
  25. package/esm2015/src/render3/instructions/template.js +100 -0
  26. package/esm2015/src/render3/interfaces/container.js +8 -11
  27. package/esm2015/src/render3/interfaces/view.js +22 -7
  28. package/esm2015/src/render3/jit/environment.js +1 -6
  29. package/esm2015/src/render3/node_manipulation.js +20 -16
  30. package/esm2015/src/render3/state.js +23 -2
  31. package/esm2015/src/render3/util/view_utils.js +26 -2
  32. package/esm2015/src/render3/view_ref.js +15 -5
  33. package/esm2015/src/version.js +1 -1
  34. package/esm5/src/core_render3_private_export.js +2 -2
  35. package/esm5/src/i18n/localization.js +5 -16
  36. package/esm5/src/render3/assert.js +1 -4
  37. package/esm5/src/render3/component_ref.js +13 -9
  38. package/esm5/src/render3/hooks.js +3 -3
  39. package/esm5/src/render3/index.js +2 -2
  40. package/esm5/src/render3/instructions/all.js +2 -3
  41. package/esm5/src/render3/instructions/host_property.js +5 -4
  42. package/esm5/src/render3/instructions/listener.js +5 -4
  43. package/esm5/src/render3/instructions/lview_debug.js +6 -3
  44. package/esm5/src/render3/instructions/shared.js +148 -67
  45. package/esm5/src/render3/instructions/styling.js +3 -13
  46. package/esm5/src/render3/instructions/template.js +73 -0
  47. package/esm5/src/render3/interfaces/container.js +5 -5
  48. package/esm5/src/render3/interfaces/view.js +4 -3
  49. package/esm5/src/render3/jit/environment.js +1 -6
  50. package/esm5/src/render3/node_manipulation.js +19 -15
  51. package/esm5/src/render3/state.js +20 -2
  52. package/esm5/src/render3/util/view_utils.js +21 -2
  53. package/esm5/src/render3/view_ref.js +15 -6
  54. package/esm5/src/version.js +1 -1
  55. package/fesm2015/core.js +309 -431
  56. package/fesm2015/core.js.map +1 -1
  57. package/fesm2015/testing.js +1 -1
  58. package/fesm5/core.js +252 -356
  59. package/fesm5/core.js.map +1 -1
  60. package/fesm5/testing.js +1 -1
  61. package/package.json +1 -1
  62. package/src/r3_symbols.d.ts +1 -1
  63. package/testing/testing.d.ts +1 -1
  64. package/testing.d.ts +1 -1
  65. package/esm2015/src/render3/instructions/container.js +0 -227
  66. package/esm2015/src/render3/instructions/embedded_view.js +0 -151
  67. package/esm5/src/render3/instructions/container.js +0 -173
  68. package/esm5/src/render3/instructions/embedded_view.js +0 -127
package/fesm2015/core.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v9.1.3
2
+ * @license Angular v9.1.7
3
3
  * (c) 2010-2020 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -2247,7 +2247,7 @@ const PARENT = 3;
2247
2247
  /** @type {?} */
2248
2248
  const NEXT = 4;
2249
2249
  /** @type {?} */
2250
- const QUERIES = 5;
2250
+ const TRANSPLANTED_VIEWS_TO_REFRESH = 5;
2251
2251
  /** @type {?} */
2252
2252
  const T_HOST = 6;
2253
2253
  /** @type {?} */
@@ -2274,11 +2274,13 @@ const DECLARATION_COMPONENT_VIEW = 16;
2274
2274
  const DECLARATION_LCONTAINER = 17;
2275
2275
  /** @type {?} */
2276
2276
  const PREORDER_HOOK_FLAGS = 18;
2277
+ /** @type {?} */
2278
+ const QUERIES = 19;
2277
2279
  /**
2278
2280
  * Size of LView's header. Necessary to adjust for it when setting slots.
2279
2281
  * @type {?}
2280
2282
  */
2281
- const HEADER_OFFSET = 19;
2283
+ const HEADER_OFFSET = 20;
2282
2284
  /**
2283
2285
  * @record
2284
2286
  */
@@ -2338,6 +2340,8 @@ if (false) {
2338
2340
  [DECLARATION_LCONTAINER]: LContainer|null;*/
2339
2341
  /* Skipping unnamed member:
2340
2342
  [PREORDER_HOOK_FLAGS]: PreOrderHookFlags;*/
2343
+ /* Skipping unnamed member:
2344
+ [TRANSPLANTED_VIEWS_TO_REFRESH]: number;*/
2341
2345
  }
2342
2346
  /** @enum {number} */
2343
2347
  const LViewFlags = {
@@ -2388,11 +2392,16 @@ const LViewFlags = {
2388
2392
  /** Whether or not this view is the root view */
2389
2393
  IsRoot: 512,
2390
2394
  /**
2391
- * Index of the current init phase on last 22 bits
2395
+ * Whether this moved LView was needs to be refreshed at the insertion location because the
2396
+ * declaration was dirty.
2392
2397
  */
2393
- IndexWithinInitPhaseIncrementer: 1024,
2394
- IndexWithinInitPhaseShift: 10,
2395
- IndexWithinInitPhaseReset: 1023,
2398
+ RefreshTransplantedView: 1024,
2399
+ /**
2400
+ * Index of the current init phase on last 21 bits
2401
+ */
2402
+ IndexWithinInitPhaseIncrementer: 2048,
2403
+ IndexWithinInitPhaseShift: 11,
2404
+ IndexWithinInitPhaseReset: 2047,
2396
2405
  };
2397
2406
  /** @enum {number} */
2398
2407
  const InitPhaseState = {
@@ -2715,6 +2724,12 @@ if (false) {
2715
2724
  * @type {?}
2716
2725
  */
2717
2726
  TView.prototype.consts;
2727
+ /**
2728
+ * Indicates that there was an error before we managed to complete the first create pass of the
2729
+ * view. This means that the view is likely corrupted and we should try to recover it.
2730
+ * @type {?}
2731
+ */
2732
+ TView.prototype.incompleteFirstPass;
2718
2733
  }
2719
2734
  /** @enum {number} */
2720
2735
  const RootContextFlags = {
@@ -2783,16 +2798,16 @@ const TYPE = 1;
2783
2798
  * @type {?}
2784
2799
  */
2785
2800
  const ACTIVE_INDEX = 2;
2786
- // PARENT and NEXT are indices 3 and 4
2801
+ // PARENT, NEXT, TRANSPLANTED_VIEWS_TO_REFRESH are indices 3, 4, and 5
2787
2802
  // As we already have these constants in LView, we don't need to re-create them.
2788
- /** @type {?} */
2789
- const MOVED_VIEWS = 5;
2790
2803
  // T_HOST is index 6
2791
2804
  // We already have this constants in LView, we don't need to re-create it.
2792
2805
  /** @type {?} */
2793
2806
  const NATIVE = 7;
2794
2807
  /** @type {?} */
2795
2808
  const VIEW_REFS = 8;
2809
+ /** @type {?} */
2810
+ const MOVED_VIEWS = 9;
2796
2811
  /**
2797
2812
  * Size of LContainer's header. Represents the index after which all views in the
2798
2813
  * container will be inserted. We need to keep a record of current views so we know
@@ -2800,7 +2815,7 @@ const VIEW_REFS = 8;
2800
2815
  * remove views from the DOM when they are no longer required.
2801
2816
  * @type {?}
2802
2817
  */
2803
- const CONTAINER_HEADER_OFFSET = 9;
2818
+ const CONTAINER_HEADER_OFFSET = 10;
2804
2819
  /** @enum {number} */
2805
2820
  const ActiveIndexFlag = {
2806
2821
  /**
@@ -2820,11 +2835,6 @@ const ActiveIndexFlag = {
2820
2835
  * Number of bits to shift inline embedded views counter to make space for other flags.
2821
2836
  */
2822
2837
  SHIFT: 1,
2823
- /**
2824
- * When incrementing the active index for inline embedded views, the amount to increment to leave
2825
- * space for other flags.
2826
- */
2827
- INCREMENT: 2,
2828
2838
  };
2829
2839
  /**
2830
2840
  * The state associated with a container.
@@ -2848,6 +2858,8 @@ if (false) {
2848
2858
  /* Skipping unnamed member:
2849
2859
  [NEXT]: LView|LContainer|null;*/
2850
2860
  /* Skipping unnamed member:
2861
+ [TRANSPLANTED_VIEWS_TO_REFRESH]: number;*/
2862
+ /* Skipping unnamed member:
2851
2863
  [MOVED_VIEWS]: LView[]|null;*/
2852
2864
  /* Skipping unnamed member:
2853
2865
  [T_HOST]: TNode;*/
@@ -2982,13 +2994,6 @@ function assertDataNext(lView, index, arr) {
2982
2994
  arr = lView;
2983
2995
  assertEqual(arr.length, index, `index ${index} expected to be at the end of arr (length ${arr.length})`);
2984
2996
  }
2985
- /**
2986
- * @param {?} value
2987
- * @return {?}
2988
- */
2989
- function assertLContainerOrUndefined(value) {
2990
- value && assertEqual(isLContainer(value), true, 'Expecting LContainer or undefined or null');
2991
- }
2992
2997
  /**
2993
2998
  * @param {?} value
2994
2999
  * @return {?}
@@ -3792,6 +3797,30 @@ function getLContainerActiveIndex(lContainer) {
3792
3797
  function setLContainerActiveIndex(lContainer, index) {
3793
3798
  lContainer[ACTIVE_INDEX] = index << 1 /* SHIFT */;
3794
3799
  }
3800
+ /**
3801
+ * Updates the `TRANSPLANTED_VIEWS_TO_REFRESH` counter on the `LContainer` as well as the parents
3802
+ * whose
3803
+ * 1. counter goes from 0 to 1, indicating that there is a new child that has a view to refresh
3804
+ * or
3805
+ * 2. counter goes from 1 to 0, indicating there are no more descendant views to refresh
3806
+ * @param {?} lContainer
3807
+ * @param {?} amount
3808
+ * @return {?}
3809
+ */
3810
+ function updateTransplantedViewCount(lContainer, amount) {
3811
+ lContainer[TRANSPLANTED_VIEWS_TO_REFRESH] += amount;
3812
+ /** @type {?} */
3813
+ let viewOrContainer = lContainer;
3814
+ /** @type {?} */
3815
+ let parent = lContainer[PARENT];
3816
+ while (parent !== null &&
3817
+ ((amount === 1 && viewOrContainer[TRANSPLANTED_VIEWS_TO_REFRESH] === 1) ||
3818
+ (amount === -1 && viewOrContainer[TRANSPLANTED_VIEWS_TO_REFRESH] === 0))) {
3819
+ parent[TRANSPLANTED_VIEWS_TO_REFRESH] += amount;
3820
+ viewOrContainer = parent;
3821
+ parent = parent[PARENT];
3822
+ }
3823
+ }
3795
3824
 
3796
3825
  /**
3797
3826
  * @fileoverview added by tsickle
@@ -4173,7 +4202,7 @@ function setBindingRootForHostBindings(bindingRootIndex, currentDirectiveIndex)
4173
4202
  /** @type {?} */
4174
4203
  const lFrame = instructionState.lFrame;
4175
4204
  lFrame.bindingIndex = lFrame.bindingRootIndex = bindingRootIndex;
4176
- lFrame.currentDirectiveIndex = currentDirectiveIndex;
4205
+ setCurrentDirectiveIndex(currentDirectiveIndex);
4177
4206
  }
4178
4207
  /**
4179
4208
  * When host binding is executing this points to the directive index.
@@ -4184,6 +4213,27 @@ function setBindingRootForHostBindings(bindingRootIndex, currentDirectiveIndex)
4184
4213
  function getCurrentDirectiveIndex() {
4185
4214
  return instructionState.lFrame.currentDirectiveIndex;
4186
4215
  }
4216
+ /**
4217
+ * Sets an index of a directive whose `hostBindings` are being processed.
4218
+ *
4219
+ * @param {?} currentDirectiveIndex `TData` index where current directive instance can be found.
4220
+ * @return {?}
4221
+ */
4222
+ function setCurrentDirectiveIndex(currentDirectiveIndex) {
4223
+ instructionState.lFrame.currentDirectiveIndex = currentDirectiveIndex;
4224
+ }
4225
+ /**
4226
+ * Retrieve the current `DirectiveDef` which is active when `hostBindings` instruction is being
4227
+ * executed.
4228
+ *
4229
+ * @param {?} tData Current `TData` where the `DirectiveDef` will be looked up at.
4230
+ * @return {?}
4231
+ */
4232
+ function getCurrentDirectiveDef(tData) {
4233
+ /** @type {?} */
4234
+ const currentDirectiveIndex = instructionState.lFrame.currentDirectiveIndex;
4235
+ return currentDirectiveIndex === -1 ? null : (/** @type {?} */ (tData[currentDirectiveIndex]));
4236
+ }
4187
4237
  /**
4188
4238
  * @return {?}
4189
4239
  */
@@ -4623,7 +4673,7 @@ function incrementInitPhaseFlags(lView, initPhase) {
4623
4673
  /** @type {?} */
4624
4674
  let flags = lView[FLAGS];
4625
4675
  if ((flags & 3 /* InitPhaseStateMask */) === initPhase) {
4626
- flags &= 1023 /* IndexWithinInitPhaseReset */;
4676
+ flags &= 2047 /* IndexWithinInitPhaseReset */;
4627
4677
  flags += 1 /* InitPhaseStateIncrementer */;
4628
4678
  lView[FLAGS] = flags;
4629
4679
  }
@@ -4698,13 +4748,13 @@ function callHook(currentView, initPhase, arr, i) {
4698
4748
  const directive = currentView[directiveIndex];
4699
4749
  if (isInitHook) {
4700
4750
  /** @type {?} */
4701
- const indexWithintInitPhase = currentView[FLAGS] >> 10 /* IndexWithinInitPhaseShift */;
4751
+ const indexWithintInitPhase = currentView[FLAGS] >> 11 /* IndexWithinInitPhaseShift */;
4702
4752
  // The init phase state must be always checked here as it may have been recursively
4703
4753
  // updated
4704
4754
  if (indexWithintInitPhase <
4705
4755
  (currentView[PREORDER_HOOK_FLAGS] >> 16 /* NumberOfInitHooksCalledShift */) &&
4706
4756
  (currentView[FLAGS] & 3 /* InitPhaseStateMask */) === initPhase) {
4707
- currentView[FLAGS] += 1024 /* IndexWithinInitPhaseIncrementer */;
4757
+ currentView[FLAGS] += 2048 /* IndexWithinInitPhaseIncrementer */;
4708
4758
  hook.call(directive);
4709
4759
  }
4710
4760
  }
@@ -10435,6 +10485,7 @@ const TViewConstructor = class TView {
10435
10485
  * @param {?} firstChild
10436
10486
  * @param {?} schemas
10437
10487
  * @param {?} consts
10488
+ * @param {?} incompleteFirstPass
10438
10489
  */
10439
10490
  constructor(type, //
10440
10491
  id, //
@@ -10465,7 +10516,9 @@ const TViewConstructor = class TView {
10465
10516
  pipeRegistry, //
10466
10517
  firstChild, //
10467
10518
  schemas, //
10468
- consts) {
10519
+ consts, //
10520
+ incompleteFirstPass //
10521
+ ) {
10469
10522
  this.type = type;
10470
10523
  this.id = id;
10471
10524
  this.blueprint = blueprint;
@@ -10496,6 +10549,7 @@ const TViewConstructor = class TView {
10496
10549
  this.firstChild = firstChild;
10497
10550
  this.schemas = schemas;
10498
10551
  this.consts = consts;
10552
+ this.incompleteFirstPass = incompleteFirstPass;
10499
10553
  }
10500
10554
  /**
10501
10555
  * @return {?}
@@ -10938,7 +10992,7 @@ class LViewDebug {
10938
10992
  attached: !!(flags & 128 /* Attached */),
10939
10993
  destroyed: !!(flags & 256 /* Destroyed */),
10940
10994
  isRoot: !!(flags & 512 /* IsRoot */),
10941
- indexWithinInitPhase: flags >> 10 /* IndexWithinInitPhaseShift */,
10995
+ indexWithinInitPhase: flags >> 11 /* IndexWithinInitPhaseShift */,
10942
10996
  };
10943
10997
  }
10944
10998
  /**
@@ -11871,6 +11925,14 @@ function renderView(tView, lView, context) {
11871
11925
  renderChildComponents(lView, components);
11872
11926
  }
11873
11927
  }
11928
+ catch (error) {
11929
+ // If we didn't manage to get past the first template pass due to
11930
+ // an error, mark the view as corrupted so we can try to recover.
11931
+ if (tView.firstCreatePass) {
11932
+ tView.incompleteFirstPass = true;
11933
+ }
11934
+ throw error;
11935
+ }
11874
11936
  finally {
11875
11937
  lView[FLAGS] &= ~4 /* CreationMode */;
11876
11938
  leaveView();
@@ -11926,6 +11988,10 @@ function refreshView(tView, lView, templateFn, context) {
11926
11988
  incrementInitPhaseFlags(lView, 0 /* OnInitHooksToBeRun */);
11927
11989
  }
11928
11990
  }
11991
+ // First mark transplanted views that are declared in this lView as needing a refresh at their
11992
+ // insertion points. This is needed to avoid the situation where the template is defined in this
11993
+ // `LView` but its declaration appears after the insertion component.
11994
+ markTransplantedViewsForRefresh(lView);
11929
11995
  refreshDynamicEmbeddedViews(lView);
11930
11996
  // Content query results must be refreshed before content hooks are called.
11931
11997
  if (tView.contentQueries !== null) {
@@ -12002,6 +12068,10 @@ function refreshView(tView, lView, templateFn, context) {
12002
12068
  if (!checkNoChangesMode) {
12003
12069
  lView[FLAGS] &= ~(64 /* Dirty */ | 8 /* FirstLViewPass */);
12004
12070
  }
12071
+ if (lView[FLAGS] & 1024 /* RefreshTransplantedView */) {
12072
+ lView[FLAGS] &= ~1024 /* RefreshTransplantedView */;
12073
+ updateTransplantedViewCount((/** @type {?} */ (lView[PARENT])), -1);
12074
+ }
12005
12075
  }
12006
12076
  finally {
12007
12077
  leaveView();
@@ -12134,8 +12204,14 @@ function saveResolvedLocalsInData(viewData, tNode, localRefExtractor = getNative
12134
12204
  * @return {?} TView
12135
12205
  */
12136
12206
  function getOrCreateTComponentView(def) {
12137
- return def.tView ||
12138
- (def.tView = createTView(1 /* Component */, -1, def.template, def.decls, def.vars, def.directiveDefs, def.pipeDefs, def.viewQuery, def.schemas, def.consts));
12207
+ /** @type {?} */
12208
+ const tView = def.tView;
12209
+ // Create a TView if there isn't one, or recreate it if the first create pass didn't
12210
+ // complete successfuly since we can't know for sure whether it's in a usable shape.
12211
+ if (tView === null || tView.incompleteFirstPass) {
12212
+ return def.tView = createTView(1 /* Component */, -1, def.template, def.decls, def.vars, def.directiveDefs, def.pipeDefs, def.viewQuery, def.schemas, def.consts);
12213
+ }
12214
+ return tView;
12139
12215
  }
12140
12216
  /**
12141
12217
  * Creates a TView instance
@@ -12193,7 +12269,9 @@ function createTView(type, viewIndex, templateFn, decls, vars, directives, pipes
12193
12269
  typeof pipes === 'function' ? pipes() : pipes, // pipeRegistry: PipeDefList|null,
12194
12270
  null, // firstChild: TNode|null,
12195
12271
  schemas, // schemas: SchemaMetadata[]|null,
12196
- consts) : // consts: TConstants|null
12272
+ consts, // consts: TConstants|null
12273
+ false // incompleteFirstPass: boolean
12274
+ ) :
12197
12275
  {
12198
12276
  type: type,
12199
12277
  id: viewIndex,
@@ -12225,6 +12303,7 @@ function createTView(type, viewIndex, templateFn, decls, vars, directives, pipes
12225
12303
  firstChild: null,
12226
12304
  schemas: schemas,
12227
12305
  consts: consts,
12306
+ incompleteFirstPass: false
12228
12307
  };
12229
12308
  }
12230
12309
  /**
@@ -12900,13 +12979,16 @@ function invokeDirectivesHostBindings(tView, lView, tNode) {
12900
12979
  const firstCreatePass = tView.firstCreatePass;
12901
12980
  /** @type {?} */
12902
12981
  const elementIndex = tNode.index - HEADER_OFFSET;
12982
+ /** @type {?} */
12983
+ const currentDirectiveIndex = getCurrentDirectiveIndex();
12903
12984
  try {
12904
12985
  setSelectedIndex(elementIndex);
12905
- for (let i = start; i < end; i++) {
12986
+ for (let dirIndex = start; dirIndex < end; dirIndex++) {
12906
12987
  /** @type {?} */
12907
- const def = (/** @type {?} */ (tView.data[i]));
12988
+ const def = (/** @type {?} */ (tView.data[dirIndex]));
12908
12989
  /** @type {?} */
12909
- const directive = lView[i];
12990
+ const directive = lView[dirIndex];
12991
+ setCurrentDirectiveIndex(dirIndex);
12910
12992
  if (def.hostBindings !== null || def.hostVars !== 0 || def.hostAttrs !== null) {
12911
12993
  invokeHostBindingsInCreationMode(def, directive);
12912
12994
  }
@@ -12917,6 +12999,7 @@ function invokeDirectivesHostBindings(tView, lView, tNode) {
12917
12999
  }
12918
13000
  finally {
12919
13001
  setSelectedIndex(-1);
13002
+ setCurrentDirectiveIndex(currentDirectiveIndex);
12920
13003
  }
12921
13004
  }
12922
13005
  /**
@@ -13249,10 +13332,13 @@ function createLContainer(hostNative, currentView, native, tNode) {
13249
13332
  -1 /* DYNAMIC_EMBEDDED_VIEWS_ONLY */ << 1 /* SHIFT */, // active index
13250
13333
  currentView, // parent
13251
13334
  null, // next
13252
- null, // queries
13335
+ 0, // transplanted views to refresh count
13253
13336
  tNode, // t_host
13254
13337
  native, // native,
13338
+ null, // view refs
13255
13339
  null);
13340
+ ngDevMode &&
13341
+ assertEqual(lContainer.length, CONTAINER_HEADER_OFFSET, 'Should allocate correct number of slots for LContainer header.');
13256
13342
  ngDevMode && attachLContainerDebug(lContainer);
13257
13343
  return lContainer;
13258
13344
  }
@@ -13263,77 +13349,82 @@ function createLContainer(hostNative, currentView, native, tNode) {
13263
13349
  * @return {?}
13264
13350
  */
13265
13351
  function refreshDynamicEmbeddedViews(lView) {
13266
- /** @type {?} */
13267
- let viewOrContainer = lView[CHILD_HEAD];
13268
- while (viewOrContainer !== null) {
13269
- // Note: viewOrContainer can be an LView or an LContainer instance, but here we are only
13270
- // interested in LContainer
13271
- /** @type {?} */
13272
- let activeIndexFlag;
13273
- if (isLContainer(viewOrContainer) &&
13274
- (activeIndexFlag = viewOrContainer[ACTIVE_INDEX]) >> 1 /* SHIFT */ ===
13275
- -1 /* DYNAMIC_EMBEDDED_VIEWS_ONLY */) {
13276
- for (let i = CONTAINER_HEADER_OFFSET; i < viewOrContainer.length; i++) {
13277
- /** @type {?} */
13278
- const embeddedLView = (/** @type {?} */ (viewOrContainer[i]));
13279
- /** @type {?} */
13280
- const embeddedTView = embeddedLView[TVIEW];
13281
- ngDevMode && assertDefined(embeddedTView, 'TView must be allocated');
13282
- if (viewAttachedToChangeDetector(embeddedLView)) {
13283
- refreshView(embeddedTView, embeddedLView, embeddedTView.template, (/** @type {?} */ (embeddedLView[CONTEXT])));
13284
- }
13285
- }
13286
- if ((activeIndexFlag & 1 /* HAS_TRANSPLANTED_VIEWS */) !== 0) {
13287
- // We should only CD moved views if the component where they were inserted does not match
13288
- // the component where they were declared and insertion is on-push. Moved views also
13289
- // contains intra component moves, or check-always which need to be skipped.
13290
- refreshTransplantedViews(viewOrContainer, (/** @type {?} */ (lView[DECLARATION_COMPONENT_VIEW])));
13352
+ for (let lContainer = getFirstLContainer(lView); lContainer !== null; lContainer = getNextLContainer(lContainer)) {
13353
+ for (let i = CONTAINER_HEADER_OFFSET; i < lContainer.length; i++) {
13354
+ /** @type {?} */
13355
+ const embeddedLView = lContainer[i];
13356
+ /** @type {?} */
13357
+ const embeddedTView = embeddedLView[TVIEW];
13358
+ ngDevMode && assertDefined(embeddedTView, 'TView must be allocated');
13359
+ if (viewAttachedToChangeDetector(embeddedLView)) {
13360
+ refreshView(embeddedTView, embeddedLView, embeddedTView.template, (/** @type {?} */ (embeddedLView[CONTEXT])));
13291
13361
  }
13292
13362
  }
13363
+ }
13364
+ }
13365
+ /**
13366
+ * Gets the first `LContainer` in the LView or `null` if none exists.
13367
+ * @param {?} lView
13368
+ * @return {?}
13369
+ */
13370
+ function getFirstLContainer(lView) {
13371
+ /** @type {?} */
13372
+ let viewOrContainer = lView[CHILD_HEAD];
13373
+ while (viewOrContainer !== null &&
13374
+ !(isLContainer(viewOrContainer) &&
13375
+ viewOrContainer[ACTIVE_INDEX] >> 1 /* SHIFT */ ===
13376
+ -1 /* DYNAMIC_EMBEDDED_VIEWS_ONLY */)) {
13293
13377
  viewOrContainer = viewOrContainer[NEXT];
13294
13378
  }
13379
+ return viewOrContainer;
13295
13380
  }
13296
13381
  /**
13297
- * Refresh transplanted LViews.
13382
+ * Gets the next `LContainer` that is a sibling of the given container.
13383
+ * @param {?} container
13384
+ * @return {?}
13385
+ */
13386
+ function getNextLContainer(container) {
13387
+ /** @type {?} */
13388
+ let viewOrContainer = container[NEXT];
13389
+ while (viewOrContainer !== null &&
13390
+ !(isLContainer(viewOrContainer) &&
13391
+ viewOrContainer[ACTIVE_INDEX] >> 1 /* SHIFT */ ===
13392
+ -1 /* DYNAMIC_EMBEDDED_VIEWS_ONLY */)) {
13393
+ viewOrContainer = viewOrContainer[NEXT];
13394
+ }
13395
+ return viewOrContainer;
13396
+ }
13397
+ /**
13398
+ * Mark transplanted views as needing to be refreshed at their insertion points.
13298
13399
  *
13299
13400
  * See: `ActiveIndexFlag.HAS_TRANSPLANTED_VIEWS` and `LView[DECLARATION_COMPONENT_VIEW]` for
13300
13401
  * explanation of transplanted views.
13301
13402
  *
13302
- * @param {?} lContainer The `LContainer` which has transplanted views.
13303
- * @param {?} declaredComponentLView The `lContainer` parent component `LView`.
13403
+ * @param {?} lView The `LView` that may have transplanted views.
13304
13404
  * @return {?}
13305
13405
  */
13306
- function refreshTransplantedViews(lContainer, declaredComponentLView) {
13307
- /** @type {?} */
13308
- const movedViews = (/** @type {?} */ (lContainer[MOVED_VIEWS]));
13309
- ngDevMode && assertDefined(movedViews, 'Transplanted View flags set but missing MOVED_VIEWS');
13310
- for (let i = 0; i < movedViews.length; i++) {
13311
- /** @type {?} */
13312
- const movedLView = (/** @type {?} */ (movedViews[i]));
13313
- /** @type {?} */
13314
- const insertionLContainer = (/** @type {?} */ (movedLView[PARENT]));
13315
- ngDevMode && assertLContainer(insertionLContainer);
13316
- /** @type {?} */
13317
- const insertedComponentLView = (/** @type {?} */ (insertionLContainer[PARENT][DECLARATION_COMPONENT_VIEW]));
13318
- ngDevMode && assertDefined(insertedComponentLView, 'Missing LView');
13319
- // Check if we have a transplanted view by compering declaration and insertion location.
13320
- if (insertedComponentLView !== declaredComponentLView) {
13321
- // Yes the `LView` is transplanted.
13322
- // Here we would like to know if the component is `OnPush`. We don't have
13323
- // explicit `OnPush` flag instead we set `CheckAlways` to false (which is `OnPush`)
13324
- // Not to be confused with `ManualOnPush` which is used with wether a DOM event
13325
- // should automatically mark a view as dirty.
13406
+ function markTransplantedViewsForRefresh(lView) {
13407
+ for (let lContainer = getFirstLContainer(lView); lContainer !== null; lContainer = getNextLContainer(lContainer)) {
13408
+ if ((lContainer[ACTIVE_INDEX] & 1 /* HAS_TRANSPLANTED_VIEWS */) !== 0) {
13326
13409
  /** @type {?} */
13327
- const insertionComponentIsOnPush = (insertedComponentLView[FLAGS] & 16 /* CheckAlways */) === 0;
13328
- if (insertionComponentIsOnPush) {
13329
- // Here we know that the template has been transplanted across components and is
13330
- // on-push (not just moved within a component). If the insertion is marked dirty, then
13331
- // there is no need to CD here as we will do it again later when we get to insertion
13332
- // point.
13410
+ const movedViews = (/** @type {?} */ (lContainer[MOVED_VIEWS]));
13411
+ ngDevMode && assertDefined(movedViews, 'Transplanted View flags set but missing MOVED_VIEWS');
13412
+ for (let i = 0; i < movedViews.length; i++) {
13413
+ /** @type {?} */
13414
+ const movedLView = (/** @type {?} */ (movedViews[i]));
13333
13415
  /** @type {?} */
13334
- const movedTView = movedLView[TVIEW];
13335
- ngDevMode && assertDefined(movedTView, 'TView must be allocated');
13336
- refreshView(movedTView, movedLView, movedTView.template, (/** @type {?} */ (movedLView[CONTEXT])));
13416
+ const insertionLContainer = (/** @type {?} */ (movedLView[PARENT]));
13417
+ ngDevMode && assertLContainer(insertionLContainer);
13418
+ // We don't want to increment the counter if the moved LView was already marked for
13419
+ // refresh.
13420
+ if ((movedLView[FLAGS] & 1024 /* RefreshTransplantedView */) === 0) {
13421
+ updateTransplantedViewCount(insertionLContainer, 1);
13422
+ }
13423
+ // Note, it is possible that the `movedViews` is tracking views that are transplanted *and*
13424
+ // those that aren't (declaration component === insertion component). In the latter case,
13425
+ // it's fine to add the flag, as we will clear it immediately in
13426
+ // `refreshDynamicEmbeddedViews` for the view currently being refreshed.
13427
+ movedLView[FLAGS] |= 1024 /* RefreshTransplantedView */;
13337
13428
  }
13338
13429
  }
13339
13430
  }
@@ -13351,11 +13442,56 @@ function refreshComponent(hostLView, componentHostIdx) {
13351
13442
  /** @type {?} */
13352
13443
  const componentView = getComponentLViewByIndex(componentHostIdx, hostLView);
13353
13444
  // Only attached components that are CheckAlways or OnPush and dirty should be refreshed
13354
- if (viewAttachedToChangeDetector(componentView) &&
13355
- componentView[FLAGS] & (16 /* CheckAlways */ | 64 /* Dirty */)) {
13445
+ if (viewAttachedToChangeDetector(componentView)) {
13356
13446
  /** @type {?} */
13357
- const componentTView = componentView[TVIEW];
13358
- refreshView(componentTView, componentView, componentTView.template, componentView[CONTEXT]);
13447
+ const tView = componentView[TVIEW];
13448
+ if (componentView[FLAGS] & (16 /* CheckAlways */ | 64 /* Dirty */)) {
13449
+ refreshView(tView, componentView, tView.template, componentView[CONTEXT]);
13450
+ }
13451
+ else if (componentView[TRANSPLANTED_VIEWS_TO_REFRESH] > 0) {
13452
+ // Only attached components that are CheckAlways or OnPush and dirty should be refreshed
13453
+ refreshContainsDirtyView(componentView);
13454
+ }
13455
+ }
13456
+ }
13457
+ /**
13458
+ * Refreshes all transplanted views marked with `LViewFlags.RefreshTransplantedView` that are
13459
+ * children or descendants of the given lView.
13460
+ *
13461
+ * @param {?} lView The lView which contains descendant transplanted views that need to be refreshed.
13462
+ * @return {?}
13463
+ */
13464
+ function refreshContainsDirtyView(lView) {
13465
+ for (let lContainer = getFirstLContainer(lView); lContainer !== null; lContainer = getNextLContainer(lContainer)) {
13466
+ for (let i = CONTAINER_HEADER_OFFSET; i < lContainer.length; i++) {
13467
+ /** @type {?} */
13468
+ const embeddedLView = lContainer[i];
13469
+ if (embeddedLView[FLAGS] & 1024 /* RefreshTransplantedView */) {
13470
+ /** @type {?} */
13471
+ const embeddedTView = embeddedLView[TVIEW];
13472
+ ngDevMode && assertDefined(embeddedTView, 'TView must be allocated');
13473
+ refreshView(embeddedTView, embeddedLView, embeddedTView.template, (/** @type {?} */ (embeddedLView[CONTEXT])));
13474
+ }
13475
+ else if (embeddedLView[TRANSPLANTED_VIEWS_TO_REFRESH] > 0) {
13476
+ refreshContainsDirtyView(embeddedLView);
13477
+ }
13478
+ }
13479
+ }
13480
+ /** @type {?} */
13481
+ const tView = lView[TVIEW];
13482
+ // Refresh child component views.
13483
+ /** @type {?} */
13484
+ const components = tView.components;
13485
+ if (components !== null) {
13486
+ for (let i = 0; i < components.length; i++) {
13487
+ /** @type {?} */
13488
+ const componentView = getComponentLViewByIndex(components[i], lView);
13489
+ // Only attached components that are CheckAlways or OnPush and dirty should be refreshed
13490
+ if (viewAttachedToChangeDetector(componentView) &&
13491
+ componentView[TRANSPLANTED_VIEWS_TO_REFRESH] > 0) {
13492
+ refreshContainsDirtyView(componentView);
13493
+ }
13494
+ }
13359
13495
  }
13360
13496
  }
13361
13497
  /**
@@ -13664,14 +13800,22 @@ function getTViewCleanup(tView) {
13664
13800
  /**
13665
13801
  * There are cases where the sub component's renderer needs to be included
13666
13802
  * instead of the current renderer (see the componentSyntheticHost* instructions).
13803
+ * @param {?} currentDef
13667
13804
  * @param {?} tNode
13668
13805
  * @param {?} lView
13669
13806
  * @return {?}
13670
13807
  */
13671
- function loadComponentRenderer(tNode, lView) {
13672
- /** @type {?} */
13673
- const componentLView = (/** @type {?} */ (unwrapLView(lView[tNode.index])));
13674
- return componentLView[RENDERER];
13808
+ function loadComponentRenderer(currentDef, tNode, lView) {
13809
+ // TODO(FW-2043): the `currentDef` is null when host bindings are invoked while creating root
13810
+ // component (see packages/core/src/render3/component.ts). This is not consistent with the process
13811
+ // of creating inner components, when current directive index is available in the state. In order
13812
+ // to avoid relying on current def being `null` (thus special-casing root component creation), the
13813
+ // process of creating root component should be unified with the process of creating inner
13814
+ // components.
13815
+ if (currentDef === null || isComponentDef(currentDef)) {
13816
+ lView = (/** @type {?} */ (unwrapLView(lView[tNode.index])));
13817
+ }
13818
+ return lView[RENDERER];
13675
13819
  }
13676
13820
  /**
13677
13821
  * Handles an error thrown in an LView.
@@ -14004,18 +14148,13 @@ function trackMovedView(declarationContainer, lView) {
14004
14148
  const insertedComponentLView = (/** @type {?} */ (insertedLContainer[PARENT]))[DECLARATION_COMPONENT_VIEW];
14005
14149
  ngDevMode && assertDefined(insertedComponentLView, 'Missing insertedComponentLView');
14006
14150
  /** @type {?} */
14007
- const insertedComponentIsOnPush = (insertedComponentLView[FLAGS] & 16 /* CheckAlways */) !== 16 /* CheckAlways */;
14008
- if (insertedComponentIsOnPush) {
14009
- /** @type {?} */
14010
- const declaredComponentLView = lView[DECLARATION_COMPONENT_VIEW];
14011
- ngDevMode && assertDefined(declaredComponentLView, 'Missing declaredComponentLView');
14012
- if (declaredComponentLView !== insertedComponentLView) {
14013
- // At this point the declaration-component is not same as insertion-component and we are in
14014
- // on-push mode, this means that this is a transplanted view. Mark the declared lView as
14015
- // having
14016
- // transplanted views so that those views can participate in CD.
14017
- declarationContainer[ACTIVE_INDEX] |= 1 /* HAS_TRANSPLANTED_VIEWS */;
14018
- }
14151
+ const declaredComponentLView = lView[DECLARATION_COMPONENT_VIEW];
14152
+ ngDevMode && assertDefined(declaredComponentLView, 'Missing declaredComponentLView');
14153
+ if (declaredComponentLView !== insertedComponentLView) {
14154
+ // At this point the declaration-component is not same as insertion-component; this means that
14155
+ // this is a transplanted view. Mark the declared lView as having transplanted views so that
14156
+ // those views can participate in CD.
14157
+ declarationContainer[ACTIVE_INDEX] |= 1 /* HAS_TRANSPLANTED_VIEWS */;
14019
14158
  }
14020
14159
  if (movedViews === null) {
14021
14160
  declarationContainer[MOVED_VIEWS] = [lView];
@@ -14036,8 +14175,17 @@ function detachMovedView(declarationContainer, lView) {
14036
14175
  /** @type {?} */
14037
14176
  const movedViews = (/** @type {?} */ (declarationContainer[MOVED_VIEWS]));
14038
14177
  /** @type {?} */
14039
- const declaredViewIndex = movedViews.indexOf(lView);
14040
- movedViews.splice(declaredViewIndex, 1);
14178
+ const declarationViewIndex = movedViews.indexOf(lView);
14179
+ /** @type {?} */
14180
+ const insertionLContainer = (/** @type {?} */ (lView[PARENT]));
14181
+ ngDevMode && assertLContainer(insertionLContainer);
14182
+ // If the view was marked for refresh but then detached before it was checked (where the flag
14183
+ // would be cleared and the counter decremented), we need to decrement the view counter here
14184
+ // instead.
14185
+ if (lView[FLAGS] & 1024 /* RefreshTransplantedView */) {
14186
+ updateTransplantedViewCount(insertionLContainer, -1);
14187
+ }
14188
+ movedViews.splice(declarationViewIndex, 1);
14041
14189
  }
14042
14190
  /**
14043
14191
  * Detaches a view from a container.
@@ -15318,11 +15466,20 @@ function collectNativeNodes(tView, lView, tNode, result, isProjection = false) {
15318
15466
  /** @type {?} */
15319
15467
  const componentHost = (/** @type {?} */ (componentView[T_HOST]));
15320
15468
  /** @type {?} */
15321
- const parentView = getLViewParent(componentView);
15469
+ const slotIdx = (/** @type {?} */ (tNode.projection));
15470
+ ngDevMode &&
15471
+ assertDefined(componentHost.projection, 'Components with projection nodes (<ng-content>) must have projection slots defined.');
15322
15472
  /** @type {?} */
15323
- let firstProjectedNode = ((/** @type {?} */ (componentHost.projection)))[(/** @type {?} */ (tNode.projection))];
15324
- if (firstProjectedNode !== null && parentView !== null) {
15325
- collectNativeNodes(parentView[TVIEW], parentView, firstProjectedNode, result, true);
15473
+ const nodesInSlot = (/** @type {?} */ (componentHost.projection))[slotIdx];
15474
+ if (Array.isArray(nodesInSlot)) {
15475
+ result.push(...nodesInSlot);
15476
+ }
15477
+ else {
15478
+ /** @type {?} */
15479
+ const parentView = (/** @type {?} */ (getLViewParent(componentView)));
15480
+ ngDevMode &&
15481
+ assertDefined(parentView, 'Component views should always have a parent view (component\'s host view)');
15482
+ collectNativeNodes(parentView[TVIEW], parentView, nodesInSlot, result, true);
15326
15483
  }
15327
15484
  }
15328
15485
  tNode = isProjection ? tNode.projectionNext : tNode.next;
@@ -20810,33 +20967,9 @@ function tick(component) {
20810
20967
 
20811
20968
  /**
20812
20969
  * @fileoverview added by tsickle
20813
- * Generated from: packages/core/src/render3/instructions/container.ts
20970
+ * Generated from: packages/core/src/render3/instructions/template.ts
20814
20971
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
20815
20972
  */
20816
- /**
20817
- * Creates an LContainer for inline views, e.g.
20818
- *
20819
- * % if (showing) {
20820
- * <div></div>
20821
- * % }
20822
- *
20823
- * \@codeGenApi
20824
- * @param {?} index The index of the container in the data array
20825
- *
20826
- * @return {?}
20827
- */
20828
- function ɵɵcontainer(index) {
20829
- /** @type {?} */
20830
- const lView = getLView();
20831
- /** @type {?} */
20832
- const tView = getTView();
20833
- /** @type {?} */
20834
- const tNode = containerInternal(tView, lView, index, null, null);
20835
- if (tView.firstCreatePass) {
20836
- tNode.tViews = [];
20837
- }
20838
- setIsNotParent();
20839
- }
20840
20973
  /**
20841
20974
  * @param {?} index
20842
20975
  * @param {?} tView
@@ -20915,106 +21048,6 @@ function ɵɵtemplate(index, templateFn, decls, vars, tagName, attrsIndex, local
20915
21048
  saveResolvedLocalsInData(lView, tNode, localRefExtractor);
20916
21049
  }
20917
21050
  }
20918
- /**
20919
- * Sets a container up to receive views.
20920
- *
20921
- * \@codeGenApi
20922
- * @param {?} index The index of the container in the data array
20923
- *
20924
- * @return {?}
20925
- */
20926
- function ɵɵcontainerRefreshStart(index) {
20927
- /** @type {?} */
20928
- const lView = getLView();
20929
- /** @type {?} */
20930
- const tView = getTView();
20931
- /** @type {?} */
20932
- let previousOrParentTNode = (/** @type {?} */ (load(tView.data, index)));
20933
- ngDevMode && assertNodeType(previousOrParentTNode, 0 /* Container */);
20934
- setPreviousOrParentTNode(previousOrParentTNode, true);
20935
- lView[index + HEADER_OFFSET][ACTIVE_INDEX] = 0;
20936
- // We need to execute init hooks here so ngOnInit hooks are called in top level views
20937
- // before they are called in embedded views (for backwards compatibility).
20938
- if (!getCheckNoChangesMode()) {
20939
- /** @type {?} */
20940
- const hooksInitPhaseCompleted = (lView[FLAGS] & 3 /* InitPhaseStateMask */) === 3 /* InitPhaseCompleted */;
20941
- if (hooksInitPhaseCompleted) {
20942
- /** @type {?} */
20943
- const preOrderCheckHooks = tView.preOrderCheckHooks;
20944
- if (preOrderCheckHooks !== null) {
20945
- executeCheckHooks(lView, preOrderCheckHooks, null);
20946
- }
20947
- }
20948
- else {
20949
- /** @type {?} */
20950
- const preOrderHooks = tView.preOrderHooks;
20951
- if (preOrderHooks !== null) {
20952
- executeInitAndCheckHooks(lView, preOrderHooks, 0 /* OnInitHooksToBeRun */, null);
20953
- }
20954
- incrementInitPhaseFlags(lView, 0 /* OnInitHooksToBeRun */);
20955
- }
20956
- }
20957
- }
20958
- /**
20959
- * Marks the end of the LContainer.
20960
- *
20961
- * Marking the end of LContainer is the time when to child views get inserted or removed.
20962
- *
20963
- * \@codeGenApi
20964
- * @return {?}
20965
- */
20966
- function ɵɵcontainerRefreshEnd() {
20967
- /** @type {?} */
20968
- let previousOrParentTNode = getPreviousOrParentTNode();
20969
- if (getIsParent()) {
20970
- setIsNotParent();
20971
- }
20972
- else {
20973
- ngDevMode && assertNodeType(previousOrParentTNode, 2 /* View */);
20974
- ngDevMode && assertHasParent(previousOrParentTNode);
20975
- previousOrParentTNode = (/** @type {?} */ (previousOrParentTNode.parent));
20976
- setPreviousOrParentTNode(previousOrParentTNode, false);
20977
- }
20978
- ngDevMode && assertNodeType(previousOrParentTNode, 0 /* Container */);
20979
- /** @type {?} */
20980
- const lContainer = getLView()[previousOrParentTNode.index];
20981
- /** @type {?} */
20982
- const nextIndex = getLContainerActiveIndex(lContainer);
20983
- // remove extra views at the end of the container
20984
- while (nextIndex < lContainer.length - CONTAINER_HEADER_OFFSET) {
20985
- removeView(lContainer, nextIndex);
20986
- }
20987
- }
20988
- /**
20989
- * @param {?} tView
20990
- * @param {?} lView
20991
- * @param {?} nodeIndex
20992
- * @param {?} tagName
20993
- * @param {?} attrs
20994
- * @return {?}
20995
- */
20996
- function containerInternal(tView, lView, nodeIndex, tagName, attrs) {
20997
- ngDevMode &&
20998
- assertEqual(getBindingIndex(), tView.bindingStartIndex, 'container nodes should be created before any bindings');
20999
- /** @type {?} */
21000
- const adjustedIndex = nodeIndex + HEADER_OFFSET;
21001
- ngDevMode && assertDataInRange(lView, nodeIndex + HEADER_OFFSET);
21002
- ngDevMode && ngDevMode.rendererCreateComment++;
21003
- /** @type {?} */
21004
- const comment = lView[adjustedIndex] =
21005
- lView[RENDERER].createComment(ngDevMode ? 'container' : '');
21006
- /** @type {?} */
21007
- const tNode = getOrCreateTNode(tView, lView[T_HOST], nodeIndex, 0 /* Container */, tagName, attrs);
21008
- /** @type {?} */
21009
- const lContainer = lView[adjustedIndex] = createLContainer(comment, lView, comment, tNode);
21010
- appendChild(tView, lView, comment, tNode);
21011
- attachPatchData(comment, lView);
21012
- // Containers are added to the current view tree instead of their embedded views
21013
- // because views can be removed and re-inserted.
21014
- addToViewTree(lView, lContainer);
21015
- ngDevMode && assertNodeType(getPreviousOrParentTNode(), 0 /* Container */);
21016
- return tNode;
21017
- }
21018
21051
 
21019
21052
  /**
21020
21053
  * @fileoverview added by tsickle
@@ -21490,141 +21523,6 @@ function ɵɵelementContainer(index, attrsIndex, localRefsIndex) {
21490
21523
  ɵɵelementContainerEnd();
21491
21524
  }
21492
21525
 
21493
- /**
21494
- * @fileoverview added by tsickle
21495
- * Generated from: packages/core/src/render3/instructions/embedded_view.ts
21496
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
21497
- */
21498
- /**
21499
- * Marks the start of an embedded view.
21500
- *
21501
- * \@codeGenApi
21502
- * @param {?} viewBlockId The ID of this view
21503
- * @param {?} decls
21504
- * @param {?} vars
21505
- * @return {?} boolean Whether or not this view is in creation mode
21506
- *
21507
- */
21508
- function ɵɵembeddedViewStart(viewBlockId, decls, vars) {
21509
- /** @type {?} */
21510
- const lView = getLView();
21511
- /** @type {?} */
21512
- const previousOrParentTNode = getPreviousOrParentTNode();
21513
- // The previous node can be a view node if we are processing an inline for loop
21514
- /** @type {?} */
21515
- const containerTNode = previousOrParentTNode.type === 2 /* View */ ?
21516
- (/** @type {?} */ (previousOrParentTNode.parent)) :
21517
- previousOrParentTNode;
21518
- /** @type {?} */
21519
- const lContainer = (/** @type {?} */ (lView[containerTNode.index]));
21520
- ngDevMode && assertNodeType(containerTNode, 0 /* Container */);
21521
- /** @type {?} */
21522
- let viewToRender = scanForView(lContainer, getLContainerActiveIndex(lContainer), viewBlockId);
21523
- if (viewToRender) {
21524
- setIsParent();
21525
- enterView(viewToRender, viewToRender[TVIEW].node);
21526
- }
21527
- else {
21528
- // When we create a new LView, we always reset the state of the instructions.
21529
- viewToRender = createLView(lView, getOrCreateEmbeddedTView(viewBlockId, decls, vars, (/** @type {?} */ (containerTNode))), null, 16 /* CheckAlways */, null, null);
21530
- /** @type {?} */
21531
- const tParentNode = getIsParent() ? previousOrParentTNode :
21532
- previousOrParentTNode && previousOrParentTNode.parent;
21533
- assignTViewNodeToLView(viewToRender[TVIEW], tParentNode, viewBlockId, viewToRender);
21534
- enterView(viewToRender, viewToRender[TVIEW].node);
21535
- }
21536
- if (lContainer) {
21537
- if (isCreationMode(viewToRender)) {
21538
- // it is a new view, insert it into collection of views for a given container
21539
- insertView(viewToRender[TVIEW], viewToRender, lContainer, getLContainerActiveIndex(lContainer));
21540
- }
21541
- lContainer[ACTIVE_INDEX] += 2 /* INCREMENT */;
21542
- }
21543
- return isCreationMode(viewToRender) ? 1 /* Create */ | 2 /* Update */ :
21544
- 2 /* Update */;
21545
- }
21546
- /**
21547
- * Initialize the TView (e.g. static data) for the active embedded view.
21548
- *
21549
- * Each embedded view block must create or retrieve its own TView. Otherwise, the embedded view's
21550
- * static data for a particular node would overwrite the static data for a node in the view above
21551
- * it with the same index (since it's in the same template).
21552
- *
21553
- * @param {?} viewIndex The index of the TView in TNode.tViews
21554
- * @param {?} decls The number of nodes, local refs, and pipes in this template
21555
- * @param {?} vars The number of bindings and pure function bindings in this template
21556
- * @param {?} parent
21557
- * @return {?} TView
21558
- */
21559
- function getOrCreateEmbeddedTView(viewIndex, decls, vars, parent) {
21560
- /** @type {?} */
21561
- const tView = getLView()[TVIEW];
21562
- ngDevMode && assertNodeType(parent, 0 /* Container */);
21563
- /** @type {?} */
21564
- const containerTViews = (/** @type {?} */ (parent.tViews));
21565
- ngDevMode && assertDefined(containerTViews, 'TView expected');
21566
- ngDevMode && assertEqual(Array.isArray(containerTViews), true, 'TViews should be in an array');
21567
- if (viewIndex >= containerTViews.length || containerTViews[viewIndex] == null) {
21568
- containerTViews[viewIndex] = createTView(2 /* Embedded */, viewIndex, null, decls, vars, tView.directiveRegistry, tView.pipeRegistry, null, null, tView.consts);
21569
- }
21570
- return containerTViews[viewIndex];
21571
- }
21572
- /**
21573
- * Looks for a view with a given view block id inside a provided LContainer.
21574
- * Removes views that need to be deleted in the process.
21575
- *
21576
- * @param {?} lContainer to search for views
21577
- * @param {?} startIdx starting index in the views array to search from
21578
- * @param {?} viewBlockId exact view block id to look for
21579
- * @return {?}
21580
- */
21581
- function scanForView(lContainer, startIdx, viewBlockId) {
21582
- for (let i = startIdx + CONTAINER_HEADER_OFFSET; i < lContainer.length; i++) {
21583
- /** @type {?} */
21584
- const viewAtPositionId = lContainer[i][TVIEW].id;
21585
- if (viewAtPositionId === viewBlockId) {
21586
- return lContainer[i];
21587
- }
21588
- else if (viewAtPositionId < viewBlockId) {
21589
- // found a view that should not be at this position - remove
21590
- removeView(lContainer, i - CONTAINER_HEADER_OFFSET);
21591
- }
21592
- else {
21593
- // found a view with id greater than the one we are searching for
21594
- // which means that required view doesn't exist and can't be found at
21595
- // later positions in the views array - stop the searchdef.cont here
21596
- break;
21597
- }
21598
- }
21599
- return null;
21600
- }
21601
- /**
21602
- * Marks the end of an embedded view.
21603
- *
21604
- * \@codeGenApi
21605
- * @return {?}
21606
- */
21607
- function ɵɵembeddedViewEnd() {
21608
- /** @type {?} */
21609
- const lView = getLView();
21610
- /** @type {?} */
21611
- const tView = getTView();
21612
- /** @type {?} */
21613
- const viewHost = lView[T_HOST];
21614
- /** @type {?} */
21615
- const context = lView[CONTEXT];
21616
- if (isCreationMode(lView)) {
21617
- renderView(tView, lView, context); // creation mode pass
21618
- }
21619
- refreshView(tView, lView, tView.template, context); // update mode pass
21620
- // update mode pass
21621
- /** @type {?} */
21622
- const lContainer = (/** @type {?} */ (lView[PARENT]));
21623
- ngDevMode && assertLContainerOrUndefined(lContainer);
21624
- leaveView();
21625
- setPreviousOrParentTNode((/** @type {?} */ (viewHost)), false);
21626
- }
21627
-
21628
21526
  /**
21629
21527
  * @fileoverview added by tsickle
21630
21528
  * Generated from: packages/core/src/render3/instructions/get_current_view.ts
@@ -21699,7 +21597,7 @@ function ɵɵlistener(eventName, listenerFn, useCapture = false, eventTargetReso
21699
21597
  return ɵɵlistener;
21700
21598
  }
21701
21599
  /**
21702
- * Registers a synthetic host listener (e.g. `(\@foo.start)`) on a component.
21600
+ * Registers a synthetic host listener (e.g. `(\@foo.start)`) on a component or directive.
21703
21601
  *
21704
21602
  * This instruction is for compatibility purposes and is designed to ensure that a
21705
21603
  * synthetic host listener (e.g. `\@HostListener('\@foo.start')`) properly gets rendered
@@ -21726,9 +21624,11 @@ function ɵɵcomponentHostSyntheticListener(eventName, listenerFn, useCapture =
21726
21624
  /** @type {?} */
21727
21625
  const lView = getLView();
21728
21626
  /** @type {?} */
21729
- const renderer = loadComponentRenderer(tNode, lView);
21730
- /** @type {?} */
21731
21627
  const tView = getTView();
21628
+ /** @type {?} */
21629
+ const currentDef = getCurrentDirectiveDef(tView.data);
21630
+ /** @type {?} */
21631
+ const renderer = loadComponentRenderer(currentDef, tNode, lView);
21732
21632
  listenerInternal(tView, lView, renderer, tNode, eventName, listenerFn, useCapture, eventTargetResolver);
21733
21633
  return ɵɵcomponentHostSyntheticListener;
21734
21634
  }
@@ -23718,7 +23618,7 @@ function stylingFirstUpdatePass(tView, tStylingKey, bindingIndex, isClassBased)
23718
23618
  */
23719
23619
  function wrapInStaticStylingKey(tData, tNode, stylingKey, isClassBased) {
23720
23620
  /** @type {?} */
23721
- const hostDirectiveDef = getHostDirectiveDef(tData);
23621
+ const hostDirectiveDef = getCurrentDirectiveDef(tData);
23722
23622
  /** @type {?} */
23723
23623
  let residual = isClassBased ? tNode.residualClasses : tNode.residualStyles;
23724
23624
  if (hostDirectiveDef === null) {
@@ -23967,18 +23867,6 @@ function collectStylingFromTAttrs(stylingKey, attrs, isClassBased) {
23967
23867
  }
23968
23868
  return stylingKey === undefined ? null : stylingKey;
23969
23869
  }
23970
- /**
23971
- * Retrieve the current `DirectiveDef` which is active when `hostBindings` style instruction is
23972
- * being executed (or `null` if we are in `template`.)
23973
- *
23974
- * @param {?} tData Current `TData` where the `DirectiveDef` will be looked up at.
23975
- * @return {?}
23976
- */
23977
- function getHostDirectiveDef(tData) {
23978
- /** @type {?} */
23979
- const currentDirectiveIndex = getCurrentDirectiveIndex();
23980
- return currentDirectiveIndex === -1 ? null : (/** @type {?} */ (tData[currentDirectiveIndex]));
23981
- }
23982
23870
  /**
23983
23871
  * Convert user input to `KeyValueArray`.
23984
23872
  *
@@ -25798,7 +25686,7 @@ function ɵɵhostProperty(propName, value, sanitizer) {
25798
25686
  return ɵɵhostProperty;
25799
25687
  }
25800
25688
  /**
25801
- * Updates a synthetic host binding (e.g. `[\@foo]`) on a component.
25689
+ * Updates a synthetic host binding (e.g. `[\@foo]`) on a component or directive.
25802
25690
  *
25803
25691
  * This instruction is for compatibility purposes and is designed to ensure that a
25804
25692
  * synthetic host binding (e.g. `\@HostBinding('\@foo')`) properly gets rendered in
@@ -25830,7 +25718,9 @@ function ɵɵupdateSyntheticHostBinding(propName, value, sanitizer) {
25830
25718
  /** @type {?} */
25831
25719
  const tNode = getSelectedTNode();
25832
25720
  /** @type {?} */
25833
- const renderer = loadComponentRenderer(tNode, lView);
25721
+ const currentDef = getCurrentDirectiveDef(tView.data);
25722
+ /** @type {?} */
25723
+ const renderer = loadComponentRenderer(currentDef, tNode, lView);
25834
25724
  elementPropertyInternal(tView, tNode, lView, propName, value, renderer, sanitizer, true);
25835
25725
  ngDevMode && storePropertyBindingMetadata(tView.data, tNode, propName, bindingIndex);
25836
25726
  }
@@ -28288,7 +28178,7 @@ if (false) {
28288
28178
  * \@publicApi
28289
28179
  * @type {?}
28290
28180
  */
28291
- const VERSION = new Version('9.1.3');
28181
+ const VERSION = new Version('9.1.7');
28292
28182
 
28293
28183
  /**
28294
28184
  * @fileoverview added by tsickle
@@ -34195,18 +34085,20 @@ class ComponentFactory$1 extends ComponentFactory {
34195
34085
  }
34196
34086
  }
34197
34087
  }
34198
- tElementNode = (/** @type {?} */ (getTNode(rootLView[TVIEW], 0)));
34199
- if (projectableNodes) {
34200
- // projectable nodes can be passed as array of arrays or an array of iterables (ngUpgrade
34201
- // case). Here we do normalize passed data structure to be an array of arrays to avoid
34202
- // complex checks down the line.
34203
- tElementNode.projection = projectableNodes.map((/**
34204
- * @param {?} nodesforSlot
34205
- * @return {?}
34206
- */
34207
- (nodesforSlot) => {
34208
- return Array.from(nodesforSlot);
34209
- }));
34088
+ tElementNode = (/** @type {?} */ (getTNode(rootTView, 0)));
34089
+ if (projectableNodes !== undefined) {
34090
+ /** @type {?} */
34091
+ const projection = tElementNode.projection = [];
34092
+ for (let i = 0; i < this.ngContentSelectors.length; i++) {
34093
+ /** @type {?} */
34094
+ const nodesforSlot = projectableNodes[i];
34095
+ // Projectable nodes can be passed as array of arrays or an array of iterables (ngUpgrade
34096
+ // case). Here we do normalize passed data structure to be an array of arrays to avoid
34097
+ // complex checks down the line.
34098
+ // We also normalize the length of the passed in projectable nodes (to match the number of
34099
+ // <ng-container> slots defined by a component).
34100
+ projection.push(nodesforSlot != null ? Array.from(nodesforSlot) : null);
34101
+ }
34210
34102
  }
34211
34103
  // TODO: should LifecycleHooksFeature and other host features be generated by the compiler and
34212
34104
  // executed here?
@@ -34607,6 +34499,8 @@ function normalizeLocale(locale) {
34607
34499
  * Generated from: packages/core/src/i18n/localization.ts
34608
34500
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
34609
34501
  */
34502
+ /** @type {?} */
34503
+ const pluralMapping = ['zero', 'one', 'two', 'few', 'many'];
34610
34504
  /**
34611
34505
  * Returns the plural case based on the locale
34612
34506
  * @param {?} value
@@ -34615,21 +34509,10 @@ function normalizeLocale(locale) {
34615
34509
  */
34616
34510
  function getPluralCase(value, locale) {
34617
34511
  /** @type {?} */
34618
- const plural = getLocalePluralCase(locale)(value);
34619
- switch (plural) {
34620
- case 0:
34621
- return 'zero';
34622
- case 1:
34623
- return 'one';
34624
- case 2:
34625
- return 'two';
34626
- case 3:
34627
- return 'few';
34628
- case 4:
34629
- return 'many';
34630
- default:
34631
- return 'other';
34632
- }
34512
+ const plural = getLocalePluralCase(locale)(parseInt(value, 10));
34513
+ /** @type {?} */
34514
+ const result = pluralMapping[plural];
34515
+ return (result !== undefined) ? result : 'other';
34633
34516
  }
34634
34517
  /**
34635
34518
  * The locale id that the application is using by default (for translations and ICU expressions).
@@ -39029,10 +38912,7 @@ const ɵ0$d = /**
39029
38912
  'ɵɵProvidersFeature': ɵɵProvidersFeature,
39030
38913
  'ɵɵCopyDefinitionFeature': ɵɵCopyDefinitionFeature,
39031
38914
  'ɵɵInheritDefinitionFeature': ɵɵInheritDefinitionFeature,
39032
- 'ɵɵcontainer': ɵɵcontainer,
39033
38915
  'ɵɵnextContext': ɵɵnextContext,
39034
- 'ɵɵcontainerRefreshStart': ɵɵcontainerRefreshStart,
39035
- 'ɵɵcontainerRefreshEnd': ɵɵcontainerRefreshEnd,
39036
38916
  'ɵɵnamespaceHTML': ɵɵnamespaceHTML,
39037
38917
  'ɵɵnamespaceMathML': ɵɵnamespaceMathML,
39038
38918
  'ɵɵnamespaceSVG': ɵɵnamespaceSVG,
@@ -39132,8 +39012,6 @@ const ɵ0$d = /**
39132
39012
  'ɵɵtextInterpolate7': ɵɵtextInterpolate7,
39133
39013
  'ɵɵtextInterpolate8': ɵɵtextInterpolate8,
39134
39014
  'ɵɵtextInterpolateV': ɵɵtextInterpolateV,
39135
- 'ɵɵembeddedViewStart': ɵɵembeddedViewStart,
39136
- 'ɵɵembeddedViewEnd': ɵɵembeddedViewEnd,
39137
39015
  'ɵɵi18n': ɵɵi18n,
39138
39016
  'ɵɵi18nAttributes': ɵɵi18nAttributes,
39139
39017
  'ɵɵi18nExp': ɵɵi18nExp,
@@ -48502,5 +48380,5 @@ if (ngDevMode) {
48502
48380
  * Generated bundle index. Do not edit.
48503
48381
  */
48504
48382
 
48505
- export { ANALYZE_FOR_ENTRY_COMPONENTS, APP_BOOTSTRAP_LISTENER, APP_ID, APP_INITIALIZER, ApplicationInitStatus, ApplicationModule, ApplicationRef, Attribute, COMPILER_OPTIONS, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Compiler, CompilerFactory, Component, ComponentFactory, ComponentFactoryResolver, ComponentRef, ContentChild, ContentChildren, DEFAULT_CURRENCY_CODE, DebugElement, DebugEventListener, DebugNode$1 as DebugNode, DefaultIterableDiffer, Directive, ElementRef, EmbeddedViewRef, ErrorHandler, EventEmitter, Host, HostBinding, HostListener, INJECTOR, Inject, InjectFlags, Injectable, InjectionToken, Injector, Input, IterableDiffers, KeyValueDiffers, LOCALE_ID$1 as LOCALE_ID, MissingTranslationStrategy, ModuleWithComponentFactories, NO_ERRORS_SCHEMA, NgModule, NgModuleFactory, NgModuleFactoryLoader, NgModuleRef, NgProbeToken, NgZone, Optional, Output, PACKAGE_ROOT_URL, PLATFORM_ID, PLATFORM_INITIALIZER, Pipe, PlatformRef, Query, QueryList, ReflectiveInjector, ReflectiveKey, Renderer2, RendererFactory2, RendererStyleFlags2, ResolvedReflectiveFactory, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, SystemJsNgModuleLoader, SystemJsNgModuleLoaderConfig, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, Type, VERSION, Version, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation$1 as ViewEncapsulation, ViewRef$1 as ViewRef, WrappedValue, asNativeElements, assertPlatform, createPlatform, createPlatformFactory, defineInjectable, destroyPlatform, enableProdMode, forwardRef, getDebugNode$1 as getDebugNode, getModuleFactory, getPlatform, inject, isDevMode, platformCore, resolveForwardRef, setTestabilityGetter, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, APP_ID_RANDOM_PROVIDER as ɵAPP_ID_RANDOM_PROVIDER, ChangeDetectorStatus as ɵChangeDetectorStatus, CodegenComponentFactoryResolver as ɵCodegenComponentFactoryResolver, Compiler_compileModuleAndAllComponentsAsync__POST_R3__ as ɵCompiler_compileModuleAndAllComponentsAsync__POST_R3__, Compiler_compileModuleAndAllComponentsSync__POST_R3__ as ɵCompiler_compileModuleAndAllComponentsSync__POST_R3__, Compiler_compileModuleAsync__POST_R3__ as ɵCompiler_compileModuleAsync__POST_R3__, Compiler_compileModuleSync__POST_R3__ as ɵCompiler_compileModuleSync__POST_R3__, ComponentFactory as ɵComponentFactory, Console as ɵConsole, DEFAULT_LOCALE_ID as ɵDEFAULT_LOCALE_ID, EMPTY_ARRAY$4 as ɵEMPTY_ARRAY, EMPTY_MAP as ɵEMPTY_MAP, INJECTOR_IMPL__POST_R3__ as ɵINJECTOR_IMPL__POST_R3__, INJECTOR_SCOPE as ɵINJECTOR_SCOPE, 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$1 as ɵNgModuleFactory, NoopNgZone as ɵNoopNgZone, ReflectionCapabilities as ɵReflectionCapabilities, ComponentFactory$1 as ɵRender3ComponentFactory, ComponentRef$1 as ɵRender3ComponentRef, NgModuleRef$1 as ɵRender3NgModuleRef, SWITCH_CHANGE_DETECTOR_REF_FACTORY__POST_R3__ as ɵSWITCH_CHANGE_DETECTOR_REF_FACTORY__POST_R3__, SWITCH_COMPILE_COMPONENT__POST_R3__ as ɵSWITCH_COMPILE_COMPONENT__POST_R3__, SWITCH_COMPILE_DIRECTIVE__POST_R3__ as ɵSWITCH_COMPILE_DIRECTIVE__POST_R3__, SWITCH_COMPILE_INJECTABLE__POST_R3__ as ɵSWITCH_COMPILE_INJECTABLE__POST_R3__, SWITCH_COMPILE_NGMODULE__POST_R3__ as ɵSWITCH_COMPILE_NGMODULE__POST_R3__, SWITCH_COMPILE_PIPE__POST_R3__ as ɵSWITCH_COMPILE_PIPE__POST_R3__, SWITCH_ELEMENT_REF_FACTORY__POST_R3__ as ɵSWITCH_ELEMENT_REF_FACTORY__POST_R3__, SWITCH_IVY_ENABLED__POST_R3__ as ɵSWITCH_IVY_ENABLED__POST_R3__, SWITCH_RENDERER2_FACTORY__POST_R3__ as ɵSWITCH_RENDERER2_FACTORY__POST_R3__, SWITCH_TEMPLATE_REF_FACTORY__POST_R3__ as ɵSWITCH_TEMPLATE_REF_FACTORY__POST_R3__, SWITCH_VIEW_CONTAINER_REF_FACTORY__POST_R3__ as ɵSWITCH_VIEW_CONTAINER_REF_FACTORY__POST_R3__, _sanitizeHtml as ɵ_sanitizeHtml, _sanitizeStyle as ɵ_sanitizeStyle, _sanitizeUrl as ɵ_sanitizeUrl, allowSanitizationBypassAndThrow as ɵallowSanitizationBypassAndThrow, anchorDef as ɵand, isForwardRef as ɵangular_packages_core_core_a, injectInjectorOnly as ɵangular_packages_core_core_b, getLView as ɵangular_packages_core_core_ba, getPreviousOrParentTNode as ɵangular_packages_core_core_bb, getBindingRoot as ɵangular_packages_core_core_bc, nextContextImpl as ɵangular_packages_core_core_bd, pureFunction1Internal as ɵangular_packages_core_core_bf, pureFunction2Internal as ɵangular_packages_core_core_bg, pureFunction3Internal as ɵangular_packages_core_core_bh, pureFunction4Internal as ɵangular_packages_core_core_bi, pureFunctionVInternal as ɵangular_packages_core_core_bj, getUrlSanitizer as ɵangular_packages_core_core_bk, makeParamDecorator as ɵangular_packages_core_core_bl, makePropDecorator as ɵangular_packages_core_core_bm, getClosureSafeProperty as ɵangular_packages_core_core_bn, noSideEffects as ɵangular_packages_core_core_bp, getRootContext as ɵangular_packages_core_core_bq, NullInjector as ɵangular_packages_core_core_c, ReflectiveInjector_ as ɵangular_packages_core_core_d, ReflectiveDependency as ɵangular_packages_core_core_e, resolveReflectiveProviders as ɵangular_packages_core_core_f, _appIdRandomProviderFactory as ɵangular_packages_core_core_g, createElementRef as ɵangular_packages_core_core_h, createTemplateRef as ɵangular_packages_core_core_i, getModuleFactory__PRE_R3__ as ɵangular_packages_core_core_j, DebugNode__PRE_R3__ as ɵangular_packages_core_core_k, DebugElement__PRE_R3__ as ɵangular_packages_core_core_l, getDebugNodeR2__PRE_R3__ as ɵangular_packages_core_core_m, DefaultIterableDifferFactory as ɵangular_packages_core_core_n, DefaultKeyValueDifferFactory as ɵangular_packages_core_core_o, _iterableDiffersFactory as ɵangular_packages_core_core_p, _keyValueDiffersFactory as ɵangular_packages_core_core_q, _localeFactory as ɵangular_packages_core_core_r, APPLICATION_MODULE_PROVIDERS as ɵangular_packages_core_core_s, zoneSchedulerFactory as ɵangular_packages_core_core_t, USD_CURRENCY_CODE as ɵangular_packages_core_core_u, _def as ɵangular_packages_core_core_v, DebugContext as ɵangular_packages_core_core_w, SCHEDULER as ɵangular_packages_core_core_x, injectAttributeImpl as ɵangular_packages_core_core_y, instructionState as ɵangular_packages_core_core_z, bypassSanitizationTrustHtml as ɵbypassSanitizationTrustHtml, bypassSanitizationTrustResourceUrl as ɵbypassSanitizationTrustResourceUrl, bypassSanitizationTrustScript as ɵbypassSanitizationTrustScript, bypassSanitizationTrustStyle as ɵbypassSanitizationTrustStyle, bypassSanitizationTrustUrl as ɵbypassSanitizationTrustUrl, createComponentFactory as ɵccf, clearOverrides as ɵclearOverrides, clearResolutionOfComponentResourcesQueue as ɵclearResolutionOfComponentResourcesQueue, createNgModuleFactory as ɵcmf, compileComponent as ɵcompileComponent, compileDirective as ɵcompileDirective, compileNgModule as ɵcompileNgModule, compileNgModuleDefs as ɵcompileNgModuleDefs, compileNgModuleFactory__POST_R3__ as ɵcompileNgModuleFactory__POST_R3__, compilePipe as ɵcompilePipe, createInjector as ɵcreateInjector, createRendererType2 as ɵcrt, defaultIterableDiffers as ɵdefaultIterableDiffers, defaultKeyValueDiffers as ɵdefaultKeyValueDiffers, detectChanges as ɵdetectChanges, devModeEqual$1 as ɵdevModeEqual, directiveDef as ɵdid, elementDef as ɵeld, findLocaleData as ɵfindLocaleData, flushModuleScopingQueueAsMuchAsPossible as ɵflushModuleScopingQueueAsMuchAsPossible, getComponentViewDefinitionFactory as ɵgetComponentViewDefinitionFactory, getDebugNodeR2 as ɵgetDebugNodeR2, getDebugNode__POST_R3__ as ɵgetDebugNode__POST_R3__, getDirectives as ɵgetDirectives, getHostElement as ɵgetHostElement, getInjectableDef as ɵgetInjectableDef, getLContext as ɵgetLContext, getLocaleCurrencyCode as ɵgetLocaleCurrencyCode, getLocalePluralCase as ɵgetLocalePluralCase, getModuleFactory__POST_R3__ as ɵgetModuleFactory__POST_R3__, getSanitizationBypassType as ɵgetSanitizationBypassType, _global as ɵglobal, initServicesIfNeeded as ɵinitServicesIfNeeded, inlineInterpolate as ɵinlineInterpolate, interpolate as ɵinterpolate, isBoundToModule__POST_R3__ as ɵisBoundToModule__POST_R3__, isDefaultChangeDetectionStrategy as ɵisDefaultChangeDetectionStrategy, isListLikeIterable$1 as ɵisListLikeIterable, isObservable as ɵisObservable, isPromise as ɵisPromise, ivyEnabled as ɵivyEnabled, looseIdentical as ɵlooseIdentical, makeDecorator as ɵmakeDecorator, markDirty as ɵmarkDirty, moduleDef as ɵmod, moduleProvideDef as ɵmpd, ngContentDef as ɵncd, nodeValue as ɵnov, overrideComponentView as ɵoverrideComponentView, overrideProvider as ɵoverrideProvider, pureArrayDef as ɵpad, patchComponentDefWithScope as ɵpatchComponentDefWithScope, pipeDef as ɵpid, pureObjectDef as ɵpod, purePipeDef as ɵppd, providerDef as ɵprd, publishDefaultGlobalUtils as ɵpublishDefaultGlobalUtils, publishGlobalUtil as ɵpublishGlobalUtil, queryDef as ɵqud, registerLocaleData as ɵregisterLocaleData, registerModuleFactory as ɵregisterModuleFactory, registerNgModuleType as ɵregisterNgModuleType, renderComponent$1 as ɵrenderComponent, resetCompiledComponents as ɵresetCompiledComponents, resetJitOptions as ɵresetJitOptions, resolveComponentResources as ɵresolveComponentResources, setClassMetadata as ɵsetClassMetadata, setCurrentInjector as ɵsetCurrentInjector, setDocument as ɵsetDocument, setLocaleId as ɵsetLocaleId, store as ɵstore, stringify as ɵstringify, textDef as ɵted, transitiveScopesFor as ɵtransitiveScopesFor, unregisterAllLocaleData as ɵunregisterLocaleData, unwrapValue as ɵunv, unwrapSafeValue as ɵunwrapSafeValue, viewDef as ɵvid, whenRendered as ɵwhenRendered, ɵɵCopyDefinitionFeature, ɵɵInheritDefinitionFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵadvance, ɵɵattribute, ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV, ɵɵclassMap, ɵɵclassMapInterpolate1, ɵɵclassMapInterpolate2, ɵɵclassMapInterpolate3, ɵɵclassMapInterpolate4, ɵɵclassMapInterpolate5, ɵɵclassMapInterpolate6, ɵɵclassMapInterpolate7, ɵɵclassMapInterpolate8, ɵɵclassMapInterpolateV, ɵɵclassProp, ɵɵcomponentHostSyntheticListener, ɵɵcontainer, ɵɵcontainerRefreshEnd, ɵɵcontainerRefreshStart, ɵɵcontentQuery, ɵɵdefaultStyleSanitizer, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineInjectable, ɵɵdefineInjector, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdisableBindings, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵembeddedViewEnd, ɵɵembeddedViewStart, ɵɵenableBindings, ɵɵgetCurrentView, ɵɵgetFactoryOf, ɵɵgetInheritedFactory, ɵɵhostProperty, ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart, ɵɵinject, ɵɵinjectAttribute, ɵɵinjectPipeChangeDetectorRef, ɵɵinvalidFactory, ɵɵinvalidFactoryDep, ɵɵlistener, ɵɵloadQuery, ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG, ɵɵnextContext, ɵɵ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, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵrestoreView, ɵɵsanitizeHtml, ɵɵsanitizeResourceUrl, ɵɵsanitizeScript, ɵɵsanitizeStyle, ɵɵsanitizeUrl, ɵɵsanitizeUrlOrResourceUrl, ɵɵselect, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵstaticContentQuery, ɵɵstaticViewQuery, ɵɵstyleMap, ɵɵstyleMapInterpolate1, ɵɵstyleMapInterpolate2, ɵɵstyleMapInterpolate3, ɵɵstyleMapInterpolate4, ɵɵstyleMapInterpolate5, ɵɵstyleMapInterpolate6, ɵɵstyleMapInterpolate7, ɵɵstyleMapInterpolate8, ɵɵstyleMapInterpolateV, ɵɵstyleProp, ɵɵstylePropInterpolate1, ɵɵstylePropInterpolate2, ɵɵstylePropInterpolate3, ɵɵstylePropInterpolate4, ɵɵstylePropInterpolate5, ɵɵstylePropInterpolate6, ɵɵstylePropInterpolate7, ɵɵstylePropInterpolate8, ɵɵstylePropInterpolateV, ɵɵstyleSanitizer, ɵɵtemplate, ɵɵtemplateRefExtractor, ɵɵtext, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, ɵɵupdateSyntheticHostBinding, ɵɵviewQuery };
48383
+ export { ANALYZE_FOR_ENTRY_COMPONENTS, APP_BOOTSTRAP_LISTENER, APP_ID, APP_INITIALIZER, ApplicationInitStatus, ApplicationModule, ApplicationRef, Attribute, COMPILER_OPTIONS, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Compiler, CompilerFactory, Component, ComponentFactory, ComponentFactoryResolver, ComponentRef, ContentChild, ContentChildren, DEFAULT_CURRENCY_CODE, DebugElement, DebugEventListener, DebugNode$1 as DebugNode, DefaultIterableDiffer, Directive, ElementRef, EmbeddedViewRef, ErrorHandler, EventEmitter, Host, HostBinding, HostListener, INJECTOR, Inject, InjectFlags, Injectable, InjectionToken, Injector, Input, IterableDiffers, KeyValueDiffers, LOCALE_ID$1 as LOCALE_ID, MissingTranslationStrategy, ModuleWithComponentFactories, NO_ERRORS_SCHEMA, NgModule, NgModuleFactory, NgModuleFactoryLoader, NgModuleRef, NgProbeToken, NgZone, Optional, Output, PACKAGE_ROOT_URL, PLATFORM_ID, PLATFORM_INITIALIZER, Pipe, PlatformRef, Query, QueryList, ReflectiveInjector, ReflectiveKey, Renderer2, RendererFactory2, RendererStyleFlags2, ResolvedReflectiveFactory, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, SystemJsNgModuleLoader, SystemJsNgModuleLoaderConfig, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, Type, VERSION, Version, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation$1 as ViewEncapsulation, ViewRef$1 as ViewRef, WrappedValue, asNativeElements, assertPlatform, createPlatform, createPlatformFactory, defineInjectable, destroyPlatform, enableProdMode, forwardRef, getDebugNode$1 as getDebugNode, getModuleFactory, getPlatform, inject, isDevMode, platformCore, resolveForwardRef, setTestabilityGetter, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, APP_ID_RANDOM_PROVIDER as ɵAPP_ID_RANDOM_PROVIDER, ChangeDetectorStatus as ɵChangeDetectorStatus, CodegenComponentFactoryResolver as ɵCodegenComponentFactoryResolver, Compiler_compileModuleAndAllComponentsAsync__POST_R3__ as ɵCompiler_compileModuleAndAllComponentsAsync__POST_R3__, Compiler_compileModuleAndAllComponentsSync__POST_R3__ as ɵCompiler_compileModuleAndAllComponentsSync__POST_R3__, Compiler_compileModuleAsync__POST_R3__ as ɵCompiler_compileModuleAsync__POST_R3__, Compiler_compileModuleSync__POST_R3__ as ɵCompiler_compileModuleSync__POST_R3__, ComponentFactory as ɵComponentFactory, Console as ɵConsole, DEFAULT_LOCALE_ID as ɵDEFAULT_LOCALE_ID, EMPTY_ARRAY$4 as ɵEMPTY_ARRAY, EMPTY_MAP as ɵEMPTY_MAP, INJECTOR_IMPL__POST_R3__ as ɵINJECTOR_IMPL__POST_R3__, INJECTOR_SCOPE as ɵINJECTOR_SCOPE, 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$1 as ɵNgModuleFactory, NoopNgZone as ɵNoopNgZone, ReflectionCapabilities as ɵReflectionCapabilities, ComponentFactory$1 as ɵRender3ComponentFactory, ComponentRef$1 as ɵRender3ComponentRef, NgModuleRef$1 as ɵRender3NgModuleRef, SWITCH_CHANGE_DETECTOR_REF_FACTORY__POST_R3__ as ɵSWITCH_CHANGE_DETECTOR_REF_FACTORY__POST_R3__, SWITCH_COMPILE_COMPONENT__POST_R3__ as ɵSWITCH_COMPILE_COMPONENT__POST_R3__, SWITCH_COMPILE_DIRECTIVE__POST_R3__ as ɵSWITCH_COMPILE_DIRECTIVE__POST_R3__, SWITCH_COMPILE_INJECTABLE__POST_R3__ as ɵSWITCH_COMPILE_INJECTABLE__POST_R3__, SWITCH_COMPILE_NGMODULE__POST_R3__ as ɵSWITCH_COMPILE_NGMODULE__POST_R3__, SWITCH_COMPILE_PIPE__POST_R3__ as ɵSWITCH_COMPILE_PIPE__POST_R3__, SWITCH_ELEMENT_REF_FACTORY__POST_R3__ as ɵSWITCH_ELEMENT_REF_FACTORY__POST_R3__, SWITCH_IVY_ENABLED__POST_R3__ as ɵSWITCH_IVY_ENABLED__POST_R3__, SWITCH_RENDERER2_FACTORY__POST_R3__ as ɵSWITCH_RENDERER2_FACTORY__POST_R3__, SWITCH_TEMPLATE_REF_FACTORY__POST_R3__ as ɵSWITCH_TEMPLATE_REF_FACTORY__POST_R3__, SWITCH_VIEW_CONTAINER_REF_FACTORY__POST_R3__ as ɵSWITCH_VIEW_CONTAINER_REF_FACTORY__POST_R3__, _sanitizeHtml as ɵ_sanitizeHtml, _sanitizeStyle as ɵ_sanitizeStyle, _sanitizeUrl as ɵ_sanitizeUrl, allowSanitizationBypassAndThrow as ɵallowSanitizationBypassAndThrow, anchorDef as ɵand, isForwardRef as ɵangular_packages_core_core_a, injectInjectorOnly as ɵangular_packages_core_core_b, getLView as ɵangular_packages_core_core_ba, getPreviousOrParentTNode as ɵangular_packages_core_core_bb, getBindingRoot as ɵangular_packages_core_core_bc, nextContextImpl as ɵangular_packages_core_core_bd, pureFunction1Internal as ɵangular_packages_core_core_bf, pureFunction2Internal as ɵangular_packages_core_core_bg, pureFunction3Internal as ɵangular_packages_core_core_bh, pureFunction4Internal as ɵangular_packages_core_core_bi, pureFunctionVInternal as ɵangular_packages_core_core_bj, getUrlSanitizer as ɵangular_packages_core_core_bk, makeParamDecorator as ɵangular_packages_core_core_bl, makePropDecorator as ɵangular_packages_core_core_bm, getClosureSafeProperty as ɵangular_packages_core_core_bn, noSideEffects as ɵangular_packages_core_core_bp, getRootContext as ɵangular_packages_core_core_bq, NullInjector as ɵangular_packages_core_core_c, ReflectiveInjector_ as ɵangular_packages_core_core_d, ReflectiveDependency as ɵangular_packages_core_core_e, resolveReflectiveProviders as ɵangular_packages_core_core_f, _appIdRandomProviderFactory as ɵangular_packages_core_core_g, createElementRef as ɵangular_packages_core_core_h, createTemplateRef as ɵangular_packages_core_core_i, getModuleFactory__PRE_R3__ as ɵangular_packages_core_core_j, DebugNode__PRE_R3__ as ɵangular_packages_core_core_k, DebugElement__PRE_R3__ as ɵangular_packages_core_core_l, getDebugNodeR2__PRE_R3__ as ɵangular_packages_core_core_m, DefaultIterableDifferFactory as ɵangular_packages_core_core_n, DefaultKeyValueDifferFactory as ɵangular_packages_core_core_o, _iterableDiffersFactory as ɵangular_packages_core_core_p, _keyValueDiffersFactory as ɵangular_packages_core_core_q, _localeFactory as ɵangular_packages_core_core_r, APPLICATION_MODULE_PROVIDERS as ɵangular_packages_core_core_s, zoneSchedulerFactory as ɵangular_packages_core_core_t, USD_CURRENCY_CODE as ɵangular_packages_core_core_u, _def as ɵangular_packages_core_core_v, DebugContext as ɵangular_packages_core_core_w, SCHEDULER as ɵangular_packages_core_core_x, injectAttributeImpl as ɵangular_packages_core_core_y, instructionState as ɵangular_packages_core_core_z, bypassSanitizationTrustHtml as ɵbypassSanitizationTrustHtml, bypassSanitizationTrustResourceUrl as ɵbypassSanitizationTrustResourceUrl, bypassSanitizationTrustScript as ɵbypassSanitizationTrustScript, bypassSanitizationTrustStyle as ɵbypassSanitizationTrustStyle, bypassSanitizationTrustUrl as ɵbypassSanitizationTrustUrl, createComponentFactory as ɵccf, clearOverrides as ɵclearOverrides, clearResolutionOfComponentResourcesQueue as ɵclearResolutionOfComponentResourcesQueue, createNgModuleFactory as ɵcmf, compileComponent as ɵcompileComponent, compileDirective as ɵcompileDirective, compileNgModule as ɵcompileNgModule, compileNgModuleDefs as ɵcompileNgModuleDefs, compileNgModuleFactory__POST_R3__ as ɵcompileNgModuleFactory__POST_R3__, compilePipe as ɵcompilePipe, createInjector as ɵcreateInjector, createRendererType2 as ɵcrt, defaultIterableDiffers as ɵdefaultIterableDiffers, defaultKeyValueDiffers as ɵdefaultKeyValueDiffers, detectChanges as ɵdetectChanges, devModeEqual$1 as ɵdevModeEqual, directiveDef as ɵdid, elementDef as ɵeld, findLocaleData as ɵfindLocaleData, flushModuleScopingQueueAsMuchAsPossible as ɵflushModuleScopingQueueAsMuchAsPossible, getComponentViewDefinitionFactory as ɵgetComponentViewDefinitionFactory, getDebugNodeR2 as ɵgetDebugNodeR2, getDebugNode__POST_R3__ as ɵgetDebugNode__POST_R3__, getDirectives as ɵgetDirectives, getHostElement as ɵgetHostElement, getInjectableDef as ɵgetInjectableDef, getLContext as ɵgetLContext, getLocaleCurrencyCode as ɵgetLocaleCurrencyCode, getLocalePluralCase as ɵgetLocalePluralCase, getModuleFactory__POST_R3__ as ɵgetModuleFactory__POST_R3__, getSanitizationBypassType as ɵgetSanitizationBypassType, _global as ɵglobal, initServicesIfNeeded as ɵinitServicesIfNeeded, inlineInterpolate as ɵinlineInterpolate, interpolate as ɵinterpolate, isBoundToModule__POST_R3__ as ɵisBoundToModule__POST_R3__, isDefaultChangeDetectionStrategy as ɵisDefaultChangeDetectionStrategy, isListLikeIterable$1 as ɵisListLikeIterable, isObservable as ɵisObservable, isPromise as ɵisPromise, ivyEnabled as ɵivyEnabled, looseIdentical as ɵlooseIdentical, makeDecorator as ɵmakeDecorator, markDirty as ɵmarkDirty, moduleDef as ɵmod, moduleProvideDef as ɵmpd, ngContentDef as ɵncd, nodeValue as ɵnov, overrideComponentView as ɵoverrideComponentView, overrideProvider as ɵoverrideProvider, pureArrayDef as ɵpad, patchComponentDefWithScope as ɵpatchComponentDefWithScope, pipeDef as ɵpid, pureObjectDef as ɵpod, purePipeDef as ɵppd, providerDef as ɵprd, publishDefaultGlobalUtils as ɵpublishDefaultGlobalUtils, publishGlobalUtil as ɵpublishGlobalUtil, queryDef as ɵqud, registerLocaleData as ɵregisterLocaleData, registerModuleFactory as ɵregisterModuleFactory, registerNgModuleType as ɵregisterNgModuleType, renderComponent$1 as ɵrenderComponent, resetCompiledComponents as ɵresetCompiledComponents, resetJitOptions as ɵresetJitOptions, resolveComponentResources as ɵresolveComponentResources, setClassMetadata as ɵsetClassMetadata, setCurrentInjector as ɵsetCurrentInjector, setDocument as ɵsetDocument, setLocaleId as ɵsetLocaleId, store as ɵstore, stringify as ɵstringify, textDef as ɵted, transitiveScopesFor as ɵtransitiveScopesFor, unregisterAllLocaleData as ɵunregisterLocaleData, unwrapValue as ɵunv, unwrapSafeValue as ɵunwrapSafeValue, viewDef as ɵvid, whenRendered as ɵwhenRendered, ɵɵCopyDefinitionFeature, ɵɵInheritDefinitionFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵadvance, ɵɵattribute, ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV, ɵɵclassMap, ɵɵclassMapInterpolate1, ɵɵclassMapInterpolate2, ɵɵclassMapInterpolate3, ɵɵclassMapInterpolate4, ɵɵclassMapInterpolate5, ɵɵclassMapInterpolate6, ɵɵclassMapInterpolate7, ɵɵclassMapInterpolate8, ɵɵclassMapInterpolateV, ɵɵclassProp, ɵɵcomponentHostSyntheticListener, ɵɵcontentQuery, ɵɵdefaultStyleSanitizer, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineInjectable, ɵɵdefineInjector, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdisableBindings, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵenableBindings, ɵɵgetCurrentView, ɵɵgetFactoryOf, ɵɵgetInheritedFactory, ɵɵhostProperty, ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart, ɵɵinject, ɵɵinjectAttribute, ɵɵinjectPipeChangeDetectorRef, ɵɵinvalidFactory, ɵɵinvalidFactoryDep, ɵɵlistener, ɵɵloadQuery, ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG, ɵɵnextContext, ɵɵ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, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵrestoreView, ɵɵsanitizeHtml, ɵɵsanitizeResourceUrl, ɵɵsanitizeScript, ɵɵsanitizeStyle, ɵɵsanitizeUrl, ɵɵsanitizeUrlOrResourceUrl, ɵɵselect, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵstaticContentQuery, ɵɵstaticViewQuery, ɵɵstyleMap, ɵɵstyleMapInterpolate1, ɵɵstyleMapInterpolate2, ɵɵstyleMapInterpolate3, ɵɵstyleMapInterpolate4, ɵɵstyleMapInterpolate5, ɵɵstyleMapInterpolate6, ɵɵstyleMapInterpolate7, ɵɵstyleMapInterpolate8, ɵɵstyleMapInterpolateV, ɵɵstyleProp, ɵɵstylePropInterpolate1, ɵɵstylePropInterpolate2, ɵɵstylePropInterpolate3, ɵɵstylePropInterpolate4, ɵɵstylePropInterpolate5, ɵɵstylePropInterpolate6, ɵɵstylePropInterpolate7, ɵɵstylePropInterpolate8, ɵɵstylePropInterpolateV, ɵɵstyleSanitizer, ɵɵtemplate, ɵɵtemplateRefExtractor, ɵɵtext, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, ɵɵupdateSyntheticHostBinding, ɵɵviewQuery };
48506
48384
  //# sourceMappingURL=core.js.map