UNPKG

ipsos-components

Version:

Material Design components for Angular

66 lines (58 loc) 2 kB
import {Component} from '@angular/core'; import {FormControl} from '@angular/forms'; import {Observable} from 'rxjs/Observable'; import {startWith} from 'rxjs/operators/startWith'; import {map} from 'rxjs/operators/map'; export class State { constructor(public name: string, public population: string, public flag: string) { } } /** * @title Autocomplete overview */ @Component({ selector: 'autocomplete-overview-example', templateUrl: 'autocomplete-overview-example.html', styleUrls: ['autocomplete-overview-example.css'] }) export class AutocompleteOverviewExample { stateCtrl: FormControl; filteredStates: Observable<any[]>; states: State[] = [ { name: 'Arkansas', population: '2.978M', // https://commons.wikimedia.org/wiki/File:Flag_of_Arkansas.svg flag: 'https://upload.wikimedia.org/wikipedia/commons/9/9d/Flag_of_Arkansas.svg' }, { name: 'California', population: '39.14M', // https://commons.wikimedia.org/wiki/File:Flag_of_California.svg flag: 'https://upload.wikimedia.org/wikipedia/commons/0/01/Flag_of_California.svg' }, { name: 'Florida', population: '20.27M', // https://commons.wikimedia.org/wiki/File:Flag_of_Florida.svg flag: 'https://upload.wikimedia.org/wikipedia/commons/f/f7/Flag_of_Florida.svg' }, { name: 'Texas', population: '27.47M', // https://commons.wikimedia.org/wiki/File:Flag_of_Texas.svg flag: 'https://upload.wikimedia.org/wikipedia/commons/f/f7/Flag_of_Texas.svg' } ]; constructor() { this.stateCtrl = new FormControl(); this.filteredStates = this.stateCtrl.valueChanges .pipe( startWith(''), map(state => state ? this.filterStates(state) : this.states.slice()) ); } filterStates(name: string) { return this.states.filter(state => state.name.toLowerCase().indexOf(name.toLowerCase()) === 0); } }