@angular/material 17.1.2 → 17.2.0-next.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.
Files changed (304) hide show
  1. package/_index.scss +4 -4
  2. package/badge/_badge-theme.scss +30 -11
  3. package/button/_button-base.scss +50 -10
  4. package/button/_button-theme.scss +92 -51
  5. package/button/_fab-theme.scss +82 -15
  6. package/button/_icon-button-theme.scss +11 -4
  7. package/button-toggle/_button-toggle-theme.scss +26 -11
  8. package/checkbox/_checkbox-theme.scss +41 -23
  9. package/chips/_chips-theme.scss +36 -9
  10. package/core/_core-theme.scss +85 -38
  11. package/core/mdc-helpers/_mdc-helpers.scss +0 -8
  12. package/core/option/_option-theme.scss +24 -10
  13. package/core/selection/pseudo-checkbox/_pseudo-checkbox-theme.scss +64 -24
  14. package/core/tokens/_token-utils.scss +22 -0
  15. package/core/tokens/m2/_index.scss +16 -0
  16. package/core/tokens/m2/mat/_badge.scss +27 -1
  17. package/core/tokens/m2/mat/_checkbox.scss +45 -0
  18. package/core/tokens/m2/mat/_chip.scss +39 -0
  19. package/core/tokens/m2/mat/_dialog.scss +49 -0
  20. package/core/tokens/m2/mat/_fab-small.scss +95 -0
  21. package/core/tokens/m2/mat/_fab.scss +6 -1
  22. package/core/tokens/m2/mat/_filled-button.scss +17 -2
  23. package/core/tokens/m2/mat/_icon-button.scss +6 -1
  24. package/core/tokens/m2/mat/_outlined-button.scss +17 -2
  25. package/core/tokens/m2/mat/_protected-button.scss +17 -2
  26. package/core/tokens/m2/mat/_radio.scss +6 -1
  27. package/core/tokens/m2/mat/_stepper.scss +6 -1
  28. package/core/tokens/m2/mat/_text-button.scss +20 -2
  29. package/core/tokens/m2/mdc/_chip.scss +8 -8
  30. package/core/tokens/m2/mdc/_extended-fab.scss +3 -2
  31. package/core/tokens/m2/mdc/_fab-small.scss +90 -0
  32. package/core/tokens/m2/mdc/_fab.scss +0 -11
  33. package/core/tokens/m2/mdc/_icon-button.scss +15 -7
  34. package/datepicker/_datepicker-theme.scss +25 -9
  35. package/dialog/_dialog-theme.scss +10 -0
  36. package/dialog/index.d.ts +28 -9
  37. package/esm2022/autocomplete/autocomplete-origin.mjs +4 -4
  38. package/esm2022/autocomplete/autocomplete-trigger.mjs +4 -4
  39. package/esm2022/autocomplete/autocomplete.mjs +4 -4
  40. package/esm2022/autocomplete/module.mjs +5 -5
  41. package/esm2022/badge/badge-module.mjs +5 -5
  42. package/esm2022/badge/badge.mjs +8 -8
  43. package/esm2022/bottom-sheet/bottom-sheet-container.mjs +4 -4
  44. package/esm2022/bottom-sheet/bottom-sheet-module.mjs +5 -5
  45. package/esm2022/bottom-sheet/bottom-sheet.mjs +4 -4
  46. package/esm2022/button/button-base.mjs +7 -7
  47. package/esm2022/button/button.mjs +9 -9
  48. package/esm2022/button/fab.mjs +17 -17
  49. package/esm2022/button/icon-button.mjs +9 -9
  50. package/esm2022/button/module.mjs +5 -5
  51. package/esm2022/button-toggle/button-toggle-module.mjs +5 -5
  52. package/esm2022/button-toggle/button-toggle.mjs +7 -7
  53. package/esm2022/card/card.mjs +43 -43
  54. package/esm2022/card/module.mjs +5 -5
  55. package/esm2022/checkbox/checkbox-required-validator.mjs +4 -4
  56. package/esm2022/checkbox/checkbox.mjs +6 -6
  57. package/esm2022/checkbox/module.mjs +9 -9
  58. package/esm2022/chips/chip-action.mjs +4 -4
  59. package/esm2022/chips/chip-edit-input.mjs +4 -4
  60. package/esm2022/chips/chip-grid.mjs +4 -4
  61. package/esm2022/chips/chip-icons.mjs +10 -10
  62. package/esm2022/chips/chip-input.mjs +4 -4
  63. package/esm2022/chips/chip-listbox.mjs +4 -4
  64. package/esm2022/chips/chip-option.mjs +6 -6
  65. package/esm2022/chips/chip-row.mjs +6 -6
  66. package/esm2022/chips/chip-set.mjs +4 -4
  67. package/esm2022/chips/chip.mjs +5 -5
  68. package/esm2022/chips/module.mjs +5 -5
  69. package/esm2022/core/common-behaviors/common-module.mjs +5 -5
  70. package/esm2022/core/datetime/index.mjs +9 -9
  71. package/esm2022/core/datetime/native-date-adapter.mjs +4 -4
  72. package/esm2022/core/error/error-options.mjs +7 -7
  73. package/esm2022/core/internal-form-field/internal-form-field.mjs +4 -4
  74. package/esm2022/core/line/line.mjs +8 -8
  75. package/esm2022/core/option/index.mjs +5 -5
  76. package/esm2022/core/option/optgroup.mjs +4 -4
  77. package/esm2022/core/option/option.mjs +5 -5
  78. package/esm2022/core/private/ripple-loader.mjs +4 -4
  79. package/esm2022/core/ripple/index.mjs +5 -5
  80. package/esm2022/core/ripple/ripple.mjs +4 -4
  81. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox-module.mjs +5 -5
  82. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +4 -4
  83. package/esm2022/core/version.mjs +1 -1
  84. package/esm2022/datepicker/calendar-body.mjs +4 -4
  85. package/esm2022/datepicker/calendar.mjs +7 -7
  86. package/esm2022/datepicker/date-range-input-parts.mjs +10 -10
  87. package/esm2022/datepicker/date-range-input.mjs +4 -4
  88. package/esm2022/datepicker/date-range-picker.mjs +4 -4
  89. package/esm2022/datepicker/date-range-selection-strategy.mjs +4 -4
  90. package/esm2022/datepicker/date-selection-model.mjs +10 -10
  91. package/esm2022/datepicker/datepicker-actions.mjs +10 -10
  92. package/esm2022/datepicker/datepicker-base.mjs +7 -7
  93. package/esm2022/datepicker/datepicker-input-base.mjs +4 -4
  94. package/esm2022/datepicker/datepicker-input.mjs +4 -4
  95. package/esm2022/datepicker/datepicker-intl.mjs +4 -4
  96. package/esm2022/datepicker/datepicker-module.mjs +5 -5
  97. package/esm2022/datepicker/datepicker-toggle.mjs +7 -7
  98. package/esm2022/datepicker/datepicker.mjs +4 -4
  99. package/esm2022/datepicker/month-view.mjs +4 -4
  100. package/esm2022/datepicker/multi-year-view.mjs +4 -4
  101. package/esm2022/datepicker/year-view.mjs +4 -4
  102. package/esm2022/dialog/dialog-config.mjs +1 -3
  103. package/esm2022/dialog/dialog-container.mjs +16 -5
  104. package/esm2022/dialog/dialog-content-directives.mjs +49 -31
  105. package/esm2022/dialog/dialog-ref.mjs +3 -1
  106. package/esm2022/dialog/dialog.mjs +4 -4
  107. package/esm2022/dialog/module.mjs +5 -5
  108. package/esm2022/dialog/public-api.mjs +2 -2
  109. package/esm2022/divider/divider-module.mjs +5 -5
  110. package/esm2022/divider/divider.mjs +4 -4
  111. package/esm2022/expansion/accordion.mjs +4 -4
  112. package/esm2022/expansion/expansion-module.mjs +5 -5
  113. package/esm2022/expansion/expansion-panel-content.mjs +4 -4
  114. package/esm2022/expansion/expansion-panel-header.mjs +10 -10
  115. package/esm2022/expansion/expansion-panel.mjs +7 -7
  116. package/esm2022/form-field/directives/error.mjs +4 -4
  117. package/esm2022/form-field/directives/floating-label.mjs +4 -4
  118. package/esm2022/form-field/directives/hint.mjs +4 -4
  119. package/esm2022/form-field/directives/label.mjs +4 -4
  120. package/esm2022/form-field/directives/line-ripple.mjs +4 -4
  121. package/esm2022/form-field/directives/notched-outline.mjs +4 -4
  122. package/esm2022/form-field/directives/prefix.mjs +4 -4
  123. package/esm2022/form-field/directives/suffix.mjs +4 -4
  124. package/esm2022/form-field/form-field-control.mjs +4 -4
  125. package/esm2022/form-field/form-field.mjs +4 -4
  126. package/esm2022/form-field/module.mjs +5 -5
  127. package/esm2022/grid-list/grid-list-module.mjs +5 -5
  128. package/esm2022/grid-list/grid-list.mjs +4 -4
  129. package/esm2022/grid-list/grid-tile.mjs +16 -16
  130. package/esm2022/icon/icon-module.mjs +5 -5
  131. package/esm2022/icon/icon-registry.mjs +4 -4
  132. package/esm2022/icon/icon.mjs +4 -4
  133. package/esm2022/icon/testing/fake-icon-registry.mjs +8 -8
  134. package/esm2022/input/input.mjs +4 -4
  135. package/esm2022/input/module.mjs +5 -5
  136. package/esm2022/list/action-list.mjs +4 -4
  137. package/esm2022/list/list-base.mjs +7 -7
  138. package/esm2022/list/list-item-sections.mjs +19 -19
  139. package/esm2022/list/list-module.mjs +5 -5
  140. package/esm2022/list/list-option.mjs +4 -4
  141. package/esm2022/list/list.mjs +7 -7
  142. package/esm2022/list/nav-list.mjs +4 -4
  143. package/esm2022/list/selection-list.mjs +4 -4
  144. package/esm2022/list/subheader.mjs +4 -4
  145. package/esm2022/menu/menu-content.mjs +4 -4
  146. package/esm2022/menu/menu-item.mjs +4 -4
  147. package/esm2022/menu/menu-trigger.mjs +4 -4
  148. package/esm2022/menu/menu.mjs +4 -4
  149. package/esm2022/menu/module.mjs +5 -5
  150. package/esm2022/paginator/module.mjs +5 -5
  151. package/esm2022/paginator/paginator-intl.mjs +4 -4
  152. package/esm2022/paginator/paginator.mjs +4 -4
  153. package/esm2022/progress-bar/module.mjs +5 -5
  154. package/esm2022/progress-bar/progress-bar.mjs +4 -4
  155. package/esm2022/progress-spinner/module.mjs +5 -5
  156. package/esm2022/progress-spinner/progress-spinner.mjs +4 -4
  157. package/esm2022/radio/module.mjs +5 -5
  158. package/esm2022/radio/radio.mjs +8 -8
  159. package/esm2022/select/module.mjs +5 -5
  160. package/esm2022/select/select.mjs +7 -7
  161. package/esm2022/sidenav/drawer.mjs +10 -10
  162. package/esm2022/sidenav/sidenav-module.mjs +5 -5
  163. package/esm2022/sidenav/sidenav.mjs +10 -10
  164. package/esm2022/slide-toggle/module.mjs +9 -9
  165. package/esm2022/slide-toggle/slide-toggle-required-validator.mjs +4 -4
  166. package/esm2022/slide-toggle/slide-toggle.mjs +4 -4
  167. package/esm2022/slider/module.mjs +5 -5
  168. package/esm2022/slider/slider-input.mjs +7 -7
  169. package/esm2022/slider/slider-thumb.mjs +4 -4
  170. package/esm2022/slider/slider.mjs +4 -4
  171. package/esm2022/snack-bar/module.mjs +5 -5
  172. package/esm2022/snack-bar/simple-snack-bar.mjs +4 -4
  173. package/esm2022/snack-bar/snack-bar-container.mjs +4 -4
  174. package/esm2022/snack-bar/snack-bar-content.mjs +10 -10
  175. package/esm2022/snack-bar/snack-bar.mjs +4 -4
  176. package/esm2022/sort/sort-header-intl.mjs +4 -4
  177. package/esm2022/sort/sort-header.mjs +4 -4
  178. package/esm2022/sort/sort-module.mjs +5 -5
  179. package/esm2022/sort/sort.mjs +4 -4
  180. package/esm2022/stepper/step-content.mjs +4 -4
  181. package/esm2022/stepper/step-header.mjs +5 -5
  182. package/esm2022/stepper/step-label.mjs +4 -4
  183. package/esm2022/stepper/stepper-button.mjs +7 -7
  184. package/esm2022/stepper/stepper-icon.mjs +4 -4
  185. package/esm2022/stepper/stepper-intl.mjs +4 -4
  186. package/esm2022/stepper/stepper-module.mjs +5 -5
  187. package/esm2022/stepper/stepper.mjs +7 -7
  188. package/esm2022/table/cell.mjs +22 -22
  189. package/esm2022/table/module.mjs +5 -5
  190. package/esm2022/table/row.mjs +22 -22
  191. package/esm2022/table/table.mjs +7 -7
  192. package/esm2022/table/text-column.mjs +4 -4
  193. package/esm2022/tabs/module.mjs +5 -5
  194. package/esm2022/tabs/paginated-tab-header.mjs +4 -4
  195. package/esm2022/tabs/tab-body.mjs +7 -7
  196. package/esm2022/tabs/tab-content.mjs +4 -4
  197. package/esm2022/tabs/tab-group.mjs +4 -4
  198. package/esm2022/tabs/tab-header.mjs +4 -4
  199. package/esm2022/tabs/tab-label-wrapper.mjs +4 -4
  200. package/esm2022/tabs/tab-label.mjs +4 -4
  201. package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +10 -10
  202. package/esm2022/tabs/tab.mjs +4 -4
  203. package/esm2022/toolbar/toolbar-module.mjs +5 -5
  204. package/esm2022/toolbar/toolbar.mjs +7 -7
  205. package/esm2022/tooltip/module.mjs +5 -5
  206. package/esm2022/tooltip/tooltip.mjs +7 -7
  207. package/esm2022/tree/node.mjs +10 -10
  208. package/esm2022/tree/outlet.mjs +4 -4
  209. package/esm2022/tree/padding.mjs +4 -4
  210. package/esm2022/tree/toggle.mjs +4 -4
  211. package/esm2022/tree/tree-module.mjs +5 -5
  212. package/esm2022/tree/tree.mjs +4 -4
  213. package/fesm2022/autocomplete.mjs +13 -13
  214. package/fesm2022/autocomplete.mjs.map +1 -1
  215. package/fesm2022/badge.mjs +11 -11
  216. package/fesm2022/badge.mjs.map +1 -1
  217. package/fesm2022/bottom-sheet.mjs +10 -10
  218. package/fesm2022/bottom-sheet.mjs.map +1 -1
  219. package/fesm2022/button-toggle.mjs +10 -10
  220. package/fesm2022/button-toggle.mjs.map +1 -1
  221. package/fesm2022/button.mjs +42 -42
  222. package/fesm2022/button.mjs.map +1 -1
  223. package/fesm2022/card.mjs +46 -46
  224. package/fesm2022/card.mjs.map +1 -1
  225. package/fesm2022/checkbox.mjs +16 -16
  226. package/fesm2022/checkbox.mjs.map +1 -1
  227. package/fesm2022/chips.mjs +45 -45
  228. package/fesm2022/chips.mjs.map +1 -1
  229. package/fesm2022/core.mjs +60 -60
  230. package/fesm2022/core.mjs.map +1 -1
  231. package/fesm2022/datepicker.mjs +82 -82
  232. package/fesm2022/datepicker.mjs.map +1 -1
  233. package/fesm2022/dialog.mjs +72 -43
  234. package/fesm2022/dialog.mjs.map +1 -1
  235. package/fesm2022/divider.mjs +7 -7
  236. package/fesm2022/divider.mjs.map +1 -1
  237. package/fesm2022/expansion.mjs +25 -25
  238. package/fesm2022/expansion.mjs.map +1 -1
  239. package/fesm2022/form-field.mjs +34 -34
  240. package/fesm2022/form-field.mjs.map +1 -1
  241. package/fesm2022/grid-list.mjs +22 -22
  242. package/fesm2022/grid-list.mjs.map +1 -1
  243. package/fesm2022/icon/testing.mjs +7 -7
  244. package/fesm2022/icon/testing.mjs.map +1 -1
  245. package/fesm2022/icon.mjs +10 -10
  246. package/fesm2022/icon.mjs.map +1 -1
  247. package/fesm2022/input.mjs +7 -7
  248. package/fesm2022/input.mjs.map +1 -1
  249. package/fesm2022/list.mjs +49 -49
  250. package/fesm2022/list.mjs.map +1 -1
  251. package/fesm2022/menu.mjs +16 -16
  252. package/fesm2022/menu.mjs.map +1 -1
  253. package/fesm2022/paginator.mjs +10 -10
  254. package/fesm2022/paginator.mjs.map +1 -1
  255. package/fesm2022/progress-bar.mjs +7 -7
  256. package/fesm2022/progress-bar.mjs.map +1 -1
  257. package/fesm2022/progress-spinner.mjs +7 -7
  258. package/fesm2022/progress-spinner.mjs.map +1 -1
  259. package/fesm2022/radio.mjs +11 -11
  260. package/fesm2022/radio.mjs.map +1 -1
  261. package/fesm2022/select.mjs +10 -10
  262. package/fesm2022/select.mjs.map +1 -1
  263. package/fesm2022/sidenav.mjs +22 -22
  264. package/fesm2022/sidenav.mjs.map +1 -1
  265. package/fesm2022/slide-toggle.mjs +14 -14
  266. package/fesm2022/slide-toggle.mjs.map +1 -1
  267. package/fesm2022/slider.mjs +16 -16
  268. package/fesm2022/slider.mjs.map +1 -1
  269. package/fesm2022/snack-bar.mjs +22 -22
  270. package/fesm2022/snack-bar.mjs.map +1 -1
  271. package/fesm2022/sort.mjs +13 -13
  272. package/fesm2022/sort.mjs.map +1 -1
  273. package/fesm2022/stepper.mjs +32 -32
  274. package/fesm2022/stepper.mjs.map +1 -1
  275. package/fesm2022/table.mjs +55 -55
  276. package/fesm2022/table.mjs.map +1 -1
  277. package/fesm2022/tabs.mjs +40 -40
  278. package/fesm2022/tabs.mjs.map +1 -1
  279. package/fesm2022/toolbar.mjs +10 -10
  280. package/fesm2022/toolbar.mjs.map +1 -1
  281. package/fesm2022/tooltip.mjs +10 -10
  282. package/fesm2022/tooltip.mjs.map +1 -1
  283. package/fesm2022/tree.mjs +25 -25
  284. package/fesm2022/tree.mjs.map +1 -1
  285. package/form-field/_form-field-theme.scss +31 -14
  286. package/icon/_icon-theme.scss +2 -2
  287. package/package.json +7 -7
  288. package/paginator/_paginator-theme.scss +10 -16
  289. package/prebuilt-themes/deeppurple-amber.css +1 -1
  290. package/prebuilt-themes/indigo-pink.css +1 -1
  291. package/prebuilt-themes/pink-bluegrey.css +1 -1
  292. package/prebuilt-themes/purple-green.css +1 -1
  293. package/progress-bar/_progress-bar-theme.scss +27 -9
  294. package/progress-spinner/_progress-spinner-theme.scss +38 -17
  295. package/radio/_radio-theme.scss +34 -18
  296. package/schematics/ng-add/index.js +2 -2
  297. package/schematics/ng-add/index.mjs +2 -2
  298. package/schematics/ng-generate/mdc-migration/index_bundled.js +163 -122
  299. package/schematics/ng-generate/mdc-migration/index_bundled.js.map +4 -4
  300. package/select/_select-theme.scss +24 -10
  301. package/slide-toggle/_slide-toggle-theme.scss +29 -9
  302. package/slider/_slider-theme.scss +28 -11
  303. package/stepper/_stepper-theme.scss +28 -7
  304. package/tabs/_tabs-theme.scss +32 -14
