@angular/compiler-cli 16.0.0-next.1 → 16.0.0-next.3

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.
Files changed (50) hide show
  1. package/bundles/{chunk-N6MSUQVH.js → chunk-54RHUHYB.js} +5 -5
  2. package/bundles/{chunk-JKV3J53A.js → chunk-BVXD7IJL.js} +9 -38
  3. package/bundles/chunk-BVXD7IJL.js.map +6 -0
  4. package/bundles/{chunk-TBUSSXUA.js → chunk-EC5K6QPP.js} +7 -7
  5. package/bundles/{chunk-QQGJEWBQ.js → chunk-EDWIBG7R.js} +6 -6
  6. package/bundles/{chunk-Q2TY6LB3.js → chunk-F6KVOAVN.js} +5 -5
  7. package/bundles/{chunk-EKTJ7622.js → chunk-GYHDNUIK.js} +7 -7
  8. package/bundles/{chunk-TK3GHMT6.js → chunk-K2A5WD7L.js} +21 -21
  9. package/bundles/{chunk-JEQIMWEA.js → chunk-LJFSK6KK.js} +35 -35
  10. package/bundles/chunk-LJFSK6KK.js.map +6 -0
  11. package/bundles/{chunk-6PDKXFWN.js → chunk-LLHKY5PL.js} +8 -8
  12. package/bundles/{chunk-XS6XKZQP.js → chunk-MENJKFAO.js} +196 -130
  13. package/bundles/chunk-MENJKFAO.js.map +6 -0
  14. package/bundles/{chunk-IE2WWKOE.js → chunk-OJ24Q4I3.js} +104 -103
  15. package/bundles/chunk-OJ24Q4I3.js.map +6 -0
  16. package/bundles/{chunk-LYJKWJUC.js → chunk-SBDNBITT.js} +3 -3
  17. package/bundles/index.js +13 -13
  18. package/bundles/linker/babel/index.js +13 -13
  19. package/bundles/linker/index.js +5 -5
  20. package/bundles/private/bazel.js +1 -1
  21. package/bundles/private/localize.js +3 -3
  22. package/bundles/private/migrations.js +6 -6
  23. package/bundles/private/tooling.js +4 -4
  24. package/bundles/src/bin/ng_xi18n.js +11 -11
  25. package/bundles/src/bin/ngc.js +9 -9
  26. package/bundles_metadata.json +1 -1
  27. package/linker/src/ast/ast_value.d.ts +1 -1
  28. package/package.json +2 -2
  29. package/src/ngtsc/annotations/component/src/metadata.d.ts +2 -2
  30. package/src/ngtsc/annotations/directive/src/handler.d.ts +2 -2
  31. package/src/ngtsc/annotations/directive/src/shared.d.ts +3 -3
  32. package/src/ngtsc/annotations/directive/src/symbol.d.ts +3 -3
  33. package/src/ngtsc/metadata/src/api.d.ts +6 -2
  34. package/src/ngtsc/metadata/src/host_directives_resolver.d.ts +1 -0
  35. package/src/ngtsc/metadata/src/property_mapping.d.ts +10 -10
  36. package/src/ngtsc/metadata/src/util.d.ts +2 -2
  37. package/src/ngtsc/typecheck/api/api.d.ts +2 -2
  38. package/src/transformers/downlevel_decorators_transform/downlevel_decorators_transform.d.ts +6 -8
  39. package/bundles/chunk-IE2WWKOE.js.map +0 -6
  40. package/bundles/chunk-JEQIMWEA.js.map +0 -6
  41. package/bundles/chunk-JKV3J53A.js.map +0 -6
  42. package/bundles/chunk-XS6XKZQP.js.map +0 -6
  43. /package/bundles/{chunk-N6MSUQVH.js.map → chunk-54RHUHYB.js.map} +0 -0
  44. /package/bundles/{chunk-TBUSSXUA.js.map → chunk-EC5K6QPP.js.map} +0 -0
  45. /package/bundles/{chunk-QQGJEWBQ.js.map → chunk-EDWIBG7R.js.map} +0 -0
  46. /package/bundles/{chunk-Q2TY6LB3.js.map → chunk-F6KVOAVN.js.map} +0 -0
  47. /package/bundles/{chunk-EKTJ7622.js.map → chunk-GYHDNUIK.js.map} +0 -0
  48. /package/bundles/{chunk-TK3GHMT6.js.map → chunk-K2A5WD7L.js.map} +0 -0
  49. /package/bundles/{chunk-6PDKXFWN.js.map → chunk-LLHKY5PL.js.map} +0 -0
  50. /package/bundles/{chunk-LYJKWJUC.js.map → chunk-SBDNBITT.js.map} +0 -0
@@ -12,13 +12,13 @@ import {
12
12
  reflectObjectLiteral,
13
13
  reflectTypeEntityToDeclaration,
14
14
  typeNodeToValueExpr
15
- } from "./chunk-QQGJEWBQ.js";
15
+ } from "./chunk-EDWIBG7R.js";
16
16
  import {
17
17
  ImportManager,
18
18
  translateExpression,
19
19
  translateStatement,
20
20
  translateType
21
- } from "./chunk-6PDKXFWN.js";
21
+ } from "./chunk-LLHKY5PL.js";
22
22
  import {
23
23
  ErrorCode,
24
24
  FatalDiagnosticError,
@@ -35,18 +35,18 @@ import {
35
35
  makeRelatedInformation,
36
36
  nodeDebugInfo,
37
37
  nodeNameForError
38
- } from "./chunk-TK3GHMT6.js";
38
+ } from "./chunk-K2A5WD7L.js";
39
39
  import {
40
40
  PerfEvent,
41
41
  PerfPhase
42
- } from "./chunk-N6MSUQVH.js";
42
+ } from "./chunk-54RHUHYB.js";
43
43
  import {
44
44
  absoluteFrom,
45
45
  absoluteFromSourceFile,
46
46
  relative
47
- } from "./chunk-TBUSSXUA.js";
47
+ } from "./chunk-EC5K6QPP.js";
48
48
 
49
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/util.mjs
49
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/util.mjs
50
50
  import { ExternalExpr, ParseLocation, ParseSourceFile, ParseSourceSpan, ReadPropExpr, WrappedNodeExpr } from "@angular/compiler";
51
51
  import ts from "typescript";
