@angular/material 22.0.0-rc.0 → 22.0.0-rc.1

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 (103) hide show
  1. package/fesm2022/_error-options-chunk.mjs +6 -6
  2. package/fesm2022/_form-field-chunk.mjs +30 -30
  3. package/fesm2022/_form-field-chunk.mjs.map +1 -1
  4. package/fesm2022/_icon-button-chunk.mjs +6 -6
  5. package/fesm2022/_icon-button-chunk.mjs.map +1 -1
  6. package/fesm2022/_icon-registry-chunk.mjs +3 -3
  7. package/fesm2022/_icon-registry-chunk.mjs.map +1 -1
  8. package/fesm2022/_internal-form-field-chunk.mjs +3 -3
  9. package/fesm2022/_internal-form-field-chunk.mjs.map +1 -1
  10. package/fesm2022/_line-chunk.mjs +7 -7
  11. package/fesm2022/_line-chunk.mjs.map +1 -1
  12. package/fesm2022/_option-chunk.mjs +6 -6
  13. package/fesm2022/_option-chunk.mjs.map +1 -1
  14. package/fesm2022/_option-module-chunk.mjs +4 -4
  15. package/fesm2022/_option-module-chunk.mjs.map +1 -1
  16. package/fesm2022/_pseudo-checkbox-chunk.mjs +3 -3
  17. package/fesm2022/_pseudo-checkbox-chunk.mjs.map +1 -1
  18. package/fesm2022/_pseudo-checkbox-module-chunk.mjs +4 -4
  19. package/fesm2022/_pseudo-checkbox-module-chunk.mjs.map +1 -1
  20. package/fesm2022/_ripple-chunk.mjs +6 -6
  21. package/fesm2022/_ripple-chunk.mjs.map +1 -1
  22. package/fesm2022/_ripple-loader-chunk.mjs +3 -3
  23. package/fesm2022/_ripple-module-chunk.mjs +4 -4
  24. package/fesm2022/_ripple-module-chunk.mjs.map +1 -1
  25. package/fesm2022/_structural-styles-chunk.mjs +3 -3
  26. package/fesm2022/_structural-styles-chunk.mjs.map +1 -1
  27. package/fesm2022/_tooltip-chunk.mjs +6 -6
  28. package/fesm2022/_tooltip-chunk.mjs.map +1 -1
  29. package/fesm2022/autocomplete.mjs +13 -13
  30. package/fesm2022/autocomplete.mjs.map +1 -1
  31. package/fesm2022/badge.mjs +10 -10
  32. package/fesm2022/badge.mjs.map +1 -1
  33. package/fesm2022/bottom-sheet.mjs +10 -10
  34. package/fesm2022/button-toggle.mjs +10 -10
  35. package/fesm2022/button-toggle.mjs.map +1 -1
  36. package/fesm2022/button.mjs +13 -13
  37. package/fesm2022/button.mjs.map +1 -1
  38. package/fesm2022/card.mjs +46 -46
  39. package/fesm2022/card.mjs.map +1 -1
  40. package/fesm2022/checkbox.mjs +7 -7
  41. package/fesm2022/checkbox.mjs.map +1 -1
  42. package/fesm2022/chips.mjs +46 -46
  43. package/fesm2022/chips.mjs.map +1 -1
  44. package/fesm2022/core.mjs +12 -12
  45. package/fesm2022/core.mjs.map +1 -1
  46. package/fesm2022/datepicker.mjs +84 -84
  47. package/fesm2022/datepicker.mjs.map +1 -1
  48. package/fesm2022/dialog.mjs +25 -25
  49. package/fesm2022/dialog.mjs.map +1 -1
  50. package/fesm2022/divider.mjs +7 -7
  51. package/fesm2022/divider.mjs.map +1 -1
  52. package/fesm2022/expansion.mjs +25 -25
  53. package/fesm2022/expansion.mjs.map +1 -1
  54. package/fesm2022/form-field.mjs +4 -4
  55. package/fesm2022/form-field.mjs.map +1 -1
  56. package/fesm2022/grid-list.mjs +22 -22
  57. package/fesm2022/grid-list.mjs.map +1 -1
  58. package/fesm2022/icon-testing.mjs +7 -7
  59. package/fesm2022/icon.mjs +7 -7
  60. package/fesm2022/icon.mjs.map +1 -1
  61. package/fesm2022/input.mjs +7 -7
  62. package/fesm2022/input.mjs.map +1 -1
  63. package/fesm2022/list.mjs +49 -49
  64. package/fesm2022/list.mjs.map +1 -1
  65. package/fesm2022/menu.mjs +22 -22
  66. package/fesm2022/menu.mjs.map +1 -1
  67. package/fesm2022/paginator.mjs +10 -10
  68. package/fesm2022/paginator.mjs.map +1 -1
  69. package/fesm2022/progress-bar.mjs +7 -7
  70. package/fesm2022/progress-bar.mjs.map +1 -1
  71. package/fesm2022/progress-spinner.mjs +7 -7
  72. package/fesm2022/progress-spinner.mjs.map +1 -1
  73. package/fesm2022/radio.mjs +10 -10
  74. package/fesm2022/radio.mjs.map +1 -1
  75. package/fesm2022/select.mjs +10 -10
  76. package/fesm2022/select.mjs.map +1 -1
  77. package/fesm2022/sidenav.mjs +38 -34
  78. package/fesm2022/sidenav.mjs.map +1 -1
  79. package/fesm2022/slide-toggle.mjs +7 -7
  80. package/fesm2022/slide-toggle.mjs.map +1 -1
  81. package/fesm2022/slider.mjs +16 -16
  82. package/fesm2022/slider.mjs.map +1 -1
  83. package/fesm2022/snack-bar.mjs +22 -22
  84. package/fesm2022/snack-bar.mjs.map +1 -1
  85. package/fesm2022/sort.mjs +13 -13
  86. package/fesm2022/sort.mjs.map +1 -1
  87. package/fesm2022/stepper.mjs +31 -31
  88. package/fesm2022/stepper.mjs.map +1 -1
  89. package/fesm2022/table.mjs +55 -55
  90. package/fesm2022/table.mjs.map +1 -1
  91. package/fesm2022/tabs.mjs +43 -43
  92. package/fesm2022/tabs.mjs.map +1 -1
  93. package/fesm2022/timepicker.mjs +13 -13
  94. package/fesm2022/timepicker.mjs.map +1 -1
  95. package/fesm2022/toolbar.mjs +10 -10
  96. package/fesm2022/toolbar.mjs.map +1 -1
  97. package/fesm2022/tooltip.mjs +4 -4
  98. package/fesm2022/tooltip.mjs.map +1 -1
  99. package/fesm2022/tree.mjs +25 -25
  100. package/fesm2022/tree.mjs.map +1 -1
  101. package/package.json +2 -2
  102. package/schematics/ng-add/index.js +1 -1
  103. package/types/sidenav.d.ts +5 -4