@@ -6900,6 +6900,12 @@ var ChangeDetectionStrategy;
6900
6900
  ChangeDetectionStrategy2[ChangeDetectionStrategy2["OnPush"] = 0] = "OnPush";
6901
6901
  ChangeDetectionStrategy2[ChangeDetectionStrategy2["Default"] = 1] = "Default";
6902
6902
  })(ChangeDetectionStrategy || (ChangeDetectionStrategy = {}));
6903
+ var InputFlags;
6904
+ (function(InputFlags2) {
6905
+ InputFlags2[InputFlags2["None"] = 0] = "None";
6906
+ InputFlags2[InputFlags2["SignalBased"] = 1] = "SignalBased";
6907
+ InputFlags2[InputFlags2["HasDecoratorInputTransform"] = 2] = "HasDecoratorInputTransform";
6908
+ })(InputFlags || (InputFlags = {}));
6903
6909
  var CUSTOM_ELEMENTS_SCHEMA = {
6904
6910
  name: "custom-elements"
6905
6911
  };
@@ -7256,12 +7262,13 @@ var BinaryOperator;
7256
7262
  BinaryOperator2[BinaryOperator2["Modulo"] = 8] = "Modulo";
7257
7263
  BinaryOperator2[BinaryOperator2["And"] = 9] = "And";
