@angular/core 9.0.3 → 9.0.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.
- package/bundles/core-testing.umd.js +1 -1
- package/bundles/core-testing.umd.min.js +1 -1
- package/bundles/core-testing.umd.min.js.map +1 -1
- package/bundles/core.umd.js +613 -579
- package/bundles/core.umd.js.map +1 -1
- package/bundles/core.umd.min.js +157 -156
- package/bundles/core.umd.min.js.map +1 -1
- package/core.d.ts +45 -45
- package/core.metadata.json +1 -1
- package/esm2015/core.js +2 -2
- package/esm2015/src/di/jit/injectable.js +2 -2
- package/esm2015/src/di/r3_injector.js +27 -9
- package/esm2015/src/render3/assert.js +4 -1
- package/esm2015/src/render3/definition.js +60 -60
- package/esm2015/src/render3/di.js +25 -19
- package/esm2015/src/render3/errors.js +1 -3
- package/esm2015/src/render3/features/ng_onchanges_feature.js +8 -13
- package/esm2015/src/render3/i18n.js +14 -7
- package/esm2015/src/render3/instructions/attribute.js +6 -6
- package/esm2015/src/render3/instructions/attribute_interpolation.js +29 -47
- package/esm2015/src/render3/instructions/host_property.js +13 -10
- package/esm2015/src/render3/instructions/property.js +8 -9
- package/esm2015/src/render3/instructions/property_interpolation.js +40 -39
- package/esm2015/src/render3/instructions/shared.js +18 -27
- package/esm2015/src/render3/jit/module.js +18 -18
- package/esm2015/src/render3/ng_module_ref.js +7 -3
- package/esm2015/src/render3/node_assert.js +1 -1
- package/esm2015/src/render3/pure_function.js +23 -6
- package/esm2015/src/render3/query.js +2 -5
- package/esm2015/src/render3/state.js +11 -1
- package/esm2015/src/util/assert.js +1 -3
- package/esm2015/src/util/closure.js +2 -2
- package/esm2015/src/util/decorators.js +87 -80
- package/esm2015/src/util/ng_dev_mode.js +1 -1
- package/esm2015/src/util/ng_i18n_closure_mode.js +1 -1
- package/esm2015/src/version.js +1 -1
- package/esm5/core.js +2 -2
- package/esm5/src/di/jit/injectable.js +2 -2
- package/esm5/src/di/r3_injector.js +19 -5
- package/esm5/src/render3/assert.js +3 -1
- package/esm5/src/render3/definition.js +51 -51
- package/esm5/src/render3/di.js +16 -13
- package/esm5/src/render3/errors.js +1 -3
- package/esm5/src/render3/features/ng_onchanges_feature.js +8 -9
- package/esm5/src/render3/i18n.js +13 -6
- package/esm5/src/render3/instructions/attribute.js +5 -5
- package/esm5/src/render3/instructions/attribute_interpolation.js +29 -38
- package/esm5/src/render3/instructions/host_property.js +10 -8
- package/esm5/src/render3/instructions/property.js +7 -7
- package/esm5/src/render3/instructions/property_interpolation.js +31 -30
- package/esm5/src/render3/instructions/shared.js +10 -14
- package/esm5/src/render3/jit/module.js +12 -12
- package/esm5/src/render3/ng_module_ref.js +7 -3
- package/esm5/src/render3/node_assert.js +1 -1
- package/esm5/src/render3/pure_function.js +19 -6
- package/esm5/src/render3/query.js +2 -4
- package/esm5/src/render3/state.js +9 -1
- package/esm5/src/util/assert.js +1 -3
- package/esm5/src/util/closure.js +2 -2
- package/esm5/src/util/decorators.js +101 -94
- package/esm5/src/util/ng_dev_mode.js +1 -1
- package/esm5/src/util/ng_i18n_closure_mode.js +1 -1
- package/esm5/src/version.js +1 -1
- package/fesm2015/core.js +1130 -1101
- package/fesm2015/core.js.map +1 -1
- package/fesm2015/testing.js +1 -1
- package/fesm5/core.js +613 -579
- package/fesm5/core.js.map +1 -1
- package/fesm5/testing.js +1 -1
- package/package.json +1 -1
- package/schematics/migrations/undecorated-classes-with-di/create_ngc_program.js +13 -1
- package/src/r3_symbols.d.ts +1 -1
- package/testing/testing.d.ts +1 -1
- package/testing.d.ts +1 -1
package/bundles/core.umd.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v9.0.
|
|
2
|
+
* @license Angular v9.0.7
|
|
3
3
|
* (c) 2010-2020 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -207,6 +207,26 @@
|
|
|
207
207
|
return (mod && mod.__esModule) ? mod : { default: mod };
|
|
208
208
|
}
|
|
209
209
|
|
|
210
|
+
/**
|
|
211
|
+
* @license
|
|
212
|
+
* Copyright Google Inc. All Rights Reserved.
|
|
213
|
+
*
|
|
214
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
215
|
+
* found in the LICENSE file at https://angular.io/license
|
|
216
|
+
*/
|
|
217
|
+
/**
|
|
218
|
+
* Convince closure compiler that the wrapped function has no side-effects.
|
|
219
|
+
*
|
|
220
|
+
* Closure compiler always assumes that `toString` has no side-effects. We use this quirk to
|
|
221
|
+
* allow us to execute a function but have closure compiler mark the call as no-side-effects.
|
|
222
|
+
* It is important that the return value for the `noSideEffects` function be assigned
|
|
223
|
+
* to something which is retained otherwise the call to `noSideEffects` will be removed by closure
|
|
224
|
+
* compiler.
|
|
225
|
+
*/
|
|
226
|
+
function noSideEffects(fn) {
|
|
227
|
+
return { toString: fn }.toString();
|
|
228
|
+
}
|
|
229
|
+
|
|
210
230
|
/**
|
|
211
231
|
* @license
|
|
212
232
|
* Copyright Google Inc. All Rights Reserved.
|
|
@@ -221,38 +241,40 @@
|
|
|
221
241
|
* @suppress {globalThis}
|
|
222
242
|
*/
|
|
223
243
|
function makeDecorator(name, props, parentClass, additionalProcessing, typeFn) {
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
244
|
+
return noSideEffects(function () {
|
|
245
|
+
var metaCtor = makeMetadataCtor(props);
|
|
246
|
+
function DecoratorFactory() {
|
|
247
|
+
var _a;
|
|
248
|
+
var args = [];
|
|
249
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
250
|
+
args[_i] = arguments[_i];
|
|
251
|
+
}
|
|
252
|
+
if (this instanceof DecoratorFactory) {
|
|
253
|
+
metaCtor.call.apply(metaCtor, __spread([this], args));
|
|
254
|
+
return this;
|
|
255
|
+
}
|
|
256
|
+
var annotationInstance = new ((_a = DecoratorFactory).bind.apply(_a, __spread([void 0], args)))();
|
|
257
|
+
return function TypeDecorator(cls) {
|
|
258
|
+
if (typeFn)
|
|
259
|
+
typeFn.apply(void 0, __spread([cls], args));
|
|
260
|
+
// Use of Object.defineProperty is important since it creates non-enumerable property which
|
|
261
|
+
// prevents the property is copied during subclassing.
|
|
262
|
+
var annotations = cls.hasOwnProperty(ANNOTATIONS) ?
|
|
263
|
+
cls[ANNOTATIONS] :
|
|
264
|
+
Object.defineProperty(cls, ANNOTATIONS, { value: [] })[ANNOTATIONS];
|
|
265
|
+
annotations.push(annotationInstance);
|
|
266
|
+
if (additionalProcessing)
|
|
267
|
+
additionalProcessing(cls);
|
|
268
|
+
return cls;
|
|
269
|
+
};
|
|
230
270
|
}
|
|
231
|
-
if (
|
|
232
|
-
|
|
233
|
-
return this;
|
|
271
|
+
if (parentClass) {
|
|
272
|
+
DecoratorFactory.prototype = Object.create(parentClass.prototype);
|
|
234
273
|
}
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
// Use of Object.defineProperty is important since it creates non-enumerable property which
|
|
240
|
-
// prevents the property is copied during subclassing.
|
|
241
|
-
var annotations = cls.hasOwnProperty(ANNOTATIONS) ?
|
|
242
|
-
cls[ANNOTATIONS] :
|
|
243
|
-
Object.defineProperty(cls, ANNOTATIONS, { value: [] })[ANNOTATIONS];
|
|
244
|
-
annotations.push(annotationInstance);
|
|
245
|
-
if (additionalProcessing)
|
|
246
|
-
additionalProcessing(cls);
|
|
247
|
-
return cls;
|
|
248
|
-
};
|
|
249
|
-
}
|
|
250
|
-
if (parentClass) {
|
|
251
|
-
DecoratorFactory.prototype = Object.create(parentClass.prototype);
|
|
252
|
-
}
|
|
253
|
-
DecoratorFactory.prototype.ngMetadataName = name;
|
|
254
|
-
DecoratorFactory.annotationCls = DecoratorFactory;
|
|
255
|
-
return DecoratorFactory;
|
|
274
|
+
DecoratorFactory.prototype.ngMetadataName = name;
|
|
275
|
+
DecoratorFactory.annotationCls = DecoratorFactory;
|
|
276
|
+
return DecoratorFactory;
|
|
277
|
+
});
|
|
256
278
|
}
|
|
257
279
|
function makeMetadataCtor(props) {
|
|
258
280
|
return function ctor() {
|
|
@@ -269,75 +291,79 @@
|
|
|
269
291
|
};
|
|
270
292
|
}
|
|
271
293
|
function makeParamDecorator(name, props, parentClass) {
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
cls
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
parameters.
|
|
294
|
+
return noSideEffects(function () {
|
|
295
|
+
var metaCtor = makeMetadataCtor(props);
|
|
296
|
+
function ParamDecoratorFactory() {
|
|
297
|
+
var _a;
|
|
298
|
+
var args = [];
|
|
299
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
300
|
+
args[_i] = arguments[_i];
|
|
301
|
+
}
|
|
302
|
+
if (this instanceof ParamDecoratorFactory) {
|
|
303
|
+
metaCtor.apply(this, args);
|
|
304
|
+
return this;
|
|
305
|
+
}
|
|
306
|
+
var annotationInstance = new ((_a = ParamDecoratorFactory).bind.apply(_a, __spread([void 0], args)))();
|
|
307
|
+
ParamDecorator.annotation = annotationInstance;
|
|
308
|
+
return ParamDecorator;
|
|
309
|
+
function ParamDecorator(cls, unusedKey, index) {
|
|
310
|
+
// Use of Object.defineProperty is important since it creates non-enumerable property which
|
|
311
|
+
// prevents the property is copied during subclassing.
|
|
312
|
+
var parameters = cls.hasOwnProperty(PARAMETERS) ?
|
|
313
|
+
cls[PARAMETERS] :
|
|
314
|
+
Object.defineProperty(cls, PARAMETERS, { value: [] })[PARAMETERS];
|
|
315
|
+
// there might be gaps if some in between parameters do not have annotations.
|
|
316
|
+
// we pad with nulls.
|
|
317
|
+
while (parameters.length <= index) {
|
|
318
|
+
parameters.push(null);
|
|
319
|
+
}
|
|
320
|
+
(parameters[index] = parameters[index] || []).push(annotationInstance);
|
|
321
|
+
return cls;
|
|
296
322
|
}
|
|
297
|
-
(parameters[index] = parameters[index] || []).push(annotationInstance);
|
|
298
|
-
return cls;
|
|
299
323
|
}
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
324
|
+
if (parentClass) {
|
|
325
|
+
ParamDecoratorFactory.prototype = Object.create(parentClass.prototype);
|
|
326
|
+
}
|
|
327
|
+
ParamDecoratorFactory.prototype.ngMetadataName = name;
|
|
328
|
+
ParamDecoratorFactory.annotationCls = ParamDecoratorFactory;
|
|
329
|
+
return ParamDecoratorFactory;
|
|
330
|
+
});
|
|
307
331
|
}
|
|
308
332
|
function makePropDecorator(name, props, parentClass, additionalProcessing) {
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
constructor
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
333
|
+
return noSideEffects(function () {
|
|
334
|
+
var metaCtor = makeMetadataCtor(props);
|
|
335
|
+
function PropDecoratorFactory() {
|
|
336
|
+
var _a;
|
|
337
|
+
var args = [];
|
|
338
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
339
|
+
args[_i] = arguments[_i];
|
|
340
|
+
}
|
|
341
|
+
if (this instanceof PropDecoratorFactory) {
|
|
342
|
+
metaCtor.apply(this, args);
|
|
343
|
+
return this;
|
|
344
|
+
}
|
|
345
|
+
var decoratorInstance = new ((_a = PropDecoratorFactory).bind.apply(_a, __spread([void 0], args)))();
|
|
346
|
+
function PropDecorator(target, name) {
|
|
347
|
+
var constructor = target.constructor;
|
|
348
|
+
// Use of Object.defineProperty is important since it creates non-enumerable property which
|
|
349
|
+
// prevents the property is copied during subclassing.
|
|
350
|
+
var meta = constructor.hasOwnProperty(PROP_METADATA) ?
|
|
351
|
+
constructor[PROP_METADATA] :
|
|
352
|
+
Object.defineProperty(constructor, PROP_METADATA, { value: {} })[PROP_METADATA];
|
|
353
|
+
meta[name] = meta.hasOwnProperty(name) && meta[name] || [];
|
|
354
|
+
meta[name].unshift(decoratorInstance);
|
|
355
|
+
if (additionalProcessing)
|
|
356
|
+
additionalProcessing.apply(void 0, __spread([target, name], args));
|
|
357
|
+
}
|
|
358
|
+
return PropDecorator;
|
|
359
|
+
}
|
|
360
|
+
if (parentClass) {
|
|
361
|
+
PropDecoratorFactory.prototype = Object.create(parentClass.prototype);
|
|
362
|
+
}
|
|
363
|
+
PropDecoratorFactory.prototype.ngMetadataName = name;
|
|
364
|
+
PropDecoratorFactory.annotationCls = PropDecoratorFactory;
|
|
365
|
+
return PropDecoratorFactory;
|
|
366
|
+
});
|
|
341
367
|
}
|
|
342
368
|
|
|
343
369
|
/**
|
|
@@ -1266,8 +1292,6 @@
|
|
|
1266
1292
|
}
|
|
1267
1293
|
}
|
|
1268
1294
|
function throwError(msg, actual, expected, comparison) {
|
|
1269
|
-
// tslint:disable-next-line
|
|
1270
|
-
debugger; // Left intentionally for better debugger experience.
|
|
1271
1295
|
throw new Error("ASSERTION ERROR: " + msg +
|
|
1272
1296
|
(comparison == null ? '' : " [Expected=> " + expected + " " + comparison + " " + actual + " <=Actual]"));
|
|
1273
1297
|
}
|
|
@@ -1695,26 +1719,6 @@
|
|
|
1695
1719
|
ViewEncapsulation[ViewEncapsulation["ShadowDom"] = 3] = "ShadowDom";
|
|
1696
1720
|
})(exports.ViewEncapsulation || (exports.ViewEncapsulation = {}));
|
|
1697
1721
|
|
|
1698
|
-
/**
|
|
1699
|
-
* @license
|
|
1700
|
-
* Copyright Google Inc. All Rights Reserved.
|
|
1701
|
-
*
|
|
1702
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
1703
|
-
* found in the LICENSE file at https://angular.io/license
|
|
1704
|
-
*/
|
|
1705
|
-
/**
|
|
1706
|
-
* Convince closure compiler that the wrapped function has no side-effects.
|
|
1707
|
-
*
|
|
1708
|
-
* Closure compiler always assumes that `toString` has no side-effects. We use this quirk to
|
|
1709
|
-
* allow us to execute a function but have closure compiler mark the call as no-side-effects.
|
|
1710
|
-
* It is important that the return value for the `noSideEffects` function be assigned
|
|
1711
|
-
* to something which is retained otherwise the call to `noSideEffects` will be removed by closure
|
|
1712
|
-
* compiler.
|
|
1713
|
-
*/
|
|
1714
|
-
function noSideEffects(fn) {
|
|
1715
|
-
return '' + { toString: fn };
|
|
1716
|
-
}
|
|
1717
|
-
|
|
1718
1722
|
/**
|
|
1719
1723
|
* @license
|
|
1720
1724
|
* Copyright Google Inc. All Rights Reserved.
|
|
@@ -1765,55 +1769,55 @@
|
|
|
1765
1769
|
* @codeGenApi
|
|
1766
1770
|
*/
|
|
1767
1771
|
function ɵɵdefineComponent(componentDefinition) {
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
|
|
1812
|
-
|
|
1813
|
-
|
|
1814
|
-
|
|
1815
|
-
|
|
1816
|
-
|
|
1772
|
+
return noSideEffects(function () {
|
|
1773
|
+
// Initialize ngDevMode. This must be the first statement in ɵɵdefineComponent.
|
|
1774
|
+
// See the `initNgDevMode` docstring for more information.
|
|
1775
|
+
(typeof ngDevMode === 'undefined' || ngDevMode) && initNgDevMode();
|
|
1776
|
+
var type = componentDefinition.type;
|
|
1777
|
+
var typePrototype = type.prototype;
|
|
1778
|
+
var declaredInputs = {};
|
|
1779
|
+
var def = {
|
|
1780
|
+
type: type,
|
|
1781
|
+
providersResolver: null,
|
|
1782
|
+
decls: componentDefinition.decls,
|
|
1783
|
+
vars: componentDefinition.vars,
|
|
1784
|
+
factory: null,
|
|
1785
|
+
template: componentDefinition.template || null,
|
|
1786
|
+
consts: componentDefinition.consts || null,
|
|
1787
|
+
ngContentSelectors: componentDefinition.ngContentSelectors,
|
|
1788
|
+
hostBindings: componentDefinition.hostBindings || null,
|
|
1789
|
+
hostVars: componentDefinition.hostVars || 0,
|
|
1790
|
+
hostAttrs: componentDefinition.hostAttrs || null,
|
|
1791
|
+
contentQueries: componentDefinition.contentQueries || null,
|
|
1792
|
+
declaredInputs: declaredInputs,
|
|
1793
|
+
inputs: null,
|
|
1794
|
+
outputs: null,
|
|
1795
|
+
exportAs: componentDefinition.exportAs || null,
|
|
1796
|
+
onChanges: null,
|
|
1797
|
+
onInit: typePrototype.ngOnInit || null,
|
|
1798
|
+
doCheck: typePrototype.ngDoCheck || null,
|
|
1799
|
+
afterContentInit: typePrototype.ngAfterContentInit || null,
|
|
1800
|
+
afterContentChecked: typePrototype.ngAfterContentChecked || null,
|
|
1801
|
+
afterViewInit: typePrototype.ngAfterViewInit || null,
|
|
1802
|
+
afterViewChecked: typePrototype.ngAfterViewChecked || null,
|
|
1803
|
+
onDestroy: typePrototype.ngOnDestroy || null,
|
|
1804
|
+
onPush: componentDefinition.changeDetection === exports.ChangeDetectionStrategy.OnPush,
|
|
1805
|
+
directiveDefs: null,
|
|
1806
|
+
pipeDefs: null,
|
|
1807
|
+
selectors: componentDefinition.selectors || EMPTY_ARRAY,
|
|
1808
|
+
viewQuery: componentDefinition.viewQuery || null,
|
|
1809
|
+
features: componentDefinition.features || null,
|
|
1810
|
+
data: componentDefinition.data || {},
|
|
1811
|
+
// TODO(misko): convert ViewEncapsulation into const enum so that it can be used directly in
|
|
1812
|
+
// the next line. Also `None` should be 0 not 2.
|
|
1813
|
+
encapsulation: componentDefinition.encapsulation || exports.ViewEncapsulation.Emulated,
|
|
1814
|
+
id: 'c',
|
|
1815
|
+
styles: componentDefinition.styles || EMPTY_ARRAY,
|
|
1816
|
+
_: null,
|
|
1817
|
+
setInput: null,
|
|
1818
|
+
schemas: componentDefinition.schemas || null,
|
|
1819
|
+
tView: null,
|
|
1820
|
+
};
|
|
1817
1821
|
var directiveTypes = componentDefinition.directives;
|
|
1818
1822
|
var feature = componentDefinition.features;
|
|
1819
1823
|
var pipeTypes = componentDefinition.pipes;
|
|
@@ -1828,8 +1832,8 @@
|
|
|
1828
1832
|
def.pipeDefs = pipeTypes ?
|
|
1829
1833
|
function () { return (typeof pipeTypes === 'function' ? pipeTypes() : pipeTypes).map(extractPipeDef); } :
|
|
1830
1834
|
null;
|
|
1835
|
+
return def;
|
|
1831
1836
|
});
|
|
1832
|
-
return def;
|
|
1833
1837
|
}
|
|
1834
1838
|
/**
|
|
1835
1839
|
* @codeGenApi
|
|
@@ -2156,6 +2160,8 @@
|
|
|
2156
2160
|
* Use of this source code is governed by an MIT-style license that can be
|
|
2157
2161
|
* found in the LICENSE file at https://angular.io/license
|
|
2158
2162
|
*/
|
|
2163
|
+
// [Assert functions do not constraint type when they are guarded by a truthy
|
|
2164
|
+
// expression.](https://github.com/microsoft/TypeScript/issues/37295)
|
|
2159
2165
|
function assertTNodeForLView(tNode, lView) {
|
|
2160
2166
|
tNode.hasOwnProperty('tView_') && assertEqual(tNode.tView_, lView[TVIEW], 'This TNode does not belong to this LView.');
|
|
2161
2167
|
}
|
|
@@ -2223,6 +2229,266 @@
|
|
|
2223
2229
|
var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';
|
|
2224
2230
|
var MATH_ML_NAMESPACE = 'http://www.w3.org/1998/MathML/';
|
|
2225
2231
|
|
|
2232
|
+
/**
|
|
2233
|
+
* @license
|
|
2234
|
+
* Copyright Google Inc. All Rights Reserved.
|
|
2235
|
+
*
|
|
2236
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
2237
|
+
* found in the LICENSE file at https://angular.io/license
|
|
2238
|
+
*/
|
|
2239
|
+
/**
|
|
2240
|
+
* This property will be monkey-patched on elements, components and directives
|
|
2241
|
+
*/
|
|
2242
|
+
var MONKEY_PATCH_KEY_NAME = '__ngContext__';
|
|
2243
|
+
|
|
2244
|
+
/**
|
|
2245
|
+
* @license
|
|
2246
|
+
* Copyright Google Inc. All Rights Reserved.
|
|
2247
|
+
*
|
|
2248
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
2249
|
+
* found in the LICENSE file at https://angular.io/license
|
|
2250
|
+
*/
|
|
2251
|
+
/**
|
|
2252
|
+
* Most of the use of `document` in Angular is from within the DI system so it is possible to simply
|
|
2253
|
+
* inject the `DOCUMENT` token and are done.
|
|
2254
|
+
*
|
|
2255
|
+
* Ivy is special because it does not rely upon the DI and must get hold of the document some other
|
|
2256
|
+
* way.
|
|
2257
|
+
*
|
|
2258
|
+
* The solution is to define `getDocument()` and `setDocument()` top-level functions for ivy.
|
|
2259
|
+
* Wherever ivy needs the global document, it calls `getDocument()` instead.
|
|
2260
|
+
*
|
|
2261
|
+
* When running ivy outside of a browser environment, it is necessary to call `setDocument()` to
|
|
2262
|
+
* tell ivy what the global `document` is.
|
|
2263
|
+
*
|
|
2264
|
+
* Angular does this for us in each of the standard platforms (`Browser`, `Server`, and `WebWorker`)
|
|
2265
|
+
* by calling `setDocument()` when providing the `DOCUMENT` token.
|
|
2266
|
+
*/
|
|
2267
|
+
var DOCUMENT = undefined;
|
|
2268
|
+
/**
|
|
2269
|
+
* Tell ivy what the `document` is for this platform.
|
|
2270
|
+
*
|
|
2271
|
+
* It is only necessary to call this if the current platform is not a browser.
|
|
2272
|
+
*
|
|
2273
|
+
* @param document The object representing the global `document` in this environment.
|
|
2274
|
+
*/
|
|
2275
|
+
function setDocument(document) {
|
|
2276
|
+
DOCUMENT = document;
|
|
2277
|
+
}
|
|
2278
|
+
/**
|
|
2279
|
+
* Access the object that represents the `document` for this platform.
|
|
2280
|
+
*
|
|
2281
|
+
* Ivy calls this whenever it needs to access the `document` object.
|
|
2282
|
+
* For example to create the renderer or to do sanitization.
|
|
2283
|
+
*/
|
|
2284
|
+
function getDocument() {
|
|
2285
|
+
if (DOCUMENT !== undefined) {
|
|
2286
|
+
return DOCUMENT;
|
|
2287
|
+
}
|
|
2288
|
+
else if (typeof document !== 'undefined') {
|
|
2289
|
+
return document;
|
|
2290
|
+
}
|
|
2291
|
+
// No "document" can be found. This should only happen if we are running ivy outside Angular and
|
|
2292
|
+
// the current platform is not a browser. Since this is not a supported scenario at the moment
|
|
2293
|
+
// this should not happen in Angular apps.
|
|
2294
|
+
// Once we support running ivy outside of Angular we will need to publish `setDocument()` as a
|
|
2295
|
+
// public API. Meanwhile we just return `undefined` and let the application fail.
|
|
2296
|
+
return undefined;
|
|
2297
|
+
}
|
|
2298
|
+
|
|
2299
|
+
/**
|
|
2300
|
+
* @license
|
|
2301
|
+
* Copyright Google Inc. All Rights Reserved.
|
|
2302
|
+
*
|
|
2303
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
2304
|
+
* found in the LICENSE file at https://angular.io/license
|
|
2305
|
+
*/
|
|
2306
|
+
// TODO: cleanup once the code is merged in angular/angular
|
|
2307
|
+
var RendererStyleFlags3;
|
|
2308
|
+
(function (RendererStyleFlags3) {
|
|
2309
|
+
RendererStyleFlags3[RendererStyleFlags3["Important"] = 1] = "Important";
|
|
2310
|
+
RendererStyleFlags3[RendererStyleFlags3["DashCase"] = 2] = "DashCase";
|
|
2311
|
+
})(RendererStyleFlags3 || (RendererStyleFlags3 = {}));
|
|
2312
|
+
/** Returns whether the `renderer` is a `ProceduralRenderer3` */
|
|
2313
|
+
function isProceduralRenderer(renderer) {
|
|
2314
|
+
return !!(renderer.listen);
|
|
2315
|
+
}
|
|
2316
|
+
var ɵ0$2 = function (hostElement, rendererType) { return getDocument(); };
|
|
2317
|
+
var domRendererFactory3 = {
|
|
2318
|
+
createRenderer: ɵ0$2
|
|
2319
|
+
};
|
|
2320
|
+
// Note: This hack is necessary so we don't erroneously get a circular dependency
|
|
2321
|
+
// failure based on types.
|
|
2322
|
+
var unusedValueExportToPlacateAjd$2 = 1;
|
|
2323
|
+
|
|
2324
|
+
/**
|
|
2325
|
+
* @license
|
|
2326
|
+
* Copyright Google Inc. All Rights Reserved.
|
|
2327
|
+
*
|
|
2328
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
2329
|
+
* found in the LICENSE file at https://angular.io/license
|
|
2330
|
+
*/
|
|
2331
|
+
/**
|
|
2332
|
+
* For efficiency reasons we often put several different data types (`RNode`, `LView`, `LContainer`)
|
|
2333
|
+
* in same location in `LView`. This is because we don't want to pre-allocate space for it
|
|
2334
|
+
* because the storage is sparse. This file contains utilities for dealing with such data types.
|
|
2335
|
+
*
|
|
2336
|
+
* How do we know what is stored at a given location in `LView`.
|
|
2337
|
+
* - `Array.isArray(value) === false` => `RNode` (The normal storage value)
|
|
2338
|
+
* - `Array.isArray(value) === true` => then the `value[0]` represents the wrapped value.
|
|
2339
|
+
* - `typeof value[TYPE] === 'object'` => `LView`
|
|
2340
|
+
* - This happens when we have a component at a given location
|
|
2341
|
+
* - `typeof value[TYPE] === true` => `LContainer`
|
|
2342
|
+
* - This happens when we have `LContainer` binding at a given location.
|
|
2343
|
+
*
|
|
2344
|
+
*
|
|
2345
|
+
* NOTE: it is assumed that `Array.isArray` and `typeof` operations are very efficient.
|
|
2346
|
+
*/
|
|
2347
|
+
/**
|
|
2348
|
+
* Returns `RNode`.
|
|
2349
|
+
* @param value wrapped value of `RNode`, `LView`, `LContainer`
|
|
2350
|
+
*/
|
|
2351
|
+
function unwrapRNode(value) {
|
|
2352
|
+
while (Array.isArray(value)) {
|
|
2353
|
+
value = value[HOST];
|
|
2354
|
+
}
|
|
2355
|
+
return value;
|
|
2356
|
+
}
|
|
2357
|
+
/**
|
|
2358
|
+
* Returns `LView` or `null` if not found.
|
|
2359
|
+
* @param value wrapped value of `RNode`, `LView`, `LContainer`
|
|
2360
|
+
*/
|
|
2361
|
+
function unwrapLView(value) {
|
|
2362
|
+
while (Array.isArray(value)) {
|
|
2363
|
+
// This check is same as `isLView()` but we don't call at as we don't want to call
|
|
2364
|
+
// `Array.isArray()` twice and give JITer more work for inlining.
|
|
2365
|
+
if (typeof value[TYPE] === 'object')
|
|
2366
|
+
return value;
|
|
2367
|
+
value = value[HOST];
|
|
2368
|
+
}
|
|
2369
|
+
return null;
|
|
2370
|
+
}
|
|
2371
|
+
/**
|
|
2372
|
+
* Returns `LContainer` or `null` if not found.
|
|
2373
|
+
* @param value wrapped value of `RNode`, `LView`, `LContainer`
|
|
2374
|
+
*/
|
|
2375
|
+
function unwrapLContainer(value) {
|
|
2376
|
+
while (Array.isArray(value)) {
|
|
2377
|
+
// This check is same as `isLContainer()` but we don't call at as we don't want to call
|
|
2378
|
+
// `Array.isArray()` twice and give JITer more work for inlining.
|
|
2379
|
+
if (value[TYPE] === true)
|
|
2380
|
+
return value;
|
|
2381
|
+
value = value[HOST];
|
|
2382
|
+
}
|
|
2383
|
+
return null;
|
|
2384
|
+
}
|
|
2385
|
+
/**
|
|
2386
|
+
* Retrieves an element value from the provided `viewData`, by unwrapping
|
|
2387
|
+
* from any containers, component views, or style contexts.
|
|
2388
|
+
*/
|
|
2389
|
+
function getNativeByIndex(index, lView) {
|
|
2390
|
+
return unwrapRNode(lView[index + HEADER_OFFSET]);
|
|
2391
|
+
}
|
|
2392
|
+
/**
|
|
2393
|
+
* Retrieve an `RNode` for a given `TNode` and `LView`.
|
|
2394
|
+
*
|
|
2395
|
+
* This function guarantees in dev mode to retrieve a non-null `RNode`.
|
|
2396
|
+
*
|
|
2397
|
+
* @param tNode
|
|
2398
|
+
* @param lView
|
|
2399
|
+
*/
|
|
2400
|
+
function getNativeByTNode(tNode, lView) {
|
|
2401
|
+
ngDevMode && assertTNodeForLView(tNode, lView);
|
|
2402
|
+
ngDevMode && assertDataInRange(lView, tNode.index);
|
|
2403
|
+
var node = unwrapRNode(lView[tNode.index]);
|
|
2404
|
+
ngDevMode && !isProceduralRenderer(lView[RENDERER]) && assertDomNode(node);
|
|
2405
|
+
return node;
|
|
2406
|
+
}
|
|
2407
|
+
/**
|
|
2408
|
+
* Retrieve an `RNode` or `null` for a given `TNode` and `LView`.
|
|
2409
|
+
*
|
|
2410
|
+
* Some `TNode`s don't have associated `RNode`s. For example `Projection`
|
|
2411
|
+
*
|
|
2412
|
+
* @param tNode
|
|
2413
|
+
* @param lView
|
|
2414
|
+
*/
|
|
2415
|
+
function getNativeByTNodeOrNull(tNode, lView) {
|
|
2416
|
+
var index = tNode.index;
|
|
2417
|
+
if (index !== -1) {
|
|
2418
|
+
ngDevMode && assertTNodeForLView(tNode, lView);
|
|
2419
|
+
var node = unwrapRNode(lView[index]);
|
|
2420
|
+
ngDevMode && node !== null && !isProceduralRenderer(lView[RENDERER]) && assertDomNode(node);
|
|
2421
|
+
return node;
|
|
2422
|
+
}
|
|
2423
|
+
return null;
|
|
2424
|
+
}
|
|
2425
|
+
function getTNode(tView, index) {
|
|
2426
|
+
ngDevMode && assertGreaterThan(index, -1, 'wrong index for TNode');
|
|
2427
|
+
ngDevMode && assertLessThan(index, tView.data.length, 'wrong index for TNode');
|
|
2428
|
+
return tView.data[index + HEADER_OFFSET];
|
|
2429
|
+
}
|
|
2430
|
+
/** Retrieves a value from any `LView` or `TData`. */
|
|
2431
|
+
function load(view, index) {
|
|
2432
|
+
ngDevMode && assertDataInRange(view, index + HEADER_OFFSET);
|
|
2433
|
+
return view[index + HEADER_OFFSET];
|
|
2434
|
+
}
|
|
2435
|
+
function getComponentLViewByIndex(nodeIndex, hostView) {
|
|
2436
|
+
// Could be an LView or an LContainer. If LContainer, unwrap to find LView.
|
|
2437
|
+
ngDevMode && assertDataInRange(hostView, nodeIndex);
|
|
2438
|
+
var slotValue = hostView[nodeIndex];
|
|
2439
|
+
var lView = isLView(slotValue) ? slotValue : slotValue[HOST];
|
|
2440
|
+
return lView;
|
|
2441
|
+
}
|
|
2442
|
+
/**
|
|
2443
|
+
* Returns the monkey-patch value data present on the target (which could be
|
|
2444
|
+
* a component, directive or a DOM node).
|
|
2445
|
+
*/
|
|
2446
|
+
function readPatchedData(target) {
|
|
2447
|
+
ngDevMode && assertDefined(target, 'Target expected');
|
|
2448
|
+
return target[MONKEY_PATCH_KEY_NAME] || null;
|
|
2449
|
+
}
|
|
2450
|
+
function readPatchedLView(target) {
|
|
2451
|
+
var value = readPatchedData(target);
|
|
2452
|
+
if (value) {
|
|
2453
|
+
return Array.isArray(value) ? value : value.lView;
|
|
2454
|
+
}
|
|
2455
|
+
return null;
|
|
2456
|
+
}
|
|
2457
|
+
/** Checks whether a given view is in creation mode */
|
|
2458
|
+
function isCreationMode(view) {
|
|
2459
|
+
return (view[FLAGS] & 4 /* CreationMode */) === 4 /* CreationMode */;
|
|
2460
|
+
}
|
|
2461
|
+
/**
|
|
2462
|
+
* Returns a boolean for whether the view is attached to the change detection tree.
|
|
2463
|
+
*
|
|
2464
|
+
* Note: This determines whether a view should be checked, not whether it's inserted
|
|
2465
|
+
* into a container. For that, you'll want `viewAttachedToContainer` below.
|
|
2466
|
+
*/
|
|
2467
|
+
function viewAttachedToChangeDetector(view) {
|
|
2468
|
+
return (view[FLAGS] & 128 /* Attached */) === 128 /* Attached */;
|
|
2469
|
+
}
|
|
2470
|
+
/** Returns a boolean for whether the view is attached to a container. */
|
|
2471
|
+
function viewAttachedToContainer(view) {
|
|
2472
|
+
return isLContainer(view[PARENT]);
|
|
2473
|
+
}
|
|
2474
|
+
/** Returns a constant from `TConstants` instance. */
|
|
2475
|
+
function getConstant(consts, index) {
|
|
2476
|
+
return consts === null || index == null ? null : consts[index];
|
|
2477
|
+
}
|
|
2478
|
+
/**
|
|
2479
|
+
* Resets the pre-order hook flags of the view.
|
|
2480
|
+
* @param lView the LView on which the flags are reset
|
|
2481
|
+
*/
|
|
2482
|
+
function resetPreOrderHookFlags(lView) {
|
|
2483
|
+
lView[PREORDER_HOOK_FLAGS] = 0;
|
|
2484
|
+
}
|
|
2485
|
+
function getLContainerActiveIndex(lContainer) {
|
|
2486
|
+
return lContainer[ACTIVE_INDEX] >> 1 /* SHIFT */;
|
|
2487
|
+
}
|
|
2488
|
+
function setLContainerActiveIndex(lContainer, index) {
|
|
2489
|
+
lContainer[ACTIVE_INDEX] = index << 1 /* SHIFT */;
|
|
2490
|
+
}
|
|
2491
|
+
|
|
2226
2492
|
/**
|
|
2227
2493
|
* @license
|
|
2228
2494
|
* Copyright Google Inc. All Rights Reserved.
|
|
@@ -2553,6 +2819,13 @@
|
|
|
2553
2819
|
function setSelectedIndex(index) {
|
|
2554
2820
|
instructionState.lFrame.selectedIndex = index;
|
|
2555
2821
|
}
|
|
2822
|
+
/**
|
|
2823
|
+
* Gets the `tNode` that represents currently selected element.
|
|
2824
|
+
*/
|
|
2825
|
+
function getSelectedTNode() {
|
|
2826
|
+
var lFrame = instructionState.lFrame;
|
|
2827
|
+
return getTNode(lFrame.tView, lFrame.selectedIndex);
|
|
2828
|
+
}
|
|
2556
2829
|
/**
|
|
2557
2830
|
* Sets the namespace used to create elements to `'http://www.w3.org/2000/svg'` in global state.
|
|
2558
2831
|
*
|
|
@@ -2946,7 +3219,7 @@
|
|
|
2946
3219
|
}
|
|
2947
3220
|
// Note: This hack is necessary so we don't erroneously get a circular dependency
|
|
2948
3221
|
// failure based on types.
|
|
2949
|
-
var unusedValueExportToPlacateAjd$
|
|
3222
|
+
var unusedValueExportToPlacateAjd$3 = 1;
|
|
2950
3223
|
|
|
2951
3224
|
/**
|
|
2952
3225
|
* @license
|
|
@@ -2978,91 +3251,11 @@
|
|
|
2978
3251
|
if (type == 2 /* View */)
|
|
2979
3252
|
return 'View';
|
|
2980
3253
|
if (type == 3 /* Element */)
|
|
2981
|
-
return 'Element';
|
|
2982
|
-
if (type == 4 /* ElementContainer */)
|
|
2983
|
-
return 'ElementContainer';
|
|
2984
|
-
return '<unknown>';
|
|
2985
|
-
}
|
|
2986
|
-
|
|
2987
|
-
/**
|
|
2988
|
-
* @license
|
|
2989
|
-
* Copyright Google Inc. All Rights Reserved.
|
|
2990
|
-
*
|
|
2991
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
2992
|
-
* found in the LICENSE file at https://angular.io/license
|
|
2993
|
-
*/
|
|
2994
|
-
/**
|
|
2995
|
-
* Most of the use of `document` in Angular is from within the DI system so it is possible to simply
|
|
2996
|
-
* inject the `DOCUMENT` token and are done.
|
|
2997
|
-
*
|
|
2998
|
-
* Ivy is special because it does not rely upon the DI and must get hold of the document some other
|
|
2999
|
-
* way.
|
|
3000
|
-
*
|
|
3001
|
-
* The solution is to define `getDocument()` and `setDocument()` top-level functions for ivy.
|
|
3002
|
-
* Wherever ivy needs the global document, it calls `getDocument()` instead.
|
|
3003
|
-
*
|
|
3004
|
-
* When running ivy outside of a browser environment, it is necessary to call `setDocument()` to
|
|
3005
|
-
* tell ivy what the global `document` is.
|
|
3006
|
-
*
|
|
3007
|
-
* Angular does this for us in each of the standard platforms (`Browser`, `Server`, and `WebWorker`)
|
|
3008
|
-
* by calling `setDocument()` when providing the `DOCUMENT` token.
|
|
3009
|
-
*/
|
|
3010
|
-
var DOCUMENT = undefined;
|
|
3011
|
-
/**
|
|
3012
|
-
* Tell ivy what the `document` is for this platform.
|
|
3013
|
-
*
|
|
3014
|
-
* It is only necessary to call this if the current platform is not a browser.
|
|
3015
|
-
*
|
|
3016
|
-
* @param document The object representing the global `document` in this environment.
|
|
3017
|
-
*/
|
|
3018
|
-
function setDocument(document) {
|
|
3019
|
-
DOCUMENT = document;
|
|
3020
|
-
}
|
|
3021
|
-
/**
|
|
3022
|
-
* Access the object that represents the `document` for this platform.
|
|
3023
|
-
*
|
|
3024
|
-
* Ivy calls this whenever it needs to access the `document` object.
|
|
3025
|
-
* For example to create the renderer or to do sanitization.
|
|
3026
|
-
*/
|
|
3027
|
-
function getDocument() {
|
|
3028
|
-
if (DOCUMENT !== undefined) {
|
|
3029
|
-
return DOCUMENT;
|
|
3030
|
-
}
|
|
3031
|
-
else if (typeof document !== 'undefined') {
|
|
3032
|
-
return document;
|
|
3033
|
-
}
|
|
3034
|
-
// No "document" can be found. This should only happen if we are running ivy outside Angular and
|
|
3035
|
-
// the current platform is not a browser. Since this is not a supported scenario at the moment
|
|
3036
|
-
// this should not happen in Angular apps.
|
|
3037
|
-
// Once we support running ivy outside of Angular we will need to publish `setDocument()` as a
|
|
3038
|
-
// public API. Meanwhile we just return `undefined` and let the application fail.
|
|
3039
|
-
return undefined;
|
|
3040
|
-
}
|
|
3041
|
-
|
|
3042
|
-
/**
|
|
3043
|
-
* @license
|
|
3044
|
-
* Copyright Google Inc. All Rights Reserved.
|
|
3045
|
-
*
|
|
3046
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
3047
|
-
* found in the LICENSE file at https://angular.io/license
|
|
3048
|
-
*/
|
|
3049
|
-
// TODO: cleanup once the code is merged in angular/angular
|
|
3050
|
-
var RendererStyleFlags3;
|
|
3051
|
-
(function (RendererStyleFlags3) {
|
|
3052
|
-
RendererStyleFlags3[RendererStyleFlags3["Important"] = 1] = "Important";
|
|
3053
|
-
RendererStyleFlags3[RendererStyleFlags3["DashCase"] = 2] = "DashCase";
|
|
3054
|
-
})(RendererStyleFlags3 || (RendererStyleFlags3 = {}));
|
|
3055
|
-
/** Returns whether the `renderer` is a `ProceduralRenderer3` */
|
|
3056
|
-
function isProceduralRenderer(renderer) {
|
|
3057
|
-
return !!(renderer.listen);
|
|
3254
|
+
return 'Element';
|
|
3255
|
+
if (type == 4 /* ElementContainer */)
|
|
3256
|
+
return 'ElementContainer';
|
|
3257
|
+
return '<unknown>';
|
|
3058
3258
|
}
|
|
3059
|
-
var ɵ0$2 = function (hostElement, rendererType) { return getDocument(); };
|
|
3060
|
-
var domRendererFactory3 = {
|
|
3061
|
-
createRenderer: ɵ0$2
|
|
3062
|
-
};
|
|
3063
|
-
// Note: This hack is necessary so we don't erroneously get a circular dependency
|
|
3064
|
-
// failure based on types.
|
|
3065
|
-
var unusedValueExportToPlacateAjd$3 = 1;
|
|
3066
3259
|
|
|
3067
3260
|
/**
|
|
3068
3261
|
* Assigns all attribute values to the provided element via the inferred renderer.
|
|
@@ -3975,18 +4168,20 @@
|
|
|
3975
4168
|
* @codeGenApi
|
|
3976
4169
|
*/
|
|
3977
4170
|
function ɵɵgetInheritedFactory(type) {
|
|
3978
|
-
|
|
3979
|
-
|
|
3980
|
-
|
|
3981
|
-
|
|
3982
|
-
|
|
3983
|
-
|
|
3984
|
-
|
|
3985
|
-
|
|
3986
|
-
|
|
3987
|
-
|
|
3988
|
-
|
|
3989
|
-
|
|
4171
|
+
return noSideEffects(function () {
|
|
4172
|
+
var proto = Object.getPrototypeOf(type.prototype).constructor;
|
|
4173
|
+
var factory = proto[NG_FACTORY_DEF] || ɵɵgetFactoryOf(proto);
|
|
4174
|
+
if (factory !== null) {
|
|
4175
|
+
return factory;
|
|
4176
|
+
}
|
|
4177
|
+
else {
|
|
4178
|
+
// There is no factory defined. Either this was improper usage of inheritance
|
|
4179
|
+
// (no Angular decorator on the superclass) or there is no constructor at all
|
|
4180
|
+
// in the inheritance chain. Since the two cases cannot be distinguished, the
|
|
4181
|
+
// latter has to be assumed.
|
|
4182
|
+
return function (t) { return new t(); };
|
|
4183
|
+
}
|
|
4184
|
+
});
|
|
3990
4185
|
}
|
|
3991
4186
|
|
|
3992
4187
|
/**
|
|
@@ -5194,186 +5389,6 @@
|
|
|
5194
5389
|
}
|
|
5195
5390
|
}
|
|
5196
5391
|
|
|
5197
|
-
/**
|
|
5198
|
-
* @license
|
|
5199
|
-
* Copyright Google Inc. All Rights Reserved.
|
|
5200
|
-
*
|
|
5201
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
5202
|
-
* found in the LICENSE file at https://angular.io/license
|
|
5203
|
-
*/
|
|
5204
|
-
/**
|
|
5205
|
-
* This property will be monkey-patched on elements, components and directives
|
|
5206
|
-
*/
|
|
5207
|
-
var MONKEY_PATCH_KEY_NAME = '__ngContext__';
|
|
5208
|
-
|
|
5209
|
-
/**
|
|
5210
|
-
* @license
|
|
5211
|
-
* Copyright Google Inc. All Rights Reserved.
|
|
5212
|
-
*
|
|
5213
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
5214
|
-
* found in the LICENSE file at https://angular.io/license
|
|
5215
|
-
*/
|
|
5216
|
-
/**
|
|
5217
|
-
* For efficiency reasons we often put several different data types (`RNode`, `LView`, `LContainer`)
|
|
5218
|
-
* in same location in `LView`. This is because we don't want to pre-allocate space for it
|
|
5219
|
-
* because the storage is sparse. This file contains utilities for dealing with such data types.
|
|
5220
|
-
*
|
|
5221
|
-
* How do we know what is stored at a given location in `LView`.
|
|
5222
|
-
* - `Array.isArray(value) === false` => `RNode` (The normal storage value)
|
|
5223
|
-
* - `Array.isArray(value) === true` => then the `value[0]` represents the wrapped value.
|
|
5224
|
-
* - `typeof value[TYPE] === 'object'` => `LView`
|
|
5225
|
-
* - This happens when we have a component at a given location
|
|
5226
|
-
* - `typeof value[TYPE] === true` => `LContainer`
|
|
5227
|
-
* - This happens when we have `LContainer` binding at a given location.
|
|
5228
|
-
*
|
|
5229
|
-
*
|
|
5230
|
-
* NOTE: it is assumed that `Array.isArray` and `typeof` operations are very efficient.
|
|
5231
|
-
*/
|
|
5232
|
-
/**
|
|
5233
|
-
* Returns `RNode`.
|
|
5234
|
-
* @param value wrapped value of `RNode`, `LView`, `LContainer`
|
|
5235
|
-
*/
|
|
5236
|
-
function unwrapRNode(value) {
|
|
5237
|
-
while (Array.isArray(value)) {
|
|
5238
|
-
value = value[HOST];
|
|
5239
|
-
}
|
|
5240
|
-
return value;
|
|
5241
|
-
}
|
|
5242
|
-
/**
|
|
5243
|
-
* Returns `LView` or `null` if not found.
|
|
5244
|
-
* @param value wrapped value of `RNode`, `LView`, `LContainer`
|
|
5245
|
-
*/
|
|
5246
|
-
function unwrapLView(value) {
|
|
5247
|
-
while (Array.isArray(value)) {
|
|
5248
|
-
// This check is same as `isLView()` but we don't call at as we don't want to call
|
|
5249
|
-
// `Array.isArray()` twice and give JITer more work for inlining.
|
|
5250
|
-
if (typeof value[TYPE] === 'object')
|
|
5251
|
-
return value;
|
|
5252
|
-
value = value[HOST];
|
|
5253
|
-
}
|
|
5254
|
-
return null;
|
|
5255
|
-
}
|
|
5256
|
-
/**
|
|
5257
|
-
* Returns `LContainer` or `null` if not found.
|
|
5258
|
-
* @param value wrapped value of `RNode`, `LView`, `LContainer`
|
|
5259
|
-
*/
|
|
5260
|
-
function unwrapLContainer(value) {
|
|
5261
|
-
while (Array.isArray(value)) {
|
|
5262
|
-
// This check is same as `isLContainer()` but we don't call at as we don't want to call
|
|
5263
|
-
// `Array.isArray()` twice and give JITer more work for inlining.
|
|
5264
|
-
if (value[TYPE] === true)
|
|
5265
|
-
return value;
|
|
5266
|
-
value = value[HOST];
|
|
5267
|
-
}
|
|
5268
|
-
return null;
|
|
5269
|
-
}
|
|
5270
|
-
/**
|
|
5271
|
-
* Retrieves an element value from the provided `viewData`, by unwrapping
|
|
5272
|
-
* from any containers, component views, or style contexts.
|
|
5273
|
-
*/
|
|
5274
|
-
function getNativeByIndex(index, lView) {
|
|
5275
|
-
return unwrapRNode(lView[index + HEADER_OFFSET]);
|
|
5276
|
-
}
|
|
5277
|
-
/**
|
|
5278
|
-
* Retrieve an `RNode` for a given `TNode` and `LView`.
|
|
5279
|
-
*
|
|
5280
|
-
* This function guarantees in dev mode to retrieve a non-null `RNode`.
|
|
5281
|
-
*
|
|
5282
|
-
* @param tNode
|
|
5283
|
-
* @param lView
|
|
5284
|
-
*/
|
|
5285
|
-
function getNativeByTNode(tNode, lView) {
|
|
5286
|
-
ngDevMode && assertTNodeForLView(tNode, lView);
|
|
5287
|
-
ngDevMode && assertDataInRange(lView, tNode.index);
|
|
5288
|
-
var node = unwrapRNode(lView[tNode.index]);
|
|
5289
|
-
ngDevMode && !isProceduralRenderer(lView[RENDERER]) && assertDomNode(node);
|
|
5290
|
-
return node;
|
|
5291
|
-
}
|
|
5292
|
-
/**
|
|
5293
|
-
* Retrieve an `RNode` or `null` for a given `TNode` and `LView`.
|
|
5294
|
-
*
|
|
5295
|
-
* Some `TNode`s don't have associated `RNode`s. For example `Projection`
|
|
5296
|
-
*
|
|
5297
|
-
* @param tNode
|
|
5298
|
-
* @param lView
|
|
5299
|
-
*/
|
|
5300
|
-
function getNativeByTNodeOrNull(tNode, lView) {
|
|
5301
|
-
var index = tNode.index;
|
|
5302
|
-
if (index !== -1) {
|
|
5303
|
-
ngDevMode && assertTNodeForLView(tNode, lView);
|
|
5304
|
-
var node = unwrapRNode(lView[index]);
|
|
5305
|
-
ngDevMode && node !== null && !isProceduralRenderer(lView[RENDERER]) && assertDomNode(node);
|
|
5306
|
-
return node;
|
|
5307
|
-
}
|
|
5308
|
-
return null;
|
|
5309
|
-
}
|
|
5310
|
-
function getTNode(tView, index) {
|
|
5311
|
-
ngDevMode && assertGreaterThan(index, -1, 'wrong index for TNode');
|
|
5312
|
-
ngDevMode && assertLessThan(index, tView.data.length, 'wrong index for TNode');
|
|
5313
|
-
return tView.data[index + HEADER_OFFSET];
|
|
5314
|
-
}
|
|
5315
|
-
/** Retrieves a value from any `LView` or `TData`. */
|
|
5316
|
-
function load(view, index) {
|
|
5317
|
-
ngDevMode && assertDataInRange(view, index + HEADER_OFFSET);
|
|
5318
|
-
return view[index + HEADER_OFFSET];
|
|
5319
|
-
}
|
|
5320
|
-
function getComponentLViewByIndex(nodeIndex, hostView) {
|
|
5321
|
-
// Could be an LView or an LContainer. If LContainer, unwrap to find LView.
|
|
5322
|
-
ngDevMode && assertDataInRange(hostView, nodeIndex);
|
|
5323
|
-
var slotValue = hostView[nodeIndex];
|
|
5324
|
-
var lView = isLView(slotValue) ? slotValue : slotValue[HOST];
|
|
5325
|
-
return lView;
|
|
5326
|
-
}
|
|
5327
|
-
/**
|
|
5328
|
-
* Returns the monkey-patch value data present on the target (which could be
|
|
5329
|
-
* a component, directive or a DOM node).
|
|
5330
|
-
*/
|
|
5331
|
-
function readPatchedData(target) {
|
|
5332
|
-
ngDevMode && assertDefined(target, 'Target expected');
|
|
5333
|
-
return target[MONKEY_PATCH_KEY_NAME] || null;
|
|
5334
|
-
}
|
|
5335
|
-
function readPatchedLView(target) {
|
|
5336
|
-
var value = readPatchedData(target);
|
|
5337
|
-
if (value) {
|
|
5338
|
-
return Array.isArray(value) ? value : value.lView;
|
|
5339
|
-
}
|
|
5340
|
-
return null;
|
|
5341
|
-
}
|
|
5342
|
-
/** Checks whether a given view is in creation mode */
|
|
5343
|
-
function isCreationMode(view) {
|
|
5344
|
-
return (view[FLAGS] & 4 /* CreationMode */) === 4 /* CreationMode */;
|
|
5345
|
-
}
|
|
5346
|
-
/**
|
|
5347
|
-
* Returns a boolean for whether the view is attached to the change detection tree.
|
|
5348
|
-
*
|
|
5349
|
-
* Note: This determines whether a view should be checked, not whether it's inserted
|
|
5350
|
-
* into a container. For that, you'll want `viewAttachedToContainer` below.
|
|
5351
|
-
*/
|
|
5352
|
-
function viewAttachedToChangeDetector(view) {
|
|
5353
|
-
return (view[FLAGS] & 128 /* Attached */) === 128 /* Attached */;
|
|
5354
|
-
}
|
|
5355
|
-
/** Returns a boolean for whether the view is attached to a container. */
|
|
5356
|
-
function viewAttachedToContainer(view) {
|
|
5357
|
-
return isLContainer(view[PARENT]);
|
|
5358
|
-
}
|
|
5359
|
-
/** Returns a constant from `TConstants` instance. */
|
|
5360
|
-
function getConstant(consts, index) {
|
|
5361
|
-
return consts === null || index == null ? null : consts[index];
|
|
5362
|
-
}
|
|
5363
|
-
/**
|
|
5364
|
-
* Resets the pre-order hook flags of the view.
|
|
5365
|
-
* @param lView the LView on which the flags are reset
|
|
5366
|
-
*/
|
|
5367
|
-
function resetPreOrderHookFlags(lView) {
|
|
5368
|
-
lView[PREORDER_HOOK_FLAGS] = 0;
|
|
5369
|
-
}
|
|
5370
|
-
function getLContainerActiveIndex(lContainer) {
|
|
5371
|
-
return lContainer[ACTIVE_INDEX] >> 1 /* SHIFT */;
|
|
5372
|
-
}
|
|
5373
|
-
function setLContainerActiveIndex(lContainer, index) {
|
|
5374
|
-
lContainer[ACTIVE_INDEX] = index << 1 /* SHIFT */;
|
|
5375
|
-
}
|
|
5376
|
-
|
|
5377
5392
|
/**
|
|
5378
5393
|
* @license
|
|
5379
5394
|
* Copyright Google Inc. All Rights Reserved.
|
|
@@ -5691,8 +5706,6 @@
|
|
|
5691
5706
|
}
|
|
5692
5707
|
// TODO: include debug context, see `viewDebugError` function in
|
|
5693
5708
|
// `packages/core/src/view/errors.ts` for reference.
|
|
5694
|
-
// tslint:disable-next-line
|
|
5695
|
-
debugger; // Left intentionally for better debugger experience.
|
|
5696
5709
|
throw new Error(msg);
|
|
5697
5710
|
}
|
|
5698
5711
|
function constructDetailsForInterpolation(lView, rootIndex, expressionIndex, meta, changedValue) {
|
|
@@ -8045,7 +8058,7 @@
|
|
|
8045
8058
|
outputsStore = generatePropertyAliases(directiveDef.outputs, i, outputsStore);
|
|
8046
8059
|
}
|
|
8047
8060
|
if (inputsStore !== null) {
|
|
8048
|
-
if (inputsStore.hasOwnProperty('class')
|
|
8061
|
+
if (inputsStore.hasOwnProperty('class')) {
|
|
8049
8062
|
tNode.flags |= 16 /* hasClassInput */;
|
|
8050
8063
|
}
|
|
8051
8064
|
if (inputsStore.hasOwnProperty('style')) {
|
|
@@ -8081,16 +8094,15 @@
|
|
|
8081
8094
|
return 'tabIndex';
|
|
8082
8095
|
return name;
|
|
8083
8096
|
}
|
|
8084
|
-
function elementPropertyInternal(tView,
|
|
8097
|
+
function elementPropertyInternal(tView, tNode, lView, propName, value, renderer, sanitizer, nativeOnly) {
|
|
8085
8098
|
ngDevMode && assertNotSame(value, NO_CHANGE, 'Incoming value should never be NO_CHANGE.');
|
|
8086
|
-
var element =
|
|
8087
|
-
var tNode = getTNode(tView, index);
|
|
8099
|
+
var element = getNativeByTNode(tNode, lView);
|
|
8088
8100
|
var inputData = tNode.inputs;
|
|
8089
8101
|
var dataValue;
|
|
8090
8102
|
if (!nativeOnly && inputData != null && (dataValue = inputData[propName])) {
|
|
8091
8103
|
setInputsForProperty(tView, lView, dataValue, propName, value);
|
|
8092
8104
|
if (isComponentHost(tNode))
|
|
8093
|
-
markDirtyIfOnPush(lView, index
|
|
8105
|
+
markDirtyIfOnPush(lView, tNode.index);
|
|
8094
8106
|
if (ngDevMode) {
|
|
8095
8107
|
setNgReflectProperties(lView, element, tNode.type, dataValue, value);
|
|
8096
8108
|
}
|
|
@@ -8106,7 +8118,6 @@
|
|
|
8106
8118
|
}
|
|
8107
8119
|
ngDevMode.rendererSetProperty++;
|
|
8108
8120
|
}
|
|
8109
|
-
var renderer = loadRendererFn ? loadRendererFn(tNode, lView) : lView[RENDERER];
|
|
8110
8121
|
// It is assumed that the sanitizer is only added when the compiler determines that the
|
|
8111
8122
|
// property is risky, so sanitization can be done without further checks.
|
|
8112
8123
|
value = sanitizer != null ? sanitizer(value, tNode.tagName || '', propName) : value;
|
|
@@ -8516,10 +8527,10 @@
|
|
|
8516
8527
|
// so this is a regular element, wrap it with the component view
|
|
8517
8528
|
lView[hostTNode.index] = componentView;
|
|
8518
8529
|
}
|
|
8519
|
-
function elementAttributeInternal(
|
|
8530
|
+
function elementAttributeInternal(tNode, lView, name, value, sanitizer, namespace) {
|
|
8520
8531
|
ngDevMode && assertNotSame(value, NO_CHANGE, 'Incoming value should never be NO_CHANGE.');
|
|
8521
8532
|
ngDevMode && validateAgainstEventAttributes(name);
|
|
8522
|
-
var element =
|
|
8533
|
+
var element = getNativeByTNode(tNode, lView);
|
|
8523
8534
|
var renderer = lView[RENDERER];
|
|
8524
8535
|
if (value == null) {
|
|
8525
8536
|
ngDevMode && ngDevMode.rendererRemoveAttribute++;
|
|
@@ -8528,7 +8539,6 @@
|
|
|
8528
8539
|
}
|
|
8529
8540
|
else {
|
|
8530
8541
|
ngDevMode && ngDevMode.rendererSetAttribute++;
|
|
8531
|
-
var tNode = getTNode(tView, index);
|
|
8532
8542
|
var strValue = sanitizer == null ? renderStringify(value) : sanitizer(value, tNode.tagName || '', name);
|
|
8533
8543
|
if (isProceduralRenderer(renderer)) {
|
|
8534
8544
|
renderer.setAttribute(element, name, strValue, namespace);
|
|
@@ -8935,12 +8945,12 @@
|
|
|
8935
8945
|
* interpolated properties.
|
|
8936
8946
|
*
|
|
8937
8947
|
* @param tData `TData` where meta-data will be saved;
|
|
8938
|
-
* @param
|
|
8948
|
+
* @param tNode `TNode` that is a target of the binding;
|
|
8939
8949
|
* @param propertyName bound property name;
|
|
8940
8950
|
* @param bindingIndex binding index in `LView`
|
|
8941
8951
|
* @param interpolationParts static interpolation parts (for property interpolations)
|
|
8942
8952
|
*/
|
|
8943
|
-
function storePropertyBindingMetadata(tData,
|
|
8953
|
+
function storePropertyBindingMetadata(tData, tNode, propertyName, bindingIndex) {
|
|
8944
8954
|
var interpolationParts = [];
|
|
8945
8955
|
for (var _i = 4; _i < arguments.length; _i++) {
|
|
8946
8956
|
interpolationParts[_i - 4] = arguments[_i];
|
|
@@ -8949,7 +8959,6 @@
|
|
|
8949
8959
|
// Since we don't have a concept of the "first update pass" we need to check for presence of the
|
|
8950
8960
|
// binding meta-data to decide if one should be stored (or if was stored already).
|
|
8951
8961
|
if (tData[bindingIndex] === null) {
|
|
8952
|
-
var tNode = tData[nodeIndex + HEADER_OFFSET];
|
|
8953
8962
|
if (tNode.inputs == null || !tNode.inputs[propertyName]) {
|
|
8954
8963
|
var propBindingIdxs = tNode.propertyBindings || (tNode.propertyBindings = []);
|
|
8955
8964
|
propBindingIdxs.push(bindingIndex);
|
|
@@ -9028,7 +9037,7 @@
|
|
|
9028
9037
|
* Use of this source code is governed by an MIT-style license that can be
|
|
9029
9038
|
* found in the LICENSE file at https://angular.io/license
|
|
9030
9039
|
*/
|
|
9031
|
-
var unusedValueToPlacateAjd$1 = unusedValueExportToPlacateAjd$1 + unusedValueExportToPlacateAjd$4 + unusedValueExportToPlacateAjd$5 + unusedValueExportToPlacateAjd$
|
|
9040
|
+
var unusedValueToPlacateAjd$1 = unusedValueExportToPlacateAjd$1 + unusedValueExportToPlacateAjd$4 + unusedValueExportToPlacateAjd$5 + unusedValueExportToPlacateAjd$2 + unusedValueExportToPlacateAjd;
|
|
9032
9041
|
function getLContainer(tNode, embeddedView) {
|
|
9033
9042
|
ngDevMode && assertLView(embeddedView);
|
|
9034
9043
|
var container = embeddedView[PARENT];
|
|
@@ -11116,7 +11125,7 @@
|
|
|
11116
11125
|
typeArgumentCount: metadata.typeArgumentCount,
|
|
11117
11126
|
deps: reflectDependencies(type),
|
|
11118
11127
|
injectFn: 'inject',
|
|
11119
|
-
target: compiler.R3FactoryTarget.
|
|
11128
|
+
target: compiler.R3FactoryTarget.Injectable
|
|
11120
11129
|
});
|
|
11121
11130
|
}
|
|
11122
11131
|
return ngFactoryDef;
|
|
@@ -11306,8 +11315,19 @@
|
|
|
11306
11315
|
function createInjector(defType, parent, additionalProviders, name) {
|
|
11307
11316
|
if (parent === void 0) { parent = null; }
|
|
11308
11317
|
if (additionalProviders === void 0) { additionalProviders = null; }
|
|
11309
|
-
|
|
11310
|
-
|
|
11318
|
+
var injector = createInjectorWithoutInjectorInstances(defType, parent, additionalProviders, name);
|
|
11319
|
+
injector._resolveInjectorDefTypes();
|
|
11320
|
+
return injector;
|
|
11321
|
+
}
|
|
11322
|
+
/**
|
|
11323
|
+
* Creates a new injector without eagerly resolving its injector types. Can be used in places
|
|
11324
|
+
* where resolving the injector types immediately can lead to an infinite loop. The injector types
|
|
11325
|
+
* should be resolved at a later point by calling `_resolveInjectorDefTypes`.
|
|
11326
|
+
*/
|
|
11327
|
+
function createInjectorWithoutInjectorInstances(defType, parent, additionalProviders, name) {
|
|
11328
|
+
if (parent === void 0) { parent = null; }
|
|
11329
|
+
if (additionalProviders === void 0) { additionalProviders = null; }
|
|
11330
|
+
return new R3Injector(defType, additionalProviders, parent || getNullInjector(), name);
|
|
11311
11331
|
}
|
|
11312
11332
|
var R3Injector = /** @class */ (function () {
|
|
11313
11333
|
function R3Injector(def, additionalProviders, parent, source) {
|
|
@@ -11341,8 +11361,6 @@
|
|
|
11341
11361
|
// any injectable scoped to APP_ROOT_SCOPE.
|
|
11342
11362
|
var record = this.records.get(INJECTOR_SCOPE);
|
|
11343
11363
|
this.scope = record != null ? record.value : null;
|
|
11344
|
-
// Eagerly instantiate the InjectorType classes themselves.
|
|
11345
|
-
this.injectorDefTypes.forEach(function (defType) { return _this.get(defType); });
|
|
11346
11364
|
// Source name, used for debugging
|
|
11347
11365
|
this.source = source || (typeof def === 'object' ? null : stringify(def));
|
|
11348
11366
|
}
|
|
@@ -11437,6 +11455,11 @@
|
|
|
11437
11455
|
setCurrentInjector(previousInjector);
|
|
11438
11456
|
}
|
|
11439
11457
|
};
|
|
11458
|
+
/** @internal */
|
|
11459
|
+
R3Injector.prototype._resolveInjectorDefTypes = function () {
|
|
11460
|
+
var _this = this;
|
|
11461
|
+
this.injectorDefTypes.forEach(function (defType) { return _this.get(defType); });
|
|
11462
|
+
};
|
|
11440
11463
|
R3Injector.prototype.toString = function () {
|
|
11441
11464
|
var tokens = [], records = this.records;
|
|
11442
11465
|
records.forEach(function (v, token) { return tokens.push(stringify(token)); });
|
|
@@ -13489,10 +13512,10 @@
|
|
|
13489
13512
|
var lView = getLView();
|
|
13490
13513
|
var bindingIndex = nextBindingIndex();
|
|
13491
13514
|
if (bindingUpdated(lView, bindingIndex, value)) {
|
|
13492
|
-
var nodeIndex = getSelectedIndex();
|
|
13493
13515
|
var tView = getTView();
|
|
13494
|
-
|
|
13495
|
-
|
|
13516
|
+
var tNode = getSelectedTNode();
|
|
13517
|
+
elementAttributeInternal(tNode, lView, name, value, sanitizer, namespace);
|
|
13518
|
+
ngDevMode && storePropertyBindingMetadata(tView.data, tNode, 'attr.' + name, bindingIndex);
|
|
13496
13519
|
}
|
|
13497
13520
|
return ɵɵattribute;
|
|
13498
13521
|
}
|
|
@@ -13662,11 +13685,10 @@
|
|
|
13662
13685
|
var lView = getLView();
|
|
13663
13686
|
var interpolatedValue = interpolation1(lView, prefix, v0, suffix);
|
|
13664
13687
|
if (interpolatedValue !== NO_CHANGE) {
|
|
13665
|
-
var
|
|
13666
|
-
|
|
13667
|
-
elementAttributeInternal(nodeIndex, attrName, interpolatedValue, tView, lView, sanitizer, namespace);
|
|
13688
|
+
var tNode = getSelectedTNode();
|
|
13689
|
+
elementAttributeInternal(tNode, lView, attrName, interpolatedValue, sanitizer, namespace);
|
|
13668
13690
|
ngDevMode &&
|
|
13669
|
-
storePropertyBindingMetadata(
|
|
13691
|
+
storePropertyBindingMetadata(getTView().data, tNode, 'attr.' + attrName, getBindingIndex() - 1, prefix, suffix);
|
|
13670
13692
|
}
|
|
13671
13693
|
return ɵɵattributeInterpolate1;
|
|
13672
13694
|
}
|
|
@@ -13700,11 +13722,10 @@
|
|
|
13700
13722
|
var lView = getLView();
|
|
13701
13723
|
var interpolatedValue = interpolation2(lView, prefix, v0, i0, v1, suffix);
|
|
13702
13724
|
if (interpolatedValue !== NO_CHANGE) {
|
|
13703
|
-
var
|
|
13704
|
-
|
|
13705
|
-
elementAttributeInternal(nodeIndex, attrName, interpolatedValue, tView, lView, sanitizer, namespace);
|
|
13725
|
+
var tNode = getSelectedTNode();
|
|
13726
|
+
elementAttributeInternal(tNode, lView, attrName, interpolatedValue, sanitizer, namespace);
|
|
13706
13727
|
ngDevMode &&
|
|
13707
|
-
storePropertyBindingMetadata(
|
|
13728
|
+
storePropertyBindingMetadata(getTView().data, tNode, 'attr.' + attrName, getBindingIndex() - 2, prefix, i0, suffix);
|
|
13708
13729
|
}
|
|
13709
13730
|
return ɵɵattributeInterpolate2;
|
|
13710
13731
|
}
|
|
@@ -13741,10 +13762,9 @@
|
|
|
13741
13762
|
var lView = getLView();
|
|
13742
13763
|
var interpolatedValue = interpolation3(lView, prefix, v0, i0, v1, i1, v2, suffix);
|
|
13743
13764
|
if (interpolatedValue !== NO_CHANGE) {
|
|
13744
|
-
var
|
|
13745
|
-
|
|
13746
|
-
|
|
13747
|
-
ngDevMode && storePropertyBindingMetadata(tView.data, nodeIndex, 'attr.' + attrName, getBindingIndex() - 3, prefix, i0, i1, suffix);
|
|
13765
|
+
var tNode = getSelectedTNode();
|
|
13766
|
+
elementAttributeInternal(tNode, lView, attrName, interpolatedValue, sanitizer, namespace);
|
|
13767
|
+
ngDevMode && storePropertyBindingMetadata(getTView().data, tNode, 'attr.' + attrName, getBindingIndex() - 3, prefix, i0, i1, suffix);
|
|
13748
13768
|
}
|
|
13749
13769
|
return ɵɵattributeInterpolate3;
|
|
13750
13770
|
}
|
|
@@ -13783,10 +13803,9 @@
|
|
|
13783
13803
|
var lView = getLView();
|
|
13784
13804
|
var interpolatedValue = interpolation4(lView, prefix, v0, i0, v1, i1, v2, i2, v3, suffix);
|
|
13785
13805
|
if (interpolatedValue !== NO_CHANGE) {
|
|
13786
|
-
var
|
|
13787
|
-
|
|
13788
|
-
|
|
13789
|
-
ngDevMode && storePropertyBindingMetadata(tView.data, nodeIndex, 'attr.' + attrName, getBindingIndex() - 4, prefix, i0, i1, i2, suffix);
|
|
13806
|
+
var tNode = getSelectedTNode();
|
|
13807
|
+
elementAttributeInternal(tNode, lView, attrName, interpolatedValue, sanitizer, namespace);
|
|
13808
|
+
ngDevMode && storePropertyBindingMetadata(getTView().data, tNode, 'attr.' + attrName, getBindingIndex() - 4, prefix, i0, i1, i2, suffix);
|
|
13790
13809
|
}
|
|
13791
13810
|
return ɵɵattributeInterpolate4;
|
|
13792
13811
|
}
|
|
@@ -13827,10 +13846,9 @@
|
|
|
13827
13846
|
var lView = getLView();
|
|
13828
13847
|
var interpolatedValue = interpolation5(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, suffix);
|
|
13829
13848
|
if (interpolatedValue !== NO_CHANGE) {
|
|
13830
|
-
var
|
|
13831
|
-
|
|
13832
|
-
|
|
13833
|
-
ngDevMode && storePropertyBindingMetadata(tView.data, nodeIndex, 'attr.' + attrName, getBindingIndex() - 5, prefix, i0, i1, i2, i3, suffix);
|
|
13849
|
+
var tNode = getSelectedTNode();
|
|
13850
|
+
elementAttributeInternal(tNode, lView, attrName, interpolatedValue, sanitizer, namespace);
|
|
13851
|
+
ngDevMode && storePropertyBindingMetadata(getTView().data, tNode, 'attr.' + attrName, getBindingIndex() - 5, prefix, i0, i1, i2, i3, suffix);
|
|
13834
13852
|
}
|
|
13835
13853
|
return ɵɵattributeInterpolate5;
|
|
13836
13854
|
}
|
|
@@ -13873,10 +13891,9 @@
|
|
|
13873
13891
|
var lView = getLView();
|
|
13874
13892
|
var interpolatedValue = interpolation6(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, suffix);
|
|
13875
13893
|
if (interpolatedValue !== NO_CHANGE) {
|
|
13876
|
-
var
|
|
13877
|
-
|
|
13878
|
-
|
|
13879
|
-
ngDevMode && storePropertyBindingMetadata(tView.data, nodeIndex, 'attr.' + attrName, getBindingIndex() - 6, prefix, i0, i1, i2, i3, i4, suffix);
|
|
13894
|
+
var tNode = getSelectedTNode();
|
|
13895
|
+
elementAttributeInternal(tNode, lView, attrName, interpolatedValue, sanitizer, namespace);
|
|
13896
|
+
ngDevMode && storePropertyBindingMetadata(getTView().data, tNode, 'attr.' + attrName, getBindingIndex() - 6, prefix, i0, i1, i2, i3, i4, suffix);
|
|
13880
13897
|
}
|
|
13881
13898
|
return ɵɵattributeInterpolate6;
|
|
13882
13899
|
}
|
|
@@ -13921,10 +13938,9 @@
|
|
|
13921
13938
|
var lView = getLView();
|
|
13922
13939
|
var interpolatedValue = interpolation7(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, suffix);
|
|
13923
13940
|
if (interpolatedValue !== NO_CHANGE) {
|
|
13924
|
-
var
|
|
13925
|
-
|
|
13926
|
-
|
|
13927
|
-
ngDevMode && storePropertyBindingMetadata(tView.data, nodeIndex, 'attr.' + attrName, getBindingIndex() - 7, prefix, i0, i1, i2, i3, i4, i5, suffix);
|
|
13941
|
+
var tNode = getSelectedTNode();
|
|
13942
|
+
elementAttributeInternal(tNode, lView, attrName, interpolatedValue, sanitizer, namespace);
|
|
13943
|
+
ngDevMode && storePropertyBindingMetadata(getTView().data, tNode, 'attr.' + attrName, getBindingIndex() - 7, prefix, i0, i1, i2, i3, i4, i5, suffix);
|
|
13928
13944
|
}
|
|
13929
13945
|
return ɵɵattributeInterpolate7;
|
|
13930
13946
|
}
|
|
@@ -13971,10 +13987,9 @@
|
|
|
13971
13987
|
var lView = getLView();
|
|
13972
13988
|
var interpolatedValue = interpolation8(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, i6, v7, suffix);
|
|
13973
13989
|
if (interpolatedValue !== NO_CHANGE) {
|
|
13974
|
-
var
|
|
13975
|
-
|
|
13976
|
-
|
|
13977
|
-
ngDevMode && storePropertyBindingMetadata(tView.data, nodeIndex, 'attr.' + attrName, getBindingIndex() - 8, prefix, i0, i1, i2, i3, i4, i5, i6, suffix);
|
|
13990
|
+
var tNode = getSelectedTNode();
|
|
13991
|
+
elementAttributeInternal(tNode, lView, attrName, interpolatedValue, sanitizer, namespace);
|
|
13992
|
+
ngDevMode && storePropertyBindingMetadata(getTView().data, tNode, 'attr.' + attrName, getBindingIndex() - 8, prefix, i0, i1, i2, i3, i4, i5, i6, suffix);
|
|
13978
13993
|
}
|
|
13979
13994
|
return ɵɵattributeInterpolate8;
|
|
13980
13995
|
}
|
|
@@ -14008,15 +14023,14 @@
|
|
|
14008
14023
|
var lView = getLView();
|
|
14009
14024
|
var interpolated = interpolationV(lView, values);
|
|
14010
14025
|
if (interpolated !== NO_CHANGE) {
|
|
14011
|
-
var
|
|
14012
|
-
|
|
14013
|
-
elementAttributeInternal(nodeIndex, attrName, interpolated, tView, lView, sanitizer, namespace);
|
|
14026
|
+
var tNode = getSelectedTNode();
|
|
14027
|
+
elementAttributeInternal(tNode, lView, attrName, interpolated, sanitizer, namespace);
|
|
14014
14028
|
if (ngDevMode) {
|
|
14015
14029
|
var interpolationInBetween = [values[0]]; // prefix
|
|
14016
14030
|
for (var i = 2; i < values.length; i += 2) {
|
|
14017
14031
|
interpolationInBetween.push(values[i]);
|
|
14018
14032
|
}
|
|
14019
|
-
storePropertyBindingMetadata.apply(void 0, __spread([
|
|
14033
|
+
storePropertyBindingMetadata.apply(void 0, __spread([getTView().data, tNode, 'attr.' + attrName,
|
|
14020
14034
|
getBindingIndex() - interpolationInBetween.length + 1], interpolationInBetween));
|
|
14021
14035
|
}
|
|
14022
14036
|
}
|
|
@@ -14338,10 +14352,10 @@
|
|
|
14338
14352
|
var lView = getLView();
|
|
14339
14353
|
var bindingIndex = nextBindingIndex();
|
|
14340
14354
|
if (bindingUpdated(lView, bindingIndex, value)) {
|
|
14341
|
-
var nodeIndex = getSelectedIndex();
|
|
14342
14355
|
var tView = getTView();
|
|
14343
|
-
|
|
14344
|
-
|
|
14356
|
+
var tNode = getSelectedTNode();
|
|
14357
|
+
elementPropertyInternal(tView, tNode, lView, propName, value, lView[RENDERER], sanitizer, false);
|
|
14358
|
+
ngDevMode && storePropertyBindingMetadata(tView.data, tNode, propName, bindingIndex);
|
|
14345
14359
|
}
|
|
14346
14360
|
return ɵɵproperty;
|
|
14347
14361
|
}
|
|
@@ -14353,8 +14367,7 @@
|
|
|
14353
14367
|
var inputs = tNode.inputs;
|
|
14354
14368
|
var property = isClassBased ? 'class' : 'style';
|
|
14355
14369
|
// We support both 'class' and `className` hence the fallback.
|
|
14356
|
-
|
|
14357
|
-
setInputsForProperty(tView, lView, stylingInputs, property, value);
|
|
14370
|
+
setInputsForProperty(tView, lView, inputs[property], property, value);
|
|
14358
14371
|
}
|
|
14359
14372
|
|
|
14360
14373
|
/**
|
|
@@ -15230,10 +15243,10 @@
|
|
|
15230
15243
|
var lView = getLView();
|
|
15231
15244
|
var interpolatedValue = interpolation1(lView, prefix, v0, suffix);
|
|
15232
15245
|
if (interpolatedValue !== NO_CHANGE) {
|
|
15233
|
-
var nodeIndex = getSelectedIndex();
|
|
15234
15246
|
var tView = getTView();
|
|
15235
|
-
|
|
15236
|
-
|
|
15247
|
+
var tNode = getSelectedTNode();
|
|
15248
|
+
elementPropertyInternal(tView, tNode, lView, propName, interpolatedValue, lView[RENDERER], sanitizer, false);
|
|
15249
|
+
ngDevMode && storePropertyBindingMetadata(tView.data, tNode, propName, getBindingIndex() - 1, prefix, suffix);
|
|
15237
15250
|
}
|
|
15238
15251
|
return ɵɵpropertyInterpolate1;
|
|
15239
15252
|
}
|
|
@@ -15271,10 +15284,10 @@
|
|
|
15271
15284
|
var lView = getLView();
|
|
15272
15285
|
var interpolatedValue = interpolation2(lView, prefix, v0, i0, v1, suffix);
|
|
15273
15286
|
if (interpolatedValue !== NO_CHANGE) {
|
|
15274
|
-
var nodeIndex = getSelectedIndex();
|
|
15275
15287
|
var tView = getTView();
|
|
15276
|
-
|
|
15277
|
-
|
|
15288
|
+
var tNode = getSelectedTNode();
|
|
15289
|
+
elementPropertyInternal(tView, tNode, lView, propName, interpolatedValue, lView[RENDERER], sanitizer, false);
|
|
15290
|
+
ngDevMode && storePropertyBindingMetadata(tView.data, tNode, propName, getBindingIndex() - 2, prefix, i0, suffix);
|
|
15278
15291
|
}
|
|
15279
15292
|
return ɵɵpropertyInterpolate2;
|
|
15280
15293
|
}
|
|
@@ -15315,11 +15328,10 @@
|
|
|
15315
15328
|
var lView = getLView();
|
|
15316
15329
|
var interpolatedValue = interpolation3(lView, prefix, v0, i0, v1, i1, v2, suffix);
|
|
15317
15330
|
if (interpolatedValue !== NO_CHANGE) {
|
|
15318
|
-
var nodeIndex = getSelectedIndex();
|
|
15319
15331
|
var tView = getTView();
|
|
15320
|
-
|
|
15321
|
-
|
|
15322
|
-
|
|
15332
|
+
var tNode = getSelectedTNode();
|
|
15333
|
+
elementPropertyInternal(tView, tNode, lView, propName, interpolatedValue, lView[RENDERER], sanitizer, false);
|
|
15334
|
+
ngDevMode && storePropertyBindingMetadata(tView.data, tNode, propName, getBindingIndex() - 3, prefix, i0, i1, suffix);
|
|
15323
15335
|
}
|
|
15324
15336
|
return ɵɵpropertyInterpolate3;
|
|
15325
15337
|
}
|
|
@@ -15362,11 +15374,11 @@
|
|
|
15362
15374
|
var lView = getLView();
|
|
15363
15375
|
var interpolatedValue = interpolation4(lView, prefix, v0, i0, v1, i1, v2, i2, v3, suffix);
|
|
15364
15376
|
if (interpolatedValue !== NO_CHANGE) {
|
|
15365
|
-
var nodeIndex = getSelectedIndex();
|
|
15366
15377
|
var tView = getTView();
|
|
15367
|
-
|
|
15378
|
+
var tNode = getSelectedTNode();
|
|
15379
|
+
elementPropertyInternal(tView, tNode, lView, propName, interpolatedValue, lView[RENDERER], sanitizer, false);
|
|
15368
15380
|
ngDevMode &&
|
|
15369
|
-
storePropertyBindingMetadata(tView.data,
|
|
15381
|
+
storePropertyBindingMetadata(tView.data, tNode, propName, getBindingIndex() - 4, prefix, i0, i1, i2, suffix);
|
|
15370
15382
|
}
|
|
15371
15383
|
return ɵɵpropertyInterpolate4;
|
|
15372
15384
|
}
|
|
@@ -15411,11 +15423,11 @@
|
|
|
15411
15423
|
var lView = getLView();
|
|
15412
15424
|
var interpolatedValue = interpolation5(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, suffix);
|
|
15413
15425
|
if (interpolatedValue !== NO_CHANGE) {
|
|
15414
|
-
var nodeIndex = getSelectedIndex();
|
|
15415
15426
|
var tView = getTView();
|
|
15416
|
-
|
|
15427
|
+
var tNode = getSelectedTNode();
|
|
15428
|
+
elementPropertyInternal(tView, tNode, lView, propName, interpolatedValue, lView[RENDERER], sanitizer, false);
|
|
15417
15429
|
ngDevMode &&
|
|
15418
|
-
storePropertyBindingMetadata(tView.data,
|
|
15430
|
+
storePropertyBindingMetadata(tView.data, tNode, propName, getBindingIndex() - 5, prefix, i0, i1, i2, i3, suffix);
|
|
15419
15431
|
}
|
|
15420
15432
|
return ɵɵpropertyInterpolate5;
|
|
15421
15433
|
}
|
|
@@ -15462,10 +15474,11 @@
|
|
|
15462
15474
|
var lView = getLView();
|
|
15463
15475
|
var interpolatedValue = interpolation6(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, suffix);
|
|
15464
15476
|
if (interpolatedValue !== NO_CHANGE) {
|
|
15465
|
-
var nodeIndex = getSelectedIndex();
|
|
15466
15477
|
var tView = getTView();
|
|
15467
|
-
|
|
15468
|
-
|
|
15478
|
+
var tNode = getSelectedTNode();
|
|
15479
|
+
elementPropertyInternal(tView, tNode, lView, propName, interpolatedValue, lView[RENDERER], sanitizer, false);
|
|
15480
|
+
ngDevMode &&
|
|
15481
|
+
storePropertyBindingMetadata(tView.data, tNode, propName, getBindingIndex() - 6, prefix, i0, i1, i2, i3, i4, suffix);
|
|
15469
15482
|
}
|
|
15470
15483
|
return ɵɵpropertyInterpolate6;
|
|
15471
15484
|
}
|
|
@@ -15514,10 +15527,10 @@
|
|
|
15514
15527
|
var lView = getLView();
|
|
15515
15528
|
var interpolatedValue = interpolation7(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, suffix);
|
|
15516
15529
|
if (interpolatedValue !== NO_CHANGE) {
|
|
15517
|
-
var nodeIndex = getSelectedIndex();
|
|
15518
15530
|
var tView = getTView();
|
|
15519
|
-
|
|
15520
|
-
|
|
15531
|
+
var tNode = getSelectedTNode();
|
|
15532
|
+
elementPropertyInternal(tView, tNode, lView, propName, interpolatedValue, lView[RENDERER], sanitizer, false);
|
|
15533
|
+
ngDevMode && storePropertyBindingMetadata(tView.data, tNode, propName, getBindingIndex() - 7, prefix, i0, i1, i2, i3, i4, i5, suffix);
|
|
15521
15534
|
}
|
|
15522
15535
|
return ɵɵpropertyInterpolate7;
|
|
15523
15536
|
}
|
|
@@ -15568,10 +15581,10 @@
|
|
|
15568
15581
|
var lView = getLView();
|
|
15569
15582
|
var interpolatedValue = interpolation8(lView, prefix, v0, i0, v1, i1, v2, i2, v3, i3, v4, i4, v5, i5, v6, i6, v7, suffix);
|
|
15570
15583
|
if (interpolatedValue !== NO_CHANGE) {
|
|
15571
|
-
var nodeIndex = getSelectedIndex();
|
|
15572
15584
|
var tView = getTView();
|
|
15573
|
-
|
|
15574
|
-
|
|
15585
|
+
var tNode = getSelectedTNode();
|
|
15586
|
+
elementPropertyInternal(tView, tNode, lView, propName, interpolatedValue, lView[RENDERER], sanitizer, false);
|
|
15587
|
+
ngDevMode && storePropertyBindingMetadata(tView.data, tNode, propName, getBindingIndex() - 8, prefix, i0, i1, i2, i3, i4, i5, i6, suffix);
|
|
15575
15588
|
}
|
|
15576
15589
|
return ɵɵpropertyInterpolate8;
|
|
15577
15590
|
}
|
|
@@ -15609,15 +15622,15 @@
|
|
|
15609
15622
|
var lView = getLView();
|
|
15610
15623
|
var interpolatedValue = interpolationV(lView, values);
|
|
15611
15624
|
if (interpolatedValue !== NO_CHANGE) {
|
|
15612
|
-
var nodeIndex = getSelectedIndex();
|
|
15613
15625
|
var tView = getTView();
|
|
15614
|
-
|
|
15626
|
+
var tNode = getSelectedTNode();
|
|
15627
|
+
elementPropertyInternal(tView, tNode, lView, propName, interpolatedValue, lView[RENDERER], sanitizer, false);
|
|
15615
15628
|
if (ngDevMode) {
|
|
15616
15629
|
var interpolationInBetween = [values[0]]; // prefix
|
|
15617
15630
|
for (var i = 2; i < values.length; i += 2) {
|
|
15618
15631
|
interpolationInBetween.push(values[i]);
|
|
15619
15632
|
}
|
|
15620
|
-
storePropertyBindingMetadata.apply(void 0, __spread([tView.data,
|
|
15633
|
+
storePropertyBindingMetadata.apply(void 0, __spread([tView.data, tNode, propName, getBindingIndex() - interpolationInBetween.length + 1], interpolationInBetween));
|
|
15621
15634
|
}
|
|
15622
15635
|
}
|
|
15623
15636
|
return ɵɵpropertyInterpolateV;
|
|
@@ -18465,10 +18478,10 @@
|
|
|
18465
18478
|
var lView = getLView();
|
|
18466
18479
|
var bindingIndex = nextBindingIndex();
|
|
18467
18480
|
if (bindingUpdated(lView, bindingIndex, value)) {
|
|
18468
|
-
var nodeIndex = getSelectedIndex();
|
|
18469
18481
|
var tView = getTView();
|
|
18470
|
-
|
|
18471
|
-
|
|
18482
|
+
var tNode = getSelectedTNode();
|
|
18483
|
+
elementPropertyInternal(tView, tNode, lView, propName, value, lView[RENDERER], sanitizer, true);
|
|
18484
|
+
ngDevMode && storePropertyBindingMetadata(tView.data, tNode, propName, bindingIndex);
|
|
18472
18485
|
}
|
|
18473
18486
|
return ɵɵhostProperty;
|
|
18474
18487
|
}
|
|
@@ -18497,10 +18510,11 @@
|
|
|
18497
18510
|
var lView = getLView();
|
|
18498
18511
|
var bindingIndex = nextBindingIndex();
|
|
18499
18512
|
if (bindingUpdated(lView, bindingIndex, value)) {
|
|
18500
|
-
var nodeIndex = getSelectedIndex();
|
|
18501
18513
|
var tView = getTView();
|
|
18502
|
-
|
|
18503
|
-
|
|
18514
|
+
var tNode = getSelectedTNode();
|
|
18515
|
+
var renderer = loadComponentRenderer(tNode, lView);
|
|
18516
|
+
elementPropertyInternal(tView, tNode, lView, propName, value, renderer, sanitizer, true);
|
|
18517
|
+
ngDevMode && storePropertyBindingMetadata(tView.data, tNode, propName, bindingIndex);
|
|
18504
18518
|
}
|
|
18505
18519
|
return ɵɵupdateSyntheticHostBinding;
|
|
18506
18520
|
}
|
|
@@ -19455,24 +19469,23 @@
|
|
|
19455
19469
|
* static ɵcmp = defineComponent({
|
|
19456
19470
|
* ...
|
|
19457
19471
|
* inputs: {name: 'publicName'},
|
|
19458
|
-
* features: [NgOnChangesFeature
|
|
19472
|
+
* features: [NgOnChangesFeature]
|
|
19459
19473
|
* });
|
|
19460
19474
|
* ```
|
|
19461
19475
|
*
|
|
19462
19476
|
* @codeGenApi
|
|
19463
19477
|
*/
|
|
19464
|
-
function ɵɵNgOnChangesFeature() {
|
|
19465
|
-
// This option ensures that the ngOnChanges lifecycle hook will be inherited
|
|
19466
|
-
// from superclasses (in InheritDefinitionFeature).
|
|
19467
|
-
NgOnChangesFeatureImpl.ngInherit = true;
|
|
19468
|
-
return NgOnChangesFeatureImpl;
|
|
19469
|
-
}
|
|
19470
|
-
function NgOnChangesFeatureImpl(definition) {
|
|
19478
|
+
function ɵɵNgOnChangesFeature(definition) {
|
|
19471
19479
|
if (definition.type.prototype.ngOnChanges) {
|
|
19472
19480
|
definition.setInput = ngOnChangesSetInput;
|
|
19473
19481
|
definition.onChanges = wrapOnChanges();
|
|
19474
19482
|
}
|
|
19475
19483
|
}
|
|
19484
|
+
// This option ensures that the ngOnChanges lifecycle hook will be inherited
|
|
19485
|
+
// from superclasses (in InheritDefinitionFeature).
|
|
19486
|
+
/** @nocollapse */
|
|
19487
|
+
// tslint:disable-next-line:no-toplevel-property-access
|
|
19488
|
+
ɵɵNgOnChangesFeature.ngInherit = true;
|
|
19476
19489
|
function wrapOnChanges() {
|
|
19477
19490
|
return function wrapOnChangesHook_inPreviousChangesStorage() {
|
|
19478
19491
|
var simpleChangesStore = getSimpleChangesStore(this);
|
|
@@ -20056,7 +20069,7 @@
|
|
|
20056
20069
|
/**
|
|
20057
20070
|
* @publicApi
|
|
20058
20071
|
*/
|
|
20059
|
-
var VERSION = new Version('9.0.
|
|
20072
|
+
var VERSION = new Version('9.0.7');
|
|
20060
20073
|
|
|
20061
20074
|
/**
|
|
20062
20075
|
* @license
|
|
@@ -23750,11 +23763,17 @@
|
|
|
23750
23763
|
for (var j = 0; j < parts.length; j++) {
|
|
23751
23764
|
if (j & 1) {
|
|
23752
23765
|
// Odd indexes are ICU expressions
|
|
23766
|
+
var icuExpression = parts[j];
|
|
23767
|
+
// Verify that ICU expression has the right shape. Translations might contain invalid
|
|
23768
|
+
// constructions (while original messages were correct), so ICU parsing at runtime may not
|
|
23769
|
+
// succeed (thus `icuExpression` remains a string).
|
|
23770
|
+
if (typeof icuExpression !== 'object') {
|
|
23771
|
+
throw new Error("Unable to parse ICU expression in \"" + templateTranslation + "\" message.");
|
|
23772
|
+
}
|
|
23753
23773
|
// Create the comment node that will anchor the ICU expression
|
|
23754
23774
|
var icuNodeIndex = startIndex + i18nVarsCount++;
|
|
23755
23775
|
createOpCodes.push(COMMENT_MARKER, ngDevMode ? "ICU " + icuNodeIndex : '', icuNodeIndex, parentIndex << 17 /* SHIFT_PARENT */ | 1 /* AppendChild */);
|
|
23756
23776
|
// Update codes for the ICU expression
|
|
23757
|
-
var icuExpression = parts[j];
|
|
23758
23777
|
var mask = getBindingMask(icuExpression);
|
|
23759
23778
|
icuStart(icuExpressions, icuExpression, icuNodeIndex, icuNodeIndex);
|
|
23760
23779
|
// Since this is recursive, the last TIcu that was pushed is the one we want
|
|
@@ -23976,7 +23995,8 @@
|
|
|
23976
23995
|
}
|
|
23977
23996
|
// Check if an element has any local refs and skip them
|
|
23978
23997
|
var tNode = getTNode(tView, index);
|
|
23979
|
-
if (tNode && (tNode.type ===
|
|
23998
|
+
if (tNode && (tNode.type === 0 /* Container */ || tNode.type === 3 /* Element */ ||
|
|
23999
|
+
tNode.type === 4 /* ElementContainer */) &&
|
|
23980
24000
|
tNode.localNames !== null) {
|
|
23981
24001
|
// Divide by 2 to get the number of local refs,
|
|
23982
24002
|
// since they are stored as an array that also includes directive indexes,
|
|
@@ -24059,7 +24079,7 @@
|
|
|
24059
24079
|
var attrValue = createOpCodes[++i];
|
|
24060
24080
|
// This code is used for ICU expressions only, since we don't support
|
|
24061
24081
|
// directives/components in ICUs, we don't need to worry about inputs here
|
|
24062
|
-
elementAttributeInternal(elementNodeIndex, attrName, attrValue,
|
|
24082
|
+
elementAttributeInternal(getTNode(tView, elementNodeIndex), lView, attrName, attrValue, null, null);
|
|
24063
24083
|
break;
|
|
24064
24084
|
default:
|
|
24065
24085
|
throw new Error("Unable to determine the type of mutate operation for \"" + opCode + "\"");
|
|
@@ -24129,7 +24149,7 @@
|
|
|
24129
24149
|
case 1 /* Attr */:
|
|
24130
24150
|
var propName = updateOpCodes[++j];
|
|
24131
24151
|
var sanitizeFn = updateOpCodes[++j];
|
|
24132
|
-
elementPropertyInternal(tView,
|
|
24152
|
+
elementPropertyInternal(tView, getTNode(tView, nodeIndex), lView, propName, value, lView[RENDERER], sanitizeFn, false);
|
|
24133
24153
|
break;
|
|
24134
24154
|
case 0 /* Text */:
|
|
24135
24155
|
textBindingInternal(lView, nodeIndex, value);
|
|
@@ -24283,7 +24303,7 @@
|
|
|
24283
24303
|
// Set attributes for Elements only, for other types (like ElementContainer),
|
|
24284
24304
|
// only set inputs below
|
|
24285
24305
|
if (tNode.type === 3 /* Element */) {
|
|
24286
|
-
elementAttributeInternal(
|
|
24306
|
+
elementAttributeInternal(tNode, lView, attrName, value, null, null);
|
|
24287
24307
|
}
|
|
24288
24308
|
// Check if that attribute is a directive input
|
|
24289
24309
|
var dataValue = tNode.inputs !== null && tNode.inputs[attrName];
|
|
@@ -24671,10 +24691,14 @@
|
|
|
24671
24691
|
var ngLocaleIdDef = getNgLocaleIdDef(ngModuleType);
|
|
24672
24692
|
ngLocaleIdDef && setLocaleId(ngLocaleIdDef);
|
|
24673
24693
|
_this._bootstrapComponents = maybeUnwrapFn(ngModuleDef.bootstrap);
|
|
24674
|
-
_this._r3Injector =
|
|
24694
|
+
_this._r3Injector = createInjectorWithoutInjectorInstances(ngModuleType, _parent, [
|
|
24675
24695
|
{ provide: NgModuleRef, useValue: _this },
|
|
24676
24696
|
{ provide: ComponentFactoryResolver, useValue: _this.componentFactoryResolver }
|
|
24677
24697
|
], stringify(ngModuleType));
|
|
24698
|
+
// We need to resolve the injector types separately from the injector creation, because
|
|
24699
|
+
// the module might be trying to use this ref in its contructor for DI which will cause a
|
|
24700
|
+
// circular error that will eventually error out, because the injector isn't created yet.
|
|
24701
|
+
_this._r3Injector._resolveInjectorDefTypes();
|
|
24678
24702
|
_this.instance = _this.get(ngModuleType);
|
|
24679
24703
|
return _this;
|
|
24680
24704
|
}
|
|
@@ -25031,6 +25055,18 @@
|
|
|
25031
25055
|
function ɵɵpureFunctionV(slotOffset, pureFn, exps, thisArg) {
|
|
25032
25056
|
return pureFunctionVInternal(getLView(), getBindingRoot(), slotOffset, pureFn, exps, thisArg);
|
|
25033
25057
|
}
|
|
25058
|
+
/**
|
|
25059
|
+
* Results of a pure function invocation are stored in LView in a dedicated slot that is initialized
|
|
25060
|
+
* to NO_CHANGE. In rare situations a pure pipe might throw an exception on the very first
|
|
25061
|
+
* invocation and not produce any valid results. In this case LView would keep holding the NO_CHANGE
|
|
25062
|
+
* value. The NO_CHANGE is not something that we can use in expressions / bindings thus we convert
|
|
25063
|
+
* it to `undefined`.
|
|
25064
|
+
*/
|
|
25065
|
+
function getPureFunctionReturnValue(lView, returnValueIndex) {
|
|
25066
|
+
ngDevMode && assertDataInRange(lView, returnValueIndex);
|
|
25067
|
+
var lastReturnValue = lView[returnValueIndex];
|
|
25068
|
+
return lastReturnValue === NO_CHANGE ? undefined : lastReturnValue;
|
|
25069
|
+
}
|
|
25034
25070
|
/**
|
|
25035
25071
|
* If the value of the provided exp has changed, calls the pure function to return
|
|
25036
25072
|
* an updated value. Or if the value has not changed, returns cached value.
|
|
@@ -25047,7 +25083,7 @@
|
|
|
25047
25083
|
var bindingIndex = bindingRoot + slotOffset;
|
|
25048
25084
|
return bindingUpdated(lView, bindingIndex, exp) ?
|
|
25049
25085
|
updateBinding(lView, bindingIndex + 1, thisArg ? pureFn.call(thisArg, exp) : pureFn(exp)) :
|
|
25050
|
-
|
|
25086
|
+
getPureFunctionReturnValue(lView, bindingIndex + 1);
|
|
25051
25087
|
}
|
|
25052
25088
|
/**
|
|
25053
25089
|
* If the value of any provided exp has changed, calls the pure function to return
|
|
@@ -25066,7 +25102,7 @@
|
|
|
25066
25102
|
var bindingIndex = bindingRoot + slotOffset;
|
|
25067
25103
|
return bindingUpdated2(lView, bindingIndex, exp1, exp2) ?
|
|
25068
25104
|
updateBinding(lView, bindingIndex + 2, thisArg ? pureFn.call(thisArg, exp1, exp2) : pureFn(exp1, exp2)) :
|
|
25069
|
-
|
|
25105
|
+
getPureFunctionReturnValue(lView, bindingIndex + 2);
|
|
25070
25106
|
}
|
|
25071
25107
|
/**
|
|
25072
25108
|
* If the value of any provided exp has changed, calls the pure function to return
|
|
@@ -25086,7 +25122,7 @@
|
|
|
25086
25122
|
var bindingIndex = bindingRoot + slotOffset;
|
|
25087
25123
|
return bindingUpdated3(lView, bindingIndex, exp1, exp2, exp3) ?
|
|
25088
25124
|
updateBinding(lView, bindingIndex + 3, thisArg ? pureFn.call(thisArg, exp1, exp2, exp3) : pureFn(exp1, exp2, exp3)) :
|
|
25089
|
-
|
|
25125
|
+
getPureFunctionReturnValue(lView, bindingIndex + 3);
|
|
25090
25126
|
}
|
|
25091
25127
|
/**
|
|
25092
25128
|
* If the value of any provided exp has changed, calls the pure function to return
|
|
@@ -25108,7 +25144,7 @@
|
|
|
25108
25144
|
var bindingIndex = bindingRoot + slotOffset;
|
|
25109
25145
|
return bindingUpdated4(lView, bindingIndex, exp1, exp2, exp3, exp4) ?
|
|
25110
25146
|
updateBinding(lView, bindingIndex + 4, thisArg ? pureFn.call(thisArg, exp1, exp2, exp3, exp4) : pureFn(exp1, exp2, exp3, exp4)) :
|
|
25111
|
-
|
|
25147
|
+
getPureFunctionReturnValue(lView, bindingIndex + 4);
|
|
25112
25148
|
}
|
|
25113
25149
|
/**
|
|
25114
25150
|
* pureFunction instruction that can support any number of bindings.
|
|
@@ -25132,7 +25168,7 @@
|
|
|
25132
25168
|
bindingUpdated(lView, bindingIndex++, exps[i]) && (different = true);
|
|
25133
25169
|
}
|
|
25134
25170
|
return different ? updateBinding(lView, bindingIndex, pureFn.apply(thisArg, exps)) :
|
|
25135
|
-
|
|
25171
|
+
getPureFunctionReturnValue(lView, bindingIndex);
|
|
25136
25172
|
}
|
|
25137
25173
|
|
|
25138
25174
|
/**
|
|
@@ -25586,7 +25622,7 @@
|
|
|
25586
25622
|
* Use of this source code is governed by an MIT-style license that can be
|
|
25587
25623
|
* found in the LICENSE file at https://angular.io/license
|
|
25588
25624
|
*/
|
|
25589
|
-
var unusedValueToPlacateAjd$2 = unusedValueExportToPlacateAjd$7 + unusedValueExportToPlacateAjd$
|
|
25625
|
+
var unusedValueToPlacateAjd$2 = unusedValueExportToPlacateAjd$7 + unusedValueExportToPlacateAjd$3 + unusedValueExportToPlacateAjd$4 + unusedValueExportToPlacateAjd$8;
|
|
25590
25626
|
var LQuery_ = /** @class */ (function () {
|
|
25591
25627
|
function LQuery_(queryList) {
|
|
25592
25628
|
this.queryList = queryList;
|
|
@@ -25897,9 +25933,7 @@
|
|
|
25897
25933
|
for (var i = 0; i < tQueryMatches.length; i += 2) {
|
|
25898
25934
|
var tNodeIdx = tQueryMatches[i];
|
|
25899
25935
|
if (tNodeIdx > 0) {
|
|
25900
|
-
|
|
25901
|
-
ngDevMode && assertDefined(viewResult, 'materialized query result should be defined');
|
|
25902
|
-
result.push(viewResult);
|
|
25936
|
+
result.push(lViewResults[i / 2]);
|
|
25903
25937
|
}
|
|
25904
25938
|
else {
|
|
25905
25939
|
var childQueryIndex = tQueryMatches[i + 1];
|
|
@@ -26663,6 +26697,17 @@
|
|
|
26663
26697
|
pipes: new Set(),
|
|
26664
26698
|
},
|
|
26665
26699
|
};
|
|
26700
|
+
maybeUnwrapFn(def.imports).forEach(function (imported) {
|
|
26701
|
+
var importedType = imported;
|
|
26702
|
+
if (!isNgModule(importedType)) {
|
|
26703
|
+
throw new Error("Importing " + importedType.name + " which does not have a \u0275mod property");
|
|
26704
|
+
}
|
|
26705
|
+
// When this module imports another, the imported module's exported directives and pipes are
|
|
26706
|
+
// added to the compilation scope of this module.
|
|
26707
|
+
var importedScope = transitiveScopesFor(importedType);
|
|
26708
|
+
importedScope.exported.directives.forEach(function (entry) { return scopes.compilation.directives.add(entry); });
|
|
26709
|
+
importedScope.exported.pipes.forEach(function (entry) { return scopes.compilation.pipes.add(entry); });
|
|
26710
|
+
});
|
|
26666
26711
|
maybeUnwrapFn(def.declarations).forEach(function (declared) {
|
|
26667
26712
|
var declaredWithDefs = declared;
|
|
26668
26713
|
if (getPipeDef(declaredWithDefs)) {
|
|
@@ -26675,17 +26720,6 @@
|
|
|
26675
26720
|
scopes.compilation.directives.add(declared);
|
|
26676
26721
|
}
|
|
26677
26722
|
});
|
|
26678
|
-
maybeUnwrapFn(def.imports).forEach(function (imported) {
|
|
26679
|
-
var importedType = imported;
|
|
26680
|
-
if (!isNgModule(importedType)) {
|
|
26681
|
-
throw new Error("Importing " + importedType.name + " which does not have a \u0275mod property");
|
|
26682
|
-
}
|
|
26683
|
-
// When this module imports another, the imported module's exported directives and pipes are
|
|
26684
|
-
// added to the compilation scope of this module.
|
|
26685
|
-
var importedScope = transitiveScopesFor(importedType);
|
|
26686
|
-
importedScope.exported.directives.forEach(function (entry) { return scopes.compilation.directives.add(entry); });
|
|
26687
|
-
importedScope.exported.pipes.forEach(function (entry) { return scopes.compilation.pipes.add(entry); });
|
|
26688
|
-
});
|
|
26689
26723
|
maybeUnwrapFn(def.exports).forEach(function (exported) {
|
|
26690
26724
|
var exportedType = exported;
|
|
26691
26725
|
// Either the type is a module, a pipe, or a component/directive (which may not have a
|
|
@@ -32478,7 +32512,7 @@
|
|
|
32478
32512
|
exports.ɵangular_packages_core_core_bl = makeParamDecorator;
|
|
32479
32513
|
exports.ɵangular_packages_core_core_bm = makePropDecorator;
|
|
32480
32514
|
exports.ɵangular_packages_core_core_bn = getClosureSafeProperty;
|
|
32481
|
-
exports.ɵ
|
|
32515
|
+
exports.ɵangular_packages_core_core_bo = noSideEffects;
|
|
32482
32516
|
exports.ɵangular_packages_core_core_bq = getRootContext;
|
|
32483
32517
|
exports.ɵangular_packages_core_core_c = NullInjector;
|
|
32484
32518
|
exports.ɵangular_packages_core_core_d = ReflectiveInjector_;
|