@@ -31,24 +31,15 @@ import {
3131} from '@angular/core' ;
3232import { ControlValueAccessor , NG_VALUE_ACCESSOR } from '@angular/forms' ;
3333import {
34- CanDisable ,
35- CanDisableCtor ,
3634 CanDisableRipple ,
37- CanDisableRippleCtor ,
38- mixinDisabled ,
3935 mixinDisableRipple ,
36+ CanDisableRippleCtor ,
4037} from '@angular/material/core' ;
4138
4239
4340/** Acceptable types for a button toggle. */
4441export type ToggleType = 'checkbox' | 'radio' ;
4542
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-
5243/**
5344 * Provider Expression that allows mat-button-toggle-group to register as a ControlValueAccessor.
5445 * This allows it to support [(ngModel)].
@@ -85,7 +76,6 @@ export class MatButtonToggleChange {
8576 MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR ,
8677 { provide : MatButtonToggleGroupMultiple , useExisting : MatButtonToggleGroup } ,
8778 ] ,
88- inputs : [ 'disabled' ] ,
8979 host : {
9080 'role' : 'group' ,
9181 'class' : 'mat-button-toggle-group' ,
@@ -94,11 +84,11 @@ export class MatButtonToggleChange {
9484 } ,
9585 exportAs : 'matButtonToggleGroup' ,
9686} )
97- export class MatButtonToggleGroup extends _MatButtonToggleGroupMixinBase implements
98- ControlValueAccessor , CanDisable , OnInit , AfterContentInit {
87+ export class MatButtonToggleGroup implements ControlValueAccessor , OnInit , AfterContentInit {
9988
10089 private _vertical = false ;
10190 private _multiple = false ;
91+ private _disabled = false ;
10292 private _selectionModel : SelectionModel < MatButtonToggle > ;
10393
10494 /**
@@ -176,13 +166,22 @@ export class MatButtonToggleGroup extends _MatButtonToggleGroupMixinBase impleme
176166 this . _multiple = coerceBooleanProperty ( value ) ;
177167 }
178168
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+
179180 /** Event emitted when the group's value changes. */
180181 @Output ( ) readonly change : EventEmitter < MatButtonToggleChange > =
181182 new EventEmitter < MatButtonToggleChange > ( ) ;
182183
183- constructor ( private _changeDetector : ChangeDetectorRef ) {
184- super ( ) ;
185- }
184+ constructor ( private _changeDetector : ChangeDetectorRef ) { }
186185
187186 ngOnInit ( ) {
188187 this . _selectionModel = new SelectionModel < MatButtonToggle > ( this . multiple , undefined , false ) ;
@@ -214,10 +213,6 @@ export class MatButtonToggleGroup extends _MatButtonToggleGroupMixinBase impleme
214213 // Implemented as part of ControlValueAccessor.
215214 setDisabledState ( isDisabled : boolean ) : void {
216215 this . disabled = isDisabled ;
217-
218- if ( this . _buttonToggles ) {
219- this . _buttonToggles . forEach ( toggle => toggle . _markForCheck ( ) ) ;
220- }
221216 }
222217
223218 /** Dispatch change event with current selection and group value. */
0 commit comments