@angular-eslint/bundled-angular-compiler 16.1.0-alpha.0 → 16.1.1-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +356 -134
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @license Angular v16.
|
|
4
|
+
* @license Angular v16.1.4
|
|
5
5
|
* (c) 2010-2022 Google LLC. https://angular.io/
|
|
6
6
|
* License: MIT
|
|
7
7
|
*/
|
|
@@ -2274,6 +2274,7 @@ class ConstantPool {
|
|
|
2274
2274
|
this.statements = [];
|
|
2275
2275
|
this.literals = new Map();
|
|
2276
2276
|
this.literalFactories = new Map();
|
|
2277
|
+
this.sharedConstants = new Map();
|
|
2277
2278
|
this.nextNameIndex = 0;
|
|
2278
2279
|
}
|
|
2279
2280
|
getConstLiteral(literal, forceShared) {
|
|
@@ -2283,7 +2284,7 @@ class ConstantPool {
|
|
|
2283
2284
|
// reference to a constant.
|
|
2284
2285
|
return literal;
|
|
2285
2286
|
}
|
|
2286
|
-
const key =
|
|
2287
|
+
const key = GenericKeyFn.INSTANCE.keyOf(literal);
|
|
2287
2288
|
let fixup = this.literals.get(key);
|
|
2288
2289
|
let newValue = false;
|
|
2289
2290
|
if (!fixup) {
|
|
@@ -2328,11 +2329,20 @@ class ConstantPool {
|
|
|
2328
2329
|
}
|
|
2329
2330
|
return fixup;
|
|
2330
2331
|
}
|
|
2332
|
+
getSharedConstant(def, expr) {
|
|
2333
|
+
const key = def.keyOf(expr);
|
|
2334
|
+
if (!this.sharedConstants.has(key)) {
|
|
2335
|
+
const id = this.freshName();
|
|
2336
|
+
this.sharedConstants.set(key, variable(id));
|
|
2337
|
+
this.statements.push(def.toSharedConstantDeclaration(id, expr));
|
|
2338
|
+
}
|
|
2339
|
+
return this.sharedConstants.get(key);
|
|
2340
|
+
}
|
|
2331
2341
|
getLiteralFactory(literal) {
|
|
2332
2342
|
// Create a pure function that builds an array of a mix of constant and variable expressions
|
|
2333
2343
|
if (literal instanceof LiteralArrayExpr) {
|
|
2334
2344
|
const argumentsForKey = literal.entries.map(e => e.isConstant() ? e : UNKNOWN_VALUE_KEY);
|
|
2335
|
-
const key =
|
|
2345
|
+
const key = GenericKeyFn.INSTANCE.keyOf(literalArr(argumentsForKey));
|
|
2336
2346
|
return this._getLiteralFactory(key, literal.entries, entries => literalArr(entries));
|
|
2337
2347
|
}
|
|
2338
2348
|
else {
|
|
@@ -2341,7 +2351,7 @@ class ConstantPool {
|
|
|
2341
2351
|
value: e.value.isConstant() ? e.value : UNKNOWN_VALUE_KEY,
|
|
2342
2352
|
quoted: e.quoted
|
|
2343
2353
|
})));
|
|
2344
|
-
const key =
|
|
2354
|
+
const key = GenericKeyFn.INSTANCE.keyOf(expressionForKey);
|
|
2345
2355
|
return this._getLiteralFactory(key, literal.entries.map(e => e.value), entries => literalMap(entries.map((value, index) => ({
|
|
2346
2356
|
key: literal.entries[index].key,
|
|
2347
2357
|
value,
|
|
@@ -2378,65 +2388,48 @@ class ConstantPool {
|
|
|
2378
2388
|
freshName() {
|
|
2379
2389
|
return this.uniqueName(CONSTANT_PREFIX);
|
|
2380
2390
|
}
|
|
2381
|
-
keyOf(expression) {
|
|
2382
|
-
return expression.visitExpression(new KeyVisitor(), KEY_CONTEXT);
|
|
2383
|
-
}
|
|
2384
2391
|
}
|
|
2385
|
-
|
|
2386
|
-
|
|
2387
|
-
|
|
2388
|
-
|
|
2389
|
-
|
|
2390
|
-
|
|
2391
|
-
|
|
2392
|
-
|
|
2393
|
-
|
|
2394
|
-
|
|
2395
|
-
|
|
2396
|
-
|
|
2397
|
-
|
|
2398
|
-
|
|
2399
|
-
|
|
2400
|
-
|
|
2401
|
-
|
|
2402
|
-
|
|
2403
|
-
|
|
2404
|
-
|
|
2405
|
-
|
|
2406
|
-
|
|
2407
|
-
|
|
2408
|
-
|
|
2409
|
-
|
|
2410
|
-
|
|
2411
|
-
|
|
2412
|
-
|
|
2413
|
-
|
|
2414
|
-
|
|
2415
|
-
|
|
2416
|
-
|
|
2417
|
-
|
|
2418
|
-
|
|
2419
|
-
|
|
2420
|
-
|
|
2421
|
-
|
|
2422
|
-
|
|
2423
|
-
|
|
2424
|
-
return `{${ast.entries.map(mapEntry).join(',')}`;
|
|
2425
|
-
}
|
|
2426
|
-
visitExternalExpr(ast) {
|
|
2427
|
-
return ast.value.moduleName ? `EX:${ast.value.moduleName}:${ast.value.name}` :
|
|
2428
|
-
`EX:${ast.value.runtime.name}`;
|
|
2429
|
-
}
|
|
2430
|
-
visitReadVarExpr(node) {
|
|
2431
|
-
return `VAR:${node.name}`;
|
|
2432
|
-
}
|
|
2433
|
-
visitTypeofExpr(node, context) {
|
|
2434
|
-
return `TYPEOF:${node.expr.visitExpression(this, context)}`;
|
|
2392
|
+
class GenericKeyFn {
|
|
2393
|
+
static { this.INSTANCE = new GenericKeyFn(); }
|
|
2394
|
+
keyOf(expr) {
|
|
2395
|
+
if (expr instanceof LiteralExpr && typeof expr.value === 'string') {
|
|
2396
|
+
return `"${expr.value}"`;
|
|
2397
|
+
}
|
|
2398
|
+
else if (expr instanceof LiteralExpr) {
|
|
2399
|
+
return String(expr.value);
|
|
2400
|
+
}
|
|
2401
|
+
else if (expr instanceof LiteralArrayExpr) {
|
|
2402
|
+
const entries = [];
|
|
2403
|
+
for (const entry of expr.entries) {
|
|
2404
|
+
entries.push(this.keyOf(entry));
|
|
2405
|
+
}
|
|
2406
|
+
return `[${entries.join(',')}]`;
|
|
2407
|
+
}
|
|
2408
|
+
else if (expr instanceof LiteralMapExpr) {
|
|
2409
|
+
const entries = [];
|
|
2410
|
+
for (const entry of expr.entries) {
|
|
2411
|
+
let key = entry.key;
|
|
2412
|
+
if (entry.quoted) {
|
|
2413
|
+
key = `"${key}"`;
|
|
2414
|
+
}
|
|
2415
|
+
entries.push(key + ':' + this.keyOf(entry.value));
|
|
2416
|
+
}
|
|
2417
|
+
return `{${entries.join(',')}}`;
|
|
2418
|
+
}
|
|
2419
|
+
else if (expr instanceof ExternalExpr) {
|
|
2420
|
+
return `import("${expr.value.moduleName}", ${expr.value.name})`;
|
|
2421
|
+
}
|
|
2422
|
+
else if (expr instanceof ReadVarExpr) {
|
|
2423
|
+
return `read(${expr.name})`;
|
|
2424
|
+
}
|
|
2425
|
+
else if (expr instanceof TypeofExpr) {
|
|
2426
|
+
return `typeof(${this.keyOf(expr.expr)})`;
|
|
2427
|
+
}
|
|
2428
|
+
else {
|
|
2429
|
+
throw new Error(`${this.constructor.name} does not handle expressions of type ${expr.constructor.name}`);
|
|
2430
|
+
}
|
|
2435
2431
|
}
|
|
2436
2432
|
}
|
|
2437
|
-
function invalid$1(arg) {
|
|
2438
|
-
throw new Error(`Invalid state: Visitor ${this.constructor.name} doesn't handle ${arg.constructor.name}`);
|
|
2439
|
-
}
|
|
2440
2433
|
function isVariable(e) {
|
|
2441
2434
|
return e instanceof ReadVarExpr;
|
|
2442
2435
|
}
|
|
@@ -2634,6 +2627,7 @@ class Identifiers {
|
|
|
2634
2627
|
static { this.StandaloneFeature = { name: 'ɵɵStandaloneFeature', moduleName: CORE }; }
|
|
2635
2628
|
static { this.ProvidersFeature = { name: 'ɵɵProvidersFeature', moduleName: CORE }; }
|
|
2636
2629
|
static { this.HostDirectivesFeature = { name: 'ɵɵHostDirectivesFeature', moduleName: CORE }; }
|
|
2630
|
+
static { this.InputTransformsFeatureFeature = { name: 'ɵɵInputTransformsFeature', moduleName: CORE }; }
|
|
2637
2631
|
static { this.listener = { name: 'ɵɵlistener', moduleName: CORE }; }
|
|
2638
2632
|
static { this.getInheritedFactory = {
|
|
2639
2633
|
name: 'ɵɵgetInheritedFactory',
|
|
@@ -4646,27 +4640,34 @@ function conditionallyCreateDirectiveBindingLiteral(map, keepDeclared) {
|
|
|
4646
4640
|
let declaredName;
|
|
4647
4641
|
let publicName;
|
|
4648
4642
|
let minifiedName;
|
|
4649
|
-
let
|
|
4643
|
+
let expressionValue;
|
|
4650
4644
|
if (typeof value === 'string') {
|
|
4651
4645
|
// canonical syntax: `dirProp: publicProp`
|
|
4652
4646
|
declaredName = key;
|
|
4653
4647
|
minifiedName = key;
|
|
4654
4648
|
publicName = value;
|
|
4655
|
-
|
|
4649
|
+
expressionValue = asLiteral(publicName);
|
|
4656
4650
|
}
|
|
4657
4651
|
else {
|
|
4658
4652
|
minifiedName = key;
|
|
4659
4653
|
declaredName = value.classPropertyName;
|
|
4660
4654
|
publicName = value.bindingPropertyName;
|
|
4661
|
-
|
|
4655
|
+
if (keepDeclared && (publicName !== declaredName || value.transformFunction != null)) {
|
|
4656
|
+
const expressionKeys = [asLiteral(publicName), asLiteral(declaredName)];
|
|
4657
|
+
if (value.transformFunction != null) {
|
|
4658
|
+
expressionKeys.push(value.transformFunction);
|
|
4659
|
+
}
|
|
4660
|
+
expressionValue = literalArr(expressionKeys);
|
|
4661
|
+
}
|
|
4662
|
+
else {
|
|
4663
|
+
expressionValue = asLiteral(publicName);
|
|
4664
|
+
}
|
|
4662
4665
|
}
|
|
4663
4666
|
return {
|
|
4664
4667
|
key: minifiedName,
|
|
4665
4668
|
// put quotes around keys that contain potentially unsafe characters
|
|
4666
4669
|
quoted: UNSAFE_OBJECT_KEY_NAME_REGEXP.test(minifiedName),
|
|
4667
|
-
value:
|
|
4668
|
-
literalArr([asLiteral(publicName), asLiteral(declaredName)]) :
|
|
4669
|
-
asLiteral(publicName)
|
|
4670
|
+
value: expressionValue,
|
|
4670
4671
|
};
|
|
4671
4672
|
}));
|
|
4672
4673
|
}
|
|
@@ -5582,31 +5583,49 @@ exports.R3SelectorScopeMode = void 0;
|
|
|
5582
5583
|
*/
|
|
5583
5584
|
R3SelectorScopeMode[R3SelectorScopeMode["Omit"] = 2] = "Omit";
|
|
5584
5585
|
})(exports.R3SelectorScopeMode || (exports.R3SelectorScopeMode = {}));
|
|
5586
|
+
/**
|
|
5587
|
+
* The type of the NgModule meta data.
|
|
5588
|
+
* - Global: Used for full and partial compilation modes which mainly includes R3References.
|
|
5589
|
+
* - Local: Used for the local compilation mode which mainly includes the raw expressions as appears
|
|
5590
|
+
* in the NgModule decorator.
|
|
5591
|
+
*/
|
|
5592
|
+
exports.R3NgModuleMetadataKind = void 0;
|
|
5593
|
+
(function (R3NgModuleMetadataKind) {
|
|
5594
|
+
R3NgModuleMetadataKind[R3NgModuleMetadataKind["Global"] = 0] = "Global";
|
|
5595
|
+
R3NgModuleMetadataKind[R3NgModuleMetadataKind["Local"] = 1] = "Local";
|
|
5596
|
+
})(exports.R3NgModuleMetadataKind || (exports.R3NgModuleMetadataKind = {}));
|
|
5585
5597
|
/**
|
|
5586
5598
|
* Construct an `R3NgModuleDef` for the given `R3NgModuleMetadata`.
|
|
5587
5599
|
*/
|
|
5588
5600
|
function compileNgModule(meta) {
|
|
5589
|
-
const { type: moduleType, bootstrap, declarations, imports, exports: exports$1, schemas, containsForwardDecls, selectorScopeMode, id } = meta;
|
|
5590
5601
|
const statements = [];
|
|
5591
5602
|
const definitionMap = new DefinitionMap();
|
|
5592
|
-
definitionMap.set('type',
|
|
5593
|
-
|
|
5594
|
-
|
|
5603
|
+
definitionMap.set('type', meta.type.value);
|
|
5604
|
+
// Assign bootstrap definition
|
|
5605
|
+
if (meta.kind === exports.R3NgModuleMetadataKind.Global) {
|
|
5606
|
+
if (meta.bootstrap.length > 0) {
|
|
5607
|
+
definitionMap.set('bootstrap', refsToArray(meta.bootstrap, meta.containsForwardDecls));
|
|
5608
|
+
}
|
|
5595
5609
|
}
|
|
5596
|
-
|
|
5610
|
+
else {
|
|
5611
|
+
if (meta.bootstrapExpression) {
|
|
5612
|
+
definitionMap.set('bootstrap', meta.bootstrapExpression);
|
|
5613
|
+
}
|
|
5614
|
+
}
|
|
5615
|
+
if (meta.selectorScopeMode === exports.R3SelectorScopeMode.Inline) {
|
|
5597
5616
|
// If requested to emit scope information inline, pass the `declarations`, `imports` and
|
|
5598
5617
|
// `exports` to the `ɵɵdefineNgModule()` call directly.
|
|
5599
|
-
if (declarations.length > 0) {
|
|
5600
|
-
definitionMap.set('declarations', refsToArray(declarations, containsForwardDecls));
|
|
5618
|
+
if (meta.declarations.length > 0) {
|
|
5619
|
+
definitionMap.set('declarations', refsToArray(meta.declarations, meta.containsForwardDecls));
|
|
5601
5620
|
}
|
|
5602
|
-
if (imports.length > 0) {
|
|
5603
|
-
definitionMap.set('imports', refsToArray(imports, containsForwardDecls));
|
|
5621
|
+
if (meta.imports.length > 0) {
|
|
5622
|
+
definitionMap.set('imports', refsToArray(meta.imports, meta.containsForwardDecls));
|
|
5604
5623
|
}
|
|
5605
|
-
if (exports
|
|
5606
|
-
definitionMap.set('exports', refsToArray(exports
|
|
5624
|
+
if (meta.exports.length > 0) {
|
|
5625
|
+
definitionMap.set('exports', refsToArray(meta.exports, meta.containsForwardDecls));
|
|
5607
5626
|
}
|
|
5608
5627
|
}
|
|
5609
|
-
else if (selectorScopeMode === exports.R3SelectorScopeMode.SideEffect) {
|
|
5628
|
+
else if (meta.selectorScopeMode === exports.R3SelectorScopeMode.SideEffect) {
|
|
5610
5629
|
// In this mode, scope information is not passed into `ɵɵdefineNgModule` as it
|
|
5611
5630
|
// would prevent tree-shaking of the declarations, imports and exports references. Instead, it's
|
|
5612
5631
|
// patched onto the NgModule definition with a `ɵɵsetNgModuleScope` call that's guarded by the
|
|
@@ -5617,14 +5636,14 @@ function compileNgModule(meta) {
|
|
|
5617
5636
|
}
|
|
5618
5637
|
}
|
|
5619
5638
|
else ;
|
|
5620
|
-
if (schemas !== null && schemas.length > 0) {
|
|
5621
|
-
definitionMap.set('schemas', literalArr(schemas.map(ref => ref.value)));
|
|
5639
|
+
if (meta.schemas !== null && meta.schemas.length > 0) {
|
|
5640
|
+
definitionMap.set('schemas', literalArr(meta.schemas.map(ref => ref.value)));
|
|
5622
5641
|
}
|
|
5623
|
-
if (id !== null) {
|
|
5624
|
-
definitionMap.set('id', id);
|
|
5642
|
+
if (meta.id !== null) {
|
|
5643
|
+
definitionMap.set('id', meta.id);
|
|
5625
5644
|
// Generate a side-effectful call to register this NgModule by its id, as per the semantics of
|
|
5626
5645
|
// NgModule ids.
|
|
5627
|
-
statements.push(importExpr(Identifiers.registerNgModuleType).callFn([
|
|
5646
|
+
statements.push(importExpr(Identifiers.registerNgModuleType).callFn([meta.type.value, meta.id]).toStmt());
|
|
5628
5647
|
}
|
|
5629
5648
|
const expression = importExpr(Identifiers.defineNgModule).callFn([definitionMap.toLiteralMap()], undefined, true);
|
|
5630
5649
|
const type = createNgModuleType(meta);
|
|
@@ -5657,13 +5676,17 @@ function compileNgModuleDeclarationExpression(meta) {
|
|
|
5657
5676
|
}
|
|
5658
5677
|
return importExpr(Identifiers.defineNgModule).callFn([definitionMap.toLiteralMap()]);
|
|
5659
5678
|
}
|
|
5660
|
-
function createNgModuleType(
|
|
5679
|
+
function createNgModuleType(meta) {
|
|
5680
|
+
if (meta.kind === exports.R3NgModuleMetadataKind.Local) {
|
|
5681
|
+
return new ExpressionType(meta.type.value);
|
|
5682
|
+
}
|
|
5683
|
+
const { type: moduleType, declarations, exports: exports$1, imports, includeImportTypes, publicDeclarationTypes } = meta;
|
|
5661
5684
|
return new ExpressionType(importExpr(Identifiers.NgModuleDeclaration, [
|
|
5662
5685
|
new ExpressionType(moduleType.type),
|
|
5663
5686
|
publicDeclarationTypes === null ? tupleTypeOf(declarations) :
|
|
5664
5687
|
tupleOfTypes(publicDeclarationTypes),
|
|
5665
5688
|
includeImportTypes ? tupleTypeOf(imports) : NONE_TYPE,
|
|
5666
|
-
tupleTypeOf(exports),
|
|
5689
|
+
tupleTypeOf(exports$1),
|
|
5667
5690
|
]));
|
|
5668
5691
|
}
|
|
5669
5692
|
/**
|
|
@@ -5673,16 +5696,36 @@ function createNgModuleType({ type: moduleType, declarations, exports, imports,
|
|
|
5673
5696
|
* symbols to become tree-shakeable.
|
|
5674
5697
|
*/
|
|
5675
5698
|
function generateSetNgModuleScopeCall(meta) {
|
|
5676
|
-
const { type: moduleType, declarations, imports, exports, containsForwardDecls } = meta;
|
|
5677
5699
|
const scopeMap = new DefinitionMap();
|
|
5678
|
-
if (
|
|
5679
|
-
|
|
5700
|
+
if (meta.kind === exports.R3NgModuleMetadataKind.Global) {
|
|
5701
|
+
if (meta.declarations.length > 0) {
|
|
5702
|
+
scopeMap.set('declarations', refsToArray(meta.declarations, meta.containsForwardDecls));
|
|
5703
|
+
}
|
|
5704
|
+
}
|
|
5705
|
+
else {
|
|
5706
|
+
if (meta.declarationsExpression) {
|
|
5707
|
+
scopeMap.set('declarations', meta.declarationsExpression);
|
|
5708
|
+
}
|
|
5680
5709
|
}
|
|
5681
|
-
if (
|
|
5682
|
-
|
|
5710
|
+
if (meta.kind === exports.R3NgModuleMetadataKind.Global) {
|
|
5711
|
+
if (meta.imports.length > 0) {
|
|
5712
|
+
scopeMap.set('imports', refsToArray(meta.imports, meta.containsForwardDecls));
|
|
5713
|
+
}
|
|
5683
5714
|
}
|
|
5684
|
-
|
|
5685
|
-
|
|
5715
|
+
else {
|
|
5716
|
+
if (meta.importsExpression) {
|
|
5717
|
+
scopeMap.set('imports', meta.importsExpression);
|
|
5718
|
+
}
|
|
5719
|
+
}
|
|
5720
|
+
if (meta.kind === exports.R3NgModuleMetadataKind.Global) {
|
|
5721
|
+
if (meta.exports.length > 0) {
|
|
5722
|
+
scopeMap.set('exports', refsToArray(meta.exports, meta.containsForwardDecls));
|
|
5723
|
+
}
|
|
5724
|
+
}
|
|
5725
|
+
else {
|
|
5726
|
+
if (meta.exportsExpression) {
|
|
5727
|
+
scopeMap.set('exports', meta.exportsExpression);
|
|
5728
|
+
}
|
|
5686
5729
|
}
|
|
5687
5730
|
if (Object.keys(scopeMap.values).length === 0) {
|
|
5688
5731
|
return null;
|
|
@@ -5690,7 +5733,7 @@ function generateSetNgModuleScopeCall(meta) {
|
|
|
5690
5733
|
// setNgModuleScope(...)
|
|
5691
5734
|
const fnCall = new InvokeFunctionExpr(
|
|
5692
5735
|
/* fn */ importExpr(Identifiers.setNgModuleScope),
|
|
5693
|
-
/* args */ [
|
|
5736
|
+
/* args */ [meta.type.value, scopeMap.toLiteralMap()]);
|
|
5694
5737
|
// (ngJitMode guard) && setNgModuleScope(...)
|
|
5695
5738
|
const guardedCall = jitOnlyGuardedExpression(fnCall);
|
|
5696
5739
|
// function() { (ngJitMode guard) && setNgModuleScope(...); }
|
|
@@ -7447,11 +7490,28 @@ class ShadowCss {
|
|
|
7447
7490
|
* The hostSelector is the attribute added to the host itself.
|
|
7448
7491
|
*/
|
|
7449
7492
|
shimCssText(cssText, selector, hostSelector = '') {
|
|
7450
|
-
|
|
7451
|
-
|
|
7493
|
+
// **NOTE**: Do not strip comments as this will cause component sourcemaps to break
|
|
7494
|
+
// due to shift in lines.
|
|
7495
|
+
// Collect comments and replace them with a placeholder, this is done to avoid complicating
|
|
7496
|
+
// the rule parsing RegExp and keep it safer.
|
|
7497
|
+
const comments = [];
|
|
7498
|
+
cssText = cssText.replace(_commentRe, (m) => {
|
|
7499
|
+
if (m.match(_commentWithHashRe)) {
|
|
7500
|
+
comments.push(m);
|
|
7501
|
+
}
|
|
7502
|
+
else {
|
|
7503
|
+
// Replace non hash comments with empty lines.
|
|
7504
|
+
// This is done so that we do not leak any senstive data in comments.
|
|
7505
|
+
const newLinesMatches = m.match(_newLinesRe);
|
|
7506
|
+
comments.push((newLinesMatches?.join('') ?? '') + '\n');
|
|
7507
|
+
}
|
|
7508
|
+
return COMMENT_PLACEHOLDER;
|
|
7509
|
+
});
|
|
7452
7510
|
cssText = this._insertDirectives(cssText);
|
|
7453
7511
|
const scopedCssText = this._scopeCssText(cssText, selector, hostSelector);
|
|
7454
|
-
|
|
7512
|
+
// Add back comments at the original position.
|
|
7513
|
+
let commentIdx = 0;
|
|
7514
|
+
return scopedCssText.replace(_commentWithHashPlaceHolderRe, () => comments[commentIdx++]);
|
|
7455
7515
|
}
|
|
7456
7516
|
_insertDirectives(cssText) {
|
|
7457
7517
|
cssText = this._insertPolyfillDirectivesInCssText(cssText);
|
|
@@ -7692,7 +7752,7 @@ class ShadowCss {
|
|
|
7692
7752
|
return cssText.replace(_cssColonHostRe, (_, hostSelectors, otherSelectors) => {
|
|
7693
7753
|
if (hostSelectors) {
|
|
7694
7754
|
const convertedSelectors = [];
|
|
7695
|
-
const hostSelectorArray = hostSelectors.split(',').map(p => p.trim());
|
|
7755
|
+
const hostSelectorArray = hostSelectors.split(',').map((p) => p.trim());
|
|
7696
7756
|
for (const hostSelector of hostSelectorArray) {
|
|
7697
7757
|
if (!hostSelector)
|
|
7698
7758
|
break;
|
|
@@ -7722,7 +7782,7 @@ class ShadowCss {
|
|
|
7722
7782
|
* .foo<scopeName> .bar { ... }
|
|
7723
7783
|
*/
|
|
7724
7784
|
_convertColonHostContext(cssText) {
|
|
7725
|
-
return cssText.replace(_cssColonHostContextReGlobal, selectorText => {
|
|
7785
|
+
return cssText.replace(_cssColonHostContextReGlobal, (selectorText) => {
|
|
7726
7786
|
// We have captured a selector that contains a `:host-context` rule.
|
|
7727
7787
|
// For backward compatibility `:host-context` may contain a comma separated list of selectors.
|
|
7728
7788
|
// Each context selector group will contain a list of host-context selectors that must match
|
|
@@ -7734,10 +7794,10 @@ class ShadowCss {
|
|
|
7734
7794
|
// Execute `_cssColonHostContextRe` over and over until we have extracted all the
|
|
7735
7795
|
// `:host-context` selectors from this selector.
|
|
7736
7796
|
let match;
|
|
7737
|
-
while (match = _cssColonHostContextRe.exec(selectorText)) {
|
|
7797
|
+
while ((match = _cssColonHostContextRe.exec(selectorText))) {
|
|
7738
7798
|
// `match` = [':host-context(<selectors>)<rest>', <selectors>, <rest>]
|
|
7739
7799
|
// The `<selectors>` could actually be a comma separated list: `:host-context(.one, .two)`.
|
|
7740
|
-
const newContextSelectors = (match[1] ?? '').trim().split(',').map(m => m.trim()).filter(m => m !== '');
|
|
7800
|
+
const newContextSelectors = (match[1] ?? '').trim().split(',').map((m) => m.trim()).filter((m) => m !== '');
|
|
7741
7801
|
// We must duplicate the current selector group for each of these new selectors.
|
|
7742
7802
|
// For example if the current groups are:
|
|
7743
7803
|
// ```
|
|
@@ -7760,7 +7820,7 @@ class ShadowCss {
|
|
|
7760
7820
|
repeatGroups(contextSelectorGroups, newContextSelectors.length);
|
|
7761
7821
|
for (let i = 0; i < newContextSelectors.length; i++) {
|
|
7762
7822
|
for (let j = 0; j < contextSelectorGroupsLength; j++) {
|
|
7763
|
-
contextSelectorGroups[j +
|
|
7823
|
+
contextSelectorGroups[j + i * contextSelectorGroupsLength].push(newContextSelectors[i]);
|
|
7764
7824
|
}
|
|
7765
7825
|
}
|
|
7766
7826
|
// Update the `selectorText` and see repeat to see if there are more `:host-context`s.
|
|
@@ -7770,7 +7830,7 @@ class ShadowCss {
|
|
|
7770
7830
|
// selectors that `:host-context` can match. See `combineHostContextSelectors()` for more
|
|
7771
7831
|
// info about how this is done.
|
|
7772
7832
|
return contextSelectorGroups
|
|
7773
|
-
.map(contextSelectors => combineHostContextSelectors(contextSelectors, selectorText))
|
|
7833
|
+
.map((contextSelectors) => combineHostContextSelectors(contextSelectors, selectorText))
|
|
7774
7834
|
.join(', ');
|
|
7775
7835
|
});
|
|
7776
7836
|
}
|
|
@@ -7822,7 +7882,7 @@ class ShadowCss {
|
|
|
7822
7882
|
* ```
|
|
7823
7883
|
*/
|
|
7824
7884
|
_stripScopingSelectors(cssText) {
|
|
7825
|
-
return processRules(cssText, rule => {
|
|
7885
|
+
return processRules(cssText, (rule) => {
|
|
7826
7886
|
const selector = rule.selector.replace(_shadowDeepSelectors, ' ')
|
|
7827
7887
|
.replace(_polyfillHostNoCombinatorRe, ' ');
|
|
7828
7888
|
return new CssRule(selector, rule.content);
|
|
@@ -7830,7 +7890,7 @@ class ShadowCss {
|
|
|
7830
7890
|
}
|
|
7831
7891
|
_scopeSelector(selector, scopeSelector, hostSelector) {
|
|
7832
7892
|
return selector.split(',')
|
|
7833
|
-
.map(part => part.trim().split(_shadowDeepSelectors))
|
|
7893
|
+
.map((part) => part.trim().split(_shadowDeepSelectors))
|
|
7834
7894
|
.map((deepParts) => {
|
|
7835
7895
|
const [shallowPart, ...otherParts] = deepParts;
|
|
7836
7896
|
const applyScope = (shallowPart) => {
|
|
@@ -8013,17 +8073,14 @@ const _selectorReSuffix = '([>\\s~+[.,{:][\\s\\S]*)?$';
|
|
|
8013
8073
|
const _polyfillHostRe = /-shadowcsshost/gim;
|
|
8014
8074
|
const _colonHostRe = /:host/gim;
|
|
8015
8075
|
const _colonHostContextRe = /:host-context/gim;
|
|
8076
|
+
const _newLinesRe = /\r?\n/g;
|
|
8016
8077
|
const _commentRe = /\/\*[\s\S]*?\*\//g;
|
|
8078
|
+
const _commentWithHashRe = /\/\*\s*#\s*source(Mapping)?URL=/g;
|
|
8079
|
+
const COMMENT_PLACEHOLDER = '%COMMENT%';
|
|
8080
|
+
const _commentWithHashPlaceHolderRe = new RegExp(COMMENT_PLACEHOLDER, 'g');
|
|
8017
8081
|
const _placeholderRe = /__ph-(\d+)__/g;
|
|
8018
|
-
function stripComments(input) {
|
|
8019
|
-
return input.replace(_commentRe, '');
|
|
8020
|
-
}
|
|
8021
|
-
const _commentWithHashRe = /\/\*\s*#\s*source(Mapping)?URL=[\s\S]+?\*\//g;
|
|
8022
|
-
function extractCommentsWithHash(input) {
|
|
8023
|
-
return input.match(_commentWithHashRe) || [];
|
|
8024
|
-
}
|
|
8025
8082
|
const BLOCK_PLACEHOLDER = '%BLOCK%';
|
|
8026
|
-
const _ruleRe =
|
|
8083
|
+
const _ruleRe = new RegExp(`(\\s*(?:${COMMENT_PLACEHOLDER}\\s*)*)([^;\\{\\}]+?)(\\s*)((?:{%BLOCK%}?\\s*;?)|(?:\\s*;))`, 'g');
|
|
8027
8084
|
const CONTENT_PAIRS = new Map([['{', '}']]);
|
|
8028
8085
|
const COMMA_IN_PLACEHOLDER = '%COMMA_IN_PLACEHOLDER%';
|
|
8029
8086
|
const SEMI_IN_PLACEHOLDER = '%SEMI_IN_PLACEHOLDER%';
|
|
@@ -8232,7 +8289,6 @@ function unescapeQuotes(str, isQuoted) {
|
|
|
8232
8289
|
*
|
|
8233
8290
|
* And so on...
|
|
8234
8291
|
*
|
|
8235
|
-
* @param hostMarker the string that selects the host element.
|
|
8236
8292
|
* @param contextSelectors an array of context selectors that will be combined.
|
|
8237
8293
|
* @param otherSelectors the rest of the selectors that are not context selectors.
|
|
8238
8294
|
*/
|
|
@@ -8388,26 +8444,46 @@ var OpKind;
|
|
|
8388
8444
|
* An operation to end rendering of an element previously started with `ElementStart`.
|
|
8389
8445
|
*/
|
|
8390
8446
|
OpKind[OpKind["ElementEnd"] = 6] = "ElementEnd";
|
|
8447
|
+
/**
|
|
8448
|
+
* An operation to begin an `ng-container`.
|
|
8449
|
+
*/
|
|
8450
|
+
OpKind[OpKind["ContainerStart"] = 7] = "ContainerStart";
|
|
8451
|
+
/**
|
|
8452
|
+
* An operation for an `ng-container` with no children.
|
|
8453
|
+
*/
|
|
8454
|
+
OpKind[OpKind["Container"] = 8] = "Container";
|
|
8455
|
+
/**
|
|
8456
|
+
* An operation to end an `ng-container`.
|
|
8457
|
+
*/
|
|
8458
|
+
OpKind[OpKind["ContainerEnd"] = 9] = "ContainerEnd";
|
|
8391
8459
|
/**
|
|
8392
8460
|
* An operation to render a text node.
|
|
8393
8461
|
*/
|
|
8394
|
-
OpKind[OpKind["Text"] =
|
|
8462
|
+
OpKind[OpKind["Text"] = 10] = "Text";
|
|
8395
8463
|
/**
|
|
8396
8464
|
* An operation declaring an event listener for an element.
|
|
8397
8465
|
*/
|
|
8398
|
-
OpKind[OpKind["Listener"] =
|
|
8466
|
+
OpKind[OpKind["Listener"] = 11] = "Listener";
|
|
8399
8467
|
/**
|
|
8400
8468
|
* An operation to interpolate text into a text node.
|
|
8401
8469
|
*/
|
|
8402
|
-
OpKind[OpKind["InterpolateText"] =
|
|
8470
|
+
OpKind[OpKind["InterpolateText"] = 12] = "InterpolateText";
|
|
8403
8471
|
/**
|
|
8404
8472
|
* An operation to bind an expression to a property of an element.
|
|
8405
8473
|
*/
|
|
8406
|
-
OpKind[OpKind["Property"] =
|
|
8474
|
+
OpKind[OpKind["Property"] = 13] = "Property";
|
|
8475
|
+
/**
|
|
8476
|
+
* An operation to interpolate text into a property binding.
|
|
8477
|
+
*/
|
|
8478
|
+
OpKind[OpKind["InterpolateProperty"] = 14] = "InterpolateProperty";
|
|
8407
8479
|
/**
|
|
8408
8480
|
* An operation to advance the runtime's implicit slot context during the update phase of a view.
|
|
8409
8481
|
*/
|
|
8410
|
-
OpKind[OpKind["Advance"] =
|
|
8482
|
+
OpKind[OpKind["Advance"] = 15] = "Advance";
|
|
8483
|
+
/**
|
|
8484
|
+
* An operation to instantiate a pipe.
|
|
8485
|
+
*/
|
|
8486
|
+
OpKind[OpKind["Pipe"] = 16] = "Pipe";
|
|
8411
8487
|
})(OpKind || (OpKind = {}));
|
|
8412
8488
|
/**
|
|
8413
8489
|
* Distinguishes different kinds of IR expressions.
|
|
@@ -8446,6 +8522,22 @@ var ExpressionKind;
|
|
|
8446
8522
|
* Runtime operation to reset the current view context after `RestoreView`.
|
|
8447
8523
|
*/
|
|
8448
8524
|
ExpressionKind[ExpressionKind["ResetView"] = 7] = "ResetView";
|
|
8525
|
+
/**
|
|
8526
|
+
* Defines and calls a function with change-detected arguments.
|
|
8527
|
+
*/
|
|
8528
|
+
ExpressionKind[ExpressionKind["PureFunctionExpr"] = 8] = "PureFunctionExpr";
|
|
8529
|
+
/**
|
|
8530
|
+
* Indicates a positional parameter to a pure function definition.
|
|
8531
|
+
*/
|
|
8532
|
+
ExpressionKind[ExpressionKind["PureFunctionParameterExpr"] = 9] = "PureFunctionParameterExpr";
|
|
8533
|
+
/**
|
|
8534
|
+
* Binding to a pipe transformation.
|
|
8535
|
+
*/
|
|
8536
|
+
ExpressionKind[ExpressionKind["PipeBinding"] = 10] = "PipeBinding";
|
|
8537
|
+
/**
|
|
8538
|
+
* Binding to a pipe transformation with a variable number of arguments.
|
|
8539
|
+
*/
|
|
8540
|
+
ExpressionKind[ExpressionKind["PipeBindingVariadic"] = 11] = "PipeBindingVariadic";
|
|
8449
8541
|
})(ExpressionKind || (ExpressionKind = {}));
|
|
8450
8542
|
/**
|
|
8451
8543
|
* Distinguishes between different kinds of `SemanticVariable`s.
|
|
@@ -8652,10 +8744,12 @@ class OpList {
|
|
|
8652
8744
|
* Insert `op` before `before`.
|
|
8653
8745
|
*/
|
|
8654
8746
|
static insertBefore(op, before) {
|
|
8655
|
-
OpList.
|
|
8747
|
+
OpList.assertIsOwned(before);
|
|
8748
|
+
if (before.prev === null) {
|
|
8749
|
+
throw new Error(`AssertionError: illegal operation on list start`);
|
|
8750
|
+
}
|
|
8656
8751
|
OpList.assertIsNotEnd(op);
|
|
8657
8752
|
OpList.assertIsUnowned(op);
|
|
8658
|
-
OpList.assertIsOwned(before);
|
|
8659
8753
|
op.debugListId = before.debugListId;
|
|
8660
8754
|
// Just in case.
|
|
8661
8755
|
op.prev = null;
|
|
@@ -8693,6 +8787,17 @@ class OpList {
|
|
|
8693
8787
|
}
|
|
8694
8788
|
}
|
|
8695
8789
|
}
|
|
8790
|
+
|
|
8791
|
+
new Map([
|
|
8792
|
+
[OpKind.ElementEnd, [OpKind.ElementStart, OpKind.Element]],
|
|
8793
|
+
[OpKind.ContainerEnd, [OpKind.ContainerStart, OpKind.Container]],
|
|
8794
|
+
]);
|
|
8795
|
+
[
|
|
8796
|
+
Identifiers.pipeBind1,
|
|
8797
|
+
Identifiers.pipeBind2,
|
|
8798
|
+
Identifiers.pipeBind3,
|
|
8799
|
+
Identifiers.pipeBind4,
|
|
8800
|
+
];
|
|
8696
8801
|
/**
|
|
8697
8802
|
* `InterpolationConfig` for the `textInterpolate` instruction.
|
|
8698
8803
|
*/
|
|
@@ -8709,6 +8814,50 @@ class OpList {
|
|
|
8709
8814
|
Identifiers.textInterpolate8,
|
|
8710
8815
|
],
|
|
8711
8816
|
variable: Identifiers.textInterpolateV,
|
|
8817
|
+
mapping: n => {
|
|
8818
|
+
if (n % 2 === 0) {
|
|
8819
|
+
throw new Error(`Expected odd number of arguments`);
|
|
8820
|
+
}
|
|
8821
|
+
return (n - 1) / 2;
|
|
8822
|
+
},
|
|
8823
|
+
});
|
|
8824
|
+
/**
|
|
8825
|
+
* `InterpolationConfig` for the `propertyInterpolate` instruction.
|
|
8826
|
+
*/
|
|
8827
|
+
({
|
|
8828
|
+
constant: [
|
|
8829
|
+
Identifiers.propertyInterpolate,
|
|
8830
|
+
Identifiers.propertyInterpolate1,
|
|
8831
|
+
Identifiers.propertyInterpolate2,
|
|
8832
|
+
Identifiers.propertyInterpolate3,
|
|
8833
|
+
Identifiers.propertyInterpolate4,
|
|
8834
|
+
Identifiers.propertyInterpolate5,
|
|
8835
|
+
Identifiers.propertyInterpolate6,
|
|
8836
|
+
Identifiers.propertyInterpolate7,
|
|
8837
|
+
Identifiers.propertyInterpolate8,
|
|
8838
|
+
],
|
|
8839
|
+
variable: Identifiers.propertyInterpolateV,
|
|
8840
|
+
mapping: n => {
|
|
8841
|
+
if (n % 2 === 0) {
|
|
8842
|
+
throw new Error(`Expected odd number of arguments`);
|
|
8843
|
+
}
|
|
8844
|
+
return (n - 1) / 2;
|
|
8845
|
+
},
|
|
8846
|
+
});
|
|
8847
|
+
({
|
|
8848
|
+
constant: [
|
|
8849
|
+
Identifiers.pureFunction0,
|
|
8850
|
+
Identifiers.pureFunction1,
|
|
8851
|
+
Identifiers.pureFunction2,
|
|
8852
|
+
Identifiers.pureFunction3,
|
|
8853
|
+
Identifiers.pureFunction4,
|
|
8854
|
+
Identifiers.pureFunction5,
|
|
8855
|
+
Identifiers.pureFunction6,
|
|
8856
|
+
Identifiers.pureFunction7,
|
|
8857
|
+
Identifiers.pureFunction8,
|
|
8858
|
+
],
|
|
8859
|
+
variable: Identifiers.pureFunctionV,
|
|
8860
|
+
mapping: n => n,
|
|
8712
8861
|
});
|
|
8713
8862
|
/**
|
|
8714
8863
|
* A [fence](https://en.wikipedia.org/wiki/Memory_barrier) flag for an expression which indicates
|
|
@@ -8748,6 +8897,29 @@ new Set([
|
|
|
8748
8897
|
Identifiers.elementStart,
|
|
8749
8898
|
Identifiers.elementEnd,
|
|
8750
8899
|
Identifiers.property,
|
|
8900
|
+
Identifiers.elementContainerStart,
|
|
8901
|
+
Identifiers.elementContainerEnd,
|
|
8902
|
+
Identifiers.elementContainer,
|
|
8903
|
+
]);
|
|
8904
|
+
|
|
8905
|
+
new Map([
|
|
8906
|
+
['&&', exports.BinaryOperator.And],
|
|
8907
|
+
['>', exports.BinaryOperator.Bigger],
|
|
8908
|
+
['>=', exports.BinaryOperator.BiggerEquals],
|
|
8909
|
+
['&', exports.BinaryOperator.BitwiseAnd],
|
|
8910
|
+
['/', exports.BinaryOperator.Divide],
|
|
8911
|
+
['==', exports.BinaryOperator.Equals],
|
|
8912
|
+
['===', exports.BinaryOperator.Identical],
|
|
8913
|
+
['<', exports.BinaryOperator.Lower],
|
|
8914
|
+
['<=', exports.BinaryOperator.LowerEquals],
|
|
8915
|
+
['-', exports.BinaryOperator.Minus],
|
|
8916
|
+
['%', exports.BinaryOperator.Modulo],
|
|
8917
|
+
['*', exports.BinaryOperator.Multiply],
|
|
8918
|
+
['!=', exports.BinaryOperator.NotEquals],
|
|
8919
|
+
['!==', exports.BinaryOperator.NotIdentical],
|
|
8920
|
+
['??', exports.BinaryOperator.NullishCoalesce],
|
|
8921
|
+
['||', exports.BinaryOperator.Or],
|
|
8922
|
+
['+', exports.BinaryOperator.Plus],
|
|
8751
8923
|
]);
|
|
8752
8924
|
|
|
8753
8925
|
/**
|
|
@@ -18968,6 +19140,9 @@ function baseDirectiveFields(meta, constantPool, bindingParser) {
|
|
|
18968
19140
|
if (meta.isStandalone) {
|
|
18969
19141
|
definitionMap.set('standalone', literal(true));
|
|
18970
19142
|
}
|
|
19143
|
+
if (meta.isSignal) {
|
|
19144
|
+
definitionMap.set('signals', literal(true));
|
|
19145
|
+
}
|
|
18971
19146
|
return definitionMap;
|
|
18972
19147
|
}
|
|
18973
19148
|
/**
|
|
@@ -18978,6 +19153,7 @@ function addFeatures(definitionMap, meta) {
|
|
|
18978
19153
|
const features = [];
|
|
18979
19154
|
const providers = meta.providers;
|
|
18980
19155
|
const viewProviders = meta.viewProviders;
|
|
19156
|
+
const inputKeys = Object.keys(meta.inputs);
|
|
18981
19157
|
if (providers || viewProviders) {
|
|
18982
19158
|
const args = [providers || new LiteralArrayExpr([])];
|
|
18983
19159
|
if (viewProviders) {
|
|
@@ -18985,6 +19161,12 @@ function addFeatures(definitionMap, meta) {
|
|
|
18985
19161
|
}
|
|
18986
19162
|
features.push(importExpr(Identifiers.ProvidersFeature).callFn(args));
|
|
18987
19163
|
}
|
|
19164
|
+
for (const key of inputKeys) {
|
|
19165
|
+
if (meta.inputs[key].transformFunction !== null) {
|
|
19166
|
+
features.push(importExpr(Identifiers.InputTransformsFeatureFeature));
|
|
19167
|
+
break;
|
|
19168
|
+
}
|
|
19169
|
+
}
|
|
18988
19170
|
if (meta.usesInheritance) {
|
|
18989
19171
|
features.push(importExpr(Identifiers.InheritDefinitionFeature));
|
|
18990
19172
|
}
|
|
@@ -19123,6 +19305,12 @@ function createComponentType(meta) {
|
|
|
19123
19305
|
typeParams.push(stringArrayAsType(meta.template.ngContentSelectors));
|
|
19124
19306
|
typeParams.push(expressionType(literal(meta.isStandalone)));
|
|
19125
19307
|
typeParams.push(createHostDirectivesType(meta));
|
|
19308
|
+
// TODO(signals): Always include this metadata starting with v17. Right
|
|
19309
|
+
// now Angular v16.0.x does not support this field and library distributions
|
|
19310
|
+
// would then be incompatible with v16.0.x framework users.
|
|
19311
|
+
if (meta.isSignal) {
|
|
19312
|
+
typeParams.push(expressionType(literal(meta.isSignal)));
|
|
19313
|
+
}
|
|
19126
19314
|
return expressionType(importExpr(Identifiers.ComponentDeclaration, typeParams));
|
|
19127
19315
|
}
|
|
19128
19316
|
/**
|
|
@@ -19250,6 +19438,12 @@ function createDirectiveType(meta) {
|
|
|
19250
19438
|
typeParams.push(NONE_TYPE);
|
|
19251
19439
|
typeParams.push(expressionType(literal(meta.isStandalone)));
|
|
19252
19440
|
typeParams.push(createHostDirectivesType(meta));
|
|
19441
|
+
// TODO(signals): Always include this metadata starting with v17. Right
|
|
19442
|
+
// now Angular v16.0.x does not support this field and library distributions
|
|
19443
|
+
// would then be incompatible with v16.0.x framework users.
|
|
19444
|
+
if (meta.isSignal) {
|
|
19445
|
+
typeParams.push(expressionType(literal(meta.isSignal)));
|
|
19446
|
+
}
|
|
19253
19447
|
return expressionType(importExpr(Identifiers.DirectiveDeclaration, typeParams));
|
|
19254
19448
|
}
|
|
19255
19449
|
// Define and update any view queries
|
|
@@ -19714,6 +19908,7 @@ class CompilerFacadeImpl {
|
|
|
19714
19908
|
}
|
|
19715
19909
|
compileNgModule(angularCoreEnv, sourceMapUrl, facade) {
|
|
19716
19910
|
const meta = {
|
|
19911
|
+
kind: exports.R3NgModuleMetadataKind.Global,
|
|
19717
19912
|
type: wrapReference(facade.type),
|
|
19718
19913
|
bootstrap: facade.bootstrap.map(wrapReference),
|
|
19719
19914
|
declarations: facade.declarations.map(wrapReference),
|
|
@@ -19868,7 +20063,8 @@ function convertDirectiveFacadeToMetadata(facade) {
|
|
|
19868
20063
|
inputsFromType[field] = {
|
|
19869
20064
|
bindingPropertyName: ann.alias || field,
|
|
19870
20065
|
classPropertyName: field,
|
|
19871
|
-
required: ann.required || false
|
|
20066
|
+
required: ann.required || false,
|
|
20067
|
+
transformFunction: ann.transform != null ? new WrappedNodeExpr(ann.transform) : null,
|
|
19872
20068
|
};
|
|
19873
20069
|
}
|
|
19874
20070
|
else if (isOutput(ann)) {
|
|
@@ -19913,6 +20109,7 @@ function convertDeclareDirectiveFacadeToMetadata(declaration, typeSourceSpan) {
|
|
|
19913
20109
|
typeArgumentCount: 0,
|
|
19914
20110
|
fullInheritance: false,
|
|
19915
20111
|
isStandalone: declaration.isStandalone ?? false,
|
|
20112
|
+
isSignal: declaration.isSignal ?? false,
|
|
19916
20113
|
hostDirectives: convertHostDirectivesToMetadata(declaration),
|
|
19917
20114
|
};
|
|
19918
20115
|
}
|
|
@@ -20136,9 +20333,22 @@ function isOutput(value) {
|
|
|
20136
20333
|
function inputsMappingToInputMetadata(inputs) {
|
|
20137
20334
|
return Object.keys(inputs).reduce((result, key) => {
|
|
20138
20335
|
const value = inputs[key];
|
|
20139
|
-
|
|
20140
|
-
|
|
20141
|
-
|
|
20336
|
+
if (typeof value === 'string') {
|
|
20337
|
+
result[key] = {
|
|
20338
|
+
bindingPropertyName: value,
|
|
20339
|
+
classPropertyName: value,
|
|
20340
|
+
transformFunction: null,
|
|
20341
|
+
required: false,
|
|
20342
|
+
};
|
|
20343
|
+
}
|
|
20344
|
+
else {
|
|
20345
|
+
result[key] = {
|
|
20346
|
+
bindingPropertyName: value[0],
|
|
20347
|
+
classPropertyName: value[1],
|
|
20348
|
+
transformFunction: value[2] ? new WrappedNodeExpr(value[2]) : null,
|
|
20349
|
+
required: false,
|
|
20350
|
+
};
|
|
20351
|
+
}
|
|
20142
20352
|
return result;
|
|
20143
20353
|
}, {});
|
|
20144
20354
|
}
|
|
@@ -20146,13 +20356,19 @@ function parseInputsArray(values) {
|
|
|
20146
20356
|
return values.reduce((results, value) => {
|
|
20147
20357
|
if (typeof value === 'string') {
|
|
20148
20358
|
const [bindingPropertyName, classPropertyName] = parseMappingString(value);
|
|
20149
|
-
results[classPropertyName] = {
|
|
20359
|
+
results[classPropertyName] = {
|
|
20360
|
+
bindingPropertyName,
|
|
20361
|
+
classPropertyName,
|
|
20362
|
+
required: false,
|
|
20363
|
+
transformFunction: null,
|
|
20364
|
+
};
|
|
20150
20365
|
}
|
|
20151
20366
|
else {
|
|
20152
20367
|
results[value.name] = {
|
|
20153
20368
|
bindingPropertyName: value.alias || value.name,
|
|
20154
20369
|
classPropertyName: value.name,
|
|
20155
|
-
required: value.required || false
|
|
20370
|
+
required: value.required || false,
|
|
20371
|
+
transformFunction: value.transform != null ? new WrappedNodeExpr(value.transform) : null,
|
|
20156
20372
|
};
|
|
20157
20373
|
}
|
|
20158
20374
|
return results;
|
|
@@ -20204,7 +20420,7 @@ function publishFacade(global) {
|
|
|
20204
20420
|
* @description
|
|
20205
20421
|
* Entry point for all public APIs of the compiler package.
|
|
20206
20422
|
*/
|
|
20207
|
-
const VERSION = new Version('16.
|
|
20423
|
+
const VERSION = new Version('16.1.4');
|
|
20208
20424
|
|
|
20209
20425
|
class CompilerConfig {
|
|
20210
20426
|
constructor({ defaultEncapsulation = exports.ViewEncapsulation.Emulated, useJit = true, missingTranslation = null, preserveWhitespaces, strictInjectionParameters } = {}) {
|
|
@@ -22132,7 +22348,7 @@ const MINIMUM_PARTIAL_LINKER_VERSION$6 = '12.0.0';
|
|
|
22132
22348
|
function compileDeclareClassMetadata(metadata) {
|
|
22133
22349
|
const definitionMap = new DefinitionMap();
|
|
22134
22350
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$6));
|
|
22135
|
-
definitionMap.set('version', literal('16.
|
|
22351
|
+
definitionMap.set('version', literal('16.1.4'));
|
|
22136
22352
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
22137
22353
|
definitionMap.set('type', metadata.type);
|
|
22138
22354
|
definitionMap.set('decorators', metadata.decorators);
|
|
@@ -22235,12 +22451,15 @@ function compileDeclareDirectiveFromMetadata(meta) {
|
|
|
22235
22451
|
function createDirectiveDefinitionMap(meta) {
|
|
22236
22452
|
const definitionMap = new DefinitionMap();
|
|
22237
22453
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$5));
|
|
22238
|
-
definitionMap.set('version', literal('16.
|
|
22454
|
+
definitionMap.set('version', literal('16.1.4'));
|
|
22239
22455
|
// e.g. `type: MyDirective`
|
|
22240
22456
|
definitionMap.set('type', meta.type.value);
|
|
22241
22457
|
if (meta.isStandalone) {
|
|
22242
22458
|
definitionMap.set('isStandalone', literal(meta.isStandalone));
|
|
22243
22459
|
}
|
|
22460
|
+
if (meta.isSignal) {
|
|
22461
|
+
definitionMap.set('isSignal', literal(meta.isSignal));
|
|
22462
|
+
}
|
|
22244
22463
|
// e.g. `selector: 'some-dir'`
|
|
22245
22464
|
if (meta.selector !== null) {
|
|
22246
22465
|
definitionMap.set('selector', literal(meta.selector));
|
|
@@ -22457,7 +22676,7 @@ const MINIMUM_PARTIAL_LINKER_VERSION$4 = '12.0.0';
|
|
|
22457
22676
|
function compileDeclareFactoryFunction(meta) {
|
|
22458
22677
|
const definitionMap = new DefinitionMap();
|
|
22459
22678
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$4));
|
|
22460
|
-
definitionMap.set('version', literal('16.
|
|
22679
|
+
definitionMap.set('version', literal('16.1.4'));
|
|
22461
22680
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
22462
22681
|
definitionMap.set('type', meta.type.value);
|
|
22463
22682
|
definitionMap.set('deps', compileDependencies(meta.deps));
|
|
@@ -22492,7 +22711,7 @@ function compileDeclareInjectableFromMetadata(meta) {
|
|
|
22492
22711
|
function createInjectableDefinitionMap(meta) {
|
|
22493
22712
|
const definitionMap = new DefinitionMap();
|
|
22494
22713
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$3));
|
|
22495
|
-
definitionMap.set('version', literal('16.
|
|
22714
|
+
definitionMap.set('version', literal('16.1.4'));
|
|
22496
22715
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
22497
22716
|
definitionMap.set('type', meta.type.value);
|
|
22498
22717
|
// Only generate providedIn property if it has a non-null value
|
|
@@ -22543,7 +22762,7 @@ function compileDeclareInjectorFromMetadata(meta) {
|
|
|
22543
22762
|
function createInjectorDefinitionMap(meta) {
|
|
22544
22763
|
const definitionMap = new DefinitionMap();
|
|
22545
22764
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$2));
|
|
22546
|
-
definitionMap.set('version', literal('16.
|
|
22765
|
+
definitionMap.set('version', literal('16.1.4'));
|
|
22547
22766
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
22548
22767
|
definitionMap.set('type', meta.type.value);
|
|
22549
22768
|
definitionMap.set('providers', meta.providers);
|
|
@@ -22572,8 +22791,11 @@ function compileDeclareNgModuleFromMetadata(meta) {
|
|
|
22572
22791
|
*/
|
|
22573
22792
|
function createNgModuleDefinitionMap(meta) {
|
|
22574
22793
|
const definitionMap = new DefinitionMap();
|
|
22794
|
+
if (meta.kind === exports.R3NgModuleMetadataKind.Local) {
|
|
22795
|
+
throw new Error('Invalid path! Local compilation mode should not get into the partial compilation path');
|
|
22796
|
+
}
|
|
22575
22797
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$1));
|
|
22576
|
-
definitionMap.set('version', literal('16.
|
|
22798
|
+
definitionMap.set('version', literal('16.1.4'));
|
|
22577
22799
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
22578
22800
|
definitionMap.set('type', meta.type.value);
|
|
22579
22801
|
// We only generate the keys in the metadata if the arrays contain values.
|
|
@@ -22624,7 +22846,7 @@ function compileDeclarePipeFromMetadata(meta) {
|
|
|
22624
22846
|
function createPipeDefinitionMap(meta) {
|
|
22625
22847
|
const definitionMap = new DefinitionMap();
|
|
22626
22848
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION));
|
|
22627
|
-
definitionMap.set('version', literal('16.
|
|
22849
|
+
definitionMap.set('version', literal('16.1.4'));
|
|
22628
22850
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
22629
22851
|
// e.g. `type: MyPipe`
|
|
22630
22852
|
definitionMap.set('type', meta.type.value);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@angular-eslint/bundled-angular-compiler",
|
|
3
|
-
"version": "16.1.
|
|
3
|
+
"version": "16.1.1-alpha.0+dce6381",
|
|
4
4
|
"description": "A CJS bundled version of @angular/compiler",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -15,5 +15,5 @@
|
|
|
15
15
|
"package.json",
|
|
16
16
|
"README.md"
|
|
17
17
|
],
|
|
18
|
-
"gitHead": "
|
|
18
|
+
"gitHead": "dce6381cafcbe2de109d0a53b4c9c3e3bf1ae569"
|
|
19
19
|
}
|