@angular/material 21.0.0 → 21.1.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/fesm2022/_error-options-chunk.mjs +6 -6
  2. package/fesm2022/_error-options-chunk.mjs.map +1 -1
  3. package/fesm2022/_form-field-chunk.mjs +60 -30
  4. package/fesm2022/_form-field-chunk.mjs.map +1 -1
  5. package/fesm2022/_icon-button-chunk.mjs +6 -6
  6. package/fesm2022/_icon-button-chunk.mjs.map +1 -1
  7. package/fesm2022/_icon-registry-chunk.mjs +4 -22
  8. package/fesm2022/_icon-registry-chunk.mjs.map +1 -1
  9. package/fesm2022/_internal-form-field-chunk.mjs +3 -3
  10. package/fesm2022/_internal-form-field-chunk.mjs.map +1 -1
  11. package/fesm2022/_line-chunk.mjs +7 -7
  12. package/fesm2022/_line-chunk.mjs.map +1 -1
  13. package/fesm2022/_option-chunk.mjs +6 -6
  14. package/fesm2022/_option-chunk.mjs.map +1 -1
  15. package/fesm2022/_option-module-chunk.mjs +4 -4
  16. package/fesm2022/_option-module-chunk.mjs.map +1 -1
  17. package/fesm2022/_pseudo-checkbox-chunk.mjs +3 -3
  18. package/fesm2022/_pseudo-checkbox-chunk.mjs.map +1 -1
  19. package/fesm2022/_pseudo-checkbox-module-chunk.mjs +4 -4
  20. package/fesm2022/_pseudo-checkbox-module-chunk.mjs.map +1 -1
  21. package/fesm2022/_ripple-chunk.mjs +6 -6
  22. package/fesm2022/_ripple-chunk.mjs.map +1 -1
  23. package/fesm2022/_ripple-loader-chunk.mjs +3 -3
  24. package/fesm2022/_ripple-loader-chunk.mjs.map +1 -1
  25. package/fesm2022/_ripple-module-chunk.mjs +4 -4
  26. package/fesm2022/_ripple-module-chunk.mjs.map +1 -1
  27. package/fesm2022/_structural-styles-chunk.mjs +3 -3
  28. package/fesm2022/_structural-styles-chunk.mjs.map +1 -1
  29. package/fesm2022/_tooltip-chunk.mjs +6 -6
  30. package/fesm2022/_tooltip-chunk.mjs.map +1 -1
  31. package/fesm2022/autocomplete.mjs +13 -13
  32. package/fesm2022/autocomplete.mjs.map +1 -1
  33. package/fesm2022/badge.mjs +10 -10
  34. package/fesm2022/badge.mjs.map +1 -1
  35. package/fesm2022/bottom-sheet.mjs +10 -10
  36. package/fesm2022/bottom-sheet.mjs.map +1 -1
  37. package/fesm2022/button-toggle.mjs +10 -10
  38. package/fesm2022/button-toggle.mjs.map +1 -1
  39. package/fesm2022/button.mjs +13 -13
  40. package/fesm2022/button.mjs.map +1 -1
  41. package/fesm2022/card.mjs +46 -46
  42. package/fesm2022/card.mjs.map +1 -1
  43. package/fesm2022/checkbox.mjs +7 -7
  44. package/fesm2022/checkbox.mjs.map +1 -1
  45. package/fesm2022/chips.mjs +46 -46
  46. package/fesm2022/chips.mjs.map +1 -1
  47. package/fesm2022/core.mjs +12 -12
  48. package/fesm2022/core.mjs.map +1 -1
  49. package/fesm2022/datepicker.mjs +82 -82
  50. package/fesm2022/datepicker.mjs.map +1 -1
  51. package/fesm2022/dialog.mjs +25 -25
  52. package/fesm2022/dialog.mjs.map +1 -1
  53. package/fesm2022/divider.mjs +7 -7
  54. package/fesm2022/divider.mjs.map +1 -1
  55. package/fesm2022/expansion.mjs +25 -25
  56. package/fesm2022/expansion.mjs.map +1 -1
  57. package/fesm2022/form-field.mjs +4 -4
  58. package/fesm2022/form-field.mjs.map +1 -1
  59. package/fesm2022/grid-list.mjs +22 -22
  60. package/fesm2022/grid-list.mjs.map +1 -1
  61. package/fesm2022/icon-testing.mjs +8 -7
  62. package/fesm2022/icon-testing.mjs.map +1 -1
  63. package/fesm2022/icon.mjs +8 -7
  64. package/fesm2022/icon.mjs.map +1 -1
  65. package/fesm2022/input.mjs +7 -7
  66. package/fesm2022/input.mjs.map +1 -1
  67. package/fesm2022/list.mjs +49 -49
  68. package/fesm2022/list.mjs.map +1 -1
  69. package/fesm2022/menu.mjs +22 -22
  70. package/fesm2022/menu.mjs.map +1 -1
  71. package/fesm2022/paginator.mjs +10 -10
  72. package/fesm2022/paginator.mjs.map +1 -1
  73. package/fesm2022/progress-bar.mjs +7 -7
  74. package/fesm2022/progress-bar.mjs.map +1 -1
  75. package/fesm2022/progress-spinner.mjs +7 -7
  76. package/fesm2022/progress-spinner.mjs.map +1 -1
  77. package/fesm2022/radio.mjs +10 -10
  78. package/fesm2022/radio.mjs.map +1 -1
  79. package/fesm2022/select.mjs +16 -16
  80. package/fesm2022/select.mjs.map +1 -1
  81. package/fesm2022/sidenav.mjs +22 -22
  82. package/fesm2022/sidenav.mjs.map +1 -1
  83. package/fesm2022/slide-toggle.mjs +7 -7
  84. package/fesm2022/slide-toggle.mjs.map +1 -1
  85. package/fesm2022/slider.mjs +16 -16
  86. package/fesm2022/slider.mjs.map +1 -1
  87. package/fesm2022/snack-bar.mjs +22 -22
  88. package/fesm2022/snack-bar.mjs.map +1 -1
  89. package/fesm2022/sort.mjs +13 -13
  90. package/fesm2022/sort.mjs.map +1 -1
  91. package/fesm2022/stepper.mjs +89 -41
  92. package/fesm2022/stepper.mjs.map +1 -1
  93. package/fesm2022/table.mjs +55 -55
  94. package/fesm2022/table.mjs.map +1 -1
  95. package/fesm2022/tabs.mjs +43 -43
  96. package/fesm2022/tabs.mjs.map +1 -1
  97. package/fesm2022/timepicker.mjs +185 -16
  98. package/fesm2022/timepicker.mjs.map +1 -1
  99. package/fesm2022/toolbar.mjs +10 -10
  100. package/fesm2022/toolbar.mjs.map +1 -1
  101. package/fesm2022/tooltip.mjs +4 -4
  102. package/fesm2022/tooltip.mjs.map +1 -1
  103. package/fesm2022/tree.mjs +25 -25
  104. package/fesm2022/tree.mjs.map +1 -1
  105. package/package.json +6 -6
  106. package/schematics/ng-add/fonts/material-fonts.js +7 -0
  107. package/schematics/ng-add/fonts/material-fonts.js.map +1 -1
  108. package/schematics/ng-add/index.js +2 -2
  109. package/types/stepper.d.ts +3 -1