7258
7264
  BinaryOperator2[BinaryOperator2["Or"] = 10] = "Or";
7259
- BinaryOperator2[BinaryOperator2["BitwiseAnd"] = 11] = "BitwiseAnd";
7260
- BinaryOperator2[BinaryOperator2["Lower"] = 12] = "Lower";
7261
- BinaryOperator2[BinaryOperator2["LowerEquals"] = 13] = "LowerEquals";
7262
- BinaryOperator2[BinaryOperator2["Bigger"] = 14] = "Bigger";
7263
- BinaryOperator2[BinaryOperator2["BiggerEquals"] = 15] = "BiggerEquals";
7264
- BinaryOperator2[BinaryOperator2["NullishCoalesce"] = 16] = "NullishCoalesce";
7265
+ BinaryOperator2[BinaryOperator2["BitwiseOr"] = 11] = "BitwiseOr";
7266
+ BinaryOperator2[BinaryOperator2["BitwiseAnd"] = 12] = "BitwiseAnd";
7267
+ BinaryOperator2[BinaryOperator2["Lower"] = 13] = "Lower";
7268
+ BinaryOperator2[BinaryOperator2["LowerEquals"] = 14] = "LowerEquals";
7269
+ BinaryOperator2[BinaryOperator2["Bigger"] = 15] = "Bigger";
7270
+ BinaryOperator2[BinaryOperator2["BiggerEquals"] = 16] = "BiggerEquals";
7271
+ BinaryOperator2[BinaryOperator2["NullishCoalesce"] = 17] = "NullishCoalesce";
7265
7272
  })(BinaryOperator || (BinaryOperator = {}));
7266
7273
  function nullSafeIsEquivalent(base, other) {
7267
7274
  if (base == null || other == null) {
@@ -7334,6 +7341,9 @@ var Expression = class {
7334
7341
  and(rhs, sourceSpan) {
7335
7342
  return new BinaryOperatorExpr(BinaryOperator.And, this, rhs, null, sourceSpan);
7336
7343
  }
7344
+ bitwiseOr(rhs, sourceSpan, parens = true) {
7345
+ return new BinaryOperatorExpr(BinaryOperator.BitwiseOr, this, rhs, null, sourceSpan, parens);
7346
+ }
7337
7347
  bitwiseAnd(rhs, sourceSpan, parens = true) {
7338
7348
  return new BinaryOperatorExpr(BinaryOperator.BitwiseAnd, this, rhs, null, sourceSpan, parens);
7339
7349
  }
@@ -8925,6 +8935,12 @@ var Identifiers = _Identifiers;
8925
8935
  moduleName: CORE
8926
8936
  };
8927
8937
  })();
8938
+ (() => {
8939
+ _Identifiers.InputFlags = {
8940
+ name: "\u0275\u0275InputFlags",
8941
+ moduleName: CORE
8942
+ };
8943
+ })();
8928
8944
  (() => {
8929
8945
  _Identifiers.sanitizeHtml = { name: "\u0275\u0275sanitizeHtml", moduleName: CORE };
8930
8946
  })();
