@angular/material 21.0.0-next.8 → 21.0.0-rc.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 (204) hide show
  1. package/core/tokens/_classes.scss +1 -1
  2. package/core/tokens/m2/_md-sys-color.scss +17 -17
  3. package/fesm2022/_animation-chunk.mjs +10 -16
  4. package/fesm2022/_animation-chunk.mjs.map +1 -1
  5. package/fesm2022/_date-formats-chunk.mjs +68 -164
  6. package/fesm2022/_date-formats-chunk.mjs.map +1 -1
  7. package/fesm2022/_date-range-input-harness-chunk.mjs +284 -463
  8. package/fesm2022/_date-range-input-harness-chunk.mjs.map +1 -1
  9. package/fesm2022/_error-options-chunk.mjs +56 -19
  10. package/fesm2022/_error-options-chunk.mjs.map +1 -1
  11. package/fesm2022/_error-state-chunk.mjs +24 -31
  12. package/fesm2022/_error-state-chunk.mjs.map +1 -1
  13. package/fesm2022/_form-field-chunk.mjs +1224 -1017
  14. package/fesm2022/_form-field-chunk.mjs.map +1 -1
  15. package/fesm2022/_icon-button-chunk.mjs +243 -187
  16. package/fesm2022/_icon-button-chunk.mjs.map +1 -1
  17. package/fesm2022/_icon-registry-chunk.mjs +350 -575
  18. package/fesm2022/_icon-registry-chunk.mjs.map +1 -1
  19. package/fesm2022/_input-harness-chunk.mjs +56 -107
  20. package/fesm2022/_input-harness-chunk.mjs.map +1 -1
  21. package/fesm2022/_input-value-accessor-chunk.mjs +0 -6
  22. package/fesm2022/_input-value-accessor-chunk.mjs.map +1 -1
  23. package/fesm2022/_internal-form-field-chunk.mjs +59 -19
  24. package/fesm2022/_internal-form-field-chunk.mjs.map +1 -1
  25. package/fesm2022/_line-chunk.mjs +83 -43
  26. package/fesm2022/_line-chunk.mjs.map +1 -1
  27. package/fesm2022/_option-chunk.mjs +348 -311
  28. package/fesm2022/_option-chunk.mjs.map +1 -1
  29. package/fesm2022/_option-harness-chunk.mjs +23 -39
  30. package/fesm2022/_option-harness-chunk.mjs.map +1 -1
  31. package/fesm2022/_option-module-chunk.mjs +36 -10
  32. package/fesm2022/_option-module-chunk.mjs.map +1 -1
  33. package/fesm2022/_pseudo-checkbox-chunk.mjs +79 -44
  34. package/fesm2022/_pseudo-checkbox-chunk.mjs.map +1 -1
  35. package/fesm2022/_pseudo-checkbox-module-chunk.mjs +36 -10
  36. package/fesm2022/_pseudo-checkbox-module-chunk.mjs.map +1 -1
  37. package/fesm2022/_public-api-chunk.mjs +71 -134
  38. package/fesm2022/_public-api-chunk.mjs.map +1 -1
  39. package/fesm2022/_ripple-chunk.mjs +504 -600
  40. package/fesm2022/_ripple-chunk.mjs.map +1 -1
  41. package/fesm2022/_ripple-loader-chunk.mjs +120 -138
  42. package/fesm2022/_ripple-loader-chunk.mjs.map +1 -1
  43. package/fesm2022/_ripple-module-chunk.mjs +36 -10
  44. package/fesm2022/_ripple-module-chunk.mjs.map +1 -1
  45. package/fesm2022/_structural-styles-chunk.mjs +37 -10
  46. package/fesm2022/_structural-styles-chunk.mjs.map +1 -1
  47. package/fesm2022/_tooltip-chunk.mjs +810 -888
  48. package/fesm2022/_tooltip-chunk.mjs.map +1 -1
  49. package/fesm2022/autocomplete-testing.mjs +62 -86
  50. package/fesm2022/autocomplete-testing.mjs.map +1 -1
  51. package/fesm2022/autocomplete.mjs +965 -1126
  52. package/fesm2022/autocomplete.mjs.map +1 -1
  53. package/fesm2022/badge-testing.mjs +38 -54
  54. package/fesm2022/badge-testing.mjs.map +1 -1
  55. package/fesm2022/badge.mjs +321 -272
  56. package/fesm2022/badge.mjs.map +1 -1
  57. package/fesm2022/bottom-sheet-testing.mjs +10 -24
  58. package/fesm2022/bottom-sheet-testing.mjs.map +1 -1
  59. package/fesm2022/bottom-sheet.mjs +349 -344
  60. package/fesm2022/bottom-sheet.mjs.map +1 -1
  61. package/fesm2022/button-testing.mjs +60 -94
  62. package/fesm2022/button-testing.mjs.map +1 -1
  63. package/fesm2022/button-toggle-testing.mjs +76 -125
  64. package/fesm2022/button-toggle-testing.mjs.map +1 -1
  65. package/fesm2022/button-toggle.mjs +752 -662
  66. package/fesm2022/button-toggle.mjs.map +1 -1
  67. package/fesm2022/button.mjs +263 -158
  68. package/fesm2022/button.mjs.map +1 -1
  69. package/fesm2022/card-testing.mjs +19 -33
  70. package/fesm2022/card-testing.mjs.map +1 -1
  71. package/fesm2022/card.mjs +576 -272
  72. package/fesm2022/card.mjs.map +1 -1
  73. package/fesm2022/checkbox-testing.mjs +71 -123
  74. package/fesm2022/checkbox-testing.mjs.map +1 -1
  75. package/fesm2022/checkbox.mjs +515 -477
  76. package/fesm2022/checkbox.mjs.map +1 -1
  77. package/fesm2022/chips-testing.mjs +201 -350
  78. package/fesm2022/chips-testing.mjs.map +1 -1
  79. package/fesm2022/chips.mjs +2552 -2289
  80. package/fesm2022/chips.mjs.map +1 -1
  81. package/fesm2022/core-testing.mjs +14 -28
  82. package/fesm2022/core-testing.mjs.map +1 -1
  83. package/fesm2022/core.mjs +357 -328
  84. package/fesm2022/core.mjs.map +1 -1
  85. package/fesm2022/datepicker-testing.mjs +15 -25
  86. package/fesm2022/datepicker-testing.mjs.map +1 -1
  87. package/fesm2022/datepicker.mjs +4826 -4563
  88. package/fesm2022/datepicker.mjs.map +1 -1
  89. package/fesm2022/dialog-testing.mjs +93 -129
  90. package/fesm2022/dialog-testing.mjs.map +1 -1
  91. package/fesm2022/dialog.mjs +810 -829
  92. package/fesm2022/dialog.mjs.map +1 -1
  93. package/fesm2022/divider-testing.mjs +10 -11
  94. package/fesm2022/divider-testing.mjs.map +1 -1
  95. package/fesm2022/divider.mjs +119 -43
  96. package/fesm2022/divider.mjs.map +1 -1
  97. package/fesm2022/expansion-testing.mjs +74 -130
  98. package/fesm2022/expansion-testing.mjs.map +1 -1
  99. package/fesm2022/expansion.mjs +703 -515
  100. package/fesm2022/expansion.mjs.map +1 -1
  101. package/fesm2022/form-field-testing-control.mjs +16 -33
  102. package/fesm2022/form-field-testing-control.mjs.map +1 -1
  103. package/fesm2022/form-field-testing.mjs +118 -179
  104. package/fesm2022/form-field-testing.mjs.map +1 -1
  105. package/fesm2022/form-field.mjs +36 -10
  106. package/fesm2022/form-field.mjs.map +1 -1
  107. package/fesm2022/grid-list-testing.mjs +65 -113
  108. package/fesm2022/grid-list-testing.mjs.map +1 -1
  109. package/fesm2022/grid-list.mjs +559 -494
  110. package/fesm2022/grid-list.mjs.map +1 -1
  111. package/fesm2022/icon-testing.mjs +148 -127
  112. package/fesm2022/icon-testing.mjs.map +1 -1
  113. package/fesm2022/icon.mjs +325 -351
  114. package/fesm2022/icon.mjs.map +1 -1
  115. package/fesm2022/input-testing.mjs +59 -99
  116. package/fesm2022/input-testing.mjs.map +1 -1
  117. package/fesm2022/input.mjs +457 -520
  118. package/fesm2022/input.mjs.map +1 -1
  119. package/fesm2022/list-testing.mjs +251 -434
  120. package/fesm2022/list-testing.mjs.map +1 -1
  121. package/fesm2022/list.mjs +1522 -1204
  122. package/fesm2022/list.mjs.map +1 -1
  123. package/fesm2022/material.mjs +0 -5
  124. package/fesm2022/material.mjs.map +1 -1
  125. package/fesm2022/menu-testing.mjs +159 -228
  126. package/fesm2022/menu-testing.mjs.map +1 -1
  127. package/fesm2022/menu.mjs +1338 -1343
  128. package/fesm2022/menu.mjs.map +1 -1
  129. package/fesm2022/paginator-testing.mjs +55 -79
  130. package/fesm2022/paginator-testing.mjs.map +1 -1
  131. package/fesm2022/paginator.mjs +381 -309
  132. package/fesm2022/paginator.mjs.map +1 -1
  133. package/fesm2022/progress-bar-testing.mjs +12 -21
  134. package/fesm2022/progress-bar-testing.mjs.map +1 -1
  135. package/fesm2022/progress-bar.mjs +224 -169
  136. package/fesm2022/progress-bar.mjs.map +1 -1
  137. package/fesm2022/progress-spinner-testing.mjs +13 -23
  138. package/fesm2022/progress-spinner-testing.mjs.map +1 -1
  139. package/fesm2022/progress-spinner.mjs +235 -160
  140. package/fesm2022/progress-spinner.mjs.map +1 -1
  141. package/fesm2022/radio-testing.mjs +133 -208
  142. package/fesm2022/radio-testing.mjs.map +1 -1
  143. package/fesm2022/radio.mjs +712 -679
  144. package/fesm2022/radio.mjs.map +1 -1
  145. package/fesm2022/select-testing.mjs +83 -117
  146. package/fesm2022/select-testing.mjs.map +1 -1
  147. package/fesm2022/select.mjs +1116 -1246
  148. package/fesm2022/select.mjs.map +1 -1
  149. package/fesm2022/sidenav-testing.mjs +54 -120
  150. package/fesm2022/sidenav-testing.mjs.map +1 -1
  151. package/fesm2022/sidenav.mjs +1078 -995
  152. package/fesm2022/sidenav.mjs.map +1 -1
  153. package/fesm2022/slide-toggle-testing.mjs +57 -92
  154. package/fesm2022/slide-toggle-testing.mjs.map +1 -1
  155. package/fesm2022/slide-toggle.mjs +369 -279
  156. package/fesm2022/slide-toggle.mjs.map +1 -1
  157. package/fesm2022/slider-testing.mjs +90 -138
  158. package/fesm2022/slider-testing.mjs.map +1 -1
  159. package/fesm2022/slider.mjs +1651 -1716
  160. package/fesm2022/slider.mjs.map +1 -1
  161. package/fesm2022/snack-bar-testing.mjs +40 -87
  162. package/fesm2022/snack-bar-testing.mjs.map +1 -1
  163. package/fesm2022/snack-bar.mjs +763 -714
  164. package/fesm2022/snack-bar.mjs.map +1 -1
  165. package/fesm2022/sort-testing.mjs +45 -66
  166. package/fesm2022/sort-testing.mjs.map +1 -1
  167. package/fesm2022/sort.mjs +419 -344
  168. package/fesm2022/sort.mjs.map +1 -1
  169. package/fesm2022/stepper-testing.mjs +78 -154
  170. package/fesm2022/stepper-testing.mjs.map +1 -1
  171. package/fesm2022/stepper.mjs +790 -498
  172. package/fesm2022/stepper.mjs.map +1 -1
  173. package/fesm2022/table-testing.mjs +125 -186
  174. package/fesm2022/table-testing.mjs.map +1 -1
  175. package/fesm2022/table.mjs +1026 -684
  176. package/fesm2022/table.mjs.map +1 -1
  177. package/fesm2022/tabs-testing.mjs +125 -197
  178. package/fesm2022/tabs-testing.mjs.map +1 -1
  179. package/fesm2022/tabs.mjs +2351 -2028
  180. package/fesm2022/tabs.mjs.map +1 -1
  181. package/fesm2022/timepicker-testing.mjs +113 -172
  182. package/fesm2022/timepicker-testing.mjs.map +1 -1
  183. package/fesm2022/timepicker.mjs +1019 -826
  184. package/fesm2022/timepicker.mjs.map +1 -1
  185. package/fesm2022/toolbar-testing.mjs +16 -27
  186. package/fesm2022/toolbar-testing.mjs.map +1 -1
  187. package/fesm2022/toolbar.mjs +163 -78
  188. package/fesm2022/toolbar.mjs.map +1 -1
  189. package/fesm2022/tooltip-testing.mjs +41 -52
  190. package/fesm2022/tooltip-testing.mjs.map +1 -1
  191. package/fesm2022/tooltip.mjs +36 -10
  192. package/fesm2022/tooltip.mjs.map +1 -1
  193. package/fesm2022/tree-testing.mjs +86 -162
  194. package/fesm2022/tree-testing.mjs.map +1 -1
  195. package/fesm2022/tree.mjs +638 -466
  196. package/fesm2022/tree.mjs.map +1 -1
  197. package/package.json +2 -2
  198. package/schematics/ng-add/index.js +1 -1
  199. package/types/expansion.d.ts +4 -2
  200. package/types/menu-testing.d.ts +2 -0
  201. package/types/select.d.ts +1 -1
  202. package/types/sort.d.ts +1 -1
  203. package/types/table-testing.d.ts +27 -1
  204. package/types/timepicker.d.ts +148 -128
