@angular/material 20.1.0 → 20.2.0-next.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 (198) hide show
  1. package/fesm2022/animation-DfMFjxHu.mjs.map +1 -1
  2. package/fesm2022/autocomplete/testing.mjs.map +1 -1
  3. package/fesm2022/autocomplete.mjs +23 -23
  4. package/fesm2022/autocomplete.mjs.map +1 -1
  5. package/fesm2022/badge/testing.mjs.map +1 -1
  6. package/fesm2022/badge.mjs +11 -11
  7. package/fesm2022/badge.mjs.map +1 -1
  8. package/fesm2022/bottom-sheet/testing.mjs.map +1 -1
  9. package/fesm2022/bottom-sheet.mjs +11 -11
  10. package/fesm2022/bottom-sheet.mjs.map +1 -1
  11. package/fesm2022/button/testing.mjs.map +1 -1
  12. package/fesm2022/button-toggle/testing.mjs.map +1 -1
  13. package/fesm2022/button-toggle.mjs +16 -16
  14. package/fesm2022/button-toggle.mjs.map +1 -1
  15. package/fesm2022/button.mjs +20 -20
  16. package/fesm2022/button.mjs.map +1 -1
  17. package/fesm2022/card/testing.mjs.map +1 -1
  18. package/fesm2022/card.mjs +47 -47
  19. package/fesm2022/card.mjs.map +1 -1
  20. package/fesm2022/checkbox/testing.mjs.map +1 -1
  21. package/fesm2022/checkbox.mjs +12 -12
  22. package/fesm2022/checkbox.mjs.map +1 -1
  23. package/fesm2022/chips/testing.mjs.map +1 -1
  24. package/fesm2022/chips.mjs +50 -50
  25. package/fesm2022/chips.mjs.map +1 -1
  26. package/fesm2022/{common-module-cKSwHniA.mjs → common-module-DAS0wn13.mjs} +5 -5
  27. package/fesm2022/common-module-DAS0wn13.mjs.map +1 -0
  28. package/fesm2022/core/testing.mjs.map +1 -1
  29. package/fesm2022/core.mjs +24 -24
  30. package/fesm2022/core.mjs.map +1 -1
  31. package/fesm2022/date-formats-K6TQue-Y.mjs.map +1 -1
  32. package/fesm2022/date-range-input-harness-DEyfkeOs.mjs.map +1 -1
  33. package/fesm2022/datepicker/testing.mjs.map +1 -1
  34. package/fesm2022/datepicker.mjs +93 -93
  35. package/fesm2022/datepicker.mjs.map +1 -1
  36. package/fesm2022/dialog/testing.mjs +2 -2
  37. package/fesm2022/dialog/testing.mjs.map +1 -1
  38. package/fesm2022/dialog.mjs +2 -2
  39. package/fesm2022/dialog.mjs.map +1 -1
  40. package/fesm2022/divider/testing.mjs.map +1 -1
  41. package/fesm2022/divider.mjs +8 -8
  42. package/fesm2022/divider.mjs.map +1 -1
  43. package/fesm2022/{error-options-DCNQlTOA.mjs → error-options-Bq793X0d.mjs} +7 -7
  44. package/fesm2022/error-options-Bq793X0d.mjs.map +1 -0
  45. package/fesm2022/error-state-Dtb1IHM-.mjs.map +1 -1
  46. package/fesm2022/expansion/testing.mjs.map +1 -1
  47. package/fesm2022/expansion.mjs +27 -27
  48. package/fesm2022/expansion.mjs.map +1 -1
  49. package/fesm2022/form-field/testing/control.mjs.map +1 -1
  50. package/fesm2022/form-field/testing.mjs.map +1 -1
  51. package/fesm2022/{form-field-CFbrnFED.mjs → form-field-Bp1BCQ2b.mjs} +40 -40
  52. package/fesm2022/form-field-Bp1BCQ2b.mjs.map +1 -0
  53. package/fesm2022/form-field.mjs +3 -3
  54. package/fesm2022/form-field.mjs.map +1 -1
  55. package/fesm2022/grid-list/testing.mjs.map +1 -1
  56. package/fesm2022/grid-list.mjs +24 -24
  57. package/fesm2022/grid-list.mjs.map +1 -1
  58. package/fesm2022/icon/testing.mjs +8 -8
  59. package/fesm2022/icon/testing.mjs.map +1 -1
  60. package/fesm2022/{icon-button-DxiIc1ex.mjs → icon-button-KgXJnU_D.mjs} +9 -9
  61. package/fesm2022/icon-button-KgXJnU_D.mjs.map +1 -0
  62. package/fesm2022/{icon-registry-CwOTJ7YM.mjs → icon-registry-BoQxDGS7.mjs} +4 -4
  63. package/fesm2022/icon-registry-BoQxDGS7.mjs.map +1 -0
  64. package/fesm2022/icon.mjs +10 -10
  65. package/fesm2022/icon.mjs.map +1 -1
  66. package/fesm2022/index-ByBcQY3R.mjs +22 -0
  67. package/fesm2022/index-ByBcQY3R.mjs.map +1 -0
  68. package/fesm2022/index-DPMBppX-.mjs +20 -0
  69. package/fesm2022/index-DPMBppX-.mjs.map +1 -0
  70. package/fesm2022/input/testing.mjs.map +1 -1
  71. package/fesm2022/input-harness-C5Msdc4-.mjs.map +1 -1
  72. package/fesm2022/input-value-accessor-D1GvPuqO.mjs.map +1 -1
  73. package/fesm2022/input.mjs +12 -12
  74. package/fesm2022/input.mjs.map +1 -1
  75. package/fesm2022/{internal-form-field-D5iFxU6d.mjs → internal-form-field-BjqHmADC.mjs} +4 -4
  76. package/fesm2022/internal-form-field-BjqHmADC.mjs.map +1 -0
  77. package/fesm2022/{line-Bz5f9Cyx.mjs → line-BZzwAXSt.mjs} +9 -9
  78. package/fesm2022/line-BZzwAXSt.mjs.map +1 -0
  79. package/fesm2022/list/testing.mjs.map +1 -1
  80. package/fesm2022/list.mjs +58 -58
  81. package/fesm2022/list.mjs.map +1 -1
  82. package/fesm2022/material.mjs.map +1 -1
  83. package/fesm2022/menu/testing.mjs.map +1 -1
  84. package/fesm2022/menu.mjs +26 -26
  85. package/fesm2022/menu.mjs.map +1 -1
  86. package/fesm2022/{module-CWxMD37a.mjs → module-BLyJetA8.mjs} +12 -12
  87. package/fesm2022/module-BLyJetA8.mjs.map +1 -0
  88. package/fesm2022/{module-B0CLRw5e.mjs → module-D8r4rZmE.mjs} +18 -18
  89. package/fesm2022/module-D8r4rZmE.mjs.map +1 -0
  90. package/fesm2022/{module-B62K-792.mjs → module-DFA1Fexr.mjs} +7 -7
  91. package/fesm2022/module-DFA1Fexr.mjs.map +1 -0
  92. package/fesm2022/{module-Ce6F7TNm.mjs → module-MzaMA0u6.mjs} +27 -27
  93. package/fesm2022/module-MzaMA0u6.mjs.map +1 -0
  94. package/fesm2022/{option-BzhYL_xC.mjs → option-DikEMAxk.mjs} +11 -11
  95. package/fesm2022/option-DikEMAxk.mjs.map +1 -0
  96. package/fesm2022/option-harness-BFcc-M_4.mjs.map +1 -1
  97. package/fesm2022/paginator/testing.mjs.map +1 -1
  98. package/fesm2022/paginator.mjs +25 -25
  99. package/fesm2022/paginator.mjs.map +1 -1
  100. package/fesm2022/progress-bar/testing.mjs.map +1 -1
  101. package/fesm2022/progress-bar.mjs +8 -8
  102. package/fesm2022/progress-bar.mjs.map +1 -1
  103. package/fesm2022/progress-spinner/testing.mjs.map +1 -1
  104. package/fesm2022/progress-spinner.mjs +8 -8
  105. package/fesm2022/progress-spinner.mjs.map +1 -1
  106. package/fesm2022/{pseudo-checkbox-DDmgx3P4.mjs → pseudo-checkbox-MTYwd7sN.mjs} +4 -4
  107. package/fesm2022/pseudo-checkbox-MTYwd7sN.mjs.map +1 -0
  108. package/fesm2022/pseudo-checkbox-module-BH5rV6nS.mjs +20 -0
  109. package/fesm2022/pseudo-checkbox-module-BH5rV6nS.mjs.map +1 -0
  110. package/fesm2022/public-api-BoO5eSq-.mjs.map +1 -1
  111. package/fesm2022/radio/testing.mjs.map +1 -1
  112. package/fesm2022/radio.mjs +15 -15
  113. package/fesm2022/radio.mjs.map +1 -1
  114. package/fesm2022/{ripple-BYgV4oZC.mjs → ripple-Caf80wGY.mjs} +7 -7
  115. package/fesm2022/ripple-Caf80wGY.mjs.map +1 -0
  116. package/fesm2022/{ripple-loader-BnMiRtmT.mjs → ripple-loader-DWrwQmhi.mjs} +5 -5
  117. package/fesm2022/ripple-loader-DWrwQmhi.mjs.map +1 -0
  118. package/fesm2022/select/testing.mjs.map +1 -1
  119. package/fesm2022/select.mjs +12 -12
  120. package/fesm2022/select.mjs.map +1 -1
  121. package/fesm2022/sidenav/testing.mjs.map +1 -1
  122. package/fesm2022/sidenav.mjs +24 -24
  123. package/fesm2022/sidenav.mjs.map +1 -1
  124. package/fesm2022/slide-toggle/testing.mjs.map +1 -1
  125. package/fesm2022/slide-toggle.mjs +13 -13
  126. package/fesm2022/slide-toggle.mjs.map +1 -1
  127. package/fesm2022/slider/testing.mjs.map +1 -1
  128. package/fesm2022/slider.mjs +21 -21
  129. package/fesm2022/slider.mjs.map +1 -1
  130. package/fesm2022/snack-bar/testing.mjs.map +1 -1
  131. package/fesm2022/snack-bar.mjs +28 -28
  132. package/fesm2022/snack-bar.mjs.map +1 -1
  133. package/fesm2022/sort/testing.mjs.map +1 -1
  134. package/fesm2022/sort.mjs +16 -16
  135. package/fesm2022/sort.mjs.map +1 -1
  136. package/fesm2022/stepper/testing.mjs.map +1 -1
  137. package/fesm2022/stepper.mjs +38 -38
  138. package/fesm2022/stepper.mjs.map +1 -1
  139. package/fesm2022/{structural-styles-CObeNzjn.mjs → structural-styles-BrpNk7kf.mjs} +4 -4
  140. package/fesm2022/structural-styles-BrpNk7kf.mjs.map +1 -0
  141. package/fesm2022/table/testing.mjs.map +1 -1
  142. package/fesm2022/table.mjs +56 -56
  143. package/fesm2022/table.mjs.map +1 -1
  144. package/fesm2022/tabs/testing.mjs.map +1 -1
  145. package/fesm2022/tabs.mjs +51 -51
  146. package/fesm2022/tabs.mjs.map +1 -1
  147. package/fesm2022/timepicker/testing.mjs.map +1 -1
  148. package/fesm2022/timepicker.mjs +88 -74
  149. package/fesm2022/timepicker.mjs.map +1 -1
  150. package/fesm2022/toolbar/testing.mjs.map +1 -1
  151. package/fesm2022/toolbar.mjs +11 -11
  152. package/fesm2022/toolbar.mjs.map +1 -1
  153. package/fesm2022/tooltip/testing.mjs.map +1 -1
  154. package/fesm2022/tooltip.mjs +2 -2
  155. package/fesm2022/tooltip.mjs.map +1 -1
  156. package/fesm2022/tree/testing.mjs.map +1 -1
  157. package/fesm2022/tree.mjs +26 -26
  158. package/fesm2022/tree.mjs.map +1 -1
  159. package/package.json +6 -6
  160. package/prebuilt-themes/deeppurple-amber.css +1 -1
  161. package/prebuilt-themes/indigo-pink.css +1 -1
  162. package/prebuilt-themes/pink-bluegrey.css +1 -1
  163. package/prebuilt-themes/purple-green.css +1 -1
  164. package/schematics/ng-add/index.js +2 -2
  165. package/schematics/ng-add/schema.json +2 -9
  166. package/schematics/ng-add/setup-project.js +0 -1
  167. package/schematics/ng-add/setup-project.js.map +1 -1
  168. package/schematics/ng-add/theming/create-custom-theme.d.ts +1 -1
  169. package/schematics/ng-add/theming/create-custom-theme.js +26 -6
  170. package/schematics/ng-add/theming/create-custom-theme.js.map +1 -1
  171. package/schematics/ng-add/theming/theming.d.ts +0 -2
  172. package/schematics/ng-add/theming/theming.js +6 -29
  173. package/schematics/ng-add/theming/theming.js.map +1 -1
  174. package/slide-toggle/_m2-slide-toggle.scss +2 -1
  175. package/slide-toggle/_m3-slide-toggle.scss +13 -1
  176. package/timepicker/index.d.ts +7 -1
  177. package/fesm2022/common-module-cKSwHniA.mjs.map +0 -1
  178. package/fesm2022/error-options-DCNQlTOA.mjs.map +0 -1
  179. package/fesm2022/form-field-CFbrnFED.mjs.map +0 -1
  180. package/fesm2022/icon-button-DxiIc1ex.mjs.map +0 -1
  181. package/fesm2022/icon-registry-CwOTJ7YM.mjs.map +0 -1
  182. package/fesm2022/index-BFRo2fUq.mjs +0 -20
  183. package/fesm2022/index-BFRo2fUq.mjs.map +0 -1
  184. package/fesm2022/index-DwiL-HGk.mjs +0 -22
  185. package/fesm2022/index-DwiL-HGk.mjs.map +0 -1
  186. package/fesm2022/internal-form-field-D5iFxU6d.mjs.map +0 -1
  187. package/fesm2022/line-Bz5f9Cyx.mjs.map +0 -1
  188. package/fesm2022/module-B0CLRw5e.mjs.map +0 -1
  189. package/fesm2022/module-B62K-792.mjs.map +0 -1
  190. package/fesm2022/module-CWxMD37a.mjs.map +0 -1
  191. package/fesm2022/module-Ce6F7TNm.mjs.map +0 -1
  192. package/fesm2022/option-BzhYL_xC.mjs.map +0 -1
  193. package/fesm2022/pseudo-checkbox-DDmgx3P4.mjs.map +0 -1
  194. package/fesm2022/pseudo-checkbox-module-4F8Up4PL.mjs +0 -20
  195. package/fesm2022/pseudo-checkbox-module-4F8Up4PL.mjs.map +0 -1
  196. package/fesm2022/ripple-BYgV4oZC.mjs.map +0 -1
  197. package/fesm2022/ripple-loader-BnMiRtmT.mjs.map +0 -1
  198. package/fesm2022/structural-styles-CObeNzjn.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"testing.mjs","sources":["../../../../../../darwin_arm64-fastbuild-ST-46c76129e412/bin/src/material/timepicker/testing/timepicker-harness.ts","../../../../../../darwin_arm64-fastbuild-ST-46c76129e412/bin/src/material/timepicker/testing/timepicker-input-harness.ts","../../../../../../darwin_arm64-fastbuild-ST-46c76129e412/bin/src/material/timepicker/testing/timepicker-toggle-harness.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n ComponentHarness,\n ComponentHarnessConstructor,\n HarnessPredicate,\n} from '@angular/cdk/testing';\nimport {MatOptionHarness, OptionHarnessFilters} from '../../core/testing';\nimport {TimepickerHarnessFilters} from './timepicker-harness-filters';\n\nexport class MatTimepickerHarness extends ComponentHarness {\n private _documentRootLocator = this.documentRootLocatorFactory();\n static hostSelector = 'mat-timepicker';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a timepicker with specific\n * attributes.\n * @param options Options for filtering which timepicker instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatTimepickerHarness>(\n this: ComponentHarnessConstructor<T>,\n options: TimepickerHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\n }\n\n /** Whether the timepicker is open. */\n async isOpen(): Promise<boolean> {\n const selector = await this._getPanelSelector();\n const panel = await this._documentRootLocator.locatorForOptional(selector)();\n return panel !== null;\n }\n\n /** Gets the options inside the timepicker panel. */\n async getOptions(filters?: Omit<OptionHarnessFilters, 'ancestor'>): Promise<MatOptionHarness[]> {\n if (!(await this.isOpen())) {\n throw new Error('Unable to retrieve options for timepicker. Timepicker panel is closed.');\n }\n\n return this._documentRootLocator.locatorForAll(\n MatOptionHarness.with({\n ...(filters || {}),\n ancestor: await this._getPanelSelector(),\n } as OptionHarnessFilters),\n )();\n }\n\n /** Selects the first option matching the given filters. */\n async selectOption(filters: OptionHarnessFilters): Promise<void> {\n const options = await this.getOptions(filters);\n if (!options.length) {\n throw Error(`Could not find a mat-option matching ${JSON.stringify(filters)}`);\n }\n await options[0].click();\n }\n\n /** Gets the selector that can be used to find the timepicker's panel. */\n protected async _getPanelSelector(): Promise<string> {\n return `#${await (await this.host()).getAttribute('mat-timepicker-panel-id')}`;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n ComponentHarness,\n ComponentHarnessConstructor,\n HarnessPredicate,\n TestKey,\n} from '@angular/cdk/testing';\nimport {MatTimepickerHarness} from './timepicker-harness';\nimport {\n TimepickerHarnessFilters,\n TimepickerInputHarnessFilters,\n} from './timepicker-harness-filters';\n\n/** Harness for interacting with a standard Material timepicker inputs in tests. */\nexport class MatTimepickerInputHarness extends ComponentHarness {\n private _documentRootLocator = this.documentRootLocatorFactory();\n static hostSelector = '.mat-timepicker-input';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatTimepickerInputHarness`\n * that meets certain criteria.\n * @param options Options for filtering which input instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatTimepickerInputHarness>(\n this: ComponentHarnessConstructor<T>,\n options: TimepickerInputHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options)\n .addOption('value', options.value, (harness, value) => {\n return HarnessPredicate.stringMatches(harness.getValue(), value);\n })\n .addOption('placeholder', options.placeholder, (harness, placeholder) => {\n return HarnessPredicate.stringMatches(harness.getPlaceholder(), placeholder);\n });\n }\n\n /** Gets whether the timepicker associated with the input is open. */\n async isTimepickerOpen(): Promise<boolean> {\n const host = await this.host();\n return (await host.getAttribute('aria-expanded')) === 'true';\n }\n\n /** Opens the timepicker associated with the input and returns the timepicker instance. */\n async openTimepicker(): Promise<MatTimepickerHarness> {\n if (!(await this.isDisabled())) {\n const host = await this.host();\n await host.sendKeys(TestKey.DOWN_ARROW);\n }\n\n return this.getTimepicker();\n }\n\n /** Closes the timepicker associated with the input. */\n async closeTimepicker(): Promise<void> {\n await this._documentRootLocator.rootElement.click();\n\n // This is necessary so that we wait for the closing animation.\n await this.forceStabilize();\n }\n\n /**\n * Gets the `MatTimepickerHarness` that is associated with the input.\n * @param filter Optionally filters which timepicker is included.\n */\n async getTimepicker(filter: TimepickerHarnessFilters = {}): Promise<MatTimepickerHarness> {\n const host = await this.host();\n const timepickerId = await host.getAttribute('mat-timepicker-id');\n\n if (!timepickerId) {\n throw Error('Element is not associated with a timepicker');\n }\n\n return this._documentRootLocator.locatorFor(\n MatTimepickerHarness.with({\n ...filter,\n selector: `[mat-timepicker-panel-id=\"${timepickerId}\"]`,\n }),\n )();\n }\n\n /** Whether the input is disabled. */\n async isDisabled(): Promise<boolean> {\n return (await this.host()).getProperty<boolean>('disabled');\n }\n\n /** Whether the input is required. */\n async isRequired(): Promise<boolean> {\n return (await this.host()).getProperty<boolean>('required');\n }\n\n /** Gets the value of the input. */\n async getValue(): Promise<string> {\n // The \"value\" property of the native input is always defined.\n return await (await this.host()).getProperty<string>('value');\n }\n\n /**\n * Sets the value of the input. The value will be set by simulating\n * keypresses that correspond to the given value.\n */\n async setValue(newValue: string): Promise<void> {\n const inputEl = await this.host();\n await inputEl.clear();\n\n // We don't want to send keys for the value if the value is an empty\n // string in order to clear the value. Sending keys with an empty string\n // still results in unnecessary focus events.\n if (newValue) {\n await inputEl.sendKeys(newValue);\n }\n }\n\n /** Gets the placeholder of the input. */\n async getPlaceholder(): Promise<string> {\n return await (await this.host()).getProperty<string>('placeholder');\n }\n\n /**\n * Focuses the input and returns a promise that indicates when the\n * action is complete.\n */\n async focus(): Promise<void> {\n return (await this.host()).focus();\n }\n\n /**\n * Blurs the input and returns a promise that indicates when the\n * action is complete.\n */\n async blur(): Promise<void> {\n return (await this.host()).blur();\n }\n\n /** Whether the input is focused. */\n async isFocused(): Promise<boolean> {\n return (await this.host()).isFocused();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ComponentHarness, HarnessPredicate} from '@angular/cdk/testing';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {TimepickerToggleHarnessFilters} from './timepicker-harness-filters';\n\n/** Harness for interacting with a standard Material timepicker toggle in tests. */\nexport class MatTimepickerToggleHarness extends ComponentHarness {\n static hostSelector = '.mat-timepicker-toggle';\n\n /** The clickable button inside the toggle. */\n private _button = this.locatorFor('button');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatTimepickerToggleHarness` that\n * meets certain criteria.\n * @param options Options for filtering which timepicker toggle instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(\n options: TimepickerToggleHarnessFilters = {},\n ): HarnessPredicate<MatTimepickerToggleHarness> {\n return new HarnessPredicate(MatTimepickerToggleHarness, options);\n }\n\n /** Opens the timepicker associated with the toggle. */\n async openTimepicker(): Promise<void> {\n const isOpen = await this.isTimepickerOpen();\n\n if (!isOpen) {\n const button = await this._button();\n await button.click();\n }\n }\n\n /** Gets whether the timepicker associated with the toggle is open. */\n async isTimepickerOpen(): Promise<boolean> {\n const button = await this._button();\n const ariaExpanded = await button.getAttribute('aria-expanded');\n return ariaExpanded === 'true';\n }\n\n /** Whether the toggle is disabled. */\n async isDisabled(): Promise<boolean> {\n const button = await this._button();\n return coerceBooleanProperty(await button.getAttribute('disabled'));\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testing.mjs","sources":["../../../../../../k8-fastbuild-ST-46c76129e412/bin/src/material/timepicker/testing/timepicker-harness.ts","../../../../../../k8-fastbuild-ST-46c76129e412/bin/src/material/timepicker/testing/timepicker-input-harness.ts","../../../../../../k8-fastbuild-ST-46c76129e412/bin/src/material/timepicker/testing/timepicker-toggle-harness.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n ComponentHarness,\n ComponentHarnessConstructor,\n HarnessPredicate,\n} from '@angular/cdk/testing';\nimport {MatOptionHarness, OptionHarnessFilters} from '../../core/testing';\nimport {TimepickerHarnessFilters} from './timepicker-harness-filters';\n\nexport class MatTimepickerHarness extends ComponentHarness {\n private _documentRootLocator = this.documentRootLocatorFactory();\n static hostSelector = 'mat-timepicker';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a timepicker with specific\n * attributes.\n * @param options Options for filtering which timepicker instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatTimepickerHarness>(\n this: ComponentHarnessConstructor<T>,\n options: TimepickerHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\n }\n\n /** Whether the timepicker is open. */\n async isOpen(): Promise<boolean> {\n const selector = await this._getPanelSelector();\n const panel = await this._documentRootLocator.locatorForOptional(selector)();\n return panel !== null;\n }\n\n /** Gets the options inside the timepicker panel. */\n async getOptions(filters?: Omit<OptionHarnessFilters, 'ancestor'>): Promise<MatOptionHarness[]> {\n if (!(await this.isOpen())) {\n throw new Error('Unable to retrieve options for timepicker. Timepicker panel is closed.');\n }\n\n return this._documentRootLocator.locatorForAll(\n MatOptionHarness.with({\n ...(filters || {}),\n ancestor: await this._getPanelSelector(),\n } as OptionHarnessFilters),\n )();\n }\n\n /** Selects the first option matching the given filters. */\n async selectOption(filters: OptionHarnessFilters): Promise<void> {\n const options = await this.getOptions(filters);\n if (!options.length) {\n throw Error(`Could not find a mat-option matching ${JSON.stringify(filters)}`);\n }\n await options[0].click();\n }\n\n /** Gets the selector that can be used to find the timepicker's panel. */\n protected async _getPanelSelector(): Promise<string> {\n return `#${await (await this.host()).getAttribute('mat-timepicker-panel-id')}`;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n ComponentHarness,\n ComponentHarnessConstructor,\n HarnessPredicate,\n TestKey,\n} from '@angular/cdk/testing';\nimport {MatTimepickerHarness} from './timepicker-harness';\nimport {\n TimepickerHarnessFilters,\n TimepickerInputHarnessFilters,\n} from './timepicker-harness-filters';\n\n/** Harness for interacting with a standard Material timepicker inputs in tests. */\nexport class MatTimepickerInputHarness extends ComponentHarness {\n private _documentRootLocator = this.documentRootLocatorFactory();\n static hostSelector = '.mat-timepicker-input';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatTimepickerInputHarness`\n * that meets certain criteria.\n * @param options Options for filtering which input instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatTimepickerInputHarness>(\n this: ComponentHarnessConstructor<T>,\n options: TimepickerInputHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options)\n .addOption('value', options.value, (harness, value) => {\n return HarnessPredicate.stringMatches(harness.getValue(), value);\n })\n .addOption('placeholder', options.placeholder, (harness, placeholder) => {\n return HarnessPredicate.stringMatches(harness.getPlaceholder(), placeholder);\n });\n }\n\n /** Gets whether the timepicker associated with the input is open. */\n async isTimepickerOpen(): Promise<boolean> {\n const host = await this.host();\n return (await host.getAttribute('aria-expanded')) === 'true';\n }\n\n /** Opens the timepicker associated with the input and returns the timepicker instance. */\n async openTimepicker(): Promise<MatTimepickerHarness> {\n if (!(await this.isDisabled())) {\n const host = await this.host();\n await host.sendKeys(TestKey.DOWN_ARROW);\n }\n\n return this.getTimepicker();\n }\n\n /** Closes the timepicker associated with the input. */\n async closeTimepicker(): Promise<void> {\n await this._documentRootLocator.rootElement.click();\n\n // This is necessary so that we wait for the closing animation.\n await this.forceStabilize();\n }\n\n /**\n * Gets the `MatTimepickerHarness` that is associated with the input.\n * @param filter Optionally filters which timepicker is included.\n */\n async getTimepicker(filter: TimepickerHarnessFilters = {}): Promise<MatTimepickerHarness> {\n const host = await this.host();\n const timepickerId = await host.getAttribute('mat-timepicker-id');\n\n if (!timepickerId) {\n throw Error('Element is not associated with a timepicker');\n }\n\n return this._documentRootLocator.locatorFor(\n MatTimepickerHarness.with({\n ...filter,\n selector: `[mat-timepicker-panel-id=\"${timepickerId}\"]`,\n }),\n )();\n }\n\n /** Whether the input is disabled. */\n async isDisabled(): Promise<boolean> {\n return (await this.host()).getProperty<boolean>('disabled');\n }\n\n /** Whether the input is required. */\n async isRequired(): Promise<boolean> {\n return (await this.host()).getProperty<boolean>('required');\n }\n\n /** Gets the value of the input. */\n async getValue(): Promise<string> {\n // The \"value\" property of the native input is always defined.\n return await (await this.host()).getProperty<string>('value');\n }\n\n /**\n * Sets the value of the input. The value will be set by simulating\n * keypresses that correspond to the given value.\n */\n async setValue(newValue: string): Promise<void> {\n const inputEl = await this.host();\n await inputEl.clear();\n\n // We don't want to send keys for the value if the value is an empty\n // string in order to clear the value. Sending keys with an empty string\n // still results in unnecessary focus events.\n if (newValue) {\n await inputEl.sendKeys(newValue);\n }\n }\n\n /** Gets the placeholder of the input. */\n async getPlaceholder(): Promise<string> {\n return await (await this.host()).getProperty<string>('placeholder');\n }\n\n /**\n * Focuses the input and returns a promise that indicates when the\n * action is complete.\n */\n async focus(): Promise<void> {\n return (await this.host()).focus();\n }\n\n /**\n * Blurs the input and returns a promise that indicates when the\n * action is complete.\n */\n async blur(): Promise<void> {\n return (await this.host()).blur();\n }\n\n /** Whether the input is focused. */\n async isFocused(): Promise<boolean> {\n return (await this.host()).isFocused();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ComponentHarness, HarnessPredicate} from '@angular/cdk/testing';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {TimepickerToggleHarnessFilters} from './timepicker-harness-filters';\n\n/** Harness for interacting with a standard Material timepicker toggle in tests. */\nexport class MatTimepickerToggleHarness extends ComponentHarness {\n static hostSelector = '.mat-timepicker-toggle';\n\n /** The clickable button inside the toggle. */\n private _button = this.locatorFor('button');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatTimepickerToggleHarness` that\n * meets certain criteria.\n * @param options Options for filtering which timepicker toggle instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(\n options: TimepickerToggleHarnessFilters = {},\n ): HarnessPredicate<MatTimepickerToggleHarness> {\n return new HarnessPredicate(MatTimepickerToggleHarness, options);\n }\n\n /** Opens the timepicker associated with the toggle. */\n async openTimepicker(): Promise<void> {\n const isOpen = await this.isTimepickerOpen();\n\n if (!isOpen) {\n const button = await this._button();\n await button.click();\n }\n }\n\n /** Gets whether the timepicker associated with the toggle is open. */\n async isTimepickerOpen(): Promise<boolean> {\n const button = await this._button();\n const ariaExpanded = await button.getAttribute('aria-expanded');\n return ariaExpanded === 'true';\n }\n\n /** Whether the toggle is disabled. */\n async isDisabled(): Promise<boolean> {\n const button = await this._button();\n return coerceBooleanProperty(await button.getAttribute('disabled'));\n }\n}\n"],"names":[],"mappings":"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"}