@@ -9518,6 +9534,9 @@ var AbstractEmitterVisitor = class {
9518
9534
  case BinaryOperator.And:
9519
9535
  opStr = "&&";
9520
9536
  break;
9537
+ case BinaryOperator.BitwiseOr:
9538
+ opStr = "|";
9539
+ break;
9521
9540
  case BinaryOperator.BitwiseAnd:
9522
9541
  opStr = "&";
9523
9542
  break;
@@ -10626,7 +10645,7 @@ function asLiteral(value) {
10626
10645
  }
10627
10646
  return literal(value, INFERRED_TYPE);
10628
10647
  }
10629
- function conditionallyCreateDirectiveBindingLiteral(map, keepDeclared) {
10648
+ function conditionallyCreateDirectiveBindingLiteral(map, forInputs) {
10630
10649
  const keys = Object.getOwnPropertyNames(map);
10631
10650
  if (keys.length === 0) {
10632
10651
  return null;
@@ -10646,12 +10665,25 @@ function conditionallyCreateDirectiveBindingLiteral(map, keepDeclared) {
10646
10665
  minifiedName = key;
10647
10666
  declaredName = value.classPropertyName;
10648
10667
  publicName = value.bindingPropertyName;
10649
- if (keepDeclared && (publicName !== declaredName || value.transformFunction != null)) {
10650
- const expressionKeys = [asLiteral(publicName), asLiteral(declaredName)];
10651
- if (value.transformFunction != null) {
10652
- expressionKeys.push(value.transformFunction);
10668
+ const differentDeclaringName = publicName !== declaredName;
10669
+ const hasDecoratorInputTransform = value.transformFunction !== null;
10670
+ let flags = null;
10671
+ if (value.isSignal) {
10672
+ flags = bitwiseOrInputFlagsExpr(InputFlags.SignalBased, flags);
10673
+ }
10674
+ if (hasDecoratorInputTransform) {
10675
+ flags = bitwiseOrInputFlagsExpr(InputFlags.HasDecoratorInputTransform, flags);
10676
+ }
10677
+ if (forInputs && (differentDeclaringName || hasDecoratorInputTransform || flags !== null)) {
10678
+ const flagsExpr = flags != null ? flags : importExpr(Identifiers.InputFlags).prop(InputFlags[InputFlags.None]);
10679
+ const result = [flagsExpr, asLiteral(publicName)];
10680
+ if (differentDeclaringName || hasDecoratorInputTransform) {
10681
+ result.push(asLiteral(declaredName));
10682
+ if (hasDecoratorInputTransform) {
10683
+ result.push(value.transformFunction);
10684
+ }
10653
10685
  }
10654
- expressionValue = literalArr(expressionKeys);
10686
+ expressionValue = literalArr(result);
10655
10687
  } else {
10656
10688
  expressionValue = asLiteral(publicName);
10657
10689
  }
@@ -10663,6 +10695,15 @@ function conditionallyCreateDirectiveBindingLiteral(map, keepDeclared) {
10663
10695
  };
10664
10696
  }));
10665
10697
  }
10698
+ function getInputFlagExpr(flag) {
10699
+ return importExpr(Identifiers.InputFlags).prop(InputFlags[flag]);
10700
+ }
10701
+ function bitwiseOrInputFlagsExpr(flag, expr) {
10702
+ if (expr === null) {
10703
+ return getInputFlagExpr(flag);
10704
+ }
10705
+ return getInputFlagExpr(flag).bitwiseOr(expr);
10706
+ }
10666
10707
  function trimTrailingNulls(parameters) {
10667
10708
  while (isNull(parameters[parameters.length - 1])) {
10668
10709
  parameters.pop();
@@ -13502,13 +13543,6 @@ var DeferTriggerKind;
13502
13543
  DeferTriggerKind2[DeferTriggerKind2["Interaction"] = 4] = "Interaction";
13503
13544
  DeferTriggerKind2[DeferTriggerKind2["Viewport"] = 5] = "Viewport";
13504
13545
  })(DeferTriggerKind || (DeferTriggerKind = {}));
13505
- var DerivedRepeaterVarIdentity;
13506
- (function(DerivedRepeaterVarIdentity2) {
13507
- DerivedRepeaterVarIdentity2[DerivedRepeaterVarIdentity2["First"] = 0] = "First";
13508
- DerivedRepeaterVarIdentity2[DerivedRepeaterVarIdentity2["Last"] = 1] = "Last";
13509
- DerivedRepeaterVarIdentity2[DerivedRepeaterVarIdentity2["Even"] = 2] = "Even";
13510
- DerivedRepeaterVarIdentity2[DerivedRepeaterVarIdentity2["Odd"] = 3] = "Odd";
13511
- })(DerivedRepeaterVarIdentity || (DerivedRepeaterVarIdentity = {}));
13512
13546
  var I18nContextKind;
13513
13547
  (function(I18nContextKind2) {
13514
13548
  I18nContextKind2[I18nContextKind2["RootI18n"] = 0] = "RootI18n";
@@ -13657,10 +13691,11 @@ function createClassMapOp(xref, expression, sourceSpan) {
13657
13691
  sourceSpan
13658
13692
  }, TRAIT_DEPENDS_ON_SLOT_CONTEXT), TRAIT_CONSUMES_VARS), NEW_OP);
13659
13693
  }
