@angular/core 19.1.6 → 19.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/core.mjs +611 -628
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/primitives/event-dispatch.mjs +1 -1
- package/fesm2022/primitives/signals.mjs +1 -1
- package/fesm2022/rxjs-interop.mjs +1 -1
- package/fesm2022/testing.mjs +4 -4
- package/index.d.ts +12 -35
- package/package.json +1 -1
- package/primitives/event-dispatch/index.d.ts +1 -1
- package/primitives/signals/index.d.ts +1 -1
- package/rxjs-interop/index.d.ts +1 -1
- package/schematics/bundles/{apply_import_manager-61eb7e4a.js → apply_import_manager-3220dafc.js} +3 -3
- package/schematics/bundles/{checker-58684f3f.js → checker-2bdbb582.js} +17 -16
- package/schematics/bundles/cleanup-unused-imports.js +6 -6
- package/schematics/bundles/{compiler_host-dff4346e.js → compiler_host-833d3812.js} +2 -2
- package/schematics/bundles/control-flow-migration.js +3 -3
- package/schematics/bundles/explicit-standalone-flag.js +5 -5
- package/schematics/bundles/{imports-31a38653.js → imports-abe29092.js} +1 -1
- package/schematics/bundles/{index-4bb9c755.js → index-4978a91a.js} +4 -4
- package/schematics/bundles/{index-027c9191.js → index-be586082.js} +4 -4
- package/schematics/bundles/inject-migration.js +6 -6
- package/schematics/bundles/{leading_space-6e7a8ec6.js → leading_space-d190b83b.js} +1 -1
- package/schematics/bundles/{migrate_ts_type_references-f48f6ec0.js → migrate_ts_type_references-d2b2e8f1.js} +6 -6
- package/schematics/bundles/{nodes-88c2157f.js → nodes-a9f0b985.js} +2 -2
- package/schematics/bundles/output-migration.js +6 -6
- package/schematics/bundles/pending-tasks.js +5 -5
- package/schematics/bundles/{program-721d697e.js → program-f43dcb10.js} +12 -12
- package/schematics/bundles/{project_tsconfig_paths-6c9cde78.js → project_tsconfig_paths-e9ccccbf.js} +1 -1
- package/schematics/bundles/provide-initializer.js +5 -5
- package/schematics/bundles/route-lazy-loading.js +4 -4
- package/schematics/bundles/signal-input-migration.js +8 -8
- package/schematics/bundles/signal-queries-migration.js +8 -8
- package/schematics/bundles/signals.js +8 -8
- package/schematics/bundles/standalone-migration.js +8 -8
- package/testing/index.d.ts +1 -1
package/fesm2022/core.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v19.1.
|
|
2
|
+
* @license Angular v19.1.7
|
|
3
3
|
* (c) 2010-2024 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -350,23 +350,21 @@ function stringify(token) {
|
|
|
350
350
|
return token;
|
|
351
351
|
}
|
|
352
352
|
if (Array.isArray(token)) {
|
|
353
|
-
return
|
|
353
|
+
return `[${token.map(stringify).join(', ')}]`;
|
|
354
354
|
}
|
|
355
355
|
if (token == null) {
|
|
356
356
|
return '' + token;
|
|
357
357
|
}
|
|
358
|
-
|
|
359
|
-
|
|
358
|
+
const name = token.overriddenName || token.name;
|
|
359
|
+
if (name) {
|
|
360
|
+
return `${name}`;
|
|
360
361
|
}
|
|
361
|
-
|
|
362
|
-
|
|
362
|
+
const result = token.toString();
|
|
363
|
+
if (result == null) {
|
|
364
|
+
return '' + result;
|
|
363
365
|
}
|
|
364
|
-
const
|
|
365
|
-
|
|
366
|
-
return '' + res;
|
|
367
|
-
}
|
|
368
|
-
const newLineIndex = res.indexOf('\n');
|
|
369
|
-
return newLineIndex === -1 ? res : res.substring(0, newLineIndex);
|
|
366
|
+
const newLineIndex = result.indexOf('\n');
|
|
367
|
+
return newLineIndex >= 0 ? result.slice(0, newLineIndex) : result;
|
|
370
368
|
}
|
|
371
369
|
/**
|
|
372
370
|
* Concatenates two strings with separator, allocating new strings only when necessary.
|
|
@@ -377,13 +375,11 @@ function stringify(token) {
|
|
|
377
375
|
* @returns concatenated string.
|
|
378
376
|
*/
|
|
379
377
|
function concatStringsWithSpace(before, after) {
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
? before
|
|
386
|
-
: before + ' ' + after;
|
|
378
|
+
if (!before)
|
|
379
|
+
return after || '';
|
|
380
|
+
if (!after)
|
|
381
|
+
return before;
|
|
382
|
+
return `${before} ${after}`;
|
|
387
383
|
}
|
|
388
384
|
/**
|
|
389
385
|
* Ellipses the string in the middle when longer than the max length
|
|
@@ -8249,23 +8245,12 @@ function assertDomElement(value) {
|
|
|
8249
8245
|
function extractInputDebugMetadata(inputs) {
|
|
8250
8246
|
const res = {};
|
|
8251
8247
|
for (const key in inputs) {
|
|
8252
|
-
if (
|
|
8253
|
-
|
|
8254
|
-
|
|
8255
|
-
|
|
8256
|
-
|
|
8257
|
-
continue;
|
|
8258
|
-
}
|
|
8259
|
-
let minifiedName;
|
|
8260
|
-
if (Array.isArray(value)) {
|
|
8261
|
-
minifiedName = value[0];
|
|
8262
|
-
// flags are not used for now.
|
|
8263
|
-
// TODO: Consider exposing flag information in discovery.
|
|
8264
|
-
}
|
|
8265
|
-
else {
|
|
8266
|
-
minifiedName = value;
|
|
8248
|
+
if (inputs.hasOwnProperty(key)) {
|
|
8249
|
+
const value = inputs[key];
|
|
8250
|
+
if (value !== undefined) {
|
|
8251
|
+
res[key] = value[0];
|
|
8252
|
+
}
|
|
8267
8253
|
}
|
|
8268
|
-
res[key] = minifiedName;
|
|
8269
8254
|
}
|
|
8270
8255
|
return res;
|
|
8271
8256
|
}
|
|
@@ -12193,6 +12178,206 @@ function setupStaticAttributes(renderer, element, tNode) {
|
|
|
12193
12178
|
}
|
|
12194
12179
|
}
|
|
12195
12180
|
|
|
12181
|
+
/**
|
|
12182
|
+
* Creates a TView instance
|
|
12183
|
+
*
|
|
12184
|
+
* @param type Type of `TView`.
|
|
12185
|
+
* @param declTNode Declaration location of this `TView`.
|
|
12186
|
+
* @param templateFn Template function
|
|
12187
|
+
* @param decls The number of nodes, local refs, and pipes in this template
|
|
12188
|
+
* @param directives Registry of directives for this view
|
|
12189
|
+
* @param pipes Registry of pipes for this view
|
|
12190
|
+
* @param viewQuery View queries for this view
|
|
12191
|
+
* @param schemas Schemas for this view
|
|
12192
|
+
* @param consts Constants for this view
|
|
12193
|
+
*/
|
|
12194
|
+
function createTView(type, declTNode, templateFn, decls, vars, directives, pipes, viewQuery, schemas, constsOrFactory, ssrId) {
|
|
12195
|
+
ngDevMode && ngDevMode.tView++;
|
|
12196
|
+
const bindingStartIndex = HEADER_OFFSET + decls;
|
|
12197
|
+
// This length does not yet contain host bindings from child directives because at this point,
|
|
12198
|
+
// we don't know which directives are active on this template. As soon as a directive is matched
|
|
12199
|
+
// that has a host binding, we will update the blueprint with that def's hostVars count.
|
|
12200
|
+
const initialViewLength = bindingStartIndex + vars;
|
|
12201
|
+
const blueprint = createViewBlueprint(bindingStartIndex, initialViewLength);
|
|
12202
|
+
const consts = typeof constsOrFactory === 'function' ? constsOrFactory() : constsOrFactory;
|
|
12203
|
+
const tView = (blueprint[TVIEW] = {
|
|
12204
|
+
type: type,
|
|
12205
|
+
blueprint: blueprint,
|
|
12206
|
+
template: templateFn,
|
|
12207
|
+
queries: null,
|
|
12208
|
+
viewQuery: viewQuery,
|
|
12209
|
+
declTNode: declTNode,
|
|
12210
|
+
data: blueprint.slice().fill(null, bindingStartIndex),
|
|
12211
|
+
bindingStartIndex: bindingStartIndex,
|
|
12212
|
+
expandoStartIndex: initialViewLength,
|
|
12213
|
+
hostBindingOpCodes: null,
|
|
12214
|
+
firstCreatePass: true,
|
|
12215
|
+
firstUpdatePass: true,
|
|
12216
|
+
staticViewQueries: false,
|
|
12217
|
+
staticContentQueries: false,
|
|
12218
|
+
preOrderHooks: null,
|
|
12219
|
+
preOrderCheckHooks: null,
|
|
12220
|
+
contentHooks: null,
|
|
12221
|
+
contentCheckHooks: null,
|
|
12222
|
+
viewHooks: null,
|
|
12223
|
+
viewCheckHooks: null,
|
|
12224
|
+
destroyHooks: null,
|
|
12225
|
+
cleanup: null,
|
|
12226
|
+
contentQueries: null,
|
|
12227
|
+
components: null,
|
|
12228
|
+
directiveRegistry: typeof directives === 'function' ? directives() : directives,
|
|
12229
|
+
pipeRegistry: typeof pipes === 'function' ? pipes() : pipes,
|
|
12230
|
+
firstChild: null,
|
|
12231
|
+
schemas: schemas,
|
|
12232
|
+
consts: consts,
|
|
12233
|
+
incompleteFirstPass: false,
|
|
12234
|
+
ssrId,
|
|
12235
|
+
});
|
|
12236
|
+
if (ngDevMode) {
|
|
12237
|
+
// For performance reasons it is important that the tView retains the same shape during runtime.
|
|
12238
|
+
// (To make sure that all of the code is monomorphic.) For this reason we seal the object to
|
|
12239
|
+
// prevent class transitions.
|
|
12240
|
+
Object.seal(tView);
|
|
12241
|
+
}
|
|
12242
|
+
return tView;
|
|
12243
|
+
}
|
|
12244
|
+
function createViewBlueprint(bindingStartIndex, initialViewLength) {
|
|
12245
|
+
const blueprint = [];
|
|
12246
|
+
for (let i = 0; i < initialViewLength; i++) {
|
|
12247
|
+
blueprint.push(i < bindingStartIndex ? null : NO_CHANGE);
|
|
12248
|
+
}
|
|
12249
|
+
return blueprint;
|
|
12250
|
+
}
|
|
12251
|
+
/**
|
|
12252
|
+
* Gets TView from a template function or creates a new TView
|
|
12253
|
+
* if it doesn't already exist.
|
|
12254
|
+
*
|
|
12255
|
+
* @param def ComponentDef
|
|
12256
|
+
* @returns TView
|
|
12257
|
+
*/
|
|
12258
|
+
function getOrCreateComponentTView(def) {
|
|
12259
|
+
const tView = def.tView;
|
|
12260
|
+
// Create a TView if there isn't one, or recreate it if the first create pass didn't
|
|
12261
|
+
// complete successfully since we can't know for sure whether it's in a usable shape.
|
|
12262
|
+
if (tView === null || tView.incompleteFirstPass) {
|
|
12263
|
+
// Declaration node here is null since this function is called when we dynamically create a
|
|
12264
|
+
// component and hence there is no declaration.
|
|
12265
|
+
const declTNode = null;
|
|
12266
|
+
return (def.tView = createTView(1 /* TViewType.Component */, declTNode, def.template, def.decls, def.vars, def.directiveDefs, def.pipeDefs, def.viewQuery, def.schemas, def.consts, def.id));
|
|
12267
|
+
}
|
|
12268
|
+
return tView;
|
|
12269
|
+
}
|
|
12270
|
+
function createLView(parentLView, tView, context, flags, host, tHostNode, environment, renderer, injector, embeddedViewInjector, hydrationInfo) {
|
|
12271
|
+
const lView = tView.blueprint.slice();
|
|
12272
|
+
lView[HOST] = host;
|
|
12273
|
+
lView[FLAGS] =
|
|
12274
|
+
flags |
|
|
12275
|
+
4 /* LViewFlags.CreationMode */ |
|
|
12276
|
+
128 /* LViewFlags.Attached */ |
|
|
12277
|
+
8 /* LViewFlags.FirstLViewPass */ |
|
|
12278
|
+
64 /* LViewFlags.Dirty */ |
|
|
12279
|
+
1024 /* LViewFlags.RefreshView */;
|
|
12280
|
+
if (embeddedViewInjector !== null ||
|
|
12281
|
+
(parentLView && parentLView[FLAGS] & 2048 /* LViewFlags.HasEmbeddedViewInjector */)) {
|
|
12282
|
+
lView[FLAGS] |= 2048 /* LViewFlags.HasEmbeddedViewInjector */;
|
|
12283
|
+
}
|
|
12284
|
+
resetPreOrderHookFlags(lView);
|
|
12285
|
+
ngDevMode && tView.declTNode && parentLView && assertTNodeForLView(tView.declTNode, parentLView);
|
|
12286
|
+
lView[PARENT] = lView[DECLARATION_VIEW] = parentLView;
|
|
12287
|
+
lView[CONTEXT] = context;
|
|
12288
|
+
lView[ENVIRONMENT] = (environment || (parentLView && parentLView[ENVIRONMENT]));
|
|
12289
|
+
ngDevMode && assertDefined(lView[ENVIRONMENT], 'LViewEnvironment is required');
|
|
12290
|
+
lView[RENDERER] = (renderer || (parentLView && parentLView[RENDERER]));
|
|
12291
|
+
ngDevMode && assertDefined(lView[RENDERER], 'Renderer is required');
|
|
12292
|
+
lView[INJECTOR] = injector || (parentLView && parentLView[INJECTOR]) || null;
|
|
12293
|
+
lView[T_HOST] = tHostNode;
|
|
12294
|
+
lView[ID] = getUniqueLViewId();
|
|
12295
|
+
lView[HYDRATION] = hydrationInfo;
|
|
12296
|
+
lView[EMBEDDED_VIEW_INJECTOR] = embeddedViewInjector;
|
|
12297
|
+
ngDevMode &&
|
|
12298
|
+
assertEqual(tView.type == 2 /* TViewType.Embedded */ ? parentLView !== null : true, true, 'Embedded views must have parentLView');
|
|
12299
|
+
lView[DECLARATION_COMPONENT_VIEW] =
|
|
12300
|
+
tView.type == 2 /* TViewType.Embedded */ ? parentLView[DECLARATION_COMPONENT_VIEW] : lView;
|
|
12301
|
+
return lView;
|
|
12302
|
+
}
|
|
12303
|
+
function createComponentLView(lView, hostTNode, def) {
|
|
12304
|
+
const native = getNativeByTNode(hostTNode, lView);
|
|
12305
|
+
const tView = getOrCreateComponentTView(def);
|
|
12306
|
+
// Only component views should be added to the view tree directly. Embedded views are
|
|
12307
|
+
// accessed through their containers because they may be removed / re-added later.
|
|
12308
|
+
const rendererFactory = lView[ENVIRONMENT].rendererFactory;
|
|
12309
|
+
const componentView = addToEndOfViewTree(lView, createLView(lView, tView, null, getInitialLViewFlagsFromDef(def), native, hostTNode, null, rendererFactory.createRenderer(native, def), null, null, null));
|
|
12310
|
+
// Component view will always be created before any injected LContainers,
|
|
12311
|
+
// so this is a regular element, wrap it with the component view
|
|
12312
|
+
return (lView[hostTNode.index] = componentView);
|
|
12313
|
+
}
|
|
12314
|
+
/**
|
|
12315
|
+
* Gets the initial set of LView flags based on the component definition that the LView represents.
|
|
12316
|
+
* @param def Component definition from which to determine the flags.
|
|
12317
|
+
*/
|
|
12318
|
+
function getInitialLViewFlagsFromDef(def) {
|
|
12319
|
+
let flags = 16 /* LViewFlags.CheckAlways */;
|
|
12320
|
+
if (def.signals) {
|
|
12321
|
+
flags = 4096 /* LViewFlags.SignalView */;
|
|
12322
|
+
}
|
|
12323
|
+
else if (def.onPush) {
|
|
12324
|
+
flags = 64 /* LViewFlags.Dirty */;
|
|
12325
|
+
}
|
|
12326
|
+
return flags;
|
|
12327
|
+
}
|
|
12328
|
+
/**
|
|
12329
|
+
* When elements are created dynamically after a view blueprint is created (e.g. through
|
|
12330
|
+
* i18nApply()), we need to adjust the blueprint for future template passes.
|
|
12331
|
+
*
|
|
12332
|
+
* @param tView `TView` associated with `LView`
|
|
12333
|
+
* @param lView The `LView` containing the blueprint to adjust
|
|
12334
|
+
* @param numSlotsToAlloc The number of slots to alloc in the LView, should be >0
|
|
12335
|
+
* @param initialValue Initial value to store in blueprint
|
|
12336
|
+
*/
|
|
12337
|
+
function allocExpando(tView, lView, numSlotsToAlloc, initialValue) {
|
|
12338
|
+
if (numSlotsToAlloc === 0)
|
|
12339
|
+
return -1;
|
|
12340
|
+
if (ngDevMode) {
|
|
12341
|
+
assertFirstCreatePass(tView);
|
|
12342
|
+
assertSame(tView, lView[TVIEW], '`LView` must be associated with `TView`!');
|
|
12343
|
+
assertEqual(tView.data.length, lView.length, 'Expecting LView to be same size as TView');
|
|
12344
|
+
assertEqual(tView.data.length, tView.blueprint.length, 'Expecting Blueprint to be same size as TView');
|
|
12345
|
+
assertFirstUpdatePass(tView);
|
|
12346
|
+
}
|
|
12347
|
+
const allocIdx = lView.length;
|
|
12348
|
+
for (let i = 0; i < numSlotsToAlloc; i++) {
|
|
12349
|
+
lView.push(initialValue);
|
|
12350
|
+
tView.blueprint.push(initialValue);
|
|
12351
|
+
tView.data.push(null);
|
|
12352
|
+
}
|
|
12353
|
+
return allocIdx;
|
|
12354
|
+
}
|
|
12355
|
+
/**
|
|
12356
|
+
* Adds LView or LContainer to the end of the current view tree.
|
|
12357
|
+
*
|
|
12358
|
+
* This structure will be used to traverse through nested views to remove listeners
|
|
12359
|
+
* and call onDestroy callbacks.
|
|
12360
|
+
*
|
|
12361
|
+
* @param lView The view where LView or LContainer should be added
|
|
12362
|
+
* @param adjustedHostIndex Index of the view's host node in LView[], adjusted for header
|
|
12363
|
+
* @param lViewOrLContainer The LView or LContainer to add to the view tree
|
|
12364
|
+
* @returns The state passed in
|
|
12365
|
+
*/
|
|
12366
|
+
function addToEndOfViewTree(lView, lViewOrLContainer) {
|
|
12367
|
+
// TODO(benlesh/misko): This implementation is incorrect, because it always adds the LContainer
|
|
12368
|
+
// to the end of the queue, which means if the developer retrieves the LContainers from RNodes out
|
|
12369
|
+
// of order, the change detection will run out of order, as the act of retrieving the the
|
|
12370
|
+
// LContainer from the RNode is what adds it to the queue.
|
|
12371
|
+
if (lView[CHILD_HEAD]) {
|
|
12372
|
+
lView[CHILD_TAIL][NEXT] = lViewOrLContainer;
|
|
12373
|
+
}
|
|
12374
|
+
else {
|
|
12375
|
+
lView[CHILD_HEAD] = lViewOrLContainer;
|
|
12376
|
+
}
|
|
12377
|
+
lView[CHILD_TAIL] = lViewOrLContainer;
|
|
12378
|
+
return lViewOrLContainer;
|
|
12379
|
+
}
|
|
12380
|
+
|
|
12196
12381
|
/**
|
|
12197
12382
|
* Advances to an element for later binding instructions.
|
|
12198
12383
|
*
|
|
@@ -12254,9 +12439,21 @@ var InputFlags;
|
|
|
12254
12439
|
InputFlags[InputFlags["HasDecoratorInputTransform"] = 2] = "HasDecoratorInputTransform";
|
|
12255
12440
|
})(InputFlags || (InputFlags = {}));
|
|
12256
12441
|
|
|
12257
|
-
function writeToDirectiveInput(def, instance, publicName,
|
|
12442
|
+
function writeToDirectiveInput(def, instance, publicName, value) {
|
|
12258
12443
|
const prevConsumer = setActiveConsumer$1(null);
|
|
12259
12444
|
try {
|
|
12445
|
+
if (ngDevMode) {
|
|
12446
|
+
if (!def.inputs.hasOwnProperty(publicName)) {
|
|
12447
|
+
throw new Error(`ASSERTION ERROR: Directive ${def.type.name} does not have an input with a public name of "${publicName}"`);
|
|
12448
|
+
}
|
|
12449
|
+
// Usually we resolve the directive instance using `LView[someIndex]` before writing to an
|
|
12450
|
+
// input, however if the read happens to early, the `LView[someIndex]` might actually be a
|
|
12451
|
+
// `NodeInjectorFactory`. Check for this specific case here since it can break in subtle ways.
|
|
12452
|
+
if (isFactory(instance)) {
|
|
12453
|
+
throw new Error(`ASSERTION ERROR: Cannot write input to factory for type ${def.type.name}. Directive has not been created yet.`);
|
|
12454
|
+
}
|
|
12455
|
+
}
|
|
12456
|
+
const [privateName, flags, transform] = def.inputs[publicName];
|
|
12260
12457
|
// If we know we are dealing with a signal input, we cache its reference
|
|
12261
12458
|
// in a tree-shakable way. The input signal node can then be used for
|
|
12262
12459
|
// value transform execution or actual value updates without introducing
|
|
@@ -12271,9 +12468,9 @@ function writeToDirectiveInput(def, instance, publicName, privateName, flags, va
|
|
|
12271
12468
|
if (inputSignalNode !== null && inputSignalNode.transformFn !== undefined) {
|
|
12272
12469
|
value = inputSignalNode.transformFn(value);
|
|
12273
12470
|
}
|
|
12274
|
-
|
|
12275
|
-
|
|
12276
|
-
value =
|
|
12471
|
+
else if (transform !== null) {
|
|
12472
|
+
// If there is a decorator input transform, run it.
|
|
12473
|
+
value = transform.call(instance, value);
|
|
12277
12474
|
}
|
|
12278
12475
|
if (def.setInput !== null) {
|
|
12279
12476
|
def.setInput(instance, inputSignalNode, value, publicName, privateName);
|
|
@@ -12287,39 +12484,6 @@ function writeToDirectiveInput(def, instance, publicName, privateName, flags, va
|
|
|
12287
12484
|
}
|
|
12288
12485
|
}
|
|
12289
12486
|
|
|
12290
|
-
function createLView(parentLView, tView, context, flags, host, tHostNode, environment, renderer, injector, embeddedViewInjector, hydrationInfo) {
|
|
12291
|
-
const lView = tView.blueprint.slice();
|
|
12292
|
-
lView[HOST] = host;
|
|
12293
|
-
lView[FLAGS] =
|
|
12294
|
-
flags |
|
|
12295
|
-
4 /* LViewFlags.CreationMode */ |
|
|
12296
|
-
128 /* LViewFlags.Attached */ |
|
|
12297
|
-
8 /* LViewFlags.FirstLViewPass */ |
|
|
12298
|
-
64 /* LViewFlags.Dirty */ |
|
|
12299
|
-
1024 /* LViewFlags.RefreshView */;
|
|
12300
|
-
if (embeddedViewInjector !== null ||
|
|
12301
|
-
(parentLView && parentLView[FLAGS] & 2048 /* LViewFlags.HasEmbeddedViewInjector */)) {
|
|
12302
|
-
lView[FLAGS] |= 2048 /* LViewFlags.HasEmbeddedViewInjector */;
|
|
12303
|
-
}
|
|
12304
|
-
resetPreOrderHookFlags(lView);
|
|
12305
|
-
ngDevMode && tView.declTNode && parentLView && assertTNodeForLView(tView.declTNode, parentLView);
|
|
12306
|
-
lView[PARENT] = lView[DECLARATION_VIEW] = parentLView;
|
|
12307
|
-
lView[CONTEXT] = context;
|
|
12308
|
-
lView[ENVIRONMENT] = (environment || (parentLView && parentLView[ENVIRONMENT]));
|
|
12309
|
-
ngDevMode && assertDefined(lView[ENVIRONMENT], 'LViewEnvironment is required');
|
|
12310
|
-
lView[RENDERER] = (renderer || (parentLView && parentLView[RENDERER]));
|
|
12311
|
-
ngDevMode && assertDefined(lView[RENDERER], 'Renderer is required');
|
|
12312
|
-
lView[INJECTOR] = injector || (parentLView && parentLView[INJECTOR]) || null;
|
|
12313
|
-
lView[T_HOST] = tHostNode;
|
|
12314
|
-
lView[ID] = getUniqueLViewId();
|
|
12315
|
-
lView[HYDRATION] = hydrationInfo;
|
|
12316
|
-
lView[EMBEDDED_VIEW_INJECTOR] = embeddedViewInjector;
|
|
12317
|
-
ngDevMode &&
|
|
12318
|
-
assertEqual(tView.type == 2 /* TViewType.Embedded */ ? parentLView !== null : true, true, 'Embedded views must have parentLView');
|
|
12319
|
-
lView[DECLARATION_COMPONENT_VIEW] =
|
|
12320
|
-
tView.type == 2 /* TViewType.Embedded */ ? parentLView[DECLARATION_COMPONENT_VIEW] : lView;
|
|
12321
|
-
return lView;
|
|
12322
|
-
}
|
|
12323
12487
|
function executeTemplate(tView, lView, templateFn, rf, context) {
|
|
12324
12488
|
const prevSelectedIndex = getSelectedIndex();
|
|
12325
12489
|
const isUpdatePhase = rf & 2 /* RenderFlags.Update */;
|
|
@@ -12379,95 +12543,6 @@ function saveResolvedLocalsInData(viewData, tNode, localRefExtractor = getNative
|
|
|
12379
12543
|
}
|
|
12380
12544
|
}
|
|
12381
12545
|
}
|
|
12382
|
-
/**
|
|
12383
|
-
* Gets TView from a template function or creates a new TView
|
|
12384
|
-
* if it doesn't already exist.
|
|
12385
|
-
*
|
|
12386
|
-
* @param def ComponentDef
|
|
12387
|
-
* @returns TView
|
|
12388
|
-
*/
|
|
12389
|
-
function getOrCreateComponentTView(def) {
|
|
12390
|
-
const tView = def.tView;
|
|
12391
|
-
// Create a TView if there isn't one, or recreate it if the first create pass didn't
|
|
12392
|
-
// complete successfully since we can't know for sure whether it's in a usable shape.
|
|
12393
|
-
if (tView === null || tView.incompleteFirstPass) {
|
|
12394
|
-
// Declaration node here is null since this function is called when we dynamically create a
|
|
12395
|
-
// component and hence there is no declaration.
|
|
12396
|
-
const declTNode = null;
|
|
12397
|
-
return (def.tView = createTView(1 /* TViewType.Component */, declTNode, def.template, def.decls, def.vars, def.directiveDefs, def.pipeDefs, def.viewQuery, def.schemas, def.consts, def.id));
|
|
12398
|
-
}
|
|
12399
|
-
return tView;
|
|
12400
|
-
}
|
|
12401
|
-
/**
|
|
12402
|
-
* Creates a TView instance
|
|
12403
|
-
*
|
|
12404
|
-
* @param type Type of `TView`.
|
|
12405
|
-
* @param declTNode Declaration location of this `TView`.
|
|
12406
|
-
* @param templateFn Template function
|
|
12407
|
-
* @param decls The number of nodes, local refs, and pipes in this template
|
|
12408
|
-
* @param directives Registry of directives for this view
|
|
12409
|
-
* @param pipes Registry of pipes for this view
|
|
12410
|
-
* @param viewQuery View queries for this view
|
|
12411
|
-
* @param schemas Schemas for this view
|
|
12412
|
-
* @param consts Constants for this view
|
|
12413
|
-
*/
|
|
12414
|
-
function createTView(type, declTNode, templateFn, decls, vars, directives, pipes, viewQuery, schemas, constsOrFactory, ssrId) {
|
|
12415
|
-
ngDevMode && ngDevMode.tView++;
|
|
12416
|
-
const bindingStartIndex = HEADER_OFFSET + decls;
|
|
12417
|
-
// This length does not yet contain host bindings from child directives because at this point,
|
|
12418
|
-
// we don't know which directives are active on this template. As soon as a directive is matched
|
|
12419
|
-
// that has a host binding, we will update the blueprint with that def's hostVars count.
|
|
12420
|
-
const initialViewLength = bindingStartIndex + vars;
|
|
12421
|
-
const blueprint = createViewBlueprint(bindingStartIndex, initialViewLength);
|
|
12422
|
-
const consts = typeof constsOrFactory === 'function' ? constsOrFactory() : constsOrFactory;
|
|
12423
|
-
const tView = (blueprint[TVIEW] = {
|
|
12424
|
-
type: type,
|
|
12425
|
-
blueprint: blueprint,
|
|
12426
|
-
template: templateFn,
|
|
12427
|
-
queries: null,
|
|
12428
|
-
viewQuery: viewQuery,
|
|
12429
|
-
declTNode: declTNode,
|
|
12430
|
-
data: blueprint.slice().fill(null, bindingStartIndex),
|
|
12431
|
-
bindingStartIndex: bindingStartIndex,
|
|
12432
|
-
expandoStartIndex: initialViewLength,
|
|
12433
|
-
hostBindingOpCodes: null,
|
|
12434
|
-
firstCreatePass: true,
|
|
12435
|
-
firstUpdatePass: true,
|
|
12436
|
-
staticViewQueries: false,
|
|
12437
|
-
staticContentQueries: false,
|
|
12438
|
-
preOrderHooks: null,
|
|
12439
|
-
preOrderCheckHooks: null,
|
|
12440
|
-
contentHooks: null,
|
|
12441
|
-
contentCheckHooks: null,
|
|
12442
|
-
viewHooks: null,
|
|
12443
|
-
viewCheckHooks: null,
|
|
12444
|
-
destroyHooks: null,
|
|
12445
|
-
cleanup: null,
|
|
12446
|
-
contentQueries: null,
|
|
12447
|
-
components: null,
|
|
12448
|
-
directiveRegistry: typeof directives === 'function' ? directives() : directives,
|
|
12449
|
-
pipeRegistry: typeof pipes === 'function' ? pipes() : pipes,
|
|
12450
|
-
firstChild: null,
|
|
12451
|
-
schemas: schemas,
|
|
12452
|
-
consts: consts,
|
|
12453
|
-
incompleteFirstPass: false,
|
|
12454
|
-
ssrId,
|
|
12455
|
-
});
|
|
12456
|
-
if (ngDevMode) {
|
|
12457
|
-
// For performance reasons it is important that the tView retains the same shape during runtime.
|
|
12458
|
-
// (To make sure that all of the code is monomorphic.) For this reason we seal the object to
|
|
12459
|
-
// prevent class transitions.
|
|
12460
|
-
Object.seal(tView);
|
|
12461
|
-
}
|
|
12462
|
-
return tView;
|
|
12463
|
-
}
|
|
12464
|
-
function createViewBlueprint(bindingStartIndex, initialViewLength) {
|
|
12465
|
-
const blueprint = [];
|
|
12466
|
-
for (let i = 0; i < initialViewLength; i++) {
|
|
12467
|
-
blueprint.push(i < bindingStartIndex ? null : NO_CHANGE);
|
|
12468
|
-
}
|
|
12469
|
-
return blueprint;
|
|
12470
|
-
}
|
|
12471
12546
|
/**
|
|
12472
12547
|
* Locates the host native element, used for bootstrapping existing nodes into rendering pipeline.
|
|
12473
12548
|
*
|
|
@@ -12559,7 +12634,6 @@ function mapPropName(name) {
|
|
|
12559
12634
|
}
|
|
12560
12635
|
function elementPropertyInternal(tView, tNode, lView, propName, value, renderer, sanitizer, nativeOnly) {
|
|
12561
12636
|
ngDevMode && assertNotSame(value, NO_CHANGE, 'Incoming value should never be NO_CHANGE.');
|
|
12562
|
-
const element = getNativeByTNode(tNode, lView);
|
|
12563
12637
|
let inputData = tNode.inputs;
|
|
12564
12638
|
let dataValue;
|
|
12565
12639
|
if (!nativeOnly && inputData != null && (dataValue = inputData[propName])) {
|
|
@@ -12567,10 +12641,11 @@ function elementPropertyInternal(tView, tNode, lView, propName, value, renderer,
|
|
|
12567
12641
|
if (isComponentHost(tNode))
|
|
12568
12642
|
markDirtyIfOnPush(lView, tNode.index);
|
|
12569
12643
|
if (ngDevMode) {
|
|
12570
|
-
setNgReflectProperties(lView,
|
|
12644
|
+
setNgReflectProperties(lView, tView, tNode, dataValue, value);
|
|
12571
12645
|
}
|
|
12572
12646
|
}
|
|
12573
12647
|
else if (tNode.type & 3 /* TNodeType.AnyRNode */) {
|
|
12648
|
+
const element = getNativeByTNode(tNode, lView);
|
|
12574
12649
|
propName = mapPropName(propName);
|
|
12575
12650
|
if (ngDevMode) {
|
|
12576
12651
|
validateAgainstEventProperties(propName);
|
|
@@ -12600,11 +12675,12 @@ function markDirtyIfOnPush(lView, viewIndex) {
|
|
|
12600
12675
|
childComponentLView[FLAGS] |= 64 /* LViewFlags.Dirty */;
|
|
12601
12676
|
}
|
|
12602
12677
|
}
|
|
12603
|
-
function setNgReflectProperty(lView,
|
|
12678
|
+
function setNgReflectProperty(lView, tNode, attrName, value) {
|
|
12679
|
+
const element = getNativeByTNode(tNode, lView);
|
|
12604
12680
|
const renderer = lView[RENDERER];
|
|
12605
12681
|
attrName = normalizeDebugBindingName(attrName);
|
|
12606
12682
|
const debugValue = normalizeDebugBindingValue(value);
|
|
12607
|
-
if (type & 3 /* TNodeType.AnyRNode */) {
|
|
12683
|
+
if (tNode.type & 3 /* TNodeType.AnyRNode */) {
|
|
12608
12684
|
if (value == null) {
|
|
12609
12685
|
renderer.removeAttribute(element, attrName);
|
|
12610
12686
|
}
|
|
@@ -12617,18 +12693,14 @@ function setNgReflectProperty(lView, element, type, attrName, value) {
|
|
|
12617
12693
|
renderer.setValue(element, textContent);
|
|
12618
12694
|
}
|
|
12619
12695
|
}
|
|
12620
|
-
function setNgReflectProperties(lView,
|
|
12621
|
-
if (type & (3 /* TNodeType.AnyRNode */ | 4 /* TNodeType.Container */)) {
|
|
12622
|
-
|
|
12623
|
-
|
|
12624
|
-
|
|
12625
|
-
|
|
12626
|
-
|
|
12627
|
-
|
|
12628
|
-
* we want to set the reflected property with the privateName: dataValue[i+1]
|
|
12629
|
-
*/
|
|
12630
|
-
for (let i = 0; i < dataValue.length; i += 3) {
|
|
12631
|
-
setNgReflectProperty(lView, element, type, dataValue[i + 1], value);
|
|
12696
|
+
function setNgReflectProperties(lView, tView, tNode, inputConfig, value) {
|
|
12697
|
+
if (tNode.type & (3 /* TNodeType.AnyRNode */ | 4 /* TNodeType.Container */)) {
|
|
12698
|
+
// Note: we set the private name of the input as the reflected property, not the public one.
|
|
12699
|
+
for (let i = 0; i < inputConfig.length; i += 2) {
|
|
12700
|
+
const index = inputConfig[i];
|
|
12701
|
+
const lookupName = inputConfig[i + 1];
|
|
12702
|
+
const def = tView.data[index];
|
|
12703
|
+
setNgReflectProperty(lView, tNode, def.inputs[lookupName][0], value);
|
|
12632
12704
|
}
|
|
12633
12705
|
}
|
|
12634
12706
|
}
|
|
@@ -12725,31 +12797,6 @@ function findDirectiveDefMatches(tView, tNode) {
|
|
|
12725
12797
|
}
|
|
12726
12798
|
return matches;
|
|
12727
12799
|
}
|
|
12728
|
-
/**
|
|
12729
|
-
* Gets the initial set of LView flags based on the component definition that the LView represents.
|
|
12730
|
-
* @param def Component definition from which to determine the flags.
|
|
12731
|
-
*/
|
|
12732
|
-
function getInitialLViewFlagsFromDef(def) {
|
|
12733
|
-
let flags = 16 /* LViewFlags.CheckAlways */;
|
|
12734
|
-
if (def.signals) {
|
|
12735
|
-
flags = 4096 /* LViewFlags.SignalView */;
|
|
12736
|
-
}
|
|
12737
|
-
else if (def.onPush) {
|
|
12738
|
-
flags = 64 /* LViewFlags.Dirty */;
|
|
12739
|
-
}
|
|
12740
|
-
return flags;
|
|
12741
|
-
}
|
|
12742
|
-
function createComponentLView(lView, hostTNode, def) {
|
|
12743
|
-
const native = getNativeByTNode(hostTNode, lView);
|
|
12744
|
-
const tView = getOrCreateComponentTView(def);
|
|
12745
|
-
// Only component views should be added to the view tree directly. Embedded views are
|
|
12746
|
-
// accessed through their containers because they may be removed / re-added later.
|
|
12747
|
-
const rendererFactory = lView[ENVIRONMENT].rendererFactory;
|
|
12748
|
-
const componentView = addToEndOfViewTree(lView, createLView(lView, tView, null, getInitialLViewFlagsFromDef(def), native, hostTNode, null, rendererFactory.createRenderer(native, def), null, null, null));
|
|
12749
|
-
// Component view will always be created before any injected LContainers,
|
|
12750
|
-
// so this is a regular element, wrap it with the component view
|
|
12751
|
-
return (lView[hostTNode.index] = componentView);
|
|
12752
|
-
}
|
|
12753
12800
|
function elementAttributeInternal(tNode, lView, name, value, sanitizer, namespace) {
|
|
12754
12801
|
if (ngDevMode) {
|
|
12755
12802
|
assertNotSame(value, NO_CHANGE, 'Incoming value should never be NO_CHANGE.');
|
|
@@ -12783,75 +12830,16 @@ function setElementAttribute(renderer, element, namespace, tagName, name, value,
|
|
|
12783
12830
|
function setInputsFromAttrs(lView, directiveIndex, instance, def, tNode, initialInputData) {
|
|
12784
12831
|
const initialInputs = initialInputData[directiveIndex];
|
|
12785
12832
|
if (initialInputs !== null) {
|
|
12786
|
-
for (let i = 0; i < initialInputs.length;) {
|
|
12787
|
-
const
|
|
12788
|
-
const
|
|
12789
|
-
|
|
12790
|
-
const value = initialInputs[i++];
|
|
12791
|
-
writeToDirectiveInput(def, instance, publicName, privateName, flags, value);
|
|
12833
|
+
for (let i = 0; i < initialInputs.length; i += 2) {
|
|
12834
|
+
const lookupName = initialInputs[i];
|
|
12835
|
+
const value = initialInputs[i + 1];
|
|
12836
|
+
writeToDirectiveInput(def, instance, lookupName, value);
|
|
12792
12837
|
if (ngDevMode) {
|
|
12793
|
-
|
|
12794
|
-
setNgReflectProperty(lView, nativeElement, tNode.type, privateName, value);
|
|
12838
|
+
setNgReflectProperty(lView, tNode, def.inputs[lookupName][0], value);
|
|
12795
12839
|
}
|
|
12796
12840
|
}
|
|
12797
12841
|
}
|
|
12798
12842
|
}
|
|
12799
|
-
//////////////////////////
|
|
12800
|
-
//// ViewContainer & View
|
|
12801
|
-
//////////////////////////
|
|
12802
|
-
/**
|
|
12803
|
-
* Creates a LContainer, either from a container instruction, or for a ViewContainerRef.
|
|
12804
|
-
*
|
|
12805
|
-
* @param hostNative The host element for the LContainer
|
|
12806
|
-
* @param hostTNode The host TNode for the LContainer
|
|
12807
|
-
* @param currentView The parent view of the LContainer
|
|
12808
|
-
* @param native The native comment element
|
|
12809
|
-
* @param isForViewContainerRef Optional a flag indicating the ViewContainerRef case
|
|
12810
|
-
* @returns LContainer
|
|
12811
|
-
*/
|
|
12812
|
-
function createLContainer(hostNative, currentView, native, tNode) {
|
|
12813
|
-
ngDevMode && assertLView(currentView);
|
|
12814
|
-
const lContainer = [
|
|
12815
|
-
hostNative, // host native
|
|
12816
|
-
true, // Boolean `true` in this position signifies that this is an `LContainer`
|
|
12817
|
-
0, // flags
|
|
12818
|
-
currentView, // parent
|
|
12819
|
-
null, // next
|
|
12820
|
-
tNode, // t_host
|
|
12821
|
-
null, // dehydrated views
|
|
12822
|
-
native, // native,
|
|
12823
|
-
null, // view refs
|
|
12824
|
-
null, // moved views
|
|
12825
|
-
];
|
|
12826
|
-
ngDevMode &&
|
|
12827
|
-
assertEqual(lContainer.length, CONTAINER_HEADER_OFFSET, 'Should allocate correct number of slots for LContainer header.');
|
|
12828
|
-
return lContainer;
|
|
12829
|
-
}
|
|
12830
|
-
/**
|
|
12831
|
-
* Adds LView or LContainer to the end of the current view tree.
|
|
12832
|
-
*
|
|
12833
|
-
* This structure will be used to traverse through nested views to remove listeners
|
|
12834
|
-
* and call onDestroy callbacks.
|
|
12835
|
-
*
|
|
12836
|
-
* @param lView The view where LView or LContainer should be added
|
|
12837
|
-
* @param adjustedHostIndex Index of the view's host node in LView[], adjusted for header
|
|
12838
|
-
* @param lViewOrLContainer The LView or LContainer to add to the view tree
|
|
12839
|
-
* @returns The state passed in
|
|
12840
|
-
*/
|
|
12841
|
-
function addToEndOfViewTree(lView, lViewOrLContainer) {
|
|
12842
|
-
// TODO(benlesh/misko): This implementation is incorrect, because it always adds the LContainer
|
|
12843
|
-
// to the end of the queue, which means if the developer retrieves the LContainers from RNodes out
|
|
12844
|
-
// of order, the change detection will run out of order, as the act of retrieving the the
|
|
12845
|
-
// LContainer from the RNode is what adds it to the queue.
|
|
12846
|
-
if (lView[CHILD_HEAD]) {
|
|
12847
|
-
lView[CHILD_TAIL][NEXT] = lViewOrLContainer;
|
|
12848
|
-
}
|
|
12849
|
-
else {
|
|
12850
|
-
lView[CHILD_HEAD] = lViewOrLContainer;
|
|
12851
|
-
}
|
|
12852
|
-
lView[CHILD_TAIL] = lViewOrLContainer;
|
|
12853
|
-
return lViewOrLContainer;
|
|
12854
|
-
}
|
|
12855
12843
|
///////////////////////////////
|
|
12856
12844
|
//// Bindings & interpolations
|
|
12857
12845
|
///////////////////////////////
|
|
@@ -12925,14 +12913,13 @@ function handleError(lView, error) {
|
|
|
12925
12913
|
* @param value Value to set.
|
|
12926
12914
|
*/
|
|
12927
12915
|
function setInputsForProperty(tView, lView, inputs, publicName, value) {
|
|
12928
|
-
for (let i = 0; i < inputs.length;) {
|
|
12929
|
-
const index = inputs[i
|
|
12930
|
-
const privateName = inputs[i++];
|
|
12931
|
-
const flags = inputs[i++];
|
|
12932
|
-
const instance = lView[index];
|
|
12916
|
+
for (let i = 0; i < inputs.length; i += 2) {
|
|
12917
|
+
const index = inputs[i];
|
|
12933
12918
|
ngDevMode && assertIndexInRange(lView, index);
|
|
12919
|
+
const privateName = inputs[i + 1];
|
|
12920
|
+
const instance = lView[index];
|
|
12934
12921
|
const def = tView.data[index];
|
|
12935
|
-
writeToDirectiveInput(def, instance,
|
|
12922
|
+
writeToDirectiveInput(def, instance, privateName, value);
|
|
12936
12923
|
}
|
|
12937
12924
|
}
|
|
12938
12925
|
|
|
@@ -13052,24 +13039,41 @@ function renderChildComponents(hostLView, components) {
|
|
|
13052
13039
|
}
|
|
13053
13040
|
}
|
|
13054
13041
|
|
|
13042
|
+
function createAndRenderEmbeddedLView(declarationLView, templateTNode, context, options) {
|
|
13043
|
+
const prevConsumer = setActiveConsumer$1(null);
|
|
13044
|
+
try {
|
|
13045
|
+
const embeddedTView = templateTNode.tView;
|
|
13046
|
+
ngDevMode && assertDefined(embeddedTView, 'TView must be defined for a template node.');
|
|
13047
|
+
ngDevMode && assertTNodeForLView(templateTNode, declarationLView);
|
|
13048
|
+
// Embedded views follow the change detection strategy of the view they're declared in.
|
|
13049
|
+
const isSignalView = declarationLView[FLAGS] & 4096 /* LViewFlags.SignalView */;
|
|
13050
|
+
const viewFlags = isSignalView ? 4096 /* LViewFlags.SignalView */ : 16 /* LViewFlags.CheckAlways */;
|
|
13051
|
+
const embeddedLView = createLView(declarationLView, embeddedTView, context, viewFlags, null, templateTNode, null, null, options?.injector ?? null, options?.embeddedViewInjector ?? null, options?.dehydratedView ?? null);
|
|
13052
|
+
const declarationLContainer = declarationLView[templateTNode.index];
|
|
13053
|
+
ngDevMode && assertLContainer(declarationLContainer);
|
|
13054
|
+
embeddedLView[DECLARATION_LCONTAINER] = declarationLContainer;
|
|
13055
|
+
const declarationViewLQueries = declarationLView[QUERIES];
|
|
13056
|
+
if (declarationViewLQueries !== null) {
|
|
13057
|
+
embeddedLView[QUERIES] = declarationViewLQueries.createEmbeddedView(embeddedTView);
|
|
13058
|
+
}
|
|
13059
|
+
// execute creation mode of a view
|
|
13060
|
+
renderView(embeddedTView, embeddedLView, context);
|
|
13061
|
+
return embeddedLView;
|
|
13062
|
+
}
|
|
13063
|
+
finally {
|
|
13064
|
+
setActiveConsumer$1(prevConsumer);
|
|
13065
|
+
}
|
|
13066
|
+
}
|
|
13055
13067
|
/**
|
|
13056
|
-
*
|
|
13057
|
-
*
|
|
13068
|
+
* Returns whether an elements that belong to a view should be
|
|
13069
|
+
* inserted into the DOM. For client-only cases, DOM elements are
|
|
13070
|
+
* always inserted. For hydration cases, we check whether serialized
|
|
13071
|
+
* info is available for a view and the view is not in a "skip hydration"
|
|
13072
|
+
* block (in which case view contents was re-created, thus needing insertion).
|
|
13058
13073
|
*/
|
|
13059
|
-
|
|
13060
|
-
(
|
|
13061
|
-
|
|
13062
|
-
// `node_manipulation.ts` Currently doing the import cause resolution order to change and fails
|
|
13063
|
-
// the tests. The work around is to have hard coded value in `node_manipulation.ts` for now.
|
|
13064
|
-
/**
|
|
13065
|
-
* Marks a style as important.
|
|
13066
|
-
*/
|
|
13067
|
-
RendererStyleFlags2[RendererStyleFlags2["Important"] = 1] = "Important";
|
|
13068
|
-
/**
|
|
13069
|
-
* Marks a style as using dash case naming (this-is-dash-case).
|
|
13070
|
-
*/
|
|
13071
|
-
RendererStyleFlags2[RendererStyleFlags2["DashCase"] = 2] = "DashCase";
|
|
13072
|
-
})(RendererStyleFlags2 || (RendererStyleFlags2 = {}));
|
|
13074
|
+
function shouldAddViewToDom(tNode, dehydratedView) {
|
|
13075
|
+
return (!dehydratedView || dehydratedView.firstChild === null || hasInSkipHydrationBlockFlag(tNode));
|
|
13076
|
+
}
|
|
13073
13077
|
|
|
13074
13078
|
let _icuContainerIterate;
|
|
13075
13079
|
/**
|
|
@@ -13092,6 +13096,25 @@ function ensureIcuContainerVisitorLoaded(loader) {
|
|
|
13092
13096
|
}
|
|
13093
13097
|
}
|
|
13094
13098
|
|
|
13099
|
+
/**
|
|
13100
|
+
* Flags for renderer-specific style modifiers.
|
|
13101
|
+
* @publicApi
|
|
13102
|
+
*/
|
|
13103
|
+
var RendererStyleFlags2;
|
|
13104
|
+
(function (RendererStyleFlags2) {
|
|
13105
|
+
// TODO(misko): This needs to be refactored into a separate file so that it can be imported from
|
|
13106
|
+
// `node_manipulation.ts` Currently doing the import cause resolution order to change and fails
|
|
13107
|
+
// the tests. The work around is to have hard coded value in `node_manipulation.ts` for now.
|
|
13108
|
+
/**
|
|
13109
|
+
* Marks a style as important.
|
|
13110
|
+
*/
|
|
13111
|
+
RendererStyleFlags2[RendererStyleFlags2["Important"] = 1] = "Important";
|
|
13112
|
+
/**
|
|
13113
|
+
* Marks a style as using dash case naming (this-is-dash-case).
|
|
13114
|
+
*/
|
|
13115
|
+
RendererStyleFlags2[RendererStyleFlags2["DashCase"] = 2] = "DashCase";
|
|
13116
|
+
})(RendererStyleFlags2 || (RendererStyleFlags2 = {}));
|
|
13117
|
+
|
|
13095
13118
|
/**
|
|
13096
13119
|
* Checks whether a TNode is considered detached, i.e. not present in the
|
|
13097
13120
|
* translated i18n template. We should not attempt hydration for such nodes
|
|
@@ -13246,83 +13269,6 @@ function destroyViewTree(rootView) {
|
|
|
13246
13269
|
lViewOrLContainer = next;
|
|
13247
13270
|
}
|
|
13248
13271
|
}
|
|
13249
|
-
/**
|
|
13250
|
-
* Inserts a view into a container.
|
|
13251
|
-
*
|
|
13252
|
-
* This adds the view to the container's array of active views in the correct
|
|
13253
|
-
* position. It also adds the view's elements to the DOM if the container isn't a
|
|
13254
|
-
* root node of another view (in that case, the view's elements will be added when
|
|
13255
|
-
* the container's parent view is added later).
|
|
13256
|
-
*
|
|
13257
|
-
* @param tView The `TView' of the `LView` to insert
|
|
13258
|
-
* @param lView The view to insert
|
|
13259
|
-
* @param lContainer The container into which the view should be inserted
|
|
13260
|
-
* @param index Which index in the container to insert the child view into
|
|
13261
|
-
*/
|
|
13262
|
-
function insertView(tView, lView, lContainer, index) {
|
|
13263
|
-
ngDevMode && assertLView(lView);
|
|
13264
|
-
ngDevMode && assertLContainer(lContainer);
|
|
13265
|
-
const indexInContainer = CONTAINER_HEADER_OFFSET + index;
|
|
13266
|
-
const containerLength = lContainer.length;
|
|
13267
|
-
if (index > 0) {
|
|
13268
|
-
// This is a new view, we need to add it to the children.
|
|
13269
|
-
lContainer[indexInContainer - 1][NEXT] = lView;
|
|
13270
|
-
}
|
|
13271
|
-
if (index < containerLength - CONTAINER_HEADER_OFFSET) {
|
|
13272
|
-
lView[NEXT] = lContainer[indexInContainer];
|
|
13273
|
-
addToArray(lContainer, CONTAINER_HEADER_OFFSET + index, lView);
|
|
13274
|
-
}
|
|
13275
|
-
else {
|
|
13276
|
-
lContainer.push(lView);
|
|
13277
|
-
lView[NEXT] = null;
|
|
13278
|
-
}
|
|
13279
|
-
lView[PARENT] = lContainer;
|
|
13280
|
-
// track views where declaration and insertion points are different
|
|
13281
|
-
const declarationLContainer = lView[DECLARATION_LCONTAINER];
|
|
13282
|
-
if (declarationLContainer !== null && lContainer !== declarationLContainer) {
|
|
13283
|
-
trackMovedView(declarationLContainer, lView);
|
|
13284
|
-
}
|
|
13285
|
-
// notify query that a new view has been added
|
|
13286
|
-
const lQueries = lView[QUERIES];
|
|
13287
|
-
if (lQueries !== null) {
|
|
13288
|
-
lQueries.insertView(tView);
|
|
13289
|
-
}
|
|
13290
|
-
updateAncestorTraversalFlagsOnAttach(lView);
|
|
13291
|
-
// Sets the attached flag
|
|
13292
|
-
lView[FLAGS] |= 128 /* LViewFlags.Attached */;
|
|
13293
|
-
}
|
|
13294
|
-
/**
|
|
13295
|
-
* Track views created from the declaration container (TemplateRef) and inserted into a
|
|
13296
|
-
* different LContainer or attached directly to ApplicationRef.
|
|
13297
|
-
*/
|
|
13298
|
-
function trackMovedView(declarationContainer, lView) {
|
|
13299
|
-
ngDevMode && assertDefined(lView, 'LView required');
|
|
13300
|
-
ngDevMode && assertLContainer(declarationContainer);
|
|
13301
|
-
const movedViews = declarationContainer[MOVED_VIEWS];
|
|
13302
|
-
const parent = lView[PARENT];
|
|
13303
|
-
ngDevMode && assertDefined(parent, 'missing parent');
|
|
13304
|
-
if (isLView(parent)) {
|
|
13305
|
-
declarationContainer[FLAGS] |= 2 /* LContainerFlags.HasTransplantedViews */;
|
|
13306
|
-
}
|
|
13307
|
-
else {
|
|
13308
|
-
const insertedComponentLView = parent[PARENT][DECLARATION_COMPONENT_VIEW];
|
|
13309
|
-
ngDevMode && assertDefined(insertedComponentLView, 'Missing insertedComponentLView');
|
|
13310
|
-
const declaredComponentLView = lView[DECLARATION_COMPONENT_VIEW];
|
|
13311
|
-
ngDevMode && assertDefined(declaredComponentLView, 'Missing declaredComponentLView');
|
|
13312
|
-
if (declaredComponentLView !== insertedComponentLView) {
|
|
13313
|
-
// At this point the declaration-component is not same as insertion-component; this means that
|
|
13314
|
-
// this is a transplanted view. Mark the declared lView as having transplanted views so that
|
|
13315
|
-
// those views can participate in CD.
|
|
13316
|
-
declarationContainer[FLAGS] |= 2 /* LContainerFlags.HasTransplantedViews */;
|
|
13317
|
-
}
|
|
13318
|
-
}
|
|
13319
|
-
if (movedViews === null) {
|
|
13320
|
-
declarationContainer[MOVED_VIEWS] = [lView];
|
|
13321
|
-
}
|
|
13322
|
-
else {
|
|
13323
|
-
movedViews.push(lView);
|
|
13324
|
-
}
|
|
13325
|
-
}
|
|
13326
13272
|
function detachMovedView(declarationContainer, lView) {
|
|
13327
13273
|
ngDevMode && assertLContainer(declarationContainer);
|
|
13328
13274
|
ngDevMode &&
|
|
@@ -13331,43 +13277,6 @@ function detachMovedView(declarationContainer, lView) {
|
|
|
13331
13277
|
const declarationViewIndex = movedViews.indexOf(lView);
|
|
13332
13278
|
movedViews.splice(declarationViewIndex, 1);
|
|
13333
13279
|
}
|
|
13334
|
-
/**
|
|
13335
|
-
* Detaches a view from a container.
|
|
13336
|
-
*
|
|
13337
|
-
* This method removes the view from the container's array of active views. It also
|
|
13338
|
-
* removes the view's elements from the DOM.
|
|
13339
|
-
*
|
|
13340
|
-
* @param lContainer The container from which to detach a view
|
|
13341
|
-
* @param removeIndex The index of the view to detach
|
|
13342
|
-
* @returns Detached LView instance.
|
|
13343
|
-
*/
|
|
13344
|
-
function detachView(lContainer, removeIndex) {
|
|
13345
|
-
if (lContainer.length <= CONTAINER_HEADER_OFFSET)
|
|
13346
|
-
return;
|
|
13347
|
-
const indexInContainer = CONTAINER_HEADER_OFFSET + removeIndex;
|
|
13348
|
-
const viewToDetach = lContainer[indexInContainer];
|
|
13349
|
-
if (viewToDetach) {
|
|
13350
|
-
const declarationLContainer = viewToDetach[DECLARATION_LCONTAINER];
|
|
13351
|
-
if (declarationLContainer !== null && declarationLContainer !== lContainer) {
|
|
13352
|
-
detachMovedView(declarationLContainer, viewToDetach);
|
|
13353
|
-
}
|
|
13354
|
-
if (removeIndex > 0) {
|
|
13355
|
-
lContainer[indexInContainer - 1][NEXT] = viewToDetach[NEXT];
|
|
13356
|
-
}
|
|
13357
|
-
const removedLView = removeFromArray(lContainer, CONTAINER_HEADER_OFFSET + removeIndex);
|
|
13358
|
-
removeViewFromDOM(viewToDetach[TVIEW], viewToDetach);
|
|
13359
|
-
// notify query that a view has been removed
|
|
13360
|
-
const lQueries = removedLView[QUERIES];
|
|
13361
|
-
if (lQueries !== null) {
|
|
13362
|
-
lQueries.detachView(removedLView[TVIEW]);
|
|
13363
|
-
}
|
|
13364
|
-
viewToDetach[PARENT] = null;
|
|
13365
|
-
viewToDetach[NEXT] = null;
|
|
13366
|
-
// Unsets the attached flag
|
|
13367
|
-
viewToDetach[FLAGS] &= ~128 /* LViewFlags.Attached */;
|
|
13368
|
-
}
|
|
13369
|
-
return viewToDetach;
|
|
13370
|
-
}
|
|
13371
13280
|
/**
|
|
13372
13281
|
* A standalone function which destroys an LView,
|
|
13373
13282
|
* conducting clean up (e.g. removing listeners, calling onDestroys).
|
|
@@ -13934,80 +13843,6 @@ function applyStyling(renderer, isClassBased, rNode, prop, value) {
|
|
|
13934
13843
|
}
|
|
13935
13844
|
}
|
|
13936
13845
|
|
|
13937
|
-
function createAndRenderEmbeddedLView(declarationLView, templateTNode, context, options) {
|
|
13938
|
-
const prevConsumer = setActiveConsumer$1(null);
|
|
13939
|
-
try {
|
|
13940
|
-
const embeddedTView = templateTNode.tView;
|
|
13941
|
-
ngDevMode && assertDefined(embeddedTView, 'TView must be defined for a template node.');
|
|
13942
|
-
ngDevMode && assertTNodeForLView(templateTNode, declarationLView);
|
|
13943
|
-
// Embedded views follow the change detection strategy of the view they're declared in.
|
|
13944
|
-
const isSignalView = declarationLView[FLAGS] & 4096 /* LViewFlags.SignalView */;
|
|
13945
|
-
const viewFlags = isSignalView ? 4096 /* LViewFlags.SignalView */ : 16 /* LViewFlags.CheckAlways */;
|
|
13946
|
-
const embeddedLView = createLView(declarationLView, embeddedTView, context, viewFlags, null, templateTNode, null, null, options?.injector ?? null, options?.embeddedViewInjector ?? null, options?.dehydratedView ?? null);
|
|
13947
|
-
const declarationLContainer = declarationLView[templateTNode.index];
|
|
13948
|
-
ngDevMode && assertLContainer(declarationLContainer);
|
|
13949
|
-
embeddedLView[DECLARATION_LCONTAINER] = declarationLContainer;
|
|
13950
|
-
const declarationViewLQueries = declarationLView[QUERIES];
|
|
13951
|
-
if (declarationViewLQueries !== null) {
|
|
13952
|
-
embeddedLView[QUERIES] = declarationViewLQueries.createEmbeddedView(embeddedTView);
|
|
13953
|
-
}
|
|
13954
|
-
// execute creation mode of a view
|
|
13955
|
-
renderView(embeddedTView, embeddedLView, context);
|
|
13956
|
-
return embeddedLView;
|
|
13957
|
-
}
|
|
13958
|
-
finally {
|
|
13959
|
-
setActiveConsumer$1(prevConsumer);
|
|
13960
|
-
}
|
|
13961
|
-
}
|
|
13962
|
-
function getLViewFromLContainer(lContainer, index) {
|
|
13963
|
-
const adjustedIndex = CONTAINER_HEADER_OFFSET + index;
|
|
13964
|
-
// avoid reading past the array boundaries
|
|
13965
|
-
if (adjustedIndex < lContainer.length) {
|
|
13966
|
-
const lView = lContainer[adjustedIndex];
|
|
13967
|
-
ngDevMode && assertLView(lView);
|
|
13968
|
-
return lView;
|
|
13969
|
-
}
|
|
13970
|
-
return undefined;
|
|
13971
|
-
}
|
|
13972
|
-
/**
|
|
13973
|
-
* Returns whether an elements that belong to a view should be
|
|
13974
|
-
* inserted into the DOM. For client-only cases, DOM elements are
|
|
13975
|
-
* always inserted. For hydration cases, we check whether serialized
|
|
13976
|
-
* info is available for a view and the view is not in a "skip hydration"
|
|
13977
|
-
* block (in which case view contents was re-created, thus needing insertion).
|
|
13978
|
-
*/
|
|
13979
|
-
function shouldAddViewToDom(tNode, dehydratedView) {
|
|
13980
|
-
return (!dehydratedView || dehydratedView.firstChild === null || hasInSkipHydrationBlockFlag(tNode));
|
|
13981
|
-
}
|
|
13982
|
-
function addLViewToLContainer(lContainer, lView, index, addToDOM = true) {
|
|
13983
|
-
const tView = lView[TVIEW];
|
|
13984
|
-
// Insert into the view tree so the new view can be change-detected
|
|
13985
|
-
insertView(tView, lView, lContainer, index);
|
|
13986
|
-
// Insert elements that belong to this view into the DOM tree
|
|
13987
|
-
if (addToDOM) {
|
|
13988
|
-
const beforeNode = getBeforeNodeForView(index, lContainer);
|
|
13989
|
-
const renderer = lView[RENDERER];
|
|
13990
|
-
const parentRNode = renderer.parentNode(lContainer[NATIVE]);
|
|
13991
|
-
if (parentRNode !== null) {
|
|
13992
|
-
addViewToDOM(tView, lContainer[T_HOST], renderer, lView, parentRNode, beforeNode);
|
|
13993
|
-
}
|
|
13994
|
-
}
|
|
13995
|
-
// When in hydration mode, reset the pointer to the first child in
|
|
13996
|
-
// the dehydrated view. This indicates that the view was hydrated and
|
|
13997
|
-
// further attaching/detaching should work with this view as normal.
|
|
13998
|
-
const hydrationInfo = lView[HYDRATION];
|
|
13999
|
-
if (hydrationInfo !== null && hydrationInfo.firstChild !== null) {
|
|
14000
|
-
hydrationInfo.firstChild = null;
|
|
14001
|
-
}
|
|
14002
|
-
}
|
|
14003
|
-
function removeLViewFromLContainer(lContainer, index) {
|
|
14004
|
-
const lView = detachView(lContainer, index);
|
|
14005
|
-
if (lView !== undefined) {
|
|
14006
|
-
destroyLView(lView[TVIEW], lView);
|
|
14007
|
-
}
|
|
14008
|
-
return lView;
|
|
14009
|
-
}
|
|
14010
|
-
|
|
14011
13846
|
function collectNativeNodes(tView, lView, tNode, result, isProjection = false) {
|
|
14012
13847
|
while (tNode !== null) {
|
|
14013
13848
|
// Let declarations don't have corresponding DOM nodes so we skip over them.
|
|
@@ -14629,6 +14464,187 @@ function markViewDirty(lView, source) {
|
|
|
14629
14464
|
return null;
|
|
14630
14465
|
}
|
|
14631
14466
|
|
|
14467
|
+
/**
|
|
14468
|
+
* Creates a LContainer, either from a container instruction, or for a ViewContainerRef.
|
|
14469
|
+
*
|
|
14470
|
+
* @param hostNative The host element for the LContainer
|
|
14471
|
+
* @param hostTNode The host TNode for the LContainer
|
|
14472
|
+
* @param currentView The parent view of the LContainer
|
|
14473
|
+
* @param native The native comment element
|
|
14474
|
+
* @param isForViewContainerRef Optional a flag indicating the ViewContainerRef case
|
|
14475
|
+
* @returns LContainer
|
|
14476
|
+
*/
|
|
14477
|
+
function createLContainer(hostNative, currentView, native, tNode) {
|
|
14478
|
+
ngDevMode && assertLView(currentView);
|
|
14479
|
+
const lContainer = [
|
|
14480
|
+
hostNative, // host native
|
|
14481
|
+
true, // Boolean `true` in this position signifies that this is an `LContainer`
|
|
14482
|
+
0, // flags
|
|
14483
|
+
currentView, // parent
|
|
14484
|
+
null, // next
|
|
14485
|
+
tNode, // t_host
|
|
14486
|
+
null, // dehydrated views
|
|
14487
|
+
native, // native,
|
|
14488
|
+
null, // view refs
|
|
14489
|
+
null, // moved views
|
|
14490
|
+
];
|
|
14491
|
+
ngDevMode &&
|
|
14492
|
+
assertEqual(lContainer.length, CONTAINER_HEADER_OFFSET, 'Should allocate correct number of slots for LContainer header.');
|
|
14493
|
+
return lContainer;
|
|
14494
|
+
}
|
|
14495
|
+
function getLViewFromLContainer(lContainer, index) {
|
|
14496
|
+
const adjustedIndex = CONTAINER_HEADER_OFFSET + index;
|
|
14497
|
+
// avoid reading past the array boundaries
|
|
14498
|
+
if (adjustedIndex < lContainer.length) {
|
|
14499
|
+
const lView = lContainer[adjustedIndex];
|
|
14500
|
+
ngDevMode && assertLView(lView);
|
|
14501
|
+
return lView;
|
|
14502
|
+
}
|
|
14503
|
+
return undefined;
|
|
14504
|
+
}
|
|
14505
|
+
function addLViewToLContainer(lContainer, lView, index, addToDOM = true) {
|
|
14506
|
+
const tView = lView[TVIEW];
|
|
14507
|
+
// Insert into the view tree so the new view can be change-detected
|
|
14508
|
+
insertView(tView, lView, lContainer, index);
|
|
14509
|
+
// Insert elements that belong to this view into the DOM tree
|
|
14510
|
+
if (addToDOM) {
|
|
14511
|
+
const beforeNode = getBeforeNodeForView(index, lContainer);
|
|
14512
|
+
const renderer = lView[RENDERER];
|
|
14513
|
+
const parentRNode = renderer.parentNode(lContainer[NATIVE]);
|
|
14514
|
+
if (parentRNode !== null) {
|
|
14515
|
+
addViewToDOM(tView, lContainer[T_HOST], renderer, lView, parentRNode, beforeNode);
|
|
14516
|
+
}
|
|
14517
|
+
}
|
|
14518
|
+
// When in hydration mode, reset the pointer to the first child in
|
|
14519
|
+
// the dehydrated view. This indicates that the view was hydrated and
|
|
14520
|
+
// further attaching/detaching should work with this view as normal.
|
|
14521
|
+
const hydrationInfo = lView[HYDRATION];
|
|
14522
|
+
if (hydrationInfo !== null && hydrationInfo.firstChild !== null) {
|
|
14523
|
+
hydrationInfo.firstChild = null;
|
|
14524
|
+
}
|
|
14525
|
+
}
|
|
14526
|
+
function removeLViewFromLContainer(lContainer, index) {
|
|
14527
|
+
const lView = detachView(lContainer, index);
|
|
14528
|
+
if (lView !== undefined) {
|
|
14529
|
+
destroyLView(lView[TVIEW], lView);
|
|
14530
|
+
}
|
|
14531
|
+
return lView;
|
|
14532
|
+
}
|
|
14533
|
+
/**
|
|
14534
|
+
* Detaches a view from a container.
|
|
14535
|
+
*
|
|
14536
|
+
* This method removes the view from the container's array of active views. It also
|
|
14537
|
+
* removes the view's elements from the DOM.
|
|
14538
|
+
*
|
|
14539
|
+
* @param lContainer The container from which to detach a view
|
|
14540
|
+
* @param removeIndex The index of the view to detach
|
|
14541
|
+
* @returns Detached LView instance.
|
|
14542
|
+
*/
|
|
14543
|
+
function detachView(lContainer, removeIndex) {
|
|
14544
|
+
if (lContainer.length <= CONTAINER_HEADER_OFFSET)
|
|
14545
|
+
return;
|
|
14546
|
+
const indexInContainer = CONTAINER_HEADER_OFFSET + removeIndex;
|
|
14547
|
+
const viewToDetach = lContainer[indexInContainer];
|
|
14548
|
+
if (viewToDetach) {
|
|
14549
|
+
const declarationLContainer = viewToDetach[DECLARATION_LCONTAINER];
|
|
14550
|
+
if (declarationLContainer !== null && declarationLContainer !== lContainer) {
|
|
14551
|
+
detachMovedView(declarationLContainer, viewToDetach);
|
|
14552
|
+
}
|
|
14553
|
+
if (removeIndex > 0) {
|
|
14554
|
+
lContainer[indexInContainer - 1][NEXT] = viewToDetach[NEXT];
|
|
14555
|
+
}
|
|
14556
|
+
const removedLView = removeFromArray(lContainer, CONTAINER_HEADER_OFFSET + removeIndex);
|
|
14557
|
+
removeViewFromDOM(viewToDetach[TVIEW], viewToDetach);
|
|
14558
|
+
// notify query that a view has been removed
|
|
14559
|
+
const lQueries = removedLView[QUERIES];
|
|
14560
|
+
if (lQueries !== null) {
|
|
14561
|
+
lQueries.detachView(removedLView[TVIEW]);
|
|
14562
|
+
}
|
|
14563
|
+
viewToDetach[PARENT] = null;
|
|
14564
|
+
viewToDetach[NEXT] = null;
|
|
14565
|
+
// Unsets the attached flag
|
|
14566
|
+
viewToDetach[FLAGS] &= ~128 /* LViewFlags.Attached */;
|
|
14567
|
+
}
|
|
14568
|
+
return viewToDetach;
|
|
14569
|
+
}
|
|
14570
|
+
/**
|
|
14571
|
+
* Inserts a view into a container.
|
|
14572
|
+
*
|
|
14573
|
+
* This adds the view to the container's array of active views in the correct
|
|
14574
|
+
* position. It also adds the view's elements to the DOM if the container isn't a
|
|
14575
|
+
* root node of another view (in that case, the view's elements will be added when
|
|
14576
|
+
* the container's parent view is added later).
|
|
14577
|
+
*
|
|
14578
|
+
* @param tView The `TView' of the `LView` to insert
|
|
14579
|
+
* @param lView The view to insert
|
|
14580
|
+
* @param lContainer The container into which the view should be inserted
|
|
14581
|
+
* @param index Which index in the container to insert the child view into
|
|
14582
|
+
*/
|
|
14583
|
+
function insertView(tView, lView, lContainer, index) {
|
|
14584
|
+
ngDevMode && assertLView(lView);
|
|
14585
|
+
ngDevMode && assertLContainer(lContainer);
|
|
14586
|
+
const indexInContainer = CONTAINER_HEADER_OFFSET + index;
|
|
14587
|
+
const containerLength = lContainer.length;
|
|
14588
|
+
if (index > 0) {
|
|
14589
|
+
// This is a new view, we need to add it to the children.
|
|
14590
|
+
lContainer[indexInContainer - 1][NEXT] = lView;
|
|
14591
|
+
}
|
|
14592
|
+
if (index < containerLength - CONTAINER_HEADER_OFFSET) {
|
|
14593
|
+
lView[NEXT] = lContainer[indexInContainer];
|
|
14594
|
+
addToArray(lContainer, CONTAINER_HEADER_OFFSET + index, lView);
|
|
14595
|
+
}
|
|
14596
|
+
else {
|
|
14597
|
+
lContainer.push(lView);
|
|
14598
|
+
lView[NEXT] = null;
|
|
14599
|
+
}
|
|
14600
|
+
lView[PARENT] = lContainer;
|
|
14601
|
+
// track views where declaration and insertion points are different
|
|
14602
|
+
const declarationLContainer = lView[DECLARATION_LCONTAINER];
|
|
14603
|
+
if (declarationLContainer !== null && lContainer !== declarationLContainer) {
|
|
14604
|
+
trackMovedView(declarationLContainer, lView);
|
|
14605
|
+
}
|
|
14606
|
+
// notify query that a new view has been added
|
|
14607
|
+
const lQueries = lView[QUERIES];
|
|
14608
|
+
if (lQueries !== null) {
|
|
14609
|
+
lQueries.insertView(tView);
|
|
14610
|
+
}
|
|
14611
|
+
updateAncestorTraversalFlagsOnAttach(lView);
|
|
14612
|
+
// Sets the attached flag
|
|
14613
|
+
lView[FLAGS] |= 128 /* LViewFlags.Attached */;
|
|
14614
|
+
}
|
|
14615
|
+
/**
|
|
14616
|
+
* Track views created from the declaration container (TemplateRef) and inserted into a
|
|
14617
|
+
* different LContainer or attached directly to ApplicationRef.
|
|
14618
|
+
*/
|
|
14619
|
+
function trackMovedView(declarationContainer, lView) {
|
|
14620
|
+
ngDevMode && assertDefined(lView, 'LView required');
|
|
14621
|
+
ngDevMode && assertLContainer(declarationContainer);
|
|
14622
|
+
const movedViews = declarationContainer[MOVED_VIEWS];
|
|
14623
|
+
const parent = lView[PARENT];
|
|
14624
|
+
ngDevMode && assertDefined(parent, 'missing parent');
|
|
14625
|
+
if (isLView(parent)) {
|
|
14626
|
+
declarationContainer[FLAGS] |= 2 /* LContainerFlags.HasTransplantedViews */;
|
|
14627
|
+
}
|
|
14628
|
+
else {
|
|
14629
|
+
const insertedComponentLView = parent[PARENT][DECLARATION_COMPONENT_VIEW];
|
|
14630
|
+
ngDevMode && assertDefined(insertedComponentLView, 'Missing insertedComponentLView');
|
|
14631
|
+
const declaredComponentLView = lView[DECLARATION_COMPONENT_VIEW];
|
|
14632
|
+
ngDevMode && assertDefined(declaredComponentLView, 'Missing declaredComponentLView');
|
|
14633
|
+
if (declaredComponentLView !== insertedComponentLView) {
|
|
14634
|
+
// At this point the declaration-component is not same as insertion-component; this means that
|
|
14635
|
+
// this is a transplanted view. Mark the declared lView as having transplanted views so that
|
|
14636
|
+
// those views can participate in CD.
|
|
14637
|
+
declarationContainer[FLAGS] |= 2 /* LContainerFlags.HasTransplantedViews */;
|
|
14638
|
+
}
|
|
14639
|
+
}
|
|
14640
|
+
if (movedViews === null) {
|
|
14641
|
+
declarationContainer[MOVED_VIEWS] = [lView];
|
|
14642
|
+
}
|
|
14643
|
+
else {
|
|
14644
|
+
movedViews.push(lView);
|
|
14645
|
+
}
|
|
14646
|
+
}
|
|
14647
|
+
|
|
14632
14648
|
class ViewRef$1 {
|
|
14633
14649
|
_lView;
|
|
14634
14650
|
_cdRefInjectingView;
|
|
@@ -17363,34 +17379,6 @@ function ɵɵinvalidFactory() {
|
|
|
17363
17379
|
throw new Error(msg);
|
|
17364
17380
|
}
|
|
17365
17381
|
|
|
17366
|
-
/**
|
|
17367
|
-
* When elements are created dynamically after a view blueprint is created (e.g. through
|
|
17368
|
-
* i18nApply()), we need to adjust the blueprint for future template passes.
|
|
17369
|
-
*
|
|
17370
|
-
* @param tView `TView` associated with `LView`
|
|
17371
|
-
* @param lView The `LView` containing the blueprint to adjust
|
|
17372
|
-
* @param numSlotsToAlloc The number of slots to alloc in the LView, should be >0
|
|
17373
|
-
* @param initialValue Initial value to store in blueprint
|
|
17374
|
-
*/
|
|
17375
|
-
function allocExpando(tView, lView, numSlotsToAlloc, initialValue) {
|
|
17376
|
-
if (numSlotsToAlloc === 0)
|
|
17377
|
-
return -1;
|
|
17378
|
-
if (ngDevMode) {
|
|
17379
|
-
assertFirstCreatePass(tView);
|
|
17380
|
-
assertSame(tView, lView[TVIEW], '`LView` must be associated with `TView`!');
|
|
17381
|
-
assertEqual(tView.data.length, lView.length, 'Expecting LView to be same size as TView');
|
|
17382
|
-
assertEqual(tView.data.length, tView.blueprint.length, 'Expecting Blueprint to be same size as TView');
|
|
17383
|
-
assertFirstUpdatePass(tView);
|
|
17384
|
-
}
|
|
17385
|
-
const allocIdx = lView.length;
|
|
17386
|
-
for (let i = 0; i < numSlotsToAlloc; i++) {
|
|
17387
|
-
lView.push(initialValue);
|
|
17388
|
-
tView.blueprint.push(initialValue);
|
|
17389
|
-
tView.data.push(null);
|
|
17390
|
-
}
|
|
17391
|
-
return allocIdx;
|
|
17392
|
-
}
|
|
17393
|
-
|
|
17394
17382
|
/**
|
|
17395
17383
|
* Resolve the matched directives on a node.
|
|
17396
17384
|
*/
|
|
@@ -17573,17 +17561,6 @@ function captureNodeBindings(mode, aliasMap, directiveIndex, bindingsResult, hos
|
|
|
17573
17561
|
continue;
|
|
17574
17562
|
}
|
|
17575
17563
|
bindingsResult ??= {};
|
|
17576
|
-
let internalName;
|
|
17577
|
-
let inputFlags = InputFlags.None;
|
|
17578
|
-
// For inputs, the value might be an array capturing additional
|
|
17579
|
-
// input flags.
|
|
17580
|
-
if (Array.isArray(value)) {
|
|
17581
|
-
internalName = value[0];
|
|
17582
|
-
inputFlags = value[1];
|
|
17583
|
-
}
|
|
17584
|
-
else {
|
|
17585
|
-
internalName = value;
|
|
17586
|
-
}
|
|
17587
17564
|
// If there are no host directive mappings, we want to remap using the alias map from the
|
|
17588
17565
|
// definition itself. If there is an alias map, it has two functions:
|
|
17589
17566
|
// 1. It serves as an allowlist of bindings that are exposed by the host directives. Only the
|
|
@@ -17600,24 +17577,20 @@ function captureNodeBindings(mode, aliasMap, directiveIndex, bindingsResult, hos
|
|
|
17600
17577
|
finalPublicName = hostDirectiveAliasMap[publicName];
|
|
17601
17578
|
}
|
|
17602
17579
|
if (mode === 0 /* CaptureNodeBindingMode.Inputs */) {
|
|
17603
|
-
addPropertyBinding(bindingsResult, directiveIndex, finalPublicName,
|
|
17580
|
+
addPropertyBinding(bindingsResult, directiveIndex, finalPublicName, publicName);
|
|
17604
17581
|
}
|
|
17605
17582
|
else {
|
|
17606
|
-
addPropertyBinding(bindingsResult, directiveIndex, finalPublicName,
|
|
17583
|
+
addPropertyBinding(bindingsResult, directiveIndex, finalPublicName, value);
|
|
17607
17584
|
}
|
|
17608
17585
|
}
|
|
17609
17586
|
return bindingsResult;
|
|
17610
17587
|
}
|
|
17611
|
-
function addPropertyBinding(bindings, directiveIndex, publicName,
|
|
17612
|
-
let values;
|
|
17588
|
+
function addPropertyBinding(bindings, directiveIndex, publicName, lookupName) {
|
|
17613
17589
|
if (bindings.hasOwnProperty(publicName)) {
|
|
17614
|
-
|
|
17590
|
+
bindings[publicName].push(directiveIndex, lookupName);
|
|
17615
17591
|
}
|
|
17616
17592
|
else {
|
|
17617
|
-
|
|
17618
|
-
}
|
|
17619
|
-
if (inputFlags !== undefined) {
|
|
17620
|
-
values.push(inputFlags);
|
|
17593
|
+
bindings[publicName] = [directiveIndex, lookupName];
|
|
17621
17594
|
}
|
|
17622
17595
|
}
|
|
17623
17596
|
/**
|
|
@@ -17654,15 +17627,14 @@ function generateInitialInputs(inputs, directiveIndex, attrs) {
|
|
|
17654
17627
|
if (typeof attrName === 'number')
|
|
17655
17628
|
break;
|
|
17656
17629
|
if (inputs.hasOwnProperty(attrName)) {
|
|
17657
|
-
if (inputsToStore === null)
|
|
17658
|
-
inputsToStore = [];
|
|
17659
17630
|
// Find the input's public name from the input store. Note that we can be found easier
|
|
17660
17631
|
// through the directive def, but we want to do it using the inputs store so that it can
|
|
17661
17632
|
// account for host directive aliases.
|
|
17662
17633
|
const inputConfig = inputs[attrName];
|
|
17663
|
-
for (let j = 0; j < inputConfig.length; j +=
|
|
17634
|
+
for (let j = 0; j < inputConfig.length; j += 2) {
|
|
17664
17635
|
if (inputConfig[j] === directiveIndex) {
|
|
17665
|
-
inputsToStore
|
|
17636
|
+
inputsToStore ??= [];
|
|
17637
|
+
inputsToStore.push(inputConfig[j + 1], attrs[i + 1]);
|
|
17666
17638
|
// A directive can't have multiple inputs with the same name so we can break here.
|
|
17667
17639
|
break;
|
|
17668
17640
|
}
|
|
@@ -17831,34 +17803,22 @@ class ComponentFactoryResolver extends ComponentFactoryResolver$1 {
|
|
|
17831
17803
|
return new ComponentFactory(componentDef, this.ngModule);
|
|
17832
17804
|
}
|
|
17833
17805
|
}
|
|
17834
|
-
function
|
|
17835
|
-
|
|
17836
|
-
|
|
17837
|
-
|
|
17838
|
-
|
|
17839
|
-
|
|
17840
|
-
|
|
17841
|
-
|
|
17842
|
-
|
|
17843
|
-
|
|
17844
|
-
const isArray = Array.isArray(value);
|
|
17845
|
-
const propName = isArray ? value[0] : value;
|
|
17846
|
-
const flags = isArray ? value[1] : InputFlags.None;
|
|
17847
|
-
if (isInputMap) {
|
|
17848
|
-
array.push({
|
|
17849
|
-
propName: propName,
|
|
17850
|
-
templateName: publicName,
|
|
17851
|
-
isSignal: (flags & InputFlags.SignalBased) !== 0,
|
|
17852
|
-
});
|
|
17853
|
-
}
|
|
17854
|
-
else {
|
|
17855
|
-
array.push({
|
|
17856
|
-
propName: propName,
|
|
17857
|
-
templateName: publicName,
|
|
17858
|
-
});
|
|
17806
|
+
function toInputRefArray(map) {
|
|
17807
|
+
return Object.keys(map).map((name) => {
|
|
17808
|
+
const [propName, flags, transform] = map[name];
|
|
17809
|
+
const inputData = {
|
|
17810
|
+
propName: propName,
|
|
17811
|
+
templateName: name,
|
|
17812
|
+
isSignal: (flags & InputFlags.SignalBased) !== 0,
|
|
17813
|
+
};
|
|
17814
|
+
if (transform) {
|
|
17815
|
+
inputData.transform = transform;
|
|
17859
17816
|
}
|
|
17860
|
-
|
|
17861
|
-
|
|
17817
|
+
return inputData;
|
|
17818
|
+
});
|
|
17819
|
+
}
|
|
17820
|
+
function toOutputRefArray(map) {
|
|
17821
|
+
return Object.keys(map).map((name) => ({ propName: map[name], templateName: name }));
|
|
17862
17822
|
}
|
|
17863
17823
|
function verifyNotAnOrphanComponent(componentDef) {
|
|
17864
17824
|
// TODO(pk): create assert that verifies ngDevMode
|
|
@@ -17917,20 +17877,10 @@ class ComponentFactory extends ComponentFactory$1 {
|
|
|
17917
17877
|
ngContentSelectors;
|
|
17918
17878
|
isBoundToModule;
|
|
17919
17879
|
get inputs() {
|
|
17920
|
-
|
|
17921
|
-
const inputTransforms = componentDef.inputTransforms;
|
|
17922
|
-
const refArray = toRefArray(componentDef.inputs, true);
|
|
17923
|
-
if (inputTransforms !== null) {
|
|
17924
|
-
for (const input of refArray) {
|
|
17925
|
-
if (inputTransforms.hasOwnProperty(input.propName)) {
|
|
17926
|
-
input.transform = inputTransforms[input.propName];
|
|
17927
|
-
}
|
|
17928
|
-
}
|
|
17929
|
-
}
|
|
17930
|
-
return refArray;
|
|
17880
|
+
return toInputRefArray(this.componentDef.inputs);
|
|
17931
17881
|
}
|
|
17932
17882
|
get outputs() {
|
|
17933
|
-
return
|
|
17883
|
+
return toOutputRefArray(this.componentDef.outputs);
|
|
17934
17884
|
}
|
|
17935
17885
|
/**
|
|
17936
17886
|
* @param componentDef The component definition.
|
|
@@ -17951,7 +17901,7 @@ class ComponentFactory extends ComponentFactory$1 {
|
|
|
17951
17901
|
const cmpDef = this.componentDef;
|
|
17952
17902
|
ngDevMode && verifyNotAnOrphanComponent(cmpDef);
|
|
17953
17903
|
const tAttributes = rootSelectorOrNode
|
|
17954
|
-
? ['ng-version', '19.1.
|
|
17904
|
+
? ['ng-version', '19.1.7']
|
|
17955
17905
|
: // Extract attributes and classes from the first selector only to match VE behavior.
|
|
17956
17906
|
extractAttrsAndClassesFromSelector(this.componentDef.selectors[0]);
|
|
17957
17907
|
// Create the root view. Uses empty TView and ContentTemplate.
|
|
@@ -19823,7 +19773,74 @@ function ɵɵdefineNgModule(def) {
|
|
|
19823
19773
|
return res;
|
|
19824
19774
|
});
|
|
19825
19775
|
}
|
|
19826
|
-
|
|
19776
|
+
/**
|
|
19777
|
+
* Converts binding objects from the `DirectiveDefinition` into more efficient
|
|
19778
|
+
* lookup dictionaries that are optimized for the framework runtime.
|
|
19779
|
+
*
|
|
19780
|
+
* This function converts inputs or output directive information into new objects
|
|
19781
|
+
* where the public name conveniently maps to the minified internal field name.
|
|
19782
|
+
*
|
|
19783
|
+
* For inputs, the input flags are additionally persisted into the new data structure,
|
|
19784
|
+
* so that those can be quickly retrieved when needed.
|
|
19785
|
+
*
|
|
19786
|
+
* e.g. for
|
|
19787
|
+
*
|
|
19788
|
+
* ```ts
|
|
19789
|
+
* class Comp {
|
|
19790
|
+
* @Input()
|
|
19791
|
+
* propName1: string;
|
|
19792
|
+
*
|
|
19793
|
+
* @Input('publicName2')
|
|
19794
|
+
* declaredPropName2: number;
|
|
19795
|
+
*
|
|
19796
|
+
* inputSignal = input(3);
|
|
19797
|
+
* }
|
|
19798
|
+
* ```
|
|
19799
|
+
*
|
|
19800
|
+
* will be serialized as
|
|
19801
|
+
*
|
|
19802
|
+
* ```ts
|
|
19803
|
+
* {
|
|
19804
|
+
* propName1: 'propName1',
|
|
19805
|
+
* declaredPropName2: ['publicName2', 'declaredPropName2'],
|
|
19806
|
+
* inputSignal: [InputFlags.SignalBased, 'inputSignal'],
|
|
19807
|
+
* }
|
|
19808
|
+
* ```
|
|
19809
|
+
*
|
|
19810
|
+
* which is than translated by the minifier as:
|
|
19811
|
+
*
|
|
19812
|
+
* ```ts
|
|
19813
|
+
* {
|
|
19814
|
+
* minifiedPropName1: 'propName1',
|
|
19815
|
+
* minifiedPropName2: ['publicName2', 'declaredPropName2'],
|
|
19816
|
+
* minifiedInputSignal: [InputFlags.SignalBased, 'inputSignal'],
|
|
19817
|
+
* }
|
|
19818
|
+
* ```
|
|
19819
|
+
*
|
|
19820
|
+
* becomes: (public name => minifiedName + isSignal if needed)
|
|
19821
|
+
*
|
|
19822
|
+
* ```ts
|
|
19823
|
+
* {
|
|
19824
|
+
* 'propName1': 'minifiedPropName1',
|
|
19825
|
+
* 'publicName2': 'minifiedPropName2',
|
|
19826
|
+
* 'inputSignal': ['minifiedInputSignal', InputFlags.SignalBased],
|
|
19827
|
+
* }
|
|
19828
|
+
* ```
|
|
19829
|
+
*
|
|
19830
|
+
* Optionally the function can take `declaredInputs` which will result
|
|
19831
|
+
* in: (public name => declared name)
|
|
19832
|
+
*
|
|
19833
|
+
* ```ts
|
|
19834
|
+
* {
|
|
19835
|
+
* 'propName1': 'propName1',
|
|
19836
|
+
* 'publicName2': 'declaredPropName2',
|
|
19837
|
+
* 'inputSignal': 'inputSignal',
|
|
19838
|
+
* }
|
|
19839
|
+
* ```
|
|
19840
|
+
*
|
|
19841
|
+
|
|
19842
|
+
*/
|
|
19843
|
+
function parseAndConvertInputsForDefinition(obj, declaredInputs) {
|
|
19827
19844
|
if (obj == null)
|
|
19828
19845
|
return EMPTY_OBJ;
|
|
19829
19846
|
const newLookup = {};
|
|
@@ -19832,26 +19849,33 @@ function parseAndConvertBindingsForDefinition(obj, declaredInputs) {
|
|
|
19832
19849
|
const value = obj[minifiedKey];
|
|
19833
19850
|
let publicName;
|
|
19834
19851
|
let declaredName;
|
|
19835
|
-
let inputFlags
|
|
19852
|
+
let inputFlags;
|
|
19853
|
+
let transform;
|
|
19836
19854
|
if (Array.isArray(value)) {
|
|
19837
19855
|
inputFlags = value[0];
|
|
19838
19856
|
publicName = value[1];
|
|
19839
19857
|
declaredName = value[2] ?? publicName; // declared name might not be set to save bytes.
|
|
19858
|
+
transform = value[3] || null;
|
|
19840
19859
|
}
|
|
19841
19860
|
else {
|
|
19842
19861
|
publicName = value;
|
|
19843
19862
|
declaredName = value;
|
|
19863
|
+
inputFlags = InputFlags.None;
|
|
19864
|
+
transform = null;
|
|
19844
19865
|
}
|
|
19845
|
-
|
|
19846
|
-
|
|
19847
|
-
|
|
19848
|
-
|
|
19849
|
-
|
|
19850
|
-
|
|
19851
|
-
|
|
19852
|
-
|
|
19853
|
-
|
|
19854
|
-
|
|
19866
|
+
newLookup[publicName] = [minifiedKey, inputFlags, transform];
|
|
19867
|
+
declaredInputs[publicName] = declaredName;
|
|
19868
|
+
}
|
|
19869
|
+
}
|
|
19870
|
+
return newLookup;
|
|
19871
|
+
}
|
|
19872
|
+
function parseAndConvertOutputsForDefinition(obj) {
|
|
19873
|
+
if (obj == null)
|
|
19874
|
+
return EMPTY_OBJ;
|
|
19875
|
+
const newLookup = {};
|
|
19876
|
+
for (const minifiedKey in obj) {
|
|
19877
|
+
if (obj.hasOwnProperty(minifiedKey)) {
|
|
19878
|
+
newLookup[obj[minifiedKey]] = minifiedKey;
|
|
19855
19879
|
}
|
|
19856
19880
|
}
|
|
19857
19881
|
return newLookup;
|
|
@@ -19916,7 +19940,6 @@ function getNgDirectiveDef(directiveDefinition) {
|
|
|
19916
19940
|
hostAttrs: directiveDefinition.hostAttrs || null,
|
|
19917
19941
|
contentQueries: directiveDefinition.contentQueries || null,
|
|
19918
19942
|
declaredInputs: declaredInputs,
|
|
19919
|
-
inputTransforms: null,
|
|
19920
19943
|
inputConfig: directiveDefinition.inputs || EMPTY_OBJ,
|
|
19921
19944
|
exportAs: directiveDefinition.exportAs || null,
|
|
19922
19945
|
standalone: directiveDefinition.standalone ?? true,
|
|
@@ -19927,8 +19950,8 @@ function getNgDirectiveDef(directiveDefinition) {
|
|
|
19927
19950
|
setInput: null,
|
|
19928
19951
|
findHostDirectiveDefs: null,
|
|
19929
19952
|
hostDirectives: null,
|
|
19930
|
-
inputs:
|
|
19931
|
-
outputs:
|
|
19953
|
+
inputs: parseAndConvertInputsForDefinition(directiveDefinition.inputs, declaredInputs),
|
|
19954
|
+
outputs: parseAndConvertOutputsForDefinition(directiveDefinition.outputs),
|
|
19932
19955
|
debugInfo: null,
|
|
19933
19956
|
};
|
|
19934
19957
|
}
|
|
@@ -20057,7 +20080,6 @@ function ɵɵInheritDefinitionFeature(definition) {
|
|
|
20057
20080
|
// would've justified object creation. Unwrap them if necessary.
|
|
20058
20081
|
const writeableDef = definition;
|
|
20059
20082
|
writeableDef.inputs = maybeUnwrapEmpty(definition.inputs);
|
|
20060
|
-
writeableDef.inputTransforms = maybeUnwrapEmpty(definition.inputTransforms);
|
|
20061
20083
|
writeableDef.declaredInputs = maybeUnwrapEmpty(definition.declaredInputs);
|
|
20062
20084
|
writeableDef.outputs = maybeUnwrapEmpty(definition.outputs);
|
|
20063
20085
|
// Merge hostBindings
|
|
@@ -20114,23 +20136,9 @@ function mergeInputsWithTransforms(target, source) {
|
|
|
20114
20136
|
continue;
|
|
20115
20137
|
}
|
|
20116
20138
|
const value = source.inputs[key];
|
|
20117
|
-
if (value
|
|
20118
|
-
|
|
20119
|
-
|
|
20120
|
-
target.inputs[key] = value;
|
|
20121
|
-
target.declaredInputs[key] = source.declaredInputs[key];
|
|
20122
|
-
// If the input is inherited, and we have a transform for it, we also inherit it.
|
|
20123
|
-
// Note that transforms should not be inherited if the input has its own metadata
|
|
20124
|
-
// in the `source` directive itself already (i.e. the input is re-declared/overridden).
|
|
20125
|
-
if (source.inputTransforms !== null) {
|
|
20126
|
-
// Note: transforms are stored with their minified names.
|
|
20127
|
-
// Perf: only access the minified name when there are source transforms.
|
|
20128
|
-
const minifiedName = Array.isArray(value) ? value[0] : value;
|
|
20129
|
-
if (!source.inputTransforms.hasOwnProperty(minifiedName)) {
|
|
20130
|
-
continue;
|
|
20131
|
-
}
|
|
20132
|
-
target.inputTransforms ??= {};
|
|
20133
|
-
target.inputTransforms[minifiedName] = source.inputTransforms[minifiedName];
|
|
20139
|
+
if (value !== undefined) {
|
|
20140
|
+
target.inputs[key] = value;
|
|
20141
|
+
target.declaredInputs[key] = source.declaredInputs[key];
|
|
20134
20142
|
}
|
|
20135
20143
|
}
|
|
20136
20144
|
}
|
|
@@ -20444,30 +20452,6 @@ function validateMappings(bindingType, def, hostDirectiveBindings) {
|
|
|
20444
20452
|
}
|
|
20445
20453
|
}
|
|
20446
20454
|
|
|
20447
|
-
/**
|
|
20448
|
-
* Decorates the directive definition with support for input transform functions.
|
|
20449
|
-
*
|
|
20450
|
-
* If the directive uses inheritance, the feature should be included before the
|
|
20451
|
-
* `InheritDefinitionFeature` to ensure that the `inputTransforms` field is populated.
|
|
20452
|
-
*
|
|
20453
|
-
* @codeGenApi
|
|
20454
|
-
*/
|
|
20455
|
-
function ɵɵInputTransformsFeature(definition) {
|
|
20456
|
-
const inputs = definition.inputConfig;
|
|
20457
|
-
const inputTransforms = {};
|
|
20458
|
-
for (const minifiedKey in inputs) {
|
|
20459
|
-
if (inputs.hasOwnProperty(minifiedKey)) {
|
|
20460
|
-
// Note: the private names are used for the keys, rather than the public ones, because public
|
|
20461
|
-
// names can be re-aliased in host directives which would invalidate the lookup.
|
|
20462
|
-
const value = inputs[minifiedKey];
|
|
20463
|
-
if (Array.isArray(value) && value[3]) {
|
|
20464
|
-
inputTransforms[minifiedKey] = value[3];
|
|
20465
|
-
}
|
|
20466
|
-
}
|
|
20467
|
-
}
|
|
20468
|
-
definition.inputTransforms = inputTransforms;
|
|
20469
|
-
}
|
|
20470
|
-
|
|
20471
20455
|
function isIterable(obj) {
|
|
20472
20456
|
return obj !== null && typeof obj === 'object' && obj[Symbol.iterator] !== undefined;
|
|
20473
20457
|
}
|
|
@@ -33585,7 +33569,6 @@ const angularCoreEnv = (() => ({
|
|
|
33585
33569
|
'ɵɵProvidersFeature': ɵɵProvidersFeature,
|
|
33586
33570
|
'ɵɵCopyDefinitionFeature': ɵɵCopyDefinitionFeature,
|
|
33587
33571
|
'ɵɵInheritDefinitionFeature': ɵɵInheritDefinitionFeature,
|
|
33588
|
-
'ɵɵInputTransformsFeature': ɵɵInputTransformsFeature,
|
|
33589
33572
|
'ɵɵExternalStylesFeature': ɵɵExternalStylesFeature,
|
|
33590
33573
|
'ɵɵnextContext': ɵɵnextContext,
|
|
33591
33574
|
'ɵɵnamespaceHTML': ɵɵnamespaceHTML,
|
|
@@ -34924,7 +34907,7 @@ class Version {
|
|
|
34924
34907
|
/**
|
|
34925
34908
|
* @publicApi
|
|
34926
34909
|
*/
|
|
34927
|
-
const VERSION = new Version('19.1.
|
|
34910
|
+
const VERSION = new Version('19.1.7');
|
|
34928
34911
|
|
|
34929
34912
|
/**
|
|
34930
34913
|
* Combination of NgModuleFactory and ComponentFactories.
|
|
@@ -41601,5 +41584,5 @@ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
|
|
|
41601
41584
|
* Generated bundle index. Do not edit.
|
|
41602
41585
|
*/
|
|
41603
41586
|
|
|
41604
|
-
export { ANIMATION_MODULE_TYPE, APP_BOOTSTRAP_LISTENER, APP_ID, APP_INITIALIZER, AfterRenderPhase, 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_TAG_NAME, Host, HostAttributeToken, HostBinding, HostListener, INJECTOR$1 as 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, OutputEmitterRef, PACKAGE_ROOT_URL, PLATFORM_ID, PLATFORM_INITIALIZER, PendingTasks, Pipe, PlatformRef, Query, QueryList, REQUEST, REQUEST_CONTEXT, RESPONSE_INIT, Renderer2, RendererFactory2, RendererStyleFlags2, ResourceStatus, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, TransferState, Type, VERSION, Version, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation, ViewRef, afterNextRender, afterRender, afterRenderEffect, asNativeElements, assertInInjectionContext, assertNotInReactiveContext, assertPlatform, booleanAttribute, computed, contentChild, contentChildren, createComponent, createEnvironmentInjector, createNgModule, createNgModuleRef, createPlatform, createPlatformFactory, defineInjectable, destroyPlatform, effect, enableProdMode, forwardRef, getDebugNode, getModuleFactory, getNgModuleById, getPlatform, importProvidersFrom, inject, input, isDevMode, isSignal, isStandalone, linkedSignal, makeEnvironmentProviders, makeStateKey, mergeApplicationConfig, model, numberAttribute, output, platformCore, provideAppInitializer, provideEnvironmentInitializer, provideExperimentalCheckNoChangesForDebug, provideExperimentalZonelessChangeDetection, providePlatformInitializer, provideZoneChangeDetection, reflectComponentType, resolveForwardRef, resource, runInInjectionContext, setTestabilityGetter, signal, untracked, viewChild, viewChildren, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, AfterRenderManager as ɵAfterRenderManager, CONTAINER_HEADER_OFFSET as ɵCONTAINER_HEADER_OFFSET, ChangeDetectionScheduler as ɵChangeDetectionScheduler, ChangeDetectionSchedulerImpl as ɵChangeDetectionSchedulerImpl, ComponentFactory$1 as ɵComponentFactory, Console as ɵConsole, DEFAULT_LOCALE_ID as ɵDEFAULT_LOCALE_ID, DEFER_BLOCK_CONFIG as ɵDEFER_BLOCK_CONFIG, DEFER_BLOCK_DEPENDENCY_INTERCEPTOR as ɵDEFER_BLOCK_DEPENDENCY_INTERCEPTOR, DeferBlockBehavior as ɵDeferBlockBehavior, DeferBlockState as ɵDeferBlockState, ENABLE_ROOT_COMPONENT_BOOTSTRAP as ɵENABLE_ROOT_COMPONENT_BOOTSTRAP, EffectScheduler as ɵEffectScheduler, IMAGE_CONFIG as ɵIMAGE_CONFIG, IMAGE_CONFIG_DEFAULTS as ɵIMAGE_CONFIG_DEFAULTS, INJECTOR_SCOPE as ɵINJECTOR_SCOPE, ɵINPUT_SIGNAL_BRAND_WRITE_TYPE, INTERNAL_APPLICATION_ERROR_HANDLER as ɵINTERNAL_APPLICATION_ERROR_HANDLER, IS_HYDRATION_DOM_REUSE_ENABLED as ɵIS_HYDRATION_DOM_REUSE_ENABLED, IS_INCREMENTAL_HYDRATION_ENABLED as ɵIS_INCREMENTAL_HYDRATION_ENABLED, JSACTION_EVENT_CONTRACT as ɵJSACTION_EVENT_CONTRACT, LContext as ɵLContext, LocaleDataIndex as ɵLocaleDataIndex, MicrotaskEffectScheduler as ɵMicrotaskEffectScheduler, 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, PERFORMANCE_MARK_PREFIX as ɵPERFORMANCE_MARK_PREFIX, PROVIDED_NG_ZONE as ɵPROVIDED_NG_ZONE, PendingTasksInternal as ɵPendingTasksInternal, ReflectionCapabilities as ɵReflectionCapabilities, ComponentFactory as ɵRender3ComponentFactory, ComponentRef as ɵRender3ComponentRef, NgModuleRef as ɵRender3NgModuleRef, RuntimeError as ɵRuntimeError, SSR_CONTENT_INTEGRITY_MARKER as ɵSSR_CONTENT_INTEGRITY_MARKER, TESTABILITY as ɵTESTABILITY, TESTABILITY_GETTER as ɵTESTABILITY_GETTER, TracingAction as ɵTracingAction, TracingService as ɵTracingService, USE_RUNTIME_DEPS_TRACKER_FOR_JIT as ɵUSE_RUNTIME_DEPS_TRACKER_FOR_JIT, ViewRef$1 as ɵViewRef, XSS_SECURITY_URL as ɵXSS_SECURITY_URL, ZONELESS_ENABLED as ɵZONELESS_ENABLED, _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, 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, depsTracker as ɵdepsTracker, detectChangesInViewIfRequired as ɵdetectChangesInViewIfRequired, devModeEqual as ɵdevModeEqual, disableProfiling as ɵdisableProfiling, enableProfiling as ɵenableProfiling, findLocaleData as ɵfindLocaleData, flushModuleScopingQueueAsMuchAsPossible as ɵflushModuleScopingQueueAsMuchAsPossible, formatRuntimeError as ɵformatRuntimeError, generateStandaloneInDeclarationsError as ɵgenerateStandaloneInDeclarationsError, getAsyncClassMetadataFn as ɵgetAsyncClassMetadataFn, getClosestComponentName as ɵgetClosestComponentName, getDebugNode as ɵgetDebugNode, getDeferBlocks$1 as ɵgetDeferBlocks, getDirectives as ɵgetDirectives, getHostElement as ɵgetHostElement, getInjectableDef as ɵgetInjectableDef, getLContext as ɵgetLContext, getLocaleCurrencyCode as ɵgetLocaleCurrencyCode, getLocalePluralCase as ɵgetLocalePluralCase, getOutputDestroyRef as ɵgetOutputDestroyRef, getSanitizationBypassType as ɵgetSanitizationBypassType, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, _global as ɵglobal, injectChangeDetectorRef as ɵinjectChangeDetectorRef, internalCreateApplication as ɵinternalCreateApplication, internalProvideZoneChangeDetection as ɵinternalProvideZoneChangeDetection, isBoundToModule as ɵisBoundToModule, isComponentDefPendingResolution as ɵisComponentDefPendingResolution, isEnvironmentProviders as ɵisEnvironmentProviders, isInjectable as ɵisInjectable, isNgModule as ɵisNgModule, isPromise as ɵisPromise, isSubscribable as ɵisSubscribable, microtaskEffect as ɵmicrotaskEffect, noSideEffects as ɵnoSideEffects, patchComponentDefWithScope as ɵpatchComponentDefWithScope, performanceMarkFeature as ɵperformanceMarkFeature, publishExternalGlobalUtil as ɵpublishExternalGlobalUtil, readHydrationInfo as ɵreadHydrationInfo, registerLocaleData as ɵregisterLocaleData, renderDeferBlockState as ɵrenderDeferBlockState, resetCompiledComponents as ɵresetCompiledComponents, resetJitOptions as ɵresetJitOptions, resolveComponentResources as ɵresolveComponentResources, restoreComponentResolutionQueue as ɵrestoreComponentResolutionQueue, setAllowDuplicateNgModuleIdsForTest as ɵsetAllowDuplicateNgModuleIdsForTest, setAlternateWeakRefImpl as ɵsetAlternateWeakRefImpl, ɵsetClassDebugInfo, setClassMetadata as ɵsetClassMetadata, setClassMetadataAsync as ɵsetClassMetadataAsync, setCurrentInjector as ɵsetCurrentInjector, setDocument as ɵsetDocument, setInjectorProfilerContext as ɵsetInjectorProfilerContext, setLocaleId as ɵsetLocaleId, ɵsetUnknownElementStrictMode, ɵsetUnknownPropertyStrictMode, startMeasuring as ɵstartMeasuring, stopMeasuring as ɵstopMeasuring, store as ɵstore, stringify as ɵstringify, transitiveScopesFor as ɵtransitiveScopesFor, triggerResourceLoading as ɵtriggerResourceLoading, truncateMiddle as ɵtruncateMiddle, unregisterAllLocaleData as ɵunregisterLocaleData, unwrapSafeValue as ɵunwrapSafeValue, ɵunwrapWritableSignal, withDomHydration as ɵwithDomHydration, withEventReplay as ɵwithEventReplay, withI18nSupport as ɵwithI18nSupport, withIncrementalHydration as ɵwithIncrementalHydration, ɵɵCopyDefinitionFeature, ɵɵExternalStylesFeature, FactoryTarget as ɵɵFactoryTarget, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵInputTransformsFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵadvance, ɵɵattachSourceLocations, ɵɵattribute, ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV, ɵɵclassMap, ɵɵclassMapInterpolate1, ɵɵclassMapInterpolate2, ɵɵclassMapInterpolate3, ɵɵclassMapInterpolate4, ɵɵclassMapInterpolate5, ɵɵclassMapInterpolate6, ɵɵclassMapInterpolate7, ɵɵclassMapInterpolate8, ɵɵclassMapInterpolateV, ɵɵclassProp, ɵɵcomponentInstance, ɵɵconditional, ɵɵcontentQuery, ɵɵcontentQuerySignal, ɵɵdeclareLet, ɵɵdefer, ɵɵdeferEnableTimerScheduling, ɵɵdeferHydrateNever, ɵɵdeferHydrateOnHover, ɵɵdeferHydrateOnIdle, ɵɵdeferHydrateOnImmediate, ɵɵdeferHydrateOnInteraction, ɵɵdeferHydrateOnTimer, ɵɵdeferHydrateOnViewport, ɵɵdeferHydrateWhen, ɵɵdeferOnHover, ɵɵdeferOnIdle, ɵɵdeferOnImmediate, ɵɵdeferOnInteraction, ɵɵdeferOnTimer, ɵɵdeferOnViewport, ɵɵdeferPrefetchOnHover, ɵɵdeferPrefetchOnIdle, ɵɵdeferPrefetchOnImmediate, ɵɵdeferPrefetchOnInteraction, ɵɵdeferPrefetchOnTimer, ɵɵdeferPrefetchOnViewport, ɵɵdeferPrefetchWhen, ɵɵdeferWhen, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineInjectable, ɵɵdefineInjector, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdisableBindings, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵenableBindings, ɵɵgetComponentDepsFactory, ɵɵgetCurrentView, ɵɵgetInheritedFactory, ɵɵhostProperty, ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart, ɵɵinject, ɵɵinjectAttribute, ɵɵinvalidFactory, ɵɵinvalidFactoryDep, ɵɵlistener, ɵɵloadQuery, ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG, ɵɵnextContext, ɵɵngDeclareClassMetadata, ɵɵngDeclareClassMetadataAsync, ɵɵ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, ɵɵqueryAdvance, ɵɵqueryRefresh, ɵɵreadContextLet, ɵɵreference, registerNgModuleType as ɵɵregisterNgModuleType, ɵɵrepeater, ɵɵrepeaterCreate, ɵɵrepeaterTrackByIdentity, ɵɵrepeaterTrackByIndex, ɵɵreplaceMetadata, ɵɵresetView, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵrestoreView, ɵɵsanitizeHtml, ɵɵsanitizeResourceUrl, ɵɵsanitizeScript, ɵɵsanitizeStyle, ɵɵsanitizeUrl, ɵɵsanitizeUrlOrResourceUrl, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵstoreLet, ɵɵ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, ɵɵtwoWayBindingSet, ɵɵtwoWayListener, ɵɵtwoWayProperty, ɵɵvalidateIframeAttribute, ɵɵviewQuery, ɵɵviewQuerySignal };
|
|
41587
|
+
export { ANIMATION_MODULE_TYPE, APP_BOOTSTRAP_LISTENER, APP_ID, APP_INITIALIZER, AfterRenderPhase, 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_TAG_NAME, Host, HostAttributeToken, HostBinding, HostListener, INJECTOR$1 as 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, OutputEmitterRef, PACKAGE_ROOT_URL, PLATFORM_ID, PLATFORM_INITIALIZER, PendingTasks, Pipe, PlatformRef, Query, QueryList, REQUEST, REQUEST_CONTEXT, RESPONSE_INIT, Renderer2, RendererFactory2, RendererStyleFlags2, ResourceStatus, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, TransferState, Type, VERSION, Version, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation, ViewRef, afterNextRender, afterRender, afterRenderEffect, asNativeElements, assertInInjectionContext, assertNotInReactiveContext, assertPlatform, booleanAttribute, computed, contentChild, contentChildren, createComponent, createEnvironmentInjector, createNgModule, createNgModuleRef, createPlatform, createPlatformFactory, defineInjectable, destroyPlatform, effect, enableProdMode, forwardRef, getDebugNode, getModuleFactory, getNgModuleById, getPlatform, importProvidersFrom, inject, input, isDevMode, isSignal, isStandalone, linkedSignal, makeEnvironmentProviders, makeStateKey, mergeApplicationConfig, model, numberAttribute, output, platformCore, provideAppInitializer, provideEnvironmentInitializer, provideExperimentalCheckNoChangesForDebug, provideExperimentalZonelessChangeDetection, providePlatformInitializer, provideZoneChangeDetection, reflectComponentType, resolveForwardRef, resource, runInInjectionContext, setTestabilityGetter, signal, untracked, viewChild, viewChildren, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, AfterRenderManager as ɵAfterRenderManager, CONTAINER_HEADER_OFFSET as ɵCONTAINER_HEADER_OFFSET, ChangeDetectionScheduler as ɵChangeDetectionScheduler, ChangeDetectionSchedulerImpl as ɵChangeDetectionSchedulerImpl, ComponentFactory$1 as ɵComponentFactory, Console as ɵConsole, DEFAULT_LOCALE_ID as ɵDEFAULT_LOCALE_ID, DEFER_BLOCK_CONFIG as ɵDEFER_BLOCK_CONFIG, DEFER_BLOCK_DEPENDENCY_INTERCEPTOR as ɵDEFER_BLOCK_DEPENDENCY_INTERCEPTOR, DeferBlockBehavior as ɵDeferBlockBehavior, DeferBlockState as ɵDeferBlockState, ENABLE_ROOT_COMPONENT_BOOTSTRAP as ɵENABLE_ROOT_COMPONENT_BOOTSTRAP, EffectScheduler as ɵEffectScheduler, IMAGE_CONFIG as ɵIMAGE_CONFIG, IMAGE_CONFIG_DEFAULTS as ɵIMAGE_CONFIG_DEFAULTS, INJECTOR_SCOPE as ɵINJECTOR_SCOPE, ɵINPUT_SIGNAL_BRAND_WRITE_TYPE, INTERNAL_APPLICATION_ERROR_HANDLER as ɵINTERNAL_APPLICATION_ERROR_HANDLER, IS_HYDRATION_DOM_REUSE_ENABLED as ɵIS_HYDRATION_DOM_REUSE_ENABLED, IS_INCREMENTAL_HYDRATION_ENABLED as ɵIS_INCREMENTAL_HYDRATION_ENABLED, JSACTION_EVENT_CONTRACT as ɵJSACTION_EVENT_CONTRACT, LContext as ɵLContext, LocaleDataIndex as ɵLocaleDataIndex, MicrotaskEffectScheduler as ɵMicrotaskEffectScheduler, 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, PERFORMANCE_MARK_PREFIX as ɵPERFORMANCE_MARK_PREFIX, PROVIDED_NG_ZONE as ɵPROVIDED_NG_ZONE, PendingTasksInternal as ɵPendingTasksInternal, ReflectionCapabilities as ɵReflectionCapabilities, ComponentFactory as ɵRender3ComponentFactory, ComponentRef as ɵRender3ComponentRef, NgModuleRef as ɵRender3NgModuleRef, RuntimeError as ɵRuntimeError, SSR_CONTENT_INTEGRITY_MARKER as ɵSSR_CONTENT_INTEGRITY_MARKER, TESTABILITY as ɵTESTABILITY, TESTABILITY_GETTER as ɵTESTABILITY_GETTER, TracingAction as ɵTracingAction, TracingService as ɵTracingService, USE_RUNTIME_DEPS_TRACKER_FOR_JIT as ɵUSE_RUNTIME_DEPS_TRACKER_FOR_JIT, ViewRef$1 as ɵViewRef, XSS_SECURITY_URL as ɵXSS_SECURITY_URL, ZONELESS_ENABLED as ɵZONELESS_ENABLED, _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, 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, depsTracker as ɵdepsTracker, detectChangesInViewIfRequired as ɵdetectChangesInViewIfRequired, devModeEqual as ɵdevModeEqual, disableProfiling as ɵdisableProfiling, enableProfiling as ɵenableProfiling, findLocaleData as ɵfindLocaleData, flushModuleScopingQueueAsMuchAsPossible as ɵflushModuleScopingQueueAsMuchAsPossible, formatRuntimeError as ɵformatRuntimeError, generateStandaloneInDeclarationsError as ɵgenerateStandaloneInDeclarationsError, getAsyncClassMetadataFn as ɵgetAsyncClassMetadataFn, getClosestComponentName as ɵgetClosestComponentName, getDebugNode as ɵgetDebugNode, getDeferBlocks$1 as ɵgetDeferBlocks, getDirectives as ɵgetDirectives, getHostElement as ɵgetHostElement, getInjectableDef as ɵgetInjectableDef, getLContext as ɵgetLContext, getLocaleCurrencyCode as ɵgetLocaleCurrencyCode, getLocalePluralCase as ɵgetLocalePluralCase, getOutputDestroyRef as ɵgetOutputDestroyRef, getSanitizationBypassType as ɵgetSanitizationBypassType, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, _global as ɵglobal, injectChangeDetectorRef as ɵinjectChangeDetectorRef, internalCreateApplication as ɵinternalCreateApplication, internalProvideZoneChangeDetection as ɵinternalProvideZoneChangeDetection, isBoundToModule as ɵisBoundToModule, isComponentDefPendingResolution as ɵisComponentDefPendingResolution, isEnvironmentProviders as ɵisEnvironmentProviders, isInjectable as ɵisInjectable, isNgModule as ɵisNgModule, isPromise as ɵisPromise, isSubscribable as ɵisSubscribable, microtaskEffect as ɵmicrotaskEffect, noSideEffects as ɵnoSideEffects, patchComponentDefWithScope as ɵpatchComponentDefWithScope, performanceMarkFeature as ɵperformanceMarkFeature, publishExternalGlobalUtil as ɵpublishExternalGlobalUtil, readHydrationInfo as ɵreadHydrationInfo, registerLocaleData as ɵregisterLocaleData, renderDeferBlockState as ɵrenderDeferBlockState, resetCompiledComponents as ɵresetCompiledComponents, resetJitOptions as ɵresetJitOptions, resolveComponentResources as ɵresolveComponentResources, restoreComponentResolutionQueue as ɵrestoreComponentResolutionQueue, setAllowDuplicateNgModuleIdsForTest as ɵsetAllowDuplicateNgModuleIdsForTest, setAlternateWeakRefImpl as ɵsetAlternateWeakRefImpl, ɵsetClassDebugInfo, setClassMetadata as ɵsetClassMetadata, setClassMetadataAsync as ɵsetClassMetadataAsync, setCurrentInjector as ɵsetCurrentInjector, setDocument as ɵsetDocument, setInjectorProfilerContext as ɵsetInjectorProfilerContext, setLocaleId as ɵsetLocaleId, ɵsetUnknownElementStrictMode, ɵsetUnknownPropertyStrictMode, startMeasuring as ɵstartMeasuring, stopMeasuring as ɵstopMeasuring, store as ɵstore, stringify as ɵstringify, transitiveScopesFor as ɵtransitiveScopesFor, triggerResourceLoading as ɵtriggerResourceLoading, truncateMiddle as ɵtruncateMiddle, unregisterAllLocaleData as ɵunregisterLocaleData, unwrapSafeValue as ɵunwrapSafeValue, ɵunwrapWritableSignal, withDomHydration as ɵwithDomHydration, withEventReplay as ɵwithEventReplay, withI18nSupport as ɵwithI18nSupport, withIncrementalHydration as ɵwithIncrementalHydration, ɵɵCopyDefinitionFeature, ɵɵExternalStylesFeature, FactoryTarget as ɵɵFactoryTarget, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵadvance, ɵɵattachSourceLocations, ɵɵattribute, ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV, ɵɵclassMap, ɵɵclassMapInterpolate1, ɵɵclassMapInterpolate2, ɵɵclassMapInterpolate3, ɵɵclassMapInterpolate4, ɵɵclassMapInterpolate5, ɵɵclassMapInterpolate6, ɵɵclassMapInterpolate7, ɵɵclassMapInterpolate8, ɵɵclassMapInterpolateV, ɵɵclassProp, ɵɵcomponentInstance, ɵɵconditional, ɵɵcontentQuery, ɵɵcontentQuerySignal, ɵɵdeclareLet, ɵɵdefer, ɵɵdeferEnableTimerScheduling, ɵɵdeferHydrateNever, ɵɵdeferHydrateOnHover, ɵɵdeferHydrateOnIdle, ɵɵdeferHydrateOnImmediate, ɵɵdeferHydrateOnInteraction, ɵɵdeferHydrateOnTimer, ɵɵdeferHydrateOnViewport, ɵɵdeferHydrateWhen, ɵɵdeferOnHover, ɵɵdeferOnIdle, ɵɵdeferOnImmediate, ɵɵdeferOnInteraction, ɵɵdeferOnTimer, ɵɵdeferOnViewport, ɵɵdeferPrefetchOnHover, ɵɵdeferPrefetchOnIdle, ɵɵdeferPrefetchOnImmediate, ɵɵdeferPrefetchOnInteraction, ɵɵdeferPrefetchOnTimer, ɵɵdeferPrefetchOnViewport, ɵɵdeferPrefetchWhen, ɵɵdeferWhen, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineInjectable, ɵɵdefineInjector, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdisableBindings, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵenableBindings, ɵɵgetComponentDepsFactory, ɵɵgetCurrentView, ɵɵgetInheritedFactory, ɵɵhostProperty, ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart, ɵɵinject, ɵɵinjectAttribute, ɵɵinvalidFactory, ɵɵinvalidFactoryDep, ɵɵlistener, ɵɵloadQuery, ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG, ɵɵnextContext, ɵɵngDeclareClassMetadata, ɵɵngDeclareClassMetadataAsync, ɵɵ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, ɵɵqueryAdvance, ɵɵqueryRefresh, ɵɵreadContextLet, ɵɵreference, registerNgModuleType as ɵɵregisterNgModuleType, ɵɵrepeater, ɵɵrepeaterCreate, ɵɵrepeaterTrackByIdentity, ɵɵrepeaterTrackByIndex, ɵɵreplaceMetadata, ɵɵresetView, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵrestoreView, ɵɵsanitizeHtml, ɵɵsanitizeResourceUrl, ɵɵsanitizeScript, ɵɵsanitizeStyle, ɵɵsanitizeUrl, ɵɵsanitizeUrlOrResourceUrl, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵstoreLet, ɵɵ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, ɵɵtwoWayBindingSet, ɵɵtwoWayListener, ɵɵtwoWayProperty, ɵɵvalidateIframeAttribute, ɵɵviewQuery, ɵɵviewQuerySignal };
|
|
41605
41588
|
//# sourceMappingURL=core.mjs.map
|