@@ -8,23 +8,23 @@ import { TAB, ESCAPE, hasModifierKey, ENTER, DOWN_ARROW, UP_ARROW } from '@angul
8
8
  import { ActiveDescendantKeyManager, _IdGenerator } from '@angular/cdk/a11y';
9
9
  import { D as DateAdapter, a as MAT_DATE_FORMATS } from './date-formats-K6TQue-Y.mjs';
10
10
  import { _ as _animationsDisabled } from './animation-DfMFjxHu.mjs';
11
- import { M as MatOption, c as MAT_OPTION_PARENT_COMPONENT } from './option-BzhYL_xC.mjs';
11
+ import { M as MatOption, c as MAT_OPTION_PARENT_COMPONENT } from './option-DikEMAxk.mjs';
12
12
  import { Validators, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
13
- import { h as MAT_FORM_FIELD } from './form-field-CFbrnFED.mjs';
13
+ import { h as MAT_FORM_FIELD } from './form-field-Bp1BCQ2b.mjs';
14
14
  import { M as MAT_INPUT_VALUE_ACCESSOR } from './input-value-accessor-D1GvPuqO.mjs';
15
- import { M as MatIconButton } from './icon-button-DxiIc1ex.mjs';
15
+ import { M as MatIconButton } from './icon-button-KgXJnU_D.mjs';
16
16
  import { CdkScrollableModule } from '@angular/cdk/scrolling';
17
17
  import 'rxjs';
18
18
  import '@angular/cdk/layout';
19
- import './ripple-BYgV4oZC.mjs';
19
+ import './ripple-Caf80wGY.mjs';
20
20
  import '@angular/cdk/coercion';
21
21
  import '@angular/cdk/private';
22
- import './pseudo-checkbox-DDmgx3P4.mjs';
23
- import './structural-styles-CObeNzjn.mjs';
22
+ import './pseudo-checkbox-MTYwd7sN.mjs';
23
+ import './structural-styles-BrpNk7kf.mjs';
24
24
  import '@angular/common';
25
25
  import 'rxjs/operators';
26
26
  import '@angular/cdk/observers/private';
27
- import './ripple-loader-BnMiRtmT.mjs';
27
+ import './ripple-loader-DWrwQmhi.mjs';
28
28
 
29
29
  /** Pattern that interval strings have to match. */
30
30
  const INTERVAL_PATTERN = /^(\d*\.?\d+)\s*(h|hour|hours|m|min|minute|minutes|s|second|seconds)?$/i;
@@ -125,9 +125,9 @@ class MatTimepicker {
125
125
  _dateFormats = inject(MAT_DATE_FORMATS, { optional: true });
126
126
  _scrollStrategyFactory = inject(MAT_TIMEPICKER_SCROLL_STRATEGY);
127
127
  _animationsDisabled = _animationsDisabled();
128
- _isOpen = signal(false);
129
- _activeDescendant = signal(null);
130
- _input = signal(null);
128
+ _isOpen = signal(false, ...(ngDevMode ? [{ debugName: "_isOpen" }] : []));
129
+ _activeDescendant = signal(null, ...(ngDevMode ? [{ debugName: "_activeDescendant" }] : []));
130
+ _input = signal(null, ...(ngDevMode ? [{ debugName: "_input" }] : []));
131
131
  _overlayRef = null;
132
132
  _portal = null;
133
133
  _optionsCacheKey = null;
@@ -135,7 +135,7 @@ class MatTimepicker {
135
135
  _onOpenRender = null;
136
136
  _panelTemplate = viewChild.required('panelTemplate');
137
137
  _timeOptions = [];
138
- _options = viewChildren(MatOption);
138
+ _options = viewChildren(MatOption, ...(ngDevMode ? [{ debugName: "_options" }] : []));
139
139
  _keyManager = new ActiveDescendantKeyManager(this._options, this._injector)
140
140
  .withHomeAndEnd(true)
141
141
  .withPageUpDown(true)
@@ -145,12 +145,12 @@ class MatTimepicker {
145
145
  * seconds (e.g. 90) or a number with a unit (e.g. 45m). Supported units are `s` for seconds,
146
146
  * `m` for minutes or `h` for hours.
147
147
  */
148
- interval = input(parseInterval(this._defaultConfig?.interval || null), { transform: parseInterval });
148
+ interval = input(parseInterval(this._defaultConfig?.interval || null), ...(ngDevMode ? [{ debugName: "interval", transform: parseInterval }] : [{ transform: parseInterval }]));
149
149
  /**
150
150
  * Array of pre-defined options that the user can select from, as an alternative to using the
151
151
  * `interval` input. An error will be thrown if both `options` and `interval` are specified.
152
152
  */
153
- options = input(null);
153
+ options = input(null, ...(ngDevMode ? [{ debugName: "options" }] : []));
154
154
  /** Whether the timepicker is open. */
155
155
  isOpen = this._isOpen.asReadonly();
156
156
  /** Emits when the user selects a time. */
@@ -164,19 +164,19 @@ class MatTimepicker {
164
164
  /** Unique ID of the timepicker's panel */
165
165
  panelId = inject(_IdGenerator).getId('mat-timepicker-panel-');
166
166
  /** Whether ripples within the timepicker should be disabled. */
167
- disableRipple = input(this._defaultConfig?.disableRipple ?? false, {
168
- transform: booleanAttribute,
169
- });
167
+ disableRipple = input(this._defaultConfig?.disableRipple ?? false, ...(ngDevMode ? [{ debugName: "disableRipple", transform: booleanAttribute }] : [{
168
+ transform: booleanAttribute,
169
+ }]));
170
170
  /** ARIA label for the timepicker panel. */
171
- ariaLabel = input(null, {
172
- alias: 'aria-label',
173
- });
171
+ ariaLabel = input(null, ...(ngDevMode ? [{ debugName: "ariaLabel", alias: 'aria-label' }] : [{
172
+ alias: 'aria-label',
173
+ }]));
174
174
  /** ID of the label element for the timepicker panel. */
175
- ariaLabelledby = input(null, {
176
- alias: 'aria-labelledby',
177
- });
175
+ ariaLabelledby = input(null, ...(ngDevMode ? [{ debugName: "ariaLabelledby", alias: 'aria-labelledby' }] : [{
176
+ alias: 'aria-labelledby',
177
+ }]));
178
178
  /** Whether the timepicker is currently disabled. */
179
- disabled = computed(() => !!this._input()?.disabled());
179
+ disabled = computed(() => !!this._input()?.disabled(), ...(ngDevMode ? [{ debugName: "disabled" }] : []));
180
180
  constructor() {
181
181
  if (typeof ngDevMode === 'undefined' || ngDevMode) {
182
182
  validateAdapter(this._dateAdapter, this._dateFormats);
@@ -424,15 +424,15 @@ class MatTimepicker {
424
424
  }
425
425
  });
426
426
  }
427
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: MatTimepicker, deps: [], target: i0.ɵɵFactoryTarget.Component });
428
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0", type: MatTimepicker, isStandalone: true, selector: "mat-timepicker", inputs: { interval: { classPropertyName: "interval", publicName: "interval", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, disableRipple: { classPropertyName: "disableRipple", publicName: "disableRipple", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selected", opened: "opened", closed: "closed" }, providers: [
427
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.0", ngImport: i0, type: MatTimepicker, deps: [], target: i0.ɵɵFactoryTarget.Component });
428
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.0-next.0", type: MatTimepicker, isStandalone: true, selector: "mat-timepicker", inputs: { interval: { classPropertyName: "interval", publicName: "interval", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, disableRipple: { classPropertyName: "disableRipple", publicName: "disableRipple", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selected", opened: "opened", closed: "closed" }, providers: [
429
429
  {
430
430
  provide: MAT_OPTION_PARENT_COMPONENT,
431
431
  useExisting: MatTimepicker,
432
432
  },
433
433
  ], viewQueries: [{ propertyName: "_panelTemplate", first: true, predicate: ["panelTemplate"], descendants: true, isSignal: true }, { propertyName: "_options", predicate: MatOption, descendants: true, isSignal: true }], exportAs: ["matTimepicker"], ngImport: i0, template: "<ng-template #panelTemplate>\n <div\n role=\"listbox\"\n class=\"mat-timepicker-panel\"\n [class.mat-timepicker-panel-animations-enabled]=\"!_animationsDisabled\"\n [class.mat-timepicker-panel-exit]=\"!isOpen()\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-labelledby]=\"_getAriaLabelledby()\"\n [id]=\"panelId\"\n (animationend)=\"_handleAnimationEnd($event)\">\n @for (option of _timeOptions; track option.value) {\n <mat-option\n [value]=\"option.value\"\n (onSelectionChange)=\"_selectValue($event.source)\">{{option.label}}</mat-option>\n }\n </div>\n</ng-template>\n", styles: ["@keyframes _mat-timepicker-enter{from{opacity:0;transform:scaleY(0.8)}to{opacity:1;transform:none}}@keyframes _mat-timepicker-exit{from{opacity:1}to{opacity:0}}mat-timepicker{display:none}.mat-timepicker-panel{width:100%;max-height:256px;transform-origin:center top;overflow:auto;padding:8px 0;box-sizing:border-box;position:relative;border-bottom-left-radius:var(--mat-timepicker-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mat-timepicker-container-shape, var(--mat-sys-corner-extra-small));box-shadow:var(--mat-timepicker-container-elevation-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12));background-color:var(--mat-timepicker-container-background-color, var(--mat-sys-surface-container))}@media(forced-colors: active){.mat-timepicker-panel{outline:solid 1px}}.mat-timepicker-above .mat-timepicker-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mat-timepicker-container-shape, var(--mat-sys-corner-extra-small));border-top-right-radius:var(--mat-timepicker-container-shape, var(--mat-sys-corner-extra-small))}.mat-timepicker-panel-animations-enabled{animation:_mat-timepicker-enter 120ms cubic-bezier(0, 0, 0.2, 1)}.mat-timepicker-panel-animations-enabled.mat-timepicker-panel-exit{animation:_mat-timepicker-exit 100ms linear}.mat-timepicker-input[readonly]{cursor:pointer}@media(forced-colors: active){.mat-timepicker-toggle-default-icon{color:CanvasText}}\n"], dependencies: [{ kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
434
434
  }
435
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: MatTimepicker, decorators: [{
435
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.0", ngImport: i0, type: MatTimepicker, decorators: [{
436
436
  type: Component,
437
437
  args: [{ selector: 'mat-timepicker', exportAs: 'matTimepicker', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [MatOption], providers: [
438
438
  {
@@ -462,7 +462,7 @@ class MatTimepickerInput {
462
462
  _onTouched;
463
463
  _validatorOnChange;
464
464
  _cleanupClick;
465
- _accessorDisabled = signal(false);
465
+ _accessorDisabled = signal(false, ...(ngDevMode ? [{ debugName: "_accessorDisabled" }] : []));
466
466
  _localeSubscription;
467
467
  _timepickerSubscription;
468
468
  _validator;
@@ -474,46 +474,59 @@ class MatTimepickerInput {
474
474
  const isOpen = timepicker.isOpen();
475
475
  const activeDescendant = timepicker.activeDescendant();
476
476
  return isOpen && activeDescendant ? activeDescendant : null;
477
- });
477
+ }, ...(ngDevMode ? [{ debugName: "_ariaActiveDescendant" }] : []));
478
478
  /** Value of the `aria-expanded` attribute. */
479
- _ariaExpanded = computed(() => this.timepicker().isOpen() + '');
479
+ _ariaExpanded = computed(() => this.timepicker().isOpen() + '', ...(ngDevMode ? [{ debugName: "_ariaExpanded" }] : []));
480
480
  /** Value of the `aria-controls` attribute. */
481
481
  _ariaControls = computed(() => {
482
482
  const timepicker = this.timepicker();
483
483
  return timepicker.isOpen() ? timepicker.panelId : null;
484
- });
484
+ }, ...(ngDevMode ? [{ debugName: "_ariaControls" }] : []));
485
485
  /** Current value of the input. */
486
- value = model(null);
486
+ value = model(null, ...(ngDevMode ? [{ debugName: "value" }] : []));
487
487
  /** Timepicker that the input is associated with. */
488
- timepicker = input.required({
489
- alias: 'matTimepicker',
490
- });
488
+ timepicker = input.required(...(ngDevMode ? [{ debugName: "timepicker", alias: 'matTimepicker' }] : [{
489
+ alias: 'matTimepicker',
490
+ }]));
491
491
  /**
492
492
  * Minimum time that can be selected or typed in. Can be either
493
493
  * a date object (only time will be used) or a valid time string.
494
494
  */
495
- min = input(null, {
496
- alias: 'matTimepickerMin',
497
- transform: (value) => this._transformDateInput(value),
498
- });
495
+ min = input(null, ...(ngDevMode ? [{ debugName: "min", alias: 'matTimepickerMin',
496
+ transform: (value) => this._transformDateInput(value) }] : [{
497
+ alias: 'matTimepickerMin',
498
+ transform: (value) => this._transformDateInput(value),
499
+ }]));
499
500
  /**
500
501
  * Maximum time that can be selected or typed in. Can be either
501
502
  * a date object (only time will be used) or a valid time string.
502
503
  */
503
- max = input(null, {
504
- alias: 'matTimepickerMax',
505
- transform: (value) => this._transformDateInput(value),
506
- });
504
+ max = input(null, ...(ngDevMode ? [{ debugName: "max", alias: 'matTimepickerMax',
505
+ transform: (value) => this._transformDateInput(value) }] : [{
506
+ alias: 'matTimepickerMax',
507
+ transform: (value) => this._transformDateInput(value),
508
+ }]));
509
+ /**
510
+ * Whether to open the timepicker overlay when clicking on the input. Enabled by default.
511
+ * Note that when disabling this option, you'll have to provide your own logic for opening
512
+ * the overlay.
513
+ */
514
+ openOnClick = input(true, ...(ngDevMode ? [{ debugName: "openOnClick", alias: 'matTimepickerOpenOnClick',
515
+ transform: booleanAttribute }] : [{
516
+ alias: 'matTimepickerOpenOnClick',
517
+ transform: booleanAttribute,
518
+ }]));
507
519
  /** Whether the input is disabled. */
508
- disabled = computed(() => this.disabledInput() || this._accessorDisabled());
520
+ disabled = computed(() => this.disabledInput() || this._accessorDisabled(), ...(ngDevMode ? [{ debugName: "disabled" }] : []));
509
521
  /**
510
522
  * Whether the input should be disabled through the template.
511
523
  * @docs-private
512
524
  */
513
- disabledInput = input(false, {
514
- transform: booleanAttribute,
515
- alias: 'disabled',
516
- });
525
+ disabledInput = input(false, ...(ngDevMode ? [{ debugName: "disabledInput", transform: booleanAttribute,
526
+ alias: 'disabled' }] : [{
527
+ transform: booleanAttribute,
528
+ alias: 'disabled',
529
+ }]));
517
530
  constructor() {
518
531
  if (typeof ngDevMode === 'undefined' || ngDevMode) {
519
532
  validateAdapter(this._dateAdapter, this._dateFormats);
@@ -597,7 +610,7 @@ class MatTimepickerInput {
597
610
  }
598
611
  /** Handles clicks on the input or the containing form field. */
599
612
  _handleClick = () => {
600
- if (!this.disabled()) {
613
+ if (!this.disabled() && this.openOnClick()) {
601
614
  this.timepicker().open();
602
615
  }
603
616
  };
@@ -755,8 +768,8 @@ class MatTimepickerInput {
755
768
  },
756
769
  ]);
757
770
  }
758
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: MatTimepickerInput, deps: [], target: i0.ɵɵFactoryTarget.Directive });
759
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.0", type: MatTimepickerInput, isStandalone: true, selector: "input[matTimepicker]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, timepicker: { classPropertyName: "timepicker", publicName: "matTimepicker", isSignal: true, isRequired: true, transformFunction: null }, min: { classPropertyName: "min", publicName: "matTimepickerMin", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "matTimepickerMax", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { attributes: { "role": "combobox", "type": "text", "aria-haspopup": "listbox" }, listeners: { "blur": "_handleBlur()", "input": "_handleInput($event)", "keydown": "_handleKeydown($event)" }, properties: { "attr.aria-activedescendant": "_ariaActiveDescendant()", "attr.aria-expanded": "_ariaExpanded()", "attr.aria-controls": "_ariaControls()", "attr.mat-timepicker-id": "timepicker()?.panelId", "disabled": "disabled()" }, classAttribute: "mat-timepicker-input" }, providers: [
771
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.0", ngImport: i0, type: MatTimepickerInput, deps: [], target: i0.ɵɵFactoryTarget.Directive });
772
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.0-next.0", type: MatTimepickerInput, isStandalone: true, selector: "input[matTimepicker]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, timepicker: { classPropertyName: "timepicker", publicName: "matTimepicker", isSignal: true, isRequired: true, transformFunction: null }, min: { classPropertyName: "min", publicName: "matTimepickerMin", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "matTimepickerMax", isSignal: true, isRequired: false, transformFunction: null }, openOnClick: { classPropertyName: "openOnClick", publicName: "matTimepickerOpenOnClick", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { attributes: { "role": "combobox", "type": "text", "aria-haspopup": "listbox" }, listeners: { "blur": "_handleBlur()", "input": "_handleInput($event)", "keydown": "_handleKeydown($event)" }, properties: { "attr.aria-activedescendant": "_ariaActiveDescendant()", "attr.aria-expanded": "_ariaExpanded()", "attr.aria-controls": "_ariaControls()", "attr.mat-timepicker-id": "timepicker()?.panelId", "disabled": "disabled()" }, classAttribute: "mat-timepicker-input" }, providers: [
760
773
  {
761
774
  provide: NG_VALUE_ACCESSOR,
762
775
  useExisting: MatTimepickerInput,
@@ -773,7 +786,7 @@ class MatTimepickerInput {
773
786
  },
774
787
  ], exportAs: ["matTimepickerInput"], ngImport: i0 });
775
788
  }
776
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: MatTimepickerInput, decorators: [{
789
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.0", ngImport: i0, type: MatTimepickerInput, decorators: [{
777
790
  type: Directive,
778
791
  args: [{
779
792
  selector: 'input[matTimepicker]',
@@ -822,30 +835,31 @@ class MatTimepickerToggle {
822
835
  _isDisabled = computed(() => {
823
836
  const timepicker = this.timepicker();
824
837
  return this.disabled() || timepicker.disabled();
825
- });
838
+ }, ...(ngDevMode ? [{ debugName: "_isDisabled" }] : []));
826
839
  /** Timepicker instance that the button will toggle. */
827
- timepicker = input.required({
828
- alias: 'for',
829
- });
840
+ timepicker = input.required(...(ngDevMode ? [{ debugName: "timepicker", alias: 'for' }] : [{
841
+ alias: 'for',
842
+ }]));
830
843
  /** Screen-reader label for the button. */
831
- ariaLabel = input(undefined, {
832
- alias: 'aria-label',
833
- });
844
+ ariaLabel = input(undefined, ...(ngDevMode ? [{ debugName: "ariaLabel", alias: 'aria-label' }] : [{
845
+ alias: 'aria-label',
846
+ }]));
834
847
  /** Screen-reader labelled by id for the button. */
835
- ariaLabelledby = input(undefined, {
836
- alias: 'aria-labelledby',
837
- });
848
+ ariaLabelledby = input(undefined, ...(ngDevMode ? [{ debugName: "ariaLabelledby", alias: 'aria-labelledby' }] : [{
849
+ alias: 'aria-labelledby',
850
+ }]));
838
851
  /** Default aria-label for the toggle if none is provided. */
839
852
  _defaultAriaLabel = 'Open timepicker options';
840
853
  /** Whether the toggle button is disabled. */
841
- disabled = input(false, {
842
- transform: booleanAttribute,
843
- alias: 'disabled',
844
- });
854
+ disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled", transform: booleanAttribute,
855
+ alias: 'disabled' }] : [{
856
+ transform: booleanAttribute,
857
+ alias: 'disabled',
858
+ }]));
845
859
  /** Tabindex for the toggle. */
846
- tabIndex = input(this._defaultTabIndex);
860
+ tabIndex = input(this._defaultTabIndex, ...(ngDevMode ? [{ debugName: "tabIndex" }] : []));
847
861
  /** Whether ripples on the toggle should be disabled. */
848
- disableRipple = input(this._defaultConfig?.disableRipple ?? false, { transform: booleanAttribute });
862
+ disableRipple = input(this._defaultConfig?.disableRipple ?? false, ...(ngDevMode ? [{ debugName: "disableRipple", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
849
863
  /** Opens the connected timepicker. */
850
864
  _open(event) {
851
865
  if (this.timepicker() && !this._isDisabled()) {
@@ -860,10 +874,10 @@ class MatTimepickerToggle {
860
874
  getAriaLabel() {
861
875
  return this.ariaLabelledby() ? null : this.ariaLabel() || this._defaultAriaLabel;
862
876
  }
863
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: MatTimepickerToggle, deps: [], target: i0.ɵɵFactoryTarget.Component });
864
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.0", type: MatTimepickerToggle, isStandalone: true, selector: "mat-timepicker-toggle", inputs: { timepicker: { classPropertyName: "timepicker", publicName: "for", isSignal: true, isRequired: true, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, disableRipple: { classPropertyName: "disableRipple", publicName: "disableRipple", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "_open($event)" }, properties: { "attr.tabindex": "null" }, classAttribute: "mat-timepicker-toggle" }, exportAs: ["matTimepickerToggle"], ngImport: i0, template: "<button\n matIconButton\n type=\"button\"\n aria-haspopup=\"listbox\"\n [attr.aria-label]=\"getAriaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-expanded]=\"timepicker().isOpen()\"\n [tabIndex]=\"_isDisabled() ? -1 : tabIndex()\"\n [disabled]=\"_isDisabled()\"\n [disableRipple]=\"disableRipple()\">\n\n <ng-content select=\"[matTimepickerToggleIcon]\">\n <svg\n class=\"mat-timepicker-toggle-default-icon\"\n height=\"24px\"\n width=\"24px\"\n viewBox=\"0 -960 960 960\"\n fill=\"currentColor\"\n focusable=\"false\"\n aria-hidden=\"true\">\n <path d=\"m612-292 56-56-148-148v-184h-80v216l172 172ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-400Zm0 320q133 0 226.5-93.5T800-480q0-133-93.5-226.5T480-800q-133 0-226.5 93.5T160-480q0 133 93.5 226.5T480-160Z\"/>\n </svg>\n </ng-content>\n</button>\n", dependencies: [{ kind: "component", type: MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
877
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.0", ngImport: i0, type: MatTimepickerToggle, deps: [], target: i0.ɵɵFactoryTarget.Component });
878
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.0-next.0", type: MatTimepickerToggle, isStandalone: true, selector: "mat-timepicker-toggle", inputs: { timepicker: { classPropertyName: "timepicker", publicName: "for", isSignal: true, isRequired: true, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, disableRipple: { classPropertyName: "disableRipple", publicName: "disableRipple", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "_open($event)" }, properties: { "attr.tabindex": "null" }, classAttribute: "mat-timepicker-toggle" }, exportAs: ["matTimepickerToggle"], ngImport: i0, template: "<button\n matIconButton\n type=\"button\"\n aria-haspopup=\"listbox\"\n [attr.aria-label]=\"getAriaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-expanded]=\"timepicker().isOpen()\"\n [tabIndex]=\"_isDisabled() ? -1 : tabIndex()\"\n [disabled]=\"_isDisabled()\"\n [disableRipple]=\"disableRipple()\">\n\n <ng-content select=\"[matTimepickerToggleIcon]\">\n <svg\n class=\"mat-timepicker-toggle-default-icon\"\n height=\"24px\"\n width=\"24px\"\n viewBox=\"0 -960 960 960\"\n fill=\"currentColor\"\n focusable=\"false\"\n aria-hidden=\"true\">\n <path d=\"m612-292 56-56-148-148v-184h-80v216l172 172ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-400Zm0 320q133 0 226.5-93.5T800-480q0-133-93.5-226.5T480-800q-133 0-226.5 93.5T160-480q0 133 93.5 226.5T480-160Z\"/>\n </svg>\n </ng-content>\n</button>\n", dependencies: [{ kind: "component", type: MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
865
879
  }
866
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: MatTimepickerToggle, decorators: [{
880
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.0", ngImport: i0, type: MatTimepickerToggle, decorators: [{
867
881
  type: Component,
868
882
  args: [{ selector: 'mat-timepicker-toggle', host: {
869
883
  'class': 'mat-timepicker-toggle',
@@ -876,11 +890,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImpor
876
890
  }] });
877
891
 
878
892
  class MatTimepickerModule {
879
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: MatTimepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
880
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.0", ngImport: i0, type: MatTimepickerModule, imports: [MatTimepicker, MatTimepickerInput, MatTimepickerToggle], exports: [CdkScrollableModule, MatTimepicker, MatTimepickerInput, MatTimepickerToggle] });
881
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: MatTimepickerModule, imports: [MatTimepicker, MatTimepickerToggle, CdkScrollableModule] });
893
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.0", ngImport: i0, type: MatTimepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
894
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.0-next.0", ngImport: i0, type: MatTimepickerModule, imports: [MatTimepicker, MatTimepickerInput, MatTimepickerToggle], exports: [CdkScrollableModule, MatTimepicker, MatTimepickerInput, MatTimepickerToggle] });
895
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.0-next.0", ngImport: i0, type: MatTimepickerModule, imports: [MatTimepicker, MatTimepickerToggle, CdkScrollableModule] });
882
896
  }
883
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: MatTimepickerModule, decorators: [{
897
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.0", ngImport: i0, type: MatTimepickerModule, decorators: [{
884
898
  type: NgModule,
885
899
  args: [{
886
900
  imports: [MatTimepicker, MatTimepickerInput, MatTimepickerToggle],