@angular/material 22.0.4 → 22.0.6

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 (81) hide show
  1. package/core/focus-indicators/_private.scss +3 -0
  2. package/fesm2022/_error-options-chunk.mjs +6 -6
  3. package/fesm2022/_error-state-chunk.mjs +9 -12
  4. package/fesm2022/_error-state-chunk.mjs.map +1 -1
  5. package/fesm2022/_form-field-chunk.mjs +30 -30
  6. package/fesm2022/_icon-button-chunk.mjs +6 -6
  7. package/fesm2022/_icon-registry-chunk.mjs +3 -3
  8. package/fesm2022/_internal-form-field-chunk.mjs +7 -7
  9. package/fesm2022/_internal-form-field-chunk.mjs.map +1 -1
  10. package/fesm2022/_line-chunk.mjs +7 -7
  11. package/fesm2022/_option-chunk.mjs +6 -6
  12. package/fesm2022/_option-module-chunk.mjs +4 -4
  13. package/fesm2022/_pseudo-checkbox-chunk.mjs +3 -3
  14. package/fesm2022/_pseudo-checkbox-module-chunk.mjs +4 -4
  15. package/fesm2022/_ripple-chunk.mjs +6 -6
  16. package/fesm2022/_ripple-loader-chunk.mjs +3 -3
  17. package/fesm2022/_ripple-module-chunk.mjs +4 -4
  18. package/fesm2022/_structural-styles-chunk.mjs +5 -5
  19. package/fesm2022/_structural-styles-chunk.mjs.map +1 -1
  20. package/fesm2022/_tooltip-chunk.mjs +6 -6
  21. package/fesm2022/autocomplete.mjs +13 -13
  22. package/fesm2022/badge.mjs +10 -10
  23. package/fesm2022/bottom-sheet.mjs +10 -10
  24. package/fesm2022/button-toggle.mjs +10 -10
  25. package/fesm2022/button.mjs +17 -17
  26. package/fesm2022/button.mjs.map +1 -1
  27. package/fesm2022/card.mjs +46 -46
  28. package/fesm2022/checkbox.mjs +8 -8
  29. package/fesm2022/checkbox.mjs.map +1 -1
  30. package/fesm2022/chips.mjs +52 -47
  31. package/fesm2022/chips.mjs.map +1 -1
  32. package/fesm2022/core.mjs +12 -12
  33. package/fesm2022/core.mjs.map +1 -1
  34. package/fesm2022/datepicker.mjs +89 -84
  35. package/fesm2022/datepicker.mjs.map +1 -1
  36. package/fesm2022/dialog.mjs +25 -25
  37. package/fesm2022/divider.mjs +7 -7
  38. package/fesm2022/expansion.mjs +27 -27
  39. package/fesm2022/expansion.mjs.map +1 -1
  40. package/fesm2022/form-field.mjs +4 -4
  41. package/fesm2022/grid-list.mjs +22 -22
  42. package/fesm2022/icon-testing.mjs +7 -7
  43. package/fesm2022/icon.mjs +7 -7
  44. package/fesm2022/input.mjs +13 -8
  45. package/fesm2022/input.mjs.map +1 -1
  46. package/fesm2022/list.mjs +70 -56
  47. package/fesm2022/list.mjs.map +1 -1
  48. package/fesm2022/menu.mjs +22 -22
  49. package/fesm2022/paginator.mjs +11 -10
  50. package/fesm2022/paginator.mjs.map +1 -1
  51. package/fesm2022/progress-bar.mjs +7 -7
  52. package/fesm2022/progress-spinner.mjs +7 -7
  53. package/fesm2022/radio.mjs +15 -21
  54. package/fesm2022/radio.mjs.map +1 -1
  55. package/fesm2022/select.mjs +16 -11
  56. package/fesm2022/select.mjs.map +1 -1
  57. package/fesm2022/sidenav.mjs +22 -22
  58. package/fesm2022/slide-toggle.mjs +8 -8
  59. package/fesm2022/slide-toggle.mjs.map +1 -1
  60. package/fesm2022/slider.mjs +16 -16
  61. package/fesm2022/snack-bar.mjs +22 -22
  62. package/fesm2022/sort.mjs +15 -15
  63. package/fesm2022/sort.mjs.map +1 -1
  64. package/fesm2022/stepper.mjs +33 -33
  65. package/fesm2022/stepper.mjs.map +1 -1
  66. package/fesm2022/table.mjs +55 -55
  67. package/fesm2022/tabs.mjs +43 -43
  68. package/fesm2022/timepicker.mjs +16 -14
  69. package/fesm2022/timepicker.mjs.map +1 -1
  70. package/fesm2022/toolbar.mjs +10 -10
  71. package/fesm2022/tooltip.mjs +4 -4
  72. package/fesm2022/tree.mjs +25 -25
  73. package/package.json +2 -2
  74. package/prebuilt-themes/deeppurple-amber.css +2 -2
  75. package/prebuilt-themes/indigo-pink.css +2 -2
  76. package/prebuilt-themes/pink-bluegrey.css +2 -2
  77. package/prebuilt-themes/purple-green.css +2 -2
  78. package/schematics/ng-add/index.js +1 -1
  79. package/stepper/_m2-stepper.scss +2 -2
  80. package/types/core.d.ts +2 -1
  81. package/types/radio.d.ts +0 -2
