@@ -31,24 +31,15 @@ import {
31
31
} from '@angular/core' ;
32
32
import { ControlValueAccessor , NG_VALUE_ACCESSOR } from '@angular/forms' ;
33
33
import {
34
- CanDisable ,
35
- CanDisableCtor ,
36
34
CanDisableRipple ,
37
- CanDisableRippleCtor ,
38
- mixinDisabled ,
39
35
mixinDisableRipple ,
36
+ CanDisableRippleCtor ,
40
37
} from '@angular/material/core' ;
41
38
42
39
43
40
/** Acceptable types for a button toggle. */
44
41
export type ToggleType = 'checkbox' | 'radio' ;
45
42
46
- // Boilerplate for applying mixins to MatButtonToggleGroup and MatButtonToggleGroupMultiple
47
- /** @docs -private */
48
- export class MatButtonToggleGroupBase { }
49
- export const _MatButtonToggleGroupMixinBase : CanDisableCtor & typeof MatButtonToggleGroupBase =
50
- mixinDisabled ( MatButtonToggleGroupBase ) ;
51
-
52
43
/**
53
44
* Provider Expression that allows mat-button-toggle-group to register as a ControlValueAccessor.
54
45
* This allows it to support [(ngModel)].
@@ -85,7 +76,6 @@ export class MatButtonToggleChange {
85
76
MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR ,
86
77
{ provide : MatButtonToggleGroupMultiple , useExisting : MatButtonToggleGroup } ,
87
78
] ,
88
- inputs : [ 'disabled' ] ,
89
79
host : {
90
80
'role' : 'group' ,
91
81
'class' : 'mat-button-toggle-group' ,
@@ -94,11 +84,11 @@ export class MatButtonToggleChange {
94
84
} ,
95
85
exportAs : 'matButtonToggleGroup' ,
96
86
} )
97
- export class MatButtonToggleGroup extends _MatButtonToggleGroupMixinBase implements
98
- ControlValueAccessor , CanDisable , OnInit , AfterContentInit {
87
+ export class MatButtonToggleGroup implements ControlValueAccessor , OnInit , AfterContentInit {
99
88
100
89
private _vertical = false ;
101
90
private _multiple = false ;
91
+ private _disabled = false ;
102
92
private _selectionModel : SelectionModel < MatButtonToggle > ;
103
93
104
94
/**
@@ -176,13 +166,22 @@ export class MatButtonToggleGroup extends _MatButtonToggleGroupMixinBase impleme
176
166
this . _multiple = coerceBooleanProperty ( value ) ;
177
167
}
178
168
169
+ /** Whether multiple button toggle group is disabled. */
170
+ @Input ( )
171
+ get disabled ( ) : boolean { return this . _disabled ; }
172
+ set disabled ( value : boolean ) {
173
+ this . _disabled = coerceBooleanProperty ( value ) ;
174
+
175
+ if ( this . _buttonToggles ) {
176
+ this . _buttonToggles . forEach ( toggle => toggle . _markForCheck ( ) ) ;
177
+ }
178
+ }
179
+
179
180
/** Event emitted when the group's value changes. */
180
181
@Output ( ) readonly change : EventEmitter < MatButtonToggleChange > =
181
182
new EventEmitter < MatButtonToggleChange > ( ) ;
182
183
183
- constructor ( private _changeDetector : ChangeDetectorRef ) {
184
- super ( ) ;
185
- }
184
+ constructor ( private _changeDetector : ChangeDetectorRef ) { }
186
185
187
186
ngOnInit ( ) {
188
187
this . _selectionModel = new SelectionModel < MatButtonToggle > ( this . multiple , undefined , false ) ;
@@ -214,10 +213,6 @@ export class MatButtonToggleGroup extends _MatButtonToggleGroupMixinBase impleme
214
213
// Implemented as part of ControlValueAccessor.
215
214
setDisabledState ( isDisabled : boolean ) : void {
216
215
this . disabled = isDisabled ;
217
-
218
- if ( this . _buttonToggles ) {
219
- this . _buttonToggles . forEach ( toggle => toggle . _markForCheck ( ) ) ;
220
- }
221
216
}
222
217
223
218
/** Dispatch change event with current selection and group value. */
0 commit comments