@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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v21.2.0
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 > 0) {
24112
- throw new Error(`"${OnTriggerType.IDLE}" trigger cannot have parameters`);
24120
+ if (parameters.length > 1) {
24121
+ throw new Error(`"${OnTriggerType.IDLE}" trigger can only have zero or one parameters`);
24113
24122
  }
24114
- return new IdleDeferredTrigger(nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan);
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 (normalizedName.startsWith(TEMPLATE_ATTR_PREFIX)) {
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 = normalizedName.substring(TEMPLATE_ATTR_PREFIX.length);
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 = normalizeAttributeName(attribute.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 normalizationAdjustment = attribute.name.length - name.length;
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('21.2.0'));
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('21.2.0'));
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('21.2.0'));
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('21.2.0'));
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('21.2.0'));
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('21.2.0'));
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('21.2.0'));
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('21.2.0'));
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('21.2.0');
29183
+ const VERSION = new Version('22.0.0-next.0');
29173
29184
 
29174
29185
  publishFacade(_global);
29175
29186