@@ -98,7 +98,7 @@ class MatSnackBarConfig {
98
98
  class MatSnackBarLabel {
99
99
  static ɵfac = i0.ɵɵngDeclareFactory({
100
100
  minVersion: "12.0.0",
101
- version: "22.0.5",
101
+ version: "22.0.7",
102
102
  ngImport: i0,
103
103
  type: MatSnackBarLabel,
104
104
  deps: [],
@@ -106,7 +106,7 @@ class MatSnackBarLabel {
106
106
  });
107
107
  static ɵdir = i0.ɵɵngDeclareDirective({
108
108
  minVersion: "14.0.0",
109
- version: "22.0.5",
109
+ version: "22.0.7",
110
110
  type: MatSnackBarLabel,
111
111
  isStandalone: true,
112
112
  selector: "[matSnackBarLabel]",
@@ -118,7 +118,7 @@ class MatSnackBarLabel {
118
118
  }
119
119
  i0.ɵɵngDeclareClassMetadata({
120
120
  minVersion: "12.0.0",
121
- version: "22.0.5",
121
+ version: "22.0.7",
122
122
  ngImport: i0,
123
123
  type: MatSnackBarLabel,
124
124
  decorators: [{
@@ -134,7 +134,7 @@ i0.ɵɵngDeclareClassMetadata({
134
134
  class MatSnackBarActions {
135
135
  static ɵfac = i0.ɵɵngDeclareFactory({
136
136
  minVersion: "12.0.0",
137
- version: "22.0.5",
137
+ version: "22.0.7",
138
138
  ngImport: i0,
139
139
  type: MatSnackBarActions,
140
140
  deps: [],
@@ -142,7 +142,7 @@ class MatSnackBarActions {
142
142
  });
143
143
  static ɵdir = i0.ɵɵngDeclareDirective({
144
144
  minVersion: "14.0.0",
145
- version: "22.0.5",
145
+ version: "22.0.7",
146
146
  type: MatSnackBarActions,
147
147
  isStandalone: true,
148
148
  selector: "[matSnackBarActions]",
@@ -154,7 +154,7 @@ class MatSnackBarActions {
154
154
  }
155
155
  i0.ɵɵngDeclareClassMetadata({
156
156
  minVersion: "12.0.0",
157
- version: "22.0.5",
157
+ version: "22.0.7",
158
158
  ngImport: i0,
159
159
  type: MatSnackBarActions,
160
160
  decorators: [{
@@ -170,7 +170,7 @@ i0.ɵɵngDeclareClassMetadata({
170
170
  class MatSnackBarAction {
171
171
  static ɵfac = i0.ɵɵngDeclareFactory({
172
172
  minVersion: "12.0.0",
173
- version: "22.0.5",
173
+ version: "22.0.7",
174
174
  ngImport: i0,
175
175
  type: MatSnackBarAction,
176
176
  deps: [],
@@ -178,7 +178,7 @@ class MatSnackBarAction {
178
178
  });
179
179
  static ɵdir = i0.ɵɵngDeclareDirective({
180
180
  minVersion: "14.0.0",
181
- version: "22.0.5",
181
+ version: "22.0.7",
182
182
  type: MatSnackBarAction,
183
183
  isStandalone: true,
184
184
  selector: "[matSnackBarAction]",
@@ -190,7 +190,7 @@ class MatSnackBarAction {
190
190
  }
191
191
  i0.ɵɵngDeclareClassMetadata({
192
192
  minVersion: "12.0.0",
193
- version: "22.0.5",
193
+ version: "22.0.7",
194
194
  ngImport: i0,
195
195
  type: MatSnackBarAction,
196
196
  decorators: [{
@@ -215,7 +215,7 @@ class SimpleSnackBar {
215
215
  }
216
216
  static ɵfac = i0.ɵɵngDeclareFactory({
217
217
  minVersion: "12.0.0",
218
- version: "22.0.5",
218
+ version: "22.0.7",
219
219
  ngImport: i0,
220
220
  type: SimpleSnackBar,
221
221
  deps: [],
@@ -223,7 +223,7 @@ class SimpleSnackBar {
223
223
  });
224
224
  static ɵcmp = i0.ɵɵngDeclareComponent({
225
225
  minVersion: "17.0.0",
226
- version: "22.0.5",
226
+ version: "22.0.7",
227
227
  type: SimpleSnackBar,
228
228
  isStandalone: true,
229
229
  selector: "simple-snack-bar",
@@ -258,7 +258,7 @@ class SimpleSnackBar {
258
258
  }
259
259
  i0.ɵɵngDeclareClassMetadata({
260
260
  minVersion: "12.0.0",
261
- version: "22.0.5",
261
+ version: "22.0.7",
262
262
  ngImport: i0,
263
263
  type: SimpleSnackBar,
264
264
  decorators: [{
@@ -482,7 +482,7 @@ class MatSnackBarContainer extends BasePortalOutlet {
482
482
  }
483
483
  static ɵfac = i0.ɵɵngDeclareFactory({
484
484
  minVersion: "12.0.0",
485
- version: "22.0.5",
485
+ version: "22.0.7",
486
486
  ngImport: i0,
487
487
  type: MatSnackBarContainer,
488
488
  deps: [],
@@ -490,7 +490,7 @@ class MatSnackBarContainer extends BasePortalOutlet {
490
490
  });
491
491
  static ɵcmp = i0.ɵɵngDeclareComponent({
492
492
  minVersion: "14.0.0",
493
- version: "22.0.5",
493
+ version: "22.0.7",
494
494
  type: MatSnackBarContainer,
495
495
  isStandalone: true,
496
496
  selector: "mat-snack-bar-container",
@@ -537,7 +537,7 @@ class MatSnackBarContainer extends BasePortalOutlet {
537
537
  }
538
538
  i0.ɵɵngDeclareClassMetadata({
539
539
  minVersion: "12.0.0",
540
- version: "22.0.5",
540
+ version: "22.0.7",
541
541
  ngImport: i0,
542
542
  type: MatSnackBarContainer,
543
543
  decorators: [{
@@ -741,7 +741,7 @@ class MatSnackBar {
741
741
  }
742
742
  static ɵfac = i0.ɵɵngDeclareFactory({
743
743
  minVersion: "12.0.0",
744
- version: "22.0.5",
744
+ version: "22.0.7",
745
745
  ngImport: i0,
746
746
  type: MatSnackBar,
747
747
  deps: [],
@@ -749,14 +749,14 @@ class MatSnackBar {
749
749
  });
750
750
  static ɵprov = i0.ɵɵngDeclareService({
751
751
  minVersion: "22.0.0",
752
- version: "22.0.5",
752
+ version: "22.0.7",
753
753
  ngImport: i0,
754
754
  type: MatSnackBar
755
755
  });
756
756
  }
757
757
  i0.ɵɵngDeclareClassMetadata({
758
758
  minVersion: "12.0.0",
759
- version: "22.0.5",
759
+ version: "22.0.7",
760
760
  ngImport: i0,
761
761
  type: MatSnackBar,
762
762
  decorators: [{
@@ -768,7 +768,7 @@ const DIRECTIVES = [MatSnackBarContainer, MatSnackBarLabel, MatSnackBarActions,
768
768
  class MatSnackBarModule {
769
769
  static ɵfac = i0.ɵɵngDeclareFactory({
770
770
  minVersion: "12.0.0",
771
- version: "22.0.5",
771
+ version: "22.0.7",
772
772
  ngImport: i0,
773
773
  type: MatSnackBarModule,
774
774
  deps: [],
@@ -776,7 +776,7 @@ class MatSnackBarModule {
776
776
  });
777
777
  static ɵmod = i0.ɵɵngDeclareNgModule({
778
778
  minVersion: "14.0.0",
779
- version: "22.0.5",
779
+ version: "22.0.7",
780
780
  ngImport: i0,
781
781
  type: MatSnackBarModule,
782
782
  imports: [OverlayModule, PortalModule, MatButtonModule, SimpleSnackBar, MatSnackBarContainer, MatSnackBarLabel, MatSnackBarActions, MatSnackBarAction],
@@ -784,7 +784,7 @@ class MatSnackBarModule {
784
784
  });
785
785
  static ɵinj = i0.ɵɵngDeclareInjector({
786
786
  minVersion: "12.0.0",
787
- version: "22.0.5",
787
+ version: "22.0.7",
788
788
  ngImport: i0,
789
789
  type: MatSnackBarModule,
790
790
  providers: [MatSnackBar],
@@ -793,7 +793,7 @@ class MatSnackBarModule {
793
793
  }
794
794
  i0.ɵɵngDeclareClassMetadata({
795
795
  minVersion: "12.0.0",
796
- version: "22.0.5",
796
+ version: "22.0.7",
797
797
  ngImport: i0,
798
798
  type: MatSnackBarModule,
799
799
  decorators: [{
package/fesm2022/sort.mjs CHANGED
@@ -98,7 +98,7 @@ class MatSort {
98
98
  }
99
99
  static ɵfac = i0.ɵɵngDeclareFactory({
100
100
  minVersion: "12.0.0",
101
- version: "22.0.5",
101
+ version: "22.0.7",
102
102
  ngImport: i0,
103
103
  type: MatSort,
104
104
  deps: [{
@@ -109,7 +109,7 @@ class MatSort {
109
109
  });
110
110
  static ɵdir = i0.ɵɵngDeclareDirective({
111
111
  minVersion: "16.1.0",
112
- version: "22.0.5",
112
+ version: "22.0.7",
113
113
  type: MatSort,
114
114
  isStandalone: true,
115
115
  selector: "[matSort]",
@@ -133,7 +133,7 @@ class MatSort {
133
133
  }
134
134
  i0.ɵɵngDeclareClassMetadata({
135
135
  minVersion: "12.0.0",
136
- version: "22.0.5",
136
+ version: "22.0.7",
137
137
  ngImport: i0,
138
138
  type: MatSort,
139
139
  decorators: [{
@@ -302,7 +302,7 @@ class MatSortHeader {
302
302
  }
303
303
  static ɵfac = i0.ɵɵngDeclareFactory({
304
304
  minVersion: "12.0.0",
305
- version: "22.0.5",
305
+ version: "22.0.7",
306
306
  ngImport: i0,
307
307
  type: MatSortHeader,
308
308
  deps: [],
@@ -310,7 +310,7 @@ class MatSortHeader {
310
310
  });
311
311
  static ɵcmp = i0.ɵɵngDeclareComponent({
312
312
  minVersion: "17.0.0",
313
- version: "22.0.5",
313
+ version: "22.0.7",
314
314
  type: MatSortHeader,
315
315
  isStandalone: true,
316
316
  selector: "[mat-sort-header]",
@@ -337,13 +337,13 @@ class MatSortHeader {
337
337
  exportAs: ["matSortHeader"],
338
338
  ngImport: i0,
339
339
  template: "<!--\n We set the `tabindex` on an element inside the table header, rather than the header itself,\n because of a bug in NVDA where having a `tabindex` on a `th` breaks keyboard navigation in the\n table (see https://github.com/nvaccess/nvda/issues/7718). This allows for the header to both\n be focusable, and have screen readers read out its `aria-sort` state. We prefer this approach\n over having a button with an `aria-label` inside the header, because the button's `aria-label`\n will be read out as the user is navigating the table's cell (see #13012).\n\n The approach is based off of: https://dequeuniversity.com/library/aria/tables/sf-sortable-grid\n-->\n<div class=\"mat-sort-header-container mat-focus-indicator\"\n [class.mat-sort-header-sorted]=\"_isSorted()\"\n [class.mat-sort-header-position-before]=\"arrowPosition === 'before'\"\n [class.mat-sort-header-descending]=\"_sort.direction === 'desc'\"\n [class.mat-sort-header-ascending]=\"_sort.direction === 'asc'\"\n [class.mat-sort-header-recently-cleared-ascending]=\"_recentlyCleared() === 'asc'\"\n [class.mat-sort-header-recently-cleared-descending]=\"_recentlyCleared() === 'desc'\"\n [class.mat-sort-header-animations-disabled]=\"_animationsDisabled\"\n [attr.tabindex]=\"_isDisabled() ? null : 0\"\n [attr.role]=\"_isDisabled() ? null : 'button'\">\n\n <!--\n TODO(crisbeto): this div isn't strictly necessary, but we have to keep it due to a large\n number of screenshot diff failures. It should be removed eventually. Note that the difference\n isn't visible with a shorter header, but once it breaks up into multiple lines, this element\n causes it to be center-aligned, whereas removing it will keep the text to the left.\n -->\n <div class=\"mat-sort-header-content\">\n <ng-content></ng-content>\n </div>\n\n <!-- Disable animations while a current animation is running -->\n @if (_renderArrow()) {\n <div class=\"mat-sort-header-arrow\">\n <ng-content select=\"[matSortHeaderIcon]\">\n <svg viewBox=\"0 -960 960 960\" focusable=\"false\" aria-hidden=\"true\">\n <path d=\"M440-240v-368L296-464l-56-56 240-240 240 240-56 56-144-144v368h-80Z\"/>\n </svg>\n </ng-content>\n </div>\n }\n</div>\n",
340
- styles: [".mat-sort-header {\n cursor: pointer;\n}\n\n.mat-sort-header-disabled {\n cursor: default;\n}\n\n.mat-sort-header-container {\n display: flex;\n align-items: center;\n letter-spacing: normal;\n outline: 0;\n}\n[mat-sort-header].cdk-keyboard-focused .mat-sort-header-container, [mat-sort-header].cdk-program-focused .mat-sort-header-container {\n border-bottom: solid 1px currentColor;\n}\n.mat-sort-header-container::before {\n margin: calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px) * -1);\n}\n\n.mat-sort-header-content {\n display: flex;\n align-items: center;\n}\n\n.mat-sort-header-position-before {\n flex-direction: row-reverse;\n}\n\n@keyframes _mat-sort-header-recently-cleared-ascending {\n from {\n transform: translateY(0);\n opacity: 1;\n }\n to {\n transform: translateY(-25%);\n opacity: 0;\n }\n}\n@keyframes _mat-sort-header-recently-cleared-descending {\n from {\n transform: translateY(0) rotate(180deg);\n opacity: 1;\n }\n to {\n transform: translateY(25%) rotate(180deg);\n opacity: 0;\n }\n}\n.mat-sort-header-arrow {\n height: 12px;\n width: 12px;\n position: relative;\n transition: transform 225ms cubic-bezier(0.4, 0, 0.2, 1), opacity 225ms cubic-bezier(0.4, 0, 0.2, 1);\n opacity: 0;\n overflow: visible;\n color: var(--mat-sort-arrow-color, var(--mat-sys-on-surface));\n}\n.mat-sort-header.cdk-keyboard-focused .mat-sort-header-arrow, .mat-sort-header.cdk-program-focused .mat-sort-header-arrow, .mat-sort-header:hover .mat-sort-header-arrow {\n opacity: 0.54;\n}\n.mat-sort-header .mat-sort-header-sorted .mat-sort-header-arrow {\n opacity: 1;\n}\n.mat-sort-header-descending .mat-sort-header-arrow {\n transform: rotate(180deg);\n}\n.mat-sort-header-recently-cleared-ascending .mat-sort-header-arrow {\n transform: translateY(-25%);\n}\n.mat-sort-header-recently-cleared-ascending .mat-sort-header-arrow {\n transition: none;\n animation: _mat-sort-header-recently-cleared-ascending 225ms cubic-bezier(0.4, 0, 0.2, 1) forwards;\n}\n.mat-sort-header-recently-cleared-descending .mat-sort-header-arrow {\n transition: none;\n animation: _mat-sort-header-recently-cleared-descending 225ms cubic-bezier(0.4, 0, 0.2, 1) forwards;\n}\n.mat-sort-header-animations-disabled .mat-sort-header-arrow {\n transition-duration: 0ms;\n animation-duration: 0ms;\n}\n.mat-sort-header-arrow > svg, .mat-sort-header-arrow [matSortHeaderIcon] {\n width: 24px;\n height: 24px;\n fill: currentColor;\n position: absolute;\n top: 50%;\n left: 50%;\n margin: -12px 0 0 -12px;\n transform: translateZ(0);\n}\n.mat-sort-header-arrow, [dir=rtl] .mat-sort-header-position-before .mat-sort-header-arrow {\n margin: 0 0 0 6px;\n}\n.mat-sort-header-position-before .mat-sort-header-arrow, [dir=rtl] .mat-sort-header-arrow {\n margin: 0 6px 0 0;\n}\n"],
340
+ styles: [".mat-sort-header {\n cursor: pointer;\n}\n\n.mat-sort-header-disabled {\n cursor: default;\n}\n\n.mat-sort-header-container {\n display: flex;\n align-items: center;\n letter-spacing: normal;\n outline: 0;\n}\n[mat-sort-header].cdk-keyboard-focused .mat-sort-header-container, [mat-sort-header].cdk-program-focused .mat-sort-header-container {\n border-bottom: var(--mat-focus-indicator-fallback-border-style, solid) 1px currentColor;\n}\n.mat-sort-header-container::before {\n margin: calc(calc(var(--mat-focus-indicator-border-width, 3px) + 4px) * -1);\n}\n\n.mat-sort-header-content {\n display: flex;\n align-items: center;\n}\n\n.mat-sort-header-position-before {\n flex-direction: row-reverse;\n}\n\n@keyframes _mat-sort-header-recently-cleared-ascending {\n from {\n transform: translateY(0);\n opacity: 1;\n }\n to {\n transform: translateY(-25%);\n opacity: 0;\n }\n}\n@keyframes _mat-sort-header-recently-cleared-descending {\n from {\n transform: translateY(0) rotate(180deg);\n opacity: 1;\n }\n to {\n transform: translateY(25%) rotate(180deg);\n opacity: 0;\n }\n}\n.mat-sort-header-arrow {\n height: 12px;\n width: 12px;\n position: relative;\n transition: transform 225ms cubic-bezier(0.4, 0, 0.2, 1), opacity 225ms cubic-bezier(0.4, 0, 0.2, 1);\n opacity: 0;\n overflow: visible;\n color: var(--mat-sort-arrow-color, var(--mat-sys-on-surface));\n}\n.mat-sort-header.cdk-keyboard-focused .mat-sort-header-arrow, .mat-sort-header.cdk-program-focused .mat-sort-header-arrow, .mat-sort-header:hover .mat-sort-header-arrow {\n opacity: 0.54;\n}\n.mat-sort-header .mat-sort-header-sorted .mat-sort-header-arrow {\n opacity: 1;\n}\n.mat-sort-header-descending .mat-sort-header-arrow {\n transform: rotate(180deg);\n}\n.mat-sort-header-recently-cleared-ascending .mat-sort-header-arrow {\n transform: translateY(-25%);\n}\n.mat-sort-header-recently-cleared-ascending .mat-sort-header-arrow {\n transition: none;\n animation: _mat-sort-header-recently-cleared-ascending 225ms cubic-bezier(0.4, 0, 0.2, 1) forwards;\n}\n.mat-sort-header-recently-cleared-descending .mat-sort-header-arrow {\n transition: none;\n animation: _mat-sort-header-recently-cleared-descending 225ms cubic-bezier(0.4, 0, 0.2, 1) forwards;\n}\n.mat-sort-header-animations-disabled .mat-sort-header-arrow {\n transition-duration: 0ms;\n animation-duration: 0ms;\n}\n.mat-sort-header-arrow > svg, .mat-sort-header-arrow [matSortHeaderIcon] {\n width: 24px;\n height: 24px;\n fill: currentColor;\n position: absolute;\n top: 50%;\n left: 50%;\n margin: -12px 0 0 -12px;\n transform: translateZ(0);\n}\n.mat-sort-header-arrow, [dir=rtl] .mat-sort-header-position-before .mat-sort-header-arrow {\n margin: 0 0 0 6px;\n}\n.mat-sort-header-position-before .mat-sort-header-arrow, [dir=rtl] .mat-sort-header-arrow {\n margin: 0 6px 0 0;\n}\n"],
341
341
  encapsulation: i0.ViewEncapsulation.None
342
342
  });
343
343
  }
344
344
  i0.ɵɵngDeclareClassMetadata({
345
345
  minVersion: "12.0.0",
346
- version: "22.0.5",
346
+ version: "22.0.7",
347
347
  ngImport: i0,
348
348
  type: MatSortHeader,
349
349
  decorators: [{
@@ -361,7 +361,7 @@ i0.ɵɵngDeclareClassMetadata({
361
361
  },
362
362
  encapsulation: ViewEncapsulation.None,
363
363
  template: "<!--\n We set the `tabindex` on an element inside the table header, rather than the header itself,\n because of a bug in NVDA where having a `tabindex` on a `th` breaks keyboard navigation in the\n table (see https://github.com/nvaccess/nvda/issues/7718). This allows for the header to both\n be focusable, and have screen readers read out its `aria-sort` state. We prefer this approach\n over having a button with an `aria-label` inside the header, because the button's `aria-label`\n will be read out as the user is navigating the table's cell (see #13012).\n\n The approach is based off of: https://dequeuniversity.com/library/aria/tables/sf-sortable-grid\n-->\n<div class=\"mat-sort-header-container mat-focus-indicator\"\n [class.mat-sort-header-sorted]=\"_isSorted()\"\n [class.mat-sort-header-position-before]=\"arrowPosition === 'before'\"\n [class.mat-sort-header-descending]=\"_sort.direction === 'desc'\"\n [class.mat-sort-header-ascending]=\"_sort.direction === 'asc'\"\n [class.mat-sort-header-recently-cleared-ascending]=\"_recentlyCleared() === 'asc'\"\n [class.mat-sort-header-recently-cleared-descending]=\"_recentlyCleared() === 'desc'\"\n [class.mat-sort-header-animations-disabled]=\"_animationsDisabled\"\n [attr.tabindex]=\"_isDisabled() ? null : 0\"\n [attr.role]=\"_isDisabled() ? null : 'button'\">\n\n <!--\n TODO(crisbeto): this div isn't strictly necessary, but we have to keep it due to a large\n number of screenshot diff failures. It should be removed eventually. Note that the difference\n isn't visible with a shorter header, but once it breaks up into multiple lines, this element\n causes it to be center-aligned, whereas removing it will keep the text to the left.\n -->\n <div class=\"mat-sort-header-content\">\n <ng-content></ng-content>\n </div>\n\n <!-- Disable animations while a current animation is running -->\n @if (_renderArrow()) {\n <div class=\"mat-sort-header-arrow\">\n <ng-content select=\"[matSortHeaderIcon]\">\n <svg viewBox=\"0 -960 960 960\" focusable=\"false\" aria-hidden=\"true\">\n <path d=\"M440-240v-368L296-464l-56-56 240-240 240 240-56 56-144-144v368h-80Z\"/>\n </svg>\n </ng-content>\n </div>\n }\n</div>\n",
364
- styles: [".mat-sort-header {\n cursor: pointer;\n}\n\n.mat-sort-header-disabled {\n cursor: default;\n}\n\n.mat-sort-header-container {\n display: flex;\n align-items: center;\n letter-spacing: normal;\n outline: 0;\n}\n[mat-sort-header].cdk-keyboard-focused .mat-sort-header-container, [mat-sort-header].cdk-program-focused .mat-sort-header-container {\n border-bottom: solid 1px currentColor;\n}\n.mat-sort-header-container::before {\n margin: calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px) * -1);\n}\n\n.mat-sort-header-content {\n display: flex;\n align-items: center;\n}\n\n.mat-sort-header-position-before {\n flex-direction: row-reverse;\n}\n\n@keyframes _mat-sort-header-recently-cleared-ascending {\n from {\n transform: translateY(0);\n opacity: 1;\n }\n to {\n transform: translateY(-25%);\n opacity: 0;\n }\n}\n@keyframes _mat-sort-header-recently-cleared-descending {\n from {\n transform: translateY(0) rotate(180deg);\n opacity: 1;\n }\n to {\n transform: translateY(25%) rotate(180deg);\n opacity: 0;\n }\n}\n.mat-sort-header-arrow {\n height: 12px;\n width: 12px;\n position: relative;\n transition: transform 225ms cubic-bezier(0.4, 0, 0.2, 1), opacity 225ms cubic-bezier(0.4, 0, 0.2, 1);\n opacity: 0;\n overflow: visible;\n color: var(--mat-sort-arrow-color, var(--mat-sys-on-surface));\n}\n.mat-sort-header.cdk-keyboard-focused .mat-sort-header-arrow, .mat-sort-header.cdk-program-focused .mat-sort-header-arrow, .mat-sort-header:hover .mat-sort-header-arrow {\n opacity: 0.54;\n}\n.mat-sort-header .mat-sort-header-sorted .mat-sort-header-arrow {\n opacity: 1;\n}\n.mat-sort-header-descending .mat-sort-header-arrow {\n transform: rotate(180deg);\n}\n.mat-sort-header-recently-cleared-ascending .mat-sort-header-arrow {\n transform: translateY(-25%);\n}\n.mat-sort-header-recently-cleared-ascending .mat-sort-header-arrow {\n transition: none;\n animation: _mat-sort-header-recently-cleared-ascending 225ms cubic-bezier(0.4, 0, 0.2, 1) forwards;\n}\n.mat-sort-header-recently-cleared-descending .mat-sort-header-arrow {\n transition: none;\n animation: _mat-sort-header-recently-cleared-descending 225ms cubic-bezier(0.4, 0, 0.2, 1) forwards;\n}\n.mat-sort-header-animations-disabled .mat-sort-header-arrow {\n transition-duration: 0ms;\n animation-duration: 0ms;\n}\n.mat-sort-header-arrow > svg, .mat-sort-header-arrow [matSortHeaderIcon] {\n width: 24px;\n height: 24px;\n fill: currentColor;\n position: absolute;\n top: 50%;\n left: 50%;\n margin: -12px 0 0 -12px;\n transform: translateZ(0);\n}\n.mat-sort-header-arrow, [dir=rtl] .mat-sort-header-position-before .mat-sort-header-arrow {\n margin: 0 0 0 6px;\n}\n.mat-sort-header-position-before .mat-sort-header-arrow, [dir=rtl] .mat-sort-header-arrow {\n margin: 0 6px 0 0;\n}\n"]
364
+ styles: [".mat-sort-header {\n cursor: pointer;\n}\n\n.mat-sort-header-disabled {\n cursor: default;\n}\n\n.mat-sort-header-container {\n display: flex;\n align-items: center;\n letter-spacing: normal;\n outline: 0;\n}\n[mat-sort-header].cdk-keyboard-focused .mat-sort-header-container, [mat-sort-header].cdk-program-focused .mat-sort-header-container {\n border-bottom: var(--mat-focus-indicator-fallback-border-style, solid) 1px currentColor;\n}\n.mat-sort-header-container::before {\n margin: calc(calc(var(--mat-focus-indicator-border-width, 3px) + 4px) * -1);\n}\n\n.mat-sort-header-content {\n display: flex;\n align-items: center;\n}\n\n.mat-sort-header-position-before {\n flex-direction: row-reverse;\n}\n\n@keyframes _mat-sort-header-recently-cleared-ascending {\n from {\n transform: translateY(0);\n opacity: 1;\n }\n to {\n transform: translateY(-25%);\n opacity: 0;\n }\n}\n@keyframes _mat-sort-header-recently-cleared-descending {\n from {\n transform: translateY(0) rotate(180deg);\n opacity: 1;\n }\n to {\n transform: translateY(25%) rotate(180deg);\n opacity: 0;\n }\n}\n.mat-sort-header-arrow {\n height: 12px;\n width: 12px;\n position: relative;\n transition: transform 225ms cubic-bezier(0.4, 0, 0.2, 1), opacity 225ms cubic-bezier(0.4, 0, 0.2, 1);\n opacity: 0;\n overflow: visible;\n color: var(--mat-sort-arrow-color, var(--mat-sys-on-surface));\n}\n.mat-sort-header.cdk-keyboard-focused .mat-sort-header-arrow, .mat-sort-header.cdk-program-focused .mat-sort-header-arrow, .mat-sort-header:hover .mat-sort-header-arrow {\n opacity: 0.54;\n}\n.mat-sort-header .mat-sort-header-sorted .mat-sort-header-arrow {\n opacity: 1;\n}\n.mat-sort-header-descending .mat-sort-header-arrow {\n transform: rotate(180deg);\n}\n.mat-sort-header-recently-cleared-ascending .mat-sort-header-arrow {\n transform: translateY(-25%);\n}\n.mat-sort-header-recently-cleared-ascending .mat-sort-header-arrow {\n transition: none;\n animation: _mat-sort-header-recently-cleared-ascending 225ms cubic-bezier(0.4, 0, 0.2, 1) forwards;\n}\n.mat-sort-header-recently-cleared-descending .mat-sort-header-arrow {\n transition: none;\n animation: _mat-sort-header-recently-cleared-descending 225ms cubic-bezier(0.4, 0, 0.2, 1) forwards;\n}\n.mat-sort-header-animations-disabled .mat-sort-header-arrow {\n transition-duration: 0ms;\n animation-duration: 0ms;\n}\n.mat-sort-header-arrow > svg, .mat-sort-header-arrow [matSortHeaderIcon] {\n width: 24px;\n height: 24px;\n fill: currentColor;\n position: absolute;\n top: 50%;\n left: 50%;\n margin: -12px 0 0 -12px;\n transform: translateZ(0);\n}\n.mat-sort-header-arrow, [dir=rtl] .mat-sort-header-position-before .mat-sort-header-arrow {\n margin: 0 0 0 6px;\n}\n.mat-sort-header-position-before .mat-sort-header-arrow, [dir=rtl] .mat-sort-header-arrow {\n margin: 0 6px 0 0;\n}\n"]
365
365
  }]
366
366
  }],
367
367
  ctorParameters: () => [],
@@ -397,7 +397,7 @@ i0.ɵɵngDeclareClassMetadata({
397
397
  class MatSortModule {
398
398
  static ɵfac = i0.ɵɵngDeclareFactory({
399
399
  minVersion: "12.0.0",
400
- version: "22.0.5",
400
+ version: "22.0.7",
401
401
  ngImport: i0,
402
402
  type: MatSortModule,
403
403
  deps: [],
@@ -405,7 +405,7 @@ class MatSortModule {
405
405
  });
406
406
  static ɵmod = i0.ɵɵngDeclareNgModule({
407
407
  minVersion: "14.0.0",
408
- version: "22.0.5",
408
+ version: "22.0.7",
409
409
  ngImport: i0,
410
410
  type: MatSortModule,
411
411
  imports: [MatSort, MatSortHeader],
@@ -413,7 +413,7 @@ class MatSortModule {
413
413
  });
414
414
  static ɵinj = i0.ɵɵngDeclareInjector({
415
415
  minVersion: "12.0.0",
416
- version: "22.0.5",
416
+ version: "22.0.7",
417
417
  ngImport: i0,
418
418
  type: MatSortModule,
419
419
  imports: [BidiModule]
@@ -421,7 +421,7 @@ class MatSortModule {
421
421
  }
422
422
  i0.ɵɵngDeclareClassMetadata({
423
423
  minVersion: "12.0.0",
424
- version: "22.0.5",
424
+ version: "22.0.7",
425
425
  ngImport: i0,
426
426
  type: MatSortModule,
427
427
  decorators: [{
@@ -437,7 +437,7 @@ class MatSortHeaderIntl {
437
437
  changes = new Subject();
438
438
  static ɵfac = i0.ɵɵngDeclareFactory({
439
439
  minVersion: "12.0.0",
440
- version: "22.0.5",
440
+ version: "22.0.7",
441
441
  ngImport: i0,
442
442
  type: MatSortHeaderIntl,
443
443
  deps: [],
@@ -445,14 +445,14 @@ class MatSortHeaderIntl {
445
445
  });
446
446
  static ɵprov = i0.ɵɵngDeclareService({
447
447
  minVersion: "22.0.0",
448
- version: "22.0.5",
448
+ version: "22.0.7",
449
449
  ngImport: i0,
450
450
  type: MatSortHeaderIntl
451
451
  });
452
452
  }
453
453
  i0.ɵɵngDeclareClassMetadata({
454
454
  minVersion: "12.0.0",
455
- version: "22.0.5",
455
+ version: "22.0.7",
456
456
  ngImport: i0,
457
457
  type: MatSortHeaderIntl,
458
458
  decorators: [{
@@ -1 +1 @@
1
- {"version":3,"file":"sort.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/sort/sort-errors.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/sort/sort.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/sort/sort-header.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/sort/sort-header.html","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/sort/sort-module.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/sort/sort-header-intl.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\n/** @docs-private */\nexport function getSortDuplicateSortableIdError(id: string): Error {\n return Error(`Cannot have two MatSortables with the same id (${id}).`);\n}\n\n/** @docs-private */\nexport function getSortHeaderNotContainedWithinSortError(): Error {\n return Error(`MatSortHeader must be placed within a parent element with the MatSort directive.`);\n}\n\n/** @docs-private */\nexport function getSortHeaderMissingIdError(): Error {\n return Error(`MatSortHeader must be provided with a unique id.`);\n}\n\n/** @docs-private */\nexport function getSortInvalidDirectionError(direction: string): Error {\n return Error(`${direction} is not a valid sort direction ('asc' or 'desc').`);\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 Directive,\n EventEmitter,\n Inject,\n InjectionToken,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n booleanAttribute,\n} from '@angular/core';\nimport {Observable, ReplaySubject, Subject} from 'rxjs';\nimport {SortDirection} from './sort-direction';\nimport {\n getSortDuplicateSortableIdError,\n getSortHeaderMissingIdError,\n getSortInvalidDirectionError,\n} from './sort-errors';\n\n/** Position of the arrow that displays when sorted. */\nexport type SortHeaderArrowPosition = 'before' | 'after';\n\n/** Interface for a directive that holds sorting state consumed by `MatSortHeader`. */\nexport interface MatSortable {\n /** The id of the column being sorted. */\n id: string;\n\n /** Starting sort direction. */\n start: SortDirection;\n\n /** Whether to disable clearing the sorting state. */\n disableClear: boolean;\n}\n\n/** The current sort state. */\nexport interface Sort {\n /** The id of the column being sorted. */\n active: string;\n\n /** The sort direction. */\n direction: SortDirection;\n}\n\n/** Default options for `mat-sort`. */\nexport interface MatSortDefaultOptions {\n /** Whether to disable clearing the sorting state. */\n disableClear?: boolean;\n /** Position of the arrow that displays when sorted. */\n arrowPosition?: SortHeaderArrowPosition;\n}\n\n/** Injection token to be used to override the default options for `mat-sort`. */\nexport const MAT_SORT_DEFAULT_OPTIONS = new InjectionToken<MatSortDefaultOptions>(\n 'MAT_SORT_DEFAULT_OPTIONS',\n);\n\n/** Container for MatSortables to manage the sort state and provide default sort parameters. */\n@Directive({\n selector: '[matSort]',\n exportAs: 'matSort',\n host: {\n 'class': 'mat-sort',\n },\n})\nexport class MatSort implements OnChanges, OnDestroy, OnInit {\n private _initializedStream = new ReplaySubject<void>(1);\n\n /** Collection of all registered sortables that this directive manages. */\n sortables = new Map<string, MatSortable>();\n\n /** Used to notify any child components listening to state changes. */\n readonly _stateChanges = new Subject<void>();\n\n /** The id of the most recently sorted MatSortable. */\n @Input('matSortActive') active!: string;\n\n /**\n * The direction to set when an MatSortable is initially sorted.\n * May be overridden by the MatSortable's sort start.\n */\n @Input('matSortStart') start: SortDirection = 'asc';\n\n /** The sort direction of the currently active MatSortable. */\n @Input('matSortDirection')\n get direction(): SortDirection {\n return this._direction;\n }\n set direction(direction: SortDirection) {\n if (\n direction &&\n direction !== 'asc' &&\n direction !== 'desc' &&\n (typeof ngDevMode === 'undefined' || ngDevMode)\n ) {\n throw getSortInvalidDirectionError(direction);\n }\n this._direction = direction;\n }\n private _direction: SortDirection = '';\n\n /**\n * Whether to disable the user from clearing the sort by finishing the sort direction cycle.\n * May be overridden by the MatSortable's disable clear input.\n */\n @Input({alias: 'matSortDisableClear', transform: booleanAttribute})\n disableClear!: boolean;\n\n /** Whether the sortable is disabled. */\n @Input({alias: 'matSortDisabled', transform: booleanAttribute})\n disabled: boolean = false;\n\n /** Event emitted when the user changes either the active sort or sort direction. */\n @Output('matSortChange') readonly sortChange: EventEmitter<Sort> = new EventEmitter<Sort>();\n\n /** Emits when the paginator is initialized. */\n initialized: Observable<void> = this._initializedStream;\n\n constructor(\n @Optional()\n @Inject(MAT_SORT_DEFAULT_OPTIONS)\n private _defaultOptions?: MatSortDefaultOptions,\n ) {}\n\n /**\n * Register function to be used by the contained MatSortables. Adds the MatSortable to the\n * collection of MatSortables.\n */\n register(sortable: MatSortable): void {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!sortable.id) {\n throw getSortHeaderMissingIdError();\n }\n\n if (this.sortables.has(sortable.id)) {\n throw getSortDuplicateSortableIdError(sortable.id);\n }\n }\n\n this.sortables.set(sortable.id, sortable);\n }\n\n /**\n * Unregister function to be used by the contained MatSortables. Removes the MatSortable from the\n * collection of contained MatSortables.\n */\n deregister(sortable: MatSortable): void {\n this.sortables.delete(sortable.id);\n }\n\n /** Sets the active sort id and determines the new sort direction. */\n sort(sortable: MatSortable): void {\n if (this.active != sortable.id) {\n this.active = sortable.id;\n this.direction = sortable.start ? sortable.start : this.start;\n } else {\n this.direction = this.getNextSortDirection(sortable);\n }\n\n this.sortChange.emit({active: this.active, direction: this.direction});\n }\n\n /** Returns the next sort direction of the active sortable, checking for potential overrides. */\n getNextSortDirection(sortable: MatSortable): SortDirection {\n if (!sortable) {\n return '';\n }\n\n // Get the sort direction cycle with the potential sortable overrides.\n const disableClear =\n sortable?.disableClear ?? this.disableClear ?? !!this._defaultOptions?.disableClear;\n let sortDirectionCycle = getSortDirectionCycle(sortable.start || this.start, disableClear);\n\n // Get and return the next direction in the cycle\n let nextDirectionIndex = sortDirectionCycle.indexOf(this.direction) + 1;\n if (nextDirectionIndex >= sortDirectionCycle.length) {\n nextDirectionIndex = 0;\n }\n return sortDirectionCycle[nextDirectionIndex];\n }\n\n ngOnInit() {\n this._initializedStream.next();\n }\n\n ngOnChanges() {\n this._stateChanges.next();\n }\n\n ngOnDestroy() {\n this._stateChanges.complete();\n this._initializedStream.complete();\n }\n}\n\n/** Returns the sort direction cycle to use given the provided parameters of order and clear. */\nfunction getSortDirectionCycle(start: SortDirection, disableClear: boolean): SortDirection[] {\n let sortOrder: SortDirection[] = ['asc', 'desc'];\n if (start == 'desc') {\n sortOrder.reverse();\n }\n if (!disableClear) {\n sortOrder.push('');\n }\n\n return sortOrder;\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 {AriaDescriber, FocusMonitor} from '@angular/cdk/a11y';\nimport {ENTER, SPACE} from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n signal,\n ChangeDetectorRef,\n} from '@angular/core';\nimport {_CdkPrivateStyleLoader} from '@angular/cdk/private';\nimport {CdkColumnDef} from '@angular/cdk/table';\nimport {merge, Subscription} from 'rxjs';\nimport {\n MAT_SORT_DEFAULT_OPTIONS,\n MatSort,\n MatSortable,\n MatSortDefaultOptions,\n SortHeaderArrowPosition,\n} from './sort';\nimport {SortDirection} from './sort-direction';\nimport {getSortHeaderNotContainedWithinSortError} from './sort-errors';\nimport {_animationsDisabled, _StructuralStylesLoader} from '../core';\n\n/**\n * Applies sorting behavior (click to change sort) and styles to an element, including an\n * arrow to display the current sort direction.\n *\n * Must be provided with an id and contained within a parent MatSort directive.\n *\n * If used on header cells in a CdkTable, it will automatically default its id from its containing\n * column definition.\n */\n@Component({\n selector: '[mat-sort-header]',\n exportAs: 'matSortHeader',\n templateUrl: 'sort-header.html',\n styleUrl: 'sort-header.css',\n host: {\n 'class': 'mat-sort-header',\n '(click)': '_toggleOnInteraction()',\n '(keydown)': '_handleKeydown($event)',\n '(mouseleave)': '_recentlyCleared.set(null)',\n '[attr.aria-sort]': '_getAriaSortAttribute()',\n '[class.mat-sort-header-disabled]': '_isDisabled()',\n },\n encapsulation: ViewEncapsulation.None,\n})\nexport class MatSortHeader implements MatSortable, OnDestroy, OnInit, AfterViewInit {\n protected _sort = inject(MatSort, {optional: true})!;\n private _columnDef = inject(CdkColumnDef, {optional: true});\n private _changeDetectorRef = inject(ChangeDetectorRef);\n private _focusMonitor = inject(FocusMonitor);\n private _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private _ariaDescriber = inject(AriaDescriber, {optional: true});\n private _renderChanges: Subscription | undefined;\n protected _animationsDisabled = _animationsDisabled();\n\n /**\n * Indicates which state was just cleared from the sort header.\n * Will be reset on the next interaction. Used for coordinating animations.\n */\n protected _recentlyCleared = signal<SortDirection | null>(null);\n\n /**\n * The element with role=\"button\" inside this component's view. We need this\n * in order to apply a description with AriaDescriber.\n */\n private _sortButton!: HTMLElement;\n\n /**\n * ID of this sort header. If used within the context of a CdkColumnDef, this will default to\n * the column's name.\n */\n @Input('mat-sort-header') id!: string;\n\n /** Sets the position of the arrow that displays when sorted. */\n @Input() arrowPosition: SortHeaderArrowPosition = 'after';\n\n /** Overrides the sort start value of the containing MatSort for this MatSortable. */\n @Input() start!: SortDirection;\n\n /** whether the sort header is disabled. */\n @Input({transform: booleanAttribute})\n disabled: boolean = false;\n\n /**\n * Description applied to MatSortHeader's button element with aria-describedby. This text should\n * describe the action that will occur when the user clicks the sort header.\n */\n @Input()\n get sortActionDescription(): string {\n return this._sortActionDescription;\n }\n set sortActionDescription(value: string) {\n this._updateSortActionDescription(value);\n }\n // Default the action description to \"Sort\" because it's better than nothing.\n // Without a description, the button's label comes from the sort header text content,\n // which doesn't give any indication that it performs a sorting operation.\n private _sortActionDescription: string = 'Sort';\n\n /** Overrides the disable clear value of the containing MatSort for this MatSortable. */\n @Input({transform: booleanAttribute})\n disableClear!: boolean;\n\n constructor() {\n inject(_CdkPrivateStyleLoader).load(_StructuralStylesLoader);\n const defaultOptions = inject<MatSortDefaultOptions>(MAT_SORT_DEFAULT_OPTIONS, {\n optional: true,\n });\n\n // Note that we use a string token for the `_columnDef`, because the value is provided both by\n // `material/table` and `cdk/table` and we can't have the CDK depending on Material,\n // and we want to avoid having the sort header depending on the CDK table because\n // of this single reference.\n if (!this._sort && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getSortHeaderNotContainedWithinSortError();\n }\n\n if (defaultOptions?.arrowPosition) {\n this.arrowPosition = defaultOptions?.arrowPosition;\n }\n }\n\n ngOnInit() {\n if (!this.id && this._columnDef) {\n this.id = this._columnDef.name;\n }\n\n this._sort.register(this);\n this._renderChanges = merge(this._sort._stateChanges, this._sort.sortChange).subscribe(() =>\n this._changeDetectorRef.markForCheck(),\n );\n this._sortButton = this._elementRef.nativeElement.querySelector('.mat-sort-header-container')!;\n this._updateSortActionDescription(this._sortActionDescription);\n }\n\n ngAfterViewInit() {\n // We use the focus monitor because we also want to style\n // things differently based on the focus origin.\n this._focusMonitor.monitor(this._elementRef, true).subscribe(() => {\n // We need the delay here, because we can trigger a signal write error if the header\n // has a signal bound to `disabled` which causes it to be blurred (see #31723.)\n Promise.resolve().then(() => this._recentlyCleared.set(null));\n });\n }\n\n ngOnDestroy() {\n this._focusMonitor.stopMonitoring(this._elementRef);\n this._sort.deregister(this);\n this._renderChanges?.unsubscribe();\n\n if (this._sortButton) {\n this._ariaDescriber?.removeDescription(this._sortButton, this._sortActionDescription);\n }\n }\n\n /** Triggers the sort on this sort header and removes the indicator hint. */\n _toggleOnInteraction() {\n if (!this._isDisabled()) {\n const wasSorted = this._isSorted();\n const prevDirection = this._sort.direction;\n this._sort.sort(this);\n this._recentlyCleared.set(wasSorted && !this._isSorted() ? prevDirection : null);\n }\n }\n\n _handleKeydown(event: KeyboardEvent) {\n if (event.keyCode === SPACE || event.keyCode === ENTER) {\n event.preventDefault();\n this._toggleOnInteraction();\n }\n }\n\n /** Whether this MatSortHeader is currently sorted in either ascending or descending order. */\n _isSorted() {\n return (\n this._sort.active == this.id &&\n (this._sort.direction === 'asc' || this._sort.direction === 'desc')\n );\n }\n\n _isDisabled() {\n return this._sort.disabled || this.disabled;\n }\n\n /**\n * Gets the aria-sort attribute that should be applied to this sort header. If this header\n * is not sorted, returns null so that the attribute is removed from the host element. Aria spec\n * says that the aria-sort property should only be present on one header at a time, so removing\n * ensures this is true.\n */\n _getAriaSortAttribute() {\n if (!this._isSorted()) {\n return 'none';\n }\n\n return this._sort.direction == 'asc' ? 'ascending' : 'descending';\n }\n\n /** Whether the arrow inside the sort header should be rendered. */\n _renderArrow() {\n return !this._isDisabled() || this._isSorted();\n }\n\n private _updateSortActionDescription(newDescription: string) {\n // We use AriaDescriber for the sort button instead of setting an `aria-label` because some\n // screen readers (notably VoiceOver) will read both the column header *and* the button's label\n // for every *cell* in the table, creating a lot of unnecessary noise.\n\n // If _sortButton is undefined, the component hasn't been initialized yet so there's\n // nothing to update in the DOM.\n if (this._sortButton) {\n // removeDescription will no-op if there is no existing message.\n // TODO(jelbourn): remove optional chaining when AriaDescriber is required.\n this._ariaDescriber?.removeDescription(this._sortButton, this._sortActionDescription);\n this._ariaDescriber?.describe(this._sortButton, newDescription);\n }\n\n this._sortActionDescription = newDescription;\n }\n}\n","<!--\n We set the `tabindex` on an element inside the table header, rather than the header itself,\n because of a bug in NVDA where having a `tabindex` on a `th` breaks keyboard navigation in the\n table (see https://github.com/nvaccess/nvda/issues/7718). This allows for the header to both\n be focusable, and have screen readers read out its `aria-sort` state. We prefer this approach\n over having a button with an `aria-label` inside the header, because the button's `aria-label`\n will be read out as the user is navigating the table's cell (see #13012).\n\n The approach is based off of: https://dequeuniversity.com/library/aria/tables/sf-sortable-grid\n-->\n<div class=\"mat-sort-header-container mat-focus-indicator\"\n [class.mat-sort-header-sorted]=\"_isSorted()\"\n [class.mat-sort-header-position-before]=\"arrowPosition === 'before'\"\n [class.mat-sort-header-descending]=\"_sort.direction === 'desc'\"\n [class.mat-sort-header-ascending]=\"_sort.direction === 'asc'\"\n [class.mat-sort-header-recently-cleared-ascending]=\"_recentlyCleared() === 'asc'\"\n [class.mat-sort-header-recently-cleared-descending]=\"_recentlyCleared() === 'desc'\"\n [class.mat-sort-header-animations-disabled]=\"_animationsDisabled\"\n [attr.tabindex]=\"_isDisabled() ? null : 0\"\n [attr.role]=\"_isDisabled() ? null : 'button'\">\n\n <!--\n TODO(crisbeto): this div isn't strictly necessary, but we have to keep it due to a large\n number of screenshot diff failures. It should be removed eventually. Note that the difference\n isn't visible with a shorter header, but once it breaks up into multiple lines, this element\n causes it to be center-aligned, whereas removing it will keep the text to the left.\n -->\n <div class=\"mat-sort-header-content\">\n <ng-content></ng-content>\n </div>\n\n <!-- Disable animations while a current animation is running -->\n @if (_renderArrow()) {\n <div class=\"mat-sort-header-arrow\">\n <ng-content select=\"[matSortHeaderIcon]\">\n <svg viewBox=\"0 -960 960 960\" focusable=\"false\" aria-hidden=\"true\">\n <path d=\"M440-240v-368L296-464l-56-56 240-240 240 240-56 56-144-144v368h-80Z\"/>\n </svg>\n </ng-content>\n </div>\n }\n</div>\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 {BidiModule} from '@angular/cdk/bidi';\nimport {NgModule} from '@angular/core';\nimport {MatSortHeader} from './sort-header';\nimport {MatSort} from './sort';\n\n@NgModule({\n imports: [MatSort, MatSortHeader],\n exports: [MatSort, MatSortHeader, BidiModule],\n})\nexport class MatSortModule {}\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 {Service} from '@angular/core';\nimport {Subject} from 'rxjs';\n\n/**\n * To modify the labels and text displayed, create a new instance of MatSortHeaderIntl and\n * include it in a custom provider.\n *\n * @deprecated No longer used, will be removed.\n * @breaking-change 23.0.0\n * @docs-private\n */\n@Service()\nexport class MatSortHeaderIntl {\n /**\n * Stream that emits whenever the labels here are changed. Use this to notify\n * components if the labels have changed after initialization.\n */\n readonly changes: Subject<void> = new Subject<void>();\n}\n"],"names":["getSortDuplicateSortableIdError","id","Error","getSortHeaderNotContainedWithinSortError","getSortHeaderMissingIdError","getSortInvalidDirectionError","direction","MAT_SORT_DEFAULT_OPTIONS","InjectionToken","MatSort","_defaultOptions","_initializedStream","ReplaySubject","sortables","Map","_stateChanges","Subject","active","start","_direction","ngDevMode","disableClear","disabled","sortChange","EventEmitter","initialized","constructor","register","sortable","has","set","deregister","delete","sort","getNextSortDirection","emit","sortDirectionCycle","getSortDirectionCycle","nextDirectionIndex","indexOf","length","ngOnInit","next","ngOnChanges","ngOnDestroy","complete","ɵfac","i0","ɵɵngDeclareFactory","minVersion","version","ngImport","type","optional","target","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","booleanAttribute","outputs","host","classAttribute","exportAs","usesOnChanges","decorators","args","Optional","Inject","Input","alias","transform","Output","sortOrder","reverse","push","MatSortHeader","_sort","inject","_columnDef","CdkColumnDef","_changeDetectorRef","ChangeDetectorRef","_focusMonitor","FocusMonitor","_elementRef","ElementRef","_ariaDescriber","AriaDescriber","_renderChanges","_animationsDisabled","_recentlyCleared","signal","_sortButton","arrowPosition","sortActionDescription","_sortActionDescription","value","_updateSortActionDescription","_CdkPrivateStyleLoader","load","_StructuralStylesLoader","defaultOptions","name","merge","subscribe","markForCheck","nativeElement","querySelector","ngAfterViewInit","monitor","Promise","resolve","then","stopMonitoring","unsubscribe","removeDescription","_toggleOnInteraction","_isDisabled","wasSorted","_isSorted","prevDirection","_handleKeydown","event","keyCode","SPACE","ENTER","preventDefault","_getAriaSortAttribute","_renderArrow","newDescription","describe","deps","Component","ɵcmp","ɵɵngDeclareComponent","styles","encapsulation","ViewEncapsulation","None","template","MatSortModule","NgModule","imports","BidiModule","ɵinj","ɵɵngDeclareInjector","exports","MatSortHeaderIntl","changes","Service"],"mappings":"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"}
1
+ {"version":3,"file":"sort.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/sort/sort-errors.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/sort/sort.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/sort/sort-header.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/sort/sort-header.html","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/sort/sort-module.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/sort/sort-header-intl.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\n/** @docs-private */\nexport function getSortDuplicateSortableIdError(id: string): Error {\n return Error(`Cannot have two MatSortables with the same id (${id}).`);\n}\n\n/** @docs-private */\nexport function getSortHeaderNotContainedWithinSortError(): Error {\n return Error(`MatSortHeader must be placed within a parent element with the MatSort directive.`);\n}\n\n/** @docs-private */\nexport function getSortHeaderMissingIdError(): Error {\n return Error(`MatSortHeader must be provided with a unique id.`);\n}\n\n/** @docs-private */\nexport function getSortInvalidDirectionError(direction: string): Error {\n return Error(`${direction} is not a valid sort direction ('asc' or 'desc').`);\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 Directive,\n EventEmitter,\n Inject,\n InjectionToken,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n booleanAttribute,\n} from '@angular/core';\nimport {Observable, ReplaySubject, Subject} from 'rxjs';\nimport {SortDirection} from './sort-direction';\nimport {\n getSortDuplicateSortableIdError,\n getSortHeaderMissingIdError,\n getSortInvalidDirectionError,\n} from './sort-errors';\n\n/** Position of the arrow that displays when sorted. */\nexport type SortHeaderArrowPosition = 'before' | 'after';\n\n/** Interface for a directive that holds sorting state consumed by `MatSortHeader`. */\nexport interface MatSortable {\n /** The id of the column being sorted. */\n id: string;\n\n /** Starting sort direction. */\n start: SortDirection;\n\n /** Whether to disable clearing the sorting state. */\n disableClear: boolean;\n}\n\n/** The current sort state. */\nexport interface Sort {\n /** The id of the column being sorted. */\n active: string;\n\n /** The sort direction. */\n direction: SortDirection;\n}\n\n/** Default options for `mat-sort`. */\nexport interface MatSortDefaultOptions {\n /** Whether to disable clearing the sorting state. */\n disableClear?: boolean;\n /** Position of the arrow that displays when sorted. */\n arrowPosition?: SortHeaderArrowPosition;\n}\n\n/** Injection token to be used to override the default options for `mat-sort`. */\nexport const MAT_SORT_DEFAULT_OPTIONS = new InjectionToken<MatSortDefaultOptions>(\n 'MAT_SORT_DEFAULT_OPTIONS',\n);\n\n/** Container for MatSortables to manage the sort state and provide default sort parameters. */\n@Directive({\n selector: '[matSort]',\n exportAs: 'matSort',\n host: {\n 'class': 'mat-sort',\n },\n})\nexport class MatSort implements OnChanges, OnDestroy, OnInit {\n private _initializedStream = new ReplaySubject<void>(1);\n\n /** Collection of all registered sortables that this directive manages. */\n sortables = new Map<string, MatSortable>();\n\n /** Used to notify any child components listening to state changes. */\n readonly _stateChanges = new Subject<void>();\n\n /** The id of the most recently sorted MatSortable. */\n @Input('matSortActive') active!: string;\n\n /**\n * The direction to set when an MatSortable is initially sorted.\n * May be overridden by the MatSortable's sort start.\n */\n @Input('matSortStart') start: SortDirection = 'asc';\n\n /** The sort direction of the currently active MatSortable. */\n @Input('matSortDirection')\n get direction(): SortDirection {\n return this._direction;\n }\n set direction(direction: SortDirection) {\n if (\n direction &&\n direction !== 'asc' &&\n direction !== 'desc' &&\n (typeof ngDevMode === 'undefined' || ngDevMode)\n ) {\n throw getSortInvalidDirectionError(direction);\n }\n this._direction = direction;\n }\n private _direction: SortDirection = '';\n\n /**\n * Whether to disable the user from clearing the sort by finishing the sort direction cycle.\n * May be overridden by the MatSortable's disable clear input.\n */\n @Input({alias: 'matSortDisableClear', transform: booleanAttribute})\n disableClear!: boolean;\n\n /** Whether the sortable is disabled. */\n @Input({alias: 'matSortDisabled', transform: booleanAttribute})\n disabled: boolean = false;\n\n /** Event emitted when the user changes either the active sort or sort direction. */\n @Output('matSortChange') readonly sortChange: EventEmitter<Sort> = new EventEmitter<Sort>();\n\n /** Emits when the paginator is initialized. */\n initialized: Observable<void> = this._initializedStream;\n\n constructor(\n @Optional()\n @Inject(MAT_SORT_DEFAULT_OPTIONS)\n private _defaultOptions?: MatSortDefaultOptions,\n ) {}\n\n /**\n * Register function to be used by the contained MatSortables. Adds the MatSortable to the\n * collection of MatSortables.\n */\n register(sortable: MatSortable): void {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!sortable.id) {\n throw getSortHeaderMissingIdError();\n }\n\n if (this.sortables.has(sortable.id)) {\n throw getSortDuplicateSortableIdError(sortable.id);\n }\n }\n\n this.sortables.set(sortable.id, sortable);\n }\n\n /**\n * Unregister function to be used by the contained MatSortables. Removes the MatSortable from the\n * collection of contained MatSortables.\n */\n deregister(sortable: MatSortable): void {\n this.sortables.delete(sortable.id);\n }\n\n /** Sets the active sort id and determines the new sort direction. */\n sort(sortable: MatSortable): void {\n if (this.active != sortable.id) {\n this.active = sortable.id;\n this.direction = sortable.start ? sortable.start : this.start;\n } else {\n this.direction = this.getNextSortDirection(sortable);\n }\n\n this.sortChange.emit({active: this.active, direction: this.direction});\n }\n\n /** Returns the next sort direction of the active sortable, checking for potential overrides. */\n getNextSortDirection(sortable: MatSortable): SortDirection {\n if (!sortable) {\n return '';\n }\n\n // Get the sort direction cycle with the potential sortable overrides.\n const disableClear =\n sortable?.disableClear ?? this.disableClear ?? !!this._defaultOptions?.disableClear;\n let sortDirectionCycle = getSortDirectionCycle(sortable.start || this.start, disableClear);\n\n // Get and return the next direction in the cycle\n let nextDirectionIndex = sortDirectionCycle.indexOf(this.direction) + 1;\n if (nextDirectionIndex >= sortDirectionCycle.length) {\n nextDirectionIndex = 0;\n }\n return sortDirectionCycle[nextDirectionIndex];\n }\n\n ngOnInit() {\n this._initializedStream.next();\n }\n\n ngOnChanges() {\n this._stateChanges.next();\n }\n\n ngOnDestroy() {\n this._stateChanges.complete();\n this._initializedStream.complete();\n }\n}\n\n/** Returns the sort direction cycle to use given the provided parameters of order and clear. */\nfunction getSortDirectionCycle(start: SortDirection, disableClear: boolean): SortDirection[] {\n let sortOrder: SortDirection[] = ['asc', 'desc'];\n if (start == 'desc') {\n sortOrder.reverse();\n }\n if (!disableClear) {\n sortOrder.push('');\n }\n\n return sortOrder;\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 {AriaDescriber, FocusMonitor} from '@angular/cdk/a11y';\nimport {ENTER, SPACE} from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n signal,\n ChangeDetectorRef,\n} from '@angular/core';\nimport {_CdkPrivateStyleLoader} from '@angular/cdk/private';\nimport {CdkColumnDef} from '@angular/cdk/table';\nimport {merge, Subscription} from 'rxjs';\nimport {\n MAT_SORT_DEFAULT_OPTIONS,\n MatSort,\n MatSortable,\n MatSortDefaultOptions,\n SortHeaderArrowPosition,\n} from './sort';\nimport {SortDirection} from './sort-direction';\nimport {getSortHeaderNotContainedWithinSortError} from './sort-errors';\nimport {_animationsDisabled, _StructuralStylesLoader} from '../core';\n\n/**\n * Applies sorting behavior (click to change sort) and styles to an element, including an\n * arrow to display the current sort direction.\n *\n * Must be provided with an id and contained within a parent MatSort directive.\n *\n * If used on header cells in a CdkTable, it will automatically default its id from its containing\n * column definition.\n */\n@Component({\n selector: '[mat-sort-header]',\n exportAs: 'matSortHeader',\n templateUrl: 'sort-header.html',\n styleUrl: 'sort-header.css',\n host: {\n 'class': 'mat-sort-header',\n '(click)': '_toggleOnInteraction()',\n '(keydown)': '_handleKeydown($event)',\n '(mouseleave)': '_recentlyCleared.set(null)',\n '[attr.aria-sort]': '_getAriaSortAttribute()',\n '[class.mat-sort-header-disabled]': '_isDisabled()',\n },\n encapsulation: ViewEncapsulation.None,\n})\nexport class MatSortHeader implements MatSortable, OnDestroy, OnInit, AfterViewInit {\n protected _sort = inject(MatSort, {optional: true})!;\n private _columnDef = inject(CdkColumnDef, {optional: true});\n private _changeDetectorRef = inject(ChangeDetectorRef);\n private _focusMonitor = inject(FocusMonitor);\n private _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private _ariaDescriber = inject(AriaDescriber, {optional: true});\n private _renderChanges: Subscription | undefined;\n protected _animationsDisabled = _animationsDisabled();\n\n /**\n * Indicates which state was just cleared from the sort header.\n * Will be reset on the next interaction. Used for coordinating animations.\n */\n protected _recentlyCleared = signal<SortDirection | null>(null);\n\n /**\n * The element with role=\"button\" inside this component's view. We need this\n * in order to apply a description with AriaDescriber.\n */\n private _sortButton!: HTMLElement;\n\n /**\n * ID of this sort header. If used within the context of a CdkColumnDef, this will default to\n * the column's name.\n */\n @Input('mat-sort-header') id!: string;\n\n /** Sets the position of the arrow that displays when sorted. */\n @Input() arrowPosition: SortHeaderArrowPosition = 'after';\n\n /** Overrides the sort start value of the containing MatSort for this MatSortable. */\n @Input() start!: SortDirection;\n\n /** whether the sort header is disabled. */\n @Input({transform: booleanAttribute})\n disabled: boolean = false;\n\n /**\n * Description applied to MatSortHeader's button element with aria-describedby. This text should\n * describe the action that will occur when the user clicks the sort header.\n */\n @Input()\n get sortActionDescription(): string {\n return this._sortActionDescription;\n }\n set sortActionDescription(value: string) {\n this._updateSortActionDescription(value);\n }\n // Default the action description to \"Sort\" because it's better than nothing.\n // Without a description, the button's label comes from the sort header text content,\n // which doesn't give any indication that it performs a sorting operation.\n private _sortActionDescription: string = 'Sort';\n\n /** Overrides the disable clear value of the containing MatSort for this MatSortable. */\n @Input({transform: booleanAttribute})\n disableClear!: boolean;\n\n constructor() {\n inject(_CdkPrivateStyleLoader).load(_StructuralStylesLoader);\n const defaultOptions = inject<MatSortDefaultOptions>(MAT_SORT_DEFAULT_OPTIONS, {\n optional: true,\n });\n\n // Note that we use a string token for the `_columnDef`, because the value is provided both by\n // `material/table` and `cdk/table` and we can't have the CDK depending on Material,\n // and we want to avoid having the sort header depending on the CDK table because\n // of this single reference.\n if (!this._sort && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getSortHeaderNotContainedWithinSortError();\n }\n\n if (defaultOptions?.arrowPosition) {\n this.arrowPosition = defaultOptions?.arrowPosition;\n }\n }\n\n ngOnInit() {\n if (!this.id && this._columnDef) {\n this.id = this._columnDef.name;\n }\n\n this._sort.register(this);\n this._renderChanges = merge(this._sort._stateChanges, this._sort.sortChange).subscribe(() =>\n this._changeDetectorRef.markForCheck(),\n );\n this._sortButton = this._elementRef.nativeElement.querySelector('.mat-sort-header-container')!;\n this._updateSortActionDescription(this._sortActionDescription);\n }\n\n ngAfterViewInit() {\n // We use the focus monitor because we also want to style\n // things differently based on the focus origin.\n this._focusMonitor.monitor(this._elementRef, true).subscribe(() => {\n // We need the delay here, because we can trigger a signal write error if the header\n // has a signal bound to `disabled` which causes it to be blurred (see #31723.)\n Promise.resolve().then(() => this._recentlyCleared.set(null));\n });\n }\n\n ngOnDestroy() {\n this._focusMonitor.stopMonitoring(this._elementRef);\n this._sort.deregister(this);\n this._renderChanges?.unsubscribe();\n\n if (this._sortButton) {\n this._ariaDescriber?.removeDescription(this._sortButton, this._sortActionDescription);\n }\n }\n\n /** Triggers the sort on this sort header and removes the indicator hint. */\n _toggleOnInteraction() {\n if (!this._isDisabled()) {\n const wasSorted = this._isSorted();\n const prevDirection = this._sort.direction;\n this._sort.sort(this);\n this._recentlyCleared.set(wasSorted && !this._isSorted() ? prevDirection : null);\n }\n }\n\n _handleKeydown(event: KeyboardEvent) {\n if (event.keyCode === SPACE || event.keyCode === ENTER) {\n event.preventDefault();\n this._toggleOnInteraction();\n }\n }\n\n /** Whether this MatSortHeader is currently sorted in either ascending or descending order. */\n _isSorted() {\n return (\n this._sort.active == this.id &&\n (this._sort.direction === 'asc' || this._sort.direction === 'desc')\n );\n }\n\n _isDisabled() {\n return this._sort.disabled || this.disabled;\n }\n\n /**\n * Gets the aria-sort attribute that should be applied to this sort header. If this header\n * is not sorted, returns null so that the attribute is removed from the host element. Aria spec\n * says that the aria-sort property should only be present on one header at a time, so removing\n * ensures this is true.\n */\n _getAriaSortAttribute() {\n if (!this._isSorted()) {\n return 'none';\n }\n\n return this._sort.direction == 'asc' ? 'ascending' : 'descending';\n }\n\n /** Whether the arrow inside the sort header should be rendered. */\n _renderArrow() {\n return !this._isDisabled() || this._isSorted();\n }\n\n private _updateSortActionDescription(newDescription: string) {\n // We use AriaDescriber for the sort button instead of setting an `aria-label` because some\n // screen readers (notably VoiceOver) will read both the column header *and* the button's label\n // for every *cell* in the table, creating a lot of unnecessary noise.\n\n // If _sortButton is undefined, the component hasn't been initialized yet so there's\n // nothing to update in the DOM.\n if (this._sortButton) {\n // removeDescription will no-op if there is no existing message.\n // TODO(jelbourn): remove optional chaining when AriaDescriber is required.\n this._ariaDescriber?.removeDescription(this._sortButton, this._sortActionDescription);\n this._ariaDescriber?.describe(this._sortButton, newDescription);\n }\n\n this._sortActionDescription = newDescription;\n }\n}\n","<!--\n We set the `tabindex` on an element inside the table header, rather than the header itself,\n because of a bug in NVDA where having a `tabindex` on a `th` breaks keyboard navigation in the\n table (see https://github.com/nvaccess/nvda/issues/7718). This allows for the header to both\n be focusable, and have screen readers read out its `aria-sort` state. We prefer this approach\n over having a button with an `aria-label` inside the header, because the button's `aria-label`\n will be read out as the user is navigating the table's cell (see #13012).\n\n The approach is based off of: https://dequeuniversity.com/library/aria/tables/sf-sortable-grid\n-->\n<div class=\"mat-sort-header-container mat-focus-indicator\"\n [class.mat-sort-header-sorted]=\"_isSorted()\"\n [class.mat-sort-header-position-before]=\"arrowPosition === 'before'\"\n [class.mat-sort-header-descending]=\"_sort.direction === 'desc'\"\n [class.mat-sort-header-ascending]=\"_sort.direction === 'asc'\"\n [class.mat-sort-header-recently-cleared-ascending]=\"_recentlyCleared() === 'asc'\"\n [class.mat-sort-header-recently-cleared-descending]=\"_recentlyCleared() === 'desc'\"\n [class.mat-sort-header-animations-disabled]=\"_animationsDisabled\"\n [attr.tabindex]=\"_isDisabled() ? null : 0\"\n [attr.role]=\"_isDisabled() ? null : 'button'\">\n\n <!--\n TODO(crisbeto): this div isn't strictly necessary, but we have to keep it due to a large\n number of screenshot diff failures. It should be removed eventually. Note that the difference\n isn't visible with a shorter header, but once it breaks up into multiple lines, this element\n causes it to be center-aligned, whereas removing it will keep the text to the left.\n -->\n <div class=\"mat-sort-header-content\">\n <ng-content></ng-content>\n </div>\n\n <!-- Disable animations while a current animation is running -->\n @if (_renderArrow()) {\n <div class=\"mat-sort-header-arrow\">\n <ng-content select=\"[matSortHeaderIcon]\">\n <svg viewBox=\"0 -960 960 960\" focusable=\"false\" aria-hidden=\"true\">\n <path d=\"M440-240v-368L296-464l-56-56 240-240 240 240-56 56-144-144v368h-80Z\"/>\n </svg>\n </ng-content>\n </div>\n }\n</div>\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 {BidiModule} from '@angular/cdk/bidi';\nimport {NgModule} from '@angular/core';\nimport {MatSortHeader} from './sort-header';\nimport {MatSort} from './sort';\n\n@NgModule({\n imports: [MatSort, MatSortHeader],\n exports: [MatSort, MatSortHeader, BidiModule],\n})\nexport class MatSortModule {}\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 {Service} from '@angular/core';\nimport {Subject} from 'rxjs';\n\n/**\n * To modify the labels and text displayed, create a new instance of MatSortHeaderIntl and\n * include it in a custom provider.\n *\n * @deprecated No longer used, will be removed.\n * @breaking-change 23.0.0\n * @docs-private\n */\n@Service()\nexport class MatSortHeaderIntl {\n /**\n * Stream that emits whenever the labels here are changed. Use this to notify\n * components if the labels have changed after initialization.\n */\n readonly changes: Subject<void> = new Subject<void>();\n}\n"],"names":["getSortDuplicateSortableIdError","id","Error","getSortHeaderNotContainedWithinSortError","getSortHeaderMissingIdError","getSortInvalidDirectionError","direction","MAT_SORT_DEFAULT_OPTIONS","InjectionToken","MatSort","_defaultOptions","_initializedStream","ReplaySubject","sortables","Map","_stateChanges","Subject","active","start","_direction","ngDevMode","disableClear","disabled","sortChange","EventEmitter","initialized","constructor","register","sortable","has","set","deregister","delete","sort","getNextSortDirection","emit","sortDirectionCycle","getSortDirectionCycle","nextDirectionIndex","indexOf","length","ngOnInit","next","ngOnChanges","ngOnDestroy","complete","ɵfac","i0","ɵɵngDeclareFactory","minVersion","version","ngImport","type","optional","target","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","booleanAttribute","outputs","host","classAttribute","exportAs","usesOnChanges","decorators","args","Optional","Inject","Input","alias","transform","Output","sortOrder","reverse","push","MatSortHeader","_sort","inject","_columnDef","CdkColumnDef","_changeDetectorRef","ChangeDetectorRef","_focusMonitor","FocusMonitor","_elementRef","ElementRef","_ariaDescriber","AriaDescriber","_renderChanges","_animationsDisabled","_recentlyCleared","signal","_sortButton","arrowPosition","sortActionDescription","_sortActionDescription","value","_updateSortActionDescription","_CdkPrivateStyleLoader","load","_StructuralStylesLoader","defaultOptions","name","merge","subscribe","markForCheck","nativeElement","querySelector","ngAfterViewInit","monitor","Promise","resolve","then","stopMonitoring","unsubscribe","removeDescription","_toggleOnInteraction","_isDisabled","wasSorted","_isSorted","prevDirection","_handleKeydown","event","keyCode","SPACE","ENTER","preventDefault","_getAriaSortAttribute","_renderArrow","newDescription","describe","deps","Component","ɵcmp","ɵɵngDeclareComponent","styles","encapsulation","ViewEncapsulation","None","template","MatSortModule","NgModule","imports","BidiModule","ɵinj","ɵɵngDeclareInjector","exports","MatSortHeaderIntl","changes","Service"],"mappings":"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"}