@angular/core 17.0.8 → 17.0.9
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/application/application_ref.mjs +21 -5
- package/esm2022/src/change_detection/scheduling/zoneless_scheduling_impl.mjs +56 -0
- package/esm2022/src/core_private_export.mjs +2 -1
- package/esm2022/src/core_render3_private_export.mjs +1 -2
- package/esm2022/src/defer/dom_triggers.mjs +1 -5
- package/esm2022/src/di/inject_switch.mjs +2 -3
- package/esm2022/src/di/r3_injector.mjs +8 -6
- package/esm2022/src/errors.mjs +1 -1
- package/esm2022/src/hydration/utils.mjs +2 -2
- package/esm2022/src/hydration/views.mjs +2 -2
- package/esm2022/src/linker/view_container_ref.mjs +2 -2
- package/esm2022/src/render3/after_render_hooks.mjs +15 -33
- package/esm2022/src/render3/collect_native_nodes.mjs +2 -3
- package/esm2022/src/render3/component_ref.mjs +1 -1
- package/esm2022/src/render3/debug/injector_profiler.mjs +1 -1
- package/esm2022/src/render3/errors_di.mjs +4 -3
- package/esm2022/src/render3/instructions/advance.mjs +2 -2
- package/esm2022/src/render3/instructions/change_detection.mjs +1 -6
- package/esm2022/src/render3/instructions/mark_view_dirty.mjs +2 -2
- package/esm2022/src/render3/instructions/shared.mjs +2 -2
- package/esm2022/src/render3/interfaces/container.mjs +1 -6
- package/esm2022/src/render3/node_manipulation.mjs +8 -8
- package/esm2022/src/render3/reactivity/effect.mjs +8 -6
- package/esm2022/src/render3/styling/style_binding_list.mjs +4 -4
- package/esm2022/src/render3/util/discovery_utils.mjs +3 -3
- package/esm2022/src/render3/util/global_utils.mjs +28 -28
- package/esm2022/src/render3/util/injector_discovery_utils.mjs +1 -1
- package/esm2022/src/render3/util/injector_utils.mjs +6 -5
- package/esm2022/src/render3/util/view_traversal_utils.mjs +3 -12
- package/esm2022/src/render3/util/view_utils.mjs +19 -15
- package/esm2022/src/version.mjs +1 -1
- package/esm2022/testing/src/component_fixture.mjs +62 -58
- package/esm2022/testing/src/logger.mjs +3 -3
- package/fesm2022/core.mjs +206 -177
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/primitives/signals.mjs +1 -1
- package/fesm2022/rxjs-interop.mjs +1 -1
- package/fesm2022/testing.mjs +62 -58
- package/fesm2022/testing.mjs.map +1 -1
- package/index.d.ts +368 -25
- package/package.json +1 -1
- package/primitives/signals/index.d.ts +1 -1
- package/rxjs-interop/index.d.ts +1 -1
- package/schematics/migrations/block-template-entities/bundle.js +66 -103
- package/schematics/migrations/block-template-entities/bundle.js.map +4 -4
- package/schematics/ng-generate/control-flow-migration/bundle.js +67 -104
- package/schematics/ng-generate/control-flow-migration/bundle.js.map +4 -4
- package/schematics/ng-generate/standalone-migration/bundle.js +83 -118
- package/schematics/ng-generate/standalone-migration/bundle.js.map +4 -4
- package/testing/index.d.ts +6 -2
|
@@ -7121,13 +7121,6 @@ var DeferTriggerKind;
|
|
|
7121
7121
|
DeferTriggerKind2[DeferTriggerKind2["Interaction"] = 4] = "Interaction";
|
|
7122
7122
|
DeferTriggerKind2[DeferTriggerKind2["Viewport"] = 5] = "Viewport";
|
|
7123
7123
|
})(DeferTriggerKind || (DeferTriggerKind = {}));
|
|
7124
|
-
var DerivedRepeaterVarIdentity;
|
|
7125
|
-
(function(DerivedRepeaterVarIdentity2) {
|
|
7126
|
-
DerivedRepeaterVarIdentity2[DerivedRepeaterVarIdentity2["First"] = 0] = "First";
|
|
7127
|
-
DerivedRepeaterVarIdentity2[DerivedRepeaterVarIdentity2["Last"] = 1] = "Last";
|
|
7128
|
-
DerivedRepeaterVarIdentity2[DerivedRepeaterVarIdentity2["Even"] = 2] = "Even";
|
|
7129
|
-
DerivedRepeaterVarIdentity2[DerivedRepeaterVarIdentity2["Odd"] = 3] = "Odd";
|
|
7130
|
-
})(DerivedRepeaterVarIdentity || (DerivedRepeaterVarIdentity = {}));
|
|
7131
7124
|
var I18nContextKind;
|
|
7132
7125
|
(function(I18nContextKind2) {
|
|
7133
7126
|
I18nContextKind2[I18nContextKind2["RootI18n"] = 0] = "RootI18n";
|
|
@@ -7282,10 +7275,11 @@ function createClassMapOp(xref, expression, sourceSpan) {
|
|
|
7282
7275
|
sourceSpan
|
|
7283
7276
|
}, TRAIT_DEPENDS_ON_SLOT_CONTEXT), TRAIT_CONSUMES_VARS), NEW_OP);
|
|
7284
7277
|
}
|
|
7285
|
-
function createAttributeOp(target, name, expression, securityContext, isTextAttribute, isStructuralTemplateAttribute, templateKind, i18nMessage, sourceSpan) {
|
|
7278
|
+
function createAttributeOp(target, namespace, name, expression, securityContext, isTextAttribute, isStructuralTemplateAttribute, templateKind, i18nMessage, sourceSpan) {
|
|
7286
7279
|
return __spreadValues(__spreadValues(__spreadValues({
|
|
7287
7280
|
kind: OpKind.Attribute,
|
|
7288
7281
|
target,
|
|
7282
|
+
namespace,
|
|
7289
7283
|
name,
|
|
7290
7284
|
expression,
|
|
7291
7285
|
securityContext,
|
|
@@ -7940,27 +7934,6 @@ var ConditionalCaseExpr = class extends ExpressionBase {
|
|
|
7940
7934
|
}
|
|
7941
7935
|
}
|
|
7942
7936
|
};
|
|
7943
|
-
var DerivedRepeaterVarExpr = class extends ExpressionBase {
|
|
7944
|
-
constructor(xref, identity) {
|
|
7945
|
-
super();
|
|
7946
|
-
this.xref = xref;
|
|
7947
|
-
this.identity = identity;
|
|
7948
|
-
this.kind = ExpressionKind.DerivedRepeaterVar;
|
|
7949
|
-
}
|
|
7950
|
-
transformInternalExpressions(transform2, flags) {
|
|
7951
|
-
}
|
|
7952
|
-
visitExpression(visitor, context) {
|
|
7953
|
-
}
|
|
7954
|
-
isEquivalent(e) {
|
|
7955
|
-
return e instanceof DerivedRepeaterVarExpr && e.identity === this.identity && e.xref === this.xref;
|
|
7956
|
-
}
|
|
7957
|
-
isConstant() {
|
|
7958
|
-
return false;
|
|
7959
|
-
}
|
|
7960
|
-
clone() {
|
|
7961
|
-
return new DerivedRepeaterVarExpr(this.xref, this.identity);
|
|
7962
|
-
}
|
|
7963
|
-
};
|
|
7964
7937
|
var ConstCollectedExpr = class extends ExpressionBase {
|
|
7965
7938
|
constructor(expr) {
|
|
7966
7939
|
super();
|
|
@@ -8556,11 +8529,12 @@ function createProjectionOp(xref, selector, i18nPlaceholder, attributes, sourceS
|
|
|
8556
8529
|
sourceSpan
|
|
8557
8530
|
}, NEW_OP), TRAIT_CONSUMES_SLOT);
|
|
8558
8531
|
}
|
|
8559
|
-
function createExtractedAttributeOp(target, bindingKind, name, expression, i18nContext, i18nMessage, securityContext) {
|
|
8532
|
+
function createExtractedAttributeOp(target, bindingKind, namespace, name, expression, i18nContext, i18nMessage, securityContext) {
|
|
8560
8533
|
return __spreadValues({
|
|
8561
8534
|
kind: OpKind.ExtractedAttribute,
|
|
8562
8535
|
target,
|
|
8563
8536
|
bindingKind,
|
|
8537
|
+
namespace,
|
|
8564
8538
|
name,
|
|
8565
8539
|
expression,
|
|
8566
8540
|
i18nContext,
|
|
@@ -8950,6 +8924,7 @@ function extractAttributes(job) {
|
|
|
8950
8924
|
createExtractedAttributeOp(
|
|
8951
8925
|
op.target,
|
|
8952
8926
|
bindingKind,
|
|
8927
|
+
null,
|
|
8953
8928
|
op.name,
|
|
8954
8929
|
null,
|
|
8955
8930
|
null,
|
|
@@ -8966,6 +8941,7 @@ function extractAttributes(job) {
|
|
|
8966
8941
|
OpList.insertBefore(createExtractedAttributeOp(
|
|
8967
8942
|
op.target,
|
|
8968
8943
|
BindingKind.Property,
|
|
8944
|
+
null,
|
|
8969
8945
|
op.name,
|
|
8970
8946
|
null,
|
|
8971
8947
|
null,
|
|
@@ -8979,6 +8955,7 @@ function extractAttributes(job) {
|
|
|
8979
8955
|
const extractedAttributeOp = createExtractedAttributeOp(
|
|
8980
8956
|
op.target,
|
|
8981
8957
|
BindingKind.Property,
|
|
8958
|
+
null,
|
|
8982
8959
|
op.name,
|
|
8983
8960
|
null,
|
|
8984
8961
|
null,
|
|
@@ -9012,7 +8989,7 @@ function extractAttributeOp(unit, op, elements) {
|
|
|
9012
8989
|
extractable && (extractable = op.isTextAttribute);
|
|
9013
8990
|
}
|
|
9014
8991
|
if (extractable) {
|
|
9015
|
-
const extractedAttributeOp = createExtractedAttributeOp(op.target, op.isStructuralTemplateAttribute ? BindingKind.Template : BindingKind.Attribute, op.name, op.expression, op.i18nContext, op.i18nMessage, op.securityContext);
|
|
8992
|
+
const extractedAttributeOp = createExtractedAttributeOp(op.target, op.isStructuralTemplateAttribute ? BindingKind.Template : BindingKind.Attribute, op.namespace, op.name, op.expression, op.i18nContext, op.i18nMessage, op.securityContext);
|
|
9016
8993
|
if (unit.job.kind === CompilationJobKind.Host) {
|
|
9017
8994
|
unit.create.push(extractedAttributeOp);
|
|
9018
8995
|
} else {
|
|
@@ -9053,7 +9030,8 @@ function specializeBindings(job) {
|
|
|
9053
9030
|
const target = lookupElement2(elements, op.target);
|
|
9054
9031
|
target.nonBindable = true;
|
|
9055
9032
|
} else {
|
|
9056
|
-
|
|
9033
|
+
const [namespace, name] = splitNsName(op.name);
|
|
9034
|
+
OpList.replace(op, createAttributeOp(op.target, namespace, name, op.expression, op.securityContext, op.isTextAttribute, op.isStructuralTemplateAttribute, op.templateKind, op.i18nMessage, op.sourceSpan));
|
|
9057
9035
|
}
|
|
9058
9036
|
break;
|
|
9059
9037
|
case BindingKind.Property:
|
|
@@ -9246,7 +9224,7 @@ function collectElementConsts(job) {
|
|
|
9246
9224
|
if (op.kind === OpKind.ExtractedAttribute) {
|
|
9247
9225
|
const attributes = allElementAttributes.get(op.target) || new ElementAttributes(job.compatibility);
|
|
9248
9226
|
allElementAttributes.set(op.target, attributes);
|
|
9249
|
-
attributes.add(op.bindingKind, op.name, op.expression, op.trustedValueFn);
|
|
9227
|
+
attributes.add(op.bindingKind, op.name, op.expression, op.namespace, op.trustedValueFn);
|
|
9250
9228
|
OpList.remove(op);
|
|
9251
9229
|
}
|
|
9252
9230
|
}
|
|
@@ -9319,7 +9297,7 @@ var ElementAttributes = class {
|
|
|
9319
9297
|
nameToValue.add(name);
|
|
9320
9298
|
return false;
|
|
9321
9299
|
}
|
|
9322
|
-
add(kind, name, value, trustedValueFn) {
|
|
9300
|
+
add(kind, name, value, namespace, trustedValueFn) {
|
|
9323
9301
|
var _a2;
|
|
9324
9302
|
const allowDuplicates = this.compatibility === CompatibilityMode.TemplateDefinitionBuilder && (kind === BindingKind.Attribute || kind === BindingKind.ClassName || kind === BindingKind.StyleProperty);
|
|
9325
9303
|
if (!allowDuplicates && this.isKnown(kind, name, value)) {
|
|
@@ -9332,7 +9310,7 @@ var ElementAttributes = class {
|
|
|
9332
9310
|
this.projectAs = value.value.toString();
|
|
9333
9311
|
}
|
|
9334
9312
|
const array = this.arrayFor(kind);
|
|
9335
|
-
array.push(...getAttributeNameLiterals(name));
|
|
9313
|
+
array.push(...getAttributeNameLiterals(namespace, name));
|
|
9336
9314
|
if (kind === BindingKind.Attribute || kind === BindingKind.StyleProperty) {
|
|
9337
9315
|
if (value === null) {
|
|
9338
9316
|
throw Error("Attribute, i18n attribute, & style element attributes must have a value");
|
|
@@ -9354,15 +9332,10 @@ var ElementAttributes = class {
|
|
|
9354
9332
|
return this.byKind.get(kind);
|
|
9355
9333
|
}
|
|
9356
9334
|
};
|
|
9357
|
-
function getAttributeNameLiterals(name) {
|
|
9358
|
-
const
|
|
9359
|
-
|
|
9360
|
-
|
|
9361
|
-
return [
|
|
9362
|
-
literal(0),
|
|
9363
|
-
literal(attributeNamespace),
|
|
9364
|
-
nameLiteral
|
|
9365
|
-
];
|
|
9335
|
+
function getAttributeNameLiterals(namespace, name) {
|
|
9336
|
+
const nameLiteral = literal(name);
|
|
9337
|
+
if (namespace) {
|
|
9338
|
+
return [literal(0), literal(namespace), nameLiteral];
|
|
9366
9339
|
}
|
|
9367
9340
|
return [nameLiteral];
|
|
9368
9341
|
}
|
|
@@ -10153,7 +10126,7 @@ function parseHostStyleProperties(job) {
|
|
|
10153
10126
|
if (op.name.startsWith(STYLE_DOT)) {
|
|
10154
10127
|
op.bindingKind = BindingKind.StyleProperty;
|
|
10155
10128
|
op.name = op.name.substring(STYLE_DOT.length);
|
|
10156
|
-
if (isCssCustomProperty(op.name)) {
|
|
10129
|
+
if (!isCssCustomProperty(op.name)) {
|
|
10157
10130
|
op.name = hyphenate(op.name);
|
|
10158
10131
|
}
|
|
10159
10132
|
const { property: property2, suffix } = parseProperty(op.name);
|
|
@@ -16831,13 +16804,13 @@ function parseExtractedStyles(job) {
|
|
|
16831
16804
|
if (op.name === "style") {
|
|
16832
16805
|
const parsedStyles = parse(op.expression.value);
|
|
16833
16806
|
for (let i = 0; i < parsedStyles.length - 1; i += 2) {
|
|
16834
|
-
OpList.insertBefore(createExtractedAttributeOp(op.target, BindingKind.StyleProperty, parsedStyles[i], literal(parsedStyles[i + 1]), null, null, SecurityContext.STYLE), op);
|
|
16807
|
+
OpList.insertBefore(createExtractedAttributeOp(op.target, BindingKind.StyleProperty, null, parsedStyles[i], literal(parsedStyles[i + 1]), null, null, SecurityContext.STYLE), op);
|
|
16835
16808
|
}
|
|
16836
16809
|
OpList.remove(op);
|
|
16837
16810
|
} else if (op.name === "class") {
|
|
16838
16811
|
const parsedClasses = op.expression.value.trim().split(/\s+/g);
|
|
16839
16812
|
for (const parsedClass of parsedClasses) {
|
|
16840
|
-
OpList.insertBefore(createExtractedAttributeOp(op.target, BindingKind.ClassName, parsedClass, null, null, null, SecurityContext.NONE), op);
|
|
16813
|
+
OpList.insertBefore(createExtractedAttributeOp(op.target, BindingKind.ClassName, null, parsedClass, null, null, null, SecurityContext.NONE), op);
|
|
16841
16814
|
}
|
|
16842
16815
|
OpList.remove(op);
|
|
16843
16816
|
}
|
|
@@ -17167,9 +17140,7 @@ function namespaceMath() {
|
|
|
17167
17140
|
return call(Identifiers.namespaceMathML, [], null);
|
|
17168
17141
|
}
|
|
17169
17142
|
function advance(delta, sourceSpan) {
|
|
17170
|
-
return call(Identifiers.advance, [
|
|
17171
|
-
literal(delta)
|
|
17172
|
-
], sourceSpan);
|
|
17143
|
+
return call(Identifiers.advance, delta > 1 ? [literal(delta)] : [], sourceSpan);
|
|
17173
17144
|
}
|
|
17174
17145
|
function reference(slot) {
|
|
17175
17146
|
return importExpr(Identifiers.reference).callFn([
|
|
@@ -17307,10 +17278,13 @@ function property(name, expression, sanitizer, sourceSpan) {
|
|
|
17307
17278
|
}
|
|
17308
17279
|
return call(Identifiers.property, args, sourceSpan);
|
|
17309
17280
|
}
|
|
17310
|
-
function attribute(name, expression, sanitizer) {
|
|
17281
|
+
function attribute(name, expression, sanitizer, namespace) {
|
|
17311
17282
|
const args = [literal(name), expression];
|
|
17312
|
-
if (sanitizer !== null) {
|
|
17313
|
-
args.push(sanitizer);
|
|
17283
|
+
if (sanitizer !== null || namespace !== null) {
|
|
17284
|
+
args.push(sanitizer != null ? sanitizer : literal(null));
|
|
17285
|
+
}
|
|
17286
|
+
if (namespace !== null) {
|
|
17287
|
+
args.push(literal(namespace));
|
|
17314
17288
|
}
|
|
17315
17289
|
return call(Identifiers.attribute, args, null);
|
|
17316
17290
|
}
|
|
@@ -17823,7 +17797,7 @@ function reifyUpdateOperations(_unit, ops) {
|
|
|
17823
17797
|
if (op.expression instanceof Interpolation2) {
|
|
17824
17798
|
OpList.replace(op, attributeInterpolate(op.name, op.expression.strings, op.expression.expressions, op.sanitizer, op.sourceSpan));
|
|
17825
17799
|
} else {
|
|
17826
|
-
OpList.replace(op, attribute(op.name, op.expression, op.sanitizer));
|
|
17800
|
+
OpList.replace(op, attribute(op.name, op.expression, op.sanitizer, op.namespace));
|
|
17827
17801
|
}
|
|
17828
17802
|
break;
|
|
17829
17803
|
case OpKind.HostProperty:
|
|
@@ -17992,38 +17966,6 @@ function removeUnusedI18nAttributesOps(job) {
|
|
|
17992
17966
|
}
|
|
17993
17967
|
}
|
|
17994
17968
|
|
|
17995
|
-
// bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/repeater_derived_vars.mjs
|
|
17996
|
-
function generateRepeaterDerivedVars(job) {
|
|
17997
|
-
const repeaters = /* @__PURE__ */ new Map();
|
|
17998
|
-
for (const unit of job.units) {
|
|
17999
|
-
for (const op of unit.ops()) {
|
|
18000
|
-
if (op.kind === OpKind.RepeaterCreate) {
|
|
18001
|
-
repeaters.set(op.xref, op);
|
|
18002
|
-
}
|
|
18003
|
-
}
|
|
18004
|
-
}
|
|
18005
|
-
for (const unit of job.units) {
|
|
18006
|
-
for (const op of unit.ops()) {
|
|
18007
|
-
transformExpressionsInOp(op, (expr) => {
|
|
18008
|
-
if (!(expr instanceof DerivedRepeaterVarExpr)) {
|
|
18009
|
-
return expr;
|
|
18010
|
-
}
|
|
18011
|
-
const repeaterOp = repeaters.get(expr.xref);
|
|
18012
|
-
switch (expr.identity) {
|
|
18013
|
-
case DerivedRepeaterVarIdentity.First:
|
|
18014
|
-
return new BinaryOperatorExpr(BinaryOperator.Identical, new LexicalReadExpr(repeaterOp.varNames.$index), literal(0));
|
|
18015
|
-
case DerivedRepeaterVarIdentity.Last:
|
|
18016
|
-
return new BinaryOperatorExpr(BinaryOperator.Identical, new LexicalReadExpr(repeaterOp.varNames.$index), new BinaryOperatorExpr(BinaryOperator.Minus, new LexicalReadExpr(repeaterOp.varNames.$count), literal(1)));
|
|
18017
|
-
case DerivedRepeaterVarIdentity.Even:
|
|
18018
|
-
return new BinaryOperatorExpr(BinaryOperator.Identical, new BinaryOperatorExpr(BinaryOperator.Modulo, new LexicalReadExpr(repeaterOp.varNames.$index), literal(2)), literal(0));
|
|
18019
|
-
case DerivedRepeaterVarIdentity.Odd:
|
|
18020
|
-
return new BinaryOperatorExpr(BinaryOperator.NotIdentical, new BinaryOperatorExpr(BinaryOperator.Modulo, new LexicalReadExpr(repeaterOp.varNames.$index), literal(2)), literal(0));
|
|
18021
|
-
}
|
|
18022
|
-
}, VisitorContextFlag.None);
|
|
18023
|
-
}
|
|
18024
|
-
}
|
|
18025
|
-
}
|
|
18026
|
-
|
|
18027
17969
|
// bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_contexts.mjs
|
|
18028
17970
|
function resolveContexts(job) {
|
|
18029
17971
|
for (const unit of job.units) {
|
|
@@ -19127,7 +19069,6 @@ var phases = [
|
|
|
19127
19069
|
{ kind: CompilationJobKind.Tmpl, fn: saveAndRestoreView },
|
|
19128
19070
|
{ kind: CompilationJobKind.Both, fn: deleteAnyCasts },
|
|
19129
19071
|
{ kind: CompilationJobKind.Both, fn: resolveDollarEvent },
|
|
19130
|
-
{ kind: CompilationJobKind.Tmpl, fn: generateRepeaterDerivedVars },
|
|
19131
19072
|
{ kind: CompilationJobKind.Tmpl, fn: generateTrackVariables },
|
|
19132
19073
|
{ kind: CompilationJobKind.Both, fn: resolveNames },
|
|
19133
19074
|
{ kind: CompilationJobKind.Tmpl, fn: resolveDeferTargetNames },
|
|
@@ -19478,6 +19419,9 @@ function ingestIfBlock(unit, ifBlock) {
|
|
|
19478
19419
|
}
|
|
19479
19420
|
function ingestSwitchBlock(unit, switchBlock) {
|
|
19480
19421
|
var _a2;
|
|
19422
|
+
if (switchBlock.cases.length === 0) {
|
|
19423
|
+
return;
|
|
19424
|
+
}
|
|
19481
19425
|
let firstXref = null;
|
|
19482
19426
|
let firstSlotHandle = null;
|
|
19483
19427
|
let conditions = [];
|
|
@@ -19622,21 +19566,37 @@ function ingestIcu(unit, icu) {
|
|
|
19622
19566
|
function ingestForBlock(unit, forBlock) {
|
|
19623
19567
|
var _a2, _b2, _c2;
|
|
19624
19568
|
const repeaterView = unit.job.allocateView(unit.xref);
|
|
19625
|
-
const createRepeaterAlias = (ident, repeaterVar) => {
|
|
19626
|
-
repeaterView.aliases.add({
|
|
19627
|
-
kind: SemanticVariableKind.Alias,
|
|
19628
|
-
name: null,
|
|
19629
|
-
identifier: ident,
|
|
19630
|
-
expression: new DerivedRepeaterVarExpr(repeaterView.xref, repeaterVar)
|
|
19631
|
-
});
|
|
19632
|
-
};
|
|
19633
19569
|
repeaterView.contextVariables.set(forBlock.item.name, forBlock.item.value);
|
|
19634
19570
|
repeaterView.contextVariables.set(forBlock.contextVariables.$index.name, forBlock.contextVariables.$index.value);
|
|
19635
19571
|
repeaterView.contextVariables.set(forBlock.contextVariables.$count.name, forBlock.contextVariables.$count.value);
|
|
19636
|
-
|
|
19637
|
-
|
|
19638
|
-
|
|
19639
|
-
|
|
19572
|
+
const indexName = `\u0275${forBlock.contextVariables.$index.name}_${repeaterView.xref}`;
|
|
19573
|
+
const countName = `\u0275${forBlock.contextVariables.$count.name}_${repeaterView.xref}`;
|
|
19574
|
+
repeaterView.contextVariables.set(indexName, forBlock.contextVariables.$index.value);
|
|
19575
|
+
repeaterView.contextVariables.set(countName, forBlock.contextVariables.$count.value);
|
|
19576
|
+
repeaterView.aliases.add({
|
|
19577
|
+
kind: SemanticVariableKind.Alias,
|
|
19578
|
+
name: null,
|
|
19579
|
+
identifier: forBlock.contextVariables.$first.name,
|
|
19580
|
+
expression: new LexicalReadExpr(indexName).identical(literal(0))
|
|
19581
|
+
});
|
|
19582
|
+
repeaterView.aliases.add({
|
|
19583
|
+
kind: SemanticVariableKind.Alias,
|
|
19584
|
+
name: null,
|
|
19585
|
+
identifier: forBlock.contextVariables.$last.name,
|
|
19586
|
+
expression: new LexicalReadExpr(indexName).identical(new LexicalReadExpr(countName).minus(literal(1)))
|
|
19587
|
+
});
|
|
19588
|
+
repeaterView.aliases.add({
|
|
19589
|
+
kind: SemanticVariableKind.Alias,
|
|
19590
|
+
name: null,
|
|
19591
|
+
identifier: forBlock.contextVariables.$even.name,
|
|
19592
|
+
expression: new LexicalReadExpr(indexName).modulo(literal(2)).identical(literal(0))
|
|
19593
|
+
});
|
|
19594
|
+
repeaterView.aliases.add({
|
|
19595
|
+
kind: SemanticVariableKind.Alias,
|
|
19596
|
+
name: null,
|
|
19597
|
+
identifier: forBlock.contextVariables.$odd.name,
|
|
19598
|
+
expression: new LexicalReadExpr(indexName).modulo(literal(2)).notIdentical(literal(0))
|
|
19599
|
+
});
|
|
19640
19600
|
const sourceSpan = convertSourceSpan(forBlock.trackBy.span, forBlock.sourceSpan);
|
|
19641
19601
|
const track = convertAst(forBlock.trackBy, unit.job, sourceSpan);
|
|
19642
19602
|
ingestNodes(repeaterView, forBlock.children);
|
|
@@ -19833,7 +19793,7 @@ function ingestTemplateBindings(unit, op, template2, templateKind) {
|
|
|
19833
19793
|
}
|
|
19834
19794
|
if (templateKind === TemplateKind.Structural && output.type !== 1) {
|
|
19835
19795
|
const securityContext = domSchema.securityContext(NG_TEMPLATE_TAG_NAME, output.name, false);
|
|
19836
|
-
unit.create.push(createExtractedAttributeOp(op.xref, BindingKind.Property, output.name, null, null, null, securityContext));
|
|
19796
|
+
unit.create.push(createExtractedAttributeOp(op.xref, BindingKind.Property, null, output.name, null, null, null, securityContext));
|
|
19837
19797
|
}
|
|
19838
19798
|
}
|
|
19839
19799
|
if (bindings.some((b) => b == null ? void 0 : b.i18nMessage) !== null) {
|
|
@@ -19844,7 +19804,7 @@ function createTemplateBinding(view, xref, type, name, value, unit, securityCont
|
|
|
19844
19804
|
const isTextBinding = typeof value === "string";
|
|
19845
19805
|
if (templateKind === TemplateKind.Structural) {
|
|
19846
19806
|
if (!isStructuralTemplateAttribute && (type === 0 || type === 2 || type === 3)) {
|
|
19847
|
-
return createExtractedAttributeOp(xref, BindingKind.Property, name, null, null, i18nMessage, securityContext);
|
|
19807
|
+
return createExtractedAttributeOp(xref, BindingKind.Property, null, name, null, null, i18nMessage, securityContext);
|
|
19848
19808
|
}
|
|
19849
19809
|
if (!isTextBinding && (type === 1 || type === 4)) {
|
|
19850
19810
|
return null;
|
|
@@ -22703,6 +22663,9 @@ var TemplateDefinitionBuilder = class {
|
|
|
22703
22663
|
this.updateInstructionWithAdvance(containerIndex, block.branches[0].sourceSpan, Identifiers.conditional, paramsCallback);
|
|
22704
22664
|
}
|
|
22705
22665
|
visitSwitchBlock(block) {
|
|
22666
|
+
if (block.cases.length === 0) {
|
|
22667
|
+
return;
|
|
22668
|
+
}
|
|
22706
22669
|
const caseData = block.cases.map((currentCase) => {
|
|
22707
22670
|
const index = this.createEmbeddedTemplateFn(null, currentCase.children, "_Case", currentCase.sourceSpan, void 0, void 0, void 0, currentCase.i18n);
|
|
22708
22671
|
const expression = currentCase.expression === null ? null : currentCase.expression.visit(this._valueConverter);
|
|
@@ -23025,7 +22988,7 @@ var TemplateDefinitionBuilder = class {
|
|
|
23025
22988
|
if (delta < 1) {
|
|
23026
22989
|
throw new Error("advance instruction can only go forwards");
|
|
23027
22990
|
}
|
|
23028
|
-
this.instructionFn(this._updateCodeFns, span, Identifiers.advance, [literal(delta)]);
|
|
22991
|
+
this.instructionFn(this._updateCodeFns, span, Identifiers.advance, delta > 1 ? [literal(delta)] : []);
|
|
23029
22992
|
this._currentIndex = nodeIndex;
|
|
23030
22993
|
}
|
|
23031
22994
|
}
|
|
@@ -25452,7 +25415,7 @@ function publishFacade(global) {
|
|
|
25452
25415
|
}
|
|
25453
25416
|
|
|
25454
25417
|
// bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/version.mjs
|
|
25455
|
-
var VERSION2 = new Version("17.0.
|
|
25418
|
+
var VERSION2 = new Version("17.0.9");
|
|
25456
25419
|
|
|
25457
25420
|
// bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/extractor_merger.mjs
|
|
25458
25421
|
var _VisitorMode;
|
|
@@ -26212,7 +26175,7 @@ function getMainBlock(etm, tmpl, offset) {
|
|
|
26212
26175
|
const { childStart: childStart2, childEnd: childEnd2 } = etm.getChildSpan(offset);
|
|
26213
26176
|
middle2 = tmpl.slice(childStart2, childEnd2);
|
|
26214
26177
|
} else {
|
|
26215
|
-
middle2 =
|
|
26178
|
+
middle2 = "";
|
|
26216
26179
|
}
|
|
26217
26180
|
return { start: "", middle: middle2, end: "" };
|
|
26218
26181
|
} else if (isI18nTemplate(etm, i18nAttr)) {
|