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