@@ -1 +1 @@
1
- {"version":3,"file":"badge.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/badge/badge.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/badge/badge-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 {_IdGenerator, AriaDescriber, InteractivityChecker} from '@angular/cdk/a11y';\n\nimport {\n booleanAttribute,\n Component,\n Directive,\n ElementRef,\n inject,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Renderer2,\n ViewEncapsulation,\n DOCUMENT,\n AfterViewInit,\n} from '@angular/core';\nimport {_animationsDisabled, ThemePalette} from '../core';\nimport {_CdkPrivateStyleLoader, _VisuallyHiddenLoader} from '@angular/cdk/private';\n\n/** Allowed position options for matBadgePosition */\nexport type MatBadgePosition =\n | 'above after'\n | 'above before'\n | 'below before'\n | 'below after'\n | 'before'\n | 'after'\n | 'above'\n | 'below';\n\n/** Allowed size options for matBadgeSize */\nexport type MatBadgeSize = 'small' | 'medium' | 'large';\n\nconst BADGE_CONTENT_CLASS = 'mat-badge-content';\n\n/**\n * Component used to load the structural styles of the badge.\n * @docs-private\n */\n@Component({\n styleUrl: 'badge.css',\n encapsulation: ViewEncapsulation.None,\n template: '',\n})\nexport class _MatBadgeStyleLoader {}\n\n/** Directive to display a text badge. */\n@Directive({\n selector: '[matBadge]',\n host: {\n 'class': 'mat-badge',\n '[class.mat-badge-overlap]': 'overlap',\n '[class.mat-badge-above]': 'isAbove()',\n '[class.mat-badge-below]': '!isAbove()',\n '[class.mat-badge-before]': '!isAfter()',\n '[class.mat-badge-after]': 'isAfter()',\n '[class.mat-badge-small]': 'size === \"small\"',\n '[class.mat-badge-medium]': 'size === \"medium\"',\n '[class.mat-badge-large]': 'size === \"large\"',\n '[class.mat-badge-hidden]': 'hidden || !content',\n '[class.mat-badge-disabled]': 'disabled',\n },\n})\nexport class MatBadge implements OnInit, AfterViewInit, OnDestroy {\n private _ngZone = inject(NgZone);\n private _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private _ariaDescriber = inject(AriaDescriber);\n private _renderer = inject(Renderer2);\n private _animationsDisabled = _animationsDisabled();\n private _idGenerator = inject(_IdGenerator);\n\n /**\n * Theme color of the badge. This API is supported in M2 themes only, it\n * has no effect in M3 themes. For color customization in M3, see https://material.angular.dev/components/badge/styling.\n *\n * For information on applying color variants in M3, see\n * https://material.angular.dev/guide/material-2-theming#optional-add-backwards-compatibility-styles-for-color-variants\n */\n @Input('matBadgeColor')\n get color(): ThemePalette {\n return this._color;\n }\n set color(value: ThemePalette) {\n this._setColor(value);\n this._color = value;\n }\n private _color: ThemePalette = 'primary';\n\n /** Whether the badge should overlap its contents or not */\n @Input({alias: 'matBadgeOverlap', transform: booleanAttribute}) overlap: boolean = true;\n\n /** Whether the badge is disabled. */\n @Input({alias: 'matBadgeDisabled', transform: booleanAttribute}) disabled: boolean = false;\n\n /**\n * Position the badge should reside.\n * Accepts any combination of 'above'|'below' and 'before'|'after'\n */\n @Input('matBadgePosition') position: MatBadgePosition = 'above after';\n\n /** The content for the badge */\n @Input('matBadge')\n get content(): string | number | undefined | null {\n return this._content;\n }\n set content(newContent: string | number | undefined | null) {\n this._updateRenderedContent(newContent);\n }\n private _content: string | number | undefined | null;\n\n /** Message used to describe the decorated element via aria-describedby */\n @Input('matBadgeDescription')\n get description(): string {\n return this._description;\n }\n set description(newDescription: string) {\n this._updateDescription(newDescription);\n }\n private _description!: string;\n\n /** Size of the badge. Can be 'small', 'medium', or 'large'. */\n @Input('matBadgeSize') size: MatBadgeSize = 'medium';\n\n /** Whether the badge is hidden. */\n @Input({alias: 'matBadgeHidden', transform: booleanAttribute}) hidden: boolean = false;\n\n /** Visible badge element. */\n private _badgeElement: HTMLElement | undefined;\n\n /** Inline badge description. Used when the badge is applied to non-interactive host elements. */\n private _inlineBadgeDescription: HTMLElement | undefined;\n\n /** Whether the OnInit lifecycle hook has run yet */\n private _isInitialized = false;\n\n /** InteractivityChecker to determine if the badge host is focusable. */\n private _interactivityChecker = inject(InteractivityChecker);\n\n private _document = inject(DOCUMENT);\n\n constructor() {\n const styleLoader = inject(_CdkPrivateStyleLoader);\n styleLoader.load(_MatBadgeStyleLoader);\n styleLoader.load(_VisuallyHiddenLoader);\n\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const nativeElement = this._elementRef.nativeElement;\n\n if (nativeElement.nodeType !== nativeElement.ELEMENT_NODE) {\n throw Error('matBadge must be attached to an element node.');\n }\n }\n }\n\n /** Whether the badge is above the host or not */\n isAbove(): boolean {\n return this.position.indexOf('below') === -1;\n }\n\n /** Whether the badge is after the host or not */\n isAfter(): boolean {\n return this.position.indexOf('before') === -1;\n }\n\n /**\n * Gets the element into which the badge's content is being rendered. Undefined if the element\n * hasn't been created (e.g. if the badge doesn't have content).\n */\n getBadgeElement(): HTMLElement | undefined {\n return this._badgeElement;\n }\n\n ngOnInit() {\n // We may have server-side rendered badge that we need to clear.\n // We need to do this in ngOnInit because the full content of the component\n // on which the badge is attached won't necessarily be in the DOM until this point.\n this._clearExistingBadges();\n\n if (this.content && !this._badgeElement) {\n this._badgeElement = this._createBadgeElement();\n this._updateRenderedContent(this.content);\n }\n\n this._isInitialized = true;\n }\n\n ngAfterViewInit() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const nativeElement = this._elementRef.nativeElement;\n\n // Heads-up for developers to avoid putting matBadge on <mat-icon>\n // as it is aria-hidden by default docs mention this at:\n // https://material.angular.dev/components/badge/overview#accessibility\n if (\n nativeElement.tagName.toLowerCase() === 'mat-icon' &&\n nativeElement.getAttribute('aria-hidden') === 'true'\n ) {\n console.warn(\n `Detected a matBadge on an \"aria-hidden\" \"<mat-icon>\". ` +\n `Consider setting aria-hidden=\"false\" in order to surface the information assistive technology.` +\n `\\n${nativeElement.outerHTML}`,\n );\n }\n }\n }\n\n ngOnDestroy() {\n // ViewEngine only: when creating a badge through the Renderer, Angular remembers its index.\n // We have to destroy it ourselves, otherwise it'll be retained in memory.\n if (this._renderer.destroyNode) {\n this._renderer.destroyNode(this._badgeElement);\n this._inlineBadgeDescription?.remove();\n }\n\n this._ariaDescriber.removeDescription(this._elementRef.nativeElement, this.description);\n }\n\n /** Gets whether the badge's host element is interactive. */\n private _isHostInteractive(): boolean {\n // Ignore visibility since it requires an expensive style caluclation.\n return this._interactivityChecker.isFocusable(this._elementRef.nativeElement, {\n ignoreVisibility: true,\n });\n }\n\n /** Creates the badge element */\n private _createBadgeElement(): HTMLElement {\n const badgeElement = this._renderer.createElement('span');\n const activeClass = 'mat-badge-active';\n\n badgeElement.setAttribute('id', this._idGenerator.getId('mat-badge-content-'));\n\n // The badge is aria-hidden because we don't want it to appear in the page's navigation\n // flow. Instead, we use the badge to describe the decorated element with aria-describedby.\n badgeElement.setAttribute('aria-hidden', 'true');\n badgeElement.classList.add(BADGE_CONTENT_CLASS);\n\n if (this._animationsDisabled) {\n badgeElement.classList.add('_mat-animation-noopable');\n }\n\n this._elementRef.nativeElement.appendChild(badgeElement);\n\n // animate in after insertion\n if (typeof requestAnimationFrame === 'function' && !this._animationsDisabled) {\n this._ngZone.runOutsideAngular(() => {\n requestAnimationFrame(() => {\n badgeElement.classList.add(activeClass);\n });\n });\n } else {\n badgeElement.classList.add(activeClass);\n }\n\n return badgeElement;\n }\n\n /** Update the text content of the badge element in the DOM, creating the element if necessary. */\n private _updateRenderedContent(newContent: string | number | undefined | null): void {\n const newContentNormalized: string = `${newContent ?? ''}`.trim();\n\n // Don't create the badge element if the directive isn't initialized because we want to\n // append the badge element to the *end* of the host element's content for backwards\n // compatibility.\n if (this._isInitialized && newContentNormalized && !this._badgeElement) {\n this._badgeElement = this._createBadgeElement();\n }\n\n if (this._badgeElement) {\n this._badgeElement.textContent = newContentNormalized;\n }\n\n this._content = newContentNormalized;\n }\n\n /** Updates the host element's aria description via AriaDescriber. */\n private _updateDescription(newDescription: string): void {\n // Always start by removing the aria-describedby; we will add a new one if necessary.\n this._ariaDescriber.removeDescription(this._elementRef.nativeElement, this.description);\n\n // NOTE: We only check whether the host is interactive here, which happens during\n // when then badge content changes. It is possible that the host changes\n // interactivity status separate from one of these. However, watching the interactivity\n // status of the host would require a `MutationObserver`, which is likely more code + overhead\n // than it's worth; from usages inside Google, we see that the vats majority of badges either\n // never change interactivity, or also set `matBadgeHidden` based on the same condition.\n\n if (!newDescription || this._isHostInteractive()) {\n this._removeInlineDescription();\n }\n\n this._description = newDescription;\n\n // We don't add `aria-describedby` for non-interactive hosts elements because we\n // instead insert the description inline.\n if (this._isHostInteractive()) {\n this._ariaDescriber.describe(this._elementRef.nativeElement, newDescription);\n } else {\n this._updateInlineDescription();\n }\n }\n\n private _updateInlineDescription() {\n // Create the inline description element if it doesn't exist\n if (!this._inlineBadgeDescription) {\n this._inlineBadgeDescription = this._document.createElement('span');\n this._inlineBadgeDescription.classList.add('cdk-visually-hidden');\n }\n\n this._inlineBadgeDescription.textContent = this.description;\n this._badgeElement?.appendChild(this._inlineBadgeDescription);\n }\n\n private _removeInlineDescription() {\n this._inlineBadgeDescription?.remove();\n this._inlineBadgeDescription = undefined;\n }\n\n /** Adds css theme class given the color to the component host */\n private _setColor(colorPalette: ThemePalette) {\n const classList = this._elementRef.nativeElement.classList;\n classList.remove(`mat-badge-${this._color}`);\n if (colorPalette) {\n classList.add(`mat-badge-${colorPalette}`);\n }\n }\n\n /** Clears any existing badges that might be left over from server-side rendering. */\n private _clearExistingBadges() {\n // Only check direct children of this host element in order to avoid deleting\n // any badges that might exist in descendant elements.\n const badges = this._elementRef.nativeElement.querySelectorAll(\n `:scope > .${BADGE_CONTENT_CLASS}`,\n );\n for (const badgeElement of Array.from(badges)) {\n if (badgeElement !== this._badgeElement) {\n badgeElement.remove();\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 {NgModule} from '@angular/core';\nimport {A11yModule} from '@angular/cdk/a11y';\nimport {BidiModule} from '@angular/cdk/bidi';\nimport {MatBadge, _MatBadgeStyleLoader} from './badge';\n\n@NgModule({\n // Note: we _shouldn't_ have to import `_MatBadgeStyleLoader`,\n // but it seems to be necessary for tests.\n imports: [A11yModule, MatBadge, _MatBadgeStyleLoader],\n exports: [MatBadge, BidiModule],\n})\nexport class MatBadgeModule {}\n"],"names":["BADGE_CONTENT_CLASS","_MatBadgeStyleLoader","deps","target","i0","ɵɵFactoryTarget","Component","ɵcmp","ɵɵngDeclareComponent","minVersion","version","type","isInline","styles","encapsulation","ViewEncapsulation","None","decorators","template","MatBadge","_ngZone","inject","NgZone","_elementRef","ElementRef","_ariaDescriber","AriaDescriber","_renderer","Renderer2","_animationsDisabled","_idGenerator","_IdGenerator","color","_color","value","_setColor","overlap","disabled","position","content","_content","newContent","_updateRenderedContent","description","_description","newDescription","_updateDescription","size","hidden","_badgeElement","_inlineBadgeDescription","_isInitialized","_interactivityChecker","InteractivityChecker","_document","DOCUMENT","constructor","styleLoader","_CdkPrivateStyleLoader","load","_VisuallyHiddenLoader","ngDevMode","nativeElement","nodeType","ELEMENT_NODE","Error","isAbove","indexOf","isAfter","getBadgeElement","ngOnInit","_clearExistingBadges","_createBadgeElement","ngAfterViewInit","tagName","toLowerCase","getAttribute","console","warn","outerHTML","ngOnDestroy","destroyNode","remove","removeDescription","_isHostInteractive","isFocusable","ignoreVisibility","badgeElement","createElement","activeClass","setAttribute","getId","classList","add","appendChild","requestAnimationFrame","runOutsideAngular","newContentNormalized","trim","textContent","_removeInlineDescription","describe","_updateInlineDescription","undefined","colorPalette","badges","querySelectorAll","Array","from","Directive","ɵdir","ɵɵngDeclareDirective","isStandalone","selector","inputs","booleanAttribute","host","properties","classAttribute","ngImport","args","Input","alias","transform","MatBadgeModule","NgModule","imports","A11yModule","exports","BidiModule"],"mappings":"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"}
1
+ {"version":3,"file":"badge.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/badge/badge.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/badge/badge-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 {_IdGenerator, AriaDescriber, InteractivityChecker} from '@angular/cdk/a11y';\n\nimport {\n booleanAttribute,\n Component,\n Directive,\n ElementRef,\n inject,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Renderer2,\n ViewEncapsulation,\n DOCUMENT,\n AfterViewInit,\n} from '@angular/core';\nimport {_animationsDisabled, ThemePalette} from '../core';\nimport {_CdkPrivateStyleLoader, _VisuallyHiddenLoader} from '@angular/cdk/private';\n\n/** Allowed position options for matBadgePosition */\nexport type MatBadgePosition =\n | 'above after'\n | 'above before'\n | 'below before'\n | 'below after'\n | 'before'\n | 'after'\n | 'above'\n | 'below';\n\n/** Allowed size options for matBadgeSize */\nexport type MatBadgeSize = 'small' | 'medium' | 'large';\n\nconst BADGE_CONTENT_CLASS = 'mat-badge-content';\n\n/**\n * Component used to load the structural styles of the badge.\n * @docs-private\n */\n@Component({\n styleUrl: 'badge.css',\n encapsulation: ViewEncapsulation.None,\n template: '',\n})\nexport class _MatBadgeStyleLoader {}\n\n/** Directive to display a text badge. */\n@Directive({\n selector: '[matBadge]',\n host: {\n 'class': 'mat-badge',\n '[class.mat-badge-overlap]': 'overlap',\n '[class.mat-badge-above]': 'isAbove()',\n '[class.mat-badge-below]': '!isAbove()',\n '[class.mat-badge-before]': '!isAfter()',\n '[class.mat-badge-after]': 'isAfter()',\n '[class.mat-badge-small]': 'size === \"small\"',\n '[class.mat-badge-medium]': 'size === \"medium\"',\n '[class.mat-badge-large]': 'size === \"large\"',\n '[class.mat-badge-hidden]': 'hidden || !content',\n '[class.mat-badge-disabled]': 'disabled',\n },\n})\nexport class MatBadge implements OnInit, AfterViewInit, OnDestroy {\n private _ngZone = inject(NgZone);\n private _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private _ariaDescriber = inject(AriaDescriber);\n private _renderer = inject(Renderer2);\n private _animationsDisabled = _animationsDisabled();\n private _idGenerator = inject(_IdGenerator);\n\n /**\n * Theme color of the badge. This API is supported in M2 themes only, it\n * has no effect in M3 themes. For color customization in M3, see https://material.angular.dev/components/badge/styling.\n *\n * For information on applying color variants in M3, see\n * https://material.angular.dev/guide/material-2-theming#optional-add-backwards-compatibility-styles-for-color-variants\n */\n @Input('matBadgeColor')\n get color(): ThemePalette {\n return this._color;\n }\n set color(value: ThemePalette) {\n this._setColor(value);\n this._color = value;\n }\n private _color: ThemePalette = 'primary';\n\n /** Whether the badge should overlap its contents or not */\n @Input({alias: 'matBadgeOverlap', transform: booleanAttribute}) overlap: boolean = true;\n\n /** Whether the badge is disabled. */\n @Input({alias: 'matBadgeDisabled', transform: booleanAttribute}) disabled: boolean = false;\n\n /**\n * Position the badge should reside.\n * Accepts any combination of 'above'|'below' and 'before'|'after'\n */\n @Input('matBadgePosition') position: MatBadgePosition = 'above after';\n\n /** The content for the badge */\n @Input('matBadge')\n get content(): string | number | undefined | null {\n return this._content;\n }\n set content(newContent: string | number | undefined | null) {\n this._updateRenderedContent(newContent);\n }\n private _content: string | number | undefined | null;\n\n /** Message used to describe the decorated element via aria-describedby */\n @Input('matBadgeDescription')\n get description(): string {\n return this._description;\n }\n set description(newDescription: string) {\n this._updateDescription(newDescription);\n }\n private _description!: string;\n\n /** Size of the badge. Can be 'small', 'medium', or 'large'. */\n @Input('matBadgeSize') size: MatBadgeSize = 'medium';\n\n /** Whether the badge is hidden. */\n @Input({alias: 'matBadgeHidden', transform: booleanAttribute}) hidden: boolean = false;\n\n /** Visible badge element. */\n private _badgeElement: HTMLElement | undefined;\n\n /** Inline badge description. Used when the badge is applied to non-interactive host elements. */\n private _inlineBadgeDescription: HTMLElement | undefined;\n\n /** Whether the OnInit lifecycle hook has run yet */\n private _isInitialized = false;\n\n /** InteractivityChecker to determine if the badge host is focusable. */\n private _interactivityChecker = inject(InteractivityChecker);\n\n private _document = inject(DOCUMENT);\n\n constructor() {\n const styleLoader = inject(_CdkPrivateStyleLoader);\n styleLoader.load(_MatBadgeStyleLoader);\n styleLoader.load(_VisuallyHiddenLoader);\n\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const nativeElement = this._elementRef.nativeElement;\n\n if (nativeElement.nodeType !== nativeElement.ELEMENT_NODE) {\n throw Error('matBadge must be attached to an element node.');\n }\n }\n }\n\n /** Whether the badge is above the host or not */\n isAbove(): boolean {\n return this.position.indexOf('below') === -1;\n }\n\n /** Whether the badge is after the host or not */\n isAfter(): boolean {\n return this.position.indexOf('before') === -1;\n }\n\n /**\n * Gets the element into which the badge's content is being rendered. Undefined if the element\n * hasn't been created (e.g. if the badge doesn't have content).\n */\n getBadgeElement(): HTMLElement | undefined {\n return this._badgeElement;\n }\n\n ngOnInit() {\n // We may have server-side rendered badge that we need to clear.\n // We need to do this in ngOnInit because the full content of the component\n // on which the badge is attached won't necessarily be in the DOM until this point.\n this._clearExistingBadges();\n\n if (this.content && !this._badgeElement) {\n this._badgeElement = this._createBadgeElement();\n this._updateRenderedContent(this.content);\n }\n\n this._isInitialized = true;\n }\n\n ngAfterViewInit() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const nativeElement = this._elementRef.nativeElement;\n\n // Heads-up for developers to avoid putting matBadge on <mat-icon>\n // as it is aria-hidden by default docs mention this at:\n // https://material.angular.dev/components/badge/overview#accessibility\n if (\n nativeElement.tagName.toLowerCase() === 'mat-icon' &&\n nativeElement.getAttribute('aria-hidden') === 'true'\n ) {\n console.warn(\n `Detected a matBadge on an \"aria-hidden\" \"<mat-icon>\". ` +\n `Consider setting aria-hidden=\"false\" in order to surface the information assistive technology.` +\n `\\n${nativeElement.outerHTML}`,\n );\n }\n }\n }\n\n ngOnDestroy() {\n // ViewEngine only: when creating a badge through the Renderer, Angular remembers its index.\n // We have to destroy it ourselves, otherwise it'll be retained in memory.\n if (this._renderer.destroyNode) {\n this._renderer.destroyNode(this._badgeElement);\n this._inlineBadgeDescription?.remove();\n }\n\n this._ariaDescriber.removeDescription(this._elementRef.nativeElement, this.description);\n }\n\n /** Gets whether the badge's host element is interactive. */\n private _isHostInteractive(): boolean {\n // Ignore visibility since it requires an expensive style caluclation.\n return this._interactivityChecker.isFocusable(this._elementRef.nativeElement, {\n ignoreVisibility: true,\n });\n }\n\n /** Creates the badge element */\n private _createBadgeElement(): HTMLElement {\n const badgeElement = this._renderer.createElement('span');\n const activeClass = 'mat-badge-active';\n\n badgeElement.setAttribute('id', this._idGenerator.getId('mat-badge-content-'));\n\n // The badge is aria-hidden because we don't want it to appear in the page's navigation\n // flow. Instead, we use the badge to describe the decorated element with aria-describedby.\n badgeElement.setAttribute('aria-hidden', 'true');\n badgeElement.classList.add(BADGE_CONTENT_CLASS);\n\n if (this._animationsDisabled) {\n badgeElement.classList.add('_mat-animation-noopable');\n }\n\n this._elementRef.nativeElement.appendChild(badgeElement);\n\n // animate in after insertion\n if (typeof requestAnimationFrame === 'function' && !this._animationsDisabled) {\n this._ngZone.runOutsideAngular(() => {\n requestAnimationFrame(() => {\n badgeElement.classList.add(activeClass);\n });\n });\n } else {\n badgeElement.classList.add(activeClass);\n }\n\n return badgeElement;\n }\n\n /** Update the text content of the badge element in the DOM, creating the element if necessary. */\n private _updateRenderedContent(newContent: string | number | undefined | null): void {\n const newContentNormalized: string = `${newContent ?? ''}`.trim();\n\n // Don't create the badge element if the directive isn't initialized because we want to\n // append the badge element to the *end* of the host element's content for backwards\n // compatibility.\n if (this._isInitialized && newContentNormalized && !this._badgeElement) {\n this._badgeElement = this._createBadgeElement();\n }\n\n if (this._badgeElement) {\n this._badgeElement.textContent = newContentNormalized;\n }\n\n this._content = newContentNormalized;\n }\n\n /** Updates the host element's aria description via AriaDescriber. */\n private _updateDescription(newDescription: string): void {\n // Always start by removing the aria-describedby; we will add a new one if necessary.\n this._ariaDescriber.removeDescription(this._elementRef.nativeElement, this.description);\n\n // NOTE: We only check whether the host is interactive here, which happens during\n // when then badge content changes. It is possible that the host changes\n // interactivity status separate from one of these. However, watching the interactivity\n // status of the host would require a `MutationObserver`, which is likely more code + overhead\n // than it's worth; from usages inside Google, we see that the vats majority of badges either\n // never change interactivity, or also set `matBadgeHidden` based on the same condition.\n\n if (!newDescription || this._isHostInteractive()) {\n this._removeInlineDescription();\n }\n\n this._description = newDescription;\n\n // We don't add `aria-describedby` for non-interactive hosts elements because we\n // instead insert the description inline.\n if (this._isHostInteractive()) {\n this._ariaDescriber.describe(this._elementRef.nativeElement, newDescription);\n } else {\n this._updateInlineDescription();\n }\n }\n\n private _updateInlineDescription() {\n // Create the inline description element if it doesn't exist\n if (!this._inlineBadgeDescription) {\n this._inlineBadgeDescription = this._document.createElement('span');\n this._inlineBadgeDescription.classList.add('cdk-visually-hidden');\n }\n\n this._inlineBadgeDescription.textContent = this.description;\n this._badgeElement?.appendChild(this._inlineBadgeDescription);\n }\n\n private _removeInlineDescription() {\n this._inlineBadgeDescription?.remove();\n this._inlineBadgeDescription = undefined;\n }\n\n /** Adds css theme class given the color to the component host */\n private _setColor(colorPalette: ThemePalette) {\n const classList = this._elementRef.nativeElement.classList;\n classList.remove(`mat-badge-${this._color}`);\n if (colorPalette) {\n classList.add(`mat-badge-${colorPalette}`);\n }\n }\n\n /** Clears any existing badges that might be left over from server-side rendering. */\n private _clearExistingBadges() {\n // Only check direct children of this host element in order to avoid deleting\n // any badges that might exist in descendant elements.\n const badges = this._elementRef.nativeElement.querySelectorAll(\n `:scope > .${BADGE_CONTENT_CLASS}`,\n );\n for (const badgeElement of Array.from(badges)) {\n if (badgeElement !== this._badgeElement) {\n badgeElement.remove();\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 {NgModule} from '@angular/core';\nimport {A11yModule} from '@angular/cdk/a11y';\nimport {BidiModule} from '@angular/cdk/bidi';\nimport {MatBadge, _MatBadgeStyleLoader} from './badge';\n\n@NgModule({\n // Note: we _shouldn't_ have to import `_MatBadgeStyleLoader`,\n // but it seems to be necessary for tests.\n imports: [A11yModule, MatBadge, _MatBadgeStyleLoader],\n exports: [MatBadge, BidiModule],\n})\nexport class MatBadgeModule {}\n"],"names":["BADGE_CONTENT_CLASS","_MatBadgeStyleLoader","deps","target","i0","ɵɵFactoryTarget","Component","ɵcmp","ɵɵngDeclareComponent","minVersion","version","type","isInline","styles","encapsulation","ViewEncapsulation","None","decorators","template","MatBadge","_ngZone","inject","NgZone","_elementRef","ElementRef","_ariaDescriber","AriaDescriber","_renderer","Renderer2","_animationsDisabled","_idGenerator","_IdGenerator","color","_color","value","_setColor","overlap","disabled","position","content","_content","newContent","_updateRenderedContent","description","_description","newDescription","_updateDescription","size","hidden","_badgeElement","_inlineBadgeDescription","_isInitialized","_interactivityChecker","InteractivityChecker","_document","DOCUMENT","constructor","styleLoader","_CdkPrivateStyleLoader","load","_VisuallyHiddenLoader","ngDevMode","nativeElement","nodeType","ELEMENT_NODE","Error","isAbove","indexOf","isAfter","getBadgeElement","ngOnInit","_clearExistingBadges","_createBadgeElement","ngAfterViewInit","tagName","toLowerCase","getAttribute","console","warn","outerHTML","ngOnDestroy","destroyNode","remove","removeDescription","_isHostInteractive","isFocusable","ignoreVisibility","badgeElement","createElement","activeClass","setAttribute","getId","classList","add","appendChild","requestAnimationFrame","runOutsideAngular","newContentNormalized","trim","textContent","_removeInlineDescription","describe","_updateInlineDescription","undefined","colorPalette","badges","querySelectorAll","Array","from","Directive","ɵdir","ɵɵngDeclareDirective","isStandalone","selector","inputs","booleanAttribute","host","properties","classAttribute","ngImport","args","Input","alias","transform","MatBadgeModule","NgModule","imports","A11yModule","exports","BidiModule"],"mappings":"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"}
@@ -76,7 +76,7 @@ class MatBottomSheetContainer extends CdkDialogContainer {
76
76
  }
