@angular/compiler 17.3.0-rc.0 → 17.3.1
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/esm2022/src/render3/partial/class_metadata.mjs +1 -1
- package/esm2022/src/render3/partial/directive.mjs +1 -1
- package/esm2022/src/render3/partial/factory.mjs +1 -1
- package/esm2022/src/render3/partial/injectable.mjs +1 -1
- package/esm2022/src/render3/partial/injector.mjs +1 -1
- package/esm2022/src/render3/partial/ng_module.mjs +1 -1
- package/esm2022/src/render3/partial/pipe.mjs +1 -1
- package/esm2022/src/render3/r3_control_flow.mjs +5 -1
- package/esm2022/src/template/pipeline/src/ingest.mjs +13 -5
- package/esm2022/src/template/pipeline/src/phases/transform_two_way_binding_set.mjs +11 -2
- package/esm2022/src/version.mjs +1 -1
- package/fesm2022/compiler.mjs +34 -14
- package/fesm2022/compiler.mjs.map +1 -1
- package/index.d.ts +1 -1
- package/package.json +2 -2
|
@@ -29,10 +29,19 @@ export function transformTwoWayBindingSet(job) {
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
function wrapSetOperation(target, value) {
|
|
32
|
+
// ASSUMPTION: here we're assuming that `ReadVariableExpr` will be a reference
|
|
33
|
+
// to a local template variable. This appears to be the case at the time of writing.
|
|
34
|
+
// If the expression is targeting a variable read, we only emit the `twoWayBindingSet` since
|
|
35
|
+
// the fallback would be attempting to write into a constant. Invalid usages will be flagged
|
|
36
|
+
// during template type checking.
|
|
37
|
+
if (target instanceof ir.ReadVariableExpr) {
|
|
38
|
+
return ng.twoWayBindingSet(target, value);
|
|
39
|
+
}
|
|
32
40
|
return ng.twoWayBindingSet(target, value).or(target.set(value));
|
|
33
41
|
}
|
|
34
42
|
function isReadExpression(value) {
|
|
35
|
-
return value instanceof o.ReadPropExpr || value instanceof o.ReadKeyExpr
|
|
43
|
+
return value instanceof o.ReadPropExpr || value instanceof o.ReadKeyExpr ||
|
|
44
|
+
value instanceof ir.ReadVariableExpr;
|
|
36
45
|
}
|
|
37
46
|
function wrapAction(target, value) {
|
|
38
47
|
// The only officially supported expressions inside of a two-way binding are read expressions.
|
|
@@ -76,4 +85,4 @@ function wrapAction(target, value) {
|
|
|
76
85
|
}
|
|
77
86
|
throw new Error(`Unsupported expression in two-way action binding.`);
|
|
78
87
|
}
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtX3R3b193YXlfYmluZGluZ19zZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci9zcmMvdGVtcGxhdGUvcGlwZWxpbmUvc3JjL3BoYXNlcy90cmFuc2Zvcm1fdHdvX3dheV9iaW5kaW5nX3NldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEtBQUssQ0FBQyxNQUFNLCtCQUErQixDQUFDO0FBQ25ELE9BQU8sS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQy9CLE9BQU8sS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckM7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUseUJBQXlCLENBQUMsR0FBbUI7SUFDM0QsS0FBSyxNQUFNLElBQUksSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0IsS0FBSyxNQUFNLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDN0IsSUFBSSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3pDLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtvQkFDdkMsSUFBSSxJQUFJLFlBQVksRUFBRSxDQUFDLG9CQUFvQixFQUFFLENBQUM7d0JBQzVDLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUM3QyxDQUFDO29CQUNELE9BQU8sSUFBSSxDQUFDO2dCQUNkLENBQUMsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUM3QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FDckIsTUFBd0QsRUFBRSxLQUFtQjtJQUMvRSw4RUFBOEU7SUFDOUUsb0ZBQW9GO0lBQ3BGLDRGQUE0RjtJQUM1Riw0RkFBNEY7SUFDNUYsaUNBQWlDO0lBQ2pDLElBQUksTUFBTSxZQUFZLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFDLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDbEUsQ0FBQztBQUVELFNBQVMsZ0JBQWdCLENBQUMsS0FBYztJQUV0QyxPQUFPLEtBQUssWUFBWSxDQUFDLENBQUMsWUFBWSxJQUFJLEtBQUssWUFBWSxDQUFDLENBQUMsV0FBVztRQUNwRSxLQUFLLFlBQVksRUFBRSxDQUFDLGdCQUFnQixDQUFDO0FBQzNDLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxNQUFvQixFQUFFLEtBQW1CO0lBQzNELDhGQUE4RjtJQUM5RixJQUFJLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDN0IsT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELGlHQUFpRztJQUNqRyw0RkFBNEY7SUFDNUYsNEZBQTRGO0lBQzVGLDRGQUE0RjtJQUM1Riw2RkFBNkY7SUFDN0YsMEZBQTBGO0lBQzFGLDJGQUEyRjtJQUMzRiw2QkFBNkI7SUFDN0IsSUFBSSxNQUFNLFlBQVksQ0FBQyxDQUFDLGtCQUFrQixJQUFJLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzNFLDZFQUE2RTtRQUM3RSxPQUFPLElBQUksQ0FBQyxDQUFDLGtCQUFrQixDQUMzQixNQUFNLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxnRUFBZ0U7SUFDaEUsa0VBQWtFO0lBQ2xFLElBQUksTUFBTSxZQUFZLENBQUMsQ0FBQyxlQUFlLElBQUksZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDOUUsdUZBQXVGO1FBQ3ZGLE9BQU8sSUFBSSxDQUFDLENBQUMsZUFBZSxDQUN4QixNQUFNLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRCxpRUFBaUU7SUFDakUsZ0ZBQWdGO0lBQ2hGLG9FQUFvRTtJQUNwRSxJQUFJLE1BQU0sWUFBWSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDaEMsSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUU1QixPQUFPLElBQUksRUFBRSxDQUFDO1lBQ1osSUFBSSxJQUFJLFlBQVksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUM5QixJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUN4QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO29CQUMzQixPQUFPLGdCQUFnQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDdkMsQ0FBQztnQkFDRCxNQUFNO1lBQ1IsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO0FBQ3ZFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICogYXMgbyBmcm9tICcuLi8uLi8uLi8uLi9vdXRwdXQvb3V0cHV0X2FzdCc7XG5pbXBvcnQgKiBhcyBpciBmcm9tICcuLi8uLi9pcic7XG5pbXBvcnQgKiBhcyBuZyBmcm9tICcuLi9pbnN0cnVjdGlvbic7XG5pbXBvcnQgdHlwZSB7Q29tcGlsYXRpb25Kb2J9IGZyb20gJy4uL2NvbXBpbGF0aW9uJztcblxuLyoqXG4gKiBUcmFuc2Zvcm1zIGEgYFR3b1dheUJpbmRpbmdTZXRgIGV4cHJlc3Npb24gaW50byBhbiBleHByZXNzaW9uIHRoYXQgZWl0aGVyXG4gKiBzZXRzIGEgdmFsdWUgdGhyb3VnaCB0aGUgYHR3b1dheUJpbmRpbmdTZXRgIGluc3RydWN0aW9uIG9yIGZhbGxzIGJhY2sgdG8gc2V0dGluZ1xuICogdGhlIHZhbHVlIGRpcmVjdGx5LiBFLmcuIHRoZSBleHByZXNzaW9uIGBUd29XYXlCaW5kaW5nU2V0KHRhcmdldCwgdmFsdWUpYCBiZWNvbWVzOlxuICogYG5nLnR3b1dheUJpbmRpbmdTZXQodGFyZ2V0LCB2YWx1ZSkgfHwgKHRhcmdldCA9IHZhbHVlKWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1Ud29XYXlCaW5kaW5nU2V0KGpvYjogQ29tcGlsYXRpb25Kb2IpOiB2b2lkIHtcbiAgZm9yIChjb25zdCB1bml0IG9mIGpvYi51bml0cykge1xuICAgIGZvciAoY29uc3Qgb3Agb2YgdW5pdC5jcmVhdGUpIHtcbiAgICAgIGlmIChvcC5raW5kID09PSBpci5PcEtpbmQuVHdvV2F5TGlzdGVuZXIpIHtcbiAgICAgICAgaXIudHJhbnNmb3JtRXhwcmVzc2lvbnNJbk9wKG9wLCAoZXhwcikgPT4ge1xuICAgICAgICAgIGlmIChleHByIGluc3RhbmNlb2YgaXIuVHdvV2F5QmluZGluZ1NldEV4cHIpIHtcbiAgICAgICAgICAgIHJldHVybiB3cmFwQWN0aW9uKGV4cHIudGFyZ2V0LCBleHByLnZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGV4cHI7XG4gICAgICAgIH0sIGlyLlZpc2l0b3JDb250ZXh0RmxhZy5JbkNoaWxkT3BlcmF0aW9uKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gd3JhcFNldE9wZXJhdGlvbihcbiAgICB0YXJnZXQ6IG8uUmVhZFByb3BFeHByfG8uUmVhZEtleUV4cHJ8aXIuUmVhZFZhcmlhYmxlRXhwciwgdmFsdWU6IG8uRXhwcmVzc2lvbik6IG8uRXhwcmVzc2lvbiB7XG4gIC8vIEFTU1VNUFRJT046IGhlcmUgd2UncmUgYXNzdW1pbmcgdGhhdCBgUmVhZFZhcmlhYmxlRXhwcmAgd2lsbCBiZSBhIHJlZmVyZW5jZVxuICAvLyB0byBhIGxvY2FsIHRlbXBsYXRlIHZhcmlhYmxlLiBUaGlzIGFwcGVhcnMgdG8gYmUgdGhlIGNhc2UgYXQgdGhlIHRpbWUgb2Ygd3JpdGluZy5cbiAgLy8gSWYgdGhlIGV4cHJlc3Npb24gaXMgdGFyZ2V0aW5nIGEgdmFyaWFibGUgcmVhZCwgd2Ugb25seSBlbWl0IHRoZSBgdHdvV2F5QmluZGluZ1NldGAgc2luY2VcbiAgLy8gdGhlIGZhbGxiYWNrIHdvdWxkIGJlIGF0dGVtcHRpbmcgdG8gd3JpdGUgaW50byBhIGNvbnN0YW50LiBJbnZhbGlkIHVzYWdlcyB3aWxsIGJlIGZsYWdnZWRcbiAgLy8gZHVyaW5nIHRlbXBsYXRlIHR5cGUgY2hlY2tpbmcuXG4gIGlmICh0YXJnZXQgaW5zdGFuY2VvZiBpci5SZWFkVmFyaWFibGVFeHByKSB7XG4gICAgcmV0dXJuIG5nLnR3b1dheUJpbmRpbmdTZXQodGFyZ2V0LCB2YWx1ZSk7XG4gIH1cblxuICByZXR1cm4gbmcudHdvV2F5QmluZGluZ1NldCh0YXJnZXQsIHZhbHVlKS5vcih0YXJnZXQuc2V0KHZhbHVlKSk7XG59XG5cbmZ1bmN0aW9uIGlzUmVhZEV4cHJlc3Npb24odmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBvLlJlYWRQcm9wRXhwcnxvLlJlYWRLZXlFeHByfFxuICAgIGlyLlJlYWRWYXJpYWJsZUV4cHIge1xuICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBvLlJlYWRQcm9wRXhwciB8fCB2YWx1ZSBpbnN0YW5jZW9mIG8uUmVhZEtleUV4cHIgfHxcbiAgICAgIHZhbHVlIGluc3RhbmNlb2YgaXIuUmVhZFZhcmlhYmxlRXhwcjtcbn1cblxuZnVuY3Rpb24gd3JhcEFjdGlvbih0YXJnZXQ6IG8uRXhwcmVzc2lvbiwgdmFsdWU6IG8uRXhwcmVzc2lvbik6IG8uRXhwcmVzc2lvbiB7XG4gIC8vIFRoZSBvbmx5IG9mZmljaWFsbHkgc3VwcG9ydGVkIGV4cHJlc3Npb25zIGluc2lkZSBvZiBhIHR3by13YXkgYmluZGluZyBhcmUgcmVhZCBleHByZXNzaW9ucy5cbiAgaWYgKGlzUmVhZEV4cHJlc3Npb24odGFyZ2V0KSkge1xuICAgIHJldHVybiB3cmFwU2V0T3BlcmF0aW9uKHRhcmdldCwgdmFsdWUpO1xuICB9XG5cbiAgLy8gSG93ZXZlciwgaGlzdG9yaWNhbGx5IHRoZSBleHByZXNzaW9uIHBhcnNlciB3YXMgaGFuZGxpbmcgdHdvLXdheSBldmVudHMgYnkgYXBwZW5kaW5nIGA9JGV2ZW50YFxuICAvLyB0byB0aGUgcmF3IHN0cmluZyBiZWZvcmUgYXR0ZW1wdGluZyB0byBwYXJzZSBpdC4gVGhpcyBoYXMgbGVkIHRvIGJ1Z3Mgb3ZlciB0aGUgeWVhcnMgKHNlZVxuICAvLyAjMzc4MDkpIGFuZCB0byB1bmludGVudGlvbmFsbHkgc3VwcG9ydGluZyB1bmFzc2lnbmFibGUgZXZlbnRzIGluIHRoZSB0d28td2F5IGJpbmRpbmcuIFRoZVxuICAvLyBsb2dpYyBiZWxvdyBhaW1zIHRvIGVtdWxhdGUgdGhlIG9sZCBiZWhhdmlvciB3aGlsZSBzdGlsbCBzdXBwb3J0aW5nIHRoZSBuZXcgb3V0cHV0IGZvcm1hdFxuICAvLyB3aGljaCB1c2VzIGB0d29XYXlCaW5kaW5nU2V0YC4gTm90ZSB0aGF0IHRoZSBnZW5lcmF0ZWQgY29kZSBkb2Vzbid0IG5lY2Vzc2FyaWx5IG1ha2Ugc2Vuc2VcbiAgLy8gYmFzZWQgb24gd2hhdCB0aGUgdXNlciB3cm90ZSwgZm9yIGV4YW1wbGUgdGhlIGV2ZW50IGJpbmRpbmcgZm9yIGBbKHZhbHVlKV09XCJhID8gYiA6IGNcImBcbiAgLy8gd291bGQgcHJvZHVjZSBgY3R4LmEgPyBjdHguYiA6IGN0eC5jID0gJGV2ZW50YC4gV2UgYWltIHRvIHJlcHJvZHVjZSB3aGF0IHRoZSBwYXJzZXIgdXNlZFxuICAvLyB0byBnZW5lcmF0ZSBiZWZvcmUgIzU0MTU0LlxuICBpZiAodGFyZ2V0IGluc3RhbmNlb2Ygby5CaW5hcnlPcGVyYXRvckV4cHIgJiYgaXNSZWFkRXhwcmVzc2lvbih0YXJnZXQucmhzKSkge1xuICAgIC8vIGBhICYmIGJgIC0+IGBjdHguYSAmJiB0d29XYXlCaW5kaW5nU2V0KGN0eC5iLCAkZXZlbnQpIHx8IChjdHguYiA9ICRldmVudClgXG4gICAgcmV0dXJuIG5ldyBvLkJpbmFyeU9wZXJhdG9yRXhwcihcbiAgICAgICAgdGFyZ2V0Lm9wZXJhdG9yLCB0YXJnZXQubGhzLCB3cmFwU2V0T3BlcmF0aW9uKHRhcmdldC5yaHMsIHZhbHVlKSk7XG4gIH1cblxuICAvLyBOb3RlOiB0aGlzIGFsc28gc3VwcG9ydHMgbnVsbGlzaCBjb2FsZXNjaW5nIGV4cHJlc3Npb25zIHdoaWNoXG4gIC8vIHdvdWxkJ3ZlIGJlZW4gZG93bmxldmVsZWQgdG8gdGVybmFyeSBleHByZXNzaW9ucyBieSB0aGlzIHBvaW50LlxuICBpZiAodGFyZ2V0IGluc3RhbmNlb2Ygby5Db25kaXRpb25hbEV4cHIgJiYgaXNSZWFkRXhwcmVzc2lvbih0YXJnZXQuZmFsc2VDYXNlKSkge1xuICAgIC8vIGBhID8gYiA6IGNgIC0+IGBjdHguYSA/IGN0eC5iIDogdHdvV2F5QmluZGluZ1NldChjdHguYywgJGV2ZW50KSB8fCAoY3R4LmMgPSAkZXZlbnQpYFxuICAgIHJldHVybiBuZXcgby5Db25kaXRpb25hbEV4cHIoXG4gICAgICAgIHRhcmdldC5jb25kaXRpb24sIHRhcmdldC50cnVlQ2FzZSwgd3JhcFNldE9wZXJhdGlvbih0YXJnZXQuZmFsc2VDYXNlLCB2YWx1ZSkpO1xuICB9XG5cbiAgLy8gYCEhYWAgLT4gYHR3b1dheUJpbmRpbmdTZXQoY3R4LmEsICRldmVudCkgfHwgKGN0eC5hID0gJGV2ZW50KWBcbiAgLy8gTm90ZTogcHJldmlvdXNseSB3ZSdkIGFjdHVhbGx5IHByb2R1Y2UgYCEhKGN0eC5hID0gJGV2ZW50KWAsIGJ1dCB0aGUgd3JhcHBpbmdcbiAgLy8gbm9kZSBkb2Vzbid0IGFmZmVjdCB0aGUgcmVzdWx0IHNvIHdlIGRvbid0IG5lZWQgdG8gY2FycnkgaXQgb3Zlci5cbiAgaWYgKHRhcmdldCBpbnN0YW5jZW9mIG8uTm90RXhwcikge1xuICAgIGxldCBleHByID0gdGFyZ2V0LmNvbmRpdGlvbjtcblxuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBpZiAoZXhwciBpbnN0YW5jZW9mIG8uTm90RXhwcikge1xuICAgICAgICBleHByID0gZXhwci5jb25kaXRpb247XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoaXNSZWFkRXhwcmVzc2lvbihleHByKSkge1xuICAgICAgICAgIHJldHVybiB3cmFwU2V0T3BlcmF0aW9uKGV4cHIsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGV4cHJlc3Npb24gaW4gdHdvLXdheSBhY3Rpb24gYmluZGluZy5gKTtcbn1cbiJdfQ==
|
package/esm2022/src/version.mjs
CHANGED
|
@@ -11,5 +11,5 @@
|
|
|
11
11
|
* Entry point for all public APIs of the compiler package.
|
|
12
12
|
*/
|
|
13
13
|
import { Version } from './util';
|
|
14
|
-
export const VERSION = new Version('17.3.
|
|
14
|
+
export const VERSION = new Version('17.3.1');
|
|
15
15
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVIOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBRS9CLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8qKlxuICogQG1vZHVsZVxuICogQGRlc2NyaXB0aW9uXG4gKiBFbnRyeSBwb2ludCBmb3IgYWxsIHB1YmxpYyBBUElzIG9mIHRoZSBjb21waWxlciBwYWNrYWdlLlxuICovXG5cbmltcG9ydCB7VmVyc2lvbn0gZnJvbSAnLi91dGlsJztcblxuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSBuZXcgVmVyc2lvbignMC4wLjAtUExBQ0VIT0xERVInKTtcbiJdfQ==
|
package/fesm2022/compiler.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v17.3.
|
|
2
|
+
* @license Angular v17.3.1
|
|
3
3
|
* (c) 2010-2022 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -23169,10 +23169,19 @@ function transformTwoWayBindingSet(job) {
|
|
|
23169
23169
|
}
|
|
23170
23170
|
}
|
|
23171
23171
|
function wrapSetOperation(target, value) {
|
|
23172
|
+
// ASSUMPTION: here we're assuming that `ReadVariableExpr` will be a reference
|
|
23173
|
+
// to a local template variable. This appears to be the case at the time of writing.
|
|
23174
|
+
// If the expression is targeting a variable read, we only emit the `twoWayBindingSet` since
|
|
23175
|
+
// the fallback would be attempting to write into a constant. Invalid usages will be flagged
|
|
23176
|
+
// during template type checking.
|
|
23177
|
+
if (target instanceof ReadVariableExpr) {
|
|
23178
|
+
return twoWayBindingSet(target, value);
|
|
23179
|
+
}
|
|
23172
23180
|
return twoWayBindingSet(target, value).or(target.set(value));
|
|
23173
23181
|
}
|
|
23174
23182
|
function isReadExpression(value) {
|
|
23175
|
-
return value instanceof ReadPropExpr || value instanceof ReadKeyExpr
|
|
23183
|
+
return value instanceof ReadPropExpr || value instanceof ReadKeyExpr ||
|
|
23184
|
+
value instanceof ReadVariableExpr;
|
|
23176
23185
|
}
|
|
23177
23186
|
function wrapAction(target, value) {
|
|
23178
23187
|
// The only officially supported expressions inside of a two-way binding are read expressions.
|
|
@@ -25328,15 +25337,23 @@ function ingestControlFlowInsertionPoint(unit, xref, node) {
|
|
|
25328
25337
|
root = child;
|
|
25329
25338
|
}
|
|
25330
25339
|
}
|
|
25331
|
-
// If we've found a single root node, its tag name and
|
|
25332
|
-
// to the surrounding template to be used for content projection.
|
|
25333
|
-
// that we don't copy any bound attributes since they don't participate in content projection
|
|
25334
|
-
// and they can be used in directive matching (in the case of `Template.templateAttrs`).
|
|
25340
|
+
// If we've found a single root node, its tag name and attributes can be
|
|
25341
|
+
// copied to the surrounding template to be used for content projection.
|
|
25335
25342
|
if (root !== null) {
|
|
25343
|
+
// Collect the static attributes for content projection purposes.
|
|
25336
25344
|
for (const attr of root.attributes) {
|
|
25337
25345
|
const securityContext = domSchema.securityContext(NG_TEMPLATE_TAG_NAME$1, attr.name, true);
|
|
25338
25346
|
unit.update.push(createBindingOp(xref, BindingKind.Attribute, attr.name, literal(attr.value), null, securityContext, true, false, null, asMessage(attr.i18n), attr.sourceSpan));
|
|
25339
25347
|
}
|
|
25348
|
+
// Also collect the inputs since they participate in content projection as well.
|
|
25349
|
+
// Note that TDB used to collect the outputs as well, but it wasn't passing them into
|
|
25350
|
+
// the template instruction. Here we just don't collect them.
|
|
25351
|
+
for (const attr of root.inputs) {
|
|
25352
|
+
if (attr.type !== 4 /* e.BindingType.Animation */ && attr.type !== 1 /* e.BindingType.Attribute */) {
|
|
25353
|
+
const securityContext = domSchema.securityContext(NG_TEMPLATE_TAG_NAME$1, attr.name, true);
|
|
25354
|
+
unit.create.push(createExtractedAttributeOp(xref, BindingKind.Property, null, attr.name, null, null, null, securityContext));
|
|
25355
|
+
}
|
|
25356
|
+
}
|
|
25340
25357
|
const tagName = root instanceof Element$1 ? root.name : root.tagName;
|
|
25341
25358
|
// Don't pass along `ng-template` tag name since it enables directive matching.
|
|
25342
25359
|
return tagName === NG_TEMPLATE_TAG_NAME$1 ? null : tagName;
|
|
@@ -26156,6 +26173,9 @@ function parseForLoopParameters(block, errors, bindingParser) {
|
|
|
26156
26173
|
}
|
|
26157
26174
|
else {
|
|
26158
26175
|
const expression = parseBlockParameterToBinding(param, bindingParser, trackMatch[1]);
|
|
26176
|
+
if (expression.ast instanceof EmptyExpr$1) {
|
|
26177
|
+
errors.push(new ParseError(param.sourceSpan, '@for loop must have a "track" expression'));
|
|
26178
|
+
}
|
|
26159
26179
|
const keywordSpan = new ParseSourceSpan(param.sourceSpan.start, param.sourceSpan.start.moveBy('track'.length));
|
|
26160
26180
|
result.trackBy = { expression, keywordSpan };
|
|
26161
26181
|
}
|
|
@@ -32806,7 +32826,7 @@ function publishFacade(global) {
|
|
|
32806
32826
|
* @description
|
|
32807
32827
|
* Entry point for all public APIs of the compiler package.
|
|
32808
32828
|
*/
|
|
32809
|
-
const VERSION = new Version('17.3.
|
|
32829
|
+
const VERSION = new Version('17.3.1');
|
|
32810
32830
|
|
|
32811
32831
|
class CompilerConfig {
|
|
32812
32832
|
constructor({ defaultEncapsulation = ViewEncapsulation.Emulated, preserveWhitespaces, strictInjectionParameters } = {}) {
|
|
@@ -34374,7 +34394,7 @@ const MINIMUM_PARTIAL_LINKER_VERSION$5 = '12.0.0';
|
|
|
34374
34394
|
function compileDeclareClassMetadata(metadata) {
|
|
34375
34395
|
const definitionMap = new DefinitionMap();
|
|
34376
34396
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$5));
|
|
34377
|
-
definitionMap.set('version', literal('17.3.
|
|
34397
|
+
definitionMap.set('version', literal('17.3.1'));
|
|
34378
34398
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
34379
34399
|
definitionMap.set('type', metadata.type);
|
|
34380
34400
|
definitionMap.set('decorators', metadata.decorators);
|
|
@@ -34470,7 +34490,7 @@ function createDirectiveDefinitionMap(meta) {
|
|
|
34470
34490
|
const definitionMap = new DefinitionMap();
|
|
34471
34491
|
const minVersion = getMinimumVersionForPartialOutput(meta);
|
|
34472
34492
|
definitionMap.set('minVersion', literal(minVersion));
|
|
34473
|
-
definitionMap.set('version', literal('17.3.
|
|
34493
|
+
definitionMap.set('version', literal('17.3.1'));
|
|
34474
34494
|
// e.g. `type: MyDirective`
|
|
34475
34495
|
definitionMap.set('type', meta.type.value);
|
|
34476
34496
|
if (meta.isStandalone) {
|
|
@@ -34862,7 +34882,7 @@ const MINIMUM_PARTIAL_LINKER_VERSION$4 = '12.0.0';
|
|
|
34862
34882
|
function compileDeclareFactoryFunction(meta) {
|
|
34863
34883
|
const definitionMap = new DefinitionMap();
|
|
34864
34884
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$4));
|
|
34865
|
-
definitionMap.set('version', literal('17.3.
|
|
34885
|
+
definitionMap.set('version', literal('17.3.1'));
|
|
34866
34886
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
34867
34887
|
definitionMap.set('type', meta.type.value);
|
|
34868
34888
|
definitionMap.set('deps', compileDependencies(meta.deps));
|
|
@@ -34897,7 +34917,7 @@ function compileDeclareInjectableFromMetadata(meta) {
|
|
|
34897
34917
|
function createInjectableDefinitionMap(meta) {
|
|
34898
34918
|
const definitionMap = new DefinitionMap();
|
|
34899
34919
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$3));
|
|
34900
|
-
definitionMap.set('version', literal('17.3.
|
|
34920
|
+
definitionMap.set('version', literal('17.3.1'));
|
|
34901
34921
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
34902
34922
|
definitionMap.set('type', meta.type.value);
|
|
34903
34923
|
// Only generate providedIn property if it has a non-null value
|
|
@@ -34948,7 +34968,7 @@ function compileDeclareInjectorFromMetadata(meta) {
|
|
|
34948
34968
|
function createInjectorDefinitionMap(meta) {
|
|
34949
34969
|
const definitionMap = new DefinitionMap();
|
|
34950
34970
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$2));
|
|
34951
|
-
definitionMap.set('version', literal('17.3.
|
|
34971
|
+
definitionMap.set('version', literal('17.3.1'));
|
|
34952
34972
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
34953
34973
|
definitionMap.set('type', meta.type.value);
|
|
34954
34974
|
definitionMap.set('providers', meta.providers);
|
|
@@ -34981,7 +35001,7 @@ function createNgModuleDefinitionMap(meta) {
|
|
|
34981
35001
|
throw new Error('Invalid path! Local compilation mode should not get into the partial compilation path');
|
|
34982
35002
|
}
|
|
34983
35003
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$1));
|
|
34984
|
-
definitionMap.set('version', literal('17.3.
|
|
35004
|
+
definitionMap.set('version', literal('17.3.1'));
|
|
34985
35005
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
34986
35006
|
definitionMap.set('type', meta.type.value);
|
|
34987
35007
|
// We only generate the keys in the metadata if the arrays contain values.
|
|
@@ -35032,7 +35052,7 @@ function compileDeclarePipeFromMetadata(meta) {
|
|
|
35032
35052
|
function createPipeDefinitionMap(meta) {
|
|
35033
35053
|
const definitionMap = new DefinitionMap();
|
|
35034
35054
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION));
|
|
35035
|
-
definitionMap.set('version', literal('17.3.
|
|
35055
|
+
definitionMap.set('version', literal('17.3.1'));
|
|
35036
35056
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
35037
35057
|
// e.g. `type: MyPipe`
|
|
35038
35058
|
definitionMap.set('type', meta.type.value);
|