@angular/material 17.0.0-rc.3 → 17.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/esm2022/autocomplete/autocomplete-origin.mjs +4 -4
  2. package/esm2022/autocomplete/autocomplete-trigger.mjs +4 -4
  3. package/esm2022/autocomplete/autocomplete.mjs +4 -4
  4. package/esm2022/autocomplete/module.mjs +5 -5
  5. package/esm2022/badge/badge-module.mjs +5 -5
  6. package/esm2022/badge/badge.mjs +4 -4
  7. package/esm2022/bottom-sheet/bottom-sheet-container.mjs +4 -4
  8. package/esm2022/bottom-sheet/bottom-sheet-module.mjs +5 -5
  9. package/esm2022/bottom-sheet/bottom-sheet.mjs +4 -4
  10. package/esm2022/button/button-base.mjs +7 -7
  11. package/esm2022/button/button.mjs +7 -7
  12. package/esm2022/button/fab.mjs +13 -13
  13. package/esm2022/button/icon-button.mjs +7 -7
  14. package/esm2022/button/module.mjs +5 -5
  15. package/esm2022/button-toggle/button-toggle-module.mjs +5 -5
  16. package/esm2022/button-toggle/button-toggle.mjs +7 -7
  17. package/esm2022/card/card.mjs +43 -43
  18. package/esm2022/card/module.mjs +5 -5
  19. package/esm2022/checkbox/checkbox-required-validator.mjs +4 -4
  20. package/esm2022/checkbox/checkbox.mjs +4 -4
  21. package/esm2022/checkbox/module.mjs +9 -9
  22. package/esm2022/chips/chip-action.mjs +4 -4
  23. package/esm2022/chips/chip-edit-input.mjs +4 -4
  24. package/esm2022/chips/chip-grid.mjs +4 -4
  25. package/esm2022/chips/chip-icons.mjs +10 -10
  26. package/esm2022/chips/chip-input.mjs +4 -4
  27. package/esm2022/chips/chip-listbox.mjs +4 -4
  28. package/esm2022/chips/chip-option.mjs +4 -4
  29. package/esm2022/chips/chip-row.mjs +4 -4
  30. package/esm2022/chips/chip-set.mjs +4 -4
  31. package/esm2022/chips/chip.mjs +4 -4
  32. package/esm2022/chips/module.mjs +5 -5
  33. package/esm2022/core/common-behaviors/common-module.mjs +5 -5
  34. package/esm2022/core/datetime/index.mjs +9 -9
  35. package/esm2022/core/datetime/native-date-adapter.mjs +4 -4
  36. package/esm2022/core/error/error-options.mjs +7 -7
  37. package/esm2022/core/line/line.mjs +8 -8
  38. package/esm2022/core/option/index.mjs +5 -5
  39. package/esm2022/core/option/optgroup.mjs +4 -4
  40. package/esm2022/core/option/option.mjs +4 -4
  41. package/esm2022/core/private/ripple-loader.mjs +4 -4
  42. package/esm2022/core/ripple/index.mjs +5 -5
  43. package/esm2022/core/ripple/ripple.mjs +4 -4
  44. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox-module.mjs +5 -5
  45. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +4 -4
  46. package/esm2022/core/version.mjs +1 -1
  47. package/esm2022/datepicker/calendar-body.mjs +4 -4
  48. package/esm2022/datepicker/calendar.mjs +7 -7
  49. package/esm2022/datepicker/date-range-input-parts.mjs +10 -10
  50. package/esm2022/datepicker/date-range-input.mjs +4 -4
  51. package/esm2022/datepicker/date-range-picker.mjs +4 -4
  52. package/esm2022/datepicker/date-range-selection-strategy.mjs +4 -4
  53. package/esm2022/datepicker/date-selection-model.mjs +10 -10
  54. package/esm2022/datepicker/datepicker-actions.mjs +10 -10
  55. package/esm2022/datepicker/datepicker-base.mjs +7 -7
  56. package/esm2022/datepicker/datepicker-input-base.mjs +4 -4
  57. package/esm2022/datepicker/datepicker-input.mjs +4 -4
  58. package/esm2022/datepicker/datepicker-intl.mjs +4 -4
  59. package/esm2022/datepicker/datepicker-module.mjs +5 -5
  60. package/esm2022/datepicker/datepicker-toggle.mjs +7 -7
  61. package/esm2022/datepicker/datepicker.mjs +4 -4
  62. package/esm2022/datepicker/month-view.mjs +4 -4
  63. package/esm2022/datepicker/multi-year-view.mjs +4 -4
  64. package/esm2022/datepicker/year-view.mjs +4 -4
  65. package/esm2022/dialog/dialog-container.mjs +4 -4
  66. package/esm2022/dialog/dialog-content-directives.mjs +13 -13
  67. package/esm2022/dialog/dialog.mjs +4 -4
  68. package/esm2022/dialog/module.mjs +5 -5
  69. package/esm2022/divider/divider-module.mjs +5 -5
  70. package/esm2022/divider/divider.mjs +4 -4
  71. package/esm2022/expansion/accordion.mjs +4 -4
  72. package/esm2022/expansion/expansion-module.mjs +5 -5
  73. package/esm2022/expansion/expansion-panel-content.mjs +4 -4
  74. package/esm2022/expansion/expansion-panel-header.mjs +10 -10
  75. package/esm2022/expansion/expansion-panel.mjs +7 -7
  76. package/esm2022/form-field/directives/error.mjs +4 -4
  77. package/esm2022/form-field/directives/floating-label.mjs +4 -4
  78. package/esm2022/form-field/directives/hint.mjs +4 -4
  79. package/esm2022/form-field/directives/label.mjs +4 -4
  80. package/esm2022/form-field/directives/line-ripple.mjs +4 -4
  81. package/esm2022/form-field/directives/notched-outline.mjs +4 -4
  82. package/esm2022/form-field/directives/prefix.mjs +4 -4
  83. package/esm2022/form-field/directives/suffix.mjs +4 -4
  84. package/esm2022/form-field/form-field-control.mjs +4 -4
  85. package/esm2022/form-field/form-field.mjs +4 -4
  86. package/esm2022/form-field/module.mjs +5 -5
  87. package/esm2022/grid-list/grid-list-module.mjs +5 -5
  88. package/esm2022/grid-list/grid-list.mjs +4 -4
  89. package/esm2022/grid-list/grid-tile.mjs +16 -16
  90. package/esm2022/icon/icon-module.mjs +5 -5
  91. package/esm2022/icon/icon-registry.mjs +4 -4
  92. package/esm2022/icon/icon.mjs +4 -4
  93. package/esm2022/icon/testing/fake-icon-registry.mjs +8 -8
  94. package/esm2022/input/input.mjs +4 -4
  95. package/esm2022/input/module.mjs +5 -5
  96. package/esm2022/list/action-list.mjs +4 -4
  97. package/esm2022/list/list-base.mjs +7 -7
  98. package/esm2022/list/list-item-sections.mjs +19 -19
  99. package/esm2022/list/list-module.mjs +5 -5
  100. package/esm2022/list/list-option.mjs +4 -4
  101. package/esm2022/list/list.mjs +7 -7
  102. package/esm2022/list/nav-list.mjs +4 -4
  103. package/esm2022/list/selection-list.mjs +4 -4
  104. package/esm2022/list/subheader.mjs +4 -4
  105. package/esm2022/menu/menu-content.mjs +4 -4
  106. package/esm2022/menu/menu-item.mjs +4 -4
  107. package/esm2022/menu/menu-trigger.mjs +4 -4
  108. package/esm2022/menu/menu.mjs +4 -4
  109. package/esm2022/menu/module.mjs +5 -5
  110. package/esm2022/paginator/module.mjs +5 -5
  111. package/esm2022/paginator/paginator-intl.mjs +4 -4
  112. package/esm2022/paginator/paginator.mjs +4 -4
  113. package/esm2022/progress-bar/module.mjs +5 -5
  114. package/esm2022/progress-bar/progress-bar.mjs +4 -4
  115. package/esm2022/progress-spinner/module.mjs +5 -5
  116. package/esm2022/progress-spinner/progress-spinner.mjs +4 -4
  117. package/esm2022/radio/module.mjs +5 -5
  118. package/esm2022/radio/radio.mjs +7 -7
  119. package/esm2022/select/module.mjs +5 -5
  120. package/esm2022/select/select.mjs +7 -7
  121. package/esm2022/sidenav/drawer.mjs +10 -10
  122. package/esm2022/sidenav/sidenav-module.mjs +5 -5
  123. package/esm2022/sidenav/sidenav.mjs +10 -10
  124. package/esm2022/slide-toggle/module.mjs +9 -9
  125. package/esm2022/slide-toggle/slide-toggle-required-validator.mjs +4 -4
  126. package/esm2022/slide-toggle/slide-toggle.mjs +4 -4
  127. package/esm2022/slider/module.mjs +5 -5
  128. package/esm2022/slider/slider-input.mjs +7 -7
  129. package/esm2022/slider/slider-thumb.mjs +4 -4
  130. package/esm2022/slider/slider.mjs +4 -4
  131. package/esm2022/snack-bar/module.mjs +5 -5
  132. package/esm2022/snack-bar/simple-snack-bar.mjs +4 -4
  133. package/esm2022/snack-bar/snack-bar-container.mjs +4 -4
  134. package/esm2022/snack-bar/snack-bar-content.mjs +10 -10
  135. package/esm2022/snack-bar/snack-bar.mjs +4 -4
  136. package/esm2022/sort/sort-header-intl.mjs +4 -4
  137. package/esm2022/sort/sort-header.mjs +4 -4
  138. package/esm2022/sort/sort-module.mjs +5 -5
  139. package/esm2022/sort/sort.mjs +4 -4
  140. package/esm2022/stepper/step-content.mjs +4 -4
  141. package/esm2022/stepper/step-header.mjs +4 -4
  142. package/esm2022/stepper/step-label.mjs +4 -4
  143. package/esm2022/stepper/stepper-button.mjs +7 -7
  144. package/esm2022/stepper/stepper-icon.mjs +4 -4
  145. package/esm2022/stepper/stepper-intl.mjs +4 -4
  146. package/esm2022/stepper/stepper-module.mjs +5 -5
  147. package/esm2022/stepper/stepper.mjs +7 -7
  148. package/esm2022/table/cell.mjs +22 -22
  149. package/esm2022/table/module.mjs +5 -5
  150. package/esm2022/table/row.mjs +22 -22
  151. package/esm2022/table/table.mjs +7 -7
  152. package/esm2022/table/text-column.mjs +4 -4
  153. package/esm2022/tabs/module.mjs +5 -5
  154. package/esm2022/tabs/paginated-tab-header.mjs +4 -4
  155. package/esm2022/tabs/tab-body.mjs +7 -7
  156. package/esm2022/tabs/tab-content.mjs +4 -4
  157. package/esm2022/tabs/tab-group.mjs +4 -4
  158. package/esm2022/tabs/tab-header.mjs +4 -4
  159. package/esm2022/tabs/tab-label-wrapper.mjs +4 -4
  160. package/esm2022/tabs/tab-label.mjs +4 -4
  161. package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +10 -10
  162. package/esm2022/tabs/tab.mjs +4 -4
  163. package/esm2022/toolbar/toolbar-module.mjs +5 -5
  164. package/esm2022/toolbar/toolbar.mjs +7 -7
  165. package/esm2022/tooltip/module.mjs +5 -5
  166. package/esm2022/tooltip/tooltip.mjs +7 -7
  167. package/esm2022/tree/node.mjs +10 -10
  168. package/esm2022/tree/outlet.mjs +4 -4
  169. package/esm2022/tree/padding.mjs +4 -4
  170. package/esm2022/tree/toggle.mjs +4 -4
  171. package/esm2022/tree/tree-module.mjs +5 -5
  172. package/esm2022/tree/tree.mjs +4 -4
  173. package/fesm2022/autocomplete.mjs +13 -13
  174. package/fesm2022/autocomplete.mjs.map +1 -1
  175. package/fesm2022/badge.mjs +7 -7
  176. package/fesm2022/badge.mjs.map +1 -1
  177. package/fesm2022/bottom-sheet.mjs +10 -10
  178. package/fesm2022/bottom-sheet.mjs.map +1 -1
  179. package/fesm2022/button-toggle.mjs +10 -10
  180. package/fesm2022/button-toggle.mjs.map +1 -1
  181. package/fesm2022/button.mjs +34 -34
  182. package/fesm2022/button.mjs.map +1 -1
  183. package/fesm2022/card.mjs +46 -46
  184. package/fesm2022/card.mjs.map +1 -1
  185. package/fesm2022/checkbox.mjs +14 -14
  186. package/fesm2022/checkbox.mjs.map +1 -1
  187. package/fesm2022/chips.mjs +40 -40
  188. package/fesm2022/chips.mjs.map +1 -1
  189. package/fesm2022/core.mjs +56 -56
  190. package/fesm2022/core.mjs.map +1 -1
  191. package/fesm2022/datepicker.mjs +82 -82
  192. package/fesm2022/datepicker.mjs.map +1 -1
  193. package/fesm2022/dialog.mjs +22 -22
  194. package/fesm2022/dialog.mjs.map +1 -1
  195. package/fesm2022/divider.mjs +7 -7
  196. package/fesm2022/divider.mjs.map +1 -1
  197. package/fesm2022/expansion.mjs +25 -25
  198. package/fesm2022/expansion.mjs.map +1 -1
  199. package/fesm2022/form-field.mjs +34 -34
  200. package/fesm2022/form-field.mjs.map +1 -1
  201. package/fesm2022/grid-list.mjs +22 -22
  202. package/fesm2022/grid-list.mjs.map +1 -1
  203. package/fesm2022/icon/testing.mjs +7 -7
  204. package/fesm2022/icon/testing.mjs.map +1 -1
  205. package/fesm2022/icon.mjs +10 -10
  206. package/fesm2022/icon.mjs.map +1 -1
  207. package/fesm2022/input.mjs +7 -7
  208. package/fesm2022/input.mjs.map +1 -1
  209. package/fesm2022/list.mjs +49 -49
  210. package/fesm2022/list.mjs.map +1 -1
  211. package/fesm2022/menu.mjs +16 -16
  212. package/fesm2022/menu.mjs.map +1 -1
  213. package/fesm2022/paginator.mjs +10 -10
  214. package/fesm2022/paginator.mjs.map +1 -1
  215. package/fesm2022/progress-bar.mjs +7 -7
  216. package/fesm2022/progress-bar.mjs.map +1 -1
  217. package/fesm2022/progress-spinner.mjs +7 -7
  218. package/fesm2022/progress-spinner.mjs.map +1 -1
  219. package/fesm2022/radio.mjs +10 -10
  220. package/fesm2022/radio.mjs.map +1 -1
  221. package/fesm2022/select.mjs +10 -10
  222. package/fesm2022/select.mjs.map +1 -1
  223. package/fesm2022/sidenav.mjs +22 -22
  224. package/fesm2022/sidenav.mjs.map +1 -1
  225. package/fesm2022/slide-toggle.mjs +14 -14
  226. package/fesm2022/slide-toggle.mjs.map +1 -1
  227. package/fesm2022/slider.mjs +16 -16
  228. package/fesm2022/slider.mjs.map +1 -1
  229. package/fesm2022/snack-bar.mjs +22 -22
  230. package/fesm2022/snack-bar.mjs.map +1 -1
  231. package/fesm2022/sort.mjs +13 -13
  232. package/fesm2022/sort.mjs.map +1 -1
  233. package/fesm2022/stepper.mjs +31 -31
  234. package/fesm2022/stepper.mjs.map +1 -1
  235. package/fesm2022/table.mjs +55 -55
  236. package/fesm2022/table.mjs.map +1 -1
  237. package/fesm2022/tabs.mjs +40 -40
  238. package/fesm2022/tabs.mjs.map +1 -1
  239. package/fesm2022/toolbar.mjs +10 -10
  240. package/fesm2022/toolbar.mjs.map +1 -1
  241. package/fesm2022/tooltip.mjs +10 -10
  242. package/fesm2022/tooltip.mjs.map +1 -1
  243. package/fesm2022/tree.mjs +25 -25
  244. package/fesm2022/tree.mjs.map +1 -1
  245. package/package.json +7 -7
  246. package/schematics/ng-add/index.js +2 -2
  247. package/schematics/ng-add/index.mjs +2 -2
  248. package/schematics/ng-generate/mdc-migration/index_bundled.js +498 -289
  249. package/schematics/ng-generate/mdc-migration/index_bundled.js.map +4 -4
  250. package/schematics/ng-update/index_bundled.js +31 -31
