@@ -33,7 +33,7 @@ import {
33
33
booleanAttribute ,
34
34
} from '@angular/core' ;
35
35
import { ControlValueAccessor , NG_VALUE_ACCESSOR } from '@angular/forms' ;
36
- import { MatRipple } from '@angular/material/core' ;
36
+ import { MatRipple , MatPseudoCheckbox } from '@angular/material/core' ;
37
37
38
38
/**
39
39
* @deprecated No longer used.
@@ -54,6 +54,10 @@ export interface MatButtonToggleDefaultOptions {
54
54
* setting an appearance on a button toggle or group.
55
55
*/
56
56
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 ;
57
61
}
58
62
59
63
/**
@@ -62,8 +66,19 @@ export interface MatButtonToggleDefaultOptions {
62
66
*/
63
67
export const MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS = new InjectionToken < MatButtonToggleDefaultOptions > (
64
68
'MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS' ,
69
+ {
70
+ providedIn : 'root' ,
71
+ factory : MAT_BUTTON_TOGGLE_GROUP_DEFAULT_OPTIONS_FACTORY ,
72
+ } ,
65
73
) ;
66
74
75
+ export function MAT_BUTTON_TOGGLE_GROUP_DEFAULT_OPTIONS_FACTORY ( ) : MatButtonToggleDefaultOptions {
76
+ return {
77
+ hideSingleSelectionIndicator : false ,
78
+ hideMultipleSelectionIndicator : false ,
79
+ } ;
80
+ }
81
+
67
82
/**
68
83
* Injection token that can be used to reference instances of `MatButtonToggleGroup`.
69
84
* It serves as alternative token to the actual `MatButtonToggleGroup` class which
@@ -215,6 +230,28 @@ export class MatButtonToggleGroup implements ControlValueAccessor, OnInit, After
215
230
@Output ( ) readonly change : EventEmitter < MatButtonToggleChange > =
216
231
new EventEmitter < MatButtonToggleChange > ( ) ;
217
232
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
+
218
255
constructor (
219
256
private _changeDetector : ChangeDetectorRef ,
220
257
@Optional ( )
@@ -223,6 +260,8 @@ export class MatButtonToggleGroup implements ControlValueAccessor, OnInit, After
223
260
) {
224
261
this . appearance =
225
262
defaultOptions && defaultOptions . appearance ? defaultOptions . appearance : 'standard' ;
263
+ this . hideSingleSelectionIndicator = defaultOptions ?. hideSingleSelectionIndicator ?? false ;
264
+ this . hideMultipleSelectionIndicator = defaultOptions ?. hideMultipleSelectionIndicator ?? false ;
226
265
}
227
266
228
267
ngOnInit ( ) {
@@ -401,7 +440,7 @@ export class MatButtonToggleGroup implements ControlValueAccessor, OnInit, After
401
440
'role' : 'presentation' ,
402
441
} ,
403
442
standalone : true ,
404
- imports : [ MatRipple ] ,
443
+ imports : [ MatRipple , MatPseudoCheckbox ] ,
405
444
} )
406
445
export class MatButtonToggle implements OnInit , AfterViewInit , OnDestroy {
407
446
private _checked = false ;
0 commit comments