@angular/core 16.0.0-rc.0 → 16.0.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/rxjs-interop/src/index.mjs +1 -1
- package/esm2022/rxjs-interop/src/to_observable.mjs +1 -1
- package/esm2022/rxjs-interop/src/to_signal.mjs +2 -2
- package/esm2022/src/application_tokens.mjs +2 -2
- package/esm2022/src/core_private_export.mjs +2 -2
- package/esm2022/src/debug/debug_node.mjs +4 -9
- package/esm2022/src/di/interface/defs.mjs +3 -18
- package/esm2022/src/di/r3_injector.mjs +2 -1
- package/esm2022/src/errors.mjs +1 -1
- package/esm2022/src/hydration/annotate.mjs +5 -2
- package/esm2022/src/hydration/api.mjs +7 -7
- package/esm2022/src/hydration/node_lookup_utils.mjs +13 -8
- package/esm2022/src/hydration/tokens.mjs +5 -5
- package/esm2022/src/render3/assert.mjs +1 -1
- package/esm2022/src/render3/collect_native_nodes.mjs +18 -3
- package/esm2022/src/render3/i18n/i18n_parse.mjs +5 -6
- package/esm2022/src/render3/instructions/element_validation.mjs +4 -5
- package/esm2022/src/render3/instructions/shared.mjs +52 -25
- package/esm2022/src/render3/instructions/styling.mjs +22 -2
- package/esm2022/src/render3/instructions/template.mjs +2 -2
- package/esm2022/src/render3/reactive_lview_consumer.mjs +5 -5
- package/esm2022/src/render3/reactivity/effect.mjs +8 -3
- package/esm2022/src/render3/util/view_utils.mjs +5 -1
- package/esm2022/src/signals/src/signal.mjs +8 -1
- package/esm2022/src/version.mjs +1 -1
- package/esm2022/testing/src/logger.mjs +3 -3
- package/esm2022/testing/src/styling.mjs +1 -2
- package/esm2022/testing/src/test_bed_compiler.mjs +3 -8
- package/esm2022/testing/src/testing_internal.mjs +1 -2
- package/fesm2022/core.mjs +148 -85
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/rxjs-interop.mjs +62 -2
- package/fesm2022/rxjs-interop.mjs.map +1 -1
- package/fesm2022/testing.mjs +137 -77
- package/fesm2022/testing.mjs.map +1 -1
- package/index.d.ts +12 -4
- package/package.json +1 -1
- package/rxjs-interop/index.d.ts +3 -3
- package/schematics/ng-generate/standalone-migration/bundle.js +618 -161
- package/schematics/ng-generate/standalone-migration/bundle.js.map +4 -4
- package/testing/index.d.ts +1 -1
- package/esm2022/testing/src/ng_zone_mock.mjs +0 -34
package/fesm2022/core.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v16.0.0-rc.
|
|
2
|
+
* @license Angular v16.0.0-rc.2
|
|
3
3
|
* (c) 2010-2022 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -403,30 +403,15 @@ function getOwnDefinition(type, field) {
|
|
|
403
403
|
function getInheritedInjectableDef(type) {
|
|
404
404
|
const def = type && (type[NG_PROV_DEF] || type[NG_INJECTABLE_DEF]);
|
|
405
405
|
if (def) {
|
|
406
|
-
const typeName = getTypeName(type);
|
|
407
406
|
ngDevMode &&
|
|
408
|
-
console.warn(`DEPRECATED: DI is instantiating a token "${
|
|
409
|
-
`This will become an error in a future version of Angular. Please add @Injectable() to the "${
|
|
407
|
+
console.warn(`DEPRECATED: DI is instantiating a token "${type.name}" that inherits its @Injectable decorator but does not provide one itself.\n` +
|
|
408
|
+
`This will become an error in a future version of Angular. Please add @Injectable() to the "${type.name}" class.`);
|
|
410
409
|
return def;
|
|
411
410
|
}
|
|
412
411
|
else {
|
|
413
412
|
return null;
|
|
414
413
|
}
|
|
415
414
|
}
|
|
416
|
-
/** Gets the name of a type, accounting for some cross-browser differences. */
|
|
417
|
-
function getTypeName(type) {
|
|
418
|
-
// `Function.prototype.name` behaves differently between IE and other browsers. In most browsers
|
|
419
|
-
// it'll always return the name of the function itself, no matter how many other functions it
|
|
420
|
-
// inherits from. On IE the function doesn't have its own `name` property, but it takes it from
|
|
421
|
-
// the lowest level in the prototype chain. E.g. if we have `class Foo extends Parent` most
|
|
422
|
-
// browsers will evaluate `Foo.name` to `Foo` while IE will return `Parent`. We work around
|
|
423
|
-
// the issue by converting the function to a string and parsing its name out that way via a regex.
|
|
424
|
-
if (type.hasOwnProperty('name')) {
|
|
425
|
-
return type.name;
|
|
426
|
-
}
|
|
427
|
-
const match = ('' + type).match(/^function\s*([^\s(]+)/);
|
|
428
|
-
return match === null ? '' : match[1];
|
|
429
|
-
}
|
|
430
415
|
/**
|
|
431
416
|
* Read the injector def type in a way which is immune to accidentally reading inherited value.
|
|
432
417
|
*
|
|
@@ -2630,6 +2615,12 @@ class WritableSignalImpl extends ReactiveNode {
|
|
|
2630
2615
|
this.producerMayHaveChanged();
|
|
2631
2616
|
postSignalSetFn?.();
|
|
2632
2617
|
}
|
|
2618
|
+
asReadonly() {
|
|
2619
|
+
if (this.readonlySignal === undefined) {
|
|
2620
|
+
this.readonlySignal = createSignalFromFunction(this, () => this.signal());
|
|
2621
|
+
}
|
|
2622
|
+
return this.readonlySignal;
|
|
2623
|
+
}
|
|
2633
2624
|
signal() {
|
|
2634
2625
|
this.producerAccessed();
|
|
2635
2626
|
return this.value;
|
|
@@ -2648,6 +2639,7 @@ function signal(initialValue, options) {
|
|
|
2648
2639
|
set: signalNode.set.bind(signalNode),
|
|
2649
2640
|
update: signalNode.update.bind(signalNode),
|
|
2650
2641
|
mutate: signalNode.mutate.bind(signalNode),
|
|
2642
|
+
asReadonly: signalNode.asReadonly.bind(signalNode)
|
|
2651
2643
|
});
|
|
2652
2644
|
return signalFn;
|
|
2653
2645
|
}
|
|
@@ -3026,6 +3018,9 @@ function updateTransplantedViewCount(lContainer, amount) {
|
|
|
3026
3018
|
* Stores a LView-specific destroy callback.
|
|
3027
3019
|
*/
|
|
3028
3020
|
function storeLViewOnDestroy(lView, onDestroyCallback) {
|
|
3021
|
+
if ((lView[FLAGS] & 256 /* LViewFlags.Destroyed */) === 256 /* LViewFlags.Destroyed */) {
|
|
3022
|
+
throw new RuntimeError(911 /* RuntimeErrorCode.VIEW_ALREADY_DESTROYED */, ngDevMode && 'View has already been destroyed.');
|
|
3023
|
+
}
|
|
3029
3024
|
if (lView[ON_DESTROY_HOOKS] === null) {
|
|
3030
3025
|
lView[ON_DESTROY_HOOKS] = [];
|
|
3031
3026
|
}
|
|
@@ -5918,8 +5913,8 @@ function validateElementIsKnown(element, lView, tagName, schemas, hasDirectives)
|
|
|
5918
5913
|
// as a custom element. Note that unknown elements with a dash in their name won't be instances
|
|
5919
5914
|
// of HTMLUnknownElement in browsers that support web components.
|
|
5920
5915
|
const isUnknown =
|
|
5921
|
-
// Note that we can't check for `typeof HTMLUnknownElement === 'function'
|
|
5922
|
-
//
|
|
5916
|
+
// Note that we can't check for `typeof HTMLUnknownElement === 'function'` because
|
|
5917
|
+
// Domino doesn't expose HTMLUnknownElement globally.
|
|
5923
5918
|
(typeof HTMLUnknownElement !== 'undefined' && HTMLUnknownElement &&
|
|
5924
5919
|
element instanceof HTMLUnknownElement) ||
|
|
5925
5920
|
(typeof customElements !== 'undefined' && tagName.indexOf('-') > -1 &&
|
|
@@ -5976,8 +5971,7 @@ function isPropertyValid(element, propName, tagName, schemas) {
|
|
|
5976
5971
|
if (matchingSchemas(schemas, tagName) || propName in element || isAnimationProp(propName)) {
|
|
5977
5972
|
return true;
|
|
5978
5973
|
}
|
|
5979
|
-
// Note: `typeof Node` returns 'function' in most browsers, but
|
|
5980
|
-
// need to account for both here, while being careful with `typeof null` also returning 'object'.
|
|
5974
|
+
// Note: `typeof Node` returns 'function' in most browsers, but is undefined with domino.
|
|
5981
5975
|
return typeof Node === 'undefined' || Node === null || !(element instanceof Node);
|
|
5982
5976
|
}
|
|
5983
5977
|
/**
|
|
@@ -9007,6 +9001,7 @@ class R3Injector extends EnvironmentInjector {
|
|
|
9007
9001
|
}
|
|
9008
9002
|
}
|
|
9009
9003
|
onDestroy(callback) {
|
|
9004
|
+
this.assertNotDestroyed();
|
|
9010
9005
|
this._onDestroyHooks.push(callback);
|
|
9011
9006
|
return () => this.removeOnDestroy(callback);
|
|
9012
9007
|
}
|
|
@@ -9402,7 +9397,7 @@ const CSP_NONCE = new InjectionToken('CSP nonce', {
|
|
|
9402
9397
|
// 4. Have the `ComponentFactory` read the attribute and provide it to the injector under the
|
|
9403
9398
|
// hood - has the same problem as #1 and #2 in that the renderer is used to query for the root
|
|
9404
9399
|
// node and the nonce value needs to be available when the renderer is created.
|
|
9405
|
-
return getDocument().body
|
|
9400
|
+
return getDocument().body?.querySelector('[ngCspNonce]')?.getAttribute('ngCspNonce') || null;
|
|
9406
9401
|
},
|
|
9407
9402
|
});
|
|
9408
9403
|
/**
|
|
@@ -9968,7 +9963,7 @@ class Version {
|
|
|
9968
9963
|
/**
|
|
9969
9964
|
* @publicApi
|
|
9970
9965
|
*/
|
|
9971
|
-
const VERSION = new Version('16.0.0-rc.
|
|
9966
|
+
const VERSION = new Version('16.0.0-rc.2');
|
|
9972
9967
|
|
|
9973
9968
|
// This default value is when checking the hierarchy for a token.
|
|
9974
9969
|
//
|
|
@@ -10116,11 +10111,11 @@ function isInSkipHydrationBlock(tNode) {
|
|
|
10116
10111
|
return false;
|
|
10117
10112
|
}
|
|
10118
10113
|
|
|
10119
|
-
const NG_DEV_MODE$1 = typeof ngDevMode === 'undefined' || !!ngDevMode;
|
|
10120
10114
|
/**
|
|
10121
|
-
* Internal token that specifies whether
|
|
10115
|
+
* Internal token that specifies whether DOM reuse logic
|
|
10116
|
+
* during hydration is enabled.
|
|
10122
10117
|
*/
|
|
10123
|
-
const
|
|
10118
|
+
const IS_HYDRATION_DOM_REUSE_ENABLED = new InjectionToken((typeof ngDevMode === 'undefined' || !!ngDevMode) ? 'IS_HYDRATION_DOM_REUSE_ENABLED' : '');
|
|
10124
10119
|
// By default (in client rendering mode), we remove all the contents
|
|
10125
10120
|
// of the host element and render an application after that.
|
|
10126
10121
|
const PRESERVE_HOST_CONTENT_DEFAULT = false;
|
|
@@ -10128,7 +10123,7 @@ const PRESERVE_HOST_CONTENT_DEFAULT = false;
|
|
|
10128
10123
|
* Internal token that indicates whether host element content should be
|
|
10129
10124
|
* retained during the bootstrap.
|
|
10130
10125
|
*/
|
|
10131
|
-
const PRESERVE_HOST_CONTENT = new InjectionToken(
|
|
10126
|
+
const PRESERVE_HOST_CONTENT = new InjectionToken((typeof ngDevMode === 'undefined' || !!ngDevMode) ? 'PRESERVE_HOST_CONTENT' : '', {
|
|
10132
10127
|
providedIn: 'root',
|
|
10133
10128
|
factory: () => PRESERVE_HOST_CONTENT_DEFAULT,
|
|
10134
10129
|
});
|
|
@@ -10286,7 +10281,6 @@ function getExpressionChangedErrorDetails(lView, bindingIndex, oldValue, newValu
|
|
|
10286
10281
|
return { propName: undefined, oldValue, newValue };
|
|
10287
10282
|
}
|
|
10288
10283
|
|
|
10289
|
-
const NG_DEV_MODE = typeof ngDevMode === 'undefined' || ngDevMode;
|
|
10290
10284
|
class ReactiveLViewConsumer extends ReactiveNode {
|
|
10291
10285
|
constructor() {
|
|
10292
10286
|
super(...arguments);
|
|
@@ -10294,11 +10288,12 @@ class ReactiveLViewConsumer extends ReactiveNode {
|
|
|
10294
10288
|
this._lView = null;
|
|
10295
10289
|
}
|
|
10296
10290
|
set lView(lView) {
|
|
10297
|
-
|
|
10291
|
+
(typeof ngDevMode === 'undefined' || ngDevMode) &&
|
|
10292
|
+
assertEqual(this._lView, null, 'Consumer already associated with a view.');
|
|
10298
10293
|
this._lView = lView;
|
|
10299
10294
|
}
|
|
10300
10295
|
onConsumerDependencyMayHaveChanged() {
|
|
10301
|
-
|
|
10296
|
+
(typeof ngDevMode === 'undefined' || ngDevMode) &&
|
|
10302
10297
|
assertDefined(this._lView, 'Updating a signal during template or host binding execution is not allowed.');
|
|
10303
10298
|
markViewDirty(this._lView);
|
|
10304
10299
|
}
|
|
@@ -10716,8 +10711,9 @@ function processHostBindingOpCodes(tView, lView) {
|
|
|
10716
10711
|
}
|
|
10717
10712
|
}
|
|
10718
10713
|
finally {
|
|
10719
|
-
lView[REACTIVE_HOST_BINDING_CONSUMER] === null
|
|
10714
|
+
if (lView[REACTIVE_HOST_BINDING_CONSUMER] === null) {
|
|
10720
10715
|
commitLViewConsumerIfHasProducers(lView, REACTIVE_HOST_BINDING_CONSUMER);
|
|
10716
|
+
}
|
|
10721
10717
|
setSelectedIndex(-1);
|
|
10722
10718
|
}
|
|
10723
10719
|
}
|
|
@@ -10772,7 +10768,6 @@ function createLView(parentLView, tView, context, flags, host, tHostNode, enviro
|
|
|
10772
10768
|
lView[ID] = getUniqueLViewId();
|
|
10773
10769
|
lView[HYDRATION] = hydrationInfo;
|
|
10774
10770
|
lView[EMBEDDED_VIEW_INJECTOR] = embeddedViewInjector;
|
|
10775
|
-
lView[REACTIVE_TEMPLATE_CONSUMER] = null;
|
|
10776
10771
|
ngDevMode &&
|
|
10777
10772
|
assertEqual(tView.type == 2 /* TViewType.Embedded */ ? parentLView !== null : true, true, 'Embedded views must have parentLView');
|
|
10778
10773
|
lView[DECLARATION_COMPONENT_VIEW] =
|
|
@@ -11070,10 +11065,21 @@ function executeTemplate(tView, lView, templateFn, rf, context) {
|
|
|
11070
11065
|
}
|
|
11071
11066
|
const preHookType = isUpdatePhase ? 2 /* ProfilerEvent.TemplateUpdateStart */ : 0 /* ProfilerEvent.TemplateCreateStart */;
|
|
11072
11067
|
profiler(preHookType, context);
|
|
11073
|
-
|
|
11068
|
+
if (isUpdatePhase) {
|
|
11069
|
+
consumer.runInContext(templateFn, rf, context);
|
|
11070
|
+
}
|
|
11071
|
+
else {
|
|
11072
|
+
const prevConsumer = setActiveConsumer(null);
|
|
11073
|
+
try {
|
|
11074
|
+
templateFn(rf, context);
|
|
11075
|
+
}
|
|
11076
|
+
finally {
|
|
11077
|
+
setActiveConsumer(prevConsumer);
|
|
11078
|
+
}
|
|
11079
|
+
}
|
|
11074
11080
|
}
|
|
11075
11081
|
finally {
|
|
11076
|
-
if (lView[REACTIVE_TEMPLATE_CONSUMER] === null) {
|
|
11082
|
+
if (isUpdatePhase && lView[REACTIVE_TEMPLATE_CONSUMER] === null) {
|
|
11077
11083
|
commitLViewConsumerIfHasProducers(lView, REACTIVE_TEMPLATE_CONSUMER);
|
|
11078
11084
|
}
|
|
11079
11085
|
setSelectedIndex(prevSelectedIndex);
|
|
@@ -11086,14 +11092,20 @@ function executeTemplate(tView, lView, templateFn, rf, context) {
|
|
|
11086
11092
|
//////////////////////////
|
|
11087
11093
|
function executeContentQueries(tView, tNode, lView) {
|
|
11088
11094
|
if (isContentQueryHost(tNode)) {
|
|
11089
|
-
const
|
|
11090
|
-
|
|
11091
|
-
|
|
11092
|
-
const
|
|
11093
|
-
|
|
11094
|
-
def
|
|
11095
|
+
const prevConsumer = setActiveConsumer(null);
|
|
11096
|
+
try {
|
|
11097
|
+
const start = tNode.directiveStart;
|
|
11098
|
+
const end = tNode.directiveEnd;
|
|
11099
|
+
for (let directiveIndex = start; directiveIndex < end; directiveIndex++) {
|
|
11100
|
+
const def = tView.data[directiveIndex];
|
|
11101
|
+
if (def.contentQueries) {
|
|
11102
|
+
def.contentQueries(1 /* RenderFlags.Create */, lView[directiveIndex], directiveIndex);
|
|
11103
|
+
}
|
|
11095
11104
|
}
|
|
11096
11105
|
}
|
|
11106
|
+
finally {
|
|
11107
|
+
setActiveConsumer(prevConsumer);
|
|
11108
|
+
}
|
|
11097
11109
|
}
|
|
11098
11110
|
}
|
|
11099
11111
|
/**
|
|
@@ -11912,17 +11924,11 @@ function setElementAttribute(renderer, element, namespace, tagName, name, value,
|
|
|
11912
11924
|
function setInputsFromAttrs(lView, directiveIndex, instance, def, tNode, initialInputData) {
|
|
11913
11925
|
const initialInputs = initialInputData[directiveIndex];
|
|
11914
11926
|
if (initialInputs !== null) {
|
|
11915
|
-
const setInput = def.setInput;
|
|
11916
11927
|
for (let i = 0; i < initialInputs.length;) {
|
|
11917
11928
|
const publicName = initialInputs[i++];
|
|
11918
11929
|
const privateName = initialInputs[i++];
|
|
11919
11930
|
const value = initialInputs[i++];
|
|
11920
|
-
|
|
11921
|
-
def.setInput(instance, value, publicName, privateName);
|
|
11922
|
-
}
|
|
11923
|
-
else {
|
|
11924
|
-
instance[privateName] = value;
|
|
11925
|
-
}
|
|
11931
|
+
writeToDirectiveInput(def, instance, publicName, privateName, value);
|
|
11926
11932
|
if (ngDevMode) {
|
|
11927
11933
|
const nativeElement = getNativeByTNode(tNode, lView);
|
|
11928
11934
|
setNgReflectProperty(lView, nativeElement, tNode.type, privateName, value);
|
|
@@ -11930,6 +11936,20 @@ function setInputsFromAttrs(lView, directiveIndex, instance, def, tNode, initial
|
|
|
11930
11936
|
}
|
|
11931
11937
|
}
|
|
11932
11938
|
}
|
|
11939
|
+
function writeToDirectiveInput(def, instance, publicName, privateName, value) {
|
|
11940
|
+
const prevConsumer = setActiveConsumer(null);
|
|
11941
|
+
try {
|
|
11942
|
+
if (def.setInput !== null) {
|
|
11943
|
+
def.setInput(instance, value, publicName, privateName);
|
|
11944
|
+
}
|
|
11945
|
+
else {
|
|
11946
|
+
instance[privateName] = value;
|
|
11947
|
+
}
|
|
11948
|
+
}
|
|
11949
|
+
finally {
|
|
11950
|
+
setActiveConsumer(prevConsumer);
|
|
11951
|
+
}
|
|
11952
|
+
}
|
|
11933
11953
|
/**
|
|
11934
11954
|
* Generates initialInputData for a node and stores it in the template's static storage
|
|
11935
11955
|
* so subsequent template invocations don't have to recalculate it.
|
|
@@ -12224,7 +12244,13 @@ function checkNoChangesInternal(tView, lView, context, notifyErrorHandler = true
|
|
|
12224
12244
|
function executeViewQueryFn(flags, viewQueryFn, component) {
|
|
12225
12245
|
ngDevMode && assertDefined(viewQueryFn, 'View queries function to execute must be defined.');
|
|
12226
12246
|
setCurrentQueryIndex(0);
|
|
12227
|
-
|
|
12247
|
+
const prevConsumer = setActiveConsumer(null);
|
|
12248
|
+
try {
|
|
12249
|
+
viewQueryFn(flags, component);
|
|
12250
|
+
}
|
|
12251
|
+
finally {
|
|
12252
|
+
setActiveConsumer(prevConsumer);
|
|
12253
|
+
}
|
|
12228
12254
|
}
|
|
12229
12255
|
///////////////////////////////
|
|
12230
12256
|
//// Bindings & interpolations
|
|
@@ -12312,12 +12338,7 @@ function setInputsForProperty(tView, lView, inputs, publicName, value) {
|
|
|
12312
12338
|
const instance = lView[index];
|
|
12313
12339
|
ngDevMode && assertIndexInRange(lView, index);
|
|
12314
12340
|
const def = tView.data[index];
|
|
12315
|
-
|
|
12316
|
-
def.setInput(instance, value, publicName, privateName);
|
|
12317
|
-
}
|
|
12318
|
-
else {
|
|
12319
|
-
instance[privateName] = value;
|
|
12320
|
-
}
|
|
12341
|
+
writeToDirectiveInput(def, instance, publicName, privateName, value);
|
|
12321
12342
|
}
|
|
12322
12343
|
}
|
|
12323
12344
|
/**
|
|
@@ -12375,7 +12396,7 @@ class EffectManager {
|
|
|
12375
12396
|
this.queue = new Map();
|
|
12376
12397
|
}
|
|
12377
12398
|
create(effectFn, destroyRef, allowSignalWrites) {
|
|
12378
|
-
const zone = Zone.current;
|
|
12399
|
+
const zone = (typeof Zone === 'undefined') ? null : Zone.current;
|
|
12379
12400
|
const watch = new Watch(effectFn, (watch) => {
|
|
12380
12401
|
if (!this.all.has(watch)) {
|
|
12381
12402
|
return;
|
|
@@ -12403,7 +12424,12 @@ class EffectManager {
|
|
|
12403
12424
|
}
|
|
12404
12425
|
for (const [watch, zone] of this.queue) {
|
|
12405
12426
|
this.queue.delete(watch);
|
|
12406
|
-
zone
|
|
12427
|
+
if (zone) {
|
|
12428
|
+
zone.run(() => watch.run());
|
|
12429
|
+
}
|
|
12430
|
+
else {
|
|
12431
|
+
watch.run();
|
|
12432
|
+
}
|
|
12407
12433
|
}
|
|
12408
12434
|
}
|
|
12409
12435
|
get isQueueEmpty() {
|
|
@@ -12485,6 +12511,21 @@ function collectNativeNodes(tView, lView, tNode, result, isProjection = false) {
|
|
|
12485
12511
|
collectNativeNodes(lViewInAContainer[TVIEW], lViewInAContainer, lViewFirstChildTNode, result);
|
|
12486
12512
|
}
|
|
12487
12513
|
}
|
|
12514
|
+
// When an LContainer is created, the anchor (comment) node is:
|
|
12515
|
+
// - (1) either reused in case of an ElementContainer (<ng-container>)
|
|
12516
|
+
// - (2) or a new comment node is created
|
|
12517
|
+
// In the first case, the anchor comment node would be added to the final
|
|
12518
|
+
// list by the code above (`result.push(unwrapRNode(lNode))`), but the second
|
|
12519
|
+
// case requires extra handling: the anchor node needs to be added to the
|
|
12520
|
+
// final list manually. See additional information in the `createAnchorNode`
|
|
12521
|
+
// function in the `view_container_ref.ts`.
|
|
12522
|
+
//
|
|
12523
|
+
// In the first case, the same reference would be stored in the `NATIVE`
|
|
12524
|
+
// and `HOST` slots in an LContainer. Otherwise, this is the second case and
|
|
12525
|
+
// we should add an element to the final list.
|
|
12526
|
+
if (lNode[NATIVE] !== lNode[HOST]) {
|
|
12527
|
+
result.push(lNode[NATIVE]);
|
|
12528
|
+
}
|
|
12488
12529
|
}
|
|
12489
12530
|
const tNodeType = tNode.type;
|
|
12490
12531
|
if (tNodeType & 8 /* TNodeType.ElementContainer */) {
|
|
@@ -14752,10 +14793,10 @@ function locateRNodeByPath(path, lView) {
|
|
|
14752
14793
|
const [referenceNode, ...navigationInstructions] = decompressNodeLocation(path);
|
|
14753
14794
|
let ref;
|
|
14754
14795
|
if (referenceNode === REFERENCE_NODE_HOST) {
|
|
14755
|
-
ref = lView[
|
|
14796
|
+
ref = lView[DECLARATION_COMPONENT_VIEW][HOST];
|
|
14756
14797
|
}
|
|
14757
14798
|
else if (referenceNode === REFERENCE_NODE_BODY) {
|
|
14758
|
-
ref = ɵɵresolveBody(lView[
|
|
14799
|
+
ref = ɵɵresolveBody(lView[DECLARATION_COMPONENT_VIEW][HOST]);
|
|
14759
14800
|
}
|
|
14760
14801
|
else {
|
|
14761
14802
|
const parentElementId = Number(referenceNode);
|
|
@@ -14799,6 +14840,7 @@ function navigateBetween(start, finish) {
|
|
|
14799
14840
|
}
|
|
14800
14841
|
/**
|
|
14801
14842
|
* Calculates a path between 2 sibling nodes (generates a number of `NextSibling` navigations).
|
|
14843
|
+
* Returns `null` if no such path exists between the given nodes.
|
|
14802
14844
|
*/
|
|
14803
14845
|
function navigateBetweenSiblings(start, finish) {
|
|
14804
14846
|
const nav = [];
|
|
@@ -14806,7 +14848,10 @@ function navigateBetweenSiblings(start, finish) {
|
|
|
14806
14848
|
for (node = start; node != null && node !== finish; node = node.nextSibling) {
|
|
14807
14849
|
nav.push(NodeNavigationStep.NextSibling);
|
|
14808
14850
|
}
|
|
14809
|
-
|
|
14851
|
+
// If the `node` becomes `null` or `undefined` at the end, that means that we
|
|
14852
|
+
// didn't find the `end` node, thus return `null` (which would trigger serialization
|
|
14853
|
+
// error to be produced).
|
|
14854
|
+
return node == null ? null : nav;
|
|
14810
14855
|
}
|
|
14811
14856
|
/**
|
|
14812
14857
|
* Calculates a path between 2 nodes in terms of `nextSibling` and `firstChild`
|
|
@@ -14829,10 +14874,11 @@ function calcPathForNode(tNode, lView) {
|
|
|
14829
14874
|
let parentIndex;
|
|
14830
14875
|
let parentRNode;
|
|
14831
14876
|
let referenceNodeName;
|
|
14832
|
-
if (parentTNode === null) {
|
|
14833
|
-
//
|
|
14877
|
+
if (parentTNode === null || !(parentTNode.type & 3 /* TNodeType.AnyRNode */)) {
|
|
14878
|
+
// If there is no parent TNode or a parent TNode does not represent an RNode
|
|
14879
|
+
// (i.e. not a DOM node), use component host element as a reference node.
|
|
14834
14880
|
parentIndex = referenceNodeName = REFERENCE_NODE_HOST;
|
|
14835
|
-
parentRNode = lView[HOST];
|
|
14881
|
+
parentRNode = lView[DECLARATION_COMPONENT_VIEW][HOST];
|
|
14836
14882
|
}
|
|
14837
14883
|
else {
|
|
14838
14884
|
// Use parent TNode as a reference node.
|
|
@@ -14884,7 +14930,7 @@ function templateFirstCreatePass(index, tView, lView, templateFn, decls, vars, t
|
|
|
14884
14930
|
const hydrationInfo = lView[HYDRATION];
|
|
14885
14931
|
if (hydrationInfo) {
|
|
14886
14932
|
const noOffsetIndex = index - HEADER_OFFSET;
|
|
14887
|
-
ssrId =
|
|
14933
|
+
ssrId = hydrationInfo.data[TEMPLATES]?.[noOffsetIndex] ?? null;
|
|
14888
14934
|
}
|
|
14889
14935
|
// TODO(pk): refactor getOrCreateTNode to have the "create" only version
|
|
14890
14936
|
const tNode = getOrCreateTNode(tView, index, 4 /* TNodeType.Container */, tagName || null, getConstant(tViewConsts, attrsIndex));
|
|
@@ -17001,7 +17047,7 @@ function styleStringParser(keyValueArray, text) {
|
|
|
17001
17047
|
* @codeGenApi
|
|
17002
17048
|
*/
|
|
17003
17049
|
function ɵɵclassMap(classes) {
|
|
17004
|
-
checkStylingMap(
|
|
17050
|
+
checkStylingMap(classKeyValueArraySet, classStringParser, classes, true);
|
|
17005
17051
|
}
|
|
17006
17052
|
/**
|
|
17007
17053
|
* Parse text as class and add values to KeyValueArray.
|
|
@@ -17443,6 +17489,26 @@ function toStylingKeyValueArray(keyValueArraySet, stringParser, value) {
|
|
|
17443
17489
|
function styleKeyValueArraySet(keyValueArray, key, value) {
|
|
17444
17490
|
keyValueArraySet(keyValueArray, key, unwrapSafeValue(value));
|
|
17445
17491
|
}
|
|
17492
|
+
/**
|
|
17493
|
+
* Class-binding-specific function for setting the `value` for a `key`.
|
|
17494
|
+
*
|
|
17495
|
+
* See: `keyValueArraySet` for details
|
|
17496
|
+
*
|
|
17497
|
+
* @param keyValueArray KeyValueArray to add to.
|
|
17498
|
+
* @param key Style key to add.
|
|
17499
|
+
* @param value The value to set.
|
|
17500
|
+
*/
|
|
17501
|
+
function classKeyValueArraySet(keyValueArray, key, value) {
|
|
17502
|
+
// We use `classList.add` to eventually add the CSS classes to the DOM node. Any value passed into
|
|
17503
|
+
// `add` is stringified and added to the `class` attribute, e.g. even null, undefined or numbers
|
|
17504
|
+
// will be added. Stringify the key here so that our internal data structure matches the value in
|
|
17505
|
+
// the DOM. The only exceptions are empty strings and strings that contain spaces for which
|
|
17506
|
+
// the browser throws an error. We ignore such values, because the error is somewhat cryptic.
|
|
17507
|
+
const stringKey = String(key);
|
|
17508
|
+
if (stringKey !== '' && !stringKey.includes(' ')) {
|
|
17509
|
+
keyValueArraySet(keyValueArray, stringKey, value);
|
|
17510
|
+
}
|
|
17511
|
+
}
|
|
17446
17512
|
/**
|
|
17447
17513
|
* Update map based styling.
|
|
17448
17514
|
*
|
|
@@ -20172,11 +20238,10 @@ const MARKER = `�`;
|
|
|
20172
20238
|
const SUBTEMPLATE_REGEXP = /�\/?\*(\d+:\d+)�/gi;
|
|
20173
20239
|
const PH_REGEXP = /�(\/?[#*]\d+):?\d*�/gi;
|
|
20174
20240
|
/**
|
|
20175
|
-
* Angular
|
|
20176
|
-
*
|
|
20177
|
-
*
|
|
20178
|
-
*
|
|
20179
|
-
* might contain this special character.
|
|
20241
|
+
* Angular uses the special entity &ngsp; as a placeholder for non-removable space.
|
|
20242
|
+
* It's replaced by the 0xE500 PUA (Private Use Areas) unicode character and later on replaced by a
|
|
20243
|
+
* space.
|
|
20244
|
+
* We are re-implementing the same idea since translations might contain this special character.
|
|
20180
20245
|
*/
|
|
20181
20246
|
const NGSP_UNICODE_REGEXP = /\uE500/g;
|
|
20182
20247
|
function replaceNgsp(value) {
|
|
@@ -27730,16 +27795,11 @@ class DebugElement extends DebugNode {
|
|
|
27730
27795
|
i += 2;
|
|
27731
27796
|
}
|
|
27732
27797
|
}
|
|
27733
|
-
const
|
|
27734
|
-
for (let i = 0; i < eAttrs.length; i++) {
|
|
27735
|
-
const attr = eAttrs[i];
|
|
27736
|
-
const lowercaseName = attr.name.toLowerCase();
|
|
27798
|
+
for (const attr of element.attributes) {
|
|
27737
27799
|
// Make sure that we don't assign the same attribute both in its
|
|
27738
27800
|
// case-sensitive form and the lower-cased one from the browser.
|
|
27739
|
-
if (lowercaseTNodeAttrs.
|
|
27740
|
-
|
|
27741
|
-
// IE preserves the case, while all other browser convert it to lower case.
|
|
27742
|
-
attributes[lowercaseName] = attr.value;
|
|
27801
|
+
if (!lowercaseTNodeAttrs.includes(attr.name)) {
|
|
27802
|
+
attributes[attr.name] = attr.value;
|
|
27743
27803
|
}
|
|
27744
27804
|
}
|
|
27745
27805
|
return attributes;
|
|
@@ -29518,7 +29578,10 @@ function serializeLView(lView, context) {
|
|
|
29518
29578
|
// live DOM has exactly the same state as it was before serialization.
|
|
29519
29579
|
if (tNode.type & 1 /* TNodeType.Text */) {
|
|
29520
29580
|
const rNode = unwrapRNode(lView[i]);
|
|
29521
|
-
|
|
29581
|
+
// Collect this node as required special annotation only when its
|
|
29582
|
+
// contents is empty. Otherwise, such text node would be present on
|
|
29583
|
+
// the client after server-side rendering and no special handling needed.
|
|
29584
|
+
if (rNode.textContent === '') {
|
|
29522
29585
|
context.corruptedTextNodes.set(rNode, "ngetn" /* TextNodeMarker.EmptyNode */);
|
|
29523
29586
|
}
|
|
29524
29587
|
else if (rNode.nextSibling?.nodeType === Node.TEXT_NODE) {
|
|
@@ -29751,7 +29814,7 @@ function whenStable(appRef, pendingTasks) {
|
|
|
29751
29814
|
function withDomHydration() {
|
|
29752
29815
|
return makeEnvironmentProviders([
|
|
29753
29816
|
{
|
|
29754
|
-
provide:
|
|
29817
|
+
provide: IS_HYDRATION_DOM_REUSE_ENABLED,
|
|
29755
29818
|
useFactory: () => {
|
|
29756
29819
|
let isEnabled = true;
|
|
29757
29820
|
if (isBrowser()) {
|
|
@@ -29759,7 +29822,7 @@ function withDomHydration() {
|
|
|
29759
29822
|
// hydration annotations. Otherwise, keep hydration disabled.
|
|
29760
29823
|
const transferState = inject(TransferState, { optional: true });
|
|
29761
29824
|
isEnabled = !!transferState?.get(NGH_DATA_KEY, null);
|
|
29762
|
-
if (!isEnabled) {
|
|
29825
|
+
if (!isEnabled && (typeof ngDevMode !== 'undefined' && ngDevMode)) {
|
|
29763
29826
|
const console = inject(Console);
|
|
29764
29827
|
const message = formatRuntimeError(-505 /* RuntimeErrorCode.MISSING_HYDRATION_ANNOTATIONS */, 'Angular hydration was requested on the client, but there was no ' +
|
|
29765
29828
|
'serialized information present in the server response, ' +
|
|
@@ -29784,7 +29847,7 @@ function withDomHydration() {
|
|
|
29784
29847
|
// on the client. Moving forward, the `isBrowser` check should
|
|
29785
29848
|
// be replaced with a tree-shakable alternative (e.g. `isServer`
|
|
29786
29849
|
// flag).
|
|
29787
|
-
if (isBrowser() && inject(
|
|
29850
|
+
if (isBrowser() && inject(IS_HYDRATION_DOM_REUSE_ENABLED)) {
|
|
29788
29851
|
enableHydrationRuntimeSupport();
|
|
29789
29852
|
}
|
|
29790
29853
|
},
|
|
@@ -29797,13 +29860,13 @@ function withDomHydration() {
|
|
|
29797
29860
|
// environment and when hydration is configured properly.
|
|
29798
29861
|
// On a server, an application is rendered from scratch,
|
|
29799
29862
|
// so the host content needs to be empty.
|
|
29800
|
-
return isBrowser() && inject(
|
|
29863
|
+
return isBrowser() && inject(IS_HYDRATION_DOM_REUSE_ENABLED);
|
|
29801
29864
|
}
|
|
29802
29865
|
},
|
|
29803
29866
|
{
|
|
29804
29867
|
provide: APP_BOOTSTRAP_LISTENER,
|
|
29805
29868
|
useFactory: () => {
|
|
29806
|
-
if (isBrowser() && inject(
|
|
29869
|
+
if (isBrowser() && inject(IS_HYDRATION_DOM_REUSE_ENABLED)) {
|
|
29807
29870
|
const appRef = inject(ApplicationRef);
|
|
29808
29871
|
const pendingTasks = inject(InitialRenderPendingTasks);
|
|
29809
29872
|
const injector = inject(Injector);
|
|
@@ -30111,5 +30174,5 @@ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
|
|
|
30111
30174
|
* Generated bundle index. Do not edit.
|
|
30112
30175
|
*/
|
|
30113
30176
|
|
|
30114
|
-
export { ANIMATION_MODULE_TYPE, APP_BOOTSTRAP_LISTENER, APP_ID, APP_INITIALIZER, ApplicationInitStatus, ApplicationModule, ApplicationRef, Attribute, COMPILER_OPTIONS, CSP_NONCE, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Compiler, CompilerFactory, Component, ComponentFactory$1 as ComponentFactory, ComponentFactoryResolver$1 as ComponentFactoryResolver, ComponentRef$1 as ComponentRef, ContentChild, ContentChildren, DEFAULT_CURRENCY_CODE, DebugElement, DebugEventListener, DebugNode, DefaultIterableDiffer, DestroyRef, Directive, ENVIRONMENT_INITIALIZER, ElementRef, EmbeddedViewRef, EnvironmentInjector, ErrorHandler, EventEmitter, Host, HostBinding, HostListener, INJECTOR, Inject, InjectFlags, Injectable, InjectionToken, Injector, Input, IterableDiffers, KeyValueDiffers, LOCALE_ID, MissingTranslationStrategy, ModuleWithComponentFactories, NO_ERRORS_SCHEMA, NgModule, NgModuleFactory$1 as NgModuleFactory, NgModuleRef$1 as NgModuleRef, NgProbeToken, NgZone, Optional, Output, PACKAGE_ROOT_URL, PLATFORM_ID, PLATFORM_INITIALIZER, Pipe, PlatformRef, Query, QueryList, Renderer2, RendererFactory2, RendererStyleFlags2, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, TransferState, Type, VERSION, Version, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation$1 as ViewEncapsulation, ViewRef, asNativeElements, assertInInjectionContext, assertPlatform, computed, createComponent, createEnvironmentInjector, createNgModule, createNgModuleRef, createPlatform, createPlatformFactory, defineInjectable, destroyPlatform, effect, enableProdMode, forwardRef, getDebugNode, getModuleFactory, getNgModuleById, getPlatform, importProvidersFrom, inject, isDevMode, isSignal, isStandalone, makeEnvironmentProviders, makeStateKey, mergeApplicationConfig, platformCore, provideZoneChangeDetection, reflectComponentType, resolveForwardRef, runInInjectionContext, setTestabilityGetter, signal, untracked, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, ComponentFactory$1 as ɵComponentFactory, Console as ɵConsole, DEFAULT_LOCALE_ID as ɵDEFAULT_LOCALE_ID, ENABLED_SSR_FEATURES as ɵENABLED_SSR_FEATURES, INJECTOR_SCOPE as ɵINJECTOR_SCOPE,
|
|
30177
|
+
export { ANIMATION_MODULE_TYPE, APP_BOOTSTRAP_LISTENER, APP_ID, APP_INITIALIZER, ApplicationInitStatus, ApplicationModule, ApplicationRef, Attribute, COMPILER_OPTIONS, CSP_NONCE, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Compiler, CompilerFactory, Component, ComponentFactory$1 as ComponentFactory, ComponentFactoryResolver$1 as ComponentFactoryResolver, ComponentRef$1 as ComponentRef, ContentChild, ContentChildren, DEFAULT_CURRENCY_CODE, DebugElement, DebugEventListener, DebugNode, DefaultIterableDiffer, DestroyRef, Directive, ENVIRONMENT_INITIALIZER, ElementRef, EmbeddedViewRef, EnvironmentInjector, ErrorHandler, EventEmitter, Host, HostBinding, HostListener, INJECTOR, Inject, InjectFlags, Injectable, InjectionToken, Injector, Input, IterableDiffers, KeyValueDiffers, LOCALE_ID, MissingTranslationStrategy, ModuleWithComponentFactories, NO_ERRORS_SCHEMA, NgModule, NgModuleFactory$1 as NgModuleFactory, NgModuleRef$1 as NgModuleRef, NgProbeToken, NgZone, Optional, Output, PACKAGE_ROOT_URL, PLATFORM_ID, PLATFORM_INITIALIZER, Pipe, PlatformRef, Query, QueryList, Renderer2, RendererFactory2, RendererStyleFlags2, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, TransferState, Type, VERSION, Version, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation$1 as ViewEncapsulation, ViewRef, asNativeElements, assertInInjectionContext, assertPlatform, computed, createComponent, createEnvironmentInjector, createNgModule, createNgModuleRef, createPlatform, createPlatformFactory, defineInjectable, destroyPlatform, effect, enableProdMode, forwardRef, getDebugNode, getModuleFactory, getNgModuleById, getPlatform, importProvidersFrom, inject, isDevMode, isSignal, isStandalone, makeEnvironmentProviders, makeStateKey, mergeApplicationConfig, platformCore, provideZoneChangeDetection, reflectComponentType, resolveForwardRef, runInInjectionContext, setTestabilityGetter, signal, untracked, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, ComponentFactory$1 as ɵComponentFactory, Console as ɵConsole, DEFAULT_LOCALE_ID as ɵDEFAULT_LOCALE_ID, ENABLED_SSR_FEATURES as ɵENABLED_SSR_FEATURES, INJECTOR_SCOPE as ɵINJECTOR_SCOPE, IS_HYDRATION_DOM_REUSE_ENABLED as ɵIS_HYDRATION_DOM_REUSE_ENABLED, InitialRenderPendingTasks as ɵInitialRenderPendingTasks, LContext as ɵLContext, LifecycleHooksFeature as ɵLifecycleHooksFeature, LocaleDataIndex as ɵLocaleDataIndex, NG_COMP_DEF as ɵNG_COMP_DEF, NG_DIR_DEF as ɵNG_DIR_DEF, NG_ELEMENT_ID as ɵNG_ELEMENT_ID, NG_INJ_DEF as ɵNG_INJ_DEF, NG_MOD_DEF as ɵNG_MOD_DEF, NG_PIPE_DEF as ɵNG_PIPE_DEF, NG_PROV_DEF as ɵNG_PROV_DEF, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR as ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, NO_CHANGE as ɵNO_CHANGE, NgModuleFactory as ɵNgModuleFactory, NoopNgZone as ɵNoopNgZone, ReflectionCapabilities as ɵReflectionCapabilities, ComponentFactory as ɵRender3ComponentFactory, ComponentRef as ɵRender3ComponentRef, NgModuleRef as ɵRender3NgModuleRef, RuntimeError as ɵRuntimeError, TESTABILITY as ɵTESTABILITY, TESTABILITY_GETTER as ɵTESTABILITY_GETTER, ViewRef$1 as ɵViewRef, XSS_SECURITY_URL as ɵXSS_SECURITY_URL, _sanitizeHtml as ɵ_sanitizeHtml, _sanitizeUrl as ɵ_sanitizeUrl, allowSanitizationBypassAndThrow as ɵallowSanitizationBypassAndThrow, annotateForHydration as ɵannotateForHydration, bypassSanitizationTrustHtml as ɵbypassSanitizationTrustHtml, bypassSanitizationTrustResourceUrl as ɵbypassSanitizationTrustResourceUrl, bypassSanitizationTrustScript as ɵbypassSanitizationTrustScript, bypassSanitizationTrustStyle as ɵbypassSanitizationTrustStyle, bypassSanitizationTrustUrl as ɵbypassSanitizationTrustUrl, clearResolutionOfComponentResourcesQueue as ɵclearResolutionOfComponentResourcesQueue, coerceToBoolean as ɵcoerceToBoolean, compileComponent as ɵcompileComponent, compileDirective as ɵcompileDirective, compileNgModule as ɵcompileNgModule, compileNgModuleDefs as ɵcompileNgModuleDefs, compileNgModuleFactory as ɵcompileNgModuleFactory, compilePipe as ɵcompilePipe, convertToBitFlags as ɵconvertToBitFlags, createInjector as ɵcreateInjector, defaultIterableDiffers as ɵdefaultIterableDiffers, defaultKeyValueDiffers as ɵdefaultKeyValueDiffers, detectChanges as ɵdetectChanges, devModeEqual as ɵdevModeEqual, escapeTransferStateContent as ɵescapeTransferStateContent, findLocaleData as ɵfindLocaleData, flushModuleScopingQueueAsMuchAsPossible as ɵflushModuleScopingQueueAsMuchAsPossible, formatRuntimeError as ɵformatRuntimeError, getDebugNode as ɵgetDebugNode, getDirectives as ɵgetDirectives, getHostElement as ɵgetHostElement, getInjectableDef as ɵgetInjectableDef, getLContext as ɵgetLContext, getLocaleCurrencyCode as ɵgetLocaleCurrencyCode, getLocalePluralCase as ɵgetLocalePluralCase, getSanitizationBypassType as ɵgetSanitizationBypassType, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, _global as ɵglobal, injectChangeDetectorRef as ɵinjectChangeDetectorRef, internalCreateApplication as ɵinternalCreateApplication, isBoundToModule as ɵisBoundToModule, isEnvironmentProviders as ɵisEnvironmentProviders, isInjectable as ɵisInjectable, isNgModule as ɵisNgModule, isPromise as ɵisPromise, isSubscribable as ɵisSubscribable, noSideEffects as ɵnoSideEffects, patchComponentDefWithScope as ɵpatchComponentDefWithScope, publishDefaultGlobalUtils$1 as ɵpublishDefaultGlobalUtils, publishGlobalUtil as ɵpublishGlobalUtil, registerLocaleData as ɵregisterLocaleData, resetCompiledComponents as ɵresetCompiledComponents, resetJitOptions as ɵresetJitOptions, resolveComponentResources as ɵresolveComponentResources, setAllowDuplicateNgModuleIdsForTest as ɵsetAllowDuplicateNgModuleIdsForTest, setAlternateWeakRefImpl as ɵsetAlternateWeakRefImpl, setClassMetadata as ɵsetClassMetadata, setCurrentInjector as ɵsetCurrentInjector, setDocument as ɵsetDocument, setLocaleId as ɵsetLocaleId, ɵsetUnknownElementStrictMode, ɵsetUnknownPropertyStrictMode, store as ɵstore, stringify as ɵstringify, transitiveScopesFor as ɵtransitiveScopesFor, unescapeTransferStateContent as ɵunescapeTransferStateContent, unregisterAllLocaleData as ɵunregisterLocaleData, unwrapSafeValue as ɵunwrapSafeValue, withDomHydration as ɵwithDomHydration, ɵɵCopyDefinitionFeature, FactoryTarget as ɵɵFactoryTarget, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵStandaloneFeature, ɵɵadvance, ɵɵattribute, ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV, ɵɵclassMap, ɵɵclassMapInterpolate1, ɵɵclassMapInterpolate2, ɵɵclassMapInterpolate3, ɵɵclassMapInterpolate4, ɵɵclassMapInterpolate5, ɵɵclassMapInterpolate6, ɵɵclassMapInterpolate7, ɵɵclassMapInterpolate8, ɵɵclassMapInterpolateV, ɵɵclassProp, ɵɵcontentQuery, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineInjectable, ɵɵdefineInjector, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdisableBindings, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵenableBindings, ɵɵgetCurrentView, ɵɵgetInheritedFactory, ɵɵhostProperty, ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart, ɵɵinject, ɵɵinjectAttribute, ɵɵinvalidFactory, ɵɵinvalidFactoryDep, ɵɵlistener, ɵɵloadQuery, ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG, ɵɵnextContext, ɵɵngDeclareClassMetadata, ɵɵngDeclareComponent, ɵɵngDeclareDirective, ɵɵngDeclareFactory, ɵɵngDeclareInjectable, ɵɵngDeclareInjector, ɵɵngDeclareNgModule, ɵɵngDeclarePipe, ɵɵpipe, ɵɵpipeBind1, ɵɵpipeBind2, ɵɵpipeBind3, ɵɵpipeBind4, ɵɵpipeBindV, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵpropertyInterpolate, ɵɵpropertyInterpolate1, ɵɵpropertyInterpolate2, ɵɵpropertyInterpolate3, ɵɵpropertyInterpolate4, ɵɵpropertyInterpolate5, ɵɵpropertyInterpolate6, ɵɵpropertyInterpolate7, ɵɵpropertyInterpolate8, ɵɵpropertyInterpolateV, ɵɵpureFunction0, ɵɵpureFunction1, ɵɵpureFunction2, ɵɵpureFunction3, ɵɵpureFunction4, ɵɵpureFunction5, ɵɵpureFunction6, ɵɵpureFunction7, ɵɵpureFunction8, ɵɵpureFunctionV, ɵɵqueryRefresh, ɵɵreference, registerNgModuleType as ɵɵregisterNgModuleType, ɵɵresetView, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵrestoreView, ɵɵsanitizeHtml, ɵɵsanitizeResourceUrl, ɵɵsanitizeScript, ɵɵsanitizeStyle, ɵɵsanitizeUrl, ɵɵsanitizeUrlOrResourceUrl, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵstyleMap, ɵɵstyleMapInterpolate1, ɵɵstyleMapInterpolate2, ɵɵstyleMapInterpolate3, ɵɵstyleMapInterpolate4, ɵɵstyleMapInterpolate5, ɵɵstyleMapInterpolate6, ɵɵstyleMapInterpolate7, ɵɵstyleMapInterpolate8, ɵɵstyleMapInterpolateV, ɵɵstyleProp, ɵɵstylePropInterpolate1, ɵɵstylePropInterpolate2, ɵɵstylePropInterpolate3, ɵɵstylePropInterpolate4, ɵɵstylePropInterpolate5, ɵɵstylePropInterpolate6, ɵɵstylePropInterpolate7, ɵɵstylePropInterpolate8, ɵɵstylePropInterpolateV, ɵɵsyntheticHostListener, ɵɵsyntheticHostProperty, ɵɵtemplate, ɵɵtemplateRefExtractor, ɵɵtext, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, ɵɵtrustConstantHtml, ɵɵtrustConstantResourceUrl, ɵɵvalidateIframeAttribute, ɵɵviewQuery };
|
|
30115
30178
|
//# sourceMappingURL=core.mjs.map
|