@@ -6396,14 +6396,14 @@ var require_scss_syntax = __commonJS({
6396
6396
  }
6397
6397
  });
6398
6398
 
6399
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/index.mjs
6399
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/index.mjs
6400
6400
  var mdc_migration_exports = {};
6401
6401
  __export(mdc_migration_exports, {
6402
6402
  default: () => mdc_migration_default
6403
6403
  });
6404
6404
  module.exports = __toCommonJS(mdc_migration_exports);
6405
6405
 
6406
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/style-migrator.js
6406
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/style-migrator.js
6407
6407
  var END_OF_SELECTOR_REGEX = "(?!-)";
6408
6408
  var MIXIN_ARGUMENTS_REGEX = "\\(((\\s|.)*)\\)";
6409
6409
  var StyleMigrator = class {
@@ -6479,7 +6479,7 @@ var StyleMigrator = class {
6479
6479
  }
6480
6480
  };
6481
6481
 
6482
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/autocomplete/autocomplete-styles.js
6482
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/autocomplete/autocomplete-styles.js
6483
6483
  var AutocompleteStylesMigrator = class extends StyleMigrator {
6484
6484
  constructor() {
6485
6485
  super(...arguments);
@@ -6503,7 +6503,7 @@ var AutocompleteStylesMigrator = class extends StyleMigrator {
6503
6503
  }
6504
6504
  };
6505
6505
 
6506
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/button/button-styles.js
6506
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/button/button-styles.js
6507
6507
  var ButtonStylesMigrator = class extends StyleMigrator {
6508
6508
  constructor() {
6509
6509
  super(...arguments);
@@ -6539,7 +6539,7 @@ var ButtonStylesMigrator = class extends StyleMigrator {
6539
6539
  }
6540
6540
  };
6541
6541
 
6542
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/card/card-styles.js
6542
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/card/card-styles.js
6543
6543
  var CardStylesMigrator = class extends StyleMigrator {
6544
6544
  constructor() {
6545
6545
  super(...arguments);
@@ -6578,7 +6578,7 @@ var CardStylesMigrator = class extends StyleMigrator {
6578
6578
  }
6579
6579
  };
6580
6580
 
6581
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/template-migrator.js
6581
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/template-migrator.js
6582
6582
  var TemplateMigrator = class {
6583
6583
  };
6584
6584
 
@@ -13298,20 +13298,22 @@ var OpKind;
13298
13298
  OpKind2[OpKind2["ExtractedAttribute"] = 25] = "ExtractedAttribute";
13299
13299
  OpKind2[OpKind2["Defer"] = 26] = "Defer";
13300
13300
  OpKind2[OpKind2["DeferOn"] = 27] = "DeferOn";
13301
- OpKind2[OpKind2["ExtractedMessage"] = 28] = "ExtractedMessage";
13302
- OpKind2[OpKind2["HostProperty"] = 29] = "HostProperty";
13303
- OpKind2[OpKind2["Namespace"] = 30] = "Namespace";
13304
- OpKind2[OpKind2["ProjectionDef"] = 31] = "ProjectionDef";
13305
- OpKind2[OpKind2["Projection"] = 32] = "Projection";
13306
- OpKind2[OpKind2["RepeaterCreate"] = 33] = "RepeaterCreate";
13307
- OpKind2[OpKind2["Repeater"] = 34] = "Repeater";
13308
- OpKind2[OpKind2["I18nStart"] = 35] = "I18nStart";
13309
- OpKind2[OpKind2["I18n"] = 36] = "I18n";
13310
- OpKind2[OpKind2["I18nEnd"] = 37] = "I18nEnd";
13311
- OpKind2[OpKind2["I18nExpression"] = 38] = "I18nExpression";
13312
- OpKind2[OpKind2["I18nApply"] = 39] = "I18nApply";
13313
- OpKind2[OpKind2["Icu"] = 40] = "Icu";
13314
- OpKind2[OpKind2["IcuUpdate"] = 41] = "IcuUpdate";
13301
+ OpKind2[OpKind2["DeferWhen"] = 28] = "DeferWhen";
13302
+ OpKind2[OpKind2["I18nMessage"] = 29] = "I18nMessage";
13303
+ OpKind2[OpKind2["HostProperty"] = 30] = "HostProperty";
13304
+ OpKind2[OpKind2["Namespace"] = 31] = "Namespace";
13305
+ OpKind2[OpKind2["ProjectionDef"] = 32] = "ProjectionDef";
13306
+ OpKind2[OpKind2["Projection"] = 33] = "Projection";
13307
+ OpKind2[OpKind2["RepeaterCreate"] = 34] = "RepeaterCreate";
13308
+ OpKind2[OpKind2["Repeater"] = 35] = "Repeater";
13309
+ OpKind2[OpKind2["I18nStart"] = 36] = "I18nStart";
13310
+ OpKind2[OpKind2["I18n"] = 37] = "I18n";
13311
+ OpKind2[OpKind2["I18nEnd"] = 38] = "I18nEnd";
13312
+ OpKind2[OpKind2["I18nExpression"] = 39] = "I18nExpression";
13313
+ OpKind2[OpKind2["I18nApply"] = 40] = "I18nApply";
13314
+ OpKind2[OpKind2["Icu"] = 41] = "Icu";
13315
+ OpKind2[OpKind2["IcuUpdate"] = 42] = "IcuUpdate";
13316
+ OpKind2[OpKind2["I18nContext"] = 43] = "I18nContext";
13315
13317
  })(OpKind || (OpKind = {}));
13316
13318
  var ExpressionKind;
13317
13319
  (function(ExpressionKind2) {
@@ -13586,23 +13588,32 @@ function createRepeaterOp(repeaterCreate2, targetSlot, collection, sourceSpan) {
13586
13588
  sourceSpan
13587
13589
  }, NEW_OP);
13588
13590
  }
13589
- function createI18nExpressionOp(owner, ownerSlot, expression, i18nPlaceholder, resolutionTime, sourceSpan) {
13591
+ function createDeferWhenOp(target, expr, prefetch, sourceSpan) {
13592
+ return __spreadValues(__spreadValues({
13593
+ kind: OpKind.DeferWhen,
13594
+ target,
13595
+ expr,
13596
+ prefetch,
13597
+ sourceSpan
13598
+ }, NEW_OP), TRAIT_DEPENDS_ON_SLOT_CONTEXT);
13599
+ }
13600
+ function createI18nExpressionOp(context, target, handle, expression, i18nPlaceholder, resolutionTime, sourceSpan) {
13590
13601
  return __spreadValues(__spreadValues(__spreadValues({
13591
13602
  kind: OpKind.I18nExpression,
13592
- owner,
13593
- ownerSlot,
13594
- target: owner,
13603
+ context,
13604
+ target,
13605
+ handle,
13595
13606
  expression,
13596
13607
  i18nPlaceholder,
13597
13608
  resolutionTime,
13598
13609
  sourceSpan
13599
13610
  }, NEW_OP), TRAIT_CONSUMES_VARS), TRAIT_DEPENDS_ON_SLOT_CONTEXT);
13600
13611
  }
13601
- function createI18nApplyOp(target, targetSlot, sourceSpan) {
13612
+ function createI18nApplyOp(target, handle, sourceSpan) {
13602
13613
  return __spreadValues({
13603
13614
  kind: OpKind.I18nApply,
13604
13615
  target,
13605
- targetSlot,
13616
+ handle,
13606
13617
  sourceSpan
13607
13618
  }, NEW_OP);
13608
13619
  }
@@ -14348,6 +14359,17 @@ function transformExpressionsInOp(op, transform2, flags) {
14348
14359
  op.placeholderConfig = transformExpressionsInExpression(op.placeholderConfig, transform2, flags);
14349
14360
  }
14350
14361
  break;
14362
+ case OpKind.I18nMessage:
14363
+ for (const [placeholder, expr] of op.params) {
14364
+ op.params.set(placeholder, transformExpressionsInExpression(expr, transform2, flags));
14365
+ }
14366
+ for (const [placeholder, expr] of op.postprocessingParams) {
14367
+ op.postprocessingParams.set(placeholder, transformExpressionsInExpression(expr, transform2, flags));
14368
+ }
14369
+ break;
14370
+ case OpKind.DeferWhen:
14371
+ op.expr = transformExpressionsInExpression(op.expr, transform2, flags);
14372
+ break;
14351
14373
  case OpKind.Advance:
14352
14374
  case OpKind.Container:
14353
14375
  case OpKind.ContainerEnd:
@@ -14358,9 +14380,9 @@ function transformExpressionsInOp(op, transform2, flags) {
14358
14380
  case OpKind.ElementEnd:
14359
14381
  case OpKind.ElementStart:
14360
14382
  case OpKind.EnableBindings:
14361
- case OpKind.ExtractedMessage:
14362
14383
  case OpKind.I18n:
14363
14384
  case OpKind.I18nApply:
14385
+ case OpKind.I18nContext:
14364
14386
  case OpKind.I18nEnd:
14365
14387
  case OpKind.I18nStart:
14366
14388
  case OpKind.Icu:
@@ -14795,7 +14817,7 @@ function createExtractedAttributeOp(target, bindingKind, name, expression) {
14795
14817
  expression
14796
14818
  }, NEW_OP);
14797
14819
  }
14798
- function createDeferOp(xref, main, mainSlot, sourceSpan) {
14820
+ function createDeferOp(xref, main, mainSlot, metadata, sourceSpan) {
14799
14821
  return __spreadProps(__spreadValues(__spreadValues({
14800
14822
  kind: OpKind.Defer,
14801
14823
  xref,
@@ -14813,6 +14835,8 @@ function createDeferOp(xref, main, mainSlot, sourceSpan) {
14813
14835
  placeholderMinimumTime: null,
14814
14836
  errorView: null,
14815
14837
  errorSlot: null,
14838
+ metadata,
14839
+ resolverFn: null,
14816
14840
  sourceSpan
14817
14841
  }, NEW_OP), TRAIT_CONSUMES_SLOT), {
14818
14842
  numSlotsUsed: 2
@@ -14827,17 +14851,17 @@ function createDeferOnOp(defer2, trigger, prefetch, sourceSpan) {
14827
14851
  sourceSpan
14828
14852
  }, NEW_OP);
14829
14853
  }
14830
- function createExtractedMessageOp(owner, message, isRoot) {
14854
+ function createI18nMessageOp(xref, i18nBlock, message, messagePlaceholder, params, postprocessingParams, needsPostprocessing) {
14831
14855
  return __spreadValues({
14832
- kind: OpKind.ExtractedMessage,
14833
- owner,
14856
+ kind: OpKind.I18nMessage,
14857
+ xref,
14858
+ i18nBlock,
14834
14859
  message,
14835
- isRoot,
14836
- params: /* @__PURE__ */ new Map(),
14837
- postprocessingParams: /* @__PURE__ */ new Map(),
14838
- needsPostprocessing: false,
14839
- formattedParams: null,
14840
- formattedPostprocessingParams: null
14860
+ messagePlaceholder,
14861
+ params,
14862
+ postprocessingParams,
14863
+ needsPostprocessing,
14864
+ subMessages: []
14841
14865
  }, NEW_OP);
14842
14866
  }
14843
14867
  function createI18nStartOp(xref, message, root2) {
@@ -14848,7 +14872,8 @@ function createI18nStartOp(xref, message, root2) {
14848
14872
  root: root2 != null ? root2 : xref,
14849
14873
  message,
14850
14874
  messageIndex: null,
14851
- subTemplateIndex: null
14875
+ subTemplateIndex: null,
14876
+ context: null
14852
14877
  }, NEW_OP), TRAIT_CONSUMES_SLOT);
14853
14878
  }
14854
14879
  function createI18nEndOp(xref) {
@@ -14857,14 +14882,28 @@ function createI18nEndOp(xref) {
14857
14882
  xref
14858
14883
  }, NEW_OP);
14859
14884
  }
14860
- function createIcuOp(xref, message, sourceSpan) {
14885
+ function createIcuOp(xref, message, icu, messagePlaceholder, sourceSpan) {
14861
14886
  return __spreadValues({
14862
14887
  kind: OpKind.Icu,
14863
14888
  xref,
14864
14889
  message,
14890
+ icu,
14891
+ messagePlaceholder,
14892
+ context: null,
14865
14893
  sourceSpan
14866
14894
  }, NEW_OP);
14867
14895
  }
14896
+ function createI18nContextOp(xref, i18nBlock, message, sourceSpan) {
14897
+ return __spreadValues({
14898
+ kind: OpKind.I18nContext,
14899
+ xref,
14900
+ i18nBlock,
14901
+ message,
14902
+ sourceSpan,
14903
+ params: /* @__PURE__ */ new Map(),
14904
+ postprocessingParams: /* @__PURE__ */ new Map()
14905
+ }, NEW_OP);
14906
+ }
14868
14907
  function createHostPropertyOp(name, expression, isAnimationTrigger, sourceSpan) {
14869
14908
  return __spreadValues(__spreadValues({
14870
14909
  kind: OpKind.HostProperty,
@@ -14894,10 +14933,11 @@ var CompilationJob = class {
14894
14933
  }
14895
14934
  };
14896
14935
  var ComponentCompilationJob = class extends CompilationJob {
14897
- constructor(componentName, pool, compatibility, relativeContextFilePath, i18nUseExternalIds) {
14936
+ constructor(componentName, pool, compatibility, relativeContextFilePath, i18nUseExternalIds, deferBlocksMeta) {
14898
14937
  super(componentName, pool, compatibility);
14899
14938
  this.relativeContextFilePath = relativeContextFilePath;
14900
14939
  this.i18nUseExternalIds = i18nUseExternalIds;
14940
+ this.deferBlocksMeta = deferBlocksMeta;
14901
14941
  this.kind = CompilationJobKind.Tmpl;
14902
14942
  this.fnSuffix = "Template";
14903
14943
  this.views = /* @__PURE__ */ new Map();
@@ -14999,7 +15039,7 @@ function applyI18nExpressions(job) {
14999
15039
  for (const unit of job.units) {
15000
15040
  for (const op of unit.update) {
15001
15041
  if (op.kind === OpKind.I18nExpression && needsApplication(op)) {
15002
- OpList.insertAfter(createI18nApplyOp(op.owner, op.ownerSlot, null), op);
15042
+ OpList.insertAfter(createI18nApplyOp(op.target, op.handle, null), op);
15003
15043
  }
15004
15044
  }
15005
15045
  }
@@ -15009,26 +15049,38 @@ function needsApplication(op) {
15009
15049
  if (((_a2 = op.next) == null ? void 0 : _a2.kind) !== OpKind.I18nExpression) {
15010
15050
  return true;
15011
15051
  }
15012
- if (op.next.owner !== op.owner) {
15052
+ if (op.next.context !== op.context) {
15013
15053
  return true;
15014
15054
  }
15015
15055
  return false;
15016
15056
  }
15017
15057
  function assignI18nSlotDependencies(job) {
15018
15058
  const i18nLastSlotConsumers = /* @__PURE__ */ new Map();
15059
+ const i18nContexts = /* @__PURE__ */ new Map();
15019
15060
  let lastSlotConsumer = null;
15061
+ let currentI18nOp = null;
15020
15062
  for (const unit of job.units) {
15021
15063
  for (const op of unit.create) {
15022
- if (op.kind === OpKind.I18nEnd) {
15023
- i18nLastSlotConsumers.set(op.xref, lastSlotConsumer);
15024
- }
15025
15064
  if (hasConsumesSlotTrait(op)) {
15026
15065
  lastSlotConsumer = op.xref;
15027
15066
  }
15067
+ switch (op.kind) {
15068
+ case OpKind.I18nStart:
15069
+ currentI18nOp = op;
15070
+ break;
15071
+ case OpKind.I18nEnd:
15072
+ i18nLastSlotConsumers.set(currentI18nOp.xref, lastSlotConsumer);
15073
+ currentI18nOp = null;
15074
+ break;
15075
+ case OpKind.I18nContext:
15076
+ i18nContexts.set(op.xref, op);
15077
+ break;
15078
+ }
15028
15079
  }
15029
15080
  for (const op of unit.update) {
15030
15081
  if (op.kind === OpKind.I18nExpression) {
15031
- op.target = i18nLastSlotConsumers.get(op.owner);
15082
+ const i18nContext = i18nContexts.get(op.context);
15083
+ op.target = i18nLastSlotConsumers.get(i18nContext.i18nBlock);
15032
15084
  }
15033
15085
  }
15034
15086
  }
@@ -15476,6 +15528,107 @@ function serializeAttributes({ attributes, bindings, classes, i18n: i18n2, proje
15476
15528
  }
15477
15529
  return literalArr(attrArray);
15478
15530
  }
15531
+ function createDeferDepsFns(job) {
15532
+ for (const unit of job.units) {
15533
+ for (const op of unit.create) {
15534
+ if (op.kind === OpKind.Defer) {
15535
+ if (op.metadata.deps.length === 0) {
15536
+ continue;
15537
+ }
15538
+ const dependencies = [];
15539
+ for (const dep of op.metadata.deps) {
15540
+ if (dep.isDeferrable) {
15541
+ const innerFn = arrowFn([new FnParam("m", DYNAMIC_TYPE)], variable("m").prop(dep.symbolName));
15542
+ const importExpr2 = new DynamicImportExpr(dep.importPath).prop("then").callFn([innerFn]);
15543
+ dependencies.push(importExpr2);
15544
+ } else {
15545
+ dependencies.push(dep.type);
15546
+ }
15547
+ }
15548
+ const depsFnExpr = arrowFn([], literalArr(dependencies));
15549
+ if (op.handle.slot === null) {
15550
+ throw new Error("AssertionError: slot must be assigned bfore extracting defer deps functions");
15551
+ }
15552
+ op.resolverFn = job.pool.getSharedFunctionReference(depsFnExpr, `${job.componentName}_Defer_${op.handle.slot}_DepsFn`);
15553
+ }
15554
+ }
15555
+ }
15556
+ }
15557
+ function createI18nContexts(job) {
15558
+ let currentI18nOp = null;
15559
+ let xref;
15560
+ for (const unit of job.units) {
15561
+ for (const op of unit.create) {
15562
+ switch (op.kind) {
15563
+ case OpKind.I18nStart:
15564
+ xref = job.allocateXrefId();
15565
+ unit.create.push(createI18nContextOp(xref, op.xref, op.message, null));
15566
+ op.context = xref;
15567
+ currentI18nOp = op;
15568
+ break;
15569
+ case OpKind.I18nEnd:
15570
+ currentI18nOp = null;
15571
+ break;
15572
+ case OpKind.Icu:
15573
+ if (currentI18nOp === null) {
15574
+ throw Error("Unexpected ICU outside of an i18n block.");
15575
+ }
15576
+ if (op.message.id !== currentI18nOp.message.id) {
15577
+ xref = job.allocateXrefId();
15578
+ unit.create.push(createI18nContextOp(xref, currentI18nOp.xref, op.message, null));
15579
+ op.context = xref;
15580
+ } else {
15581
+ op.context = currentI18nOp.context;
15582
+ }
15583
+ break;
15584
+ }
15585
+ }
15586
+ }
15587
+ }
15588
+ function createI18nIcuExpressions(job) {
15589
+ const icus = /* @__PURE__ */ new Map();
15590
+ const i18nContexts = /* @__PURE__ */ new Map();
15591
+ const i18nBlocks = /* @__PURE__ */ new Map();
15592
+ for (const unit of job.units) {
15593
+ for (const op of unit.create) {
15594
+ switch (op.kind) {
15595
+ case OpKind.Icu:
15596
+ icus.set(op.xref, op);
15597
+ break;
15598
+ case OpKind.I18nContext:
15599
+ i18nContexts.set(op.xref, op);
15600
+ break;
15601
+ case OpKind.I18nStart:
15602
+ i18nBlocks.set(op.xref, op);
15603
+ break;
15604
+ }
15605
+ }
15606
+ for (const op of unit.update) {
15607
+ switch (op.kind) {
15608
+ case OpKind.IcuUpdate:
15609
+ const icuOp = icus.get(op.xref);
15610
+ if ((icuOp == null ? void 0 : icuOp.icu.expressionPlaceholder) === void 0) {
15611
+ throw Error("ICU should have an i18n placeholder");
15612
+ }
15613
+ if (icuOp.context === null) {
15614
+ throw Error("ICU should have its i18n context set");
15615
+ }
15616
+ const i18nContext = i18nContexts.get(icuOp.context);
15617
+ const i18nBlock = i18nBlocks.get(i18nContext.i18nBlock);
15618
+ OpList.replace(op, createI18nExpressionOp(
15619
+ i18nContext.xref,
15620
+ i18nBlock.xref,
15621
+ i18nBlock.handle,
15622
+ new LexicalReadExpr(icuOp.icu.expression),
15623
+ icuOp.icu.expressionPlaceholder,
15624
+ I18nParamResolutionTime.Postproccessing,
15625
+ null
15626
+ ));
15627
+ break;
15628
+ }
15629
+ }
15630
+ }
15631
+ }
15479
15632
  function configureDeferInstructions(job) {
15480
15633
  for (const unit of job.units) {
15481
15634
  for (const op of unit.create) {
@@ -15525,6 +15678,22 @@ function resolveDeferTargetNames(job) {
15525
15678
  case DeferTriggerKind.Interaction:
15526
15679
  case DeferTriggerKind.Viewport:
15527
15680
  if (op.trigger.targetName === null) {
15681
+ if (placeholderView === null) {
15682
+ throw new Error("defer on trigger with no target name must have a placeholder block");
15683
+ }
15684
+ const placeholder = job.views.get(placeholderView);
15685
+ if (placeholder == void 0) {
15686
+ throw new Error("AssertionError: could not find placeholder view for defer on trigger");
15687
+ }
15688
+ for (const placeholderOp of placeholder.create) {
15689
+ if (hasConsumesSlotTrait(placeholderOp) && (isElementOrContainerOp(placeholderOp) || placeholderOp.kind === OpKind.Projection)) {
15690
+ op.trigger.targetXref = placeholderOp.xref;
15691
+ op.trigger.targetView = placeholderView;
15692
+ op.trigger.targetSlotViewSteps = -1;
15693
+ op.trigger.targetSlot = placeholderOp.handle;
15694
+ return;
15695
+ }
15696
+ }
15528
15697
  return;
15529
15698
  }
15530
15699
  let view = placeholderView !== null ? job.views.get(placeholderView) : deferOwnerView;
@@ -15734,24 +15903,61 @@ var CONTEXT_MARKER = ":";
15734
15903
  var LIST_START_MARKER = "[";
15735
15904
  var LIST_END_MARKER = "]";
15736
15905
  var LIST_DELIMITER = "|";
15737
- function formatI18nParams(job) {
15906
+ function extractI18nMessages(job) {
15907
+ const i18nContexts = /* @__PURE__ */ new Map();
15908
+ const i18nBlockContexts = /* @__PURE__ */ new Set();
15738
15909
  for (const unit of job.units) {
15739
15910
  for (const op of unit.create) {
15740
- if (op.kind === OpKind.ExtractedMessage) {
15741
- if (op.isRoot) {
15742
- op.formattedParams = formatParams(op.params);
15743
- op.formattedPostprocessingParams = formatParams(op.postprocessingParams);
15744
- op.needsPostprocessing = op.postprocessingParams.size > 0;
15745
- for (const [param, values] of op.params) {
15746
- if (values.length > 1) {
15747
- op.needsPostprocessing = true;
15748
- }
15749
- }
15911
+ switch (op.kind) {
15912
+ case OpKind.I18nContext:
15913
+ i18nContexts.set(op.xref, op);
15914
+ break;
15915
+ case OpKind.I18nStart:
15916
+ i18nBlockContexts.add(op.context);
15917
+ break;
15918
+ }
15919
+ }
15920
+ }
15921
+ const i18nBlockMessages = /* @__PURE__ */ new Map();
15922
+ for (const unit of job.units) {
15923
+ for (const op of unit.create) {
15924
+ if (op.kind === OpKind.I18nStart && op.xref === op.root) {
15925
+ if (!op.context) {
15926
+ throw Error("I18n start op should have its context set.");
15750
15927
  }
15928
+ const i18nMessageOp = createI18nMessage(job, i18nContexts.get(op.context));
15929
+ i18nBlockMessages.set(op.xref, i18nMessageOp);
15930
+ unit.create.push(i18nMessageOp);
15931
+ }
15932
+ }
15933
+ }
15934
+ for (const unit of job.units) {
15935
+ for (const op of unit.create) {
15936
+ if (op.kind === OpKind.Icu) {
15937
+ if (!op.context) {
15938
+ throw Error("ICU op should have its context set.");
15939
+ }
15940
+ if (!i18nBlockContexts.has(op.context)) {
15941
+ const i18nContext = i18nContexts.get(op.context);
15942
+ const subMessage = createI18nMessage(job, i18nContext, op.messagePlaceholder);
15943
+ unit.create.push(subMessage);
15944
+ const parentMessage = i18nBlockMessages.get(i18nContext.i18nBlock);
15945
+ parentMessage == null ? void 0 : parentMessage.subMessages.push(subMessage.xref);
15946
+ }
15947
+ OpList.remove(op);
15751
15948
  }
15752
15949
  }
15753
15950
  }
15754
15951
  }
15952
+ function createI18nMessage(job, context, messagePlaceholder) {
15953
+ let needsPostprocessing = context.postprocessingParams.size > 0;
15954
+ for (const values of context.params.values()) {
15955
+ if (values.length > 1) {
15956
+ needsPostprocessing = true;
15957
+ }
15958
+ }
15959
+ return createI18nMessageOp(job.allocateXrefId(), context.i18nBlock, context.message, messagePlaceholder != null ? messagePlaceholder : null, formatParams(context.params), formatParams(context.postprocessingParams), needsPostprocessing);
15960
+ }
15755
15961
  function formatParams(params) {
15756
15962
  const result = /* @__PURE__ */ new Map();
15757
15963
  for (const [placeholder, placeholderValues] of [...params].sort()) {
@@ -21576,8 +21782,8 @@ var I18nMetaVisitor = class {
21576
21782
  }
21577
21783
  _generateI18nMessage(nodes, meta = "", visitNodeFn) {
21578
21784
  const { meaning, description, customId } = this._parseMetadata(meta);
21579
- const createI18nMessage = createI18nMessageFactory(this.interpolationConfig);
21580
- const message = createI18nMessage(nodes, meaning, description, customId, visitNodeFn);
21785
+ const createI18nMessage2 = createI18nMessageFactory(this.interpolationConfig);
21786
+ const message = createI18nMessage2(nodes, meaning, description, customId, visitNodeFn);
21581
21787
  this._setMessageId(message, meta);
21582
21788
  this._setLegacyIds(message, meta);
21583
21789
  return message;
@@ -21843,28 +22049,21 @@ var TRANSLATION_VAR_PREFIX = "i18n_";
21843
22049
  function collectI18nConsts(job) {
21844
22050
  const fileBasedI18nSuffix = job.relativeContextFilePath.replace(/[^A-Za-z0-9]/g, "_").toUpperCase() + "_";
21845
22051
  const messageConstIndices = /* @__PURE__ */ new Map();
22052
+ const messages = /* @__PURE__ */ new Map();
21846
22053
  for (const unit of job.units) {
21847
22054
  for (const op of unit.create) {
21848
- if (op.kind === OpKind.ExtractedMessage) {
21849
- if (op.isRoot) {
21850
- assertAllParamsResolved(op);
21851
- const mainVar = variable(job.pool.uniqueName(TRANSLATION_VAR_PREFIX));
21852
- const closureVar = i18nGenerateClosureVar(job.pool, op.message.id, fileBasedI18nSuffix, job.i18nUseExternalIds);
21853
- let transformFn = void 0;
21854
- if (op.needsPostprocessing) {
21855
- const extraTransformFnParams = [];
21856
- if (op.formattedPostprocessingParams.size > 0) {
21857
- extraTransformFnParams.push(literalMap([...op.formattedPostprocessingParams].map(([key, value]) => ({ key, value, quoted: true }))));
21858
- }
21859
- transformFn = (expr) => importExpr(Identifiers.i18nPostprocess).callFn([expr, ...extraTransformFnParams]);
21860
- }
21861
- const statements = getTranslationDeclStmts$1(op.message, mainVar, closureVar, op.formattedParams, transformFn);
21862
- messageConstIndices.set(op.owner, job.addConst(mainVar, statements));
21863
- }
22055
+ if (op.kind === OpKind.I18nMessage) {
22056
+ messages.set(op.xref, op);
21864
22057
  OpList.remove(op);
21865
22058
  }
21866
22059
  }
21867
22060
  }
22061
+ for (const op of messages.values()) {
22062
+ if (op.kind === OpKind.I18nMessage && op.messagePlaceholder === null) {
22063
+ const { mainVar, statements } = collectMessage(job, fileBasedI18nSuffix, messages, op);
22064
+ messageConstIndices.set(op.i18nBlock, job.addConst(mainVar, statements));
22065
+ }
22066
+ }
21868
22067
  for (const unit of job.units) {
21869
22068
  for (const op of unit.create) {
21870
22069
  if (op.kind === OpKind.I18nStart) {
@@ -21873,6 +22072,28 @@ function collectI18nConsts(job) {
21873
22072
  }
21874
22073
  }
21875
22074
  }
22075
+ function collectMessage(job, fileBasedI18nSuffix, messages, messageOp) {
22076
+ const statements = [];
22077
+ for (const subMessageId of messageOp.subMessages) {
22078
+ const subMessage = messages.get(subMessageId);
22079
+ const { mainVar: subMessageVar, statements: subMessageStatements } = collectMessage(job, fileBasedI18nSuffix, messages, subMessage);
22080
+ statements.push(...subMessageStatements);
22081
+ messageOp.params.set(subMessage.messagePlaceholder, subMessageVar);
22082
+ }
22083
+ assertAllParamsResolved(messageOp);
22084
+ const mainVar = variable(job.pool.uniqueName(TRANSLATION_VAR_PREFIX));
22085
+ const closureVar = i18nGenerateClosureVar(job.pool, messageOp.message.id, fileBasedI18nSuffix, job.i18nUseExternalIds);
22086
+ let transformFn = void 0;
22087
+ if (messageOp.needsPostprocessing) {
22088
+ const extraTransformFnParams = [];
22089
+ if (messageOp.postprocessingParams.size > 0) {
22090
+ extraTransformFnParams.push(literalMap([...messageOp.postprocessingParams].map(([key, value]) => ({ key, value, quoted: true }))));
22091
+ }
22092
+ transformFn = (expr) => importExpr(Identifiers.i18nPostprocess).callFn([expr, ...extraTransformFnParams]);
22093
+ }
22094
+ statements.push(...getTranslationDeclStmts$1(messageOp.message, mainVar, closureVar, messageOp.params, transformFn));
22095
+ return { mainVar, statements };
22096
+ }
21876
22097
  function getTranslationDeclStmts$1(message, variable2, closureVar, params, transformFn) {
21877
22098
  const paramsObject = Object.fromEntries(params);
21878
22099
  const statements = [
@@ -21901,48 +22122,36 @@ function i18nGenerateClosureVar(pool, messageId, fileBasedI18nSuffix, useExterna
21901
22122
  return variable(name);
21902
22123
  }
21903
22124
  function assertAllParamsResolved(op) {
21904
- if (op.formattedParams === null || op.formattedPostprocessingParams === null) {
21905
- throw Error("Params should have been formatted.");
21906
- }
21907
22125
  for (const placeholder in op.message.placeholders) {
21908
- if (!op.formattedParams.has(placeholder) && !op.formattedPostprocessingParams.has(placeholder)) {
22126
+ if (!op.params.has(placeholder) && !op.postprocessingParams.has(placeholder)) {
21909
22127
  throw Error(`Failed to resolve i18n placeholder: ${placeholder}`);
21910
22128
  }
21911
22129
  }
21912
22130
  for (const placeholder in op.message.placeholderToMessage) {
21913
- if (!op.formattedParams.has(placeholder) && !op.formattedPostprocessingParams.has(placeholder)) {
22131
+ if (!op.params.has(placeholder) && !op.postprocessingParams.has(placeholder)) {
21914
22132
  throw Error(`Failed to resolve i18n message placeholder: ${placeholder}`);
21915
22133
  }
21916
22134
  }
21917
22135
  }
21918
- function extractI18nMessages(job) {
21919
- for (const unit of job.units) {
21920
- for (const op of unit.create) {
21921
- if (op.kind === OpKind.I18nStart) {
21922
- unit.create.push(createExtractedMessageOp(op.xref, op.message, op.xref === op.root));
21923
- }
21924
- }
21925
- }
21926
- }
21927
22136
  function extractI18nText(job) {
21928
22137
  var _a2;
21929
22138
  for (const unit of job.units) {
21930
- let currentI18nId = null;
21931
- let currentI18nSlot = null;
21932
- const textNodes = /* @__PURE__ */ new Map();
22139
+ let currentI18n = null;
22140
+ const textNodeI18nBlocks = /* @__PURE__ */ new Map();
21933
22141
  for (const op of unit.create) {
21934
22142
  switch (op.kind) {
21935
22143
  case OpKind.I18nStart:
21936
- currentI18nId = op.xref;
21937
- currentI18nSlot = op.handle;
22144
+ if (op.context === null) {
22145
+ throw Error("I18n op should have its context set.");
22146
+ }
22147
+ currentI18n = op;
21938
22148
  break;
21939
22149
  case OpKind.I18nEnd:
21940
- currentI18nId = null;
21941
- currentI18nSlot = null;
22150
+ currentI18n = null;
21942
22151
  break;
21943
22152
  case OpKind.Text:
21944
- if (currentI18nId !== null && currentI18nSlot !== null) {
21945
- textNodes.set(op.xref, { xref: currentI18nId, slot: currentI18nSlot });
22153
+ if (currentI18n !== null) {
22154
+ textNodeI18nBlocks.set(op.xref, currentI18n);
21946
22155
  OpList.remove(op);
21947
22156
  }
21948
22157
  break;
@@ -21951,17 +22160,15 @@ function extractI18nText(job) {
21951
22160
  for (const op of unit.update) {
21952
22161
  switch (op.kind) {
21953
22162
  case OpKind.InterpolateText:
21954
- if (!textNodes.has(op.target)) {
22163
+ if (!textNodeI18nBlocks.has(op.target)) {
21955
22164
  continue;
21956
22165
  }
21957
- const i18nBlock = textNodes.get(op.target);
22166
+ const i18nOp = textNodeI18nBlocks.get(op.target);
21958
22167
  const ops = [];
21959
22168
  for (let i = 0; i < op.interpolation.expressions.length; i++) {
21960
22169
  const expr = op.interpolation.expressions[i];
21961
22170
  const placeholder = op.i18nPlaceholders[i];
21962
- ops.push(createI18nExpressionOp(i18nBlock.xref, i18nBlock.slot, expr, placeholder.name, I18nParamResolutionTime.Creation, (_a2 = expr.sourceSpan) != null ? _a2 : op.sourceSpan));
21963
- }
21964
- if (ops.length > 0) {
22171
+ ops.push(createI18nExpressionOp(i18nOp.context, i18nOp.xref, i18nOp.handle, expr, placeholder.name, I18nParamResolutionTime.Creation, (_a2 = expr.sourceSpan) != null ? _a2 : op.sourceSpan));
21965
22172
  }
21966
22173
  OpList.replaceWithMany(op, ops);
21967
22174
  break;
@@ -21969,47 +22176,6 @@ function extractI18nText(job) {
21969
22176
  }
21970
22177
  }
21971
22178
  }
21972
- function extractI18nICUs(job) {
21973
- for (const unit of job.units) {
21974
- const icus = /* @__PURE__ */ new Map();
21975
- let currentI18nId = null;
21976
- let currentI18nSlot = null;
21977
- for (const op of unit.create) {
21978
- switch (op.kind) {
21979
- case OpKind.I18nStart:
21980
- currentI18nId = op.xref;
21981
- currentI18nSlot = op.handle;
21982
- break;
21983
- case OpKind.I18nEnd:
21984
- currentI18nId = null;
21985
- currentI18nSlot = null;
21986
- break;
21987
- case OpKind.Icu:
21988
- if (currentI18nId === null) {
21989
- throw Error("Unexpected ICU outside of an i18n block.");
21990
- }
21991
- icus.set(op.xref, { message: op.message, i18nBlockId: currentI18nId, i18nBlockSlot: currentI18nSlot });
21992
- OpList.remove(op);
21993
- break;
21994
- }
21995
- }
21996
- for (const op of unit.update) {
21997
- switch (op.kind) {
21998
- case OpKind.IcuUpdate:
21999
- const { message, i18nBlockId, i18nBlockSlot } = icus.get(op.xref);
22000
- const icuNode = message.nodes.find((n) => n instanceof Icu);
22001
- if (icuNode === void 0) {
22002
- throw Error("Could not find ICU in i18n AST");
22003
- }
22004
- if (icuNode.expressionPlaceholder === void 0) {
22005
- throw Error("ICU is missing an i18n placeholder");
22006
- }
22007
- OpList.replace(op, createI18nExpressionOp(i18nBlockId, i18nBlockSlot, new LexicalReadExpr(icuNode.expression), icuNode.expressionPlaceholder, I18nParamResolutionTime.Postproccessing, null));
22008
- break;
22009
- }
22010
- }
22011
- }
22012
- }
22013
22179
  function liftLocalRefs(job) {
22014
22180
  for (const unit of job.units) {
22015
22181
  for (const op of unit.create) {
@@ -22038,6 +22204,45 @@ function serializeLocalRefs(refs) {
22038
22204
  }
22039
22205
  return literalArr(constRefs);
22040
22206
  }
22207
+ function mergeI18nContexts(job) {
22208
+ const i18nOps = /* @__PURE__ */ new Map();
22209
+ const i18nContexts = /* @__PURE__ */ new Map();
22210
+ for (const unit of job.units) {
22211
+ for (const op of unit.create) {
22212
+ switch (op.kind) {
22213
+ case OpKind.I18nStart:
22214
+ if (!op.context) {
22215
+ throw Error("I18n op should have its context set.");
22216
+ }
22217
+ i18nOps.set(op.xref, op);
22218
+ break;
22219
+ case OpKind.I18nContext:
22220
+ i18nContexts.set(op.xref, op);
22221
+ break;
22222
+ }
22223
+ }
22224
+ }
22225
+ for (const childI18nOp of i18nOps.values()) {
22226
+ if (childI18nOp.xref !== childI18nOp.root) {
22227
+ const childContext = i18nContexts.get(childI18nOp.context);
22228
+ const rootI18nOp = i18nOps.get(childI18nOp.root);
22229
+ const rootContext = i18nContexts.get(rootI18nOp.context);
22230
+ mergeParams(rootContext.params, childContext.params);
22231
+ mergeParams(rootContext.postprocessingParams, childContext.postprocessingParams);
22232
+ }
22233
+ }
22234
+ }
22235
+ function mergeParams(to, from) {
22236
+ for (const [placeholder, fromValues] of from) {
22237
+ const toValues = to.get(placeholder) || [];
22238
+ const flags = fromValues[0].flags;
22239
+ if (flags & I18nParamValueFlags.CloseTag && !(flags & I18nParamValueFlags.OpenTag)) {
22240
+ to.set(placeholder, [...fromValues, ...toValues]);
22241
+ } else {
22242
+ to.set(placeholder, [...toValues, ...fromValues]);
22243
+ }
22244
+ }
22245
+ }
22041
22246
  function emitNamespaceChanges(job) {
22042
22247
  for (const unit of job.units) {
22043
22248
  let activeNamespace = Namespace.HTML;
@@ -22536,47 +22741,6 @@ function wrapTemplateWithI18n(unit, parentI18n) {
22536
22741
  OpList.insertBefore(createI18nEndOp(id), unit.create.tail);
22537
22742
  }
22538
22743
  }
22539
- function propogateI18nPlaceholders(job) {
22540
- const i18nOps = /* @__PURE__ */ new Map();
22541
- const extractedMessageOps = /* @__PURE__ */ new Map();
22542
- for (const unit of job.units) {
22543
- for (const op of unit.create) {
22544
- switch (op.kind) {
22545
- case OpKind.I18nStart:
22546
- i18nOps.set(op.xref, op);
22547
- break;
22548
- case OpKind.ExtractedMessage:
22549
- extractedMessageOps.set(op.owner, op);
22550
- break;
22551
- }
22552
- }
22553
- }
22554
- for (const [xref, childExtractedMessageOp] of extractedMessageOps) {
22555
- if (!childExtractedMessageOp.isRoot) {
22556
- const i18nOp = i18nOps.get(xref);
22557
- if (i18nOp === void 0) {
22558
- throw Error("Could not find owner i18n block for extracted message.");
22559
- }
22560
- const rootExtractedMessageOp = extractedMessageOps.get(i18nOp.root);
22561
- if (rootExtractedMessageOp === void 0) {
22562
- throw Error("Could not find extracted message op for root i18n block.");
22563
- }
22564
- mergeParams(rootExtractedMessageOp.params, childExtractedMessageOp.params);
22565
- mergeParams(rootExtractedMessageOp.postprocessingParams, childExtractedMessageOp.postprocessingParams);
22566
- }
22567
- }
22568
- }
22569
- function mergeParams(to, from) {
22570
- for (const [placeholder, fromValues] of from) {
22571
- const toValues = to.get(placeholder) || [];
22572
- const flags = fromValues[0].flags;
22573
- if (flags & I18nParamValueFlags.CloseTag && !(flags & I18nParamValueFlags.OpenTag)) {
22574
- to.set(placeholder, [...fromValues, ...toValues]);
22575
- } else {
22576
- to.set(placeholder, [...toValues, ...fromValues]);
22577
- }
22578
- }
22579
- }
22580
22744
  function extractPureFunctions(job) {
22581
22745
  for (const view of job.units) {
22582
22746
  for (const op of view.ops()) {
@@ -22695,13 +22859,21 @@ function elementContainer(slot, constIndex, localRefIndex, sourceSpan) {
22695
22859
  function elementContainerEnd() {
22696
22860
  return call(Identifiers.elementContainerEnd, [], null);
22697
22861
  }
22698
- function template(slot, templateFnRef, decls, vars, tag, constIndex, sourceSpan) {
22699
- const args = [literal(slot), templateFnRef, literal(decls), literal(vars)];
22700
- if (tag !== null || constIndex !== null) {
22701
- args.push(literal(tag));
22702
- if (constIndex !== null) {
22703
- args.push(literal(constIndex));
22704
- }
22862
+ function template(slot, templateFnRef, decls, vars, tag, constIndex, localRefs, sourceSpan) {
22863
+ const args = [
22864
+ literal(slot),
22865
+ templateFnRef,
22866
+ literal(decls),
22867
+ literal(vars),
22868
+ literal(tag),
22869
+ literal(constIndex)
22870
+ ];
22871
+ if (localRefs !== null) {
22872
+ args.push(literal(localRefs));
22873
+ args.push(importExpr(Identifiers.templateRefExtractor));
22874
+ }
22875
+ while (args[args.length - 1].isEquivalent(NULL_EXPR)) {
22876
+ args.pop();
22705
22877
  }
22706
22878
  return call(Identifiers.templateCreate, args, sourceSpan);
22707
22879
  }
@@ -22775,7 +22947,7 @@ function defer(selfSlot, primarySlot, dependencyResolverFn, loadingSlot, placeho
22775
22947
  const args = [
22776
22948
  literal(selfSlot),
22777
22949
  literal(primarySlot),
22778
- literal(dependencyResolverFn),
22950
+ dependencyResolverFn != null ? dependencyResolverFn : literal(null),
22779
22951
  literal(loadingSlot),
22780
22952
  literal(placeholderSlot),
22781
22953
  literal(errorSlot),
@@ -22855,6 +23027,9 @@ function repeaterCreate(slot, viewFnName, decls, vars, tag, constIndex, trackByF
22855
23027
  function repeater(metadataSlot, collection, sourceSpan) {
22856
23028
  return call(Identifiers.repeater, [literal(metadataSlot), collection], sourceSpan);
22857
23029
  }
23030
+ function deferWhen(prefetch, expr, sourceSpan) {
23031
+ return call(prefetch ? Identifiers.deferPrefetchWhen : Identifiers.deferWhen, [expr], sourceSpan);
23032
+ }
22858
23033
  function i18n(slot, constIndex, subTemplateIndex) {
22859
23034
  const args = [literal(slot), literal(constIndex)];
22860
23035
  if (subTemplateIndex) {
@@ -23213,8 +23388,11 @@ function reifyCreateOperations(unit, ops) {
23213
23388
  if (!(unit instanceof ViewCompilationUnit)) {
23214
23389
  throw new Error(`AssertionError: must be compiling a component`);
23215
23390
  }
23391
+ if (Array.isArray(op.localRefs)) {
23392
+ throw new Error(`AssertionError: local refs array should have been extracted into a constant`);
23393
+ }
23216
23394
  const childView = unit.job.views.get(op.xref);
23217
- OpList.replace(op, template(op.handle.slot, variable(childView.fnName), childView.decls, childView.vars, op.tag, op.attributes, op.sourceSpan));
23395
+ OpList.replace(op, template(op.handle.slot, variable(childView.fnName), childView.decls, childView.vars, op.tag, op.attributes, op.localRefs, op.sourceSpan));
23218
23396
  break;
23219
23397
  case OpKind.DisableBindings:
23220
23398
  OpList.replace(op, disableBindings());
@@ -23251,7 +23429,7 @@ function reifyCreateOperations(unit, ops) {
23251
23429
  break;
23252
23430
  case OpKind.Defer:
23253
23431
  const timerScheduling = !!op.loadingMinimumTime || !!op.loadingAfterTime || !!op.placeholderMinimumTime;
23254
- OpList.replace(op, defer(op.handle.slot, op.mainSlot.slot, null, (_b2 = (_a2 = op.loadingSlot) == null ? void 0 : _a2.slot) != null ? _b2 : null, (_d2 = (_c2 = op.placeholderSlot) == null ? void 0 : _c2.slot) != null ? _d2 : null, (_f2 = (_e2 = op.errorSlot) == null ? void 0 : _e2.slot) != null ? _f2 : null, op.loadingConfig, op.placeholderConfig, timerScheduling, op.sourceSpan));
23432
+ OpList.replace(op, defer(op.handle.slot, op.mainSlot.slot, op.resolverFn, (_b2 = (_a2 = op.loadingSlot) == null ? void 0 : _a2.slot) != null ? _b2 : null, (_d2 = (_c2 = op.placeholderSlot) == null ? void 0 : _c2.slot) != null ? _d2 : null, (_f2 = (_e2 = op.errorSlot) == null ? void 0 : _e2.slot) != null ? _f2 : null, op.loadingConfig, op.placeholderConfig, timerScheduling, op.sourceSpan));
23255
23433
  break;
23256
23434
  case OpKind.DeferOn:
23257
23435
  let args = [];
@@ -23364,7 +23542,7 @@ function reifyUpdateOperations(_unit, ops) {
23364
23542
  OpList.replace(op, i18nExp(op.expression, op.sourceSpan));
23365
23543
  break;
23366
23544
  case OpKind.I18nApply:
23367
- OpList.replace(op, i18nApply(op.targetSlot.slot, op.sourceSpan));
23545
+ OpList.replace(op, i18nApply(op.handle.slot, op.sourceSpan));
23368
23546
  break;
23369
23547
  case OpKind.InterpolateText:
23370
23548
  OpList.replace(op, textInterpolate(op.interpolation.strings, op.interpolation.expressions, op.sourceSpan));
@@ -23405,6 +23583,9 @@ function reifyUpdateOperations(_unit, ops) {
23405
23583
  case OpKind.Repeater:
23406
23584
  OpList.replace(op, repeater(op.targetSlot.slot, op.collection, op.sourceSpan));
23407
23585
  break;
23586
+ case OpKind.DeferWhen:
23587
+ OpList.replace(op, deferWhen(op.prefetch, op.expr, op.sourceSpan));
23588
+ break;
23408
23589
  case OpKind.Statement:
23409
23590
  break;
23410
23591
  default:
@@ -23500,6 +23681,20 @@ function removeEmptyBindings(job) {
23500
23681
  }
23501
23682
  }
23502
23683
  }
23684
+ function removeI18nContexts(job) {
23685
+ for (const unit of job.units) {
23686
+ for (const op of unit.create) {
23687
+ switch (op.kind) {
23688
+ case OpKind.I18nContext:
23689
+ OpList.remove(op);
23690
+ break;
23691
+ case OpKind.I18nStart:
23692
+ op.context = null;
23693
+ break;
23694
+ }
23695
+ }
23696
+ }
23697
+ }
23503
23698
  function generateRepeaterDerivedVars(job) {
23504
23699
  const repeaters = /* @__PURE__ */ new Map();
23505
23700
  for (const unit of job.units) {
@@ -23589,13 +23784,13 @@ function transformDollarEvent(unit, ops) {
23589
23784
  }
23590
23785
  }
23591
23786
  function resolveI18nElementPlaceholders(job) {
23592
- const extractedMessageOps = /* @__PURE__ */ new Map();
23787
+ const i18nContexts = /* @__PURE__ */ new Map();
23593
23788
  const elements = /* @__PURE__ */ new Map();
23594
23789
  for (const unit of job.units) {
23595
23790
  for (const op of unit.create) {
23596
23791
  switch (op.kind) {
23597
- case OpKind.ExtractedMessage:
23598
- extractedMessageOps.set(op.owner, op);
23792
+ case OpKind.I18nContext:
23793
+ i18nContexts.set(op.xref, op);
23599
23794
  break;
23600
23795
  case OpKind.ElementStart:
23601
23796
  elements.set(op.xref, op);
@@ -23608,10 +23803,10 @@ function resolveI18nElementPlaceholders(job) {
23608
23803
  for (const op of unit.create) {
23609
23804
  switch (op.kind) {
23610
23805
  case OpKind.I18nStart:
23611
- if (!extractedMessageOps.has(op.xref)) {
23612
- throw Error("Could not find extracted message for i18n op");
23806
+ if (!op.context) {
23807
+ throw Error("Could not find i18n context for i18n op");
23613
23808
  }
23614
- currentOps = { i18n: op, extractedMessage: extractedMessageOps.get(op.xref) };
23809
+ currentOps = { i18nBlock: op, i18nContext: i18nContexts.get(op.context) };
23615
23810
  break;
23616
23811
  case OpKind.I18nEnd:
23617
23812
  currentOps = null;
@@ -23626,7 +23821,7 @@ function resolveI18nElementPlaceholders(job) {
23626
23821
  if (closeName === "") {
23627
23822
  flags |= I18nParamValueFlags.CloseTag;
23628
23823
  }
23629
- addParam(currentOps.extractedMessage.params, startName, op.handle.slot, currentOps.i18n.subTemplateIndex, flags);
23824
+ addParam(currentOps.i18nContext.params, startName, op.handle.slot, currentOps.i18nBlock.subTemplateIndex, flags);
23630
23825
  }
23631
23826
  break;
23632
23827
  case OpKind.ElementEnd:
@@ -23637,7 +23832,7 @@ function resolveI18nElementPlaceholders(job) {
23637
23832
  }
23638
23833
  const { closeName } = startOp.i18nPlaceholder;
23639
23834
  if (closeName !== "") {
23640
- addParam(currentOps.extractedMessage.params, closeName, startOp.handle.slot, currentOps.i18n.subTemplateIndex, I18nParamValueFlags.ElementTag | I18nParamValueFlags.CloseTag);
23835
+ addParam(currentOps.i18nContext.params, closeName, startOp.handle.slot, currentOps.i18nBlock.subTemplateIndex, I18nParamValueFlags.ElementTag | I18nParamValueFlags.CloseTag);
23641
23836
  }
23642
23837
  }
23643
23838
  break;
@@ -23646,9 +23841,9 @@ function resolveI18nElementPlaceholders(job) {
23646
23841
  if (currentOps === null) {
23647
23842
  throw Error("i18n tag placeholder should only occur inside an i18n block");
23648
23843
  }
23649
- const subTemplateIndex = getSubTemplateIndexForTemplateTag(job, currentOps.i18n, op);
23650
- addParam(currentOps.extractedMessage.params, op.i18nPlaceholder.startName, op.handle.slot, subTemplateIndex, I18nParamValueFlags.TemplateTag);
23651
- addParam(currentOps.extractedMessage.params, op.i18nPlaceholder.closeName, op.handle.slot, subTemplateIndex, I18nParamValueFlags.TemplateTag | I18nParamValueFlags.CloseTag);
23844
+ const subTemplateIndex = getSubTemplateIndexForTemplateTag(job, currentOps.i18nBlock, op);
23845
+ addParam(currentOps.i18nContext.params, op.i18nPlaceholder.startName, op.handle.slot, subTemplateIndex, I18nParamValueFlags.TemplateTag);
23846
+ addParam(currentOps.i18nContext.params, op.i18nPlaceholder.closeName, op.handle.slot, subTemplateIndex, I18nParamValueFlags.TemplateTag | I18nParamValueFlags.CloseTag);
23652
23847
  }
23653
23848
  break;
23654
23849
  }
@@ -23670,16 +23865,16 @@ function addParam(params, placeholder, value, subTemplateIndex, flags = I18nPara
23670
23865
  params.set(placeholder, values);
23671
23866
  }
23672
23867
  function resolveI18nExpressionPlaceholders(job) {
23673
- const i18nOps = /* @__PURE__ */ new Map();
23674
- const extractedMessageOps = /* @__PURE__ */ new Map();
23868
+ const subTemplateIndicies = /* @__PURE__ */ new Map();
23869
+ const i18nContexts = /* @__PURE__ */ new Map();
23675
23870
  for (const unit of job.units) {
23676
23871
  for (const op of unit.create) {
23677
23872
  switch (op.kind) {
23678
23873
  case OpKind.I18nStart:
23679
- i18nOps.set(op.xref, op);
23874
+ subTemplateIndicies.set(op.xref, op.subTemplateIndex);
23680
23875
  break;
23681
- case OpKind.ExtractedMessage:
23682
- extractedMessageOps.set(op.owner, op);
23876
+ case OpKind.I18nContext:
23877
+ i18nContexts.set(op.xref, op);
23683
23878
  break;
23684
23879
  }
23685
23880
  }
@@ -23688,24 +23883,14 @@ function resolveI18nExpressionPlaceholders(job) {
23688
23883
  for (const unit of job.units) {
23689
23884
  for (const op of unit.update) {
23690
23885
  if (op.kind === OpKind.I18nExpression) {
23691
- const i18nOp = i18nOps.get(op.owner);
23692
- let index2 = expressionIndices.get(op.owner) || 0;
23693
- if (!i18nOp) {
23694
- throw Error("Cannot find corresponding i18n block for i18nExpr");
23695
- }
23696
- const extractedMessageOp = extractedMessageOps.get(i18nOp.xref);
23697
- if (!extractedMessageOp) {
23698
- throw Error("Cannot find extracted message for i18n block");
23699
- }
23700
- const params = op.resolutionTime === I18nParamResolutionTime.Creation ? extractedMessageOp.params : extractedMessageOp.postprocessingParams;
23886
+ const index2 = expressionIndices.get(op.context) || 0;
23887
+ const i18nContext = i18nContexts.get(op.context);
23888
+ const subTemplateIndex = subTemplateIndicies.get(i18nContext.i18nBlock);
23889
+ const params = op.resolutionTime === I18nParamResolutionTime.Creation ? i18nContext.params : i18nContext.postprocessingParams;
23701
23890
  const values = params.get(op.i18nPlaceholder) || [];
23702
- values.push({
23703
- value: index2,
23704
- subTemplateIndex: i18nOp.subTemplateIndex,
23705
- flags: I18nParamValueFlags.None
23706
- });
23891
+ values.push({ value: index2, subTemplateIndex, flags: I18nParamValueFlags.None });
23707
23892
  params.set(op.i18nPlaceholder, values);
23708
- expressionIndices.set(op.owner, index2 + 1);
23893
+ expressionIndices.set(op.context, index2 + 1);
23709
23894
  }
23710
23895
  }
23711
23896
  }
@@ -24430,6 +24615,7 @@ var phases = [
24430
24615
  { kind: CompilationJobKind.Both, fn: specializeBindings },
24431
24616
  { kind: CompilationJobKind.Tmpl, fn: propagateI18nBlocks },
24432
24617
  { kind: CompilationJobKind.Tmpl, fn: wrapI18nIcus },
24618
+ { kind: CompilationJobKind.Tmpl, fn: createI18nContexts },
24433
24619
  { kind: CompilationJobKind.Both, fn: extractAttributes },
24434
24620
  { kind: CompilationJobKind.Both, fn: parseExtractedStyles },
24435
24621
  { kind: CompilationJobKind.Tmpl, fn: removeEmptyBindings },
@@ -24439,7 +24625,7 @@ var phases = [
24439
24625
  { kind: CompilationJobKind.Tmpl, fn: createPipes },
24440
24626
  { kind: CompilationJobKind.Tmpl, fn: configureDeferInstructions },
24441
24627
  { kind: CompilationJobKind.Tmpl, fn: extractI18nText },
24442
- { kind: CompilationJobKind.Tmpl, fn: extractI18nICUs },
24628
+ { kind: CompilationJobKind.Tmpl, fn: createI18nIcuExpressions },
24443
24629
  { kind: CompilationJobKind.Tmpl, fn: applyI18nExpressions },
24444
24630
  { kind: CompilationJobKind.Tmpl, fn: createVariadicPipes },
24445
24631
  { kind: CompilationJobKind.Both, fn: generatePureLiteralStructures },
@@ -24460,16 +24646,17 @@ var phases = [
24460
24646
  { kind: CompilationJobKind.Both, fn: expandSafeReads },
24461
24647
  { kind: CompilationJobKind.Both, fn: generateTemporaryVariables },
24462
24648
  { kind: CompilationJobKind.Tmpl, fn: allocateSlots },
24463
- { kind: CompilationJobKind.Tmpl, fn: extractI18nMessages },
24649
+ { kind: CompilationJobKind.Tmpl, fn: createDeferDepsFns },
24464
24650
  { kind: CompilationJobKind.Tmpl, fn: resolveI18nElementPlaceholders },
24465
24651
  { kind: CompilationJobKind.Tmpl, fn: resolveI18nExpressionPlaceholders },
24466
- { kind: CompilationJobKind.Tmpl, fn: propogateI18nPlaceholders },
24467
- { kind: CompilationJobKind.Tmpl, fn: formatI18nParams },
24652
+ { kind: CompilationJobKind.Tmpl, fn: mergeI18nContexts },
24653
+ { kind: CompilationJobKind.Tmpl, fn: extractI18nMessages },
24468
24654
  { kind: CompilationJobKind.Tmpl, fn: generateTrackFns },
24469
24655
  { kind: CompilationJobKind.Tmpl, fn: collectI18nConsts },
24470
24656
  { kind: CompilationJobKind.Tmpl, fn: collectConstExpressions },
24471
24657
  { kind: CompilationJobKind.Both, fn: collectElementConsts },
24472
24658
  { kind: CompilationJobKind.Tmpl, fn: assignI18nSlotDependencies },
24659
+ { kind: CompilationJobKind.Tmpl, fn: removeI18nContexts },
24473
24660
  { kind: CompilationJobKind.Both, fn: countVariables },
24474
24661
  { kind: CompilationJobKind.Tmpl, fn: generateAdvance },
24475
24662
  { kind: CompilationJobKind.Both, fn: optimizeVariables },
@@ -24584,8 +24771,8 @@ function emitHostBindingFunction(job) {
24584
24771
  );
24585
24772
  }
24586
24773
  var compatibilityMode = CompatibilityMode.TemplateDefinitionBuilder;
24587
- function ingestComponent(componentName, template2, constantPool, relativeContextFilePath, i18nUseExternalIds) {
24588
- const job = new ComponentCompilationJob(componentName, constantPool, compatibilityMode, relativeContextFilePath, i18nUseExternalIds);
24774
+ function ingestComponent(componentName, template2, constantPool, relativeContextFilePath, i18nUseExternalIds, deferBlocksMeta) {
24775
+ const job = new ComponentCompilationJob(componentName, constantPool, compatibilityMode, relativeContextFilePath, i18nUseExternalIds, deferBlocksMeta);
24589
24776
  ingestNodes(job.root, template2);
24590
24777
  return job;
24591
24778
  }
@@ -24668,6 +24855,7 @@ function ingestNodes(unit, template2) {
24668
24855
  }
24669
24856
  }
24670
24857
  function ingestElement(unit, element2) {
24858
+ var _a2;
24671
24859
  if (element2.i18n !== void 0 && !(element2.i18n instanceof Message || element2.i18n instanceof TagPlaceholder)) {
24672
24860
  throw Error(`Unhandled i18n metadata type for element: ${element2.i18n.constructor.name}`);
24673
24861
  }
@@ -24678,7 +24866,7 @@ function ingestElement(unit, element2) {
24678
24866
  ingestBindings(unit, startOp, element2);
24679
24867
  ingestReferences(startOp, element2);
24680
24868
  ingestNodes(unit, element2.children);
24681
- const endOp = createElementEndOp(id, element2.endSourceSpan);
24869
+ const endOp = createElementEndOp(id, (_a2 = element2.endSourceSpan) != null ? _a2 : element2.startSourceSpan);
24682
24870
  unit.create.push(endOp);
24683
24871
  if (element2.i18n instanceof Message) {
24684
24872
  const i18nBlockId = unit.job.allocateXrefId();
@@ -24801,12 +24989,16 @@ function ingestDeferView(unit, suffix, children, sourceSpan) {
24801
24989
  }
24802
24990
  function ingestDeferBlock(unit, deferBlock) {
24803
24991
  var _a2, _b2, _c2, _d2, _e2, _f2, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;
24992
+ const blockMeta = unit.job.deferBlocksMeta.get(deferBlock);
24993
+ if (blockMeta === void 0) {
24994
+ throw new Error(`AssertionError: unable to find metadata for deferred block`);
24995
+ }
24804
24996
  const main = ingestDeferView(unit, "", deferBlock.children, deferBlock.sourceSpan);
24805
24997
  const loading = ingestDeferView(unit, "Loading", (_a2 = deferBlock.loading) == null ? void 0 : _a2.children, (_b2 = deferBlock.loading) == null ? void 0 : _b2.sourceSpan);
24806
24998
  const placeholder = ingestDeferView(unit, "Placeholder", (_c2 = deferBlock.placeholder) == null ? void 0 : _c2.children, (_d2 = deferBlock.placeholder) == null ? void 0 : _d2.sourceSpan);
24807
24999
  const error2 = ingestDeferView(unit, "Error", (_e2 = deferBlock.error) == null ? void 0 : _e2.children, (_f2 = deferBlock.error) == null ? void 0 : _f2.sourceSpan);
24808
25000
  const deferXref = unit.job.allocateXrefId();
24809
- const deferOp = createDeferOp(deferXref, main.xref, main.handle, deferBlock.sourceSpan);
25001
+ const deferOp = createDeferOp(deferXref, main.xref, main.handle, blockMeta, deferBlock.sourceSpan);
24810
25002
  deferOp.placeholderView = (_g = placeholder == null ? void 0 : placeholder.xref) != null ? _g : null;
24811
25003
  deferOp.placeholderSlot = (_h = placeholder == null ? void 0 : placeholder.handle) != null ? _h : null;
24812
25004
  deferOp.loadingSlot = (_i = loading == null ? void 0 : loading.handle) != null ? _i : null;
@@ -24817,17 +25009,18 @@ function ingestDeferBlock(unit, deferBlock) {
24817
25009
  unit.create.push(deferOp);
24818
25010
  let prefetch = false;
24819
25011
  let deferOnOps = [];
25012
+ let deferWhenOps = [];
24820
25013
  for (const triggers of [deferBlock.triggers, deferBlock.prefetchTriggers]) {
24821
25014
  if (triggers.idle !== void 0) {
24822
- const deferOnOp = createDeferOnOp(deferXref, { kind: DeferTriggerKind.Idle }, prefetch, null);
25015
+ const deferOnOp = createDeferOnOp(deferXref, { kind: DeferTriggerKind.Idle }, prefetch, triggers.idle.sourceSpan);
24823
25016
  deferOnOps.push(deferOnOp);
24824
25017
  }
24825
25018
  if (triggers.immediate !== void 0) {
24826
- const deferOnOp = createDeferOnOp(deferXref, { kind: DeferTriggerKind.Immediate }, prefetch, null);
25019
+ const deferOnOp = createDeferOnOp(deferXref, { kind: DeferTriggerKind.Immediate }, prefetch, triggers.immediate.sourceSpan);
24827
25020
  deferOnOps.push(deferOnOp);
24828
25021
  }
24829
25022
  if (triggers.timer !== void 0) {
24830
- const deferOnOp = createDeferOnOp(deferXref, { kind: DeferTriggerKind.Timer, delay: triggers.timer.delay }, prefetch, null);
25023
+ const deferOnOp = createDeferOnOp(deferXref, { kind: DeferTriggerKind.Timer, delay: triggers.timer.delay }, prefetch, triggers.timer.sourceSpan);
24831
25024
  deferOnOps.push(deferOnOp);
24832
25025
  }
24833
25026
  if (triggers.hover !== void 0) {
@@ -24838,7 +25031,7 @@ function ingestDeferBlock(unit, deferBlock) {
24838
25031
  targetSlot: null,
24839
25032
  targetView: null,
24840
25033
  targetSlotViewSteps: null
24841
- }, prefetch, null);
25034
+ }, prefetch, triggers.hover.sourceSpan);
24842
25035
  deferOnOps.push(deferOnOp);
24843
25036
  }
24844
25037
  if (triggers.interaction !== void 0) {
@@ -24849,7 +25042,7 @@ function ingestDeferBlock(unit, deferBlock) {
24849
25042
  targetSlot: null,
24850
25043
  targetView: null,
24851
25044
  targetSlotViewSteps: null
24852
- }, prefetch, null);
25045
+ }, prefetch, triggers.interaction.sourceSpan);
24853
25046
  deferOnOps.push(deferOnOp);
24854
25047
  }
24855
25048
  if (triggers.viewport !== void 0) {
@@ -24860,21 +25053,26 @@ function ingestDeferBlock(unit, deferBlock) {
24860
25053
  targetSlot: null,
24861
25054
  targetView: null,
24862
25055
  targetSlotViewSteps: null
24863
- }, prefetch, null);
25056
+ }, prefetch, triggers.viewport.sourceSpan);
24864
25057
  deferOnOps.push(deferOnOp);
24865
25058
  }
24866
- if (deferOnOps.length === 0) {
25059
+ if (triggers.when !== void 0) {
25060
+ const deferOnOp = createDeferWhenOp(deferXref, convertAst(triggers.when.value, unit.job, triggers.when.sourceSpan), prefetch, triggers.when.sourceSpan);
25061
+ deferWhenOps.push(deferOnOp);
25062
+ }
25063
+ if (deferOnOps.length === 0 && deferWhenOps.length === 0) {
24867
25064
  deferOnOps.push(createDeferOnOp(deferXref, { kind: DeferTriggerKind.Idle }, false, null));
24868
25065
  }
24869
25066
  prefetch = true;
24870
25067
  }
24871
25068
  unit.create.push(deferOnOps);
25069
+ unit.update.push(deferWhenOps);
24872
25070
  }
24873
25071
  function ingestIcu(unit, icu) {
24874
25072
  var _a2;
24875
- if (icu.i18n instanceof Message) {
25073
+ if (icu.i18n instanceof Message && isSingleI18nIcu(icu.i18n)) {
24876
25074
  const xref = unit.job.allocateXrefId();
24877
- unit.create.push(createIcuOp(xref, icu.i18n, null));
25075
+ unit.create.push(createIcuOp(xref, icu.i18n, icu.i18n.nodes[0], icuFromI18nMessage(icu.i18n).name, null));
24878
25076
  unit.update.push(createIcuUpdateOp(xref, null));
24879
25077
  } else {
24880
25078
  throw Error(`Unhandled i18n metadata type for ICU: ${(_a2 = icu.i18n) == null ? void 0 : _a2.constructor.name}`);
@@ -24932,6 +25130,15 @@ function convertAst(ast, job, baseSourceSpan) {
24932
25130
  return new ReadPropExpr(convertAst(ast.receiver, job, baseSourceSpan), ast.name, null, convertSourceSpan(ast.span, baseSourceSpan));
24933
25131
  }
24934
25132
  } else if (ast instanceof PropertyWrite) {
25133
+ if (ast.receiver instanceof ImplicitReceiver) {
25134
+ return new WritePropExpr(
25135
+ new ContextExpr(job.root.xref),
25136
+ ast.name,
25137
+ convertAst(ast.value, job, baseSourceSpan),
25138
+ null,
25139
+ convertSourceSpan(ast.span, baseSourceSpan)
25140
+ );
25141
+ }
24935
25142
  return new WritePropExpr(convertAst(ast.receiver, job, baseSourceSpan), ast.name, convertAst(ast.value, job, baseSourceSpan), void 0, convertSourceSpan(ast.span, baseSourceSpan));
24936
25143
  } else if (ast instanceof KeyedWrite) {
24937
25144
  return new WriteKeyExpr(convertAst(ast.receiver, job, baseSourceSpan), convertAst(ast.key, job, baseSourceSpan), convertAst(ast.value, job, baseSourceSpan), void 0, convertSourceSpan(ast.span, baseSourceSpan));
@@ -24981,7 +25188,7 @@ function convertAst(ast, job, baseSourceSpan) {
24981
25188
  } else if (ast instanceof EmptyExpr$1) {
24982
25189
  return new EmptyExpr(convertSourceSpan(ast.span, baseSourceSpan));
24983
25190
  } else {
24984
- throw new Error(`Unhandled expression type: ${ast.constructor.name}`);
25191
+ throw new Error(`Unhandled expression type "${ast.constructor.name}" in file "${baseSourceSpan == null ? void 0 : baseSourceSpan.start.file.url}"`);
24985
25192
  }
24986
25193
  }
24987
25194
  function isPlainTemplate(tmpl) {
@@ -25119,7 +25326,8 @@ function ingestControlFlowInsertionPoint(unit, xref, node) {
25119
25326
  for (const attr of root2.attributes) {
25120
25327
  ingestBinding(unit, xref, attr.name, literal(attr.value), 1, null, SecurityContext.NONE, attr.sourceSpan, BindingFlags.TextValue);
25121
25328
  }
25122
- return root2 instanceof Element$1 ? root2.name : root2.tagName;
25329
+ const tagName = root2 instanceof Element$1 ? root2.name : root2.tagName;
25330
+ return tagName === "ng-template" ? null : tagName;
25123
25331
  }
25124
25332
  return null;
25125
25333
  }
@@ -27991,7 +28199,8 @@ var TemplateDefinitionBuilder = class {
27991
28199
  }
27992
28200
  }
27993
28201
  if (root2 !== null) {
27994
- tagName = root2 instanceof Element$1 ? root2.name : root2.tagName;
28202
+ const name = root2 instanceof Element$1 ? root2.name : root2.tagName;
28203
+ tagName = name === NG_TEMPLATE_TAG_NAME ? null : name;
27995
28204
  attrsExprs = this.getAttributeExpressions(NG_TEMPLATE_TAG_NAME, root2.attributes, root2.inputs, []);
27996
28205
  }
27997
28206
  return { tagName, attrsExprs };
@@ -28939,7 +29148,7 @@ function compileComponentFromMetadata(meta, constantPool, bindingParser) {
28939
29148
  }
28940
29149
  definitionMap.set("template", templateFunctionExpression);
28941
29150
  } else {
28942
- const tpl = ingestComponent(meta.name, meta.template.nodes, constantPool, meta.relativeContextFilePath, meta.i18nUseExternalIds);
29151
+ const tpl = ingestComponent(meta.name, meta.template.nodes, constantPool, meta.relativeContextFilePath, meta.i18nUseExternalIds, meta.deferBlocks);
28943
29152
  transform(tpl, CompilationJobKind.Tmpl);
28944
29153
  const templateFn = emitTemplateFn(tpl, constantPool);
28945
29154
  if (tpl.contentSelectors !== null) {
@@ -30582,7 +30791,7 @@ function publishFacade(global) {
30582
30791
  const ng = global.ng || (global.ng = {});
30583
30792
  ng.\u0275compilerFacade = new CompilerFacadeImpl();
30584
30793
  }
30585
- var VERSION = new Version("17.0.0-rc.2");
30794
+ var VERSION = new Version("17.0.0");
30586
30795
  var _VisitorMode;
30587
30796
  (function(_VisitorMode2) {
30588
30797
  _VisitorMode2[_VisitorMode2["Extract"] = 0] = "Extract";
@@ -30618,7 +30827,7 @@ var FactoryTarget;
30618
30827
  })(FactoryTarget || (FactoryTarget = {}));
30619
30828
  publishFacade(_global);
30620
30829
 
30621
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/tree-traversal.js
30830
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/tree-traversal.js
30622
30831
  function visitElements(nodes, preorderCallback = () => {
30623
30832
  }, postorderCallback = () => {
30624
30833
  }) {
@@ -30698,7 +30907,7 @@ function replaceAt(str, offset, oldSubstr, newSubstr) {
30698
30907
  return prefix + newSubstr + suffix;
30699
30908
  }
30700
30909
 
30701
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/card/card-template.js
30910
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/card/card-template.js
30702
30911
  var CardTemplateMigrator = class extends TemplateMigrator {
30703
30912
  getUpdates(ast) {
30704
30913
  const updates = [];
@@ -30715,7 +30924,7 @@ var CardTemplateMigrator = class extends TemplateMigrator {
30715
30924
  }
30716
30925
  };
30717
30926
 
30718
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/checkbox/checkbox-styles.js
30927
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/checkbox/checkbox-styles.js
30719
30928
  var CheckboxStylesMigrator = class extends StyleMigrator {
30720
30929
  constructor() {
30721
30930
  super(...arguments);
@@ -30739,7 +30948,7 @@ var CheckboxStylesMigrator = class extends StyleMigrator {
30739
30948
  }
30740
30949
  };
30741
30950
 
30742
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/chips/chips-styles.js
30951
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/chips/chips-styles.js
30743
30952
  var ChipsStylesMigrator = class extends StyleMigrator {
30744
30953
  constructor() {
30745
30954
  super(...arguments);
@@ -30770,7 +30979,7 @@ var ChipsStylesMigrator = class extends StyleMigrator {
30770
30979
  }
30771
30980
  };
30772
30981
 
30773
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/chips/chips-template.js
30982
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/chips/chips-template.js
30774
30983
  var ChipsTemplateMigrator = class extends TemplateMigrator {
30775
30984
  constructor() {
30776
30985
  super(...arguments);
@@ -30850,7 +31059,7 @@ var ChipsTemplateMigrator = class extends TemplateMigrator {
30850
31059
  }
30851
31060
  };
30852
31061
 
30853
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/dialog/dialog-styles.js
31062
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/dialog/dialog-styles.js
30854
31063
  var DialogStylesMigrator = class extends StyleMigrator {
30855
31064
  constructor() {
30856
31065
  super(...arguments);
@@ -30880,7 +31089,7 @@ var DialogStylesMigrator = class extends StyleMigrator {
30880
31089
  }
30881
31090
  };
30882
31091
 
30883
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/form-field/form-field-styles.js
31092
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/form-field/form-field-styles.js
30884
31093
  var FormFieldStylesMigrator = class extends StyleMigrator {
30885
31094
  constructor() {
30886
31095
  super(...arguments);
@@ -30937,7 +31146,7 @@ var FormFieldStylesMigrator = class extends StyleMigrator {
30937
31146
  }
30938
31147
  };
30939
31148
 
30940
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/input/input-styles.js
31149
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/input/input-styles.js
30941
31150
  var InputStylesMigrator = class extends StyleMigrator {
30942
31151
  constructor() {
30943
31152
  super(...arguments);
@@ -30961,7 +31170,7 @@ var InputStylesMigrator = class extends StyleMigrator {
30961
31170
  }
30962
31171
  };
30963
31172
 
30964
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/list/list-styles.js
31173
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/list/list-styles.js
30965
31174
  var ListStylesMigrator = class extends StyleMigrator {
30966
31175
  constructor() {
30967
31176
  super(...arguments);
@@ -30992,7 +31201,7 @@ var ListStylesMigrator = class extends StyleMigrator {
30992
31201
  }
30993
31202
  };
30994
31203
 
30995
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/menu/menu-styles.js
31204
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/menu/menu-styles.js
30996
31205
  var MenuStylesMigrator = class extends StyleMigrator {
30997
31206
  constructor() {
30998
31207
  super(...arguments);
@@ -31025,7 +31234,7 @@ var MenuStylesMigrator = class extends StyleMigrator {
31025
31234
  }
31026
31235
  };
31027
31236
 
31028
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/paginator/paginator-styles.js
31237
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/paginator/paginator-styles.js
31029
31238
  var PaginatorStylesMigrator = class extends StyleMigrator {
31030
31239
  constructor() {
31031
31240
  super(...arguments);
@@ -31071,7 +31280,7 @@ var PaginatorStylesMigrator = class extends StyleMigrator {
31071
31280
  }
31072
31281
  };
31073
31282
 
31074
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/progress-bar/progress-bar-styles.js
31283
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/progress-bar/progress-bar-styles.js
31075
31284
  var ProgressBarStylesMigrator = class extends StyleMigrator {
31076
31285
  constructor() {
31077
31286
  super(...arguments);
@@ -31095,7 +31304,7 @@ var ProgressBarStylesMigrator = class extends StyleMigrator {
31095
31304
  }
31096
31305
  };
31097
31306
 
31098
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/progress-spinner/progress-spinner-styles.js
31307
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/progress-spinner/progress-spinner-styles.js
31099
31308
  var ProgressSpinnerStylesMigrator = class extends StyleMigrator {
31100
31309
  constructor() {
31101
31310
  super(...arguments);
@@ -31122,7 +31331,7 @@ var ProgressSpinnerStylesMigrator = class extends StyleMigrator {
31122
31331
  }
31123
31332
  };
31124
31333
 
31125
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/radio/radio-styles.js
31334
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/radio/radio-styles.js
31126
31335
  var RadioStylesMigrator = class extends StyleMigrator {
31127
31336
  constructor() {
31128
31337
  super(...arguments);
@@ -31149,7 +31358,7 @@ var RadioStylesMigrator = class extends StyleMigrator {
31149
31358
  }
31150
31359
  };
31151
31360
 
31152
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/select/select-styles.js
31361
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/select/select-styles.js
31153
31362
  var SelectStylesMigrator = class extends StyleMigrator {
31154
31363
  constructor() {
31155
31364
  super(...arguments);
@@ -31180,7 +31389,7 @@ var SelectStylesMigrator = class extends StyleMigrator {
31180
31389
  }
31181
31390
  };
31182
31391
 
31183
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/slide-toggle/slide-toggle-styles.js
31392
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/slide-toggle/slide-toggle-styles.js
31184
31393
  var SlideToggleStylesMigrator = class extends StyleMigrator {
31185
31394
  constructor() {
31186
31395
  super(...arguments);
@@ -31204,7 +31413,7 @@ var SlideToggleStylesMigrator = class extends StyleMigrator {
31204
31413
  }
31205
31414
  };
31206
31415
 
31207
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/slider/slider-styles.js
31416
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/slider/slider-styles.js
31208
31417
  var SliderStylesMigrator = class extends StyleMigrator {
31209
31418
  constructor() {
31210
31419
  super(...arguments);
@@ -31228,7 +31437,7 @@ var SliderStylesMigrator = class extends StyleMigrator {
31228
31437
  }
31229
31438
  };
31230
31439
 
31231
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/snack-bar/snack-bar-styles.js
31440
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/snack-bar/snack-bar-styles.js
31232
31441
  var SnackBarMigrator = class extends StyleMigrator {
31233
31442
  constructor() {
31234
31443
  super(...arguments);
@@ -31261,7 +31470,7 @@ var SnackBarMigrator = class extends StyleMigrator {
31261
31470
  }
31262
31471
  };
31263
31472
 
31264
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/table/table-styles.js
31473
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/table/table-styles.js
31265
31474
  var TableStylesMigrator = class extends StyleMigrator {
31266
31475
  constructor() {
31267
31476
  super(...arguments);
@@ -31302,7 +31511,7 @@ var TableStylesMigrator = class extends StyleMigrator {
31302
31511
  }
31303
31512
  };
31304
31513
 
31305
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/tabs/tabs-styles.js
31514
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/tabs/tabs-styles.js
31306
31515
  var TabsStylesMigrator = class extends StyleMigrator {
31307
31516
  constructor() {
31308
31517
  super(...arguments);
@@ -31333,7 +31542,7 @@ var TabsStylesMigrator = class extends StyleMigrator {
31333
31542
  }
31334
31543
  };
31335
31544
 
31336
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/tooltip/tooltip-styles.js
31545
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/tooltip/tooltip-styles.js
31337
31546
  var TooltipStylesMigrator = class extends StyleMigrator {
31338
31547
  constructor() {
31339
31548
  super(...arguments);
@@ -31367,7 +31576,7 @@ var TooltipStylesMigrator = class extends StyleMigrator {
31367
31576
  }
31368
31577
  };
31369
31578
 
31370
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/optgroup/optgroup-styles.js
31579
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/optgroup/optgroup-styles.js
31371
31580
  var OptgroupStylesMigrator = class extends StyleMigrator {
31372
31581
  constructor() {
31373
31582
  super(...arguments);
@@ -31400,7 +31609,7 @@ var OptgroupStylesMigrator = class extends StyleMigrator {
31400
31609
  }
31401
31610
  };
31402
31611
 
31403
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/option/option-styles.js
31612
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/option/option-styles.js
31404
31613
  var OptionStylesMigrator = class extends StyleMigrator {
31405
31614
  constructor() {
31406
31615
  super(...arguments);
@@ -31453,7 +31662,7 @@ var OptionStylesMigrator = class extends StyleMigrator {
31453
31662
  }
31454
31663
  };
31455
31664
 
31456
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/form-field/form-field-template.js
31665
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/form-field/form-field-template.js
31457
31666
  var FormFieldTemplateMigrator = class extends TemplateMigrator {
31458
31667
  getUpdates(ast) {
31459
31668
  const updates = [];
@@ -31470,7 +31679,7 @@ var FormFieldTemplateMigrator = class extends TemplateMigrator {
31470
31679
  }
31471
31680
  };
31472
31681
 
31473
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/slider/slider-template.js
31682
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/slider/slider-template.js
31474
31683
  var SliderTemplateMigrator = class extends TemplateMigrator {
31475
31684
  getUpdates(ast) {
31476
31685
  const updates = [];
@@ -31589,7 +31798,7 @@ var SliderTemplateMigrator = class extends TemplateMigrator {
31589
31798
  }
31590
31799
  };
31591
31800
 
31592
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/typography-hierarchy/constants.js
31801
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/typography-hierarchy/constants.js
31593
31802
  var mappings = [
31594
31803
  ["display-4", "headline-1"],
31595
31804
  ["display-3", "headline-2"],
@@ -31606,7 +31815,7 @@ var RENAMED_TYPOGRAPHY_LEVELS = new Map(mappings);
31606
31815
  var RENAMED_TYPOGRAPHY_CLASSES = new Map(mappings.map((m) => ["mat-" + m[0], "mat-" + m[1]]));
31607
31816
  var COMBINED_TYPOGRAPHY_LEVELS = /* @__PURE__ */ new Map([["input", "body-1"]]);
31608
31817
 
31609
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/typography-hierarchy/typography-hierarchy-template.js
31818
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/typography-hierarchy/typography-hierarchy-template.js
31610
31819
  var TypographyHierarchyTemplateMigrator = class extends TemplateMigrator {
31611
31820
  getUpdates(ast) {
31612
31821
  const updates = [];
@@ -31649,7 +31858,7 @@ var TypographyHierarchyTemplateMigrator = class extends TemplateMigrator {
31649
31858
  }
31650
31859
  };
31651
31860
 
31652
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/typography-hierarchy/typography-hierarchy-styles.js
31861
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/components/typography-hierarchy/typography-hierarchy-styles.js
31653
31862
  var TypographyHierarchyStylesMigrator = class extends StyleMigrator {
31654
31863
  constructor() {
31655
31864
  super();
@@ -31670,7 +31879,7 @@ var TypographyHierarchyStylesMigrator = class extends StyleMigrator {
31670
31879
  }
31671
31880
  };
31672
31881
 
31673
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/index.js
31882
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/index.js
31674
31883
  var LEGACY_MODULES = new Set([
31675
31884
  "legacy-autocomplete",
31676
31885
  "legacy-autocomplete/testing",
@@ -31824,14 +32033,14 @@ var PERMANENT_MIGRATORS = [
31824
32033
  ];
31825
32034
  var CORE_COMPONENTS = ["option", "optgroup"];
31826
32035
 
31827
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/index.mjs
32036
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/index.mjs
31828
32037
  var import_schematics4 = require("@angular/cdk/schematics");
31829
32038
 
31830
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/ts-migration/runtime-migration.js
32039
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/ts-migration/runtime-migration.js
31831
32040
  var import_schematics3 = require("@angular/cdk/schematics");
31832
32041
  var ts = __toESM(require("typescript"));
31833
32042
 
31834
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/theming-styles.js
32043
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/theming-styles.js
31835
32044
  var import_schematics = require("@angular/cdk/schematics");
31836
32045
  var import_path = require("path");
31837
32046
 
@@ -31874,7 +32083,7 @@ var scss_syntax_default = import_scss_syntax.default;
31874
32083
  var stringify3 = import_scss_syntax.default.stringify;
31875
32084
  var parse3 = import_scss_syntax.default.parse;
31876
32085
 
31877
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/theming-styles.js
32086
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/theming-styles.js
31878
32087
  var COMPONENTS_MIXIN_NAME = /\.([^(;]*)/;
31879
32088
  var ThemingStylesMigration = class extends import_schematics.Migration {
31880
32089
  constructor() {
@@ -32158,17 +32367,17 @@ function extractValueRange(content, colonIndex) {
32158
32367
  return start > -1 && end > -1 ? { start, end, fullEnd } : null;
32159
32368
  }
32160
32369
 
32161
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/template-migration.js
32370
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/template-migration.js
32162
32371
  var import_schematics2 = require("@angular/cdk/schematics");
32163
32372
 
32164
- // bazel-out/k8-fastbuild/bin/src/material/schematics/migration-utilities/update.js
32373
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/migration-utilities/update.js
32165
32374
  function writeUpdates(content, updates) {
32166
32375
  updates.sort((a, b) => b.offset - a.offset);
32167
32376
  updates.forEach((update) => content = update.updateFn(content));
32168
32377
  return content;
32169
32378
  }
32170
32379
 
32171
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/template-migration.js
32380
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/template-migration.js
32172
32381
  var TemplateMigration = class extends import_schematics2.Migration {
32173
32382
  constructor() {
32174
32383
  super(...arguments);
@@ -32196,7 +32405,7 @@ var TemplateMigration = class extends import_schematics2.Migration {
32196
32405
  }
32197
32406
  };
32198
32407
 
32199
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/ts-migration/runtime-migration.js
32408
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/rules/ts-migration/runtime-migration.js
32200
32409
  var RuntimeCodeMigration = class extends import_schematics3.Migration {
32201
32410
  constructor() {
32202
32411
  super(...arguments);
@@ -32425,7 +32634,7 @@ var RuntimeCodeMigration = class extends import_schematics3.Migration {
32425
32634
  }
32426
32635
  };
32427
32636
 
32428
- // bazel-out/k8-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/index.mjs
32637
+ // bazel-out/darwin-fastbuild/bin/src/material/schematics/ng-generate/mdc-migration/index.mjs
32429
32638
  var migrationGroups = [
32430
32639
  ["autocomplete", "form-field", "input", "option", "optgroup", "select"],
32431
32640
  ["button"],
@@ -32529,7 +32738,7 @@ ${[...componentsToMigrate].join("\n")}`);
32529
32738
  * found in the LICENSE file at https://angular.io/license
32530
32739
  */
32531
32740
  /**
32532
- * @license Angular v17.0.0-rc.2
32741
+ * @license Angular v17.0.0
32533
32742
  * (c) 2010-2022 Google LLC. https://angular.io/
32534
32743
  * License: MIT
32535
32744
  */