13660
- function createAttributeOp(target, name, expression, securityContext, isTextAttribute, isStructuralTemplateAttribute, templateKind, i18nMessage, sourceSpan) {
13694
+ function createAttributeOp(target, namespace, name, expression, securityContext, isTextAttribute, isStructuralTemplateAttribute, templateKind, i18nMessage, sourceSpan) {
13661
13695
  return __spreadValues(__spreadValues(__spreadValues({
13662
13696
  kind: OpKind.Attribute,
13663
13697
  target,
13698
+ namespace,
13664
13699
  name,
13665
13700
  expression,
13666
13701
  securityContext,
@@ -14313,27 +14348,6 @@ var ConditionalCaseExpr = class extends ExpressionBase {
14313
14348
  }
14314
14349
  }
14315
14350
  };
14316
- var DerivedRepeaterVarExpr = class extends ExpressionBase {
14317
- constructor(xref, identity) {
14318
- super();
14319
- this.xref = xref;
14320
- this.identity = identity;
14321
- this.kind = ExpressionKind.DerivedRepeaterVar;
14322
- }
14323
- transformInternalExpressions(transform2, flags) {
14324
- }
14325
- visitExpression(visitor, context) {
14326
- }
14327
- isEquivalent(e) {
14328
- return e instanceof DerivedRepeaterVarExpr && e.identity === this.identity && e.xref === this.xref;
14329
- }
14330
- isConstant() {
14331
- return false;
14332
- }
14333
- clone() {
14334
- return new DerivedRepeaterVarExpr(this.xref, this.identity);
14335
- }
14336
- };
14337
14351
  var ConstCollectedExpr = class extends ExpressionBase {
14338
14352
  constructor(expr) {
14339
14353
  super();
@@ -14933,11 +14947,12 @@ function createProjectionOp(xref, selector, i18nPlaceholder, sourceSpan) {
14933
14947
  sourceSpan
14934
14948
  }, NEW_OP), TRAIT_CONSUMES_SLOT);
14935
14949
  }
14936
- function createExtractedAttributeOp(target, bindingKind, name, expression, i18nContext, i18nMessage, securityContext) {
14950
+ function createExtractedAttributeOp(target, bindingKind, namespace, name, expression, i18nContext, i18nMessage, securityContext) {
14937
14951
  return __spreadValues({
14938
14952
  kind: OpKind.ExtractedAttribute,
14939
14953
  target,
14940
14954
  bindingKind,
14955
+ namespace,
14941
14956
  name,
14942
14957
  expression,
14943
14958
  i18nContext,
@@ -15316,6 +15331,7 @@ function extractAttributes(job) {
15316
15331
  createExtractedAttributeOp(
15317
15332
  op.target,
15318
15333
  bindingKind,
15334
+ null,
15319
15335
  op.name,
15320
15336
  null,
15321
15337
  null,
@@ -15332,6 +15348,7 @@ function extractAttributes(job) {
15332
15348
  OpList.insertBefore(createExtractedAttributeOp(
15333
15349
  op.target,
15334
15350
  BindingKind.Property,
15351
+ null,
15335
15352
  op.name,
15336
15353
  null,
15337
15354
  null,
@@ -15345,6 +15362,7 @@ function extractAttributes(job) {
15345
15362
  const extractedAttributeOp = createExtractedAttributeOp(
15346
15363
  op.target,
15347
15364
  BindingKind.Property,
15365
+ null,
15348
15366
  op.name,
15349
15367
  null,
15350
15368
  null,
@@ -15381,7 +15399,7 @@ function extractAttributeOp(unit, op, elements) {
15381
15399
  extractable && (extractable = op.isTextAttribute);
15382
15400
  }
15383
15401
  if (extractable) {
15384
- const extractedAttributeOp = createExtractedAttributeOp(op.target, op.isStructuralTemplateAttribute ? BindingKind.Template : BindingKind.Attribute, op.name, op.expression, op.i18nContext, op.i18nMessage, op.securityContext);
15402
+ const extractedAttributeOp = createExtractedAttributeOp(op.target, op.isStructuralTemplateAttribute ? BindingKind.Template : BindingKind.Attribute, op.namespace, op.name, op.expression, op.i18nContext, op.i18nMessage, op.securityContext);
15385
15403
  if (unit.job.kind === CompilationJobKind.Host) {
15386
15404
  unit.create.push(extractedAttributeOp);
15387
15405
  } else {
@@ -15420,7 +15438,8 @@ function specializeBindings(job) {
15420
15438
  const target = lookupElement$1(elements, op.target);
15421
15439
  target.nonBindable = true;
15422
15440
  } else {
15423
- OpList.replace(op, createAttributeOp(op.target, op.name, op.expression, op.securityContext, op.isTextAttribute, op.isStructuralTemplateAttribute, op.templateKind, op.i18nMessage, op.sourceSpan));
15441
+ const [namespace, name] = splitNsName(op.name);
15442
+ OpList.replace(op, createAttributeOp(op.target, namespace, name, op.expression, op.securityContext, op.isTextAttribute, op.isStructuralTemplateAttribute, op.templateKind, op.i18nMessage, op.sourceSpan));
15424
15443
  }
15425
15444
  break;
15426
15445
  case BindingKind.Property:
@@ -15552,6 +15571,7 @@ var BINARY_OPERATORS = /* @__PURE__ */ new Map([
15552
15571
  ["&&", BinaryOperator.And],
15553
15572
  [">", BinaryOperator.Bigger],
15554
15573
  [">=", BinaryOperator.BiggerEquals],
15574
+ ["|", BinaryOperator.BitwiseOr],
15555
15575
  ["&", BinaryOperator.BitwiseAnd],
15556
15576
  ["/", BinaryOperator.Divide],
15557
15577
  ["==", BinaryOperator.Equals],
@@ -15603,7 +15623,7 @@ function collectElementConsts(job) {
15603
15623
  if (op.kind === OpKind.ExtractedAttribute) {
15604
15624
  const attributes = allElementAttributes.get(op.target) || new ElementAttributes(job.compatibility);
15605
15625
  allElementAttributes.set(op.target, attributes);
15606
- attributes.add(op.bindingKind, op.name, op.expression, op.trustedValueFn);
15626
+ attributes.add(op.bindingKind, op.name, op.expression, op.namespace, op.trustedValueFn);
15607
15627
  OpList.remove(op);
15608
15628
  }
15609
15629
  }
@@ -15691,7 +15711,7 @@ var ElementAttributes = class {
15691
15711
  nameToValue.add(name);
15692
15712
  return false;
15693
15713
  }
15694
- add(kind, name, value, trustedValueFn) {
15714
+ add(kind, name, value, namespace, trustedValueFn) {
15695
15715
  var _a2;
15696
15716
  const allowDuplicates = this.compatibility === CompatibilityMode.TemplateDefinitionBuilder && (kind === BindingKind.Attribute || kind === BindingKind.ClassName || kind === BindingKind.StyleProperty);
15697
15717
  if (!allowDuplicates && this.isKnown(kind, name, value)) {
@@ -15704,7 +15724,7 @@ var ElementAttributes = class {
15704
15724
  this.projectAs = value.value.toString();
15705
15725
  }
15706
15726
  const array = this.arrayFor(kind);
15707
- array.push(...getAttributeNameLiterals$1(name));
15727
+ array.push(...getAttributeNameLiterals$1(namespace, name));
15708
15728
  if (kind === BindingKind.Attribute || kind === BindingKind.StyleProperty) {
15709
15729
  if (value === null) {
15710
15730
  throw Error("Attribute, i18n attribute, & style element attributes must have a value");
@@ -15726,15 +15746,10 @@ var ElementAttributes = class {
15726
15746
  return this.byKind.get(kind);
15727
15747
  }
15728
15748
  };
15729
- function getAttributeNameLiterals$1(name) {
15730
- const [attributeNamespace, attributeName] = splitNsName(name, false);
15731
- const nameLiteral = literal(attributeName);
15732
- if (attributeNamespace) {
15733
- return [
15734
- literal(0),
15735
- literal(attributeNamespace),
15736
- nameLiteral
15737
- ];
15749
+ function getAttributeNameLiterals$1(namespace, name) {
15750
+ const nameLiteral = literal(name);
15751
+ if (namespace) {
15752
+ return [literal(0), literal(namespace), nameLiteral];
15738
15753
  }
15739
15754
  return [nameLiteral];
15740
15755
  }
@@ -15894,7 +15909,7 @@ function createI18nContexts(job) {
15894
15909
  throw Error("AssertionError: Unexpected ICU outside of an i18n block.");
15895
15910
  }
15896
15911
  if (op.message.id !== currentI18nOp.message.id) {
15897
- const contextOp = createI18nContextOp(I18nContextKind.Icu, job.allocateXrefId(), currentI18nOp.xref, op.message, null);
15912
+ const contextOp = createI18nContextOp(I18nContextKind.Icu, job.allocateXrefId(), currentI18nOp.root, op.message, null);
15898
15913
  unit.create.push(contextOp);
15899
15914
  op.context = contextOp.xref;
15900
15915
  } else {
@@ -16497,7 +16512,7 @@ function parseHostStyleProperties(job) {
16497
16512
  if (op.name.startsWith(STYLE_DOT)) {
16498
16513
  op.bindingKind = BindingKind.StyleProperty;
16499
16514
  op.name = op.name.substring(STYLE_DOT.length);
16500
- if (isCssCustomProperty$1(op.name)) {
16515
+ if (!isCssCustomProperty$1(op.name)) {
16501
16516
  op.name = hyphenate$1(op.name);
16502
16517
  }
16503
16518
  const { property: property2, suffix } = parseProperty$1(op.name);
@@ -23087,13 +23102,13 @@ function parseExtractedStyles(job) {
23087
23102
  if (op.name === "style") {
23088
23103
  const parsedStyles = parse(op.expression.value);
23089
23104
  for (let i = 0; i < parsedStyles.length - 1; i += 2) {
23090
- OpList.insertBefore(createExtractedAttributeOp(op.target, BindingKind.StyleProperty, parsedStyles[i], literal(parsedStyles[i + 1]), null, null, SecurityContext.STYLE), op);
23105
+ OpList.insertBefore(createExtractedAttributeOp(op.target, BindingKind.StyleProperty, null, parsedStyles[i], literal(parsedStyles[i + 1]), null, null, SecurityContext.STYLE), op);
23091
23106
  }
23092
23107
  OpList.remove(op);
23093
23108
  } else if (op.name === "class") {
23094
23109
  const parsedClasses = op.expression.value.trim().split(/\s+/g);
23095
23110
  for (const parsedClass of parsedClasses) {
23096
- OpList.insertBefore(createExtractedAttributeOp(op.target, BindingKind.ClassName, parsedClass, null, null, null, SecurityContext.NONE), op);
23111
+ OpList.insertBefore(createExtractedAttributeOp(op.target, BindingKind.ClassName, null, parsedClass, null, null, null, SecurityContext.NONE), op);
23097
23112
  }
23098
23113
  OpList.remove(op);
23099
23114
  }
@@ -23405,9 +23420,7 @@ function namespaceMath() {
23405
23420
  return call(Identifiers.namespaceMathML, [], null);
23406
23421
  }
23407
23422
  function advance(delta, sourceSpan) {
23408
- return call(Identifiers.advance, [
23409
- literal(delta)
23410
- ], sourceSpan);
23423
+ return call(Identifiers.advance, delta > 1 ? [literal(delta)] : [], sourceSpan);
23411
23424
  }
23412
23425
  function reference(slot) {
23413
23426
  return importExpr(Identifiers.reference).callFn([
@@ -23551,10 +23564,13 @@ function property(name, expression, sanitizer, sourceSpan) {
23551
23564
  }
23552
23565
  return call(Identifiers.property, args, sourceSpan);
23553
23566
  }
23554
- function attribute(name, expression, sanitizer) {
23567
+ function attribute(name, expression, sanitizer, namespace) {
23555
23568
  const args = [literal(name), expression];
23556
- if (sanitizer !== null) {
23557
- args.push(sanitizer);
23569
+ if (sanitizer !== null || namespace !== null) {
23570
+ args.push(sanitizer != null ? sanitizer : literal(null));
23571
+ }
23572
+ if (namespace !== null) {
23573
+ args.push(literal(namespace));
23558
23574
  }
23559
23575
  return call(Identifiers.attribute, args, null);
23560
23576
  }
@@ -24065,7 +24081,7 @@ function reifyUpdateOperations(_unit, ops) {
24065
24081
  if (op.expression instanceof Interpolation) {
24066
24082
  OpList.replace(op, attributeInterpolate(op.name, op.expression.strings, op.expression.expressions, op.sanitizer, op.sourceSpan));
24067
24083
  } else {
24068
- OpList.replace(op, attribute(op.name, op.expression, op.sanitizer));
24084
+ OpList.replace(op, attribute(op.name, op.expression, op.sanitizer, op.namespace));
24069
24085
  }
24070
24086
  break;
24071
24087
  case OpKind.HostProperty:
@@ -24227,36 +24243,6 @@ function removeUnusedI18nAttributesOps(job) {
24227
24243
  }
24228
24244
  }
24229
24245
  }
24230
- function generateRepeaterDerivedVars(job) {
24231
- const repeaters = /* @__PURE__ */ new Map();
24232
- for (const unit of job.units) {
24233
- for (const op of unit.ops()) {
24234
- if (op.kind === OpKind.RepeaterCreate) {
24235
- repeaters.set(op.xref, op);
24236
- }
24237
- }
24238
- }
24239
- for (const unit of job.units) {
24240
- for (const op of unit.ops()) {
24241
- transformExpressionsInOp(op, (expr) => {
24242
- if (!(expr instanceof DerivedRepeaterVarExpr)) {
24243
- return expr;
24244
- }
24245
- const repeaterOp = repeaters.get(expr.xref);
24246
- switch (expr.identity) {
24247
- case DerivedRepeaterVarIdentity.First:
24248
- return new BinaryOperatorExpr(BinaryOperator.Identical, new LexicalReadExpr(repeaterOp.varNames.$index), literal(0));
24249
- case DerivedRepeaterVarIdentity.Last:
24250
- return new BinaryOperatorExpr(BinaryOperator.Identical, new LexicalReadExpr(repeaterOp.varNames.$index), new BinaryOperatorExpr(BinaryOperator.Minus, new LexicalReadExpr(repeaterOp.varNames.$count), literal(1)));
24251
- case DerivedRepeaterVarIdentity.Even:
24252
- return new BinaryOperatorExpr(BinaryOperator.Identical, new BinaryOperatorExpr(BinaryOperator.Modulo, new LexicalReadExpr(repeaterOp.varNames.$index), literal(2)), literal(0));
24253
- case DerivedRepeaterVarIdentity.Odd:
24254
- return new BinaryOperatorExpr(BinaryOperator.NotIdentical, new BinaryOperatorExpr(BinaryOperator.Modulo, new LexicalReadExpr(repeaterOp.varNames.$index), literal(2)), literal(0));
24255
- }
24256
- }, VisitorContextFlag.None);
24257
- }
24258
- }
24259
- }
24260
24246
  function resolveContexts(job) {
24261
24247
  for (const unit of job.units) {
24262
24248
  processLexicalScope$1(unit, unit.create);
@@ -25330,7 +25316,6 @@ var phases = [
25330
25316
  { kind: CompilationJobKind.Tmpl, fn: saveAndRestoreView },
25331
25317
  { kind: CompilationJobKind.Both, fn: deleteAnyCasts },
25332
25318
  { kind: CompilationJobKind.Both, fn: resolveDollarEvent },
25333
- { kind: CompilationJobKind.Tmpl, fn: generateRepeaterDerivedVars },
25334
25319
  { kind: CompilationJobKind.Tmpl, fn: generateTrackVariables },
25335
25320
  { kind: CompilationJobKind.Both, fn: resolveNames },
25336
25321
  { kind: CompilationJobKind.Tmpl, fn: resolveDeferTargetNames },
@@ -25679,6 +25664,9 @@ function ingestIfBlock(unit, ifBlock) {
25679
25664
  }
25680
25665
  function ingestSwitchBlock(unit, switchBlock) {
25681
25666
  var _a2;
25667
+ if (switchBlock.cases.length === 0) {
25668
+ return;
25669
+ }
25682
25670
  let firstXref = null;
25683
25671
  let firstSlotHandle = null;
25684
25672
  let conditions = [];
@@ -25823,21 +25811,37 @@ function ingestIcu(unit, icu) {
25823
25811
  function ingestForBlock(unit, forBlock) {
25824
25812
  var _a2, _b2, _c2;
25825
25813
  const repeaterView = unit.job.allocateView(unit.xref);
25826
- const createRepeaterAlias = (ident, repeaterVar) => {
25827
- repeaterView.aliases.add({
25828
- kind: SemanticVariableKind.Alias,
25829
- name: null,
25830
- identifier: ident,
25831
- expression: new DerivedRepeaterVarExpr(repeaterView.xref, repeaterVar)
25832
- });
25833
- };
25834
25814
  repeaterView.contextVariables.set(forBlock.item.name, forBlock.item.value);
25835
25815
  repeaterView.contextVariables.set(forBlock.contextVariables.$index.name, forBlock.contextVariables.$index.value);
25836
25816
  repeaterView.contextVariables.set(forBlock.contextVariables.$count.name, forBlock.contextVariables.$count.value);
25837
- createRepeaterAlias(forBlock.contextVariables.$first.name, DerivedRepeaterVarIdentity.First);
25838
- createRepeaterAlias(forBlock.contextVariables.$last.name, DerivedRepeaterVarIdentity.Last);
25839
- createRepeaterAlias(forBlock.contextVariables.$even.name, DerivedRepeaterVarIdentity.Even);
25840
- createRepeaterAlias(forBlock.contextVariables.$odd.name, DerivedRepeaterVarIdentity.Odd);
25817
+ const indexName = `\u0275${forBlock.contextVariables.$index.name}_${repeaterView.xref}`;
25818
+ const countName = `\u0275${forBlock.contextVariables.$count.name}_${repeaterView.xref}`;
25819
+ repeaterView.contextVariables.set(indexName, forBlock.contextVariables.$index.value);
25820
+ repeaterView.contextVariables.set(countName, forBlock.contextVariables.$count.value);
25821
+ repeaterView.aliases.add({
25822
+ kind: SemanticVariableKind.Alias,
25823
+ name: null,
25824
+ identifier: forBlock.contextVariables.$first.name,
25825
+ expression: new LexicalReadExpr(indexName).identical(literal(0))
25826
+ });
25827
+ repeaterView.aliases.add({
25828
+ kind: SemanticVariableKind.Alias,
25829
+ name: null,
25830
+ identifier: forBlock.contextVariables.$last.name,
25831
+ expression: new LexicalReadExpr(indexName).identical(new LexicalReadExpr(countName).minus(literal(1)))
25832
+ });
25833
+ repeaterView.aliases.add({
25834
+ kind: SemanticVariableKind.Alias,
25835
+ name: null,
25836
+ identifier: forBlock.contextVariables.$even.name,
25837
+ expression: new LexicalReadExpr(indexName).modulo(literal(2)).identical(literal(0))
25838
+ });
25839
+ repeaterView.aliases.add({
25840
+ kind: SemanticVariableKind.Alias,
25841
+ name: null,
25842
+ identifier: forBlock.contextVariables.$odd.name,
25843
+ expression: new LexicalReadExpr(indexName).modulo(literal(2)).notIdentical(literal(0))
25844
+ });
25841
25845
  const sourceSpan = convertSourceSpan(forBlock.trackBy.span, forBlock.sourceSpan);
25842
25846
  const track = convertAst(forBlock.trackBy, unit.job, sourceSpan);
25843
25847
  ingestNodes(repeaterView, forBlock.children);
@@ -26039,7 +26043,7 @@ function ingestTemplateBindings(unit, op, template2, templateKind) {
26039
26043
  }
26040
26044
  if (templateKind === TemplateKind.Structural && output.type !== 1) {
26041
26045
  const securityContext = domSchema.securityContext(NG_TEMPLATE_TAG_NAME$1, output.name, false);
26042
- unit.create.push(createExtractedAttributeOp(op.xref, BindingKind.Property, output.name, null, null, null, securityContext));
26046
+ unit.create.push(createExtractedAttributeOp(op.xref, BindingKind.Property, null, output.name, null, null, null, securityContext));
26043
26047
  }
26044
26048
  }
26045
26049
  if (bindings.some((b) => b == null ? void 0 : b.i18nMessage) !== null) {
@@ -26050,7 +26054,7 @@ function createTemplateBinding(view, xref, type, name, value, unit, securityCont
26050
26054
  const isTextBinding = typeof value === "string";
26051
26055
  if (templateKind === TemplateKind.Structural) {
26052
26056
  if (!isStructuralTemplateAttribute && (type === 0 || type === 2 || type === 3)) {
26053
- return createExtractedAttributeOp(xref, BindingKind.Property, name, null, null, i18nMessage, securityContext);
26057
+ return createExtractedAttributeOp(xref, BindingKind.Property, null, name, null, null, i18nMessage, securityContext);
26054
26058
  }
26055
26059
  if (!isTextBinding && (type === 1 || type === 4)) {
26056
26060
  return null;
@@ -28252,7 +28256,7 @@ var TemplateData = class {
28252
28256
  }
28253
28257
  };
28254
28258
  var TemplateDefinitionBuilder = class {
28255
- constructor(constantPool, parentBindingScope, level = 0, contextName, i18nContext, templateIndex, templateName, _namespace, relativeContextFilePath, i18nUseExternalIds, deferBlocks, elementLocations, _constants = createComponentDefConsts()) {
28259
+ constructor(constantPool, parentBindingScope, level = 0, contextName, i18nContext, templateIndex, templateName, _namespace, relativeContextFilePath, i18nUseExternalIds, deferBlocks, elementLocations, allDeferrableDepsFn, _constants = createComponentDefConsts()) {
28256
28260
  this.constantPool = constantPool;
28257
28261
  this.level = level;
28258
28262
  this.contextName = contextName;
@@ -28263,6 +28267,7 @@ var TemplateDefinitionBuilder = class {
28263
28267
  this.i18nUseExternalIds = i18nUseExternalIds;
28264
28268
  this.deferBlocks = deferBlocks;
28265
28269
  this.elementLocations = elementLocations;
28270
+ this.allDeferrableDepsFn = allDeferrableDepsFn;
28266
28271
  this._constants = _constants;
28267
28272
  this._dataIndex = 0;
28268
28273
  this._bindingContext = 0;
@@ -28738,7 +28743,7 @@ var TemplateDefinitionBuilder = class {
28738
28743
  }
28739
28744
  const contextName = `${this.contextName}${contextNameSuffix}_${index2}`;
28740
28745
  const name = `${contextName}_Template`;
28741
- const visitor = new TemplateDefinitionBuilder(this.constantPool, this._bindingScope, this.level + 1, contextName, this.i18n, index2, name, this._namespace, this.fileBasedI18nSuffix, this.i18nUseExternalIds, this.deferBlocks, this.elementLocations, this._constants);
28746
+ const visitor = new TemplateDefinitionBuilder(this.constantPool, this._bindingScope, this.level + 1, contextName, this.i18n, index2, name, this._namespace, this.fileBasedI18nSuffix, this.i18nUseExternalIds, this.deferBlocks, this.elementLocations, this.allDeferrableDepsFn, this._constants);
28742
28747
  this._nestedTemplateFns.push(() => {
28743
28748
  const templateFunctionExpr = visitor.buildTemplateFunction(children, variables, this._ngContentReservedSlots.length + this._ngContentSelectorsOffset, i18nMeta, variableAliases);
28744
28749
  this.constantPool.statements.push(templateFunctionExpr.toDeclStmt(name));
@@ -28883,6 +28888,9 @@ var TemplateDefinitionBuilder = class {
28883
28888
  this.updateInstructionWithAdvance(containerIndex, block.branches[0].sourceSpan, Identifiers.conditional, paramsCallback);
28884
28889
  }
28885
28890
  visitSwitchBlock(block) {
28891
+ if (block.cases.length === 0) {
28892
+ return;
28893
+ }
28886
28894
  const caseData = block.cases.map((currentCase) => {
28887
28895
  const index2 = this.createEmbeddedTemplateFn(null, currentCase.children, "_Case", currentCase.sourceSpan, void 0, void 0, void 0, currentCase.i18n);
28888
28896
  const expression = currentCase.expression === null ? null : currentCase.expression.visit(this._valueConverter);
@@ -28907,6 +28915,7 @@ var TemplateDefinitionBuilder = class {
28907
28915
  });
28908
28916
  }
28909
28917
  visitDeferredBlock(deferred) {
28918
+ var _a2;
28910
28919
  const { loading, placeholder, error: error2, triggers, prefetchTriggers } = deferred;
28911
28920
  const metadata = this.deferBlocks.get(deferred);
28912
28921
  if (!metadata) {
@@ -28923,7 +28932,7 @@ var TemplateDefinitionBuilder = class {
28923
28932
  this.creationInstruction(deferred.sourceSpan, Identifiers.defer, trimTrailingNulls([
28924
28933
  literal(deferredIndex),
28925
28934
  literal(primaryTemplateIndex),
28926
- this.createDeferredDepsFunction(depsFnName, metadata),
28935
+ (_a2 = this.allDeferrableDepsFn) != null ? _a2 : this.createDeferredDepsFunction(depsFnName, metadata),
28927
28936
  literal(loadingIndex),
28928
28937
  literal(placeholderIndex),
28929
28938
  literal(errorIndex),
@@ -29210,7 +29219,7 @@ var TemplateDefinitionBuilder = class {
29210
29219
  if (delta < 1) {
29211
29220
  throw new Error("advance instruction can only go forwards");
29212
29221
  }
29213
- this.instructionFn(this._updateCodeFns, span, Identifiers.advance, [literal(delta)]);
29222
+ this.instructionFn(this._updateCodeFns, span, Identifiers.advance, delta > 1 ? [literal(delta)] : []);
29214
29223
  this._currentIndex = nodeIndex;
29215
29224
  }
29216
29225
  }
@@ -29935,6 +29944,17 @@ function compileDirectiveFromMetadata(meta, constantPool, bindingParser) {
29935
29944
  const type = createDirectiveType(meta);
29936
29945
  return { expression, type, statements: [] };
29937
29946
  }
29947
+ function createDeferredDepsFunction(constantPool, name, deps) {
29948
+ const dependencyExp = [];
29949
+ for (const [symbolName, importPath] of deps) {
29950
+ const innerFn = arrowFn([new FnParam("m", DYNAMIC_TYPE)], variable("m").prop(symbolName));
29951
+ const importExpr2 = new DynamicImportExpr(importPath).prop("then").callFn([innerFn]);
29952
+ dependencyExp.push(importExpr2);
29953
+ }
29954
+ const depsFnExpr = arrowFn([], literalArr(dependencyExp));
29955
+ constantPool.statements.push(depsFnExpr.toDeclStmt(name, StmtModifier.Final));
29956
+ return variable(name);
29957
+ }
29938
29958
  function compileComponentFromMetadata(meta, constantPool, bindingParser) {
29939
29959
  const definitionMap = baseDirectiveFields(meta, constantPool, bindingParser);
29940
29960
  addFeatures(definitionMap, meta);
@@ -29952,8 +29972,13 @@ function compileComponentFromMetadata(meta, constantPool, bindingParser) {
29952
29972
  const templateTypeName = meta.name;
29953
29973
  const templateName = templateTypeName ? `${templateTypeName}_Template` : null;
29954
29974
  if (!USE_TEMPLATE_PIPELINE) {
29975
+ let allDeferrableDepsFn = null;
29976
+ if (meta.deferBlocks.size > 0 && meta.deferrableTypes.size > 0 && meta.deferBlockDepsEmitMode === 1) {
29977
+ const fnName = `${templateTypeName}_DeferFn`;
29978
+ allDeferrableDepsFn = createDeferredDepsFunction(constantPool, fnName, meta.deferrableTypes);
29979
+ }
29955
29980
  const template2 = meta.template;
29956
- const templateBuilder = new TemplateDefinitionBuilder(constantPool, BindingScope.createRootScope(), 0, templateTypeName, null, null, templateName, Identifiers.namespaceHTML, meta.relativeContextFilePath, meta.i18nUseExternalIds, meta.deferBlocks, /* @__PURE__ */ new Map());
29981
+ const templateBuilder = new TemplateDefinitionBuilder(constantPool, BindingScope.createRootScope(), 0, templateTypeName, null, null, templateName, Identifiers.namespaceHTML, meta.relativeContextFilePath, meta.i18nUseExternalIds, meta.deferBlocks, /* @__PURE__ */ new Map(), allDeferrableDepsFn);
29957
29982
  const templateFunctionExpression = templateBuilder.buildTemplateFunction(template2.nodes, []);
29958
29983
  const ngContentSelectors = templateBuilder.getNgContentSelectors();
29959
29984
  if (ngContentSelectors) {
@@ -30484,7 +30509,7 @@ var R3TargetBinder = class {
30484
30509
  const scopedNodeEntities = extractScopedNodeEntities(scope);
30485
30510
  const { directives, eagerDirectives, bindings, references } = DirectiveBinder.apply(target.template, this.directiveMatcher);
30486
30511
  const { expressions, symbols, nestingLevel, usedPipes, eagerPipes, deferBlocks } = TemplateBinder.applyWithScope(target.template, scope);
30487
- return new R3BoundTarget(target, directives, eagerDirectives, bindings, references, expressions, symbols, nestingLevel, scopedNodeEntities, usedPipes, eagerPipes, deferBlocks);
30512
+ return new R3BoundTarget(target, directives, eagerDirectives, bindings, references, expressions, symbols, nestingLevel, scopedNodeEntities, usedPipes, eagerPipes, deferBlocks, scope);
30488
30513
  }
30489
30514
  };
30490
30515
  var Scope = class {
@@ -30492,6 +30517,7 @@ var Scope = class {
30492
30517
  this.parentScope = parentScope;
30493
30518
  this.rootNode = rootNode;
30494
30519
  this.namedEntities = /* @__PURE__ */ new Map();
30520
+ this.elementsInScope = /* @__PURE__ */ new Set();
30495
30521
  this.childScopes = /* @__PURE__ */ new Map();
30496
30522
  this.isDeferred = parentScope !== null && parentScope.isDeferred ? true : rootNode instanceof DeferredBlock;
30497
30523
  }
@@ -30525,6 +30551,7 @@ var Scope = class {
30525
30551
  visitElement(element2) {
30526
30552
  element2.references.forEach((node) => this.visitReference(node));
30527
30553
  element2.children.forEach((node) => node.visit(this));
30554
+ this.elementsInScope.add(element2);
30528
30555
  }
30529
30556
  visitTemplate(template2) {
30530
30557
  template2.references.forEach((node) => this.visitReference(node));
@@ -30934,7 +30961,7 @@ var TemplateBinder = class extends RecursiveAstVisitor {
30934
30961
  }
30935
30962
  };
30936
30963
  var R3BoundTarget = class {
30937
- constructor(target, directives, eagerDirectives, bindings, references, exprTargets, symbols, nestingLevel, scopedNodeEntities, usedPipes, eagerPipes, deferredBlocks) {
30964
+ constructor(target, directives, eagerDirectives, bindings, references, exprTargets, symbols, nestingLevel, scopedNodeEntities, usedPipes, eagerPipes, deferredBlocks, rootScope) {
30938
30965
  this.target = target;
30939
30966
  this.directives = directives;
30940
30967
  this.eagerDirectives = eagerDirectives;
@@ -30947,6 +30974,7 @@ var R3BoundTarget = class {
30947
30974
  this.usedPipes = usedPipes;
30948
30975
  this.eagerPipes = eagerPipes;
30949
30976
  this.deferredBlocks = deferredBlocks;
30977
+ this.rootScope = rootScope;
30950
30978
  }
30951
30979
  getEntitiesInScope(node) {
30952
30980
  var _a2;
@@ -31026,6 +31054,15 @@ var R3BoundTarget = class {
31026
31054
  }
31027
31055
  return null;
31028
31056
  }
31057
+ isDeferred(element2) {
31058
+ for (const deferBlock of this.deferredBlocks) {
31059
+ const scope = this.rootScope.childScopes.get(deferBlock);
31060
+ if (scope && scope.elementsInScope.has(element2)) {
31061
+ return true;
31062
+ }
31063
+ }
31064
+ return false;
31065
+ }
31029
31066
  findEntityInScope(rootNode, name) {
31030
31067
  const entities = this.getEntitiesInScope(rootNode);
31031
31068
  for (const entitity of entities) {
@@ -31199,7 +31236,9 @@ var CompilerFacadeImpl = class {
31199
31236
  declarations: facade.declarations.map(convertDeclarationFacadeToMetadata),
31200
31237
  declarationListEmitMode: 0,
31201
31238
  deferBlocks,
31239
+ deferrableTypes: /* @__PURE__ */ new Map(),
31202
31240
  deferrableDeclToImportDecl: /* @__PURE__ */ new Map(),
31241
+ deferBlockDepsEmitMode: 0,
31203
31242
  styles: [...facade.styles, ...template2.styles],
31204
31243
  encapsulation: facade.encapsulation,
31205
31244
  interpolation,
@@ -31292,7 +31331,7 @@ function convertDirectiveFacadeToMetadata(facade) {
31292
31331
  bindingPropertyName: ann.alias || field,
31293
31332
  classPropertyName: field,
31294
31333
  required: ann.required || false,
31295
- isSignal: false,
31334
+ isSignal: !!ann.isSignal,
31296
31335
  transformFunction: ann.transform != null ? new WrappedNodeExpr(ann.transform) : null
31297
31336
  };
31298
31337
  } else if (isOutput(ann)) {
@@ -31406,7 +31445,9 @@ function convertDeclareComponentFacadeToMetadata(decl2, typeSourceSpan, sourceMa
31406
31445
  viewProviders: decl2.viewProviders !== void 0 ? new WrappedNodeExpr(decl2.viewProviders) : null,
31407
31446
  animations: decl2.animations !== void 0 ? new WrappedNodeExpr(decl2.animations) : null,
31408
31447
  deferBlocks,
31448
+ deferrableTypes: /* @__PURE__ */ new Map(),
31409
31449
  deferrableDeclToImportDecl: /* @__PURE__ */ new Map(),
31450
+ deferBlockDepsEmitMode: 0,
31410
31451
  changeDetection: (_c2 = decl2.changeDetection) != null ? _c2 : ChangeDetectionStrategy.Default,
31411
31452
  encapsulation: (_d2 = decl2.encapsulation) != null ? _d2 : ViewEncapsulation.Emulated,
31412
31453
  interpolation,
@@ -31644,7 +31685,7 @@ function publishFacade(global) {
31644
31685
  const ng = global.ng || (global.ng = {});
31645
31686
  ng.\u0275compilerFacade = new CompilerFacadeImpl();
31646
31687
  }
31647
- var VERSION = new Version("17.1.0-next.5");
31688
+ var VERSION = new Version("17.1.1");
31648
31689
  var _VisitorMode;
31649
31690
  (function(_VisitorMode2) {
31650
31691
  _VisitorMode2[_VisitorMode2["Extract"] = 0] = "Extract";
@@ -33598,7 +33639,7 @@ ${[...componentsToMigrate].join("\n")}`);
33598
33639
  * found in the LICENSE file at https://angular.io/license
33599
33640
  */
33600
33641
  /**
33601
- * @license Angular v17.1.0-next.5
33642
+ * @license Angular v17.1.1
33602
33643
  * (c) 2010-2022 Google LLC. https://angular.io/
33603
33644
  * License: MIT
33604
33645
  */