@angular/core 8.2.1 → 8.2.5

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 (34) hide show
  1. package/bundles/core-testing.umd.js +94 -1
  2. package/bundles/core-testing.umd.js.map +1 -1
  3. package/bundles/core-testing.umd.min.js +3 -2
  4. package/bundles/core-testing.umd.min.js.map +1 -1
  5. package/bundles/core.umd.js +394 -41
  6. package/bundles/core.umd.js.map +1 -1
  7. package/bundles/core.umd.min.js +36 -55
  8. package/bundles/core.umd.min.js.map +1 -1
  9. package/core.d.ts +5 -2
  10. package/core.metadata.json +1 -1
  11. package/esm2015/core.externs.js +4 -4
  12. package/esm2015/src/metadata/directives.js +1 -1
  13. package/esm2015/src/version.js +1 -1
  14. package/esm5/src/metadata/directives.js +1 -1
  15. package/esm5/src/version.js +1 -1
  16. package/fesm2015/core.js +7323 -42
  17. package/fesm2015/core.js.map +1 -1
  18. package/fesm2015/testing.js +593 -2
  19. package/fesm2015/testing.js.map +1 -1
  20. package/fesm5/core.js +295 -40
  21. package/fesm5/core.js.map +1 -1
  22. package/fesm5/testing.js +15 -2
  23. package/fesm5/testing.js.map +1 -1
  24. package/package.json +1 -1
  25. package/schematics/migrations/static-queries/strategies/usage_strategy/usage_strategy.js +5 -5
  26. package/src/r3_symbols.d.ts +1 -1
  27. package/testing/testing.d.ts +1 -1
  28. package/testing.d.ts +1 -1
  29. package/schematics/migrations/injectable-pipe/angular/injectable_pipe_visitor.d.ts +0 -30
  30. package/schematics/migrations/injectable-pipe/angular/injectable_pipe_visitor.js +0 -68
  31. package/schematics/migrations/injectable-pipe/index.d.ts +0 -14
  32. package/schematics/migrations/injectable-pipe/index.js +0 -85
  33. package/schematics/migrations/injectable-pipe/util.d.ts +0 -19
  34. package/schematics/migrations/injectable-pipe/util.js +0 -44
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v8.2.1
2
+ * @license Angular v8.2.5
3
3
  * (c) 2010-2019 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -50,6 +50,16 @@
50
50
  return __assign.apply(this, arguments);
51
51
  };
52
52
 
53
+ function __rest(s, e) {
54
+ var t = {};
55
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
56
+ t[p] = s[p];
57
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
58
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)
59
+ t[p[i]] = s[p[i]];
60
+ return t;
61
+ }
62
+
53
63
  function __decorate(decorators, target, key, desc) {
54
64
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
55
65
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -65,6 +75,47 @@
65
75
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
66
76
  }
67
77
 