@@ -1 +1 @@
1
- {"version":3,"file":"card.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/card/card.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/card/card.html","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/card/card-title-group.html","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/card/card-header.html","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/card/card-module.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 ChangeDetectionStrategy,\n Component,\n Directive,\n InjectionToken,\n Input,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\n\nexport type MatCardAppearance = 'outlined' | 'raised' | 'filled';\n\n/** Object that can be used to configure the default options for the card module. */\nexport interface MatCardConfig {\n /** Default appearance for cards. */\n appearance?: MatCardAppearance;\n}\n\n/** Injection token that can be used to provide the default options the card module. */\nexport const MAT_CARD_CONFIG = new InjectionToken<MatCardConfig>('MAT_CARD_CONFIG');\n\n/**\n * Material Design card component. Cards contain content and actions about a single subject.\n * See https://material.io/design/components/cards.html\n *\n * MatCard provides no behaviors, instead serving as a purely visual treatment.\n */\n@Component({\n selector: 'mat-card',\n templateUrl: 'card.html',\n styleUrl: 'card.css',\n host: {\n 'class': 'mat-mdc-card mdc-card',\n '[class.mat-mdc-card-outlined]': 'appearance === \"outlined\"',\n '[class.mdc-card--outlined]': 'appearance === \"outlined\"',\n '[class.mat-mdc-card-filled]': 'appearance === \"filled\"',\n '[class.mdc-card--filled]': 'appearance === \"filled\"',\n },\n exportAs: 'matCard',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatCard {\n @Input() appearance: MatCardAppearance;\n\n constructor(...args: unknown[]);\n\n constructor() {\n const config = inject<MatCardConfig>(MAT_CARD_CONFIG, {optional: true});\n this.appearance = config?.appearance || 'raised';\n }\n}\n\n// TODO(jelbourn): add `MatActionCard`, which is a card that acts like a button (and has a ripple).\n// Supported in MDC with `.mdc-card__primary-action`. Will require additional a11y docs for users.\n\n/**\n * Title of a card, intended for use within `<mat-card>`. This component is an optional\n * convenience for one variety of card title; any custom title element may be used in its place.\n *\n * MatCardTitle provides no behaviors, instead serving as a purely visual treatment.\n */\n@Directive({\n selector: `mat-card-title, [mat-card-title], [matCardTitle]`,\n host: {'class': 'mat-mdc-card-title'},\n})\nexport class MatCardTitle {}\n\n/**\n * Container intended to be used within the `<mat-card>` component. Can contain exactly one\n * `<mat-card-title>`, one `<mat-card-subtitle>` and one content image of any size\n * (e.g. `<img matCardLgImage>`).\n */\n@Component({\n selector: 'mat-card-title-group',\n templateUrl: 'card-title-group.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {'class': 'mat-mdc-card-title-group'},\n})\nexport class MatCardTitleGroup {}\n\n/**\n * Content of a card, intended for use within `<mat-card>`. This component is an optional\n * convenience for use with other convenience elements, such as `<mat-card-title>`; any custom\n * content block element may be used in its place.\n *\n * MatCardContent provides no behaviors, instead serving as a purely visual treatment.\n */\n@Directive({\n selector: 'mat-card-content',\n host: {'class': 'mat-mdc-card-content'},\n})\nexport class MatCardContent {}\n\n/**\n * Sub-title of a card, intended for use within `<mat-card>` beneath a `<mat-card-title>`. This\n * component is an optional convenience for use with other convenience elements, such as\n * `<mat-card-title>`.\n *\n * MatCardSubtitle provides no behaviors, instead serving as a purely visual treatment.\n */\n@Directive({\n selector: `mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]`,\n host: {'class': 'mat-mdc-card-subtitle'},\n})\nexport class MatCardSubtitle {}\n\n/**\n * Bottom area of a card that contains action buttons, intended for use within `<mat-card>`.\n * This component is an optional convenience for use with other convenience elements, such as\n * `<mat-card-content>`; any custom action block element may be used in its place.\n *\n * MatCardActions provides no behaviors, instead serving as a purely visual treatment.\n */\n@Directive({\n selector: 'mat-card-actions',\n exportAs: 'matCardActions',\n host: {\n 'class': 'mat-mdc-card-actions mdc-card__actions',\n '[class.mat-mdc-card-actions-align-end]': 'align === \"end\"',\n },\n})\nexport class MatCardActions {\n // TODO(jelbourn): deprecate `align` in favor of `actionPosition` or `actionAlignment`\n // as to not conflict with the native `align` attribute.\n\n /** Position of the actions inside the card. */\n @Input() align: 'start' | 'end' = 'start';\n\n // TODO(jelbourn): support `.mdc-card__actions--full-bleed`.\n\n // TODO(jelbourn): support `.mdc-card__action-buttons` and `.mdc-card__action-icons`.\n\n // TODO(jelbourn): figure out how to use `.mdc-card__action`, `.mdc-card__action--button`, and\n // `mdc-card__action--icon`. They're used primarily for positioning, which we might be able to\n // do implicitly.\n}\n\n/**\n * Header region of a card, intended for use within `<mat-card>`. This header captures\n * a card title, subtitle, and avatar. This component is an optional convenience for use with\n * other convenience elements, such as `<mat-card-footer>`; any custom header block element may be\n * used in its place.\n *\n * MatCardHeader provides no behaviors, instead serving as a purely visual treatment.\n */\n@Component({\n selector: 'mat-card-header',\n templateUrl: 'card-header.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {'class': 'mat-mdc-card-header'},\n})\nexport class MatCardHeader {}\n\n/**\n * Footer area a card, intended for use within `<mat-card>`.\n * This component is an optional convenience for use with other convenience elements, such as\n * `<mat-card-content>`; any custom footer block element may be used in its place.\n *\n * MatCardFooter provides no behaviors, instead serving as a purely visual treatment.\n */\n@Directive({\n selector: 'mat-card-footer',\n host: {'class': 'mat-mdc-card-footer'},\n})\nexport class MatCardFooter {}\n\n// TODO(jelbourn): deprecate the \"image\" selectors to replace with \"media\".\n\n// TODO(jelbourn): support `.mdc-card__media-content`.\n\n/**\n * Primary image content for a card, intended for use within `<mat-card>`. Can be applied to\n * any media element, such as `<img>` or `<picture>`.\n *\n * This component is an optional convenience for use with other convenience elements, such as\n * `<mat-card-content>`; any custom media element may be used in its place.\n *\n * MatCardImage provides no behaviors, instead serving as a purely visual treatment.\n */\n@Directive({\n selector: '[mat-card-image], [matCardImage]',\n host: {'class': 'mat-mdc-card-image mdc-card__media'},\n})\nexport class MatCardImage {\n // TODO(jelbourn): support `.mdc-card__media--square` and `.mdc-card__media--16-9`.\n}\n\n/** Same as `MatCardImage`, but small. */\n@Directive({\n selector: '[mat-card-sm-image], [matCardImageSmall]',\n host: {'class': 'mat-mdc-card-sm-image mdc-card__media'},\n})\nexport class MatCardSmImage {}\n\n/** Same as `MatCardImage`, but medium. */\n@Directive({\n selector: '[mat-card-md-image], [matCardImageMedium]',\n host: {'class': 'mat-mdc-card-md-image mdc-card__media'},\n})\nexport class MatCardMdImage {}\n\n/** Same as `MatCardImage`, but large. */\n@Directive({\n selector: '[mat-card-lg-image], [matCardImageLarge]',\n host: {'class': 'mat-mdc-card-lg-image mdc-card__media'},\n})\nexport class MatCardLgImage {}\n\n/** Same as `MatCardImage`, but extra-large. */\n@Directive({\n selector: '[mat-card-xl-image], [matCardImageXLarge]',\n host: {'class': 'mat-mdc-card-xl-image mdc-card__media'},\n})\nexport class MatCardXlImage {}\n\n/**\n * Avatar image content for a card, intended for use within `<mat-card>`. Can be applied to\n * any media element, such as `<img>` or `<picture>`.\n *\n * This component is an optional convenience for use with other convenience elements, such as\n * `<mat-card-title>`; any custom media element may be used in its place.\n *\n * MatCardAvatar provides no behaviors, instead serving as a purely visual treatment.\n */\n@Directive({\n selector: '[mat-card-avatar], [matCardAvatar]',\n host: {'class': 'mat-mdc-card-avatar'},\n})\nexport class MatCardAvatar {}\n","<ng-content></ng-content>\n","<div>\n <ng-content\n select=\"mat-card-title, mat-card-subtitle,\n [mat-card-title], [mat-card-subtitle],\n [matCardTitle], [matCardSubtitle]\"></ng-content>\n</div>\n<ng-content select=\"[mat-card-image], [matCardImage],\n [mat-card-sm-image], [matCardImageSmall],\n [mat-card-md-image], [matCardImageMedium],\n [mat-card-lg-image], [matCardImageLarge],\n [mat-card-xl-image], [matCardImageXLarge]\"></ng-content>\n<ng-content></ng-content>\n","<ng-content select=\"[mat-card-avatar], [matCardAvatar]\"></ng-content>\n<div class=\"mat-mdc-card-header-text\">\n <ng-content\n select=\"mat-card-title, mat-card-subtitle,\n [mat-card-title], [mat-card-subtitle],\n [matCardTitle], [matCardSubtitle]\"></ng-content>\n</div>\n<ng-content></ng-content>\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 {NgModule} from '@angular/core';\nimport {BidiModule} from '@angular/cdk/bidi';\nimport {\n MatCard,\n MatCardActions,\n MatCardAvatar,\n MatCardContent,\n MatCardFooter,\n MatCardHeader,\n MatCardImage,\n MatCardLgImage,\n MatCardMdImage,\n MatCardSmImage,\n MatCardSubtitle,\n MatCardTitle,\n MatCardTitleGroup,\n MatCardXlImage,\n} from './card';\n\nconst CARD_DIRECTIVES = [\n MatCard,\n MatCardActions,\n MatCardAvatar,\n MatCardContent,\n MatCardFooter,\n MatCardHeader,\n MatCardImage,\n MatCardLgImage,\n MatCardMdImage,\n MatCardSmImage,\n MatCardSubtitle,\n MatCardTitle,\n MatCardTitleGroup,\n MatCardXlImage,\n];\n\n@NgModule({\n imports: CARD_DIRECTIVES,\n exports: [CARD_DIRECTIVES, BidiModule],\n})\nexport class MatCardModule {}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"card.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/card/card.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/card/card-module.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 ChangeDetectionStrategy,\n Component,\n Directive,\n InjectionToken,\n Input,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\n\nexport type MatCardAppearance = 'outlined' | 'raised' | 'filled';\n\n/** Object that can be used to configure the default options for the card module. */\nexport interface MatCardConfig {\n /** Default appearance for cards. */\n appearance?: MatCardAppearance;\n}\n\n/** Injection token that can be used to provide the default options the card module. */\nexport const MAT_CARD_CONFIG = new InjectionToken<MatCardConfig>('MAT_CARD_CONFIG');\n\n/**\n * Material Design card component. Cards contain content and actions about a single subject.\n * See https://material.io/design/components/cards.html\n *\n * MatCard provides no behaviors, instead serving as a purely visual treatment.\n */\n@Component({\n selector: 'mat-card',\n templateUrl: 'card.html',\n styleUrl: 'card.css',\n host: {\n 'class': 'mat-mdc-card mdc-card',\n '[class.mat-mdc-card-outlined]': 'appearance === \"outlined\"',\n '[class.mdc-card--outlined]': 'appearance === \"outlined\"',\n '[class.mat-mdc-card-filled]': 'appearance === \"filled\"',\n '[class.mdc-card--filled]': 'appearance === \"filled\"',\n },\n exportAs: 'matCard',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatCard {\n @Input() appearance: MatCardAppearance;\n\n constructor(...args: unknown[]);\n\n constructor() {\n const config = inject<MatCardConfig>(MAT_CARD_CONFIG, {optional: true});\n this.appearance = config?.appearance || 'raised';\n }\n}\n\n// TODO(jelbourn): add `MatActionCard`, which is a card that acts like a button (and has a ripple).\n// Supported in MDC with `.mdc-card__primary-action`. Will require additional a11y docs for users.\n\n/**\n * Title of a card, intended for use within `<mat-card>`. This component is an optional\n * convenience for one variety of card title; any custom title element may be used in its place.\n *\n * MatCardTitle provides no behaviors, instead serving as a purely visual treatment.\n */\n@Directive({\n selector: `mat-card-title, [mat-card-title], [matCardTitle]`,\n host: {'class': 'mat-mdc-card-title'},\n})\nexport class MatCardTitle {}\n\n/**\n * Container intended to be used within the `<mat-card>` component. Can contain exactly one\n * `<mat-card-title>`, one `<mat-card-subtitle>` and one content image of any size\n * (e.g. `<img matCardLgImage>`).\n */\n@Component({\n selector: 'mat-card-title-group',\n templateUrl: 'card-title-group.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {'class': 'mat-mdc-card-title-group'},\n})\nexport class MatCardTitleGroup {}\n\n/**\n * Content of a card, intended for use within `<mat-card>`. This component is an optional\n * convenience for use with other convenience elements, such as `<mat-card-title>`; any custom\n * content block element may be used in its place.\n *\n * MatCardContent provides no behaviors, instead serving as a purely visual treatment.\n */\n@Directive({\n selector: 'mat-card-content',\n host: {'class': 'mat-mdc-card-content'},\n})\nexport class MatCardContent {}\n\n/**\n * Sub-title of a card, intended for use within `<mat-card>` beneath a `<mat-card-title>`. This\n * component is an optional convenience for use with other convenience elements, such as\n * `<mat-card-title>`.\n *\n * MatCardSubtitle provides no behaviors, instead serving as a purely visual treatment.\n */\n@Directive({\n selector: `mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]`,\n host: {'class': 'mat-mdc-card-subtitle'},\n})\nexport class MatCardSubtitle {}\n\n/**\n * Bottom area of a card that contains action buttons, intended for use within `<mat-card>`.\n * This component is an optional convenience for use with other convenience elements, such as\n * `<mat-card-content>`; any custom action block element may be used in its place.\n *\n * MatCardActions provides no behaviors, instead serving as a purely visual treatment.\n */\n@Directive({\n selector: 'mat-card-actions',\n exportAs: 'matCardActions',\n host: {\n 'class': 'mat-mdc-card-actions mdc-card__actions',\n '[class.mat-mdc-card-actions-align-end]': 'align === \"end\"',\n },\n})\nexport class MatCardActions {\n // TODO(jelbourn): deprecate `align` in favor of `actionPosition` or `actionAlignment`\n // as to not conflict with the native `align` attribute.\n\n /** Position of the actions inside the card. */\n @Input() align: 'start' | 'end' = 'start';\n\n // TODO(jelbourn): support `.mdc-card__actions--full-bleed`.\n\n // TODO(jelbourn): support `.mdc-card__action-buttons` and `.mdc-card__action-icons`.\n\n // TODO(jelbourn): figure out how to use `.mdc-card__action`, `.mdc-card__action--button`, and\n // `mdc-card__action--icon`. They're used primarily for positioning, which we might be able to\n // do implicitly.\n}\n\n/**\n * Header region of a card, intended for use within `<mat-card>`. This header captures\n * a card title, subtitle, and avatar. This component is an optional convenience for use with\n * other convenience elements, such as `<mat-card-footer>`; any custom header block element may be\n * used in its place.\n *\n * MatCardHeader provides no behaviors, instead serving as a purely visual treatment.\n */\n@Component({\n selector: 'mat-card-header',\n templateUrl: 'card-header.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {'class': 'mat-mdc-card-header'},\n})\nexport class MatCardHeader {}\n\n/**\n * Footer area a card, intended for use within `<mat-card>`.\n * This component is an optional convenience for use with other convenience elements, such as\n * `<mat-card-content>`; any custom footer block element may be used in its place.\n *\n * MatCardFooter provides no behaviors, instead serving as a purely visual treatment.\n */\n@Directive({\n selector: 'mat-card-footer',\n host: {'class': 'mat-mdc-card-footer'},\n})\nexport class MatCardFooter {}\n\n// TODO(jelbourn): deprecate the \"image\" selectors to replace with \"media\".\n\n// TODO(jelbourn): support `.mdc-card__media-content`.\n\n/**\n * Primary image content for a card, intended for use within `<mat-card>`. Can be applied to\n * any media element, such as `<img>` or `<picture>`.\n *\n * This component is an optional convenience for use with other convenience elements, such as\n * `<mat-card-content>`; any custom media element may be used in its place.\n *\n * MatCardImage provides no behaviors, instead serving as a purely visual treatment.\n */\n@Directive({\n selector: '[mat-card-image], [matCardImage]',\n host: {'class': 'mat-mdc-card-image mdc-card__media'},\n})\nexport class MatCardImage {\n // TODO(jelbourn): support `.mdc-card__media--square` and `.mdc-card__media--16-9`.\n}\n\n/** Same as `MatCardImage`, but small. */\n@Directive({\n selector: '[mat-card-sm-image], [matCardImageSmall]',\n host: {'class': 'mat-mdc-card-sm-image mdc-card__media'},\n})\nexport class MatCardSmImage {}\n\n/** Same as `MatCardImage`, but medium. */\n@Directive({\n selector: '[mat-card-md-image], [matCardImageMedium]',\n host: {'class': 'mat-mdc-card-md-image mdc-card__media'},\n})\nexport class MatCardMdImage {}\n\n/** Same as `MatCardImage`, but large. */\n@Directive({\n selector: '[mat-card-lg-image], [matCardImageLarge]',\n host: {'class': 'mat-mdc-card-lg-image mdc-card__media'},\n})\nexport class MatCardLgImage {}\n\n/** Same as `MatCardImage`, but extra-large. */\n@Directive({\n selector: '[mat-card-xl-image], [matCardImageXLarge]',\n host: {'class': 'mat-mdc-card-xl-image mdc-card__media'},\n})\nexport class MatCardXlImage {}\n\n/**\n * Avatar image content for a card, intended for use within `<mat-card>`. Can be applied to\n * any media element, such as `<img>` or `<picture>`.\n *\n * This component is an optional convenience for use with other convenience elements, such as\n * `<mat-card-title>`; any custom media element may be used in its place.\n *\n * MatCardAvatar provides no behaviors, instead serving as a purely visual treatment.\n */\n@Directive({\n selector: '[mat-card-avatar], [matCardAvatar]',\n host: {'class': 'mat-mdc-card-avatar'},\n})\nexport class MatCardAvatar {}\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 {NgModule} from '@angular/core';\nimport {BidiModule} from '@angular/cdk/bidi';\nimport {\n MatCard,\n MatCardActions,\n MatCardAvatar,\n MatCardContent,\n MatCardFooter,\n MatCardHeader,\n MatCardImage,\n MatCardLgImage,\n MatCardMdImage,\n MatCardSmImage,\n MatCardSubtitle,\n MatCardTitle,\n MatCardTitleGroup,\n MatCardXlImage,\n} from './card';\n\nconst CARD_DIRECTIVES = [\n MatCard,\n MatCardActions,\n MatCardAvatar,\n MatCardContent,\n MatCardFooter,\n MatCardHeader,\n MatCardImage,\n MatCardLgImage,\n MatCardMdImage,\n MatCardSmImage,\n MatCardSubtitle,\n MatCardTitle,\n MatCardTitleGroup,\n MatCardXlImage,\n];\n\n@NgModule({\n imports: CARD_DIRECTIVES,\n exports: [CARD_DIRECTIVES, BidiModule],\n})\nexport class MatCardModule {}\n"],"names":["ɵcmp","i0","ɵɵngDeclareComponent","minVersion","version","type","MatCard","isStandalone","selector","inputs","appearance","host","properties","classAttribute","exportAs","ngImport","template","styles","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","decorators","args","MatCardTitleGroup","MatCardActions","ɵdir","ɵɵngDeclareDirective","align","ɵɵngDeclareFactory","MatCardSmImage","deps","target","ɵɵFactoryTarget","Directive","MatCardMdImage","MatCardLgImage","MatCardXlImage","MatCardModule","NgModule","ɵɵngDeclareNgModule","imports","MatCardHeader","exports","BidiModule","ɵɵngDeclareInjector","CARD_DIRECTIVES"],"mappings":"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"}
@@ -1,130 +1,78 @@
1
1
  import { ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';
2
2
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
3
3
 
4
- /** Harness for interacting with a mat-checkbox in tests. */
5
4
  class MatCheckboxHarness extends ComponentHarness {
6
- static hostSelector = '.mat-mdc-checkbox';
7
- _input = this.locatorFor('input');
8
- _label = this.locatorFor('label');
9
- _inputContainer = this.locatorFor('.mdc-checkbox');
10
- /**
11
- * Gets a `HarnessPredicate` that can be used to search for a checkbox with specific attributes.
12
- * @param options Options for narrowing the search:
13
- * - `selector` finds a checkbox whose host element matches the given selector.
14
- * - `label` finds a checkbox with specific label text.
15
- * - `name` finds a checkbox with specific name.
16
- * @return a `HarnessPredicate` configured with the given options.
17
- */
18
- static with(options = {}) {
19
- return (new HarnessPredicate(this, options)
20
- .addOption('label', options.label, (harness, label) => HarnessPredicate.stringMatches(harness.getLabelText(), label))
21
- // We want to provide a filter option for "name" because the name of the checkbox is
22
- // only set on the underlying input. This means that it's not possible for developers
23
- // to retrieve the harness of a specific checkbox with name through a CSS selector.
24
- .addOption('name', options.name, async (harness, name) => (await harness.getName()) === name)
25
- .addOption('checked', options.checked, async (harness, checked) => (await harness.isChecked()) == checked)
26
- .addOption('disabled', options.disabled, async (harness, disabled) => {
27
- return (await harness.isDisabled()) === disabled;
28
- }));
29
- }
30
- /** Whether the checkbox is checked. */
31
- async isChecked() {
32
- const checked = (await this._input()).getProperty('checked');
33
- return coerceBooleanProperty(await checked);
34
- }
35
- /** Whether the checkbox is in an indeterminate state. */
36
- async isIndeterminate() {
37
- const indeterminate = (await this._input()).getProperty('indeterminate');
38
- return coerceBooleanProperty(await indeterminate);
39
- }
40
- /** Whether the checkbox is disabled. */
41
- async isDisabled() {
42
- const input = await this._input();
43
- const disabled = await input.getAttribute('disabled');
44
- if (disabled !== null) {
45
- return coerceBooleanProperty(disabled);
46
- }
47
- return (await input.getAttribute('aria-disabled')) === 'true';
48
- }
49
- /** Whether the checkbox is required. */
50
- async isRequired() {
51
- const required = (await this._input()).getProperty('required');
52
- return coerceBooleanProperty(await required);
53
- }
54
- /** Whether the checkbox is valid. */
55
- async isValid() {
56
- const invalid = (await this.host()).hasClass('ng-invalid');
57
- return !(await invalid);
58
- }
59
- /** Gets the checkbox's name. */
60
- async getName() {
61
- return (await this._input()).getAttribute('name');
62
- }
63
- /** Gets the checkbox's value. */
64
- async getValue() {
65
- return (await this._input()).getProperty('value');
66
- }
67
- /** Gets the checkbox's aria-label. */
68
- async getAriaLabel() {
69
- return (await this._input()).getAttribute('aria-label');
70
- }
71
- /** Gets the checkbox's aria-labelledby. */
72
- async getAriaLabelledby() {
73
- return (await this._input()).getAttribute('aria-labelledby');
74
- }
75
- /** Gets the checkbox's label text. */
76
- async getLabelText() {
77
- return (await this._label()).text();
78
- }
79
- /** Focuses the checkbox. */
80
- async focus() {
81
- return (await this._input()).focus();
82
- }
83
- /** Blurs the checkbox. */
84
- async blur() {
85
- return (await this._input()).blur();
86
- }
87
- /** Whether the checkbox is focused. */
88
- async isFocused() {
89
- return (await this._input()).isFocused();
90
- }
91
- /**
92
- * Toggles the checked state of the checkbox.
93
- *
94
- * Note: This attempts to toggle the checkbox as a user would, by clicking it. Therefore if you
95
- * are using `MAT_CHECKBOX_DEFAULT_OPTIONS` to change the behavior on click, calling this method
96
- * might not have the expected result.
97
- */
98
- async toggle() {
99
- const elToClick = await ((await this.isDisabled()) ? this._inputContainer() : this._input());
100
- return elToClick.click();
101
- }
102
- /**
103
- * Puts the checkbox in a checked state by toggling it if it is currently unchecked, or doing
104
- * nothing if it is already checked.
105
- *
106
- * Note: This attempts to check the checkbox as a user would, by clicking it. Therefore if you
107
- * are using `MAT_CHECKBOX_DEFAULT_OPTIONS` to change the behavior on click, calling this method
108
- * might not have the expected result.
109
- */
110
- async check() {
111
- if (!(await this.isChecked())) {
112
- await this.toggle();
113
- }
114
- }
115
- /**
116
- * Puts the checkbox in an unchecked state by toggling it if it is currently checked, or doing
117
- * nothing if it is already unchecked.
118
- *
119
- * Note: This attempts to uncheck the checkbox as a user would, by clicking it. Therefore if you
120
- * are using `MAT_CHECKBOX_DEFAULT_OPTIONS` to change the behavior on click, calling this method
121
- * might not have the expected result.
122
- */
123
- async uncheck() {
124
- if (await this.isChecked()) {
125
- await this.toggle();
126
- }
127
- }
5
+ static hostSelector = '.mat-mdc-checkbox';
6
+ _input = this.locatorFor('input');
7
+ _label = this.locatorFor('label');
8
+ _inputContainer = this.locatorFor('.mdc-checkbox');
9
+ static with(options = {}) {
10
+ return new HarnessPredicate(this, options).addOption('label', options.label, (harness, label) => HarnessPredicate.stringMatches(harness.getLabelText(), label)).addOption('name', options.name, async (harness, name) => (await harness.getName()) === name).addOption('checked', options.checked, async (harness, checked) => (await harness.isChecked()) == checked).addOption('disabled', options.disabled, async (harness, disabled) => {
11
+ return (await harness.isDisabled()) === disabled;
12
+ });
13
+ }
14
+ async isChecked() {
15
+ const checked = (await this._input()).getProperty('checked');
16
+ return coerceBooleanProperty(await checked);
17
+ }
18
+ async isIndeterminate() {
19
+ const indeterminate = (await this._input()).getProperty('indeterminate');
20
+ return coerceBooleanProperty(await indeterminate);
21
+ }
22
+ async isDisabled() {
23
+ const input = await this._input();
24
+ const disabled = await input.getAttribute('disabled');
25
+ if (disabled !== null) {
26
+ return coerceBooleanProperty(disabled);
27
+ }
28
+ return (await input.getAttribute('aria-disabled')) === 'true';
29
+ }
30
+ async isRequired() {
31
+ const required = (await this._input()).getProperty('required');
32
+ return coerceBooleanProperty(await required);
33
+ }
34
+ async isValid() {
35
+ const invalid = (await this.host()).hasClass('ng-invalid');
36
+ return !(await invalid);
37
+ }
38
+ async getName() {
39
+ return (await this._input()).getAttribute('name');
40
+ }
41
+ async getValue() {
42
+ return (await this._input()).getProperty('value');
43
+ }
44
+ async getAriaLabel() {
45
+ return (await this._input()).getAttribute('aria-label');
46
+ }
47
+ async getAriaLabelledby() {
48
+ return (await this._input()).getAttribute('aria-labelledby');
49
+ }
50
+ async getLabelText() {
51
+ return (await this._label()).text();
52
+ }
53
+ async focus() {
54
+ return (await this._input()).focus();
55
+ }
56
+ async blur() {
57
+ return (await this._input()).blur();
58
+ }
59
+ async isFocused() {
60
+ return (await this._input()).isFocused();
61
+ }
62
+ async toggle() {
63
+ const elToClick = await ((await this.isDisabled()) ? this._inputContainer() : this._input());
64
+ return elToClick.click();
65
+ }
66
+ async check() {
67
+ if (!(await this.isChecked())) {
68
+ await this.toggle();
69
+ }
70
+ }
71
+ async uncheck() {
72
+ if (await this.isChecked()) {
73
+ await this.toggle();
74
+ }
75
+ }
128
76
  }
129
77
 
130
78
  export { MatCheckboxHarness };
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox-testing.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/checkbox/testing/checkbox-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 {CheckboxHarnessFilters} from './checkbox-harness-filters';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\n\n/** Harness for interacting with a mat-checkbox in tests. */\nexport class MatCheckboxHarness extends ComponentHarness {\n static hostSelector = '.mat-mdc-checkbox';\n\n _input = this.locatorFor('input');\n private _label = this.locatorFor('label');\n private _inputContainer = this.locatorFor('.mdc-checkbox');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a checkbox with specific attributes.\n * @param options Options for narrowing the search:\n * - `selector` finds a checkbox whose host element matches the given selector.\n * - `label` finds a checkbox with specific label text.\n * - `name` finds a checkbox with specific name.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatCheckboxHarness>(\n this: ComponentHarnessConstructor<T>,\n options: CheckboxHarnessFilters = {},\n ): HarnessPredicate<T> {\n return (\n new HarnessPredicate(this, options)\n .addOption('label', options.label, (harness, label) =>\n HarnessPredicate.stringMatches(harness.getLabelText(), label),\n )\n // We want to provide a filter option for \"name\" because the name of the checkbox is\n // only set on the underlying input. This means that it's not possible for developers\n // to retrieve the harness of a specific checkbox with name through a CSS selector.\n .addOption(\n 'name',\n options.name,\n async (harness, name) => (await harness.getName()) === name,\n )\n .addOption(\n 'checked',\n options.checked,\n async (harness, checked) => (await harness.isChecked()) == checked,\n )\n .addOption('disabled', options.disabled, async (harness, disabled) => {\n return (await harness.isDisabled()) === disabled;\n })\n );\n }\n\n /** Whether the checkbox is checked. */\n async isChecked(): Promise<boolean> {\n const checked = (await this._input()).getProperty<boolean>('checked');\n return coerceBooleanProperty(await checked);\n }\n\n /** Whether the checkbox is in an indeterminate state. */\n async isIndeterminate(): Promise<boolean> {\n const indeterminate = (await this._input()).getProperty<string>('indeterminate');\n return coerceBooleanProperty(await indeterminate);\n }\n\n /** Whether the checkbox is disabled. */\n async isDisabled(): Promise<boolean> {\n const input = await this._input();\n const disabled = await input.getAttribute('disabled');\n\n if (disabled !== null) {\n return coerceBooleanProperty(disabled);\n }\n\n return (await input.getAttribute('aria-disabled')) === 'true';\n }\n\n /** Whether the checkbox is required. */\n async isRequired(): Promise<boolean> {\n const required = (await this._input()).getProperty<boolean>('required');\n return coerceBooleanProperty(await required);\n }\n\n /** Whether the checkbox is valid. */\n async isValid(): Promise<boolean> {\n const invalid = (await this.host()).hasClass('ng-invalid');\n return !(await invalid);\n }\n\n /** Gets the checkbox's name. */\n async getName(): Promise<string | null> {\n return (await this._input()).getAttribute('name');\n }\n\n /** Gets the checkbox's value. */\n async getValue(): Promise<string | null> {\n return (await this._input()).getProperty<string | null>('value');\n }\n\n /** Gets the checkbox's aria-label. */\n async getAriaLabel(): Promise<string | null> {\n return (await this._input()).getAttribute('aria-label');\n }\n\n /** Gets the checkbox's aria-labelledby. */\n async getAriaLabelledby(): Promise<string | null> {\n return (await this._input()).getAttribute('aria-labelledby');\n }\n\n /** Gets the checkbox's label text. */\n async getLabelText(): Promise<string> {\n return (await this._label()).text();\n }\n\n /** Focuses the checkbox. */\n async focus(): Promise<void> {\n return (await this._input()).focus();\n }\n\n /** Blurs the checkbox. */\n async blur(): Promise<void> {\n return (await this._input()).blur();\n }\n\n /** Whether the checkbox is focused. */\n async isFocused(): Promise<boolean> {\n return (await this._input()).isFocused();\n }\n\n /**\n * Toggles the checked state of the checkbox.\n *\n * Note: This attempts to toggle the checkbox as a user would, by clicking it. Therefore if you\n * are using `MAT_CHECKBOX_DEFAULT_OPTIONS` to change the behavior on click, calling this method\n * might not have the expected result.\n */\n async toggle(): Promise<void> {\n const elToClick = await ((await this.isDisabled()) ? this._inputContainer() : this._input());\n return elToClick.click();\n }\n\n /**\n * Puts the checkbox in a checked state by toggling it if it is currently unchecked, or doing\n * nothing if it is already checked.\n *\n * Note: This attempts to check the checkbox as a user would, by clicking it. Therefore if you\n * are using `MAT_CHECKBOX_DEFAULT_OPTIONS` to change the behavior on click, calling this method\n * might not have the expected result.\n */\n async check(): Promise<void> {\n if (!(await this.isChecked())) {\n await this.toggle();\n }\n }\n\n /**\n * Puts the checkbox in an unchecked state by toggling it if it is currently checked, or doing\n * nothing if it is already unchecked.\n *\n * Note: This attempts to uncheck the checkbox as a user would, by clicking it. Therefore if you\n * are using `MAT_CHECKBOX_DEFAULT_OPTIONS` to change the behavior on click, calling this method\n * might not have the expected result.\n */\n async uncheck(): Promise<void> {\n if (await this.isChecked()) {\n await this.toggle();\n }\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkbox-testing.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/checkbox/testing/checkbox-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 {CheckboxHarnessFilters} from './checkbox-harness-filters';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\n\n/** Harness for interacting with a mat-checkbox in tests. */\nexport class MatCheckboxHarness extends ComponentHarness {\n static hostSelector = '.mat-mdc-checkbox';\n\n _input = this.locatorFor('input');\n private _label = this.locatorFor('label');\n private _inputContainer = this.locatorFor('.mdc-checkbox');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a checkbox with specific attributes.\n * @param options Options for narrowing the search:\n * - `selector` finds a checkbox whose host element matches the given selector.\n * - `label` finds a checkbox with specific label text.\n * - `name` finds a checkbox with specific name.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatCheckboxHarness>(\n this: ComponentHarnessConstructor<T>,\n options: CheckboxHarnessFilters = {},\n ): HarnessPredicate<T> {\n return (\n new HarnessPredicate(this, options)\n .addOption('label', options.label, (harness, label) =>\n HarnessPredicate.stringMatches(harness.getLabelText(), label),\n )\n // We want to provide a filter option for \"name\" because the name of the checkbox is\n // only set on the underlying input. This means that it's not possible for developers\n // to retrieve the harness of a specific checkbox with name through a CSS selector.\n .addOption(\n 'name',\n options.name,\n async (harness, name) => (await harness.getName()) === name,\n )\n .addOption(\n 'checked',\n options.checked,\n async (harness, checked) => (await harness.isChecked()) == checked,\n )\n .addOption('disabled', options.disabled, async (harness, disabled) => {\n return (await harness.isDisabled()) === disabled;\n })\n );\n }\n\n /** Whether the checkbox is checked. */\n async isChecked(): Promise<boolean> {\n const checked = (await this._input()).getProperty<boolean>('checked');\n return coerceBooleanProperty(await checked);\n }\n\n /** Whether the checkbox is in an indeterminate state. */\n async isIndeterminate(): Promise<boolean> {\n const indeterminate = (await this._input()).getProperty<string>('indeterminate');\n return coerceBooleanProperty(await indeterminate);\n }\n\n /** Whether the checkbox is disabled. */\n async isDisabled(): Promise<boolean> {\n const input = await this._input();\n const disabled = await input.getAttribute('disabled');\n\n if (disabled !== null) {\n return coerceBooleanProperty(disabled);\n }\n\n return (await input.getAttribute('aria-disabled')) === 'true';\n }\n\n /** Whether the checkbox is required. */\n async isRequired(): Promise<boolean> {\n const required = (await this._input()).getProperty<boolean>('required');\n return coerceBooleanProperty(await required);\n }\n\n /** Whether the checkbox is valid. */\n async isValid(): Promise<boolean> {\n const invalid = (await this.host()).hasClass('ng-invalid');\n return !(await invalid);\n }\n\n /** Gets the checkbox's name. */\n async getName(): Promise<string | null> {\n return (await this._input()).getAttribute('name');\n }\n\n /** Gets the checkbox's value. */\n async getValue(): Promise<string | null> {\n return (await this._input()).getProperty<string | null>('value');\n }\n\n /** Gets the checkbox's aria-label. */\n async getAriaLabel(): Promise<string | null> {\n return (await this._input()).getAttribute('aria-label');\n }\n\n /** Gets the checkbox's aria-labelledby. */\n async getAriaLabelledby(): Promise<string | null> {\n return (await this._input()).getAttribute('aria-labelledby');\n }\n\n /** Gets the checkbox's label text. */\n async getLabelText(): Promise<string> {\n return (await this._label()).text();\n }\n\n /** Focuses the checkbox. */\n async focus(): Promise<void> {\n return (await this._input()).focus();\n }\n\n /** Blurs the checkbox. */\n async blur(): Promise<void> {\n return (await this._input()).blur();\n }\n\n /** Whether the checkbox is focused. */\n async isFocused(): Promise<boolean> {\n return (await this._input()).isFocused();\n }\n\n /**\n * Toggles the checked state of the checkbox.\n *\n * Note: This attempts to toggle the checkbox as a user would, by clicking it. Therefore if you\n * are using `MAT_CHECKBOX_DEFAULT_OPTIONS` to change the behavior on click, calling this method\n * might not have the expected result.\n */\n async toggle(): Promise<void> {\n const elToClick = await ((await this.isDisabled()) ? this._inputContainer() : this._input());\n return elToClick.click();\n }\n\n /**\n * Puts the checkbox in a checked state by toggling it if it is currently unchecked, or doing\n * nothing if it is already checked.\n *\n * Note: This attempts to check the checkbox as a user would, by clicking it. Therefore if you\n * are using `MAT_CHECKBOX_DEFAULT_OPTIONS` to change the behavior on click, calling this method\n * might not have the expected result.\n */\n async check(): Promise<void> {\n if (!(await this.isChecked())) {\n await this.toggle();\n }\n }\n\n /**\n * Puts the checkbox in an unchecked state by toggling it if it is currently checked, or doing\n * nothing if it is already unchecked.\n *\n * Note: This attempts to uncheck the checkbox as a user would, by clicking it. Therefore if you\n * are using `MAT_CHECKBOX_DEFAULT_OPTIONS` to change the behavior on click, calling this method\n * might not have the expected result.\n */\n async uncheck(): Promise<void> {\n if (await this.isChecked()) {\n await this.toggle();\n }\n }\n}\n"],"names":["_label","locatorFor","_inputContainer","addOption","options","name","harness","getName","checked","isChecked","disabled","isDisabled","_input","getProperty","coerceBooleanProperty","isIndeterminate","indeterminate","input","getAttribute","isRequired","required","isValid","hasClass","invalid","getAriaLabel","getLabelText","focus","isFocused"],"mappings":";;;;;;AAqBUA,EAAAA,MAAA,QAAAC,UAAA,CAAA,OAAA,CAAA;EAGRC;;AAuCEC,IAAAA,OAAAA,IAAAA,gBAAAA,CAAAA,IAAAA,EAAAA,OAAAA,CAAAA,CAAAA,SAAAA,CAAAA,OAAAA,EAAAA,OAAAA,CAAAA,KAAAA,EAAAA,CAAAA,OAAAA,EAAAA,KAAAA,KAAAA,gBAAAA,CAAAA,aAAAA,CAAAA,OAAAA,CAAAA,YAAAA,EAAAA,EAAAA,KAAAA,CAAAA,CAAAA,CAAAA,SAAA,SAAAC,OAAA,CAAAC,IAAA,EAAAC,OAAAA,OAAA,EAAAD,IAAA,KAAA,CAAA,MAAAC,OAAA,CAAAC,OAAA,EAAAF,MAAAA,IAAA,EACFF,SAGA,CAAA,SAAqB,EAAAC,OAAA,CAAAI,OAAA,EAAA,OAAAF,OAAA,EAAAE,OAAA,YAAAF,OAAA,CAAAG,SAAA,EAAAD,KAAAA,OAAA,CAEnBL,CAAAA,SACF,aAAAC,OAAA,CAAAM,QAAA,EAAAJ,OAAAA,OAAA,EAAAI,QAAA,KAAA;AAEwC,MAAA,OAAA,CAAA,MAAAJ,OAAA,CAAAK,UAAA,QAAAD,QAAA;;;AAOtCD,EAAAA,MAAAA,SAAAA,GAAA;AAOAD,IAAAA,MAAAA,OAAA,GACA,CACF,MAAA,IAAA,CAAAI,MAAA,EAAAC,EAAAA,WAEqC,CAAA,SAAA,CAAA;WAEnCC,qBAAuB,CAAA,MAAKN,OAAA,CAAQ;;AAKtC,EAAA,MAAAO,eAAA,GAAA;4CAEA,EAAA,EAAAF,WAAA,CAAA,eAAA,CAAA;WAEiCC,qBAAA,OAAAE,aAAA,CAAA;;;IAMjC,MAAAC,KAAA,cAAAL,MAAA,EAAA;AACE,IAAA,MAAAF,QAAA,GAAkB,MAAAO,KAAA,CAAAC,YAAA,CAAA,UAAA,CAAA;IACpB,IAAAR,QAAA,SAAA,EAAA;MAEA,OAA2CI,qBAAA,CAAAJ,QAAA,CAAA;AAC3C;qCAEA,eAAA,CAAA,MAAA,MAAA;;kBAISS,GAAO;AAGhB,IAAA,MAA4BC,QAAA,GAAA,CAAA,MAAA,IAAAR,CAAAA,MAAA,IAAAC,WAAA,CAAA,UAAA,CAAA;AAC5BC,IAAAA,OAAAA,qBAAW,OAAAM,QAAA,CAAA;;AAKX,EAAA,MAAAC,OAAA,GAAA;wCAEAC,QAAA,CAAA,YAAA,CAAA;WAEuC,QAAAC,OAAA,CAAA;;;;;;;AAYvC;AAEEC,EAAAA,MAAAA,YAAgBA,GAAA;;;;;;AAWlBC,EAAAA,MAAAA,YAAWA,GAAA;;;AAMXC,EAAAA,MAAAA,KAAAA,GAAA;;;;;AAQA;AAEIC,EAAAA,MAAAA,SAAAA,GAAM;;;;;;;;;;;;;;;;;;;;;"}