77
77
  static ɵfac = i0.ɵɵngDeclareFactory({
78
78
  minVersion: "12.0.0",
79
- version: "22.0.0-next.12",
79
+ version: "22.0.0-rc.0",
80
80
  ngImport: i0,
81
81
  type: MatBottomSheetContainer,
82
82
  deps: [],
@@ -84,7 +84,7 @@ class MatBottomSheetContainer extends CdkDialogContainer {
84
84
  });
85
85
  static ɵcmp = i0.ɵɵngDeclareComponent({
86
86
  minVersion: "14.0.0",
87
- version: "22.0.0-next.12",
87
+ version: "22.0.0-rc.0",
88
88
  type: MatBottomSheetContainer,
89
89
  isStandalone: true,
90
90
  selector: "mat-bottom-sheet-container",
@@ -125,7 +125,7 @@ class MatBottomSheetContainer extends CdkDialogContainer {
125
125
  }
126
126
  i0.ɵɵngDeclareClassMetadata({
127
127
  minVersion: "12.0.0",
128
- version: "22.0.0-next.12",
128
+ version: "22.0.0-rc.0",
129
129
  ngImport: i0,
130
130
  type: MatBottomSheetContainer,
131
131
  decorators: [{
@@ -317,7 +317,7 @@ class MatBottomSheet {
317
317
  }
318
318
  static ɵfac = i0.ɵɵngDeclareFactory({
319
319
  minVersion: "12.0.0",
320
- version: "22.0.0-next.12",
320
+ version: "22.0.0-rc.0",
321
321
  ngImport: i0,
322
322
  type: MatBottomSheet,
323
323
  deps: [],
@@ -325,14 +325,14 @@ class MatBottomSheet {
325
325
  });
326
326
  static ɵprov = i0.ɵɵngDeclareService({
327
327
  minVersion: "22.0.0",
328
- version: "22.0.0-next.12",
328
+ version: "22.0.0-rc.0",
329
329
  ngImport: i0,
330
330
  type: MatBottomSheet
331
331
  });
332
332
  }
333
333
  i0.ɵɵngDeclareClassMetadata({
334
334
  minVersion: "12.0.0",
335
- version: "22.0.0-next.12",
335
+ version: "22.0.0-rc.0",
336
336
  ngImport: i0,
337
337
  type: MatBottomSheet,
338
338
  decorators: [{
@@ -343,7 +343,7 @@ i0.ɵɵngDeclareClassMetadata({
343
343
  class MatBottomSheetModule {
344
344
  static ɵfac = i0.ɵɵngDeclareFactory({
345
345
  minVersion: "12.0.0",
346
- version: "22.0.0-next.12",
346
+ version: "22.0.0-rc.0",
347
347
  ngImport: i0,
348
348
  type: MatBottomSheetModule,
349
349
  deps: [],
@@ -351,7 +351,7 @@ class MatBottomSheetModule {
351
351
  });
352
352
  static ɵmod = i0.ɵɵngDeclareNgModule({
353
353
  minVersion: "14.0.0",
354
- version: "22.0.0-next.12",
354
+ version: "22.0.0-rc.0",
355
355
  ngImport: i0,
356
356
  type: MatBottomSheetModule,
357
357
  imports: [DialogModule, PortalModule, MatBottomSheetContainer],
@@ -359,7 +359,7 @@ class MatBottomSheetModule {
359
359
  });
360
360
  static ɵinj = i0.ɵɵngDeclareInjector({
361
361
  minVersion: "12.0.0",
362
- version: "22.0.0-next.12",
362
+ version: "22.0.0-rc.0",
363
363
  ngImport: i0,
364
364
  type: MatBottomSheetModule,
365
365
  providers: [MatBottomSheet],
@@ -368,7 +368,7 @@ class MatBottomSheetModule {
368
368
  }
369
369
  i0.ɵɵngDeclareClassMetadata({
370
370
  minVersion: "12.0.0",
371
- version: "22.0.0-next.12",
371
+ version: "22.0.0-rc.0",
372
372
  ngImport: i0,
373
373
  type: MatBottomSheetModule,
374
374
  decorators: [{
@@ -304,7 +304,7 @@ class MatButtonToggleGroup {
304
304
  }
305
305
  static ɵfac = i0.ɵɵngDeclareFactory({
306
306
  minVersion: "12.0.0",
307
- version: "22.0.0-next.12",
307
+ version: "22.0.0-rc.0",
308
308
  ngImport: i0,
309
309
  type: MatButtonToggleGroup,
310
310
  deps: [],
@@ -312,7 +312,7 @@ class MatButtonToggleGroup {
312
312
  });
313
313
  static ɵdir = i0.ɵɵngDeclareDirective({
314
314
  minVersion: "16.1.0",
315
- version: "22.0.0-next.12",
315
+ version: "22.0.0-rc.0",
316
316
  type: MatButtonToggleGroup,
317
317
  isStandalone: true,
318
318
  selector: "mat-button-toggle-group",
@@ -358,7 +358,7 @@ class MatButtonToggleGroup {
358
358
  }
359
359
  i0.ɵɵngDeclareClassMetadata({
360
360
  minVersion: "12.0.0",
361
- version: "22.0.0-next.12",
361
+ version: "22.0.0-rc.0",
362
362
  ngImport: i0,
363
363
  type: MatButtonToggleGroup,
364
364
  decorators: [{
@@ -582,7 +582,7 @@ class MatButtonToggle {
582
582
  }
583
583
  static ɵfac = i0.ɵɵngDeclareFactory({
584
584
  minVersion: "12.0.0",
585
- version: "22.0.0-next.12",
585
+ version: "22.0.0-rc.0",
586
586
  ngImport: i0,
587
587
  type: MatButtonToggle,
588
588
  deps: [],
@@ -590,7 +590,7 @@ class MatButtonToggle {
590
590
  });
591
591
  static ɵcmp = i0.ɵɵngDeclareComponent({
592
592
  minVersion: "17.0.0",
593
- version: "22.0.0-next.12",
593
+ version: "22.0.0-rc.0",
594
594
  type: MatButtonToggle,
595
595
  isStandalone: true,
596
596
  selector: "mat-button-toggle",
@@ -657,7 +657,7 @@ class MatButtonToggle {
657
657
  }
658
658
  i0.ɵɵngDeclareClassMetadata({
659
659
  minVersion: "12.0.0",
660
- version: "22.0.0-next.12",
660
+ version: "22.0.0-rc.0",
661
661
  ngImport: i0,
662
662
  type: MatButtonToggle,
663
663
  decorators: [{
@@ -747,7 +747,7 @@ i0.ɵɵngDeclareClassMetadata({
747
747
  class MatButtonToggleModule {
748
748
  static ɵfac = i0.ɵɵngDeclareFactory({
749
749
  minVersion: "12.0.0",
750
- version: "22.0.0-next.12",
750
+ version: "22.0.0-rc.0",
751
751
  ngImport: i0,
752
752
  type: MatButtonToggleModule,
753
753
  deps: [],
@@ -755,7 +755,7 @@ class MatButtonToggleModule {
755
755
  });
756
756
  static ɵmod = i0.ɵɵngDeclareNgModule({
757
757
  minVersion: "14.0.0",
758
- version: "22.0.0-next.12",
758
+ version: "22.0.0-rc.0",
759
759
  ngImport: i0,
760
760
  type: MatButtonToggleModule,
761
761
  imports: [MatRippleModule, MatButtonToggleGroup, MatButtonToggle],
@@ -763,7 +763,7 @@ class MatButtonToggleModule {
763
763
  });
764
764
  static ɵinj = i0.ɵɵngDeclareInjector({
765
765
  minVersion: "12.0.0",
766
- version: "22.0.0-next.12",
766
+ version: "22.0.0-rc.0",
767
767
  ngImport: i0,
768
768
  type: MatButtonToggleModule,
769
769
  imports: [MatRippleModule, MatButtonToggle, BidiModule]
@@ -771,7 +771,7 @@ class MatButtonToggleModule {
771
771
  }
772
772
  i0.ɵɵngDeclareClassMetadata({
773
773
  minVersion: "12.0.0",
774
- version: "22.0.0-next.12",
774
+ version: "22.0.0-rc.0",
775
775
  ngImport: i0,
776
776
  type: MatButtonToggleModule,
777
777
  decorators: [{
@@ -1 +1 @@
1
- {"version":3,"file":"button-toggle.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/button-toggle/button-toggle.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/button-toggle/button-toggle.html","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/button-toggle/button-toggle-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 {_IdGenerator, FocusMonitor} from '@angular/cdk/a11y';\nimport {Direction, Directionality} from '@angular/cdk/bidi';\nimport {SelectionModel} from '@angular/cdk/collections';\nimport {\n DOWN_ARROW,\n ENTER,\n LEFT_ARROW,\n RIGHT_ARROW,\n SPACE,\n UP_ARROW,\n hasModifierKey,\n} from '@angular/cdk/keycodes';\nimport {_CdkPrivateStyleLoader} from '@angular/cdk/private';\nimport {\n AfterContentInit,\n AfterViewInit,\n booleanAttribute,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostAttributeToken,\n inject,\n InjectionToken,\n Input,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n signal,\n ViewChild,\n ViewEncapsulation,\n WritableSignal,\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {_animationsDisabled, _StructuralStylesLoader, MatPseudoCheckbox, MatRipple} from '../core';\n\n/**\n * @deprecated No longer used.\n * @breaking-change 11.0.0\n */\nexport type ToggleType = 'checkbox' | 'radio';\n\n/** Possible appearance styles for the button toggle. */\nexport type MatButtonToggleAppearance = 'legacy' | 'standard';\n\n/**\n * Represents the default options for the button toggle that can be configured\n * using the `MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS` injection token.\n */\nexport interface MatButtonToggleDefaultOptions {\n /**\n * Default appearance to be used by button toggles. Can be overridden by explicitly\n * setting an appearance on a button toggle or group.\n */\n appearance?: MatButtonToggleAppearance;\n /** Whether icon indicators should be hidden for single-selection button toggle groups. */\n hideSingleSelectionIndicator?: boolean;\n /** Whether icon indicators should be hidden for multiple-selection button toggle groups. */\n hideMultipleSelectionIndicator?: boolean;\n /** Whether disabled toggle buttons should be interactive. */\n disabledInteractive?: boolean;\n}\n\n/**\n * Injection token that can be used to configure the\n * default options for all button toggles within an app.\n */\nexport const MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS = new InjectionToken<MatButtonToggleDefaultOptions>(\n 'MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS',\n {\n providedIn: 'root',\n factory: () => ({\n hideSingleSelectionIndicator: false,\n hideMultipleSelectionIndicator: false,\n disabledInteractive: false,\n }),\n },\n);\n\n/**\n * Injection token that can be used to reference instances of `MatButtonToggleGroup`.\n * It serves as alternative token to the actual `MatButtonToggleGroup` class which\n * could cause unnecessary retention of the class and its component metadata.\n */\nexport const MAT_BUTTON_TOGGLE_GROUP = new InjectionToken<MatButtonToggleGroup>(\n 'MatButtonToggleGroup',\n);\n\n/**\n * Provider Expression that allows mat-button-toggle-group to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MatButtonToggleGroup),\n multi: true,\n};\n\n/** Change event object emitted by button toggle. */\nexport class MatButtonToggleChange {\n constructor(\n /** The button toggle that emits the event. */\n public source: MatButtonToggle,\n\n /** The value assigned to the button toggle. */\n public value: any,\n ) {}\n}\n\n/** Exclusive selection button toggle group that behaves like a radio-button group. */\n@Directive({\n selector: 'mat-button-toggle-group',\n providers: [\n MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR,\n {provide: MAT_BUTTON_TOGGLE_GROUP, useExisting: MatButtonToggleGroup},\n ],\n host: {\n 'class': 'mat-button-toggle-group',\n '(keydown)': '_keydown($event)',\n '[attr.role]': \"multiple ? 'group' : 'radiogroup'\",\n '[attr.aria-disabled]': 'disabled',\n '[class.mat-button-toggle-vertical]': 'vertical',\n '[class.mat-button-toggle-group-appearance-standard]': 'appearance === \"standard\"',\n },\n exportAs: 'matButtonToggleGroup',\n})\nexport class MatButtonToggleGroup implements ControlValueAccessor, OnInit, AfterContentInit {\n private _changeDetector = inject(ChangeDetectorRef);\n private _dir = inject(Directionality, {optional: true});\n\n private _multiple = false;\n private _disabled = false;\n private _disabledInteractive = false;\n private _selectionModel!: SelectionModel<MatButtonToggle>;\n\n /**\n * Reference to the raw value that the consumer tried to assign. The real\n * value will exclude any values from this one that don't correspond to a\n * toggle. Useful for the cases where the value is assigned before the toggles\n * have been initialized or at the same that they're being swapped out.\n */\n private _rawValue: any;\n\n /**\n * The method to be called in order to update ngModel.\n * Now `ngModel` binding is not supported in multiple selection mode.\n */\n _controlValueAccessorChangeFn: (value: any) => void = () => {};\n\n /** onTouch function registered via registerOnTouch (ControlValueAccessor). */\n _onTouched: () => any = () => {};\n\n /** Child button toggle buttons. */\n @ContentChildren(forwardRef(() => MatButtonToggle), {\n // Note that this would technically pick up toggles\n // from nested groups, but that's not a case that we support.\n descendants: true,\n })\n _buttonToggles!: QueryList<MatButtonToggle>;\n\n /** The appearance for all the buttons in the group. */\n @Input() appearance: MatButtonToggleAppearance;\n\n /** `name` attribute for the underlying `input` element. */\n @Input()\n get name(): string {\n return this._name;\n }\n set name(value: string) {\n this._name = value;\n this._markButtonsForCheck();\n }\n private _name = inject(_IdGenerator).getId('mat-button-toggle-group-');\n\n /** Whether the toggle group is vertical. */\n @Input({transform: booleanAttribute}) vertical: boolean = false;\n\n /** Value of the toggle group. */\n @Input()\n get value(): any {\n const selected = this._selectionModel ? this._selectionModel.selected : [];\n\n if (this.multiple) {\n return selected.map(toggle => toggle.value);\n }\n\n return selected[0] ? selected[0].value : undefined;\n }\n set value(newValue: any) {\n this._setSelectionByValue(newValue);\n this.valueChange.emit(this.value);\n }\n\n /**\n * Event that emits whenever the value of the group changes.\n * Used to facilitate two-way data binding.\n * @docs-private\n */\n @Output() readonly valueChange = new EventEmitter<any>();\n\n /** Selected button toggles in the group. */\n get selected(): MatButtonToggle | MatButtonToggle[] {\n const selected = this._selectionModel ? this._selectionModel.selected : [];\n return this.multiple ? selected : selected[0] || null;\n }\n\n /** Whether multiple button toggles can be selected. */\n @Input({transform: booleanAttribute})\n get multiple(): boolean {\n return this._multiple;\n }\n set multiple(value: boolean) {\n this._multiple = value;\n this._markButtonsForCheck();\n }\n\n /** Whether multiple button toggle group is disabled. */\n @Input({transform: booleanAttribute})\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = value;\n this._markButtonsForCheck();\n }\n\n /** Whether buttons in the group should be interactive while they're disabled. */\n @Input({transform: booleanAttribute})\n get disabledInteractive(): boolean {\n return this._disabledInteractive;\n }\n set disabledInteractive(value: boolean) {\n this._disabledInteractive = value;\n this._markButtonsForCheck();\n }\n\n /** The layout direction of the toggle button group. */\n get dir(): Direction {\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n }\n\n /** Event emitted when the group's value changes. */\n @Output() readonly change: EventEmitter<MatButtonToggleChange> =\n new EventEmitter<MatButtonToggleChange>();\n\n /** Whether checkmark indicator for single-selection button toggle groups is hidden. */\n @Input({transform: booleanAttribute})\n get hideSingleSelectionIndicator(): boolean {\n return this._hideSingleSelectionIndicator;\n }\n set hideSingleSelectionIndicator(value: boolean) {\n this._hideSingleSelectionIndicator = value;\n this._markButtonsForCheck();\n }\n private _hideSingleSelectionIndicator: boolean;\n\n /** Whether checkmark indicator for multiple-selection button toggle groups is hidden. */\n @Input({transform: booleanAttribute})\n get hideMultipleSelectionIndicator(): boolean {\n return this._hideMultipleSelectionIndicator;\n }\n set hideMultipleSelectionIndicator(value: boolean) {\n this._hideMultipleSelectionIndicator = value;\n this._markButtonsForCheck();\n }\n private _hideMultipleSelectionIndicator: boolean;\n\n constructor() {\n const defaultOptions = inject<MatButtonToggleDefaultOptions>(\n MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS,\n {optional: true},\n );\n\n this.appearance =\n defaultOptions && defaultOptions.appearance ? defaultOptions.appearance : 'standard';\n this._hideSingleSelectionIndicator = defaultOptions?.hideSingleSelectionIndicator ?? false;\n this._hideMultipleSelectionIndicator = defaultOptions?.hideMultipleSelectionIndicator ?? false;\n }\n\n ngOnInit() {\n this._selectionModel = new SelectionModel<MatButtonToggle>(this.multiple, undefined, false);\n }\n\n ngAfterContentInit() {\n this._selectionModel.select(...this._buttonToggles.filter(toggle => toggle.checked));\n if (!this.multiple) {\n this._initializeTabIndex();\n }\n }\n\n /**\n * Sets the model value. Implemented as part of ControlValueAccessor.\n * @param value Value to be set to the model.\n */\n writeValue(value: any) {\n this.value = value;\n this._changeDetector.markForCheck();\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void) {\n this._controlValueAccessorChangeFn = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: any) {\n this._onTouched = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n /** Handle keydown event calling to single-select button toggle. */\n protected _keydown(event: KeyboardEvent) {\n if (this.multiple || this.disabled || hasModifierKey(event)) {\n return;\n }\n\n const target = event.target as HTMLButtonElement;\n const buttonId = target.id;\n const index = this._buttonToggles.toArray().findIndex(toggle => {\n return toggle.buttonId === buttonId;\n });\n\n let nextButton: MatButtonToggle | null = null;\n switch (event.keyCode) {\n case SPACE:\n case ENTER:\n nextButton = this._buttonToggles.get(index) || null;\n break;\n case UP_ARROW:\n nextButton = this._getNextButton(index, -1);\n break;\n case LEFT_ARROW:\n nextButton = this._getNextButton(index, this.dir === 'ltr' ? -1 : 1);\n break;\n case DOWN_ARROW:\n nextButton = this._getNextButton(index, 1);\n break;\n case RIGHT_ARROW:\n nextButton = this._getNextButton(index, this.dir === 'ltr' ? 1 : -1);\n break;\n default:\n return;\n }\n\n if (nextButton) {\n event.preventDefault();\n nextButton._onButtonClick();\n nextButton.focus();\n }\n }\n\n /** Dispatch change event with current selection and group value. */\n _emitChangeEvent(toggle: MatButtonToggle): void {\n const event = new MatButtonToggleChange(toggle, this.value);\n this._rawValue = event.value;\n this._controlValueAccessorChangeFn(event.value);\n this.change.emit(event);\n }\n\n /**\n * Syncs a button toggle's selected state with the model value.\n * @param toggle Toggle to be synced.\n * @param select Whether the toggle should be selected.\n * @param isUserInput Whether the change was a result of a user interaction.\n * @param deferEvents Whether to defer emitting the change events.\n */\n _syncButtonToggle(\n toggle: MatButtonToggle,\n select: boolean,\n isUserInput = false,\n deferEvents = false,\n ) {\n // Deselect the currently-selected toggle, if we're in single-selection\n // mode and the button being toggled isn't selected at the moment.\n if (!this.multiple && this.selected && !toggle.checked) {\n (this.selected as MatButtonToggle).checked = false;\n }\n\n if (this._selectionModel) {\n if (select) {\n this._selectionModel.select(toggle);\n } else {\n this._selectionModel.deselect(toggle);\n }\n } else {\n deferEvents = true;\n }\n\n // We need to defer in some cases in order to avoid \"changed after checked errors\", however\n // the side-effect is that we may end up updating the model value out of sequence in others\n // The `deferEvents` flag allows us to decide whether to do it on a case-by-case basis.\n if (deferEvents) {\n Promise.resolve().then(() => this._updateModelValue(toggle, isUserInput));\n } else {\n this._updateModelValue(toggle, isUserInput);\n }\n }\n\n /** Checks whether a button toggle is selected. */\n _isSelected(toggle: MatButtonToggle) {\n return this._selectionModel && this._selectionModel.isSelected(toggle);\n }\n\n /** Determines whether a button toggle should be checked on init. */\n _isPrechecked(toggle: MatButtonToggle) {\n if (typeof this._rawValue === 'undefined') {\n return false;\n }\n\n if (this.multiple && Array.isArray(this._rawValue)) {\n return this._rawValue.some(value => toggle.value != null && value === toggle.value);\n }\n\n return toggle.value === this._rawValue;\n }\n\n /** Initializes the tabindex attribute using the radio pattern. */\n private _initializeTabIndex() {\n this._buttonToggles.forEach(toggle => {\n toggle.tabIndex = -1;\n });\n if (this.selected) {\n (this.selected as MatButtonToggle).tabIndex = 0;\n } else {\n for (let i = 0; i < this._buttonToggles.length; i++) {\n const toggle = this._buttonToggles.get(i)!;\n\n if (!toggle.disabled) {\n toggle.tabIndex = 0;\n break;\n }\n }\n }\n }\n\n /** Obtain the subsequent toggle to which the focus shifts. */\n private _getNextButton(startIndex: number, offset: number): MatButtonToggle | null {\n const items = this._buttonToggles;\n\n for (let i = 1; i <= items.length; i++) {\n const index = (startIndex + offset * i + items.length) % items.length;\n const item = items.get(index);\n\n if (item && !item.disabled) {\n return item;\n }\n }\n\n return null;\n }\n\n /** Updates the selection state of the toggles in the group based on a value. */\n private _setSelectionByValue(value: any | any[]) {\n this._rawValue = value;\n\n if (!this._buttonToggles) {\n return;\n }\n\n const toggles = this._buttonToggles.toArray();\n\n if (this.multiple && value) {\n if (!Array.isArray(value) && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Value must be an array in multiple-selection mode.');\n }\n\n this._clearSelection();\n value.forEach((currentValue: any) => this._selectValue(currentValue, toggles));\n } else {\n this._clearSelection();\n this._selectValue(value, toggles);\n }\n\n // In single selection mode we need at least one enabled toggle to always be focusable.\n if (!this.multiple && toggles.every(toggle => toggle.tabIndex === -1)) {\n for (const toggle of toggles) {\n if (!toggle.disabled) {\n toggle.tabIndex = 0;\n break;\n }\n }\n }\n }\n\n /** Clears the selected toggles. */\n private _clearSelection() {\n this._selectionModel.clear();\n this._buttonToggles.forEach(toggle => {\n toggle.checked = false;\n // If the button toggle is in single select mode, initialize the tabIndex.\n if (!this.multiple) {\n toggle.tabIndex = -1;\n }\n });\n }\n\n /** Selects a value if there's a toggle that corresponds to it. */\n private _selectValue(value: any, toggles: MatButtonToggle[]) {\n for (const toggle of toggles) {\n if (toggle.value === value) {\n toggle.checked = true;\n this._selectionModel.select(toggle);\n if (!this.multiple) {\n // If the button toggle is in single select mode, reset the tabIndex.\n toggle.tabIndex = 0;\n }\n break;\n }\n }\n }\n\n /** Syncs up the group's value with the model and emits the change event. */\n private _updateModelValue(toggle: MatButtonToggle, isUserInput: boolean) {\n // Only emit the change event for user input.\n if (isUserInput) {\n this._emitChangeEvent(toggle);\n }\n\n // Note: we emit this one no matter whether it was a user interaction, because\n // it is used by Angular to sync up the two-way data binding.\n this.valueChange.emit(this.value);\n }\n\n /** Marks all of the child button toggles to be checked. */\n private _markButtonsForCheck() {\n this._buttonToggles?.forEach(toggle => toggle._markForCheck());\n }\n}\n\n/** Single button inside of a toggle group. */\n@Component({\n selector: 'mat-button-toggle',\n templateUrl: 'button-toggle.html',\n styleUrl: 'button-toggle.css',\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matButtonToggle',\n host: {\n '[class.mat-button-toggle-standalone]': '!buttonToggleGroup',\n '[class.mat-button-toggle-checked]': 'checked',\n '[class.mat-button-toggle-disabled]': 'disabled',\n '[class.mat-button-toggle-disabled-interactive]': 'disabledInteractive',\n '[class.mat-button-toggle-appearance-standard]': 'appearance === \"standard\"',\n 'class': 'mat-button-toggle',\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n '[attr.id]': 'id',\n '[attr.name]': 'null',\n '(focus)': 'focus()',\n 'role': 'presentation',\n },\n imports: [MatRipple, MatPseudoCheckbox],\n})\nexport class MatButtonToggle implements OnInit, AfterViewInit, OnDestroy {\n private _changeDetectorRef = inject(ChangeDetectorRef);\n private _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private _focusMonitor = inject(FocusMonitor);\n private _idGenerator = inject(_IdGenerator);\n private _animationDisabled = _animationsDisabled();\n private _checked = false;\n\n /**\n * Attached to the aria-label attribute of the host element. In most cases, aria-labelledby will\n * take precedence so this may be omitted.\n */\n @Input('aria-label') ariaLabel!: string;\n\n /**\n * Users can specify the `aria-labelledby` attribute which will be forwarded to the input element\n */\n @Input('aria-labelledby') ariaLabelledby: string | null = null;\n\n /** Underlying native `button` element. */\n @ViewChild('button') _buttonElement!: ElementRef<HTMLButtonElement>;\n\n /** The parent button toggle group (exclusive selection). Optional. */\n buttonToggleGroup: MatButtonToggleGroup;\n\n /** Unique ID for the underlying `button` element. */\n get buttonId(): string {\n return `${this.id}-button`;\n }\n\n /** The unique ID for this button toggle. */\n @Input() id!: string;\n\n /** HTML's 'name' attribute used to group radios for unique selection. */\n @Input() name!: string;\n\n /** MatButtonToggleGroup reads this to assign its own value. */\n @Input() value: any;\n\n /** Tabindex of the toggle. */\n @Input()\n get tabIndex(): number | null {\n return this._tabIndex();\n }\n set tabIndex(value: number | null) {\n this._tabIndex.set(value);\n }\n private _tabIndex: WritableSignal<number | null>;\n\n /** Whether ripples are disabled on the button toggle. */\n @Input({transform: booleanAttribute}) disableRipple: boolean = false;\n\n /** The appearance style of the button. */\n @Input()\n get appearance(): MatButtonToggleAppearance {\n return this.buttonToggleGroup ? this.buttonToggleGroup.appearance : this._appearance;\n }\n set appearance(value: MatButtonToggleAppearance) {\n this._appearance = value;\n }\n private _appearance: MatButtonToggleAppearance;\n\n /** Whether the button is checked. */\n @Input({transform: booleanAttribute})\n get checked(): boolean {\n return this.buttonToggleGroup ? this.buttonToggleGroup._isSelected(this) : this._checked;\n }\n set checked(value: boolean) {\n if (value !== this._checked) {\n this._checked = value;\n\n if (this.buttonToggleGroup) {\n this.buttonToggleGroup._syncButtonToggle(this, this._checked);\n }\n\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /** Whether the button is disabled. */\n @Input({transform: booleanAttribute})\n get disabled(): boolean {\n return this._disabled || (this.buttonToggleGroup && this.buttonToggleGroup.disabled);\n }\n set disabled(value: boolean) {\n this._disabled = value;\n }\n private _disabled: boolean = false;\n\n /** Whether the button should remain interactive when it is disabled. */\n @Input({transform: booleanAttribute})\n get disabledInteractive(): boolean {\n return (\n this._disabledInteractive ||\n (this.buttonToggleGroup !== null && this.buttonToggleGroup.disabledInteractive)\n );\n }\n set disabledInteractive(value: boolean) {\n this._disabledInteractive = value;\n }\n private _disabledInteractive: boolean;\n\n /** Event emitted when the group value changes. */\n @Output() readonly change: EventEmitter<MatButtonToggleChange> =\n new EventEmitter<MatButtonToggleChange>();\n\n constructor() {\n inject(_CdkPrivateStyleLoader).load(_StructuralStylesLoader);\n const toggleGroup = inject<MatButtonToggleGroup>(MAT_BUTTON_TOGGLE_GROUP, {optional: true})!;\n const defaultTabIndex = inject(new HostAttributeToken('tabindex'), {optional: true}) || '';\n const defaultOptions = inject<MatButtonToggleDefaultOptions>(\n MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS,\n {optional: true},\n );\n\n this._tabIndex = signal<number | null>(parseInt(defaultTabIndex) || 0);\n this.buttonToggleGroup = toggleGroup;\n this._appearance =\n defaultOptions && defaultOptions.appearance ? defaultOptions.appearance : 'standard';\n this._disabledInteractive = defaultOptions?.disabledInteractive ?? false;\n }\n\n ngOnInit() {\n const group = this.buttonToggleGroup;\n this.id = this.id || this._idGenerator.getId('mat-button-toggle-');\n\n if (group) {\n if (group._isPrechecked(this)) {\n this.checked = true;\n } else if (group._isSelected(this) !== this._checked) {\n // As side effect of the circular dependency between the toggle group and the button,\n // we may end up in a state where the button is supposed to be checked on init, but it\n // isn't, because the checked value was assigned too early. This can happen when Ivy\n // assigns the static input value before the `ngOnInit` has run.\n group._syncButtonToggle(this, this._checked);\n }\n }\n }\n\n ngAfterViewInit() {\n // This serves two purposes:\n // 1. We don't want the animation to fire on the first render for pre-checked toggles so we\n // delay adding the class until the view is rendered.\n // 2. We don't want to animate if animations are disabled.\n if (!this._animationDisabled) {\n this._elementRef.nativeElement.classList.add('mat-button-toggle-animations-enabled');\n }\n\n this._focusMonitor.monitor(this._elementRef, true);\n }\n\n ngOnDestroy() {\n const group = this.buttonToggleGroup;\n\n this._focusMonitor.stopMonitoring(this._elementRef);\n\n // Remove the toggle from the selection once it's destroyed. Needs to happen\n // on the next tick in order to avoid \"changed after checked\" errors.\n if (group && group._isSelected(this)) {\n group._syncButtonToggle(this, false, false, true);\n }\n }\n\n /** Focuses the button. */\n focus(options?: FocusOptions): void {\n this._buttonElement.nativeElement.focus(options);\n }\n\n /** Checks the button toggle due to an interaction with the underlying native button. */\n _onButtonClick() {\n if (this.disabled) {\n return;\n }\n\n const newChecked = this.isSingleSelector() ? true : !this._checked;\n\n if (newChecked !== this._checked) {\n this._checked = newChecked;\n if (this.buttonToggleGroup) {\n this.buttonToggleGroup._syncButtonToggle(this, this._checked, true);\n this.buttonToggleGroup._onTouched();\n }\n }\n\n if (this.isSingleSelector()) {\n const focusable = this.buttonToggleGroup._buttonToggles.find(toggle => {\n return toggle.tabIndex === 0;\n });\n // Modify the tabindex attribute of the last focusable button toggle to -1.\n if (focusable) {\n focusable.tabIndex = -1;\n }\n // Modify the tabindex attribute of the presently selected button toggle to 0.\n this.tabIndex = 0;\n }\n\n // Emit a change event when it's the single selector\n this.change.emit(new MatButtonToggleChange(this, this.value));\n }\n\n /**\n * Marks the button toggle as needing checking for change detection.\n * This method is exposed because the parent button toggle group will directly\n * update bound properties of the radio button.\n */\n _markForCheck() {\n // When the group value changes, the button will not be notified.\n // Use `markForCheck` to explicit update button toggle's status.\n this._changeDetectorRef.markForCheck();\n }\n\n /** Gets the name that should be assigned to the inner DOM node. */\n _getButtonName(): string | null {\n if (this.isSingleSelector()) {\n return this.buttonToggleGroup.name;\n }\n return this.name || null;\n }\n\n /** Whether the toggle is in single selection mode. */\n isSingleSelector(): boolean {\n return this.buttonToggleGroup && !this.buttonToggleGroup.multiple;\n }\n}\n","<button #button class=\"mat-button-toggle-button mat-focus-indicator\"\n type=\"button\"\n [id]=\"buttonId\"\n [attr.role]=\"isSingleSelector() ? 'radio' : 'button'\"\n [attr.tabindex]=\"disabled && !disabledInteractive ? -1 : tabIndex\"\n [attr.aria-pressed]=\"!isSingleSelector() ? checked : null\"\n [attr.aria-checked]=\"isSingleSelector() ? checked : null\"\n [disabled]=\"(disabled && !disabledInteractive) || null\"\n [attr.name]=\"_getButtonName()\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-disabled]=\"disabled && disabledInteractive ? 'true' : null\"\n (click)=\"_onButtonClick()\">\n @if (buttonToggleGroup && (\n !buttonToggleGroup.multiple && !buttonToggleGroup.hideSingleSelectionIndicator ||\n buttonToggleGroup.multiple && !buttonToggleGroup.hideMultipleSelectionIndicator)\n ) {\n <div class=\"mat-button-toggle-checkbox-wrapper\">\n <mat-pseudo-checkbox\n [disabled]=\"disabled\"\n state=\"checked\"\n aria-hidden=\"true\"\n appearance=\"minimal\"/>\n </div>\n }\n\n <span class=\"mat-button-toggle-label-content\">\n <ng-content></ng-content>\n </span>\n</button>\n\n<span class=\"mat-button-toggle-focus-overlay\"></span>\n<span class=\"mat-button-toggle-ripple\" matRipple\n [matRippleTrigger]=\"button\"\n [matRippleDisabled]=\"disableRipple || disabled\">\n</span>\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {NgModule} from '@angular/core';\nimport {BidiModule} from '@angular/cdk/bidi';\nimport {MatRippleModule} from '../core';\nimport {MatButtonToggle, MatButtonToggleGroup} from './button-toggle';\n\n@NgModule({\n imports: [MatRippleModule, MatButtonToggleGroup, MatButtonToggle],\n exports: [BidiModule, MatButtonToggleGroup, MatButtonToggle],\n})\nexport class MatButtonToggleModule {}\n"],"names":["MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS","InjectionToken","providedIn","factory","hideSingleSelectionIndicator","hideMultipleSelectionIndicator","disabledInteractive","MAT_BUTTON_TOGGLE_GROUP","MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","MatButtonToggleGroup","multi","MatButtonToggleChange","source","value","constructor","_changeDetector","inject","ChangeDetectorRef","_dir","Directionality","optional","_multiple","_disabled","_disabledInteractive","_selectionModel","_rawValue","_controlValueAccessorChangeFn","_onTouched","_buttonToggles","appearance","name","_name","_markButtonsForCheck","_IdGenerator","getId","vertical","selected","multiple","map","toggle","undefined","newValue","_setSelectionByValue","valueChange","emit","EventEmitter","disabled","dir","change","_hideSingleSelectionIndicator","_hideMultipleSelectionIndicator","defaultOptions","ngOnInit","SelectionModel","ngAfterContentInit","select","filter","checked","_initializeTabIndex","writeValue","markForCheck","registerOnChange","fn","registerOnTouched","setDisabledState","isDisabled","_keydown","event","hasModifierKey","target","buttonId","id","index","toArray","findIndex","nextButton","keyCode","SPACE","ENTER","get","UP_ARROW","_getNextButton","LEFT_ARROW","DOWN_ARROW","RIGHT_ARROW","preventDefault","_onButtonClick","focus","_emitChangeEvent","_syncButtonToggle","isUserInput","deferEvents","deselect","Promise","resolve","then","_updateModelValue","_isSelected","isSelected","_isPrechecked","Array","isArray","some","forEach","tabIndex","i","length","startIndex","offset","items","item","toggles","ngDevMode","Error","_clearSelection","currentValue","_selectValue","every","clear","_markForCheck","deps","i0","ɵɵFactoryTarget","Directive","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","isStandalone","selector","inputs","booleanAttribute","outputs","host","listeners","properties","classAttribute","providers","queries","propertyName","predicate","MatButtonToggle","descendants","exportAs","ngImport","decorators","args","ContentChildren","Input","transform","Output","_changeDetectorRef","_elementRef","ElementRef","_focusMonitor","FocusMonitor","_idGenerator","_animationDisabled","_animationsDisabled","_checked","ariaLabel","ariaLabelledby","_buttonElement","buttonToggleGroup","_tabIndex","set","disableRipple","_appearance","_CdkPrivateStyleLoader","load","_StructuralStylesLoader","toggleGroup","defaultTabIndex","HostAttributeToken","signal","parseInt","group","ngAfterViewInit","nativeElement","classList","add","monitor","ngOnDestroy","stopMonitoring","options","newChecked","isSingleSelector","focusable","find","_getButtonName","Component","ɵcmp","ɵɵngDeclareComponent","attributes","viewQueries","first","template","styles","dependencies","kind","MatRipple","MatPseudoCheckbox","encapsulation","ViewEncapsulation","None","imports","ViewChild","MatButtonToggleModule","NgModule","MatRippleModule","exports","BidiModule","ɵinj","ɵɵngDeclareInjector"],"mappings":"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"}
1
+ {"version":3,"file":"button-toggle.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/button-toggle/button-toggle.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/button-toggle/button-toggle.html","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/button-toggle/button-toggle-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 {_IdGenerator, FocusMonitor} from '@angular/cdk/a11y';\nimport {Direction, Directionality} from '@angular/cdk/bidi';\nimport {SelectionModel} from '@angular/cdk/collections';\nimport {\n DOWN_ARROW,\n ENTER,\n LEFT_ARROW,\n RIGHT_ARROW,\n SPACE,\n UP_ARROW,\n hasModifierKey,\n} from '@angular/cdk/keycodes';\nimport {_CdkPrivateStyleLoader} from '@angular/cdk/private';\nimport {\n AfterContentInit,\n AfterViewInit,\n booleanAttribute,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostAttributeToken,\n inject,\n InjectionToken,\n Input,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n signal,\n ViewChild,\n ViewEncapsulation,\n WritableSignal,\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {_animationsDisabled, _StructuralStylesLoader, MatPseudoCheckbox, MatRipple} from '../core';\n\n/**\n * @deprecated No longer used.\n * @breaking-change 11.0.0\n */\nexport type ToggleType = 'checkbox' | 'radio';\n\n/** Possible appearance styles for the button toggle. */\nexport type MatButtonToggleAppearance = 'legacy' | 'standard';\n\n/**\n * Represents the default options for the button toggle that can be configured\n * using the `MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS` injection token.\n */\nexport interface MatButtonToggleDefaultOptions {\n /**\n * Default appearance to be used by button toggles. Can be overridden by explicitly\n * setting an appearance on a button toggle or group.\n */\n appearance?: MatButtonToggleAppearance;\n /** Whether icon indicators should be hidden for single-selection button toggle groups. */\n hideSingleSelectionIndicator?: boolean;\n /** Whether icon indicators should be hidden for multiple-selection button toggle groups. */\n hideMultipleSelectionIndicator?: boolean;\n /** Whether disabled toggle buttons should be interactive. */\n disabledInteractive?: boolean;\n}\n\n/**\n * Injection token that can be used to configure the\n * default options for all button toggles within an app.\n */\nexport const MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS = new InjectionToken<MatButtonToggleDefaultOptions>(\n 'MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS',\n {\n providedIn: 'root',\n factory: () => ({\n hideSingleSelectionIndicator: false,\n hideMultipleSelectionIndicator: false,\n disabledInteractive: false,\n }),\n },\n);\n\n/**\n * Injection token that can be used to reference instances of `MatButtonToggleGroup`.\n * It serves as alternative token to the actual `MatButtonToggleGroup` class which\n * could cause unnecessary retention of the class and its component metadata.\n */\nexport const MAT_BUTTON_TOGGLE_GROUP = new InjectionToken<MatButtonToggleGroup>(\n 'MatButtonToggleGroup',\n);\n\n/**\n * Provider Expression that allows mat-button-toggle-group to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MatButtonToggleGroup),\n multi: true,\n};\n\n/** Change event object emitted by button toggle. */\nexport class MatButtonToggleChange {\n constructor(\n /** The button toggle that emits the event. */\n public source: MatButtonToggle,\n\n /** The value assigned to the button toggle. */\n public value: any,\n ) {}\n}\n\n/** Exclusive selection button toggle group that behaves like a radio-button group. */\n@Directive({\n selector: 'mat-button-toggle-group',\n providers: [\n MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR,\n {provide: MAT_BUTTON_TOGGLE_GROUP, useExisting: MatButtonToggleGroup},\n ],\n host: {\n 'class': 'mat-button-toggle-group',\n '(keydown)': '_keydown($event)',\n '[attr.role]': \"multiple ? 'group' : 'radiogroup'\",\n '[attr.aria-disabled]': 'disabled',\n '[class.mat-button-toggle-vertical]': 'vertical',\n '[class.mat-button-toggle-group-appearance-standard]': 'appearance === \"standard\"',\n },\n exportAs: 'matButtonToggleGroup',\n})\nexport class MatButtonToggleGroup implements ControlValueAccessor, OnInit, AfterContentInit {\n private _changeDetector = inject(ChangeDetectorRef);\n private _dir = inject(Directionality, {optional: true});\n\n private _multiple = false;\n private _disabled = false;\n private _disabledInteractive = false;\n private _selectionModel!: SelectionModel<MatButtonToggle>;\n\n /**\n * Reference to the raw value that the consumer tried to assign. The real\n * value will exclude any values from this one that don't correspond to a\n * toggle. Useful for the cases where the value is assigned before the toggles\n * have been initialized or at the same that they're being swapped out.\n */\n private _rawValue: any;\n\n /**\n * The method to be called in order to update ngModel.\n * Now `ngModel` binding is not supported in multiple selection mode.\n */\n _controlValueAccessorChangeFn: (value: any) => void = () => {};\n\n /** onTouch function registered via registerOnTouch (ControlValueAccessor). */\n _onTouched: () => any = () => {};\n\n /** Child button toggle buttons. */\n @ContentChildren(forwardRef(() => MatButtonToggle), {\n // Note that this would technically pick up toggles\n // from nested groups, but that's not a case that we support.\n descendants: true,\n })\n _buttonToggles!: QueryList<MatButtonToggle>;\n\n /** The appearance for all the buttons in the group. */\n @Input() appearance: MatButtonToggleAppearance;\n\n /** `name` attribute for the underlying `input` element. */\n @Input()\n get name(): string {\n return this._name;\n }\n set name(value: string) {\n this._name = value;\n this._markButtonsForCheck();\n }\n private _name = inject(_IdGenerator).getId('mat-button-toggle-group-');\n\n /** Whether the toggle group is vertical. */\n @Input({transform: booleanAttribute}) vertical: boolean = false;\n\n /** Value of the toggle group. */\n @Input()\n get value(): any {\n const selected = this._selectionModel ? this._selectionModel.selected : [];\n\n if (this.multiple) {\n return selected.map(toggle => toggle.value);\n }\n\n return selected[0] ? selected[0].value : undefined;\n }\n set value(newValue: any) {\n this._setSelectionByValue(newValue);\n this.valueChange.emit(this.value);\n }\n\n /**\n * Event that emits whenever the value of the group changes.\n * Used to facilitate two-way data binding.\n * @docs-private\n */\n @Output() readonly valueChange = new EventEmitter<any>();\n\n /** Selected button toggles in the group. */\n get selected(): MatButtonToggle | MatButtonToggle[] {\n const selected = this._selectionModel ? this._selectionModel.selected : [];\n return this.multiple ? selected : selected[0] || null;\n }\n\n /** Whether multiple button toggles can be selected. */\n @Input({transform: booleanAttribute})\n get multiple(): boolean {\n return this._multiple;\n }\n set multiple(value: boolean) {\n this._multiple = value;\n this._markButtonsForCheck();\n }\n\n /** Whether multiple button toggle group is disabled. */\n @Input({transform: booleanAttribute})\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = value;\n this._markButtonsForCheck();\n }\n\n /** Whether buttons in the group should be interactive while they're disabled. */\n @Input({transform: booleanAttribute})\n get disabledInteractive(): boolean {\n return this._disabledInteractive;\n }\n set disabledInteractive(value: boolean) {\n this._disabledInteractive = value;\n this._markButtonsForCheck();\n }\n\n /** The layout direction of the toggle button group. */\n get dir(): Direction {\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n }\n\n /** Event emitted when the group's value changes. */\n @Output() readonly change: EventEmitter<MatButtonToggleChange> =\n new EventEmitter<MatButtonToggleChange>();\n\n /** Whether checkmark indicator for single-selection button toggle groups is hidden. */\n @Input({transform: booleanAttribute})\n get hideSingleSelectionIndicator(): boolean {\n return this._hideSingleSelectionIndicator;\n }\n set hideSingleSelectionIndicator(value: boolean) {\n this._hideSingleSelectionIndicator = value;\n this._markButtonsForCheck();\n }\n private _hideSingleSelectionIndicator: boolean;\n\n /** Whether checkmark indicator for multiple-selection button toggle groups is hidden. */\n @Input({transform: booleanAttribute})\n get hideMultipleSelectionIndicator(): boolean {\n return this._hideMultipleSelectionIndicator;\n }\n set hideMultipleSelectionIndicator(value: boolean) {\n this._hideMultipleSelectionIndicator = value;\n this._markButtonsForCheck();\n }\n private _hideMultipleSelectionIndicator: boolean;\n\n constructor() {\n const defaultOptions = inject<MatButtonToggleDefaultOptions>(\n MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS,\n {optional: true},\n );\n\n this.appearance =\n defaultOptions && defaultOptions.appearance ? defaultOptions.appearance : 'standard';\n this._hideSingleSelectionIndicator = defaultOptions?.hideSingleSelectionIndicator ?? false;\n this._hideMultipleSelectionIndicator = defaultOptions?.hideMultipleSelectionIndicator ?? false;\n }\n\n ngOnInit() {\n this._selectionModel = new SelectionModel<MatButtonToggle>(this.multiple, undefined, false);\n }\n\n ngAfterContentInit() {\n this._selectionModel.select(...this._buttonToggles.filter(toggle => toggle.checked));\n if (!this.multiple) {\n this._initializeTabIndex();\n }\n }\n\n /**\n * Sets the model value. Implemented as part of ControlValueAccessor.\n * @param value Value to be set to the model.\n */\n writeValue(value: any) {\n this.value = value;\n this._changeDetector.markForCheck();\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void) {\n this._controlValueAccessorChangeFn = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: any) {\n this._onTouched = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n /** Handle keydown event calling to single-select button toggle. */\n protected _keydown(event: KeyboardEvent) {\n if (this.multiple || this.disabled || hasModifierKey(event)) {\n return;\n }\n\n const target = event.target as HTMLButtonElement;\n const buttonId = target.id;\n const index = this._buttonToggles.toArray().findIndex(toggle => {\n return toggle.buttonId === buttonId;\n });\n\n let nextButton: MatButtonToggle | null = null;\n switch (event.keyCode) {\n case SPACE:\n case ENTER:\n nextButton = this._buttonToggles.get(index) || null;\n break;\n case UP_ARROW:\n nextButton = this._getNextButton(index, -1);\n break;\n case LEFT_ARROW:\n nextButton = this._getNextButton(index, this.dir === 'ltr' ? -1 : 1);\n break;\n case DOWN_ARROW:\n nextButton = this._getNextButton(index, 1);\n break;\n case RIGHT_ARROW:\n nextButton = this._getNextButton(index, this.dir === 'ltr' ? 1 : -1);\n break;\n default:\n return;\n }\n\n if (nextButton) {\n event.preventDefault();\n nextButton._onButtonClick();\n nextButton.focus();\n }\n }\n\n /** Dispatch change event with current selection and group value. */\n _emitChangeEvent(toggle: MatButtonToggle): void {\n const event = new MatButtonToggleChange(toggle, this.value);\n this._rawValue = event.value;\n this._controlValueAccessorChangeFn(event.value);\n this.change.emit(event);\n }\n\n /**\n * Syncs a button toggle's selected state with the model value.\n * @param toggle Toggle to be synced.\n * @param select Whether the toggle should be selected.\n * @param isUserInput Whether the change was a result of a user interaction.\n * @param deferEvents Whether to defer emitting the change events.\n */\n _syncButtonToggle(\n toggle: MatButtonToggle,\n select: boolean,\n isUserInput = false,\n deferEvents = false,\n ) {\n // Deselect the currently-selected toggle, if we're in single-selection\n // mode and the button being toggled isn't selected at the moment.\n if (!this.multiple && this.selected && !toggle.checked) {\n (this.selected as MatButtonToggle).checked = false;\n }\n\n if (this._selectionModel) {\n if (select) {\n this._selectionModel.select(toggle);\n } else {\n this._selectionModel.deselect(toggle);\n }\n } else {\n deferEvents = true;\n }\n\n // We need to defer in some cases in order to avoid \"changed after checked errors\", however\n // the side-effect is that we may end up updating the model value out of sequence in others\n // The `deferEvents` flag allows us to decide whether to do it on a case-by-case basis.\n if (deferEvents) {\n Promise.resolve().then(() => this._updateModelValue(toggle, isUserInput));\n } else {\n this._updateModelValue(toggle, isUserInput);\n }\n }\n\n /** Checks whether a button toggle is selected. */\n _isSelected(toggle: MatButtonToggle) {\n return this._selectionModel && this._selectionModel.isSelected(toggle);\n }\n\n /** Determines whether a button toggle should be checked on init. */\n _isPrechecked(toggle: MatButtonToggle) {\n if (typeof this._rawValue === 'undefined') {\n return false;\n }\n\n if (this.multiple && Array.isArray(this._rawValue)) {\n return this._rawValue.some(value => toggle.value != null && value === toggle.value);\n }\n\n return toggle.value === this._rawValue;\n }\n\n /** Initializes the tabindex attribute using the radio pattern. */\n private _initializeTabIndex() {\n this._buttonToggles.forEach(toggle => {\n toggle.tabIndex = -1;\n });\n if (this.selected) {\n (this.selected as MatButtonToggle).tabIndex = 0;\n } else {\n for (let i = 0; i < this._buttonToggles.length; i++) {\n const toggle = this._buttonToggles.get(i)!;\n\n if (!toggle.disabled) {\n toggle.tabIndex = 0;\n break;\n }\n }\n }\n }\n\n /** Obtain the subsequent toggle to which the focus shifts. */\n private _getNextButton(startIndex: number, offset: number): MatButtonToggle | null {\n const items = this._buttonToggles;\n\n for (let i = 1; i <= items.length; i++) {\n const index = (startIndex + offset * i + items.length) % items.length;\n const item = items.get(index);\n\n if (item && !item.disabled) {\n return item;\n }\n }\n\n return null;\n }\n\n /** Updates the selection state of the toggles in the group based on a value. */\n private _setSelectionByValue(value: any | any[]) {\n this._rawValue = value;\n\n if (!this._buttonToggles) {\n return;\n }\n\n const toggles = this._buttonToggles.toArray();\n\n if (this.multiple && value) {\n if (!Array.isArray(value) && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Value must be an array in multiple-selection mode.');\n }\n\n this._clearSelection();\n value.forEach((currentValue: any) => this._selectValue(currentValue, toggles));\n } else {\n this._clearSelection();\n this._selectValue(value, toggles);\n }\n\n // In single selection mode we need at least one enabled toggle to always be focusable.\n if (!this.multiple && toggles.every(toggle => toggle.tabIndex === -1)) {\n for (const toggle of toggles) {\n if (!toggle.disabled) {\n toggle.tabIndex = 0;\n break;\n }\n }\n }\n }\n\n /** Clears the selected toggles. */\n private _clearSelection() {\n this._selectionModel.clear();\n this._buttonToggles.forEach(toggle => {\n toggle.checked = false;\n // If the button toggle is in single select mode, initialize the tabIndex.\n if (!this.multiple) {\n toggle.tabIndex = -1;\n }\n });\n }\n\n /** Selects a value if there's a toggle that corresponds to it. */\n private _selectValue(value: any, toggles: MatButtonToggle[]) {\n for (const toggle of toggles) {\n if (toggle.value === value) {\n toggle.checked = true;\n this._selectionModel.select(toggle);\n if (!this.multiple) {\n // If the button toggle is in single select mode, reset the tabIndex.\n toggle.tabIndex = 0;\n }\n break;\n }\n }\n }\n\n /** Syncs up the group's value with the model and emits the change event. */\n private _updateModelValue(toggle: MatButtonToggle, isUserInput: boolean) {\n // Only emit the change event for user input.\n if (isUserInput) {\n this._emitChangeEvent(toggle);\n }\n\n // Note: we emit this one no matter whether it was a user interaction, because\n // it is used by Angular to sync up the two-way data binding.\n this.valueChange.emit(this.value);\n }\n\n /** Marks all of the child button toggles to be checked. */\n private _markButtonsForCheck() {\n this._buttonToggles?.forEach(toggle => toggle._markForCheck());\n }\n}\n\n/** Single button inside of a toggle group. */\n@Component({\n selector: 'mat-button-toggle',\n templateUrl: 'button-toggle.html',\n styleUrl: 'button-toggle.css',\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matButtonToggle',\n host: {\n '[class.mat-button-toggle-standalone]': '!buttonToggleGroup',\n '[class.mat-button-toggle-checked]': 'checked',\n '[class.mat-button-toggle-disabled]': 'disabled',\n '[class.mat-button-toggle-disabled-interactive]': 'disabledInteractive',\n '[class.mat-button-toggle-appearance-standard]': 'appearance === \"standard\"',\n 'class': 'mat-button-toggle',\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n '[attr.id]': 'id',\n '[attr.name]': 'null',\n '(focus)': 'focus()',\n 'role': 'presentation',\n },\n imports: [MatRipple, MatPseudoCheckbox],\n})\nexport class MatButtonToggle implements OnInit, AfterViewInit, OnDestroy {\n private _changeDetectorRef = inject(ChangeDetectorRef);\n private _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private _focusMonitor = inject(FocusMonitor);\n private _idGenerator = inject(_IdGenerator);\n private _animationDisabled = _animationsDisabled();\n private _checked = false;\n\n /**\n * Attached to the aria-label attribute of the host element. In most cases, aria-labelledby will\n * take precedence so this may be omitted.\n */\n @Input('aria-label') ariaLabel!: string;\n\n /**\n * Users can specify the `aria-labelledby` attribute which will be forwarded to the input element\n */\n @Input('aria-labelledby') ariaLabelledby: string | null = null;\n\n /** Underlying native `button` element. */\n @ViewChild('button') _buttonElement!: ElementRef<HTMLButtonElement>;\n\n /** The parent button toggle group (exclusive selection). Optional. */\n buttonToggleGroup: MatButtonToggleGroup;\n\n /** Unique ID for the underlying `button` element. */\n get buttonId(): string {\n return `${this.id}-button`;\n }\n\n /** The unique ID for this button toggle. */\n @Input() id!: string;\n\n /** HTML's 'name' attribute used to group radios for unique selection. */\n @Input() name!: string;\n\n /** MatButtonToggleGroup reads this to assign its own value. */\n @Input() value: any;\n\n /** Tabindex of the toggle. */\n @Input()\n get tabIndex(): number | null {\n return this._tabIndex();\n }\n set tabIndex(value: number | null) {\n this._tabIndex.set(value);\n }\n private _tabIndex: WritableSignal<number | null>;\n\n /** Whether ripples are disabled on the button toggle. */\n @Input({transform: booleanAttribute}) disableRipple: boolean = false;\n\n /** The appearance style of the button. */\n @Input()\n get appearance(): MatButtonToggleAppearance {\n return this.buttonToggleGroup ? this.buttonToggleGroup.appearance : this._appearance;\n }\n set appearance(value: MatButtonToggleAppearance) {\n this._appearance = value;\n }\n private _appearance: MatButtonToggleAppearance;\n\n /** Whether the button is checked. */\n @Input({transform: booleanAttribute})\n get checked(): boolean {\n return this.buttonToggleGroup ? this.buttonToggleGroup._isSelected(this) : this._checked;\n }\n set checked(value: boolean) {\n if (value !== this._checked) {\n this._checked = value;\n\n if (this.buttonToggleGroup) {\n this.buttonToggleGroup._syncButtonToggle(this, this._checked);\n }\n\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /** Whether the button is disabled. */\n @Input({transform: booleanAttribute})\n get disabled(): boolean {\n return this._disabled || (this.buttonToggleGroup && this.buttonToggleGroup.disabled);\n }\n set disabled(value: boolean) {\n this._disabled = value;\n }\n private _disabled: boolean = false;\n\n /** Whether the button should remain interactive when it is disabled. */\n @Input({transform: booleanAttribute})\n get disabledInteractive(): boolean {\n return (\n this._disabledInteractive ||\n (this.buttonToggleGroup !== null && this.buttonToggleGroup.disabledInteractive)\n );\n }\n set disabledInteractive(value: boolean) {\n this._disabledInteractive = value;\n }\n private _disabledInteractive: boolean;\n\n /** Event emitted when the group value changes. */\n @Output() readonly change: EventEmitter<MatButtonToggleChange> =\n new EventEmitter<MatButtonToggleChange>();\n\n constructor() {\n inject(_CdkPrivateStyleLoader).load(_StructuralStylesLoader);\n const toggleGroup = inject<MatButtonToggleGroup>(MAT_BUTTON_TOGGLE_GROUP, {optional: true})!;\n const defaultTabIndex = inject(new HostAttributeToken('tabindex'), {optional: true}) || '';\n const defaultOptions = inject<MatButtonToggleDefaultOptions>(\n MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS,\n {optional: true},\n );\n\n this._tabIndex = signal<number | null>(parseInt(defaultTabIndex) || 0);\n this.buttonToggleGroup = toggleGroup;\n this._appearance =\n defaultOptions && defaultOptions.appearance ? defaultOptions.appearance : 'standard';\n this._disabledInteractive = defaultOptions?.disabledInteractive ?? false;\n }\n\n ngOnInit() {\n const group = this.buttonToggleGroup;\n this.id = this.id || this._idGenerator.getId('mat-button-toggle-');\n\n if (group) {\n if (group._isPrechecked(this)) {\n this.checked = true;\n } else if (group._isSelected(this) !== this._checked) {\n // As side effect of the circular dependency between the toggle group and the button,\n // we may end up in a state where the button is supposed to be checked on init, but it\n // isn't, because the checked value was assigned too early. This can happen when Ivy\n // assigns the static input value before the `ngOnInit` has run.\n group._syncButtonToggle(this, this._checked);\n }\n }\n }\n\n ngAfterViewInit() {\n // This serves two purposes:\n // 1. We don't want the animation to fire on the first render for pre-checked toggles so we\n // delay adding the class until the view is rendered.\n // 2. We don't want to animate if animations are disabled.\n if (!this._animationDisabled) {\n this._elementRef.nativeElement.classList.add('mat-button-toggle-animations-enabled');\n }\n\n this._focusMonitor.monitor(this._elementRef, true);\n }\n\n ngOnDestroy() {\n const group = this.buttonToggleGroup;\n\n this._focusMonitor.stopMonitoring(this._elementRef);\n\n // Remove the toggle from the selection once it's destroyed. Needs to happen\n // on the next tick in order to avoid \"changed after checked\" errors.\n if (group && group._isSelected(this)) {\n group._syncButtonToggle(this, false, false, true);\n }\n }\n\n /** Focuses the button. */\n focus(options?: FocusOptions): void {\n this._buttonElement.nativeElement.focus(options);\n }\n\n /** Checks the button toggle due to an interaction with the underlying native button. */\n _onButtonClick() {\n if (this.disabled) {\n return;\n }\n\n const newChecked = this.isSingleSelector() ? true : !this._checked;\n\n if (newChecked !== this._checked) {\n this._checked = newChecked;\n if (this.buttonToggleGroup) {\n this.buttonToggleGroup._syncButtonToggle(this, this._checked, true);\n this.buttonToggleGroup._onTouched();\n }\n }\n\n if (this.isSingleSelector()) {\n const focusable = this.buttonToggleGroup._buttonToggles.find(toggle => {\n return toggle.tabIndex === 0;\n });\n // Modify the tabindex attribute of the last focusable button toggle to -1.\n if (focusable) {\n focusable.tabIndex = -1;\n }\n // Modify the tabindex attribute of the presently selected button toggle to 0.\n this.tabIndex = 0;\n }\n\n // Emit a change event when it's the single selector\n this.change.emit(new MatButtonToggleChange(this, this.value));\n }\n\n /**\n * Marks the button toggle as needing checking for change detection.\n * This method is exposed because the parent button toggle group will directly\n * update bound properties of the radio button.\n */\n _markForCheck() {\n // When the group value changes, the button will not be notified.\n // Use `markForCheck` to explicit update button toggle's status.\n this._changeDetectorRef.markForCheck();\n }\n\n /** Gets the name that should be assigned to the inner DOM node. */\n _getButtonName(): string | null {\n if (this.isSingleSelector()) {\n return this.buttonToggleGroup.name;\n }\n return this.name || null;\n }\n\n /** Whether the toggle is in single selection mode. */\n isSingleSelector(): boolean {\n return this.buttonToggleGroup && !this.buttonToggleGroup.multiple;\n }\n}\n","<button #button class=\"mat-button-toggle-button mat-focus-indicator\"\n type=\"button\"\n [id]=\"buttonId\"\n [attr.role]=\"isSingleSelector() ? 'radio' : 'button'\"\n [attr.tabindex]=\"disabled && !disabledInteractive ? -1 : tabIndex\"\n [attr.aria-pressed]=\"!isSingleSelector() ? checked : null\"\n [attr.aria-checked]=\"isSingleSelector() ? checked : null\"\n [disabled]=\"(disabled && !disabledInteractive) || null\"\n [attr.name]=\"_getButtonName()\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-disabled]=\"disabled && disabledInteractive ? 'true' : null\"\n (click)=\"_onButtonClick()\">\n @if (buttonToggleGroup && (\n !buttonToggleGroup.multiple && !buttonToggleGroup.hideSingleSelectionIndicator ||\n buttonToggleGroup.multiple && !buttonToggleGroup.hideMultipleSelectionIndicator)\n ) {\n <div class=\"mat-button-toggle-checkbox-wrapper\">\n <mat-pseudo-checkbox\n [disabled]=\"disabled\"\n state=\"checked\"\n aria-hidden=\"true\"\n appearance=\"minimal\"/>\n </div>\n }\n\n <span class=\"mat-button-toggle-label-content\">\n <ng-content></ng-content>\n </span>\n</button>\n\n<span class=\"mat-button-toggle-focus-overlay\"></span>\n<span class=\"mat-button-toggle-ripple\" matRipple\n [matRippleTrigger]=\"button\"\n [matRippleDisabled]=\"disableRipple || disabled\">\n</span>\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {NgModule} from '@angular/core';\nimport {BidiModule} from '@angular/cdk/bidi';\nimport {MatRippleModule} from '../core';\nimport {MatButtonToggle, MatButtonToggleGroup} from './button-toggle';\n\n@NgModule({\n imports: [MatRippleModule, MatButtonToggleGroup, MatButtonToggle],\n exports: [BidiModule, MatButtonToggleGroup, MatButtonToggle],\n})\nexport class MatButtonToggleModule {}\n"],"names":["MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS","InjectionToken","providedIn","factory","hideSingleSelectionIndicator","hideMultipleSelectionIndicator","disabledInteractive","MAT_BUTTON_TOGGLE_GROUP","MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","MatButtonToggleGroup","multi","MatButtonToggleChange","source","value","constructor","_changeDetector","inject","ChangeDetectorRef","_dir","Directionality","optional","_multiple","_disabled","_disabledInteractive","_selectionModel","_rawValue","_controlValueAccessorChangeFn","_onTouched","_buttonToggles","appearance","name","_name","_markButtonsForCheck","_IdGenerator","getId","vertical","selected","multiple","map","toggle","undefined","newValue","_setSelectionByValue","valueChange","emit","EventEmitter","disabled","dir","change","_hideSingleSelectionIndicator","_hideMultipleSelectionIndicator","defaultOptions","ngOnInit","SelectionModel","ngAfterContentInit","select","filter","checked","_initializeTabIndex","writeValue","markForCheck","registerOnChange","fn","registerOnTouched","setDisabledState","isDisabled","_keydown","event","hasModifierKey","target","buttonId","id","index","toArray","findIndex","nextButton","keyCode","SPACE","ENTER","get","UP_ARROW","_getNextButton","LEFT_ARROW","DOWN_ARROW","RIGHT_ARROW","preventDefault","_onButtonClick","focus","_emitChangeEvent","_syncButtonToggle","isUserInput","deferEvents","deselect","Promise","resolve","then","_updateModelValue","_isSelected","isSelected","_isPrechecked","Array","isArray","some","forEach","tabIndex","i","length","startIndex","offset","items","item","toggles","ngDevMode","Error","_clearSelection","currentValue","_selectValue","every","clear","_markForCheck","deps","i0","ɵɵFactoryTarget","Directive","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","isStandalone","selector","inputs","booleanAttribute","outputs","host","listeners","properties","classAttribute","providers","queries","propertyName","predicate","MatButtonToggle","descendants","exportAs","ngImport","decorators","args","ContentChildren","Input","transform","Output","_changeDetectorRef","_elementRef","ElementRef","_focusMonitor","FocusMonitor","_idGenerator","_animationDisabled","_animationsDisabled","_checked","ariaLabel","ariaLabelledby","_buttonElement","buttonToggleGroup","_tabIndex","set","disableRipple","_appearance","_CdkPrivateStyleLoader","load","_StructuralStylesLoader","toggleGroup","defaultTabIndex","HostAttributeToken","signal","parseInt","group","ngAfterViewInit","nativeElement","classList","add","monitor","ngOnDestroy","stopMonitoring","options","newChecked","isSingleSelector","focusable","find","_getButtonName","Component","ɵcmp","ɵɵngDeclareComponent","attributes","viewQueries","first","template","styles","dependencies","kind","MatRipple","MatPseudoCheckbox","encapsulation","ViewEncapsulation","None","imports","ViewChild","MatButtonToggleModule","NgModule","MatRippleModule","exports","BidiModule","ɵinj","ɵɵngDeclareInjector"],"mappings":"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"}