78
+ function __awaiter(thisArg, _arguments, P, generator) {
79
+ return new (P || (P = Promise))(function (resolve, reject) {
80
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
81
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
82
+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
83
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
84
+ });
85
+ }
86
+
87
+ function __generator(thisArg, body) {
88
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
89
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
90
+ function verb(n) { return function (v) { return step([n, v]); }; }
91
+ function step(op) {
92
+ if (f) throw new TypeError("Generator is already executing.");
93
+ while (_) try {
94
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
95
+ if (y = 0, t) op = [op[0] & 2, t.value];
96
+ switch (op[0]) {
97
+ case 0: case 1: t = op; break;
98
+ case 4: _.label++; return { value: op[1], done: false };
99
+ case 5: _.label++; y = op[1]; op = [0]; continue;
100
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
101
+ default:
102
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
103
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
104
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
105
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
106
+ if (t[2]) _.ops.pop();
107
+ _.trys.pop(); continue;
108
+ }
109
+ op = body.call(thisArg, _);
110
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
111
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
112
+ }
113
+ }
114
+
115
+ function __exportStar(m, exports) {
116
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
117
+ }
118
+
68
119
  function __values(o) {
69
120
  var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
70
121
  if (m) return m.call(o);
@@ -97,6 +148,53 @@
97
148
  for (var ar = [], i = 0; i < arguments.length; i++)
98
149
  ar = ar.concat(__read(arguments[i]));
99
150
  return ar;
151
+ }
152
+
153
+ function __await(v) {
154
+ return this instanceof __await ? (this.v = v, this) : new __await(v);
155
+ }
156
+
157
+ function __asyncGenerator(thisArg, _arguments, generator) {
158
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
159
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
160
+ return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
161
+ function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
162
+ function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
163
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
164
+ function fulfill(value) { resume("next", value); }
165
+ function reject(value) { resume("throw", value); }
166
+ function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
167
+ }
168
+
169
+ function __asyncDelegator(o) {
170
+ var i, p;
171
+ return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
172
+ function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
173
+ }
174
+
175
+ function __asyncValues(o) {
176
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
177
+ var m = o[Symbol.asyncIterator], i;
178
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
179
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
180
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
181
+ }
182
+
183
+ function __makeTemplateObject(cooked, raw) {
184
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
185
+ return cooked;
186
+ };
187
+
188
+ function __importStar(mod) {
189
+ if (mod && mod.__esModule) return mod;
190
+ var result = {};
191
+ if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
192
+ result.default = mod;
193
+ return result;
194
+ }
195
+
196
+ function __importDefault(mod) {
197
+ return (mod && mod.__esModule) ? mod : { default: mod };
100
198
  }
101
199
 
102
200
  /**
@@ -971,6 +1069,11 @@
971
1069
  * Use of this source code is governed by an MIT-style license that can be
972
1070
  * found in the LICENSE file at https://angular.io/license
973
1071
  */
1072
+ function assertNumber(actual, msg) {
1073
+ if (typeof actual != 'number') {
1074
+ throwError(msg);
1075
+ }
1076
+ }
974
1077
  function assertEqual(actual, expected, msg) {
975
1078
  if (actual != expected) {
976
1079
  throwError(msg);
@@ -981,6 +1084,11 @@
981
1084
  throwError(msg);
982
1085
  }
983
1086
  }
1087
+ function assertSame(actual, expected, msg) {
1088
+ if (actual !== expected) {
1089
+ throwError(msg);
1090
+ }
1091
+ }
984
1092
  function assertNotSame(actual, expected, msg) {
985
1093
  if (actual === expected) {
986
1094
  throwError(msg);
@@ -996,6 +1104,11 @@
996
1104
  throwError(msg);
997
1105
  }
998
1106
  }
1107
+ function assertNotDefined(actual, msg) {
1108
+ if (actual != null) {
1109
+ throwError(msg);
1110
+ }
1111
+ }
999
1112
  function assertDefined(actual, msg) {
1000
1113
  if (actual == null) {
1001
1114
  throwError(msg);
@@ -1605,6 +1718,9 @@
1605
1718
  var PREORDER_HOOK_FLAGS = 18;
1606
1719
  /** Size of LView's header. Necessary to adjust for it when setting slots. */
1607
1720
  var HEADER_OFFSET = 19;
1721
+ // Note: This hack is necessary so we don't erroneously get a circular dependency
1722
+ // failure based on types.
1723
+ var unusedValueExportToPlacateAjd = 1;
1608
1724
 
1609
1725
  /**
1610
1726
  * @license
@@ -1639,6 +1755,9 @@
1639
1755
  * remove views from the DOM when they are no longer required.
1640
1756
  */
1641
1757
  var CONTAINER_HEADER_OFFSET = 9;
1758
+ // Note: This hack is necessary so we don't erroneously get a circular dependency
1759
+ // failure based on types.
1760
+ var unusedValueExportToPlacateAjd$1 = 1;
1642
1761
 
1643
1762
  /**
1644
1763
  * @license
@@ -1703,6 +1822,11 @@
1703
1822
  assertDefined(tNode, 'previousOrParentTNode should exist!');
1704
1823
  assertDefined(tNode.parent, 'previousOrParentTNode should have a parent');
1705
1824
  }
1825
+ function assertDataNext(lView, index, arr) {
1826
+ if (arr == null)
1827
+ arr = lView;
1828
+ assertEqual(arr.length, index, "index " + index + " expected to be at the end of arr (length " + arr.length + ")");
1829
+ }
1706
1830
  function assertLContainerOrUndefined(value) {
1707
1831
  value && assertEqual(isLContainer(value), true, 'Expecting LContainer or undefined or null');
1708
1832
  }
@@ -1852,6 +1976,9 @@
1852
1976
  return obj !== null && typeof obj == 'object' &&
1853
1977
  Object.getPrototypeOf(obj) == NodeInjectorFactory.prototype;
1854
1978
  }
1979
+ // Note: This hack is necessary so we don't erroneously get a circular dependency
1980
+ // failure based on types.
1981
+ var unusedValueExportToPlacateAjd$2 = 1;
1855
1982
 
1856
1983
  /**
1857
1984
  * @license
@@ -2254,6 +2381,34 @@
2254
2381
  }
2255
2382
  return value;
2256
2383
  }
2384
+ /**
2385
+ * Returns `LView` or `null` if not found.
2386
+ * @param value wrapped value of `RNode`, `LView`, `LContainer`
2387
+ */
2388
+ function unwrapLView(value) {
2389
+ while (Array.isArray(value)) {
2390
+ // This check is same as `isLView()` but we don't call at as we don't want to call
2391
+ // `Array.isArray()` twice and give JITer more work for inlining.
2392
+ if (typeof value[TYPE] === 'object')
2393
+ return value;
2394
+ value = value[HOST];
2395
+ }
2396
+ return null;
2397
+ }
2398
+ /**
2399
+ * Returns `LContainer` or `null` if not found.
2400
+ * @param value wrapped value of `RNode`, `LView`, `LContainer`
2401
+ */
2402
+ function unwrapLContainer(value) {
2403
+ while (Array.isArray(value)) {
2404
+ // This check is same as `isLContainer()` but we don't call at as we don't want to call
2405
+ // `Array.isArray()` twice and give JITer more work for inlining.
2406
+ if (value[TYPE] === true)
2407
+ return value;
2408
+ value = value[HOST];
2409
+ }
2410
+ return null;
2411
+ }
2257
2412
  /**
2258
2413
  * Retrieves an element value from the provided `viewData`, by unwrapping
2259
2414
  * from any containers, component views, or style contexts.
@@ -3056,6 +3211,9 @@
3056
3211
  return 6 /* MapBindingsBindingsStartPosition */ +
3057
3212
  context[4 /* MapBindingsValuesCountPosition */];
3058
3213
  }
3214
+ function isMapBased(prop) {
3215
+ return prop === MAP_BASED_ENTRY_PROP_NAME;
3216
+ }
3059
3217
  function hasValueChanged(a, b) {
3060
3218
  var compareValueA = Array.isArray(a) ? a[0 /* RawValuePosition */] : a;
3061
3219
  var compareValueB = Array.isArray(b) ? b[0 /* RawValuePosition */] : b;
@@ -3165,6 +3323,9 @@
3165
3323
  var domRendererFactory3 = {
3166
3324
  createRenderer: ɵ0$3
3167
3325
  };
3326
+ // Note: This hack is necessary so we don't erroneously get a circular dependency
3327
+ // failure based on types.
3328
+ var unusedValueExportToPlacateAjd$3 = 1;
3168
3329
 
3169
3330
  /**
3170
3331
  * Assigns all attribute values to the provided element via the inferred renderer.
@@ -3242,6 +3403,15 @@
3242
3403
  // iterated over.
3243
3404
  return i;
3244
3405
  }
3406
+ function attrsStylingIndexOf(attrs, startIndex) {
3407
+ for (var i = startIndex; i < attrs.length; i++) {
3408
+ var val = attrs[i];
3409
+ if (val === 1 /* Classes */ || val === 2 /* Styles */) {
3410
+ return i;
3411
+ }
3412
+ }
3413
+ return -1;
3414
+ }
3245
3415
  /**
3246
3416
  * Test whether the given value is a marker that indicates that the following
3247
3417
  * attribute values in a `TAttributes` array are only the names of attributes,
@@ -3952,6 +4122,7 @@
3952
4122
  * Use of this source code is governed by an MIT-style license that can be
3953
4123
  * found in the LICENSE file at https://angular.io/license
3954
4124
  */
