@angular/compiler 21.2.1 → 22.0.0-next.1
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/compiler.mjs +42 -32
- package/fesm2022/compiler.mjs.map +1 -1
- package/package.json +2 -2
- package/types/compiler.d.ts +3 -1
package/fesm2022/compiler.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular
|
|
2
|
+
* @license Angular v22.0.0-next.1
|
|
3
3
|
* (c) 2010-2026 Google LLC. https://angular.dev/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -4820,7 +4820,13 @@ class BoundDeferredTrigger extends DeferredTrigger {
|
|
|
4820
4820
|
}
|
|
4821
4821
|
}
|
|
4822
4822
|
class NeverDeferredTrigger extends DeferredTrigger {}
|
|
4823
|
-
class IdleDeferredTrigger extends DeferredTrigger {
|
|
4823
|
+
class IdleDeferredTrigger extends DeferredTrigger {
|
|
4824
|
+
timeout;
|
|
4825
|
+
constructor(nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan, timeout) {
|
|
4826
|
+
super(nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan);
|
|
4827
|
+
this.timeout = timeout;
|
|
4828
|
+
}
|
|
4829
|
+
}
|
|
4824
4830
|
class ImmediateDeferredTrigger extends DeferredTrigger {}
|
|
4825
4831
|
class HoverDeferredTrigger extends DeferredTrigger {
|
|
4826
4832
|
reference;
|
|
@@ -5328,9 +5334,8 @@ let RecursiveVisitor$1 = class RecursiveVisitor {
|
|
|
5328
5334
|
visitAll$1(this, block.branches);
|
|
5329
5335
|
}
|
|
5330
5336
|
visitIfBlockBranch(block) {
|
|
5331
|
-
|
|
5332
|
-
block.expressionAlias
|
|
5333
|
-
visitAll$1(this, blockItems);
|
|
5337
|
+
visitAll$1(this, block.children);
|
|
5338
|
+
block.expressionAlias?.visit(this);
|
|
5334
5339
|
}
|
|
5335
5340
|
visitContent(content) {
|
|
5336
5341
|
visitAll$1(this, content.children);
|
|
@@ -16693,9 +16698,6 @@ class _ParseAST {
|
|
|
16693
16698
|
} else if (this.next.isKeywordFalse()) {
|
|
16694
16699
|
this.advance();
|
|
16695
16700
|
return new LiteralPrimitive(this.span(start), this.sourceSpan(start), false);
|
|
16696
|
-
} else if (this.next.isKeywordIn()) {
|
|
16697
|
-
this.advance();
|
|
16698
|
-
return new LiteralPrimitive(this.span(start), this.sourceSpan(start), 'in');
|
|
16699
16701
|
} else if (this.next.isKeywordThis()) {
|
|
16700
16702
|
this.advance();
|
|
16701
16703
|
return new ThisReceiver(this.span(start), this.sourceSpan(start));
|
|
@@ -20073,9 +20075,13 @@ function reifyCreateOperations(unit, ops) {
|
|
|
20073
20075
|
let args = [];
|
|
20074
20076
|
switch (op.trigger.kind) {
|
|
20075
20077
|
case DeferTriggerKind.Never:
|
|
20076
|
-
case DeferTriggerKind.Idle:
|
|
20077
20078
|
case DeferTriggerKind.Immediate:
|
|
20078
20079
|
break;
|
|
20080
|
+
case DeferTriggerKind.Idle:
|
|
20081
|
+
if (op.trigger.timeout != null) {
|
|
20082
|
+
args = [literal(op.trigger.timeout)];
|
|
20083
|
+
}
|
|
20084
|
+
break;
|
|
20079
20085
|
case DeferTriggerKind.Timer:
|
|
20080
20086
|
args = [literal(op.trigger.delay)];
|
|
20081
20087
|
break;
|
|
@@ -22399,7 +22405,8 @@ function ingestDeferBlock(unit, deferBlock) {
|
|
|
22399
22405
|
const hasConcreteTrigger = deferOnOps.some(op => op.modifier === "none") || deferWhenOps.some(op => op.modifier === "none");
|
|
22400
22406
|
if (!hasConcreteTrigger) {
|
|
22401
22407
|
deferOnOps.push(createDeferOnOp(deferXref, {
|
|
22402
|
-
kind: DeferTriggerKind.Idle
|
|
22408
|
+
kind: DeferTriggerKind.Idle,
|
|
22409
|
+
timeout: null
|
|
22403
22410
|
}, "none", null));
|
|
22404
22411
|
}
|
|
22405
22412
|
unit.create.push(deferOnOps);
|
|
@@ -22414,7 +22421,8 @@ function calcDeferBlockFlags(deferBlockDetails) {
|
|
|
22414
22421
|
function ingestDeferTriggers(modifier, triggers, onOps, whenOps, unit, deferXref) {
|
|
22415
22422
|
if (triggers.idle !== undefined) {
|
|
22416
22423
|
const deferOnOp = createDeferOnOp(deferXref, {
|
|
22417
|
-
kind: DeferTriggerKind.Idle
|
|
22424
|
+
kind: DeferTriggerKind.Idle,
|
|
22425
|
+
timeout: triggers.idle.timeout ?? null
|
|
22418
22426
|
}, modifier, triggers.idle.sourceSpan);
|
|
22419
22427
|
onOps.push(deferOnOp);
|
|
22420
22428
|
}
|
|
@@ -24108,10 +24116,17 @@ function trackTrigger(name, allTriggers, errors, trigger) {
|
|
|
24108
24116
|
}
|
|
24109
24117
|
}
|
|
24110
24118
|
function createIdleTrigger(parameters, nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan) {
|
|
24111
|
-
if (parameters.length >
|
|
24112
|
-
throw new Error(`"${OnTriggerType.IDLE}" trigger
|
|
24119
|
+
if (parameters.length > 1) {
|
|
24120
|
+
throw new Error(`"${OnTriggerType.IDLE}" trigger can only have zero or one parameters`);
|
|
24121
|
+
}
|
|
24122
|
+
let timeout = null;
|
|
24123
|
+
if (parameters[0]) {
|
|
24124
|
+
timeout = parseDeferredTime(parameters[0].expression);
|
|
24125
|
+
if (timeout === null) {
|
|
24126
|
+
throw new Error(`Could not parse time value of trigger "${OnTriggerType.IDLE}"`);
|
|
24127
|
+
}
|
|
24113
24128
|
}
|
|
24114
|
-
return new IdleDeferredTrigger(nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan);
|
|
24129
|
+
return new IdleDeferredTrigger(nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan, timeout);
|
|
24115
24130
|
}
|
|
24116
24131
|
function createTimerTrigger(parameters, nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan) {
|
|
24117
24132
|
if (parameters.length !== 1) {
|
|
@@ -24702,19 +24717,18 @@ class HtmlAstToIvyAst {
|
|
|
24702
24717
|
let elementHasInlineTemplate = false;
|
|
24703
24718
|
for (const attribute of attrs) {
|
|
24704
24719
|
let hasBinding = false;
|
|
24705
|
-
const normalizedName = normalizeAttributeName(attribute.name);
|
|
24706
24720
|
let isTemplateBinding = false;
|
|
24707
24721
|
if (attribute.i18n) {
|
|
24708
24722
|
i18nAttrsMeta[attribute.name] = attribute.i18n;
|
|
24709
24723
|
}
|
|
24710
|
-
if (
|
|
24724
|
+
if (attribute.name.startsWith(TEMPLATE_ATTR_PREFIX)) {
|
|
24711
24725
|
if (elementHasInlineTemplate) {
|
|
24712
24726
|
this.reportError(`Can't have multiple template bindings on one element. Use only one attribute prefixed with *`, attribute.sourceSpan);
|
|
24713
24727
|
}
|
|
24714
24728
|
isTemplateBinding = true;
|
|
24715
24729
|
elementHasInlineTemplate = true;
|
|
24716
24730
|
const templateValue = attribute.value;
|
|
24717
|
-
const templateKey =
|
|
24731
|
+
const templateKey = attribute.name.substring(TEMPLATE_ATTR_PREFIX.length);
|
|
24718
24732
|
const parsedVariables = [];
|
|
24719
24733
|
const absoluteValueOffset = attribute.valueSpan ? attribute.valueSpan.fullStart.offset : attribute.sourceSpan.fullStart.offset + attribute.name.length;
|
|
24720
24734
|
this.bindingParser.parseInlineTemplateBinding(templateKey, templateValue, attribute.sourceSpan, absoluteValueOffset, [], templateParsedProperties, parsedVariables, true);
|
|
@@ -24739,13 +24753,12 @@ class HtmlAstToIvyAst {
|
|
|
24739
24753
|
};
|
|
24740
24754
|
}
|
|
24741
24755
|
parseAttribute(isTemplateElement, attribute, matchableAttributes, parsedProperties, boundEvents, variables, references) {
|
|
24742
|
-
const name =
|
|
24756
|
+
const name = attribute.name;
|
|
24743
24757
|
const value = attribute.value;
|
|
24744
24758
|
const srcSpan = attribute.sourceSpan;
|
|
24745
24759
|
const absoluteOffset = attribute.valueSpan ? attribute.valueSpan.fullStart.offset : srcSpan.fullStart.offset;
|
|
24746
24760
|
function createKeySpan(srcSpan, prefix, identifier) {
|
|
24747
|
-
const
|
|
24748
|
-
const keySpanStart = srcSpan.start.moveBy(prefix.length + normalizationAdjustment);
|
|
24761
|
+
const keySpanStart = srcSpan.start.moveBy(prefix.length);
|
|
24749
24762
|
const keySpanEnd = keySpanStart.moveBy(identifier.length);
|
|
24750
24763
|
return new ParseSourceSpan(keySpanStart, keySpanEnd, keySpanStart, identifier);
|
|
24751
24764
|
}
|
|
@@ -24983,9 +24996,6 @@ class NonBindableVisitor {
|
|
|
24983
24996
|
}
|
|
24984
24997
|
}
|
|
24985
24998
|
const NON_BINDABLE_VISITOR = new NonBindableVisitor();
|
|
24986
|
-
function normalizeAttributeName(attrName) {
|
|
24987
|
-
return /^data-/i.test(attrName) ? attrName.substring(5) : attrName;
|
|
24988
|
-
}
|
|
24989
24999
|
function addEvents(events, boundEvents) {
|
|
24990
25000
|
boundEvents.push(...events.map(e => BoundEvent.fromParsedEvent(e)));
|
|
24991
25001
|
}
|
|
@@ -28530,7 +28540,7 @@ const MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION = '18.0.0';
|
|
|
28530
28540
|
function compileDeclareClassMetadata(metadata) {
|
|
28531
28541
|
const definitionMap = new DefinitionMap();
|
|
28532
28542
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$5));
|
|
28533
|
-
definitionMap.set('version', literal('
|
|
28543
|
+
definitionMap.set('version', literal('22.0.0-next.1'));
|
|
28534
28544
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
28535
28545
|
definitionMap.set('type', metadata.type);
|
|
28536
28546
|
definitionMap.set('decorators', metadata.decorators);
|
|
@@ -28548,7 +28558,7 @@ function compileComponentDeclareClassMetadata(metadata, dependencies) {
|
|
|
28548
28558
|
callbackReturnDefinitionMap.set('ctorParameters', metadata.ctorParameters ?? literal(null));
|
|
28549
28559
|
callbackReturnDefinitionMap.set('propDecorators', metadata.propDecorators ?? literal(null));
|
|
28550
28560
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION));
|
|
28551
|
-
definitionMap.set('version', literal('
|
|
28561
|
+
definitionMap.set('version', literal('22.0.0-next.1'));
|
|
28552
28562
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
28553
28563
|
definitionMap.set('type', metadata.type);
|
|
28554
28564
|
definitionMap.set('resolveDeferredDeps', compileComponentMetadataAsyncResolver(dependencies));
|
|
@@ -28621,7 +28631,7 @@ function createDirectiveDefinitionMap(meta) {
|
|
|
28621
28631
|
const definitionMap = new DefinitionMap();
|
|
28622
28632
|
const minVersion = getMinimumVersionForPartialOutput(meta);
|
|
28623
28633
|
definitionMap.set('minVersion', literal(minVersion));
|
|
28624
|
-
definitionMap.set('version', literal('
|
|
28634
|
+
definitionMap.set('version', literal('22.0.0-next.1'));
|
|
28625
28635
|
definitionMap.set('type', meta.type.value);
|
|
28626
28636
|
if (meta.isStandalone !== undefined) {
|
|
28627
28637
|
definitionMap.set('isStandalone', literal(meta.isStandalone));
|
|
@@ -28963,7 +28973,7 @@ const MINIMUM_PARTIAL_LINKER_VERSION$4 = '12.0.0';
|
|
|
28963
28973
|
function compileDeclareFactoryFunction(meta) {
|
|
28964
28974
|
const definitionMap = new DefinitionMap();
|
|
28965
28975
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$4));
|
|
28966
|
-
definitionMap.set('version', literal('
|
|
28976
|
+
definitionMap.set('version', literal('22.0.0-next.1'));
|
|
28967
28977
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
28968
28978
|
definitionMap.set('type', meta.type.value);
|
|
28969
28979
|
definitionMap.set('deps', compileDependencies(meta.deps));
|
|
@@ -28989,7 +28999,7 @@ function compileDeclareInjectableFromMetadata(meta) {
|
|
|
28989
28999
|
function createInjectableDefinitionMap(meta) {
|
|
28990
29000
|
const definitionMap = new DefinitionMap();
|
|
28991
29001
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$3));
|
|
28992
|
-
definitionMap.set('version', literal('
|
|
29002
|
+
definitionMap.set('version', literal('22.0.0-next.1'));
|
|
28993
29003
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
28994
29004
|
definitionMap.set('type', meta.type.value);
|
|
28995
29005
|
if (meta.providedIn !== undefined) {
|
|
@@ -29030,7 +29040,7 @@ function compileDeclareInjectorFromMetadata(meta) {
|
|
|
29030
29040
|
function createInjectorDefinitionMap(meta) {
|
|
29031
29041
|
const definitionMap = new DefinitionMap();
|
|
29032
29042
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$2));
|
|
29033
|
-
definitionMap.set('version', literal('
|
|
29043
|
+
definitionMap.set('version', literal('22.0.0-next.1'));
|
|
29034
29044
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
29035
29045
|
definitionMap.set('type', meta.type.value);
|
|
29036
29046
|
definitionMap.set('providers', meta.providers);
|
|
@@ -29057,7 +29067,7 @@ function createNgModuleDefinitionMap(meta) {
|
|
|
29057
29067
|
throw new Error('Invalid path! Local compilation mode should not get into the partial compilation path');
|
|
29058
29068
|
}
|
|
29059
29069
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$1));
|
|
29060
|
-
definitionMap.set('version', literal('
|
|
29070
|
+
definitionMap.set('version', literal('22.0.0-next.1'));
|
|
29061
29071
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
29062
29072
|
definitionMap.set('type', meta.type.value);
|
|
29063
29073
|
if (meta.bootstrap.length > 0) {
|
|
@@ -29095,7 +29105,7 @@ function compileDeclarePipeFromMetadata(meta) {
|
|
|
29095
29105
|
function createPipeDefinitionMap(meta) {
|
|
29096
29106
|
const definitionMap = new DefinitionMap();
|
|
29097
29107
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION));
|
|
29098
|
-
definitionMap.set('version', literal('
|
|
29108
|
+
definitionMap.set('version', literal('22.0.0-next.1'));
|
|
29099
29109
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
29100
29110
|
definitionMap.set('type', meta.type.value);
|
|
29101
29111
|
if (meta.isStandalone !== undefined) {
|
|
@@ -29169,7 +29179,7 @@ function compileHmrUpdateCallback(definitions, constantStatements, meta) {
|
|
|
29169
29179
|
return new DeclareFunctionStmt(`${meta.className}_UpdateMetadata`, params, body, null, StmtModifier.Final);
|
|
29170
29180
|
}
|
|
29171
29181
|
|
|
29172
|
-
const VERSION = new Version('
|
|
29182
|
+
const VERSION = new Version('22.0.0-next.1');
|
|
29173
29183
|
|
|
29174
29184
|
publishFacade(_global);
|
|
29175
29185
|
|