@@ -33,7 +33,7 @@ import {
3333 booleanAttribute ,
3434} from '@angular/core' ;
3535import { ControlValueAccessor , NG_VALUE_ACCESSOR } from '@angular/forms' ;
36- import { MatRipple } from '@angular/material/core' ;
36+ import { MatRipple , MatPseudoCheckbox } from '@angular/material/core' ;
3737
3838/**
3939 * @deprecated No longer used.
@@ -54,6 +54,10 @@ export interface MatButtonToggleDefaultOptions {
5454 * setting an appearance on a button toggle or group.
5555 */
5656 appearance ?: MatButtonToggleAppearance ;
57+ /** Whetehr icon indicators should be hidden for single-selection button toggle groups. */
58+ hideSingleSelectionIndicator ?: boolean ;
59+ /** Whether icon indicators should be hidden for multiple-selection button toggle groups. */
60+ hideMultipleSelectionIndicator ?: boolean ;
5761}
5862
5963/**
@@ -62,8 +66,19 @@ export interface MatButtonToggleDefaultOptions {
6266 */
6367export const MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS = new InjectionToken < MatButtonToggleDefaultOptions > (
6468 'MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS' ,
69+ {
70+ providedIn : 'root' ,
71+ factory : MAT_BUTTON_TOGGLE_GROUP_DEFAULT_OPTIONS_FACTORY ,
72+ } ,
6573) ;
6674
75+ export function MAT_BUTTON_TOGGLE_GROUP_DEFAULT_OPTIONS_FACTORY ( ) : MatButtonToggleDefaultOptions {
76+ return {
77+ hideSingleSelectionIndicator : false ,
78+ hideMultipleSelectionIndicator : false ,
79+ } ;
80+ }
81+
6782/**
6883 * Injection token that can be used to reference instances of `MatButtonToggleGroup`.
6984 * It serves as alternative token to the actual `MatButtonToggleGroup` class which
@@ -215,6 +230,28 @@ export class MatButtonToggleGroup implements ControlValueAccessor, OnInit, After
215230 @Output ( ) readonly change : EventEmitter < MatButtonToggleChange > =
216231 new EventEmitter < MatButtonToggleChange > ( ) ;
217232
233+ /** Whether checkmark indicator for single-selection button toggle groups is hidden. */
234+ @Input ( { transform : booleanAttribute } )
235+ get hideSingleSelectionIndicator ( ) : boolean {
236+ return this . _hideSingleSelectionIndicator ;
237+ }
238+ set hideSingleSelectionIndicator ( value : boolean ) {
239+ this . _hideSingleSelectionIndicator = value ;
240+ this . _markButtonsForCheck ( ) ;
241+ }
242+ private _hideSingleSelectionIndicator : boolean ;
243+
244+ /** Whether checkmark indicator for multiple-selection button toggle groups is hidden. */
245+ @Input ( { transform : booleanAttribute } )
246+ get hideMultipleSelectionIndicator ( ) : boolean {
247+ return this . _hideMultipleSelectionIndicator ;
248+ }
249+ set hideMultipleSelectionIndicator ( value : boolean ) {
250+ this . _hideMultipleSelectionIndicator = value ;
251+ this . _markButtonsForCheck ( ) ;
252+ }
253+ private _hideMultipleSelectionIndicator : boolean ;
254+
218255 constructor (
219256 private _changeDetector : ChangeDetectorRef ,
220257 @Optional ( )
@@ -223,6 +260,8 @@ export class MatButtonToggleGroup implements ControlValueAccessor, OnInit, After
223260 ) {
224261 this . appearance =
225262 defaultOptions && defaultOptions . appearance ? defaultOptions . appearance : 'standard' ;
263+ this . hideSingleSelectionIndicator = defaultOptions ?. hideSingleSelectionIndicator ?? false ;
264+ this . hideMultipleSelectionIndicator = defaultOptions ?. hideMultipleSelectionIndicator ?? false ;
226265 }
227266
228267 ngOnInit ( ) {
@@ -401,7 +440,7 @@ export class MatButtonToggleGroup implements ControlValueAccessor, OnInit, After
401440 'role' : 'presentation' ,
402441 } ,
403442 standalone : true ,
404- imports : [ MatRipple ] ,
443+ imports : [ MatRipple , MatPseudoCheckbox ] ,
405444} )
406445export class MatButtonToggle implements OnInit , AfterViewInit , OnDestroy {
407446 private _checked = false ;
0 commit comments