@angular/compiler 20.0.0-next.6 → 20.0.0-next.8
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 +202 -93
- package/fesm2022/compiler.mjs.map +1 -1
- package/index.d.ts +19 -8
- package/package.json +1 -1
package/fesm2022/compiler.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v20.0.0-next.
|
|
2
|
+
* @license Angular v20.0.0-next.8
|
|
3
3
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -397,6 +397,15 @@ class SelectorContext {
|
|
|
397
397
|
return result;
|
|
398
398
|
}
|
|
399
399
|
}
|
|
400
|
+
class SelectorlessMatcher {
|
|
401
|
+
registry;
|
|
402
|
+
constructor(registry) {
|
|
403
|
+
this.registry = registry;
|
|
404
|
+
}
|
|
405
|
+
match(name) {
|
|
406
|
+
return this.registry.get(name) ?? null;
|
|
407
|
+
}
|
|
408
|
+
}
|
|
400
409
|
|
|
401
410
|
// Attention:
|
|
402
411
|
// This file duplicates types and values from @angular/core
|
|
@@ -928,6 +937,7 @@ var BinaryOperator;
|
|
|
928
937
|
BinaryOperator[BinaryOperator["BiggerEquals"] = 16] = "BiggerEquals";
|
|
929
938
|
BinaryOperator[BinaryOperator["NullishCoalesce"] = 17] = "NullishCoalesce";
|
|
930
939
|
BinaryOperator[BinaryOperator["Exponentiation"] = 18] = "Exponentiation";
|
|
940
|
+
BinaryOperator[BinaryOperator["In"] = 19] = "In";
|
|
931
941
|
})(BinaryOperator || (BinaryOperator = {}));
|
|
932
942
|
function nullSafeIsEquivalent(base, other) {
|
|
933
943
|
if (base == null || other == null) {
|
|
@@ -3835,6 +3845,9 @@ class AbstractEmitterVisitor {
|
|
|
3835
3845
|
case BinaryOperator.NullishCoalesce:
|
|
3836
3846
|
opStr = '??';
|
|
3837
3847
|
break;
|
|
3848
|
+
case BinaryOperator.In:
|
|
3849
|
+
opStr = 'in';
|
|
3850
|
+
break;
|
|
3838
3851
|
default:
|
|
3839
3852
|
throw new Error(`Unknown operator ${ast.operator}`);
|
|
3840
3853
|
}
|
|
@@ -12191,6 +12204,7 @@ const BINARY_OPERATORS = new Map([
|
|
|
12191
12204
|
['??', BinaryOperator.NullishCoalesce],
|
|
12192
12205
|
['||', BinaryOperator.Or],
|
|
12193
12206
|
['+', BinaryOperator.Plus],
|
|
12207
|
+
['in', BinaryOperator.In],
|
|
12194
12208
|
]);
|
|
12195
12209
|
function namespaceForKey(namespacePrefixKey) {
|
|
12196
12210
|
const NAMESPACES = new Map([
|
|
@@ -18246,6 +18260,7 @@ const KEYWORDS = [
|
|
|
18246
18260
|
'this',
|
|
18247
18261
|
'typeof',
|
|
18248
18262
|
'void',
|
|
18263
|
+
'in',
|
|
18249
18264
|
];
|
|
18250
18265
|
class Lexer {
|
|
18251
18266
|
tokenize(text) {
|
|
@@ -18313,6 +18328,9 @@ class Token {
|
|
|
18313
18328
|
isKeywordVoid() {
|
|
18314
18329
|
return this.type === TokenType.Keyword && this.strValue === 'void';
|
|
18315
18330
|
}
|
|
18331
|
+
isKeywordIn() {
|
|
18332
|
+
return this.type === TokenType.Keyword && this.strValue === 'in';
|
|
18333
|
+
}
|
|
18316
18334
|
isError() {
|
|
18317
18335
|
return this.type === TokenType.Error;
|
|
18318
18336
|
}
|
|
@@ -19356,16 +19374,17 @@ class _ParseAST {
|
|
|
19356
19374
|
return result;
|
|
19357
19375
|
}
|
|
19358
19376
|
parseRelational() {
|
|
19359
|
-
// '<', '>', '<=', '>='
|
|
19377
|
+
// '<', '>', '<=', '>=', 'in'
|
|
19360
19378
|
const start = this.inputIndex;
|
|
19361
19379
|
let result = this.parseAdditive();
|
|
19362
|
-
while (this.next.type == TokenType.Operator) {
|
|
19380
|
+
while (this.next.type == TokenType.Operator || this.next.isKeywordIn) {
|
|
19363
19381
|
const operator = this.next.strValue;
|
|
19364
19382
|
switch (operator) {
|
|
19365
19383
|
case '<':
|
|
19366
19384
|
case '>':
|
|
19367
19385
|
case '<=':
|
|
19368
19386
|
case '>=':
|
|
19387
|
+
case 'in':
|
|
19369
19388
|
this.advance();
|
|
19370
19389
|
const right = this.parseAdditive();
|
|
19371
19390
|
result = new Binary(this.span(start), this.sourceSpan(start), operator, result, right);
|
|
@@ -19528,6 +19547,10 @@ class _ParseAST {
|
|
|
19528
19547
|
this.advance();
|
|
19529
19548
|
return new LiteralPrimitive(this.span(start), this.sourceSpan(start), false);
|
|
19530
19549
|
}
|
|
19550
|
+
else if (this.next.isKeywordIn()) {
|
|
19551
|
+
this.advance();
|
|
19552
|
+
return new LiteralPrimitive(this.span(start), this.sourceSpan(start), 'in');
|
|
19553
|
+
}
|
|
19531
19554
|
else if (this.next.isKeywordThis()) {
|
|
19532
19555
|
this.advance();
|
|
19533
19556
|
return new ThisReceiver(this.span(start), this.sourceSpan(start));
|
|
@@ -20345,7 +20368,7 @@ const SCHEMA = [
|
|
|
20345
20368
|
/* added manually to avoid breaking changes */
|
|
20346
20369
|
',*message,*mozfullscreenchange,*mozfullscreenerror,*mozpointerlockchange,*mozpointerlockerror,*webglcontextcreationerror,*webglcontextlost,*webglcontextrestored',
|
|
20347
20370
|
'[HTMLElement]^[Element]|accessKey,autocapitalize,!autofocus,contentEditable,dir,!draggable,enterKeyHint,!hidden,!inert,innerText,inputMode,lang,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,outerText,!spellcheck,%style,#tabIndex,title,!translate,virtualKeyboardPolicy',
|
|
20348
|
-
'abbr,address,article,aside,b,bdi,bdo,cite,content,code,dd,dfn,dt,em,figcaption,figure,footer,header,hgroup,i,kbd,main,mark,nav,noscript,rb,rp,rt,rtc,ruby,s,samp,section,small,strong,sub,sup,u,var,wbr^[HTMLElement]|accessKey,autocapitalize,!autofocus,contentEditable,dir,!draggable,enterKeyHint,!hidden,innerText,inputMode,lang,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,outerText,!spellcheck,%style,#tabIndex,title,!translate,virtualKeyboardPolicy',
|
|
20371
|
+
'abbr,address,article,aside,b,bdi,bdo,cite,content,code,dd,dfn,dt,em,figcaption,figure,footer,header,hgroup,i,kbd,main,mark,nav,noscript,rb,rp,rt,rtc,ruby,s,samp,search,section,small,strong,sub,sup,u,var,wbr^[HTMLElement]|accessKey,autocapitalize,!autofocus,contentEditable,dir,!draggable,enterKeyHint,!hidden,innerText,inputMode,lang,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,outerText,!spellcheck,%style,#tabIndex,title,!translate,virtualKeyboardPolicy',
|
|
20349
20372
|
'media^[HTMLElement]|!autoplay,!controls,%controlsList,%crossOrigin,#currentTime,!defaultMuted,#defaultPlaybackRate,!disableRemotePlayback,!loop,!muted,*encrypted,*waitingforkey,#playbackRate,preload,!preservesPitch,src,%srcObject,#volume',
|
|
20350
20373
|
':svg:^[HTMLElement]|!autofocus,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,%style,#tabIndex',
|
|
20351
20374
|
':svg:graphics^:svg:|',
|
|
@@ -20412,6 +20435,7 @@ const SCHEMA = [
|
|
|
20412
20435
|
'source^[HTMLElement]|#height,media,sizes,src,srcset,type,#width',
|
|
20413
20436
|
'span^[HTMLElement]|',
|
|
20414
20437
|
'style^[HTMLElement]|!disabled,media,type',
|
|
20438
|
+
'search^[HTMLELement]|',
|
|
20415
20439
|
'caption^[HTMLElement]|align',
|
|
20416
20440
|
'th,td^[HTMLElement]|abbr,align,axis,bgColor,ch,chOff,#colSpan,headers,height,!noWrap,#rowSpan,scope,vAlign,width',
|
|
20417
20441
|
'col,colgroup^[HTMLElement]|align,ch,chOff,#span,vAlign,width',
|
|
@@ -29269,6 +29293,7 @@ class HtmlAstToIvyAst {
|
|
|
29269
29293
|
return null;
|
|
29270
29294
|
}
|
|
29271
29295
|
const { attributes, boundEvents, references, templateVariables, elementHasInlineTemplate, parsedProperties, templateParsedProperties, i18nAttrsMeta, } = this.prepareAttributes(component.attrs, false);
|
|
29296
|
+
this.validateSelectorlessReferences(references);
|
|
29272
29297
|
const directives = this.extractDirectives(component);
|
|
29273
29298
|
let children;
|
|
29274
29299
|
if (component.attrs.find((attr) => attr.name === 'ngNonBindable')) {
|
|
@@ -29571,6 +29596,7 @@ class HtmlAstToIvyAst {
|
|
|
29571
29596
|
continue;
|
|
29572
29597
|
}
|
|
29573
29598
|
const { attributes, parsedProperties, boundEvents, references, i18nAttrsMeta } = this.prepareAttributes(directive.attrs, false);
|
|
29599
|
+
this.validateSelectorlessReferences(references);
|
|
29574
29600
|
const { bound: inputs } = this.categorizePropertyAttributes(elementName, parsedProperties, i18nAttrsMeta);
|
|
29575
29601
|
for (const input of inputs) {
|
|
29576
29602
|
if (input.type !== BindingType.Property && input.type !== BindingType.TwoWay) {
|
|
@@ -29654,6 +29680,23 @@ class HtmlAstToIvyAst {
|
|
|
29654
29680
|
/* isAssignmentEvent */ true, sourceSpan, valueSpan || sourceSpan, targetMatchableAttrs, events, keySpan);
|
|
29655
29681
|
addEvents(events, boundEvents);
|
|
29656
29682
|
}
|
|
29683
|
+
validateSelectorlessReferences(references) {
|
|
29684
|
+
if (references.length === 0) {
|
|
29685
|
+
return;
|
|
29686
|
+
}
|
|
29687
|
+
const seenNames = new Set();
|
|
29688
|
+
for (const ref of references) {
|
|
29689
|
+
if (ref.value.length > 0) {
|
|
29690
|
+
this.reportError('Cannot specify a value for a local reference in this context', ref.valueSpan || ref.sourceSpan);
|
|
29691
|
+
}
|
|
29692
|
+
else if (seenNames.has(ref.name)) {
|
|
29693
|
+
this.reportError('Duplicate reference names are not allowed', ref.sourceSpan);
|
|
29694
|
+
}
|
|
29695
|
+
else {
|
|
29696
|
+
seenNames.add(ref.name);
|
|
29697
|
+
}
|
|
29698
|
+
}
|
|
29699
|
+
}
|
|
29657
29700
|
reportError(message, sourceSpan, level = ParseErrorLevel.ERROR) {
|
|
29658
29701
|
this.errors.push(new ParseError(sourceSpan, message, level));
|
|
29659
29702
|
}
|
|
@@ -29755,6 +29798,7 @@ function parseTemplate(template, templateUrl, options = {}) {
|
|
|
29755
29798
|
tokenizeExpansionForms: true,
|
|
29756
29799
|
tokenizeBlocks: options.enableBlockSyntax ?? true,
|
|
29757
29800
|
tokenizeLet: options.enableLetSyntax ?? true,
|
|
29801
|
+
selectorlessEnabled: options.enableSelectorless ?? false,
|
|
29758
29802
|
});
|
|
29759
29803
|
if (!options.alwaysAttemptHtmlToR3AstConversion &&
|
|
29760
29804
|
parseResult.errors &&
|
|
@@ -30513,9 +30557,9 @@ class Scope {
|
|
|
30513
30557
|
*/
|
|
30514
30558
|
namedEntities = new Map();
|
|
30515
30559
|
/**
|
|
30516
|
-
* Set of
|
|
30560
|
+
* Set of element-like nodes that belong to this scope.
|
|
30517
30561
|
*/
|
|
30518
|
-
|
|
30562
|
+
elementLikeInScope = new Set();
|
|
30519
30563
|
/**
|
|
30520
30564
|
* Child `Scope`s for immediately nested `ScopedNode`s.
|
|
30521
30565
|
*/
|
|
@@ -30576,12 +30620,7 @@ class Scope {
|
|
|
30576
30620
|
}
|
|
30577
30621
|
}
|
|
30578
30622
|
visitElement(element) {
|
|
30579
|
-
|
|
30580
|
-
// `Element`s in the template may have `Reference`s which are captured in the scope.
|
|
30581
|
-
element.references.forEach((node) => this.visitReference(node));
|
|
30582
|
-
// Recurse into the `Element`'s children.
|
|
30583
|
-
element.children.forEach((node) => node.visit(this));
|
|
30584
|
-
this.elementsInScope.add(element);
|
|
30623
|
+
this.visitElementLike(element);
|
|
30585
30624
|
}
|
|
30586
30625
|
visitTemplate(template) {
|
|
30587
30626
|
template.directives.forEach((node) => node.visit(this));
|
|
@@ -30640,10 +30679,10 @@ class Scope {
|
|
|
30640
30679
|
this.maybeDeclare(decl);
|
|
30641
30680
|
}
|
|
30642
30681
|
visitComponent(component) {
|
|
30643
|
-
|
|
30682
|
+
this.visitElementLike(component);
|
|
30644
30683
|
}
|
|
30645
30684
|
visitDirective(directive) {
|
|
30646
|
-
|
|
30685
|
+
directive.references.forEach((current) => this.visitReference(current));
|
|
30647
30686
|
}
|
|
30648
30687
|
// Unused visitors.
|
|
30649
30688
|
visitBoundAttribute(attr) { }
|
|
@@ -30654,6 +30693,12 @@ class Scope {
|
|
|
30654
30693
|
visitIcu(icu) { }
|
|
30655
30694
|
visitDeferredTrigger(trigger) { }
|
|
30656
30695
|
visitUnknownBlock(block) { }
|
|
30696
|
+
visitElementLike(node) {
|
|
30697
|
+
node.directives.forEach((current) => current.visit(this));
|
|
30698
|
+
node.references.forEach((current) => this.visitReference(current));
|
|
30699
|
+
node.children.forEach((current) => current.visit(this));
|
|
30700
|
+
this.elementLikeInScope.add(node);
|
|
30701
|
+
}
|
|
30657
30702
|
maybeDeclare(thing) {
|
|
30658
30703
|
// Declare something with a name, as long as that name isn't taken.
|
|
30659
30704
|
if (!this.namedEntities.has(thing.name)) {
|
|
@@ -30703,15 +30748,15 @@ class Scope {
|
|
|
30703
30748
|
* Usually used via the static `apply()` method.
|
|
30704
30749
|
*/
|
|
30705
30750
|
class DirectiveBinder {
|
|
30706
|
-
|
|
30751
|
+
directiveMatcher;
|
|
30707
30752
|
directives;
|
|
30708
30753
|
eagerDirectives;
|
|
30709
30754
|
bindings;
|
|
30710
30755
|
references;
|
|
30711
30756
|
// Indicates whether we are visiting elements within a `defer` block
|
|
30712
30757
|
isInDeferBlock = false;
|
|
30713
|
-
constructor(
|
|
30714
|
-
this.
|
|
30758
|
+
constructor(directiveMatcher, directives, eagerDirectives, bindings, references) {
|
|
30759
|
+
this.directiveMatcher = directiveMatcher;
|
|
30715
30760
|
this.directives = directives;
|
|
30716
30761
|
this.eagerDirectives = eagerDirectives;
|
|
30717
30762
|
this.bindings = bindings;
|
|
@@ -30729,8 +30774,8 @@ class DirectiveBinder {
|
|
|
30729
30774
|
* map which resolves #references (`Reference`s) within the template to the named directive or
|
|
30730
30775
|
* template node.
|
|
30731
30776
|
*/
|
|
30732
|
-
static apply(template,
|
|
30733
|
-
const matcher = new DirectiveBinder(
|
|
30777
|
+
static apply(template, directiveMatcher, directives, eagerDirectives, bindings, references) {
|
|
30778
|
+
const matcher = new DirectiveBinder(directiveMatcher, directives, eagerDirectives, bindings, references);
|
|
30734
30779
|
matcher.ingest(template);
|
|
30735
30780
|
}
|
|
30736
30781
|
ingest(template) {
|
|
@@ -30742,23 +30787,129 @@ class DirectiveBinder {
|
|
|
30742
30787
|
visitTemplate(template) {
|
|
30743
30788
|
this.visitElementOrTemplate(template);
|
|
30744
30789
|
}
|
|
30790
|
+
visitDeferredBlock(deferred) {
|
|
30791
|
+
const wasInDeferBlock = this.isInDeferBlock;
|
|
30792
|
+
this.isInDeferBlock = true;
|
|
30793
|
+
deferred.children.forEach((child) => child.visit(this));
|
|
30794
|
+
this.isInDeferBlock = wasInDeferBlock;
|
|
30795
|
+
deferred.placeholder?.visit(this);
|
|
30796
|
+
deferred.loading?.visit(this);
|
|
30797
|
+
deferred.error?.visit(this);
|
|
30798
|
+
}
|
|
30799
|
+
visitDeferredBlockPlaceholder(block) {
|
|
30800
|
+
block.children.forEach((child) => child.visit(this));
|
|
30801
|
+
}
|
|
30802
|
+
visitDeferredBlockError(block) {
|
|
30803
|
+
block.children.forEach((child) => child.visit(this));
|
|
30804
|
+
}
|
|
30805
|
+
visitDeferredBlockLoading(block) {
|
|
30806
|
+
block.children.forEach((child) => child.visit(this));
|
|
30807
|
+
}
|
|
30808
|
+
visitSwitchBlock(block) {
|
|
30809
|
+
block.cases.forEach((node) => node.visit(this));
|
|
30810
|
+
}
|
|
30811
|
+
visitSwitchBlockCase(block) {
|
|
30812
|
+
block.children.forEach((node) => node.visit(this));
|
|
30813
|
+
}
|
|
30814
|
+
visitForLoopBlock(block) {
|
|
30815
|
+
block.item.visit(this);
|
|
30816
|
+
block.contextVariables.forEach((v) => v.visit(this));
|
|
30817
|
+
block.children.forEach((node) => node.visit(this));
|
|
30818
|
+
block.empty?.visit(this);
|
|
30819
|
+
}
|
|
30820
|
+
visitForLoopBlockEmpty(block) {
|
|
30821
|
+
block.children.forEach((node) => node.visit(this));
|
|
30822
|
+
}
|
|
30823
|
+
visitIfBlock(block) {
|
|
30824
|
+
block.branches.forEach((node) => node.visit(this));
|
|
30825
|
+
}
|
|
30826
|
+
visitIfBlockBranch(block) {
|
|
30827
|
+
block.expressionAlias?.visit(this);
|
|
30828
|
+
block.children.forEach((node) => node.visit(this));
|
|
30829
|
+
}
|
|
30830
|
+
visitContent(content) {
|
|
30831
|
+
content.children.forEach((child) => child.visit(this));
|
|
30832
|
+
}
|
|
30833
|
+
visitComponent(node) {
|
|
30834
|
+
const directives = [];
|
|
30835
|
+
let componentMetas = null;
|
|
30836
|
+
if (this.directiveMatcher instanceof SelectorlessMatcher) {
|
|
30837
|
+
componentMetas = this.directiveMatcher.match(node.componentName);
|
|
30838
|
+
if (componentMetas !== null) {
|
|
30839
|
+
directives.push(...componentMetas);
|
|
30840
|
+
}
|
|
30841
|
+
for (const directive of node.directives) {
|
|
30842
|
+
const directiveMetas = this.directiveMatcher.match(directive.name);
|
|
30843
|
+
if (directiveMetas !== null) {
|
|
30844
|
+
directives.push(...directiveMetas);
|
|
30845
|
+
}
|
|
30846
|
+
}
|
|
30847
|
+
}
|
|
30848
|
+
this.trackMatchedDirectives(node, directives);
|
|
30849
|
+
if (componentMetas !== null) {
|
|
30850
|
+
this.trackSelectorlessBindings(node, componentMetas);
|
|
30851
|
+
}
|
|
30852
|
+
node.directives.forEach((directive) => directive.visit(this));
|
|
30853
|
+
node.children.forEach((child) => child.visit(this));
|
|
30854
|
+
}
|
|
30855
|
+
visitDirective(node) {
|
|
30856
|
+
const directives = this.directiveMatcher instanceof SelectorlessMatcher
|
|
30857
|
+
? this.directiveMatcher.match(node.name)
|
|
30858
|
+
: null;
|
|
30859
|
+
if (directives !== null) {
|
|
30860
|
+
this.trackSelectorlessBindings(node, directives);
|
|
30861
|
+
}
|
|
30862
|
+
}
|
|
30745
30863
|
visitElementOrTemplate(node) {
|
|
30746
|
-
// First, determine the HTML shape of the node for the purpose of directive matching.
|
|
30747
|
-
// Do this by building up a `CssSelector` for the node.
|
|
30748
|
-
const cssSelector = createCssSelectorFromNode(node);
|
|
30749
|
-
// TODO(crisbeto): account for selectorless directives here.
|
|
30750
|
-
if (node.directives.length > 0) {
|
|
30751
|
-
throw new Error('TODO');
|
|
30752
|
-
}
|
|
30753
|
-
// Next, use the `SelectorMatcher` to get the list of directives on the node.
|
|
30754
30864
|
const directives = [];
|
|
30755
|
-
this.
|
|
30865
|
+
if (this.directiveMatcher instanceof SelectorMatcher) {
|
|
30866
|
+
// First, determine the HTML shape of the node for the purpose of directive matching.
|
|
30867
|
+
// Do this by building up a `CssSelector` for the node.
|
|
30868
|
+
const cssSelector = createCssSelectorFromNode(node);
|
|
30869
|
+
this.directiveMatcher.match(cssSelector, (_selector, results) => {
|
|
30870
|
+
directives.push(...results);
|
|
30871
|
+
});
|
|
30872
|
+
this.trackSelectorMatchedBindings(node, directives);
|
|
30873
|
+
}
|
|
30874
|
+
else {
|
|
30875
|
+
for (const directive of node.directives) {
|
|
30876
|
+
const matchedDirectives = this.directiveMatcher.match(directive.name);
|
|
30877
|
+
if (matchedDirectives !== null) {
|
|
30878
|
+
directives.push(...matchedDirectives);
|
|
30879
|
+
}
|
|
30880
|
+
}
|
|
30881
|
+
}
|
|
30882
|
+
this.trackMatchedDirectives(node, directives);
|
|
30883
|
+
node.directives.forEach((directive) => directive.visit(this));
|
|
30884
|
+
node.children.forEach((child) => child.visit(this));
|
|
30885
|
+
}
|
|
30886
|
+
trackMatchedDirectives(node, directives) {
|
|
30756
30887
|
if (directives.length > 0) {
|
|
30757
30888
|
this.directives.set(node, directives);
|
|
30758
30889
|
if (!this.isInDeferBlock) {
|
|
30759
30890
|
this.eagerDirectives.push(...directives);
|
|
30760
30891
|
}
|
|
30761
30892
|
}
|
|
30893
|
+
}
|
|
30894
|
+
trackSelectorlessBindings(node, metas) {
|
|
30895
|
+
const setBinding = (meta, attribute, ioType) => {
|
|
30896
|
+
if (meta[ioType].hasBindingPropertyName(attribute.name)) {
|
|
30897
|
+
this.bindings.set(attribute, meta);
|
|
30898
|
+
}
|
|
30899
|
+
};
|
|
30900
|
+
for (const meta of metas) {
|
|
30901
|
+
node.inputs.forEach((input) => setBinding(meta, input, 'inputs'));
|
|
30902
|
+
node.attributes.forEach((attr) => setBinding(meta, attr, 'inputs'));
|
|
30903
|
+
node.outputs.forEach((output) => setBinding(meta, output, 'outputs'));
|
|
30904
|
+
}
|
|
30905
|
+
// TODO(crisbeto): currently it's unclear how references should behave under selectorless,
|
|
30906
|
+
// given that there's one named class which can bring in multiple host directives.
|
|
30907
|
+
// For the time being only register the first directive as the reference target.
|
|
30908
|
+
if (metas.length > 0) {
|
|
30909
|
+
node.references.forEach((ref) => this.references.set(ref, { directive: metas[0], node: node }));
|
|
30910
|
+
}
|
|
30911
|
+
}
|
|
30912
|
+
trackSelectorMatchedBindings(node, directives) {
|
|
30762
30913
|
// Resolve any references that are created on this node.
|
|
30763
30914
|
node.references.forEach((ref) => {
|
|
30764
30915
|
let dirTarget = null;
|
|
@@ -30789,6 +30940,7 @@ class DirectiveBinder {
|
|
|
30789
30940
|
this.references.set(ref, node);
|
|
30790
30941
|
}
|
|
30791
30942
|
});
|
|
30943
|
+
// Associate attributes/bindings on the node with directives or with the node itself.
|
|
30792
30944
|
const setAttributeBinding = (attribute, ioType) => {
|
|
30793
30945
|
const dir = directives.find((dir) => dir[ioType].hasBindingPropertyName(attribute.name));
|
|
30794
30946
|
const binding = dir !== undefined ? dir : node;
|
|
@@ -30803,57 +30955,6 @@ class DirectiveBinder {
|
|
|
30803
30955
|
}
|
|
30804
30956
|
// Node outputs (bound events) can be bound to an output on a directive.
|
|
30805
30957
|
node.outputs.forEach((output) => setAttributeBinding(output, 'outputs'));
|
|
30806
|
-
// Recurse into the node's children.
|
|
30807
|
-
node.children.forEach((child) => child.visit(this));
|
|
30808
|
-
}
|
|
30809
|
-
visitDeferredBlock(deferred) {
|
|
30810
|
-
const wasInDeferBlock = this.isInDeferBlock;
|
|
30811
|
-
this.isInDeferBlock = true;
|
|
30812
|
-
deferred.children.forEach((child) => child.visit(this));
|
|
30813
|
-
this.isInDeferBlock = wasInDeferBlock;
|
|
30814
|
-
deferred.placeholder?.visit(this);
|
|
30815
|
-
deferred.loading?.visit(this);
|
|
30816
|
-
deferred.error?.visit(this);
|
|
30817
|
-
}
|
|
30818
|
-
visitDeferredBlockPlaceholder(block) {
|
|
30819
|
-
block.children.forEach((child) => child.visit(this));
|
|
30820
|
-
}
|
|
30821
|
-
visitDeferredBlockError(block) {
|
|
30822
|
-
block.children.forEach((child) => child.visit(this));
|
|
30823
|
-
}
|
|
30824
|
-
visitDeferredBlockLoading(block) {
|
|
30825
|
-
block.children.forEach((child) => child.visit(this));
|
|
30826
|
-
}
|
|
30827
|
-
visitSwitchBlock(block) {
|
|
30828
|
-
block.cases.forEach((node) => node.visit(this));
|
|
30829
|
-
}
|
|
30830
|
-
visitSwitchBlockCase(block) {
|
|
30831
|
-
block.children.forEach((node) => node.visit(this));
|
|
30832
|
-
}
|
|
30833
|
-
visitForLoopBlock(block) {
|
|
30834
|
-
block.item.visit(this);
|
|
30835
|
-
block.contextVariables.forEach((v) => v.visit(this));
|
|
30836
|
-
block.children.forEach((node) => node.visit(this));
|
|
30837
|
-
block.empty?.visit(this);
|
|
30838
|
-
}
|
|
30839
|
-
visitForLoopBlockEmpty(block) {
|
|
30840
|
-
block.children.forEach((node) => node.visit(this));
|
|
30841
|
-
}
|
|
30842
|
-
visitIfBlock(block) {
|
|
30843
|
-
block.branches.forEach((node) => node.visit(this));
|
|
30844
|
-
}
|
|
30845
|
-
visitIfBlockBranch(block) {
|
|
30846
|
-
block.expressionAlias?.visit(this);
|
|
30847
|
-
block.children.forEach((node) => node.visit(this));
|
|
30848
|
-
}
|
|
30849
|
-
visitContent(content) {
|
|
30850
|
-
content.children.forEach((child) => child.visit(this));
|
|
30851
|
-
}
|
|
30852
|
-
visitComponent(component) {
|
|
30853
|
-
throw new Error('TODO');
|
|
30854
|
-
}
|
|
30855
|
-
visitDirective(directive) {
|
|
30856
|
-
throw new Error('TODO');
|
|
30857
30958
|
}
|
|
30858
30959
|
// Unused visitors.
|
|
30859
30960
|
visitVariable(variable) { }
|
|
@@ -31012,10 +31113,16 @@ class TemplateBinder extends RecursiveAstVisitor {
|
|
|
31012
31113
|
}
|
|
31013
31114
|
}
|
|
31014
31115
|
visitComponent(component) {
|
|
31015
|
-
|
|
31116
|
+
component.inputs.forEach(this.visitNode);
|
|
31117
|
+
component.outputs.forEach(this.visitNode);
|
|
31118
|
+
component.directives.forEach(this.visitNode);
|
|
31119
|
+
component.children.forEach(this.visitNode);
|
|
31120
|
+
component.references.forEach(this.visitNode);
|
|
31016
31121
|
}
|
|
31017
31122
|
visitDirective(directive) {
|
|
31018
|
-
|
|
31123
|
+
directive.inputs.forEach(this.visitNode);
|
|
31124
|
+
directive.outputs.forEach(this.visitNode);
|
|
31125
|
+
directive.references.forEach(this.visitNode);
|
|
31019
31126
|
}
|
|
31020
31127
|
// Unused template visitors
|
|
31021
31128
|
visitText(text) { }
|
|
@@ -31259,7 +31366,7 @@ class R3BoundTarget {
|
|
|
31259
31366
|
const stack = [this.deferredScopes.get(block)];
|
|
31260
31367
|
while (stack.length > 0) {
|
|
31261
31368
|
const current = stack.pop();
|
|
31262
|
-
if (current.
|
|
31369
|
+
if (current.elementLikeInScope.has(element)) {
|
|
31263
31370
|
return true;
|
|
31264
31371
|
}
|
|
31265
31372
|
stack.push(...current.childScopes.values());
|
|
@@ -31286,7 +31393,9 @@ class R3BoundTarget {
|
|
|
31286
31393
|
if (target instanceof Element$1) {
|
|
31287
31394
|
return target;
|
|
31288
31395
|
}
|
|
31289
|
-
if (target instanceof Template
|
|
31396
|
+
if (target instanceof Template ||
|
|
31397
|
+
target.node instanceof Component$1 ||
|
|
31398
|
+
target.node instanceof Directive$1) {
|
|
31290
31399
|
return null;
|
|
31291
31400
|
}
|
|
31292
31401
|
return this.referenceTargetToElement(target.node);
|
|
@@ -33766,7 +33875,7 @@ const MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION = '18.0.0';
|
|
|
33766
33875
|
function compileDeclareClassMetadata(metadata) {
|
|
33767
33876
|
const definitionMap = new DefinitionMap();
|
|
33768
33877
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$5));
|
|
33769
|
-
definitionMap.set('version', literal('20.0.0-next.
|
|
33878
|
+
definitionMap.set('version', literal('20.0.0-next.8'));
|
|
33770
33879
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
33771
33880
|
definitionMap.set('type', metadata.type);
|
|
33772
33881
|
definitionMap.set('decorators', metadata.decorators);
|
|
@@ -33784,7 +33893,7 @@ function compileComponentDeclareClassMetadata(metadata, dependencies) {
|
|
|
33784
33893
|
callbackReturnDefinitionMap.set('ctorParameters', metadata.ctorParameters ?? literal(null));
|
|
33785
33894
|
callbackReturnDefinitionMap.set('propDecorators', metadata.propDecorators ?? literal(null));
|
|
33786
33895
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION));
|
|
33787
|
-
definitionMap.set('version', literal('20.0.0-next.
|
|
33896
|
+
definitionMap.set('version', literal('20.0.0-next.8'));
|
|
33788
33897
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
33789
33898
|
definitionMap.set('type', metadata.type);
|
|
33790
33899
|
definitionMap.set('resolveDeferredDeps', compileComponentMetadataAsyncResolver(dependencies));
|
|
@@ -33879,7 +33988,7 @@ function createDirectiveDefinitionMap(meta) {
|
|
|
33879
33988
|
const definitionMap = new DefinitionMap();
|
|
33880
33989
|
const minVersion = getMinimumVersionForPartialOutput(meta);
|
|
33881
33990
|
definitionMap.set('minVersion', literal(minVersion));
|
|
33882
|
-
definitionMap.set('version', literal('20.0.0-next.
|
|
33991
|
+
definitionMap.set('version', literal('20.0.0-next.8'));
|
|
33883
33992
|
// e.g. `type: MyDirective`
|
|
33884
33993
|
definitionMap.set('type', meta.type.value);
|
|
33885
33994
|
if (meta.isStandalone !== undefined) {
|
|
@@ -34295,7 +34404,7 @@ const MINIMUM_PARTIAL_LINKER_VERSION$4 = '12.0.0';
|
|
|
34295
34404
|
function compileDeclareFactoryFunction(meta) {
|
|
34296
34405
|
const definitionMap = new DefinitionMap();
|
|
34297
34406
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$4));
|
|
34298
|
-
definitionMap.set('version', literal('20.0.0-next.
|
|
34407
|
+
definitionMap.set('version', literal('20.0.0-next.8'));
|
|
34299
34408
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
34300
34409
|
definitionMap.set('type', meta.type.value);
|
|
34301
34410
|
definitionMap.set('deps', compileDependencies(meta.deps));
|
|
@@ -34330,7 +34439,7 @@ function compileDeclareInjectableFromMetadata(meta) {
|
|
|
34330
34439
|
function createInjectableDefinitionMap(meta) {
|
|
34331
34440
|
const definitionMap = new DefinitionMap();
|
|
34332
34441
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$3));
|
|
34333
|
-
definitionMap.set('version', literal('20.0.0-next.
|
|
34442
|
+
definitionMap.set('version', literal('20.0.0-next.8'));
|
|
34334
34443
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
34335
34444
|
definitionMap.set('type', meta.type.value);
|
|
34336
34445
|
// Only generate providedIn property if it has a non-null value
|
|
@@ -34381,7 +34490,7 @@ function compileDeclareInjectorFromMetadata(meta) {
|
|
|
34381
34490
|
function createInjectorDefinitionMap(meta) {
|
|
34382
34491
|
const definitionMap = new DefinitionMap();
|
|
34383
34492
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$2));
|
|
34384
|
-
definitionMap.set('version', literal('20.0.0-next.
|
|
34493
|
+
definitionMap.set('version', literal('20.0.0-next.8'));
|
|
34385
34494
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
34386
34495
|
definitionMap.set('type', meta.type.value);
|
|
34387
34496
|
definitionMap.set('providers', meta.providers);
|
|
@@ -34414,7 +34523,7 @@ function createNgModuleDefinitionMap(meta) {
|
|
|
34414
34523
|
throw new Error('Invalid path! Local compilation mode should not get into the partial compilation path');
|
|
34415
34524
|
}
|
|
34416
34525
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$1));
|
|
34417
|
-
definitionMap.set('version', literal('20.0.0-next.
|
|
34526
|
+
definitionMap.set('version', literal('20.0.0-next.8'));
|
|
34418
34527
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
34419
34528
|
definitionMap.set('type', meta.type.value);
|
|
34420
34529
|
// We only generate the keys in the metadata if the arrays contain values.
|
|
@@ -34465,7 +34574,7 @@ function compileDeclarePipeFromMetadata(meta) {
|
|
|
34465
34574
|
function createPipeDefinitionMap(meta) {
|
|
34466
34575
|
const definitionMap = new DefinitionMap();
|
|
34467
34576
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION));
|
|
34468
|
-
definitionMap.set('version', literal('20.0.0-next.
|
|
34577
|
+
definitionMap.set('version', literal('20.0.0-next.8'));
|
|
34469
34578
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
34470
34579
|
// e.g. `type: MyPipe`
|
|
34471
34580
|
definitionMap.set('type', meta.type.value);
|
|
@@ -34623,7 +34732,7 @@ function compileHmrUpdateCallback(definitions, constantStatements, meta) {
|
|
|
34623
34732
|
* @description
|
|
34624
34733
|
* Entry point for all public APIs of the compiler package.
|
|
34625
34734
|
*/
|
|
34626
|
-
const VERSION = new Version('20.0.0-next.
|
|
34735
|
+
const VERSION = new Version('20.0.0-next.8');
|
|
34627
34736
|
|
|
34628
34737
|
//////////////////////////////////////
|
|
34629
34738
|
// THIS FILE HAS GLOBAL SIDE EFFECT //
|
|
@@ -34649,5 +34758,5 @@ const VERSION = new Version('20.0.0-next.6');
|
|
|
34649
34758
|
// the late binding of the Compiler to the @angular/core for jit compilation.
|
|
34650
34759
|
publishFacade(_global);
|
|
34651
34760
|
|
|
34652
|
-
export { AST, ASTWithName, ASTWithSource, AbsoluteSourceSpan, ArrayType, ArrowFunctionExpr, Attribute, Binary, BinaryOperator, BinaryOperatorExpr, BindingPipe, BindingType, Block, BlockParameter, BoundElementProperty, BuiltinType, BuiltinTypeName, CUSTOM_ELEMENTS_SCHEMA, Call, Chain, ChangeDetectionStrategy, CommaExpr, Comment, CompilerConfig, Component, Conditional, ConditionalExpr, ConstantPool, CssSelector, DEFAULT_INTERPOLATION_CONFIG, DYNAMIC_TYPE, DeclareFunctionStmt, DeclareVarStmt, Directive, DomElementSchemaRegistry, DynamicImportExpr, EOF, Element, ElementSchemaRegistry, EmitterVisitorContext, EmptyExpr$1 as EmptyExpr, Expansion, ExpansionCase, Expression, ExpressionBinding, ExpressionStatement, ExpressionType, ExternalExpr, ExternalReference, FactoryTarget$1 as FactoryTarget, FunctionExpr, HtmlParser, HtmlTagDefinition, I18NHtmlParser, IfStmt, ImplicitReceiver, InstantiateExpr, Interpolation$1 as Interpolation, InterpolationConfig, InvokeFunctionExpr, JSDocComment, JitEvaluator, KeyedRead, KeyedWrite, LeadingComment, LetDeclaration, Lexer, LiteralArray, LiteralArrayExpr, LiteralExpr, LiteralMap, LiteralMapExpr, LiteralPrimitive, LocalizedString, MapType, MessageBundle, NONE_TYPE, NO_ERRORS_SCHEMA, NodeWithI18n, NonNullAssert, NotExpr, ParenthesizedExpr, ParenthesizedExpression, ParseError, ParseErrorLevel, ParseLocation, ParseSourceFile, ParseSourceSpan, ParseSpan, ParseTreeResult, ParsedEvent, ParsedEventType, ParsedProperty, ParsedPropertyType, ParsedVariable, Parser, ParserError, PrefixNot, PropertyRead, PropertyWrite, Identifiers as R3Identifiers, R3NgModuleMetadataKind, R3SelectorScopeMode, R3TargetBinder, R3TemplateDependencyKind, ReadKeyExpr, ReadPropExpr, ReadVarExpr, RecursiveAstVisitor, RecursiveVisitor, ResourceLoader, ReturnStatement, STRING_TYPE, SafeCall, SafeKeyedRead, SafePropertyRead, SelectorContext, SelectorListContext, SelectorMatcher, Serializer, SplitInterpolation, Statement, StmtModifier, StringToken, StringTokenKind, TagContentType, TaggedTemplateLiteral, TaggedTemplateLiteralExpr, TemplateBindingParseResult, TemplateLiteral, TemplateLiteralElement, TemplateLiteralElementExpr, TemplateLiteralExpr, Text, ThisReceiver, BlockNode as TmplAstBlockNode, BoundAttribute as TmplAstBoundAttribute, BoundDeferredTrigger as TmplAstBoundDeferredTrigger, BoundEvent as TmplAstBoundEvent, BoundText as TmplAstBoundText, Component$1 as TmplAstComponent, Content as TmplAstContent, DeferredBlock as TmplAstDeferredBlock, DeferredBlockError as TmplAstDeferredBlockError, DeferredBlockLoading as TmplAstDeferredBlockLoading, DeferredBlockPlaceholder as TmplAstDeferredBlockPlaceholder, DeferredTrigger as TmplAstDeferredTrigger, Directive$1 as TmplAstDirective, Element$1 as TmplAstElement, ForLoopBlock as TmplAstForLoopBlock, ForLoopBlockEmpty as TmplAstForLoopBlockEmpty, HostElement as TmplAstHostElement, HoverDeferredTrigger as TmplAstHoverDeferredTrigger, Icu$1 as TmplAstIcu, IdleDeferredTrigger as TmplAstIdleDeferredTrigger, IfBlock as TmplAstIfBlock, IfBlockBranch as TmplAstIfBlockBranch, ImmediateDeferredTrigger as TmplAstImmediateDeferredTrigger, InteractionDeferredTrigger as TmplAstInteractionDeferredTrigger, LetDeclaration$1 as TmplAstLetDeclaration, NeverDeferredTrigger as TmplAstNeverDeferredTrigger, RecursiveVisitor$1 as TmplAstRecursiveVisitor, Reference as TmplAstReference, SwitchBlock as TmplAstSwitchBlock, SwitchBlockCase as TmplAstSwitchBlockCase, Template as TmplAstTemplate, Text$3 as TmplAstText, TextAttribute as TmplAstTextAttribute, TimerDeferredTrigger as TmplAstTimerDeferredTrigger, UnknownBlock as TmplAstUnknownBlock, Variable as TmplAstVariable, ViewportDeferredTrigger as TmplAstViewportDeferredTrigger, Token, TokenType, TransplantedType, TreeError, Type, TypeModifier, TypeofExpr, TypeofExpression, Unary, UnaryOperator, UnaryOperatorExpr, VERSION, VariableBinding, Version, ViewEncapsulation, VoidExpr, VoidExpression, WrappedNodeExpr, WriteKeyExpr, WritePropExpr, WriteVarExpr, Xliff, Xliff2, Xmb, XmlParser, Xtb, compileClassDebugInfo, compileClassMetadata, compileComponentClassMetadata, compileComponentDeclareClassMetadata, compileComponentFromMetadata, compileDeclareClassMetadata, compileDeclareComponentFromMetadata, compileDeclareDirectiveFromMetadata, compileDeclareFactoryFunction, compileDeclareInjectableFromMetadata, compileDeclareInjectorFromMetadata, compileDeclareNgModuleFromMetadata, compileDeclarePipeFromMetadata, compileDeferResolverFunction, compileDirectiveFromMetadata, compileFactoryFunction, compileHmrInitializer, compileHmrUpdateCallback, compileInjectable, compileInjector, compileNgModule, compileOpaqueAsyncClassMetadata, compilePipeFromMetadata, computeMsgId, core, createCssSelectorFromNode, createInjectableType, createMayBeForwardRefExpression, devOnlyGuardedExpression, emitDistinctChangesOnlyDefaultValue, encapsulateStyle, findMatchingDirectivesAndPipes, getHtmlTagDefinition, getNsPrefix, getSafePropertyAccessString, identifierName, isNgContainer, isNgContent, isNgTemplate, jsDocComment, leadingComment, literal, literalMap, makeBindingParser, mergeNsAndName, output_ast as outputAst, parseHostBindings, parseTemplate, preserveWhitespacesDefault, publishFacade, r3JitTypeSourceSpan, sanitizeIdentifier, splitNsName, visitAll$1 as tmplAstVisitAll, verifyHostBindings, visitAll };
|
|
34761
|
+
export { AST, ASTWithName, ASTWithSource, AbsoluteSourceSpan, ArrayType, ArrowFunctionExpr, Attribute, Binary, BinaryOperator, BinaryOperatorExpr, BindingPipe, BindingType, Block, BlockParameter, BoundElementProperty, BuiltinType, BuiltinTypeName, CUSTOM_ELEMENTS_SCHEMA, Call, Chain, ChangeDetectionStrategy, CommaExpr, Comment, CompilerConfig, Component, Conditional, ConditionalExpr, ConstantPool, CssSelector, DEFAULT_INTERPOLATION_CONFIG, DYNAMIC_TYPE, DeclareFunctionStmt, DeclareVarStmt, Directive, DomElementSchemaRegistry, DynamicImportExpr, EOF, Element, ElementSchemaRegistry, EmitterVisitorContext, EmptyExpr$1 as EmptyExpr, Expansion, ExpansionCase, Expression, ExpressionBinding, ExpressionStatement, ExpressionType, ExternalExpr, ExternalReference, FactoryTarget$1 as FactoryTarget, FunctionExpr, HtmlParser, HtmlTagDefinition, I18NHtmlParser, IfStmt, ImplicitReceiver, InstantiateExpr, Interpolation$1 as Interpolation, InterpolationConfig, InvokeFunctionExpr, JSDocComment, JitEvaluator, KeyedRead, KeyedWrite, LeadingComment, LetDeclaration, Lexer, LiteralArray, LiteralArrayExpr, LiteralExpr, LiteralMap, LiteralMapExpr, LiteralPrimitive, LocalizedString, MapType, MessageBundle, NONE_TYPE, NO_ERRORS_SCHEMA, NodeWithI18n, NonNullAssert, NotExpr, ParenthesizedExpr, ParenthesizedExpression, ParseError, ParseErrorLevel, ParseLocation, ParseSourceFile, ParseSourceSpan, ParseSpan, ParseTreeResult, ParsedEvent, ParsedEventType, ParsedProperty, ParsedPropertyType, ParsedVariable, Parser, ParserError, PrefixNot, PropertyRead, PropertyWrite, Identifiers as R3Identifiers, R3NgModuleMetadataKind, R3SelectorScopeMode, R3TargetBinder, R3TemplateDependencyKind, ReadKeyExpr, ReadPropExpr, ReadVarExpr, RecursiveAstVisitor, RecursiveVisitor, ResourceLoader, ReturnStatement, STRING_TYPE, SafeCall, SafeKeyedRead, SafePropertyRead, SelectorContext, SelectorListContext, SelectorMatcher, SelectorlessMatcher, Serializer, SplitInterpolation, Statement, StmtModifier, StringToken, StringTokenKind, TagContentType, TaggedTemplateLiteral, TaggedTemplateLiteralExpr, TemplateBindingParseResult, TemplateLiteral, TemplateLiteralElement, TemplateLiteralElementExpr, TemplateLiteralExpr, Text, ThisReceiver, BlockNode as TmplAstBlockNode, BoundAttribute as TmplAstBoundAttribute, BoundDeferredTrigger as TmplAstBoundDeferredTrigger, BoundEvent as TmplAstBoundEvent, BoundText as TmplAstBoundText, Component$1 as TmplAstComponent, Content as TmplAstContent, DeferredBlock as TmplAstDeferredBlock, DeferredBlockError as TmplAstDeferredBlockError, DeferredBlockLoading as TmplAstDeferredBlockLoading, DeferredBlockPlaceholder as TmplAstDeferredBlockPlaceholder, DeferredTrigger as TmplAstDeferredTrigger, Directive$1 as TmplAstDirective, Element$1 as TmplAstElement, ForLoopBlock as TmplAstForLoopBlock, ForLoopBlockEmpty as TmplAstForLoopBlockEmpty, HostElement as TmplAstHostElement, HoverDeferredTrigger as TmplAstHoverDeferredTrigger, Icu$1 as TmplAstIcu, IdleDeferredTrigger as TmplAstIdleDeferredTrigger, IfBlock as TmplAstIfBlock, IfBlockBranch as TmplAstIfBlockBranch, ImmediateDeferredTrigger as TmplAstImmediateDeferredTrigger, InteractionDeferredTrigger as TmplAstInteractionDeferredTrigger, LetDeclaration$1 as TmplAstLetDeclaration, NeverDeferredTrigger as TmplAstNeverDeferredTrigger, RecursiveVisitor$1 as TmplAstRecursiveVisitor, Reference as TmplAstReference, SwitchBlock as TmplAstSwitchBlock, SwitchBlockCase as TmplAstSwitchBlockCase, Template as TmplAstTemplate, Text$3 as TmplAstText, TextAttribute as TmplAstTextAttribute, TimerDeferredTrigger as TmplAstTimerDeferredTrigger, UnknownBlock as TmplAstUnknownBlock, Variable as TmplAstVariable, ViewportDeferredTrigger as TmplAstViewportDeferredTrigger, Token, TokenType, TransplantedType, TreeError, Type, TypeModifier, TypeofExpr, TypeofExpression, Unary, UnaryOperator, UnaryOperatorExpr, VERSION, VariableBinding, Version, ViewEncapsulation, VoidExpr, VoidExpression, WrappedNodeExpr, WriteKeyExpr, WritePropExpr, WriteVarExpr, Xliff, Xliff2, Xmb, XmlParser, Xtb, compileClassDebugInfo, compileClassMetadata, compileComponentClassMetadata, compileComponentDeclareClassMetadata, compileComponentFromMetadata, compileDeclareClassMetadata, compileDeclareComponentFromMetadata, compileDeclareDirectiveFromMetadata, compileDeclareFactoryFunction, compileDeclareInjectableFromMetadata, compileDeclareInjectorFromMetadata, compileDeclareNgModuleFromMetadata, compileDeclarePipeFromMetadata, compileDeferResolverFunction, compileDirectiveFromMetadata, compileFactoryFunction, compileHmrInitializer, compileHmrUpdateCallback, compileInjectable, compileInjector, compileNgModule, compileOpaqueAsyncClassMetadata, compilePipeFromMetadata, computeMsgId, core, createCssSelectorFromNode, createInjectableType, createMayBeForwardRefExpression, devOnlyGuardedExpression, emitDistinctChangesOnlyDefaultValue, encapsulateStyle, findMatchingDirectivesAndPipes, getHtmlTagDefinition, getNsPrefix, getSafePropertyAccessString, identifierName, isNgContainer, isNgContent, isNgTemplate, jsDocComment, leadingComment, literal, literalMap, makeBindingParser, mergeNsAndName, output_ast as outputAst, parseHostBindings, parseTemplate, preserveWhitespacesDefault, publishFacade, r3JitTypeSourceSpan, sanitizeIdentifier, splitNsName, visitAll$1 as tmplAstVisitAll, verifyHostBindings, visitAll };
|
|
34653
34762
|
//# sourceMappingURL=compiler.mjs.map
|