7
7
*/
8
8
9
9
import { FocusMonitor } from '@angular/cdk/a11y' ;
10
- import { BooleanInput , coerceBooleanProperty } from '@angular/cdk/coercion' ;
11
10
import { SelectionModel } from '@angular/cdk/collections' ;
12
11
import {
13
12
AfterContentInit ,
@@ -31,9 +30,9 @@ import {
31
30
InjectionToken ,
32
31
Inject ,
33
32
AfterViewInit ,
33
+ booleanAttribute ,
34
34
} from '@angular/core' ;
35
35
import { ControlValueAccessor , NG_VALUE_ACCESSOR } from '@angular/forms' ;
36
- import { CanDisableRipple , mixinDisableRipple } from '@angular/material/core' ;
37
36
38
37
/**
39
38
* @deprecated No longer used.
@@ -115,7 +114,6 @@ export class MatButtonToggleChange {
115
114
exportAs : 'matButtonToggleGroup' ,
116
115
} )
117
116
export class MatButtonToggleGroup implements ControlValueAccessor , OnInit , AfterContentInit {
118
- private _vertical = false ;
119
117
private _multiple = false ;
120
118
private _disabled = false ;
121
119
private _selectionModel : SelectionModel < MatButtonToggle > ;
@@ -160,13 +158,7 @@ export class MatButtonToggleGroup implements ControlValueAccessor, OnInit, After
160
158
private _name = `mat-button-toggle-group-${ uniqueIdCounter ++ } ` ;
161
159
162
160
/** Whether the toggle group is vertical. */
163
- @Input ( )
164
- get vertical ( ) : boolean {
165
- return this . _vertical ;
166
- }
167
- set vertical ( value : BooleanInput ) {
168
- this . _vertical = coerceBooleanProperty ( value ) ;
169
- }
161
+ @Input ( { transform : booleanAttribute } ) vertical : boolean ;
170
162
171
163
/** Value of the toggle group. */
172
164
@Input ( )
@@ -198,22 +190,22 @@ export class MatButtonToggleGroup implements ControlValueAccessor, OnInit, After
198
190
}
199
191
200
192
/** Whether multiple button toggles can be selected. */
201
- @Input ( )
193
+ @Input ( { transform : booleanAttribute } )
202
194
get multiple ( ) : boolean {
203
195
return this . _multiple ;
204
196
}
205
- set multiple ( value : BooleanInput ) {
206
- this . _multiple = coerceBooleanProperty ( value ) ;
197
+ set multiple ( value : boolean ) {
198
+ this . _multiple = value ;
207
199
this . _markButtonsForCheck ( ) ;
208
200
}
209
201
210
202
/** Whether multiple button toggle group is disabled. */
211
- @Input ( )
203
+ @Input ( { transform : booleanAttribute } )
212
204
get disabled ( ) : boolean {
213
205
return this . _disabled ;
214
206
}
215
- set disabled ( value : BooleanInput ) {
216
- this . _disabled = coerceBooleanProperty ( value ) ;
207
+ set disabled ( value : boolean ) {
208
+ this . _disabled = value ;
217
209
this . _markButtonsForCheck ( ) ;
218
210
}
219
211
@@ -385,10 +377,6 @@ export class MatButtonToggleGroup implements ControlValueAccessor, OnInit, After
385
377
}
386
378
}
387
379
388
- // Boilerplate for applying mixins to the MatButtonToggle class.
389
- /** @docs -private */
390
- const _MatButtonToggleBase = mixinDisableRipple ( class { } ) ;
391
-
392
380
/** Single button inside of a toggle group. */
393
381
@Component ( {
394
382
selector : 'mat-button-toggle' ,
@@ -397,7 +385,6 @@ const _MatButtonToggleBase = mixinDisableRipple(class {});
397
385
encapsulation : ViewEncapsulation . None ,
398
386
exportAs : 'matButtonToggle' ,
399
387
changeDetection : ChangeDetectionStrategy . OnPush ,
400
- inputs : [ 'disableRipple' ] ,
401
388
host : {
402
389
'[class.mat-button-toggle-standalone]' : '!buttonToggleGroup' ,
403
390
'[class.mat-button-toggle-checked]' : 'checked' ,
@@ -412,10 +399,7 @@ const _MatButtonToggleBase = mixinDisableRipple(class {});
412
399
'role' : 'presentation' ,
413
400
} ,
414
401
} )
415
- export class MatButtonToggle
416
- extends _MatButtonToggleBase
417
- implements OnInit , AfterViewInit , CanDisableRipple , OnDestroy
418
- {
402
+ export class MatButtonToggle implements OnInit , AfterViewInit , OnDestroy {
419
403
private _checked = false ;
420
404
421
405
/**
@@ -452,6 +436,9 @@ export class MatButtonToggle
452
436
/** Tabindex for the toggle. */
453
437
@Input ( ) tabIndex : number | null ;
454
438
439
+ /** Whether ripples are disabled on the button toggle. */
440
+ @Input ( { transform : booleanAttribute } ) disableRipple : boolean ;
441
+
455
442
/** The appearance style of the button. */
456
443
@Input ( )
457
444
get appearance ( ) : MatButtonToggleAppearance {
@@ -463,15 +450,13 @@ export class MatButtonToggle
463
450
private _appearance : MatButtonToggleAppearance ;
464
451
465
452
/** Whether the button is checked. */
466
- @Input ( )
453
+ @Input ( { transform : booleanAttribute } )
467
454
get checked ( ) : boolean {
468
455
return this . buttonToggleGroup ? this . buttonToggleGroup . _isSelected ( this ) : this . _checked ;
469
456
}
470
- set checked ( value : BooleanInput ) {
471
- const newValue = coerceBooleanProperty ( value ) ;
472
-
473
- if ( newValue !== this . _checked ) {
474
- this . _checked = newValue ;
457
+ set checked ( value : boolean ) {
458
+ if ( value !== this . _checked ) {
459
+ this . _checked = value ;
475
460
476
461
if ( this . buttonToggleGroup ) {
477
462
this . buttonToggleGroup . _syncButtonToggle ( this , this . _checked ) ;
@@ -482,12 +467,12 @@ export class MatButtonToggle
482
467
}
483
468
484
469
/** Whether the button is disabled. */
485
- @Input ( )
470
+ @Input ( { transform : booleanAttribute } )
486
471
get disabled ( ) : boolean {
487
472
return this . _disabled || ( this . buttonToggleGroup && this . buttonToggleGroup . disabled ) ;
488
473
}
489
- set disabled ( value : BooleanInput ) {
490
- this . _disabled = coerceBooleanProperty ( value ) ;
474
+ set disabled ( value : boolean ) {
475
+ this . _disabled = value ;
491
476
}
492
477
private _disabled : boolean = false ;
493
478
@@ -505,8 +490,6 @@ export class MatButtonToggle
505
490
@Inject ( MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS )
506
491
defaultOptions ?: MatButtonToggleDefaultOptions ,
507
492
) {
508
- super ( ) ;
509
-
510
493
const parsedTabIndex = Number ( defaultTabIndex ) ;
511
494
this . tabIndex = parsedTabIndex || parsedTabIndex === 0 ? parsedTabIndex : null ;
512
495
this . buttonToggleGroup = toggleGroup ;
0 commit comments