@angular/compiler 21.0.0-next.3 → 21.0.0-next.5
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 +363 -238
- package/fesm2022/compiler.mjs.map +1 -1
- package/index.d.ts +71 -5
- package/package.json +1 -1
package/fesm2022/compiler.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v21.0.0-next.
|
|
2
|
+
* @license Angular v21.0.0-next.5
|
|
3
3
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -1237,6 +1237,27 @@ class InstantiateExpr extends Expression {
|
|
|
1237
1237
|
return new InstantiateExpr(this.classExpr.clone(), this.args.map((arg) => arg.clone()), this.type, this.sourceSpan);
|
|
1238
1238
|
}
|
|
1239
1239
|
}
|
|
1240
|
+
let RegularExpressionLiteral$1 = class RegularExpressionLiteral extends Expression {
|
|
1241
|
+
body;
|
|
1242
|
+
flags;
|
|
1243
|
+
constructor(body, flags, sourceSpan) {
|
|
1244
|
+
super(null, sourceSpan);
|
|
1245
|
+
this.body = body;
|
|
1246
|
+
this.flags = flags;
|
|
1247
|
+
}
|
|
1248
|
+
isEquivalent(e) {
|
|
1249
|
+
return e instanceof RegularExpressionLiteral && this.body === e.body && this.flags === e.flags;
|
|
1250
|
+
}
|
|
1251
|
+
isConstant() {
|
|
1252
|
+
return true;
|
|
1253
|
+
}
|
|
1254
|
+
visitExpression(visitor, context) {
|
|
1255
|
+
return visitor.visitRegularExpressionLiteral(this, context);
|
|
1256
|
+
}
|
|
1257
|
+
clone() {
|
|
1258
|
+
return new RegularExpressionLiteral(this.body, this.flags, this.sourceSpan);
|
|
1259
|
+
}
|
|
1260
|
+
};
|
|
1240
1261
|
class LiteralExpr extends Expression {
|
|
1241
1262
|
value;
|
|
1242
1263
|
constructor(value, type, sourceSpan) {
|
|
@@ -2030,6 +2051,9 @@ let RecursiveAstVisitor$1 = class RecursiveAstVisitor {
|
|
|
2030
2051
|
visitLiteralExpr(ast, context) {
|
|
2031
2052
|
return this.visitExpression(ast, context);
|
|
2032
2053
|
}
|
|
2054
|
+
visitRegularExpressionLiteral(ast, context) {
|
|
2055
|
+
return this.visitExpression(ast, context);
|
|
2056
|
+
}
|
|
2033
2057
|
visitLocalizedString(ast, context) {
|
|
2034
2058
|
return this.visitExpression(ast, context);
|
|
2035
2059
|
}
|
|
@@ -2290,6 +2314,7 @@ var output_ast = /*#__PURE__*/Object.freeze({
|
|
|
2290
2314
|
ReadPropExpr: ReadPropExpr,
|
|
2291
2315
|
ReadVarExpr: ReadVarExpr,
|
|
2292
2316
|
RecursiveAstVisitor: RecursiveAstVisitor$1,
|
|
2317
|
+
RegularExpressionLiteral: RegularExpressionLiteral$1,
|
|
2293
2318
|
ReturnStatement: ReturnStatement,
|
|
2294
2319
|
STRING_TYPE: STRING_TYPE,
|
|
2295
2320
|
Statement: Statement,
|
|
@@ -2565,6 +2590,9 @@ class GenericKeyFn {
|
|
|
2565
2590
|
else if (expr instanceof LiteralExpr) {
|
|
2566
2591
|
return String(expr.value);
|
|
2567
2592
|
}
|
|
2593
|
+
else if (expr instanceof RegularExpressionLiteral$1) {
|
|
2594
|
+
return `/${expr.body}/${expr.flags ?? ''}`;
|
|
2595
|
+
}
|
|
2568
2596
|
else if (expr instanceof LiteralArrayExpr) {
|
|
2569
2597
|
const entries = [];
|
|
2570
2598
|
for (const entry of expr.entries) {
|
|
@@ -2969,10 +2997,6 @@ class Identifiers {
|
|
|
2969
2997
|
name: 'ɵɵExternalStylesFeature',
|
|
2970
2998
|
moduleName: CORE,
|
|
2971
2999
|
};
|
|
2972
|
-
static AnimationsFeature = {
|
|
2973
|
-
name: 'ɵɵAnimationsFeature',
|
|
2974
|
-
moduleName: CORE,
|
|
2975
|
-
};
|
|
2976
3000
|
static listener = { name: 'ɵɵlistener', moduleName: CORE };
|
|
2977
3001
|
static getInheritedFactory = {
|
|
2978
3002
|
name: 'ɵɵgetInheritedFactory',
|
|
@@ -3570,6 +3594,10 @@ class AbstractEmitterVisitor {
|
|
|
3570
3594
|
}
|
|
3571
3595
|
return null;
|
|
3572
3596
|
}
|
|
3597
|
+
visitRegularExpressionLiteral(ast, ctx) {
|
|
3598
|
+
ctx.print(ast, `/${ast.body}/${ast.flags || ''}`);
|
|
3599
|
+
return null;
|
|
3600
|
+
}
|
|
3573
3601
|
visitLocalizedString(ast, ctx) {
|
|
3574
3602
|
const head = ast.serializeI18nHead();
|
|
3575
3603
|
ctx.print(ast, '$localize `' + head.raw);
|
|
@@ -4378,6 +4406,18 @@ class ParenthesizedExpression extends AST {
|
|
|
4378
4406
|
return visitor.visitParenthesizedExpression(this, context);
|
|
4379
4407
|
}
|
|
4380
4408
|
}
|
|
4409
|
+
class RegularExpressionLiteral extends AST {
|
|
4410
|
+
body;
|
|
4411
|
+
flags;
|
|
4412
|
+
constructor(span, sourceSpan, body, flags) {
|
|
4413
|
+
super(span, sourceSpan);
|
|
4414
|
+
this.body = body;
|
|
4415
|
+
this.flags = flags;
|
|
4416
|
+
}
|
|
4417
|
+
visit(visitor, context) {
|
|
4418
|
+
return visitor.visitRegularExpressionLiteral(this, context);
|
|
4419
|
+
}
|
|
4420
|
+
}
|
|
4381
4421
|
/**
|
|
4382
4422
|
* Records the absolute position of a text span in a source file, where `start` and `end` are the
|
|
4383
4423
|
* starting and ending byte offsets, respectively, of the text span in a source file.
|
|
@@ -4538,6 +4578,7 @@ class RecursiveAstVisitor {
|
|
|
4538
4578
|
visitParenthesizedExpression(ast, context) {
|
|
4539
4579
|
this.visit(ast.expression, context);
|
|
4540
4580
|
}
|
|
4581
|
+
visitRegularExpressionLiteral(ast, context) { }
|
|
4541
4582
|
// This is not part of the AstVisitor interface, just a helper method
|
|
4542
4583
|
visitAll(asts, context) {
|
|
4543
4584
|
for (const ast of asts) {
|
|
@@ -10453,7 +10494,8 @@ function transformExpressionsInExpression(expr, transform, flags) {
|
|
|
10453
10494
|
}
|
|
10454
10495
|
else if (expr instanceof ReadVarExpr ||
|
|
10455
10496
|
expr instanceof ExternalExpr ||
|
|
10456
|
-
expr instanceof LiteralExpr
|
|
10497
|
+
expr instanceof LiteralExpr ||
|
|
10498
|
+
expr instanceof RegularExpressionLiteral$1) ;
|
|
10457
10499
|
else {
|
|
10458
10500
|
throw new Error(`Unhandled expression kind: ${expr.constructor.name}`);
|
|
10459
10501
|
}
|
|
@@ -11831,6 +11873,16 @@ function extractAttributeOp(unit, op, elements) {
|
|
|
11831
11873
|
}
|
|
11832
11874
|
}
|
|
11833
11875
|
|
|
11876
|
+
const ARIA_PREFIX = 'aria-';
|
|
11877
|
+
/**
|
|
11878
|
+
* Returns whether `name` is an ARIA attribute name.
|
|
11879
|
+
*
|
|
11880
|
+
* This is a heuristic based on whether name begins with and is longer than `aria-`.
|
|
11881
|
+
*/
|
|
11882
|
+
function isAriaAttribute(name) {
|
|
11883
|
+
return name.startsWith(ARIA_PREFIX) && name.length > ARIA_PREFIX.length;
|
|
11884
|
+
}
|
|
11885
|
+
|
|
11834
11886
|
/**
|
|
11835
11887
|
* Looks up an element in the given map by xref ID.
|
|
11836
11888
|
*/
|
|
@@ -11876,7 +11928,15 @@ function specializeBindings(job) {
|
|
|
11876
11928
|
break;
|
|
11877
11929
|
case BindingKind.Property:
|
|
11878
11930
|
case BindingKind.LegacyAnimation:
|
|
11879
|
-
|
|
11931
|
+
// Convert a property binding targeting an ARIA attribute (e.g. [aria-label]) into an
|
|
11932
|
+
// attribute binding when we know it can't also target an input. Note that a `Host` job is
|
|
11933
|
+
// always `DomOnly`, so this condition must be checked first.
|
|
11934
|
+
if (job.mode === TemplateCompilationMode.DomOnly && isAriaAttribute(op.name)) {
|
|
11935
|
+
OpList.replace(op, createAttributeOp(op.target,
|
|
11936
|
+
/* namespace= */ null, op.name, op.expression, op.securityContext,
|
|
11937
|
+
/* isTextAttribute= */ false, op.isStructuralTemplateAttribute, op.templateKind, op.i18nMessage, op.sourceSpan));
|
|
11938
|
+
}
|
|
11939
|
+
else if (job.kind === CompilationJobKind.Host) {
|
|
11880
11940
|
OpList.replace(op, createDomPropertyOp(op.name, op.expression, op.bindingKind, op.i18nContext, op.securityContext, op.sourceSpan));
|
|
11881
11941
|
}
|
|
11882
11942
|
else {
|
|
@@ -18253,7 +18313,9 @@ var TokenType;
|
|
|
18253
18313
|
TokenType[TokenType["String"] = 4] = "String";
|
|
18254
18314
|
TokenType[TokenType["Operator"] = 5] = "Operator";
|
|
18255
18315
|
TokenType[TokenType["Number"] = 6] = "Number";
|
|
18256
|
-
TokenType[TokenType["
|
|
18316
|
+
TokenType[TokenType["RegExpBody"] = 7] = "RegExpBody";
|
|
18317
|
+
TokenType[TokenType["RegExpFlags"] = 8] = "RegExpFlags";
|
|
18318
|
+
TokenType[TokenType["Error"] = 9] = "Error";
|
|
18257
18319
|
})(TokenType || (TokenType = {}));
|
|
18258
18320
|
var StringTokenKind;
|
|
18259
18321
|
(function (StringTokenKind) {
|
|
@@ -18348,6 +18410,12 @@ class Token {
|
|
|
18348
18410
|
isError() {
|
|
18349
18411
|
return this.type === TokenType.Error;
|
|
18350
18412
|
}
|
|
18413
|
+
isRegExpBody() {
|
|
18414
|
+
return this.type === TokenType.RegExpBody;
|
|
18415
|
+
}
|
|
18416
|
+
isRegExpFlags() {
|
|
18417
|
+
return this.type === TokenType.RegExpFlags;
|
|
18418
|
+
}
|
|
18351
18419
|
toNumber() {
|
|
18352
18420
|
return this.type === TokenType.Number ? this.numValue : -1;
|
|
18353
18421
|
}
|
|
@@ -18374,6 +18442,8 @@ class Token {
|
|
|
18374
18442
|
case TokenType.PrivateIdentifier:
|
|
18375
18443
|
case TokenType.String:
|
|
18376
18444
|
case TokenType.Error:
|
|
18445
|
+
case TokenType.RegExpBody:
|
|
18446
|
+
case TokenType.RegExpFlags:
|
|
18377
18447
|
return this.strValue;
|
|
18378
18448
|
case TokenType.Number:
|
|
18379
18449
|
return this.numValue.toString();
|
|
@@ -18410,6 +18480,12 @@ function newNumberToken(index, end, n) {
|
|
|
18410
18480
|
function newErrorToken(index, end, message) {
|
|
18411
18481
|
return new Token(index, end, TokenType.Error, 0, message);
|
|
18412
18482
|
}
|
|
18483
|
+
function newRegExpBodyToken(index, end, text) {
|
|
18484
|
+
return new Token(index, end, TokenType.RegExpBody, 0, text);
|
|
18485
|
+
}
|
|
18486
|
+
function newRegExpFlagsToken(index, end, text) {
|
|
18487
|
+
return new Token(index, end, TokenType.RegExpFlags, 0, text);
|
|
18488
|
+
}
|
|
18413
18489
|
const EOF = new Token(-1, -1, TokenType.Character, 0, '');
|
|
18414
18490
|
class _Scanner {
|
|
18415
18491
|
input;
|
|
@@ -18493,7 +18569,9 @@ class _Scanner {
|
|
|
18493
18569
|
case $MINUS:
|
|
18494
18570
|
return this.scanComplexOperator(start, '-', $EQ, '=');
|
|
18495
18571
|
case $SLASH:
|
|
18496
|
-
return this.
|
|
18572
|
+
return this.isStartOfRegex()
|
|
18573
|
+
? this.scanRegex(index)
|
|
18574
|
+
: this.scanComplexOperator(start, '/', $EQ, '=');
|
|
18497
18575
|
case $PERCENT:
|
|
18498
18576
|
return this.scanComplexOperator(start, '%', $EQ, '=');
|
|
18499
18577
|
case $CARET:
|
|
@@ -18756,6 +18834,81 @@ class _Scanner {
|
|
|
18756
18834
|
}
|
|
18757
18835
|
return newOperatorToken(start, this.index, operator);
|
|
18758
18836
|
}
|
|
18837
|
+
isStartOfRegex() {
|
|
18838
|
+
if (this.tokens.length === 0) {
|
|
18839
|
+
return true;
|
|
18840
|
+
}
|
|
18841
|
+
const prevToken = this.tokens[this.tokens.length - 1];
|
|
18842
|
+
// If a slash is preceded by a `!` operator, we need to distinguish whether it's a
|
|
18843
|
+
// negation or a non-null assertion. Regexes can only be precded by negations.
|
|
18844
|
+
if (prevToken.isOperator('!')) {
|
|
18845
|
+
const beforePrevToken = this.tokens.length > 1 ? this.tokens[this.tokens.length - 2] : null;
|
|
18846
|
+
const isNegation = beforePrevToken === null ||
|
|
18847
|
+
(beforePrevToken.type !== TokenType.Identifier &&
|
|
18848
|
+
!beforePrevToken.isCharacter($RPAREN) &&
|
|
18849
|
+
!beforePrevToken.isCharacter($RBRACKET));
|
|
18850
|
+
return isNegation;
|
|
18851
|
+
}
|
|
18852
|
+
// Only consider the slash a regex if it's preceded either by:
|
|
18853
|
+
// - Any operator, aside from `!` which is special-cased above.
|
|
18854
|
+
// - Opening paren (e.g. `(/a/)`).
|
|
18855
|
+
// - Opening bracket (e.g. `[/a/]`).
|
|
18856
|
+
// - A comma (e.g. `[1, /a/]`).
|
|
18857
|
+
// - A colon (e.g. `{foo: /a/}`).
|
|
18858
|
+
return (prevToken.type === TokenType.Operator ||
|
|
18859
|
+
prevToken.isCharacter($LPAREN) ||
|
|
18860
|
+
prevToken.isCharacter($LBRACKET) ||
|
|
18861
|
+
prevToken.isCharacter($COMMA) ||
|
|
18862
|
+
prevToken.isCharacter($COLON));
|
|
18863
|
+
}
|
|
18864
|
+
scanRegex(tokenStart) {
|
|
18865
|
+
this.advance();
|
|
18866
|
+
const textStart = this.index;
|
|
18867
|
+
let inEscape = false;
|
|
18868
|
+
let inCharacterClass = false;
|
|
18869
|
+
while (true) {
|
|
18870
|
+
const peek = this.peek;
|
|
18871
|
+
if (peek === $EOF) {
|
|
18872
|
+
return this.error('Unterminated regular expression', 0);
|
|
18873
|
+
}
|
|
18874
|
+
if (inEscape) {
|
|
18875
|
+
inEscape = false;
|
|
18876
|
+
}
|
|
18877
|
+
else if (peek === $BACKSLASH) {
|
|
18878
|
+
inEscape = true;
|
|
18879
|
+
}
|
|
18880
|
+
else if (peek === $LBRACKET) {
|
|
18881
|
+
inCharacterClass = true;
|
|
18882
|
+
}
|
|
18883
|
+
else if (peek === $RBRACKET) {
|
|
18884
|
+
inCharacterClass = false;
|
|
18885
|
+
}
|
|
18886
|
+
else if (peek === $SLASH && !inCharacterClass) {
|
|
18887
|
+
break;
|
|
18888
|
+
}
|
|
18889
|
+
this.advance();
|
|
18890
|
+
}
|
|
18891
|
+
// Note that we want the text without the slashes,
|
|
18892
|
+
// but we still want the slashes to be part of the span.
|
|
18893
|
+
const value = this.input.substring(textStart, this.index);
|
|
18894
|
+
this.advance();
|
|
18895
|
+
const bodyToken = newRegExpBodyToken(tokenStart, this.index, value);
|
|
18896
|
+
const flagsToken = this.scanRegexFlags(this.index);
|
|
18897
|
+
if (flagsToken !== null) {
|
|
18898
|
+
this.tokens.push(bodyToken);
|
|
18899
|
+
return flagsToken;
|
|
18900
|
+
}
|
|
18901
|
+
return bodyToken;
|
|
18902
|
+
}
|
|
18903
|
+
scanRegexFlags(start) {
|
|
18904
|
+
if (!isAsciiLetter(this.peek)) {
|
|
18905
|
+
return null;
|
|
18906
|
+
}
|
|
18907
|
+
while (isAsciiLetter(this.peek)) {
|
|
18908
|
+
this.advance();
|
|
18909
|
+
}
|
|
18910
|
+
return newRegExpFlagsToken(start, this.index, this.input.substring(start, this.index));
|
|
18911
|
+
}
|
|
18759
18912
|
}
|
|
18760
18913
|
function isIdentifierStart(code) {
|
|
18761
18914
|
return (($a <= code && code <= $z) ||
|
|
@@ -19107,6 +19260,8 @@ var ParseContextFlags;
|
|
|
19107
19260
|
*/
|
|
19108
19261
|
ParseContextFlags[ParseContextFlags["Writable"] = 1] = "Writable";
|
|
19109
19262
|
})(ParseContextFlags || (ParseContextFlags = {}));
|
|
19263
|
+
/** Possible flags that can be used in a regex literal. */
|
|
19264
|
+
const SUPPORTED_REGEX_FLAGS = new Set(['d', 'g', 'i', 'm', 's', 'u', 'v', 'y']);
|
|
19110
19265
|
class _ParseAST {
|
|
19111
19266
|
input;
|
|
19112
19267
|
parseSourceSpan;
|
|
@@ -19676,6 +19831,9 @@ class _ParseAST {
|
|
|
19676
19831
|
this._reportErrorForPrivateIdentifier(this.next, null);
|
|
19677
19832
|
return new EmptyExpr$1(this.span(start), this.sourceSpan(start));
|
|
19678
19833
|
}
|
|
19834
|
+
else if (this.next.isRegExpBody()) {
|
|
19835
|
+
return this.parseRegularExpressionLiteral();
|
|
19836
|
+
}
|
|
19679
19837
|
else if (this.index >= this.tokens.length) {
|
|
19680
19838
|
this.error(`Unexpected end of expression: ${this.input}`);
|
|
19681
19839
|
return new EmptyExpr$1(this.span(start), this.sourceSpan(start));
|
|
@@ -20045,6 +20203,35 @@ class _ParseAST {
|
|
|
20045
20203
|
}
|
|
20046
20204
|
return new TemplateLiteral(this.span(start), this.sourceSpan(start), elements, expressions);
|
|
20047
20205
|
}
|
|
20206
|
+
parseRegularExpressionLiteral() {
|
|
20207
|
+
const bodyToken = this.next;
|
|
20208
|
+
this.advance();
|
|
20209
|
+
if (!bodyToken.isRegExpBody()) {
|
|
20210
|
+
return new EmptyExpr$1(this.span(this.inputIndex), this.sourceSpan(this.inputIndex));
|
|
20211
|
+
}
|
|
20212
|
+
let flagsToken = null;
|
|
20213
|
+
if (this.next.isRegExpFlags()) {
|
|
20214
|
+
flagsToken = this.next;
|
|
20215
|
+
this.advance();
|
|
20216
|
+
const seenFlags = new Set();
|
|
20217
|
+
for (let i = 0; i < flagsToken.strValue.length; i++) {
|
|
20218
|
+
const char = flagsToken.strValue[i];
|
|
20219
|
+
if (!SUPPORTED_REGEX_FLAGS.has(char)) {
|
|
20220
|
+
this.error(`Unsupported regular expression flag "${char}". The supported flags are: ` +
|
|
20221
|
+
Array.from(SUPPORTED_REGEX_FLAGS, (f) => `"${f}"`).join(', '), flagsToken.index + i);
|
|
20222
|
+
}
|
|
20223
|
+
else if (seenFlags.has(char)) {
|
|
20224
|
+
this.error(`Duplicate regular expression flag "${char}"`, flagsToken.index + i);
|
|
20225
|
+
}
|
|
20226
|
+
else {
|
|
20227
|
+
seenFlags.add(char);
|
|
20228
|
+
}
|
|
20229
|
+
}
|
|
20230
|
+
}
|
|
20231
|
+
const start = bodyToken.index;
|
|
20232
|
+
const end = flagsToken ? flagsToken.end : bodyToken.end;
|
|
20233
|
+
return new RegularExpressionLiteral(this.span(start, end), this.sourceSpan(start, end), bodyToken.strValue, flagsToken ? flagsToken.strValue : null);
|
|
20234
|
+
}
|
|
20048
20235
|
/**
|
|
20049
20236
|
* Consume the optional statement terminator: semicolon or comma.
|
|
20050
20237
|
*/
|
|
@@ -20258,6 +20445,9 @@ class SerializeExpressionVisitor {
|
|
|
20258
20445
|
visitVoidExpression(ast, context) {
|
|
20259
20446
|
return `void ${ast.expression.visit(this, context)}`;
|
|
20260
20447
|
}
|
|
20448
|
+
visitRegularExpressionLiteral(ast, context) {
|
|
20449
|
+
return `/${ast.body}/${ast.flags || ''}`;
|
|
20450
|
+
}
|
|
20261
20451
|
visitASTWithSource(ast, context) {
|
|
20262
20452
|
return ast.ast.visit(this, context);
|
|
20263
20453
|
}
|
|
@@ -20454,7 +20644,7 @@ const OBJECT = 'object';
|
|
|
20454
20644
|
//
|
|
20455
20645
|
// =================================================================================================
|
|
20456
20646
|
const SCHEMA = [
|
|
20457
|
-
'[Element]|textContent,%ariaAtomic,%ariaAutoComplete,%ariaBusy,%ariaChecked,%ariaColCount,%ariaColIndex,%ariaColSpan,%ariaCurrent,%ariaDescription,%ariaDisabled,%ariaExpanded,%ariaHasPopup,%ariaHidden,%ariaKeyShortcuts,%ariaLabel,%ariaLevel,%ariaLive,%ariaModal,%ariaMultiLine,%ariaMultiSelectable,%ariaOrientation,%ariaPlaceholder,%ariaPosInSet,%ariaPressed,%ariaReadOnly,%ariaRelevant,%ariaRequired,%ariaRoleDescription,%ariaRowCount,%ariaRowIndex,%ariaRowSpan,%ariaSelected,%ariaSetSize,%ariaSort,%ariaValueMax,%ariaValueMin,%ariaValueNow,%ariaValueText,%classList,className,elementTiming,id,innerHTML,*beforecopy,*beforecut,*beforepaste,*fullscreenchange,*fullscreenerror,*search,*webkitfullscreenchange,*webkitfullscreenerror,outerHTML,%part,#scrollLeft,#scrollTop,slot' +
|
|
20647
|
+
'[Element]|textContent,%ariaAtomic,%ariaAutoComplete,%ariaBusy,%ariaChecked,%ariaColCount,%ariaColIndex,%ariaColSpan,%ariaCurrent,%ariaDescription,%ariaDisabled,%ariaExpanded,%ariaHasPopup,%ariaHidden,%ariaInvalid,%ariaKeyShortcuts,%ariaLabel,%ariaLevel,%ariaLive,%ariaModal,%ariaMultiLine,%ariaMultiSelectable,%ariaOrientation,%ariaPlaceholder,%ariaPosInSet,%ariaPressed,%ariaReadOnly,%ariaRelevant,%ariaRequired,%ariaRoleDescription,%ariaRowCount,%ariaRowIndex,%ariaRowSpan,%ariaSelected,%ariaSetSize,%ariaSort,%ariaValueMax,%ariaValueMin,%ariaValueNow,%ariaValueText,%classList,className,elementTiming,id,innerHTML,*beforecopy,*beforecut,*beforepaste,*fullscreenchange,*fullscreenerror,*search,*webkitfullscreenchange,*webkitfullscreenerror,outerHTML,%part,#scrollLeft,#scrollTop,slot' +
|
|
20458
20648
|
/* added manually to avoid breaking changes */
|
|
20459
20649
|
',*message,*mozfullscreenchange,*mozfullscreenerror,*mozpointerlockchange,*mozpointerlockerror,*webglcontextcreationerror,*webglcontextlost,*webglcontextrestored',
|
|
20460
20650
|
'[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',
|
|
@@ -23360,6 +23550,27 @@ function transformLiteralMap(expr) {
|
|
|
23360
23550
|
return new PureFunctionExpr(literalMap(derivedEntries), nonConstantArgs);
|
|
23361
23551
|
}
|
|
23362
23552
|
|
|
23553
|
+
/** Optimizes regular expressions used in expressions. */
|
|
23554
|
+
function optimizeRegularExpressions(job) {
|
|
23555
|
+
for (const view of job.units) {
|
|
23556
|
+
for (const op of view.ops()) {
|
|
23557
|
+
transformExpressionsInOp(op, (expr) => {
|
|
23558
|
+
if (expr instanceof RegularExpressionLiteral$1 &&
|
|
23559
|
+
// We can't optimize global regexes, because they're stateful.
|
|
23560
|
+
(expr.flags === null || !expr.flags.includes('g'))) {
|
|
23561
|
+
return job.pool.getSharedConstant(new RegularExpressionConstant(), expr);
|
|
23562
|
+
}
|
|
23563
|
+
return expr;
|
|
23564
|
+
}, VisitorContextFlag.None);
|
|
23565
|
+
}
|
|
23566
|
+
}
|
|
23567
|
+
}
|
|
23568
|
+
class RegularExpressionConstant extends GenericKeyFn {
|
|
23569
|
+
toSharedConstantDeclaration(declName, keyExpr) {
|
|
23570
|
+
return new DeclareVarStmt(declName, keyExpr, undefined, StmtModifier.Final);
|
|
23571
|
+
}
|
|
23572
|
+
}
|
|
23573
|
+
|
|
23363
23574
|
// This file contains helpers for generating calls to Ivy instructions. In particular, each
|
|
23364
23575
|
// instruction type is represented as a function, which may select a specific instruction variant
|
|
23365
23576
|
// depending on the exact arguments.
|
|
@@ -23973,7 +24184,6 @@ function callVariadicInstruction(config, baseArgs, interpolationArgs, extraArgs,
|
|
|
23973
24184
|
return createStatementOp(callVariadicInstructionExpr(config, baseArgs, interpolationArgs, extraArgs, sourceSpan).toStmt());
|
|
23974
24185
|
}
|
|
23975
24186
|
|
|
23976
|
-
const ARIA_PREFIX = 'aria';
|
|
23977
24187
|
/**
|
|
23978
24188
|
* Map of target resolvers for event listeners.
|
|
23979
24189
|
*/
|
|
@@ -24352,33 +24562,6 @@ function reifyUpdateOperations(unit, ops) {
|
|
|
24352
24562
|
}
|
|
24353
24563
|
}
|
|
24354
24564
|
}
|
|
24355
|
-
/**
|
|
24356
|
-
* Converts an ARIA property name to its corresponding attribute name, if necessary.
|
|
24357
|
-
*
|
|
24358
|
-
* For example, converts `ariaLabel` to `aria-label`.
|
|
24359
|
-
*
|
|
24360
|
-
* https://www.w3.org/TR/wai-aria-1.2/#accessibilityroleandproperties-correspondence
|
|
24361
|
-
*
|
|
24362
|
-
* This must be kept in sync with the the function of the same name in
|
|
24363
|
-
* packages/core/src/render3/instructions/aria_property.ts.
|
|
24364
|
-
*
|
|
24365
|
-
* @param name A property name that starts with `aria`.
|
|
24366
|
-
* @returns The corresponding attribute name.
|
|
24367
|
-
*/
|
|
24368
|
-
function ariaAttrName(name) {
|
|
24369
|
-
return name.charAt(ARIA_PREFIX.length) !== '-'
|
|
24370
|
-
? ARIA_PREFIX + '-' + name.slice(ARIA_PREFIX.length).toLowerCase()
|
|
24371
|
-
: name; // Property already has attribute name.
|
|
24372
|
-
}
|
|
24373
|
-
/**
|
|
24374
|
-
* Returns whether `name` is an ARIA property (or attribute) name.
|
|
24375
|
-
*
|
|
24376
|
-
* This is a heuristic based on whether name begins with and is longer than `aria`. For example,
|
|
24377
|
-
* this returns true for both `ariaLabel` and `aria-label`.
|
|
24378
|
-
*/
|
|
24379
|
-
function isAriaProperty(name) {
|
|
24380
|
-
return name.startsWith(ARIA_PREFIX) && name.length > ARIA_PREFIX.length;
|
|
24381
|
-
}
|
|
24382
24565
|
/**
|
|
24383
24566
|
* Reifies a DOM property binding operation.
|
|
24384
24567
|
*
|
|
@@ -24389,9 +24572,7 @@ function isAriaProperty(name) {
|
|
|
24389
24572
|
* @returns A statement to update the property at runtime.
|
|
24390
24573
|
*/
|
|
24391
24574
|
function reifyDomProperty(op) {
|
|
24392
|
-
return
|
|
24393
|
-
? attribute(ariaAttrName(op.name), op.expression, null, null, op.sourceSpan)
|
|
24394
|
-
: domProperty(DOM_PROPERTY_REMAPPING.get(op.name) ?? op.name, op.expression, op.sanitizer, op.sourceSpan);
|
|
24575
|
+
return domProperty(DOM_PROPERTY_REMAPPING.get(op.name) ?? op.name, op.expression, op.sanitizer, op.sourceSpan);
|
|
24395
24576
|
}
|
|
24396
24577
|
/**
|
|
24397
24578
|
* Reifies a property binding operation.
|
|
@@ -24403,7 +24584,7 @@ function reifyDomProperty(op) {
|
|
|
24403
24584
|
* @returns A statement to update the property at runtime.
|
|
24404
24585
|
*/
|
|
24405
24586
|
function reifyProperty(op) {
|
|
24406
|
-
return
|
|
24587
|
+
return isAriaAttribute(op.name)
|
|
24407
24588
|
? ariaProperty(op.name, op.expression, op.sourceSpan)
|
|
24408
24589
|
: property(op.name, op.expression, op.sanitizer, op.sourceSpan);
|
|
24409
24590
|
}
|
|
@@ -26451,6 +26632,7 @@ function wrapI18nIcus(job) {
|
|
|
26451
26632
|
*/
|
|
26452
26633
|
const phases = [
|
|
26453
26634
|
{ kind: CompilationJobKind.Tmpl, fn: removeContentSelectors },
|
|
26635
|
+
{ kind: CompilationJobKind.Both, fn: optimizeRegularExpressions },
|
|
26454
26636
|
{ kind: CompilationJobKind.Host, fn: parseHostStyleProperties },
|
|
26455
26637
|
{ kind: CompilationJobKind.Tmpl, fn: emitNamespaceChanges },
|
|
26456
26638
|
{ kind: CompilationJobKind.Tmpl, fn: propagateI18nBlocks },
|
|
@@ -27297,6 +27479,9 @@ function convertAst(ast, job, baseSourceSpan) {
|
|
|
27297
27479
|
else if (ast instanceof ParenthesizedExpression) {
|
|
27298
27480
|
return new ParenthesizedExpr(convertAst(ast.expression, job, baseSourceSpan), undefined, convertSourceSpan(ast.span, baseSourceSpan));
|
|
27299
27481
|
}
|
|
27482
|
+
else if (ast instanceof RegularExpressionLiteral) {
|
|
27483
|
+
return new RegularExpressionLiteral$1(ast.body, ast.flags, baseSourceSpan);
|
|
27484
|
+
}
|
|
27300
27485
|
else {
|
|
27301
27486
|
throw new Error(`Unhandled expression type "${ast.constructor.name}" in file "${baseSourceSpan?.start.file.url}"`);
|
|
27302
27487
|
}
|
|
@@ -30228,184 +30413,9 @@ function makeBindingParser(interpolationConfig = DEFAULT_INTERPOLATION_CONFIG, s
|
|
|
30228
30413
|
return new BindingParser(new Parser(new Lexer(), selectorlessEnabled), interpolationConfig, elementRegistry, []);
|
|
30229
30414
|
}
|
|
30230
30415
|
|
|
30231
|
-
/*!
|
|
30232
|
-
* @license
|
|
30233
|
-
* Copyright Google LLC All Rights Reserved.
|
|
30234
|
-
*
|
|
30235
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
30236
|
-
* found in the LICENSE file at https://angular.dev/license
|
|
30237
|
-
*/
|
|
30238
|
-
/**
|
|
30239
|
-
* Visitor that traverses all template and expression AST nodes in a template.
|
|
30240
|
-
* Useful for cases where every single node needs to be visited.
|
|
30241
|
-
*/
|
|
30242
|
-
class CombinedRecursiveAstVisitor extends RecursiveAstVisitor {
|
|
30243
|
-
visit(node) {
|
|
30244
|
-
if (node instanceof ASTWithSource) {
|
|
30245
|
-
this.visit(node.ast);
|
|
30246
|
-
}
|
|
30247
|
-
else {
|
|
30248
|
-
node.visit(this);
|
|
30249
|
-
}
|
|
30250
|
-
}
|
|
30251
|
-
visitElement(element) {
|
|
30252
|
-
this.visitAllTemplateNodes(element.attributes);
|
|
30253
|
-
this.visitAllTemplateNodes(element.inputs);
|
|
30254
|
-
this.visitAllTemplateNodes(element.outputs);
|
|
30255
|
-
this.visitAllTemplateNodes(element.directives);
|
|
30256
|
-
this.visitAllTemplateNodes(element.references);
|
|
30257
|
-
this.visitAllTemplateNodes(element.children);
|
|
30258
|
-
}
|
|
30259
|
-
visitTemplate(template) {
|
|
30260
|
-
this.visitAllTemplateNodes(template.attributes);
|
|
30261
|
-
this.visitAllTemplateNodes(template.inputs);
|
|
30262
|
-
this.visitAllTemplateNodes(template.outputs);
|
|
30263
|
-
this.visitAllTemplateNodes(template.directives);
|
|
30264
|
-
this.visitAllTemplateNodes(template.templateAttrs);
|
|
30265
|
-
this.visitAllTemplateNodes(template.variables);
|
|
30266
|
-
this.visitAllTemplateNodes(template.references);
|
|
30267
|
-
this.visitAllTemplateNodes(template.children);
|
|
30268
|
-
}
|
|
30269
|
-
visitContent(content) {
|
|
30270
|
-
this.visitAllTemplateNodes(content.children);
|
|
30271
|
-
}
|
|
30272
|
-
visitBoundAttribute(attribute) {
|
|
30273
|
-
this.visit(attribute.value);
|
|
30274
|
-
}
|
|
30275
|
-
visitBoundEvent(attribute) {
|
|
30276
|
-
this.visit(attribute.handler);
|
|
30277
|
-
}
|
|
30278
|
-
visitBoundText(text) {
|
|
30279
|
-
this.visit(text.value);
|
|
30280
|
-
}
|
|
30281
|
-
visitIcu(icu) {
|
|
30282
|
-
Object.keys(icu.vars).forEach((key) => this.visit(icu.vars[key]));
|
|
30283
|
-
Object.keys(icu.placeholders).forEach((key) => this.visit(icu.placeholders[key]));
|
|
30284
|
-
}
|
|
30285
|
-
visitDeferredBlock(deferred) {
|
|
30286
|
-
deferred.visitAll(this);
|
|
30287
|
-
}
|
|
30288
|
-
visitDeferredTrigger(trigger) {
|
|
30289
|
-
if (trigger instanceof BoundDeferredTrigger) {
|
|
30290
|
-
this.visit(trigger.value);
|
|
30291
|
-
}
|
|
30292
|
-
}
|
|
30293
|
-
visitDeferredBlockPlaceholder(block) {
|
|
30294
|
-
this.visitAllTemplateNodes(block.children);
|
|
30295
|
-
}
|
|
30296
|
-
visitDeferredBlockError(block) {
|
|
30297
|
-
this.visitAllTemplateNodes(block.children);
|
|
30298
|
-
}
|
|
30299
|
-
visitDeferredBlockLoading(block) {
|
|
30300
|
-
this.visitAllTemplateNodes(block.children);
|
|
30301
|
-
}
|
|
30302
|
-
visitSwitchBlock(block) {
|
|
30303
|
-
this.visit(block.expression);
|
|
30304
|
-
this.visitAllTemplateNodes(block.cases);
|
|
30305
|
-
}
|
|
30306
|
-
visitSwitchBlockCase(block) {
|
|
30307
|
-
block.expression && this.visit(block.expression);
|
|
30308
|
-
this.visitAllTemplateNodes(block.children);
|
|
30309
|
-
}
|
|
30310
|
-
visitForLoopBlock(block) {
|
|
30311
|
-
block.item.visit(this);
|
|
30312
|
-
this.visitAllTemplateNodes(block.contextVariables);
|
|
30313
|
-
this.visit(block.expression);
|
|
30314
|
-
this.visitAllTemplateNodes(block.children);
|
|
30315
|
-
block.empty?.visit(this);
|
|
30316
|
-
}
|
|
30317
|
-
visitForLoopBlockEmpty(block) {
|
|
30318
|
-
this.visitAllTemplateNodes(block.children);
|
|
30319
|
-
}
|
|
30320
|
-
visitIfBlock(block) {
|
|
30321
|
-
this.visitAllTemplateNodes(block.branches);
|
|
30322
|
-
}
|
|
30323
|
-
visitIfBlockBranch(block) {
|
|
30324
|
-
block.expression && this.visit(block.expression);
|
|
30325
|
-
block.expressionAlias?.visit(this);
|
|
30326
|
-
this.visitAllTemplateNodes(block.children);
|
|
30327
|
-
}
|
|
30328
|
-
visitLetDeclaration(decl) {
|
|
30329
|
-
this.visit(decl.value);
|
|
30330
|
-
}
|
|
30331
|
-
visitComponent(component) {
|
|
30332
|
-
this.visitAllTemplateNodes(component.attributes);
|
|
30333
|
-
this.visitAllTemplateNodes(component.inputs);
|
|
30334
|
-
this.visitAllTemplateNodes(component.outputs);
|
|
30335
|
-
this.visitAllTemplateNodes(component.directives);
|
|
30336
|
-
this.visitAllTemplateNodes(component.references);
|
|
30337
|
-
this.visitAllTemplateNodes(component.children);
|
|
30338
|
-
}
|
|
30339
|
-
visitDirective(directive) {
|
|
30340
|
-
this.visitAllTemplateNodes(directive.attributes);
|
|
30341
|
-
this.visitAllTemplateNodes(directive.inputs);
|
|
30342
|
-
this.visitAllTemplateNodes(directive.outputs);
|
|
30343
|
-
this.visitAllTemplateNodes(directive.references);
|
|
30344
|
-
}
|
|
30345
|
-
visitVariable(variable) { }
|
|
30346
|
-
visitReference(reference) { }
|
|
30347
|
-
visitTextAttribute(attribute) { }
|
|
30348
|
-
visitText(text) { }
|
|
30349
|
-
visitUnknownBlock(block) { }
|
|
30350
|
-
visitAllTemplateNodes(nodes) {
|
|
30351
|
-
for (const node of nodes) {
|
|
30352
|
-
this.visit(node);
|
|
30353
|
-
}
|
|
30354
|
-
}
|
|
30355
|
-
}
|
|
30356
|
-
|
|
30357
|
-
/*!
|
|
30358
|
-
* @license
|
|
30359
|
-
* Copyright Google LLC All Rights Reserved.
|
|
30360
|
-
*
|
|
30361
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
30362
|
-
* found in the LICENSE file at https://angular.dev/license
|
|
30363
|
-
*/
|
|
30364
|
-
const ANIMATE_LEAVE$1 = `animate.leave`;
|
|
30365
|
-
/**
|
|
30366
|
-
* Analyzes a component's template to determine if it's using animate.enter
|
|
30367
|
-
* or animate.leave syntax.
|
|
30368
|
-
*/
|
|
30369
|
-
function analyzeTemplateForAnimations(template) {
|
|
30370
|
-
const analyzer = new AnimationsAnalyzer();
|
|
30371
|
-
visitAll$1(analyzer, template);
|
|
30372
|
-
// The template is considered selectorless only if there
|
|
30373
|
-
// are direct references to directives or pipes.
|
|
30374
|
-
return analyzer.hasAnimations;
|
|
30375
|
-
}
|
|
30376
|
-
/**
|
|
30377
|
-
* Visitor that traverses all the template nodes and
|
|
30378
|
-
* expressions to look for selectorless references.
|
|
30379
|
-
*/
|
|
30380
|
-
class AnimationsAnalyzer extends CombinedRecursiveAstVisitor {
|
|
30381
|
-
hasAnimations = false;
|
|
30382
|
-
visitElement(element) {
|
|
30383
|
-
// check for regular strings
|
|
30384
|
-
for (const attr of element.attributes) {
|
|
30385
|
-
if (attr.name === ANIMATE_LEAVE$1) {
|
|
30386
|
-
this.hasAnimations = true;
|
|
30387
|
-
}
|
|
30388
|
-
}
|
|
30389
|
-
// check for attribute bindings
|
|
30390
|
-
for (const input of element.inputs) {
|
|
30391
|
-
if (input.name === ANIMATE_LEAVE$1) {
|
|
30392
|
-
this.hasAnimations = true;
|
|
30393
|
-
}
|
|
30394
|
-
}
|
|
30395
|
-
// check for event bindings
|
|
30396
|
-
for (const output of element.outputs) {
|
|
30397
|
-
if (output.name === ANIMATE_LEAVE$1) {
|
|
30398
|
-
this.hasAnimations = true;
|
|
30399
|
-
}
|
|
30400
|
-
}
|
|
30401
|
-
super.visitElement(element);
|
|
30402
|
-
}
|
|
30403
|
-
}
|
|
30404
|
-
|
|
30405
30416
|
const COMPONENT_VARIABLE = '%COMP%';
|
|
30406
30417
|
const HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;
|
|
30407
30418
|
const CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;
|
|
30408
|
-
const ANIMATE_LEAVE = `animate.leave`;
|
|
30409
30419
|
function baseDirectiveFields(meta, constantPool, bindingParser) {
|
|
30410
30420
|
const definitionMap = new DefinitionMap();
|
|
30411
30421
|
const selectors = parseSelectorToR3Selector(meta.selector);
|
|
@@ -30439,11 +30449,6 @@ function baseDirectiveFields(meta, constantPool, bindingParser) {
|
|
|
30439
30449
|
}
|
|
30440
30450
|
return definitionMap;
|
|
30441
30451
|
}
|
|
30442
|
-
function hasAnimationHostBinding(meta) {
|
|
30443
|
-
return (meta.host.attributes[ANIMATE_LEAVE] !== undefined ||
|
|
30444
|
-
meta.host.properties[ANIMATE_LEAVE] !== undefined ||
|
|
30445
|
-
meta.host.listeners[ANIMATE_LEAVE] !== undefined);
|
|
30446
|
-
}
|
|
30447
30452
|
/**
|
|
30448
30453
|
* Add features to the definition map.
|
|
30449
30454
|
*/
|
|
@@ -30478,12 +30483,6 @@ function addFeatures(definitionMap, meta) {
|
|
|
30478
30483
|
const externalStyleNodes = meta.externalStyles.map((externalStyle) => literal(externalStyle));
|
|
30479
30484
|
features.push(importExpr(Identifiers.ExternalStylesFeature).callFn([literalArr(externalStyleNodes)]));
|
|
30480
30485
|
}
|
|
30481
|
-
const template = meta.template;
|
|
30482
|
-
if (hasAnimationHostBinding(meta) || (template && template.nodes.length > 0)) {
|
|
30483
|
-
if (hasAnimationHostBinding(meta) || analyzeTemplateForAnimations(template.nodes)) {
|
|
30484
|
-
features.push(importExpr(Identifiers.AnimationsFeature).callFn([]));
|
|
30485
|
-
}
|
|
30486
|
-
}
|
|
30487
30486
|
if (features.length) {
|
|
30488
30487
|
definitionMap.set('features', literalArr(features));
|
|
30489
30488
|
}
|
|
@@ -30943,6 +30942,132 @@ function compileDeferResolverFunction(meta) {
|
|
|
30943
30942
|
return arrowFn([], literalArr(depExpressions));
|
|
30944
30943
|
}
|
|
30945
30944
|
|
|
30945
|
+
/*!
|
|
30946
|
+
* @license
|
|
30947
|
+
* Copyright Google LLC All Rights Reserved.
|
|
30948
|
+
*
|
|
30949
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
30950
|
+
* found in the LICENSE file at https://angular.dev/license
|
|
30951
|
+
*/
|
|
30952
|
+
/**
|
|
30953
|
+
* Visitor that traverses all template and expression AST nodes in a template.
|
|
30954
|
+
* Useful for cases where every single node needs to be visited.
|
|
30955
|
+
*/
|
|
30956
|
+
class CombinedRecursiveAstVisitor extends RecursiveAstVisitor {
|
|
30957
|
+
visit(node) {
|
|
30958
|
+
if (node instanceof ASTWithSource) {
|
|
30959
|
+
this.visit(node.ast);
|
|
30960
|
+
}
|
|
30961
|
+
else {
|
|
30962
|
+
node.visit(this);
|
|
30963
|
+
}
|
|
30964
|
+
}
|
|
30965
|
+
visitElement(element) {
|
|
30966
|
+
this.visitAllTemplateNodes(element.attributes);
|
|
30967
|
+
this.visitAllTemplateNodes(element.inputs);
|
|
30968
|
+
this.visitAllTemplateNodes(element.outputs);
|
|
30969
|
+
this.visitAllTemplateNodes(element.directives);
|
|
30970
|
+
this.visitAllTemplateNodes(element.references);
|
|
30971
|
+
this.visitAllTemplateNodes(element.children);
|
|
30972
|
+
}
|
|
30973
|
+
visitTemplate(template) {
|
|
30974
|
+
this.visitAllTemplateNodes(template.attributes);
|
|
30975
|
+
this.visitAllTemplateNodes(template.inputs);
|
|
30976
|
+
this.visitAllTemplateNodes(template.outputs);
|
|
30977
|
+
this.visitAllTemplateNodes(template.directives);
|
|
30978
|
+
this.visitAllTemplateNodes(template.templateAttrs);
|
|
30979
|
+
this.visitAllTemplateNodes(template.variables);
|
|
30980
|
+
this.visitAllTemplateNodes(template.references);
|
|
30981
|
+
this.visitAllTemplateNodes(template.children);
|
|
30982
|
+
}
|
|
30983
|
+
visitContent(content) {
|
|
30984
|
+
this.visitAllTemplateNodes(content.children);
|
|
30985
|
+
}
|
|
30986
|
+
visitBoundAttribute(attribute) {
|
|
30987
|
+
this.visit(attribute.value);
|
|
30988
|
+
}
|
|
30989
|
+
visitBoundEvent(attribute) {
|
|
30990
|
+
this.visit(attribute.handler);
|
|
30991
|
+
}
|
|
30992
|
+
visitBoundText(text) {
|
|
30993
|
+
this.visit(text.value);
|
|
30994
|
+
}
|
|
30995
|
+
visitIcu(icu) {
|
|
30996
|
+
Object.keys(icu.vars).forEach((key) => this.visit(icu.vars[key]));
|
|
30997
|
+
Object.keys(icu.placeholders).forEach((key) => this.visit(icu.placeholders[key]));
|
|
30998
|
+
}
|
|
30999
|
+
visitDeferredBlock(deferred) {
|
|
31000
|
+
deferred.visitAll(this);
|
|
31001
|
+
}
|
|
31002
|
+
visitDeferredTrigger(trigger) {
|
|
31003
|
+
if (trigger instanceof BoundDeferredTrigger) {
|
|
31004
|
+
this.visit(trigger.value);
|
|
31005
|
+
}
|
|
31006
|
+
}
|
|
31007
|
+
visitDeferredBlockPlaceholder(block) {
|
|
31008
|
+
this.visitAllTemplateNodes(block.children);
|
|
31009
|
+
}
|
|
31010
|
+
visitDeferredBlockError(block) {
|
|
31011
|
+
this.visitAllTemplateNodes(block.children);
|
|
31012
|
+
}
|
|
31013
|
+
visitDeferredBlockLoading(block) {
|
|
31014
|
+
this.visitAllTemplateNodes(block.children);
|
|
31015
|
+
}
|
|
31016
|
+
visitSwitchBlock(block) {
|
|
31017
|
+
this.visit(block.expression);
|
|
31018
|
+
this.visitAllTemplateNodes(block.cases);
|
|
31019
|
+
}
|
|
31020
|
+
visitSwitchBlockCase(block) {
|
|
31021
|
+
block.expression && this.visit(block.expression);
|
|
31022
|
+
this.visitAllTemplateNodes(block.children);
|
|
31023
|
+
}
|
|
31024
|
+
visitForLoopBlock(block) {
|
|
31025
|
+
block.item.visit(this);
|
|
31026
|
+
this.visitAllTemplateNodes(block.contextVariables);
|
|
31027
|
+
this.visit(block.expression);
|
|
31028
|
+
this.visitAllTemplateNodes(block.children);
|
|
31029
|
+
block.empty?.visit(this);
|
|
31030
|
+
}
|
|
31031
|
+
visitForLoopBlockEmpty(block) {
|
|
31032
|
+
this.visitAllTemplateNodes(block.children);
|
|
31033
|
+
}
|
|
31034
|
+
visitIfBlock(block) {
|
|
31035
|
+
this.visitAllTemplateNodes(block.branches);
|
|
31036
|
+
}
|
|
31037
|
+
visitIfBlockBranch(block) {
|
|
31038
|
+
block.expression && this.visit(block.expression);
|
|
31039
|
+
block.expressionAlias?.visit(this);
|
|
31040
|
+
this.visitAllTemplateNodes(block.children);
|
|
31041
|
+
}
|
|
31042
|
+
visitLetDeclaration(decl) {
|
|
31043
|
+
this.visit(decl.value);
|
|
31044
|
+
}
|
|
31045
|
+
visitComponent(component) {
|
|
31046
|
+
this.visitAllTemplateNodes(component.attributes);
|
|
31047
|
+
this.visitAllTemplateNodes(component.inputs);
|
|
31048
|
+
this.visitAllTemplateNodes(component.outputs);
|
|
31049
|
+
this.visitAllTemplateNodes(component.directives);
|
|
31050
|
+
this.visitAllTemplateNodes(component.references);
|
|
31051
|
+
this.visitAllTemplateNodes(component.children);
|
|
31052
|
+
}
|
|
31053
|
+
visitDirective(directive) {
|
|
31054
|
+
this.visitAllTemplateNodes(directive.attributes);
|
|
31055
|
+
this.visitAllTemplateNodes(directive.inputs);
|
|
31056
|
+
this.visitAllTemplateNodes(directive.outputs);
|
|
31057
|
+
this.visitAllTemplateNodes(directive.references);
|
|
31058
|
+
}
|
|
31059
|
+
visitVariable(variable) { }
|
|
31060
|
+
visitReference(reference) { }
|
|
31061
|
+
visitTextAttribute(attribute) { }
|
|
31062
|
+
visitText(text) { }
|
|
31063
|
+
visitUnknownBlock(block) { }
|
|
31064
|
+
visitAllTemplateNodes(nodes) {
|
|
31065
|
+
for (const node of nodes) {
|
|
31066
|
+
this.visit(node);
|
|
31067
|
+
}
|
|
31068
|
+
}
|
|
31069
|
+
}
|
|
31070
|
+
|
|
30946
31071
|
/**
|
|
30947
31072
|
* Computes a difference between full list (first argument) and
|
|
30948
31073
|
* list of items that should be excluded from the full list (second
|
|
@@ -34325,7 +34450,7 @@ const MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION = '18.0.0';
|
|
|
34325
34450
|
function compileDeclareClassMetadata(metadata) {
|
|
34326
34451
|
const definitionMap = new DefinitionMap();
|
|
34327
34452
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$5));
|
|
34328
|
-
definitionMap.set('version', literal('21.0.0-next.
|
|
34453
|
+
definitionMap.set('version', literal('21.0.0-next.5'));
|
|
34329
34454
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
34330
34455
|
definitionMap.set('type', metadata.type);
|
|
34331
34456
|
definitionMap.set('decorators', metadata.decorators);
|
|
@@ -34343,7 +34468,7 @@ function compileComponentDeclareClassMetadata(metadata, dependencies) {
|
|
|
34343
34468
|
callbackReturnDefinitionMap.set('ctorParameters', metadata.ctorParameters ?? literal(null));
|
|
34344
34469
|
callbackReturnDefinitionMap.set('propDecorators', metadata.propDecorators ?? literal(null));
|
|
34345
34470
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION));
|
|
34346
|
-
definitionMap.set('version', literal('21.0.0-next.
|
|
34471
|
+
definitionMap.set('version', literal('21.0.0-next.5'));
|
|
34347
34472
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
34348
34473
|
definitionMap.set('type', metadata.type);
|
|
34349
34474
|
definitionMap.set('resolveDeferredDeps', compileComponentMetadataAsyncResolver(dependencies));
|
|
@@ -34438,7 +34563,7 @@ function createDirectiveDefinitionMap(meta) {
|
|
|
34438
34563
|
const definitionMap = new DefinitionMap();
|
|
34439
34564
|
const minVersion = getMinimumVersionForPartialOutput(meta);
|
|
34440
34565
|
definitionMap.set('minVersion', literal(minVersion));
|
|
34441
|
-
definitionMap.set('version', literal('21.0.0-next.
|
|
34566
|
+
definitionMap.set('version', literal('21.0.0-next.5'));
|
|
34442
34567
|
// e.g. `type: MyDirective`
|
|
34443
34568
|
definitionMap.set('type', meta.type.value);
|
|
34444
34569
|
if (meta.isStandalone !== undefined) {
|
|
@@ -34854,7 +34979,7 @@ const MINIMUM_PARTIAL_LINKER_VERSION$4 = '12.0.0';
|
|
|
34854
34979
|
function compileDeclareFactoryFunction(meta) {
|
|
34855
34980
|
const definitionMap = new DefinitionMap();
|
|
34856
34981
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$4));
|
|
34857
|
-
definitionMap.set('version', literal('21.0.0-next.
|
|
34982
|
+
definitionMap.set('version', literal('21.0.0-next.5'));
|
|
34858
34983
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
34859
34984
|
definitionMap.set('type', meta.type.value);
|
|
34860
34985
|
definitionMap.set('deps', compileDependencies(meta.deps));
|
|
@@ -34889,7 +35014,7 @@ function compileDeclareInjectableFromMetadata(meta) {
|
|
|
34889
35014
|
function createInjectableDefinitionMap(meta) {
|
|
34890
35015
|
const definitionMap = new DefinitionMap();
|
|
34891
35016
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$3));
|
|
34892
|
-
definitionMap.set('version', literal('21.0.0-next.
|
|
35017
|
+
definitionMap.set('version', literal('21.0.0-next.5'));
|
|
34893
35018
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
34894
35019
|
definitionMap.set('type', meta.type.value);
|
|
34895
35020
|
// Only generate providedIn property if it has a non-null value
|
|
@@ -34940,7 +35065,7 @@ function compileDeclareInjectorFromMetadata(meta) {
|
|
|
34940
35065
|
function createInjectorDefinitionMap(meta) {
|
|
34941
35066
|
const definitionMap = new DefinitionMap();
|
|
34942
35067
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$2));
|
|
34943
|
-
definitionMap.set('version', literal('21.0.0-next.
|
|
35068
|
+
definitionMap.set('version', literal('21.0.0-next.5'));
|
|
34944
35069
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
34945
35070
|
definitionMap.set('type', meta.type.value);
|
|
34946
35071
|
definitionMap.set('providers', meta.providers);
|
|
@@ -34973,7 +35098,7 @@ function createNgModuleDefinitionMap(meta) {
|
|
|
34973
35098
|
throw new Error('Invalid path! Local compilation mode should not get into the partial compilation path');
|
|
34974
35099
|
}
|
|
34975
35100
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$1));
|
|
34976
|
-
definitionMap.set('version', literal('21.0.0-next.
|
|
35101
|
+
definitionMap.set('version', literal('21.0.0-next.5'));
|
|
34977
35102
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
34978
35103
|
definitionMap.set('type', meta.type.value);
|
|
34979
35104
|
// We only generate the keys in the metadata if the arrays contain values.
|
|
@@ -35024,7 +35149,7 @@ function compileDeclarePipeFromMetadata(meta) {
|
|
|
35024
35149
|
function createPipeDefinitionMap(meta) {
|
|
35025
35150
|
const definitionMap = new DefinitionMap();
|
|
35026
35151
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION));
|
|
35027
|
-
definitionMap.set('version', literal('21.0.0-next.
|
|
35152
|
+
definitionMap.set('version', literal('21.0.0-next.5'));
|
|
35028
35153
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
35029
35154
|
// e.g. `type: MyPipe`
|
|
35030
35155
|
definitionMap.set('type', meta.type.value);
|
|
@@ -35180,7 +35305,7 @@ function compileHmrUpdateCallback(definitions, constantStatements, meta) {
|
|
|
35180
35305
|
* @description
|
|
35181
35306
|
* Entry point for all public APIs of the compiler package.
|
|
35182
35307
|
*/
|
|
35183
|
-
const VERSION = new Version('21.0.0-next.
|
|
35308
|
+
const VERSION = new Version('21.0.0-next.5');
|
|
35184
35309
|
|
|
35185
35310
|
//////////////////////////////////////
|
|
35186
35311
|
// THIS FILE HAS GLOBAL SIDE EFFECT //
|
|
@@ -35206,5 +35331,5 @@ const VERSION = new Version('21.0.0-next.3');
|
|
|
35206
35331
|
// the late binding of the Compiler to the @angular/core for jit compilation.
|
|
35207
35332
|
publishFacade(_global);
|
|
35208
35333
|
|
|
35209
|
-
export { AST, ASTWithName, ASTWithSource, AbsoluteSourceSpan, ArrayType, ArrowFunctionExpr, Attribute, Binary, BinaryOperator, BinaryOperatorExpr, BindingPipe, BindingPipeType, BindingType, Block, BlockParameter, BoundElementProperty, BuiltinType, BuiltinTypeName, CUSTOM_ELEMENTS_SCHEMA, Call, Chain, ChangeDetectionStrategy, CombinedRecursiveAstVisitor, CommaExpr, Comment, CompilerConfig, CompilerFacadeImpl, 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, FunctionExpr, HtmlParser, HtmlTagDefinition, I18NHtmlParser, IfStmt, ImplicitReceiver, InstantiateExpr, Interpolation$1 as Interpolation, InterpolationConfig, InvokeFunctionExpr, JSDocComment, JitEvaluator, KeyedRead, 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, PrefixNot, PropertyRead, Identifiers as R3Identifiers, R3NgModuleMetadataKind, R3SelectorScopeMode, R3TargetBinder, R3TemplateDependencyKind, ReadKeyExpr, ReadPropExpr, ReadVarExpr, RecursiveAstVisitor, RecursiveVisitor, ResourceLoader, ReturnStatement, SECURITY_SCHEMA, 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$1 as ViewEncapsulation, VoidExpr, VoidExpression, WrappedNodeExpr, 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, escapeRegExp, findMatchingDirectivesAndPipes, getHtmlTagDefinition, getNsPrefix, getSafePropertyAccessString, identifierName, isNgContainer, isNgContent, isNgTemplate, jsDocComment, leadingComment, literal, literalMap, makeBindingParser, mergeNsAndName, output_ast as outputAst, parseHostBindings, parseTemplate, preserveWhitespacesDefault, publishFacade, r3JitTypeSourceSpan, sanitizeIdentifier, setEnableTemplateSourceLocations, splitNsName, visitAll$1 as tmplAstVisitAll, verifyHostBindings, visitAll };
|
|
35334
|
+
export { AST, ASTWithName, ASTWithSource, AbsoluteSourceSpan, ArrayType, ArrowFunctionExpr, Attribute, Binary, BinaryOperator, BinaryOperatorExpr, BindingPipe, BindingPipeType, BindingType, Block, BlockParameter, BoundElementProperty, BuiltinType, BuiltinTypeName, CUSTOM_ELEMENTS_SCHEMA, Call, Chain, ChangeDetectionStrategy, CombinedRecursiveAstVisitor, CommaExpr, Comment, CompilerConfig, CompilerFacadeImpl, 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, FunctionExpr, HtmlParser, HtmlTagDefinition, I18NHtmlParser, IfStmt, ImplicitReceiver, InstantiateExpr, Interpolation$1 as Interpolation, InterpolationConfig, InvokeFunctionExpr, JSDocComment, JitEvaluator, KeyedRead, 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, PrefixNot, PropertyRead, Identifiers as R3Identifiers, R3NgModuleMetadataKind, R3SelectorScopeMode, R3TargetBinder, R3TemplateDependencyKind, ReadKeyExpr, ReadPropExpr, ReadVarExpr, RecursiveAstVisitor, RecursiveVisitor, RegularExpressionLiteral, ResourceLoader, ReturnStatement, SCHEMA, SECURITY_SCHEMA, 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$1 as ViewEncapsulation, VoidExpr, VoidExpression, WrappedNodeExpr, Xliff, Xliff2, Xmb, XmlParser, Xtb, _ATTR_TO_PROP, 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, escapeRegExp, findMatchingDirectivesAndPipes, getHtmlTagDefinition, getNsPrefix, getSafePropertyAccessString, identifierName, isNgContainer, isNgContent, isNgTemplate, jsDocComment, leadingComment, literal, literalMap, makeBindingParser, mergeNsAndName, output_ast as outputAst, parseHostBindings, parseTemplate, preserveWhitespacesDefault, publishFacade, r3JitTypeSourceSpan, sanitizeIdentifier, setEnableTemplateSourceLocations, splitNsName, visitAll$1 as tmplAstVisitAll, verifyHostBindings, visitAll };
|
|
35210
35335
|
//# sourceMappingURL=compiler.mjs.map
|