@@ -48,6 +48,26 @@ const RIPPLE_ANIMATION_CONFIG: RippleAnimationConfig = {
48
48
exitDuration : numbers . FG_DEACTIVATION_MS ,
49
49
} ;
50
50
51
+ class SlideToggleAdapter implements MDCSwitchAdapter {
52
+ constructor ( private readonly _delegate : MatSlideToggle ) { }
53
+
54
+ addClass ( className : string ) {
55
+ return this . _delegate . _switchElement . nativeElement . classList . add ( className ) ;
56
+ }
57
+ removeClass ( className : string ) {
58
+ return this . _delegate . _switchElement . nativeElement . classList . remove ( className ) ;
59
+ }
60
+ setNativeControlChecked ( checked : boolean ) {
61
+ this . _delegate . _checked = checked ;
62
+ }
63
+ setNativeControlDisabled ( disabled : boolean ) {
64
+ this . _delegate . _disabled = disabled ;
65
+ }
66
+ setNativeControlAttr ( name : string , value : string ) {
67
+ this . _delegate . _inputElement . nativeElement . setAttribute ( name , value ) ;
68
+ }
69
+ }
70
+
51
71
/** @docs -private */
52
72
export const MAT_SLIDE_TOGGLE_VALUE_ACCESSOR : any = {
53
73
provide : NG_VALUE_ACCESSOR ,
@@ -94,17 +114,9 @@ export class MatSlideToggle implements ControlValueAccessor, AfterViewInit, OnDe
94
114
95
115
private _uniqueId : string = `mat-mdc-slide-toggle-${ ++ nextUniqueId } ` ;
96
116
private _required : boolean = false ;
97
- private _checked : boolean = false ;
117
+ _checked : boolean = false ;
98
118
private _foundation : MDCSwitchFoundation ;
99
- private _adapter : MDCSwitchAdapter = {
100
- addClass : className => this . _switchElement . nativeElement . classList . add ( className ) ,
101
- removeClass : className => this . _switchElement . nativeElement . classList . remove ( className ) ,
102
- setNativeControlChecked : checked => this . _checked = checked ,
103
- setNativeControlDisabled : disabled => this . _disabled = disabled ,
104
- setNativeControlAttr : ( name , value ) => {
105
- this . _inputElement . nativeElement . setAttribute ( name , value ) ;
106
- }
107
- } ;
119
+ private _adapter : MDCSwitchAdapter ;
108
120
109
121
/** Whether the slide toggle is currently focused. */
110
122
_focused : boolean ;
@@ -176,7 +188,7 @@ export class MatSlideToggle implements ControlValueAccessor, AfterViewInit, OnDe
176
188
this . _foundation . setDisabled ( this . _disabled ) ;
177
189
}
178
190
}
179
- private _disabled = false ;
191
+ _disabled = false ;
180
192
181
193
/** An event will be dispatched each time the slide-toggle changes its value. */
182
194
@Output ( ) readonly change : EventEmitter < MatSlideToggleChange > =
@@ -199,6 +211,7 @@ export class MatSlideToggle implements ControlValueAccessor, AfterViewInit, OnDe
199
211
@Inject ( MAT_SLIDE_TOGGLE_DEFAULT_OPTIONS )
200
212
public defaults : MatSlideToggleDefaultOptions ,
201
213
@Optional ( ) @Inject ( ANIMATION_MODULE_TYPE ) public _animationMode ?: string ) {
214
+ this . _adapter = new SlideToggleAdapter ( this ) ;
202
215
this . tabIndex = parseInt ( tabIndex ) || 0 ;
203
216
}
204
217
0 commit comments