diff --git a/demo/src/app/components/+typeahead/demos/delay/delay.html b/demo/src/app/components/+typeahead/demos/delay/delay.html new file mode 100644 index 0000000000..9284671e87 --- /dev/null +++ b/demo/src/app/components/+typeahead/demos/delay/delay.html @@ -0,0 +1,5 @@ +
Model: {{selected | json}}
+ diff --git a/demo/src/app/components/+typeahead/demos/delay/delay.ts b/demo/src/app/components/+typeahead/demos/delay/delay.ts new file mode 100644 index 0000000000..a55c702080 --- /dev/null +++ b/demo/src/app/components/+typeahead/demos/delay/delay.ts @@ -0,0 +1,61 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'demo-typeahead-delay', + templateUrl: './delay.html' +}) +export class DemoTypeaheadDelayComponent { + selected: string; + states: string[] = [ + 'Alabama', + 'Alaska', + 'Arizona', + 'Arkansas', + 'California', + 'Colorado', + 'Connecticut', + 'Delaware', + 'Florida', + 'Georgia', + 'Hawaii', + 'Idaho', + 'Illinois', + 'Indiana', + 'Iowa', + 'Kansas', + 'Kentucky', + 'Louisiana', + 'Maine', + 'Maryland', + 'Massachusetts', + 'Michigan', + 'Minnesota', + 'Mississippi', + 'Missouri', + 'Montana', + 'Nebraska', + 'Nevada', + 'New Hampshire', + 'New Jersey', + 'New Mexico', + 'New York', + 'North Dakota', + 'North Carolina', + 'Ohio', + 'Oklahoma', + 'Oregon', + 'Pennsylvania', + 'Rhode Island', + 'South Carolina', + 'South Dakota', + 'Tennessee', + 'Texas', + 'Utah', + 'Vermont', + 'Virginia', + 'Washington', + 'West Virginia', + 'Wisconsin', + 'Wyoming' + ]; +} diff --git a/demo/src/app/components/+typeahead/demos/index.ts b/demo/src/app/components/+typeahead/demos/index.ts index 3ef9a72143..903189e4f2 100644 --- a/demo/src/app/components/+typeahead/demos/index.ts +++ b/demo/src/app/components/+typeahead/demos/index.ts @@ -6,6 +6,7 @@ import { DemoTypeaheadFormsComponent } from './in-form/in-form'; import { DemoTypeaheadGroupingComponent } from './grouping/grouping'; import { DemoTypeaheadDropupComponent } from './dropup/dropup'; import { DemoTypeaheadScrollableComponent } from './scrollable/scrollable'; +import { DemoTypeaheadDelayComponent } from './delay/delay'; export const DEMO_COMPONENTS = [ DemoTypeaheadStaticComponent, @@ -15,7 +16,8 @@ export const DEMO_COMPONENTS = [ DemoTypeaheadFormsComponent, DemoTypeaheadGroupingComponent, DemoTypeaheadDropupComponent, - DemoTypeaheadScrollableComponent + DemoTypeaheadScrollableComponent, + DemoTypeaheadDelayComponent ]; export const DEMOS = { @@ -35,6 +37,10 @@ export const DEMOS = { component: require('!!raw-loader?lang=typescript!./async/async.ts'), html: require('!!raw-loader?lang=markup!./async/async.html') }, + delay: { + component: require('!!raw-loader?lang=typescript!./delay/delay.ts'), + html: require('!!raw-loader?lang=markup!./delay/delay.html') + }, inForm: { component: require('!!raw-loader?lang=typescript!./in-form/in-form.ts'), html: require('!!raw-loader?lang=markup!./in-form/in-form.html') diff --git a/demo/src/app/components/+typeahead/typeahead-section.list.ts b/demo/src/app/components/+typeahead/typeahead-section.list.ts index b6df9898bd..1af0758347 100644 --- a/demo/src/app/components/+typeahead/typeahead-section.list.ts +++ b/demo/src/app/components/+typeahead/typeahead-section.list.ts @@ -6,11 +6,12 @@ import { DemoTypeaheadFormsComponent } from './demos/in-form/in-form'; import { DemoTypeaheadGroupingComponent } from './demos/grouping/grouping'; import { DemoTypeaheadDropupComponent } from './demos/dropup/dropup'; import { DemoTypeaheadScrollableComponent } from './demos/scrollable/scrollable'; +import { DemoTypeaheadDelayComponent } from './demos/delay/delay'; import { ContentSection } from '../../docs/models/content-section.model'; -import { DemoTopSectionComponent } from '../../docs/demo-section-components/demo-top-section/index'; -import { ExamplesComponent } from '../../docs/demo-section-components/demo-examples-section/index'; -import { ApiSectionsComponent } from '../../docs/demo-section-components/demo-api-section/index'; +import { DemoTopSectionComponent } from '../../docs/demo-section-components/demo-top-section'; +import { ExamplesComponent } from '../../docs/demo-section-components/demo-examples-section'; +import { ApiSectionsComponent } from '../../docs/demo-section-components/demo-api-section'; import { NgApiDocComponent } from '../../docs/api-docs'; @@ -56,6 +57,17 @@ export const demoComponentContent: ContentSection[] = [ html: require('!!raw-loader?lang=markup!./demos/async/async.html'), outlet: DemoTypeaheadAsyncComponent }, + { + title: 'With delay', + anchor: 'delay', + description: ` +

Use to set minimal waiting time after last character typed before typeahead kicks-in. + In example a search begins with delay in 1 second

+ `, + component: require('!!raw-loader?lang=typescript!./demos/delay/delay.ts'), + html: require('!!raw-loader?lang=markup!./demos/delay/delay.html'), + outlet: DemoTypeaheadDelayComponent + }, { title: 'Reactive forms', anchor: 'reactive-forms',