@angular/compiler 20.0.0-next.7 → 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 +200 -92
- 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));
|
|
@@ -29270,6 +29293,7 @@ class HtmlAstToIvyAst {
|
|
|
29270
29293
|
return null;
|
|
29271
29294
|
}
|
|
29272
29295
|
const { attributes, boundEvents, references, templateVariables, elementHasInlineTemplate, parsedProperties, templateParsedProperties, i18nAttrsMeta, } = this.prepareAttributes(component.attrs, false);
|
|
29296
|
+
this.validateSelectorlessReferences(references);
|
|
29273
29297
|
const directives = this.extractDirectives(component);
|
|
29274
29298
|
let children;
|
|
29275
29299
|
if (component.attrs.find((attr) => attr.name === 'ngNonBindable')) {
|
|
@@ -29572,6 +29596,7 @@ class HtmlAstToIvyAst {
|
|
|
29572
29596
|
continue;
|
|
29573
29597
|
}
|
|
29574
29598
|
const { attributes, parsedProperties, boundEvents, references, i18nAttrsMeta } = this.prepareAttributes(directive.attrs, false);
|
|
29599
|
+
this.validateSelectorlessReferences(references);
|
|
29575
29600
|
const { bound: inputs } = this.categorizePropertyAttributes(elementName, parsedProperties, i18nAttrsMeta);
|
|
29576
29601
|
for (const input of inputs) {
|
|
29577
29602
|
if (input.type !== BindingType.Property && input.type !== BindingType.TwoWay) {
|
|
@@ -29655,6 +29680,23 @@ class HtmlAstToIvyAst {
|
|
|
29655
29680
|
/* isAssignmentEvent */ true, sourceSpan, valueSpan || sourceSpan, targetMatchableAttrs, events, keySpan);
|
|
29656
29681
|
addEvents(events, boundEvents);
|
|
29657
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
|
+
}
|
|
29658
29700
|
reportError(message, sourceSpan, level = ParseErrorLevel.ERROR) {
|
|
29659
29701
|
this.errors.push(new ParseError(sourceSpan, message, level));
|
|
29660
29702
|
}
|
|
@@ -29756,6 +29798,7 @@ function parseTemplate(template, templateUrl, options = {}) {
|
|
|
29756
29798
|
tokenizeExpansionForms: true,
|
|
29757
29799
|
tokenizeBlocks: options.enableBlockSyntax ?? true,
|
|
29758
29800
|
tokenizeLet: options.enableLetSyntax ?? true,
|
|
29801
|
+
selectorlessEnabled: options.enableSelectorless ?? false,
|
|
29759
29802
|
});
|
|
29760
29803
|
if (!options.alwaysAttemptHtmlToR3AstConversion &&
|
|
29761
29804
|
parseResult.errors &&
|
|
@@ -30514,9 +30557,9 @@ class Scope {
|
|
|
30514
30557
|
*/
|
|
30515
30558
|
namedEntities = new Map();
|
|
30516
30559
|
/**
|
|
30517
|
-
* Set of
|
|
30560
|
+
* Set of element-like nodes that belong to this scope.
|
|
30518
30561
|
*/
|
|
30519
|
-
|
|
30562
|
+
elementLikeInScope = new Set();
|
|
30520
30563
|
/**
|
|
30521
30564
|
* Child `Scope`s for immediately nested `ScopedNode`s.
|
|
30522
30565
|
*/
|
|
@@ -30577,12 +30620,7 @@ class Scope {
|
|
|
30577
30620
|
}
|
|
30578
30621
|
}
|
|
30579
30622
|
visitElement(element) {
|
|
30580
|
-
|
|
30581
|
-
// `Element`s in the template may have `Reference`s which are captured in the scope.
|
|
30582
|
-
element.references.forEach((node) => this.visitReference(node));
|
|
30583
|
-
// Recurse into the `Element`'s children.
|
|
30584
|
-
element.children.forEach((node) => node.visit(this));
|
|
30585
|
-
this.elementsInScope.add(element);
|
|
30623
|
+
this.visitElementLike(element);
|
|
30586
30624
|
}
|
|
30587
30625
|
visitTemplate(template) {
|
|
30588
30626
|
template.directives.forEach((node) => node.visit(this));
|
|
@@ -30641,10 +30679,10 @@ class Scope {
|
|
|
30641
30679
|
this.maybeDeclare(decl);
|
|
30642
30680
|
}
|
|
30643
30681
|
visitComponent(component) {
|
|
30644
|
-
|
|
30682
|
+
this.visitElementLike(component);
|
|
30645
30683
|
}
|
|
30646
30684
|
visitDirective(directive) {
|
|
30647
|
-
|
|
30685
|
+
directive.references.forEach((current) => this.visitReference(current));
|
|
30648
30686
|
}
|
|
30649
30687
|
// Unused visitors.
|
|
30650
30688
|
visitBoundAttribute(attr) { }
|
|
@@ -30655,6 +30693,12 @@ class Scope {
|
|
|
30655
30693
|
visitIcu(icu) { }
|
|
30656
30694
|
visitDeferredTrigger(trigger) { }
|
|
30657
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
|
+
}
|
|
30658
30702
|
maybeDeclare(thing) {
|
|
30659
30703
|
// Declare something with a name, as long as that name isn't taken.
|
|
30660
30704
|
if (!this.namedEntities.has(thing.name)) {
|
|
@@ -30704,15 +30748,15 @@ class Scope {
|
|
|
30704
30748
|
* Usually used via the static `apply()` method.
|
|
30705
30749
|
*/
|
|
30706
30750
|
class DirectiveBinder {
|
|
30707
|
-
|
|
30751
|
+
directiveMatcher;
|
|
30708
30752
|
directives;
|
|
30709
30753
|
eagerDirectives;
|
|
30710
30754
|
bindings;
|
|
30711
30755
|
references;
|
|
30712
30756
|
// Indicates whether we are visiting elements within a `defer` block
|
|
30713
30757
|
isInDeferBlock = false;
|
|
30714
|
-
constructor(
|
|
30715
|
-
this.
|
|
30758
|
+
constructor(directiveMatcher, directives, eagerDirectives, bindings, references) {
|
|
30759
|
+
this.directiveMatcher = directiveMatcher;
|
|
30716
30760
|
this.directives = directives;
|
|
30717
30761
|
this.eagerDirectives = eagerDirectives;
|
|
30718
30762
|
this.bindings = bindings;
|
|
@@ -30730,8 +30774,8 @@ class DirectiveBinder {
|
|
|
30730
30774
|
* map which resolves #references (`Reference`s) within the template to the named directive or
|
|
30731
30775
|
* template node.
|
|
30732
30776
|
*/
|
|
30733
|
-
static apply(template,
|
|
30734
|
-
const matcher = new DirectiveBinder(
|
|
30777
|
+
static apply(template, directiveMatcher, directives, eagerDirectives, bindings, references) {
|
|
30778
|
+
const matcher = new DirectiveBinder(directiveMatcher, directives, eagerDirectives, bindings, references);
|
|
30735
30779
|
matcher.ingest(template);
|
|
30736
30780
|
}
|
|
30737
30781
|
ingest(template) {
|
|
@@ -30743,23 +30787,129 @@ class DirectiveBinder {
|
|
|
30743
30787
|
visitTemplate(template) {
|
|
30744
30788
|
this.visitElementOrTemplate(template);
|
|
30745
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
|
+
}
|
|
30746
30863
|
visitElementOrTemplate(node) {
|
|
30747
|
-
// First, determine the HTML shape of the node for the purpose of directive matching.
|
|
30748
|
-
// Do this by building up a `CssSelector` for the node.
|
|
30749
|
-
const cssSelector = createCssSelectorFromNode(node);
|
|
30750
|
-
// TODO(crisbeto): account for selectorless directives here.
|
|
30751
|
-
if (node.directives.length > 0) {
|
|
30752
|
-
throw new Error('TODO');
|
|
30753
|
-
}
|
|
30754
|
-
// Next, use the `SelectorMatcher` to get the list of directives on the node.
|
|
30755
30864
|
const directives = [];
|
|
30756
|
-
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) {
|
|
30757
30887
|
if (directives.length > 0) {
|
|
30758
30888
|
this.directives.set(node, directives);
|
|
30759
30889
|
if (!this.isInDeferBlock) {
|
|
30760
30890
|
this.eagerDirectives.push(...directives);
|
|
30761
30891
|
}
|
|
30762
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) {
|
|
30763
30913
|
// Resolve any references that are created on this node.
|
|
30764
30914
|
node.references.forEach((ref) => {
|
|
30765
30915
|
let dirTarget = null;
|
|
@@ -30790,6 +30940,7 @@ class DirectiveBinder {
|
|
|
30790
30940
|
this.references.set(ref, node);
|
|
30791
30941
|
}
|
|
30792
30942
|
});
|
|
30943
|
+
// Associate attributes/bindings on the node with directives or with the node itself.
|
|
30793
30944
|
const setAttributeBinding = (attribute, ioType) => {
|
|
30794
30945
|
const dir = directives.find((dir) => dir[ioType].hasBindingPropertyName(attribute.name));
|
|
30795
30946
|
const binding = dir !== undefined ? dir : node;
|
|
@@ -30804,57 +30955,6 @@ class DirectiveBinder {
|
|
|
30804
30955
|
}
|
|
30805
30956
|
// Node outputs (bound events) can be bound to an output on a directive.
|
|
30806
30957
|
node.outputs.forEach((output) => setAttributeBinding(output, 'outputs'));
|
|
30807
|
-
// Recurse into the node's children.
|
|
30808
|
-
node.children.forEach((child) => child.visit(this));
|
|
30809
|
-
}
|
|
30810
|
-
visitDeferredBlock(deferred) {
|
|
30811
|
-
const wasInDeferBlock = this.isInDeferBlock;
|
|
30812
|
-
this.isInDeferBlock = true;
|
|
30813
|
-
deferred.children.forEach((child) => child.visit(this));
|
|
30814
|
-
this.isInDeferBlock = wasInDeferBlock;
|
|
30815
|
-
deferred.placeholder?.visit(this);
|
|
30816
|
-
deferred.loading?.visit(this);
|
|
30817
|
-
deferred.error?.visit(this);
|
|
30818
|
-
}
|
|
30819
|
-
visitDeferredBlockPlaceholder(block) {
|
|
30820
|
-
block.children.forEach((child) => child.visit(this));
|
|
30821
|
-
}
|
|
30822
|
-
visitDeferredBlockError(block) {
|
|
30823
|
-
block.children.forEach((child) => child.visit(this));
|
|
30824
|
-
}
|
|
30825
|
-
visitDeferredBlockLoading(block) {
|
|
30826
|
-
block.children.forEach((child) => child.visit(this));
|
|
30827
|
-
}
|
|
30828
|
-
visitSwitchBlock(block) {
|
|
30829
|
-
block.cases.forEach((node) => node.visit(this));
|
|
30830
|
-
}
|
|
30831
|
-
visitSwitchBlockCase(block) {
|
|
30832
|
-
block.children.forEach((node) => node.visit(this));
|
|
30833
|
-
}
|
|
30834
|
-
visitForLoopBlock(block) {
|
|
30835
|
-
block.item.visit(this);
|
|
30836
|
-
block.contextVariables.forEach((v) => v.visit(this));
|
|
30837
|
-
block.children.forEach((node) => node.visit(this));
|
|
30838
|
-
block.empty?.visit(this);
|
|
30839
|
-
}
|
|
30840
|
-
visitForLoopBlockEmpty(block) {
|
|
30841
|
-
block.children.forEach((node) => node.visit(this));
|
|
30842
|
-
}
|
|
30843
|
-
visitIfBlock(block) {
|
|
30844
|
-
block.branches.forEach((node) => node.visit(this));
|
|
30845
|
-
}
|
|
30846
|
-
visitIfBlockBranch(block) {
|
|
30847
|
-
block.expressionAlias?.visit(this);
|
|
30848
|
-
block.children.forEach((node) => node.visit(this));
|
|
30849
|
-
}
|
|
30850
|
-
visitContent(content) {
|
|
30851
|
-
content.children.forEach((child) => child.visit(this));
|
|
30852
|
-
}
|
|
30853
|
-
visitComponent(component) {
|
|
30854
|
-
throw new Error('TODO');
|
|
30855
|
-
}
|
|
30856
|
-
visitDirective(directive) {
|
|
30857
|
-
throw new Error('TODO');
|
|
30858
30958
|
}
|
|
30859
30959
|
// Unused visitors.
|
|
30860
30960
|
visitVariable(variable) { }
|
|
@@ -31013,10 +31113,16 @@ class TemplateBinder extends RecursiveAstVisitor {
|
|
|
31013
31113
|
}
|
|
31014
31114
|
}
|
|
31015
31115
|
visitComponent(component) {
|
|
31016
|
-
|
|
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);
|
|
31017
31121
|
}
|
|
31018
31122
|
visitDirective(directive) {
|
|
31019
|
-
|
|
31123
|
+
directive.inputs.forEach(this.visitNode);
|
|
31124
|
+
directive.outputs.forEach(this.visitNode);
|
|
31125
|
+
directive.references.forEach(this.visitNode);
|
|
31020
31126
|
}
|
|
31021
31127
|
// Unused template visitors
|
|
31022
31128
|
visitText(text) { }
|
|
@@ -31260,7 +31366,7 @@ class R3BoundTarget {
|
|
|
31260
31366
|
const stack = [this.deferredScopes.get(block)];
|
|
31261
31367
|
while (stack.length > 0) {
|
|
31262
31368
|
const current = stack.pop();
|
|
31263
|
-
if (current.
|
|
31369
|
+
if (current.elementLikeInScope.has(element)) {
|
|
31264
31370
|
return true;
|
|
31265
31371
|
}
|
|
31266
31372
|
stack.push(...current.childScopes.values());
|
|
@@ -31287,7 +31393,9 @@ class R3BoundTarget {
|
|
|
31287
31393
|
if (target instanceof Element$1) {
|
|
31288
31394
|
return target;
|
|
31289
31395
|
}
|
|
31290
|
-
if (target instanceof Template
|
|
31396
|
+
if (target instanceof Template ||
|
|
31397
|
+
target.node instanceof Component$1 ||
|
|
31398
|
+
target.node instanceof Directive$1) {
|
|
31291
31399
|
return null;
|
|
31292
31400
|
}
|
|
31293
31401
|
return this.referenceTargetToElement(target.node);
|
|
@@ -33767,7 +33875,7 @@ const MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION = '18.0.0';
|
|
|
33767
33875
|
function compileDeclareClassMetadata(metadata) {
|
|
33768
33876
|
const definitionMap = new DefinitionMap();
|
|
33769
33877
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$5));
|
|
33770
|
-
definitionMap.set('version', literal('20.0.0-next.
|
|
33878
|
+
definitionMap.set('version', literal('20.0.0-next.8'));
|
|
33771
33879
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
33772
33880
|
definitionMap.set('type', metadata.type);
|
|
33773
33881
|
definitionMap.set('decorators', metadata.decorators);
|
|
@@ -33785,7 +33893,7 @@ function compileComponentDeclareClassMetadata(metadata, dependencies) {
|
|
|
33785
33893
|
callbackReturnDefinitionMap.set('ctorParameters', metadata.ctorParameters ?? literal(null));
|
|
33786
33894
|
callbackReturnDefinitionMap.set('propDecorators', metadata.propDecorators ?? literal(null));
|
|
33787
33895
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION));
|
|
33788
|
-
definitionMap.set('version', literal('20.0.0-next.
|
|
33896
|
+
definitionMap.set('version', literal('20.0.0-next.8'));
|
|
33789
33897
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
33790
33898
|
definitionMap.set('type', metadata.type);
|
|
33791
33899
|
definitionMap.set('resolveDeferredDeps', compileComponentMetadataAsyncResolver(dependencies));
|
|
@@ -33880,7 +33988,7 @@ function createDirectiveDefinitionMap(meta) {
|
|
|
33880
33988
|
const definitionMap = new DefinitionMap();
|
|
33881
33989
|
const minVersion = getMinimumVersionForPartialOutput(meta);
|
|
33882
33990
|
definitionMap.set('minVersion', literal(minVersion));
|
|
33883
|
-
definitionMap.set('version', literal('20.0.0-next.
|
|
33991
|
+
definitionMap.set('version', literal('20.0.0-next.8'));
|
|
33884
33992
|
// e.g. `type: MyDirective`
|
|
33885
33993
|
definitionMap.set('type', meta.type.value);
|
|
33886
33994
|
if (meta.isStandalone !== undefined) {
|
|
@@ -34296,7 +34404,7 @@ const MINIMUM_PARTIAL_LINKER_VERSION$4 = '12.0.0';
|
|
|
34296
34404
|
function compileDeclareFactoryFunction(meta) {
|
|
34297
34405
|
const definitionMap = new DefinitionMap();
|
|
34298
34406
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$4));
|
|
34299
|
-
definitionMap.set('version', literal('20.0.0-next.
|
|
34407
|
+
definitionMap.set('version', literal('20.0.0-next.8'));
|
|
34300
34408
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
34301
34409
|
definitionMap.set('type', meta.type.value);
|
|
34302
34410
|
definitionMap.set('deps', compileDependencies(meta.deps));
|
|
@@ -34331,7 +34439,7 @@ function compileDeclareInjectableFromMetadata(meta) {
|
|
|
34331
34439
|
function createInjectableDefinitionMap(meta) {
|
|
34332
34440
|
const definitionMap = new DefinitionMap();
|
|
34333
34441
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$3));
|
|
34334
|
-
definitionMap.set('version', literal('20.0.0-next.
|
|
34442
|
+
definitionMap.set('version', literal('20.0.0-next.8'));
|
|
34335
34443
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
34336
34444
|
definitionMap.set('type', meta.type.value);
|
|
34337
34445
|
// Only generate providedIn property if it has a non-null value
|
|
@@ -34382,7 +34490,7 @@ function compileDeclareInjectorFromMetadata(meta) {
|
|
|
34382
34490
|
function createInjectorDefinitionMap(meta) {
|
|
34383
34491
|
const definitionMap = new DefinitionMap();
|
|
34384
34492
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$2));
|
|
34385
|
-
definitionMap.set('version', literal('20.0.0-next.
|
|
34493
|
+
definitionMap.set('version', literal('20.0.0-next.8'));
|
|
34386
34494
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
34387
34495
|
definitionMap.set('type', meta.type.value);
|
|
34388
34496
|
definitionMap.set('providers', meta.providers);
|
|
@@ -34415,7 +34523,7 @@ function createNgModuleDefinitionMap(meta) {
|
|
|
34415
34523
|
throw new Error('Invalid path! Local compilation mode should not get into the partial compilation path');
|
|
34416
34524
|
}
|
|
34417
34525
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$1));
|
|
34418
|
-
definitionMap.set('version', literal('20.0.0-next.
|
|
34526
|
+
definitionMap.set('version', literal('20.0.0-next.8'));
|
|
34419
34527
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
34420
34528
|
definitionMap.set('type', meta.type.value);
|
|
34421
34529
|
// We only generate the keys in the metadata if the arrays contain values.
|
|
@@ -34466,7 +34574,7 @@ function compileDeclarePipeFromMetadata(meta) {
|
|
|
34466
34574
|
function createPipeDefinitionMap(meta) {
|
|
34467
34575
|
const definitionMap = new DefinitionMap();
|
|
34468
34576
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION));
|
|
34469
|
-
definitionMap.set('version', literal('20.0.0-next.
|
|
34577
|
+
definitionMap.set('version', literal('20.0.0-next.8'));
|
|
34470
34578
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
34471
34579
|
// e.g. `type: MyPipe`
|
|
34472
34580
|
definitionMap.set('type', meta.type.value);
|
|
@@ -34624,7 +34732,7 @@ function compileHmrUpdateCallback(definitions, constantStatements, meta) {
|
|
|
34624
34732
|
* @description
|
|
34625
34733
|
* Entry point for all public APIs of the compiler package.
|
|
34626
34734
|
*/
|
|
34627
|
-
const VERSION = new Version('20.0.0-next.
|
|
34735
|
+
const VERSION = new Version('20.0.0-next.8');
|
|
34628
34736
|
|
|
34629
34737
|
//////////////////////////////////////
|
|
34630
34738
|
// THIS FILE HAS GLOBAL SIDE EFFECT //
|
|
@@ -34650,5 +34758,5 @@ const VERSION = new Version('20.0.0-next.7');
|
|
|
34650
34758
|
// the late binding of the Compiler to the @angular/core for jit compilation.
|
|
34651
34759
|
publishFacade(_global);
|
|
34652
34760
|
|
|
34653
|
-
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 };
|
|
34654
34762
|
//# sourceMappingURL=compiler.mjs.map
|