Skip to content

Commit c4a5d7a

Browse files
devversionkara
authored andcommitted
refactor(slider): use color mixin with coercing (#6371)
Closes #6368
1 parent 2dd5c7c commit c4a5d7a

File tree

1 file changed

+10
-11
lines changed

1 file changed

+10
-11
lines changed

src/lib/slider/slider.ts

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ import {
3737
import {HammerInput} from '../core';
3838
import {FocusOrigin, FocusOriginMonitor} from '../core/style/focus-origin-monitor';
3939
import {CanDisable, mixinDisabled} from '../core/common-behaviors/disabled';
40+
import {CanColor, mixinColor} from '../core/common-behaviors/color';
4041

4142

4243
/**
@@ -76,8 +77,10 @@ export class MdSliderChange {
7677

7778
// Boilerplate for applying mixins to MdSlider.
7879
/** @docs-private */
79-
export class MdSliderBase { }
80-
export const _MdSliderMixinBase = mixinDisabled(MdSliderBase);
80+
export class MdSliderBase {
81+
constructor(public _renderer: Renderer2, public _elementRef: ElementRef) {}
82+
}
83+
export const _MdSliderMixinBase = mixinColor(mixinDisabled(MdSliderBase), 'accent');
8184

8285
/**
8386
* Allows users to select from a range of values by moving the slider thumb. It is similar in
@@ -105,9 +108,6 @@ export const _MdSliderMixinBase = mixinDisabled(MdSliderBase);
105108
'[attr.aria-valuemin]': 'min',
106109
'[attr.aria-valuenow]': 'value',
107110
'[attr.aria-orientation]': 'vertical ? "vertical" : "horizontal"',
108-
'[class.mat-primary]': 'color == "primary"',
109-
'[class.mat-accent]': 'color != "primary" && color != "warn"',
110-
'[class.mat-warn]': 'color == "warn"',
111111
'[class.mat-slider-disabled]': 'disabled',
112112
'[class.mat-slider-has-ticks]': 'tickInterval',
113113
'[class.mat-slider-horizontal]': '!vertical',
@@ -120,12 +120,12 @@ export const _MdSliderMixinBase = mixinDisabled(MdSliderBase);
120120
},
121121
templateUrl: 'slider.html',
122122
styleUrls: ['slider.css'],
123-
inputs: ['disabled'],
123+
inputs: ['disabled', 'color'],
124124
encapsulation: ViewEncapsulation.None,
125125
changeDetection: ChangeDetectionStrategy.OnPush,
126126
})
127127
export class MdSlider extends _MdSliderMixinBase
128-
implements ControlValueAccessor, OnDestroy, CanDisable {
128+
implements ControlValueAccessor, OnDestroy, CanDisable, CanColor {
129129
/** Whether the slider is inverted. */
130130
@Input()
131131
get invert() { return this._invert; }
@@ -239,8 +239,6 @@ export class MdSlider extends _MdSliderMixinBase
239239
}
240240
private _vertical = false;
241241

242-
@Input() color: 'primary' | 'accent' | 'warn' = 'accent';
243-
244242
/** Event emitted when the slider value has changed. */
245243
@Output() change = new EventEmitter<MdSliderChange>();
246244

@@ -406,11 +404,12 @@ export class MdSlider extends _MdSliderMixinBase
406404
return (this._dir && this._dir.value == 'rtl') ? 'rtl' : 'ltr';
407405
}
408406

409-
constructor(renderer: Renderer2, private _elementRef: ElementRef,
407+
constructor(renderer: Renderer2,
408+
elementRef: ElementRef,
410409
private _focusOriginMonitor: FocusOriginMonitor,
411410
private _changeDetectorRef: ChangeDetectorRef,
412411
@Optional() private _dir: Directionality) {
413-
super();
412+
super(renderer, elementRef);
414413
this._focusOriginMonitor
415414
.monitor(this._elementRef.nativeElement, renderer, true)
416415
.subscribe((origin: FocusOrigin) => this._isActive = !!origin && origin !== 'keyboard');

0 commit comments

Comments
 (0)