4125
+ var ERROR_TYPE = 'ngType';
3955
4126
  var ERROR_DEBUG_CONTEXT = 'ngDebugContext';
3956
4127
  var ERROR_ORIGINAL_ERROR = 'ngOriginalError';
3957
4128
  var ERROR_LOGGER = 'ngErrorLogger';
@@ -3969,6 +4140,9 @@
3969
4140
  * Use of this source code is governed by an MIT-style license that can be
3970
4141
  * found in the LICENSE file at https://angular.io/license
3971
4142
  */
4143
+ function getType(error) {
4144
+ return error[ERROR_TYPE];
4145
+ }
3972
4146
  function getDebugContext(error) {
3973
4147
  return error[ERROR_DEBUG_CONTEXT];
3974
4148
  }
@@ -4400,6 +4574,8 @@
4400
4574
  * This regular expression was taken from the Closure sanitization library.
4401
4575
  */
4402
4576
  var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi;
4577
+ /* A pattern that matches safe srcset values */
4578
+ var SAFE_SRCSET_PATTERN = /^(?:(?:https?|file):|[^&:/?#]*(?:[/?#]|$))/gi;
4403
4579
  /** A pattern that matches safe data URLs. Only matches image, video and audio types. */
4404
4580
  var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i;
4405
4581
  function _sanitizeUrl(url) {
@@ -5397,6 +5573,8 @@
5397
5573
  }
5398
5574
 
5399
5575
  // Note: This hack is necessary so we don't erroneously get a circular dependency
5576
+ // failure based on types.
5577
+ var unusedValueExportToPlacateAjd$4 = 1;
5400
5578
 
5401
5579
  /**
5402
5580
  * @license
@@ -5405,6 +5583,9 @@
5405
5583
  * Use of this source code is governed by an MIT-style license that can be
5406
5584
  * found in the LICENSE file at https://angular.io/license
5407
5585
  */
5586
+ // Note: This hack is necessary so we don't erroneously get a circular dependency
5587
+ // failure based on types.
5588
+ var unusedValueExportToPlacateAjd$5 = 1;
5408
5589
 
5409
5590
  /**
5410
5591
  * @license
@@ -5413,6 +5594,7 @@
5413
5594
  * Use of this source code is governed by an MIT-style license that can be
5414
5595
  * found in the LICENSE file at https://angular.io/license
5415
5596
  */
5597
+ var unusedValueToPlacateAjd = unusedValueExportToPlacateAjd$4 + unusedValueExportToPlacateAjd$5;
5416
5598
  var NG_TEMPLATE_SELECTOR = 'ng-template';
5417
5599
  function isCssClassMatching(nodeClassAttrVal, cssClassToMatch) {
5418
5600
  var nodeClassesLen = nodeClassAttrVal.length;
@@ -6193,6 +6375,7 @@
6193
6375
  (nativeStyle && nativeStyle.removeProperty(prop));
6194
6376
  }
6195
6377
  };
6378
+ var ɵ0$4 = setStyle;
6196
6379
  /**
6197
6380
  * Adds/removes the provided className value to the provided element.
6198
6381
  */
@@ -6215,6 +6398,7 @@
6215
6398
  }
6216
6399
  }
6217
6400
  };
6401
+ var ɵ1$1 = setClass;
6218
6402
  /**
6219
6403
  * Iterates over all provided styling entries and renders them on the element.
6220
6404
  *
@@ -6299,6 +6483,9 @@
6299
6483
  var COMMENT_MARKER = {
6300
6484
  marker: 'comment'
6301
6485
  };
6486
+ // Note: This hack is necessary so we don't erroneously get a circular dependency
6487
+ // failure based on types.
6488
+ var unusedValueExportToPlacateAjd$6 = 1;
6302
6489
 
6303
6490
  /**
6304
6491
  * @license
@@ -7515,12 +7702,12 @@
7515
7702
  setSelectedIndex(index);
7516
7703
  }
7517
7704
 
7518
- var ɵ0$4 = function () { return Promise.resolve(null); };
7705
+ var ɵ0$5 = function () { return Promise.resolve(null); };
7519
7706
  /**
7520
7707
  * A permanent marker promise which signifies that the current CD tree is
7521
7708
  * clean.
7522
7709
  */
