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