1 | {"version":3,"file":"typeahead.directive.js","sourceRoot":"","sources":["../../src/typeahead/typeahead.directive.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Directive, ElementRef, EventEmitter, HostListener, Input, OnInit, Output,\n Renderer, TemplateRef, ViewContainerRef, OnDestroy\n} from '@angular/core';\nimport { FormControl, NgControl } from '@angular/forms';\nimport { TypeaheadContainerComponent } from './typeahead-container.component';\nimport { TypeaheadUtils } from './typeahead-utils';\nimport { Observable } from 'rxjs/Observable';\nimport 'rxjs/add/observable/from';\nimport 'rxjs/add/operator/debounceTime';\nimport 'rxjs/add/operator/filter';\nimport 'rxjs/add/operator/map';\nimport 'rxjs/add/operator/mergeMap';\nimport 'rxjs/add/operator/toArray';\nimport { TypeaheadMatch } from './typeahead-match.class';\nimport { ComponentLoaderFactory, ComponentLoader } from '../component-loader';\n\n\nexport class TypeaheadDirective implements OnInit, OnDestroy {\n /** options source, can be Array of strings, objects or an Observable for external matching process */\n public typeahead: any;\n /** minimal no of characters that needs to be entered before typeahead kicks-in. When set to 0, typeahead shows on focus with full list of options (limited as normal by typeaheadOptionsLimit) */\n public typeaheadMinLength: number = void 0;\n /** minimal wait time after last character typed before typeahead kicks-in */\n public typeaheadWaitMs: number;\n /** maximum length of options items list */\n public typeaheadOptionsLimit: number;\n /** when options source is an array of objects, the name of field that contains the options value, we use array item as option in case of this field is missing. Supports nested properties and methods. */\n public typeaheadOptionField: string;\n /** when options source is an array of objects, the name of field that contains the group value, matches are grouped by this field when set. */\n public typeaheadGroupField: string;\n /** should be used only in case of typeahead attribute is array. If true - loading of options will be async, otherwise - sync. true make sense if options array is large. */\n public typeaheadAsync: boolean = void 0;\n /** match latin symbols. If true the word súper would match super and vice versa. */\n public typeaheadLatinize: boolean = true;\n /** break words with spaces. If true the text \"exact phrase\" here match would match with match exact phrase here but not with phrase here exact match (kind of \"google style\"). */\n public typeaheadSingleWords: boolean = true;\n /** should be used only in case typeaheadSingleWords attribute is true. Sets the word delimiter to break words. Defaults to space. */\n public typeaheadWordDelimiters: string = ' ';\n /** should be used only in case typeaheadSingleWords attribute is true. Sets the word delimiter to match exact phrase. Defaults to simple and double quotes. */\n public typeaheadPhraseDelimiters: string = '\\'\"';\n /** used to specify a custom item template. Template variables exposed are called item and index; */\n public typeaheadItemTemplate: TemplateRef<any>;\n /** used to specify a custom options list template. Template variables: matches, itemTemplate, query */\n public optionsListTemplate: TemplateRef<any>;\n\n /** fired when 'busy' state of this component was changed, fired on async mode only, returns boolean */\n public typeaheadLoading: EventEmitter<boolean> = new EventEmitter();\n /** fired on every key event and returns true in case of matches are not detected */\n public typeaheadNoResults: EventEmitter<boolean> = new EventEmitter();\n /** fired when option was selected, return object with data of this option */\n public typeaheadOnSelect: EventEmitter<TypeaheadMatch> = new EventEmitter();\n /** fired when blur event occurres. returns the active item */\n public typeaheadOnBlur: EventEmitter<any> = new EventEmitter();\n\n /**\n * A selector specifying the element the typeahead should be appended to.\n * Currently only supports \"body\".\n */\n public container: string;\n\n // not yet implemented\n /** if false restrict model values to the ones selected from the popup only will be provided */\n // @Input() protected typeaheadEditable:boolean;\n /** if false the first match automatically will not be focused as you type */\n // @Input() protected typeaheadFocusFirst:boolean;\n /** format the ng-model result after selection */\n // @Input() protected typeaheadInputFormatter:any;\n /** if true automatically select an item when there is one option that exactly matches the user input */\n // @Input() protected typeaheadSelectOnExact:boolean;\n /** if true select the currently highlighted match on blur */\n // @Input() protected typeaheadSelectOnBlur:boolean;\n /** if false don't focus the input element the typeahead directive is associated with on selection */\n // @Input() protected typeaheadFocusOnSelect:boolean;\n\n public _container: TypeaheadContainerComponent;\n public isTypeaheadOptionsListActive: boolean = false;\n\n protected keyUpEventEmitter: EventEmitter<any> = new EventEmitter();\n protected _matches: TypeaheadMatch[];\n protected placement: string = 'bottom-left';\n // protected popup:ComponentRef<TypeaheadContainerComponent>;\n\n protected ngControl: NgControl;\n protected viewContainerRef: ViewContainerRef;\n protected element: ElementRef;\n protected renderer: Renderer;\n\n private _typeahead: ComponentLoader<TypeaheadContainerComponent>;\n\n \n public onChange(e: any): void {\n if (this._container) {\n // esc\n if (e.keyCode === 27) {\n this.hide();\n return;\n }\n\n // up\n if (e.keyCode === 38) {\n this._container.prevActiveMatch();\n return;\n }\n\n // down\n if (e.keyCode === 40) {\n this._container.nextActiveMatch();\n return;\n }\n\n // enter\n if (e.keyCode === 13) {\n this._container.selectActiveMatch();\n return;\n }\n }\n\n // For `<input>`s, use the `value` property. For others that don't have a\n // `value` (such as `<span contenteditable=\"true\">`, use `innerText`.\n const value = e.target.value !== undefined\n ? e.target.value\n : e.target.innerText;\n if (value.trim().length >= this.typeaheadMinLength) {\n this.typeaheadLoading.emit(true);\n this.keyUpEventEmitter.emit(e.target.value);\n } else {\n this.typeaheadLoading.emit(false);\n this.typeaheadNoResults.emit(false);\n this.hide();\n }\n }\n\n \n public onFocus(): void {\n if (this.typeaheadMinLength === 0) {\n this.typeaheadLoading.emit(true);\n this.keyUpEventEmitter.emit('');\n }\n }\n\n \n public onBlur(): void {\n if (this._container && !this._container.isFocused) {\n this.typeaheadOnBlur.emit(this._container.active);\n this.hide();\n }\n }\n\n \n public onKeydown(e: any): void {\n // no container - no problems\n if (!this._container) {\n return;\n }\n\n // if items is visible - prevent form submition\n if (e.keyCode === 13) {\n e.preventDefault();\n return;\n }\n }\n\n public constructor(control: NgControl, viewContainerRef: ViewContainerRef, element: ElementRef, renderer: Renderer, cis: ComponentLoaderFactory) {\n this.element = element;\n this.ngControl = control;\n this.viewContainerRef = viewContainerRef;\n this.renderer = renderer;\n this._typeahead = cis\n .createLoader<TypeaheadContainerComponent>(element, viewContainerRef, renderer);\n }\n\n public ngOnInit(): void {\n this.typeaheadOptionsLimit = this.typeaheadOptionsLimit || 20;\n this.typeaheadMinLength = this.typeaheadMinLength === void 0\n ? 1\n : this.typeaheadMinLength;\n this.typeaheadWaitMs = this.typeaheadWaitMs || 0;\n\n // async should be false in case of array\n if (this.typeaheadAsync === undefined && !(this.typeahead instanceof Observable)) {\n this.typeaheadAsync = false;\n }\n\n if (this.typeahead instanceof Observable) {\n this.typeaheadAsync = true;\n }\n\n if (this.typeaheadAsync) {\n this.asyncActions();\n } else {\n this.syncActions();\n }\n }\n\n public changeModel(match: TypeaheadMatch): void {\n let valueStr: string = match.value;\n this.ngControl.viewToModelUpdate(valueStr);\n (this.ngControl.control as FormControl).setValue(valueStr);\n this.hide();\n }\n\n public get matches(): any[] {\n return this._matches;\n }\n\n public show(): void {\n this._typeahead\n .attach(TypeaheadContainerComponent)\n // todo: add append to body, after updating positioning service\n .to(this.container)\n .position({attachment: 'bottom left'})\n .show({\n typeaheadRef: this,\n placement: this.placement,\n animation: false\n });\n\n this._container = this._typeahead.instance;\n this._container.parent = this;\n // This improves the speed as it won't have to be done for each list item\n let normalizedQuery = (this.typeaheadLatinize\n ? TypeaheadUtils.latinize(this.ngControl.control.value)\n : this.ngControl.control.value).toString()\n .toLowerCase();\n this._container.query = this.typeaheadSingleWords\n ? TypeaheadUtils.tokenize(normalizedQuery, this.typeaheadWordDelimiters, this.typeaheadPhraseDelimiters)\n : normalizedQuery;\n this._container.matches = this._matches;\n this.element.nativeElement.focus();\n }\n\n public hide(): void {\n if (this._typeahead.isShown) {\n this._typeahead.hide();\n this._container = null;\n }\n }\n\n public ngOnDestroy(): any {\n this._typeahead.dispose();\n }\n\n protected asyncActions(): void {\n this.keyUpEventEmitter\n .debounceTime(this.typeaheadWaitMs)\n .mergeMap(() => this.typeahead)\n .subscribe(\n (matches: any[]) => {\n this.finalizeAsyncCall(matches);\n },\n (err: any) => {\n console.error(err);\n }\n );\n }\n\n protected syncActions(): void {\n this.keyUpEventEmitter\n .debounceTime(this.typeaheadWaitMs)\n .mergeMap((value: string) => {\n let normalizedQuery = this.normalizeQuery(value);\n\n return Observable.from(this.typeahead)\n .filter((option: any) => {\n return option && this.testMatch(this.normalizeOption(option), normalizedQuery);\n })\n .toArray();\n })\n .subscribe(\n (matches: any[]) => {\n this.finalizeAsyncCall(matches);\n },\n (err: any) => {\n console.error(err);\n }\n );\n }\n\n protected normalizeOption(option: any): any {\n let optionValue: string = TypeaheadUtils.getValueFromObject(option, this.typeaheadOptionField);\n let normalizedOption = this.typeaheadLatinize\n ? TypeaheadUtils.latinize(optionValue)\n : optionValue;\n\n return normalizedOption.toLowerCase();\n }\n\n protected normalizeQuery(value: string): any {\n // If singleWords, break model here to not be doing extra work on each\n // iteration\n let normalizedQuery: any =\n (this.typeaheadLatinize ? TypeaheadUtils.latinize(value) : value)\n .toString()\n .toLowerCase();\n normalizedQuery = this.typeaheadSingleWords\n ?\n TypeaheadUtils.tokenize(normalizedQuery, this.typeaheadWordDelimiters, this.typeaheadPhraseDelimiters)\n :\n normalizedQuery;\n\n return normalizedQuery;\n }\n\n protected testMatch(match: string, test: any): boolean {\n let spaceLength: number;\n\n if (typeof test === 'object') {\n spaceLength = test.length;\n for (let i = 0; i < spaceLength; i += 1) {\n if (test[i].length > 0 && match.indexOf(test[i]) < 0) {\n return false;\n }\n }\n return true;\n } else {\n return match.indexOf(test) >= 0;\n }\n }\n\n protected finalizeAsyncCall(matches: any[]): void {\n this.prepareMatches(matches);\n\n this.typeaheadLoading.emit(false);\n this.typeaheadNoResults.emit(!this.hasMatches());\n\n if (!this.hasMatches()) {\n this.hide();\n return;\n }\n\n if (this._container) {\n // This improves the speed as it won't have to be done for each list item\n let normalizedQuery = (this.typeaheadLatinize\n ? TypeaheadUtils.latinize(this.ngControl.control.value)\n : this.ngControl.control.value).toString()\n .toLowerCase();\n this._container.query = this.typeaheadSingleWords\n ? TypeaheadUtils.tokenize(normalizedQuery, this.typeaheadWordDelimiters, this.typeaheadPhraseDelimiters)\n : normalizedQuery;\n this._container.matches = this._matches;\n } else {\n this.show();\n }\n }\n\n protected prepareMatches(options: any[]): void {\n let limited: any[] = options.slice(0, this.typeaheadOptionsLimit);\n\n if (this.typeaheadGroupField) {\n let matches: TypeaheadMatch[] = [];\n\n // extract all group names\n let groups = limited\n .map((option: any) => TypeaheadUtils.getValueFromObject(option, this.typeaheadGroupField))\n .filter((v: string, i: number, a: any[]) => a.indexOf(v) === i);\n\n groups.forEach((group: string) => {\n // add group header to array of matches\n matches.push(new TypeaheadMatch(group, group, true));\n\n // add each item of group to array of matches\n matches = matches.concat(limited\n .filter((option: any) => TypeaheadUtils.getValueFromObject(option, this.typeaheadGroupField) === group)\n .map((option: any) => new TypeaheadMatch(option, TypeaheadUtils.getValueFromObject(option, this.typeaheadOptionField))));\n });\n\n this._matches = matches;\n } else {\n this._matches = limited.map((option: any) => new TypeaheadMatch(option, TypeaheadUtils.getValueFromObject(option, this.typeaheadOptionField)));\n }\n }\n\n protected hasMatches(): boolean {\n return this._matches.length > 0;\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Directive, args: [{selector: '[typeahead]', exportAs: 'bs-typeahead'}, ] },\n];\n/** @nocollapse */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: NgControl, },\n{type: ViewContainerRef, },\n{type: ElementRef, },\n{type: Renderer, },\n{type: ComponentLoaderFactory, },\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'typeahead': [{ type: Input },],\n'typeaheadMinLength': [{ type: Input },],\n'typeaheadWaitMs': [{ type: Input },],\n'typeaheadOptionsLimit': [{ type: Input },],\n'typeaheadOptionField': [{ type: Input },],\n'typeaheadGroupField': [{ type: Input },],\n'typeaheadAsync': [{ type: Input },],\n'typeaheadLatinize': [{ type: Input },],\n'typeaheadSingleWords': [{ type: Input },],\n'typeaheadWordDelimiters': [{ type: Input },],\n'typeaheadPhraseDelimiters': [{ type: Input },],\n'typeaheadItemTemplate': [{ type: Input },],\n'optionsListTemplate': [{ type: Input },],\n'typeaheadLoading': [{ type: Output },],\n'typeaheadNoResults': [{ type: Output },],\n'typeaheadOnSelect': [{ type: Output },],\n'typeaheadOnBlur': [{ type: Output },],\n'container': [{ type: Input },],\n'onChange': [{ type: HostListener, args: ['keyup', ['$event'], ] },],\n'onFocus': [{ type: HostListener, args: ['focus', ] },],\n'onBlur': [{ type: HostListener, args: ['blur', ] },],\n'onKeydown': [{ type: HostListener, args: ['keydown', ['$event'], ] },],\n};\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]} |