Skip to content

Commit fa11306

Browse files
committed
Address comments
1 parent b1b526d commit fa11306

File tree

10 files changed

+79
-71
lines changed

10 files changed

+79
-71
lines changed

src/lib/button/button.ts

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import {
1111
} from '@angular/core';
1212
import {coerceBooleanProperty, FocusOriginMonitor, Platform} from '../core';
1313
import {mixinDisabled, CanDisable} from '../core/common-behaviors/disabled';
14-
import {IsColorable, mixinColor} from '../core/common-behaviors/color';
14+
import {CanColor, mixinColor} from '../core/common-behaviors/color';
1515

1616

1717
// TODO(kara): Convert attribute selectors to classes when attr maps become available
@@ -73,7 +73,8 @@ export class MdMiniFabCssMatStyler {}
7373

7474
// Boilerplate for applying mixins to MdButton.
7575
export class MdButtonBase {
76-
constructor(public _renderer: Renderer2, public _elementRef: ElementRef) {}
76+
_renderer: Renderer2;
77+
_elementRef: ElementRef;
7778
}
7879
export const _MdButtonMixinBase = mixinColor(mixinDisabled(MdButtonBase), true);
7980

@@ -96,7 +97,7 @@ export const _MdButtonMixinBase = mixinColor(mixinDisabled(MdButtonBase), true);
9697
encapsulation: ViewEncapsulation.None,
9798
changeDetection: ChangeDetectionStrategy.OnPush,
9899
})
99-
export class MdButton extends _MdButtonMixinBase implements OnDestroy, CanDisable, IsColorable {
100+
export class MdButton extends _MdButtonMixinBase implements OnDestroy, CanDisable, CanColor {
100101
/** Whether the button is round. */
101102
_isRoundButton: boolean = this._hasAttributeWithPrefix('fab', 'mini-fab');
102103

@@ -111,11 +112,11 @@ export class MdButton extends _MdButtonMixinBase implements OnDestroy, CanDisabl
111112
get disableRipple() { return this._disableRipple; }
112113
set disableRipple(v) { this._disableRipple = coerceBooleanProperty(v); }
113114

114-
constructor(private _platform: Platform,
115-
private _focusOriginMonitor: FocusOriginMonitor,
116-
renderer: Renderer2,
117-
elementRef: ElementRef) {
118-
super(renderer, elementRef);
115+
constructor(public _renderer: Renderer2,
116+
public _elementRef: ElementRef,
117+
private _platform: Platform,
118+
private _focusOriginMonitor: FocusOriginMonitor) {
119+
super();
119120
this._focusOriginMonitor.monitor(this._elementRef.nativeElement, this._renderer, true);
120121
}
121122

@@ -179,7 +180,7 @@ export class MdAnchor extends MdButton {
179180
focusOriginMonitor: FocusOriginMonitor,
180181
elementRef: ElementRef,
181182
renderer: Renderer2) {
182-
super(platform, focusOriginMonitor, renderer, elementRef);
183+
super(renderer, elementRef, platform, focusOriginMonitor);
183184
}
184185

185186
/** @docs-private */

src/lib/checkbox/checkbox.ts

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';
1717
import {coerceBooleanProperty} from '../core/coercion/boolean-property';
1818
import {FocusOrigin, FocusOriginMonitor, MdRipple, RippleRef} from '../core';
1919
import {mixinDisabled, CanDisable} from '../core/common-behaviors/disabled';
20-
import {IsColorable, mixinColor} from '../core/common-behaviors/color';
20+
import {CanColor, mixinColor} from '../core/common-behaviors/color';
2121

2222

2323
/** Monotonically increasing integer used to auto-generate unique ids for checkbox components. */
@@ -59,7 +59,8 @@ export class MdCheckboxChange {
5959

6060
// Boilerplate for applying mixins to MdCheckbox.
6161
export class MdCheckboxBase {
62-
constructor(public _renderer: Renderer2, public _elementRef: ElementRef) {}
62+
_renderer: Renderer2;
63+
_elementRef: ElementRef;
6364
}
6465
export const _MdCheckboxMixinBase = mixinColor(mixinDisabled(MdCheckboxBase));
6566

@@ -90,7 +91,7 @@ export const _MdCheckboxMixinBase = mixinColor(mixinDisabled(MdCheckboxBase));
9091
changeDetection: ChangeDetectionStrategy.OnPush
9192
})
9293
export class MdCheckbox extends _MdCheckboxMixinBase
93-
implements ControlValueAccessor, AfterViewInit, OnDestroy, IsColorable, CanDisable {
94+
implements ControlValueAccessor, AfterViewInit, OnDestroy, CanColor, CanDisable {
9495
/**
9596
* Attached to the aria-label attribute of the host element. In most cases, arial-labelledby will
9697
* take precedence so this may be omitted.
@@ -191,11 +192,11 @@ export class MdCheckbox extends _MdCheckboxMixinBase
191192
/** Reference to the focused state ripple. */
192193
private _focusRipple: RippleRef;
193194

194-
constructor(private _changeDetectorRef: ChangeDetectorRef,
195-
private _focusOriginMonitor: FocusOriginMonitor,
196-
_renderer: Renderer2,
197-
_elementRef: ElementRef) {
198-
super(_renderer, _elementRef);
195+
constructor(public _renderer: Renderer2,
196+
public _elementRef: ElementRef,
197+
private _changeDetectorRef: ChangeDetectorRef,
198+
private _focusOriginMonitor: FocusOriginMonitor) {
199+
super();
199200

200201
// By default the checkbox uses the accent color for styling.
201202
this.color = 'accent';

src/lib/chips/chip.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,16 @@ import {
1111

1212
import {Focusable} from '../core/a11y/focus-key-manager';
1313
import {coerceBooleanProperty} from '../core/coercion/boolean-property';
14-
import {IsColorable, mixinColor} from '../core/common-behaviors/color';
14+
import {CanColor, mixinColor} from '../core/common-behaviors/color';
1515

1616
export interface MdChipEvent {
1717
chip: MdChip;
1818
}
1919

2020
// Boilerplate for applying mixins to MdChip.
2121
export class MdChipBase {
22-
constructor(public _renderer: Renderer2, public _elementRef: ElementRef) {}
22+
_renderer: Renderer2;
23+
_elementRef: ElementRef;
2324
}
2425
export const _MdChipMixinBase = mixinColor(MdChipBase);
2526

@@ -44,7 +45,7 @@ export const _MdChipMixinBase = mixinColor(MdChipBase);
4445
'(click)': '_handleClick($event)'
4546
}
4647
})
47-
export class MdChip extends _MdChipMixinBase implements Focusable, OnInit, OnDestroy, IsColorable {
48+
export class MdChip extends _MdChipMixinBase implements Focusable, OnInit, OnDestroy, CanColor {
4849

4950
/** Whether or not the chip is disabled. Disabled chips cannot be focused. */
5051
protected _disabled: boolean = null;
@@ -64,9 +65,8 @@ export class MdChip extends _MdChipMixinBase implements Focusable, OnInit, OnDes
6465
/** Emitted when the chip is destroyed. */
6566
@Output() destroy = new EventEmitter<MdChipEvent>();
6667

67-
constructor(renderer: Renderer2, elementRef: ElementRef) {
68-
super(renderer, elementRef);
69-
68+
constructor(public _renderer: Renderer2, public _elementRef: ElementRef) {
69+
super();
7070
// By default the chip component uses the primary color palette.
7171
this.color = 'primary';
7272
}

src/lib/core/common-behaviors/color.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,31 @@
11
import {Constructor} from './constructor';
22
import {ElementRef, Renderer2} from '@angular/core';
33

4-
/** List of possible color values that can be set. */
5-
const AVAILABLE_COLOR_VALUES = ['primary', 'accent', 'warn'];
6-
74
/** @docs-private */
8-
export interface IsColorable {
5+
export interface CanColor {
96
color: string;
107
}
118

129
/** @docs-private */
13-
export interface ColorableBase {
10+
export interface HasRenderer {
1411
_renderer: Renderer2;
1512
_elementRef: ElementRef;
1613
}
1714

15+
/** Possible color palette values. */
16+
export type ThemePalette = 'primary' | 'accent' | 'warn' | null;
17+
1818
/** Mixin to augment a directive with a `color` property. */
19-
export function mixinColor<T extends Constructor<ColorableBase>>(base: T, allowNoColor = false)
20-
: Constructor<IsColorable> & T {
19+
export function mixinColor<T extends Constructor<HasRenderer>>(base: T, allowNoColor = false)
20+
: Constructor<CanColor> & T {
2121
return class extends base {
22-
private _color: string = null;
22+
private _color: ThemePalette = undefined;
2323

2424
constructor(...args: any[]) { super(...args); }
2525

26-
get color(): string { return this._color; }
27-
set color(value: string) {
28-
if (AVAILABLE_COLOR_VALUES.indexOf(value) !== -1 || (allowNoColor && !value)) {
26+
get color(): ThemePalette { return this._color; }
27+
set color(value: ThemePalette) {
28+
if (value || allowNoColor && !value) {
2929
this._setColorClass(this._color, false);
3030
this._setColorClass(value, true);
3131
this._color = value;

src/lib/core/selection/pseudo-checkbox/pseudo-checkbox.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,15 @@ import {
55
ElementRef,
66
Renderer2,
77
} from '@angular/core';
8-
import {IsColorable, mixinColor} from '../../common-behaviors/color';
8+
import {CanColor, mixinColor} from '../../common-behaviors/color';
99

1010
export type MdPseudoCheckboxState = 'unchecked' | 'checked' | 'indeterminate';
1111

1212

1313
// Boilerplate for applying mixins to MdChip.
1414
export class MdPseudoCheckboxBase {
15-
constructor(public _renderer: Renderer2, public _elementRef: ElementRef) {}
15+
_renderer: Renderer2;
16+
_elementRef: ElementRef;
1617
}
1718
export const _MdPseudoCheckboxBase = mixinColor(MdPseudoCheckboxBase);
1819

@@ -42,15 +43,15 @@ export const _MdPseudoCheckboxBase = mixinColor(MdPseudoCheckboxBase);
4243
'[class.mat-pseudo-checkbox-disabled]': 'disabled',
4344
},
4445
})
45-
export class MdPseudoCheckbox extends _MdPseudoCheckboxBase implements IsColorable {
46+
export class MdPseudoCheckbox extends _MdPseudoCheckboxBase implements CanColor {
4647
/** Display state of the checkbox. */
4748
@Input() state: MdPseudoCheckboxState = 'unchecked';
4849

4950
/** Whether the checkbox is disabled. */
5051
@Input() disabled: boolean = false;
5152

52-
constructor(elementRef: ElementRef, renderer: Renderer2) {
53-
super(renderer, elementRef);
53+
constructor(public _elementRef: ElementRef, public _renderer: Renderer2) {
54+
super();
5455
this.color = 'accent';
5556
}
5657
}

src/lib/icon/icon.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,13 @@ import {
1111
AfterViewChecked,
1212
} from '@angular/core';
1313
import {MdIconRegistry} from './icon-registry';
14-
import {IsColorable, mixinColor} from '../core/common-behaviors/color';
14+
import {CanColor, mixinColor} from '../core/common-behaviors/color';
1515

1616

1717
// Boilerplate for applying mixins to MdIcon.
1818
export class MdIconBase {
19-
constructor(public _renderer: Renderer2, public _elementRef: ElementRef) {}
19+
_renderer: Renderer2;
20+
_elementRef: ElementRef;
2021
}
2122
export const _MdIconMixinBase = mixinColor(MdIconBase, true);
2223

@@ -68,7 +69,7 @@ export const _MdIconMixinBase = mixinColor(MdIconBase, true);
6869
changeDetection: ChangeDetectionStrategy.OnPush,
6970
})
7071
export class MdIcon extends _MdIconMixinBase implements OnChanges, OnInit, AfterViewChecked,
71-
IsColorable {
72+
CanColor {
7273

7374
/** Name of the icon in the SVG icon set. */
7475
@Input() svgIcon: string;
@@ -90,9 +91,9 @@ export class MdIcon extends _MdIconMixinBase implements OnChanges, OnInit, After
9091
private _previousAriaLabel: string;
9192

9293
constructor(private _mdIconRegistry: MdIconRegistry,
93-
renderer: Renderer2,
94-
elementRef: ElementRef) {
95-
super(renderer, elementRef);
94+
public _renderer: Renderer2,
95+
public _elementRef: ElementRef) {
96+
super();
9697
}
9798

9899
/**

src/lib/progress-spinner/progress-spinner.ts

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {
1010
Directive,
1111
ViewChild,
1212
} from '@angular/core';
13-
import {IsColorable, mixinColor} from '../core/common-behaviors/color';
13+
import {CanColor, mixinColor} from '../core/common-behaviors/color';
1414

1515

1616
// TODO(josephperrott): Benchpress tests.
@@ -52,7 +52,8 @@ export class MdProgressSpinnerCssMatStyler {}
5252

5353
// Boilerplate for applying mixins to MdProgressSpinner.
5454
export class MdProgressSpinnerBase {
55-
constructor(public _renderer: Renderer2, public _elementRef: ElementRef) {}
55+
_renderer: Renderer2;
56+
_elementRef: ElementRef;
5657
}
5758
export const _MdProgressSpinnerMixinBase = mixinColor(MdProgressSpinnerBase);
5859

@@ -73,7 +74,7 @@ export const _MdProgressSpinnerMixinBase = mixinColor(MdProgressSpinnerBase);
7374
changeDetection: ChangeDetectionStrategy.OnPush,
7475
})
7576
export class MdProgressSpinner extends _MdProgressSpinnerMixinBase
76-
implements OnDestroy, IsColorable {
77+
implements OnDestroy, CanColor {
7778

7879
/** The id of the last requested animation. */
7980
private _lastAnimationId: number = 0;
@@ -159,10 +160,10 @@ export class MdProgressSpinner extends _MdProgressSpinnerMixinBase
159160
}
160161
}
161162

162-
constructor(private _ngZone: NgZone,
163-
renderer: Renderer2,
164-
elementRef: ElementRef) {
165-
super(renderer, elementRef);
163+
constructor(public _renderer: Renderer2,
164+
public _elementRef: ElementRef,
165+
private _ngZone: NgZone) {
166+
super();
166167

167168
// By default the progress-spinner component uses the primary color palette.
168169
this.color = 'primary';
@@ -282,7 +283,7 @@ export class MdProgressSpinner extends _MdProgressSpinnerMixinBase
282283
export class MdSpinner extends MdProgressSpinner implements OnDestroy {
283284

284285
constructor(elementRef: ElementRef, ngZone: NgZone, renderer: Renderer2) {
285-
super(ngZone, renderer, elementRef);
286+
super(renderer, elementRef, ngZone);
286287
this.mode = 'indeterminate';
287288
}
288289

src/lib/select/select.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ import {getMdSelectDynamicMultipleError, getMdSelectNonArrayValueError} from './
3434
import 'rxjs/add/observable/merge';
3535
import 'rxjs/add/operator/startWith';
3636
import 'rxjs/add/operator/filter';
37-
import {IsColorable, mixinColor} from '../core/common-behaviors/color';
37+
import {CanColor, mixinColor} from '../core/common-behaviors/color';
3838
import {CanDisable} from '../core/common-behaviors/disabled';
3939

4040

@@ -99,7 +99,8 @@ export type MdSelectFloatPlaceholderType = 'always' | 'never' | 'auto';
9999

100100
// Boilerplate for applying mixins to MdSelect.
101101
export class MdSelectBase {
102-
constructor(public _renderer: Renderer2, public _elementRef: ElementRef) {}
102+
_renderer: Renderer2;
103+
_elementRef: ElementRef;
103104
}
104105
export const _MdSelectMixinBase = mixinColor(MdSelectBase);
105106

@@ -133,7 +134,7 @@ export const _MdSelectMixinBase = mixinColor(MdSelectBase);
133134
exportAs: 'mdSelect',
134135
})
135136
export class MdSelect extends _MdSelectMixinBase implements AfterContentInit, OnDestroy, OnInit,
136-
ControlValueAccessor, IsColorable {
137+
ControlValueAccessor, CanColor {
137138
/** Whether or not the overlay panel is open. */
138139
private _panelOpen = false;
139140

@@ -312,12 +313,12 @@ export class MdSelect extends _MdSelectMixinBase implements AfterContentInit, On
312313

313314
constructor(private _viewportRuler: ViewportRuler,
314315
private _changeDetectorRef: ChangeDetectorRef,
315-
renderer: Renderer2,
316-
elementRef: ElementRef,
316+
public _renderer: Renderer2,
317+
public _elementRef: ElementRef,
317318
@Optional() private _dir: Dir,
318319
@Self() @Optional() public _control: NgControl,
319320
@Attribute('tabindex') tabIndex: string) {
320-
super(renderer, elementRef);
321+
super();
321322

322323
if (this._control) {
323324
this._control.valueAccessor = this;

src/lib/slide-toggle/slide-toggle.ts

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import {
2323
} from '../core';
2424
import {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';
2525
import {mixinDisabled, CanDisable} from '../core/common-behaviors/disabled';
26-
import {IsColorable, mixinColor} from '../core/common-behaviors/color';
26+
import {CanColor, mixinColor} from '../core/common-behaviors/color';
2727

2828

2929
export const MD_SLIDE_TOGGLE_VALUE_ACCESSOR: any = {
@@ -45,7 +45,8 @@ let nextId = 0;
4545

4646
// Boilerplate for applying mixins to MdSlideToggle.
4747
export class MdSlideToggleBase {
48-
constructor(public _renderer: Renderer2, public _elementRef: ElementRef) {}
48+
_renderer: Renderer2;
49+
_elementRef: ElementRef;
4950
}
5051
export const _MdSlideToggleMixinBase = mixinColor(mixinDisabled(MdSlideToggleBase));
5152

@@ -67,7 +68,7 @@ export const _MdSlideToggleMixinBase = mixinColor(mixinDisabled(MdSlideToggleBas
6768
changeDetection: ChangeDetectionStrategy.OnPush
6869
})
6970
export class MdSlideToggle extends _MdSlideToggleMixinBase
70-
implements OnDestroy, AfterContentInit, ControlValueAccessor, CanDisable, IsColorable {
71+
implements OnDestroy, AfterContentInit, ControlValueAccessor, CanDisable, CanColor {
7172
private onChange = (_: any) => {};
7273
private onTouched = () => {};
7374

@@ -121,10 +122,10 @@ export class MdSlideToggle extends _MdSlideToggleMixinBase
121122
/** Reference to the ripple directive on the thumb container. */
122123
@ViewChild(MdRipple) _ripple: MdRipple;
123124

124-
constructor(private _focusOriginMonitor: FocusOriginMonitor,
125-
renderer: Renderer2,
126-
elementRef: ElementRef) {
127-
super(renderer, elementRef);
125+
constructor(public _renderer: Renderer2,
126+
public _elementRef: ElementRef,
127+
private _focusOriginMonitor: FocusOriginMonitor) {
128+
super();
128129
}
129130

130131
ngAfterContentInit() {

0 commit comments

Comments
 (0)