Skip to content
This repository was archived by the owner on Dec 18, 2024. It is now read-only.

Commit e9bb153

Browse files
karaandrewseguin
authored andcommitted
docs(autocomplete): add autocomplete example (#101)
1 parent 078e6c7 commit e9bb153

File tree

7 files changed

+96
-3
lines changed

7 files changed

+96
-3
lines changed

src/app/examples/autocomplete-overview/autocomplete-overview-example.css

Whitespace-only changes.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<md-input-container>
2+
<input mdInput placeholder="State" [mdAutocomplete]="auto" [formControl]="stateCtrl">
3+
</md-input-container>
4+
5+
<md-autocomplete #auto="mdAutocomplete">
6+
<md-option *ngFor="let state of filteredStates | async" [value]="state">
7+
{{ state }}
8+
</md-option>
9+
</md-autocomplete>
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
import {Component} from '@angular/core';
2+
import {FormControl} from '@angular/forms';
3+
import 'rxjs/add/operator/startWith';
4+
5+
@Component({
6+
selector: 'autocomplete-overview-example',
7+
templateUrl: './autocomplete-overview-example.html',
8+
})
9+
export class AutocompleteOverviewExample {
10+
stateCtrl: FormControl;
11+
filteredStates: any;
12+
13+
states = [
14+
'Alabama',
15+
'Alaska',
16+
'Arizona',
17+
'Arkansas',
18+
'California',
19+
'Colorado',
20+
'Connecticut',
21+
'Delaware',
22+
'Florida',
23+
'Georgia',
24+
'Hawaii',
25+
'Idaho',
26+
'Illinois',
27+
'Indiana',
28+
'Iowa',
29+
'Kansas',
30+
'Kentucky',
31+
'Louisiana',
32+
'Maine',
33+
'Maryland',
34+
'Massachusetts',
35+
'Michigan',
36+
'Minnesota',
37+
'Mississippi',
38+
'Missouri',
39+
'Montana',
40+
'Nebraska',
41+
'Nevada',
42+
'New Hampshire',
43+
'New Jersey',
44+
'New Mexico',
45+
'New York',
46+
'North Carolina',
47+
'North Dakota',
48+
'Ohio',
49+
'Oklahoma',
50+
'Oregon',
51+
'Pennsylvania',
52+
'Rhode Island',
53+
'South Carolina',
54+
'South Dakota',
55+
'Tennessee',
56+
'Texas',
57+
'Utah',
58+
'Vermont',
59+
'Virginia',
60+
'Washington',
61+
'West Virginia',
62+
'Wisconsin',
63+
'Wyoming',
64+
];
65+
66+
constructor() {
67+
this.stateCtrl = new FormControl();
68+
this.filteredStates = this.stateCtrl.valueChanges
69+
.startWith(null)
70+
.map(name => this.filterStates(name));
71+
}
72+
73+
filterStates(val: string) {
74+
return val ? this.states.filter((s) => new RegExp(val, 'gi').test(s)) : this.states;
75+
}
76+
77+
}

src/app/examples/example-module.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {NgModule} from '@angular/core';
2-
import {FormsModule} from '@angular/forms';
2+
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
33
import {CommonModule} from '@angular/common';
44
import {MaterialModule} from '@angular/material';
55
import {ButtonOverviewExample} from './button-overview/button-overview-example';
@@ -62,6 +62,7 @@ import {TabsTemplateLabelExample} from './tabs-template-label/tabs-template-labe
6262
import {RadioOverviewExample} from './radio-overview/radio-overview-example';
6363
import {SidenavOverviewExample} from './sidenav-overview/sidenav-overview-example';
6464
import {SelectOverviewExample} from './select-overview/select-overview-example';
65+
import {AutocompleteOverviewExample} from './autocomplete-overview/autocomplete-overview-example';
6566
import {ChipsOverviewExample} from './chips-overview/chips-overview-example';
6667
import {ChipsStackedExample} from './chips-stacked/chips-stacked-example';
6768
import {SelectFormExample} from './select-form/select-form-example';
@@ -80,6 +81,7 @@ export interface LiveExample {
8081
* Value is the component.
8182
*/
8283
export const EXAMPLE_COMPONENTS = {
84+
'autocomplete-overview': {title: 'Basic autocomplete', component: AutocompleteOverviewExample},
8385
'button-overview': {title: 'Basic buttons', component: ButtonOverviewExample},
8486
'button-types': {title: 'Button varieties', component: ButtonTypesExample},
8587
'button-toggle-exclusive': {
@@ -159,6 +161,7 @@ export const EXAMPLE_COMPONENTS = {
159161
* We need to put them in both `declarations` and `entryComponents` to make them work.
160162
*/
161163
export const EXAMPLE_LIST = [
164+
AutocompleteOverviewExample,
162165
ButtonOverviewExample,
163166
ButtonToggleExclusiveExample,
164167
ButtonToggleOverviewExample,
@@ -214,6 +217,7 @@ export const EXAMPLE_LIST = [
214217
imports: [
215218
MaterialModule,
216219
FormsModule,
220+
ReactiveFormsModule,
217221
CommonModule,
218222
]
219223
})

src/app/shared/documentation-items/documentation-items.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ const DOCS = [
1818
name: 'Form Controls',
1919
summary: 'Radio buttons, checkboxes, input fields, sliders, slide toggles, selects',
2020
items: [
21+
{id: 'autocomplete', name: 'Autocomplete', examples: ['autocomplete-overview']},
2122
{id: 'checkbox', name: 'Checkbox', examples: ['checkbox-configurable']},
2223
{id: 'input', name: 'Input', examples: ['input-form']},
2324
{id: 'radio', name: 'Radio button', examples: ['radio-ng-model']},
Lines changed: 1 addition & 0 deletions
Loading

src/assets/plunker/main.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import {platformBrowserDynamic} from '@angular/platform-browser-dynamic';
22
import {BrowserModule} from '@angular/platform-browser';
33
import {NgModule} from '@angular/core';
4-
import {FormsModule} from '@angular/forms';
4+
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
55
import {MaterialModule} from '@angular/material';
66
import {MaterialDocsExample} from './material-docs-example';
77

@@ -10,7 +10,8 @@ import {MaterialDocsExample} from './material-docs-example';
1010
imports: [
1111
BrowserModule,
1212
FormsModule,
13-
MaterialModule.forRoot(),
13+
ReactiveFormsModule,
14+
MaterialModule,
1415
],
1516

1617
declarations: [MaterialDocsExample],

0 commit comments

Comments
 (0)