52
52
  function valueReferenceToExpression(valueRef) {
@@ -285,7 +285,7 @@ function isAbstractClassDeclaration(clazz) {
285
285
  return ts.canHaveModifiers(clazz) && clazz.modifiers !== void 0 ? clazz.modifiers.some((mod) => mod.kind === ts.SyntaxKind.AbstractKeyword) : false;
286
286
  }
287
287
 
288
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/dynamic.mjs
288
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/dynamic.mjs
289
289
  var DynamicValue = class {
290
290
  constructor(node, reason, code) {
291
291
  this.node = node;
@@ -375,10 +375,10 @@ var DynamicValue = class {
375
375
  }
376
376
  };
377
377
 
378
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/interpreter.mjs
378
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/interpreter.mjs
379
379
  import ts2 from "typescript";
380
380
 
381
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/result.mjs
381
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/result.mjs
382
382
  var ResolvedModule = class {
383
383
  constructor(exports, evaluate) {
384
384
  this.exports = exports;
@@ -408,7 +408,7 @@ var EnumValue = class {
408
408
  var KnownFn = class {
409
409
  };
410
410
 
411
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/builtin.mjs
411
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/builtin.mjs
412
412
  var ArraySliceBuiltinFn = class extends KnownFn {
413
413
  constructor(lhs) {
414
414
  super();
@@ -479,7 +479,7 @@ var ObjectAssignBuiltinFn = class extends KnownFn {
479
479
  }
480
480
  };
481
481
 
482
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/ts_helpers.mjs
482
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/ts_helpers.mjs
483
483
  var AssignHelperFn = class extends ObjectAssignBuiltinFn {
484
484
  };
485
485
  var SpreadHelperFn = class extends KnownFn {
@@ -532,7 +532,7 @@ var ReadHelperFn = class extends KnownFn {
532
532
  }
533
533
  };
534
534
 
535
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/known_declaration.mjs
535
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/known_declaration.mjs
536
536
  var jsGlobalObjectValue = /* @__PURE__ */ new Map([["assign", new ObjectAssignBuiltinFn()]]);
537
537
  var assignTsHelperFn = new AssignHelperFn();
538
538
  var spreadTsHelperFn = new SpreadHelperFn();
@@ -556,14 +556,14 @@ function resolveKnownDeclaration(decl) {
556
556
  }
557
557
  }
558
558
 
559
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/synthetic.mjs
559
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/synthetic.mjs
560
560
  var SyntheticValue = class {
561
561
  constructor(value) {
562
562
  this.value = value;
563
563
  }
564
564
  };
565
565
 
566
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/interpreter.mjs
566
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/interpreter.mjs
567
567
  function literalBinaryOp(op) {
568
568
  return { op, literal: true };
569
569
  }
@@ -1164,7 +1164,7 @@ function owningModule(context, override = null) {
1164
1164
  }
1165
1165
  }
1166
1166
 
1167
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/interface.mjs
1167
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/interface.mjs
1168
1168
  var PartialEvaluator = class {
1169
1169
  constructor(host, checker, dependencyTracker) {
1170
1170
  this.host = host;
@@ -1184,7 +1184,7 @@ var PartialEvaluator = class {
1184
1184
  }
1185
1185
  };
1186
1186
 
1187
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/diagnostics.mjs
1187
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/diagnostics.mjs
1188
1188
  import ts3 from "typescript";
1189
1189
  function describeResolvedType(value, maxDepth = 1) {
1190
1190
  var _a, _b;
@@ -1314,7 +1314,7 @@ function getContainerNode(node) {
1314
1314
  return node.getSourceFile();
1315
1315
  }
1316
1316
 
1317
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/di.mjs
1317
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/di.mjs
1318
1318
  import { LiteralExpr, WrappedNodeExpr as WrappedNodeExpr2 } from "@angular/compiler";
1319
1319
  import ts4 from "typescript";
1320
1320
  function getConstructorDependencies(clazz, reflector, isCore) {
@@ -1458,10 +1458,10 @@ function createUnsuitableInjectionTokenError(clazz, error) {
1458
1458
  return new FatalDiagnosticError(ErrorCode.PARAM_MISSING_TOKEN, param.nameNode, chain, hints);
1459
1459
  }
1460
1460
 
1461
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/diagnostics.mjs
1461
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/diagnostics.mjs
1462
1462
  import ts7 from "typescript";
1463
1463
 
1464
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/api.mjs
1464
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/api.mjs
1465
1465
  var MetaKind;
1466
1466
  (function(MetaKind2) {
1467
1467
  MetaKind2[MetaKind2["Directive"] = 0] = "Directive";
@@ -1474,10 +1474,10 @@ var MatchSource;
1474
1474
  MatchSource2[MatchSource2["HostDirective"] = 1] = "HostDirective";
1475
1475
  })(MatchSource || (MatchSource = {}));
1476
1476
 
1477
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/dts.mjs
1477
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/dts.mjs
1478
1478
  import ts6 from "typescript";
1479
1479
 
1480
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/property_mapping.mjs
1480
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/property_mapping.mjs
1481
1481
  var ClassPropertyMapping = class {
1482
1482
  constructor(forwardMap) {
1483
1483
  this.forwardMap = forwardMap;
@@ -1490,8 +1490,14 @@ var ClassPropertyMapping = class {
1490
1490
  const forwardMap = /* @__PURE__ */ new Map();
1491
1491
  for (const classPropertyName of Object.keys(obj)) {
1492
1492
  const value = obj[classPropertyName];
1493
- const bindingPropertyName = Array.isArray(value) ? value[0] : value;
1494
- const inputOrOutput = { classPropertyName, bindingPropertyName };
1493
+ let inputOrOutput;
1494
+ if (typeof value === "string") {
1495
+ inputOrOutput = { classPropertyName, bindingPropertyName: value };
1496
+ } else if (Array.isArray(value)) {
1497
+ inputOrOutput = { classPropertyName, bindingPropertyName: value[0] };
1498
+ } else {
1499
+ inputOrOutput = value;
1500
+ }
1495
1501
  forwardMap.set(classPropertyName, inputOrOutput);
1496
1502
  }
1497
1503
  return new ClassPropertyMapping(forwardMap);
@@ -1528,17 +1534,13 @@ var ClassPropertyMapping = class {
1528
1534
  toJointMappedObject() {
1529
1535
  const obj = {};
1530
1536
  for (const [classPropertyName, inputOrOutput] of this.forwardMap) {
1531
- if (inputOrOutput.bindingPropertyName === classPropertyName) {
1532
- obj[classPropertyName] = inputOrOutput.bindingPropertyName;
1533
- } else {
1534
- obj[classPropertyName] = [inputOrOutput.bindingPropertyName, classPropertyName];
1535
- }
1537
+ obj[classPropertyName] = inputOrOutput;
1536
1538
  }
1537
1539
  return obj;
1538
1540
  }
1539
1541
  *[Symbol.iterator]() {
1540
- for (const [classPropertyName, inputOrOutput] of this.forwardMap.entries()) {
1541
- yield [classPropertyName, inputOrOutput.bindingPropertyName];
1542
+ for (const inputOrOutput of this.forwardMap.values()) {
1543
+ yield inputOrOutput;
1542
1544
  }
1543
1545
  }
1544
1546
  };
@@ -1553,7 +1555,7 @@ function reverseMapFromForwardMap(forwardMap) {
1553
1555
  return reverseMap;
1554
1556
  }
1555
1557
 
1556
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/util.mjs
1558
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/util.mjs
1557
1559
  import ts5 from "typescript";
1558
1560
  function extractReferencesFromType(checker, def, bestGuessOwningModule) {
1559
1561
  if (!ts5.isTupleTypeNode(def)) {
@@ -1735,7 +1737,7 @@ function hasInjectableFields(clazz, host) {
1735
1737
  return members.some(({ isStatic, name }) => isStatic && (name === "\u0275prov" || name === "\u0275fac"));
1736
1738
  }
1737
1739
 
1738
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/dts.mjs
1740
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/dts.mjs
1739
1741
  var DtsMetadataReader = class {
1740
1742
  constructor(checker, reflector) {
1741
1743
  this.checker = checker;
@@ -1778,7 +1780,7 @@ var DtsMetadataReader = class {
1778
1780
  return param.typeValueReference.kind === 1 && param.typeValueReference.moduleName === "@angular/core" && param.typeValueReference.importedName === "TemplateRef";
1779
1781
  });
1780
1782
  const isStandalone = def.type.typeArguments.length > 7 && ((_a = readBooleanType(def.type.typeArguments[7])) != null ? _a : false);
1781
- const inputs = ClassPropertyMapping.fromMappedObject(readMapType(def.type.typeArguments[3], readStringType));
1783
+ const inputs = ClassPropertyMapping.fromMappedObject(readInputsType(def.type.typeArguments[3]));
1782
1784
  const outputs = ClassPropertyMapping.fromMappedObject(readMapType(def.type.typeArguments[4], readStringType));
1783
1785
  const hostDirectives = def.type.typeArguments.length > 8 ? readHostDirectivesType(this.checker, def.type.typeArguments[8], ref.bestGuessOwningModule) : null;
1784
1786
  return {
@@ -1828,6 +1830,25 @@ var DtsMetadataReader = class {
1828
1830
  };
1829
1831
  }
1830
1832
  };
1833
+ function readInputsType(type) {
1834
+ const inputsMap = {};
1835
+ if (ts6.isTypeLiteralNode(type)) {
1836
+ for (const member of type.members) {
1837
+ if (!ts6.isPropertySignature(member) || member.type === void 0 || member.name === void 0 || !ts6.isStringLiteral(member.name) && !ts6.isIdentifier(member.name)) {
1838
+ continue;
1839
+ }
1840
+ const stringValue = readStringType(member.type);
1841
+ if (stringValue != null) {
1842
+ inputsMap[member.name.text] = {
1843
+ bindingPropertyName: stringValue,
1844
+ classPropertyName: member.name.text,
1845
+ required: false
1846
+ };
1847
+ }
1848
+ }
1849
+ }
1850
+ return inputsMap;
1851
+ }
1831
1852
  function readBaseClass2(clazz, checker, reflector) {
1832
1853
  if (!isNamedClassDeclaration(clazz)) {
1833
1854
  return reflector.hasBaseClass(clazz) ? "dynamic" : null;
@@ -1874,7 +1895,7 @@ function readHostDirectivesType(checker, type, bestGuessOwningModule) {
1874
1895
  return result.length > 0 ? result : null;
1875
1896
  }
1876
1897
 
1877
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/inheritance.mjs
1898
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/inheritance.mjs
1878
1899
  function flattenInheritedDirectiveMetadata(reader, dir) {
1879
1900
  const topMeta = reader.getDirectiveMetadata(dir);
1880
1901
  if (topMeta === null) {
@@ -1932,7 +1953,7 @@ function flattenInheritedDirectiveMetadata(reader, dir) {
1932
1953
  };
1933
1954
  }
1934
1955
 
1935
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/registry.mjs
1956
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/registry.mjs
1936
1957
  var LocalMetadataRegistry = class {
1937
1958
  constructor() {
1938
1959
  this.directives = /* @__PURE__ */ new Map();
@@ -1989,7 +2010,7 @@ var CompoundMetadataRegistry = class {
1989
2010
  }
1990
2011
  };
1991
2012
 
1992
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/resource_registry.mjs
2013
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/resource_registry.mjs
1993
2014
  var ResourceRegistry = class {
1994
2015
  constructor() {
1995
2016
  this.externalTemplateToComponentsMap = /* @__PURE__ */ new Map();
@@ -2054,7 +2075,7 @@ var ResourceRegistry = class {
2054
2075
  }
2055
2076
  };
2056
2077
 
2057
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/host_directives_resolver.mjs
2078
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/host_directives_resolver.mjs
2058
2079
  var EMPTY_ARRAY = [];
2059
2080
  var HostDirectivesResolver = class {
2060
2081
  constructor(metaReader) {
@@ -2081,13 +2102,13 @@ var HostDirectivesResolver = class {
2081
2102
  results.push({
2082
2103
  ...hostMeta,
2083
2104
  matchSource: MatchSource.HostDirective,
2084
- inputs: this.filterMappings(hostMeta.inputs, current.inputs),
2085
- outputs: this.filterMappings(hostMeta.outputs, current.outputs)
2105
+ inputs: ClassPropertyMapping.fromMappedObject(this.filterMappings(hostMeta.inputs, current.inputs, resolveInput)),
2106
+ outputs: ClassPropertyMapping.fromMappedObject(this.filterMappings(hostMeta.outputs, current.outputs, resolveOutput))
2086
2107
  });
2087
2108
  }
2088
2109
  return results;
2089
2110
  }
2090
- filterMappings(source, allowedProperties) {
2111
+ filterMappings(source, allowedProperties, valueResolver) {
2091
2112
  const result = {};
2092
2113
  if (allowedProperties !== null) {
2093
2114
  for (const publicName in allowedProperties) {
@@ -2095,17 +2116,23 @@ var HostDirectivesResolver = class {
2095
2116
  const bindings = source.getByBindingPropertyName(publicName);
2096
2117
  if (bindings !== null) {
2097
2118
  for (const binding of bindings) {
2098
- result[binding.classPropertyName] = allowedProperties[publicName];
2119
+ result[binding.classPropertyName] = valueResolver(allowedProperties[publicName], binding.classPropertyName);
2099
2120
  }
2100
2121
  }
2101
2122
  }
2102
2123
  }
2103
2124
  }
2104
- return ClassPropertyMapping.fromMappedObject(result);
2125
+ return result;
2105
2126
  }
2106
2127
  };
2128
+ function resolveInput(bindingName, classPropertyName) {
2129
+ return { bindingPropertyName: bindingName, classPropertyName, required: false };
2130
+ }
2131
+ function resolveOutput(bindingName) {
2132
+ return bindingName;
2133
+ }
2107
2134
 
2108
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/diagnostics.mjs
2135
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/diagnostics.mjs
2109
2136
  function makeDuplicateDeclarationError(node, data, kind) {
2110
2137
  const context = [];
2111
2138
  for (const decl of data) {
@@ -2280,7 +2307,7 @@ function getInheritedUndecoratedCtorDiagnostic(node, baseClass, kind) {
2280
2307
  return makeDiagnostic(ErrorCode.DIRECTIVE_INHERITS_UNDECORATED_CTOR, node.name, `The ${kind.toLowerCase()} ${node.name.text} inherits its constructor from ${baseClassName}, but the latter does not have an Angular decorator of its own. Dependency injection will not be able to resolve the parameters of ${baseClassName}'s constructor. Either add a @${baseNeedsDecorator} decorator to ${baseClassName}, or add an explicit constructor to ${node.name.text}.`);
2281
2308
  }
2282
2309
 
2283
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/evaluation.mjs
2310
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/evaluation.mjs
2284
2311
  import ts8 from "typescript";
2285
2312
  function resolveEnumValue(evaluator, metadata, field, enumSymbolName) {
2286
2313
  let resolved = null;
@@ -2313,7 +2340,7 @@ function resolveLiteral(decorator, literalCache) {
2313
2340
  return meta;
2314
2341
  }
2315
2342
 
2316
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/factory.mjs
2343
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/factory.mjs
2317
2344
  import { compileDeclareFactoryFunction, compileFactoryFunction } from "@angular/compiler";
2318
2345
  function compileNgFactoryDefField(metadata) {
2319
2346
  const res = compileFactoryFunction(metadata);
@@ -2324,7 +2351,7 @@ function compileDeclareFactory(metadata) {
2324
2351
  return { name: "\u0275fac", initializer: res.expression, statements: res.statements, type: res.type };
2325
2352
  }
2326
2353
 
2327
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/injectable_registry.mjs
2354
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/injectable_registry.mjs
2328
2355
  var InjectableClassRegistry = class {
2329
2356
  constructor(host, isCore) {
2330
2357
  this.host = host;
@@ -2350,7 +2377,7 @@ var InjectableClassRegistry = class {
2350
2377
  }
2351
2378
  };
2352
2379
 
2353
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/metadata.mjs
2380
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/metadata.mjs
2354
2381
  import { FunctionExpr, LiteralArrayExpr, LiteralExpr as LiteralExpr2, literalMap, ReturnStatement, WrappedNodeExpr as WrappedNodeExpr3 } from "@angular/compiler";
2355
2382
  import ts9 from "typescript";
2356
2383
  function extractClassMetadata(clazz, reflection, isCore, annotateForClosureCompiler, angularDecoratorTransform = (dec) => dec) {
@@ -2437,13 +2464,13 @@ function removeIdentifierReferences(node, name) {
2437
2464
  return result.transformed[0];
2438
2465
  }
2439
2466
 
2440
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/references_registry.mjs
2467
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/references_registry.mjs
2441
2468
  var NoopReferencesRegistry = class {
2442
2469
  add(source, ...references) {
2443
2470
  }
2444
2471
  };
2445
2472
 
2446
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/schema.mjs
2473
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/schema.mjs
2447
2474
  import { CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA } from "@angular/compiler";
2448
2475
  function extractSchemas(rawExpr, evaluator, context) {
2449
2476
  const schemas = [];
@@ -2473,11 +2500,11 @@ function extractSchemas(rawExpr, evaluator, context) {
2473
2500
  return schemas;
2474
2501
  }
2475
2502
 
2476
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/component/src/handler.mjs
2503
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/component/src/handler.mjs
2477
2504
  import { compileClassMetadata as compileClassMetadata3, compileComponentFromMetadata, compileDeclareClassMetadata as compileDeclareClassMetadata3, compileDeclareComponentFromMetadata, CssSelector as CssSelector2, DEFAULT_INTERPOLATION_CONFIG as DEFAULT_INTERPOLATION_CONFIG2, DomElementSchemaRegistry, FactoryTarget as FactoryTarget3, makeBindingParser as makeBindingParser2, R3TargetBinder, R3TemplateDependencyKind, SelectorMatcher as SelectorMatcher2, ViewEncapsulation, WrappedNodeExpr as WrappedNodeExpr7 } from "@angular/compiler";
2478
2505
  import ts24 from "typescript";
2479
2506
 
2480
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/semantic_graph/src/api.mjs
2507
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/semantic_graph/src/api.mjs
2481
2508
  import ts10 from "typescript";
2482
2509
  var SemanticSymbol = class {
2483
2510
  constructor(decl) {
@@ -2493,7 +2520,7 @@ function getSymbolIdentifier(decl) {
2493
2520
  return decl.name.text;
2494
2521
  }
2495
2522
 
2496
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/semantic_graph/src/graph.mjs
2523
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/semantic_graph/src/graph.mjs
2497
2524
  import { ExternalExpr as ExternalExpr2 } from "@angular/compiler";
2498
2525
  var OpaqueSymbol = class extends SemanticSymbol {
2499
2526
  isPublicApiAffected() {
@@ -2636,10 +2663,10 @@ function getImportPath(expr) {
2636
2663
  }
2637
2664
  }
2638
2665
 
2639
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/semantic_graph/src/type_parameters.mjs
2666
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/semantic_graph/src/type_parameters.mjs
2640
2667
  import ts11 from "typescript";
2641
2668
 
2642
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/semantic_graph/src/util.mjs
2669
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/semantic_graph/src/util.mjs
2643
2670
  function isSymbolEqual(a, b) {
2644
2671
  if (a.decl === b.decl) {
2645
2672
  return true;
@@ -2689,7 +2716,7 @@ function isSetEqual(a, b, equalityTester = referenceEquality) {
2689
2716
  return true;
2690
2717
  }
2691
2718
 
2692
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/semantic_graph/src/type_parameters.mjs
2719
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/semantic_graph/src/type_parameters.mjs
2693
2720
  function extractSemanticTypeParameters(node) {
2694
2721
  if (!ts11.isClassDeclaration(node) || node.typeParameters === void 0) {
2695
2722
  return null;
@@ -2709,14 +2736,14 @@ function isTypeParameterEqual(a, b) {
2709
2736
  return a.hasGenericTypeBound === b.hasGenericTypeBound;
2710
2737
  }
2711
2738
 
2712
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/api.mjs
2739
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/api.mjs
2713
2740
  var ComponentScopeKind;
2714
2741
  (function(ComponentScopeKind2) {
2715
2742
  ComponentScopeKind2[ComponentScopeKind2["NgModule"] = 0] = "NgModule";
2716
2743
  ComponentScopeKind2[ComponentScopeKind2["Standalone"] = 1] = "Standalone";
2717
2744
  })(ComponentScopeKind || (ComponentScopeKind = {}));
2718
2745
 
2719
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/component_scope.mjs
2746
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/component_scope.mjs
2720
2747
  var CompoundComponentScopeReader = class {
2721
2748
  constructor(readers) {
2722
2749
  this.readers = readers;
@@ -2741,7 +2768,7 @@ var CompoundComponentScopeReader = class {
2741
2768
  }
2742
2769
  };
2743
2770
 
2744
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/dependency.mjs
2771
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/dependency.mjs
2745
2772
  var MetadataDtsModuleScopeResolver = class {
2746
2773
  constructor(dtsMetaReader, aliasingHost) {
2747
2774
  this.dtsMetaReader = dtsMetaReader;
@@ -2817,11 +2844,11 @@ var MetadataDtsModuleScopeResolver = class {
2817
2844
  }
2818
2845
  };
2819
2846
 
2820
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/local.mjs
2847
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/local.mjs
2821
2848
  import { ExternalExpr as ExternalExpr3 } from "@angular/compiler";
2822
2849
  import ts12 from "typescript";
2823
2850
 
2824
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/util.mjs
2851
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/util.mjs
2825
2852
  function getDiagnosticNode(ref, rawExpr) {
2826
2853
  return rawExpr !== null ? ref.getOriginForDiagnostics(rawExpr) : ref.node.name;
2827
2854
  }
@@ -2844,7 +2871,7 @@ function makeUnknownComponentImportDiagnostic(ref, rawExpr) {
2844
2871
  return makeDiagnostic(ErrorCode.COMPONENT_UNKNOWN_IMPORT, getDiagnosticNode(ref, rawExpr), `Component imports must be standalone components, directives, pipes, or must be NgModules.`);
2845
2872
  }
2846
2873
 
2847
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/local.mjs
2874
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/local.mjs
2848
2875
  var LocalModuleScopeRegistry = class {
2849
2876
  constructor(localReader, fullReader, dependencyScopeReader, refEmitter, aliasingHost) {
2850
2877
  this.localReader = localReader;
@@ -3183,7 +3210,7 @@ function reexportCollision(module, refA, refB) {
3183
3210
  ]);
3184
3211
  }
3185
3212
 
3186
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/typecheck.mjs
3213
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/typecheck.mjs
3187
3214
  import { CssSelector, SelectorMatcher } from "@angular/compiler";
3188
3215
  import ts13 from "typescript";
3189
3216
  var TypeCheckScopeRegistry = class {
@@ -3252,7 +3279,7 @@ var TypeCheckScopeRegistry = class {
3252
3279
  }
3253
3280
  };
3254
3281
 
3255
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/api.mjs
3282
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/api.mjs
3256
3283
  var CompilationMode;
3257
3284
  (function(CompilationMode2) {
3258
3285
  CompilationMode2[CompilationMode2["FULL"] = 0] = "FULL";
@@ -3270,7 +3297,7 @@ var HandlerFlags;
3270
3297
  HandlerFlags2[HandlerFlags2["FULL_INHERITANCE"] = 1] = "FULL_INHERITANCE";
3271
3298
  })(HandlerFlags || (HandlerFlags = {}));
3272
3299
 
3273
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/alias.mjs
3300
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/alias.mjs
3274
3301
  import ts14 from "typescript";
3275
3302
  function aliasTransformFactory(exportStatements) {
3276
3303
  return () => {
@@ -3293,10 +3320,10 @@ function aliasTransformFactory(exportStatements) {
3293
3320
  };
3294
3321
  }
3295
3322
 
3296
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/compilation.mjs
3323
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/compilation.mjs
3297
3324
  import ts15 from "typescript";
3298
3325
 
3299
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/trait.mjs
3326
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/trait.mjs
3300
3327
  var TraitState;
3301
3328
  (function(TraitState2) {
3302
3329
  TraitState2[TraitState2["Pending"] = 0] = "Pending";
@@ -3351,7 +3378,7 @@ var TraitImpl = class {
3351
3378
  }
3352
3379
  };
3353
3380
 
3354
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/compilation.mjs
3381
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/compilation.mjs
3355
3382
  var TraitCompiler = class {
3356
3383
  constructor(handlers, reflector, perf, incrementalBuild, compileNonExportedClasses, compilationMode, dtsTransforms, semanticDepGraphUpdater, sourceFileTypeIdentifier) {
3357
3384
  this.handlers = handlers;
@@ -3795,10 +3822,10 @@ function containsErrors(diagnostics) {
3795
3822
  return diagnostics !== null && diagnostics.some((diag) => diag.category === ts15.DiagnosticCategory.Error);
3796
3823
  }
3797
3824
 
3798
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/declaration.mjs
3825
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/declaration.mjs
3799
3826
  import ts17 from "typescript";
3800
3827
 
3801
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/utils.mjs
3828
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/utils.mjs
3802
3829
  import ts16 from "typescript";
3803
3830
  function addImports(importManager, sf, extraStatements = []) {
3804
3831
  const addedImports = importManager.getAllImports(sf.fileName).map((i) => {
@@ -3834,7 +3861,7 @@ function isImportStatement(stmt) {
3834
3861
  return ts16.isImportDeclaration(stmt) || ts16.isImportEqualsDeclaration(stmt) || ts16.isNamespaceImport(stmt);
3835
3862
  }
3836
3863
 
3837
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/declaration.mjs
3864
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/declaration.mjs
3838
3865
  var DtsTransformRegistry = class {
3839
3866
  constructor() {
3840
3867
  this.ivyDeclarationTransforms = /* @__PURE__ */ new Map();
@@ -3979,11 +4006,11 @@ function markForEmitAsSingleLine(node) {
3979
4006
  ts17.forEachChild(node, markForEmitAsSingleLine);
3980
4007
  }
3981
4008
 
3982
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/transform.mjs
4009
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/transform.mjs
3983
4010
  import { ConstantPool } from "@angular/compiler";
3984
4011
  import ts19 from "typescript";
3985
4012
 
3986
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/util/src/visitor.mjs
4013
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/util/src/visitor.mjs
3987
4014
  import ts18 from "typescript";
3988
4015
  function visit(node, visitor, context) {
3989
4016
  return visitor._visit(node, context);
@@ -4044,7 +4071,7 @@ var Visitor = class {
4044
4071
  }
4045
4072
  };
4046
4073
 
4047
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/transform.mjs
4074
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/transform.mjs
4048
4075
  var NO_DECORATORS = /* @__PURE__ */ new Set();
4049
4076
  var CLOSURE_FILE_OVERVIEW_REGEXP = /\s+@fileoverview\s+/i;
4050
4077
  function ivyTransformFactory(compilation, reflector, importRewriter, defaultImportTracker, perf, isCore, isClosureCompilerEnabled) {
@@ -4252,10 +4279,10 @@ function nodeArrayFromDecoratorsArray(decorators) {
4252
4279
  return array;
4253
4280
  }
4254
4281
 
4255
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/handler.mjs
4282
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/handler.mjs
4256
4283
  import { compileClassMetadata, compileDeclareClassMetadata, compileDeclareDirectiveFromMetadata, compileDirectiveFromMetadata, FactoryTarget, makeBindingParser, WrappedNodeExpr as WrappedNodeExpr5 } from "@angular/compiler";
4257
4284
 
4258
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/shared.mjs
4285
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/shared.mjs
4259
4286
  import { createMayBeForwardRefExpression, emitDistinctChangesOnlyDefaultValue, ExternalExpr as ExternalExpr4, getSafePropertyAccessString, parseHostBindings, verifyHostBindings, WrappedNodeExpr as WrappedNodeExpr4 } from "@angular/compiler";
4260
4287
  import ts20 from "typescript";
4261
4288
  var EMPTY_OBJECT = {};
@@ -4284,10 +4311,12 @@ function extractDirectiveMetadata(clazz, decorator, reflector, evaluator, refEmi
4284
4311
  const members = reflector.getMembersOfClass(clazz);
4285
4312
  const decoratedElements = members.filter((member) => !member.isStatic && member.decorators !== null);
4286
4313
  const coreModule = isCore ? void 0 : "@angular/core";
4287
- const inputsFromMeta = parseFieldToPropertyMapping(directive, "inputs", evaluator);
4288
- const inputsFromFields = parseDecoratedFields(filterToMembersWithDecorator(decoratedElements, "Input", coreModule), evaluator, resolveInput);
4289
- const outputsFromMeta = parseFieldToPropertyMapping(directive, "outputs", evaluator);
4290
- const outputsFromFields = parseDecoratedFields(filterToMembersWithDecorator(decoratedElements, "Output", coreModule), evaluator, resolveOutput);
4314
+ const inputsFromMeta = parseInputsArray(directive, evaluator);
4315
+ const inputsFromFields = parseInputFields(filterToMembersWithDecorator(decoratedElements, "Input", coreModule), evaluator);
4316
+ const inputs = ClassPropertyMapping.fromMappedObject({ ...inputsFromMeta, ...inputsFromFields });
4317
+ const outputsFromMeta = parseOutputsArray(directive, evaluator);
4318
+ const outputsFromFields = parseOutputFields(filterToMembersWithDecorator(decoratedElements, "Output", coreModule), evaluator);
4319
+ const outputs = ClassPropertyMapping.fromMappedObject({ ...outputsFromMeta, ...outputsFromFields });
4291
4320
  const contentChildFromFields = queriesFromFields(filterToMembersWithDecorator(decoratedElements, "ContentChild", coreModule), reflector, evaluator);
4292
4321
  const contentChildrenFromFields = queriesFromFields(filterToMembersWithDecorator(decoratedElements, "ContentChildren", coreModule), reflector, evaluator);
4293
4322
  const queries = [...contentChildFromFields, ...contentChildrenFromFields];
@@ -4339,8 +4368,6 @@ function extractDirectiveMetadata(clazz, decorator, reflector, evaluator, refEmi
4339
4368
  const sourceFile = clazz.getSourceFile();
4340
4369
  const type = wrapTypeReference(reflector, clazz);
4341
4370
  const internalType = new WrappedNodeExpr4(reflector.getInternalNameOfClass(clazz));
4342
- const inputs = ClassPropertyMapping.fromMappedObject({ ...inputsFromMeta, ...inputsFromFields });
4343
- const outputs = ClassPropertyMapping.fromMappedObject({ ...outputsFromMeta, ...outputsFromFields });
4344
4371
  const rawHostDirectives = directive.get("hostDirectives") || null;
4345
4372
  const hostDirectives = rawHostDirectives === null ? null : extractHostDirectives(rawHostDirectives, evaluator);
4346
4373
  const metadata = {
@@ -4520,7 +4547,7 @@ function extractQueriesFromDecorator(queryData, reflector, evaluator, isCore) {
4520
4547
  });
4521
4548
  return { content, view };
4522
4549
  }
4523
- function parseFieldArrayValue(directive, field, evaluator) {
4550
+ function parseFieldStringArrayValue(directive, field, evaluator) {
4524
4551
  if (!directive.has(field)) {
4525
4552
  return null;
4526
4553
  }
@@ -4560,44 +4587,80 @@ function queriesFromFields(fields, reflector, evaluator) {
4560
4587
  function isPropertyTypeMember(member) {
4561
4588
  return member.kind === ClassMemberKind.Getter || member.kind === ClassMemberKind.Setter || member.kind === ClassMemberKind.Property;
4562
4589
  }
4563
- function parseFieldToPropertyMapping(directive, field, evaluator) {
4564
- const metaValues = parseFieldArrayValue(directive, field, evaluator);
4565
- return metaValues ? parseInputOutputMappingArray(metaValues) : EMPTY_OBJECT;
4566
- }
4567
- function parseInputOutputMappingArray(values) {
4590
+ function parseMappingStringArray(values) {
4568
4591
  return values.reduce((results, value) => {
4569
4592
  if (typeof value !== "string") {
4570
4593
  throw new Error("Mapping value must be a string");
4571
4594
  }
4572
- const [field, property] = value.split(":", 2).map((str) => str.trim());
4573
- results[field] = property || field;
4595
+ const [bindingPropertyName, fieldName] = parseMappingString(value);
4596
+ results[fieldName] = bindingPropertyName;
4574
4597
  return results;
4575
4598
  }, {});
4576
4599
  }
4577
- function parseDecoratedFields(fields, evaluator, mapValueResolver) {
4578
- return fields.reduce((results, field) => {
4600
+ function parseMappingString(value) {
4601
+ const [fieldName, bindingPropertyName] = value.split(":", 2).map((str) => str.trim());
4602
+ return [bindingPropertyName != null ? bindingPropertyName : fieldName, fieldName];
4603
+ }
4604
+ function parseDecoratedFields(fields, evaluator, callback) {
4605
+ for (const field of fields) {
4579
4606
  const fieldName = field.member.name;
4580
- field.decorators.forEach((decorator) => {
4581
- if (decorator.args == null || decorator.args.length === 0) {
4582
- results[fieldName] = fieldName;
4583
- } else if (decorator.args.length === 1) {
4584
- const property = evaluator.evaluate(decorator.args[0]);
4585
- if (typeof property !== "string") {
4586
- throw createValueHasWrongTypeError(Decorator.nodeForError(decorator), property, `@${decorator.name} decorator argument must resolve to a string`);
4587
- }
4588
- results[fieldName] = mapValueResolver(property, fieldName);
4589
- } else {
4607
+ for (const decorator of field.decorators) {
4608
+ if (decorator.args != null && decorator.args.length > 1) {
4590
4609
  throw new FatalDiagnosticError(ErrorCode.DECORATOR_ARITY_WRONG, Decorator.nodeForError(decorator), `@${decorator.name} can have at most one argument, got ${decorator.args.length} argument(s)`);
4591
4610
  }
4592
- });
4593
- return results;
4594
- }, {});
4611
+ const value = decorator.args != null && decorator.args.length > 0 ? evaluator.evaluate(decorator.args[0]) : null;
4612
+ callback(fieldName, value, decorator);
4613
+ }
4614
+ }
4615
+ }
4616
+ function parseInputsArray(decoratorMetadata, evaluator) {
4617
+ const inputsField = decoratorMetadata.get("inputs");
4618
+ if (inputsField === void 0) {
4619
+ return {};
4620
+ }
4621
+ const inputs = {};
4622
+ const inputsArray = evaluator.evaluate(inputsField);
4623
+ if (!Array.isArray(inputsArray)) {
4624
+ throw createValueHasWrongTypeError(inputsField, inputsArray, `Failed to resolve @Directive.inputs to a string array`);
4625
+ }
4626
+ for (const value of inputsArray) {
4627
+ if (typeof value === "string") {
4628
+ const [bindingPropertyName, fieldName] = parseMappingString(value);
4629
+ inputs[fieldName] = { bindingPropertyName, classPropertyName: fieldName, required: false };
4630
+ } else {
4631
+ throw createValueHasWrongTypeError(inputsField, value, `Failed to resolve @Directive.inputs to a string array`);
4632
+ }
4633
+ }
4634
+ return inputs;
4635
+ }
4636
+ function parseInputFields(inputMembers, evaluator) {
4637
+ const inputs = {};
4638
+ parseDecoratedFields(inputMembers, evaluator, (classPropertyName, options, decorator) => {
4639
+ let bindingPropertyName;
4640
+ if (options === null) {
4641
+ bindingPropertyName = classPropertyName;
4642
+ } else if (typeof options === "string") {
4643
+ bindingPropertyName = options;
4644
+ } else {
4645
+ throw createValueHasWrongTypeError(Decorator.nodeForError(decorator), options, `@${decorator.name} decorator argument must resolve to a string`);
4646
+ }
4647
+ inputs[classPropertyName] = { bindingPropertyName, classPropertyName, required: false };
4648
+ });
4649
+ return inputs;
4595
4650
  }
4596
- function resolveInput(publicName, internalName) {
4597
- return [publicName, internalName];
4651
+ function parseOutputsArray(directive, evaluator) {
4652
+ const metaValues = parseFieldStringArrayValue(directive, "outputs", evaluator);
4653
+ return metaValues ? parseMappingStringArray(metaValues) : EMPTY_OBJECT;
4598
4654
  }
4599
- function resolveOutput(publicName, internalName) {
4600
- return publicName;
4655
+ function parseOutputFields(outputMembers, evaluator) {
4656
+ const outputs = {};
4657
+ parseDecoratedFields(outputMembers, evaluator, (fieldName, bindingPropertyName, decorator) => {
4658
+ if (bindingPropertyName != null && typeof bindingPropertyName !== "string") {
4659
+ throw createValueHasWrongTypeError(Decorator.nodeForError(decorator), bindingPropertyName, `@${decorator.name} decorator argument must resolve to a string`);
4660
+ }
4661
+ outputs[fieldName] = bindingPropertyName != null ? bindingPropertyName : fieldName;
4662
+ });
4663
+ return outputs;
4601
4664
  }
4602
4665
  function evaluateHostExpressionBindings(hostExpr, evaluator) {
4603
4666
  const hostMetaMap = evaluator.evaluate(hostExpr);
@@ -4658,7 +4721,7 @@ function parseHostDirectivesMapping(field, resolvedValue, classReference, source
4658
4721
  const nameForErrors = `@Directive.hostDirectives.${classReference.name.text}.${field}`;
4659
4722
  const rawInputs = resolvedValue.get(field);
4660
4723
  if (isStringArrayOrDie(rawInputs, nameForErrors, sourceExpression)) {
4661
- return parseInputOutputMappingArray(rawInputs);
4724
+ return parseMappingStringArray(rawInputs);
4662
4725
  }
4663
4726
  }
4664
4727
  return null;
@@ -4672,7 +4735,7 @@ function toHostDirectiveMetadata(hostDirective, context, refEmitter) {
4672
4735
  };
4673
4736
  }
4674
4737
 
4675
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/symbol.mjs
4738
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/symbol.mjs
4676
4739
  var DirectiveSymbol = class extends SemanticSymbol {
4677
4740
  constructor(decl, selector, inputs, outputs, exportAs, typeCheckMeta, typeParameters) {
4678
4741
  super(decl);
@@ -4697,7 +4760,7 @@ var DirectiveSymbol = class extends SemanticSymbol {
4697
4760
  if (!(previousSymbol instanceof DirectiveSymbol)) {
4698
4761
  return true;
4699
4762
  }
4700
- if (!isArrayEqual(Array.from(this.inputs), Array.from(previousSymbol.inputs), isInputMappingEqual) || !isArrayEqual(Array.from(this.outputs), Array.from(previousSymbol.outputs), isInputMappingEqual)) {
4763
+ if (!isArrayEqual(Array.from(this.inputs), Array.from(previousSymbol.inputs), isInputMappingEqual) || !isArrayEqual(Array.from(this.outputs), Array.from(previousSymbol.outputs), isInputOrOutputEqual)) {
4701
4764
  return true;
4702
4765
  }
4703
4766
  if (!areTypeParametersEqual(this.typeParameters, previousSymbol.typeParameters)) {
@@ -4713,7 +4776,10 @@ var DirectiveSymbol = class extends SemanticSymbol {
4713
4776
  }
4714
4777
  };
4715
4778
  function isInputMappingEqual(current, previous) {
4716
- return current[0] === previous[0] && current[1] === previous[1];
4779
+ return isInputOrOutputEqual(current, previous) && current.required === previous.required;
4780
+ }
4781
+ function isInputOrOutputEqual(current, previous) {
4782
+ return current.classPropertyName === previous.classPropertyName && current.bindingPropertyName === previous.bindingPropertyName;
4717
4783
  }
4718
4784
  function isTypeCheckMetaEqual(current, previous) {
4719
4785
  if (current.hasNgTemplateContextGuard !== previous.hasNgTemplateContextGuard) {
@@ -4749,7 +4815,7 @@ function isBaseClassEqual(current, previous) {
4749
4815
  return isSymbolEqual(current, previous);
4750
4816
  }
4751
4817
 
4752
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/handler.mjs
4818
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/handler.mjs
4753
4819
  var FIELD_DECORATORS = [
4754
4820
  "Input",
4755
4821
  "Output",
@@ -4908,11 +4974,11 @@ var DirectiveDecoratorHandler = class {
4908
4974
  }
4909
4975
  };
4910
4976
 
4911
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/ng_module/src/handler.mjs
4977
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/ng_module/src/handler.mjs
4912
4978
  import { compileClassMetadata as compileClassMetadata2, compileDeclareClassMetadata as compileDeclareClassMetadata2, compileDeclareInjectorFromMetadata, compileDeclareNgModuleFromMetadata, compileInjector, compileNgModule, ExternalExpr as ExternalExpr5, FactoryTarget as FactoryTarget2, FunctionExpr as FunctionExpr2, InvokeFunctionExpr, LiteralArrayExpr as LiteralArrayExpr2, R3Identifiers, R3SelectorScopeMode, ReturnStatement as ReturnStatement2, WrappedNodeExpr as WrappedNodeExpr6 } from "@angular/compiler";
4913
4979
  import ts22 from "typescript";
4914
4980
 
4915
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/ng_module/src/module_with_providers.mjs
4981
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/ng_module/src/module_with_providers.mjs
4916
4982
  import ts21 from "typescript";
4917
4983
  function createModuleWithProvidersResolver(reflector, isCore) {
4918
4984
  function _reflectModuleFromTypeParam(type, node) {
@@ -4979,7 +5045,7 @@ function isResolvedModuleWithProviders(sv) {
4979
5045
  return typeof sv.value === "object" && sv.value != null && sv.value.hasOwnProperty("ngModule") && sv.value.hasOwnProperty("mwpCall");
4980
5046
  }
4981
5047
 
4982
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/ng_module/src/handler.mjs
5048
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/ng_module/src/handler.mjs
4983
5049
  var NgModuleSymbol = class extends SemanticSymbol {
4984
5050
  constructor() {
4985
5051
  super(...arguments);
@@ -5477,7 +5543,7 @@ function isSyntheticReference(ref) {
5477
5543
  return ref.synthetic;
5478
5544
  }
5479
5545
 
5480
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/component/src/diagnostics.mjs
5546
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/component/src/diagnostics.mjs
5481
5547
  function makeCyclicImportInfo(ref, type, cycle) {
5482
5548
  const name = ref.debugName || "(unknown)";
5483
5549
  const path = cycle.getPath().map((sf) => sf.fileName).join(" -> ");
@@ -5500,7 +5566,7 @@ function checkCustomElementSelectorForErrors(selector) {
5500
5566
  return null;
5501
5567
  }
5502
5568
 
5503
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/component/src/resources.mjs
5569
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/component/src/resources.mjs
5504
5570
  import { DEFAULT_INTERPOLATION_CONFIG, InterpolationConfig, ParseSourceFile as ParseSourceFile2, parseTemplate } from "@angular/compiler";
5505
5571
  import ts23 from "typescript";
5506
5572
  function getTemplateDeclarationNodeForError(declaration) {
@@ -5819,7 +5885,7 @@ function _extractTemplateStyleUrls(template) {
5819
5885
  return template.styleUrls.map((url) => ({ url, source: 1, nodeForError }));
5820
5886
  }
5821
5887
 
5822
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/component/src/symbol.mjs
5888
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/component/src/symbol.mjs
5823
5889
  var ComponentSymbol = class extends DirectiveSymbol {
5824
5890
  constructor() {
5825
5891
  super(...arguments);
@@ -5854,7 +5920,7 @@ var ComponentSymbol = class extends DirectiveSymbol {
5854
5920
  }
5855
5921
  };
5856
5922
 
5857
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/component/src/util.mjs
5923
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/component/src/util.mjs
5858
5924
  function collectAnimationNames(value, animationTriggerNames) {
5859
5925
  if (value instanceof Map) {
5860
5926
  const name = value.get("name");
@@ -5930,7 +5996,7 @@ function isLikelyModuleWithProviders(value) {
5930
5996
  return false;
5931
5997
  }
5932
5998
 
5933
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/component/src/handler.mjs
5999
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/component/src/handler.mjs
5934
6000
  var EMPTY_ARRAY2 = [];
5935
6001
  var ComponentDecoratorHandler = class {
5936
6002
  constructor(reflector, evaluator, metaRegistry, metaReader, scopeReader, dtsScopeReader, scopeRegistry, typeCheckScopeRegistry, resourceRegistry, isCore, strictCtorDeps, resourceLoader, rootDirs, defaultPreserveWhitespaces, i18nUseExternalIds, enableI18nLegacyMessageIdFormat, usePoisonedData, i18nNormalizeLineEndingsInICUs, moduleResolver, cycleAnalyzer, cycleHandlingStrategy, refEmitter, depTracker, injectableRegistry, semanticDepGraphUpdater, annotateForClosureCompiler, perf, hostDirectivesResolver) {
@@ -6013,7 +6079,7 @@ var ComponentDecoratorHandler = class {
6013
6079
  const componentStyleUrls = extractComponentStyleUrls(this.evaluator, component);
6014
6080
  let inlineStyles;
6015
6081
  if (component.has("styles")) {
6016
- const litStyles = parseFieldArrayValue(component, "styles", this.evaluator);
6082
+ const litStyles = parseFieldStringArrayValue(component, "styles", this.evaluator);
6017
6083
  if (litStyles === null) {
6018
6084
  this.preanalyzeStylesCache.set(node, null);
6019
6085
  } else {
@@ -6172,7 +6238,7 @@ var ComponentDecoratorHandler = class {
6172
6238
  throw new Error("Inline resource processing requires asynchronous preanalyze.");
6173
6239
  }
6174
6240
  if (component.has("styles")) {
6175
- const litStyles = parseFieldArrayValue(component, "styles", this.evaluator);
6241
+ const litStyles = parseFieldStringArrayValue(component, "styles", this.evaluator);
6176
6242
  if (litStyles !== null) {
6177
6243
  inlineStyles = [...litStyles];
6178
6244
  styles.push(...litStyles);
@@ -6577,7 +6643,7 @@ function validateStandaloneImports(importRefs, importExpr, metaReader, scopeRead
6577
6643
  return diagnostics;
6578
6644
  }
6579
6645
 
6580
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/src/injectable.mjs
6646
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/src/injectable.mjs
6581
6647
  import { compileClassMetadata as compileClassMetadata4, compileDeclareClassMetadata as compileDeclareClassMetadata4, compileDeclareInjectableFromMetadata, compileInjectable, createMayBeForwardRefExpression as createMayBeForwardRefExpression2, FactoryTarget as FactoryTarget4, LiteralExpr as LiteralExpr3, WrappedNodeExpr as WrappedNodeExpr8 } from "@angular/compiler";
6582
6648
  import ts25 from "typescript";
6583
6649
  var InjectableDecoratorHandler = class {
@@ -6794,7 +6860,7 @@ function getDep(dep, reflector) {
6794
6860
  return meta;
6795
6861
  }
6796
6862
 
6797
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/src/pipe.mjs
6863
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/src/pipe.mjs
6798
6864
  import { compileClassMetadata as compileClassMetadata5, compileDeclareClassMetadata as compileDeclareClassMetadata5, compileDeclarePipeFromMetadata, compilePipeFromMetadata, FactoryTarget as FactoryTarget5, WrappedNodeExpr as WrappedNodeExpr9 } from "@angular/compiler";
6799
6865
  import ts26 from "typescript";
6800
6866
  var PipeSymbol = class extends SemanticSymbol {
@@ -6940,14 +7006,14 @@ var PipeDecoratorHandler = class {
6940
7006
  }
6941
7007
  };
6942
7008
 
6943
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/api/checker.mjs
7009
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/api/checker.mjs
6944
7010
  var OptimizeFor;
6945
7011
  (function(OptimizeFor2) {
6946
7012
  OptimizeFor2[OptimizeFor2["SingleFile"] = 0] = "SingleFile";
6947
7013
  OptimizeFor2[OptimizeFor2["WholeProgram"] = 1] = "WholeProgram";
6948
7014
  })(OptimizeFor || (OptimizeFor = {}));
6949
7015
 
6950
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/api/scope.mjs
7016
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/api/scope.mjs
6951
7017
  var PotentialImportKind;
6952
7018
  (function(PotentialImportKind2) {
6953
7019
  PotentialImportKind2[PotentialImportKind2["NgModule"] = 0] = "NgModule";
@@ -6959,14 +7025,14 @@ var PotentialImportMode;
6959
7025
  PotentialImportMode2[PotentialImportMode2["ForceDirect"] = 1] = "ForceDirect";
6960
7026
  })(PotentialImportMode || (PotentialImportMode = {}));
6961
7027
 
6962
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/api/completion.mjs
7028
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/api/completion.mjs
6963
7029
  var CompletionKind;
6964
7030
  (function(CompletionKind2) {
6965
7031
  CompletionKind2[CompletionKind2["Reference"] = 0] = "Reference";
6966
7032
  CompletionKind2[CompletionKind2["Variable"] = 1] = "Variable";
6967
7033
  })(CompletionKind || (CompletionKind = {}));
6968
7034
 
6969
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/api/symbols.mjs
7035
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/api/symbols.mjs
6970
7036
  var SymbolKind;
6971
7037
  (function(SymbolKind2) {
6972
7038
  SymbolKind2[SymbolKind2["Input"] = 0] = "Input";
@@ -7033,4 +7099,4 @@ export {
7033
7099
  * Use of this source code is governed by an MIT-style license that can be
7034
7100
  * found in the LICENSE file at https://angular.io/license
7035
7101
  */
7036
- //# sourceMappingURL=chunk-XS6XKZQP.js.map
7102
+ //# sourceMappingURL=chunk-MENJKFAO.js.map