7523
- var _CLEAN_PROMISE = (ɵ0$4)();
7710
+ var _CLEAN_PROMISE = (ɵ0$5)();
7524
7711
  /**
7525
7712
  * Refreshes the view, executing the following steps in that order:
7526
7713
  * triggers init hooks, refreshes dynamic embedded views, triggers content hooks, sets host
@@ -8922,6 +9109,16 @@
8922
9109
  function detectChangesInRootView(lView) {
8923
9110
  tickRootContext(lView[CONTEXT]);
8924
9111
  }
9112
+ /**
9113
+ * Checks the change detector and its children, and throws if any changes are detected.
9114
+ *
9115
+ * This is used in development mode to verify that running change detection doesn't
9116
+ * introduce other changes.
9117
+ */
9118
+ function checkNoChanges(component) {
9119
+ var view = getComponentViewByInstance(component);
9120
+ checkNoChangesInternal(view, component);
9121
+ }
8925
9122
  function checkNoChangesInternal(view, context) {
8926
9123
  setCheckNoChangesMode(true);
8927
9124
  try {
@@ -9093,6 +9290,7 @@
9093
9290
  * Use of this source code is governed by an MIT-style license that can be
9094
9291
  * found in the LICENSE file at https://angular.io/license
9095
9292
  */
9293
+ var unusedValueToPlacateAjd$1 = unusedValueExportToPlacateAjd$1 + unusedValueExportToPlacateAjd$4 + unusedValueExportToPlacateAjd$5 + unusedValueExportToPlacateAjd$3 + unusedValueExportToPlacateAjd;
9096
9294
  function getLContainer(tNode, embeddedView) {
9097
9295
  ngDevMode && assertLView(embeddedView);
9098
9296
  var container = embeddedView[PARENT];
@@ -10645,6 +10843,7 @@
10645
10843
  args[_i] = arguments[_i];
10646
10844
  }
10647
10845
  };
10846
+ var ɵ0$6 = SWITCH_CHANGE_DETECTOR_REF_FACTORY__PRE_R3__;
10648
10847
  var SWITCH_CHANGE_DETECTOR_REF_FACTORY = SWITCH_CHANGE_DETECTOR_REF_FACTORY__PRE_R3__;
10649
10848
 
10650
10849
  /**
@@ -11066,8 +11265,8 @@
11066
11265
  },
11067
11266
  });
11068
11267
  }
11069
- var ɵ0$5 = getClosureSafeProperty;
11070
- var USE_VALUE$1 = getClosureSafeProperty({ provide: String, useValue: ɵ0$5 });
11268
+ var ɵ0$7 = getClosureSafeProperty;
11269
+ var USE_VALUE$1 = getClosureSafeProperty({ provide: String, useValue: ɵ0$7 });
11071
11270
  function isUseClassProvider(meta) {
11072
11271
  return meta.useClass !== undefined;
11073
11272
  }
@@ -11088,8 +11287,8 @@
11088
11287
  * Use of this source code is governed by an MIT-style license that can be
11089
11288
  * found in the LICENSE file at https://angular.io/license
11090
11289
  */
11091
- var ɵ0$6 = getClosureSafeProperty;
11092
- var USE_VALUE$2 = getClosureSafeProperty({ provide: String, useValue: ɵ0$6 });
11290
+ var ɵ0$8 = getClosureSafeProperty;
11291
+ var USE_VALUE$2 = getClosureSafeProperty({ provide: String, useValue: ɵ0$8 });
11093
11292
  var EMPTY_ARRAY$1 = [];
11094
11293
  function convertInjectableProviderToFactory(type, provider) {
11095
11294
  if (!provider) {
@@ -11139,14 +11338,14 @@
11139
11338
  * Use of this source code is governed by an MIT-style license that can be
11140
11339
  * found in the LICENSE file at https://angular.io/license
11141
11340
  */
11142
- var ɵ0$7 = function (type, meta) { return SWITCH_COMPILE_INJECTABLE(type, meta); };
11341
+ var ɵ0$9 = function (type, meta) { return SWITCH_COMPILE_INJECTABLE(type, meta); };
11143
11342
  /**
11144
11343
  * Injectable decorator and metadata.
11145
11344
  *
11146
11345
  * @Annotation
11147
11346
  * @publicApi
11148
11347
  */
11149
- var Injectable = makeDecorator('Injectable', undefined, undefined, undefined, ɵ0$7);
11348
+ var Injectable = makeDecorator('Injectable', undefined, undefined, undefined, ɵ0$9);
11150
11349
  /**
11151
11350
  * Supports @Injectable() in JIT mode for Render2.
11152
11351
  */
@@ -11686,11 +11885,13 @@
11686
11885
  var IDENT = function (value) {
11687
11886
  return value;
11688
11887
  };
11888
+ var ɵ0$a = IDENT;
11689
11889
  var EMPTY = [];
11690
11890
  var CIRCULAR$1 = IDENT;
11691
11891
  var MULTI_PROVIDER_FN = function () {
11692
11892
  return Array.prototype.slice.call(arguments);
11693
11893
  };
11894
+ var ɵ1$2 = MULTI_PROVIDER_FN;
11694
11895
  var NO_NEW_LINE$1 = 'ɵ';
11695
11896
  var StaticInjector = /** @class */ (function () {
11696
11897
  function StaticInjector(providers, parent, source) {
@@ -11733,7 +11934,9 @@
11733
11934
  else if (provider.useFactory) {
11734
11935
  fn = provider.useFactory;
11735
11936
  }
11736
- else if (provider.useExisting) ;
11937
+ else if (provider.useExisting) {
11938
+ // Just use IDENT
11939
+ }
11737
11940
  else if (provider.useClass) {
11738
11941
  useNew = true;
11739
11942
  fn = resolveForwardRef(provider.useClass);
@@ -12843,7 +13046,7 @@
12843
13046
  }
12844
13047
  return Query;
12845
13048
  }());
12846
- var ɵ0$8 = function (selector, data) {
13049
+ var ɵ0$b = function (selector, data) {
12847
13050
  if (data === void 0) { data = {}; }
12848
13051
  return (__assign({ selector: selector, first: false, isViewQuery: false, descendants: false }, data));
12849
13052
  };
@@ -12854,8 +13057,8 @@
12854
13057
  * @Annotation
12855
13058
  * @publicApi
12856
13059
  */
12857
- var ContentChildren = makePropDecorator('ContentChildren', ɵ0$8, Query);
12858
- var ɵ1$1 = function (selector, data) {
13060
+ var ContentChildren = makePropDecorator('ContentChildren', ɵ0$b, Query);
13061
+ var ɵ1$3 = function (selector, data) {
12859
13062
  if (data === void 0) { data = {}; }
12860
13063
  return (__assign({ selector: selector, first: true, isViewQuery: false, descendants: true }, data));
12861
13064
  };
@@ -12867,7 +13070,7 @@
12867
13070
  *
12868
13071
  * @publicApi
12869
13072
  */
12870
- var ContentChild = makePropDecorator('ContentChild', ɵ1$1, Query);
13073
+ var ContentChild = makePropDecorator('ContentChild', ɵ1$3, Query);
12871
13074
  var ɵ2 = function (selector, data) {
12872
13075
  if (data === void 0) { data = {}; }
12873
13076
  return (__assign({ selector: selector, first: false, isViewQuery: true, descendants: true }, data));
@@ -12977,6 +13180,9 @@
12977
13180
  componentDefPendingResolution.add(type);
12978
13181
  }
12979
13182
  }
13183
+ function isComponentDefPendingResolution(type) {
13184
+ return componentDefPendingResolution.has(type);
13185
+ }
12980
13186
  function componentNeedsResolution(component) {
12981
13187
  return !!((component.templateUrl && !component.hasOwnProperty('template')) ||
12982
13188
  component.styleUrls && component.styleUrls.length);
@@ -12986,6 +13192,11 @@
12986
13192
  componentResourceResolutionQueue = new Map();
12987
13193
  return old;
12988
13194
  }
13195
+ function restoreComponentResolutionQueue(queue) {
13196
+ componentDefPendingResolution.clear();
13197
+ queue.forEach(function (_, type) { return componentDefPendingResolution.add(type); });
13198
+ componentResourceResolutionQueue = queue;
13199
+ }
12989
13200
  function isComponentResourceResolutionQueueEmpty() {
12990
13201
  return componentResourceResolutionQueue.size === 0;
12991
13202
  }
@@ -13090,6 +13301,44 @@
13090
13301
  * Use of this source code is governed by an MIT-style license that can be
13091
13302
  * found in the LICENSE file at https://angular.io/license
13092
13303
  */
13304
+ function isListLikeIterable(obj) {
13305
+ if (!isJsObject(obj))
13306
+ return false;
13307
+ return Array.isArray(obj) ||
13308
+ (!(obj instanceof Map) && // JS Map are iterables but return entries as [k, v]
13309
+ getSymbolIterator() in obj); // JS Iterable have a Symbol.iterator prop
13310
+ }
13311
+ function areIterablesEqual(a, b, comparator) {
13312
+ var iterator1 = a[getSymbolIterator()]();
13313
+ var iterator2 = b[getSymbolIterator()]();
13314
+ while (true) {
13315
+ var item1 = iterator1.next();
13316
+ var item2 = iterator2.next();
13317
+ if (item1.done && item2.done)
13318
+ return true;
13319
+ if (item1.done || item2.done)
13320
+ return false;
13321
+ if (!comparator(item1.value, item2.value))
13322
+ return false;
13323
+ }
13324
+ }
13325
+ function iterateListLike(obj, fn) {
13326
+ if (Array.isArray(obj)) {
13327
+ for (var i = 0; i < obj.length; i++) {
13328
+ fn(obj[i]);
13329
+ }
13330
+ }
13331
+ else {
13332
+ var iterator = obj[getSymbolIterator()]();
13333
+ var item = void 0;
13334
+ while (!((item = iterator.next()).done)) {
13335
+ fn(item.value);
13336
+ }
13337
+ }
13338
+ }
13339
+ function isJsObject(o) {
13340
+ return o !== null && (typeof o === 'function' || typeof o === 'object');
13341
+ }
13093
13342
 
13094
13343
  /**
13095
13344
  * @license
@@ -13102,6 +13351,23 @@
13102
13351
  function looseIdentical(a, b) {
13103
13352
  return a === b || typeof a === 'number' && typeof b === 'number' && isNaN(a) && isNaN(b);
13104
13353
  }
13354
+ function devModeEqual(a, b) {
13355
+ var isListLikeIterableA = isListLikeIterable(a);
13356
+ var isListLikeIterableB = isListLikeIterable(b);
13357
+ if (isListLikeIterableA && isListLikeIterableB) {
13358
+ return areIterablesEqual(a, b, devModeEqual);
13359
+ }
13360
+ else {
13361
+ var isAObject = a && (typeof a === 'object' || typeof a === 'function');
13362
+ var isBObject = b && (typeof b === 'object' || typeof b === 'function');
13363
+ if (!isListLikeIterableA && isAObject && !isListLikeIterableB && isBObject) {
13364
+ return true;
13365
+ }
13366
+ else {
13367
+ return looseIdentical(a, b);
13368
+ }
13369
+ }
13370
+ }
13105
13371
 
13106
13372
  /**
13107
13373
  * @license
@@ -13110,11 +13376,11 @@
13110
13376
  * Use of this source code is governed by an MIT-style license that can be
13111
13377
  * found in the LICENSE file at https://angular.io/license
13112
13378
  */
13113
- function devModeEqual(a, b) {
13114
- var isListLikeIterableA = isListLikeIterable(a);
13115
- var isListLikeIterableB = isListLikeIterable(b);
13379
+ function devModeEqual$1(a, b) {
13380
+ var isListLikeIterableA = isListLikeIterable$1(a);
13381
+ var isListLikeIterableB = isListLikeIterable$1(b);
13116
13382
  if (isListLikeIterableA && isListLikeIterableB) {
13117
- return areIterablesEqual(a, b, devModeEqual);
13383
+ return areIterablesEqual$1(a, b, devModeEqual$1);
13118
13384
  }
13119
13385
  else {
13120
13386
  var isAObject = a && (typeof a === 'object' || typeof a === 'function');
@@ -13162,14 +13428,14 @@
13162
13428
  WrappedValue.isWrapped = function (value) { return value instanceof WrappedValue; };
13163
13429
  return WrappedValue;
13164
13430
  }());
13165
- function isListLikeIterable(obj) {
13166
- if (!isJsObject(obj))
13431
+ function isListLikeIterable$1(obj) {
13432
+ if (!isJsObject$1(obj))
13167
13433
  return false;
13168
13434
  return Array.isArray(obj) ||
13169
13435
  (!(obj instanceof Map) && // JS Map are iterables but return entries as [k, v]
13170
13436
  getSymbolIterator() in obj); // JS Iterable have a Symbol.iterator prop
13171
13437
  }
13172
- function areIterablesEqual(a, b, comparator) {
13438
+ function areIterablesEqual$1(a, b, comparator) {
13173
13439
  var iterator1 = a[getSymbolIterator()]();
13174
13440
  var iterator2 = b[getSymbolIterator()]();
13175
13441
  while (true) {
@@ -13183,7 +13449,7 @@
13183
13449
  return false;
13184
13450
  }
13185
13451
  }
13186
- function iterateListLike(obj, fn) {
13452
+ function iterateListLike$1(obj, fn) {
13187
13453
  if (Array.isArray(obj)) {
13188
13454
  for (var i = 0; i < obj.length; i++) {
13189
13455
  fn(obj[i]);
@@ -13197,7 +13463,7 @@
13197
13463
  }
13198
13464
  }
13199
13465
  }
13200
- function isJsObject(o) {
13466
+ function isJsObject$1(o) {
13201
13467
  return o !== null && (typeof o === 'function' || typeof o === 'object');
13202
13468
  }
13203
13469
 
@@ -13231,7 +13497,7 @@
13231
13497
  // View engine didn't report undefined values as changed on the first checkNoChanges pass
13232
13498
  // (before the change detection was run).
13233
13499
  var oldValueToCompare = oldValue !== NO_CHANGE ? oldValue : undefined;
13234
- if (!devModeEqual(oldValueToCompare, value)) {
13500
+ if (!devModeEqual$1(oldValueToCompare, value)) {
13235
13501
  throwErrorIfNoChangesMode(oldValue === NO_CHANGE, oldValueToCompare, value);
13236
13502
  }
13237
13503
  }
@@ -13943,6 +14209,23 @@
13943
14209
  ngDevMode && assertDefined(rootView[CONTEXT], 'rootContext should be defined');
13944
14210
  scheduleTick(rootView[CONTEXT], 1 /* DetectChanges */);
13945
14211
  }
14212
+ /**
14213
+ * Used to perform change detection on the whole application.
14214
+ *
14215
+ * This is equivalent to `detectChanges`, but invoked on root component. Additionally, `tick`
14216
+ * executes lifecycle hooks and conditionally checks components based on their
14217
+ * `ChangeDetectionStrategy` and dirtiness.
14218
+ *
14219
+ * The preferred way to trigger change detection is to call `markDirty`. `markDirty` internally
14220
+ * schedules `tick` using a scheduler in order to coalesce multiple `markDirty` calls into a
14221
+ * single change detection run. By default, the scheduler is `requestAnimationFrame`, but can
14222
+ * be changed when calling `renderComponent` and providing the `scheduler` option.
14223
+ */
14224
+ function tick(component) {
14225
+ var rootView = getRootView(component);
14226
+ var rootContext = rootView[CONTEXT];
14227
+ tickRootContext(rootContext);
14228
+ }
13946
14229
 
13947
14230
  /**
13948
14231
  * @license
@@ -17095,6 +17378,20 @@
17095
17378
  function getHostElement(directive) {
17096
17379
  return getLContext(directive).native;
17097
17380
  }
17381
+ /**
17382
+ * Retrieves the rendered text for a given component.
17383
+ *
17384
+ * This function retrieves the host element of a component and
17385
+ * and then returns the `textContent` for that element. This implies
17386
+ * that the text returned will include re-projected content of
17387
+ * the component as well.
17388
+ *
17389
+ * @param component The component to return the content text for.
17390
+ */
17391
+ function getRenderedText(component) {
17392
+ var hostElement = getHostElement(component);
17393
+ return hostElement.textContent || '';
17394
+ }
17098
17395
  function loadLContextFromNode(node) {
17099
17396
  if (!(node instanceof Node))
17100
17397
  throw new Error('Expecting instance of DOM Node');
@@ -17245,6 +17542,13 @@
17245
17542
  * Use of this source code is governed by an MIT-style license that can be
17246
17543
  * found in the LICENSE file at https://angular.io/license
17247
17544
  */
17545
+ var ɵ0$c = function (token, notFoundValue) {
17546
+ throw new Error('NullInjector: Not found: ' + stringifyForError(token));
17547
+ };
17548
+ // TODO: A hack to not pull in the NullInjector from @angular/core.
17549
+ var NULL_INJECTOR$1 = {
17550
+ get: ɵ0$c
17551
+ };
17248
17552
  /**
17249
17553
  * Bootstraps a Component into an existing host element and returns an instance
17250
17554
  * of the component.
@@ -17440,6 +17744,7 @@
17440
17744
  * Use of this source code is governed by an MIT-style license that can be
17441
17745
  * found in the LICENSE file at https://angular.io/license
17442
17746
  */
17747
+ var PRIVATE_PREFIX = '__ngOnChanges_';
17443
17748
  /**
17444
17749
  * The NgOnChangesFeature decorates a component with support for the ngOnChanges
17445
17750
  * lifecycle hook, so it should be included in any component that implements
@@ -18005,6 +18310,9 @@
18005
18310
  return error;
18006
18311
  }
18007
18312
  var ERROR_COMPONENT = 'ngComponent';
18313
+ function getComponent$1(error) {
18314
+ return error[ERROR_COMPONENT];
18315
+ }
18008
18316
  var _NullComponentFactoryResolver = /** @class */ (function () {
18009
18317
  function _NullComponentFactoryResolver() {
18010
18318
  }
@@ -18254,7 +18562,7 @@
18254
18562
  /**
18255
18563
  * @publicApi
18256
18564
  */
18257
- var VERSION = new Version('8.2.1');
18565
+ var VERSION = new Version('8.2.5');
18258
18566
 
18259
18567
  /**
18260
18568
  * @license
@@ -18266,13 +18574,14 @@
18266
18574
  var DefaultIterableDifferFactory = /** @class */ (function () {
18267
18575
  function DefaultIterableDifferFactory() {
18268
18576
  }
18269
- DefaultIterableDifferFactory.prototype.supports = function (obj) { return isListLikeIterable(obj); };
18577
+ DefaultIterableDifferFactory.prototype.supports = function (obj) { return isListLikeIterable$1(obj); };
18270
18578
  DefaultIterableDifferFactory.prototype.create = function (trackByFn) {
18271
18579
  return new DefaultIterableDiffer(trackByFn);
18272
18580
  };
18273
18581
  return DefaultIterableDifferFactory;
18274
18582
  }());
18275
18583
  var trackByIdentity = function (index, item) { return item; };
18584
+ var ɵ0$d = trackByIdentity;
18276
18585
  /**
18277
18586
  * @deprecated v4.0.0 - Should not be part of public API.
18278
18587
  * @publicApi
@@ -18387,7 +18696,7 @@
18387
18696
  DefaultIterableDiffer.prototype.diff = function (collection) {
18388
18697
  if (collection == null)
18389
18698
  collection = [];
18390
- if (!isListLikeIterable(collection)) {
18699
+ if (!isListLikeIterable$1(collection)) {
18391
18700
  throw new Error("Error trying to diff '" + stringify(collection) + "'. Only arrays and iterables are allowed");
18392
18701
  }
18393
18702
  if (this.check(collection)) {
@@ -18428,7 +18737,7 @@
18428
18737
  }
18429
18738
  else {
18430
18739
  index = 0;
18431
- iterateListLike(collection, function (item) {
18740
+ iterateListLike$1(collection, function (item) {
18432
18741
  itemTrackBy = _this._trackByFn(index, item);
18433
18742
  if (record === null || !looseIdentical(record.trackById, itemTrackBy)) {
18434
18743
  record = _this._mismatch(record, item, itemTrackBy, index);
@@ -18940,7 +19249,7 @@
18940
19249
  var DefaultKeyValueDifferFactory = /** @class */ (function () {
18941
19250
  function DefaultKeyValueDifferFactory() {
18942
19251
  }
18943
- DefaultKeyValueDifferFactory.prototype.supports = function (obj) { return obj instanceof Map || isJsObject(obj); };
19252
+ DefaultKeyValueDifferFactory.prototype.supports = function (obj) { return obj instanceof Map || isJsObject$1(obj); };
18944
19253
  DefaultKeyValueDifferFactory.prototype.create = function () { return new DefaultKeyValueDiffer(); };
18945
19254
  return DefaultKeyValueDifferFactory;
18946
19255
  }());
@@ -19000,7 +19309,7 @@
19000
19309
  if (!map) {
19001
19310
  map = new Map();
19002
19311
  }
19003
- else if (!(map instanceof Map || isJsObject(map))) {
19312
+ else if (!(map instanceof Map || isJsObject$1(map))) {
19004
19313
  throw new Error("Error trying to diff '" + stringify(map) + "'. Only maps and objects are allowed");
19005
19314
  }
19006
19315
  return this.check(map) ? this : null;
@@ -19513,6 +19822,22 @@
19513
19822
  }
19514
19823
  return false;
19515
19824
  }
19825
+ /**
19826
+ * Node instance data.
19827
+ *
19828
+ * We have a separate type per NodeType to save memory
19829
+ * (TextData | ElementData | ProviderData | PureExpressionData | QueryList<any>)
19830
+ *
19831
+ * To keep our code monomorphic,
19832
+ * we prohibit using `NodeData` directly but enforce the use of accessors (`asElementData`, ...).
19833
+ * This way, no usage site can get a `NodeData` from view.nodes and then use it for different
19834
+ * purposes.
19835
+ */
19836
+ var NodeData = /** @class */ (function () {
19837
+ function NodeData() {
19838
+ }
19839
+ return NodeData;
19840
+ }());
19516
19841
  /**
19517
19842
  * Accessor for view.nodes, enforcing that every usage site stays monomorphic.
19518
19843
  */
@@ -19645,7 +19970,7 @@
19645
19970
  }
19646
19971
  function checkBindingNoChanges(view, def, bindingIdx, value) {
19647
19972
  var oldValue = view.oldValues[def.bindingIndex + bindingIdx];
19648
- if ((view.state & 1 /* BeforeFirstCheck */) || !devModeEqual(oldValue, value)) {
19973
+ if ((view.state & 1 /* BeforeFirstCheck */) || !devModeEqual$1(oldValue, value)) {
19649
19974
  var bindingName = def.bindings[bindingIdx].name;
19650
19975
  throw expressionChangedAfterItHasBeenCheckedError(Services.createDebugContext(view, def.nodeIndex), bindingName + ": " + oldValue, bindingName + ": " + value, (view.state & 1 /* BeforeFirstCheck */) !== 0);
19651
19976
  }
@@ -21399,6 +21724,16 @@
21399
21724
  return ComponentFactory;
21400
21725
  }(ComponentFactory));
21401
21726
  var componentFactoryResolver = new ComponentFactoryResolver$1();
21727
+ /**
21728
+ * Creates a ComponentFactoryResolver and stores it on the injector. Or, if the
21729
+ * ComponentFactoryResolver
21730
+ * already exists, retrieves the existing ComponentFactoryResolver.
21731
+ *
21732
+ * @returns The ComponentFactoryResolver instance to use
21733
+ */
21734
+ function injectComponentFactoryResolver() {
21735
+ return componentFactoryResolver;
21736
+ }
21402
21737
  /**
21403
21738
  * Represents an instance of a Component created via a {@link ComponentFactory}.
21404
21739
  *
@@ -22832,6 +23167,9 @@
22832
23167
  imports.forEach(function (i) { return registerNgModuleType(i); });
22833
23168
  }
22834
23169
  }
23170
+ function clearModulesForTest() {
23171
+ modules.clear();
23172
+ }
22835
23173
  function getRegisteredNgModuleType(id) {
22836
23174
  return modules.get(id);
22837
23175
  }
@@ -23692,6 +24030,9 @@
23692
24030
  * Use of this source code is governed by an MIT-style license that can be
23693
24031
  * found in the LICENSE file at https://angular.io/license
23694
24032
  */
24033
+ // Note: This hack is necessary so we don't erroneously get a circular dependency
24034
+ // failure based on types.
24035
+ var unusedValueExportToPlacateAjd$7 = 1;
23695
24036
 
23696
24037
  /**
23697
24038
  * @license
@@ -23700,6 +24041,9 @@
23700
24041
  * Use of this source code is governed by an MIT-style license that can be
23701
24042
  * found in the LICENSE file at https://angular.io/license
23702
24043
  */
24044
+ // Note: This hack is necessary so we don't erroneously get a circular dependency
24045
+ // failure based on types.
24046
+ var unusedValueExportToPlacateAjd$8 = 1;
23703
24047
 
23704
24048
  /**
23705
24049
  * @license
@@ -23708,6 +24052,7 @@
23708
24052
  * Use of this source code is governed by an MIT-style license that can be
23709
24053
  * found in the LICENSE file at https://angular.io/license
23710
24054
  */
24055
+ var unusedValueToPlacateAjd$2 = unusedValueExportToPlacateAjd$7 + unusedValueExportToPlacateAjd$2 + unusedValueExportToPlacateAjd$4 + unusedValueExportToPlacateAjd$8;
23711
24056
  var LQuery_ = /** @class */ (function () {
23712
24057
  function LQuery_(queryList) {
23713
24058
  this.queryList = queryList;
@@ -24270,7 +24615,7 @@
24270
24615
  * Use of this source code is governed by an MIT-style license that can be
24271
24616
  * found in the LICENSE file at https://angular.io/license
24272
24617
  */
24273
- var ɵ0$9 = function () { return ({
24618
+ var ɵ0$e = function () { return ({
24274
24619
  'ɵɵattribute': ɵɵattribute,
24275
24620
  'ɵɵattributeInterpolate1': ɵɵattributeInterpolate1,
24276
24621
  'ɵɵattributeInterpolate2': ɵɵattributeInterpolate2,
@@ -24426,7 +24771,7 @@
24426
24771
  *
24427
24772
  * This should be kept up to date with the public exports of @angular/core.
24428
24773
  */
24429
- var angularCoreEnv = (ɵ0$9)();
24774
+ var angularCoreEnv = (ɵ0$e)();
24430
24775
 
24431
24776
  /**
24432
24777
  * @license
@@ -25158,16 +25503,16 @@
25158
25503
  * Use of this source code is governed by an MIT-style license that can be
25159
25504
  * found in the LICENSE file at https://angular.io/license
25160
25505
  */
25161
- var ɵ0$a = function (dir) {
25506
+ var ɵ0$f = function (dir) {
25162
25507
  if (dir === void 0) { dir = {}; }
25163
25508
  return dir;
25164
- }, ɵ1$2 = function (type, meta) { return SWITCH_COMPILE_DIRECTIVE(type, meta); };
25509
+ }, ɵ1$4 = function (type, meta) { return SWITCH_COMPILE_DIRECTIVE(type, meta); };
25165
25510
  /**
25166
25511
  * Type of the Directive metadata.
25167
25512
  *
25168
25513
  * @publicApi
25169
25514
  */
25170
- var Directive = makeDecorator('Directive', ɵ0$a, undefined, undefined, ɵ1$2);
25515
+ var Directive = makeDecorator('Directive', ɵ0$f, undefined, undefined, ɵ1$4);
25171
25516
  var ɵ2$1 = function (c) {
25172
25517
  if (c === void 0) { c = {}; }
25173
25518
  return (__assign({ changeDetection: exports.ChangeDetectionStrategy.Default }, c));
@@ -25255,7 +25600,7 @@
25255
25600
  * Use of this source code is governed by an MIT-style license that can be
25256
25601
  * found in the LICENSE file at https://angular.io/license
25257
25602
  */
25258
- var ɵ0$b = function (ngModule) { return ngModule; }, ɵ1$3 =
25603
+ var ɵ0$g = function (ngModule) { return ngModule; }, ɵ1$5 =
25259
25604
  /**
25260
25605
  * Decorator that marks the following class as an NgModule, and supplies
25261
25606
  * configuration metadata for it.
@@ -25272,7 +25617,7 @@
25272
25617
  * @Annotation
25273
25618
  * @publicApi
25274
25619
  */
25275
- var NgModule = makeDecorator('NgModule', ɵ0$b, undefined, undefined, ɵ1$3);
25620
+ var NgModule = makeDecorator('NgModule', ɵ0$g, undefined, undefined, ɵ1$5);
25276
25621
  function preR3NgModuleCompile(moduleType, metadata) {
25277
25622
  var imports = (metadata && metadata.imports) || [];
25278
25623
  if (metadata && metadata.exports) {
@@ -26519,6 +26864,11 @@
26519
26864
  if (!exceptionHandler) {
26520
26865
  throw new Error('No ErrorHandler. Is platform module (BrowserModule) included?');
26521
26866
  }
26867
+ // If the `LOCALE_ID` provider is defined at bootstrap we set the value for runtime i18n (ivy)
26868
+ if (ivyEnabled) {
26869
+ var localeId = moduleRef.injector.get(LOCALE_ID$1, DEFAULT_LOCALE_ID);
26870
+ setLocaleId(localeId || DEFAULT_LOCALE_ID);
26871
+ }
26522
26872
  moduleRef.onDestroy(function () { return remove(_this._modules, moduleRef); });
26523
26873
  ngZone.runOutsideAngular(function () { return ngZone.onError.subscribe({ next: function (error) { exceptionHandler.handleError(error); } }); });
26524
26874
  return _callAndReportToErrorHandler(exceptionHandler, ngZone, function () {
@@ -27068,7 +27418,7 @@
27068
27418
  this._config = config || DEFAULT_CONFIG;
27069
27419
  }
27070
27420
  SystemJsNgModuleLoader.prototype.load = function (path) {
27071
- var legacyOfflineMode = this._compiler instanceof Compiler;
27421
+ var legacyOfflineMode = !ivyEnabled && this._compiler instanceof Compiler;
27072
27422
  return legacyOfflineMode ? this.loadFactory(path) : this.loadAndCompile(path);
27073
27423
  };
27074
27424
  SystemJsNgModuleLoader.prototype.loadAndCompile = function (path) {
@@ -27889,6 +28239,9 @@
27889
28239
  * @publicApi
27890
28240
  */
27891
28241
  var getDebugNode = getDebugNode__PRE_R3__;
28242
+ function getAllDebugNodes() {
28243
+ return Array.from(_nativeNodeToDebugNode.values());
28244
+ }
27892
28245
  function indexDebugNode(node) {
27893
28246
  _nativeNodeToDebugNode.set(node.nativeNode, node);
27894
28247
  }
@@ -30533,8 +30886,8 @@
30533
30886
  exports.ɵAPP_ID_RANDOM_PROVIDER = APP_ID_RANDOM_PROVIDER;
30534
30887
  exports.ɵdefaultIterableDiffers = defaultIterableDiffers;
30535
30888
  exports.ɵdefaultKeyValueDiffers = defaultKeyValueDiffers;
30536
- exports.ɵdevModeEqual = devModeEqual;
30537
- exports.ɵisListLikeIterable = isListLikeIterable;
30889
+ exports.ɵdevModeEqual = devModeEqual$1;
30890
+ exports.ɵisListLikeIterable = isListLikeIterable$1;
30538
30891
  exports.ɵisDefaultChangeDetectionStrategy = isDefaultChangeDetectionStrategy;
30539
30892
  exports.ɵConsole = Console;
30540
30893
  exports.ɵsetCurrentInjector = setCurrentInjector;