@ng-select/ng-select 3.7.2 → 3.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -3
- package/bundles/ng-select-ng-select.umd.js +68 -6
- package/bundles/ng-select-ng-select.umd.js.map +1 -1
- package/bundles/ng-select-ng-select.umd.min.js +1 -1
- package/bundles/ng-select-ng-select.umd.min.js.map +1 -1
- package/esm2015/lib/ng-select.component.js +41 -4
- package/esm5/lib/ng-select.component.js +49 -4
- package/fesm2015/ng-select-ng-select.js +40 -3
- package/fesm2015/ng-select-ng-select.js.map +1 -1
- package/fesm5/ng-select-ng-select.js +48 -3
- package/fesm5/ng-select-ng-select.js.map +1 -1
- package/lib/ng-select.component.d.ts +4 -0
- package/ng-select-ng-select.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@ng-select/ng-select/lib/value-utils.ts","ng://@ng-select/ng-select/lib/ng-templates.directive.ts","ng://@ng-select/ng-select/lib/console.service.ts","ng://@ng-select/ng-select/lib/id.ts","ng://@ng-select/ng-select/lib/search-helper.ts","ng://@ng-select/ng-select/lib/items-list.ts","ng://@ng-select/ng-select/lib/ng-select.types.ts","ng://@ng-select/ng-select/lib/ng-dropdown-panel.service.ts","ng://@ng-select/ng-select/lib/ng-dropdown-panel.component.ts","ng://@ng-select/ng-select/lib/ng-option.component.ts","ng://@ng-select/ng-select/lib/config.service.ts","ng://@ng-select/ng-select/lib/ng-select.component.ts","ng://@ng-select/ng-select/lib/selection-model.ts","ng://@ng-select/ng-select/lib/ng-select.module.ts"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__values","o","m","Symbol","iterator","next","value","done","__read","r","e","ar","push","error","__spread","concat","unescapedHTMLExp","hasUnescapedHTMLExp","RegExp","source","htmlEscapes","&","<",">","\"","'","isDefined","isObject","isFunction","Function","NgItemLabelDirective","element","escape","ngOnChanges","changes","string","nativeElement","innerHTML","ngItemLabel","test","replace","chr","Directive","args","selector","ElementRef","Input","NgOptionTemplateDirective","template","TemplateRef","NgOptgroupTemplateDirective","NgLabelTemplateDirective","NgMultiLabelTemplateDirective","NgHeaderTemplateDirective","NgFooterTemplateDirective","NgNotFoundTemplateDirective","NgTypeToSearchTemplateDirective","NgLoadingTextTemplateDirective","NgTagTemplateDirective","NgLoadingSpinnerTemplateDirective","ConsoleService","warn","message","console","Injectable","providedIn","newId","_","Math","random","toString","diacritics","Ⓐ","A","À","Á","Â","Ầ","Ấ","Ẫ","Ẩ","Ã","Ā","Ă","Ằ","Ắ","Ẵ","Ẳ","Ȧ","Ǡ","Ä","Ǟ","Ả","Å","Ǻ","Ǎ","Ȁ","Ȃ","Ạ","Ậ","Ặ","Ḁ","Ą","Ⱥ","Ɐ","Ꜳ","Æ","Ǽ","Ǣ","Ꜵ","Ꜷ","Ꜹ","Ꜻ","Ꜽ","Ⓑ","B","Ḃ","Ḅ","Ḇ","Ƀ","Ƃ","Ɓ","Ⓒ","C","Ć","Ĉ","Ċ","Č","Ç","Ḉ","Ƈ","Ȼ","Ꜿ","Ⓓ","D","Ḋ","Ď","Ḍ","Ḑ","Ḓ","Ḏ","Đ","Ƌ","Ɗ","Ɖ","Ꝺ","DZ","DŽ","Dz","Dž","Ⓔ","E","È","É","Ê","Ề","Ế","Ễ","Ể","Ẽ","Ē","Ḕ","Ḗ","Ĕ","Ė","Ë","Ẻ","Ě","Ȅ","Ȇ","Ẹ","Ệ","Ȩ","Ḝ","Ę","Ḙ","Ḛ","Ɛ","Ǝ","Ⓕ","F","Ḟ","Ƒ","Ꝼ","Ⓖ","G","Ǵ","Ĝ","Ḡ","Ğ","Ġ","Ǧ","Ģ","Ǥ","Ɠ","Ꞡ","Ᵹ","Ꝿ","Ⓗ","H","Ĥ","Ḣ","Ḧ","Ȟ","Ḥ","Ḩ","Ḫ","Ħ","Ⱨ","Ⱶ","Ɥ","Ⓘ","I","Ì","Í","Î","Ĩ","Ī","Ĭ","İ","Ï","Ḯ","Ỉ","Ǐ","Ȉ","Ȋ","Ị","Į","Ḭ","Ɨ","Ⓙ","J","Ĵ","Ɉ","Ⓚ","K","Ḱ","Ǩ","Ḳ","Ķ","Ḵ","Ƙ","Ⱪ","Ꝁ","Ꝃ","Ꝅ","Ꞣ","Ⓛ","L","Ŀ","Ĺ","Ľ","Ḷ","Ḹ","Ļ","Ḽ","Ḻ","Ł","Ƚ","Ɫ","Ⱡ","Ꝉ","Ꝇ","Ꞁ","LJ","Lj","Ⓜ","M","Ḿ","Ṁ","Ṃ","Ɱ","Ɯ","Ⓝ","N","Ǹ","Ń","Ñ","Ṅ","Ň","Ṇ","Ņ","Ṋ","Ṉ","Ƞ","Ɲ","Ꞑ","Ꞥ","NJ","Nj","Ⓞ","O","Ò","Ó","Ô","Ồ","Ố","Ỗ","Ổ","Õ","Ṍ","Ȭ","Ṏ","Ō","Ṑ","Ṓ","Ŏ","Ȯ","Ȱ","Ö","Ȫ","Ỏ","Ő","Ǒ","Ȍ","Ȏ","Ơ","Ờ","Ớ","Ỡ","Ở","Ợ","Ọ","Ộ","Ǫ","Ǭ","Ø","Ǿ","Ɔ","Ɵ","Ꝋ","Ꝍ","Ƣ","Ꝏ","Ȣ","Ⓟ","P","Ṕ","Ṗ","Ƥ","Ᵽ","Ꝑ","Ꝓ","Ꝕ","Ⓠ","Q","Ꝗ","Ꝙ","Ɋ","Ⓡ","R","Ŕ","Ṙ","Ř","Ȑ","Ȓ","Ṛ","Ṝ","Ŗ","Ṟ","Ɍ","Ɽ","Ꝛ","Ꞧ","Ꞃ","Ⓢ","S","ẞ","Ś","Ṥ","Ŝ","Ṡ","Š","Ṧ","Ṣ","Ṩ","Ș","Ş","Ȿ","Ꞩ","Ꞅ","Ⓣ","T","Ṫ","Ť","Ṭ","Ț","Ţ","Ṱ","Ṯ","Ŧ","Ƭ","Ʈ","Ⱦ","Ꞇ","Ꜩ","Ⓤ","U","Ù","Ú","Û","Ũ","Ṹ","Ū","Ṻ","Ŭ","Ü","Ǜ","Ǘ","Ǖ","Ǚ","Ủ","Ů","Ű","Ǔ","Ȕ","Ȗ","Ư","Ừ","Ứ","Ữ","Ử","Ự","Ụ","Ṳ","Ų","Ṷ","Ṵ","Ʉ","Ⓥ","V","Ṽ","Ṿ","Ʋ","Ꝟ","Ʌ","Ꝡ","Ⓦ","W","Ẁ","Ẃ","Ŵ","Ẇ","Ẅ","Ẉ","Ⱳ","Ⓧ","X","Ẋ","Ẍ","Ⓨ","Y","Ỳ","Ý","Ŷ","Ỹ","Ȳ","Ẏ","Ÿ","Ỷ","Ỵ","Ƴ","Ɏ","Ỿ","Ⓩ","Z","Ź","Ẑ","Ż","Ž","Ẓ","Ẕ","Ƶ","Ȥ","Ɀ","Ⱬ","Ꝣ","ⓐ","a","ẚ","à","á","â","ầ","ấ","ẫ","ẩ","ã","ā","ă","ằ","ắ","ẵ","ẳ","ȧ","ǡ","ä","ǟ","ả","å","ǻ","ǎ","ȁ","ȃ","ạ","ậ","ặ","ḁ","ą","ⱥ","ɐ","ꜳ","æ","ǽ","ǣ","ꜵ","ꜷ","ꜹ","ꜻ","ꜽ","ⓑ","b","ḃ","ḅ","ḇ","ƀ","ƃ","ɓ","ⓒ","c","ć","ĉ","ċ","č","ç","ḉ","ƈ","ȼ","ꜿ","ↄ","ⓓ","d","ḋ","ď","ḍ","ḑ","ḓ","ḏ","đ","ƌ","ɖ","ɗ","ꝺ","dz","dž","ⓔ","e","è","é","ê","ề","ế","ễ","ể","ẽ","ē","ḕ","ḗ","ĕ","ė","ë","ẻ","ě","ȅ","ȇ","ẹ","ệ","ȩ","ḝ","ę","ḙ","ḛ","ɇ","ɛ","ǝ","ⓕ","f","ḟ","ƒ","ꝼ","ⓖ","g","ǵ","ĝ","ḡ","ğ","ġ","ǧ","ģ","ǥ","ɠ","ꞡ","ᵹ","ꝿ","ⓗ","h","ĥ","ḣ","ḧ","ȟ","ḥ","ḩ","ḫ","ẖ","ħ","ⱨ","ⱶ","ɥ","ƕ","ⓘ","i","ì","í","î","ĩ","ī","ĭ","ï","ḯ","ỉ","ǐ","ȉ","ȋ","ị","į","ḭ","ɨ","ı","ⓙ","j","ĵ","ǰ","ɉ","ⓚ","k","ḱ","ǩ","ḳ","ķ","ḵ","ƙ","ⱪ","ꝁ","ꝃ","ꝅ","ꞣ","ⓛ","l","ŀ","ĺ","ľ","ḷ","ḹ","ļ","ḽ","ḻ","ſ","ł","ƚ","ɫ","ⱡ","ꝉ","ꞁ","ꝇ","lj","ⓜ","m","ḿ","ṁ","ṃ","ɱ","ɯ","ⓝ","n","ǹ","ń","ñ","ṅ","ň","ṇ","ņ","ṋ","ṉ","ƞ","ɲ","ʼn","ꞑ","ꞥ","nj","ⓞ","o","ò","ó","ô","ồ","ố","ỗ","ổ","õ","ṍ","ȭ","ṏ","ō","ṑ","ṓ","ŏ","ȯ","ȱ","ö","ȫ","ỏ","ő","ǒ","ȍ","ȏ","ơ","ờ","ớ","ỡ","ở","ợ","ọ","ộ","ǫ","ǭ","ø","ǿ","ɔ","ꝋ","ꝍ","ɵ","ƣ","ȣ","ꝏ","ⓟ","p","ṕ","ṗ","ƥ","ᵽ","ꝑ","ꝓ","ꝕ","ⓠ","q","ɋ","ꝗ","ꝙ","ⓡ","r","ŕ","ṙ","ř","ȑ","ȓ","ṛ","ṝ","ŗ","ṟ","ɍ","ɽ","ꝛ","ꞧ","ꞃ","ⓢ","s","ß","ś","ṥ","ŝ","ṡ","š","ṧ","ṣ","ṩ","ș","ş","ȿ","ꞩ","ꞅ","ẛ","ⓣ","t","ṫ","ẗ","ť","ṭ","ț","ţ","ṱ","ṯ","ŧ","ƭ","ʈ","ⱦ","ꞇ","ꜩ","ⓤ","u","ù","ú","û","ũ","ṹ","ū","ṻ","ŭ","ü","ǜ","ǘ","ǖ","ǚ","ủ","ů","ű","ǔ","ȕ","ȗ","ư","ừ","ứ","ữ","ử","ự","ụ","ṳ","ų","ṷ","ṵ","ʉ","ⓥ","v","ṽ","ṿ","ʋ","ꝟ","ʌ","ꝡ","ⓦ","w","ẁ","ẃ","ŵ","ẇ","ẅ","ẘ","ẉ","ⱳ","ⓧ","x","ẋ","ẍ","ⓨ","y","ỳ","ý","ŷ","ỹ","ȳ","ẏ","ÿ","ỷ","ẙ","ỵ","ƴ","ɏ","ỿ","ⓩ","z","ź","ẑ","ż","ž","ẓ","ẕ","ƶ","ȥ","ɀ","ⱬ","ꝣ","Ά","Έ","Ή","Ί","Ϊ","Ό","Ύ","Ϋ","Ώ","ά","έ","ή","ί","ϊ","ΐ","ό","ύ","ϋ","ΰ","ω","ς","stripSpecialChars","text","a","ItemsList","_ngSelect","_selectionModel","_items","_filteredItems","_markedIndex","defineProperty","hideSelected","selectedItems","multiple","maxSelectedItems","item","disabled","setItems","items","_this","map","index","mapItem","groupBy","_groups","_groupBy","_flatten","Map","set","undefined","select","selected","maxItemsSelected","clearSelected","selectableGroupAsModel","_hideSelected","unselect","_showSelected","findItem","findBy","compareWith","bindValue","children","resolveNested","label","bindLabel","find","addItem","option","keepDisabled","clear","forEach","marked","resetFilteredItems","findByLabel","term","searchHelper.stripSpecialChars","toLocaleLowerCase","filteredItems","substr","filter","searchFn","match","_defaultSearchFn","key","matchedItems","_c","tslib_1.__values","this_1","get","_d","parent","searchItem","last_1","slice","head","x","_b","Array","from","keys","unmarkItem","markNextItem","_stepToItem","markPreviousItem","markItem","indexOf","markSelectedOrDefault","markDefault","lastMarkedIndex","_getLastMarkedIndex","findIndex","split","len","$ngOptionLabel","$ngOptionValue","htmlId","dropdownId","mapSelectedItems","parent_1","child","sort","b","every","search","opt","_getNextItemIndex","steps","markedItem","selectedIndex","lastSelectedItem","max","markedIndex","prop","groups","isArray","items_1","items_1_1","isFnKey","keyFn","items_2","items_2_1","group","isGroupByFn","withoutGroup","isObjectKey","parent_2","String","this_2","selectableGroup","groupKey","groupValue","_a","Tab","Enter","Esc","Space","ArrowUp","ArrowDown","Backspace","NgDropdownPanelService","_dimensions","itemHeight","panelHeight","itemsPerViewport","calculateItems","scrollPos","itemsLength","buffer","d","scrollHeight","indexByScrollTop","end","min","ceil","maxStartEnd","maxStart","start","floor","topPadding","isNaN","setDimensions","getScrollTo","itemTop","lastScroll","dimensions","itemBottom","bottom","SCROLL_SCHEDULER","requestAnimationFrame","animationFrameScheduler","asapScheduler","NgDropdownPanelComponent","_renderer","_zone","_panelService","_elementRef","_document","position","virtualScroll","filterValue","update","EventEmitter","scroll","scrollToEnd","outsideClick","_destroy$","Subject","_scrollToEndFired","_updateScrollHeight","_lastScrollPosition","_dropdown","_currentPosition","_itemsLength","_onItemsLengthChanged","offset","handleMousedown","$event","tagName","preventDefault","ngOnInit","_select","parentElement","_virtualPadding","paddingElementRef","_scrollablePanel","scrollElementRef","_contentPanel","contentElementRef","_handleScroll","_handleOutsideClick","_appendDropdown","change","_onItemsChange","currentValue","firstChange","ngOnDestroy","complete","unsubscribe","appendTo","removeChild","parentNode","scrollTo","startFromOption","querySelector","offsetTop","clientHeight","scrollTop","scrollToTag","panel","adjustPosition","_parent","getBoundingClientRect","_setOffset","_handleDropdownPosition","_calculateCurrentPosition","addClass","removeClass","_updatePosition","style","opacity","runOutsideAngular","fromEvent","pipe","takeUntil","auditTime","subscribe","_onContentScrolled","target","merge","capture","_checkToClose","contains","path","composedPath","shadowRoot","run","emit","_updateItemsRange","_updateItems","Promise","resolve","then","_measureDimensions","_renderItemsRange","_startOffset","_fireScrollToEnd","_updateVirtualHeight","height","range","bufferAmount","transform","first","optionHeight","padding","dropdownEl","selectRect","document","documentElement","body","top","window","pageYOffset","Error","appendChild","offsetLeft","left","width","minWidth","delta","offsetBottom","Component","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","Renderer2","NgZone","Optional","type","Inject","DOCUMENT","Output","ViewChild","read","static","HostListener","NgOptionComponent","elementRef","stateChange$","_disabled","_isDisabled","textContent","trim","ngAfterViewChecked","_previousLabel","NgSelectConfig","notFoundText","typeToSearchText","addTagText","loadingText","clearAllText","disableVirtualScroll","openOnEnter","appearance","SELECTION_MODEL_FACTORY","InjectionToken","NgSelectComponent","classes","autoFocus","config","newSelectionModel","_cd","_console","markFirst","dropdownPosition","loading","closeOnSelect","selectOnTab","trackByFn","clearOnBackspace","labelForId","inputAttrs","readonly","searchWhileComposing","minTermLength","keyDownFn","addTag","searchable","clearable","isOpen","blurEvent","focusEvent","changeEvent","openEvent","closeEvent","searchEvent","clearEvent","addEvent","removeEvent","viewPortItems","searchTerm","escapeHTML","_defaultLabel","_pressedKeys","_isComposing","_keyPress$","_onChange","_onTouched","clearItem","trackByOption","_mergeGlobalConfig","itemsList","_itemsAreUsed","_compareWith","fn","_clearSearchOnAdd","dropdownPanel","currentPosition","_handleKeyPresses","_setInputAttributes","_setItems","_manualOpen","ngAfterViewInit","_setItemsFromNgOptions","focus","handleKeyDown","KeyCode","which","handleKeyCode","_handleArrowDown","_handleArrowUp","_handleSpace","_handleEnter","_handleTab","close","_handleBackspace","classList","handleClearClick","handleArrowClick","focused","open","toggle","hasValue","_updateNgModel","_clearSearch","_onSelectionChanged","clearModel","writeValue","_handleWriteValue","markForCheck","registerOnChange","registerOnTouched","setDisabledState","state","_isTypeahead","noItemsToSelect","detectChanges","toggleItem","clearSearchOnAdd","searchInput","blur","selectTag","tag","_primitive","handleTag","catch","showClear","_validTerm","toLowerCase","some","showNoItemsFound","empty","showAddTag","showTypeToSearch","onCompositionStart","onCompositionEnd","typeahead","onInputFocus","add","onInputBlur","remove","onItemHover","destroyed","firstItem","ngOptions","startWith","options","changedOrDestroyed","mapNgOptions","_isValidWriteValue","validateBinding","JSON","stringify","ngModel","val","isValObject","isPrimitive","tap","letter","debounceTime","join","input","attributes","autocorrect","autocapitalize","autocomplete","setAttribute","model","_changeSearch","_scrollToMarked","_scrollToTag","_nextItemIsTag","nextStep","nextIndex","observers","placeholder","providers","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","multi","host","role","class","[class.ng-select-single]","Attribute","ChangeDetectorRef","HostBinding","ContentChild","ContentChildren","descendants","DefaultSelectionModelFactory","DefaultSelectionModel","_selected","groupAsModel","childrenCount","selectedCount","_setChildrenSelectedState","_removeChildren","_activeChildren","_removeParent","children_1","children_1_1","ɵ0","NgSelectModule","NgModule","declarations","imports","CommonModule","exports","useValue"],"mappings":"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IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IA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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","const unescapedHTMLExp = /[&<>\"']/g;\nconst hasUnescapedHTMLExp = RegExp(unescapedHTMLExp.source);\nconst htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': '''\n};\n\nexport function escapeHTML(string: string) {\n return (string && hasUnescapedHTMLExp.test(string)) ?\n string.replace(unescapedHTMLExp, chr => htmlEscapes[chr]) :\n string;\n}\n\nexport function isDefined(value: any) {\n return value !== undefined && value !== null;\n}\n\nexport function isObject(value: any) {\n return typeof value === 'object' && isDefined(value);\n}\n\nexport function isPromise(value: any) {\n return value instanceof Promise;\n}\n\nexport function isFunction(value: any) {\n return value instanceof Function;\n}\n","import { Directive, ElementRef, Input, OnChanges, SimpleChanges, TemplateRef } from '@angular/core';\nimport { escapeHTML } from './value-utils';\n\n@Directive({ selector: '[ngItemLabel]' })\nexport class NgItemLabelDirective implements OnChanges {\n @Input() ngItemLabel: string;\n @Input() escape = true;\n\n constructor(private element: ElementRef<HTMLElement>) { }\n\n ngOnChanges(changes: SimpleChanges) {\n this.element.nativeElement.innerHTML = this.escape ?\n escapeHTML(this.ngItemLabel) :\n this.ngItemLabel;\n }\n}\n\n@Directive({ selector: '[ng-option-tmp]' })\nexport class NgOptionTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-optgroup-tmp]' })\nexport class NgOptgroupTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-label-tmp]' })\nexport class NgLabelTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-multi-label-tmp]' })\nexport class NgMultiLabelTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-header-tmp]' })\nexport class NgHeaderTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-footer-tmp]' })\nexport class NgFooterTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-notfound-tmp]' })\nexport class NgNotFoundTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-typetosearch-tmp]' })\nexport class NgTypeToSearchTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-loadingtext-tmp]' })\nexport class NgLoadingTextTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-tag-tmp]' })\nexport class NgTagTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-loadingspinner-tmp]' })\nexport class NgLoadingSpinnerTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class ConsoleService {\n warn(message: string) {\n console.warn(message)\n }\n}\n","export function newId() {\n // First character is an 'a', it's good practice to tag id to begin with a letter\n return 'axxxxxxxxxxx'.replace(/[x]/g, function (_) {\n // tslint:disable-next-line:no-bitwise\n const val = Math.random() * 16 | 0;\n return val.toString(16);\n });\n}\n","const diacritics = {\n '\\u24B6': 'A',\n '\\uFF21': 'A',\n '\\u00C0': 'A',\n '\\u00C1': 'A',\n '\\u00C2': 'A',\n '\\u1EA6': 'A',\n '\\u1EA4': 'A',\n '\\u1EAA': 'A',\n '\\u1EA8': 'A',\n '\\u00C3': 'A',\n '\\u0100': 'A',\n '\\u0102': 'A',\n '\\u1EB0': 'A',\n '\\u1EAE': 'A',\n '\\u1EB4': 'A',\n '\\u1EB2': 'A',\n '\\u0226': 'A',\n '\\u01E0': 'A',\n '\\u00C4': 'A',\n '\\u01DE': 'A',\n '\\u1EA2': 'A',\n '\\u00C5': 'A',\n '\\u01FA': 'A',\n '\\u01CD': 'A',\n '\\u0200': 'A',\n '\\u0202': 'A',\n '\\u1EA0': 'A',\n '\\u1EAC': 'A',\n '\\u1EB6': 'A',\n '\\u1E00': 'A',\n '\\u0104': 'A',\n '\\u023A': 'A',\n '\\u2C6F': 'A',\n '\\uA732': 'AA',\n '\\u00C6': 'AE',\n '\\u01FC': 'AE',\n '\\u01E2': 'AE',\n '\\uA734': 'AO',\n '\\uA736': 'AU',\n '\\uA738': 'AV',\n '\\uA73A': 'AV',\n '\\uA73C': 'AY',\n '\\u24B7': 'B',\n '\\uFF22': 'B',\n '\\u1E02': 'B',\n '\\u1E04': 'B',\n '\\u1E06': 'B',\n '\\u0243': 'B',\n '\\u0182': 'B',\n '\\u0181': 'B',\n '\\u24B8': 'C',\n '\\uFF23': 'C',\n '\\u0106': 'C',\n '\\u0108': 'C',\n '\\u010A': 'C',\n '\\u010C': 'C',\n '\\u00C7': 'C',\n '\\u1E08': 'C',\n '\\u0187': 'C',\n '\\u023B': 'C',\n '\\uA73E': 'C',\n '\\u24B9': 'D',\n '\\uFF24': 'D',\n '\\u1E0A': 'D',\n '\\u010E': 'D',\n '\\u1E0C': 'D',\n '\\u1E10': 'D',\n '\\u1E12': 'D',\n '\\u1E0E': 'D',\n '\\u0110': 'D',\n '\\u018B': 'D',\n '\\u018A': 'D',\n '\\u0189': 'D',\n '\\uA779': 'D',\n '\\u01F1': 'DZ',\n '\\u01C4': 'DZ',\n '\\u01F2': 'Dz',\n '\\u01C5': 'Dz',\n '\\u24BA': 'E',\n '\\uFF25': 'E',\n '\\u00C8': 'E',\n '\\u00C9': 'E',\n '\\u00CA': 'E',\n '\\u1EC0': 'E',\n '\\u1EBE': 'E',\n '\\u1EC4': 'E',\n '\\u1EC2': 'E',\n '\\u1EBC': 'E',\n '\\u0112': 'E',\n '\\u1E14': 'E',\n '\\u1E16': 'E',\n '\\u0114': 'E',\n '\\u0116': 'E',\n '\\u00CB': 'E',\n '\\u1EBA': 'E',\n '\\u011A': 'E',\n '\\u0204': 'E',\n '\\u0206': 'E',\n '\\u1EB8': 'E',\n '\\u1EC6': 'E',\n '\\u0228': 'E',\n '\\u1E1C': 'E',\n '\\u0118': 'E',\n '\\u1E18': 'E',\n '\\u1E1A': 'E',\n '\\u0190': 'E',\n '\\u018E': 'E',\n '\\u24BB': 'F',\n '\\uFF26': 'F',\n '\\u1E1E': 'F',\n '\\u0191': 'F',\n '\\uA77B': 'F',\n '\\u24BC': 'G',\n '\\uFF27': 'G',\n '\\u01F4': 'G',\n '\\u011C': 'G',\n '\\u1E20': 'G',\n '\\u011E': 'G',\n '\\u0120': 'G',\n '\\u01E6': 'G',\n '\\u0122': 'G',\n '\\u01E4': 'G',\n '\\u0193': 'G',\n '\\uA7A0': 'G',\n '\\uA77D': 'G',\n '\\uA77E': 'G',\n '\\u24BD': 'H',\n '\\uFF28': 'H',\n '\\u0124': 'H',\n '\\u1E22': 'H',\n '\\u1E26': 'H',\n '\\u021E': 'H',\n '\\u1E24': 'H',\n '\\u1E28': 'H',\n '\\u1E2A': 'H',\n '\\u0126': 'H',\n '\\u2C67': 'H',\n '\\u2C75': 'H',\n '\\uA78D': 'H',\n '\\u24BE': 'I',\n '\\uFF29': 'I',\n '\\u00CC': 'I',\n '\\u00CD': 'I',\n '\\u00CE': 'I',\n '\\u0128': 'I',\n '\\u012A': 'I',\n '\\u012C': 'I',\n '\\u0130': 'I',\n '\\u00CF': 'I',\n '\\u1E2E': 'I',\n '\\u1EC8': 'I',\n '\\u01CF': 'I',\n '\\u0208': 'I',\n '\\u020A': 'I',\n '\\u1ECA': 'I',\n '\\u012E': 'I',\n '\\u1E2C': 'I',\n '\\u0197': 'I',\n '\\u24BF': 'J',\n '\\uFF2A': 'J',\n '\\u0134': 'J',\n '\\u0248': 'J',\n '\\u24C0': 'K',\n '\\uFF2B': 'K',\n '\\u1E30': 'K',\n '\\u01E8': 'K',\n '\\u1E32': 'K',\n '\\u0136': 'K',\n '\\u1E34': 'K',\n '\\u0198': 'K',\n '\\u2C69': 'K',\n '\\uA740': 'K',\n '\\uA742': 'K',\n '\\uA744': 'K',\n '\\uA7A2': 'K',\n '\\u24C1': 'L',\n '\\uFF2C': 'L',\n '\\u013F': 'L',\n '\\u0139': 'L',\n '\\u013D': 'L',\n '\\u1E36': 'L',\n '\\u1E38': 'L',\n '\\u013B': 'L',\n '\\u1E3C': 'L',\n '\\u1E3A': 'L',\n '\\u0141': 'L',\n '\\u023D': 'L',\n '\\u2C62': 'L',\n '\\u2C60': 'L',\n '\\uA748': 'L',\n '\\uA746': 'L',\n '\\uA780': 'L',\n '\\u01C7': 'LJ',\n '\\u01C8': 'Lj',\n '\\u24C2': 'M',\n '\\uFF2D': 'M',\n '\\u1E3E': 'M',\n '\\u1E40': 'M',\n '\\u1E42': 'M',\n '\\u2C6E': 'M',\n '\\u019C': 'M',\n '\\u24C3': 'N',\n '\\uFF2E': 'N',\n '\\u01F8': 'N',\n '\\u0143': 'N',\n '\\u00D1': 'N',\n '\\u1E44': 'N',\n '\\u0147': 'N',\n '\\u1E46': 'N',\n '\\u0145': 'N',\n '\\u1E4A': 'N',\n '\\u1E48': 'N',\n '\\u0220': 'N',\n '\\u019D': 'N',\n '\\uA790': 'N',\n '\\uA7A4': 'N',\n '\\u01CA': 'NJ',\n '\\u01CB': 'Nj',\n '\\u24C4': 'O',\n '\\uFF2F': 'O',\n '\\u00D2': 'O',\n '\\u00D3': 'O',\n '\\u00D4': 'O',\n '\\u1ED2': 'O',\n '\\u1ED0': 'O',\n '\\u1ED6': 'O',\n '\\u1ED4': 'O',\n '\\u00D5': 'O',\n '\\u1E4C': 'O',\n '\\u022C': 'O',\n '\\u1E4E': 'O',\n '\\u014C': 'O',\n '\\u1E50': 'O',\n '\\u1E52': 'O',\n '\\u014E': 'O',\n '\\u022E': 'O',\n '\\u0230': 'O',\n '\\u00D6': 'O',\n '\\u022A': 'O',\n '\\u1ECE': 'O',\n '\\u0150': 'O',\n '\\u01D1': 'O',\n '\\u020C': 'O',\n '\\u020E': 'O',\n '\\u01A0': 'O',\n '\\u1EDC': 'O',\n '\\u1EDA': 'O',\n '\\u1EE0': 'O',\n '\\u1EDE': 'O',\n '\\u1EE2': 'O',\n '\\u1ECC': 'O',\n '\\u1ED8': 'O',\n '\\u01EA': 'O',\n '\\u01EC': 'O',\n '\\u00D8': 'O',\n '\\u01FE': 'O',\n '\\u0186': 'O',\n '\\u019F': 'O',\n '\\uA74A': 'O',\n '\\uA74C': 'O',\n '\\u01A2': 'OI',\n '\\uA74E': 'OO',\n '\\u0222': 'OU',\n '\\u24C5': 'P',\n '\\uFF30': 'P',\n '\\u1E54': 'P',\n '\\u1E56': 'P',\n '\\u01A4': 'P',\n '\\u2C63': 'P',\n '\\uA750': 'P',\n '\\uA752': 'P',\n '\\uA754': 'P',\n '\\u24C6': 'Q',\n '\\uFF31': 'Q',\n '\\uA756': 'Q',\n '\\uA758': 'Q',\n '\\u024A': 'Q',\n '\\u24C7': 'R',\n '\\uFF32': 'R',\n '\\u0154': 'R',\n '\\u1E58': 'R',\n '\\u0158': 'R',\n '\\u0210': 'R',\n '\\u0212': 'R',\n '\\u1E5A': 'R',\n '\\u1E5C': 'R',\n '\\u0156': 'R',\n '\\u1E5E': 'R',\n '\\u024C': 'R',\n '\\u2C64': 'R',\n '\\uA75A': 'R',\n '\\uA7A6': 'R',\n '\\uA782': 'R',\n '\\u24C8': 'S',\n '\\uFF33': 'S',\n '\\u1E9E': 'S',\n '\\u015A': 'S',\n '\\u1E64': 'S',\n '\\u015C': 'S',\n '\\u1E60': 'S',\n '\\u0160': 'S',\n '\\u1E66': 'S',\n '\\u1E62': 'S',\n '\\u1E68': 'S',\n '\\u0218': 'S',\n '\\u015E': 'S',\n '\\u2C7E': 'S',\n '\\uA7A8': 'S',\n '\\uA784': 'S',\n '\\u24C9': 'T',\n '\\uFF34': 'T',\n '\\u1E6A': 'T',\n '\\u0164': 'T',\n '\\u1E6C': 'T',\n '\\u021A': 'T',\n '\\u0162': 'T',\n '\\u1E70': 'T',\n '\\u1E6E': 'T',\n '\\u0166': 'T',\n '\\u01AC': 'T',\n '\\u01AE': 'T',\n '\\u023E': 'T',\n '\\uA786': 'T',\n '\\uA728': 'TZ',\n '\\u24CA': 'U',\n '\\uFF35': 'U',\n '\\u00D9': 'U',\n '\\u00DA': 'U',\n '\\u00DB': 'U',\n '\\u0168': 'U',\n '\\u1E78': 'U',\n '\\u016A': 'U',\n '\\u1E7A': 'U',\n '\\u016C': 'U',\n '\\u00DC': 'U',\n '\\u01DB': 'U',\n '\\u01D7': 'U',\n '\\u01D5': 'U',\n '\\u01D9': 'U',\n '\\u1EE6': 'U',\n '\\u016E': 'U',\n '\\u0170': 'U',\n '\\u01D3': 'U',\n '\\u0214': 'U',\n '\\u0216': 'U',\n '\\u01AF': 'U',\n '\\u1EEA': 'U',\n '\\u1EE8': 'U',\n '\\u1EEE': 'U',\n '\\u1EEC': 'U',\n '\\u1EF0': 'U',\n '\\u1EE4': 'U',\n '\\u1E72': 'U',\n '\\u0172': 'U',\n '\\u1E76': 'U',\n '\\u1E74': 'U',\n '\\u0244': 'U',\n '\\u24CB': 'V',\n '\\uFF36': 'V',\n '\\u1E7C': 'V',\n '\\u1E7E': 'V',\n '\\u01B2': 'V',\n '\\uA75E': 'V',\n '\\u0245': 'V',\n '\\uA760': 'VY',\n '\\u24CC': 'W',\n '\\uFF37': 'W',\n '\\u1E80': 'W',\n '\\u1E82': 'W',\n '\\u0174': 'W',\n '\\u1E86': 'W',\n '\\u1E84': 'W',\n '\\u1E88': 'W',\n '\\u2C72': 'W',\n '\\u24CD': 'X',\n '\\uFF38': 'X',\n '\\u1E8A': 'X',\n '\\u1E8C': 'X',\n '\\u24CE': 'Y',\n '\\uFF39': 'Y',\n '\\u1EF2': 'Y',\n '\\u00DD': 'Y',\n '\\u0176': 'Y',\n '\\u1EF8': 'Y',\n '\\u0232': 'Y',\n '\\u1E8E': 'Y',\n '\\u0178': 'Y',\n '\\u1EF6': 'Y',\n '\\u1EF4': 'Y',\n '\\u01B3': 'Y',\n '\\u024E': 'Y',\n '\\u1EFE': 'Y',\n '\\u24CF': 'Z',\n '\\uFF3A': 'Z',\n '\\u0179': 'Z',\n '\\u1E90': 'Z',\n '\\u017B': 'Z',\n '\\u017D': 'Z',\n '\\u1E92': 'Z',\n '\\u1E94': 'Z',\n '\\u01B5': 'Z',\n '\\u0224': 'Z',\n '\\u2C7F': 'Z',\n '\\u2C6B': 'Z',\n '\\uA762': 'Z',\n '\\u24D0': 'a',\n '\\uFF41': 'a',\n '\\u1E9A': 'a',\n '\\u00E0': 'a',\n '\\u00E1': 'a',\n '\\u00E2': 'a',\n '\\u1EA7': 'a',\n '\\u1EA5': 'a',\n '\\u1EAB': 'a',\n '\\u1EA9': 'a',\n '\\u00E3': 'a',\n '\\u0101': 'a',\n '\\u0103': 'a',\n '\\u1EB1': 'a',\n '\\u1EAF': 'a',\n '\\u1EB5': 'a',\n '\\u1EB3': 'a',\n '\\u0227': 'a',\n '\\u01E1': 'a',\n '\\u00E4': 'a',\n '\\u01DF': 'a',\n '\\u1EA3': 'a',\n '\\u00E5': 'a',\n '\\u01FB': 'a',\n '\\u01CE': 'a',\n '\\u0201': 'a',\n '\\u0203': 'a',\n '\\u1EA1': 'a',\n '\\u1EAD': 'a',\n '\\u1EB7': 'a',\n '\\u1E01': 'a',\n '\\u0105': 'a',\n '\\u2C65': 'a',\n '\\u0250': 'a',\n '\\uA733': 'aa',\n '\\u00E6': 'ae',\n '\\u01FD': 'ae',\n '\\u01E3': 'ae',\n '\\uA735': 'ao',\n '\\uA737': 'au',\n '\\uA739': 'av',\n '\\uA73B': 'av',\n '\\uA73D': 'ay',\n '\\u24D1': 'b',\n '\\uFF42': 'b',\n '\\u1E03': 'b',\n '\\u1E05': 'b',\n '\\u1E07': 'b',\n '\\u0180': 'b',\n '\\u0183': 'b',\n '\\u0253': 'b',\n '\\u24D2': 'c',\n '\\uFF43': 'c',\n '\\u0107': 'c',\n '\\u0109': 'c',\n '\\u010B': 'c',\n '\\u010D': 'c',\n '\\u00E7': 'c',\n '\\u1E09': 'c',\n '\\u0188': 'c',\n '\\u023C': 'c',\n '\\uA73F': 'c',\n '\\u2184': 'c',\n '\\u24D3': 'd',\n '\\uFF44': 'd',\n '\\u1E0B': 'd',\n '\\u010F': 'd',\n '\\u1E0D': 'd',\n '\\u1E11': 'd',\n '\\u1E13': 'd',\n '\\u1E0F': 'd',\n '\\u0111': 'd',\n '\\u018C': 'd',\n '\\u0256': 'd',\n '\\u0257': 'd',\n '\\uA77A': 'd',\n '\\u01F3': 'dz',\n '\\u01C6': 'dz',\n '\\u24D4': 'e',\n '\\uFF45': 'e',\n '\\u00E8': 'e',\n '\\u00E9': 'e',\n '\\u00EA': 'e',\n '\\u1EC1': 'e',\n '\\u1EBF': 'e',\n '\\u1EC5': 'e',\n '\\u1EC3': 'e',\n '\\u1EBD': 'e',\n '\\u0113': 'e',\n '\\u1E15': 'e',\n '\\u1E17': 'e',\n '\\u0115': 'e',\n '\\u0117': 'e',\n '\\u00EB': 'e',\n '\\u1EBB': 'e',\n '\\u011B': 'e',\n '\\u0205': 'e',\n '\\u0207': 'e',\n '\\u1EB9': 'e',\n '\\u1EC7': 'e',\n '\\u0229': 'e',\n '\\u1E1D': 'e',\n '\\u0119': 'e',\n '\\u1E19': 'e',\n '\\u1E1B': 'e',\n '\\u0247': 'e',\n '\\u025B': 'e',\n '\\u01DD': 'e',\n '\\u24D5': 'f',\n '\\uFF46': 'f',\n '\\u1E1F': 'f',\n '\\u0192': 'f',\n '\\uA77C': 'f',\n '\\u24D6': 'g',\n '\\uFF47': 'g',\n '\\u01F5': 'g',\n '\\u011D': 'g',\n '\\u1E21': 'g',\n '\\u011F': 'g',\n '\\u0121': 'g',\n '\\u01E7': 'g',\n '\\u0123': 'g',\n '\\u01E5': 'g',\n '\\u0260': 'g',\n '\\uA7A1': 'g',\n '\\u1D79': 'g',\n '\\uA77F': 'g',\n '\\u24D7': 'h',\n '\\uFF48': 'h',\n '\\u0125': 'h',\n '\\u1E23': 'h',\n '\\u1E27': 'h',\n '\\u021F': 'h',\n '\\u1E25': 'h',\n '\\u1E29': 'h',\n '\\u1E2B': 'h',\n '\\u1E96': 'h',\n '\\u0127': 'h',\n '\\u2C68': 'h',\n '\\u2C76': 'h',\n '\\u0265': 'h',\n '\\u0195': 'hv',\n '\\u24D8': 'i',\n '\\uFF49': 'i',\n '\\u00EC': 'i',\n '\\u00ED': 'i',\n '\\u00EE': 'i',\n '\\u0129': 'i',\n '\\u012B': 'i',\n '\\u012D': 'i',\n '\\u00EF': 'i',\n '\\u1E2F': 'i',\n '\\u1EC9': 'i',\n '\\u01D0': 'i',\n '\\u0209': 'i',\n '\\u020B': 'i',\n '\\u1ECB': 'i',\n '\\u012F': 'i',\n '\\u1E2D': 'i',\n '\\u0268': 'i',\n '\\u0131': 'i',\n '\\u24D9': 'j',\n '\\uFF4A': 'j',\n '\\u0135': 'j',\n '\\u01F0': 'j',\n '\\u0249': 'j',\n '\\u24DA': 'k',\n '\\uFF4B': 'k',\n '\\u1E31': 'k',\n '\\u01E9': 'k',\n '\\u1E33': 'k',\n '\\u0137': 'k',\n '\\u1E35': 'k',\n '\\u0199': 'k',\n '\\u2C6A': 'k',\n '\\uA741': 'k',\n '\\uA743': 'k',\n '\\uA745': 'k',\n '\\uA7A3': 'k',\n '\\u24DB': 'l',\n '\\uFF4C': 'l',\n '\\u0140': 'l',\n '\\u013A': 'l',\n '\\u013E': 'l',\n '\\u1E37': 'l',\n '\\u1E39': 'l',\n '\\u013C': 'l',\n '\\u1E3D': 'l',\n '\\u1E3B': 'l',\n '\\u017F': 'l',\n '\\u0142': 'l',\n '\\u019A': 'l',\n '\\u026B': 'l',\n '\\u2C61': 'l',\n '\\uA749': 'l',\n '\\uA781': 'l',\n '\\uA747': 'l',\n '\\u01C9': 'lj',\n '\\u24DC': 'm',\n '\\uFF4D': 'm',\n '\\u1E3F': 'm',\n '\\u1E41': 'm',\n '\\u1E43': 'm',\n '\\u0271': 'm',\n '\\u026F': 'm',\n '\\u24DD': 'n',\n '\\uFF4E': 'n',\n '\\u01F9': 'n',\n '\\u0144': 'n',\n '\\u00F1': 'n',\n '\\u1E45': 'n',\n '\\u0148': 'n',\n '\\u1E47': 'n',\n '\\u0146': 'n',\n '\\u1E4B': 'n',\n '\\u1E49': 'n',\n '\\u019E': 'n',\n '\\u0272': 'n',\n '\\u0149': 'n',\n '\\uA791': 'n',\n '\\uA7A5': 'n',\n '\\u01CC': 'nj',\n '\\u24DE': 'o',\n '\\uFF4F': 'o',\n '\\u00F2': 'o',\n '\\u00F3': 'o',\n '\\u00F4': 'o',\n '\\u1ED3': 'o',\n '\\u1ED1': 'o',\n '\\u1ED7': 'o',\n '\\u1ED5': 'o',\n '\\u00F5': 'o',\n '\\u1E4D': 'o',\n '\\u022D': 'o',\n '\\u1E4F': 'o',\n '\\u014D': 'o',\n '\\u1E51': 'o',\n '\\u1E53': 'o',\n '\\u014F': 'o',\n '\\u022F': 'o',\n '\\u0231': 'o',\n '\\u00F6': 'o',\n '\\u022B': 'o',\n '\\u1ECF': 'o',\n '\\u0151': 'o',\n '\\u01D2': 'o',\n '\\u020D': 'o',\n '\\u020F': 'o',\n '\\u01A1': 'o',\n '\\u1EDD': 'o',\n '\\u1EDB': 'o',\n '\\u1EE1': 'o',\n '\\u1EDF': 'o',\n '\\u1EE3': 'o',\n '\\u1ECD': 'o',\n '\\u1ED9': 'o',\n '\\u01EB': 'o',\n '\\u01ED': 'o',\n '\\u00F8': 'o',\n '\\u01FF': 'o',\n '\\u0254': 'o',\n '\\uA74B': 'o',\n '\\uA74D': 'o',\n '\\u0275': 'o',\n '\\u01A3': 'oi',\n '\\u0223': 'ou',\n '\\uA74F': 'oo',\n '\\u24DF': 'p',\n '\\uFF50': 'p',\n '\\u1E55': 'p',\n '\\u1E57': 'p',\n '\\u01A5': 'p',\n '\\u1D7D': 'p',\n '\\uA751': 'p',\n '\\uA753': 'p',\n '\\uA755': 'p',\n '\\u24E0': 'q',\n '\\uFF51': 'q',\n '\\u024B': 'q',\n '\\uA757': 'q',\n '\\uA759': 'q',\n '\\u24E1': 'r',\n '\\uFF52': 'r',\n '\\u0155': 'r',\n '\\u1E59': 'r',\n '\\u0159': 'r',\n '\\u0211': 'r',\n '\\u0213': 'r',\n '\\u1E5B': 'r',\n '\\u1E5D': 'r',\n '\\u0157': 'r',\n '\\u1E5F': 'r',\n '\\u024D': 'r',\n '\\u027D': 'r',\n '\\uA75B': 'r',\n '\\uA7A7': 'r',\n '\\uA783': 'r',\n '\\u24E2': 's',\n '\\uFF53': 's',\n '\\u00DF': 's',\n '\\u015B': 's',\n '\\u1E65': 's',\n '\\u015D': 's',\n '\\u1E61': 's',\n '\\u0161': 's',\n '\\u1E67': 's',\n '\\u1E63': 's',\n '\\u1E69': 's',\n '\\u0219': 's',\n '\\u015F': 's',\n '\\u023F': 's',\n '\\uA7A9': 's',\n '\\uA785': 's',\n '\\u1E9B': 's',\n '\\u24E3': 't',\n '\\uFF54': 't',\n '\\u1E6B': 't',\n '\\u1E97': 't',\n '\\u0165': 't',\n '\\u1E6D': 't',\n '\\u021B': 't',\n '\\u0163': 't',\n '\\u1E71': 't',\n '\\u1E6F': 't',\n '\\u0167': 't',\n '\\u01AD': 't',\n '\\u0288': 't',\n '\\u2C66': 't',\n '\\uA787': 't',\n '\\uA729': 'tz',\n '\\u24E4': 'u',\n '\\uFF55': 'u',\n '\\u00F9': 'u',\n '\\u00FA': 'u',\n '\\u00FB': 'u',\n '\\u0169': 'u',\n '\\u1E79': 'u',\n '\\u016B': 'u',\n '\\u1E7B': 'u',\n '\\u016D': 'u',\n '\\u00FC': 'u',\n '\\u01DC': 'u',\n '\\u01D8': 'u',\n '\\u01D6': 'u',\n '\\u01DA': 'u',\n '\\u1EE7': 'u',\n '\\u016F': 'u',\n '\\u0171': 'u',\n '\\u01D4': 'u',\n '\\u0215': 'u',\n '\\u0217': 'u',\n '\\u01B0': 'u',\n '\\u1EEB': 'u',\n '\\u1EE9': 'u',\n '\\u1EEF': 'u',\n '\\u1EED': 'u',\n '\\u1EF1': 'u',\n '\\u1EE5': 'u',\n '\\u1E73': 'u',\n '\\u0173': 'u',\n '\\u1E77': 'u',\n '\\u1E75': 'u',\n '\\u0289': 'u',\n '\\u24E5': 'v',\n '\\uFF56': 'v',\n '\\u1E7D': 'v',\n '\\u1E7F': 'v',\n '\\u028B': 'v',\n '\\uA75F': 'v',\n '\\u028C': 'v',\n '\\uA761': 'vy',\n '\\u24E6': 'w',\n '\\uFF57': 'w',\n '\\u1E81': 'w',\n '\\u1E83': 'w',\n '\\u0175': 'w',\n '\\u1E87': 'w',\n '\\u1E85': 'w',\n '\\u1E98': 'w',\n '\\u1E89': 'w',\n '\\u2C73': 'w',\n '\\u24E7': 'x',\n '\\uFF58': 'x',\n '\\u1E8B': 'x',\n '\\u1E8D': 'x',\n '\\u24E8': 'y',\n '\\uFF59': 'y',\n '\\u1EF3': 'y',\n '\\u00FD': 'y',\n '\\u0177': 'y',\n '\\u1EF9': 'y',\n '\\u0233': 'y',\n '\\u1E8F': 'y',\n '\\u00FF': 'y',\n '\\u1EF7': 'y',\n '\\u1E99': 'y',\n '\\u1EF5': 'y',\n '\\u01B4': 'y',\n '\\u024F': 'y',\n '\\u1EFF': 'y',\n '\\u24E9': 'z',\n '\\uFF5A': 'z',\n '\\u017A': 'z',\n '\\u1E91': 'z',\n '\\u017C': 'z',\n '\\u017E': 'z',\n '\\u1E93': 'z',\n '\\u1E95': 'z',\n '\\u01B6': 'z',\n '\\u0225': 'z',\n '\\u0240': 'z',\n '\\u2C6C': 'z',\n '\\uA763': 'z',\n '\\u0386': '\\u0391',\n '\\u0388': '\\u0395',\n '\\u0389': '\\u0397',\n '\\u038A': '\\u0399',\n '\\u03AA': '\\u0399',\n '\\u038C': '\\u039F',\n '\\u038E': '\\u03A5',\n '\\u03AB': '\\u03A5',\n '\\u038F': '\\u03A9',\n '\\u03AC': '\\u03B1',\n '\\u03AD': '\\u03B5',\n '\\u03AE': '\\u03B7',\n '\\u03AF': '\\u03B9',\n '\\u03CA': '\\u03B9',\n '\\u0390': '\\u03B9',\n '\\u03CC': '\\u03BF',\n '\\u03CD': '\\u03C5',\n '\\u03CB': '\\u03C5',\n '\\u03B0': '\\u03C5',\n '\\u03C9': '\\u03C9',\n '\\u03C2': '\\u03C3'\n};\n\nexport function stripSpecialChars(text: string): string {\n const match = (a: string): string => {\n return diacritics[a] || a;\n };\n return text.replace(/[^\\u0000-\\u007E]/g, match);\n}\n","import { newId } from './id';\nimport { NgSelectComponent } from './ng-select.component';\nimport { NgOption } from './ng-select.types';\nimport * as searchHelper from './search-helper';\nimport { SelectionModel } from './selection-model';\nimport { isDefined, isFunction, isObject } from './value-utils';\n\ntype OptionGroups = Map<string | NgOption, NgOption[]>;\n\nexport class ItemsList {\n private _groups: OptionGroups;\n\n constructor(\n private _ngSelect: NgSelectComponent,\n private _selectionModel: SelectionModel) {\n }\n\n private _items: NgOption[] = [];\n\n get items(): NgOption[] {\n return this._items;\n }\n\n private _filteredItems: NgOption[] = [];\n\n get filteredItems(): NgOption[] {\n return this._filteredItems;\n }\n\n private _markedIndex = -1;\n\n get markedIndex(): number {\n return this._markedIndex;\n }\n\n get selectedItems() {\n return this._selectionModel.value;\n }\n\n get markedItem(): NgOption {\n return this._filteredItems[this._markedIndex];\n }\n\n get noItemsToSelect(): boolean {\n return this._ngSelect.hideSelected && this._items.length === this.selectedItems.length;\n }\n\n get maxItemsSelected(): boolean {\n return this._ngSelect.multiple && this._ngSelect.maxSelectedItems <= this.selectedItems.length;\n }\n\n get lastSelectedItem() {\n let i = this.selectedItems.length - 1;\n for (; i >= 0; i--) {\n let item = this.selectedItems[i];\n if (!item.disabled) {\n return item;\n }\n }\n return null;\n }\n\n setItems(items: any[]) {\n this._items = items.map((item, index) => this.mapItem(item, index));\n if (this._ngSelect.groupBy) {\n this._groups = this._groupBy(this._items, this._ngSelect.groupBy);\n this._items = this._flatten(this._groups);\n } else {\n this._groups = new Map();\n this._groups.set(undefined, this._items)\n }\n this._filteredItems = [...this._items];\n }\n\n select(item: NgOption) {\n if (item.selected || this.maxItemsSelected) {\n return;\n }\n const multiple = this._ngSelect.multiple;\n if (!multiple) {\n this.clearSelected();\n }\n\n this._selectionModel.select(item, multiple, this._ngSelect.selectableGroupAsModel);\n if (this._ngSelect.hideSelected) {\n this._hideSelected(item);\n }\n }\n\n unselect(item: NgOption) {\n if (!item.selected) {\n return;\n }\n this._selectionModel.unselect(item, this._ngSelect.multiple);\n if (this._ngSelect.hideSelected && isDefined(item.index) && this._ngSelect.multiple) {\n this._showSelected(item);\n }\n }\n\n findItem(value: any): NgOption {\n let findBy: (item: NgOption) => boolean;\n if (this._ngSelect.compareWith) {\n findBy = item => this._ngSelect.compareWith(item.value, value)\n } else if (this._ngSelect.bindValue) {\n findBy = item => !item.children && this.resolveNested(item.value, this._ngSelect.bindValue) === value\n } else {\n findBy = item => item.value === value ||\n !item.children && item.label && item.label === this.resolveNested(value, this._ngSelect.bindLabel)\n }\n return this._items.find(item => findBy(item));\n }\n\n addItem(item: any) {\n const option = this.mapItem(item, this._items.length);\n this._items.push(option);\n this._filteredItems.push(option);\n return option;\n }\n\n clearSelected(keepDisabled = false) {\n this._selectionModel.clear(keepDisabled);\n this._items.forEach(item => {\n item.selected = keepDisabled && item.selected && item.disabled;\n item.marked = false;\n });\n if (this._ngSelect.hideSelected) {\n this.resetFilteredItems();\n }\n }\n\n findByLabel(term: string) {\n term = searchHelper.stripSpecialChars(term).toLocaleLowerCase();\n return this.filteredItems.find(item => {\n const label = searchHelper.stripSpecialChars(item.label).toLocaleLowerCase();\n return label.substr(0, term.length) === term;\n });\n }\n\n filter(term: string): void {\n if (!term) {\n this.resetFilteredItems();\n return;\n }\n\n this._filteredItems = [];\n term = this._ngSelect.searchFn ? term : searchHelper.stripSpecialChars(term).toLocaleLowerCase();\n const match = this._ngSelect.searchFn || this._defaultSearchFn;\n const hideSelected = this._ngSelect.hideSelected;\n\n for (const key of Array.from(this._groups.keys())) {\n const matchedItems = [];\n for (const item of this._groups.get(key)) {\n if (hideSelected && (item.parent && item.parent.selected || item.selected)) {\n continue;\n }\n const searchItem = this._ngSelect.searchFn ? item.value : item;\n if (match(term, searchItem)) {\n matchedItems.push(item);\n }\n }\n if (matchedItems.length > 0) {\n const [last] = matchedItems.slice(-1);\n if (last.parent) {\n const head = this._items.find(x => x === last.parent);\n this._filteredItems.push(head);\n }\n this._filteredItems.push(...matchedItems);\n }\n }\n }\n\n resetFilteredItems() {\n if (this._filteredItems.length === this._items.length) {\n return;\n }\n\n if (this._ngSelect.hideSelected && this.selectedItems.length > 0) {\n this._filteredItems = this._items.filter(x => !x.selected);\n } else {\n this._filteredItems = this._items;\n }\n }\n\n unmarkItem() {\n this._markedIndex = -1;\n }\n\n markNextItem() {\n this._stepToItem(+1);\n }\n\n markPreviousItem() {\n this._stepToItem(-1);\n }\n\n markItem(item: NgOption) {\n this._markedIndex = this._filteredItems.indexOf(item);\n }\n\n markSelectedOrDefault(markDefault?: boolean) {\n if (this._filteredItems.length === 0) {\n return;\n }\n\n const lastMarkedIndex = this._getLastMarkedIndex();\n if (lastMarkedIndex > -1) {\n this._markedIndex = lastMarkedIndex;\n } else {\n this._markedIndex = markDefault ? this.filteredItems.findIndex(x => !x.disabled) : -1;\n }\n }\n\n resolveNested(option: any, key: string): any {\n if (!isObject(option)) {\n return option;\n }\n if (key.indexOf('.') === -1) {\n return option[key];\n } else {\n let keys: string[] = key.split('.');\n let value = option;\n for (let i = 0, len = keys.length; i < len; ++i) {\n if (value == null) {\n return null;\n }\n value = value[keys[i]];\n }\n return value;\n }\n }\n\n mapItem(item: any, index: number): NgOption {\n const label = isDefined(item.$ngOptionLabel) ? item.$ngOptionLabel : this.resolveNested(item, this._ngSelect.bindLabel);\n const value = isDefined(item.$ngOptionValue) ? item.$ngOptionValue : item;\n return {\n index: index,\n label: isDefined(label) ? label.toString() : '',\n value: value,\n disabled: item.disabled,\n htmlId: `${this._ngSelect.dropdownId}-${index}`,\n };\n }\n\n mapSelectedItems() {\n const multiple = this._ngSelect.multiple;\n for (const selected of this.selectedItems) {\n const value = this._ngSelect.bindValue ? this.resolveNested(selected.value, this._ngSelect.bindValue) : selected.value;\n const item = isDefined(value) ? this.findItem(value) : null;\n this._selectionModel.unselect(selected, multiple);\n this._selectionModel.select(item || selected, multiple, this._ngSelect.selectableGroupAsModel);\n }\n\n if (this._ngSelect.hideSelected) {\n this._filteredItems = this.filteredItems.filter(x => this.selectedItems.indexOf(x) === -1);\n }\n }\n\n private _showSelected(item: NgOption) {\n this._filteredItems.push(item);\n if (item.parent) {\n const parent = item.parent;\n const parentExists = this._filteredItems.find(x => x === parent);\n if (!parentExists) {\n this._filteredItems.push(parent);\n }\n } else if (item.children) {\n for (const child of item.children) {\n child.selected = false;\n this._filteredItems.push(child);\n }\n }\n this._filteredItems = [...this._filteredItems.sort((a, b) => (a.index - b.index))];\n }\n\n private _hideSelected(item: NgOption) {\n this._filteredItems = this._filteredItems.filter(x => x !== item);\n if (item.parent) {\n const children = item.parent.children;\n if (children.every(x => x.selected)) {\n this._filteredItems = this._filteredItems.filter(x => x !== item.parent);\n }\n } else if (item.children) {\n this._filteredItems = this.filteredItems.filter(x => x.parent !== item);\n }\n }\n\n private _defaultSearchFn(search: string, opt: NgOption) {\n const label = searchHelper.stripSpecialChars(opt.label).toLocaleLowerCase();\n return label.indexOf(search) > -1\n }\n\n private _getNextItemIndex(steps: number) {\n if (steps > 0) {\n return (this._markedIndex === this._filteredItems.length - 1) ? 0 : (this._markedIndex + 1);\n }\n return (this._markedIndex <= 0) ? (this._filteredItems.length - 1) : (this._markedIndex - 1);\n }\n\n private _stepToItem(steps: number) {\n if (this._filteredItems.length === 0 || this._filteredItems.every(x => x.disabled)) {\n return;\n }\n\n this._markedIndex = this._getNextItemIndex(steps);\n if (this.markedItem.disabled) {\n this._stepToItem(steps);\n }\n }\n\n private _getLastMarkedIndex() {\n if (this._ngSelect.hideSelected) {\n return -1;\n }\n\n if (this._markedIndex > -1 && this.markedItem === undefined) {\n return -1;\n }\n\n const selectedIndex = this._filteredItems.indexOf(this.lastSelectedItem);\n if (this.lastSelectedItem && selectedIndex < 0) {\n return -1;\n }\n\n return Math.max(this.markedIndex, selectedIndex);\n }\n\n private _groupBy(items: NgOption[], prop: string | Function): OptionGroups {\n const groups = new Map<string | NgOption, NgOption[]>();\n if (items.length === 0) {\n return groups;\n }\n\n // Check if items are already grouped by given key.\n if (Array.isArray(items[0].value[<string>prop])) {\n for (const item of items) {\n const children = (item.value[<string>prop] || []).map((x, index) => this.mapItem(x, index));\n groups.set(item, children);\n }\n return groups;\n }\n\n const isFnKey = isFunction(this._ngSelect.groupBy);\n const keyFn = (item: NgOption) => {\n let key = isFnKey ? (<Function>prop)(item.value) : item.value[<string>prop];\n return isDefined(key) ? key : undefined;\n };\n\n // Group items by key.\n for (const item of items) {\n let key = keyFn(item);\n const group = groups.get(key);\n if (group) {\n group.push(item);\n } else {\n groups.set(key, [item]);\n }\n }\n return groups;\n }\n\n private _flatten(groups: OptionGroups) {\n const isGroupByFn = isFunction(this._ngSelect.groupBy);\n const items = [];\n for (const key of Array.from(groups.keys())) {\n let i = items.length;\n if (key === undefined) {\n const withoutGroup = groups.get(undefined) || [];\n items.push(...withoutGroup.map(x => ({ ...x, index: i++ })));\n continue;\n }\n\n const isObjectKey = isObject(key);\n const parent: NgOption = {\n label: isObjectKey ? '' : String(key),\n children: undefined,\n parent: null,\n index: i++,\n disabled: !this._ngSelect.selectableGroup,\n htmlId: newId(),\n };\n const groupKey = isGroupByFn ? this._ngSelect.bindLabel : <string>this._ngSelect.groupBy;\n const groupValue = this._ngSelect.groupValue || (() => {\n if (isObjectKey) {\n return (<NgOption>key).value;\n }\n return { [groupKey]: key };\n });\n const children = groups.get(key).map(x => {\n x.parent = parent;\n x.children = undefined;\n x.index = i++;\n return x;\n });\n parent.children = children;\n parent.value = groupValue(key, children.map(x => x.value));\n items.push(parent);\n items.push(...children);\n }\n return items;\n }\n}\n","export interface NgOption {\n [name: string]: any;\n index?: number;\n htmlId?: string;\n selected?: boolean;\n disabled?: boolean;\n marked?: boolean;\n label?: string;\n value?: string | Object;\n parent?: NgOption;\n children?: NgOption[];\n}\n\nexport enum KeyCode {\n Tab = 9,\n Enter = 13,\n Esc = 27,\n Space = 32,\n ArrowUp = 38,\n ArrowDown = 40,\n Backspace = 8\n}\n","export interface ItemsRangeResult {\n scrollHeight: number;\n topPadding: number;\n start: number;\n end: number;\n}\n\nexport interface PanelDimensions {\n itemHeight: number;\n panelHeight: number;\n itemsPerViewport: number;\n}\n\nexport class NgDropdownPanelService {\n\n private _dimensions: PanelDimensions = {\n itemHeight: 0,\n panelHeight: 0,\n itemsPerViewport: 0\n };\n\n get dimensions() {\n return this._dimensions;\n }\n\n calculateItems(scrollPos: number, itemsLength: number, buffer: number): ItemsRangeResult {\n const d = this._dimensions;\n const scrollHeight = d.itemHeight * itemsLength;\n\n const scrollTop = Math.max(0, scrollPos);\n const indexByScrollTop = scrollTop / scrollHeight * itemsLength;\n let end = Math.min(itemsLength, Math.ceil(indexByScrollTop) + (d.itemsPerViewport + 1));\n\n const maxStartEnd = end;\n const maxStart = Math.max(0, maxStartEnd - d.itemsPerViewport);\n let start = Math.min(maxStart, Math.floor(indexByScrollTop));\n\n let topPadding = d.itemHeight * Math.ceil(start) - (d.itemHeight * Math.min(start, buffer));\n topPadding = !isNaN(topPadding) ? topPadding : 0;\n start = !isNaN(start) ? start : -1;\n end = !isNaN(end) ? end : -1;\n start -= buffer;\n start = Math.max(0, start);\n end += buffer;\n end = Math.min(itemsLength, end);\n\n return {\n topPadding,\n scrollHeight,\n start,\n end\n }\n }\n\n setDimensions(itemHeight: number, panelHeight: number) {\n const itemsPerViewport = Math.max(1, Math.floor(panelHeight / itemHeight));\n this._dimensions = {\n itemHeight,\n panelHeight,\n itemsPerViewport\n };\n }\n\n getScrollTo(itemTop: number, itemHeight: number, lastScroll: number) {\n const { panelHeight } = this.dimensions;\n const itemBottom = itemTop + itemHeight;\n const top = lastScroll;\n const bottom = top + panelHeight;\n\n if (panelHeight >= itemBottom && lastScroll === itemTop) {\n return null;\n }\n\n if (itemBottom > bottom) {\n return top + itemBottom - bottom;\n } else if (itemTop <= top) {\n return itemTop;\n }\n\n return null;\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Inject,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { animationFrameScheduler, asapScheduler, fromEvent, merge, Subject } from 'rxjs';\nimport { auditTime, takeUntil } from 'rxjs/operators';\nimport { NgDropdownPanelService, PanelDimensions } from './ng-dropdown-panel.service';\n\nimport { DropdownPosition } from './ng-select.component';\nimport { NgOption } from './ng-select.types';\nimport { isDefined } from './value-utils';\n\nconst TOP_CSS_CLASS = 'ng-select-top';\nconst BOTTOM_CSS_CLASS = 'ng-select-bottom';\nconst SCROLL_SCHEDULER = typeof requestAnimationFrame !== 'undefined' ? animationFrameScheduler : asapScheduler;\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n selector: 'ng-dropdown-panel',\n template: `\n <div *ngIf=\"headerTemplate\" class=\"ng-dropdown-header\">\n <ng-container [ngTemplateOutlet]=\"headerTemplate\" [ngTemplateOutletContext]=\"{ searchTerm: filterValue }\"></ng-container>\n </div>\n <div #scroll class=\"ng-dropdown-panel-items scroll-host\">\n <div #padding [class.total-padding]=\"virtualScroll\"></div>\n <div #content [class.scrollable-content]=\"virtualScroll && items.length\">\n <ng-content></ng-content>\n </div>\n </div>\n <div *ngIf=\"footerTemplate\" class=\"ng-dropdown-footer\">\n <ng-container [ngTemplateOutlet]=\"footerTemplate\" [ngTemplateOutletContext]=\"{ searchTerm: filterValue }\"></ng-container>\n </div>\n `\n})\nexport class NgDropdownPanelComponent implements OnInit, OnChanges, OnDestroy {\n\n @Input() items: NgOption[] = [];\n @Input() markedItem: NgOption;\n @Input() position: DropdownPosition = 'auto';\n @Input() appendTo: string;\n @Input() bufferAmount;\n @Input() virtualScroll = false;\n @Input() headerTemplate: TemplateRef<any>;\n @Input() footerTemplate: TemplateRef<any>;\n @Input() filterValue: string = null;\n\n @Output() update = new EventEmitter<any[]>();\n @Output() scroll = new EventEmitter<{ start: number; end: number }>();\n @Output() scrollToEnd = new EventEmitter<void>();\n @Output() outsideClick = new EventEmitter<void>();\n\n @ViewChild('content', { read: ElementRef, static: true }) contentElementRef: ElementRef;\n @ViewChild('scroll', { read: ElementRef, static: true }) scrollElementRef: ElementRef;\n @ViewChild('padding', { read: ElementRef, static: true }) paddingElementRef: ElementRef;\n\n private readonly _destroy$ = new Subject<void>();\n private readonly _dropdown: HTMLElement;\n private _virtualPadding: HTMLElement;\n private _scrollablePanel: HTMLElement;\n private _contentPanel: HTMLElement;\n private _select: HTMLElement;\n private _parent: HTMLElement;\n private _scrollToEndFired = false;\n private _updateScrollHeight = false;\n private _lastScrollPosition = 0;\n\n constructor(\n private _renderer: Renderer2,\n private _zone: NgZone,\n private _panelService: NgDropdownPanelService,\n _elementRef: ElementRef,\n @Optional() @Inject(DOCUMENT) private _document: any\n ) {\n this._dropdown = _elementRef.nativeElement;\n }\n\n private _currentPosition: DropdownPosition;\n\n get currentPosition(): DropdownPosition {\n return this._currentPosition;\n }\n\n private _itemsLength: number;\n\n private get itemsLength() {\n return this._itemsLength;\n }\n\n private set itemsLength(value: number) {\n if (value !== this._itemsLength) {\n this._itemsLength = value;\n this._onItemsLengthChanged();\n }\n }\n\n private get _startOffset() {\n if (this.markedItem) {\n const { itemHeight, panelHeight } = this._panelService.dimensions;\n const offset = this.markedItem.index * itemHeight;\n return panelHeight > offset ? 0 : offset;\n }\n return 0;\n }\n\n @HostListener('mousedown', ['$event'])\n handleMousedown($event: MouseEvent) {\n const target = $event.target as HTMLElement;\n if (target.tagName === 'INPUT') {\n return;\n }\n $event.preventDefault();\n }\n\n ngOnInit() {\n this._select = this._dropdown.parentElement;\n this._virtualPadding = this.paddingElementRef.nativeElement;\n this._scrollablePanel = this.scrollElementRef.nativeElement;\n this._contentPanel = this.contentElementRef.nativeElement;\n this._handleScroll();\n this._handleOutsideClick();\n this._appendDropdown();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.items) {\n const change = changes.items;\n this._onItemsChange(change.currentValue, change.firstChange);\n }\n }\n\n ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n this._destroy$.unsubscribe();\n if (this.appendTo) {\n this._renderer.removeChild(this._dropdown.parentNode, this._dropdown);\n }\n }\n\n scrollTo(option: NgOption, startFromOption = false) {\n if (!option) {\n return;\n }\n\n const index = this.items.indexOf(option);\n if (index < 0 || index >= this.itemsLength) {\n return;\n }\n\n let scrollTo;\n if (this.virtualScroll) {\n const itemHeight = this._panelService.dimensions.itemHeight;\n scrollTo = this._panelService.getScrollTo(index * itemHeight, itemHeight, this._lastScrollPosition);\n } else {\n const item: HTMLElement = this._dropdown.querySelector(`#${option.htmlId}`);\n const lastScroll = startFromOption ? item.offsetTop : this._lastScrollPosition;\n scrollTo = this._panelService.getScrollTo(item.offsetTop, item.clientHeight, lastScroll);\n }\n\n if (isDefined(scrollTo)) {\n this._scrollablePanel.scrollTop = scrollTo;\n }\n }\n\n scrollToTag() {\n const panel = this._scrollablePanel;\n panel.scrollTop = panel.scrollHeight - panel.clientHeight;\n }\n\n adjustPosition() {\n const parent = this._parent.getBoundingClientRect();\n const select = this._select.getBoundingClientRect();\n this._setOffset(parent, select);\n }\n\n private _handleDropdownPosition() {\n this._currentPosition = this._calculateCurrentPosition(this._dropdown);\n if (this._currentPosition === 'top') {\n this._renderer.addClass(this._dropdown, TOP_CSS_CLASS);\n this._renderer.removeClass(this._dropdown, BOTTOM_CSS_CLASS);\n this._renderer.addClass(this._select, TOP_CSS_CLASS);\n this._renderer.removeClass(this._select, BOTTOM_CSS_CLASS)\n } else {\n this._renderer.addClass(this._dropdown, BOTTOM_CSS_CLASS);\n this._renderer.removeClass(this._dropdown, TOP_CSS_CLASS);\n this._renderer.addClass(this._select, BOTTOM_CSS_CLASS);\n this._renderer.removeClass(this._select, TOP_CSS_CLASS);\n }\n\n if (this.appendTo) {\n this._updatePosition();\n }\n\n this._dropdown.style.opacity = '1';\n }\n\n private _handleScroll() {\n this._zone.runOutsideAngular(() => {\n fromEvent(this.scrollElementRef.nativeElement, 'scroll')\n .pipe(takeUntil(this._destroy$), auditTime(0, SCROLL_SCHEDULER))\n .subscribe((e: { target: HTMLElement }) => this._onContentScrolled(e.target.scrollTop));\n });\n }\n\n private _handleOutsideClick() {\n if (!this._document) {\n return;\n }\n\n this._zone.runOutsideAngular(() => {\n merge(\n fromEvent(this._document, 'touchstart', { capture: true }),\n fromEvent(this._document, 'mousedown', { capture: true })\n ).pipe(takeUntil(this._destroy$))\n .subscribe($event => this._checkToClose($event));\n });\n }\n\n private _checkToClose($event: any) {\n if (this._select.contains($event.target) || this._dropdown.contains($event.target)) {\n return;\n }\n\n const path = $event.path || ($event.composedPath && $event.composedPath());\n if ($event.target && $event.target.shadowRoot && path && path[0] && this._select.contains(path[0])) {\n return;\n }\n\n this._zone.run(() => this.outsideClick.emit());\n }\n\n private _onItemsChange(items: NgOption[], firstChange: boolean) {\n this.items = items || [];\n this._scrollToEndFired = false;\n this.itemsLength = items.length;\n\n if (this.virtualScroll) {\n this._updateItemsRange(firstChange);\n } else {\n this._updateItems(firstChange);\n }\n }\n\n private _updateItems(firstChange: boolean) {\n this.update.emit(this.items);\n if (firstChange === false) {\n return;\n }\n\n this._zone.runOutsideAngular(() => {\n Promise.resolve().then(() => {\n const panelHeight = this._scrollablePanel.clientHeight;\n this._panelService.setDimensions(0, panelHeight);\n this._handleDropdownPosition();\n this.scrollTo(this.markedItem, firstChange);\n });\n });\n }\n\n private _updateItemsRange(firstChange: boolean) {\n this._zone.runOutsideAngular(() => {\n this._measureDimensions().then(() => {\n if (firstChange) {\n this._renderItemsRange(this._startOffset);\n this._handleDropdownPosition();\n } else {\n this._renderItemsRange();\n }\n });\n });\n }\n\n private _onContentScrolled(scrollTop: number) {\n if (this.virtualScroll) {\n this._renderItemsRange(scrollTop);\n }\n this._lastScrollPosition = scrollTop;\n this._fireScrollToEnd(scrollTop);\n }\n\n private _updateVirtualHeight(height: number) {\n if (this._updateScrollHeight) {\n this._virtualPadding.style.height = `${height}px`;\n this._updateScrollHeight = false;\n }\n }\n\n private _onItemsLengthChanged() {\n this._updateScrollHeight = true;\n }\n\n private _renderItemsRange(scrollTop = null) {\n if (scrollTop && this._lastScrollPosition === scrollTop) {\n return;\n }\n\n scrollTop = scrollTop || this._scrollablePanel.scrollTop;\n const range = this._panelService.calculateItems(scrollTop, this.itemsLength, this.bufferAmount);\n this._updateVirtualHeight(range.scrollHeight);\n this._contentPanel.style.transform = `translateY(${range.topPadding}px)`;\n\n this._zone.run(() => {\n this.update.emit(this.items.slice(range.start, range.end));\n this.scroll.emit({ start: range.start, end: range.end });\n });\n\n if (isDefined(scrollTop) && this._lastScrollPosition === 0) {\n this._scrollablePanel.scrollTop = scrollTop;\n this._lastScrollPosition = scrollTop;\n }\n }\n\n private _measureDimensions(): Promise<PanelDimensions> {\n if (this._panelService.dimensions.itemHeight > 0 || this.itemsLength === 0) {\n return Promise.resolve(this._panelService.dimensions);\n }\n\n const [first] = this.items;\n this.update.emit([first]);\n\n return Promise.resolve().then(() => {\n const option = this._dropdown.querySelector(`#${first.htmlId}`);\n const optionHeight = option.clientHeight;\n this._virtualPadding.style.height = `${optionHeight * this.itemsLength}px`;\n const panelHeight = this._scrollablePanel.clientHeight;\n this._panelService.setDimensions(optionHeight, panelHeight);\n\n return this._panelService.dimensions;\n });\n }\n\n private _fireScrollToEnd(scrollTop: number) {\n if (this._scrollToEndFired || scrollTop === 0) {\n return;\n }\n\n const padding = this.virtualScroll ?\n this._virtualPadding :\n this._contentPanel;\n\n if (scrollTop + this._dropdown.clientHeight >= padding.clientHeight) {\n this._zone.run(() => this.scrollToEnd.emit());\n this._scrollToEndFired = true;\n }\n }\n\n private _calculateCurrentPosition(dropdownEl: HTMLElement) {\n if (this.position !== 'auto') {\n return this.position;\n }\n const selectRect: ClientRect = this._select.getBoundingClientRect();\n const scrollTop = document.documentElement.scrollTop || document.body.scrollTop;\n const offsetTop = selectRect.top + window.pageYOffset;\n const height = selectRect.height;\n const dropdownHeight = dropdownEl.getBoundingClientRect().height;\n if (offsetTop + height + dropdownHeight > scrollTop + document.documentElement.clientHeight) {\n return 'top';\n } else {\n return 'bottom';\n }\n }\n\n private _appendDropdown() {\n if (!this.appendTo) {\n return;\n }\n\n this._parent = document.querySelector(this.appendTo);\n if (!parent) {\n throw new Error(`appendTo selector ${this.appendTo} did not found any parent element`);\n }\n this._parent.appendChild(this._dropdown);\n }\n\n private _updatePosition() {\n const select = this._select.getBoundingClientRect();\n const parent = this._parent.getBoundingClientRect();\n const offsetLeft = select.left - parent.left;\n\n this._setOffset(parent, select);\n\n this._dropdown.style.left = offsetLeft + 'px';\n this._dropdown.style.width = select.width + 'px';\n this._dropdown.style.minWidth = select.width + 'px';\n }\n\n private _setOffset(parent: ClientRect, select: ClientRect) {\n const delta = select.height;\n\n if (this._currentPosition === 'top') {\n const offsetBottom = parent.bottom - select.bottom;\n this._dropdown.style.bottom = offsetBottom + delta + 'px';\n this._dropdown.style.top = 'auto';\n } else if (this._currentPosition === 'bottom') {\n const offsetTop = select.top - parent.top;\n this._dropdown.style.top = offsetTop + delta + 'px';\n this._dropdown.style.bottom = 'auto';\n }\n }\n}\n","import {\n AfterViewChecked,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'ng-option',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<ng-content></ng-content>`\n})\nexport class NgOptionComponent implements OnChanges, AfterViewChecked, OnDestroy {\n\n @Input() value: any;\n @Input()\n get disabled() { return this._disabled; }\n set disabled(value: any) { this._disabled = this._isDisabled(value) }\n\n readonly stateChange$ = new Subject<{ value: any, disabled: boolean, label?: string }>();\n\n private _disabled = false;\n private _previousLabel: string;\n\n constructor(public elementRef: ElementRef<HTMLElement>) { }\n\n get label(): string {\n return (this.elementRef.nativeElement.textContent || '').trim();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.disabled) {\n this.stateChange$.next({\n value: this.value,\n disabled: this._disabled\n });\n }\n }\n\n ngAfterViewChecked() {\n if (this.label !== this._previousLabel) {\n this._previousLabel = this.label;\n this.stateChange$.next({\n value: this.value,\n disabled: this._disabled,\n label: this.elementRef.nativeElement.innerHTML\n });\n }\n }\n\n ngOnDestroy() {\n this.stateChange$.complete();\n }\n\n private _isDisabled(value) {\n return value != null && `${value}` !== 'false';\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class NgSelectConfig {\n placeholder: string;\n notFoundText = 'No items found';\n typeToSearchText = 'Type to search';\n addTagText = 'Add item';\n loadingText = 'Loading...';\n clearAllText = 'Clear all';\n disableVirtualScroll = true;\n openOnEnter = true;\n appendTo: string;\n bindValue: string;\n appearance = 'underline';\n}\n","import {\n Component,\n OnDestroy,\n OnChanges,\n AfterViewInit,\n forwardRef,\n ChangeDetectorRef,\n Input,\n Output,\n EventEmitter,\n ContentChild,\n TemplateRef,\n ViewEncapsulation,\n HostListener,\n HostBinding,\n ViewChild,\n ElementRef,\n ChangeDetectionStrategy,\n Inject,\n SimpleChanges,\n ContentChildren,\n QueryList,\n InjectionToken,\n Attribute\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { takeUntil, startWith, tap, debounceTime, map, filter } from 'rxjs/operators';\nimport { Subject, merge } from 'rxjs';\n\nimport {\n NgOptionTemplateDirective,\n NgLabelTemplateDirective,\n NgHeaderTemplateDirective,\n NgFooterTemplateDirective,\n NgOptgroupTemplateDirective,\n NgNotFoundTemplateDirective,\n NgTypeToSearchTemplateDirective,\n NgLoadingTextTemplateDirective,\n NgMultiLabelTemplateDirective,\n NgTagTemplateDirective,\n NgLoadingSpinnerTemplateDirective\n} from './ng-templates.directive';\n\nimport { ConsoleService } from './console.service';\nimport { isDefined, isFunction, isPromise, isObject } from './value-utils';\nimport { ItemsList } from './items-list';\nimport { NgOption, KeyCode } from './ng-select.types';\nimport { newId } from './id';\nimport { NgDropdownPanelComponent } from './ng-dropdown-panel.component';\nimport { NgOptionComponent } from './ng-option.component';\nimport { SelectionModelFactory } from './selection-model';\nimport { NgSelectConfig } from './config.service';\nimport { NgDropdownPanelService } from './ng-dropdown-panel.service';\n\nexport const SELECTION_MODEL_FACTORY = new InjectionToken<SelectionModelFactory>('ng-select-selection-model');\nexport type DropdownPosition = 'bottom' | 'top' | 'auto';\nexport type AddTagFn = ((term: string) => any | Promise<any>);\nexport type CompareWithFn = (a: any, b: any) => boolean;\nexport type GroupValueFn = (key: string | object, children: any[]) => string | object;\n\n@Component({\n selector: 'ng-select',\n templateUrl: './ng-select.component.html',\n styleUrls: ['./ng-select.component.scss'],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgSelectComponent),\n multi: true\n }, NgDropdownPanelService],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'role': 'listbox',\n 'class': 'ng-select',\n '[class.ng-select-single]': '!multiple',\n }\n})\nexport class NgSelectComponent implements OnDestroy, OnChanges, AfterViewInit, ControlValueAccessor {\n\n @Input() bindLabel: string;\n @Input() bindValue: string;\n @Input() markFirst = true;\n @Input() placeholder: string;\n @Input() notFoundText: string;\n @Input() typeToSearchText: string;\n @Input() addTagText: string;\n @Input() loadingText: string;\n @Input() clearAllText: string;\n @Input() appearance: string;\n @Input() dropdownPosition: DropdownPosition = 'auto';\n @Input() appendTo: string;\n @Input() loading = false;\n @Input() closeOnSelect = true;\n @Input() hideSelected = false;\n @Input() selectOnTab = false;\n @Input() openOnEnter: boolean;\n @Input() maxSelectedItems: number;\n @Input() groupBy: string | Function;\n @Input() groupValue: GroupValueFn;\n @Input() bufferAmount = 4;\n @Input() virtualScroll: boolean;\n @Input() selectableGroup = false;\n @Input() selectableGroupAsModel = true;\n @Input() searchFn = null;\n @Input() trackByFn = null;\n @Input() clearOnBackspace = true;\n @Input() labelForId = null;\n @Input() inputAttrs: { [key: string]: string } = {};\n @Input() tabIndex: number;\n @Input() readonly = false;\n @Input() searchWhileComposing = true;\n @Input() minTermLength = 0;\n @Input() keyDownFn = (_: KeyboardEvent) => true;\n\n @Input() @HostBinding('class.ng-select-typeahead') typeahead: Subject<string>;\n @Input() @HostBinding('class.ng-select-multiple') multiple = false;\n @Input() @HostBinding('class.ng-select-taggable') addTag: boolean | AddTagFn = false;\n @Input() @HostBinding('class.ng-select-searchable') searchable = true;\n @Input() @HostBinding('class.ng-select-clearable') clearable = true;\n @Input() @HostBinding('class.ng-select-opened') isOpen = false;\n\n @Input()\n get items() { return this._items };\n\n set items(value: any[]) {\n this._itemsAreUsed = true;\n this._items = value;\n };\n\n @Input()\n get compareWith() { return this._compareWith; }\n\n set compareWith(fn: CompareWithFn) {\n if (!isFunction(fn)) {\n throw Error('`compareWith` must be a function.');\n }\n this._compareWith = fn;\n }\n\n @Input()\n get clearSearchOnAdd() { return isDefined(this._clearSearchOnAdd) ? this._clearSearchOnAdd : this.closeOnSelect; };\n\n set clearSearchOnAdd(value) {\n this._clearSearchOnAdd = value;\n };\n\n // output events\n @Output('blur') blurEvent = new EventEmitter();\n @Output('focus') focusEvent = new EventEmitter();\n @Output('change') changeEvent = new EventEmitter();\n @Output('open') openEvent = new EventEmitter();\n @Output('close') closeEvent = new EventEmitter();\n @Output('search') searchEvent = new EventEmitter<{ term: string, items: any[] }>();\n @Output('clear') clearEvent = new EventEmitter();\n @Output('add') addEvent = new EventEmitter();\n @Output('remove') removeEvent = new EventEmitter();\n @Output('scroll') scroll = new EventEmitter<{ start: number; end: number }>();\n @Output('scrollToEnd') scrollToEnd = new EventEmitter();\n\n // custom templates\n @ContentChild(NgOptionTemplateDirective, { read: TemplateRef, static: false }) optionTemplate: TemplateRef<any>;\n @ContentChild(NgOptgroupTemplateDirective, { read: TemplateRef, static: false }) optgroupTemplate: TemplateRef<any>;\n @ContentChild(NgLabelTemplateDirective, { read: TemplateRef, static: false }) labelTemplate: TemplateRef<any>;\n @ContentChild(NgMultiLabelTemplateDirective, { read: TemplateRef, static: false }) multiLabelTemplate: TemplateRef<any>;\n @ContentChild(NgHeaderTemplateDirective, { read: TemplateRef, static: false }) headerTemplate: TemplateRef<any>;\n @ContentChild(NgFooterTemplateDirective, { read: TemplateRef, static: false }) footerTemplate: TemplateRef<any>;\n @ContentChild(NgNotFoundTemplateDirective, { read: TemplateRef, static: false }) notFoundTemplate: TemplateRef<any>;\n @ContentChild(NgTypeToSearchTemplateDirective, { read: TemplateRef, static: false }) typeToSearchTemplate: TemplateRef<any>;\n @ContentChild(NgLoadingTextTemplateDirective, { read: TemplateRef, static: false }) loadingTextTemplate: TemplateRef<any>;\n @ContentChild(NgTagTemplateDirective, { read: TemplateRef, static: false }) tagTemplate: TemplateRef<any>;\n @ContentChild(NgLoadingSpinnerTemplateDirective, { read: TemplateRef, static: false }) loadingSpinnerTemplate: TemplateRef<any>;\n\n @ViewChild(forwardRef(() => NgDropdownPanelComponent), { static: false }) dropdownPanel: NgDropdownPanelComponent;\n @ViewChild('searchInput', { static: true }) searchInput: ElementRef<HTMLInputElement>;\n @ContentChildren(NgOptionComponent, { descendants: true }) ngOptions: QueryList<NgOptionComponent>;\n\n @HostBinding('class.ng-select-disabled') get disabled() { return this.readonly || this._disabled };\n\n @HostBinding('class.ng-select-filtered') get filtered() { return (!!this.searchTerm && this.searchable || this._isComposing) };\n\n itemsList: ItemsList;\n viewPortItems: NgOption[] = [];\n searchTerm: string = null;\n dropdownId = newId();\n element: HTMLElement;\n focused: boolean;\n escapeHTML = true;\n\n private _items = [];\n private _itemsAreUsed: boolean;\n private _defaultLabel = 'label';\n private _primitive;\n private _manualOpen: boolean;\n private _disabled: boolean;\n private _pressedKeys: string[] = [];\n private _compareWith: CompareWithFn;\n private _clearSearchOnAdd: boolean;\n private _isComposing = false;\n\n private readonly _destroy$ = new Subject<void>();\n private readonly _keyPress$ = new Subject<string>();\n private _onChange = (_: any) => { };\n private _onTouched = () => { };\n\n clearItem = (item: any) => {\n const option = this.selectedItems.find(x => x.value === item);\n this.unselect(option);\n };\n\n constructor(\n @Attribute('class') public classes: string,\n @Attribute('autofocus') private autoFocus: any,\n config: NgSelectConfig,\n @Inject(SELECTION_MODEL_FACTORY) newSelectionModel: SelectionModelFactory,\n _elementRef: ElementRef<HTMLElement>,\n private _cd: ChangeDetectorRef,\n private _console: ConsoleService\n ) {\n this._mergeGlobalConfig(config);\n this.itemsList = new ItemsList(this, newSelectionModel());\n this.element = _elementRef.nativeElement;\n }\n\n get selectedItems(): NgOption[] {\n return this.itemsList.selectedItems;\n }\n\n get selectedValues() {\n return this.selectedItems.map(x => x.value);\n }\n\n get hasValue() {\n return this.selectedItems.length > 0;\n }\n\n get currentPanelPosition(): DropdownPosition {\n if (this.dropdownPanel) {\n return this.dropdownPanel.currentPosition;\n }\n return undefined;\n }\n\n ngOnInit() {\n this._handleKeyPresses();\n this._setInputAttributes();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.multiple) {\n this.itemsList.clearSelected();\n }\n if (changes.items) {\n this._setItems(changes.items.currentValue || []);\n }\n if (changes.isOpen) {\n this._manualOpen = isDefined(changes.isOpen.currentValue);\n }\n }\n\n ngAfterViewInit() {\n if (!this._itemsAreUsed) {\n this.escapeHTML = false;\n this._setItemsFromNgOptions();\n }\n\n if (isDefined(this.autoFocus)) {\n this.focus();\n }\n }\n\n ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n @HostListener('keydown', ['$event'])\n handleKeyDown($event: KeyboardEvent) {\n const keyCode = KeyCode[$event.which];\n if (keyCode) {\n if (this.keyDownFn($event) === false) {\n return;\n }\n this.handleKeyCode($event)\n } else if ($event.key && $event.key.length === 1) {\n this._keyPress$.next($event.key.toLocaleLowerCase());\n }\n }\n\n handleKeyCode($event: KeyboardEvent) {\n switch ($event.which) {\n case KeyCode.ArrowDown:\n this._handleArrowDown($event);\n break;\n case KeyCode.ArrowUp:\n this._handleArrowUp($event);\n break;\n case KeyCode.Space:\n this._handleSpace($event);\n break;\n case KeyCode.Enter:\n this._handleEnter($event);\n break;\n case KeyCode.Tab:\n this._handleTab($event);\n break;\n case KeyCode.Esc:\n this.close();\n $event.preventDefault();\n break;\n case KeyCode.Backspace:\n this._handleBackspace();\n break\n }\n }\n\n handleMousedown($event: MouseEvent) {\n const target = $event.target as HTMLElement;\n if (target.tagName !== 'INPUT') {\n $event.preventDefault();\n }\n\n if (target.classList.contains('ng-clear-wrapper')) {\n this.handleClearClick();\n return;\n }\n\n if (target.classList.contains('ng-arrow-wrapper')) {\n this.handleArrowClick();\n return;\n }\n\n if (target.classList.contains('ng-value-icon')) {\n return;\n }\n\n if (!this.focused) {\n this.focus();\n }\n\n if (this.searchable) {\n this.open();\n } else {\n this.toggle();\n }\n }\n\n handleArrowClick() {\n if (this.isOpen) {\n this.close();\n } else {\n this.open();\n }\n }\n\n handleClearClick() {\n if (this.hasValue) {\n this.itemsList.clearSelected(true);\n this._updateNgModel();\n }\n this._clearSearch();\n this.focus();\n this.clearEvent.emit();\n\n this._onSelectionChanged();\n }\n\n clearModel() {\n if (!this.clearable) {\n return;\n }\n this.itemsList.clearSelected();\n this._updateNgModel();\n }\n\n writeValue(value: any | any[]): void {\n this.itemsList.clearSelected();\n this._handleWriteValue(value);\n this._cd.markForCheck();\n }\n\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n setDisabledState(state: boolean): void {\n this._disabled = state;\n this._cd.markForCheck();\n }\n\n toggle() {\n if (!this.isOpen) {\n this.open();\n } else {\n this.close();\n }\n }\n\n open() {\n if (this.disabled || this.isOpen || this.itemsList.maxItemsSelected || this._manualOpen) {\n return;\n }\n\n if (!this._isTypeahead && !this.addTag && this.itemsList.noItemsToSelect) {\n return;\n }\n this.isOpen = true;\n this.itemsList.markSelectedOrDefault(this.markFirst);\n this.openEvent.emit();\n if (!this.searchTerm) {\n this.focus();\n }\n this.detectChanges();\n }\n\n close() {\n if (!this.isOpen || this._manualOpen) {\n return;\n }\n this.isOpen = false;\n this._clearSearch();\n this.itemsList.unmarkItem();\n this._onTouched();\n this.closeEvent.emit();\n this._cd.markForCheck();\n }\n\n toggleItem(item: NgOption) {\n if (!item || item.disabled || this.disabled) {\n return;\n }\n\n if (this.multiple && item.selected) {\n this.unselect(item);\n } else {\n this.select(item);\n }\n\n this._onSelectionChanged();\n }\n\n select(item: NgOption) {\n if (!item.selected) {\n this.itemsList.select(item);\n if (this.clearSearchOnAdd) {\n this._clearSearch();\n }\n\n this._updateNgModel();\n if (this.multiple) {\n this.addEvent.emit(item.value);\n }\n }\n\n if (this.closeOnSelect || this.itemsList.noItemsToSelect) {\n this.close();\n }\n }\n\n focus() {\n this.searchInput.nativeElement.focus();\n }\n\n blur() {\n this.searchInput.nativeElement.blur();\n }\n\n unselect(item: NgOption) {\n if (!item) {\n return;\n }\n\n this.itemsList.unselect(item);\n this.focus();\n this._updateNgModel();\n this.removeEvent.emit(item);\n }\n\n selectTag() {\n let tag;\n if (isFunction(this.addTag)) {\n tag = (<AddTagFn>this.addTag)(this.searchTerm);\n } else {\n tag = this._primitive ? this.searchTerm : { [this.bindLabel]: this.searchTerm };\n }\n\n const handleTag = (item) => this._isTypeahead || !this.isOpen ? this.itemsList.mapItem(item, null) : this.itemsList.addItem(item);\n if (isPromise(tag)) {\n tag.then(item => this.select(handleTag(item))).catch(() => { });\n } else if (tag) {\n this.select(handleTag(tag));\n }\n }\n\n showClear() {\n return this.clearable && (this.hasValue || this.searchTerm) && !this.disabled;\n }\n\n trackByOption = (_: number, item: NgOption) => {\n if (this.trackByFn) {\n return this.trackByFn(item.value);\n }\n\n return item;\n };\n\n get showAddTag() {\n if (!this._validTerm) {\n return false;\n }\n\n const term = this.searchTerm.toLowerCase().trim();\n return this.addTag &&\n (!this.itemsList.filteredItems.some(x => x.label.toLowerCase() === term) &&\n (!this.hideSelected && this.isOpen || !this.selectedItems.some(x => x.label.toLowerCase() === term))) &&\n !this.loading;\n }\n\n showNoItemsFound() {\n const empty = this.itemsList.filteredItems.length === 0;\n return ((empty && !this._isTypeahead && !this.loading) ||\n (empty && this._isTypeahead && this._validTerm && !this.loading)) &&\n !this.showAddTag;\n }\n\n showTypeToSearch() {\n const empty = this.itemsList.filteredItems.length === 0;\n return empty && this._isTypeahead && !this._validTerm && !this.loading;\n }\n\n onCompositionStart() {\n this._isComposing = true;\n }\n\n onCompositionEnd(term: string) {\n this._isComposing = false;\n if (this.searchWhileComposing) {\n return;\n }\n\n this.filter(term);\n }\n\n filter(term: string) {\n if (this._isComposing && !this.searchWhileComposing) {\n return;\n }\n\n this.searchTerm = term;\n if (this._isTypeahead && (this._validTerm || this.minTermLength === 0)) {\n this.typeahead.next(term);\n }\n\n if (!this._isTypeahead) {\n this.itemsList.filter(this.searchTerm);\n if (this.isOpen) {\n this.itemsList.markSelectedOrDefault(this.markFirst);\n }\n }\n\n this.searchEvent.emit({ term, items: this.itemsList.filteredItems.map(x => x.value) });\n this.open();\n }\n\n onInputFocus($event) {\n if (this.focused) {\n return;\n }\n\n this.element.classList.add('ng-select-focused');\n this.focusEvent.emit($event);\n this.focused = true;\n }\n\n onInputBlur($event) {\n this.element.classList.remove('ng-select-focused');\n this.blurEvent.emit($event);\n if (!this.isOpen && !this.disabled) {\n this._onTouched();\n }\n this.focused = false;\n }\n\n onItemHover(item: NgOption) {\n if (item.disabled) {\n return;\n }\n this.itemsList.markItem(item);\n }\n\n detectChanges() {\n if (!(<any>this._cd).destroyed) {\n this._cd.detectChanges();\n }\n }\n\n private _setItems(items: any[]) {\n const firstItem = items[0];\n this.bindLabel = this.bindLabel || this._defaultLabel;\n this._primitive = isDefined(firstItem) ? !isObject(firstItem) : this._primitive || this.bindLabel === this._defaultLabel;\n this.itemsList.setItems(items);\n if (items.length > 0 && this.hasValue) {\n this.itemsList.mapSelectedItems();\n }\n if (this.isOpen && isDefined(this.searchTerm) && !this._isTypeahead) {\n this.itemsList.filter(this.searchTerm);\n }\n if (this._isTypeahead || this.isOpen) {\n this.itemsList.markSelectedOrDefault(this.markFirst);\n }\n }\n\n private _setItemsFromNgOptions() {\n const mapNgOptions = (options: QueryList<NgOptionComponent>) => {\n this.items = options.map(option => ({\n $ngOptionValue: option.value,\n $ngOptionLabel: option.elementRef.nativeElement.innerHTML,\n disabled: option.disabled\n }));\n this.itemsList.setItems(this.items);\n if (this.hasValue) {\n this.itemsList.mapSelectedItems();\n }\n this.detectChanges();\n };\n\n const handleOptionChange = () => {\n const changedOrDestroyed = merge(this.ngOptions.changes, this._destroy$);\n merge(...this.ngOptions.map(option => option.stateChange$))\n .pipe(takeUntil(changedOrDestroyed))\n .subscribe(option => {\n const item = this.itemsList.findItem(option.value);\n item.disabled = option.disabled;\n item.label = option.label || item.label;\n this._cd.detectChanges();\n });\n };\n\n this.ngOptions.changes\n .pipe(startWith(this.ngOptions), takeUntil(this._destroy$))\n .subscribe(options => {\n this.bindLabel = this._defaultLabel;\n mapNgOptions(options);\n handleOptionChange();\n });\n }\n\n private _isValidWriteValue(value: any): boolean {\n if (!isDefined(value) || (this.multiple && value === '') || Array.isArray(value) && value.length === 0) {\n return false;\n }\n\n const validateBinding = (item: any): boolean => {\n if (!isDefined(this.compareWith) && isObject(item) && this.bindValue) {\n this._console.warn(`Binding object(${JSON.stringify(item)}) with bindValue is not allowed.`);\n return false;\n }\n return true;\n };\n\n if (this.multiple) {\n if (!Array.isArray(value)) {\n this._console.warn('Multiple select ngModel should be array.');\n return false;\n }\n return value.every(item => validateBinding(item));\n } else {\n return validateBinding(value);\n }\n }\n\n private _handleWriteValue(ngModel: any | any[]) {\n if (!this._isValidWriteValue(ngModel)) {\n return\n }\n\n const select = (val: any) => {\n let item = this.itemsList.findItem(val);\n if (item) {\n this.itemsList.select(item);\n } else {\n const isValObject = isObject(val);\n const isPrimitive = !isValObject && !this.bindValue;\n if ((isValObject || isPrimitive)) {\n this.itemsList.select(this.itemsList.mapItem(val, null));\n } else if (this.bindValue) {\n item = {\n [this.bindLabel]: null,\n [this.bindValue]: val\n };\n this.itemsList.select(this.itemsList.mapItem(item, null));\n }\n }\n };\n\n if (this.multiple) {\n (<any[]>ngModel).forEach(item => select(item));\n } else {\n select(ngModel);\n }\n }\n\n private _handleKeyPresses() {\n if (this.searchable) {\n return;\n }\n\n this._keyPress$\n .pipe(takeUntil(this._destroy$),\n tap(letter => this._pressedKeys.push(letter)),\n debounceTime(200),\n filter(() => this._pressedKeys.length > 0),\n map(() => this._pressedKeys.join('')))\n .subscribe(term => {\n const item = this.itemsList.findByLabel(term);\n if (item) {\n if (this.isOpen) {\n this.itemsList.markItem(item);\n this._cd.markForCheck();\n } else {\n this.select(item);\n }\n }\n this._pressedKeys = [];\n });\n }\n\n private _setInputAttributes() {\n const input = this.searchInput.nativeElement;\n const attributes = {\n type: 'text',\n autocorrect: 'off',\n autocapitalize: 'off',\n autocomplete: this.labelForId ? 'off' : this.dropdownId,\n ...this.inputAttrs\n };\n\n for (const key of Object.keys(attributes)) {\n input.setAttribute(key, attributes[key]);\n }\n }\n\n private _updateNgModel() {\n const model = [];\n for (const item of this.selectedItems) {\n if (this.bindValue) {\n let value = null;\n if (item.children) {\n const groupKey = this.groupValue ? this.bindValue : <string>this.groupBy;\n value = item.value[groupKey || <string>this.groupBy];\n } else {\n value = this.itemsList.resolveNested(item.value, this.bindValue);\n }\n model.push(value);\n } else {\n model.push(item.value);\n }\n }\n\n const selected = this.selectedItems.map(x => x.value);\n if (this.multiple) {\n this._onChange(model);\n this.changeEvent.emit(selected);\n } else {\n this._onChange(isDefined(model[0]) ? model[0] : null);\n this.changeEvent.emit(selected[0]);\n }\n\n this._cd.markForCheck();\n }\n\n private _clearSearch() {\n if (!this.searchTerm) {\n return;\n }\n\n this._changeSearch(null);\n this.itemsList.resetFilteredItems();\n }\n\n private _changeSearch(searchTerm: string) {\n this.searchTerm = searchTerm;\n if (this._isTypeahead) {\n this.typeahead.next(searchTerm);\n }\n }\n\n private _scrollToMarked() {\n if (!this.isOpen || !this.dropdownPanel) {\n return;\n }\n this.dropdownPanel.scrollTo(this.itemsList.markedItem);\n }\n\n private _scrollToTag() {\n if (!this.isOpen || !this.dropdownPanel) {\n return;\n }\n this.dropdownPanel.scrollToTag();\n }\n\n private _onSelectionChanged() {\n if (this.isOpen && this.multiple && this.appendTo) {\n // Make sure items are rendered.\n this._cd.detectChanges();\n this.dropdownPanel.adjustPosition();\n }\n }\n\n private _handleTab($event: KeyboardEvent) {\n if (this.isOpen === false && !this.addTag) {\n return;\n }\n\n if (this.selectOnTab) {\n if (this.itemsList.markedItem) {\n this.toggleItem(this.itemsList.markedItem);\n $event.preventDefault();\n } else if (this.showAddTag) {\n this.selectTag();\n $event.preventDefault();\n } else {\n this.close();\n }\n } else {\n this.close();\n }\n }\n\n private _handleEnter($event: KeyboardEvent) {\n if (this.isOpen || this._manualOpen) {\n if (this.itemsList.markedItem) {\n this.toggleItem(this.itemsList.markedItem);\n } else if (this.showAddTag) {\n this.selectTag();\n }\n } else if (this.openOnEnter) {\n this.open();\n } else {\n return;\n }\n\n $event.preventDefault();\n }\n\n private _handleSpace($event: KeyboardEvent) {\n if (this.isOpen || this._manualOpen) {\n return;\n }\n this.open();\n $event.preventDefault();\n }\n\n private _handleArrowDown($event: KeyboardEvent) {\n if (this._nextItemIsTag(+1)) {\n this.itemsList.unmarkItem();\n this._scrollToTag();\n } else {\n this.itemsList.markNextItem();\n this._scrollToMarked();\n }\n this.open();\n $event.preventDefault();\n }\n\n private _handleArrowUp($event: KeyboardEvent) {\n if (!this.isOpen) {\n return;\n }\n\n if (this._nextItemIsTag(-1)) {\n this.itemsList.unmarkItem();\n this._scrollToTag();\n } else {\n this.itemsList.markPreviousItem();\n this._scrollToMarked();\n }\n $event.preventDefault();\n }\n\n private _nextItemIsTag(nextStep: number): boolean {\n const nextIndex = this.itemsList.markedIndex + nextStep;\n return this.addTag && this.searchTerm\n && this.itemsList.markedItem\n && (nextIndex < 0 || nextIndex === this.itemsList.filteredItems.length)\n }\n\n private _handleBackspace() {\n if (this.searchTerm || !this.clearable || !this.clearOnBackspace || !this.hasValue) {\n return;\n }\n\n if (this.multiple) {\n this.unselect(this.itemsList.lastSelectedItem);\n } else {\n this.clearModel();\n }\n }\n\n private get _isTypeahead() {\n return this.typeahead && this.typeahead.observers.length > 0;\n }\n\n private get _validTerm() {\n const term = this.searchTerm && this.searchTerm.trim();\n return term && term.length >= this.minTermLength;\n }\n\n private _mergeGlobalConfig(config: NgSelectConfig) {\n this.placeholder = this.placeholder || config.placeholder;\n this.notFoundText = this.notFoundText || config.notFoundText;\n this.typeToSearchText = this.typeToSearchText || config.typeToSearchText;\n this.addTagText = this.addTagText || config.addTagText;\n this.loadingText = this.loadingText || config.loadingText;\n this.clearAllText = this.clearAllText || config.clearAllText;\n this.virtualScroll = isDefined(this.virtualScroll)\n ? this.virtualScroll\n : isDefined(config.disableVirtualScroll) ? !config.disableVirtualScroll : false;\n this.openOnEnter = isDefined(this.openOnEnter) ? this.openOnEnter : config.openOnEnter;\n this.appendTo = this.appendTo || config.appendTo;\n this.bindValue = this.bindValue || config.bindValue;\n this.appearance = this.appearance || config.appearance;\n }\n}\n","import { NgOption } from './ng-select.types';\n\nexport type SelectionModelFactory = () => SelectionModel;\n\nexport function DefaultSelectionModelFactory() {\n return new DefaultSelectionModel();\n}\n\nexport interface SelectionModel {\n value: NgOption[];\n select(item: NgOption, multiple: boolean, selectableGroupAsModel: boolean);\n unselect(item: NgOption, multiple: boolean);\n clear(keepDisabled: boolean);\n}\n\nexport class DefaultSelectionModel implements SelectionModel {\n private _selected: NgOption[] = [];\n\n get value(): NgOption[] {\n return this._selected;\n }\n\n select(item: NgOption, multiple: boolean, groupAsModel: boolean) {\n item.selected = true;\n if (!item.children || (!multiple && groupAsModel)) {\n this._selected.push(item);\n }\n if (multiple) {\n if (item.parent) {\n const childrenCount = item.parent.children.length;\n const selectedCount = item.parent.children.filter(x => x.selected).length;\n item.parent.selected = childrenCount === selectedCount;\n } else if (item.children) {\n this._setChildrenSelectedState(item.children, true);\n this._removeChildren(item);\n if (groupAsModel && this._activeChildren(item)) {\n this._selected = [...this._selected.filter(x => x.parent !== item), item]\n } else {\n this._selected = [...this._selected, ...item.children.filter(x => !x.disabled)];\n }\n }\n }\n }\n\n unselect(item: NgOption, multiple: boolean) {\n this._selected = this._selected.filter(x => x !== item);\n item.selected = false;\n if (multiple) {\n if (item.parent && item.parent.selected) {\n const children = item.parent.children;\n this._removeParent(item.parent);\n this._removeChildren(item.parent);\n this._selected.push(...children.filter(x => x !== item && !x.disabled));\n item.parent.selected = false;\n } else if (item.children) {\n this._setChildrenSelectedState(item.children, false);\n this._removeChildren(item);\n }\n }\n }\n\n clear(keepDisabled: boolean) {\n this._selected = keepDisabled ? this._selected.filter(x => x.disabled) : [];\n }\n\n private _setChildrenSelectedState(children: NgOption[], selected: boolean) {\n for (const child of children) {\n if (child.disabled) {\n continue;\n }\n child.selected = selected;\n };\n }\n\n private _removeChildren(parent: NgOption) {\n this._selected = [\n ...this._selected.filter(x => x.parent !== parent), \n ...parent.children.filter(x => x.parent === parent && x.disabled && x.selected)\n ];\n }\n\n private _removeParent(parent: NgOption) {\n this._selected = this._selected.filter(x => x !== parent)\n }\n\n private _activeChildren(item: NgOption): boolean {\n return item.children.every(x => !x.disabled || x.selected);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NgDropdownPanelComponent } from './ng-dropdown-panel.component';\nimport { NgOptionComponent } from './ng-option.component';\nimport { NgSelectComponent, SELECTION_MODEL_FACTORY } from './ng-select.component';\nimport {\n NgFooterTemplateDirective,\n NgHeaderTemplateDirective,\n NgLabelTemplateDirective,\n NgLoadingSpinnerTemplateDirective,\n NgLoadingTextTemplateDirective,\n NgMultiLabelTemplateDirective,\n NgNotFoundTemplateDirective,\n NgOptgroupTemplateDirective,\n NgOptionTemplateDirective,\n NgTagTemplateDirective,\n NgItemLabelDirective,\n NgTypeToSearchTemplateDirective\n} from './ng-templates.directive';\nimport { DefaultSelectionModelFactory } from './selection-model';\n\n@NgModule({\n declarations: [\n NgDropdownPanelComponent,\n NgOptionComponent,\n NgSelectComponent,\n NgOptgroupTemplateDirective,\n NgOptionTemplateDirective,\n NgLabelTemplateDirective,\n NgMultiLabelTemplateDirective,\n NgHeaderTemplateDirective,\n NgFooterTemplateDirective,\n NgNotFoundTemplateDirective,\n NgTypeToSearchTemplateDirective,\n NgLoadingTextTemplateDirective,\n NgTagTemplateDirective,\n NgLoadingSpinnerTemplateDirective,\n NgItemLabelDirective\n ],\n imports: [\n CommonModule\n ],\n exports: [\n NgSelectComponent,\n NgOptionComponent,\n NgOptgroupTemplateDirective,\n NgOptionTemplateDirective,\n NgLabelTemplateDirective,\n NgMultiLabelTemplateDirective,\n NgHeaderTemplateDirective,\n NgFooterTemplateDirective,\n NgNotFoundTemplateDirective,\n NgTypeToSearchTemplateDirective,\n NgLoadingTextTemplateDirective,\n NgTagTemplateDirective,\n NgLoadingSpinnerTemplateDirective\n ],\n providers: [\n { provide: SELECTION_MODEL_FACTORY, useValue: DefaultSelectionModelFactory }\n ]\n})\nexport class NgSelectModule {}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@ng-select/ng-select/lib/value-utils.ts","ng://@ng-select/ng-select/lib/ng-templates.directive.ts","ng://@ng-select/ng-select/lib/console.service.ts","ng://@ng-select/ng-select/lib/id.ts","ng://@ng-select/ng-select/lib/search-helper.ts","ng://@ng-select/ng-select/lib/items-list.ts","ng://@ng-select/ng-select/lib/ng-select.types.ts","ng://@ng-select/ng-select/lib/ng-dropdown-panel.service.ts","ng://@ng-select/ng-select/lib/ng-dropdown-panel.component.ts","ng://@ng-select/ng-select/lib/ng-option.component.ts","ng://@ng-select/ng-select/lib/config.service.ts","ng://@ng-select/ng-select/lib/ng-select.component.ts","ng://@ng-select/ng-select/lib/selection-model.ts","ng://@ng-select/ng-select/lib/ng-select.module.ts"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__values","o","Symbol","iterator","m","next","value","done","TypeError","__read","r","e","ar","push","error","__spread","concat","unescapedHTMLExp","hasUnescapedHTMLExp","RegExp","source","htmlEscapes","&","<",">","\"","'","isDefined","isObject","isFunction","Function","NgItemLabelDirective","element","escape","ngOnChanges","changes","string","nativeElement","innerHTML","ngItemLabel","test","replace","chr","Directive","args","selector","ElementRef","Input","NgOptionTemplateDirective","template","TemplateRef","NgOptgroupTemplateDirective","NgLabelTemplateDirective","NgMultiLabelTemplateDirective","NgHeaderTemplateDirective","NgFooterTemplateDirective","NgNotFoundTemplateDirective","NgTypeToSearchTemplateDirective","NgLoadingTextTemplateDirective","NgTagTemplateDirective","NgLoadingSpinnerTemplateDirective","ConsoleService","warn","message","console","Injectable","providedIn","newId","_","Math","random","toString","diacritics","Ⓐ","A","À","Á","Â","Ầ","Ấ","Ẫ","Ẩ","Ã","Ā","Ă","Ằ","Ắ","Ẵ","Ẳ","Ȧ","Ǡ","Ä","Ǟ","Ả","Å","Ǻ","Ǎ","Ȁ","Ȃ","Ạ","Ậ","Ặ","Ḁ","Ą","Ⱥ","Ɐ","Ꜳ","Æ","Ǽ","Ǣ","Ꜵ","Ꜷ","Ꜹ","Ꜻ","Ꜽ","Ⓑ","B","Ḃ","Ḅ","Ḇ","Ƀ","Ƃ","Ɓ","Ⓒ","C","Ć","Ĉ","Ċ","Č","Ç","Ḉ","Ƈ","Ȼ","Ꜿ","Ⓓ","D","Ḋ","Ď","Ḍ","Ḑ","Ḓ","Ḏ","Đ","Ƌ","Ɗ","Ɖ","Ꝺ","DZ","DŽ","Dz","Dž","Ⓔ","E","È","É","Ê","Ề","Ế","Ễ","Ể","Ẽ","Ē","Ḕ","Ḗ","Ĕ","Ė","Ë","Ẻ","Ě","Ȅ","Ȇ","Ẹ","Ệ","Ȩ","Ḝ","Ę","Ḙ","Ḛ","Ɛ","Ǝ","Ⓕ","F","Ḟ","Ƒ","Ꝼ","Ⓖ","G","Ǵ","Ĝ","Ḡ","Ğ","Ġ","Ǧ","Ģ","Ǥ","Ɠ","Ꞡ","Ᵹ","Ꝿ","Ⓗ","H","Ĥ","Ḣ","Ḧ","Ȟ","Ḥ","Ḩ","Ḫ","Ħ","Ⱨ","Ⱶ","Ɥ","Ⓘ","I","Ì","Í","Î","Ĩ","Ī","Ĭ","İ","Ï","Ḯ","Ỉ","Ǐ","Ȉ","Ȋ","Ị","Į","Ḭ","Ɨ","Ⓙ","J","Ĵ","Ɉ","Ⓚ","K","Ḱ","Ǩ","Ḳ","Ķ","Ḵ","Ƙ","Ⱪ","Ꝁ","Ꝃ","Ꝅ","Ꞣ","Ⓛ","L","Ŀ","Ĺ","Ľ","Ḷ","Ḹ","Ļ","Ḽ","Ḻ","Ł","Ƚ","Ɫ","Ⱡ","Ꝉ","Ꝇ","Ꞁ","LJ","Lj","Ⓜ","M","Ḿ","Ṁ","Ṃ","Ɱ","Ɯ","Ⓝ","N","Ǹ","Ń","Ñ","Ṅ","Ň","Ṇ","Ņ","Ṋ","Ṉ","Ƞ","Ɲ","Ꞑ","Ꞥ","NJ","Nj","Ⓞ","O","Ò","Ó","Ô","Ồ","Ố","Ỗ","Ổ","Õ","Ṍ","Ȭ","Ṏ","Ō","Ṑ","Ṓ","Ŏ","Ȯ","Ȱ","Ö","Ȫ","Ỏ","Ő","Ǒ","Ȍ","Ȏ","Ơ","Ờ","Ớ","Ỡ","Ở","Ợ","Ọ","Ộ","Ǫ","Ǭ","Ø","Ǿ","Ɔ","Ɵ","Ꝋ","Ꝍ","Ƣ","Ꝏ","Ȣ","Ⓟ","P","Ṕ","Ṗ","Ƥ","Ᵽ","Ꝑ","Ꝓ","Ꝕ","Ⓠ","Q","Ꝗ","Ꝙ","Ɋ","Ⓡ","R","Ŕ","Ṙ","Ř","Ȑ","Ȓ","Ṛ","Ṝ","Ŗ","Ṟ","Ɍ","Ɽ","Ꝛ","Ꞧ","Ꞃ","Ⓢ","S","ẞ","Ś","Ṥ","Ŝ","Ṡ","Š","Ṧ","Ṣ","Ṩ","Ș","Ş","Ȿ","Ꞩ","Ꞅ","Ⓣ","T","Ṫ","Ť","Ṭ","Ț","Ţ","Ṱ","Ṯ","Ŧ","Ƭ","Ʈ","Ⱦ","Ꞇ","Ꜩ","Ⓤ","U","Ù","Ú","Û","Ũ","Ṹ","Ū","Ṻ","Ŭ","Ü","Ǜ","Ǘ","Ǖ","Ǚ","Ủ","Ů","Ű","Ǔ","Ȕ","Ȗ","Ư","Ừ","Ứ","Ữ","Ử","Ự","Ụ","Ṳ","Ų","Ṷ","Ṵ","Ʉ","Ⓥ","V","Ṽ","Ṿ","Ʋ","Ꝟ","Ʌ","Ꝡ","Ⓦ","W","Ẁ","Ẃ","Ŵ","Ẇ","Ẅ","Ẉ","Ⱳ","Ⓧ","X","Ẋ","Ẍ","Ⓨ","Y","Ỳ","Ý","Ŷ","Ỹ","Ȳ","Ẏ","Ÿ","Ỷ","Ỵ","Ƴ","Ɏ","Ỿ","Ⓩ","Z","Ź","Ẑ","Ż","Ž","Ẓ","Ẕ","Ƶ","Ȥ","Ɀ","Ⱬ","Ꝣ","ⓐ","a","ẚ","à","á","â","ầ","ấ","ẫ","ẩ","ã","ā","ă","ằ","ắ","ẵ","ẳ","ȧ","ǡ","ä","ǟ","ả","å","ǻ","ǎ","ȁ","ȃ","ạ","ậ","ặ","ḁ","ą","ⱥ","ɐ","ꜳ","æ","ǽ","ǣ","ꜵ","ꜷ","ꜹ","ꜻ","ꜽ","ⓑ","b","ḃ","ḅ","ḇ","ƀ","ƃ","ɓ","ⓒ","c","ć","ĉ","ċ","č","ç","ḉ","ƈ","ȼ","ꜿ","ↄ","ⓓ","d","ḋ","ď","ḍ","ḑ","ḓ","ḏ","đ","ƌ","ɖ","ɗ","ꝺ","dz","dž","ⓔ","e","è","é","ê","ề","ế","ễ","ể","ẽ","ē","ḕ","ḗ","ĕ","ė","ë","ẻ","ě","ȅ","ȇ","ẹ","ệ","ȩ","ḝ","ę","ḙ","ḛ","ɇ","ɛ","ǝ","ⓕ","f","ḟ","ƒ","ꝼ","ⓖ","g","ǵ","ĝ","ḡ","ğ","ġ","ǧ","ģ","ǥ","ɠ","ꞡ","ᵹ","ꝿ","ⓗ","h","ĥ","ḣ","ḧ","ȟ","ḥ","ḩ","ḫ","ẖ","ħ","ⱨ","ⱶ","ɥ","ƕ","ⓘ","i","ì","í","î","ĩ","ī","ĭ","ï","ḯ","ỉ","ǐ","ȉ","ȋ","ị","į","ḭ","ɨ","ı","ⓙ","j","ĵ","ǰ","ɉ","ⓚ","k","ḱ","ǩ","ḳ","ķ","ḵ","ƙ","ⱪ","ꝁ","ꝃ","ꝅ","ꞣ","ⓛ","l","ŀ","ĺ","ľ","ḷ","ḹ","ļ","ḽ","ḻ","ſ","ł","ƚ","ɫ","ⱡ","ꝉ","ꞁ","ꝇ","lj","ⓜ","m","ḿ","ṁ","ṃ","ɱ","ɯ","ⓝ","n","ǹ","ń","ñ","ṅ","ň","ṇ","ņ","ṋ","ṉ","ƞ","ɲ","ʼn","ꞑ","ꞥ","nj","ⓞ","o","ò","ó","ô","ồ","ố","ỗ","ổ","õ","ṍ","ȭ","ṏ","ō","ṑ","ṓ","ŏ","ȯ","ȱ","ö","ȫ","ỏ","ő","ǒ","ȍ","ȏ","ơ","ờ","ớ","ỡ","ở","ợ","ọ","ộ","ǫ","ǭ","ø","ǿ","ɔ","ꝋ","ꝍ","ɵ","ƣ","ȣ","ꝏ","ⓟ","p","ṕ","ṗ","ƥ","ᵽ","ꝑ","ꝓ","ꝕ","ⓠ","q","ɋ","ꝗ","ꝙ","ⓡ","r","ŕ","ṙ","ř","ȑ","ȓ","ṛ","ṝ","ŗ","ṟ","ɍ","ɽ","ꝛ","ꞧ","ꞃ","ⓢ","s","ß","ś","ṥ","ŝ","ṡ","š","ṧ","ṣ","ṩ","ș","ş","ȿ","ꞩ","ꞅ","ẛ","ⓣ","t","ṫ","ẗ","ť","ṭ","ț","ţ","ṱ","ṯ","ŧ","ƭ","ʈ","ⱦ","ꞇ","ꜩ","ⓤ","u","ù","ú","û","ũ","ṹ","ū","ṻ","ŭ","ü","ǜ","ǘ","ǖ","ǚ","ủ","ů","ű","ǔ","ȕ","ȗ","ư","ừ","ứ","ữ","ử","ự","ụ","ṳ","ų","ṷ","ṵ","ʉ","ⓥ","v","ṽ","ṿ","ʋ","ꝟ","ʌ","ꝡ","ⓦ","w","ẁ","ẃ","ŵ","ẇ","ẅ","ẘ","ẉ","ⱳ","ⓧ","x","ẋ","ẍ","ⓨ","y","ỳ","ý","ŷ","ỹ","ȳ","ẏ","ÿ","ỷ","ẙ","ỵ","ƴ","ɏ","ỿ","ⓩ","z","ź","ẑ","ż","ž","ẓ","ẕ","ƶ","ȥ","ɀ","ⱬ","ꝣ","Ά","Έ","Ή","Ί","Ϊ","Ό","Ύ","Ϋ","Ώ","ά","έ","ή","ί","ϊ","ΐ","ό","ύ","ϋ","ΰ","ω","ς","stripSpecialChars","text","a","ItemsList","_ngSelect","_selectionModel","_items","_filteredItems","_markedIndex","defineProperty","hideSelected","selectedItems","multiple","maxSelectedItems","item","disabled","setItems","items","_this","map","index","mapItem","groupBy","_groups","_groupBy","_flatten","Map","set","undefined","select","selected","maxItemsSelected","clearSelected","selectableGroupAsModel","_hideSelected","unselect","_showSelected","findItem","findBy","compareWith","bindValue","children","resolveNested","label","bindLabel","find","addItem","option","keepDisabled","clear","forEach","marked","resetFilteredItems","findByLabel","term","searchHelper.stripSpecialChars","toLocaleLowerCase","filteredItems","substr","filter","searchFn","match","_defaultSearchFn","key","matchedItems","_c","tslib_1.__values","this_1","get","_d","parent","searchItem","last_1","slice","head","x","_b","Array","from","keys","unmarkItem","markNextItem","_stepToItem","markPreviousItem","markItem","indexOf","markSelectedOrDefault","markDefault","lastMarkedIndex","_getLastMarkedIndex","findIndex","split","len","$ngOptionLabel","$ngOptionValue","htmlId","dropdownId","mapSelectedItems","parent_1","child","sort","b","every","search","opt","_getNextItemIndex","steps","markedItem","selectedIndex","lastSelectedItem","max","markedIndex","prop","groups","isArray","items_1","items_1_1","isFnKey","keyFn","items_2","items_2_1","group","isGroupByFn","withoutGroup","isObjectKey","parent_2","String","this_2","selectableGroup","groupKey","groupValue","_a","Tab","Enter","Esc","Space","ArrowUp","ArrowDown","Backspace","NgDropdownPanelService","_dimensions","itemHeight","panelHeight","itemsPerViewport","calculateItems","scrollPos","itemsLength","buffer","d","scrollHeight","indexByScrollTop","end","min","ceil","maxStartEnd","maxStart","start","floor","topPadding","isNaN","setDimensions","getScrollTo","itemTop","lastScroll","dimensions","itemBottom","bottom","SCROLL_SCHEDULER","requestAnimationFrame","animationFrameScheduler","asapScheduler","NgDropdownPanelComponent","_renderer","_zone","_panelService","_elementRef","_document","position","virtualScroll","filterValue","update","EventEmitter","scroll","scrollToEnd","outsideClick","_destroy$","Subject","_scrollToEndFired","_updateScrollHeight","_lastScrollPosition","_dropdown","_currentPosition","_itemsLength","_onItemsLengthChanged","offset","handleMousedown","$event","tagName","preventDefault","ngOnInit","_select","parentElement","_virtualPadding","paddingElementRef","_scrollablePanel","scrollElementRef","_contentPanel","contentElementRef","_handleScroll","_handleOutsideClick","_appendDropdown","change","_onItemsChange","currentValue","firstChange","ngOnDestroy","complete","unsubscribe","appendTo","removeChild","parentNode","scrollTo","startFromOption","querySelector","offsetTop","clientHeight","scrollTop","scrollToTag","panel","adjustPosition","_parent","getBoundingClientRect","_setOffset","_handleDropdownPosition","_calculateCurrentPosition","addClass","removeClass","_updatePosition","style","opacity","runOutsideAngular","fromEvent","pipe","takeUntil","auditTime","subscribe","_onContentScrolled","target","merge","capture","_checkToClose","contains","path","composedPath","shadowRoot","run","emit","_updateItemsRange","_updateItems","Promise","resolve","then","_measureDimensions","_renderItemsRange","_startOffset","_fireScrollToEnd","_updateVirtualHeight","height","range","bufferAmount","transform","first","optionHeight","padding","dropdownEl","selectRect","document","documentElement","body","top","window","pageYOffset","Error","appendChild","offsetLeft","left","width","minWidth","delta","offsetBottom","Component","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","Renderer2","NgZone","Optional","type","Inject","DOCUMENT","Output","ViewChild","read","static","HostListener","NgOptionComponent","elementRef","stateChange$","_disabled","_isDisabled","textContent","trim","ngAfterViewChecked","_previousLabel","NgSelectConfig","notFoundText","typeToSearchText","addTagText","loadingText","clearAllText","disableVirtualScroll","openOnEnter","appearance","SELECTION_MODEL_FACTORY","InjectionToken","NgSelectComponent","classes","autoFocus","config","newSelectionModel","_cd","_console","markFirst","dropdownPosition","loading","closeOnSelect","selectOnTab","trackByFn","clearOnBackspace","labelForId","inputAttrs","readonly","searchWhileComposing","minTermLength","editableSearchTerm","keyDownFn","addTag","searchable","clearable","isOpen","blurEvent","focusEvent","changeEvent","openEvent","closeEvent","searchEvent","clearEvent","addEvent","removeEvent","viewPortItems","searchTerm","escapeHTML","useDefaultClass","_defaultLabel","_pressedKeys","_isComposing","_keyPress$","_onChange","_onTouched","clearItem","trackByOption","_mergeGlobalConfig","itemsList","_itemsAreUsed","_compareWith","fn","_clearSearchOnAdd","dropdownPanel","currentPosition","_handleKeyPresses","_setInputAttributes","_setItems","_manualOpen","ngAfterViewInit","_setItemsFromNgOptions","focus","handleKeyDown","KeyCode","which","handleKeyCode","_handleArrowDown","_handleArrowUp","_handleSpace","_handleEnter","_handleTab","close","_handleBackspace","classList","handleClearClick","handleArrowClick","focused","open","toggle","hasValue","_updateNgModel","_clearSearch","_onSelectionChanged","clearModel","writeValue","_handleWriteValue","markForCheck","registerOnChange","registerOnTouched","setDisabledState","state","_isTypeahead","noItemsToSelect","detectChanges","_editableSearchTerm","toggleItem","_setSearchTermFromItems","clearSearchOnAdd","searchInput","blur","selectTag","tag","_primitive","handleTag","catch","showClear","_validTerm","toLowerCase","some","showNoItemsFound","empty","showAddTag","showTypeToSearch","onCompositionStart","onCompositionEnd","typeahead","onInputFocus","add","onInputBlur","remove","onItemHover","destroyed","firstItem","ngOptions","startWith","options","changedOrDestroyed","mapNgOptions","_isValidWriteValue","validateBinding","JSON","stringify","ngModel","val","isValObject","isPrimitive","tap","letter","debounceTime","join","input","attributes","autocorrect","autocapitalize","autocomplete","setAttribute","model","_changeSearch","_scrollToMarked","_scrollToTag","_nextItemIsTag","nextStep","nextIndex","observers","placeholder","providers","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","multi","host","role","[class.ng-select]","[class.ng-select-single]","Attribute","ChangeDetectorRef","HostBinding","ContentChild","ContentChildren","descendants","DefaultSelectionModelFactory","DefaultSelectionModel","_selected","groupAsModel","childrenCount","selectedCount","_setChildrenSelectedState","_removeChildren","_activeChildren","_removeParent","children_1","children_1_1","ɵ0","NgSelectModule","NgModule","declarations","imports","CommonModule","exports","useValue"],"mappings":"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IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IA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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","const unescapedHTMLExp = /[&<>\"']/g;\nconst hasUnescapedHTMLExp = RegExp(unescapedHTMLExp.source);\nconst htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': '''\n};\n\nexport function escapeHTML(string: string) {\n return (string && hasUnescapedHTMLExp.test(string)) ?\n string.replace(unescapedHTMLExp, chr => htmlEscapes[chr]) :\n string;\n}\n\nexport function isDefined(value: any) {\n return value !== undefined && value !== null;\n}\n\nexport function isObject(value: any) {\n return typeof value === 'object' && isDefined(value);\n}\n\nexport function isPromise(value: any) {\n return value instanceof Promise;\n}\n\nexport function isFunction(value: any) {\n return value instanceof Function;\n}\n","import { Directive, ElementRef, Input, OnChanges, SimpleChanges, TemplateRef } from '@angular/core';\nimport { escapeHTML } from './value-utils';\n\n@Directive({ selector: '[ngItemLabel]' })\nexport class NgItemLabelDirective implements OnChanges {\n @Input() ngItemLabel: string;\n @Input() escape = true;\n\n constructor(private element: ElementRef<HTMLElement>) { }\n\n ngOnChanges(changes: SimpleChanges) {\n this.element.nativeElement.innerHTML = this.escape ?\n escapeHTML(this.ngItemLabel) :\n this.ngItemLabel;\n }\n}\n\n@Directive({ selector: '[ng-option-tmp]' })\nexport class NgOptionTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-optgroup-tmp]' })\nexport class NgOptgroupTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-label-tmp]' })\nexport class NgLabelTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-multi-label-tmp]' })\nexport class NgMultiLabelTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-header-tmp]' })\nexport class NgHeaderTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-footer-tmp]' })\nexport class NgFooterTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-notfound-tmp]' })\nexport class NgNotFoundTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-typetosearch-tmp]' })\nexport class NgTypeToSearchTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-loadingtext-tmp]' })\nexport class NgLoadingTextTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-tag-tmp]' })\nexport class NgTagTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ng-loadingspinner-tmp]' })\nexport class NgLoadingSpinnerTemplateDirective {\n constructor(public template: TemplateRef<any>) { }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class ConsoleService {\n warn(message: string) {\n console.warn(message)\n }\n}\n","export function newId() {\n // First character is an 'a', it's good practice to tag id to begin with a letter\n return 'axxxxxxxxxxx'.replace(/[x]/g, function (_) {\n // tslint:disable-next-line:no-bitwise\n const val = Math.random() * 16 | 0;\n return val.toString(16);\n });\n}\n","const diacritics = {\n '\\u24B6': 'A',\n '\\uFF21': 'A',\n '\\u00C0': 'A',\n '\\u00C1': 'A',\n '\\u00C2': 'A',\n '\\u1EA6': 'A',\n '\\u1EA4': 'A',\n '\\u1EAA': 'A',\n '\\u1EA8': 'A',\n '\\u00C3': 'A',\n '\\u0100': 'A',\n '\\u0102': 'A',\n '\\u1EB0': 'A',\n '\\u1EAE': 'A',\n '\\u1EB4': 'A',\n '\\u1EB2': 'A',\n '\\u0226': 'A',\n '\\u01E0': 'A',\n '\\u00C4': 'A',\n '\\u01DE': 'A',\n '\\u1EA2': 'A',\n '\\u00C5': 'A',\n '\\u01FA': 'A',\n '\\u01CD': 'A',\n '\\u0200': 'A',\n '\\u0202': 'A',\n '\\u1EA0': 'A',\n '\\u1EAC': 'A',\n '\\u1EB6': 'A',\n '\\u1E00': 'A',\n '\\u0104': 'A',\n '\\u023A': 'A',\n '\\u2C6F': 'A',\n '\\uA732': 'AA',\n '\\u00C6': 'AE',\n '\\u01FC': 'AE',\n '\\u01E2': 'AE',\n '\\uA734': 'AO',\n '\\uA736': 'AU',\n '\\uA738': 'AV',\n '\\uA73A': 'AV',\n '\\uA73C': 'AY',\n '\\u24B7': 'B',\n '\\uFF22': 'B',\n '\\u1E02': 'B',\n '\\u1E04': 'B',\n '\\u1E06': 'B',\n '\\u0243': 'B',\n '\\u0182': 'B',\n '\\u0181': 'B',\n '\\u24B8': 'C',\n '\\uFF23': 'C',\n '\\u0106': 'C',\n '\\u0108': 'C',\n '\\u010A': 'C',\n '\\u010C': 'C',\n '\\u00C7': 'C',\n '\\u1E08': 'C',\n '\\u0187': 'C',\n '\\u023B': 'C',\n '\\uA73E': 'C',\n '\\u24B9': 'D',\n '\\uFF24': 'D',\n '\\u1E0A': 'D',\n '\\u010E': 'D',\n '\\u1E0C': 'D',\n '\\u1E10': 'D',\n '\\u1E12': 'D',\n '\\u1E0E': 'D',\n '\\u0110': 'D',\n '\\u018B': 'D',\n '\\u018A': 'D',\n '\\u0189': 'D',\n '\\uA779': 'D',\n '\\u01F1': 'DZ',\n '\\u01C4': 'DZ',\n '\\u01F2': 'Dz',\n '\\u01C5': 'Dz',\n '\\u24BA': 'E',\n '\\uFF25': 'E',\n '\\u00C8': 'E',\n '\\u00C9': 'E',\n '\\u00CA': 'E',\n '\\u1EC0': 'E',\n '\\u1EBE': 'E',\n '\\u1EC4': 'E',\n '\\u1EC2': 'E',\n '\\u1EBC': 'E',\n '\\u0112': 'E',\n '\\u1E14': 'E',\n '\\u1E16': 'E',\n '\\u0114': 'E',\n '\\u0116': 'E',\n '\\u00CB': 'E',\n '\\u1EBA': 'E',\n '\\u011A': 'E',\n '\\u0204': 'E',\n '\\u0206': 'E',\n '\\u1EB8': 'E',\n '\\u1EC6': 'E',\n '\\u0228': 'E',\n '\\u1E1C': 'E',\n '\\u0118': 'E',\n '\\u1E18': 'E',\n '\\u1E1A': 'E',\n '\\u0190': 'E',\n '\\u018E': 'E',\n '\\u24BB': 'F',\n '\\uFF26': 'F',\n '\\u1E1E': 'F',\n '\\u0191': 'F',\n '\\uA77B': 'F',\n '\\u24BC': 'G',\n '\\uFF27': 'G',\n '\\u01F4': 'G',\n '\\u011C': 'G',\n '\\u1E20': 'G',\n '\\u011E': 'G',\n '\\u0120': 'G',\n '\\u01E6': 'G',\n '\\u0122': 'G',\n '\\u01E4': 'G',\n '\\u0193': 'G',\n '\\uA7A0': 'G',\n '\\uA77D': 'G',\n '\\uA77E': 'G',\n '\\u24BD': 'H',\n '\\uFF28': 'H',\n '\\u0124': 'H',\n '\\u1E22': 'H',\n '\\u1E26': 'H',\n '\\u021E': 'H',\n '\\u1E24': 'H',\n '\\u1E28': 'H',\n '\\u1E2A': 'H',\n '\\u0126': 'H',\n '\\u2C67': 'H',\n '\\u2C75': 'H',\n '\\uA78D': 'H',\n '\\u24BE': 'I',\n '\\uFF29': 'I',\n '\\u00CC': 'I',\n '\\u00CD': 'I',\n '\\u00CE': 'I',\n '\\u0128': 'I',\n '\\u012A': 'I',\n '\\u012C': 'I',\n '\\u0130': 'I',\n '\\u00CF': 'I',\n '\\u1E2E': 'I',\n '\\u1EC8': 'I',\n '\\u01CF': 'I',\n '\\u0208': 'I',\n '\\u020A': 'I',\n '\\u1ECA': 'I',\n '\\u012E': 'I',\n '\\u1E2C': 'I',\n '\\u0197': 'I',\n '\\u24BF': 'J',\n '\\uFF2A': 'J',\n '\\u0134': 'J',\n '\\u0248': 'J',\n '\\u24C0': 'K',\n '\\uFF2B': 'K',\n '\\u1E30': 'K',\n '\\u01E8': 'K',\n '\\u1E32': 'K',\n '\\u0136': 'K',\n '\\u1E34': 'K',\n '\\u0198': 'K',\n '\\u2C69': 'K',\n '\\uA740': 'K',\n '\\uA742': 'K',\n '\\uA744': 'K',\n '\\uA7A2': 'K',\n '\\u24C1': 'L',\n '\\uFF2C': 'L',\n '\\u013F': 'L',\n '\\u0139': 'L',\n '\\u013D': 'L',\n '\\u1E36': 'L',\n '\\u1E38': 'L',\n '\\u013B': 'L',\n '\\u1E3C': 'L',\n '\\u1E3A': 'L',\n '\\u0141': 'L',\n '\\u023D': 'L',\n '\\u2C62': 'L',\n '\\u2C60': 'L',\n '\\uA748': 'L',\n '\\uA746': 'L',\n '\\uA780': 'L',\n '\\u01C7': 'LJ',\n '\\u01C8': 'Lj',\n '\\u24C2': 'M',\n '\\uFF2D': 'M',\n '\\u1E3E': 'M',\n '\\u1E40': 'M',\n '\\u1E42': 'M',\n '\\u2C6E': 'M',\n '\\u019C': 'M',\n '\\u24C3': 'N',\n '\\uFF2E': 'N',\n '\\u01F8': 'N',\n '\\u0143': 'N',\n '\\u00D1': 'N',\n '\\u1E44': 'N',\n '\\u0147': 'N',\n '\\u1E46': 'N',\n '\\u0145': 'N',\n '\\u1E4A': 'N',\n '\\u1E48': 'N',\n '\\u0220': 'N',\n '\\u019D': 'N',\n '\\uA790': 'N',\n '\\uA7A4': 'N',\n '\\u01CA': 'NJ',\n '\\u01CB': 'Nj',\n '\\u24C4': 'O',\n '\\uFF2F': 'O',\n '\\u00D2': 'O',\n '\\u00D3': 'O',\n '\\u00D4': 'O',\n '\\u1ED2': 'O',\n '\\u1ED0': 'O',\n '\\u1ED6': 'O',\n '\\u1ED4': 'O',\n '\\u00D5': 'O',\n '\\u1E4C': 'O',\n '\\u022C': 'O',\n '\\u1E4E': 'O',\n '\\u014C': 'O',\n '\\u1E50': 'O',\n '\\u1E52': 'O',\n '\\u014E': 'O',\n '\\u022E': 'O',\n '\\u0230': 'O',\n '\\u00D6': 'O',\n '\\u022A': 'O',\n '\\u1ECE': 'O',\n '\\u0150': 'O',\n '\\u01D1': 'O',\n '\\u020C': 'O',\n '\\u020E': 'O',\n '\\u01A0': 'O',\n '\\u1EDC': 'O',\n '\\u1EDA': 'O',\n '\\u1EE0': 'O',\n '\\u1EDE': 'O',\n '\\u1EE2': 'O',\n '\\u1ECC': 'O',\n '\\u1ED8': 'O',\n '\\u01EA': 'O',\n '\\u01EC': 'O',\n '\\u00D8': 'O',\n '\\u01FE': 'O',\n '\\u0186': 'O',\n '\\u019F': 'O',\n '\\uA74A': 'O',\n '\\uA74C': 'O',\n '\\u01A2': 'OI',\n '\\uA74E': 'OO',\n '\\u0222': 'OU',\n '\\u24C5': 'P',\n '\\uFF30': 'P',\n '\\u1E54': 'P',\n '\\u1E56': 'P',\n '\\u01A4': 'P',\n '\\u2C63': 'P',\n '\\uA750': 'P',\n '\\uA752': 'P',\n '\\uA754': 'P',\n '\\u24C6': 'Q',\n '\\uFF31': 'Q',\n '\\uA756': 'Q',\n '\\uA758': 'Q',\n '\\u024A': 'Q',\n '\\u24C7': 'R',\n '\\uFF32': 'R',\n '\\u0154': 'R',\n '\\u1E58': 'R',\n '\\u0158': 'R',\n '\\u0210': 'R',\n '\\u0212': 'R',\n '\\u1E5A': 'R',\n '\\u1E5C': 'R',\n '\\u0156': 'R',\n '\\u1E5E': 'R',\n '\\u024C': 'R',\n '\\u2C64': 'R',\n '\\uA75A': 'R',\n '\\uA7A6': 'R',\n '\\uA782': 'R',\n '\\u24C8': 'S',\n '\\uFF33': 'S',\n '\\u1E9E': 'S',\n '\\u015A': 'S',\n '\\u1E64': 'S',\n '\\u015C': 'S',\n '\\u1E60': 'S',\n '\\u0160': 'S',\n '\\u1E66': 'S',\n '\\u1E62': 'S',\n '\\u1E68': 'S',\n '\\u0218': 'S',\n '\\u015E': 'S',\n '\\u2C7E': 'S',\n '\\uA7A8': 'S',\n '\\uA784': 'S',\n '\\u24C9': 'T',\n '\\uFF34': 'T',\n '\\u1E6A': 'T',\n '\\u0164': 'T',\n '\\u1E6C': 'T',\n '\\u021A': 'T',\n '\\u0162': 'T',\n '\\u1E70': 'T',\n '\\u1E6E': 'T',\n '\\u0166': 'T',\n '\\u01AC': 'T',\n '\\u01AE': 'T',\n '\\u023E': 'T',\n '\\uA786': 'T',\n '\\uA728': 'TZ',\n '\\u24CA': 'U',\n '\\uFF35': 'U',\n '\\u00D9': 'U',\n '\\u00DA': 'U',\n '\\u00DB': 'U',\n '\\u0168': 'U',\n '\\u1E78': 'U',\n '\\u016A': 'U',\n '\\u1E7A': 'U',\n '\\u016C': 'U',\n '\\u00DC': 'U',\n '\\u01DB': 'U',\n '\\u01D7': 'U',\n '\\u01D5': 'U',\n '\\u01D9': 'U',\n '\\u1EE6': 'U',\n '\\u016E': 'U',\n '\\u0170': 'U',\n '\\u01D3': 'U',\n '\\u0214': 'U',\n '\\u0216': 'U',\n '\\u01AF': 'U',\n '\\u1EEA': 'U',\n '\\u1EE8': 'U',\n '\\u1EEE': 'U',\n '\\u1EEC': 'U',\n '\\u1EF0': 'U',\n '\\u1EE4': 'U',\n '\\u1E72': 'U',\n '\\u0172': 'U',\n '\\u1E76': 'U',\n '\\u1E74': 'U',\n '\\u0244': 'U',\n '\\u24CB': 'V',\n '\\uFF36': 'V',\n '\\u1E7C': 'V',\n '\\u1E7E': 'V',\n '\\u01B2': 'V',\n '\\uA75E': 'V',\n '\\u0245': 'V',\n '\\uA760': 'VY',\n '\\u24CC': 'W',\n '\\uFF37': 'W',\n '\\u1E80': 'W',\n '\\u1E82': 'W',\n '\\u0174': 'W',\n '\\u1E86': 'W',\n '\\u1E84': 'W',\n '\\u1E88': 'W',\n '\\u2C72': 'W',\n '\\u24CD': 'X',\n '\\uFF38': 'X',\n '\\u1E8A': 'X',\n '\\u1E8C': 'X',\n '\\u24CE': 'Y',\n '\\uFF39': 'Y',\n '\\u1EF2': 'Y',\n '\\u00DD': 'Y',\n '\\u0176': 'Y',\n '\\u1EF8': 'Y',\n '\\u0232': 'Y',\n '\\u1E8E': 'Y',\n '\\u0178': 'Y',\n '\\u1EF6': 'Y',\n '\\u1EF4': 'Y',\n '\\u01B3': 'Y',\n '\\u024E': 'Y',\n '\\u1EFE': 'Y',\n '\\u24CF': 'Z',\n '\\uFF3A': 'Z',\n '\\u0179': 'Z',\n '\\u1E90': 'Z',\n '\\u017B': 'Z',\n '\\u017D': 'Z',\n '\\u1E92': 'Z',\n '\\u1E94': 'Z',\n '\\u01B5': 'Z',\n '\\u0224': 'Z',\n '\\u2C7F': 'Z',\n '\\u2C6B': 'Z',\n '\\uA762': 'Z',\n '\\u24D0': 'a',\n '\\uFF41': 'a',\n '\\u1E9A': 'a',\n '\\u00E0': 'a',\n '\\u00E1': 'a',\n '\\u00E2': 'a',\n '\\u1EA7': 'a',\n '\\u1EA5': 'a',\n '\\u1EAB': 'a',\n '\\u1EA9': 'a',\n '\\u00E3': 'a',\n '\\u0101': 'a',\n '\\u0103': 'a',\n '\\u1EB1': 'a',\n '\\u1EAF': 'a',\n '\\u1EB5': 'a',\n '\\u1EB3': 'a',\n '\\u0227': 'a',\n '\\u01E1': 'a',\n '\\u00E4': 'a',\n '\\u01DF': 'a',\n '\\u1EA3': 'a',\n '\\u00E5': 'a',\n '\\u01FB': 'a',\n '\\u01CE': 'a',\n '\\u0201': 'a',\n '\\u0203': 'a',\n '\\u1EA1': 'a',\n '\\u1EAD': 'a',\n '\\u1EB7': 'a',\n '\\u1E01': 'a',\n '\\u0105': 'a',\n '\\u2C65': 'a',\n '\\u0250': 'a',\n '\\uA733': 'aa',\n '\\u00E6': 'ae',\n '\\u01FD': 'ae',\n '\\u01E3': 'ae',\n '\\uA735': 'ao',\n '\\uA737': 'au',\n '\\uA739': 'av',\n '\\uA73B': 'av',\n '\\uA73D': 'ay',\n '\\u24D1': 'b',\n '\\uFF42': 'b',\n '\\u1E03': 'b',\n '\\u1E05': 'b',\n '\\u1E07': 'b',\n '\\u0180': 'b',\n '\\u0183': 'b',\n '\\u0253': 'b',\n '\\u24D2': 'c',\n '\\uFF43': 'c',\n '\\u0107': 'c',\n '\\u0109': 'c',\n '\\u010B': 'c',\n '\\u010D': 'c',\n '\\u00E7': 'c',\n '\\u1E09': 'c',\n '\\u0188': 'c',\n '\\u023C': 'c',\n '\\uA73F': 'c',\n '\\u2184': 'c',\n '\\u24D3': 'd',\n '\\uFF44': 'd',\n '\\u1E0B': 'd',\n '\\u010F': 'd',\n '\\u1E0D': 'd',\n '\\u1E11': 'd',\n '\\u1E13': 'd',\n '\\u1E0F': 'd',\n '\\u0111': 'd',\n '\\u018C': 'd',\n '\\u0256': 'd',\n '\\u0257': 'd',\n '\\uA77A': 'd',\n '\\u01F3': 'dz',\n '\\u01C6': 'dz',\n '\\u24D4': 'e',\n '\\uFF45': 'e',\n '\\u00E8': 'e',\n '\\u00E9': 'e',\n '\\u00EA': 'e',\n '\\u1EC1': 'e',\n '\\u1EBF': 'e',\n '\\u1EC5': 'e',\n '\\u1EC3': 'e',\n '\\u1EBD': 'e',\n '\\u0113': 'e',\n '\\u1E15': 'e',\n '\\u1E17': 'e',\n '\\u0115': 'e',\n '\\u0117': 'e',\n '\\u00EB': 'e',\n '\\u1EBB': 'e',\n '\\u011B': 'e',\n '\\u0205': 'e',\n '\\u0207': 'e',\n '\\u1EB9': 'e',\n '\\u1EC7': 'e',\n '\\u0229': 'e',\n '\\u1E1D': 'e',\n '\\u0119': 'e',\n '\\u1E19': 'e',\n '\\u1E1B': 'e',\n '\\u0247': 'e',\n '\\u025B': 'e',\n '\\u01DD': 'e',\n '\\u24D5': 'f',\n '\\uFF46': 'f',\n '\\u1E1F': 'f',\n '\\u0192': 'f',\n '\\uA77C': 'f',\n '\\u24D6': 'g',\n '\\uFF47': 'g',\n '\\u01F5': 'g',\n '\\u011D': 'g',\n '\\u1E21': 'g',\n '\\u011F': 'g',\n '\\u0121': 'g',\n '\\u01E7': 'g',\n '\\u0123': 'g',\n '\\u01E5': 'g',\n '\\u0260': 'g',\n '\\uA7A1': 'g',\n '\\u1D79': 'g',\n '\\uA77F': 'g',\n '\\u24D7': 'h',\n '\\uFF48': 'h',\n '\\u0125': 'h',\n '\\u1E23': 'h',\n '\\u1E27': 'h',\n '\\u021F': 'h',\n '\\u1E25': 'h',\n '\\u1E29': 'h',\n '\\u1E2B': 'h',\n '\\u1E96': 'h',\n '\\u0127': 'h',\n '\\u2C68': 'h',\n '\\u2C76': 'h',\n '\\u0265': 'h',\n '\\u0195': 'hv',\n '\\u24D8': 'i',\n '\\uFF49': 'i',\n '\\u00EC': 'i',\n '\\u00ED': 'i',\n '\\u00EE': 'i',\n '\\u0129': 'i',\n '\\u012B': 'i',\n '\\u012D': 'i',\n '\\u00EF': 'i',\n '\\u1E2F': 'i',\n '\\u1EC9': 'i',\n '\\u01D0': 'i',\n '\\u0209': 'i',\n '\\u020B': 'i',\n '\\u1ECB': 'i',\n '\\u012F': 'i',\n '\\u1E2D': 'i',\n '\\u0268': 'i',\n '\\u0131': 'i',\n '\\u24D9': 'j',\n '\\uFF4A': 'j',\n '\\u0135': 'j',\n '\\u01F0': 'j',\n '\\u0249': 'j',\n '\\u24DA': 'k',\n '\\uFF4B': 'k',\n '\\u1E31': 'k',\n '\\u01E9': 'k',\n '\\u1E33': 'k',\n '\\u0137': 'k',\n '\\u1E35': 'k',\n '\\u0199': 'k',\n '\\u2C6A': 'k',\n '\\uA741': 'k',\n '\\uA743': 'k',\n '\\uA745': 'k',\n '\\uA7A3': 'k',\n '\\u24DB': 'l',\n '\\uFF4C': 'l',\n '\\u0140': 'l',\n '\\u013A': 'l',\n '\\u013E': 'l',\n '\\u1E37': 'l',\n '\\u1E39': 'l',\n '\\u013C': 'l',\n '\\u1E3D': 'l',\n '\\u1E3B': 'l',\n '\\u017F': 'l',\n '\\u0142': 'l',\n '\\u019A': 'l',\n '\\u026B': 'l',\n '\\u2C61': 'l',\n '\\uA749': 'l',\n '\\uA781': 'l',\n '\\uA747': 'l',\n '\\u01C9': 'lj',\n '\\u24DC': 'm',\n '\\uFF4D': 'm',\n '\\u1E3F': 'm',\n '\\u1E41': 'm',\n '\\u1E43': 'm',\n '\\u0271': 'm',\n '\\u026F': 'm',\n '\\u24DD': 'n',\n '\\uFF4E': 'n',\n '\\u01F9': 'n',\n '\\u0144': 'n',\n '\\u00F1': 'n',\n '\\u1E45': 'n',\n '\\u0148': 'n',\n '\\u1E47': 'n',\n '\\u0146': 'n',\n '\\u1E4B': 'n',\n '\\u1E49': 'n',\n '\\u019E': 'n',\n '\\u0272': 'n',\n '\\u0149': 'n',\n '\\uA791': 'n',\n '\\uA7A5': 'n',\n '\\u01CC': 'nj',\n '\\u24DE': 'o',\n '\\uFF4F': 'o',\n '\\u00F2': 'o',\n '\\u00F3': 'o',\n '\\u00F4': 'o',\n '\\u1ED3': 'o',\n '\\u1ED1': 'o',\n '\\u1ED7': 'o',\n '\\u1ED5': 'o',\n '\\u00F5': 'o',\n '\\u1E4D': 'o',\n '\\u022D': 'o',\n '\\u1E4F': 'o',\n '\\u014D': 'o',\n '\\u1E51': 'o',\n '\\u1E53': 'o',\n '\\u014F': 'o',\n '\\u022F': 'o',\n '\\u0231': 'o',\n '\\u00F6': 'o',\n '\\u022B': 'o',\n '\\u1ECF': 'o',\n '\\u0151': 'o',\n '\\u01D2': 'o',\n '\\u020D': 'o',\n '\\u020F': 'o',\n '\\u01A1': 'o',\n '\\u1EDD': 'o',\n '\\u1EDB': 'o',\n '\\u1EE1': 'o',\n '\\u1EDF': 'o',\n '\\u1EE3': 'o',\n '\\u1ECD': 'o',\n '\\u1ED9': 'o',\n '\\u01EB': 'o',\n '\\u01ED': 'o',\n '\\u00F8': 'o',\n '\\u01FF': 'o',\n '\\u0254': 'o',\n '\\uA74B': 'o',\n '\\uA74D': 'o',\n '\\u0275': 'o',\n '\\u01A3': 'oi',\n '\\u0223': 'ou',\n '\\uA74F': 'oo',\n '\\u24DF': 'p',\n '\\uFF50': 'p',\n '\\u1E55': 'p',\n '\\u1E57': 'p',\n '\\u01A5': 'p',\n '\\u1D7D': 'p',\n '\\uA751': 'p',\n '\\uA753': 'p',\n '\\uA755': 'p',\n '\\u24E0': 'q',\n '\\uFF51': 'q',\n '\\u024B': 'q',\n '\\uA757': 'q',\n '\\uA759': 'q',\n '\\u24E1': 'r',\n '\\uFF52': 'r',\n '\\u0155': 'r',\n '\\u1E59': 'r',\n '\\u0159': 'r',\n '\\u0211': 'r',\n '\\u0213': 'r',\n '\\u1E5B': 'r',\n '\\u1E5D': 'r',\n '\\u0157': 'r',\n '\\u1E5F': 'r',\n '\\u024D': 'r',\n '\\u027D': 'r',\n '\\uA75B': 'r',\n '\\uA7A7': 'r',\n '\\uA783': 'r',\n '\\u24E2': 's',\n '\\uFF53': 's',\n '\\u00DF': 's',\n '\\u015B': 's',\n '\\u1E65': 's',\n '\\u015D': 's',\n '\\u1E61': 's',\n '\\u0161': 's',\n '\\u1E67': 's',\n '\\u1E63': 's',\n '\\u1E69': 's',\n '\\u0219': 's',\n '\\u015F': 's',\n '\\u023F': 's',\n '\\uA7A9': 's',\n '\\uA785': 's',\n '\\u1E9B': 's',\n '\\u24E3': 't',\n '\\uFF54': 't',\n '\\u1E6B': 't',\n '\\u1E97': 't',\n '\\u0165': 't',\n '\\u1E6D': 't',\n '\\u021B': 't',\n '\\u0163': 't',\n '\\u1E71': 't',\n '\\u1E6F': 't',\n '\\u0167': 't',\n '\\u01AD': 't',\n '\\u0288': 't',\n '\\u2C66': 't',\n '\\uA787': 't',\n '\\uA729': 'tz',\n '\\u24E4': 'u',\n '\\uFF55': 'u',\n '\\u00F9': 'u',\n '\\u00FA': 'u',\n '\\u00FB': 'u',\n '\\u0169': 'u',\n '\\u1E79': 'u',\n '\\u016B': 'u',\n '\\u1E7B': 'u',\n '\\u016D': 'u',\n '\\u00FC': 'u',\n '\\u01DC': 'u',\n '\\u01D8': 'u',\n '\\u01D6': 'u',\n '\\u01DA': 'u',\n '\\u1EE7': 'u',\n '\\u016F': 'u',\n '\\u0171': 'u',\n '\\u01D4': 'u',\n '\\u0215': 'u',\n '\\u0217': 'u',\n '\\u01B0': 'u',\n '\\u1EEB': 'u',\n '\\u1EE9': 'u',\n '\\u1EEF': 'u',\n '\\u1EED': 'u',\n '\\u1EF1': 'u',\n '\\u1EE5': 'u',\n '\\u1E73': 'u',\n '\\u0173': 'u',\n '\\u1E77': 'u',\n '\\u1E75': 'u',\n '\\u0289': 'u',\n '\\u24E5': 'v',\n '\\uFF56': 'v',\n '\\u1E7D': 'v',\n '\\u1E7F': 'v',\n '\\u028B': 'v',\n '\\uA75F': 'v',\n '\\u028C': 'v',\n '\\uA761': 'vy',\n '\\u24E6': 'w',\n '\\uFF57': 'w',\n '\\u1E81': 'w',\n '\\u1E83': 'w',\n '\\u0175': 'w',\n '\\u1E87': 'w',\n '\\u1E85': 'w',\n '\\u1E98': 'w',\n '\\u1E89': 'w',\n '\\u2C73': 'w',\n '\\u24E7': 'x',\n '\\uFF58': 'x',\n '\\u1E8B': 'x',\n '\\u1E8D': 'x',\n '\\u24E8': 'y',\n '\\uFF59': 'y',\n '\\u1EF3': 'y',\n '\\u00FD': 'y',\n '\\u0177': 'y',\n '\\u1EF9': 'y',\n '\\u0233': 'y',\n '\\u1E8F': 'y',\n '\\u00FF': 'y',\n '\\u1EF7': 'y',\n '\\u1E99': 'y',\n '\\u1EF5': 'y',\n '\\u01B4': 'y',\n '\\u024F': 'y',\n '\\u1EFF': 'y',\n '\\u24E9': 'z',\n '\\uFF5A': 'z',\n '\\u017A': 'z',\n '\\u1E91': 'z',\n '\\u017C': 'z',\n '\\u017E': 'z',\n '\\u1E93': 'z',\n '\\u1E95': 'z',\n '\\u01B6': 'z',\n '\\u0225': 'z',\n '\\u0240': 'z',\n '\\u2C6C': 'z',\n '\\uA763': 'z',\n '\\u0386': '\\u0391',\n '\\u0388': '\\u0395',\n '\\u0389': '\\u0397',\n '\\u038A': '\\u0399',\n '\\u03AA': '\\u0399',\n '\\u038C': '\\u039F',\n '\\u038E': '\\u03A5',\n '\\u03AB': '\\u03A5',\n '\\u038F': '\\u03A9',\n '\\u03AC': '\\u03B1',\n '\\u03AD': '\\u03B5',\n '\\u03AE': '\\u03B7',\n '\\u03AF': '\\u03B9',\n '\\u03CA': '\\u03B9',\n '\\u0390': '\\u03B9',\n '\\u03CC': '\\u03BF',\n '\\u03CD': '\\u03C5',\n '\\u03CB': '\\u03C5',\n '\\u03B0': '\\u03C5',\n '\\u03C9': '\\u03C9',\n '\\u03C2': '\\u03C3'\n};\n\nexport function stripSpecialChars(text: string): string {\n const match = (a: string): string => {\n return diacritics[a] || a;\n };\n return text.replace(/[^\\u0000-\\u007E]/g, match);\n}\n","import { newId } from './id';\nimport { NgSelectComponent } from './ng-select.component';\nimport { NgOption } from './ng-select.types';\nimport * as searchHelper from './search-helper';\nimport { SelectionModel } from './selection-model';\nimport { isDefined, isFunction, isObject } from './value-utils';\n\ntype OptionGroups = Map<string | NgOption, NgOption[]>;\n\nexport class ItemsList {\n private _groups: OptionGroups;\n\n constructor(\n private _ngSelect: NgSelectComponent,\n private _selectionModel: SelectionModel) {\n }\n\n private _items: NgOption[] = [];\n\n get items(): NgOption[] {\n return this._items;\n }\n\n private _filteredItems: NgOption[] = [];\n\n get filteredItems(): NgOption[] {\n return this._filteredItems;\n }\n\n private _markedIndex = -1;\n\n get markedIndex(): number {\n return this._markedIndex;\n }\n\n get selectedItems() {\n return this._selectionModel.value;\n }\n\n get markedItem(): NgOption {\n return this._filteredItems[this._markedIndex];\n }\n\n get noItemsToSelect(): boolean {\n return this._ngSelect.hideSelected && this._items.length === this.selectedItems.length;\n }\n\n get maxItemsSelected(): boolean {\n return this._ngSelect.multiple && this._ngSelect.maxSelectedItems <= this.selectedItems.length;\n }\n\n get lastSelectedItem() {\n let i = this.selectedItems.length - 1;\n for (; i >= 0; i--) {\n let item = this.selectedItems[i];\n if (!item.disabled) {\n return item;\n }\n }\n return null;\n }\n\n setItems(items: any[]) {\n this._items = items.map((item, index) => this.mapItem(item, index));\n if (this._ngSelect.groupBy) {\n this._groups = this._groupBy(this._items, this._ngSelect.groupBy);\n this._items = this._flatten(this._groups);\n } else {\n this._groups = new Map();\n this._groups.set(undefined, this._items)\n }\n this._filteredItems = [...this._items];\n }\n\n select(item: NgOption) {\n if (item.selected || this.maxItemsSelected) {\n return;\n }\n const multiple = this._ngSelect.multiple;\n if (!multiple) {\n this.clearSelected();\n }\n\n this._selectionModel.select(item, multiple, this._ngSelect.selectableGroupAsModel);\n if (this._ngSelect.hideSelected) {\n this._hideSelected(item);\n }\n }\n\n unselect(item: NgOption) {\n if (!item.selected) {\n return;\n }\n this._selectionModel.unselect(item, this._ngSelect.multiple);\n if (this._ngSelect.hideSelected && isDefined(item.index) && this._ngSelect.multiple) {\n this._showSelected(item);\n }\n }\n\n findItem(value: any): NgOption {\n let findBy: (item: NgOption) => boolean;\n if (this._ngSelect.compareWith) {\n findBy = item => this._ngSelect.compareWith(item.value, value)\n } else if (this._ngSelect.bindValue) {\n findBy = item => !item.children && this.resolveNested(item.value, this._ngSelect.bindValue) === value\n } else {\n findBy = item => item.value === value ||\n !item.children && item.label && item.label === this.resolveNested(value, this._ngSelect.bindLabel)\n }\n return this._items.find(item => findBy(item));\n }\n\n addItem(item: any) {\n const option = this.mapItem(item, this._items.length);\n this._items.push(option);\n this._filteredItems.push(option);\n return option;\n }\n\n clearSelected(keepDisabled = false) {\n this._selectionModel.clear(keepDisabled);\n this._items.forEach(item => {\n item.selected = keepDisabled && item.selected && item.disabled;\n item.marked = false;\n });\n if (this._ngSelect.hideSelected) {\n this.resetFilteredItems();\n }\n }\n\n findByLabel(term: string) {\n term = searchHelper.stripSpecialChars(term).toLocaleLowerCase();\n return this.filteredItems.find(item => {\n const label = searchHelper.stripSpecialChars(item.label).toLocaleLowerCase();\n return label.substr(0, term.length) === term;\n });\n }\n\n filter(term: string): void {\n if (!term) {\n this.resetFilteredItems();\n return;\n }\n\n this._filteredItems = [];\n term = this._ngSelect.searchFn ? term : searchHelper.stripSpecialChars(term).toLocaleLowerCase();\n const match = this._ngSelect.searchFn || this._defaultSearchFn;\n const hideSelected = this._ngSelect.hideSelected;\n\n for (const key of Array.from(this._groups.keys())) {\n const matchedItems = [];\n for (const item of this._groups.get(key)) {\n if (hideSelected && (item.parent && item.parent.selected || item.selected)) {\n continue;\n }\n const searchItem = this._ngSelect.searchFn ? item.value : item;\n if (match(term, searchItem)) {\n matchedItems.push(item);\n }\n }\n if (matchedItems.length > 0) {\n const [last] = matchedItems.slice(-1);\n if (last.parent) {\n const head = this._items.find(x => x === last.parent);\n this._filteredItems.push(head);\n }\n this._filteredItems.push(...matchedItems);\n }\n }\n }\n\n resetFilteredItems() {\n if (this._filteredItems.length === this._items.length) {\n return;\n }\n\n if (this._ngSelect.hideSelected && this.selectedItems.length > 0) {\n this._filteredItems = this._items.filter(x => !x.selected);\n } else {\n this._filteredItems = this._items;\n }\n }\n\n unmarkItem() {\n this._markedIndex = -1;\n }\n\n markNextItem() {\n this._stepToItem(+1);\n }\n\n markPreviousItem() {\n this._stepToItem(-1);\n }\n\n markItem(item: NgOption) {\n this._markedIndex = this._filteredItems.indexOf(item);\n }\n\n markSelectedOrDefault(markDefault?: boolean) {\n if (this._filteredItems.length === 0) {\n return;\n }\n\n const lastMarkedIndex = this._getLastMarkedIndex();\n if (lastMarkedIndex > -1) {\n this._markedIndex = lastMarkedIndex;\n } else {\n this._markedIndex = markDefault ? this.filteredItems.findIndex(x => !x.disabled) : -1;\n }\n }\n\n resolveNested(option: any, key: string): any {\n if (!isObject(option)) {\n return option;\n }\n if (key.indexOf('.') === -1) {\n return option[key];\n } else {\n let keys: string[] = key.split('.');\n let value = option;\n for (let i = 0, len = keys.length; i < len; ++i) {\n if (value == null) {\n return null;\n }\n value = value[keys[i]];\n }\n return value;\n }\n }\n\n mapItem(item: any, index: number): NgOption {\n const label = isDefined(item.$ngOptionLabel) ? item.$ngOptionLabel : this.resolveNested(item, this._ngSelect.bindLabel);\n const value = isDefined(item.$ngOptionValue) ? item.$ngOptionValue : item;\n return {\n index: index,\n label: isDefined(label) ? label.toString() : '',\n value: value,\n disabled: item.disabled,\n htmlId: `${this._ngSelect.dropdownId}-${index}`,\n };\n }\n\n mapSelectedItems() {\n const multiple = this._ngSelect.multiple;\n for (const selected of this.selectedItems) {\n const value = this._ngSelect.bindValue ? this.resolveNested(selected.value, this._ngSelect.bindValue) : selected.value;\n const item = isDefined(value) ? this.findItem(value) : null;\n this._selectionModel.unselect(selected, multiple);\n this._selectionModel.select(item || selected, multiple, this._ngSelect.selectableGroupAsModel);\n }\n\n if (this._ngSelect.hideSelected) {\n this._filteredItems = this.filteredItems.filter(x => this.selectedItems.indexOf(x) === -1);\n }\n }\n\n private _showSelected(item: NgOption) {\n this._filteredItems.push(item);\n if (item.parent) {\n const parent = item.parent;\n const parentExists = this._filteredItems.find(x => x === parent);\n if (!parentExists) {\n this._filteredItems.push(parent);\n }\n } else if (item.children) {\n for (const child of item.children) {\n child.selected = false;\n this._filteredItems.push(child);\n }\n }\n this._filteredItems = [...this._filteredItems.sort((a, b) => (a.index - b.index))];\n }\n\n private _hideSelected(item: NgOption) {\n this._filteredItems = this._filteredItems.filter(x => x !== item);\n if (item.parent) {\n const children = item.parent.children;\n if (children.every(x => x.selected)) {\n this._filteredItems = this._filteredItems.filter(x => x !== item.parent);\n }\n } else if (item.children) {\n this._filteredItems = this.filteredItems.filter(x => x.parent !== item);\n }\n }\n\n private _defaultSearchFn(search: string, opt: NgOption) {\n const label = searchHelper.stripSpecialChars(opt.label).toLocaleLowerCase();\n return label.indexOf(search) > -1\n }\n\n private _getNextItemIndex(steps: number) {\n if (steps > 0) {\n return (this._markedIndex === this._filteredItems.length - 1) ? 0 : (this._markedIndex + 1);\n }\n return (this._markedIndex <= 0) ? (this._filteredItems.length - 1) : (this._markedIndex - 1);\n }\n\n private _stepToItem(steps: number) {\n if (this._filteredItems.length === 0 || this._filteredItems.every(x => x.disabled)) {\n return;\n }\n\n this._markedIndex = this._getNextItemIndex(steps);\n if (this.markedItem.disabled) {\n this._stepToItem(steps);\n }\n }\n\n private _getLastMarkedIndex() {\n if (this._ngSelect.hideSelected) {\n return -1;\n }\n\n if (this._markedIndex > -1 && this.markedItem === undefined) {\n return -1;\n }\n\n const selectedIndex = this._filteredItems.indexOf(this.lastSelectedItem);\n if (this.lastSelectedItem && selectedIndex < 0) {\n return -1;\n }\n\n return Math.max(this.markedIndex, selectedIndex);\n }\n\n private _groupBy(items: NgOption[], prop: string | Function): OptionGroups {\n const groups = new Map<string | NgOption, NgOption[]>();\n if (items.length === 0) {\n return groups;\n }\n\n // Check if items are already grouped by given key.\n if (Array.isArray(items[0].value[<string>prop])) {\n for (const item of items) {\n const children = (item.value[<string>prop] || []).map((x, index) => this.mapItem(x, index));\n groups.set(item, children);\n }\n return groups;\n }\n\n const isFnKey = isFunction(this._ngSelect.groupBy);\n const keyFn = (item: NgOption) => {\n let key = isFnKey ? (<Function>prop)(item.value) : item.value[<string>prop];\n return isDefined(key) ? key : undefined;\n };\n\n // Group items by key.\n for (const item of items) {\n let key = keyFn(item);\n const group = groups.get(key);\n if (group) {\n group.push(item);\n } else {\n groups.set(key, [item]);\n }\n }\n return groups;\n }\n\n private _flatten(groups: OptionGroups) {\n const isGroupByFn = isFunction(this._ngSelect.groupBy);\n const items = [];\n for (const key of Array.from(groups.keys())) {\n let i = items.length;\n if (key === undefined) {\n const withoutGroup = groups.get(undefined) || [];\n items.push(...withoutGroup.map(x => ({ ...x, index: i++ })));\n continue;\n }\n\n const isObjectKey = isObject(key);\n const parent: NgOption = {\n label: isObjectKey ? '' : String(key),\n children: undefined,\n parent: null,\n index: i++,\n disabled: !this._ngSelect.selectableGroup,\n htmlId: newId(),\n };\n const groupKey = isGroupByFn ? this._ngSelect.bindLabel : <string>this._ngSelect.groupBy;\n const groupValue = this._ngSelect.groupValue || (() => {\n if (isObjectKey) {\n return (<NgOption>key).value;\n }\n return { [groupKey]: key };\n });\n const children = groups.get(key).map(x => {\n x.parent = parent;\n x.children = undefined;\n x.index = i++;\n return x;\n });\n parent.children = children;\n parent.value = groupValue(key, children.map(x => x.value));\n items.push(parent);\n items.push(...children);\n }\n return items;\n }\n}\n","export interface NgOption {\n [name: string]: any;\n index?: number;\n htmlId?: string;\n selected?: boolean;\n disabled?: boolean;\n marked?: boolean;\n label?: string;\n value?: string | Object;\n parent?: NgOption;\n children?: NgOption[];\n}\n\nexport enum KeyCode {\n Tab = 9,\n Enter = 13,\n Esc = 27,\n Space = 32,\n ArrowUp = 38,\n ArrowDown = 40,\n Backspace = 8\n}\n","export interface ItemsRangeResult {\n scrollHeight: number;\n topPadding: number;\n start: number;\n end: number;\n}\n\nexport interface PanelDimensions {\n itemHeight: number;\n panelHeight: number;\n itemsPerViewport: number;\n}\n\nexport class NgDropdownPanelService {\n\n private _dimensions: PanelDimensions = {\n itemHeight: 0,\n panelHeight: 0,\n itemsPerViewport: 0\n };\n\n get dimensions() {\n return this._dimensions;\n }\n\n calculateItems(scrollPos: number, itemsLength: number, buffer: number): ItemsRangeResult {\n const d = this._dimensions;\n const scrollHeight = d.itemHeight * itemsLength;\n\n const scrollTop = Math.max(0, scrollPos);\n const indexByScrollTop = scrollTop / scrollHeight * itemsLength;\n let end = Math.min(itemsLength, Math.ceil(indexByScrollTop) + (d.itemsPerViewport + 1));\n\n const maxStartEnd = end;\n const maxStart = Math.max(0, maxStartEnd - d.itemsPerViewport);\n let start = Math.min(maxStart, Math.floor(indexByScrollTop));\n\n let topPadding = d.itemHeight * Math.ceil(start) - (d.itemHeight * Math.min(start, buffer));\n topPadding = !isNaN(topPadding) ? topPadding : 0;\n start = !isNaN(start) ? start : -1;\n end = !isNaN(end) ? end : -1;\n start -= buffer;\n start = Math.max(0, start);\n end += buffer;\n end = Math.min(itemsLength, end);\n\n return {\n topPadding,\n scrollHeight,\n start,\n end\n }\n }\n\n setDimensions(itemHeight: number, panelHeight: number) {\n const itemsPerViewport = Math.max(1, Math.floor(panelHeight / itemHeight));\n this._dimensions = {\n itemHeight,\n panelHeight,\n itemsPerViewport\n };\n }\n\n getScrollTo(itemTop: number, itemHeight: number, lastScroll: number) {\n const { panelHeight } = this.dimensions;\n const itemBottom = itemTop + itemHeight;\n const top = lastScroll;\n const bottom = top + panelHeight;\n\n if (panelHeight >= itemBottom && lastScroll === itemTop) {\n return null;\n }\n\n if (itemBottom > bottom) {\n return top + itemBottom - bottom;\n } else if (itemTop <= top) {\n return itemTop;\n }\n\n return null;\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Inject,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { animationFrameScheduler, asapScheduler, fromEvent, merge, Subject } from 'rxjs';\nimport { auditTime, takeUntil } from 'rxjs/operators';\nimport { NgDropdownPanelService, PanelDimensions } from './ng-dropdown-panel.service';\n\nimport { DropdownPosition } from './ng-select.component';\nimport { NgOption } from './ng-select.types';\nimport { isDefined } from './value-utils';\n\nconst TOP_CSS_CLASS = 'ng-select-top';\nconst BOTTOM_CSS_CLASS = 'ng-select-bottom';\nconst SCROLL_SCHEDULER = typeof requestAnimationFrame !== 'undefined' ? animationFrameScheduler : asapScheduler;\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n selector: 'ng-dropdown-panel',\n template: `\n <div *ngIf=\"headerTemplate\" class=\"ng-dropdown-header\">\n <ng-container [ngTemplateOutlet]=\"headerTemplate\" [ngTemplateOutletContext]=\"{ searchTerm: filterValue }\"></ng-container>\n </div>\n <div #scroll class=\"ng-dropdown-panel-items scroll-host\">\n <div #padding [class.total-padding]=\"virtualScroll\"></div>\n <div #content [class.scrollable-content]=\"virtualScroll && items.length\">\n <ng-content></ng-content>\n </div>\n </div>\n <div *ngIf=\"footerTemplate\" class=\"ng-dropdown-footer\">\n <ng-container [ngTemplateOutlet]=\"footerTemplate\" [ngTemplateOutletContext]=\"{ searchTerm: filterValue }\"></ng-container>\n </div>\n `\n})\nexport class NgDropdownPanelComponent implements OnInit, OnChanges, OnDestroy {\n\n @Input() items: NgOption[] = [];\n @Input() markedItem: NgOption;\n @Input() position: DropdownPosition = 'auto';\n @Input() appendTo: string;\n @Input() bufferAmount;\n @Input() virtualScroll = false;\n @Input() headerTemplate: TemplateRef<any>;\n @Input() footerTemplate: TemplateRef<any>;\n @Input() filterValue: string = null;\n\n @Output() update = new EventEmitter<any[]>();\n @Output() scroll = new EventEmitter<{ start: number; end: number }>();\n @Output() scrollToEnd = new EventEmitter<void>();\n @Output() outsideClick = new EventEmitter<void>();\n\n @ViewChild('content', { read: ElementRef, static: true }) contentElementRef: ElementRef;\n @ViewChild('scroll', { read: ElementRef, static: true }) scrollElementRef: ElementRef;\n @ViewChild('padding', { read: ElementRef, static: true }) paddingElementRef: ElementRef;\n\n private readonly _destroy$ = new Subject<void>();\n private readonly _dropdown: HTMLElement;\n private _virtualPadding: HTMLElement;\n private _scrollablePanel: HTMLElement;\n private _contentPanel: HTMLElement;\n private _select: HTMLElement;\n private _parent: HTMLElement;\n private _scrollToEndFired = false;\n private _updateScrollHeight = false;\n private _lastScrollPosition = 0;\n\n constructor(\n private _renderer: Renderer2,\n private _zone: NgZone,\n private _panelService: NgDropdownPanelService,\n _elementRef: ElementRef,\n @Optional() @Inject(DOCUMENT) private _document: any\n ) {\n this._dropdown = _elementRef.nativeElement;\n }\n\n private _currentPosition: DropdownPosition;\n\n get currentPosition(): DropdownPosition {\n return this._currentPosition;\n }\n\n private _itemsLength: number;\n\n private get itemsLength() {\n return this._itemsLength;\n }\n\n private set itemsLength(value: number) {\n if (value !== this._itemsLength) {\n this._itemsLength = value;\n this._onItemsLengthChanged();\n }\n }\n\n private get _startOffset() {\n if (this.markedItem) {\n const { itemHeight, panelHeight } = this._panelService.dimensions;\n const offset = this.markedItem.index * itemHeight;\n return panelHeight > offset ? 0 : offset;\n }\n return 0;\n }\n\n @HostListener('mousedown', ['$event'])\n handleMousedown($event: MouseEvent) {\n const target = $event.target as HTMLElement;\n if (target.tagName === 'INPUT') {\n return;\n }\n $event.preventDefault();\n }\n\n ngOnInit() {\n this._select = this._dropdown.parentElement;\n this._virtualPadding = this.paddingElementRef.nativeElement;\n this._scrollablePanel = this.scrollElementRef.nativeElement;\n this._contentPanel = this.contentElementRef.nativeElement;\n this._handleScroll();\n this._handleOutsideClick();\n this._appendDropdown();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.items) {\n const change = changes.items;\n this._onItemsChange(change.currentValue, change.firstChange);\n }\n }\n\n ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n this._destroy$.unsubscribe();\n if (this.appendTo) {\n this._renderer.removeChild(this._dropdown.parentNode, this._dropdown);\n }\n }\n\n scrollTo(option: NgOption, startFromOption = false) {\n if (!option) {\n return;\n }\n\n const index = this.items.indexOf(option);\n if (index < 0 || index >= this.itemsLength) {\n return;\n }\n\n let scrollTo;\n if (this.virtualScroll) {\n const itemHeight = this._panelService.dimensions.itemHeight;\n scrollTo = this._panelService.getScrollTo(index * itemHeight, itemHeight, this._lastScrollPosition);\n } else {\n const item: HTMLElement = this._dropdown.querySelector(`#${option.htmlId}`);\n const lastScroll = startFromOption ? item.offsetTop : this._lastScrollPosition;\n scrollTo = this._panelService.getScrollTo(item.offsetTop, item.clientHeight, lastScroll);\n }\n\n if (isDefined(scrollTo)) {\n this._scrollablePanel.scrollTop = scrollTo;\n }\n }\n\n scrollToTag() {\n const panel = this._scrollablePanel;\n panel.scrollTop = panel.scrollHeight - panel.clientHeight;\n }\n\n adjustPosition() {\n const parent = this._parent.getBoundingClientRect();\n const select = this._select.getBoundingClientRect();\n this._setOffset(parent, select);\n }\n\n private _handleDropdownPosition() {\n this._currentPosition = this._calculateCurrentPosition(this._dropdown);\n if (this._currentPosition === 'top') {\n this._renderer.addClass(this._dropdown, TOP_CSS_CLASS);\n this._renderer.removeClass(this._dropdown, BOTTOM_CSS_CLASS);\n this._renderer.addClass(this._select, TOP_CSS_CLASS);\n this._renderer.removeClass(this._select, BOTTOM_CSS_CLASS)\n } else {\n this._renderer.addClass(this._dropdown, BOTTOM_CSS_CLASS);\n this._renderer.removeClass(this._dropdown, TOP_CSS_CLASS);\n this._renderer.addClass(this._select, BOTTOM_CSS_CLASS);\n this._renderer.removeClass(this._select, TOP_CSS_CLASS);\n }\n\n if (this.appendTo) {\n this._updatePosition();\n }\n\n this._dropdown.style.opacity = '1';\n }\n\n private _handleScroll() {\n this._zone.runOutsideAngular(() => {\n fromEvent(this.scrollElementRef.nativeElement, 'scroll')\n .pipe(takeUntil(this._destroy$), auditTime(0, SCROLL_SCHEDULER))\n .subscribe((e: { target: HTMLElement }) => this._onContentScrolled(e.target.scrollTop));\n });\n }\n\n private _handleOutsideClick() {\n if (!this._document) {\n return;\n }\n\n this._zone.runOutsideAngular(() => {\n merge(\n fromEvent(this._document, 'touchstart', { capture: true }),\n fromEvent(this._document, 'mousedown', { capture: true })\n ).pipe(takeUntil(this._destroy$))\n .subscribe($event => this._checkToClose($event));\n });\n }\n\n private _checkToClose($event: any) {\n if (this._select.contains($event.target) || this._dropdown.contains($event.target)) {\n return;\n }\n\n const path = $event.path || ($event.composedPath && $event.composedPath());\n if ($event.target && $event.target.shadowRoot && path && path[0] && this._select.contains(path[0])) {\n return;\n }\n\n this._zone.run(() => this.outsideClick.emit());\n }\n\n private _onItemsChange(items: NgOption[], firstChange: boolean) {\n this.items = items || [];\n this._scrollToEndFired = false;\n this.itemsLength = items.length;\n\n if (this.virtualScroll) {\n this._updateItemsRange(firstChange);\n } else {\n this._updateItems(firstChange);\n }\n }\n\n private _updateItems(firstChange: boolean) {\n this.update.emit(this.items);\n if (firstChange === false) {\n return;\n }\n\n this._zone.runOutsideAngular(() => {\n Promise.resolve().then(() => {\n const panelHeight = this._scrollablePanel.clientHeight;\n this._panelService.setDimensions(0, panelHeight);\n this._handleDropdownPosition();\n this.scrollTo(this.markedItem, firstChange);\n });\n });\n }\n\n private _updateItemsRange(firstChange: boolean) {\n this._zone.runOutsideAngular(() => {\n this._measureDimensions().then(() => {\n if (firstChange) {\n this._renderItemsRange(this._startOffset);\n this._handleDropdownPosition();\n } else {\n this._renderItemsRange();\n }\n });\n });\n }\n\n private _onContentScrolled(scrollTop: number) {\n if (this.virtualScroll) {\n this._renderItemsRange(scrollTop);\n }\n this._lastScrollPosition = scrollTop;\n this._fireScrollToEnd(scrollTop);\n }\n\n private _updateVirtualHeight(height: number) {\n if (this._updateScrollHeight) {\n this._virtualPadding.style.height = `${height}px`;\n this._updateScrollHeight = false;\n }\n }\n\n private _onItemsLengthChanged() {\n this._updateScrollHeight = true;\n }\n\n private _renderItemsRange(scrollTop = null) {\n if (scrollTop && this._lastScrollPosition === scrollTop) {\n return;\n }\n\n scrollTop = scrollTop || this._scrollablePanel.scrollTop;\n const range = this._panelService.calculateItems(scrollTop, this.itemsLength, this.bufferAmount);\n this._updateVirtualHeight(range.scrollHeight);\n this._contentPanel.style.transform = `translateY(${range.topPadding}px)`;\n\n this._zone.run(() => {\n this.update.emit(this.items.slice(range.start, range.end));\n this.scroll.emit({ start: range.start, end: range.end });\n });\n\n if (isDefined(scrollTop) && this._lastScrollPosition === 0) {\n this._scrollablePanel.scrollTop = scrollTop;\n this._lastScrollPosition = scrollTop;\n }\n }\n\n private _measureDimensions(): Promise<PanelDimensions> {\n if (this._panelService.dimensions.itemHeight > 0 || this.itemsLength === 0) {\n return Promise.resolve(this._panelService.dimensions);\n }\n\n const [first] = this.items;\n this.update.emit([first]);\n\n return Promise.resolve().then(() => {\n const option = this._dropdown.querySelector(`#${first.htmlId}`);\n const optionHeight = option.clientHeight;\n this._virtualPadding.style.height = `${optionHeight * this.itemsLength}px`;\n const panelHeight = this._scrollablePanel.clientHeight;\n this._panelService.setDimensions(optionHeight, panelHeight);\n\n return this._panelService.dimensions;\n });\n }\n\n private _fireScrollToEnd(scrollTop: number) {\n if (this._scrollToEndFired || scrollTop === 0) {\n return;\n }\n\n const padding = this.virtualScroll ?\n this._virtualPadding :\n this._contentPanel;\n\n if (scrollTop + this._dropdown.clientHeight >= padding.clientHeight) {\n this._zone.run(() => this.scrollToEnd.emit());\n this._scrollToEndFired = true;\n }\n }\n\n private _calculateCurrentPosition(dropdownEl: HTMLElement) {\n if (this.position !== 'auto') {\n return this.position;\n }\n const selectRect: ClientRect = this._select.getBoundingClientRect();\n const scrollTop = document.documentElement.scrollTop || document.body.scrollTop;\n const offsetTop = selectRect.top + window.pageYOffset;\n const height = selectRect.height;\n const dropdownHeight = dropdownEl.getBoundingClientRect().height;\n if (offsetTop + height + dropdownHeight > scrollTop + document.documentElement.clientHeight) {\n return 'top';\n } else {\n return 'bottom';\n }\n }\n\n private _appendDropdown() {\n if (!this.appendTo) {\n return;\n }\n\n this._parent = document.querySelector(this.appendTo);\n if (!parent) {\n throw new Error(`appendTo selector ${this.appendTo} did not found any parent element`);\n }\n this._parent.appendChild(this._dropdown);\n }\n\n private _updatePosition() {\n const select = this._select.getBoundingClientRect();\n const parent = this._parent.getBoundingClientRect();\n const offsetLeft = select.left - parent.left;\n\n this._setOffset(parent, select);\n\n this._dropdown.style.left = offsetLeft + 'px';\n this._dropdown.style.width = select.width + 'px';\n this._dropdown.style.minWidth = select.width + 'px';\n }\n\n private _setOffset(parent: ClientRect, select: ClientRect) {\n const delta = select.height;\n\n if (this._currentPosition === 'top') {\n const offsetBottom = parent.bottom - select.bottom;\n this._dropdown.style.bottom = offsetBottom + delta + 'px';\n this._dropdown.style.top = 'auto';\n } else if (this._currentPosition === 'bottom') {\n const offsetTop = select.top - parent.top;\n this._dropdown.style.top = offsetTop + delta + 'px';\n this._dropdown.style.bottom = 'auto';\n }\n }\n}\n","import {\n AfterViewChecked,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'ng-option',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<ng-content></ng-content>`\n})\nexport class NgOptionComponent implements OnChanges, AfterViewChecked, OnDestroy {\n\n @Input() value: any;\n @Input()\n get disabled() { return this._disabled; }\n set disabled(value: any) { this._disabled = this._isDisabled(value) }\n\n readonly stateChange$ = new Subject<{ value: any, disabled: boolean, label?: string }>();\n\n private _disabled = false;\n private _previousLabel: string;\n\n constructor(public elementRef: ElementRef<HTMLElement>) { }\n\n get label(): string {\n return (this.elementRef.nativeElement.textContent || '').trim();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.disabled) {\n this.stateChange$.next({\n value: this.value,\n disabled: this._disabled\n });\n }\n }\n\n ngAfterViewChecked() {\n if (this.label !== this._previousLabel) {\n this._previousLabel = this.label;\n this.stateChange$.next({\n value: this.value,\n disabled: this._disabled,\n label: this.elementRef.nativeElement.innerHTML\n });\n }\n }\n\n ngOnDestroy() {\n this.stateChange$.complete();\n }\n\n private _isDisabled(value) {\n return value != null && `${value}` !== 'false';\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class NgSelectConfig {\n placeholder: string;\n notFoundText = 'No items found';\n typeToSearchText = 'Type to search';\n addTagText = 'Add item';\n loadingText = 'Loading...';\n clearAllText = 'Clear all';\n disableVirtualScroll = true;\n openOnEnter = true;\n appendTo: string;\n bindValue: string;\n appearance = 'underline';\n}\n","import {\n Component,\n OnDestroy,\n OnChanges,\n AfterViewInit,\n forwardRef,\n ChangeDetectorRef,\n Input,\n Output,\n EventEmitter,\n ContentChild,\n TemplateRef,\n ViewEncapsulation,\n HostListener,\n HostBinding,\n ViewChild,\n ElementRef,\n ChangeDetectionStrategy,\n Inject,\n SimpleChanges,\n ContentChildren,\n QueryList,\n InjectionToken,\n Attribute\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { takeUntil, startWith, tap, debounceTime, map, filter } from 'rxjs/operators';\nimport { Subject, merge } from 'rxjs';\n\nimport {\n NgOptionTemplateDirective,\n NgLabelTemplateDirective,\n NgHeaderTemplateDirective,\n NgFooterTemplateDirective,\n NgOptgroupTemplateDirective,\n NgNotFoundTemplateDirective,\n NgTypeToSearchTemplateDirective,\n NgLoadingTextTemplateDirective,\n NgMultiLabelTemplateDirective,\n NgTagTemplateDirective,\n NgLoadingSpinnerTemplateDirective\n} from './ng-templates.directive';\n\nimport { ConsoleService } from './console.service';\nimport { isDefined, isFunction, isPromise, isObject } from './value-utils';\nimport { ItemsList } from './items-list';\nimport { NgOption, KeyCode } from './ng-select.types';\nimport { newId } from './id';\nimport { NgDropdownPanelComponent } from './ng-dropdown-panel.component';\nimport { NgOptionComponent } from './ng-option.component';\nimport { SelectionModelFactory } from './selection-model';\nimport { NgSelectConfig } from './config.service';\nimport { NgDropdownPanelService } from './ng-dropdown-panel.service';\n\nexport const SELECTION_MODEL_FACTORY = new InjectionToken<SelectionModelFactory>('ng-select-selection-model');\nexport type DropdownPosition = 'bottom' | 'top' | 'auto';\nexport type AddTagFn = ((term: string) => any | Promise<any>);\nexport type CompareWithFn = (a: any, b: any) => boolean;\nexport type GroupValueFn = (key: string | object, children: any[]) => string | object;\n\n@Component({\n selector: 'ng-select',\n templateUrl: './ng-select.component.html',\n styleUrls: ['./ng-select.component.scss'],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgSelectComponent),\n multi: true\n }, NgDropdownPanelService],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'role': 'listbox',\n '[class.ng-select]': 'useDefaultClass',\n '[class.ng-select-single]': '!multiple',\n }\n})\nexport class NgSelectComponent implements OnDestroy, OnChanges, AfterViewInit, ControlValueAccessor {\n\n @Input() bindLabel: string;\n @Input() bindValue: string;\n @Input() markFirst = true;\n @Input() placeholder: string;\n @Input() notFoundText: string;\n @Input() typeToSearchText: string;\n @Input() addTagText: string;\n @Input() loadingText: string;\n @Input() clearAllText: string;\n @Input() appearance: string;\n @Input() dropdownPosition: DropdownPosition = 'auto';\n @Input() appendTo: string;\n @Input() loading = false;\n @Input() closeOnSelect = true;\n @Input() hideSelected = false;\n @Input() selectOnTab = false;\n @Input() openOnEnter: boolean;\n @Input() maxSelectedItems: number;\n @Input() groupBy: string | Function;\n @Input() groupValue: GroupValueFn;\n @Input() bufferAmount = 4;\n @Input() virtualScroll: boolean;\n @Input() selectableGroup = false;\n @Input() selectableGroupAsModel = true;\n @Input() searchFn = null;\n @Input() trackByFn = null;\n @Input() clearOnBackspace = true;\n @Input() labelForId = null;\n @Input() inputAttrs: { [key: string]: string } = {};\n @Input() tabIndex: number;\n @Input() readonly = false;\n @Input() searchWhileComposing = true;\n @Input() minTermLength = 0;\n @Input() editableSearchTerm = false;\n @Input() keyDownFn = (_: KeyboardEvent) => true;\n\n @Input() @HostBinding('class.ng-select-typeahead') typeahead: Subject<string>;\n @Input() @HostBinding('class.ng-select-multiple') multiple = false;\n @Input() @HostBinding('class.ng-select-taggable') addTag: boolean | AddTagFn = false;\n @Input() @HostBinding('class.ng-select-searchable') searchable = true;\n @Input() @HostBinding('class.ng-select-clearable') clearable = true;\n @Input() @HostBinding('class.ng-select-opened') isOpen = false;\n\n @Input()\n get items() { return this._items };\n\n set items(value: any[]) {\n this._itemsAreUsed = true;\n this._items = value;\n };\n\n @Input()\n get compareWith() { return this._compareWith; }\n\n set compareWith(fn: CompareWithFn) {\n if (!isFunction(fn)) {\n throw Error('`compareWith` must be a function.');\n }\n this._compareWith = fn;\n }\n\n @Input()\n get clearSearchOnAdd() { return isDefined(this._clearSearchOnAdd) ? this._clearSearchOnAdd : this.closeOnSelect; };\n\n set clearSearchOnAdd(value) {\n this._clearSearchOnAdd = value;\n };\n\n // output events\n @Output('blur') blurEvent = new EventEmitter();\n @Output('focus') focusEvent = new EventEmitter();\n @Output('change') changeEvent = new EventEmitter();\n @Output('open') openEvent = new EventEmitter();\n @Output('close') closeEvent = new EventEmitter();\n @Output('search') searchEvent = new EventEmitter<{ term: string, items: any[] }>();\n @Output('clear') clearEvent = new EventEmitter();\n @Output('add') addEvent = new EventEmitter();\n @Output('remove') removeEvent = new EventEmitter();\n @Output('scroll') scroll = new EventEmitter<{ start: number; end: number }>();\n @Output('scrollToEnd') scrollToEnd = new EventEmitter();\n\n // custom templates\n @ContentChild(NgOptionTemplateDirective, { read: TemplateRef, static: false }) optionTemplate: TemplateRef<any>;\n @ContentChild(NgOptgroupTemplateDirective, { read: TemplateRef, static: false }) optgroupTemplate: TemplateRef<any>;\n @ContentChild(NgLabelTemplateDirective, { read: TemplateRef, static: false }) labelTemplate: TemplateRef<any>;\n @ContentChild(NgMultiLabelTemplateDirective, { read: TemplateRef, static: false }) multiLabelTemplate: TemplateRef<any>;\n @ContentChild(NgHeaderTemplateDirective, { read: TemplateRef, static: false }) headerTemplate: TemplateRef<any>;\n @ContentChild(NgFooterTemplateDirective, { read: TemplateRef, static: false }) footerTemplate: TemplateRef<any>;\n @ContentChild(NgNotFoundTemplateDirective, { read: TemplateRef, static: false }) notFoundTemplate: TemplateRef<any>;\n @ContentChild(NgTypeToSearchTemplateDirective, { read: TemplateRef, static: false }) typeToSearchTemplate: TemplateRef<any>;\n @ContentChild(NgLoadingTextTemplateDirective, { read: TemplateRef, static: false }) loadingTextTemplate: TemplateRef<any>;\n @ContentChild(NgTagTemplateDirective, { read: TemplateRef, static: false }) tagTemplate: TemplateRef<any>;\n @ContentChild(NgLoadingSpinnerTemplateDirective, { read: TemplateRef, static: false }) loadingSpinnerTemplate: TemplateRef<any>;\n\n @ViewChild(forwardRef(() => NgDropdownPanelComponent), { static: false }) dropdownPanel: NgDropdownPanelComponent;\n @ViewChild('searchInput', { static: true }) searchInput: ElementRef<HTMLInputElement>;\n @ContentChildren(NgOptionComponent, { descendants: true }) ngOptions: QueryList<NgOptionComponent>;\n\n @HostBinding('class.ng-select-disabled') get disabled() { return this.readonly || this._disabled };\n\n @HostBinding('class.ng-select-filtered') get filtered() { return (!!this.searchTerm && this.searchable || this._isComposing) };\n\n itemsList: ItemsList;\n viewPortItems: NgOption[] = [];\n searchTerm: string = null;\n dropdownId = newId();\n element: HTMLElement;\n focused: boolean;\n escapeHTML = true;\n useDefaultClass = true;\n\n private _items = [];\n private _itemsAreUsed: boolean;\n private _defaultLabel = 'label';\n private _primitive;\n private _manualOpen: boolean;\n private _disabled: boolean;\n private _pressedKeys: string[] = [];\n private _compareWith: CompareWithFn;\n private _clearSearchOnAdd: boolean;\n private _isComposing = false;\n private get _editableSearchTerm(): boolean {\n return this.editableSearchTerm && !this.multiple;\n }\n\n private readonly _destroy$ = new Subject<void>();\n private readonly _keyPress$ = new Subject<string>();\n private _onChange = (_: any) => { };\n private _onTouched = () => { };\n\n clearItem = (item: any) => {\n const option = this.selectedItems.find(x => x.value === item);\n this.unselect(option);\n };\n\n constructor(\n @Attribute('class') public classes: string,\n @Attribute('autofocus') private autoFocus: any,\n config: NgSelectConfig,\n @Inject(SELECTION_MODEL_FACTORY) newSelectionModel: SelectionModelFactory,\n _elementRef: ElementRef<HTMLElement>,\n private _cd: ChangeDetectorRef,\n private _console: ConsoleService\n ) {\n this._mergeGlobalConfig(config);\n this.itemsList = new ItemsList(this, newSelectionModel());\n this.element = _elementRef.nativeElement;\n }\n\n get selectedItems(): NgOption[] {\n return this.itemsList.selectedItems;\n }\n\n get selectedValues() {\n return this.selectedItems.map(x => x.value);\n }\n\n get hasValue() {\n return this.selectedItems.length > 0;\n }\n\n get currentPanelPosition(): DropdownPosition {\n if (this.dropdownPanel) {\n return this.dropdownPanel.currentPosition;\n }\n return undefined;\n }\n\n ngOnInit() {\n this._handleKeyPresses();\n this._setInputAttributes();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.multiple) {\n this.itemsList.clearSelected();\n }\n if (changes.items) {\n this._setItems(changes.items.currentValue || []);\n }\n if (changes.isOpen) {\n this._manualOpen = isDefined(changes.isOpen.currentValue);\n }\n }\n\n ngAfterViewInit() {\n if (!this._itemsAreUsed) {\n this.escapeHTML = false;\n this._setItemsFromNgOptions();\n }\n\n if (isDefined(this.autoFocus)) {\n this.focus();\n }\n }\n\n ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n @HostListener('keydown', ['$event'])\n handleKeyDown($event: KeyboardEvent) {\n const keyCode = KeyCode[$event.which];\n if (keyCode) {\n if (this.keyDownFn($event) === false) {\n return;\n }\n this.handleKeyCode($event)\n } else if ($event.key && $event.key.length === 1) {\n this._keyPress$.next($event.key.toLocaleLowerCase());\n }\n }\n\n handleKeyCode($event: KeyboardEvent) {\n switch ($event.which) {\n case KeyCode.ArrowDown:\n this._handleArrowDown($event);\n break;\n case KeyCode.ArrowUp:\n this._handleArrowUp($event);\n break;\n case KeyCode.Space:\n this._handleSpace($event);\n break;\n case KeyCode.Enter:\n this._handleEnter($event);\n break;\n case KeyCode.Tab:\n this._handleTab($event);\n break;\n case KeyCode.Esc:\n this.close();\n $event.preventDefault();\n break;\n case KeyCode.Backspace:\n this._handleBackspace();\n break\n }\n }\n\n handleMousedown($event: MouseEvent) {\n const target = $event.target as HTMLElement;\n if (target.tagName !== 'INPUT') {\n $event.preventDefault();\n }\n\n if (target.classList.contains('ng-clear-wrapper')) {\n this.handleClearClick();\n return;\n }\n\n if (target.classList.contains('ng-arrow-wrapper')) {\n this.handleArrowClick();\n return;\n }\n\n if (target.classList.contains('ng-value-icon')) {\n return;\n }\n\n if (!this.focused) {\n this.focus();\n }\n\n if (this.searchable) {\n this.open();\n } else {\n this.toggle();\n }\n }\n\n handleArrowClick() {\n if (this.isOpen) {\n this.close();\n } else {\n this.open();\n }\n }\n\n handleClearClick() {\n if (this.hasValue) {\n this.itemsList.clearSelected(true);\n this._updateNgModel();\n }\n this._clearSearch();\n this.focus();\n this.clearEvent.emit();\n\n this._onSelectionChanged();\n }\n\n clearModel() {\n if (!this.clearable) {\n return;\n }\n this.itemsList.clearSelected();\n this._updateNgModel();\n }\n\n writeValue(value: any | any[]): void {\n this.itemsList.clearSelected();\n this._handleWriteValue(value);\n this._cd.markForCheck();\n }\n\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n setDisabledState(state: boolean): void {\n this._disabled = state;\n this._cd.markForCheck();\n }\n\n toggle() {\n if (!this.isOpen) {\n this.open();\n } else {\n this.close();\n }\n }\n\n open() {\n if (this.disabled || this.isOpen || this.itemsList.maxItemsSelected || this._manualOpen) {\n return;\n }\n\n if (!this._isTypeahead && !this.addTag && this.itemsList.noItemsToSelect) {\n return;\n }\n this.isOpen = true;\n this.itemsList.markSelectedOrDefault(this.markFirst);\n this.openEvent.emit();\n if (!this.searchTerm) {\n this.focus();\n }\n this.detectChanges();\n }\n\n close() {\n if (!this.isOpen || this._manualOpen) {\n return;\n }\n this.isOpen = false;\n if (!this._editableSearchTerm) {\n this._clearSearch();\n } else {\n this.itemsList.resetFilteredItems();\n }\n this.itemsList.unmarkItem();\n this._onTouched();\n this.closeEvent.emit();\n this._cd.markForCheck();\n }\n\n toggleItem(item: NgOption) {\n if (!item || item.disabled || this.disabled) {\n return;\n }\n\n if (this.multiple && item.selected) {\n this.unselect(item);\n } else {\n this.select(item);\n }\n\n if (this._editableSearchTerm) {\n this._setSearchTermFromItems();\n }\n\n this._onSelectionChanged();\n }\n\n select(item: NgOption) {\n if (!item.selected) {\n this.itemsList.select(item);\n if (this.clearSearchOnAdd && !this._editableSearchTerm) {\n this._clearSearch();\n }\n\n this._updateNgModel();\n if (this.multiple) {\n this.addEvent.emit(item.value);\n }\n }\n\n if (this.closeOnSelect || this.itemsList.noItemsToSelect) {\n this.close();\n }\n }\n\n focus() {\n this.searchInput.nativeElement.focus();\n }\n\n blur() {\n this.searchInput.nativeElement.blur();\n }\n\n unselect(item: NgOption) {\n if (!item) {\n return;\n }\n\n this.itemsList.unselect(item);\n this.focus();\n this._updateNgModel();\n this.removeEvent.emit(item);\n }\n\n selectTag() {\n let tag;\n if (isFunction(this.addTag)) {\n tag = (<AddTagFn>this.addTag)(this.searchTerm);\n } else {\n tag = this._primitive ? this.searchTerm : { [this.bindLabel]: this.searchTerm };\n }\n\n const handleTag = (item) => this._isTypeahead || !this.isOpen ? this.itemsList.mapItem(item, null) : this.itemsList.addItem(item);\n if (isPromise(tag)) {\n tag.then(item => this.select(handleTag(item))).catch(() => { });\n } else if (tag) {\n this.select(handleTag(tag));\n }\n }\n\n showClear() {\n return this.clearable && (this.hasValue || this.searchTerm) && !this.disabled;\n }\n\n trackByOption = (_: number, item: NgOption) => {\n if (this.trackByFn) {\n return this.trackByFn(item.value);\n }\n\n return item;\n };\n\n get showAddTag() {\n if (!this._validTerm) {\n return false;\n }\n\n const term = this.searchTerm.toLowerCase().trim();\n return this.addTag &&\n (!this.itemsList.filteredItems.some(x => x.label.toLowerCase() === term) &&\n (!this.hideSelected && this.isOpen || !this.selectedItems.some(x => x.label.toLowerCase() === term))) &&\n !this.loading;\n }\n\n showNoItemsFound() {\n const empty = this.itemsList.filteredItems.length === 0;\n return ((empty && !this._isTypeahead && !this.loading) ||\n (empty && this._isTypeahead && this._validTerm && !this.loading)) &&\n !this.showAddTag;\n }\n\n showTypeToSearch() {\n const empty = this.itemsList.filteredItems.length === 0;\n return empty && this._isTypeahead && !this._validTerm && !this.loading;\n }\n\n onCompositionStart() {\n this._isComposing = true;\n }\n\n onCompositionEnd(term: string) {\n this._isComposing = false;\n if (this.searchWhileComposing) {\n return;\n }\n\n this.filter(term);\n }\n\n filter(term: string) {\n if (this._isComposing && !this.searchWhileComposing) {\n return;\n }\n\n this.searchTerm = term;\n if (this._isTypeahead && (this._validTerm || this.minTermLength === 0)) {\n this.typeahead.next(term);\n }\n\n if (!this._isTypeahead) {\n this.itemsList.filter(this.searchTerm);\n if (this.isOpen) {\n this.itemsList.markSelectedOrDefault(this.markFirst);\n }\n }\n\n this.searchEvent.emit({ term, items: this.itemsList.filteredItems.map(x => x.value) });\n this.open();\n }\n\n onInputFocus($event) {\n if (this.focused) {\n return;\n }\n\n if (this._editableSearchTerm) {\n this._setSearchTermFromItems();\n }\n\n this.element.classList.add('ng-select-focused');\n this.focusEvent.emit($event);\n this.focused = true;\n }\n\n onInputBlur($event) {\n this.element.classList.remove('ng-select-focused');\n this.blurEvent.emit($event);\n if (!this.isOpen && !this.disabled) {\n this._onTouched();\n }\n if (this._editableSearchTerm) {\n this._setSearchTermFromItems();\n }\n this.focused = false;\n }\n\n onItemHover(item: NgOption) {\n if (item.disabled) {\n return;\n }\n this.itemsList.markItem(item);\n }\n\n detectChanges() {\n if (!(<any>this._cd).destroyed) {\n this._cd.detectChanges();\n }\n }\n\n private _setSearchTermFromItems() {\n const selected = this.selectedItems && this.selectedItems[0];\n this.searchTerm = (selected && selected.label) || null;\n }\n\n private _setItems(items: any[]) {\n const firstItem = items[0];\n this.bindLabel = this.bindLabel || this._defaultLabel;\n this._primitive = isDefined(firstItem) ? !isObject(firstItem) : this._primitive || this.bindLabel === this._defaultLabel;\n this.itemsList.setItems(items);\n if (items.length > 0 && this.hasValue) {\n this.itemsList.mapSelectedItems();\n }\n if (this.isOpen && isDefined(this.searchTerm) && !this._isTypeahead) {\n this.itemsList.filter(this.searchTerm);\n }\n if (this._isTypeahead || this.isOpen) {\n this.itemsList.markSelectedOrDefault(this.markFirst);\n }\n }\n\n private _setItemsFromNgOptions() {\n const mapNgOptions = (options: QueryList<NgOptionComponent>) => {\n this.items = options.map(option => ({\n $ngOptionValue: option.value,\n $ngOptionLabel: option.elementRef.nativeElement.innerHTML,\n disabled: option.disabled\n }));\n this.itemsList.setItems(this.items);\n if (this.hasValue) {\n this.itemsList.mapSelectedItems();\n }\n this.detectChanges();\n };\n\n const handleOptionChange = () => {\n const changedOrDestroyed = merge(this.ngOptions.changes, this._destroy$);\n merge(...this.ngOptions.map(option => option.stateChange$))\n .pipe(takeUntil(changedOrDestroyed))\n .subscribe(option => {\n const item = this.itemsList.findItem(option.value);\n item.disabled = option.disabled;\n item.label = option.label || item.label;\n this._cd.detectChanges();\n });\n };\n\n this.ngOptions.changes\n .pipe(startWith(this.ngOptions), takeUntil(this._destroy$))\n .subscribe(options => {\n this.bindLabel = this._defaultLabel;\n mapNgOptions(options);\n handleOptionChange();\n });\n }\n\n private _isValidWriteValue(value: any): boolean {\n if (!isDefined(value) || (this.multiple && value === '') || Array.isArray(value) && value.length === 0) {\n return false;\n }\n\n const validateBinding = (item: any): boolean => {\n if (!isDefined(this.compareWith) && isObject(item) && this.bindValue) {\n this._console.warn(`Binding object(${JSON.stringify(item)}) with bindValue is not allowed.`);\n return false;\n }\n return true;\n };\n\n if (this.multiple) {\n if (!Array.isArray(value)) {\n this._console.warn('Multiple select ngModel should be array.');\n return false;\n }\n return value.every(item => validateBinding(item));\n } else {\n return validateBinding(value);\n }\n }\n\n private _handleWriteValue(ngModel: any | any[]) {\n if (!this._isValidWriteValue(ngModel)) {\n return\n }\n\n const select = (val: any) => {\n let item = this.itemsList.findItem(val);\n if (item) {\n this.itemsList.select(item);\n } else {\n const isValObject = isObject(val);\n const isPrimitive = !isValObject && !this.bindValue;\n if ((isValObject || isPrimitive)) {\n this.itemsList.select(this.itemsList.mapItem(val, null));\n } else if (this.bindValue) {\n item = {\n [this.bindLabel]: null,\n [this.bindValue]: val\n };\n this.itemsList.select(this.itemsList.mapItem(item, null));\n }\n }\n };\n\n if (this.multiple) {\n (<any[]>ngModel).forEach(item => select(item));\n } else {\n select(ngModel);\n }\n }\n\n private _handleKeyPresses() {\n if (this.searchable) {\n return;\n }\n\n this._keyPress$\n .pipe(takeUntil(this._destroy$),\n tap(letter => this._pressedKeys.push(letter)),\n debounceTime(200),\n filter(() => this._pressedKeys.length > 0),\n map(() => this._pressedKeys.join('')))\n .subscribe(term => {\n const item = this.itemsList.findByLabel(term);\n if (item) {\n if (this.isOpen) {\n this.itemsList.markItem(item);\n this._cd.markForCheck();\n } else {\n this.select(item);\n }\n }\n this._pressedKeys = [];\n });\n }\n\n private _setInputAttributes() {\n const input = this.searchInput.nativeElement;\n const attributes = {\n type: 'text',\n autocorrect: 'off',\n autocapitalize: 'off',\n autocomplete: this.labelForId ? 'off' : this.dropdownId,\n ...this.inputAttrs\n };\n\n for (const key of Object.keys(attributes)) {\n input.setAttribute(key, attributes[key]);\n }\n }\n\n private _updateNgModel() {\n const model = [];\n for (const item of this.selectedItems) {\n if (this.bindValue) {\n let value = null;\n if (item.children) {\n const groupKey = this.groupValue ? this.bindValue : <string>this.groupBy;\n value = item.value[groupKey || <string>this.groupBy];\n } else {\n value = this.itemsList.resolveNested(item.value, this.bindValue);\n }\n model.push(value);\n } else {\n model.push(item.value);\n }\n }\n\n const selected = this.selectedItems.map(x => x.value);\n if (this.multiple) {\n this._onChange(model);\n this.changeEvent.emit(selected);\n } else {\n this._onChange(isDefined(model[0]) ? model[0] : null);\n this.changeEvent.emit(selected[0]);\n }\n\n this._cd.markForCheck();\n }\n\n private _clearSearch() {\n if (!this.searchTerm) {\n return;\n }\n\n this._changeSearch(null);\n this.itemsList.resetFilteredItems();\n }\n\n private _changeSearch(searchTerm: string) {\n this.searchTerm = searchTerm;\n if (this._isTypeahead) {\n this.typeahead.next(searchTerm);\n }\n }\n\n private _scrollToMarked() {\n if (!this.isOpen || !this.dropdownPanel) {\n return;\n }\n this.dropdownPanel.scrollTo(this.itemsList.markedItem);\n }\n\n private _scrollToTag() {\n if (!this.isOpen || !this.dropdownPanel) {\n return;\n }\n this.dropdownPanel.scrollToTag();\n }\n\n private _onSelectionChanged() {\n if (this.isOpen && this.multiple && this.appendTo) {\n // Make sure items are rendered.\n this._cd.detectChanges();\n this.dropdownPanel.adjustPosition();\n }\n }\n\n private _handleTab($event: KeyboardEvent) {\n if (this.isOpen === false && !this.addTag) {\n return;\n }\n\n if (this.selectOnTab) {\n if (this.itemsList.markedItem) {\n this.toggleItem(this.itemsList.markedItem);\n $event.preventDefault();\n } else if (this.showAddTag) {\n this.selectTag();\n $event.preventDefault();\n } else {\n this.close();\n }\n } else {\n this.close();\n }\n }\n\n private _handleEnter($event: KeyboardEvent) {\n if (this.isOpen || this._manualOpen) {\n if (this.itemsList.markedItem) {\n this.toggleItem(this.itemsList.markedItem);\n } else if (this.showAddTag) {\n this.selectTag();\n }\n } else if (this.openOnEnter) {\n this.open();\n } else {\n return;\n }\n\n $event.preventDefault();\n }\n\n private _handleSpace($event: KeyboardEvent) {\n if (this.isOpen || this._manualOpen) {\n return;\n }\n this.open();\n $event.preventDefault();\n }\n\n private _handleArrowDown($event: KeyboardEvent) {\n if (this._nextItemIsTag(+1)) {\n this.itemsList.unmarkItem();\n this._scrollToTag();\n } else {\n this.itemsList.markNextItem();\n this._scrollToMarked();\n }\n this.open();\n $event.preventDefault();\n }\n\n private _handleArrowUp($event: KeyboardEvent) {\n if (!this.isOpen) {\n return;\n }\n\n if (this._nextItemIsTag(-1)) {\n this.itemsList.unmarkItem();\n this._scrollToTag();\n } else {\n this.itemsList.markPreviousItem();\n this._scrollToMarked();\n }\n $event.preventDefault();\n }\n\n private _nextItemIsTag(nextStep: number): boolean {\n const nextIndex = this.itemsList.markedIndex + nextStep;\n return this.addTag && this.searchTerm\n && this.itemsList.markedItem\n && (nextIndex < 0 || nextIndex === this.itemsList.filteredItems.length)\n }\n\n private _handleBackspace() {\n if (this.searchTerm || !this.clearable || !this.clearOnBackspace || !this.hasValue) {\n return;\n }\n\n if (this.multiple) {\n this.unselect(this.itemsList.lastSelectedItem);\n } else {\n this.clearModel();\n }\n }\n\n private get _isTypeahead() {\n return this.typeahead && this.typeahead.observers.length > 0;\n }\n\n private get _validTerm() {\n const term = this.searchTerm && this.searchTerm.trim();\n return term && term.length >= this.minTermLength;\n }\n\n private _mergeGlobalConfig(config: NgSelectConfig) {\n this.placeholder = this.placeholder || config.placeholder;\n this.notFoundText = this.notFoundText || config.notFoundText;\n this.typeToSearchText = this.typeToSearchText || config.typeToSearchText;\n this.addTagText = this.addTagText || config.addTagText;\n this.loadingText = this.loadingText || config.loadingText;\n this.clearAllText = this.clearAllText || config.clearAllText;\n this.virtualScroll = isDefined(this.virtualScroll)\n ? this.virtualScroll\n : isDefined(config.disableVirtualScroll) ? !config.disableVirtualScroll : false;\n this.openOnEnter = isDefined(this.openOnEnter) ? this.openOnEnter : config.openOnEnter;\n this.appendTo = this.appendTo || config.appendTo;\n this.bindValue = this.bindValue || config.bindValue;\n this.appearance = this.appearance || config.appearance;\n }\n}\n","import { NgOption } from './ng-select.types';\n\nexport type SelectionModelFactory = () => SelectionModel;\n\nexport function DefaultSelectionModelFactory() {\n return new DefaultSelectionModel();\n}\n\nexport interface SelectionModel {\n value: NgOption[];\n select(item: NgOption, multiple: boolean, selectableGroupAsModel: boolean);\n unselect(item: NgOption, multiple: boolean);\n clear(keepDisabled: boolean);\n}\n\nexport class DefaultSelectionModel implements SelectionModel {\n private _selected: NgOption[] = [];\n\n get value(): NgOption[] {\n return this._selected;\n }\n\n select(item: NgOption, multiple: boolean, groupAsModel: boolean) {\n item.selected = true;\n if (!item.children || (!multiple && groupAsModel)) {\n this._selected.push(item);\n }\n if (multiple) {\n if (item.parent) {\n const childrenCount = item.parent.children.length;\n const selectedCount = item.parent.children.filter(x => x.selected).length;\n item.parent.selected = childrenCount === selectedCount;\n } else if (item.children) {\n this._setChildrenSelectedState(item.children, true);\n this._removeChildren(item);\n if (groupAsModel && this._activeChildren(item)) {\n this._selected = [...this._selected.filter(x => x.parent !== item), item]\n } else {\n this._selected = [...this._selected, ...item.children.filter(x => !x.disabled)];\n }\n }\n }\n }\n\n unselect(item: NgOption, multiple: boolean) {\n this._selected = this._selected.filter(x => x !== item);\n item.selected = false;\n if (multiple) {\n if (item.parent && item.parent.selected) {\n const children = item.parent.children;\n this._removeParent(item.parent);\n this._removeChildren(item.parent);\n this._selected.push(...children.filter(x => x !== item && !x.disabled));\n item.parent.selected = false;\n } else if (item.children) {\n this._setChildrenSelectedState(item.children, false);\n this._removeChildren(item);\n }\n }\n }\n\n clear(keepDisabled: boolean) {\n this._selected = keepDisabled ? this._selected.filter(x => x.disabled) : [];\n }\n\n private _setChildrenSelectedState(children: NgOption[], selected: boolean) {\n for (const child of children) {\n if (child.disabled) {\n continue;\n }\n child.selected = selected;\n };\n }\n\n private _removeChildren(parent: NgOption) {\n this._selected = [\n ...this._selected.filter(x => x.parent !== parent), \n ...parent.children.filter(x => x.parent === parent && x.disabled && x.selected)\n ];\n }\n\n private _removeParent(parent: NgOption) {\n this._selected = this._selected.filter(x => x !== parent)\n }\n\n private _activeChildren(item: NgOption): boolean {\n return item.children.every(x => !x.disabled || x.selected);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NgDropdownPanelComponent } from './ng-dropdown-panel.component';\nimport { NgOptionComponent } from './ng-option.component';\nimport { NgSelectComponent, SELECTION_MODEL_FACTORY } from './ng-select.component';\nimport {\n NgFooterTemplateDirective,\n NgHeaderTemplateDirective,\n NgLabelTemplateDirective,\n NgLoadingSpinnerTemplateDirective,\n NgLoadingTextTemplateDirective,\n NgMultiLabelTemplateDirective,\n NgNotFoundTemplateDirective,\n NgOptgroupTemplateDirective,\n NgOptionTemplateDirective,\n NgTagTemplateDirective,\n NgItemLabelDirective,\n NgTypeToSearchTemplateDirective\n} from './ng-templates.directive';\nimport { DefaultSelectionModelFactory } from './selection-model';\n\n@NgModule({\n declarations: [\n NgDropdownPanelComponent,\n NgOptionComponent,\n NgSelectComponent,\n NgOptgroupTemplateDirective,\n NgOptionTemplateDirective,\n NgLabelTemplateDirective,\n NgMultiLabelTemplateDirective,\n NgHeaderTemplateDirective,\n NgFooterTemplateDirective,\n NgNotFoundTemplateDirective,\n NgTypeToSearchTemplateDirective,\n NgLoadingTextTemplateDirective,\n NgTagTemplateDirective,\n NgLoadingSpinnerTemplateDirective,\n NgItemLabelDirective\n ],\n imports: [\n CommonModule\n ],\n exports: [\n NgSelectComponent,\n NgOptionComponent,\n NgOptgroupTemplateDirective,\n NgOptionTemplateDirective,\n NgLabelTemplateDirective,\n NgMultiLabelTemplateDirective,\n NgHeaderTemplateDirective,\n NgFooterTemplateDirective,\n NgNotFoundTemplateDirective,\n NgTypeToSearchTemplateDirective,\n NgLoadingTextTemplateDirective,\n NgTagTemplateDirective,\n NgLoadingSpinnerTemplateDirective\n ],\n providers: [\n { provide: SELECTION_MODEL_FACTORY, useValue: DefaultSelectionModelFactory }\n ]\n})\nexport class NgSelectModule {}\n"]}
|