Skip to content

Commit 924acf1

Browse files
committed
remove FeatureDetector
1 parent 5cab0b8 commit 924acf1

File tree

7 files changed

+46
-51
lines changed

7 files changed

+46
-51
lines changed

src/demo-app/platform/platform-demo.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@
88

99
<p>
1010
Supported input types:
11-
<span *ngFor="let type of feature.supportedInputTypes">{{ type }}, </span>
11+
<span *ngFor="let type of supportedInputTypes">{{ type }}, </span>
1212
</p>
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {Component} from '@angular/core';
2-
import {MdFeatureDetector, MdPlatform} from '@angular/material';
2+
import {MdPlatform, getSupportedInputTypes} from '@angular/material';
33

44

55
@Component({
@@ -8,5 +8,7 @@ import {MdFeatureDetector, MdPlatform} from '@angular/material';
88
templateUrl: 'platform-demo.html',
99
})
1010
export class PlatformDemo {
11-
constructor(public feature: MdFeatureDetector, public platform: MdPlatform) {}
11+
supportedInputTypes = getSupportedInputTypes();
12+
13+
constructor(public platform: MdPlatform) {}
1214
}

src/lib/core/core.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ export * from './projection/projection';
3131

3232
// Platform
3333
export * from './platform/platform';
34-
export * from './platform/feature-detector';
34+
export * from './platform/features';
3535

3636
// Overlay
3737
export {Overlay, OVERLAY_PROVIDERS} from './overlay/overlay';

src/lib/core/platform/feature-detector.ts

Lines changed: 0 additions & 41 deletions
This file was deleted.

src/lib/core/platform/features.ts

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
let supportedInputTypes: Set<string>;
2+
3+
/** @returns {Set<string>} the input types supported by this browser. */
4+
export function getSupportedInputTypes(): Set<string> {
5+
if (!supportedInputTypes) {
6+
let featureTestInput = document.createElement('input');
7+
supportedInputTypes = new Set([
8+
'button',
9+
'checkbox',
10+
'color',
11+
'date',
12+
'datetime-local',
13+
'email',
14+
'file',
15+
'hidden',
16+
'image',
17+
'month',
18+
'number',
19+
'password',
20+
'radio',
21+
'range',
22+
'reset',
23+
'search',
24+
'submit',
25+
'tel',
26+
'text',
27+
'time',
28+
'url',
29+
'week',
30+
].filter(value => {
31+
featureTestInput.setAttribute('type', value);
32+
return featureTestInput.type === value;
33+
}));
34+
}
35+
return supportedInputTypes;
36+
}

src/lib/core/platform/index.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
import {NgModule, ModuleWithProviders} from '@angular/core';
22
import {MdPlatform} from './platform';
3-
import {MdFeatureDetector} from './feature-detector';
43

54

65
@NgModule({})
76
export class MdPlatformModule {
87
static forRoot(): ModuleWithProviders {
98
return {
109
ngModule: MdPlatformModule,
11-
providers: [MdFeatureDetector, MdPlatform],
10+
providers: [MdPlatform],
1211
};
1312
}
1413
}

src/lib/input/input-container.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import {
1515
} from '@angular/core';
1616
import {coerceBooleanProperty} from '../core';
1717
import {NgControl} from '@angular/forms';
18-
import {MdFeatureDetector} from '../core/platform/feature-detector';
18+
import {getSupportedInputTypes} from '../core/platform/features';
1919
import {
2020
MdInputContainerUnsupportedTypeError,
2121
MdInputContainerPlaceholderConflictError,
@@ -131,10 +131,9 @@ export class MdInputDirective implements AfterContentInit {
131131
'month',
132132
'time',
133133
'week'
134-
].filter(t => this._featureDetector.supportedInputTypes.has(t));
134+
].filter(t => getSupportedInputTypes().has(t));
135135

136-
constructor(private _featureDetector: MdFeatureDetector,
137-
private _elementRef: ElementRef,
136+
constructor(private _elementRef: ElementRef,
138137
private _renderer: Renderer,
139138
@Optional() private _ngControl: NgControl) {
140139
// Force setter to be called in case id was not specified.

0 commit comments

Comments
 (0)