ngx-bootstrap-fix-datepicker
Version:
Native Angular Bootstrap Components
1,926 lines (1,916 loc) • 79 kB
JavaScript
import { __values } from 'tslib';
import { EventEmitter, Component, Renderer2, ElementRef, ChangeDetectorRef, Output, ViewChild, ViewChildren, HostListener, Injectable, Directive, ViewContainerRef, Input, NgModule } from '@angular/core';
import { isBs3, Utils } from 'ngx-bootstrap/utils';
import { PositioningService } from 'ngx-bootstrap/positioning';
import { trigger, state, style, transition, animate } from '@angular/animations';
import { NgControl } from '@angular/forms';
import { isObservable, from } from 'rxjs';
import { ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';
import { debounceTime, switchMap, mergeMap, filter, toArray } from 'rxjs/operators';
import { CommonModule } from '@angular/common';
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/* tslint:disable */
/** @type {?} */
var latinMap = {
'Á': 'A',
'Ă': 'A',
'Ắ': 'A',
'Ặ': 'A',
'Ằ': 'A',
'Ẳ': 'A',
'Ẵ': 'A',
'Ǎ': 'A',
'Â': 'A',
'Ấ': 'A',
'Ậ': 'A',
'Ầ': 'A',
'Ẩ': 'A',
'Ẫ': 'A',
'Ä': 'A',
'Ǟ': 'A',
'Ȧ': 'A',
'Ǡ': 'A',
'Ạ': 'A',
'Ȁ': 'A',
'À': 'A',
'Ả': 'A',
'Ȃ': 'A',
'Ā': 'A',
'Ą': 'A',
'Å': 'A',
'Ǻ': 'A',
'Ḁ': 'A',
'Ⱥ': 'A',
'Ã': 'A',
'Ꜳ': 'AA',
'Æ': 'AE',
'Ǽ': 'AE',
'Ǣ': 'AE',
'Ꜵ': 'AO',
'Ꜷ': 'AU',
'Ꜹ': 'AV',
'Ꜻ': 'AV',
'Ꜽ': 'AY',
'Ḃ': 'B',
'Ḅ': 'B',
'Ɓ': 'B',
'Ḇ': 'B',
'Ƀ': 'B',
'Ƃ': 'B',
'Ć': 'C',
'Č': 'C',
'Ç': 'C',
'Ḉ': 'C',
'Ĉ': 'C',
'Ċ': 'C',
'Ƈ': 'C',
'Ȼ': 'C',
'Ď': 'D',
'Ḑ': 'D',
'Ḓ': 'D',
'Ḋ': 'D',
'Ḍ': 'D',
'Ɗ': 'D',
'Ḏ': 'D',
'Dz': 'D',
'Dž': 'D',
'Đ': 'D',
'Ƌ': 'D',
'DZ': 'DZ',
'DŽ': 'DZ',
'É': 'E',
'Ĕ': 'E',
'Ě': 'E',
'Ȩ': 'E',
'Ḝ': 'E',
'Ê': 'E',
'Ế': 'E',
'Ệ': 'E',
'Ề': 'E',
'Ể': 'E',
'Ễ': 'E',
'Ḙ': 'E',
'Ë': 'E',
'Ė': 'E',
'Ẹ': 'E',
'Ȅ': 'E',
'È': 'E',
'Ẻ': 'E',
'Ȇ': 'E',
'Ē': 'E',
'Ḗ': 'E',
'Ḕ': 'E',
'Ę': 'E',
'Ɇ': 'E',
'Ẽ': 'E',
'Ḛ': 'E',
'Ꝫ': 'ET',
'Ḟ': 'F',
'Ƒ': 'F',
'Ǵ': 'G',
'Ğ': 'G',
'Ǧ': 'G',
'Ģ': 'G',
'Ĝ': 'G',
'Ġ': 'G',
'Ɠ': 'G',
'Ḡ': 'G',
'Ǥ': 'G',
'Ḫ': 'H',
'Ȟ': 'H',
'Ḩ': 'H',
'Ĥ': 'H',
'Ⱨ': 'H',
'Ḧ': 'H',
'Ḣ': 'H',
'Ḥ': 'H',
'Ħ': 'H',
'Í': 'I',
'Ĭ': 'I',
'Ǐ': 'I',
'Î': 'I',
'Ï': 'I',
'Ḯ': 'I',
'İ': 'I',
'Ị': 'I',
'Ȉ': 'I',
'Ì': 'I',
'Ỉ': 'I',
'Ȋ': 'I',
'Ī': 'I',
'Į': 'I',
'Ɨ': 'I',
'Ĩ': 'I',
'Ḭ': 'I',
'Ꝺ': 'D',
'Ꝼ': 'F',
'Ᵹ': 'G',
'Ꞃ': 'R',
'Ꞅ': 'S',
'Ꞇ': 'T',
'Ꝭ': 'IS',
'Ĵ': 'J',
'Ɉ': 'J',
'Ḱ': 'K',
'Ǩ': 'K',
'Ķ': 'K',
'Ⱪ': 'K',
'Ꝃ': 'K',
'Ḳ': 'K',
'Ƙ': 'K',
'Ḵ': 'K',
'Ꝁ': 'K',
'Ꝅ': 'K',
'Ĺ': 'L',
'Ƚ': 'L',
'Ľ': 'L',
'Ļ': 'L',
'Ḽ': 'L',
'Ḷ': 'L',
'Ḹ': 'L',
'Ⱡ': 'L',
'Ꝉ': 'L',
'Ḻ': 'L',
'Ŀ': 'L',
'Ɫ': 'L',
'Lj': 'L',
'Ł': 'L',
'LJ': 'LJ',
'Ḿ': 'M',
'Ṁ': 'M',
'Ṃ': 'M',
'Ɱ': 'M',
'Ń': 'N',
'Ň': 'N',
'Ņ': 'N',
'Ṋ': 'N',
'Ṅ': 'N',
'Ṇ': 'N',
'Ǹ': 'N',
'Ɲ': 'N',
'Ṉ': 'N',
'Ƞ': 'N',
'Nj': 'N',
'Ñ': 'N',
'NJ': 'NJ',
'Ó': 'O',
'Ŏ': 'O',
'Ǒ': 'O',
'Ô': 'O',
'Ố': 'O',
'Ộ': 'O',
'Ồ': 'O',
'Ổ': 'O',
'Ỗ': 'O',
'Ö': 'O',
'Ȫ': 'O',
'Ȯ': 'O',
'Ȱ': 'O',
'Ọ': 'O',
'Ő': 'O',
'Ȍ': 'O',
'Ò': 'O',
'Ỏ': 'O',
'Ơ': 'O',
'Ớ': 'O',
'Ợ': 'O',
'Ờ': 'O',
'Ở': 'O',
'Ỡ': 'O',
'Ȏ': 'O',
'Ꝋ': 'O',
'Ꝍ': 'O',
'Ō': 'O',
'Ṓ': 'O',
'Ṑ': 'O',
'Ɵ': 'O',
'Ǫ': 'O',
'Ǭ': 'O',
'Ø': 'O',
'Ǿ': 'O',
'Õ': 'O',
'Ṍ': 'O',
'Ṏ': 'O',
'Ȭ': 'O',
'Ƣ': 'OI',
'Ꝏ': 'OO',
'Ɛ': 'E',
'Ɔ': 'O',
'Ȣ': 'OU',
'Ṕ': 'P',
'Ṗ': 'P',
'Ꝓ': 'P',
'Ƥ': 'P',
'Ꝕ': 'P',
'Ᵽ': 'P',
'Ꝑ': 'P',
'Ꝙ': 'Q',
'Ꝗ': 'Q',
'Ŕ': 'R',
'Ř': 'R',
'Ŗ': 'R',
'Ṙ': 'R',
'Ṛ': 'R',
'Ṝ': 'R',
'Ȑ': 'R',
'Ȓ': 'R',
'Ṟ': 'R',
'Ɍ': 'R',
'Ɽ': 'R',
'Ꜿ': 'C',
'Ǝ': 'E',
'Ś': 'S',
'Ṥ': 'S',
'Š': 'S',
'Ṧ': 'S',
'Ş': 'S',
'Ŝ': 'S',
'Ș': 'S',
'Ṡ': 'S',
'Ṣ': 'S',
'Ṩ': 'S',
'Ť': 'T',
'Ţ': 'T',
'Ṱ': 'T',
'Ț': 'T',
'Ⱦ': 'T',
'Ṫ': 'T',
'Ṭ': 'T',
'Ƭ': 'T',
'Ṯ': 'T',
'Ʈ': 'T',
'Ŧ': 'T',
'Ɐ': 'A',
'Ꞁ': 'L',
'Ɯ': 'M',
'Ʌ': 'V',
'Ꜩ': 'TZ',
'Ú': 'U',
'Ŭ': 'U',
'Ǔ': 'U',
'Û': 'U',
'Ṷ': 'U',
'Ü': 'U',
'Ǘ': 'U',
'Ǚ': 'U',
'Ǜ': 'U',
'Ǖ': 'U',
'Ṳ': 'U',
'Ụ': 'U',
'Ű': 'U',
'Ȕ': 'U',
'Ù': 'U',
'Ủ': 'U',
'Ư': 'U',
'Ứ': 'U',
'Ự': 'U',
'Ừ': 'U',
'Ử': 'U',
'Ữ': 'U',
'Ȗ': 'U',
'Ū': 'U',
'Ṻ': 'U',
'Ų': 'U',
'Ů': 'U',
'Ũ': 'U',
'Ṹ': 'U',
'Ṵ': 'U',
'Ꝟ': 'V',
'Ṿ': 'V',
'Ʋ': 'V',
'Ṽ': 'V',
'Ꝡ': 'VY',
'Ẃ': 'W',
'Ŵ': 'W',
'Ẅ': 'W',
'Ẇ': 'W',
'Ẉ': 'W',
'Ẁ': 'W',
'Ⱳ': 'W',
'Ẍ': 'X',
'Ẋ': 'X',
'Ý': 'Y',
'Ŷ': 'Y',
'Ÿ': 'Y',
'Ẏ': 'Y',
'Ỵ': 'Y',
'Ỳ': 'Y',
'Ƴ': 'Y',
'Ỷ': 'Y',
'Ỿ': 'Y',
'Ȳ': 'Y',
'Ɏ': 'Y',
'Ỹ': 'Y',
'Ź': 'Z',
'Ž': 'Z',
'Ẑ': 'Z',
'Ⱬ': 'Z',
'Ż': 'Z',
'Ẓ': 'Z',
'Ȥ': 'Z',
'Ẕ': 'Z',
'Ƶ': 'Z',
'IJ': 'IJ',
'Œ': 'OE',
'ᴀ': 'A',
'ᴁ': 'AE',
'ʙ': 'B',
'ᴃ': 'B',
'ᴄ': 'C',
'ᴅ': 'D',
'ᴇ': 'E',
'ꜰ': 'F',
'ɢ': 'G',
'ʛ': 'G',
'ʜ': 'H',
'ɪ': 'I',
'ʁ': 'R',
'ᴊ': 'J',
'ᴋ': 'K',
'ʟ': 'L',
'ᴌ': 'L',
'ᴍ': 'M',
'ɴ': 'N',
'ᴏ': 'O',
'ɶ': 'OE',
'ᴐ': 'O',
'ᴕ': 'OU',
'ᴘ': 'P',
'ʀ': 'R',
'ᴎ': 'N',
'ᴙ': 'R',
'ꜱ': 'S',
'ᴛ': 'T',
'ⱻ': 'E',
'ᴚ': 'R',
'ᴜ': 'U',
'ᴠ': 'V',
'ᴡ': 'W',
'ʏ': 'Y',
'ᴢ': 'Z',
'á': 'a',
'ă': 'a',
'ắ': 'a',
'ặ': 'a',
'ằ': 'a',
'ẳ': 'a',
'ẵ': 'a',
'ǎ': 'a',
'â': 'a',
'ấ': 'a',
'ậ': 'a',
'ầ': 'a',
'ẩ': 'a',
'ẫ': 'a',
'ä': 'a',
'ǟ': 'a',
'ȧ': 'a',
'ǡ': 'a',
'ạ': 'a',
'ȁ': 'a',
'à': 'a',
'ả': 'a',
'ȃ': 'a',
'ā': 'a',
'ą': 'a',
'ᶏ': 'a',
'ẚ': 'a',
'å': 'a',
'ǻ': 'a',
'ḁ': 'a',
'ⱥ': 'a',
'ã': 'a',
'ꜳ': 'aa',
'æ': 'ae',
'ǽ': 'ae',
'ǣ': 'ae',
'ꜵ': 'ao',
'ꜷ': 'au',
'ꜹ': 'av',
'ꜻ': 'av',
'ꜽ': 'ay',
'ḃ': 'b',
'ḅ': 'b',
'ɓ': 'b',
'ḇ': 'b',
'ᵬ': 'b',
'ᶀ': 'b',
'ƀ': 'b',
'ƃ': 'b',
'ɵ': 'o',
'ć': 'c',
'č': 'c',
'ç': 'c',
'ḉ': 'c',
'ĉ': 'c',
'ɕ': 'c',
'ċ': 'c',
'ƈ': 'c',
'ȼ': 'c',
'ď': 'd',
'ḑ': 'd',
'ḓ': 'd',
'ȡ': 'd',
'ḋ': 'd',
'ḍ': 'd',
'ɗ': 'd',
'ᶑ': 'd',
'ḏ': 'd',
'ᵭ': 'd',
'ᶁ': 'd',
'đ': 'd',
'ɖ': 'd',
'ƌ': 'd',
'ı': 'i',
'ȷ': 'j',
'ɟ': 'j',
'ʄ': 'j',
'dz': 'dz',
'dž': 'dz',
'é': 'e',
'ĕ': 'e',
'ě': 'e',
'ȩ': 'e',
'ḝ': 'e',
'ê': 'e',
'ế': 'e',
'ệ': 'e',
'ề': 'e',
'ể': 'e',
'ễ': 'e',
'ḙ': 'e',
'ë': 'e',
'ė': 'e',
'ẹ': 'e',
'ȅ': 'e',
'è': 'e',
'ẻ': 'e',
'ȇ': 'e',
'ē': 'e',
'ḗ': 'e',
'ḕ': 'e',
'ⱸ': 'e',
'ę': 'e',
'ᶒ': 'e',
'ɇ': 'e',
'ẽ': 'e',
'ḛ': 'e',
'ꝫ': 'et',
'ḟ': 'f',
'ƒ': 'f',
'ᵮ': 'f',
'ᶂ': 'f',
'ǵ': 'g',
'ğ': 'g',
'ǧ': 'g',
'ģ': 'g',
'ĝ': 'g',
'ġ': 'g',
'ɠ': 'g',
'ḡ': 'g',
'ᶃ': 'g',
'ǥ': 'g',
'ḫ': 'h',
'ȟ': 'h',
'ḩ': 'h',
'ĥ': 'h',
'ⱨ': 'h',
'ḧ': 'h',
'ḣ': 'h',
'ḥ': 'h',
'ɦ': 'h',
'ẖ': 'h',
'ħ': 'h',
'ƕ': 'hv',
'í': 'i',
'ĭ': 'i',
'ǐ': 'i',
'î': 'i',
'ï': 'i',
'ḯ': 'i',
'ị': 'i',
'ȉ': 'i',
'ì': 'i',
'ỉ': 'i',
'ȋ': 'i',
'ī': 'i',
'į': 'i',
'ᶖ': 'i',
'ɨ': 'i',
'ĩ': 'i',
'ḭ': 'i',
'ꝺ': 'd',
'ꝼ': 'f',
'ᵹ': 'g',
'ꞃ': 'r',
'ꞅ': 's',
'ꞇ': 't',
'ꝭ': 'is',
'ǰ': 'j',
'ĵ': 'j',
'ʝ': 'j',
'ɉ': 'j',
'ḱ': 'k',
'ǩ': 'k',
'ķ': 'k',
'ⱪ': 'k',
'ꝃ': 'k',
'ḳ': 'k',
'ƙ': 'k',
'ḵ': 'k',
'ᶄ': 'k',
'ꝁ': 'k',
'ꝅ': 'k',
'ĺ': 'l',
'ƚ': 'l',
'ɬ': 'l',
'ľ': 'l',
'ļ': 'l',
'ḽ': 'l',
'ȴ': 'l',
'ḷ': 'l',
'ḹ': 'l',
'ⱡ': 'l',
'ꝉ': 'l',
'ḻ': 'l',
'ŀ': 'l',
'ɫ': 'l',
'ᶅ': 'l',
'ɭ': 'l',
'ł': 'l',
'lj': 'lj',
'ſ': 's',
'ẜ': 's',
'ẛ': 's',
'ẝ': 's',
'ḿ': 'm',
'ṁ': 'm',
'ṃ': 'm',
'ɱ': 'm',
'ᵯ': 'm',
'ᶆ': 'm',
'ń': 'n',
'ň': 'n',
'ņ': 'n',
'ṋ': 'n',
'ȵ': 'n',
'ṅ': 'n',
'ṇ': 'n',
'ǹ': 'n',
'ɲ': 'n',
'ṉ': 'n',
'ƞ': 'n',
'ᵰ': 'n',
'ᶇ': 'n',
'ɳ': 'n',
'ñ': 'n',
'nj': 'nj',
'ó': 'o',
'ŏ': 'o',
'ǒ': 'o',
'ô': 'o',
'ố': 'o',
'ộ': 'o',
'ồ': 'o',
'ổ': 'o',
'ỗ': 'o',
'ö': 'o',
'ȫ': 'o',
'ȯ': 'o',
'ȱ': 'o',
'ọ': 'o',
'ő': 'o',
'ȍ': 'o',
'ò': 'o',
'ỏ': 'o',
'ơ': 'o',
'ớ': 'o',
'ợ': 'o',
'ờ': 'o',
'ở': 'o',
'ỡ': 'o',
'ȏ': 'o',
'ꝋ': 'o',
'ꝍ': 'o',
'ⱺ': 'o',
'ō': 'o',
'ṓ': 'o',
'ṑ': 'o',
'ǫ': 'o',
'ǭ': 'o',
'ø': 'o',
'ǿ': 'o',
'õ': 'o',
'ṍ': 'o',
'ṏ': 'o',
'ȭ': 'o',
'ƣ': 'oi',
'ꝏ': 'oo',
'ɛ': 'e',
'ᶓ': 'e',
'ɔ': 'o',
'ᶗ': 'o',
'ȣ': 'ou',
'ṕ': 'p',
'ṗ': 'p',
'ꝓ': 'p',
'ƥ': 'p',
'ᵱ': 'p',
'ᶈ': 'p',
'ꝕ': 'p',
'ᵽ': 'p',
'ꝑ': 'p',
'ꝙ': 'q',
'ʠ': 'q',
'ɋ': 'q',
'ꝗ': 'q',
'ŕ': 'r',
'ř': 'r',
'ŗ': 'r',
'ṙ': 'r',
'ṛ': 'r',
'ṝ': 'r',
'ȑ': 'r',
'ɾ': 'r',
'ᵳ': 'r',
'ȓ': 'r',
'ṟ': 'r',
'ɼ': 'r',
'ᵲ': 'r',
'ᶉ': 'r',
'ɍ': 'r',
'ɽ': 'r',
'ↄ': 'c',
'ꜿ': 'c',
'ɘ': 'e',
'ɿ': 'r',
'ś': 's',
'ṥ': 's',
'š': 's',
'ṧ': 's',
'ş': 's',
'ŝ': 's',
'ș': 's',
'ṡ': 's',
'ṣ': 's',
'ṩ': 's',
'ʂ': 's',
'ᵴ': 's',
'ᶊ': 's',
'ȿ': 's',
'ɡ': 'g',
'ᴑ': 'o',
'ᴓ': 'o',
'ᴝ': 'u',
'ť': 't',
'ţ': 't',
'ṱ': 't',
'ț': 't',
'ȶ': 't',
'ẗ': 't',
'ⱦ': 't',
'ṫ': 't',
'ṭ': 't',
'ƭ': 't',
'ṯ': 't',
'ᵵ': 't',
'ƫ': 't',
'ʈ': 't',
'ŧ': 't',
'ᵺ': 'th',
'ɐ': 'a',
'ᴂ': 'ae',
'ǝ': 'e',
'ᵷ': 'g',
'ɥ': 'h',
'ʮ': 'h',
'ʯ': 'h',
'ᴉ': 'i',
'ʞ': 'k',
'ꞁ': 'l',
'ɯ': 'm',
'ɰ': 'm',
'ᴔ': 'oe',
'ɹ': 'r',
'ɻ': 'r',
'ɺ': 'r',
'ⱹ': 'r',
'ʇ': 't',
'ʌ': 'v',
'ʍ': 'w',
'ʎ': 'y',
'ꜩ': 'tz',
'ú': 'u',
'ŭ': 'u',
'ǔ': 'u',
'û': 'u',
'ṷ': 'u',
'ü': 'u',
'ǘ': 'u',
'ǚ': 'u',
'ǜ': 'u',
'ǖ': 'u',
'ṳ': 'u',
'ụ': 'u',
'ű': 'u',
'ȕ': 'u',
'ù': 'u',
'ủ': 'u',
'ư': 'u',
'ứ': 'u',
'ự': 'u',
'ừ': 'u',
'ử': 'u',
'ữ': 'u',
'ȗ': 'u',
'ū': 'u',
'ṻ': 'u',
'ų': 'u',
'ᶙ': 'u',
'ů': 'u',
'ũ': 'u',
'ṹ': 'u',
'ṵ': 'u',
'ᵫ': 'ue',
'ꝸ': 'um',
'ⱴ': 'v',
'ꝟ': 'v',
'ṿ': 'v',
'ʋ': 'v',
'ᶌ': 'v',
'ⱱ': 'v',
'ṽ': 'v',
'ꝡ': 'vy',
'ẃ': 'w',
'ŵ': 'w',
'ẅ': 'w',
'ẇ': 'w',
'ẉ': 'w',
'ẁ': 'w',
'ⱳ': 'w',
'ẘ': 'w',
'ẍ': 'x',
'ẋ': 'x',
'ᶍ': 'x',
'ý': 'y',
'ŷ': 'y',
'ÿ': 'y',
'ẏ': 'y',
'ỵ': 'y',
'ỳ': 'y',
'ƴ': 'y',
'ỷ': 'y',
'ỿ': 'y',
'ȳ': 'y',
'ẙ': 'y',
'ɏ': 'y',
'ỹ': 'y',
'ź': 'z',
'ž': 'z',
'ẑ': 'z',
'ʑ': 'z',
'ⱬ': 'z',
'ż': 'z',
'ẓ': 'z',
'ȥ': 'z',
'ẕ': 'z',
'ᵶ': 'z',
'ᶎ': 'z',
'ʐ': 'z',
'ƶ': 'z',
'ɀ': 'z',
'ff': 'ff',
'ffi': 'ffi',
'ffl': 'ffl',
'fi': 'fi',
'fl': 'fl',
'ij': 'ij',
'œ': 'oe',
'st': 'st',
'ₐ': 'a',
'ₑ': 'e',
'ᵢ': 'i',
'ⱼ': 'j',
'ₒ': 'o',
'ᵣ': 'r',
'ᵤ': 'u',
'ᵥ': 'v',
'ₓ': 'x'
};
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var TypeaheadOptions = /** @class */ (function () {
function TypeaheadOptions(options) {
Object.assign(this, options);
}
return TypeaheadOptions;
}());
if (false) {
/** @type {?} */
TypeaheadOptions.prototype.placement;
/** @type {?} */
TypeaheadOptions.prototype.animation;
/** @type {?} */
TypeaheadOptions.prototype.typeaheadRef;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var TypeaheadMatch = /** @class */ (function () {
// tslint:disable-next-line:no-any
function TypeaheadMatch(item, value, header) {
if (value === void 0) { value = item; }
if (header === void 0) { header = false; }
this.item = item;
this.value = value;
this.header = header;
}
/**
* @return {?}
*/
TypeaheadMatch.prototype.isHeader = /**
* @return {?}
*/
function () {
return this.header;
};
/**
* @return {?}
*/
TypeaheadMatch.prototype.toString = /**
* @return {?}
*/
function () {
return this.value;
};
return TypeaheadMatch;
}());
if (false) {
/** @type {?} */
TypeaheadMatch.prototype.value;
/** @type {?} */
TypeaheadMatch.prototype.item;
/**
* @type {?}
* @protected
*/
TypeaheadMatch.prototype.header;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var TypeaheadOrder = /** @class */ (function () {
function TypeaheadOrder() {
}
return TypeaheadOrder;
}());
if (false) {
/**
* field for sorting
* @type {?}
*/
TypeaheadOrder.prototype.field;
/**
* ordering direction, could be 'asc' or 'desc'
* @type {?}
*/
TypeaheadOrder.prototype.direction;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @param {?} str
* @return {?}
*/
function latinize(str) {
if (!str) {
return '';
}
return str.replace(/[^A-Za-z0-9\[\] ]/g, (/**
* @param {?} a
* @return {?}
*/
function (a) {
return latinMap[a] || a;
}));
}
/**
* @param {?} queryToEscape
* @return {?}
*/
function escapeRegexp(queryToEscape) {
// Regex: capture the whole query string and replace it with the string
// that will be used to match the results, for example if the capture is
// 'a' the result will be \a
return queryToEscape.replace(/([.?*+^$[\]\\(){}|-])/g, '\\$1');
}
/* tslint:disable */
/**
* @param {?} str
* @param {?=} wordRegexDelimiters
* @param {?=} phraseRegexDelimiters
* @return {?}
*/
function tokenize(str, wordRegexDelimiters, phraseRegexDelimiters) {
if (wordRegexDelimiters === void 0) { wordRegexDelimiters = ' '; }
if (phraseRegexDelimiters === void 0) { phraseRegexDelimiters = ''; }
/* tslint:enable */
/** @type {?} */
var regexStr = "(?:[" + phraseRegexDelimiters + "])([^" + phraseRegexDelimiters + "]+)" +
("(?:[" + phraseRegexDelimiters + "])|([^" + wordRegexDelimiters + "]+)");
/** @type {?} */
var preTokenized = str.split(new RegExp(regexStr, 'g'));
/** @type {?} */
var result = [];
/** @type {?} */
var preTokenizedLength = preTokenized.length;
/** @type {?} */
var token;
/** @type {?} */
var replacePhraseDelimiters = new RegExp("[" + phraseRegexDelimiters + "]+", 'g');
for (var i = 0; i < preTokenizedLength; i += 1) {
token = preTokenized[i];
if (token && token.length && token !== wordRegexDelimiters) {
result.push(token.replace(replacePhraseDelimiters, ''));
}
}
return result;
}
// tslint:disable-next-line:no-any
/**
* @param {?} object
* @param {?} option
* @return {?}
*/
function getValueFromObject(object, option) {
var e_1, _a;
if (!option || typeof object !== 'object') {
return object.toString();
}
if (option.endsWith('()')) {
/** @type {?} */
var functionName = option.slice(0, option.length - 2);
return object[functionName]().toString();
}
/** @type {?} */
var properties = option
.replace(/\[(\w+)\]/g, '.$1')
.replace(/^\./, '');
/** @type {?} */
var propertiesArray = properties.split('.');
try {
for (var propertiesArray_1 = __values(propertiesArray), propertiesArray_1_1 = propertiesArray_1.next(); !propertiesArray_1_1.done; propertiesArray_1_1 = propertiesArray_1.next()) {
var property = propertiesArray_1_1.value;
if (property in object) {
// tslint:disable-next-line
object = object[property];
}
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (propertiesArray_1_1 && !propertiesArray_1_1.done && (_a = propertiesArray_1.return)) _a.call(propertiesArray_1);
}
finally { if (e_1) throw e_1.error; }
}
if (!object) {
return '';
}
return object.toString();
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/** @type {?} */
var TYPEAHEAD_ANIMATION_TIMING = '220ms cubic-bezier(0, 0, 0.2, 1)';
/** @type {?} */
var typeaheadAnimation = trigger('typeaheadAnimation', [
state('animated-down', style({ height: '*', overflow: 'hidden' })),
transition('* => animated-down', [
style({ height: 0, overflow: 'hidden' }),
animate(TYPEAHEAD_ANIMATION_TIMING)
]),
state('animated-up', style({ height: '*', overflow: 'hidden' })),
transition('* => animated-up', [
style({ height: '*', overflow: 'hidden' }),
animate(TYPEAHEAD_ANIMATION_TIMING)
]),
transition('* => unanimated', animate('0s'))
]);
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/** @type {?} */
var nextWindowId = 0;
var TypeaheadContainerComponent = /** @class */ (function () {
function TypeaheadContainerComponent(positionService, renderer, element, changeDetectorRef) {
var _this = this;
this.positionService = positionService;
this.renderer = renderer;
this.element = element;
this.changeDetectorRef = changeDetectorRef;
// tslint:disable-next-line: no-output-rename
this.activeChangeEvent = new EventEmitter();
this.isFocused = false;
this.height = 0;
this.popupId = "ngb-typeahead-" + nextWindowId++;
this._matches = [];
this.isScrolledIntoView = (/**
* @param {?} elem
* @return {?}
*/
function (elem) {
/** @type {?} */
var containerViewTop = this.ulElement.nativeElement.scrollTop;
/** @type {?} */
var containerViewBottom = containerViewTop + Number(this.ulElement.nativeElement.offsetHeight);
/** @type {?} */
var elemTop = elem.offsetTop;
/** @type {?} */
var elemBottom = elemTop + elem.offsetHeight;
return ((elemBottom <= containerViewBottom) && (elemTop >= containerViewTop));
});
this.renderer.setAttribute(this.element.nativeElement, 'id', this.popupId);
this.positionServiceSubscription = this.positionService.event$.subscribe((/**
* @return {?}
*/
function () {
if (_this.isAnimated) {
_this.animationState = _this.isTopPosition ? 'animated-up' : 'animated-down';
_this.changeDetectorRef.detectChanges();
return;
}
_this.animationState = 'unanimated';
_this.changeDetectorRef.detectChanges();
}));
}
Object.defineProperty(TypeaheadContainerComponent.prototype, "isBs4", {
get: /**
* @return {?}
*/
function () {
return !isBs3();
},
enumerable: true,
configurable: true
});
Object.defineProperty(TypeaheadContainerComponent.prototype, "typeaheadTemplateMethods", {
get: /**
* @return {?}
*/
function () {
/* tslint:disable:no-this-assignment */
/** @type {?} */
var _that = this;
return {
selectMatch: this.selectMatch.bind(_that),
selectActive: this.selectActive.bind(_that),
isActive: this.isActive.bind(_that)
};
},
enumerable: true,
configurable: true
});
Object.defineProperty(TypeaheadContainerComponent.prototype, "active", {
get: /**
* @return {?}
*/
function () {
return this._active;
},
set: /**
* @param {?} active
* @return {?}
*/
function (active) {
this._active = active;
this.activeChanged();
},
enumerable: true,
configurable: true
});
Object.defineProperty(TypeaheadContainerComponent.prototype, "matches", {
get: /**
* @return {?}
*/
function () {
return this._matches;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
var _this = this;
this.positionService.setOptions({
modifiers: { flip: { enabled: this.adaptivePosition } },
allowedPositions: ['top', 'bottom']
});
this._matches = value;
this.needScrollbar = this.typeaheadScrollable && this.typeaheadOptionsInScrollableView < this.matches.length;
if (this.typeaheadScrollable) {
setTimeout((/**
* @return {?}
*/
function () {
_this.setScrollableMode();
}));
}
if (this.typeaheadIsFirstItemActive && this._matches.length > 0) {
this.active = this._matches[0];
if (this._active.isHeader()) {
this.nextActiveMatch();
}
}
if (this._active && !this.typeaheadIsFirstItemActive) {
/** @type {?} */
var concurrency = this._matches.find((/**
* @param {?} match
* @return {?}
*/
function (match) { return match.value === _this._active.value; }));
if (concurrency) {
this.selectActive(concurrency);
return;
}
this.active = null;
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(TypeaheadContainerComponent.prototype, "isTopPosition", {
get: /**
* @return {?}
*/
function () {
return this.element.nativeElement.classList.contains('top');
},
enumerable: true,
configurable: true
});
Object.defineProperty(TypeaheadContainerComponent.prototype, "optionsListTemplate", {
// tslint:disable-next-line:no-any
get:
// tslint:disable-next-line:no-any
/**
* @return {?}
*/
function () {
return this.parent ? this.parent.optionsListTemplate : undefined;
},
enumerable: true,
configurable: true
});
Object.defineProperty(TypeaheadContainerComponent.prototype, "isAnimated", {
get: /**
* @return {?}
*/
function () {
return this.parent ? this.parent.isAnimated : false;
},
enumerable: true,
configurable: true
});
Object.defineProperty(TypeaheadContainerComponent.prototype, "adaptivePosition", {
get: /**
* @return {?}
*/
function () {
return this.parent ? this.parent.adaptivePosition : false;
},
enumerable: true,
configurable: true
});
Object.defineProperty(TypeaheadContainerComponent.prototype, "typeaheadScrollable", {
get: /**
* @return {?}
*/
function () {
return this.parent ? this.parent.typeaheadScrollable : false;
},
enumerable: true,
configurable: true
});
Object.defineProperty(TypeaheadContainerComponent.prototype, "typeaheadOptionsInScrollableView", {
get: /**
* @return {?}
*/
function () {
return this.parent ? this.parent.typeaheadOptionsInScrollableView : 5;
},
enumerable: true,
configurable: true
});
Object.defineProperty(TypeaheadContainerComponent.prototype, "typeaheadIsFirstItemActive", {
get: /**
* @return {?}
*/
function () {
return this.parent ? this.parent.typeaheadIsFirstItemActive : true;
},
enumerable: true,
configurable: true
});
Object.defineProperty(TypeaheadContainerComponent.prototype, "itemTemplate", {
// tslint:disable-next-line:no-any
get:
// tslint:disable-next-line:no-any
/**
* @return {?}
*/
function () {
return this.parent ? this.parent.typeaheadItemTemplate : undefined;
},
enumerable: true,
configurable: true
});
/**
* @param {?=} isActiveItemChanged
* @return {?}
*/
TypeaheadContainerComponent.prototype.selectActiveMatch = /**
* @param {?=} isActiveItemChanged
* @return {?}
*/
function (isActiveItemChanged) {
if (this._active && this.parent.typeaheadSelectFirstItem) {
this.selectMatch(this._active);
}
if (!this.parent.typeaheadSelectFirstItem && isActiveItemChanged) {
this.selectMatch(this._active);
}
};
/**
* @return {?}
*/
TypeaheadContainerComponent.prototype.activeChanged = /**
* @return {?}
*/
function () {
/** @type {?} */
var index = this.matches.indexOf(this._active);
this.activeChangeEvent.emit(this.popupId + "-" + index);
};
/**
* @return {?}
*/
TypeaheadContainerComponent.prototype.prevActiveMatch = /**
* @return {?}
*/
function () {
/** @type {?} */
var index = this.matches.indexOf(this._active);
this.active = this.matches[index - 1 < 0 ? this.matches.length - 1 : index - 1];
if (this._active.isHeader()) {
this.prevActiveMatch();
}
if (this.typeaheadScrollable) {
this.scrollPrevious(index);
}
};
/**
* @return {?}
*/
TypeaheadContainerComponent.prototype.nextActiveMatch = /**
* @return {?}
*/
function () {
/** @type {?} */
var index = this.matches.indexOf(this._active);
this.active = this.matches[index + 1 > this.matches.length - 1 ? 0 : index + 1];
if (this._active.isHeader()) {
this.nextActiveMatch();
}
if (this.typeaheadScrollable) {
this.scrollNext(index);
}
};
/**
* @param {?} value
* @return {?}
*/
TypeaheadContainerComponent.prototype.selectActive = /**
* @param {?} value
* @return {?}
*/
function (value) {
this.isFocused = true;
this.active = value;
};
/**
* @param {?} match
* @param {?} query
* @return {?}
*/
TypeaheadContainerComponent.prototype.highlight = /**
* @param {?} match
* @param {?} query
* @return {?}
*/
function (match, query) {
/** @type {?} */
var itemStr = match.value;
/** @type {?} */
var itemStrHelper = (this.parent && this.parent.typeaheadLatinize
? latinize(itemStr)
: itemStr).toLowerCase();
/** @type {?} */
var startIdx;
/** @type {?} */
var tokenLen;
// Replaces the capture string with the same string inside of a "strong" tag
if (typeof query === 'object') {
/** @type {?} */
var queryLen = query.length;
for (var i = 0; i < queryLen; i += 1) {
// query[i] is already latinized and lower case
startIdx = itemStrHelper.indexOf(query[i]);
tokenLen = query[i].length;
if (startIdx >= 0 && tokenLen > 0) {
itemStr =
itemStr.substring(0, startIdx) + "<strong>" + itemStr.substring(startIdx, startIdx + tokenLen) + "</strong>" +
("" + itemStr.substring(startIdx + tokenLen));
itemStrHelper =
itemStrHelper.substring(0, startIdx) + " " + ' '.repeat(tokenLen) + " " +
("" + itemStrHelper.substring(startIdx + tokenLen));
}
}
}
else if (query) {
// query is already latinized and lower case
startIdx = itemStrHelper.indexOf(query);
tokenLen = query.length;
if (startIdx >= 0 && tokenLen > 0) {
itemStr =
itemStr.substring(0, startIdx) + "<strong>" + itemStr.substring(startIdx, startIdx + tokenLen) + "</strong>" +
("" + itemStr.substring(startIdx + tokenLen));
}
}
return itemStr;
};
/**
* @return {?}
*/
TypeaheadContainerComponent.prototype.focusLost = /**
* @return {?}
*/
function () {
this.isFocused = false;
};
/**
* @param {?} value
* @return {?}
*/
TypeaheadContainerComponent.prototype.isActive = /**
* @param {?} value
* @return {?}
*/
function (value) {
return this.active === value;
};
/**
* @param {?} value
* @param {?=} e
* @return {?}
*/
TypeaheadContainerComponent.prototype.selectMatch = /**
* @param {?} value
* @param {?=} e
* @return {?}
*/
function (value, e) {
var _this = this;
if (e === void 0) { e = void 0; }
if (e) {
e.stopPropagation();
e.preventDefault();
}
this.parent.changeModel(value);
setTimeout((/**
* @return {?}
*/
function () { return _this.parent.typeaheadOnSelect.emit(value); }), 0);
return false;
};
/**
* @return {?}
*/
TypeaheadContainerComponent.prototype.setScrollableMode = /**
* @return {?}
*/
function () {
if (!this.ulElement) {
this.ulElement = this.element;
}
if (this.liElements.first) {
/** @type {?} */
var ulStyles = Utils.getStyles(this.ulElement.nativeElement);
/** @type {?} */
var liStyles = Utils.getStyles(this.liElements.first.nativeElement);
/** @type {?} */
var ulPaddingBottom = parseFloat((ulStyles['padding-bottom'] ? ulStyles['padding-bottom'] : '')
.replace('px', ''));
/** @type {?} */
var ulPaddingTop = parseFloat((ulStyles['padding-top'] ? ulStyles['padding-top'] : '0')
.replace('px', ''));
/** @type {?} */
var optionHeight = parseFloat((liStyles.height ? liStyles.height : '0')
.replace('px', ''));
/** @type {?} */
var height = this.typeaheadOptionsInScrollableView * optionHeight;
this.guiHeight = height + ulPaddingTop + ulPaddingBottom + "px";
}
this.renderer.setStyle(this.element.nativeElement, 'visibility', 'visible');
};
/**
* @param {?} index
* @return {?}
*/
TypeaheadContainerComponent.prototype.scrollPrevious = /**
* @param {?} index
* @return {?}
*/
function (index) {
if (index === 0) {
this.scrollToBottom();
return;
}
if (this.liElements) {
/** @type {?} */
var liElement = this.liElements.toArray()[index - 1];
if (liElement && !this.isScrolledIntoView(liElement.nativeElement)) {
this.ulElement.nativeElement.scrollTop = liElement.nativeElement.offsetTop;
}
}
};
/**
* @param {?} index
* @return {?}
*/
TypeaheadContainerComponent.prototype.scrollNext = /**
* @param {?} index
* @return {?}
*/
function (index) {
if (index + 1 > this.matches.length - 1) {
this.scrollToTop();
return;
}
if (this.liElements) {
/** @type {?} */
var liElement = this.liElements.toArray()[index + 1];
if (liElement && !this.isScrolledIntoView(liElement.nativeElement)) {
this.ulElement.nativeElement.scrollTop =
liElement.nativeElement.offsetTop -
Number(this.ulElement.nativeElement.offsetHeight) +
Number(liElement.nativeElement.offsetHeight);
}
}
};
/**
* @return {?}
*/
TypeaheadContainerComponent.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
this.positionServiceSubscription.unsubscribe();
};
/**
* @private
* @return {?}
*/
TypeaheadContainerComponent.prototype.scrollToBottom = /**
* @private
* @return {?}
*/
function () {
this.ulElement.nativeElement.scrollTop = this.ulElement.nativeElement.scrollHeight;
};
/**
* @private
* @return {?}
*/
TypeaheadContainerComponent.prototype.scrollToTop = /**
* @private
* @return {?}
*/
function () {
this.ulElement.nativeElement.scrollTop = 0;
};
TypeaheadContainerComponent.decorators = [
{ type: Component, args: [{
selector: 'typeahead-container',
template: "<!-- inject options list template -->\n<ng-template [ngTemplateOutlet]=\"optionsListTemplate || (isBs4 ? bs4Template : bs3Template)\"\n [ngTemplateOutletContext]=\"{\n matches: matches,\n itemTemplate: itemTemplate || bsItemTemplate,\n query: query,\n $implicit: typeaheadTemplateMethods\n }\">\n</ng-template>\n\n<!-- default options item template -->\n<ng-template #bsItemTemplate let-match=\"match\" let-query=\"query\">\n <span [innerHtml]=\"highlight(match, query)\"></span>\n</ng-template>\n\n<!-- Bootstrap 3 options list template -->\n<ng-template #bs3Template>\n <ul class=\"dropdown-menu\"\n #ulElement\n role=\"listbox\"\n [style.overflow-y]=\"needScrollbar ? 'scroll': 'auto'\"\n [style.height]=\"needScrollbar ? guiHeight: 'auto'\">\n <ng-template ngFor let-match let-i=\"index\" [ngForOf]=\"matches\">\n <li #liElements *ngIf=\"match.isHeader()\" class=\"dropdown-header\">{{ match }}</li>\n <li #liElements\n *ngIf=\"!match.isHeader()\"\n [id]=\"popupId + '-' + i\"\n role=\"option\"\n [@typeaheadAnimation]=\"animationState\"\n [class.active]=\"isActive(match)\"\n (mouseenter)=\"selectActive(match)\">\n\n <a href=\"#\" (click)=\"selectMatch(match, $event)\" tabindex=\"-1\">\n <ng-template [ngTemplateOutlet]=\"itemTemplate || bsItemTemplate\"\n [ngTemplateOutletContext]=\"{item: match.item, index: i, match: match, query: query}\">\n </ng-template>\n </a>\n </li>\n </ng-template>\n </ul>\n</ng-template>\n\n<!-- Bootstrap 4 options list template -->\n<ng-template #bs4Template>\n <ng-template ngFor let-match let-i=\"index\" [ngForOf]=\"matches\">\n <h6 *ngIf=\"match.isHeader()\" class=\"dropdown-header\">{{ match }}</h6>\n <ng-template [ngIf]=\"!match.isHeader()\">\n <button #liElements\n [id]=\"popupId + '-' + i\"\n role=\"option\"\n [@typeaheadAnimation]=\"animationState\"\n class=\"dropdown-item\"\n (click)=\"selectMatch(match, $event)\"\n (mouseenter)=\"selectActive(match)\"\n [class.active]=\"isActive(match)\">\n <ng-template [ngTemplateOutlet]=\"itemTemplate || bsItemTemplate\"\n [ngTemplateOutletContext]=\"{item: match.item, index: i, match: match, query: query}\">\n </ng-template>\n </button>\n </ng-template>\n </ng-template>\n</ng-template>\n",
host: {
class: 'dropdown open bottom',
'[class.dropdown-menu]': 'isBs4',
'[style.height]': "isBs4 && needScrollbar ? guiHeight: 'auto'",
'[style.visibility]': "'inherit'",
'[class.dropup]': 'dropup',
style: 'position: absolute;display: block;',
'[attr.role]': "isBs4 ? 'listbox' : null "
},
animations: [typeaheadAnimation],
styles: ["\n :host.dropdown {\n z-index: 1000;\n }\n\n :host.dropdown-menu, .dropdown-menu {\n overflow-y: auto;\n height: 100px;\n }\n "]
}] }
];
/** @nocollapse */
TypeaheadContainerComponent.ctorParameters = function () { return [
{ type: PositioningService },
{ type: Renderer2 },
{ type: ElementRef },
{ type: ChangeDetectorRef }
]; };
TypeaheadContainerComponent.propDecorators = {
activeChangeEvent: [{ type: Output, args: ['activeChange',] }],
ulElement: [{ type: ViewChild, args: ['ulElement', { static: false },] }],
liElements: [{ type: ViewChildren, args: ['liElements',] }],
focusLost: [{ type: HostListener, args: ['mouseleave',] }, { type: HostListener, args: ['blur',] }]
};
return TypeaheadContainerComponent;
}());
if (false) {
/** @type {?} */
TypeaheadContainerComponent.prototype.activeChangeEvent;
/** @type {?} */
TypeaheadContainerComponent.prototype.parent;
/** @type {?} */
TypeaheadContainerComponent.prototype.query;
/** @type {?} */
TypeaheadContainerComponent.prototype.isFocused;
/** @type {?} */
TypeaheadContainerComponent.prototype.top;
/** @type {?} */
TypeaheadContainerComponent.prototype.left;
/** @type {?} */
TypeaheadContainerComponent.prototype.display;
/** @type {?} */
TypeaheadContainerComponent.prototype.placement;
/** @type {?} */
TypeaheadContainerComponent.prototype.dropup;
/** @type {?} */
TypeaheadContainerComponent.prototype.guiHeight;
/** @type {?} */
TypeaheadContainerComponent.prototype.needScrollbar;
/** @type {?} */
TypeaheadContainerComponent.prototype.animationState;
/** @type {?} */
TypeaheadContainerComponent.prototype.positionServiceSubscription;
/** @type {?} */
TypeaheadContainerComponent.prototype.height;
/** @type {?} */
TypeaheadContainerComponent.prototype.popupId;
/**
* @type {?}
* @protected
*/
TypeaheadContainerComponent.prototype._active;
/**
* @type {?}
* @protected
*/
TypeaheadContainerComponent.prototype._matches;
/**
* @type {?}
* @private
*/
TypeaheadContainerComponent.prototype.ulElement;
/**
* @type {?}
* @private
*/
TypeaheadContainerComponent.prototype.liElements;
/**
* @type {?}
* @private
*/
TypeaheadContainerComponent.prototype.isScrolledIntoView;
/**
* @type {?}
* @private
*/
TypeaheadContainerComponent.prototype.positionService;
/**
* @type {?}
* @private
*/
TypeaheadContainerComponent.prototype.renderer;
/** @type {?} */
TypeaheadContainerComponent.prototype.element;
/**
* @type {?}
* @private
*/
TypeaheadContainerComponent.prototype.changeDetectorRef;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* Default values provider for typeahead
*/
var TypeaheadConfig = /** @class */ (function () {
function TypeaheadConfig() {
/**
* sets use adaptive position
*/
this.adaptivePosition = false;
/**
* turn on/off animation
*/
this.isAnimated = false;
/**
* used to hide results on blur
*/
this.hideResultsOnBlur = true;
/**
* if true, typeahead will cancel async request on blur
*/
this.cancelRequestOnFocusLost = false;
/**
* used to choose the first item in typeahead container
*/
this.selectFirstItem = true;
/**
* used to active/inactive the first item in typeahead container
*/
this.isFirstItemActive = true;
/**
* used to choose set minimal no of characters that needs to
* be entered before typeahead kicks-in
*/
this.minLength = 1;
}
TypeaheadConfig.decorators = [
{ type: Injectable }
];
return TypeaheadConfig;
}());
if (false) {
/**
* sets use adaptive position
* @type {?}
*/
TypeaheadConfig.prototype.adaptivePosition;
/**
* turn on/off animation
* @type {?}
*/
TypeaheadConfig.prototype.isAnimated;
/**
* used to hide results on blur
* @type {?}
*/
TypeaheadConfig.prototype.hideResultsOnBlur;
/**
* if true, typeahead will cancel async request on blur
* @type {?}
*/
TypeaheadConfig.prototype.cancelRequestOnFocusLost;
/**
* used to choose the first item in typeahead container
* @type {?}
*/
TypeaheadConfig.prototype.selectFirstItem;
/**
* used to active/inactive the first item in typeahead container
* @type {?}
*/
TypeaheadConfig.prototype.isFirstItemActive;
/**
* used to choose set minimal no of characters that needs to
* be entered before typeahead kicks-in
* @type {?}
*/
TypeaheadConfig.prototype.minLength;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var TypeaheadDirective = /** @class */ (function () {
function TypeaheadDirective(cis, config, changeDetection, element, ngControl, renderer, viewContainerRef) {
this.changeDetection = changeDetection;
this.element = element;
this.ngControl = ngControl;
this.renderer = renderer;
/**
* 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)
*/
this.typeaheadMinLength = void 0;
/**
* turn on/off animation
*/
this.isAnimated = false;
/**
* should be used only in case of typeahead attribute is Observable of array.
* If true - loading of options will be async, otherwise - sync.
* true make sense if options array is large.
*/
this.typeaheadAsync = void 0;
/**
* match latin symbols.
* If true the word súper would match super and vice versa.
*/
this.typeaheadLatinize = true;
/**
* Can be use to search words by inserting a single white space between each characters
* for example 'C a l i f o r n i a' will match 'California'.
*/
this.typeaheadSingleWords = true;
/**
* should be used only in case typeaheadSingleWords attribute is true.
* Sets the word delimiter to break words. Defaults to space.
*/
this.typeaheadWordDelimiters = ' ';
/**
* should be used only in case typeaheadSingleWords attribute is true.
* Sets the word delimiter to match exact phrase.
* Defaults to simple and double quotes.
*/
this.typeaheadPhraseDelimiters = '\'"';
/**
* specifies if typeahead is scrollable
*/
this.typeaheadScrollable = false;
/**
* specifies number of options to show in scroll view
*/
this.typeaheadOptionsInScrollableView = 5;
/**
* fired when an options list was opened and the user clicked Tab
* If a value equal true, it will be chosen first or active item in the list
* If value equal false, it will be chosen an active item in the list or nothing
*/
this.typeaheadSelectFirstItem = true;
/**
* makes active first item in a list
*/
this.typeaheadIsFirstItemActive = true;
/**
* fired when 'busy' state of this component was changed,
* fired on async mode only, returns boolean
*/
this.typeaheadLoading = new EventEmitter();
/**
* fired on every key event and returns true
* in case of matches are not detected
*/
this.typeaheadNoResults = new EventEmitter();
/**
* fired when option was selected, return object with data of this option
*/
this.typeaheadOnSelect = new EventEmitter();
/**
* fired when blur event occurs. returns the active item
*/
this.typeaheadOnBlur = new EventEmitter();
/**
* This attribute indicates that the dropdown should be opened upwards
*/
this.dropup = false;
this.isOpen = false;
this.list = 'list';
this.isActiveItemChanged = false;
this.isFocused = false;
this.cancelRequestOnFocusLost = false;
// tslint:disable-next-line:no-any
this.keyUpEventEmitter = new EventEmitter();
this.placement = 'bottom left';
this._subscriptions = [];
this._typeahead = cis.createLoader(element, viewContainerRef, renderer)
.provide({ provide: TypeaheadConfig, useValue: config });
Object.assign(this, {
typeaheadHideResultsOnBlur: config.hideResultsOnBlur,
typeaheadCancelRequestOnFocusLost: config.cancelRequestOnFocusLost,
typeaheadSelectFirstItem: config.selectFirstItem,
typeaheadIsFirstItemActive: config.isFirstItemActive,
typeaheadMinLength: config.minLength,
adaptivePosition: config.adaptivePosition,
isAnimated: config.isAnimated
});
}
/**
* @return {?}
*/
TypeaheadDirective.prototype.ngOnInit = /**
* @return {?}
*/
function () {
this.typeaheadOptionsLimit = this.typeaheadOptionsLimit || 20;
this.typeaheadMinLength =
this.typeaheadMinLength === void 0 ? 1 : this.typeaheadMinLength;
this.typeaheadWaitMs = this.typeaheadWaitMs || 0;
// async should be false in case of array
if (this.typeaheadAsync === undefined && !(isObservable(this.typeahead))) {
this.typeaheadAsync = false;
}
if (isObservable(this.typeahead)) {
this.typeaheadAsync = true;
}
if (this.typeaheadAsync) {
this.asyncActions();
}
else {
this.syncActions();
}
};
/**
* @param {?} e
* @return {?}
*/
// tslint:disable-next-line:no-any
TypeaheadDirective.prototype.onInput = /**
* @param {?} e
* @return {?}
*/
function (e) {
// For `<input>`s, use the `value` property. For others that don't have a
// `value` (such as `<span contenteditable="true">`), use either
// `textContent` or `innerText` (depending on which one is supported, i.e.
// Firefox or IE).
/** @type {?} */
var value = e.target.value !== undefined
? e.target.value
: e.target.textContent !== undefined
? e.target.textContent
: e.target.innerText;
if (value != null && value.trim().length >= this.typeaheadMinLength) {
this.typeaheadLoading.emit(true);
this.keyUpEventEmitter.emit(e.target.value);
}
else {
this.typeaheadLoading.emit(false);
this.typeaheadNoResults.emit(false);
this.hide();
}
};
/**
* @param {?} event
* @return {?}
*/
TypeaheadDirective.prototype.onChange = /**
* @param {?} event
* @return {?}
*/
function (event) {
if (this._container) {
// esc
/* tslint:disable-next-line: deprecation */