@ng-select/ng-select 5.0.12 → 5.1.0

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","../../../src/ng-select/lib/value-utils.ts","../../../src/ng-select/lib/ng-templates.directive.ts","../../../src/ng-select/lib/console.service.ts","../../../src/ng-select/lib/id.ts","../../../src/ng-select/lib/search-helper.ts","../../../src/ng-select/lib/items-list.ts","../../../src/ng-select/lib/ng-select.types.ts","../../../src/ng-select/lib/ng-dropdown-panel.service.ts","../../../src/ng-select/lib/ng-dropdown-panel.component.ts","../../../src/ng-select/lib/ng-option.component.ts","../../../src/ng-select/lib/config.service.ts","../../../src/ng-select/lib/ng-select.component.ts","../../../src/ng-select/lib/selection-model.ts","../../../src/ng-select/lib/ng-select.module.ts"],"names":["Object","create","__values","o","s","Symbol","iterator","m","i","call","length","next","value","done","TypeError","__read","n","r","e","ar","push","error","__spread","arguments","concat","unescapedHTMLExp","hasUnescapedHTMLExp","RegExp","source","htmlEscapes","&","<",">","\"","'","isDefined","isObject","isFunction","Function","NgItemLabelDirective","element","this","escape","prototype","ngOnChanges","changes","string","nativeElement","innerHTML","ngItemLabel","test","replace","chr","Directive","args","selector","ElementRef","Input","template","TemplateRef","ConsoleService","warn","message","console","newId","_","Math","random","toString","Injectable","providedIn","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","e_2","this_1","get","_d","parent","searchItem","last_1","slice","head","x","_b","apply","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","assign","isObjectKey","String","this_2","selectableGroup","groupKey","groupValue","_a","KeyCode","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","TOP_CSS_CLASS","BOTTOM_CSS_CLASS","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","_updateYPosition","_handleDropdownPosition","_calculateCurrentPosition","addClass","removeClass","style","opacity","runOutsideAngular","fromEvent","pipe","takeUntil","auditTime","subscribe","path","composedPath","target","_onContentScrolled","merge","capture","_checkToClose","contains","shadowRoot","run","emit","_updateItemsRange","_setVirtualHeight","_updateItems","Promise","resolve","then","_measureDimensions","_renderItemsRange","_startOffset","_fireScrollToEnd","_updateVirtualHeight","height","range","bufferAmount","transform","first","optionHeight","padding","dropdownEl","selectRect","getBoundingClientRect","document","documentElement","body","top","window","pageYOffset","_parent","Error","_updateXPosition","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","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","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","DefaultSelectionModelFactory","DefaultSelectionModel","providers","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","multi","host","[class.ng-select]","[class.ng-select-single]","Attribute","NgSelectConfig","ChangeDetectorRef","HostBinding","ContentChild","NgOptionTemplateDirective","NgOptgroupTemplateDirective","NgLabelTemplateDirective","NgMultiLabelTemplateDirective","NgHeaderTemplateDirective","NgFooterTemplateDirective","NgNotFoundTemplateDirective","NgTypeToSearchTemplateDirective","NgLoadingTextTemplateDirective","NgTagTemplateDirective","NgLoadingSpinnerTemplateDirective","ContentChildren","descendants","_selected","groupAsModel","childrenCount","selectedCount","_setChildrenSelectedState","_removeChildren","_activeChildren","_removeParent","children_1","children_1_1","NgModule","declarations","imports","CommonModule","exports","useValue","ɵ0"],"mappings":"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AAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,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,IA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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\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 (Object.prototype.hasOwnProperty.call(b, 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 var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, 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\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\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 (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, 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 '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n '\\'': '&#39;'\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","import { Injectable } from '@angular/core';\nexport 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\n@Injectable()\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 this._updateYPosition();\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._updateYPosition();\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: { path, composedPath, target }) => {\n const path = e.path || (e.composedPath && e.composedPath());\n const scrollTop = !path || path.length === 0 ? e.target.scrollTop : path[0].scrollTop\n this._onContentScrolled(scrollTop);\n });\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._setVirtualHeight();\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 _setVirtualHeight() {\n\n if (!this._virtualPadding) {\n return;\n }\n\n this._virtualPadding.style.height = `0px`;\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 (!this._parent) {\n throw new Error(`appendTo selector ${this.appendTo} did not found any parent element`);\n }\n this._updateXPosition();\n this._parent.appendChild(this._dropdown);\n }\n\n private _updateXPosition() {\n const select = this._select.getBoundingClientRect();\n const parent = this._parent.getBoundingClientRect();\n const offsetLeft = select.left - parent.left;\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 _updateYPosition() {\n const select = this._select.getBoundingClientRect();\n const parent = this._parent.getBoundingClientRect();\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 '[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 }) optionTemplate: TemplateRef<any>;\n @ContentChild(NgOptgroupTemplateDirective, { read: TemplateRef }) optgroupTemplate: TemplateRef<any>;\n @ContentChild(NgLabelTemplateDirective, { read: TemplateRef }) labelTemplate: TemplateRef<any>;\n @ContentChild(NgMultiLabelTemplateDirective, { read: TemplateRef }) multiLabelTemplate: TemplateRef<any>;\n @ContentChild(NgHeaderTemplateDirective, { read: TemplateRef }) headerTemplate: TemplateRef<any>;\n @ContentChild(NgFooterTemplateDirective, { read: TemplateRef }) footerTemplate: TemplateRef<any>;\n @ContentChild(NgNotFoundTemplateDirective, { read: TemplateRef }) notFoundTemplate: TemplateRef<any>;\n @ContentChild(NgTypeToSearchTemplateDirective, { read: TemplateRef }) typeToSearchTemplate: TemplateRef<any>;\n @ContentChild(NgLoadingTextTemplateDirective, { read: TemplateRef }) loadingTextTemplate: TemplateRef<any>;\n @ContentChild(NgTagTemplateDirective, { read: TemplateRef }) tagTemplate: TemplateRef<any>;\n @ContentChild(NgLoadingSpinnerTemplateDirective, { read: TemplateRef }) loadingSpinnerTemplate: TemplateRef<any>;\n\n @ViewChild(forwardRef(() => NgDropdownPanelComponent)) 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\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 this._isComposing = 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(\n `Setting object(${JSON.stringify(item)}) as your model with bindValue is not allowed unless [compareWith] is used.`\n );\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","../../../src/ng-select/lib/value-utils.ts","../../../src/ng-select/lib/ng-templates.directive.ts","../../../src/ng-select/lib/console.service.ts","../../../src/ng-select/lib/id.ts","../../../src/ng-select/lib/search-helper.ts","../../../src/ng-select/lib/items-list.ts","../../../src/ng-select/lib/ng-select.types.ts","../../../src/ng-select/lib/ng-dropdown-panel.service.ts","../../../src/ng-select/lib/ng-dropdown-panel.component.ts","../../../src/ng-select/lib/ng-option.component.ts","../../../src/ng-select/lib/config.service.ts","../../../src/ng-select/lib/ng-select.component.ts","../../../src/ng-select/lib/selection-model.ts","../../../src/ng-select/lib/ng-select.module.ts"],"names":["Object","create","__values","o","s","Symbol","iterator","m","i","call","length","next","value","done","TypeError","__read","n","r","e","ar","push","error","__spread","arguments","concat","unescapedHTMLExp","hasUnescapedHTMLExp","RegExp","source","htmlEscapes","&","<",">","\"","'","isDefined","isObject","isFunction","Function","NgItemLabelDirective","element","this","escape","prototype","ngOnChanges","changes","string","nativeElement","innerHTML","ngItemLabel","test","replace","chr","Directive","args","selector","ElementRef","Input","template","TemplateRef","ConsoleService","warn","message","console","newId","_","Math","random","toString","Injectable","providedIn","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","e_2","this_1","get","_d","parent","searchItem","last_1","slice","head","x","_b","apply","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","String","this_2","selectableGroup","groupKey","groupValue","_a","KeyCode","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","TOP_CSS_CLASS","BOTTOM_CSS_CLASS","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","_updateYPosition","_handleDropdownPosition","_calculateCurrentPosition","addClass","removeClass","style","opacity","runOutsideAngular","fromEvent","pipe","takeUntil","auditTime","subscribe","path","composedPath","target","_onContentScrolled","merge","capture","_checkToClose","contains","shadowRoot","run","emit","_updateItemsRange","_setVirtualHeight","_updateItems","Promise","resolve","then","_measureDimensions","_renderItemsRange","_startOffset","_fireScrollToEnd","_updateVirtualHeight","height","range","bufferAmount","transform","first","optionHeight","padding","dropdownEl","selectRect","getBoundingClientRect","document","documentElement","body","top","window","pageYOffset","_parent","Error","_updateXPosition","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","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","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","_scrollToMarked","input","attributes","assign","autocorrect","autocapitalize","autocomplete","setAttribute","model","_changeSearch","_scrollToTag","_nextItemIsTag","nextStep","nextIndex","observers","placeholder","DefaultSelectionModelFactory","DefaultSelectionModel","providers","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","multi","host","[class.ng-select]","[class.ng-select-single]","Attribute","NgSelectConfig","ChangeDetectorRef","HostBinding","ContentChild","NgOptionTemplateDirective","NgOptgroupTemplateDirective","NgLabelTemplateDirective","NgMultiLabelTemplateDirective","NgHeaderTemplateDirective","NgFooterTemplateDirective","NgNotFoundTemplateDirective","NgTypeToSearchTemplateDirective","NgLoadingTextTemplateDirective","NgTagTemplateDirective","NgLoadingSpinnerTemplateDirective","ContentChildren","descendants","_selected","groupAsModel","childrenCount","selectedCount","_setChildrenSelectedState","_removeChildren","_activeChildren","_removeParent","children_1","children_1_1","NgModule","declarations","imports","CommonModule","exports","useValue","ɵ0"],"mappings":"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AAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,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,IA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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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 var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, 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\n/** @deprecated */\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\n/** @deprecated */\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 __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\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\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\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 (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, 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 '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n '\\'': '&#39;'\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 => {\n x.index = i++;\n return x;\n }));\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","import { Injectable } from '@angular/core';\nexport 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\n@Injectable()\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 this._updateYPosition();\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._updateYPosition();\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: { path, composedPath, target }) => {\n const path = e.path || (e.composedPath && e.composedPath());\n const scrollTop = !path || path.length === 0 ? e.target.scrollTop : path[0].scrollTop\n this._onContentScrolled(scrollTop);\n });\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._setVirtualHeight();\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 _setVirtualHeight() {\n\n if (!this._virtualPadding) {\n return;\n }\n\n this._virtualPadding.style.height = `0px`;\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 (!this._parent) {\n throw new Error(`appendTo selector ${this.appendTo} did not found any parent element`);\n }\n this._updateXPosition();\n this._parent.appendChild(this._dropdown);\n }\n\n private _updateXPosition() {\n const select = this._select.getBoundingClientRect();\n const parent = this._parent.getBoundingClientRect();\n const offsetLeft = select.left - parent.left;\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 _updateYPosition() {\n const select = this._select.getBoundingClientRect();\n const parent = this._parent.getBoundingClientRect();\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 bindLabel: 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 '[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 }) optionTemplate: TemplateRef<any>;\n @ContentChild(NgOptgroupTemplateDirective, { read: TemplateRef }) optgroupTemplate: TemplateRef<any>;\n @ContentChild(NgLabelTemplateDirective, { read: TemplateRef }) labelTemplate: TemplateRef<any>;\n @ContentChild(NgMultiLabelTemplateDirective, { read: TemplateRef }) multiLabelTemplate: TemplateRef<any>;\n @ContentChild(NgHeaderTemplateDirective, { read: TemplateRef }) headerTemplate: TemplateRef<any>;\n @ContentChild(NgFooterTemplateDirective, { read: TemplateRef }) footerTemplate: TemplateRef<any>;\n @ContentChild(NgNotFoundTemplateDirective, { read: TemplateRef }) notFoundTemplate: TemplateRef<any>;\n @ContentChild(NgTypeToSearchTemplateDirective, { read: TemplateRef }) typeToSearchTemplate: TemplateRef<any>;\n @ContentChild(NgLoadingTextTemplateDirective, { read: TemplateRef }) loadingTextTemplate: TemplateRef<any>;\n @ContentChild(NgTagTemplateDirective, { read: TemplateRef }) tagTemplate: TemplateRef<any>;\n @ContentChild(NgLoadingSpinnerTemplateDirective, { read: TemplateRef }) loadingSpinnerTemplate: TemplateRef<any>;\n\n @ViewChild(forwardRef(() => NgDropdownPanelComponent)) 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\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 this._isComposing = 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(\n `Setting object(${JSON.stringify(item)}) as your model with bindValue is not allowed unless [compareWith] is used.`\n );\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._scrollToMarked();\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.bindLabel = this.bindLabel || config.bindLabel;\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"]}