@@ -98,7 +98,7 @@ class MatSnackBarConfig {
98
98
  class MatSnackBarLabel {
99
99
  static ɵfac = i0.ɵɵngDeclareFactory({
100
100
  minVersion: "12.0.0",
101
- version: "20.2.0-next.2",
101
+ version: "21.0.0",
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: "20.2.0-next.2",
109
+ version: "21.0.0",
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: "20.2.0-next.2",
121
+ version: "21.0.0",
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: "20.2.0-next.2",
137
+ version: "21.0.0",
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: "20.2.0-next.2",
145
+ version: "21.0.0",
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: "20.2.0-next.2",
157
+ version: "21.0.0",
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: "20.2.0-next.2",
173
+ version: "21.0.0",
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: "20.2.0-next.2",
181
+ version: "21.0.0",
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: "20.2.0-next.2",
193
+ version: "21.0.0",
194
194
  ngImport: i0,
195
195
  type: MatSnackBarAction,
196
196
  decorators: [{
@@ -216,7 +216,7 @@ class SimpleSnackBar {
216
216
  }
217
217
  static ɵfac = i0.ɵɵngDeclareFactory({
218
218
  minVersion: "12.0.0",
219
- version: "20.2.0-next.2",
219
+ version: "21.0.0",
220
220
  ngImport: i0,
221
221
  type: SimpleSnackBar,
222
222
  deps: [],
@@ -224,7 +224,7 @@ class SimpleSnackBar {
224
224
  });
225
225
  static ɵcmp = i0.ɵɵngDeclareComponent({
226
226
  minVersion: "17.0.0",
227
- version: "20.2.0-next.2",
227
+ version: "21.0.0",
228
228
  type: SimpleSnackBar,
229
229
  isStandalone: true,
230
230
  selector: "simple-snack-bar",
@@ -260,7 +260,7 @@ class SimpleSnackBar {
260
260
  }
261
261
  i0.ɵɵngDeclareClassMetadata({
262
262
  minVersion: "12.0.0",
263
- version: "20.2.0-next.2",
263
+ version: "21.0.0",
264
264
  ngImport: i0,
265
265
  type: SimpleSnackBar,
266
266
  decorators: [{
@@ -486,7 +486,7 @@ class MatSnackBarContainer extends BasePortalOutlet {
486
486
  }
487
487
  static ɵfac = i0.ɵɵngDeclareFactory({
488
488
  minVersion: "12.0.0",
489
- version: "20.2.0-next.2",
489
+ version: "21.0.0",
490
490
  ngImport: i0,
491
491
  type: MatSnackBarContainer,
492
492
  deps: [],
@@ -494,7 +494,7 @@ class MatSnackBarContainer extends BasePortalOutlet {
494
494
  });
495
495
  static ɵcmp = i0.ɵɵngDeclareComponent({
496
496
  minVersion: "14.0.0",
497
- version: "20.2.0-next.2",
497
+ version: "21.0.0",
498
498
  type: MatSnackBarContainer,
499
499
  isStandalone: true,
500
500
  selector: "mat-snack-bar-container",
@@ -541,7 +541,7 @@ class MatSnackBarContainer extends BasePortalOutlet {
541
541
  }
542
542
  i0.ɵɵngDeclareClassMetadata({
543
543
  minVersion: "12.0.0",
544
- version: "20.2.0-next.2",
544
+ version: "21.0.0",
545
545
  ngImport: i0,
546
546
  type: MatSnackBarContainer,
547
547
  decorators: [{
@@ -746,7 +746,7 @@ class MatSnackBar {
746
746
  }
747
747
  static ɵfac = i0.ɵɵngDeclareFactory({
748
748
  minVersion: "12.0.0",
749
- version: "20.2.0-next.2",
749
+ version: "21.0.0",
750
750
  ngImport: i0,
751
751
  type: MatSnackBar,
752
752
  deps: [],
@@ -754,7 +754,7 @@ class MatSnackBar {
754
754
  });
755
755
  static ɵprov = i0.ɵɵngDeclareInjectable({
756
756
  minVersion: "12.0.0",
757
- version: "20.2.0-next.2",
757
+ version: "21.0.0",
758
758
  ngImport: i0,
759
759
  type: MatSnackBar,
760
760
  providedIn: 'root'
@@ -762,7 +762,7 @@ class MatSnackBar {
762
762
  }
763
763
  i0.ɵɵngDeclareClassMetadata({
764
764
  minVersion: "12.0.0",
765
- version: "20.2.0-next.2",
765
+ version: "21.0.0",
766
766
  ngImport: i0,
767
767
  type: MatSnackBar,
768
768
  decorators: [{
@@ -778,7 +778,7 @@ const DIRECTIVES = [MatSnackBarContainer, MatSnackBarLabel, MatSnackBarActions,
778
778
  class MatSnackBarModule {
779
779
  static ɵfac = i0.ɵɵngDeclareFactory({
780
780
  minVersion: "12.0.0",
781
- version: "20.2.0-next.2",
781
+ version: "21.0.0",
782
782
  ngImport: i0,
783
783
  type: MatSnackBarModule,
784
784
  deps: [],
@@ -786,7 +786,7 @@ class MatSnackBarModule {
786
786
  });
787
787
  static ɵmod = i0.ɵɵngDeclareNgModule({
788
788
  minVersion: "14.0.0",
789
- version: "20.2.0-next.2",
789
+ version: "21.0.0",
790
790
  ngImport: i0,
791
791
  type: MatSnackBarModule,
792
792
  imports: [OverlayModule, PortalModule, MatButtonModule, SimpleSnackBar, MatSnackBarContainer, MatSnackBarLabel, MatSnackBarActions, MatSnackBarAction],
@@ -794,7 +794,7 @@ class MatSnackBarModule {
794
794
  });
795
795
  static ɵinj = i0.ɵɵngDeclareInjector({
796
796
  minVersion: "12.0.0",
797
- version: "20.2.0-next.2",
797
+ version: "21.0.0",
798
798
  ngImport: i0,
799
799
  type: MatSnackBarModule,
800
800
  providers: [MatSnackBar],
@@ -803,7 +803,7 @@ class MatSnackBarModule {
803
803
  }
804
804
  i0.ɵɵngDeclareClassMetadata({
805
805
  minVersion: "12.0.0",
806
- version: "20.2.0-next.2",
806
+ version: "21.0.0",
807
807
  ngImport: i0,
808
808
  type: MatSnackBarModule,
809
809
  decorators: [{
@@ -1 +1 @@
1
- {"version":3,"file":"snack-bar.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/snack-bar/snack-bar-ref.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/snack-bar/snack-bar-config.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/snack-bar/snack-bar-content.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/snack-bar/simple-snack-bar.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/snack-bar/simple-snack-bar.html","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/snack-bar/snack-bar-container.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/snack-bar/snack-bar-container.html","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/snack-bar/snack-bar.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/snack-bar/snack-bar-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 {OverlayRef} from '@angular/cdk/overlay';\nimport {Observable, Subject} from 'rxjs';\nimport {MatSnackBarContainer} from './snack-bar-container';\n\n/** Event that is emitted when a snack bar is dismissed. */\nexport interface MatSnackBarDismiss {\n /** Whether the snack bar was dismissed using the action button. */\n dismissedByAction: boolean;\n}\n\n/** Maximum amount of milliseconds that can be passed into setTimeout. */\nconst MAX_TIMEOUT = Math.pow(2, 31) - 1;\n\n/**\n * Reference to a snack bar dispatched from the snack bar service.\n */\nexport class MatSnackBarRef<T> {\n /** The instance of the component making up the content of the snack bar. */\n instance: T;\n\n /**\n * The instance of the component making up the content of the snack bar.\n * @docs-private\n */\n containerInstance: MatSnackBarContainer;\n\n /** Subject for notifying the user that the snack bar has been dismissed. */\n private readonly _afterDismissed = new Subject<MatSnackBarDismiss>();\n\n /** Subject for notifying the user that the snack bar has opened and appeared. */\n private readonly _afterOpened = new Subject<void>();\n\n /** Subject for notifying the user that the snack bar action was called. */\n private readonly _onAction = new Subject<void>();\n\n /**\n * Timeout ID for the duration setTimeout call. Used to clear the timeout if the snackbar is\n * dismissed before the duration passes.\n */\n private _durationTimeoutId: ReturnType<typeof setTimeout>;\n\n /** Whether the snack bar was dismissed using the action button. */\n private _dismissedByAction = false;\n\n constructor(\n containerInstance: MatSnackBarContainer,\n private _overlayRef: OverlayRef,\n ) {\n this.containerInstance = containerInstance;\n containerInstance._onExit.subscribe(() => this._finishDismiss());\n }\n\n /** Dismisses the snack bar. */\n dismiss(): void {\n if (!this._afterDismissed.closed) {\n this.containerInstance.exit();\n }\n clearTimeout(this._durationTimeoutId);\n }\n\n /** Marks the snackbar action clicked. */\n dismissWithAction(): void {\n if (!this._onAction.closed) {\n this._dismissedByAction = true;\n this._onAction.next();\n this._onAction.complete();\n this.dismiss();\n }\n clearTimeout(this._durationTimeoutId);\n }\n\n /**\n * Marks the snackbar action clicked.\n * @deprecated Use `dismissWithAction` instead.\n * @breaking-change 8.0.0\n */\n closeWithAction(): void {\n this.dismissWithAction();\n }\n\n /** Dismisses the snack bar after some duration */\n _dismissAfter(duration: number): void {\n // Note that we need to cap the duration to the maximum value for setTimeout, because\n // it'll revert to 1 if somebody passes in something greater (e.g. `Infinity`). See #17234.\n this._durationTimeoutId = setTimeout(() => this.dismiss(), Math.min(duration, MAX_TIMEOUT));\n }\n\n /** Marks the snackbar as opened */\n _open(): void {\n if (!this._afterOpened.closed) {\n this._afterOpened.next();\n this._afterOpened.complete();\n }\n }\n\n /** Cleans up the DOM after closing. */\n private _finishDismiss(): void {\n this._overlayRef.dispose();\n\n if (!this._onAction.closed) {\n this._onAction.complete();\n }\n\n this._afterDismissed.next({dismissedByAction: this._dismissedByAction});\n this._afterDismissed.complete();\n this._dismissedByAction = false;\n }\n\n /** Gets an observable that is notified when the snack bar is finished closing. */\n afterDismissed(): Observable<MatSnackBarDismiss> {\n return this._afterDismissed;\n }\n\n /** Gets an observable that is notified when the snack bar has opened and appeared. */\n afterOpened(): Observable<void> {\n return this.containerInstance._onEnter;\n }\n\n /** Gets an observable that is notified when the snack bar action is called. */\n onAction(): Observable<void> {\n return this._onAction;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ViewContainerRef, InjectionToken} from '@angular/core';\nimport {AriaLivePoliteness} from '@angular/cdk/a11y';\nimport {Direction} from '@angular/cdk/bidi';\n\n/** Injection token that can be used to access the data that was passed in to a snack bar. */\nexport const MAT_SNACK_BAR_DATA = new InjectionToken<any>('MatSnackBarData');\n\n/** Possible values for horizontalPosition on MatSnackBarConfig. */\nexport type MatSnackBarHorizontalPosition = 'start' | 'center' | 'end' | 'left' | 'right';\n\n/** Possible values for verticalPosition on MatSnackBarConfig. */\nexport type MatSnackBarVerticalPosition = 'top' | 'bottom';\n\n/**\n * Configuration used when opening a snack-bar.\n */\nexport class MatSnackBarConfig<D = any> {\n /** The politeness level for the MatAriaLiveAnnouncer announcement. */\n politeness?: AriaLivePoliteness = 'polite';\n\n /**\n * Message to be announced by the LiveAnnouncer. When opening a snackbar without a custom\n * component or template, the announcement message will default to the specified message.\n */\n announcementMessage?: string = '';\n\n /**\n * The view container that serves as the parent for the snackbar for the purposes of dependency\n * injection. Note: this does not affect where the snackbar is inserted in the DOM.\n */\n viewContainerRef?: ViewContainerRef;\n\n /** The length of time in milliseconds to wait before automatically dismissing the snack bar. */\n duration?: number = 0;\n\n /** Extra CSS classes to be added to the snack bar container. */\n panelClass?: string | string[];\n\n /** Text layout direction for the snack bar. */\n direction?: Direction;\n\n /** Data being injected into the child component. */\n data?: D | null = null;\n\n /** The horizontal position to place the snack bar. */\n horizontalPosition?: MatSnackBarHorizontalPosition = 'center';\n\n /** The vertical position to place the snack bar. */\n verticalPosition?: MatSnackBarVerticalPosition = 'bottom';\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 {Directive} from '@angular/core';\n\n/** Directive that should be applied to the text element to be rendered in the snack bar. */\n@Directive({\n selector: `[matSnackBarLabel]`,\n host: {\n 'class': 'mat-mdc-snack-bar-label mdc-snackbar__label',\n },\n})\nexport class MatSnackBarLabel {}\n\n/** Directive that should be applied to the element containing the snack bar's action buttons. */\n@Directive({\n selector: `[matSnackBarActions]`,\n host: {\n 'class': 'mat-mdc-snack-bar-actions mdc-snackbar__actions',\n },\n})\nexport class MatSnackBarActions {}\n\n/** Directive that should be applied to each of the snack bar's action buttons. */\n@Directive({\n selector: `[matSnackBarAction]`,\n host: {\n 'class': 'mat-mdc-snack-bar-action mdc-snackbar__action',\n },\n})\nexport class MatSnackBarAction {}\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 {ChangeDetectionStrategy, Component, ViewEncapsulation, inject} from '@angular/core';\nimport {MatButton} from '../button';\nimport {MatSnackBarRef} from './snack-bar-ref';\nimport {MAT_SNACK_BAR_DATA} from './snack-bar-config';\nimport {MatSnackBarAction, MatSnackBarActions, MatSnackBarLabel} from './snack-bar-content';\n\n/**\n * Interface for a simple snack bar component that has a message and a single action.\n */\nexport interface TextOnlySnackBar {\n data: {message: string; action: string};\n snackBarRef: MatSnackBarRef<TextOnlySnackBar>;\n action: () => void;\n hasAction: boolean;\n}\n\n@Component({\n selector: 'simple-snack-bar',\n templateUrl: 'simple-snack-bar.html',\n styleUrl: 'simple-snack-bar.css',\n exportAs: 'matSnackBar',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatButton, MatSnackBarLabel, MatSnackBarActions, MatSnackBarAction],\n host: {\n 'class': 'mat-mdc-simple-snack-bar',\n },\n})\nexport class SimpleSnackBar implements TextOnlySnackBar {\n snackBarRef = inject<MatSnackBarRef<SimpleSnackBar>>(MatSnackBarRef);\n data = inject(MAT_SNACK_BAR_DATA);\n\n constructor(...args: unknown[]);\n constructor() {}\n\n /** Performs the action on the snack bar. */\n action(): void {\n this.snackBarRef.dismissWithAction();\n }\n\n /** If the action button should be shown. */\n get hasAction(): boolean {\n return !!this.data.action;\n }\n}\n","<div matSnackBarLabel>\n {{data.message}}\n</div>\n\n@if (hasAction) {\n <div matSnackBarActions>\n <button matButton matSnackBarAction (click)=\"action()\">\n {{data.action}}\n </button>\n </div>\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 {_IdGenerator, AriaLivePoliteness} from '@angular/cdk/a11y';\nimport {Platform} from '@angular/cdk/platform';\nimport {\n BasePortalOutlet,\n CdkPortalOutlet,\n ComponentPortal,\n DomPortal,\n TemplatePortal,\n} from '@angular/cdk/portal';\n\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n inject,\n Injector,\n NgZone,\n OnDestroy,\n ViewChild,\n ViewEncapsulation,\n DOCUMENT,\n} from '@angular/core';\nimport {Observable, of, Subject} from 'rxjs';\nimport {_animationsDisabled} from '../core';\nimport {MatSnackBarConfig} from './snack-bar-config';\n\nconst ENTER_ANIMATION = '_mat-snack-bar-enter';\nconst EXIT_ANIMATION = '_mat-snack-bar-exit';\n\n/**\n * Internal component that wraps user-provided snack bar content.\n * @docs-private\n */\n@Component({\n selector: 'mat-snack-bar-container',\n templateUrl: 'snack-bar-container.html',\n styleUrl: 'snack-bar-container.css',\n // In Ivy embedded views will be change detected from their declaration place, rather than\n // where they were stamped out. This means that we can't have the snack bar container be OnPush,\n // because it might cause snack bars that were opened from a template not to be out of date.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkPortalOutlet],\n host: {\n 'class': 'mdc-snackbar mat-mdc-snack-bar-container',\n '[class.mat-snack-bar-container-enter]': '_animationState === \"visible\"',\n '[class.mat-snack-bar-container-exit]': '_animationState === \"hidden\"',\n '[class.mat-snack-bar-container-animations-enabled]': '!_animationsDisabled',\n '(animationend)': 'onAnimationEnd($event.animationName)',\n '(animationcancel)': 'onAnimationEnd($event.animationName)',\n },\n})\nexport class MatSnackBarContainer extends BasePortalOutlet implements OnDestroy {\n private _ngZone = inject(NgZone);\n readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private _changeDetectorRef = inject(ChangeDetectorRef);\n private _platform = inject(Platform);\n protected _animationsDisabled = _animationsDisabled();\n snackBarConfig = inject(MatSnackBarConfig);\n\n private _document = inject(DOCUMENT);\n private _trackedModals = new Set<Element>();\n private _enterFallback: ReturnType<typeof setTimeout> | undefined;\n private _exitFallback: ReturnType<typeof setTimeout> | undefined;\n private _injector = inject(Injector);\n\n /** The number of milliseconds to wait before announcing the snack bar's content. */\n private readonly _announceDelay: number = 150;\n\n /** The timeout for announcing the snack bar's content. */\n private _announceTimeoutId: ReturnType<typeof setTimeout>;\n\n /** Whether the component has been destroyed. */\n private _destroyed = false;\n\n /** The portal outlet inside of this container into which the snack bar content will be loaded. */\n @ViewChild(CdkPortalOutlet, {static: true}) _portalOutlet: CdkPortalOutlet;\n\n /** Subject for notifying that the snack bar has announced to screen readers. */\n readonly _onAnnounce: Subject<void> = new Subject();\n\n /** Subject for notifying that the snack bar has exited from view. */\n readonly _onExit: Subject<void> = new Subject();\n\n /** Subject for notifying that the snack bar has finished entering the view. */\n readonly _onEnter: Subject<void> = new Subject();\n\n /** The state of the snack bar animations. */\n _animationState = 'void';\n\n /** aria-live value for the live region. */\n _live: AriaLivePoliteness;\n\n /**\n * Element that will have the `mdc-snackbar__label` class applied if the attached component\n * or template does not have it. This ensures that the appropriate structure, typography, and\n * color is applied to the attached view.\n */\n @ViewChild('label', {static: true}) _label: ElementRef;\n\n /**\n * Role of the live region. This is only for Firefox as there is a known issue where Firefox +\n * JAWS does not read out aria-live message.\n */\n _role?: 'status' | 'alert';\n\n /** Unique ID of the aria-live element. */\n readonly _liveElementId = inject(_IdGenerator).getId('mat-snack-bar-container-live-');\n\n constructor(...args: unknown[]);\n\n constructor() {\n super();\n const config = this.snackBarConfig;\n\n // Use aria-live rather than a live role like 'alert' or 'status'\n // because NVDA and JAWS have show inconsistent behavior with live roles.\n if (config.politeness === 'assertive' && !config.announcementMessage) {\n this._live = 'assertive';\n } else if (config.politeness === 'off') {\n this._live = 'off';\n } else {\n this._live = 'polite';\n }\n\n // Only set role for Firefox. Set role based on aria-live because setting role=\"alert\" implies\n // aria-live=\"assertive\" which may cause issues if aria-live is set to \"polite\" above.\n if (this._platform.FIREFOX) {\n if (this._live === 'polite') {\n this._role = 'status';\n }\n if (this._live === 'assertive') {\n this._role = 'alert';\n }\n }\n }\n\n /** Attach a component portal as content to this snack bar container. */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n this._assertNotAttached();\n const result = this._portalOutlet.attachComponentPortal(portal);\n this._afterPortalAttached();\n return result;\n }\n\n /** Attach a template portal as content to this snack bar container. */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n this._assertNotAttached();\n const result = this._portalOutlet.attachTemplatePortal(portal);\n this._afterPortalAttached();\n return result;\n }\n\n /**\n * Attaches a DOM portal to the snack bar container.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n override attachDomPortal = (portal: DomPortal) => {\n this._assertNotAttached();\n const result = this._portalOutlet.attachDomPortal(portal);\n this._afterPortalAttached();\n return result;\n };\n\n /** Handle end of animations, updating the state of the snackbar. */\n onAnimationEnd(animationName: string) {\n if (animationName === EXIT_ANIMATION) {\n this._completeExit();\n } else if (animationName === ENTER_ANIMATION) {\n clearTimeout(this._enterFallback);\n this._ngZone.run(() => {\n this._onEnter.next();\n this._onEnter.complete();\n });\n }\n }\n\n /** Begin animation of snack bar entrance into view. */\n enter(): void {\n if (!this._destroyed) {\n this._animationState = 'visible';\n // _animationState lives in host bindings and `detectChanges` does not refresh host bindings\n // so we have to call `markForCheck` to ensure the host view is refreshed eventually.\n this._changeDetectorRef.markForCheck();\n this._changeDetectorRef.detectChanges();\n this._screenReaderAnnounce();\n\n if (this._animationsDisabled) {\n afterNextRender(\n () => {\n this._ngZone.run(() => queueMicrotask(() => this.onAnimationEnd(ENTER_ANIMATION)));\n },\n {injector: this._injector},\n );\n } else {\n clearTimeout(this._enterFallback);\n this._enterFallback = setTimeout(() => {\n // The snack bar will stay invisible if it fails to animate. Add a fallback class so it\n // becomes visible. This can happen in some apps that do `* {animation: none !important}`.\n this._elementRef.nativeElement.classList.add('mat-snack-bar-fallback-visible');\n this.onAnimationEnd(ENTER_ANIMATION);\n }, 200);\n }\n }\n }\n\n /** Begin animation of the snack bar exiting from view. */\n exit(): Observable<void> {\n if (this._destroyed) {\n return of(undefined);\n }\n\n // It's common for snack bars to be opened by random outside calls like HTTP requests or\n // errors. Run inside the NgZone to ensure that it functions correctly.\n this._ngZone.run(() => {\n // Note: this one transitions to `hidden`, rather than `void`, in order to handle the case\n // where multiple snack bars are opened in quick succession (e.g. two consecutive calls to\n // `MatSnackBar.open`).\n this._animationState = 'hidden';\n this._changeDetectorRef.markForCheck();\n\n // Mark this element with an 'exit' attribute to indicate that the snackbar has\n // been dismissed and will soon be removed from the DOM. This is used by the snackbar\n // test harness.\n this._elementRef.nativeElement.setAttribute('mat-exit', '');\n\n // If the snack bar hasn't been announced by the time it exits it wouldn't have been open\n // long enough to visually read it either, so clear the timeout for announcing.\n clearTimeout(this._announceTimeoutId);\n\n if (this._animationsDisabled) {\n afterNextRender(\n () => {\n this._ngZone.run(() => queueMicrotask(() => this.onAnimationEnd(EXIT_ANIMATION)));\n },\n {injector: this._injector},\n );\n } else {\n clearTimeout(this._exitFallback);\n this._exitFallback = setTimeout(() => this.onAnimationEnd(EXIT_ANIMATION), 200);\n }\n });\n\n return this._onExit;\n }\n\n /** Makes sure the exit callbacks have been invoked when the element is destroyed. */\n ngOnDestroy() {\n this._destroyed = true;\n this._clearFromModals();\n this._completeExit();\n }\n\n private _completeExit() {\n clearTimeout(this._exitFallback);\n queueMicrotask(() => {\n this._onExit.next();\n this._onExit.complete();\n });\n }\n\n /**\n * Called after the portal contents have been attached. Can be\n * used to modify the DOM once it's guaranteed to be in place.\n */\n private _afterPortalAttached() {\n const element: HTMLElement = this._elementRef.nativeElement;\n const panelClasses = this.snackBarConfig.panelClass;\n\n if (panelClasses) {\n if (Array.isArray(panelClasses)) {\n // Note that we can't use a spread here, because IE doesn't support multiple arguments.\n panelClasses.forEach(cssClass => element.classList.add(cssClass));\n } else {\n element.classList.add(panelClasses);\n }\n }\n\n this._exposeToModals();\n\n // Check to see if the attached component or template uses the MDC template structure,\n // specifically the MDC label. If not, the container should apply the MDC label class to this\n // component's label container, which will apply MDC's label styles to the attached view.\n const label = this._label.nativeElement;\n const labelClass = 'mdc-snackbar__label';\n label.classList.toggle(labelClass, !label.querySelector(`.${labelClass}`));\n }\n\n /**\n * Some browsers won't expose the accessibility node of the live element if there is an\n * `aria-modal` and the live element is outside of it. This method works around the issue by\n * pointing the `aria-owns` of all modals to the live element.\n */\n private _exposeToModals() {\n // TODO(http://github.com/angular/components/issues/26853): consider de-duplicating this with the\n // `LiveAnnouncer` and any other usages.\n //\n // Note that the selector here is limited to CDK overlays at the moment in order to reduce the\n // section of the DOM we need to look through. This should cover all the cases we support, but\n // the selector can be expanded if it turns out to be too narrow.\n const id = this._liveElementId;\n const modals = this._document.querySelectorAll(\n 'body > .cdk-overlay-container [aria-modal=\"true\"]',\n );\n\n for (let i = 0; i < modals.length; i++) {\n const modal = modals[i];\n const ariaOwns = modal.getAttribute('aria-owns');\n this._trackedModals.add(modal);\n\n if (!ariaOwns) {\n modal.setAttribute('aria-owns', id);\n } else if (ariaOwns.indexOf(id) === -1) {\n modal.setAttribute('aria-owns', ariaOwns + ' ' + id);\n }\n }\n }\n\n /** Clears the references to the live element from any modals it was added to. */\n private _clearFromModals() {\n this._trackedModals.forEach(modal => {\n const ariaOwns = modal.getAttribute('aria-owns');\n\n if (ariaOwns) {\n const newValue = ariaOwns.replace(this._liveElementId, '').trim();\n\n if (newValue.length > 0) {\n modal.setAttribute('aria-owns', newValue);\n } else {\n modal.removeAttribute('aria-owns');\n }\n }\n });\n this._trackedModals.clear();\n }\n\n /** Asserts that no content is already attached to the container. */\n private _assertNotAttached() {\n if (this._portalOutlet.hasAttached() && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Attempting to attach snack bar content after content is already attached');\n }\n }\n\n /**\n * Starts a timeout to move the snack bar content to the live region so screen readers will\n * announce it.\n */\n private _screenReaderAnnounce() {\n if (this._announceTimeoutId) {\n return;\n }\n\n this._ngZone.runOutsideAngular(() => {\n this._announceTimeoutId = setTimeout(() => {\n if (this._destroyed) {\n return;\n }\n\n const element = this._elementRef.nativeElement;\n const inertElement = element.querySelector('[aria-hidden]');\n const liveElement = element.querySelector('[aria-live]');\n\n if (inertElement && liveElement) {\n // If an element in the snack bar content is focused before being moved\n // track it and restore focus after moving to the live region.\n let focusedElement: HTMLElement | null = null;\n if (\n this._platform.isBrowser &&\n document.activeElement instanceof HTMLElement &&\n inertElement.contains(document.activeElement)\n ) {\n focusedElement = document.activeElement;\n }\n\n inertElement.removeAttribute('aria-hidden');\n liveElement.appendChild(inertElement);\n focusedElement?.focus();\n\n this._onAnnounce.next();\n this._onAnnounce.complete();\n }\n }, this._announceDelay);\n });\n }\n}\n","<div class=\"mdc-snackbar__surface mat-mdc-snackbar-surface\">\n <!--\n This outer label wrapper will have the class `mdc-snackbar__label` applied if\n the attached template/component does not contain it.\n -->\n <div class=\"mat-mdc-snack-bar-label\" #label>\n <!-- Initialy holds the snack bar content, will be empty after announcing to screen readers. -->\n <div aria-hidden=\"true\">\n <ng-template cdkPortalOutlet />\n </div>\n\n <!-- Will receive the snack bar content from the non-live div, move will happen a short delay after opening -->\n <div [attr.aria-live]=\"_live\" [attr.role]=\"_role\" [attr.id]=\"_liveElementId\"></div>\n </div>\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 {LiveAnnouncer} from '@angular/cdk/a11y';\nimport {BreakpointObserver, Breakpoints} from '@angular/cdk/layout';\nimport {\n ComponentType,\n createGlobalPositionStrategy,\n createOverlayRef,\n OverlayConfig,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport {\n ComponentRef,\n EmbeddedViewRef,\n Injectable,\n InjectionToken,\n Injector,\n OnDestroy,\n TemplateRef,\n inject,\n} from '@angular/core';\nimport {SimpleSnackBar, TextOnlySnackBar} from './simple-snack-bar';\nimport {MatSnackBarContainer} from './snack-bar-container';\nimport {MAT_SNACK_BAR_DATA, MatSnackBarConfig} from './snack-bar-config';\nimport {MatSnackBarRef} from './snack-bar-ref';\nimport {ComponentPortal, TemplatePortal} from '@angular/cdk/portal';\nimport {takeUntil} from 'rxjs/operators';\nimport {_animationsDisabled} from '../core';\n\n/** Injection token that can be used to specify default snack bar. */\nexport const MAT_SNACK_BAR_DEFAULT_OPTIONS = new InjectionToken<MatSnackBarConfig>(\n 'mat-snack-bar-default-options',\n {\n providedIn: 'root',\n factory: () => new MatSnackBarConfig(),\n },\n);\n\n/**\n * Service to dispatch Material Design snack bar messages.\n */\n@Injectable({providedIn: 'root'})\nexport class MatSnackBar implements OnDestroy {\n private _live = inject(LiveAnnouncer);\n private _injector = inject(Injector);\n private _breakpointObserver = inject(BreakpointObserver);\n private _parentSnackBar = inject(MatSnackBar, {optional: true, skipSelf: true});\n private _defaultConfig = inject<MatSnackBarConfig>(MAT_SNACK_BAR_DEFAULT_OPTIONS);\n private _animationsDisabled = _animationsDisabled();\n\n /**\n * Reference to the current snack bar in the view *at this level* (in the Angular injector tree).\n * If there is a parent snack-bar service, all operations should delegate to that parent\n * via `_openedSnackBarRef`.\n */\n private _snackBarRefAtThisLevel: MatSnackBarRef<any> | null = null;\n\n /** The component that should be rendered as the snack bar's simple component. */\n simpleSnackBarComponent = SimpleSnackBar;\n\n /** The container component that attaches the provided template or component. */\n snackBarContainerComponent = MatSnackBarContainer;\n\n /** The CSS class to apply for handset mode. */\n handsetCssClass = 'mat-mdc-snack-bar-handset';\n\n /** Reference to the currently opened snackbar at *any* level. */\n get _openedSnackBarRef(): MatSnackBarRef<any> | null {\n const parent = this._parentSnackBar;\n return parent ? parent._openedSnackBarRef : this._snackBarRefAtThisLevel;\n }\n\n set _openedSnackBarRef(value: MatSnackBarRef<any> | null) {\n if (this._parentSnackBar) {\n this._parentSnackBar._openedSnackBarRef = value;\n } else {\n this._snackBarRefAtThisLevel = value;\n }\n }\n\n constructor(...args: unknown[]);\n constructor() {}\n\n /**\n * Creates and dispatches a snack bar with a custom component for the content, removing any\n * currently opened snack bars.\n *\n * @param component Component to be instantiated.\n * @param config Extra configuration for the snack bar.\n */\n openFromComponent<T, D = any>(\n component: ComponentType<T>,\n config?: MatSnackBarConfig<D>,\n ): MatSnackBarRef<T> {\n return this._attach(component, config) as MatSnackBarRef<T>;\n }\n\n /**\n * Creates and dispatches a snack bar with a custom template for the content, removing any\n * currently opened snack bars.\n *\n * @param template Template to be instantiated.\n * @param config Extra configuration for the snack bar.\n */\n openFromTemplate(\n template: TemplateRef<any>,\n config?: MatSnackBarConfig,\n ): MatSnackBarRef<EmbeddedViewRef<any>> {\n return this._attach(template, config);\n }\n\n /**\n * Opens a snackbar with a message and an optional action.\n * @param message The message to show in the snackbar.\n * @param action The label for the snackbar action.\n * @param config Additional configuration options for the snackbar.\n */\n open(\n message: string,\n action: string = '',\n config?: MatSnackBarConfig,\n ): MatSnackBarRef<TextOnlySnackBar> {\n const _config = {...this._defaultConfig, ...config};\n\n // Since the user doesn't have access to the component, we can\n // override the data to pass in our own message and action.\n _config.data = {message, action};\n\n // Since the snack bar has `role=\"alert\"`, we don't\n // want to announce the same message twice.\n if (_config.announcementMessage === message) {\n _config.announcementMessage = undefined;\n }\n\n return this.openFromComponent(this.simpleSnackBarComponent, _config);\n }\n\n /**\n * Dismisses the currently-visible snack bar.\n */\n dismiss(): void {\n if (this._openedSnackBarRef) {\n this._openedSnackBarRef.dismiss();\n }\n }\n\n ngOnDestroy() {\n // Only dismiss the snack bar at the current level on destroy.\n if (this._snackBarRefAtThisLevel) {\n this._snackBarRefAtThisLevel.dismiss();\n }\n }\n\n /**\n * Attaches the snack bar container component to the overlay.\n */\n private _attachSnackBarContainer(\n overlayRef: OverlayRef,\n config: MatSnackBarConfig,\n ): MatSnackBarContainer {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = Injector.create({\n parent: userInjector || this._injector,\n providers: [{provide: MatSnackBarConfig, useValue: config}],\n });\n\n const containerPortal = new ComponentPortal(\n this.snackBarContainerComponent,\n config.viewContainerRef,\n injector,\n );\n const containerRef: ComponentRef<MatSnackBarContainer> = overlayRef.attach(containerPortal);\n containerRef.instance.snackBarConfig = config;\n return containerRef.instance;\n }\n\n /**\n * Places a new component or a template as the content of the snack bar container.\n */\n private _attach<T>(\n content: ComponentType<T> | TemplateRef<T>,\n userConfig?: MatSnackBarConfig,\n ): MatSnackBarRef<T | EmbeddedViewRef<any>> {\n const config = {...new MatSnackBarConfig(), ...this._defaultConfig, ...userConfig};\n const overlayRef = this._createOverlay(config);\n const container = this._attachSnackBarContainer(overlayRef, config);\n const snackBarRef = new MatSnackBarRef<T | EmbeddedViewRef<any>>(container, overlayRef);\n\n if (content instanceof TemplateRef) {\n const portal = new TemplatePortal(content, null!, {\n $implicit: config.data,\n snackBarRef,\n } as any);\n\n snackBarRef.instance = container.attachTemplatePortal(portal);\n } else {\n const injector = this._createInjector(config, snackBarRef);\n const portal = new ComponentPortal(content, undefined, injector);\n const contentRef = container.attachComponentPortal<T>(portal);\n\n // We can't pass this via the injector, because the injector is created earlier.\n snackBarRef.instance = contentRef.instance;\n }\n\n // Subscribe to the breakpoint observer and attach the mat-snack-bar-handset class as\n // appropriate. This class is applied to the overlay element because the overlay must expand to\n // fill the width of the screen for full width snackbars.\n this._breakpointObserver\n .observe(Breakpoints.HandsetPortrait)\n .pipe(takeUntil(overlayRef.detachments()))\n .subscribe(state => {\n overlayRef.overlayElement.classList.toggle(this.handsetCssClass, state.matches);\n });\n\n if (config.announcementMessage) {\n // Wait until the snack bar contents have been announced then deliver this message.\n container._onAnnounce.subscribe(() => {\n this._live.announce(config.announcementMessage!, config.politeness);\n });\n }\n\n this._animateSnackBar(snackBarRef, config);\n this._openedSnackBarRef = snackBarRef;\n return this._openedSnackBarRef;\n }\n\n /** Animates the old snack bar out and the new one in. */\n private _animateSnackBar(snackBarRef: MatSnackBarRef<any>, config: MatSnackBarConfig) {\n // When the snackbar is dismissed, clear the reference to it.\n snackBarRef.afterDismissed().subscribe(() => {\n // Clear the snackbar ref if it hasn't already been replaced by a newer snackbar.\n if (this._openedSnackBarRef == snackBarRef) {\n this._openedSnackBarRef = null;\n }\n\n if (config.announcementMessage) {\n this._live.clear();\n }\n });\n\n // If a dismiss timeout is provided, set up dismiss based on after the snackbar is opened.\n if (config.duration && config.duration > 0) {\n snackBarRef.afterOpened().subscribe(() => snackBarRef._dismissAfter(config.duration!));\n }\n\n if (this._openedSnackBarRef) {\n // If a snack bar is already in view, dismiss it and enter the\n // new snack bar after exit animation is complete.\n this._openedSnackBarRef.afterDismissed().subscribe(() => {\n snackBarRef.containerInstance.enter();\n });\n this._openedSnackBarRef.dismiss();\n } else {\n // If no snack bar is in view, enter the new snack bar.\n snackBarRef.containerInstance.enter();\n }\n }\n\n /**\n * Creates a new overlay and places it in the correct location.\n * @param config The user-specified snack bar config.\n */\n private _createOverlay(config: MatSnackBarConfig): OverlayRef {\n const overlayConfig = new OverlayConfig();\n overlayConfig.direction = config.direction;\n\n const positionStrategy = createGlobalPositionStrategy(this._injector);\n // Set horizontal position.\n const isRtl = config.direction === 'rtl';\n const isLeft =\n config.horizontalPosition === 'left' ||\n (config.horizontalPosition === 'start' && !isRtl) ||\n (config.horizontalPosition === 'end' && isRtl);\n const isRight = !isLeft && config.horizontalPosition !== 'center';\n if (isLeft) {\n positionStrategy.left('0');\n } else if (isRight) {\n positionStrategy.right('0');\n } else {\n positionStrategy.centerHorizontally();\n }\n // Set horizontal position.\n if (config.verticalPosition === 'top') {\n positionStrategy.top('0');\n } else {\n positionStrategy.bottom('0');\n }\n\n overlayConfig.positionStrategy = positionStrategy;\n overlayConfig.disableAnimations = this._animationsDisabled;\n return createOverlayRef(this._injector, overlayConfig);\n }\n\n /**\n * Creates an injector to be used inside of a snack bar component.\n * @param config Config that was used to create the snack bar.\n * @param snackBarRef Reference to the snack bar.\n */\n private _createInjector<T>(config: MatSnackBarConfig, snackBarRef: MatSnackBarRef<T>): Injector {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n\n return Injector.create({\n parent: userInjector || this._injector,\n providers: [\n {provide: MatSnackBarRef, useValue: snackBarRef},\n {provide: MAT_SNACK_BAR_DATA, useValue: config.data},\n ],\n });\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {OverlayModule} from '@angular/cdk/overlay';\nimport {PortalModule} from '@angular/cdk/portal';\nimport {NgModule} from '@angular/core';\nimport {BidiModule} from '@angular/cdk/bidi';\nimport {MatButtonModule} from '../button';\n\nimport {SimpleSnackBar} from './simple-snack-bar';\nimport {MatSnackBarContainer} from './snack-bar-container';\nimport {MatSnackBarAction, MatSnackBarActions, MatSnackBarLabel} from './snack-bar-content';\nimport {MatSnackBar} from './snack-bar';\n\nconst DIRECTIVES = [MatSnackBarContainer, MatSnackBarLabel, MatSnackBarActions, MatSnackBarAction];\n\n@NgModule({\n imports: [OverlayModule, PortalModule, MatButtonModule, SimpleSnackBar, ...DIRECTIVES],\n exports: [BidiModule, ...DIRECTIVES],\n providers: [MatSnackBar],\n})\nexport class MatSnackBarModule {}\n"],"names":["MAX_TIMEOUT","Math","pow","MatSnackBarRef","_overlayRef","instance","containerInstance","_afterDismissed","Subject","_afterOpened","_onAction","_durationTimeoutId","_dismissedByAction","constructor","_onExit","subscribe","_finishDismiss","dismiss","closed","exit","clearTimeout","dismissWithAction","next","complete","closeWithAction","_dismissAfter","duration","setTimeout","min","_open","dispose","dismissedByAction","afterDismissed","afterOpened","_onEnter","onAction","MAT_SNACK_BAR_DATA","InjectionToken","MatSnackBarConfig","politeness","announcementMessage","viewContainerRef","panelClass","direction","data","horizontalPosition","verticalPosition","MatSnackBarLabel","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","host","classAttribute","ngImport","decorators","args","MatSnackBarActions","MatSnackBarAction","SimpleSnackBar","snackBarRef","inject","action","hasAction","Component","exportAs","template","styles","dependencies","kind","type","MatButton","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","ENTER_ANIMATION","EXIT_ANIMATION","MatSnackBarContainer","BasePortalOutlet","_ngZone","NgZone","_elementRef","ElementRef","_changeDetectorRef","ChangeDetectorRef","_platform","Platform","_animationsDisabled","snackBarConfig","_document","DOCUMENT","_trackedModals","Set","_enterFallback","_exitFallback","_injector","Injector","_announceDelay","_announceTimeoutId","_destroyed","_portalOutlet","_onAnnounce","_animationState","_live","_label","_role","_liveElementId","_IdGenerator","getId","config","FIREFOX","attachComponentPortal","portal","_assertNotAttached","result","_afterPortalAttached","attachTemplatePortal","attachDomPortal","onAnimationEnd","animationName","_completeExit","run","enter","markForCheck","detectChanges","_screenReaderAnnounce","afterNextRender","queueMicrotask","injector","nativeElement","classList","add","of","undefined","setAttribute","ngOnDestroy","_clearFromModals","element","panelClasses","Array","isArray","forEach","cssClass","_exposeToModals","label","labelClass","toggle","querySelector","id","modals","querySelectorAll","i","length","modal","ariaOwns","getAttribute","indexOf","newValue","replace","trim","removeAttribute","clear","hasAttached","ngDevMode","Error","runOutsideAngular","inertElement","liveElement","focusedElement","isBrowser","document","activeElement","HTMLElement","contains","appendChild","focus","ɵcmp","ɵɵngDeclareComponent","minVersion","version","listeners","properties","viewQueries","propertyName","first","predicate","CdkPortalOutlet","descendants","static","usesInheritance","inputs","outputs","Default","imports","ViewChild","MAT_SNACK_BAR_DEFAULT_OPTIONS","providedIn","factory","MatSnackBar","LiveAnnouncer","_breakpointObserver","BreakpointObserver","_parentSnackBar","optional","skipSelf","_defaultConfig","_snackBarRefAtThisLevel","simpleSnackBarComponent","snackBarContainerComponent","handsetCssClass","_openedSnackBarRef","parent","value","openFromComponent","component","_attach","openFromTemplate","open","message","_config","_attachSnackBarContainer","overlayRef","userInjector","create","providers","provide","useValue","containerPortal","ComponentPortal","containerRef","attach","content","userConfig","_createOverlay","container","TemplateRef","TemplatePortal","$implicit","_createInjector","contentRef","observe","Breakpoints","HandsetPortrait","pipe","takeUntil","detachments","state","overlayElement","matches","announce","_animateSnackBar","overlayConfig","OverlayConfig","positionStrategy","createGlobalPositionStrategy","isRtl","isLeft","isRight","left","right","centerHorizontally","top","bottom","disableAnimations","createOverlayRef","Injectable","ɵprov","ɵɵngDeclareInjectable","DIRECTIVES","MatSnackBarModule","NgModule","OverlayModule","PortalModule","MatButtonModule","exports","BidiModule","ɵinj","ɵɵngDeclareInjector"],"mappings":"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"}
1
+ {"version":3,"file":"snack-bar.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/snack-bar/snack-bar-ref.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/snack-bar/snack-bar-config.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/snack-bar/snack-bar-content.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/snack-bar/simple-snack-bar.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/snack-bar/simple-snack-bar.html","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/snack-bar/snack-bar-container.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/snack-bar/snack-bar-container.html","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/snack-bar/snack-bar.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/snack-bar/snack-bar-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 {OverlayRef} from '@angular/cdk/overlay';\nimport {Observable, Subject} from 'rxjs';\nimport {MatSnackBarContainer} from './snack-bar-container';\n\n/** Event that is emitted when a snack bar is dismissed. */\nexport interface MatSnackBarDismiss {\n /** Whether the snack bar was dismissed using the action button. */\n dismissedByAction: boolean;\n}\n\n/** Maximum amount of milliseconds that can be passed into setTimeout. */\nconst MAX_TIMEOUT = Math.pow(2, 31) - 1;\n\n/**\n * Reference to a snack bar dispatched from the snack bar service.\n */\nexport class MatSnackBarRef<T> {\n /** The instance of the component making up the content of the snack bar. */\n instance: T;\n\n /**\n * The instance of the component making up the content of the snack bar.\n * @docs-private\n */\n containerInstance: MatSnackBarContainer;\n\n /** Subject for notifying the user that the snack bar has been dismissed. */\n private readonly _afterDismissed = new Subject<MatSnackBarDismiss>();\n\n /** Subject for notifying the user that the snack bar has opened and appeared. */\n private readonly _afterOpened = new Subject<void>();\n\n /** Subject for notifying the user that the snack bar action was called. */\n private readonly _onAction = new Subject<void>();\n\n /**\n * Timeout ID for the duration setTimeout call. Used to clear the timeout if the snackbar is\n * dismissed before the duration passes.\n */\n private _durationTimeoutId: ReturnType<typeof setTimeout>;\n\n /** Whether the snack bar was dismissed using the action button. */\n private _dismissedByAction = false;\n\n constructor(\n containerInstance: MatSnackBarContainer,\n private _overlayRef: OverlayRef,\n ) {\n this.containerInstance = containerInstance;\n containerInstance._onExit.subscribe(() => this._finishDismiss());\n }\n\n /** Dismisses the snack bar. */\n dismiss(): void {\n if (!this._afterDismissed.closed) {\n this.containerInstance.exit();\n }\n clearTimeout(this._durationTimeoutId);\n }\n\n /** Marks the snackbar action clicked. */\n dismissWithAction(): void {\n if (!this._onAction.closed) {\n this._dismissedByAction = true;\n this._onAction.next();\n this._onAction.complete();\n this.dismiss();\n }\n clearTimeout(this._durationTimeoutId);\n }\n\n /**\n * Marks the snackbar action clicked.\n * @deprecated Use `dismissWithAction` instead.\n * @breaking-change 8.0.0\n */\n closeWithAction(): void {\n this.dismissWithAction();\n }\n\n /** Dismisses the snack bar after some duration */\n _dismissAfter(duration: number): void {\n // Note that we need to cap the duration to the maximum value for setTimeout, because\n // it'll revert to 1 if somebody passes in something greater (e.g. `Infinity`). See #17234.\n this._durationTimeoutId = setTimeout(() => this.dismiss(), Math.min(duration, MAX_TIMEOUT));\n }\n\n /** Marks the snackbar as opened */\n _open(): void {\n if (!this._afterOpened.closed) {\n this._afterOpened.next();\n this._afterOpened.complete();\n }\n }\n\n /** Cleans up the DOM after closing. */\n private _finishDismiss(): void {\n this._overlayRef.dispose();\n\n if (!this._onAction.closed) {\n this._onAction.complete();\n }\n\n this._afterDismissed.next({dismissedByAction: this._dismissedByAction});\n this._afterDismissed.complete();\n this._dismissedByAction = false;\n }\n\n /** Gets an observable that is notified when the snack bar is finished closing. */\n afterDismissed(): Observable<MatSnackBarDismiss> {\n return this._afterDismissed;\n }\n\n /** Gets an observable that is notified when the snack bar has opened and appeared. */\n afterOpened(): Observable<void> {\n return this.containerInstance._onEnter;\n }\n\n /** Gets an observable that is notified when the snack bar action is called. */\n onAction(): Observable<void> {\n return this._onAction;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ViewContainerRef, InjectionToken} from '@angular/core';\nimport {AriaLivePoliteness} from '@angular/cdk/a11y';\nimport {Direction} from '@angular/cdk/bidi';\n\n/** Injection token that can be used to access the data that was passed in to a snack bar. */\nexport const MAT_SNACK_BAR_DATA = new InjectionToken<any>('MatSnackBarData');\n\n/** Possible values for horizontalPosition on MatSnackBarConfig. */\nexport type MatSnackBarHorizontalPosition = 'start' | 'center' | 'end' | 'left' | 'right';\n\n/** Possible values for verticalPosition on MatSnackBarConfig. */\nexport type MatSnackBarVerticalPosition = 'top' | 'bottom';\n\n/**\n * Configuration used when opening a snack-bar.\n */\nexport class MatSnackBarConfig<D = any> {\n /** The politeness level for the MatAriaLiveAnnouncer announcement. */\n politeness?: AriaLivePoliteness = 'polite';\n\n /**\n * Message to be announced by the LiveAnnouncer. When opening a snackbar without a custom\n * component or template, the announcement message will default to the specified message.\n */\n announcementMessage?: string = '';\n\n /**\n * The view container that serves as the parent for the snackbar for the purposes of dependency\n * injection. Note: this does not affect where the snackbar is inserted in the DOM.\n */\n viewContainerRef?: ViewContainerRef;\n\n /** The length of time in milliseconds to wait before automatically dismissing the snack bar. */\n duration?: number = 0;\n\n /** Extra CSS classes to be added to the snack bar container. */\n panelClass?: string | string[];\n\n /** Text layout direction for the snack bar. */\n direction?: Direction;\n\n /** Data being injected into the child component. */\n data?: D | null = null;\n\n /** The horizontal position to place the snack bar. */\n horizontalPosition?: MatSnackBarHorizontalPosition = 'center';\n\n /** The vertical position to place the snack bar. */\n verticalPosition?: MatSnackBarVerticalPosition = 'bottom';\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 {Directive} from '@angular/core';\n\n/** Directive that should be applied to the text element to be rendered in the snack bar. */\n@Directive({\n selector: `[matSnackBarLabel]`,\n host: {\n 'class': 'mat-mdc-snack-bar-label mdc-snackbar__label',\n },\n})\nexport class MatSnackBarLabel {}\n\n/** Directive that should be applied to the element containing the snack bar's action buttons. */\n@Directive({\n selector: `[matSnackBarActions]`,\n host: {\n 'class': 'mat-mdc-snack-bar-actions mdc-snackbar__actions',\n },\n})\nexport class MatSnackBarActions {}\n\n/** Directive that should be applied to each of the snack bar's action buttons. */\n@Directive({\n selector: `[matSnackBarAction]`,\n host: {\n 'class': 'mat-mdc-snack-bar-action mdc-snackbar__action',\n },\n})\nexport class MatSnackBarAction {}\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 {ChangeDetectionStrategy, Component, ViewEncapsulation, inject} from '@angular/core';\nimport {MatButton} from '../button';\nimport {MatSnackBarRef} from './snack-bar-ref';\nimport {MAT_SNACK_BAR_DATA} from './snack-bar-config';\nimport {MatSnackBarAction, MatSnackBarActions, MatSnackBarLabel} from './snack-bar-content';\n\n/**\n * Interface for a simple snack bar component that has a message and a single action.\n */\nexport interface TextOnlySnackBar {\n data: {message: string; action: string};\n snackBarRef: MatSnackBarRef<TextOnlySnackBar>;\n action: () => void;\n hasAction: boolean;\n}\n\n@Component({\n selector: 'simple-snack-bar',\n templateUrl: 'simple-snack-bar.html',\n styleUrl: 'simple-snack-bar.css',\n exportAs: 'matSnackBar',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatButton, MatSnackBarLabel, MatSnackBarActions, MatSnackBarAction],\n host: {\n 'class': 'mat-mdc-simple-snack-bar',\n },\n})\nexport class SimpleSnackBar implements TextOnlySnackBar {\n snackBarRef = inject<MatSnackBarRef<SimpleSnackBar>>(MatSnackBarRef);\n data = inject(MAT_SNACK_BAR_DATA);\n\n constructor(...args: unknown[]);\n constructor() {}\n\n /** Performs the action on the snack bar. */\n action(): void {\n this.snackBarRef.dismissWithAction();\n }\n\n /** If the action button should be shown. */\n get hasAction(): boolean {\n return !!this.data.action;\n }\n}\n","<div matSnackBarLabel>\n {{data.message}}\n</div>\n\n@if (hasAction) {\n <div matSnackBarActions>\n <button matButton matSnackBarAction (click)=\"action()\">\n {{data.action}}\n </button>\n </div>\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 {_IdGenerator, AriaLivePoliteness} from '@angular/cdk/a11y';\nimport {Platform} from '@angular/cdk/platform';\nimport {\n BasePortalOutlet,\n CdkPortalOutlet,\n ComponentPortal,\n DomPortal,\n TemplatePortal,\n} from '@angular/cdk/portal';\n\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n inject,\n Injector,\n NgZone,\n OnDestroy,\n ViewChild,\n ViewEncapsulation,\n DOCUMENT,\n} from '@angular/core';\nimport {Observable, of, Subject} from 'rxjs';\nimport {_animationsDisabled} from '../core';\nimport {MatSnackBarConfig} from './snack-bar-config';\n\nconst ENTER_ANIMATION = '_mat-snack-bar-enter';\nconst EXIT_ANIMATION = '_mat-snack-bar-exit';\n\n/**\n * Internal component that wraps user-provided snack bar content.\n * @docs-private\n */\n@Component({\n selector: 'mat-snack-bar-container',\n templateUrl: 'snack-bar-container.html',\n styleUrl: 'snack-bar-container.css',\n // In Ivy embedded views will be change detected from their declaration place, rather than\n // where they were stamped out. This means that we can't have the snack bar container be OnPush,\n // because it might cause snack bars that were opened from a template not to be out of date.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkPortalOutlet],\n host: {\n 'class': 'mdc-snackbar mat-mdc-snack-bar-container',\n '[class.mat-snack-bar-container-enter]': '_animationState === \"visible\"',\n '[class.mat-snack-bar-container-exit]': '_animationState === \"hidden\"',\n '[class.mat-snack-bar-container-animations-enabled]': '!_animationsDisabled',\n '(animationend)': 'onAnimationEnd($event.animationName)',\n '(animationcancel)': 'onAnimationEnd($event.animationName)',\n },\n})\nexport class MatSnackBarContainer extends BasePortalOutlet implements OnDestroy {\n private _ngZone = inject(NgZone);\n readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private _changeDetectorRef = inject(ChangeDetectorRef);\n private _platform = inject(Platform);\n protected _animationsDisabled = _animationsDisabled();\n snackBarConfig = inject(MatSnackBarConfig);\n\n private _document = inject(DOCUMENT);\n private _trackedModals = new Set<Element>();\n private _enterFallback: ReturnType<typeof setTimeout> | undefined;\n private _exitFallback: ReturnType<typeof setTimeout> | undefined;\n private _injector = inject(Injector);\n\n /** The number of milliseconds to wait before announcing the snack bar's content. */\n private readonly _announceDelay: number = 150;\n\n /** The timeout for announcing the snack bar's content. */\n private _announceTimeoutId: ReturnType<typeof setTimeout>;\n\n /** Whether the component has been destroyed. */\n private _destroyed = false;\n\n /** The portal outlet inside of this container into which the snack bar content will be loaded. */\n @ViewChild(CdkPortalOutlet, {static: true}) _portalOutlet: CdkPortalOutlet;\n\n /** Subject for notifying that the snack bar has announced to screen readers. */\n readonly _onAnnounce: Subject<void> = new Subject();\n\n /** Subject for notifying that the snack bar has exited from view. */\n readonly _onExit: Subject<void> = new Subject();\n\n /** Subject for notifying that the snack bar has finished entering the view. */\n readonly _onEnter: Subject<void> = new Subject();\n\n /** The state of the snack bar animations. */\n _animationState = 'void';\n\n /** aria-live value for the live region. */\n _live: AriaLivePoliteness;\n\n /**\n * Element that will have the `mdc-snackbar__label` class applied if the attached component\n * or template does not have it. This ensures that the appropriate structure, typography, and\n * color is applied to the attached view.\n */\n @ViewChild('label', {static: true}) _label: ElementRef;\n\n /**\n * Role of the live region. This is only for Firefox as there is a known issue where Firefox +\n * JAWS does not read out aria-live message.\n */\n _role?: 'status' | 'alert';\n\n /** Unique ID of the aria-live element. */\n readonly _liveElementId = inject(_IdGenerator).getId('mat-snack-bar-container-live-');\n\n constructor(...args: unknown[]);\n\n constructor() {\n super();\n const config = this.snackBarConfig;\n\n // Use aria-live rather than a live role like 'alert' or 'status'\n // because NVDA and JAWS have show inconsistent behavior with live roles.\n if (config.politeness === 'assertive' && !config.announcementMessage) {\n this._live = 'assertive';\n } else if (config.politeness === 'off') {\n this._live = 'off';\n } else {\n this._live = 'polite';\n }\n\n // Only set role for Firefox. Set role based on aria-live because setting role=\"alert\" implies\n // aria-live=\"assertive\" which may cause issues if aria-live is set to \"polite\" above.\n if (this._platform.FIREFOX) {\n if (this._live === 'polite') {\n this._role = 'status';\n }\n if (this._live === 'assertive') {\n this._role = 'alert';\n }\n }\n }\n\n /** Attach a component portal as content to this snack bar container. */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n this._assertNotAttached();\n const result = this._portalOutlet.attachComponentPortal(portal);\n this._afterPortalAttached();\n return result;\n }\n\n /** Attach a template portal as content to this snack bar container. */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n this._assertNotAttached();\n const result = this._portalOutlet.attachTemplatePortal(portal);\n this._afterPortalAttached();\n return result;\n }\n\n /**\n * Attaches a DOM portal to the snack bar container.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n override attachDomPortal = (portal: DomPortal) => {\n this._assertNotAttached();\n const result = this._portalOutlet.attachDomPortal(portal);\n this._afterPortalAttached();\n return result;\n };\n\n /** Handle end of animations, updating the state of the snackbar. */\n onAnimationEnd(animationName: string) {\n if (animationName === EXIT_ANIMATION) {\n this._completeExit();\n } else if (animationName === ENTER_ANIMATION) {\n clearTimeout(this._enterFallback);\n this._ngZone.run(() => {\n this._onEnter.next();\n this._onEnter.complete();\n });\n }\n }\n\n /** Begin animation of snack bar entrance into view. */\n enter(): void {\n if (!this._destroyed) {\n this._animationState = 'visible';\n // _animationState lives in host bindings and `detectChanges` does not refresh host bindings\n // so we have to call `markForCheck` to ensure the host view is refreshed eventually.\n this._changeDetectorRef.markForCheck();\n this._changeDetectorRef.detectChanges();\n this._screenReaderAnnounce();\n\n if (this._animationsDisabled) {\n afterNextRender(\n () => {\n this._ngZone.run(() => queueMicrotask(() => this.onAnimationEnd(ENTER_ANIMATION)));\n },\n {injector: this._injector},\n );\n } else {\n clearTimeout(this._enterFallback);\n this._enterFallback = setTimeout(() => {\n // The snack bar will stay invisible if it fails to animate. Add a fallback class so it\n // becomes visible. This can happen in some apps that do `* {animation: none !important}`.\n this._elementRef.nativeElement.classList.add('mat-snack-bar-fallback-visible');\n this.onAnimationEnd(ENTER_ANIMATION);\n }, 200);\n }\n }\n }\n\n /** Begin animation of the snack bar exiting from view. */\n exit(): Observable<void> {\n if (this._destroyed) {\n return of(undefined);\n }\n\n // It's common for snack bars to be opened by random outside calls like HTTP requests or\n // errors. Run inside the NgZone to ensure that it functions correctly.\n this._ngZone.run(() => {\n // Note: this one transitions to `hidden`, rather than `void`, in order to handle the case\n // where multiple snack bars are opened in quick succession (e.g. two consecutive calls to\n // `MatSnackBar.open`).\n this._animationState = 'hidden';\n this._changeDetectorRef.markForCheck();\n\n // Mark this element with an 'exit' attribute to indicate that the snackbar has\n // been dismissed and will soon be removed from the DOM. This is used by the snackbar\n // test harness.\n this._elementRef.nativeElement.setAttribute('mat-exit', '');\n\n // If the snack bar hasn't been announced by the time it exits it wouldn't have been open\n // long enough to visually read it either, so clear the timeout for announcing.\n clearTimeout(this._announceTimeoutId);\n\n if (this._animationsDisabled) {\n afterNextRender(\n () => {\n this._ngZone.run(() => queueMicrotask(() => this.onAnimationEnd(EXIT_ANIMATION)));\n },\n {injector: this._injector},\n );\n } else {\n clearTimeout(this._exitFallback);\n this._exitFallback = setTimeout(() => this.onAnimationEnd(EXIT_ANIMATION), 200);\n }\n });\n\n return this._onExit;\n }\n\n /** Makes sure the exit callbacks have been invoked when the element is destroyed. */\n ngOnDestroy() {\n this._destroyed = true;\n this._clearFromModals();\n this._completeExit();\n }\n\n private _completeExit() {\n clearTimeout(this._exitFallback);\n queueMicrotask(() => {\n this._onExit.next();\n this._onExit.complete();\n });\n }\n\n /**\n * Called after the portal contents have been attached. Can be\n * used to modify the DOM once it's guaranteed to be in place.\n */\n private _afterPortalAttached() {\n const element: HTMLElement = this._elementRef.nativeElement;\n const panelClasses = this.snackBarConfig.panelClass;\n\n if (panelClasses) {\n if (Array.isArray(panelClasses)) {\n // Note that we can't use a spread here, because IE doesn't support multiple arguments.\n panelClasses.forEach(cssClass => element.classList.add(cssClass));\n } else {\n element.classList.add(panelClasses);\n }\n }\n\n this._exposeToModals();\n\n // Check to see if the attached component or template uses the MDC template structure,\n // specifically the MDC label. If not, the container should apply the MDC label class to this\n // component's label container, which will apply MDC's label styles to the attached view.\n const label = this._label.nativeElement;\n const labelClass = 'mdc-snackbar__label';\n label.classList.toggle(labelClass, !label.querySelector(`.${labelClass}`));\n }\n\n /**\n * Some browsers won't expose the accessibility node of the live element if there is an\n * `aria-modal` and the live element is outside of it. This method works around the issue by\n * pointing the `aria-owns` of all modals to the live element.\n */\n private _exposeToModals() {\n // TODO(http://github.com/angular/components/issues/26853): consider de-duplicating this with the\n // `LiveAnnouncer` and any other usages.\n //\n // Note that the selector here is limited to CDK overlays at the moment in order to reduce the\n // section of the DOM we need to look through. This should cover all the cases we support, but\n // the selector can be expanded if it turns out to be too narrow.\n const id = this._liveElementId;\n const modals = this._document.querySelectorAll(\n 'body > .cdk-overlay-container [aria-modal=\"true\"]',\n );\n\n for (let i = 0; i < modals.length; i++) {\n const modal = modals[i];\n const ariaOwns = modal.getAttribute('aria-owns');\n this._trackedModals.add(modal);\n\n if (!ariaOwns) {\n modal.setAttribute('aria-owns', id);\n } else if (ariaOwns.indexOf(id) === -1) {\n modal.setAttribute('aria-owns', ariaOwns + ' ' + id);\n }\n }\n }\n\n /** Clears the references to the live element from any modals it was added to. */\n private _clearFromModals() {\n this._trackedModals.forEach(modal => {\n const ariaOwns = modal.getAttribute('aria-owns');\n\n if (ariaOwns) {\n const newValue = ariaOwns.replace(this._liveElementId, '').trim();\n\n if (newValue.length > 0) {\n modal.setAttribute('aria-owns', newValue);\n } else {\n modal.removeAttribute('aria-owns');\n }\n }\n });\n this._trackedModals.clear();\n }\n\n /** Asserts that no content is already attached to the container. */\n private _assertNotAttached() {\n if (this._portalOutlet.hasAttached() && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Attempting to attach snack bar content after content is already attached');\n }\n }\n\n /**\n * Starts a timeout to move the snack bar content to the live region so screen readers will\n * announce it.\n */\n private _screenReaderAnnounce() {\n if (this._announceTimeoutId) {\n return;\n }\n\n this._ngZone.runOutsideAngular(() => {\n this._announceTimeoutId = setTimeout(() => {\n if (this._destroyed) {\n return;\n }\n\n const element = this._elementRef.nativeElement;\n const inertElement = element.querySelector('[aria-hidden]');\n const liveElement = element.querySelector('[aria-live]');\n\n if (inertElement && liveElement) {\n // If an element in the snack bar content is focused before being moved\n // track it and restore focus after moving to the live region.\n let focusedElement: HTMLElement | null = null;\n if (\n this._platform.isBrowser &&\n document.activeElement instanceof HTMLElement &&\n inertElement.contains(document.activeElement)\n ) {\n focusedElement = document.activeElement;\n }\n\n inertElement.removeAttribute('aria-hidden');\n liveElement.appendChild(inertElement);\n focusedElement?.focus();\n\n this._onAnnounce.next();\n this._onAnnounce.complete();\n }\n }, this._announceDelay);\n });\n }\n}\n","<div class=\"mdc-snackbar__surface mat-mdc-snackbar-surface\">\n <!--\n This outer label wrapper will have the class `mdc-snackbar__label` applied if\n the attached template/component does not contain it.\n -->\n <div class=\"mat-mdc-snack-bar-label\" #label>\n <!-- Initialy holds the snack bar content, will be empty after announcing to screen readers. -->\n <div aria-hidden=\"true\">\n <ng-template cdkPortalOutlet />\n </div>\n\n <!-- Will receive the snack bar content from the non-live div, move will happen a short delay after opening -->\n <div [attr.aria-live]=\"_live\" [attr.role]=\"_role\" [attr.id]=\"_liveElementId\"></div>\n </div>\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 {LiveAnnouncer} from '@angular/cdk/a11y';\nimport {BreakpointObserver, Breakpoints} from '@angular/cdk/layout';\nimport {\n ComponentType,\n createGlobalPositionStrategy,\n createOverlayRef,\n OverlayConfig,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport {\n ComponentRef,\n EmbeddedViewRef,\n Injectable,\n InjectionToken,\n Injector,\n OnDestroy,\n TemplateRef,\n inject,\n} from '@angular/core';\nimport {SimpleSnackBar, TextOnlySnackBar} from './simple-snack-bar';\nimport {MatSnackBarContainer} from './snack-bar-container';\nimport {MAT_SNACK_BAR_DATA, MatSnackBarConfig} from './snack-bar-config';\nimport {MatSnackBarRef} from './snack-bar-ref';\nimport {ComponentPortal, TemplatePortal} from '@angular/cdk/portal';\nimport {takeUntil} from 'rxjs/operators';\nimport {_animationsDisabled} from '../core';\n\n/** Injection token that can be used to specify default snack bar. */\nexport const MAT_SNACK_BAR_DEFAULT_OPTIONS = new InjectionToken<MatSnackBarConfig>(\n 'mat-snack-bar-default-options',\n {\n providedIn: 'root',\n factory: () => new MatSnackBarConfig(),\n },\n);\n\n/**\n * Service to dispatch Material Design snack bar messages.\n */\n@Injectable({providedIn: 'root'})\nexport class MatSnackBar implements OnDestroy {\n private _live = inject(LiveAnnouncer);\n private _injector = inject(Injector);\n private _breakpointObserver = inject(BreakpointObserver);\n private _parentSnackBar = inject(MatSnackBar, {optional: true, skipSelf: true});\n private _defaultConfig = inject<MatSnackBarConfig>(MAT_SNACK_BAR_DEFAULT_OPTIONS);\n private _animationsDisabled = _animationsDisabled();\n\n /**\n * Reference to the current snack bar in the view *at this level* (in the Angular injector tree).\n * If there is a parent snack-bar service, all operations should delegate to that parent\n * via `_openedSnackBarRef`.\n */\n private _snackBarRefAtThisLevel: MatSnackBarRef<any> | null = null;\n\n /** The component that should be rendered as the snack bar's simple component. */\n simpleSnackBarComponent = SimpleSnackBar;\n\n /** The container component that attaches the provided template or component. */\n snackBarContainerComponent = MatSnackBarContainer;\n\n /** The CSS class to apply for handset mode. */\n handsetCssClass = 'mat-mdc-snack-bar-handset';\n\n /** Reference to the currently opened snackbar at *any* level. */\n get _openedSnackBarRef(): MatSnackBarRef<any> | null {\n const parent = this._parentSnackBar;\n return parent ? parent._openedSnackBarRef : this._snackBarRefAtThisLevel;\n }\n\n set _openedSnackBarRef(value: MatSnackBarRef<any> | null) {\n if (this._parentSnackBar) {\n this._parentSnackBar._openedSnackBarRef = value;\n } else {\n this._snackBarRefAtThisLevel = value;\n }\n }\n\n constructor(...args: unknown[]);\n constructor() {}\n\n /**\n * Creates and dispatches a snack bar with a custom component for the content, removing any\n * currently opened snack bars.\n *\n * @param component Component to be instantiated.\n * @param config Extra configuration for the snack bar.\n */\n openFromComponent<T, D = any>(\n component: ComponentType<T>,\n config?: MatSnackBarConfig<D>,\n ): MatSnackBarRef<T> {\n return this._attach(component, config) as MatSnackBarRef<T>;\n }\n\n /**\n * Creates and dispatches a snack bar with a custom template for the content, removing any\n * currently opened snack bars.\n *\n * @param template Template to be instantiated.\n * @param config Extra configuration for the snack bar.\n */\n openFromTemplate(\n template: TemplateRef<any>,\n config?: MatSnackBarConfig,\n ): MatSnackBarRef<EmbeddedViewRef<any>> {\n return this._attach(template, config);\n }\n\n /**\n * Opens a snackbar with a message and an optional action.\n * @param message The message to show in the snackbar.\n * @param action The label for the snackbar action.\n * @param config Additional configuration options for the snackbar.\n */\n open(\n message: string,\n action: string = '',\n config?: MatSnackBarConfig,\n ): MatSnackBarRef<TextOnlySnackBar> {\n const _config = {...this._defaultConfig, ...config};\n\n // Since the user doesn't have access to the component, we can\n // override the data to pass in our own message and action.\n _config.data = {message, action};\n\n // Since the snack bar has `role=\"alert\"`, we don't\n // want to announce the same message twice.\n if (_config.announcementMessage === message) {\n _config.announcementMessage = undefined;\n }\n\n return this.openFromComponent(this.simpleSnackBarComponent, _config);\n }\n\n /**\n * Dismisses the currently-visible snack bar.\n */\n dismiss(): void {\n if (this._openedSnackBarRef) {\n this._openedSnackBarRef.dismiss();\n }\n }\n\n ngOnDestroy() {\n // Only dismiss the snack bar at the current level on destroy.\n if (this._snackBarRefAtThisLevel) {\n this._snackBarRefAtThisLevel.dismiss();\n }\n }\n\n /**\n * Attaches the snack bar container component to the overlay.\n */\n private _attachSnackBarContainer(\n overlayRef: OverlayRef,\n config: MatSnackBarConfig,\n ): MatSnackBarContainer {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = Injector.create({\n parent: userInjector || this._injector,\n providers: [{provide: MatSnackBarConfig, useValue: config}],\n });\n\n const containerPortal = new ComponentPortal(\n this.snackBarContainerComponent,\n config.viewContainerRef,\n injector,\n );\n const containerRef: ComponentRef<MatSnackBarContainer> = overlayRef.attach(containerPortal);\n containerRef.instance.snackBarConfig = config;\n return containerRef.instance;\n }\n\n /**\n * Places a new component or a template as the content of the snack bar container.\n */\n private _attach<T>(\n content: ComponentType<T> | TemplateRef<T>,\n userConfig?: MatSnackBarConfig,\n ): MatSnackBarRef<T | EmbeddedViewRef<any>> {\n const config = {...new MatSnackBarConfig(), ...this._defaultConfig, ...userConfig};\n const overlayRef = this._createOverlay(config);\n const container = this._attachSnackBarContainer(overlayRef, config);\n const snackBarRef = new MatSnackBarRef<T | EmbeddedViewRef<any>>(container, overlayRef);\n\n if (content instanceof TemplateRef) {\n const portal = new TemplatePortal(content, null!, {\n $implicit: config.data,\n snackBarRef,\n } as any);\n\n snackBarRef.instance = container.attachTemplatePortal(portal);\n } else {\n const injector = this._createInjector(config, snackBarRef);\n const portal = new ComponentPortal(content, undefined, injector);\n const contentRef = container.attachComponentPortal<T>(portal);\n\n // We can't pass this via the injector, because the injector is created earlier.\n snackBarRef.instance = contentRef.instance;\n }\n\n // Subscribe to the breakpoint observer and attach the mat-snack-bar-handset class as\n // appropriate. This class is applied to the overlay element because the overlay must expand to\n // fill the width of the screen for full width snackbars.\n this._breakpointObserver\n .observe(Breakpoints.HandsetPortrait)\n .pipe(takeUntil(overlayRef.detachments()))\n .subscribe(state => {\n overlayRef.overlayElement.classList.toggle(this.handsetCssClass, state.matches);\n });\n\n if (config.announcementMessage) {\n // Wait until the snack bar contents have been announced then deliver this message.\n container._onAnnounce.subscribe(() => {\n this._live.announce(config.announcementMessage!, config.politeness);\n });\n }\n\n this._animateSnackBar(snackBarRef, config);\n this._openedSnackBarRef = snackBarRef;\n return this._openedSnackBarRef;\n }\n\n /** Animates the old snack bar out and the new one in. */\n private _animateSnackBar(snackBarRef: MatSnackBarRef<any>, config: MatSnackBarConfig) {\n // When the snackbar is dismissed, clear the reference to it.\n snackBarRef.afterDismissed().subscribe(() => {\n // Clear the snackbar ref if it hasn't already been replaced by a newer snackbar.\n if (this._openedSnackBarRef == snackBarRef) {\n this._openedSnackBarRef = null;\n }\n\n if (config.announcementMessage) {\n this._live.clear();\n }\n });\n\n // If a dismiss timeout is provided, set up dismiss based on after the snackbar is opened.\n if (config.duration && config.duration > 0) {\n snackBarRef.afterOpened().subscribe(() => snackBarRef._dismissAfter(config.duration!));\n }\n\n if (this._openedSnackBarRef) {\n // If a snack bar is already in view, dismiss it and enter the\n // new snack bar after exit animation is complete.\n this._openedSnackBarRef.afterDismissed().subscribe(() => {\n snackBarRef.containerInstance.enter();\n });\n this._openedSnackBarRef.dismiss();\n } else {\n // If no snack bar is in view, enter the new snack bar.\n snackBarRef.containerInstance.enter();\n }\n }\n\n /**\n * Creates a new overlay and places it in the correct location.\n * @param config The user-specified snack bar config.\n */\n private _createOverlay(config: MatSnackBarConfig): OverlayRef {\n const overlayConfig = new OverlayConfig();\n overlayConfig.direction = config.direction;\n\n const positionStrategy = createGlobalPositionStrategy(this._injector);\n // Set horizontal position.\n const isRtl = config.direction === 'rtl';\n const isLeft =\n config.horizontalPosition === 'left' ||\n (config.horizontalPosition === 'start' && !isRtl) ||\n (config.horizontalPosition === 'end' && isRtl);\n const isRight = !isLeft && config.horizontalPosition !== 'center';\n if (isLeft) {\n positionStrategy.left('0');\n } else if (isRight) {\n positionStrategy.right('0');\n } else {\n positionStrategy.centerHorizontally();\n }\n // Set horizontal position.\n if (config.verticalPosition === 'top') {\n positionStrategy.top('0');\n } else {\n positionStrategy.bottom('0');\n }\n\n overlayConfig.positionStrategy = positionStrategy;\n overlayConfig.disableAnimations = this._animationsDisabled;\n return createOverlayRef(this._injector, overlayConfig);\n }\n\n /**\n * Creates an injector to be used inside of a snack bar component.\n * @param config Config that was used to create the snack bar.\n * @param snackBarRef Reference to the snack bar.\n */\n private _createInjector<T>(config: MatSnackBarConfig, snackBarRef: MatSnackBarRef<T>): Injector {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n\n return Injector.create({\n parent: userInjector || this._injector,\n providers: [\n {provide: MatSnackBarRef, useValue: snackBarRef},\n {provide: MAT_SNACK_BAR_DATA, useValue: config.data},\n ],\n });\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {OverlayModule} from '@angular/cdk/overlay';\nimport {PortalModule} from '@angular/cdk/portal';\nimport {NgModule} from '@angular/core';\nimport {BidiModule} from '@angular/cdk/bidi';\nimport {MatButtonModule} from '../button';\n\nimport {SimpleSnackBar} from './simple-snack-bar';\nimport {MatSnackBarContainer} from './snack-bar-container';\nimport {MatSnackBarAction, MatSnackBarActions, MatSnackBarLabel} from './snack-bar-content';\nimport {MatSnackBar} from './snack-bar';\n\nconst DIRECTIVES = [MatSnackBarContainer, MatSnackBarLabel, MatSnackBarActions, MatSnackBarAction];\n\n@NgModule({\n imports: [OverlayModule, PortalModule, MatButtonModule, SimpleSnackBar, ...DIRECTIVES],\n exports: [BidiModule, ...DIRECTIVES],\n providers: [MatSnackBar],\n})\nexport class MatSnackBarModule {}\n"],"names":["MAX_TIMEOUT","Math","pow","MatSnackBarRef","_overlayRef","instance","containerInstance","_afterDismissed","Subject","_afterOpened","_onAction","_durationTimeoutId","_dismissedByAction","constructor","_onExit","subscribe","_finishDismiss","dismiss","closed","exit","clearTimeout","dismissWithAction","next","complete","closeWithAction","_dismissAfter","duration","setTimeout","min","_open","dispose","dismissedByAction","afterDismissed","afterOpened","_onEnter","onAction","MAT_SNACK_BAR_DATA","InjectionToken","MatSnackBarConfig","politeness","announcementMessage","viewContainerRef","panelClass","direction","data","horizontalPosition","verticalPosition","MatSnackBarLabel","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","host","classAttribute","ngImport","decorators","args","MatSnackBarActions","MatSnackBarAction","SimpleSnackBar","snackBarRef","inject","action","hasAction","Component","exportAs","template","styles","dependencies","kind","type","MatButton","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","ENTER_ANIMATION","EXIT_ANIMATION","MatSnackBarContainer","BasePortalOutlet","_ngZone","NgZone","_elementRef","ElementRef","_changeDetectorRef","ChangeDetectorRef","_platform","Platform","_animationsDisabled","snackBarConfig","_document","DOCUMENT","_trackedModals","Set","_enterFallback","_exitFallback","_injector","Injector","_announceDelay","_announceTimeoutId","_destroyed","_portalOutlet","_onAnnounce","_animationState","_live","_label","_role","_liveElementId","_IdGenerator","getId","config","FIREFOX","attachComponentPortal","portal","_assertNotAttached","result","_afterPortalAttached","attachTemplatePortal","attachDomPortal","onAnimationEnd","animationName","_completeExit","run","enter","markForCheck","detectChanges","_screenReaderAnnounce","afterNextRender","queueMicrotask","injector","nativeElement","classList","add","of","undefined","setAttribute","ngOnDestroy","_clearFromModals","element","panelClasses","Array","isArray","forEach","cssClass","_exposeToModals","label","labelClass","toggle","querySelector","id","modals","querySelectorAll","i","length","modal","ariaOwns","getAttribute","indexOf","newValue","replace","trim","removeAttribute","clear","hasAttached","ngDevMode","Error","runOutsideAngular","inertElement","liveElement","focusedElement","isBrowser","document","activeElement","HTMLElement","contains","appendChild","focus","ɵcmp","ɵɵngDeclareComponent","minVersion","version","listeners","properties","viewQueries","propertyName","first","predicate","CdkPortalOutlet","descendants","static","usesInheritance","inputs","outputs","Default","imports","ViewChild","MAT_SNACK_BAR_DEFAULT_OPTIONS","providedIn","factory","MatSnackBar","LiveAnnouncer","_breakpointObserver","BreakpointObserver","_parentSnackBar","optional","skipSelf","_defaultConfig","_snackBarRefAtThisLevel","simpleSnackBarComponent","snackBarContainerComponent","handsetCssClass","_openedSnackBarRef","parent","value","openFromComponent","component","_attach","openFromTemplate","open","message","_config","_attachSnackBarContainer","overlayRef","userInjector","create","providers","provide","useValue","containerPortal","ComponentPortal","containerRef","attach","content","userConfig","_createOverlay","container","TemplateRef","TemplatePortal","$implicit","_createInjector","contentRef","observe","Breakpoints","HandsetPortrait","pipe","takeUntil","detachments","state","overlayElement","matches","announce","_animateSnackBar","overlayConfig","OverlayConfig","positionStrategy","createGlobalPositionStrategy","isRtl","isLeft","isRight","left","right","centerHorizontally","top","bottom","disableAnimations","createOverlayRef","Injectable","ɵprov","ɵɵngDeclareInjectable","DIRECTIVES","MatSnackBarModule","NgModule","OverlayModule","PortalModule","MatButtonModule","exports","BidiModule","ɵinj","ɵɵngDeclareInjector"],"mappings":"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"}
package/fesm2022/sort.mjs CHANGED
@@ -97,7 +97,7 @@ class MatSort {
97
97
  }
98
98
  static ɵfac = i0.ɵɵngDeclareFactory({
99
99
  minVersion: "12.0.0",
100
- version: "20.2.0-next.2",
100
+ version: "21.0.0",
101
101
  ngImport: i0,
102
102
  type: MatSort,
103
103
  deps: [{
@@ -108,7 +108,7 @@ class MatSort {
108
108
  });
109
109
  static ɵdir = i0.ɵɵngDeclareDirective({
110
110
  minVersion: "16.1.0",
111
- version: "20.2.0-next.2",
111
+ version: "21.0.0",
112
112
  type: MatSort,
113
113
  isStandalone: true,
114
114
  selector: "[matSort]",
@@ -132,7 +132,7 @@ class MatSort {
132
132
  }
133
133
  i0.ɵɵngDeclareClassMetadata({
134
134
  minVersion: "12.0.0",
135
- version: "20.2.0-next.2",
135
+ version: "21.0.0",
136
136
  ngImport: i0,
137
137
  type: MatSort,
138
138
  decorators: [{
@@ -202,7 +202,7 @@ class MatSortHeaderIntl {
202
202
  changes = new Subject();
203
203
  static ɵfac = i0.ɵɵngDeclareFactory({
204
204
  minVersion: "12.0.0",
205
- version: "20.2.0-next.2",
205
+ version: "21.0.0",
206
206
  ngImport: i0,
207
207
  type: MatSortHeaderIntl,
208
208
  deps: [],
@@ -210,7 +210,7 @@ class MatSortHeaderIntl {
210
210
  });
211
211
  static ɵprov = i0.ɵɵngDeclareInjectable({
212
212
  minVersion: "12.0.0",
213
- version: "20.2.0-next.2",
213
+ version: "21.0.0",
214
214
  ngImport: i0,
215
215
  type: MatSortHeaderIntl,
216
216
  providedIn: 'root'
@@ -218,7 +218,7 @@ class MatSortHeaderIntl {
218
218
  }
219
219
  i0.ɵɵngDeclareClassMetadata({
220
220
  minVersion: "12.0.0",
221
- version: "20.2.0-next.2",
221
+ version: "21.0.0",
222
222
  ngImport: i0,
223
223
  type: MatSortHeaderIntl,
224
224
  decorators: [{
@@ -333,7 +333,7 @@ class MatSortHeader {
333
333
  }
334
334
  static ɵfac = i0.ɵɵngDeclareFactory({
335
335
  minVersion: "12.0.0",
336
- version: "20.2.0-next.2",
336
+ version: "21.0.0",
337
337
  ngImport: i0,
338
338
  type: MatSortHeader,
339
339
  deps: [],
@@ -341,7 +341,7 @@ class MatSortHeader {
341
341
  });
342
342
  static ɵcmp = i0.ɵɵngDeclareComponent({
343
343
  minVersion: "17.0.0",
344
- version: "20.2.0-next.2",
344
+ version: "21.0.0",
345
345
  type: MatSortHeader,
346
346
  isStandalone: true,
347
347
  selector: "[mat-sort-header]",
@@ -375,7 +375,7 @@ class MatSortHeader {
375
375
  }
376
376
  i0.ɵɵngDeclareClassMetadata({
377
377
  minVersion: "12.0.0",
378
- version: "20.2.0-next.2",
378
+ version: "21.0.0",
379
379
  ngImport: i0,
380
380
  type: MatSortHeader,
381
381
  decorators: [{
@@ -430,7 +430,7 @@ i0.ɵɵngDeclareClassMetadata({
430
430
  class MatSortModule {
431
431
  static ɵfac = i0.ɵɵngDeclareFactory({
432
432
  minVersion: "12.0.0",
433
- version: "20.2.0-next.2",
433
+ version: "21.0.0",
434
434
  ngImport: i0,
435
435
  type: MatSortModule,
436
436
  deps: [],
@@ -438,7 +438,7 @@ class MatSortModule {
438
438
  });
439
439
  static ɵmod = i0.ɵɵngDeclareNgModule({
440
440
  minVersion: "14.0.0",
441
- version: "20.2.0-next.2",
441
+ version: "21.0.0",
442
442
  ngImport: i0,
443
443
  type: MatSortModule,
444
444
  imports: [MatSort, MatSortHeader],
@@ -446,7 +446,7 @@ class MatSortModule {
446
446
  });
447
447
  static ɵinj = i0.ɵɵngDeclareInjector({
448
448
  minVersion: "12.0.0",
449
- version: "20.2.0-next.2",
449
+ version: "21.0.0",
450
450
  ngImport: i0,
451
451
  type: MatSortModule,
452
452
  imports: [BidiModule]
@@ -454,7 +454,7 @@ class MatSortModule {
454
454
  }
455
455
  i0.ɵɵngDeclareClassMetadata({
456
456
  minVersion: "12.0.0",
457
- version: "20.2.0-next.2",
457
+ version: "21.0.0",
458
458
  ngImport: i0,
459
459
  type: MatSortModule,
460
460
  decorators: [{