@ng-select/ng-select 21.1.3 → 21.1.4
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.
|
@@ -1706,15 +1706,15 @@ class NgDropdownPanelComponent {
|
|
|
1706
1706
|
}
|
|
1707
1707
|
_handleScroll() {
|
|
1708
1708
|
this._zone.runOutsideAngular(() => {
|
|
1709
|
-
|
|
1709
|
+
const scrollablePanel = this._scrollablePanel();
|
|
1710
|
+
if (!scrollablePanel) {
|
|
1710
1711
|
return;
|
|
1711
1712
|
}
|
|
1712
|
-
fromEvent(
|
|
1713
|
+
fromEvent(scrollablePanel, 'scroll')
|
|
1713
1714
|
.pipe(takeUntilDestroyed(this._destroyRef), auditTime(0, SCROLL_SCHEDULER))
|
|
1714
|
-
.subscribe((
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
this._onContentScrolled(target.scrollTop);
|
|
1715
|
+
.subscribe(() => {
|
|
1716
|
+
if (scrollablePanel && 'scrollTop' in scrollablePanel) {
|
|
1717
|
+
this._onContentScrolled(scrollablePanel.scrollTop);
|
|
1718
1718
|
}
|
|
1719
1719
|
});
|
|
1720
1720
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-select-ng-select.mjs","sources":["../../../src/ng-select/lib/value-utils.ts","../../../src/ng-select/lib/ng-templates.directive.ts","../../../src/ng-select/lib/config.service.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-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/ng-select.types.ts","../../../src/ng-select/lib/selection-model.ts","../../../src/ng-select/lib/ng-select.component.ts","../../../src/ng-select/lib/ng-select.component.html","../../../src/ng-select/lib/ng-select.module.ts","../../../src/ng-select/public-api.ts","../../../src/ng-select/ng-select-ng-select.ts"],"sourcesContent":["const unescapedHTMLExp = /[&<>\"']/g;\nconst hasUnescapedHTMLExp = RegExp(unescapedHTMLExp.source);\nconst htmlEscapes = {\n\t'&': '&',\n\t'<': '<',\n\t'>': '>',\n\t'\"': '"',\n\t\"'\": ''',\n};\n\nexport function escapeHTML(value: string) {\n\treturn value && hasUnescapedHTMLExp.test(value) ? value.replace(unescapedHTMLExp, (chr) => htmlEscapes[chr]) : value;\n}\n\nexport function isDefined(value: any) {\n\treturn value !== undefined && value !== null;\n}\n\nexport function isObject(value: any) {\n\treturn typeof value === 'object' && isDefined(value);\n}\n\nexport function isPromise(value: any) {\n\treturn value instanceof Promise;\n}\n\nexport function isFunction(value: any) {\n\treturn value instanceof Function;\n}\n","import { Directive, effect, ElementRef, inject, input, TemplateRef } from '@angular/core';\nimport { escapeHTML } from './value-utils';\n\n@Directive({\n\tselector: '[ngItemLabel]',\n\tstandalone: true,\n})\nexport class NgItemLabelDirective {\n\tprivate element = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\tngItemLabel = input<string>();\n\tescape = input(true);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tthis.element.nativeElement.innerHTML = this.escape()\n\t\t\t\t? escapeHTML(this.ngItemLabel())\n\t\t\t\t: this.ngItemLabel();\n\t\t})\n\t}\n}\n\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: '[ng-option-tmp]',\n\tstandalone: true,\n})\nexport class NgOptionTemplateDirective {\n\tpublic readonly template = inject(TemplateRef<any>);\n}\n\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: '[ng-optgroup-tmp]',\n\tstandalone: true,\n})\nexport class NgOptgroupTemplateDirective {\n\tpublic readonly template = inject(TemplateRef<any>);\n}\n\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: '[ng-label-tmp]',\n\tstandalone: true,\n})\nexport class NgLabelTemplateDirective {\n\tpublic readonly template = inject(TemplateRef<any>);\n}\n\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: '[ng-multi-label-tmp]',\n\tstandalone: true,\n})\nexport class NgMultiLabelTemplateDirective {\n\tpublic readonly template = inject(TemplateRef<any>);\n}\n\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: '[ng-header-tmp]',\n\tstandalone: true,\n})\nexport class NgHeaderTemplateDirective {\n\tpublic readonly template = inject(TemplateRef<any>);\n}\n\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: '[ng-footer-tmp]',\n\tstandalone: true,\n})\nexport class NgFooterTemplateDirective {\n\tpublic readonly template = inject(TemplateRef<any>);\n}\n\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: '[ng-notfound-tmp]',\n\tstandalone: true,\n})\nexport class NgNotFoundTemplateDirective {\n\tpublic readonly template = inject(TemplateRef<any>);\n}\n\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: '[ng-placeholder-tmp]',\n\tstandalone: true,\n})\nexport class NgPlaceholderTemplateDirective {\n\tpublic readonly template = inject(TemplateRef<any>);\n}\n\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: '[ng-typetosearch-tmp]',\n\tstandalone: true,\n})\nexport class NgTypeToSearchTemplateDirective {\n\tpublic readonly template = inject(TemplateRef<any>);\n}\n\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: '[ng-loadingtext-tmp]',\n\tstandalone: true,\n})\nexport class NgLoadingTextTemplateDirective {\n\tpublic readonly template = inject(TemplateRef<any>);\n}\n\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: '[ng-tag-tmp]',\n\tstandalone: true,\n})\nexport class NgTagTemplateDirective {\n\tpublic readonly template = inject(TemplateRef<any>);\n}\n\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: '[ng-loadingspinner-tmp]',\n\tstandalone: true,\n})\nexport class NgLoadingSpinnerTemplateDirective {\n\tpublic readonly template = inject(TemplateRef<any>);\n}\n\n// eslint-disable-next-line @angular-eslint/directive-selector\n@Directive({ selector: '[ng-clearbutton-tmp]', standalone: true })\nexport class NgClearButtonTemplateDirective {\n\tpublic readonly template = inject(TemplateRef<any>);\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class NgSelectConfig {\n\tplaceholder: string;\n\tfixedPlaceholder = true;\n\tnotFoundText = 'No items found';\n\ttypeToSearchText = 'Type to search';\n\taddTagText = 'Add item';\n\tloadingText = 'Loading...';\n\tclearAllText = 'Clear all';\n\tdisableVirtualScroll = true;\n\topenOnEnter = true;\n\tappendTo: string;\n\tbindValue: string;\n\tbindLabel: string;\n\tappearance = 'underline';\n\tclearSearchOnAdd: boolean;\n\tdeselectOnClick: boolean;\n\ttabFocusOnClear = true;\n\t/**\n\t * Controls which DOM event is used to detect outside clicks for closing the dropdown.\n\t * Defaults to 'click'. Set to 'mousedown' to handle early outside interactions\n\t * (useful when backdrops load on click and would otherwise close the dropdown).\n\t */\n\toutsideClickEvent: 'click' | 'mousedown' = 'click';\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class ConsoleService {\n\twarn(message: string) {\n\t\tconsole.warn(message);\n\t}\n}\n","export function newId() {\n\t// First character is an 'a', it's good practice to tag id to begin with a letter\n\treturn 'axxxxxxxxxxx'.replace(/[x]/g, () => {\n\t\tconst val = (Math.random() * 16) | 0;\n\t\treturn val.toString(16);\n\t});\n}\n","const diacritics = {\n\t'\\u24B6': 'A',\n\t'\\uFF21': 'A',\n\t'\\u00C0': 'A',\n\t'\\u00C1': 'A',\n\t'\\u00C2': 'A',\n\t'\\u1EA6': 'A',\n\t'\\u1EA4': 'A',\n\t'\\u1EAA': 'A',\n\t'\\u1EA8': 'A',\n\t'\\u00C3': 'A',\n\t'\\u0100': 'A',\n\t'\\u0102': 'A',\n\t'\\u1EB0': 'A',\n\t'\\u1EAE': 'A',\n\t'\\u1EB4': 'A',\n\t'\\u1EB2': 'A',\n\t'\\u0226': 'A',\n\t'\\u01E0': 'A',\n\t'\\u00C4': 'A',\n\t'\\u01DE': 'A',\n\t'\\u1EA2': 'A',\n\t'\\u00C5': 'A',\n\t'\\u01FA': 'A',\n\t'\\u01CD': 'A',\n\t'\\u0200': 'A',\n\t'\\u0202': 'A',\n\t'\\u1EA0': 'A',\n\t'\\u1EAC': 'A',\n\t'\\u1EB6': 'A',\n\t'\\u1E00': 'A',\n\t'\\u0104': 'A',\n\t'\\u023A': 'A',\n\t'\\u2C6F': 'A',\n\t'\\uA732': 'AA',\n\t'\\u00C6': 'AE',\n\t'\\u01FC': 'AE',\n\t'\\u01E2': 'AE',\n\t'\\uA734': 'AO',\n\t'\\uA736': 'AU',\n\t'\\uA738': 'AV',\n\t'\\uA73A': 'AV',\n\t'\\uA73C': 'AY',\n\t'\\u24B7': 'B',\n\t'\\uFF22': 'B',\n\t'\\u1E02': 'B',\n\t'\\u1E04': 'B',\n\t'\\u1E06': 'B',\n\t'\\u0243': 'B',\n\t'\\u0182': 'B',\n\t'\\u0181': 'B',\n\t'\\u24B8': 'C',\n\t'\\uFF23': 'C',\n\t'\\u0106': 'C',\n\t'\\u0108': 'C',\n\t'\\u010A': 'C',\n\t'\\u010C': 'C',\n\t'\\u00C7': 'C',\n\t'\\u1E08': 'C',\n\t'\\u0187': 'C',\n\t'\\u023B': 'C',\n\t'\\uA73E': 'C',\n\t'\\u24B9': 'D',\n\t'\\uFF24': 'D',\n\t'\\u1E0A': 'D',\n\t'\\u010E': 'D',\n\t'\\u1E0C': 'D',\n\t'\\u1E10': 'D',\n\t'\\u1E12': 'D',\n\t'\\u1E0E': 'D',\n\t'\\u0110': 'D',\n\t'\\u018B': 'D',\n\t'\\u018A': 'D',\n\t'\\u0189': 'D',\n\t'\\uA779': 'D',\n\t'\\u01F1': 'DZ',\n\t'\\u01C4': 'DZ',\n\t'\\u01F2': 'Dz',\n\t'\\u01C5': 'Dz',\n\t'\\u24BA': 'E',\n\t'\\uFF25': 'E',\n\t'\\u00C8': 'E',\n\t'\\u00C9': 'E',\n\t'\\u00CA': 'E',\n\t'\\u1EC0': 'E',\n\t'\\u1EBE': 'E',\n\t'\\u1EC4': 'E',\n\t'\\u1EC2': 'E',\n\t'\\u1EBC': 'E',\n\t'\\u0112': 'E',\n\t'\\u1E14': 'E',\n\t'\\u1E16': 'E',\n\t'\\u0114': 'E',\n\t'\\u0116': 'E',\n\t'\\u00CB': 'E',\n\t'\\u1EBA': 'E',\n\t'\\u011A': 'E',\n\t'\\u0204': 'E',\n\t'\\u0206': 'E',\n\t'\\u1EB8': 'E',\n\t'\\u1EC6': 'E',\n\t'\\u0228': 'E',\n\t'\\u1E1C': 'E',\n\t'\\u0118': 'E',\n\t'\\u1E18': 'E',\n\t'\\u1E1A': 'E',\n\t'\\u0190': 'E',\n\t'\\u018E': 'E',\n\t'\\u24BB': 'F',\n\t'\\uFF26': 'F',\n\t'\\u1E1E': 'F',\n\t'\\u0191': 'F',\n\t'\\uA77B': 'F',\n\t'\\u24BC': 'G',\n\t'\\uFF27': 'G',\n\t'\\u01F4': 'G',\n\t'\\u011C': 'G',\n\t'\\u1E20': 'G',\n\t'\\u011E': 'G',\n\t'\\u0120': 'G',\n\t'\\u01E6': 'G',\n\t'\\u0122': 'G',\n\t'\\u01E4': 'G',\n\t'\\u0193': 'G',\n\t'\\uA7A0': 'G',\n\t'\\uA77D': 'G',\n\t'\\uA77E': 'G',\n\t'\\u24BD': 'H',\n\t'\\uFF28': 'H',\n\t'\\u0124': 'H',\n\t'\\u1E22': 'H',\n\t'\\u1E26': 'H',\n\t'\\u021E': 'H',\n\t'\\u1E24': 'H',\n\t'\\u1E28': 'H',\n\t'\\u1E2A': 'H',\n\t'\\u0126': 'H',\n\t'\\u2C67': 'H',\n\t'\\u2C75': 'H',\n\t'\\uA78D': 'H',\n\t'\\u24BE': 'I',\n\t'\\uFF29': 'I',\n\t'\\u00CC': 'I',\n\t'\\u00CD': 'I',\n\t'\\u00CE': 'I',\n\t'\\u0128': 'I',\n\t'\\u012A': 'I',\n\t'\\u012C': 'I',\n\t'\\u0130': 'I',\n\t'\\u00CF': 'I',\n\t'\\u1E2E': 'I',\n\t'\\u1EC8': 'I',\n\t'\\u01CF': 'I',\n\t'\\u0208': 'I',\n\t'\\u020A': 'I',\n\t'\\u1ECA': 'I',\n\t'\\u012E': 'I',\n\t'\\u1E2C': 'I',\n\t'\\u0197': 'I',\n\t'\\u24BF': 'J',\n\t'\\uFF2A': 'J',\n\t'\\u0134': 'J',\n\t'\\u0248': 'J',\n\t'\\u24C0': 'K',\n\t'\\uFF2B': 'K',\n\t'\\u1E30': 'K',\n\t'\\u01E8': 'K',\n\t'\\u1E32': 'K',\n\t'\\u0136': 'K',\n\t'\\u1E34': 'K',\n\t'\\u0198': 'K',\n\t'\\u2C69': 'K',\n\t'\\uA740': 'K',\n\t'\\uA742': 'K',\n\t'\\uA744': 'K',\n\t'\\uA7A2': 'K',\n\t'\\u24C1': 'L',\n\t'\\uFF2C': 'L',\n\t'\\u013F': 'L',\n\t'\\u0139': 'L',\n\t'\\u013D': 'L',\n\t'\\u1E36': 'L',\n\t'\\u1E38': 'L',\n\t'\\u013B': 'L',\n\t'\\u1E3C': 'L',\n\t'\\u1E3A': 'L',\n\t'\\u0141': 'L',\n\t'\\u023D': 'L',\n\t'\\u2C62': 'L',\n\t'\\u2C60': 'L',\n\t'\\uA748': 'L',\n\t'\\uA746': 'L',\n\t'\\uA780': 'L',\n\t'\\u01C7': 'LJ',\n\t'\\u01C8': 'Lj',\n\t'\\u24C2': 'M',\n\t'\\uFF2D': 'M',\n\t'\\u1E3E': 'M',\n\t'\\u1E40': 'M',\n\t'\\u1E42': 'M',\n\t'\\u2C6E': 'M',\n\t'\\u019C': 'M',\n\t'\\u24C3': 'N',\n\t'\\uFF2E': 'N',\n\t'\\u01F8': 'N',\n\t'\\u0143': 'N',\n\t'\\u00D1': 'N',\n\t'\\u1E44': 'N',\n\t'\\u0147': 'N',\n\t'\\u1E46': 'N',\n\t'\\u0145': 'N',\n\t'\\u1E4A': 'N',\n\t'\\u1E48': 'N',\n\t'\\u0220': 'N',\n\t'\\u019D': 'N',\n\t'\\uA790': 'N',\n\t'\\uA7A4': 'N',\n\t'\\u01CA': 'NJ',\n\t'\\u01CB': 'Nj',\n\t'\\u24C4': 'O',\n\t'\\uFF2F': 'O',\n\t'\\u00D2': 'O',\n\t'\\u00D3': 'O',\n\t'\\u00D4': 'O',\n\t'\\u1ED2': 'O',\n\t'\\u1ED0': 'O',\n\t'\\u1ED6': 'O',\n\t'\\u1ED4': 'O',\n\t'\\u00D5': 'O',\n\t'\\u1E4C': 'O',\n\t'\\u022C': 'O',\n\t'\\u1E4E': 'O',\n\t'\\u014C': 'O',\n\t'\\u1E50': 'O',\n\t'\\u1E52': 'O',\n\t'\\u014E': 'O',\n\t'\\u022E': 'O',\n\t'\\u0230': 'O',\n\t'\\u00D6': 'O',\n\t'\\u022A': 'O',\n\t'\\u1ECE': 'O',\n\t'\\u0150': 'O',\n\t'\\u01D1': 'O',\n\t'\\u020C': 'O',\n\t'\\u020E': 'O',\n\t'\\u01A0': 'O',\n\t'\\u1EDC': 'O',\n\t'\\u1EDA': 'O',\n\t'\\u1EE0': 'O',\n\t'\\u1EDE': 'O',\n\t'\\u1EE2': 'O',\n\t'\\u1ECC': 'O',\n\t'\\u1ED8': 'O',\n\t'\\u01EA': 'O',\n\t'\\u01EC': 'O',\n\t'\\u00D8': 'O',\n\t'\\u01FE': 'O',\n\t'\\u0186': 'O',\n\t'\\u019F': 'O',\n\t'\\uA74A': 'O',\n\t'\\uA74C': 'O',\n\t'\\u01A2': 'OI',\n\t'\\uA74E': 'OO',\n\t'\\u0222': 'OU',\n\t'\\u24C5': 'P',\n\t'\\uFF30': 'P',\n\t'\\u1E54': 'P',\n\t'\\u1E56': 'P',\n\t'\\u01A4': 'P',\n\t'\\u2C63': 'P',\n\t'\\uA750': 'P',\n\t'\\uA752': 'P',\n\t'\\uA754': 'P',\n\t'\\u24C6': 'Q',\n\t'\\uFF31': 'Q',\n\t'\\uA756': 'Q',\n\t'\\uA758': 'Q',\n\t'\\u024A': 'Q',\n\t'\\u24C7': 'R',\n\t'\\uFF32': 'R',\n\t'\\u0154': 'R',\n\t'\\u1E58': 'R',\n\t'\\u0158': 'R',\n\t'\\u0210': 'R',\n\t'\\u0212': 'R',\n\t'\\u1E5A': 'R',\n\t'\\u1E5C': 'R',\n\t'\\u0156': 'R',\n\t'\\u1E5E': 'R',\n\t'\\u024C': 'R',\n\t'\\u2C64': 'R',\n\t'\\uA75A': 'R',\n\t'\\uA7A6': 'R',\n\t'\\uA782': 'R',\n\t'\\u24C8': 'S',\n\t'\\uFF33': 'S',\n\t'\\u1E9E': 'S',\n\t'\\u015A': 'S',\n\t'\\u1E64': 'S',\n\t'\\u015C': 'S',\n\t'\\u1E60': 'S',\n\t'\\u0160': 'S',\n\t'\\u1E66': 'S',\n\t'\\u1E62': 'S',\n\t'\\u1E68': 'S',\n\t'\\u0218': 'S',\n\t'\\u015E': 'S',\n\t'\\u2C7E': 'S',\n\t'\\uA7A8': 'S',\n\t'\\uA784': 'S',\n\t'\\u24C9': 'T',\n\t'\\uFF34': 'T',\n\t'\\u1E6A': 'T',\n\t'\\u0164': 'T',\n\t'\\u1E6C': 'T',\n\t'\\u021A': 'T',\n\t'\\u0162': 'T',\n\t'\\u1E70': 'T',\n\t'\\u1E6E': 'T',\n\t'\\u0166': 'T',\n\t'\\u01AC': 'T',\n\t'\\u01AE': 'T',\n\t'\\u023E': 'T',\n\t'\\uA786': 'T',\n\t'\\uA728': 'TZ',\n\t'\\u24CA': 'U',\n\t'\\uFF35': 'U',\n\t'\\u00D9': 'U',\n\t'\\u00DA': 'U',\n\t'\\u00DB': 'U',\n\t'\\u0168': 'U',\n\t'\\u1E78': 'U',\n\t'\\u016A': 'U',\n\t'\\u1E7A': 'U',\n\t'\\u016C': 'U',\n\t'\\u00DC': 'U',\n\t'\\u01DB': 'U',\n\t'\\u01D7': 'U',\n\t'\\u01D5': 'U',\n\t'\\u01D9': 'U',\n\t'\\u1EE6': 'U',\n\t'\\u016E': 'U',\n\t'\\u0170': 'U',\n\t'\\u01D3': 'U',\n\t'\\u0214': 'U',\n\t'\\u0216': 'U',\n\t'\\u01AF': 'U',\n\t'\\u1EEA': 'U',\n\t'\\u1EE8': 'U',\n\t'\\u1EEE': 'U',\n\t'\\u1EEC': 'U',\n\t'\\u1EF0': 'U',\n\t'\\u1EE4': 'U',\n\t'\\u1E72': 'U',\n\t'\\u0172': 'U',\n\t'\\u1E76': 'U',\n\t'\\u1E74': 'U',\n\t'\\u0244': 'U',\n\t'\\u24CB': 'V',\n\t'\\uFF36': 'V',\n\t'\\u1E7C': 'V',\n\t'\\u1E7E': 'V',\n\t'\\u01B2': 'V',\n\t'\\uA75E': 'V',\n\t'\\u0245': 'V',\n\t'\\uA760': 'VY',\n\t'\\u24CC': 'W',\n\t'\\uFF37': 'W',\n\t'\\u1E80': 'W',\n\t'\\u1E82': 'W',\n\t'\\u0174': 'W',\n\t'\\u1E86': 'W',\n\t'\\u1E84': 'W',\n\t'\\u1E88': 'W',\n\t'\\u2C72': 'W',\n\t'\\u24CD': 'X',\n\t'\\uFF38': 'X',\n\t'\\u1E8A': 'X',\n\t'\\u1E8C': 'X',\n\t'\\u24CE': 'Y',\n\t'\\uFF39': 'Y',\n\t'\\u1EF2': 'Y',\n\t'\\u00DD': 'Y',\n\t'\\u0176': 'Y',\n\t'\\u1EF8': 'Y',\n\t'\\u0232': 'Y',\n\t'\\u1E8E': 'Y',\n\t'\\u0178': 'Y',\n\t'\\u1EF6': 'Y',\n\t'\\u1EF4': 'Y',\n\t'\\u01B3': 'Y',\n\t'\\u024E': 'Y',\n\t'\\u1EFE': 'Y',\n\t'\\u24CF': 'Z',\n\t'\\uFF3A': 'Z',\n\t'\\u0179': 'Z',\n\t'\\u1E90': 'Z',\n\t'\\u017B': 'Z',\n\t'\\u017D': 'Z',\n\t'\\u1E92': 'Z',\n\t'\\u1E94': 'Z',\n\t'\\u01B5': 'Z',\n\t'\\u0224': 'Z',\n\t'\\u2C7F': 'Z',\n\t'\\u2C6B': 'Z',\n\t'\\uA762': 'Z',\n\t'\\u24D0': 'a',\n\t'\\uFF41': 'a',\n\t'\\u1E9A': 'a',\n\t'\\u00E0': 'a',\n\t'\\u00E1': 'a',\n\t'\\u00E2': 'a',\n\t'\\u1EA7': 'a',\n\t'\\u1EA5': 'a',\n\t'\\u1EAB': 'a',\n\t'\\u1EA9': 'a',\n\t'\\u00E3': 'a',\n\t'\\u0101': 'a',\n\t'\\u0103': 'a',\n\t'\\u1EB1': 'a',\n\t'\\u1EAF': 'a',\n\t'\\u1EB5': 'a',\n\t'\\u1EB3': 'a',\n\t'\\u0227': 'a',\n\t'\\u01E1': 'a',\n\t'\\u00E4': 'a',\n\t'\\u01DF': 'a',\n\t'\\u1EA3': 'a',\n\t'\\u00E5': 'a',\n\t'\\u01FB': 'a',\n\t'\\u01CE': 'a',\n\t'\\u0201': 'a',\n\t'\\u0203': 'a',\n\t'\\u1EA1': 'a',\n\t'\\u1EAD': 'a',\n\t'\\u1EB7': 'a',\n\t'\\u1E01': 'a',\n\t'\\u0105': 'a',\n\t'\\u2C65': 'a',\n\t'\\u0250': 'a',\n\t'\\uA733': 'aa',\n\t'\\u00E6': 'ae',\n\t'\\u01FD': 'ae',\n\t'\\u01E3': 'ae',\n\t'\\uA735': 'ao',\n\t'\\uA737': 'au',\n\t'\\uA739': 'av',\n\t'\\uA73B': 'av',\n\t'\\uA73D': 'ay',\n\t'\\u24D1': 'b',\n\t'\\uFF42': 'b',\n\t'\\u1E03': 'b',\n\t'\\u1E05': 'b',\n\t'\\u1E07': 'b',\n\t'\\u0180': 'b',\n\t'\\u0183': 'b',\n\t'\\u0253': 'b',\n\t'\\u24D2': 'c',\n\t'\\uFF43': 'c',\n\t'\\u0107': 'c',\n\t'\\u0109': 'c',\n\t'\\u010B': 'c',\n\t'\\u010D': 'c',\n\t'\\u00E7': 'c',\n\t'\\u1E09': 'c',\n\t'\\u0188': 'c',\n\t'\\u023C': 'c',\n\t'\\uA73F': 'c',\n\t'\\u2184': 'c',\n\t'\\u24D3': 'd',\n\t'\\uFF44': 'd',\n\t'\\u1E0B': 'd',\n\t'\\u010F': 'd',\n\t'\\u1E0D': 'd',\n\t'\\u1E11': 'd',\n\t'\\u1E13': 'd',\n\t'\\u1E0F': 'd',\n\t'\\u0111': 'd',\n\t'\\u018C': 'd',\n\t'\\u0256': 'd',\n\t'\\u0257': 'd',\n\t'\\uA77A': 'd',\n\t'\\u01F3': 'dz',\n\t'\\u01C6': 'dz',\n\t'\\u24D4': 'e',\n\t'\\uFF45': 'e',\n\t'\\u00E8': 'e',\n\t'\\u00E9': 'e',\n\t'\\u00EA': 'e',\n\t'\\u1EC1': 'e',\n\t'\\u1EBF': 'e',\n\t'\\u1EC5': 'e',\n\t'\\u1EC3': 'e',\n\t'\\u1EBD': 'e',\n\t'\\u0113': 'e',\n\t'\\u1E15': 'e',\n\t'\\u1E17': 'e',\n\t'\\u0115': 'e',\n\t'\\u0117': 'e',\n\t'\\u00EB': 'e',\n\t'\\u1EBB': 'e',\n\t'\\u011B': 'e',\n\t'\\u0205': 'e',\n\t'\\u0207': 'e',\n\t'\\u1EB9': 'e',\n\t'\\u1EC7': 'e',\n\t'\\u0229': 'e',\n\t'\\u1E1D': 'e',\n\t'\\u0119': 'e',\n\t'\\u1E19': 'e',\n\t'\\u1E1B': 'e',\n\t'\\u0247': 'e',\n\t'\\u025B': 'e',\n\t'\\u01DD': 'e',\n\t'\\u24D5': 'f',\n\t'\\uFF46': 'f',\n\t'\\u1E1F': 'f',\n\t'\\u0192': 'f',\n\t'\\uA77C': 'f',\n\t'\\u24D6': 'g',\n\t'\\uFF47': 'g',\n\t'\\u01F5': 'g',\n\t'\\u011D': 'g',\n\t'\\u1E21': 'g',\n\t'\\u011F': 'g',\n\t'\\u0121': 'g',\n\t'\\u01E7': 'g',\n\t'\\u0123': 'g',\n\t'\\u01E5': 'g',\n\t'\\u0260': 'g',\n\t'\\uA7A1': 'g',\n\t'\\u1D79': 'g',\n\t'\\uA77F': 'g',\n\t'\\u24D7': 'h',\n\t'\\uFF48': 'h',\n\t'\\u0125': 'h',\n\t'\\u1E23': 'h',\n\t'\\u1E27': 'h',\n\t'\\u021F': 'h',\n\t'\\u1E25': 'h',\n\t'\\u1E29': 'h',\n\t'\\u1E2B': 'h',\n\t'\\u1E96': 'h',\n\t'\\u0127': 'h',\n\t'\\u2C68': 'h',\n\t'\\u2C76': 'h',\n\t'\\u0265': 'h',\n\t'\\u0195': 'hv',\n\t'\\u24D8': 'i',\n\t'\\uFF49': 'i',\n\t'\\u00EC': 'i',\n\t'\\u00ED': 'i',\n\t'\\u00EE': 'i',\n\t'\\u0129': 'i',\n\t'\\u012B': 'i',\n\t'\\u012D': 'i',\n\t'\\u00EF': 'i',\n\t'\\u1E2F': 'i',\n\t'\\u1EC9': 'i',\n\t'\\u01D0': 'i',\n\t'\\u0209': 'i',\n\t'\\u020B': 'i',\n\t'\\u1ECB': 'i',\n\t'\\u012F': 'i',\n\t'\\u1E2D': 'i',\n\t'\\u0268': 'i',\n\t'\\u0131': 'i',\n\t'\\u24D9': 'j',\n\t'\\uFF4A': 'j',\n\t'\\u0135': 'j',\n\t'\\u01F0': 'j',\n\t'\\u0249': 'j',\n\t'\\u24DA': 'k',\n\t'\\uFF4B': 'k',\n\t'\\u1E31': 'k',\n\t'\\u01E9': 'k',\n\t'\\u1E33': 'k',\n\t'\\u0137': 'k',\n\t'\\u1E35': 'k',\n\t'\\u0199': 'k',\n\t'\\u2C6A': 'k',\n\t'\\uA741': 'k',\n\t'\\uA743': 'k',\n\t'\\uA745': 'k',\n\t'\\uA7A3': 'k',\n\t'\\u24DB': 'l',\n\t'\\uFF4C': 'l',\n\t'\\u0140': 'l',\n\t'\\u013A': 'l',\n\t'\\u013E': 'l',\n\t'\\u1E37': 'l',\n\t'\\u1E39': 'l',\n\t'\\u013C': 'l',\n\t'\\u1E3D': 'l',\n\t'\\u1E3B': 'l',\n\t'\\u017F': 'l',\n\t'\\u0142': 'l',\n\t'\\u019A': 'l',\n\t'\\u026B': 'l',\n\t'\\u2C61': 'l',\n\t'\\uA749': 'l',\n\t'\\uA781': 'l',\n\t'\\uA747': 'l',\n\t'\\u01C9': 'lj',\n\t'\\u24DC': 'm',\n\t'\\uFF4D': 'm',\n\t'\\u1E3F': 'm',\n\t'\\u1E41': 'm',\n\t'\\u1E43': 'm',\n\t'\\u0271': 'm',\n\t'\\u026F': 'm',\n\t'\\u24DD': 'n',\n\t'\\uFF4E': 'n',\n\t'\\u01F9': 'n',\n\t'\\u0144': 'n',\n\t'\\u00F1': 'n',\n\t'\\u1E45': 'n',\n\t'\\u0148': 'n',\n\t'\\u1E47': 'n',\n\t'\\u0146': 'n',\n\t'\\u1E4B': 'n',\n\t'\\u1E49': 'n',\n\t'\\u019E': 'n',\n\t'\\u0272': 'n',\n\t'\\u0149': 'n',\n\t'\\uA791': 'n',\n\t'\\uA7A5': 'n',\n\t'\\u01CC': 'nj',\n\t'\\u24DE': 'o',\n\t'\\uFF4F': 'o',\n\t'\\u00F2': 'o',\n\t'\\u00F3': 'o',\n\t'\\u00F4': 'o',\n\t'\\u1ED3': 'o',\n\t'\\u1ED1': 'o',\n\t'\\u1ED7': 'o',\n\t'\\u1ED5': 'o',\n\t'\\u00F5': 'o',\n\t'\\u1E4D': 'o',\n\t'\\u022D': 'o',\n\t'\\u1E4F': 'o',\n\t'\\u014D': 'o',\n\t'\\u1E51': 'o',\n\t'\\u1E53': 'o',\n\t'\\u014F': 'o',\n\t'\\u022F': 'o',\n\t'\\u0231': 'o',\n\t'\\u00F6': 'o',\n\t'\\u022B': 'o',\n\t'\\u1ECF': 'o',\n\t'\\u0151': 'o',\n\t'\\u01D2': 'o',\n\t'\\u020D': 'o',\n\t'\\u020F': 'o',\n\t'\\u01A1': 'o',\n\t'\\u1EDD': 'o',\n\t'\\u1EDB': 'o',\n\t'\\u1EE1': 'o',\n\t'\\u1EDF': 'o',\n\t'\\u1EE3': 'o',\n\t'\\u1ECD': 'o',\n\t'\\u1ED9': 'o',\n\t'\\u01EB': 'o',\n\t'\\u01ED': 'o',\n\t'\\u00F8': 'o',\n\t'\\u01FF': 'o',\n\t'\\u0254': 'o',\n\t'\\uA74B': 'o',\n\t'\\uA74D': 'o',\n\t'\\u0275': 'o',\n\t'\\u01A3': 'oi',\n\t'\\u0223': 'ou',\n\t'\\uA74F': 'oo',\n\t'\\u24DF': 'p',\n\t'\\uFF50': 'p',\n\t'\\u1E55': 'p',\n\t'\\u1E57': 'p',\n\t'\\u01A5': 'p',\n\t'\\u1D7D': 'p',\n\t'\\uA751': 'p',\n\t'\\uA753': 'p',\n\t'\\uA755': 'p',\n\t'\\u24E0': 'q',\n\t'\\uFF51': 'q',\n\t'\\u024B': 'q',\n\t'\\uA757': 'q',\n\t'\\uA759': 'q',\n\t'\\u24E1': 'r',\n\t'\\uFF52': 'r',\n\t'\\u0155': 'r',\n\t'\\u1E59': 'r',\n\t'\\u0159': 'r',\n\t'\\u0211': 'r',\n\t'\\u0213': 'r',\n\t'\\u1E5B': 'r',\n\t'\\u1E5D': 'r',\n\t'\\u0157': 'r',\n\t'\\u1E5F': 'r',\n\t'\\u024D': 'r',\n\t'\\u027D': 'r',\n\t'\\uA75B': 'r',\n\t'\\uA7A7': 'r',\n\t'\\uA783': 'r',\n\t'\\u24E2': 's',\n\t'\\uFF53': 's',\n\t'\\u00DF': 's',\n\t'\\u015B': 's',\n\t'\\u1E65': 's',\n\t'\\u015D': 's',\n\t'\\u1E61': 's',\n\t'\\u0161': 's',\n\t'\\u1E67': 's',\n\t'\\u1E63': 's',\n\t'\\u1E69': 's',\n\t'\\u0219': 's',\n\t'\\u015F': 's',\n\t'\\u023F': 's',\n\t'\\uA7A9': 's',\n\t'\\uA785': 's',\n\t'\\u1E9B': 's',\n\t'\\u24E3': 't',\n\t'\\uFF54': 't',\n\t'\\u1E6B': 't',\n\t'\\u1E97': 't',\n\t'\\u0165': 't',\n\t'\\u1E6D': 't',\n\t'\\u021B': 't',\n\t'\\u0163': 't',\n\t'\\u1E71': 't',\n\t'\\u1E6F': 't',\n\t'\\u0167': 't',\n\t'\\u01AD': 't',\n\t'\\u0288': 't',\n\t'\\u2C66': 't',\n\t'\\uA787': 't',\n\t'\\uA729': 'tz',\n\t'\\u24E4': 'u',\n\t'\\uFF55': 'u',\n\t'\\u00F9': 'u',\n\t'\\u00FA': 'u',\n\t'\\u00FB': 'u',\n\t'\\u0169': 'u',\n\t'\\u1E79': 'u',\n\t'\\u016B': 'u',\n\t'\\u1E7B': 'u',\n\t'\\u016D': 'u',\n\t'\\u00FC': 'u',\n\t'\\u01DC': 'u',\n\t'\\u01D8': 'u',\n\t'\\u01D6': 'u',\n\t'\\u01DA': 'u',\n\t'\\u1EE7': 'u',\n\t'\\u016F': 'u',\n\t'\\u0171': 'u',\n\t'\\u01D4': 'u',\n\t'\\u0215': 'u',\n\t'\\u0217': 'u',\n\t'\\u01B0': 'u',\n\t'\\u1EEB': 'u',\n\t'\\u1EE9': 'u',\n\t'\\u1EEF': 'u',\n\t'\\u1EED': 'u',\n\t'\\u1EF1': 'u',\n\t'\\u1EE5': 'u',\n\t'\\u1E73': 'u',\n\t'\\u0173': 'u',\n\t'\\u1E77': 'u',\n\t'\\u1E75': 'u',\n\t'\\u0289': 'u',\n\t'\\u24E5': 'v',\n\t'\\uFF56': 'v',\n\t'\\u1E7D': 'v',\n\t'\\u1E7F': 'v',\n\t'\\u028B': 'v',\n\t'\\uA75F': 'v',\n\t'\\u028C': 'v',\n\t'\\uA761': 'vy',\n\t'\\u24E6': 'w',\n\t'\\uFF57': 'w',\n\t'\\u1E81': 'w',\n\t'\\u1E83': 'w',\n\t'\\u0175': 'w',\n\t'\\u1E87': 'w',\n\t'\\u1E85': 'w',\n\t'\\u1E98': 'w',\n\t'\\u1E89': 'w',\n\t'\\u2C73': 'w',\n\t'\\u24E7': 'x',\n\t'\\uFF58': 'x',\n\t'\\u1E8B': 'x',\n\t'\\u1E8D': 'x',\n\t'\\u24E8': 'y',\n\t'\\uFF59': 'y',\n\t'\\u1EF3': 'y',\n\t'\\u00FD': 'y',\n\t'\\u0177': 'y',\n\t'\\u1EF9': 'y',\n\t'\\u0233': 'y',\n\t'\\u1E8F': 'y',\n\t'\\u00FF': 'y',\n\t'\\u1EF7': 'y',\n\t'\\u1E99': 'y',\n\t'\\u1EF5': 'y',\n\t'\\u01B4': 'y',\n\t'\\u024F': 'y',\n\t'\\u1EFF': 'y',\n\t'\\u24E9': 'z',\n\t'\\uFF5A': 'z',\n\t'\\u017A': 'z',\n\t'\\u1E91': 'z',\n\t'\\u017C': 'z',\n\t'\\u017E': 'z',\n\t'\\u1E93': 'z',\n\t'\\u1E95': 'z',\n\t'\\u01B6': 'z',\n\t'\\u0225': 'z',\n\t'\\u0240': 'z',\n\t'\\u2C6C': 'z',\n\t'\\uA763': 'z',\n\t'\\u0386': '\\u0391',\n\t'\\u0388': '\\u0395',\n\t'\\u0389': '\\u0397',\n\t'\\u038A': '\\u0399',\n\t'\\u03AA': '\\u0399',\n\t'\\u038C': '\\u039F',\n\t'\\u038E': '\\u03A5',\n\t'\\u03AB': '\\u03A5',\n\t'\\u038F': '\\u03A9',\n\t'\\u03AC': '\\u03B1',\n\t'\\u03AD': '\\u03B5',\n\t'\\u03AE': '\\u03B7',\n\t'\\u03AF': '\\u03B9',\n\t'\\u03CA': '\\u03B9',\n\t'\\u0390': '\\u03B9',\n\t'\\u03CC': '\\u03BF',\n\t'\\u03CD': '\\u03C5',\n\t'\\u03CB': '\\u03C5',\n\t'\\u03B0': '\\u03C5',\n\t'\\u03C9': '\\u03C9',\n\t'\\u03C2': '\\u03C3',\n};\n\nexport function stripSpecialChars(text: string): string {\n\tconst match = (a: string): string => diacritics[a] || a;\n\t// eslint-disable-next-line no-control-regex\n\treturn 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\tprivate _groups: OptionGroups;\n\n\tconstructor(\n\t\tprivate _ngSelect: NgSelectComponent,\n\t\tprivate _selectionModel: SelectionModel,\n\t) {}\n\n\tprivate _items: NgOption[] = [];\n\n\tget items(): NgOption[] {\n\t\treturn this._items;\n\t}\n\n\tprivate _filteredItems: NgOption[] = [];\n\n\tget filteredItems(): NgOption[] {\n\t\treturn this._filteredItems;\n\t}\n\n\tprivate _markedIndex = -1;\n\n\tget markedIndex(): number {\n\t\treturn this._markedIndex;\n\t}\n\n\tget selectedItems() {\n\t\treturn this._selectionModel.value;\n\t}\n\n\tget markedItem(): NgOption {\n\t\treturn this._filteredItems[this._markedIndex];\n\t}\n\n\tget noItemsToSelect(): boolean {\n\t\treturn this._ngSelect.hideSelected() && this._items.length === this.selectedItems.length;\n\t}\n\n\tget maxItemsSelected(): boolean {\n\t\treturn this._ngSelect.multiple() && this._ngSelect.maxSelectedItems() <= this.selectedItems.length;\n\t}\n\n\tget lastSelectedItem() {\n\t\tlet i = this.selectedItems.length - 1;\n\t\tfor (; i >= 0; i--) {\n\t\t\tconst item = this.selectedItems[i];\n\t\t\tif (!item.disabled) {\n\t\t\t\treturn item;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tsetItems(items: readonly any[]) {\n\t\tthis._items = items.map((item, index) => this.mapItem(item, index));\n\t\tconst groupBy = this._ngSelect.groupBy();\n\t\tif (groupBy) {\n\t\t\tthis._groups = this._groupBy(this._items, groupBy);\n\t\t\tthis._items = this._flatten(this._groups);\n\t\t} else {\n\t\t\tthis._groups = new Map();\n\t\t\tthis._groups.set(undefined, this._items);\n\t\t}\n\t\tthis._filteredItems = [...this._items];\n\t}\n\n\tselect(item: NgOption) {\n\t\tif (item.selected || this.maxItemsSelected) {\n\t\t\treturn;\n\t\t}\n\t\tconst multiple = this._ngSelect.multiple();\n\t\tif (!multiple) {\n\t\t\tthis.clearSelected();\n\t\t}\n\n\t\tthis._selectionModel.select(item, multiple, this._ngSelect.selectableGroupAsModel());\n\t\tif (this._ngSelect.hideSelected()) {\n\t\t\tthis._hideSelected(item);\n\t\t}\n\t}\n\n\tunselect(item: NgOption) {\n\t\tif (!item.selected) {\n\t\t\treturn;\n\t\t}\n\t\tconst multiple = this._ngSelect.multiple();\n\t\tthis._selectionModel.unselect(item, multiple);\n\t\tif (this._ngSelect.hideSelected() && isDefined(item.index) && multiple) {\n\t\t\tthis._showSelected(item);\n\t\t}\n\t}\n\n\tfindItem(value: any): NgOption {\n\t\tlet findBy: (item: NgOption) => boolean;\n\t\tif (this._ngSelect.compareWith()) {\n\t\t\tfindBy = (item) => this._ngSelect.compareWith()(item.value, value);\n\t\t} else if (this._ngSelect.bindValue()) {\n\t\t\tfindBy = (item) => !item.children && this.resolveNested(item.value, this._ngSelect.bindValue()) === value;\n\t\t} else {\n\t\t\tfindBy = (item) =>\n\t\t\t\titem.value === value || (!item.children && item.label && item.label === this.resolveNested(value, this._ngSelect.bindLabel()));\n\t\t}\n\t\treturn this._items.find((item) => findBy(item));\n\t}\n\n\taddItem(item: any) {\n\t\tconst option = this.mapItem(item, this._items.length);\n\t\tthis._items.push(option);\n\t\tthis._filteredItems.push(option);\n\t\treturn option;\n\t}\n\n\tclearSelected(keepDisabled = false) {\n\t\tthis._selectionModel.clear(keepDisabled);\n\t\tthis._items.forEach((item) => {\n\t\t\titem.selected = keepDisabled && item.selected && item.disabled;\n\t\t\titem.marked = false;\n\t\t});\n\t\tif (this._ngSelect.hideSelected()) {\n\t\t\tthis.resetFilteredItems();\n\t\t}\n\t}\n\n\tfindByLabel(term: string) {\n\t\tterm = searchHelper.stripSpecialChars(term).toLocaleLowerCase();\n\t\treturn this.filteredItems.find((item) => {\n\t\t\tconst label = searchHelper.stripSpecialChars(item.label).toLocaleLowerCase();\n\t\t\treturn label.substr(0, term.length) === term;\n\t\t});\n\t}\n\n\tfilter(term: string): void {\n\t\tif (!term) {\n\t\t\tthis.resetFilteredItems();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._filteredItems = [];\n\t\tterm = this._ngSelect.searchFn() ? term : searchHelper.stripSpecialChars(term).toLocaleLowerCase();\n\t\tconst match = this._ngSelect.searchFn() || this._defaultSearchFn;\n\t\tconst hideSelected = this._ngSelect.hideSelected();\n\n\t\tfor (const key of Array.from(this._groups.keys())) {\n\t\t\tconst matchedItems = [];\n\t\t\tfor (const item of this._groups.get(key)) {\n\t\t\t\tif (hideSelected && ((item.parent && item.parent.selected) || item.selected)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst searchItem = this._ngSelect.searchFn() ? item.value : item;\n\t\t\t\tif (match(term, searchItem)) {\n\t\t\t\t\tmatchedItems.push(item);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (matchedItems.length > 0) {\n\t\t\t\tconst [last] = matchedItems.slice(-1);\n\t\t\t\tif (last.parent) {\n\t\t\t\t\tconst head = this._items.find((x) => x === last.parent);\n\t\t\t\t\tthis._filteredItems.push(head);\n\t\t\t\t}\n\t\t\t\tthis._filteredItems.push(...matchedItems);\n\t\t\t}\n\t\t}\n\t}\n\n\tresetFilteredItems() {\n\t\tif (this._filteredItems.length === this._items.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._ngSelect.hideSelected() && this.selectedItems.length > 0) {\n\t\t\tthis._filteredItems = this._items.filter((x) => !x.selected);\n\t\t} else {\n\t\t\tthis._filteredItems = this._items;\n\t\t}\n\t}\n\n\tunmarkItem() {\n\t\tthis._markedIndex = -1;\n\t}\n\n\tmarkNextItem() {\n\t\tthis._stepToItem(+1);\n\t}\n\n\tmarkPreviousItem() {\n\t\tthis._stepToItem(-1);\n\t}\n\n\tmarkItem(item: NgOption) {\n\t\tthis._markedIndex = this._filteredItems.indexOf(item);\n\t}\n\n\tmarkSelectedOrDefault(markDefault?: boolean) {\n\t\tif (this._filteredItems.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst lastMarkedIndex = this._getLastMarkedIndex();\n\t\tif (lastMarkedIndex > -1) {\n\t\t\tthis._markedIndex = lastMarkedIndex;\n\t\t} else {\n\t\t\tthis._markedIndex = markDefault ? this.filteredItems.findIndex((x) => !x.disabled) : -1;\n\t\t}\n\t}\n\n\tresolveNested(option: any, key: string): any {\n\t\tif (!isObject(option)) {\n\t\t\treturn option;\n\t\t}\n\t\tif (key.indexOf('.') === -1) {\n\t\t\treturn option[key];\n\t\t} else {\n\t\t\tconst keys: string[] = key.split('.');\n\t\t\tlet value = option;\n\t\t\tfor (let i = 0, len = keys.length; i < len; ++i) {\n\t\t\t\tif (value == null) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tvalue = value[keys[i]];\n\t\t\t}\n\t\t\treturn value;\n\t\t}\n\t}\n\n\tmapItem(item: any, index: number): NgOption {\n\t\tconst hasNgOptionLabel = isObject(item) && '$ngOptionLabel' in item;\n\t\tconst hasNgOptionValue = isObject(item) && '$ngOptionValue' in item;\n\t\tconst label = hasNgOptionLabel ? item.$ngOptionLabel : this.resolveNested(item, this._ngSelect.bindLabel());\n\t\tconst value = hasNgOptionValue ? item.$ngOptionValue : item;\n\t\treturn {\n\t\t\tindex,\n\t\t\tlabel: isDefined(label) ? label.toString() : '',\n\t\t\tvalue,\n\t\t\tdisabled: item && item.disabled ? item.disabled : false,\n\t\t\thtmlId: `${this._ngSelect.dropdownId}-${index}`,\n\t\t};\n\t}\n\n\tmapSelectedItems() {\n\t\tconst multiple = this._ngSelect.multiple();\n\t\tfor (const selected of this.selectedItems) {\n\t\t\tconst bindValue = this._ngSelect.bindValue();\n\t\t\tlet item: NgOption | null = null;\n\n\t\t\t// When compareWith is used, we need to find the item using the original selected value rather than the extracted bindValue,\n\t\t\t// since compareWith expects to compare against the original value\n\t\t\tif (this._ngSelect.compareWith()) {\n\t\t\t\titem = this._items.find((item) => this._ngSelect.compareWith()(item.value, selected.value));\n\t\t\t} else {\n\t\t\t\tconst value = bindValue ? this.resolveNested(selected.value, bindValue) : selected.value;\n\t\t\t\titem = isDefined(value) ? this.findItem(value) : null;\n\t\t\t}\n\n\t\t\tthis._selectionModel.unselect(selected, multiple);\n\t\t\tthis._selectionModel.select(item || selected, multiple, this._ngSelect.selectableGroupAsModel());\n\t\t}\n\n\t\tif (this._ngSelect.hideSelected()) {\n\t\t\tthis._filteredItems = this.filteredItems.filter((x) => this.selectedItems.indexOf(x) === -1);\n\t\t}\n\t}\n\n\tprivate _showSelected(item: NgOption) {\n\t\tthis._filteredItems.push(item);\n\t\tif (item.parent) {\n\t\t\tconst parent = item.parent;\n\t\t\tconst parentExists = this._filteredItems.find((x) => x === parent);\n\t\t\tif (!parentExists) {\n\t\t\t\tthis._filteredItems.push(parent);\n\t\t\t}\n\t\t} else if (item.children) {\n\t\t\tfor (const child of item.children) {\n\t\t\t\tchild.selected = false;\n\t\t\t\tthis._filteredItems.push(child);\n\t\t\t}\n\t\t}\n\t\tthis._filteredItems = [...this._filteredItems.sort((a, b) => a.index - b.index)];\n\t}\n\n\tprivate _hideSelected(item: NgOption) {\n\t\tthis._filteredItems = this._filteredItems.filter((x) => x !== item);\n\t\tif (item.parent) {\n\t\t\tconst children = item.parent.children;\n\t\t\tif (children.every((x) => x.selected)) {\n\t\t\t\tthis._filteredItems = this._filteredItems.filter((x) => x !== item.parent);\n\t\t\t}\n\t\t} else if (item.children) {\n\t\t\tthis._filteredItems = this.filteredItems.filter((x) => x.parent !== item);\n\t\t}\n\t}\n\n\tprivate _defaultSearchFn(search: string, opt: NgOption) {\n\t\tconst label = searchHelper.stripSpecialChars(opt.label).toLocaleLowerCase();\n\t\treturn label.indexOf(search) > -1;\n\t}\n\n\tprivate _getNextItemIndex(steps: number) {\n\t\tif (steps > 0) {\n\t\t\treturn this._markedIndex >= this._filteredItems.length - 1 ? 0 : this._markedIndex + 1;\n\t\t}\n\t\treturn this._markedIndex <= 0 ? this._filteredItems.length - 1 : this._markedIndex - 1;\n\t}\n\n\tprivate _stepToItem(steps: number) {\n\t\tif (this._filteredItems.length === 0 || this._filteredItems.every((x) => x.disabled)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._markedIndex = this._getNextItemIndex(steps);\n\t\tif (this.markedItem.disabled) {\n\t\t\tthis._stepToItem(steps);\n\t\t}\n\t}\n\n\tprivate _getLastMarkedIndex() {\n\t\tif (this._ngSelect.hideSelected()) {\n\t\t\treturn -1;\n\t\t}\n\n\t\tif (this._markedIndex > -1 && this.markedItem === undefined) {\n\t\t\treturn -1;\n\t\t}\n\n\t\tconst selectedIndex = this._filteredItems.indexOf(this.lastSelectedItem);\n\t\tif (this.lastSelectedItem && selectedIndex < 0) {\n\t\t\treturn -1;\n\t\t}\n\n\t\treturn Math.max(this.markedIndex, selectedIndex);\n\t}\n\n\tprivate _groupBy(items: NgOption[], prop: string | ((value: any) => any)): OptionGroups {\n\t\tconst groups = new Map<string | NgOption, NgOption[]>();\n\t\tif (items.length === 0) {\n\t\t\treturn groups;\n\t\t}\n\n\t\t// Check if items are already grouped by given key.\n\t\tif (Array.isArray(items[0].value[<string>prop])) {\n\t\t\tfor (const item of items) {\n\t\t\t\tconst children = (item.value[<string>prop] || []).map((x, index) => this.mapItem(x, index));\n\t\t\t\tgroups.set(item, children);\n\t\t\t}\n\t\t\treturn groups;\n\t\t}\n\n\t\tconst isFnKey = isFunction(this._ngSelect.groupBy());\n\t\tconst keyFn = (item: NgOption) => {\n\t\t\tconst key = isFnKey ? (<(value: any) => any>prop)(item.value) : item.value[<string>prop];\n\t\t\treturn isDefined(key) ? key : undefined;\n\t\t};\n\n\t\t// Group items by key.\n\t\tfor (const item of items) {\n\t\t\tconst key = keyFn(item);\n\t\t\tconst group = groups.get(key);\n\t\t\tif (group) {\n\t\t\t\tgroup.push(item);\n\t\t\t} else {\n\t\t\t\tgroups.set(key, [item]);\n\t\t\t}\n\t\t}\n\t\treturn groups;\n\t}\n\n\tprivate _flatten(groups: OptionGroups) {\n\t\tconst isGroupByFn = isFunction(this._ngSelect.groupBy());\n\t\tconst items = [];\n\t\tfor (const key of Array.from(groups.keys())) {\n\t\t\tlet i = items.length;\n\t\t\tif (key === undefined) {\n\t\t\t\tconst withoutGroup = groups.get(undefined) || [];\n\t\t\t\titems.push(\n\t\t\t\t\t...withoutGroup.map((x) => {\n\t\t\t\t\t\tx.index = i++;\n\t\t\t\t\t\treturn x;\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst isObjectKey = isObject(key);\n\t\t\tconst parent: NgOption = {\n\t\t\t\tlabel: isObjectKey ? '' : String(key),\n\t\t\t\tchildren: undefined,\n\t\t\t\tparent: null,\n\t\t\t\tindex: i++,\n\t\t\t\tdisabled: !this._ngSelect.selectableGroup(),\n\t\t\t\thtmlId: newId(),\n\t\t\t};\n\t\t\tconst groupKey = isGroupByFn ? this._ngSelect.bindLabel() : <string>this._ngSelect.groupBy();\n\t\t\tconst groupValue =\n\t\t\t\tthis._ngSelect.groupValue() ||\n\t\t\t\t(() => {\n\t\t\t\t\tif (isObjectKey) {\n\t\t\t\t\t\treturn (<NgOption>key).value;\n\t\t\t\t\t}\n\t\t\t\t\treturn { [groupKey]: key };\n\t\t\t\t});\n\t\t\tconst children = groups.get(key).map((x) => {\n\t\t\t\tx.parent = parent;\n\t\t\t\tx.children = undefined;\n\t\t\t\tx.index = i++;\n\t\t\t\treturn x;\n\t\t\t});\n\t\t\tparent.children = children;\n\t\t\tparent.value = groupValue(\n\t\t\t\tkey,\n\t\t\t\tchildren.map((x) => x.value),\n\t\t\t);\n\t\t\titems.push(parent);\n\t\t\titems.push(...children);\n\t\t}\n\t\treturn items;\n\t}\n}\n","import { Injectable } from '@angular/core';\nexport interface ItemsRangeResult {\n\tscrollHeight: number;\n\ttopPadding: number;\n\tstart: number;\n\tend: number;\n}\n\nexport interface PanelDimensions {\n\titemHeight: number;\n\tpanelHeight: number;\n\titemsPerViewport: number;\n}\n\n@Injectable()\nexport class NgDropdownPanelService {\n\tprivate _dimensions: PanelDimensions = {\n\t\titemHeight: 0,\n\t\tpanelHeight: 0,\n\t\titemsPerViewport: 0,\n\t};\n\n\tget dimensions() {\n\t\treturn this._dimensions;\n\t}\n\n\tcalculateItems(scrollPos: number, itemsLength: number, buffer: number): ItemsRangeResult {\n\t\tconst d = this._dimensions;\n\t\tconst scrollHeight = d.itemHeight * itemsLength;\n\n\t\tconst scrollTop = Math.max(0, scrollPos);\n\t\tconst indexByScrollTop = (scrollTop / scrollHeight) * itemsLength;\n\t\tlet end = Math.min(itemsLength, Math.ceil(indexByScrollTop) + (d.itemsPerViewport + 1));\n\n\t\tconst maxStartEnd = end;\n\t\tconst maxStart = Math.max(0, maxStartEnd - d.itemsPerViewport);\n\t\tlet start = Math.min(maxStart, Math.floor(indexByScrollTop));\n\n\t\tlet topPadding = d.itemHeight * Math.ceil(start) - d.itemHeight * Math.min(start, buffer);\n\t\ttopPadding = !isNaN(topPadding) ? topPadding : 0;\n\t\tstart = !isNaN(start) ? start : -1;\n\t\tend = !isNaN(end) ? end : -1;\n\t\tstart -= buffer;\n\t\tstart = Math.max(0, start);\n\t\tend += buffer;\n\t\tend = Math.min(itemsLength, end);\n\n\t\treturn {\n\t\t\ttopPadding,\n\t\t\tscrollHeight,\n\t\t\tstart,\n\t\t\tend,\n\t\t};\n\t}\n\n\tsetDimensions(itemHeight: number, panelHeight: number) {\n\t\tconst itemsPerViewport = Math.max(1, Math.floor(panelHeight / itemHeight));\n\t\tthis._dimensions = {\n\t\t\titemHeight,\n\t\t\tpanelHeight,\n\t\t\titemsPerViewport,\n\t\t};\n\t}\n\n\tgetScrollTo(itemTop: number, itemHeight: number, lastScroll: number) {\n\t\tconst { panelHeight } = this.dimensions;\n\t\tconst itemBottom = itemTop + itemHeight;\n\t\tconst top = lastScroll;\n\t\tconst bottom = top + panelHeight;\n\n\t\tif (panelHeight >= itemBottom && lastScroll === itemTop) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif (itemBottom > bottom) {\n\t\t\treturn top + itemBottom - bottom;\n\t\t} else if (itemTop <= top) {\n\t\t\treturn itemTop;\n\t\t}\n\n\t\treturn null;\n\t}\n}\n","import { DOCUMENT, NgTemplateOutlet } from '@angular/common';\nimport {\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tDestroyRef,\n\tElementRef,\n\tinject,\n\tinput,\n\tNgZone,\n\tOnChanges,\n\tOnInit,\n\toutput,\n\tRenderer2,\n\tSimpleChanges,\n\tTemplateRef,\n\tviewChild,\n\tViewEncapsulation,\n} from '@angular/core';\n\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { animationFrameScheduler, asapScheduler, fromEvent } from 'rxjs';\nimport { auditTime } from 'rxjs/operators';\nimport { NgDropdownPanelService, PanelDimensions } from './ng-dropdown-panel.service';\n\nimport { DropdownPosition, NgOption } from './ng-select.types';\nimport { isDefined } from './value-utils';\n\nconst CSS_POSITIONS: readonly string[] = ['top', 'right', 'bottom', 'left'];\nconst SCROLL_SCHEDULER = typeof requestAnimationFrame !== 'undefined' ? animationFrameScheduler : asapScheduler;\n\n@Component({\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\tselector: 'ng-dropdown-panel',\n\ttemplate: `\n\t\t@if (headerTemplate()) {\n\t\t\t<div class=\"ng-dropdown-header\">\n\t\t\t\t<ng-container [ngTemplateOutlet]=\"headerTemplate()\" [ngTemplateOutletContext]=\"{ searchTerm: filterValue() }\" />\n\t\t\t</div>\n\t\t}\n\t\t<div #scroll role=\"listbox\" class=\"ng-dropdown-panel-items scroll-host\" [attr.aria-label]=\"ariaLabelDropdown()\">\n\t\t\t<div #padding [class.total-padding]=\"virtualScroll()\"></div>\n\t\t\t<div #content [class.scrollable-content]=\"virtualScroll() && items().length\">\n\t\t\t\t<ng-content />\n\t\t\t</div>\n\t\t</div>\n\t\t@if (footerTemplate()) {\n\t\t\t<div class=\"ng-dropdown-footer\">\n\t\t\t\t<ng-container [ngTemplateOutlet]=\"footerTemplate()\" [ngTemplateOutletContext]=\"{ searchTerm: filterValue() }\" />\n\t\t\t</div>\n\t\t}\n\t`,\n\timports: [NgTemplateOutlet],\n})\nexport class NgDropdownPanelComponent implements OnInit, OnChanges {\n\treadonly items = input<NgOption[]>([]);\n\treadonly showAddTag = input(false, { transform: booleanAttribute });\n\treadonly markedItem = input<NgOption>(undefined);\n\treadonly position = input<DropdownPosition>('auto');\n\treadonly appendTo = input<string>(undefined);\n\treadonly bufferAmount = input<number>(undefined);\n\treadonly virtualScroll = input(false, { transform: booleanAttribute });\n\treadonly headerTemplate = input<TemplateRef<any>>(undefined);\n\treadonly footerTemplate = input<TemplateRef<any>>(undefined);\n\treadonly filterValue = input<string>(null);\n\treadonly ariaLabelDropdown = input<string | null>(null);\n\t/**\n\t * Which DOM event to listen to for outside click detection\n\t */\n\treadonly outsideClickEvent = input<'click' | 'mousedown'>('click');\n\treadonly update = output<any[]>();\n\treadonly scroll = output<{\n\t\tstart: number;\n\t\tend: number;\n\t}>();\n\treadonly scrollToEnd = output<void>();\n\treadonly outsideClick = output<void>();\n\tprivate _renderer = inject(Renderer2);\n\tprivate _zone = inject(NgZone);\n\tprivate _panelService = inject(NgDropdownPanelService);\n\tprivate _document = inject(DOCUMENT, { optional: true })!;\n\tprivate _destroyRef = inject(DestroyRef);\n\tprivate _dropdown = inject(ElementRef<HTMLElement>).nativeElement;\n\tprivate readonly contentElementRef = viewChild('content', { read: ElementRef });\n\tprivate readonly scrollElementRef = viewChild('scroll', { read: ElementRef });\n\tprivate readonly paddingElementRef = viewChild('padding', { read: ElementRef });\n\n\tprivate readonly _virtualPadding = computed(() => this.paddingElementRef()?.nativeElement);\n\tprivate readonly _scrollablePanel = computed(() => this.scrollElementRef()?.nativeElement);\n\tprivate readonly _contentPanel = computed(() => this.contentElementRef()?.nativeElement);\n\n\tprivate _select: HTMLElement | undefined;\n\tprivate _parent: HTMLElement;\n\tprivate _scrollToEndFired = false;\n\tprivate _updateScrollHeight = false;\n\tprivate _lastScrollPosition = 0;\n\n\tconstructor() {\n\t\tthis._destroyRef.onDestroy(() => {\n\t\t\tif (this.appendTo()) {\n\t\t\t\tthis._renderer.removeChild(this._dropdown.parentNode, this._dropdown);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate _currentPosition: DropdownPosition;\n\n\tget currentPosition(): DropdownPosition {\n\t\treturn this._currentPosition;\n\t}\n\n\tprivate _itemsLength: number;\n\n\tprivate get itemsLength() {\n\t\treturn this._itemsLength;\n\t}\n\n\tprivate set itemsLength(value: number) {\n\t\tif (value !== this._itemsLength) {\n\t\t\tthis._itemsLength = value;\n\t\t\tthis._onItemsLengthChanged();\n\t\t}\n\t}\n\n\tprivate get _startOffset() {\n\t\tif (this.markedItem()) {\n\t\t\tconst { itemHeight, panelHeight } = this._panelService.dimensions;\n\t\t\tconst offset = this.markedItem().index * itemHeight;\n\t\t\treturn panelHeight > offset ? 0 : offset;\n\t\t}\n\t\treturn 0;\n\t}\n\n\tngOnInit() {\n\t\tthis._select = this._dropdown.parentElement;\n\t\tthis._handleScroll();\n\t\tthis._handleOutsideClick();\n\t\tthis._appendDropdown();\n\t\tthis._setupMousedownListener();\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\tif (changes.items) {\n\t\t\tconst change = changes.items;\n\t\t\tthis._onItemsOrShowAddTagChange(change.currentValue, this.showAddTag(), change.firstChange);\n\t\t}\n\t\tif (changes.showAddTag) {\n\t\t\tconst change = changes.showAddTag;\n\t\t\tthis._onItemsOrShowAddTagChange(this.items(), change.currentValue, change.firstChange);\n\t\t}\n\t}\n\n\tscrollTo(option: NgOption, startFromOption = false) {\n\t\tif (!option) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst index = this.items().indexOf(option);\n\t\tif (index < 0 || index >= this.itemsLength) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet scrollTo;\n\t\tif (this.virtualScroll()) {\n\t\t\tconst itemHeight = this._panelService.dimensions.itemHeight;\n\t\t\tscrollTo = this._panelService.getScrollTo(index * itemHeight, itemHeight, this._lastScrollPosition);\n\t\t} else {\n\t\t\tconst item: HTMLElement = this._dropdown.querySelector(`#${option.htmlId}`);\n\t\t\tconst lastScroll = startFromOption ? item.offsetTop : this._lastScrollPosition;\n\t\t\tscrollTo = this._panelService.getScrollTo(item.offsetTop, item.clientHeight, lastScroll);\n\t\t}\n\n\t\tif (isDefined(scrollTo)) {\n\t\t\tthis._scrollablePanel().scrollTop = scrollTo;\n\t\t}\n\t}\n\n\tscrollToTag() {\n\t\tconst panel = this._scrollablePanel();\n\t\tpanel.scrollTop = panel.scrollHeight - panel.clientHeight;\n\t}\n\n\tadjustPosition() {\n\t\tthis._updateYPosition();\n\t}\n\n\tprivate _handleDropdownPosition() {\n\t\tthis._currentPosition = this._calculateCurrentPosition(this._dropdown);\n\t\tif (CSS_POSITIONS.includes(this._currentPosition)) {\n\t\t\tthis._updateDropdownClass(this._currentPosition);\n\t\t} else {\n\t\t\tthis._updateDropdownClass('bottom');\n\t\t}\n\n\t\tif (this.appendTo()) {\n\t\t\tthis._updateYPosition();\n\t\t}\n\n\t\tthis._dropdown.style.opacity = '1';\n\t}\n\n\tprivate _updateDropdownClass(currentPosition: string) {\n\t\tCSS_POSITIONS.forEach((position) => {\n\t\t\tconst REMOVE_CSS_CLASS = `ng-select-${position}`;\n\t\t\tthis._renderer.removeClass(this._dropdown, REMOVE_CSS_CLASS);\n\t\t\tthis._renderer.removeClass(this._select, REMOVE_CSS_CLASS);\n\t\t});\n\n\t\tconst ADD_CSS_CLASS = `ng-select-${currentPosition}`;\n\t\tthis._renderer.addClass(this._dropdown, ADD_CSS_CLASS);\n\t\tthis._renderer.addClass(this._select, ADD_CSS_CLASS);\n\t}\n\n\tprivate _handleScroll() {\n\t\tthis._zone.runOutsideAngular(() => {\n\t\t\tif (!this._scrollablePanel()) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tfromEvent(this._scrollablePanel(), 'scroll')\n\t\t\t\t.pipe(takeUntilDestroyed(this._destroyRef), auditTime(0, SCROLL_SCHEDULER))\n\t\t\t\t.subscribe((event: Event) => {\n\t\t\t\t\tconst target = event.target as HTMLElement;\n\t\t\t\t\tif (target && 'scrollTop' in target) {\n\t\t\t\t\t\tthis._onContentScrolled(target.scrollTop);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t});\n\t}\n\n\tprivate _handleOutsideClick() {\n\t\tif (!this._document) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._zone.runOutsideAngular(() => {\n\t\t\tfromEvent(this._document, this.outsideClickEvent(), { capture: true })\n\t\t\t\t.pipe(takeUntilDestroyed(this._destroyRef))\n\t\t\t\t.subscribe(($event) => this._checkToClose($event));\n\t\t});\n\t}\n\n\tprivate _checkToClose($event: any) {\n\t\tif (this._select.contains($event.target) || this._dropdown.contains($event.target)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst path = $event.path || ($event.composedPath && $event.composedPath());\n\t\tif ($event.target && $event.target.shadowRoot && path && path[0] && this._select.contains(path[0])) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._zone.run(() => this.outsideClick.emit());\n\t}\n\n\tprivate _onItemsOrShowAddTagChange(items: NgOption[] = [], showAddTag: boolean, firstChange: boolean) {\n\t\tthis._scrollToEndFired = false;\n\t\tthis.itemsLength = items.length;\n\t\tif (showAddTag && items.length) {\n\t\t\tthis.itemsLength++;\n\t\t}\n\n\t\tif (this.virtualScroll()) {\n\t\t\tthis._updateItemsRange(firstChange);\n\t\t} else {\n\t\t\tthis._setVirtualHeight();\n\t\t\tthis._updateItems(firstChange);\n\t\t}\n\t}\n\n\tprivate _updateItems(firstChange: boolean) {\n\t\tthis.update.emit(this.items());\n\t\tif (firstChange === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._zone.runOutsideAngular(() => {\n\t\t\tPromise.resolve().then(() => {\n\t\t\t\tconst panelHeight = this._scrollablePanel().clientHeight;\n\t\t\t\tthis._panelService.setDimensions(0, panelHeight);\n\t\t\t\tthis._handleDropdownPosition();\n\t\t\t\tthis.scrollTo(this.markedItem(), firstChange);\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate _updateItemsRange(firstChange: boolean) {\n\t\tthis._zone.runOutsideAngular(() => {\n\t\t\tthis._measureDimensions().then(() => {\n\t\t\t\tif (firstChange) {\n\t\t\t\t\tthis._renderItemsRange(this._startOffset);\n\t\t\t\t\tthis._handleDropdownPosition();\n\t\t\t\t} else {\n\t\t\t\t\tthis._renderItemsRange();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate _onContentScrolled(scrollTop: number) {\n\t\tif (this.virtualScroll()) {\n\t\t\tthis._renderItemsRange(scrollTop);\n\t\t}\n\t\tthis._lastScrollPosition = scrollTop;\n\t\tthis._fireScrollToEnd(scrollTop);\n\t}\n\n\tprivate _updateVirtualHeight(height: number) {\n\t\tif (this._updateScrollHeight) {\n\t\t\tthis._virtualPadding().style.height = `${height}px`;\n\t\t\tthis._updateScrollHeight = false;\n\t\t}\n\t}\n\n\tprivate _setVirtualHeight() {\n\t\tif (!this._virtualPadding()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._virtualPadding().style.height = `0px`;\n\t}\n\n\tprivate _onItemsLengthChanged() {\n\t\tthis._updateScrollHeight = true;\n\t}\n\n\tprivate _renderItemsRange(scrollTop = null) {\n\t\tif (scrollTop && this._lastScrollPosition === scrollTop) {\n\t\t\treturn;\n\t\t}\n\n\t\tscrollTop = scrollTop || this._scrollablePanel().scrollTop;\n\t\tconst range = this._panelService.calculateItems(scrollTop, this.itemsLength, this.bufferAmount());\n\t\tthis._updateVirtualHeight(range.scrollHeight);\n\t\tthis._contentPanel().style.transform = `translateY(${range.topPadding}px)`;\n\n\t\tthis._zone.run(() => {\n\t\t\tthis.update.emit(this.items().slice(range.start, range.end));\n\t\t\tthis.scroll.emit({ start: range.start, end: range.end });\n\t\t});\n\n\t\tif (isDefined(scrollTop) && this._lastScrollPosition === 0) {\n\t\t\tthis._scrollablePanel().scrollTop = scrollTop;\n\t\t\tthis._lastScrollPosition = scrollTop;\n\t\t}\n\t}\n\n\tprivate _measureDimensions(): Promise<PanelDimensions> {\n\t\tif (this._panelService.dimensions.itemHeight > 0 || this.itemsLength === 0) {\n\t\t\treturn Promise.resolve(this._panelService.dimensions);\n\t\t}\n\n\t\tconst [first] = this.items();\n\t\tthis.update.emit([first]);\n\n\t\treturn Promise.resolve().then(() => {\n\t\t\tconst option = this._dropdown.querySelector(`#${first.htmlId}`);\n\t\t\tconst optionHeight = option.clientHeight;\n\t\t\tthis._virtualPadding().style.height = `${optionHeight * this.itemsLength}px`;\n\t\t\tconst panelHeight = this._scrollablePanel().clientHeight;\n\t\t\tthis._panelService.setDimensions(optionHeight, panelHeight);\n\n\t\t\treturn this._panelService.dimensions;\n\t\t});\n\t}\n\n\tprivate _fireScrollToEnd(scrollTop: number) {\n\t\tif (this._scrollToEndFired || scrollTop === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst padding = this.virtualScroll() ? this._virtualPadding() : this._contentPanel();\n\n\t\tif (scrollTop + this._dropdown.clientHeight >= padding.clientHeight - 1) {\n\t\t\tthis._zone.run(() => this.scrollToEnd.emit());\n\t\t\tthis._scrollToEndFired = true;\n\t\t}\n\t}\n\n\tprivate _calculateCurrentPosition(dropdownEl: HTMLElement) {\n\t\tconst position = this.position();\n\t\tif (position !== 'auto') {\n\t\t\treturn position;\n\t\t}\n\t\tconst selectRect: ClientRect = this._select.getBoundingClientRect();\n\t\tconst scrollTop = document.documentElement.scrollTop || document.body.scrollTop;\n\t\tconst offsetTop = selectRect.top + window.pageYOffset;\n\t\tconst height = selectRect.height;\n\t\tconst dropdownHeight = dropdownEl.getBoundingClientRect().height;\n\t\tif (offsetTop + height + dropdownHeight > scrollTop + document.documentElement.clientHeight) {\n\t\t\treturn 'top';\n\t\t} else {\n\t\t\treturn 'bottom';\n\t\t}\n\t}\n\n\tprivate _appendDropdown() {\n\t\tif (!this.appendTo()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._parent = this._dropdown.shadowRoot\n\t\t\t? this._dropdown.shadowRoot.querySelector(this.appendTo())\n\t\t\t: document.querySelector(this.appendTo());\n\t\tif (!this._parent) {\n\t\t\tthrow new Error(`appendTo selector ${this.appendTo()} did not found any parent element`);\n\t\t}\n\t\tthis._updateXPosition();\n\t\tthis._parent.appendChild(this._dropdown);\n\t}\n\n\tprivate _updateXPosition() {\n\t\tconst select = this._select.getBoundingClientRect();\n\t\tconst parent = this._parent.getBoundingClientRect();\n\t\tconst isRTL = document.documentElement.dir === 'rtl';\n\t\tconst offsetLeft = select.left - parent.left;\n\n\t\tif (isRTL) {\n\t\t\tconst offsetRight = parent.right - select.right;\n\t\t\tthis._dropdown.style.right = offsetRight + 'px';\n\t\t\tthis._dropdown.style.left = 'auto';\n\t\t} else {\n\t\t\tthis._dropdown.style.left = offsetLeft + 'px';\n\t\t\tthis._dropdown.style.right = 'auto';\n\t\t}\n\n\t\tthis._dropdown.style.width = select.width + 'px';\n\t\tthis._dropdown.style.minWidth = select.width + 'px';\n\t}\n\n\tprivate _updateYPosition() {\n\t\tconst select = this._select.getBoundingClientRect();\n\t\tconst parent = this._parent.getBoundingClientRect();\n\t\tconst delta = select.height;\n\n\t\tif (this._currentPosition === 'top') {\n\t\t\tconst offsetBottom = parent.bottom - select.bottom;\n\t\t\tthis._dropdown.style.bottom = offsetBottom + delta + 'px';\n\t\t\tthis._dropdown.style.top = 'auto';\n\t\t} else if (this._currentPosition === 'bottom') {\n\t\t\tconst offsetTop = select.top - parent.top;\n\t\t\tthis._dropdown.style.top = offsetTop + delta + 'px';\n\t\t\tthis._dropdown.style.bottom = 'auto';\n\t\t}\n\t}\n\n\tprivate _setupMousedownListener(): void {\n\t\tthis._zone.runOutsideAngular(() => {\n\t\t\tfromEvent(this._dropdown, 'mousedown')\n\t\t\t\t.pipe(takeUntilDestroyed(this._destroyRef))\n\t\t\t\t.subscribe((event: MouseEvent) => {\n\t\t\t\t\tconst target = event.target as HTMLElement;\n\t\t\t\t\tif (target.tagName === 'INPUT') {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t});\n\t\t});\n\t}\n}\n","import {\n\tafterEveryRender,\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tinject,\n\tinput,\n\tsignal,\n} from '@angular/core';\n\n@Component({\n\tselector: 'ng-option',\n\tstandalone: true,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `<ng-content />`,\n})\nexport class NgOptionComponent {\n\n\tpublic readonly value = input<any>();\n\tpublic readonly disabled = input(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\tpublic readonly elementRef = inject(ElementRef<HTMLElement>);\n\n\tpublic readonly label = signal<string>('');\n\n\tconstructor() {\n\t\tafterEveryRender(() => {\n\t\t\t// Update label signal after render (innerHTML updated by template bindings)\n\t\t\tconst currentLabel = (this.elementRef.nativeElement.innerHTML || '').trim();\n\t\t\tif (currentLabel !== this.label()) {\n\t\t\t\tthis.label.set(currentLabel);\n\t\t\t}\n\t\t});\n\t}\n}\n","export interface NgOption {\n\t[name: string]: any;\n\n\tindex?: number;\n\thtmlId?: string;\n\tselected?: boolean;\n\tdisabled?: boolean;\n\tmarked?: boolean;\n\tlabel?: string;\n\tvalue?: string | any;\n\tparent?: NgOption;\n\tchildren?: NgOption[];\n}\n\nexport enum KeyCode {\n\tTab = 'Tab',\n\tEnter = 'Enter',\n\tEsc = 'Escape',\n\tSpace = ' ',\n\tArrowUp = 'ArrowUp',\n\tArrowDown = 'ArrowDown',\n\tBackspace = 'Backspace',\n}\n\nexport type DropdownPosition = 'top' | 'right' | 'bottom' | 'left' | 'auto';\n","import { NgOption } from './ng-select.types';\n\nexport type SelectionModelFactory = () => SelectionModel;\n\nexport function DefaultSelectionModelFactory() {\n\treturn new DefaultSelectionModel();\n}\n\nexport interface SelectionModel {\n\tvalue: NgOption[];\n\tselect(item: NgOption, multiple: boolean, selectableGroupAsModel: boolean);\n\tunselect(item: NgOption, multiple: boolean);\n\tclear(keepDisabled: boolean);\n}\n\nexport class DefaultSelectionModel implements SelectionModel {\n\tprivate _selected: NgOption[] = [];\n\n\tget value(): NgOption[] {\n\t\treturn this._selected;\n\t}\n\n\tselect(item: NgOption, multiple: boolean, groupAsModel: boolean) {\n\t\titem.selected = true;\n\t\tif (!item.children || (!multiple && groupAsModel)) {\n\t\t\tthis._selected.push(item);\n\t\t}\n\t\tif (multiple) {\n\t\t\tif (item.parent) {\n\t\t\t\tconst childrenCount = item.parent.children.length;\n\t\t\t\tconst selectedCount = item.parent.children.filter((x) => x.selected).length;\n\t\t\t\titem.parent.selected = childrenCount === selectedCount;\n\t\t\t} else if (item.children) {\n\t\t\t\tthis._setChildrenSelectedState(item.children, true);\n\t\t\t\tthis._removeChildren(item);\n\t\t\t\tif (groupAsModel && this._activeChildren(item)) {\n\t\t\t\t\tthis._selected = [...this._selected.filter((x) => x.parent !== item), item];\n\t\t\t\t} else {\n\t\t\t\t\tthis._selected = [...this._selected, ...item.children.filter((x) => !x.disabled)];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tunselect(item: NgOption, multiple: boolean) {\n\t\tthis._selected = this._selected.filter((x) => x !== item);\n\t\titem.selected = false;\n\t\tif (multiple) {\n\t\t\tif (item.parent && item.parent.selected) {\n\t\t\t\tconst children = item.parent.children;\n\t\t\t\tthis._removeParent(item.parent);\n\t\t\t\tthis._removeChildren(item.parent);\n\t\t\t\tthis._selected.push(...children.filter((x) => x !== item && !x.disabled));\n\t\t\t\titem.parent.selected = false;\n\t\t\t} else if (item.children) {\n\t\t\t\tthis._setChildrenSelectedState(item.children, false);\n\t\t\t\tthis._removeChildren(item);\n\t\t\t}\n\t\t}\n\t}\n\n\tclear(keepDisabled: boolean) {\n\t\tthis._selected = keepDisabled ? this._selected.filter((x) => x.disabled) : [];\n\t}\n\n\tprivate _setChildrenSelectedState(children: NgOption[], selected: boolean) {\n\t\tfor (const child of children) {\n\t\t\tif (child.disabled) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tchild.selected = selected;\n\t\t}\n\t}\n\n\tprivate _removeChildren(parent: NgOption) {\n\t\tthis._selected = [\n\t\t\t...this._selected.filter((x) => x.parent !== parent),\n\t\t\t...parent.children.filter((x) => x.parent === parent && x.disabled && x.selected),\n\t\t];\n\t}\n\n\tprivate _removeParent(parent: NgOption) {\n\t\tthis._selected = this._selected.filter((x) => x !== parent);\n\t}\n\n\tprivate _activeChildren(item: NgOption): boolean {\n\t\treturn item.children.every((x) => !x.disabled || x.selected);\n\t}\n}\n","import {\n\tAfterViewInit,\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tcomputed,\n\tcontentChild,\n\tcontentChildren,\n\tDestroyRef,\n\teffect,\n\tElementRef,\n\tforwardRef,\n\tHostAttributeToken,\n\tHostListener,\n\tinject,\n\tInjectionToken,\n\tInjector,\n\tinput,\n\tmodel,\n\tnumberAttribute,\n\tOnChanges,\n\tOnInit,\n\toutput,\n\tsignal,\n\tSimpleChanges,\n\tTemplateRef,\n\tviewChild,\n\tViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { debounceTime, filter, map, tap } from 'rxjs/operators';\n\nimport {\n\tNgClearButtonTemplateDirective,\n\tNgFooterTemplateDirective,\n\tNgHeaderTemplateDirective,\n\tNgItemLabelDirective,\n\tNgLabelTemplateDirective,\n\tNgLoadingSpinnerTemplateDirective,\n\tNgLoadingTextTemplateDirective,\n\tNgMultiLabelTemplateDirective,\n\tNgNotFoundTemplateDirective,\n\tNgOptgroupTemplateDirective,\n\tNgOptionTemplateDirective,\n\tNgPlaceholderTemplateDirective,\n\tNgTagTemplateDirective,\n\tNgTypeToSearchTemplateDirective,\n} from './ng-templates.directive';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NgSelectConfig } from './config.service';\nimport { ConsoleService } from './console.service';\nimport { newId } from './id';\nimport { ItemsList } from './items-list';\nimport { NgDropdownPanelComponent } from './ng-dropdown-panel.component';\nimport { NgDropdownPanelService } from './ng-dropdown-panel.service';\nimport { NgOptionComponent } from './ng-option.component';\nimport { DropdownPosition, KeyCode, NgOption } from './ng-select.types';\nimport { DefaultSelectionModelFactory, SelectionModelFactory } from './selection-model';\nimport { isDefined, isFunction, isObject, isPromise } from './value-utils';\n\nexport const SELECTION_MODEL_FACTORY = new InjectionToken<SelectionModelFactory>('ng-select-selection-model');\nexport type AddTagFn = (term: string) => any | Promise<any>;\nexport type CompareWithFn = (a: any, b: any) => boolean;\nexport type GroupValueFn = (key: string | any, children: any[]) => string | any;\n\n@Component({\n\tselector: 'ng-select',\n\texportAs: 'ngSelect',\n\ttemplateUrl: './ng-select.component.html',\n\tstyleUrls: ['./ng-select.component.scss'],\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => NgSelectComponent),\n\t\t\tmulti: true,\n\t\t},\n\t\tNgDropdownPanelService,\n\t],\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgTemplateOutlet, NgItemLabelDirective, NgDropdownPanelComponent],\n\thost: {\n\t\t'[class.ng-select]': 'true',\n\t\t'[class.ng-select-single]': '!multiple()',\n\t\t'[class.ng-select-typeahead]': 'typeahead()',\n\t\t'[class.ng-select-multiple]': 'multiple()',\n\t\t'[class.ng-select-taggable]': 'addTag()',\n\t\t'[class.ng-select-searchable]': 'searchable()',\n\t\t'[class.ng-select-clearable]': 'clearable()',\n\t\t'[class.ng-select-opened]': 'isOpen()',\n\t\t'[class.ng-select-filtered]': 'filtered',\n\t\t'[class.ng-select-disabled]': 'disabled()',\n\t},\n})\nexport class NgSelectComponent implements OnChanges, OnInit, AfterViewInit, ControlValueAccessor {\n\treadonly classes = inject(new HostAttributeToken('class'), { optional: true });\n\treadonly config = inject(NgSelectConfig);\n\tprivate readonly _cd = inject(ChangeDetectorRef);\n\tprivate readonly _console = inject(ConsoleService);\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\n\t// signals\n\tpublic readonly _disabled = signal<boolean>(false);\n\t// inputs\n\treadonly ariaLabelDropdown = input<string>('Options List');\n\treadonly ariaLabel = input<string | undefined>(undefined);\n\treadonly markFirst = input(true, { transform: booleanAttribute });\n\treadonly placeholder = input<string>(this.config.placeholder);\n\treadonly fixedPlaceholder = input<boolean>(true);\n\treadonly notFoundText = input<string>(undefined);\n\treadonly typeToSearchText = input<string>(undefined);\n\treadonly preventToggleOnRightClick = input<boolean>(false);\n\treadonly addTagText = input<string>(undefined);\n\treadonly loadingText = input<string>(undefined);\n\treadonly clearAllText = input<string>(undefined);\n\treadonly dropdownPosition = input<DropdownPosition>('auto');\n\treadonly appendTo = input<string>(undefined);\n\treadonly outsideClickEvent = input<'click' | 'mousedown'>(this.config.outsideClickEvent);\n\treadonly loading = input(false, { transform: booleanAttribute });\n\treadonly closeOnSelect = input(true, { transform: booleanAttribute });\n\treadonly hideSelected = input(false, { transform: booleanAttribute });\n\treadonly selectOnTab = input(false, { transform: booleanAttribute });\n\treadonly openOnEnter = input(undefined, { transform: booleanAttribute });\n\treadonly maxSelectedItems = input<number, unknown>(undefined, { transform: numberAttribute });\n\treadonly groupBy = input<string | ((value: any) => any)>(undefined);\n\treadonly groupValue = input<GroupValueFn>(undefined);\n\treadonly bufferAmount = input(4, { transform: numberAttribute });\n\treadonly virtualScroll = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\treadonly selectableGroup = input(false, { transform: booleanAttribute });\n\treadonly tabFocusOnClearButton = input<boolean | undefined>();\n\treadonly selectableGroupAsModel = input(true, { transform: booleanAttribute });\n\treadonly searchFn = input(null);\n\treadonly trackByFn = input(null);\n\treadonly clearOnBackspace = input(true, { transform: booleanAttribute });\n\treadonly labelForId = input(null);\n\treadonly inputAttrs = input<Record<string, string>>({});\n\treadonly tabIndex = input<number, unknown>(undefined, { transform: numberAttribute });\n\treadonly readonly = input(false, { transform: booleanAttribute });\n\treadonly searchWhileComposing = input(true, { transform: booleanAttribute });\n\treadonly minTermLength = input(0, { transform: numberAttribute });\n\treadonly editableSearchTerm = input(false, { transform: booleanAttribute });\n\treadonly ngClass = input(null);\n\treadonly typeahead = input<Subject<string>>(undefined);\n\treadonly multiple = input(false, { transform: booleanAttribute });\n\treadonly addTag = input<boolean | AddTagFn>(false);\n\treadonly searchable = input(true, { transform: booleanAttribute });\n\treadonly clearable = input(true, { transform: booleanAttribute });\n\treadonly deselectOnClick = input<boolean>();\n\treadonly clearSearchOnAdd = input(undefined);\n\treadonly compareWith = input(undefined, {\n\t\ttransform: (fn: CompareWithFn | undefined) => {\n\t\t\tif (fn !== undefined && fn !== null && !isFunction(fn)) {\n\t\t\t\tthrow Error('`compareWith` must be a function.');\n\t\t\t}\n\t\t\treturn fn;\n\t\t},\n\t});\n\treadonly keyDownFn = input<(_: KeyboardEvent) => boolean>((_: KeyboardEvent) => true);\n\n\t// models\n\treadonly bindLabel = model<string>(undefined);\n\treadonly bindValue = model<string>(undefined);\n\treadonly appearance = model<string>(undefined);\n\treadonly isOpen = model<boolean | undefined>(false);\n\treadonly items = model<readonly any[]>([]);\n\n\t// output events\n\treadonly blurEvent = output<any>({ alias: 'blur' });\n\treadonly focusEvent = output<any>({ alias: 'focus' });\n\treadonly changeEvent = output<any>({ alias: 'change' });\n\treadonly openEvent = output({ alias: 'open' });\n\treadonly closeEvent = output({ alias: 'close' });\n\treadonly searchEvent = output<{\n\t\tterm: string;\n\t\titems: any[];\n\t}>({ alias: 'search' });\n\treadonly clearEvent = output({ alias: 'clear' });\n\treadonly addEvent = output<any>({ alias: 'add' });\n\treadonly removeEvent = output<any>({ alias: 'remove' });\n\treadonly scroll = output<{\n\t\tstart: number;\n\t\tend: number;\n\t}>({ alias: 'scroll' });\n\treadonly scrollToEnd = output<any>({ alias: 'scrollToEnd' });\n\n\t// computed\n\treadonly disabled = computed(() => this.readonly() || this._disabled());\n\treadonly clearSearchOnAddValue = computed(() => {\n\t\tif (isDefined(this.clearSearchOnAdd())) {\n\t\t\treturn this.clearSearchOnAdd();\n\t\t}\n\t\tif (isDefined(this.config.clearSearchOnAdd)) {\n\t\t\treturn this.config.clearSearchOnAdd;\n\t\t}\n\t\treturn this.closeOnSelect();\n\t});\n\treadonly deselectOnClickValue = computed(() => {\n\t\tif (isDefined(this.deselectOnClick())) {\n\t\t\treturn this.deselectOnClick();\n\t\t}\n\t\tif (isDefined(this.config.deselectOnClick)) {\n\t\t\treturn this.config.deselectOnClick;\n\t\t}\n\t\treturn this.multiple();\n\t});\n\t// content child queries\n\treadonly optionTemplate = contentChild(NgOptionTemplateDirective, { read: TemplateRef });\n\treadonly optgroupTemplate = contentChild(NgOptgroupTemplateDirective, { read: TemplateRef });\n\treadonly labelTemplate = contentChild(NgLabelTemplateDirective, { read: TemplateRef });\n\treadonly multiLabelTemplate = contentChild(NgMultiLabelTemplateDirective, { read: TemplateRef });\n\treadonly headerTemplate = contentChild(NgHeaderTemplateDirective, { read: TemplateRef });\n\treadonly footerTemplate = contentChild(NgFooterTemplateDirective, { read: TemplateRef });\n\treadonly notFoundTemplate = contentChild(NgNotFoundTemplateDirective, { read: TemplateRef });\n\treadonly placeholderTemplate = contentChild(NgPlaceholderTemplateDirective, { read: TemplateRef });\n\treadonly typeToSearchTemplate = contentChild(NgTypeToSearchTemplateDirective, { read: TemplateRef });\n\treadonly loadingTextTemplate = contentChild(NgLoadingTextTemplateDirective, { read: TemplateRef });\n\treadonly tagTemplate = contentChild(NgTagTemplateDirective, { read: TemplateRef });\n\treadonly loadingSpinnerTemplate = contentChild(NgLoadingSpinnerTemplateDirective, { read: TemplateRef });\n\treadonly clearButtonTemplate = contentChild(NgClearButtonTemplateDirective, { read: TemplateRef });\n\treadonly ngOptions = contentChildren(NgOptionComponent, { descendants: true });\n\n\t// view children queries\n\treadonly dropdownPanel = viewChild(forwardRef(() => NgDropdownPanelComponent));\n\treadonly searchInput = viewChild<ElementRef<HTMLInputElement>>('searchInput');\n\treadonly clearButton = viewChild<ElementRef<HTMLSpanElement>>('clearButton');\n\t// public variables\n\treadonly dropdownId = newId();\n\treadonly element: HTMLElement;\n\n\t// variables\n\tescapeHTML = true;\n\titemsList: ItemsList;\n\tviewPortItems: NgOption[] = [];\n\ttabFocusOnClear = signal<boolean>(true);\n\tprivate readonly autoFocus = inject(new HostAttributeToken('autofocus'), { optional: true });\n\t// private variables\n\tprivate readonly _defaultLabel = 'label';\n\tprivate readonly _editableSearchTerm = computed(() => this.editableSearchTerm() && !this.multiple());\n\tprivate _focused: boolean;\n\tprivate _injector = inject(Injector);\n\tprivate _isComposing = false;\n\tprivate _itemsAreUsed: boolean;\n\tprivate readonly _keyPress$ = new Subject<string>();\n\tprivate _manualOpen: boolean;\n\tprivate _pressedKeys: string[] = [];\n\tprivate _primitive: any;\n\tprivate readonly _searchTerm = signal<string>(null);\n\tprivate readonly _validTerm = computed(() => {\n\t\tconst term = this._searchTerm()?.trim();\n\t\treturn term && term.length >= this.minTermLength();\n\t});\n\n\tconstructor() {\n\t\tconst config = this.config;\n\t\tconst newSelectionModel = inject<SelectionModelFactory | undefined>(SELECTION_MODEL_FACTORY, { optional: true });\n\t\tconst _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\t\tthis._mergeGlobalConfig(config);\n\t\tthis.itemsList = new ItemsList(this, newSelectionModel ? newSelectionModel() : DefaultSelectionModelFactory());\n\t\tthis.element = _elementRef.nativeElement;\n\t}\n\n\tget filtered() {\n\t\treturn (!!this.searchTerm && this.searchable()) || this._isComposing;\n\t}\n\n\tget focused() {\n\t\treturn this._focused;\n\t}\n\n\tget searchTerm() {\n\t\treturn this._searchTerm();\n\t}\n\n\tget selectedItems(): NgOption[] {\n\t\treturn this.itemsList.selectedItems;\n\t}\n\n\tget selectedValues() {\n\t\treturn this.selectedItems.map((x) => x.value);\n\t}\n\n\tget hasValue() {\n\t\treturn this.selectedItems.length > 0;\n\t}\n\n\tget currentPanelPosition(): DropdownPosition {\n\t\tif (this.dropdownPanel()) {\n\t\t\treturn this.dropdownPanel().currentPosition;\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tget showAddTag() {\n\t\tif (!this._validTerm()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst term = this.searchTerm.toLowerCase().trim();\n\t\treturn (\n\t\t\tthis.addTag() &&\n\t\t\t!this.itemsList.filteredItems.some((x) => x.label.toLowerCase() === term) &&\n\t\t\t((!this.hideSelected() && this.isOpen()) || !this.selectedItems.some((x) => x.label.toLowerCase() === term)) &&\n\t\t\t!this.loading()\n\t\t);\n\t}\n\n\tclearItem = (item: any) => {\n\t\tconst option = this.selectedItems.find((x) => x.value === item);\n\t\tthis.unselect(option);\n\t};\n\n\tngOnInit() {\n\t\tthis._handleKeyPresses();\n\t\tthis._setInputAttributes();\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\tif (changes.multiple) {\n\t\t\tthis.itemsList.clearSelected();\n\t\t}\n\t\tif (changes.items) {\n\t\t\tthis._itemsAreUsed = true;\n\t\t\tthis._setItems(changes.items.currentValue || []);\n\t\t}\n\t\tif (changes.isOpen) {\n\t\t\tthis._manualOpen = isDefined(changes.isOpen.currentValue);\n\t\t}\n\t\tif (changes.groupBy) {\n\t\t\tif (!changes.items) {\n\t\t\t\tthis._setItems([...this.items()]);\n\t\t\t}\n\t\t}\n\t\tif (changes.inputAttrs) {\n\t\t\tthis._setInputAttributes();\n\t\t}\n\t\tthis._setTabFocusOnClear();\n\t}\n\n\tngAfterViewInit() {\n\t\tif (!this._itemsAreUsed) {\n\t\t\tthis.escapeHTML = false;\n\t\t\tthis._setItemsFromNgOptions();\n\t\t}\n\n\t\tif (isDefined(this.autoFocus)) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\n\t@HostListener('keydown', ['$event'])\n\thandleKeyDown($event: KeyboardEvent) {\n\t\tconst keyName = $event.key;\n\t\tif (Object.values(KeyCode).includes(keyName as KeyCode)) {\n\t\t\tif (this.keyDownFn()($event) === false) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.handleKeyCode($event);\n\t\t} else if (keyName && keyName.length === 1) {\n\t\t\tthis._keyPress$.next(keyName.toLocaleLowerCase());\n\t\t}\n\t}\n\n\thandleKeyCode($event: KeyboardEvent) {\n\t\tconst target = $event.target;\n\n\t\tif (this.clearButton() && this.clearButton().nativeElement === target) {\n\t\t\tthis.handleKeyCodeClear($event);\n\t\t} else {\n\t\t\tthis.handleKeyCodeInput($event);\n\t\t}\n\t}\n\n\thandleKeyCodeInput($event: KeyboardEvent) {\n\t\tswitch ($event.key) {\n\t\t\tcase KeyCode.ArrowDown:\n\t\t\t\tthis._handleArrowDown($event);\n\t\t\t\tbreak;\n\t\t\tcase KeyCode.ArrowUp:\n\t\t\t\tthis._handleArrowUp($event);\n\t\t\t\tbreak;\n\t\t\tcase KeyCode.Space:\n\t\t\t\tthis._handleSpace($event);\n\t\t\t\tbreak;\n\t\t\tcase KeyCode.Enter:\n\t\t\t\tthis._handleEnter($event);\n\t\t\t\tbreak;\n\t\t\tcase KeyCode.Tab:\n\t\t\t\tthis._handleTab($event);\n\t\t\t\tbreak;\n\t\t\tcase KeyCode.Esc:\n\t\t\t\tthis.close();\n\t\t\t\t$event.preventDefault();\n\t\t\t\tbreak;\n\t\t\tcase KeyCode.Backspace:\n\t\t\t\tthis._handleBackspace();\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\thandleKeyCodeClear($event: KeyboardEvent) {\n\t\tswitch ($event.key) {\n\t\t\tcase KeyCode.Enter:\n\t\t\t\tthis.handleClearClick();\n\t\t\t\t$event.preventDefault();\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\thandleMousedown($event: MouseEvent) {\n\t\tif (this.disabled()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.preventToggleOnRightClick() && $event.button === 2) {\n\t\t\treturn false;\n\t\t}\n\t\tconst target = $event.target as HTMLElement;\n\t\tif (target.tagName !== 'INPUT') {\n\t\t\t$event.preventDefault();\n\t\t}\n\n\t\tif (target.classList.contains('ng-clear-wrapper')) {\n\t\t\t// Don't handle clear on mousedown - let click event handle it\n\t\t\treturn;\n\t\t}\n\n\t\tif (target.classList.contains('ng-arrow-wrapper')) {\n\t\t\tthis.handleArrowClick();\n\t\t\treturn;\n\t\t}\n\n\t\tif (target.classList.contains('ng-value-icon')) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._focused) {\n\t\t\tthis.focus();\n\t\t}\n\n\t\tif (this.searchable()) {\n\t\t\tthis.open();\n\t\t} else {\n\t\t\tthis.toggle();\n\t\t}\n\t}\n\n\thandleArrowClick() {\n\t\tif (this.isOpen()) {\n\t\t\tthis.close();\n\t\t} else {\n\t\t\tthis.open();\n\t\t}\n\t}\n\n\thandleClearClick(_event?: MouseEvent) {\n\t\tif (this.hasValue) {\n\t\t\tthis.itemsList.clearSelected(true);\n\t\t\tthis._updateNgModel();\n\t\t}\n\t\tthis._clearSearch();\n\t\tthis.focus();\n\t\tthis.clearEvent.emit();\n\n\t\tthis._onSelectionChanged();\n\t}\n\n\tclearModel() {\n\t\tif (!this.clearable()) {\n\t\t\treturn;\n\t\t}\n\t\tthis.itemsList.clearSelected();\n\t\tthis._updateNgModel();\n\t}\n\n\twriteValue(value: any | any[]): void {\n\t\tthis.itemsList.clearSelected();\n\t\tthis._handleWriteValue(value);\n\t\tif (this._editableSearchTerm()) {\n\t\t\tthis._setSearchTermFromItems();\n\t\t}\n\t\tthis._cd.markForCheck();\n\t}\n\n\tregisterOnChange(fn: any): void {\n\t\tthis._onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: any): void {\n\t\tthis._onTouched = fn;\n\t}\n\n\tsetDisabledState(state: boolean): void {\n\t\tthis._disabled.set(state);\n\t\tthis._cd.markForCheck();\n\t}\n\n\ttoggle() {\n\t\tif (!this.isOpen()) {\n\t\t\tthis.open();\n\t\t} else {\n\t\t\tthis.close();\n\t\t}\n\t}\n\n\topen() {\n\t\tif (this.disabled() || this.isOpen() || this._manualOpen) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.typeahead()?.observed && !this.addTag() && this.itemsList.noItemsToSelect) {\n\t\t\treturn;\n\t\t}\n\t\tthis.isOpen.set(true);\n\t\tthis.itemsList.markSelectedOrDefault(this.markFirst());\n\t\tthis.openEvent.emit();\n\t\tif (!this.searchTerm) {\n\t\t\tthis.focus();\n\t\t}\n\t\tthis.detectChanges();\n\t}\n\n\tclose() {\n\t\tif (!this.isOpen() || this._manualOpen) {\n\t\t\treturn;\n\t\t}\n\t\tthis.isOpen.set(false);\n\t\tthis._isComposing = false;\n\t\tif (!this._editableSearchTerm()) {\n\t\t\tthis._clearSearch();\n\t\t} else {\n\t\t\tthis.itemsList.resetFilteredItems();\n\t\t}\n\t\tthis.itemsList.unmarkItem();\n\t\tthis._onTouched();\n\t\tthis.closeEvent.emit();\n\t\tthis._cd.markForCheck();\n\t}\n\n\ttoggleItem(item: NgOption) {\n\t\tif (!item || item.disabled || this.disabled()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.deselectOnClickValue() && item.selected) {\n\t\t\tthis.unselect(item);\n\t\t} else {\n\t\t\tthis.select(item);\n\t\t}\n\n\t\tif (this._editableSearchTerm()) {\n\t\t\tthis._setSearchTermFromItems();\n\t\t}\n\t}\n\n\tselect(item: NgOption) {\n\t\tif (!item.selected) {\n\t\t\tthis.itemsList.select(item);\n\t\t\tif (this.clearSearchOnAddValue() && !this._editableSearchTerm()) {\n\t\t\t\tthis._clearSearch();\n\t\t\t}\n\n\t\t\tthis._updateNgModel();\n\t\t\tif (this.multiple()) {\n\t\t\t\tthis.addEvent.emit(item.value);\n\t\t\t}\n\t\t}\n\n\t\tif (this.closeOnSelect() || this.itemsList.noItemsToSelect) {\n\t\t\tthis.close();\n\t\t}\n\n\t\tthis._onSelectionChanged();\n\t}\n\n\tfocus() {\n\t\tthis.searchInput().nativeElement.focus();\n\t}\n\n\tblur() {\n\t\tthis.searchInput().nativeElement.blur();\n\t}\n\n\tunselect(item: NgOption) {\n\t\tif (!item) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.itemsList.unselect(item);\n\t\tthis.focus();\n\t\tthis._updateNgModel();\n\t\tthis.removeEvent.emit(item.value);\n\t\tthis._onSelectionChanged();\n\t}\n\n\tselectTag() {\n\t\tlet tag;\n\t\tif (isFunction(this.addTag())) {\n\t\t\ttag = (<AddTagFn>this.addTag())(this.searchTerm);\n\t\t} else {\n\t\t\ttag = this._primitive ? this.searchTerm : { [this.bindLabel()]: this.searchTerm };\n\t\t}\n\n\t\tconst handleTag = (item) =>\n\t\t\tthis.typeahead()?.observed || !this.isOpen() ? this.itemsList.mapItem(item, null) : this.itemsList.addItem(item);\n\t\tif (isPromise(tag)) {\n\t\t\ttag.then((item) => this.select(handleTag(item))).catch(() => { });\n\t\t} else if (tag) {\n\t\t\tthis.select(handleTag(tag));\n\t\t}\n\t}\n\n\tshowClear() {\n\t\treturn this.clearable() && (this.hasValue || this.searchTerm) && !this.disabled();\n\t}\n\n\tfocusOnClear() {\n\t\tthis.blur();\n\t\tif (this.clearButton()) {\n\t\t\tthis.clearButton().nativeElement.focus();\n\t\t}\n\t}\n\n\ttrackByOption = (_: number, item: NgOption) => {\n\t\tif (this.trackByFn()) {\n\t\t\treturn this.trackByFn()(item.value);\n\t\t}\n\n\t\treturn item;\n\t};\n\n\tshowNoItemsFound() {\n\t\tconst empty = this.itemsList.filteredItems.length === 0;\n\t\treturn (\n\t\t\t((empty && !this.typeahead()?.observed && !this.loading()) ||\n\t\t\t\t(empty && this.typeahead()?.observed && this._validTerm() && !this.loading())) &&\n\t\t\t!this.showAddTag\n\t\t);\n\t}\n\n\tshowTypeToSearch() {\n\t\tconst empty = this.itemsList.filteredItems.length === 0;\n\t\treturn empty && this.typeahead()?.observed && !this._validTerm() && !this.loading();\n\t}\n\n\tonCompositionStart() {\n\t\tthis._isComposing = true;\n\t}\n\n\tonCompositionEnd(term: string) {\n\t\tthis._isComposing = false;\n\t\tif (this.searchWhileComposing()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.filter(term);\n\t}\n\n\tfilter(term: string) {\n\t\tif (this._isComposing && !this.searchWhileComposing()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._searchTerm.set(term);\n\t\tif (this.typeahead()?.observed && (this._validTerm() || this.minTermLength() === 0)) {\n\t\t\tthis.typeahead().next(term);\n\t\t}\n\n\t\tif (!this.typeahead()?.observed) {\n\t\t\tthis.itemsList.filter(term);\n\t\t\tif (this.isOpen()) {\n\t\t\t\tthis.itemsList.markSelectedOrDefault(this.markFirst());\n\t\t\t}\n\t\t}\n\n\t\tthis.searchEvent.emit({ term, items: this.itemsList.filteredItems.map((x) => x.value) });\n\t\tthis.open();\n\t}\n\n\tonInputFocus($event: FocusEvent) {\n\t\tif (this._focused) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._editableSearchTerm()) {\n\t\t\tthis._setSearchTermFromItems();\n\t\t}\n\n\t\tthis.element.classList.add('ng-select-focused');\n\t\tthis.focusEvent.emit($event);\n\t\tthis._focused = true;\n\t}\n\n\tonInputBlur($event: FocusEvent) {\n\t\tthis.element.classList.remove('ng-select-focused');\n\t\tthis.blurEvent.emit($event);\n\t\tif (!this.isOpen() && !this.disabled()) {\n\t\t\tthis._onTouched();\n\t\t}\n\t\tif (this._editableSearchTerm()) {\n\t\t\tthis._setSearchTermFromItems();\n\t\t}\n\t\tthis._focused = false;\n\t}\n\n\tonItemHover(item: NgOption) {\n\t\tif (item.disabled) {\n\t\t\treturn;\n\t\t}\n\t\tthis.itemsList.markItem(item);\n\t}\n\n\tdetectChanges() {\n\t\tif (!(<any>this._cd).destroyed) {\n\t\t\tthis._cd.detectChanges();\n\t\t}\n\t}\n\n\tprivate _onChange = (_: any) => { };\n\n\tprivate _onTouched = () => { };\n\n\tprivate _setSearchTermFromItems() {\n\t\tconst selected = this.selectedItems?.[0];\n\t\tthis._searchTerm.set(selected?.label ?? null);\n\t}\n\n\tprivate _setItems(items: readonly any[]) {\n\t\tconst firstItem = items[0];\n\t\tthis.bindLabel.set(this.bindLabel() || this._defaultLabel);\n\t\tthis._primitive = isDefined(firstItem) ? !isObject(firstItem) : this._primitive || this.bindLabel() === this._defaultLabel;\n\t\tthis.itemsList.setItems(items);\n\t\tif (items.length > 0 && this.hasValue) {\n\t\t\tthis.itemsList.mapSelectedItems();\n\t\t}\n\t\tif (this.isOpen() && isDefined(this.searchTerm) && !this.typeahead()?.observed) {\n\t\t\tthis.itemsList.filter(this.searchTerm);\n\t\t}\n\t\tif (this.typeahead()?.observed || this.isOpen()) {\n\t\t\tthis.itemsList.markSelectedOrDefault(this.markFirst());\n\t\t}\n\t}\n\n\tprivate _setItemsFromNgOptions() {\n\t\teffect(\n\t\t\t() => {\n\t\t\t\tconst options = this.ngOptions();\n\t\t\t\tthis.bindLabel.set(this._defaultLabel);\n\t\t\t\tconst items =\n\t\t\t\t\toptions.map((option) => ({\n\t\t\t\t\t\t$ngOptionValue: option.value(),\n\t\t\t\t\t\t$ngOptionLabel: option.elementRef.nativeElement.innerHTML,\n\t\t\t\t\t\tdisabled: option.disabled(),\n\t\t\t\t\t})) ?? [];\n\t\t\t\tthis.items.set(items);\n\t\t\t\tthis.itemsList.setItems(items);\n\t\t\t\tif (this.hasValue) {\n\t\t\t\t\tthis.itemsList.mapSelectedItems();\n\t\t\t\t}\n\t\t\t\tthis._cd.detectChanges();\n\n\t\t\t\toptions\n\t\t\t\t\t// find item for each option\n\t\t\t\t\t.map((option) => ({\n\t\t\t\t\t\toption,\n\t\t\t\t\t\titem: this.itemsList.findItem(option.value()),\n\t\t\t\t\t}))\n\t\t\t\t\t// filter non found items\n\t\t\t\t\t.filter(({ item }) => isDefined(item))\n\t\t\t\t\t// process to update disabled and label\n\t\t\t\t\t.forEach(({ option, item }) => {\n\t\t\t\t\t\titem.disabled = option.disabled();\n\t\t\t\t\t\titem.label = option.label() || item.label;\n\t\t\t\t\t});\n\t\t\t},\n\t\t\t{ injector: this._injector },\n\t\t);\n\t}\n\n\tprivate _isValidWriteValue(value: any): boolean {\n\t\tif (!isDefined(value) || (this.multiple() && value === '') || (Array.isArray(value) && value.length === 0)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst validateBinding = (item: any): boolean => {\n\t\t\tif (!isDefined(this.compareWith()) && isObject(item) && this.bindValue()) {\n\t\t\t\tthis._console.warn(\n\t\t\t\t\t`Setting object(${JSON.stringify(item)}) as your model with bindValue is not allowed unless [compareWith] is used.`,\n\t\t\t\t);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn true;\n\t\t};\n\n\t\tif (this.multiple()) {\n\t\t\tif (!Array.isArray(value)) {\n\t\t\t\tthis._console.warn('Multiple select ngModel should be array.');\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn value.every((item) => validateBinding(item));\n\t\t} else {\n\t\t\treturn validateBinding(value);\n\t\t}\n\t}\n\n\tprivate _handleWriteValue(ngModel: any | any[]) {\n\t\tif (!this._isValidWriteValue(ngModel)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst select = (val: any) => {\n\t\t\tlet item = this.itemsList.findItem(val);\n\t\t\tif (item) {\n\t\t\t\tthis.itemsList.select(item);\n\t\t\t} else {\n\t\t\t\tconst isValObject = isObject(val);\n\t\t\t\tconst isPrimitive = !isValObject && !this.bindValue();\n\t\t\t\tif (isValObject || isPrimitive) {\n\t\t\t\t\tthis.itemsList.select(this.itemsList.mapItem(val, null));\n\t\t\t\t} else if (this.bindValue()) {\n\t\t\t\t\titem = {\n\t\t\t\t\t\t[this.bindLabel()]: null,\n\t\t\t\t\t\t[this.bindValue()]: val,\n\t\t\t\t\t};\n\t\t\t\t\tthis.itemsList.select(this.itemsList.mapItem(item, null));\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tif (this.multiple()) {\n\t\t\t(<any[]>ngModel).forEach((item) => select(item));\n\t\t} else {\n\t\t\tselect(ngModel);\n\t\t}\n\t}\n\n\tprivate _handleKeyPresses() {\n\t\tif (this.searchable()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._keyPress$\n\t\t\t.pipe(\n\t\t\t\ttakeUntilDestroyed(this._destroyRef),\n\t\t\t\ttap((letter) => this._pressedKeys.push(letter)),\n\t\t\t\tdebounceTime(200),\n\t\t\t\tfilter(() => this._pressedKeys.length > 0),\n\t\t\t\tmap(() => this._pressedKeys.join('')),\n\t\t\t)\n\t\t\t.subscribe((term) => {\n\t\t\t\tconst item = this.itemsList.findByLabel(term);\n\t\t\t\tif (item) {\n\t\t\t\t\tif (this.isOpen()) {\n\t\t\t\t\t\tthis.itemsList.markItem(item);\n\t\t\t\t\t\tthis._scrollToMarked();\n\t\t\t\t\t\tthis._cd.markForCheck();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.select(item);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis._pressedKeys = [];\n\t\t\t});\n\t}\n\n\tprivate _setInputAttributes() {\n\t\tconst input = this.searchInput().nativeElement;\n\t\tconst attributes = {\n\t\t\ttype: 'text',\n\t\t\tautocorrect: 'off',\n\t\t\tautocapitalize: 'off',\n\t\t\tautocomplete: 'off',\n\t\t\t'aria-controls': this.dropdownId,\n\t\t\t...this.inputAttrs(),\n\t\t};\n\n\t\tfor (const key of Object.keys(attributes)) {\n\t\t\tinput.setAttribute(key, attributes[key]);\n\t\t}\n\t}\n\n\tprivate _setTabFocusOnClear() {\n\t\tthis.tabFocusOnClear.set(isDefined(this.tabFocusOnClearButton()) ? !!this.tabFocusOnClearButton() : this.config.tabFocusOnClear);\n\t}\n\n\tprivate _updateNgModel() {\n\t\tconst model = [];\n\t\tfor (const item of this.selectedItems) {\n\t\t\tif (this.bindValue()) {\n\t\t\t\tlet value = null;\n\t\t\t\tif (item.children) {\n\t\t\t\t\tconst groupKey = this.groupValue() ? this.bindValue() : <string>this.groupBy();\n\t\t\t\t\tvalue = item.value[groupKey || <string>this.groupBy()];\n\t\t\t\t} else {\n\t\t\t\t\tvalue = this.itemsList.resolveNested(item.value, this.bindValue());\n\t\t\t\t}\n\t\t\t\tmodel.push(value);\n\t\t\t} else {\n\t\t\t\tmodel.push(item.value);\n\t\t\t}\n\t\t}\n\n\t\tconst selected = this.selectedItems.map((x) => x.value);\n\t\tif (this.multiple()) {\n\t\t\tthis._onChange(model);\n\t\t\tthis.changeEvent.emit(selected);\n\t\t} else {\n\t\t\tthis._onChange(isDefined(model[0]) ? model[0] : null);\n\t\t\tthis.changeEvent.emit(selected[0]);\n\t\t}\n\n\t\tthis._cd.markForCheck();\n\t}\n\n\tprivate _clearSearch() {\n\t\tif (!this.searchTerm) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._changeSearch(null);\n\t\tthis.itemsList.resetFilteredItems();\n\t}\n\n\tprivate _changeSearch(searchTerm: string) {\n\t\tthis._searchTerm.set(searchTerm);\n\t\tif (this.typeahead()?.observed) {\n\t\t\tthis.typeahead().next(searchTerm);\n\t\t}\n\t}\n\n\tprivate _scrollToMarked() {\n\t\tif (!this.isOpen() || !this.dropdownPanel()) {\n\t\t\treturn;\n\t\t}\n\t\tthis.dropdownPanel().scrollTo(this.itemsList.markedItem);\n\t}\n\n\tprivate _scrollToTag() {\n\t\tif (!this.isOpen() || !this.dropdownPanel()) {\n\t\t\treturn;\n\t\t}\n\t\tthis.dropdownPanel().scrollToTag();\n\t}\n\n\tprivate _onSelectionChanged() {\n\t\tconst appendTo = this.appendTo() ?? this.config.appendTo;\n\t\tif (this.isOpen() && this.deselectOnClickValue() && appendTo) {\n\t\t\t// Make sure items are rendered.\n\t\t\tthis._cd.detectChanges();\n\t\t\tthis.dropdownPanel().adjustPosition();\n\t\t}\n\t}\n\n\tprivate _handleTab($event: KeyboardEvent) {\n\t\tif (this.isOpen() === false) {\n\t\t\tif (this.showClear() && !$event.shiftKey && this.tabFocusOnClear()) {\n\t\t\t\tthis.focusOnClear();\n\t\t\t\t$event.preventDefault();\n\t\t\t} else if (!this.addTag()) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (this.selectOnTab()) {\n\t\t\tif (this.itemsList.markedItem) {\n\t\t\t\tthis.toggleItem(this.itemsList.markedItem);\n\t\t\t\t$event.preventDefault();\n\t\t\t} else if (this.showAddTag) {\n\t\t\t\tthis.selectTag();\n\t\t\t\t$event.preventDefault();\n\t\t\t} else {\n\t\t\t\tthis.close();\n\t\t\t}\n\t\t} else {\n\t\t\tthis.close();\n\t\t}\n\t}\n\n\tprivate _handleEnter($event: KeyboardEvent) {\n\t\tconst openOnEnter = this.openOnEnter() ?? this.config.openOnEnter;\n\t\tif (this.isOpen() || this._manualOpen) {\n\t\t\tif (this.itemsList.markedItem) {\n\t\t\t\tthis.toggleItem(this.itemsList.markedItem);\n\t\t\t} else if (this.showAddTag) {\n\t\t\t\tthis.selectTag();\n\t\t\t}\n\t\t} else if (openOnEnter) {\n\t\t\tthis.open();\n\t\t} else {\n\t\t\treturn;\n\t\t}\n\n\t\t$event.preventDefault();\n\t}\n\n\tprivate _handleSpace($event: KeyboardEvent) {\n\t\tif (this.isOpen() || this._manualOpen) {\n\t\t\treturn;\n\t\t}\n\t\tthis.open();\n\t\t$event.preventDefault();\n\t}\n\n\tprivate _handleArrowDown($event: KeyboardEvent) {\n\t\tif (this._nextItemIsTag(+1)) {\n\t\t\tthis.itemsList.unmarkItem();\n\t\t\tthis._scrollToTag();\n\t\t} else {\n\t\t\tthis.itemsList.markNextItem();\n\t\t\tthis._scrollToMarked();\n\t\t}\n\t\tthis.open();\n\t\t$event.preventDefault();\n\t}\n\n\tprivate _handleArrowUp($event: KeyboardEvent) {\n\t\tif (!this.isOpen()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._nextItemIsTag(-1)) {\n\t\t\tthis.itemsList.unmarkItem();\n\t\t\tthis._scrollToTag();\n\t\t} else {\n\t\t\tthis.itemsList.markPreviousItem();\n\t\t\tthis._scrollToMarked();\n\t\t}\n\t\t$event.preventDefault();\n\t}\n\n\tprivate _nextItemIsTag(nextStep: number): boolean {\n\t\tconst nextIndex = this.itemsList.markedIndex + nextStep;\n\t\treturn (\n\t\t\tthis.addTag() && this.searchTerm && this.itemsList.markedItem && (nextIndex < 0 || nextIndex === this.itemsList.filteredItems.length)\n\t\t);\n\t}\n\n\tprivate _handleBackspace() {\n\t\tif (this.searchTerm || !this.clearable() || !this.clearOnBackspace() || !this.hasValue) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.multiple()) {\n\t\t\tthis.unselect(this.itemsList.lastSelectedItem);\n\t\t} else {\n\t\t\tthis.clearModel();\n\t\t}\n\t}\n\n\tprivate _mergeGlobalConfig(config: NgSelectConfig) {\n\t\tthis.bindValue.set(this.bindValue() || config.bindValue);\n\t\tthis.bindLabel.set(this.bindLabel() || config.bindLabel);\n\t\tthis.appearance.set(this.appearance() || config.appearance);\n\t\tthis._setTabFocusOnClear();\n\t}\n\n\t/**\n\t * Gets virtual scroll value from input or from config\n\t *\n\t * @param config NgSelectConfig object\n\t *\n\t * @returns `true` if virtual scroll is enabled, `false` otherwise\n\t */\n\tprivate getVirtualScroll(config: NgSelectConfig): boolean {\n\t\treturn isDefined(this.virtualScroll) ? this.virtualScroll() : this.isVirtualScrollDisabled(config);\n\t}\n\n\t/**\n\t * Gets disableVirtualScroll value from input or from config\n\t *\n\t * @param config NgSelectConfig object\n\t *\n\t * @returns `true` if disableVirtualScroll is enabled, `false` otherwise\n\t */\n\tprivate isVirtualScrollDisabled(config: NgSelectConfig) {\n\t\treturn isDefined(config.disableVirtualScroll) ? !config.disableVirtualScroll : false;\n\t}\n}\n","<div\n\t(mousedown)=\"handleMousedown($event)\"\n\t[class.ng-appearance-outline]=\"appearance() === 'outline'\"\n\t[class.ng-has-value]=\"hasValue\"\n\tclass=\"ng-select-container\">\n\t<div class=\"ng-value-container\">\n\t\t@if ((selectedItems.length === 0 && !searchTerm) || (fixedPlaceholder() ?? config.fixedPlaceholder)) {\n\t\t\t<ng-template #defaultPlaceholderTemplate>\n\t\t\t\t<div class=\"ng-placeholder\">{{ placeholder() ?? config.placeholder }}</div>\n\t\t\t</ng-template>\n\t\t\t<ng-template [ngTemplateOutlet]=\"placeholderTemplate() || defaultPlaceholderTemplate\"> </ng-template>\n\t\t}\n\n\t\t@if ((!multiLabelTemplate() || !multiple()) && selectedItems.length > 0) {\n\t\t\t@for (item of selectedItems; track trackByOption($index, item)) {\n\t\t\t\t<div [class.ng-value-disabled]=\"item.disabled\" class=\"ng-value\">\n\t\t\t\t\t<ng-template #defaultLabelTemplate>\n\t\t\t\t\t\t<span class=\"ng-value-icon left\" (click)=\"unselect(item)\" aria-hidden=\"true\">×</span>\n\t\t\t\t\t\t<span class=\"ng-value-label\" [ngItemLabel]=\"item.label\" [escape]=\"escapeHTML\"></span>\n\t\t\t\t\t</ng-template>\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate() || defaultLabelTemplate\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item: item.value, clear: clearItem, label: item.label }\">\n\t\t\t\t\t</ng-template>\n\t\t\t\t</div>\n\t\t\t}\n\t\t}\n\n\t\t@if (multiple() && multiLabelTemplate() && selectedValues.length > 0) {\n\t\t\t<ng-template [ngTemplateOutlet]=\"multiLabelTemplate()\" [ngTemplateOutletContext]=\"{ items: selectedValues, clear: clearItem }\">\n\t\t\t</ng-template>\n\t\t}\n\n\t\t<div class=\"ng-input\">\n\t\t\t<input\n\t\t\t\t#searchInput\n\t\t\t\t(blur)=\"onInputBlur($event)\"\n\t\t\t\t(change)=\"$event.stopPropagation()\"\n\t\t\t\t(compositionend)=\"onCompositionEnd(searchInput.value)\"\n\t\t\t\t(compositionstart)=\"onCompositionStart()\"\n\t\t\t\t(focus)=\"onInputFocus($event)\"\n\t\t\t\t(input)=\"filter(searchInput.value)\"\n\t\t\t\t[attr.aria-activedescendant]=\"isOpen() ? itemsList?.markedItem?.htmlId : null\"\n\t\t\t\t[attr.aria-controls]=\"isOpen() ? dropdownId : null\"\n\t\t\t\t[attr.aria-expanded]=\"isOpen()\"\n\t\t\t\t[attr.aria-label]=\"ariaLabel()\"\n\t\t\t\t[attr.id]=\"labelForId()\"\n\t\t\t\t[attr.tabindex]=\"tabIndex()\"\n\t\t\t\t[disabled]=\"disabled()\"\n\t\t\t\t[readOnly]=\"!searchable() || itemsList.maxItemsSelected\"\n\t\t\t\t[value]=\"searchTerm ?? ''\"\n\t\t\t\taria-autocomplete=\"list\"\n\t\t\t\trole=\"combobox\" />\n\t\t</div>\n\t</div>\n\n\t@if (loading()) {\n\t\t<ng-template #defaultLoadingSpinnerTemplate>\n\t\t\t<div class=\"ng-spinner-loader\"></div>\n\t\t</ng-template>\n\t\t<ng-template [ngTemplateOutlet]=\"loadingSpinnerTemplate() || defaultLoadingSpinnerTemplate\"></ng-template>\n\t}\n\n\t@if (showClear()) {\n\t\t@if (clearButtonTemplate()) {\n\t\t\t<ng-container [ngTemplateOutlet]=\"clearButtonTemplate()\"></ng-container>\n\t\t} @else {\n\t\t\t<span\n\t\t\t\tclass=\"ng-clear-wrapper\"\n\t\t\t\trole=\"button\"\n\t\t\t\ttabindex=\"0\"\n\t\t\t\t[attr.tabindex]=\"tabFocusOnClear() ? 0 : -1\"\n\t\t\t\ttitle=\"{{ clearAllText() || config.clearAllText }}\"\n\t\t\t\t#clearButton\n\t\t\t\t(click)=\"handleClearClick($event)\">\n\t\t\t\t<span class=\"ng-clear\" aria-hidden=\"true\">×</span>\n\t\t\t</span>\n\t\t}\n\t}\n\n\t<span class=\"ng-arrow-wrapper\">\n\t\t<span class=\"ng-arrow\"></span>\n\t</span>\n</div>\n\n@if (isOpen()) {\n\t@let appendToValue = appendTo() || config.appendTo;\n\t<ng-dropdown-panel\n\t\tclass=\"ng-dropdown-panel\"\n\t\t[virtualScroll]=\"virtualScroll() ?? !config.disableVirtualScroll ?? false\"\n\t\t[bufferAmount]=\"bufferAmount()\"\n\t\t[appendTo]=\"appendToValue\"\n\t\t[position]=\"dropdownPosition()\"\n\t\t[outsideClickEvent]=\"outsideClickEvent()\"\n\t\t[headerTemplate]=\"headerTemplate()\"\n\t\t[footerTemplate]=\"footerTemplate()\"\n\t\t[filterValue]=\"searchTerm\"\n\t\t[items]=\"itemsList.filteredItems\"\n\t\t[showAddTag]=\"showAddTag\"\n\t\t[markedItem]=\"itemsList.markedItem\"\n\t\t(update)=\"viewPortItems = $event\"\n\t\t(scroll)=\"scroll.emit($event)\"\n\t\t(scrollToEnd)=\"scrollToEnd.emit($event)\"\n\t\t(outsideClick)=\"close()\"\n\t\t[class.ng-select-multiple]=\"multiple()\"\n\t\t[class]=\"appendToValue ? (ngClass() ? ngClass() : classes) : null\"\n\t\t[id]=\"dropdownId\"\n\t\t[ariaLabelDropdown]=\"ariaLabelDropdown()\">\n\t\t<ng-container>\n\t\t\t@for (item of viewPortItems; track trackByOption($index, item)) {\n\t\t\t\t<!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events, @angular-eslint/template/interactive-supports-focus, @angular-eslint/template/mouse-events-have-key-events -->\n\t\t\t\t<div\n\t\t\t\t\tclass=\"ng-option\"\n\t\t\t\t\t[attr.role]=\"item.children ? 'group' : 'option'\"\n\t\t\t\t\t(click)=\"toggleItem(item)\"\n\t\t\t\t\t(mouseover)=\"onItemHover(item)\"\n\t\t\t\t\t[class.ng-option-disabled]=\"item.disabled\"\n\t\t\t\t\t[class.ng-option-selected]=\"item.selected\"\n\t\t\t\t\t[class.ng-optgroup]=\"item.children\"\n\t\t\t\t\t[class.ng-option]=\"!item.children\"\n\t\t\t\t\t[class.ng-option-child]=\"!!item.parent\"\n\t\t\t\t\t[class.ng-option-marked]=\"item === itemsList.markedItem\"\n\t\t\t\t\t[attr.aria-selected]=\"item.selected\"\n\t\t\t\t\t[attr.id]=\"item?.htmlId\"\n\t\t\t\t\t[attr.aria-setsize]=\"itemsList.filteredItems.length\"\n\t\t\t\t\t[attr.aria-posinset]=\"item.index + 1\">\n\t\t\t\t\t<ng-template #defaultOptionTemplate>\n\t\t\t\t\t\t<span class=\"ng-option-label\" [ngItemLabel]=\"item.label\" [escape]=\"escapeHTML\"></span>\n\t\t\t\t\t</ng-template>\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"\n\t\t\t\t\t\t\titem.children ? optgroupTemplate() || defaultOptionTemplate : optionTemplate() || defaultOptionTemplate\n\t\t\t\t\t\t\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item: item.value, item$: item, index: item.index, searchTerm: searchTerm }\">\n\t\t\t\t\t</ng-template>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t@if (showAddTag) {\n\t\t\t\t<!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events, @angular-eslint/template/interactive-supports-focus, @angular-eslint/template/mouse-events-have-key-events -->\n\t\t\t\t<div\n\t\t\t\t\tclass=\"ng-option\"\n\t\t\t\t\t[class.ng-option-marked]=\"!itemsList.markedItem\"\n\t\t\t\t\t(mouseover)=\"itemsList.unmarkItem()\"\n\t\t\t\t\trole=\"option\"\n\t\t\t\t\t[attr.aria-selected]=\"false\"\n\t\t\t\t\t(click)=\"selectTag()\">\n\t\t\t\t\t<ng-template #defaultTagTemplate>\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t><span class=\"ng-tag-label\">{{ addTagText() || config.addTagText }}</span\n\t\t\t\t\t\t\t>\"{{ searchTerm }}\"</span\n\t\t\t\t\t\t>\n\t\t\t\t\t</ng-template>\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"tagTemplate() || defaultTagTemplate\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n\t\t\t\t\t</ng-template>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</ng-container>\n\t\t@if (showNoItemsFound()) {\n\t\t\t<ng-template #defaultNotFoundTemplate>\n\t\t\t\t<div class=\"ng-option ng-option-disabled\">{{ notFoundText() ?? config.notFoundText }}</div>\n\t\t\t</ng-template>\n\t\t\t<ng-template\n\t\t\t\t[ngTemplateOutlet]=\"notFoundTemplate() || defaultNotFoundTemplate\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n\t\t\t</ng-template>\n\t\t}\n\t\t@if (showTypeToSearch()) {\n\t\t\t<ng-template #defaultTypeToSearchTemplate>\n\t\t\t\t<div class=\"ng-option ng-option-disabled\">{{ typeToSearchText() || config.typeToSearchText }}</div>\n\t\t\t</ng-template>\n\t\t\t<ng-template [ngTemplateOutlet]=\"typeToSearchTemplate() || defaultTypeToSearchTemplate\"></ng-template>\n\t\t}\n\t\t@if (loading() && itemsList.filteredItems.length === 0) {\n\t\t\t<ng-template #defaultLoadingTextTemplate>\n\t\t\t\t<div class=\"ng-option ng-option-disabled\">{{ loadingText() || config.loadingText }}</div>\n\t\t\t</ng-template>\n\t\t\t<ng-template\n\t\t\t\t[ngTemplateOutlet]=\"loadingTextTemplate() || defaultLoadingTextTemplate\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n\t\t\t</ng-template>\n\t\t}\n\t</ng-dropdown-panel>\n}\n\n<!-- Always present aria-live region -->\n<div aria-atomic=\"true\" aria-live=\"polite\" class=\"ng-visually-hidden\" role=\"status\">\n\t@if (isOpen() && showNoItemsFound()) {\n\t\t{{ notFoundText() ?? config.notFoundText }}\n\t}\n</div>\n","import { 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\tNgFooterTemplateDirective,\n\tNgHeaderTemplateDirective,\n\tNgItemLabelDirective,\n\tNgLabelTemplateDirective,\n\tNgLoadingSpinnerTemplateDirective,\n\tNgLoadingTextTemplateDirective,\n\tNgMultiLabelTemplateDirective,\n\tNgNotFoundTemplateDirective,\n\tNgOptgroupTemplateDirective,\n\tNgOptionTemplateDirective,\n\tNgPlaceholderTemplateDirective,\n\tNgTagTemplateDirective,\n\tNgTypeToSearchTemplateDirective,\n\tNgClearButtonTemplateDirective\n} from './ng-templates.directive';\nimport { DefaultSelectionModelFactory } from './selection-model';\n\n@NgModule({\n\timports: [\n\t\tNgDropdownPanelComponent,\n\t\tNgOptionComponent,\n\t\tNgSelectComponent,\n\t\tNgOptgroupTemplateDirective,\n\t\tNgOptionTemplateDirective,\n\t\tNgLabelTemplateDirective,\n\t\tNgMultiLabelTemplateDirective,\n\t\tNgHeaderTemplateDirective,\n\t\tNgFooterTemplateDirective,\n\t\tNgPlaceholderTemplateDirective,\n\t\tNgClearButtonTemplateDirective,\n\t\tNgNotFoundTemplateDirective,\n\t\tNgTypeToSearchTemplateDirective,\n\t\tNgLoadingTextTemplateDirective,\n\t\tNgTagTemplateDirective,\n\t\tNgLoadingSpinnerTemplateDirective,\n\t\tNgItemLabelDirective,\n\t],\n\texports: [\n\t\tNgSelectComponent,\n\t\tNgOptionComponent,\n\t\tNgOptgroupTemplateDirective,\n\t\tNgOptionTemplateDirective,\n\t\tNgLabelTemplateDirective,\n\t\tNgMultiLabelTemplateDirective,\n\t\tNgHeaderTemplateDirective,\n\t\tNgFooterTemplateDirective,\n\t\tNgPlaceholderTemplateDirective,\n\t\tNgNotFoundTemplateDirective,\n\t\tNgTypeToSearchTemplateDirective,\n\t\tNgLoadingTextTemplateDirective,\n\t\tNgTagTemplateDirective,\n\t\tNgLoadingSpinnerTemplateDirective,\n\t\tNgClearButtonTemplateDirective\n\t],\n\tproviders: provideNgSelect(),\n})\nexport class NgSelectModule { }\n\nexport function provideNgSelect() {\n\treturn [\n\t\t{\n\t\t\tprovide: SELECTION_MODEL_FACTORY,\n\t\t\tuseValue: DefaultSelectionModelFactory,\n\t\t},\n\t];\n}","/*\n * Public API Surface of ng-select\n */\n\nexport { NgSelectComponent, SELECTION_MODEL_FACTORY } from './lib/ng-select.component';\nexport { NgSelectModule } from './lib/ng-select.module';\nexport { NgOption, DropdownPosition } from './lib/ng-select.types';\nexport { DefaultSelectionModelFactory, DefaultSelectionModel, SelectionModel } from './lib/selection-model';\nexport { NgSelectConfig } from './lib/config.service';\nexport { NgOptionComponent } from './lib/ng-option.component';\nexport { ConsoleService } from './lib/console.service';\nexport { NgDropdownPanelComponent } from './lib/ng-dropdown-panel.component';\nexport { NgDropdownPanelService } from './lib/ng-dropdown-panel.service';\nexport {\n\tNgOptgroupTemplateDirective,\n\tNgOptionTemplateDirective,\n\tNgFooterTemplateDirective,\n\tNgPlaceholderTemplateDirective,\n\tNgHeaderTemplateDirective,\n\tNgItemLabelDirective,\n\tNgLabelTemplateDirective,\n\tNgLoadingSpinnerTemplateDirective,\n\tNgLoadingTextTemplateDirective,\n\tNgMultiLabelTemplateDirective,\n\tNgNotFoundTemplateDirective,\n\tNgTagTemplateDirective,\n\tNgTypeToSearchTemplateDirective,\n\tNgClearButtonTemplateDirective,\n} from './lib/ng-templates.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["searchHelper.stripSpecialChars"],"mappings":"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,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE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"}
|
|
1
|
+
{"version":3,"file":"ng-select-ng-select.mjs","sources":["../../../src/ng-select/lib/value-utils.ts","../../../src/ng-select/lib/ng-templates.directive.ts","../../../src/ng-select/lib/config.service.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-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/ng-select.types.ts","../../../src/ng-select/lib/selection-model.ts","../../../src/ng-select/lib/ng-select.component.ts","../../../src/ng-select/lib/ng-select.component.html","../../../src/ng-select/lib/ng-select.module.ts","../../../src/ng-select/public-api.ts","../../../src/ng-select/ng-select-ng-select.ts"],"sourcesContent":["const unescapedHTMLExp = /[&<>\"']/g;\nconst hasUnescapedHTMLExp = RegExp(unescapedHTMLExp.source);\nconst htmlEscapes = {\n\t'&': '&',\n\t'<': '<',\n\t'>': '>',\n\t'\"': '"',\n\t\"'\": ''',\n};\n\nexport function escapeHTML(value: string) {\n\treturn value && hasUnescapedHTMLExp.test(value) ? value.replace(unescapedHTMLExp, (chr) => htmlEscapes[chr]) : value;\n}\n\nexport function isDefined(value: any) {\n\treturn value !== undefined && value !== null;\n}\n\nexport function isObject(value: any) {\n\treturn typeof value === 'object' && isDefined(value);\n}\n\nexport function isPromise(value: any) {\n\treturn value instanceof Promise;\n}\n\nexport function isFunction(value: any) {\n\treturn value instanceof Function;\n}\n","import { Directive, effect, ElementRef, inject, input, TemplateRef } from '@angular/core';\nimport { escapeHTML } from './value-utils';\n\n@Directive({\n\tselector: '[ngItemLabel]',\n\tstandalone: true,\n})\nexport class NgItemLabelDirective {\n\tprivate element = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\tngItemLabel = input<string>();\n\tescape = input(true);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tthis.element.nativeElement.innerHTML = this.escape()\n\t\t\t\t? escapeHTML(this.ngItemLabel())\n\t\t\t\t: this.ngItemLabel();\n\t\t})\n\t}\n}\n\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: '[ng-option-tmp]',\n\tstandalone: true,\n})\nexport class NgOptionTemplateDirective {\n\tpublic readonly template = inject(TemplateRef<any>);\n}\n\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: '[ng-optgroup-tmp]',\n\tstandalone: true,\n})\nexport class NgOptgroupTemplateDirective {\n\tpublic readonly template = inject(TemplateRef<any>);\n}\n\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: '[ng-label-tmp]',\n\tstandalone: true,\n})\nexport class NgLabelTemplateDirective {\n\tpublic readonly template = inject(TemplateRef<any>);\n}\n\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: '[ng-multi-label-tmp]',\n\tstandalone: true,\n})\nexport class NgMultiLabelTemplateDirective {\n\tpublic readonly template = inject(TemplateRef<any>);\n}\n\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: '[ng-header-tmp]',\n\tstandalone: true,\n})\nexport class NgHeaderTemplateDirective {\n\tpublic readonly template = inject(TemplateRef<any>);\n}\n\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: '[ng-footer-tmp]',\n\tstandalone: true,\n})\nexport class NgFooterTemplateDirective {\n\tpublic readonly template = inject(TemplateRef<any>);\n}\n\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: '[ng-notfound-tmp]',\n\tstandalone: true,\n})\nexport class NgNotFoundTemplateDirective {\n\tpublic readonly template = inject(TemplateRef<any>);\n}\n\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: '[ng-placeholder-tmp]',\n\tstandalone: true,\n})\nexport class NgPlaceholderTemplateDirective {\n\tpublic readonly template = inject(TemplateRef<any>);\n}\n\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: '[ng-typetosearch-tmp]',\n\tstandalone: true,\n})\nexport class NgTypeToSearchTemplateDirective {\n\tpublic readonly template = inject(TemplateRef<any>);\n}\n\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: '[ng-loadingtext-tmp]',\n\tstandalone: true,\n})\nexport class NgLoadingTextTemplateDirective {\n\tpublic readonly template = inject(TemplateRef<any>);\n}\n\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: '[ng-tag-tmp]',\n\tstandalone: true,\n})\nexport class NgTagTemplateDirective {\n\tpublic readonly template = inject(TemplateRef<any>);\n}\n\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: '[ng-loadingspinner-tmp]',\n\tstandalone: true,\n})\nexport class NgLoadingSpinnerTemplateDirective {\n\tpublic readonly template = inject(TemplateRef<any>);\n}\n\n// eslint-disable-next-line @angular-eslint/directive-selector\n@Directive({ selector: '[ng-clearbutton-tmp]', standalone: true })\nexport class NgClearButtonTemplateDirective {\n\tpublic readonly template = inject(TemplateRef<any>);\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class NgSelectConfig {\n\tplaceholder: string;\n\tfixedPlaceholder = true;\n\tnotFoundText = 'No items found';\n\ttypeToSearchText = 'Type to search';\n\taddTagText = 'Add item';\n\tloadingText = 'Loading...';\n\tclearAllText = 'Clear all';\n\tdisableVirtualScroll = true;\n\topenOnEnter = true;\n\tappendTo: string;\n\tbindValue: string;\n\tbindLabel: string;\n\tappearance = 'underline';\n\tclearSearchOnAdd: boolean;\n\tdeselectOnClick: boolean;\n\ttabFocusOnClear = true;\n\t/**\n\t * Controls which DOM event is used to detect outside clicks for closing the dropdown.\n\t * Defaults to 'click'. Set to 'mousedown' to handle early outside interactions\n\t * (useful when backdrops load on click and would otherwise close the dropdown).\n\t */\n\toutsideClickEvent: 'click' | 'mousedown' = 'click';\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class ConsoleService {\n\twarn(message: string) {\n\t\tconsole.warn(message);\n\t}\n}\n","export function newId() {\n\t// First character is an 'a', it's good practice to tag id to begin with a letter\n\treturn 'axxxxxxxxxxx'.replace(/[x]/g, () => {\n\t\tconst val = (Math.random() * 16) | 0;\n\t\treturn val.toString(16);\n\t});\n}\n","const diacritics = {\n\t'\\u24B6': 'A',\n\t'\\uFF21': 'A',\n\t'\\u00C0': 'A',\n\t'\\u00C1': 'A',\n\t'\\u00C2': 'A',\n\t'\\u1EA6': 'A',\n\t'\\u1EA4': 'A',\n\t'\\u1EAA': 'A',\n\t'\\u1EA8': 'A',\n\t'\\u00C3': 'A',\n\t'\\u0100': 'A',\n\t'\\u0102': 'A',\n\t'\\u1EB0': 'A',\n\t'\\u1EAE': 'A',\n\t'\\u1EB4': 'A',\n\t'\\u1EB2': 'A',\n\t'\\u0226': 'A',\n\t'\\u01E0': 'A',\n\t'\\u00C4': 'A',\n\t'\\u01DE': 'A',\n\t'\\u1EA2': 'A',\n\t'\\u00C5': 'A',\n\t'\\u01FA': 'A',\n\t'\\u01CD': 'A',\n\t'\\u0200': 'A',\n\t'\\u0202': 'A',\n\t'\\u1EA0': 'A',\n\t'\\u1EAC': 'A',\n\t'\\u1EB6': 'A',\n\t'\\u1E00': 'A',\n\t'\\u0104': 'A',\n\t'\\u023A': 'A',\n\t'\\u2C6F': 'A',\n\t'\\uA732': 'AA',\n\t'\\u00C6': 'AE',\n\t'\\u01FC': 'AE',\n\t'\\u01E2': 'AE',\n\t'\\uA734': 'AO',\n\t'\\uA736': 'AU',\n\t'\\uA738': 'AV',\n\t'\\uA73A': 'AV',\n\t'\\uA73C': 'AY',\n\t'\\u24B7': 'B',\n\t'\\uFF22': 'B',\n\t'\\u1E02': 'B',\n\t'\\u1E04': 'B',\n\t'\\u1E06': 'B',\n\t'\\u0243': 'B',\n\t'\\u0182': 'B',\n\t'\\u0181': 'B',\n\t'\\u24B8': 'C',\n\t'\\uFF23': 'C',\n\t'\\u0106': 'C',\n\t'\\u0108': 'C',\n\t'\\u010A': 'C',\n\t'\\u010C': 'C',\n\t'\\u00C7': 'C',\n\t'\\u1E08': 'C',\n\t'\\u0187': 'C',\n\t'\\u023B': 'C',\n\t'\\uA73E': 'C',\n\t'\\u24B9': 'D',\n\t'\\uFF24': 'D',\n\t'\\u1E0A': 'D',\n\t'\\u010E': 'D',\n\t'\\u1E0C': 'D',\n\t'\\u1E10': 'D',\n\t'\\u1E12': 'D',\n\t'\\u1E0E': 'D',\n\t'\\u0110': 'D',\n\t'\\u018B': 'D',\n\t'\\u018A': 'D',\n\t'\\u0189': 'D',\n\t'\\uA779': 'D',\n\t'\\u01F1': 'DZ',\n\t'\\u01C4': 'DZ',\n\t'\\u01F2': 'Dz',\n\t'\\u01C5': 'Dz',\n\t'\\u24BA': 'E',\n\t'\\uFF25': 'E',\n\t'\\u00C8': 'E',\n\t'\\u00C9': 'E',\n\t'\\u00CA': 'E',\n\t'\\u1EC0': 'E',\n\t'\\u1EBE': 'E',\n\t'\\u1EC4': 'E',\n\t'\\u1EC2': 'E',\n\t'\\u1EBC': 'E',\n\t'\\u0112': 'E',\n\t'\\u1E14': 'E',\n\t'\\u1E16': 'E',\n\t'\\u0114': 'E',\n\t'\\u0116': 'E',\n\t'\\u00CB': 'E',\n\t'\\u1EBA': 'E',\n\t'\\u011A': 'E',\n\t'\\u0204': 'E',\n\t'\\u0206': 'E',\n\t'\\u1EB8': 'E',\n\t'\\u1EC6': 'E',\n\t'\\u0228': 'E',\n\t'\\u1E1C': 'E',\n\t'\\u0118': 'E',\n\t'\\u1E18': 'E',\n\t'\\u1E1A': 'E',\n\t'\\u0190': 'E',\n\t'\\u018E': 'E',\n\t'\\u24BB': 'F',\n\t'\\uFF26': 'F',\n\t'\\u1E1E': 'F',\n\t'\\u0191': 'F',\n\t'\\uA77B': 'F',\n\t'\\u24BC': 'G',\n\t'\\uFF27': 'G',\n\t'\\u01F4': 'G',\n\t'\\u011C': 'G',\n\t'\\u1E20': 'G',\n\t'\\u011E': 'G',\n\t'\\u0120': 'G',\n\t'\\u01E6': 'G',\n\t'\\u0122': 'G',\n\t'\\u01E4': 'G',\n\t'\\u0193': 'G',\n\t'\\uA7A0': 'G',\n\t'\\uA77D': 'G',\n\t'\\uA77E': 'G',\n\t'\\u24BD': 'H',\n\t'\\uFF28': 'H',\n\t'\\u0124': 'H',\n\t'\\u1E22': 'H',\n\t'\\u1E26': 'H',\n\t'\\u021E': 'H',\n\t'\\u1E24': 'H',\n\t'\\u1E28': 'H',\n\t'\\u1E2A': 'H',\n\t'\\u0126': 'H',\n\t'\\u2C67': 'H',\n\t'\\u2C75': 'H',\n\t'\\uA78D': 'H',\n\t'\\u24BE': 'I',\n\t'\\uFF29': 'I',\n\t'\\u00CC': 'I',\n\t'\\u00CD': 'I',\n\t'\\u00CE': 'I',\n\t'\\u0128': 'I',\n\t'\\u012A': 'I',\n\t'\\u012C': 'I',\n\t'\\u0130': 'I',\n\t'\\u00CF': 'I',\n\t'\\u1E2E': 'I',\n\t'\\u1EC8': 'I',\n\t'\\u01CF': 'I',\n\t'\\u0208': 'I',\n\t'\\u020A': 'I',\n\t'\\u1ECA': 'I',\n\t'\\u012E': 'I',\n\t'\\u1E2C': 'I',\n\t'\\u0197': 'I',\n\t'\\u24BF': 'J',\n\t'\\uFF2A': 'J',\n\t'\\u0134': 'J',\n\t'\\u0248': 'J',\n\t'\\u24C0': 'K',\n\t'\\uFF2B': 'K',\n\t'\\u1E30': 'K',\n\t'\\u01E8': 'K',\n\t'\\u1E32': 'K',\n\t'\\u0136': 'K',\n\t'\\u1E34': 'K',\n\t'\\u0198': 'K',\n\t'\\u2C69': 'K',\n\t'\\uA740': 'K',\n\t'\\uA742': 'K',\n\t'\\uA744': 'K',\n\t'\\uA7A2': 'K',\n\t'\\u24C1': 'L',\n\t'\\uFF2C': 'L',\n\t'\\u013F': 'L',\n\t'\\u0139': 'L',\n\t'\\u013D': 'L',\n\t'\\u1E36': 'L',\n\t'\\u1E38': 'L',\n\t'\\u013B': 'L',\n\t'\\u1E3C': 'L',\n\t'\\u1E3A': 'L',\n\t'\\u0141': 'L',\n\t'\\u023D': 'L',\n\t'\\u2C62': 'L',\n\t'\\u2C60': 'L',\n\t'\\uA748': 'L',\n\t'\\uA746': 'L',\n\t'\\uA780': 'L',\n\t'\\u01C7': 'LJ',\n\t'\\u01C8': 'Lj',\n\t'\\u24C2': 'M',\n\t'\\uFF2D': 'M',\n\t'\\u1E3E': 'M',\n\t'\\u1E40': 'M',\n\t'\\u1E42': 'M',\n\t'\\u2C6E': 'M',\n\t'\\u019C': 'M',\n\t'\\u24C3': 'N',\n\t'\\uFF2E': 'N',\n\t'\\u01F8': 'N',\n\t'\\u0143': 'N',\n\t'\\u00D1': 'N',\n\t'\\u1E44': 'N',\n\t'\\u0147': 'N',\n\t'\\u1E46': 'N',\n\t'\\u0145': 'N',\n\t'\\u1E4A': 'N',\n\t'\\u1E48': 'N',\n\t'\\u0220': 'N',\n\t'\\u019D': 'N',\n\t'\\uA790': 'N',\n\t'\\uA7A4': 'N',\n\t'\\u01CA': 'NJ',\n\t'\\u01CB': 'Nj',\n\t'\\u24C4': 'O',\n\t'\\uFF2F': 'O',\n\t'\\u00D2': 'O',\n\t'\\u00D3': 'O',\n\t'\\u00D4': 'O',\n\t'\\u1ED2': 'O',\n\t'\\u1ED0': 'O',\n\t'\\u1ED6': 'O',\n\t'\\u1ED4': 'O',\n\t'\\u00D5': 'O',\n\t'\\u1E4C': 'O',\n\t'\\u022C': 'O',\n\t'\\u1E4E': 'O',\n\t'\\u014C': 'O',\n\t'\\u1E50': 'O',\n\t'\\u1E52': 'O',\n\t'\\u014E': 'O',\n\t'\\u022E': 'O',\n\t'\\u0230': 'O',\n\t'\\u00D6': 'O',\n\t'\\u022A': 'O',\n\t'\\u1ECE': 'O',\n\t'\\u0150': 'O',\n\t'\\u01D1': 'O',\n\t'\\u020C': 'O',\n\t'\\u020E': 'O',\n\t'\\u01A0': 'O',\n\t'\\u1EDC': 'O',\n\t'\\u1EDA': 'O',\n\t'\\u1EE0': 'O',\n\t'\\u1EDE': 'O',\n\t'\\u1EE2': 'O',\n\t'\\u1ECC': 'O',\n\t'\\u1ED8': 'O',\n\t'\\u01EA': 'O',\n\t'\\u01EC': 'O',\n\t'\\u00D8': 'O',\n\t'\\u01FE': 'O',\n\t'\\u0186': 'O',\n\t'\\u019F': 'O',\n\t'\\uA74A': 'O',\n\t'\\uA74C': 'O',\n\t'\\u01A2': 'OI',\n\t'\\uA74E': 'OO',\n\t'\\u0222': 'OU',\n\t'\\u24C5': 'P',\n\t'\\uFF30': 'P',\n\t'\\u1E54': 'P',\n\t'\\u1E56': 'P',\n\t'\\u01A4': 'P',\n\t'\\u2C63': 'P',\n\t'\\uA750': 'P',\n\t'\\uA752': 'P',\n\t'\\uA754': 'P',\n\t'\\u24C6': 'Q',\n\t'\\uFF31': 'Q',\n\t'\\uA756': 'Q',\n\t'\\uA758': 'Q',\n\t'\\u024A': 'Q',\n\t'\\u24C7': 'R',\n\t'\\uFF32': 'R',\n\t'\\u0154': 'R',\n\t'\\u1E58': 'R',\n\t'\\u0158': 'R',\n\t'\\u0210': 'R',\n\t'\\u0212': 'R',\n\t'\\u1E5A': 'R',\n\t'\\u1E5C': 'R',\n\t'\\u0156': 'R',\n\t'\\u1E5E': 'R',\n\t'\\u024C': 'R',\n\t'\\u2C64': 'R',\n\t'\\uA75A': 'R',\n\t'\\uA7A6': 'R',\n\t'\\uA782': 'R',\n\t'\\u24C8': 'S',\n\t'\\uFF33': 'S',\n\t'\\u1E9E': 'S',\n\t'\\u015A': 'S',\n\t'\\u1E64': 'S',\n\t'\\u015C': 'S',\n\t'\\u1E60': 'S',\n\t'\\u0160': 'S',\n\t'\\u1E66': 'S',\n\t'\\u1E62': 'S',\n\t'\\u1E68': 'S',\n\t'\\u0218': 'S',\n\t'\\u015E': 'S',\n\t'\\u2C7E': 'S',\n\t'\\uA7A8': 'S',\n\t'\\uA784': 'S',\n\t'\\u24C9': 'T',\n\t'\\uFF34': 'T',\n\t'\\u1E6A': 'T',\n\t'\\u0164': 'T',\n\t'\\u1E6C': 'T',\n\t'\\u021A': 'T',\n\t'\\u0162': 'T',\n\t'\\u1E70': 'T',\n\t'\\u1E6E': 'T',\n\t'\\u0166': 'T',\n\t'\\u01AC': 'T',\n\t'\\u01AE': 'T',\n\t'\\u023E': 'T',\n\t'\\uA786': 'T',\n\t'\\uA728': 'TZ',\n\t'\\u24CA': 'U',\n\t'\\uFF35': 'U',\n\t'\\u00D9': 'U',\n\t'\\u00DA': 'U',\n\t'\\u00DB': 'U',\n\t'\\u0168': 'U',\n\t'\\u1E78': 'U',\n\t'\\u016A': 'U',\n\t'\\u1E7A': 'U',\n\t'\\u016C': 'U',\n\t'\\u00DC': 'U',\n\t'\\u01DB': 'U',\n\t'\\u01D7': 'U',\n\t'\\u01D5': 'U',\n\t'\\u01D9': 'U',\n\t'\\u1EE6': 'U',\n\t'\\u016E': 'U',\n\t'\\u0170': 'U',\n\t'\\u01D3': 'U',\n\t'\\u0214': 'U',\n\t'\\u0216': 'U',\n\t'\\u01AF': 'U',\n\t'\\u1EEA': 'U',\n\t'\\u1EE8': 'U',\n\t'\\u1EEE': 'U',\n\t'\\u1EEC': 'U',\n\t'\\u1EF0': 'U',\n\t'\\u1EE4': 'U',\n\t'\\u1E72': 'U',\n\t'\\u0172': 'U',\n\t'\\u1E76': 'U',\n\t'\\u1E74': 'U',\n\t'\\u0244': 'U',\n\t'\\u24CB': 'V',\n\t'\\uFF36': 'V',\n\t'\\u1E7C': 'V',\n\t'\\u1E7E': 'V',\n\t'\\u01B2': 'V',\n\t'\\uA75E': 'V',\n\t'\\u0245': 'V',\n\t'\\uA760': 'VY',\n\t'\\u24CC': 'W',\n\t'\\uFF37': 'W',\n\t'\\u1E80': 'W',\n\t'\\u1E82': 'W',\n\t'\\u0174': 'W',\n\t'\\u1E86': 'W',\n\t'\\u1E84': 'W',\n\t'\\u1E88': 'W',\n\t'\\u2C72': 'W',\n\t'\\u24CD': 'X',\n\t'\\uFF38': 'X',\n\t'\\u1E8A': 'X',\n\t'\\u1E8C': 'X',\n\t'\\u24CE': 'Y',\n\t'\\uFF39': 'Y',\n\t'\\u1EF2': 'Y',\n\t'\\u00DD': 'Y',\n\t'\\u0176': 'Y',\n\t'\\u1EF8': 'Y',\n\t'\\u0232': 'Y',\n\t'\\u1E8E': 'Y',\n\t'\\u0178': 'Y',\n\t'\\u1EF6': 'Y',\n\t'\\u1EF4': 'Y',\n\t'\\u01B3': 'Y',\n\t'\\u024E': 'Y',\n\t'\\u1EFE': 'Y',\n\t'\\u24CF': 'Z',\n\t'\\uFF3A': 'Z',\n\t'\\u0179': 'Z',\n\t'\\u1E90': 'Z',\n\t'\\u017B': 'Z',\n\t'\\u017D': 'Z',\n\t'\\u1E92': 'Z',\n\t'\\u1E94': 'Z',\n\t'\\u01B5': 'Z',\n\t'\\u0224': 'Z',\n\t'\\u2C7F': 'Z',\n\t'\\u2C6B': 'Z',\n\t'\\uA762': 'Z',\n\t'\\u24D0': 'a',\n\t'\\uFF41': 'a',\n\t'\\u1E9A': 'a',\n\t'\\u00E0': 'a',\n\t'\\u00E1': 'a',\n\t'\\u00E2': 'a',\n\t'\\u1EA7': 'a',\n\t'\\u1EA5': 'a',\n\t'\\u1EAB': 'a',\n\t'\\u1EA9': 'a',\n\t'\\u00E3': 'a',\n\t'\\u0101': 'a',\n\t'\\u0103': 'a',\n\t'\\u1EB1': 'a',\n\t'\\u1EAF': 'a',\n\t'\\u1EB5': 'a',\n\t'\\u1EB3': 'a',\n\t'\\u0227': 'a',\n\t'\\u01E1': 'a',\n\t'\\u00E4': 'a',\n\t'\\u01DF': 'a',\n\t'\\u1EA3': 'a',\n\t'\\u00E5': 'a',\n\t'\\u01FB': 'a',\n\t'\\u01CE': 'a',\n\t'\\u0201': 'a',\n\t'\\u0203': 'a',\n\t'\\u1EA1': 'a',\n\t'\\u1EAD': 'a',\n\t'\\u1EB7': 'a',\n\t'\\u1E01': 'a',\n\t'\\u0105': 'a',\n\t'\\u2C65': 'a',\n\t'\\u0250': 'a',\n\t'\\uA733': 'aa',\n\t'\\u00E6': 'ae',\n\t'\\u01FD': 'ae',\n\t'\\u01E3': 'ae',\n\t'\\uA735': 'ao',\n\t'\\uA737': 'au',\n\t'\\uA739': 'av',\n\t'\\uA73B': 'av',\n\t'\\uA73D': 'ay',\n\t'\\u24D1': 'b',\n\t'\\uFF42': 'b',\n\t'\\u1E03': 'b',\n\t'\\u1E05': 'b',\n\t'\\u1E07': 'b',\n\t'\\u0180': 'b',\n\t'\\u0183': 'b',\n\t'\\u0253': 'b',\n\t'\\u24D2': 'c',\n\t'\\uFF43': 'c',\n\t'\\u0107': 'c',\n\t'\\u0109': 'c',\n\t'\\u010B': 'c',\n\t'\\u010D': 'c',\n\t'\\u00E7': 'c',\n\t'\\u1E09': 'c',\n\t'\\u0188': 'c',\n\t'\\u023C': 'c',\n\t'\\uA73F': 'c',\n\t'\\u2184': 'c',\n\t'\\u24D3': 'd',\n\t'\\uFF44': 'd',\n\t'\\u1E0B': 'd',\n\t'\\u010F': 'd',\n\t'\\u1E0D': 'd',\n\t'\\u1E11': 'd',\n\t'\\u1E13': 'd',\n\t'\\u1E0F': 'd',\n\t'\\u0111': 'd',\n\t'\\u018C': 'd',\n\t'\\u0256': 'd',\n\t'\\u0257': 'd',\n\t'\\uA77A': 'd',\n\t'\\u01F3': 'dz',\n\t'\\u01C6': 'dz',\n\t'\\u24D4': 'e',\n\t'\\uFF45': 'e',\n\t'\\u00E8': 'e',\n\t'\\u00E9': 'e',\n\t'\\u00EA': 'e',\n\t'\\u1EC1': 'e',\n\t'\\u1EBF': 'e',\n\t'\\u1EC5': 'e',\n\t'\\u1EC3': 'e',\n\t'\\u1EBD': 'e',\n\t'\\u0113': 'e',\n\t'\\u1E15': 'e',\n\t'\\u1E17': 'e',\n\t'\\u0115': 'e',\n\t'\\u0117': 'e',\n\t'\\u00EB': 'e',\n\t'\\u1EBB': 'e',\n\t'\\u011B': 'e',\n\t'\\u0205': 'e',\n\t'\\u0207': 'e',\n\t'\\u1EB9': 'e',\n\t'\\u1EC7': 'e',\n\t'\\u0229': 'e',\n\t'\\u1E1D': 'e',\n\t'\\u0119': 'e',\n\t'\\u1E19': 'e',\n\t'\\u1E1B': 'e',\n\t'\\u0247': 'e',\n\t'\\u025B': 'e',\n\t'\\u01DD': 'e',\n\t'\\u24D5': 'f',\n\t'\\uFF46': 'f',\n\t'\\u1E1F': 'f',\n\t'\\u0192': 'f',\n\t'\\uA77C': 'f',\n\t'\\u24D6': 'g',\n\t'\\uFF47': 'g',\n\t'\\u01F5': 'g',\n\t'\\u011D': 'g',\n\t'\\u1E21': 'g',\n\t'\\u011F': 'g',\n\t'\\u0121': 'g',\n\t'\\u01E7': 'g',\n\t'\\u0123': 'g',\n\t'\\u01E5': 'g',\n\t'\\u0260': 'g',\n\t'\\uA7A1': 'g',\n\t'\\u1D79': 'g',\n\t'\\uA77F': 'g',\n\t'\\u24D7': 'h',\n\t'\\uFF48': 'h',\n\t'\\u0125': 'h',\n\t'\\u1E23': 'h',\n\t'\\u1E27': 'h',\n\t'\\u021F': 'h',\n\t'\\u1E25': 'h',\n\t'\\u1E29': 'h',\n\t'\\u1E2B': 'h',\n\t'\\u1E96': 'h',\n\t'\\u0127': 'h',\n\t'\\u2C68': 'h',\n\t'\\u2C76': 'h',\n\t'\\u0265': 'h',\n\t'\\u0195': 'hv',\n\t'\\u24D8': 'i',\n\t'\\uFF49': 'i',\n\t'\\u00EC': 'i',\n\t'\\u00ED': 'i',\n\t'\\u00EE': 'i',\n\t'\\u0129': 'i',\n\t'\\u012B': 'i',\n\t'\\u012D': 'i',\n\t'\\u00EF': 'i',\n\t'\\u1E2F': 'i',\n\t'\\u1EC9': 'i',\n\t'\\u01D0': 'i',\n\t'\\u0209': 'i',\n\t'\\u020B': 'i',\n\t'\\u1ECB': 'i',\n\t'\\u012F': 'i',\n\t'\\u1E2D': 'i',\n\t'\\u0268': 'i',\n\t'\\u0131': 'i',\n\t'\\u24D9': 'j',\n\t'\\uFF4A': 'j',\n\t'\\u0135': 'j',\n\t'\\u01F0': 'j',\n\t'\\u0249': 'j',\n\t'\\u24DA': 'k',\n\t'\\uFF4B': 'k',\n\t'\\u1E31': 'k',\n\t'\\u01E9': 'k',\n\t'\\u1E33': 'k',\n\t'\\u0137': 'k',\n\t'\\u1E35': 'k',\n\t'\\u0199': 'k',\n\t'\\u2C6A': 'k',\n\t'\\uA741': 'k',\n\t'\\uA743': 'k',\n\t'\\uA745': 'k',\n\t'\\uA7A3': 'k',\n\t'\\u24DB': 'l',\n\t'\\uFF4C': 'l',\n\t'\\u0140': 'l',\n\t'\\u013A': 'l',\n\t'\\u013E': 'l',\n\t'\\u1E37': 'l',\n\t'\\u1E39': 'l',\n\t'\\u013C': 'l',\n\t'\\u1E3D': 'l',\n\t'\\u1E3B': 'l',\n\t'\\u017F': 'l',\n\t'\\u0142': 'l',\n\t'\\u019A': 'l',\n\t'\\u026B': 'l',\n\t'\\u2C61': 'l',\n\t'\\uA749': 'l',\n\t'\\uA781': 'l',\n\t'\\uA747': 'l',\n\t'\\u01C9': 'lj',\n\t'\\u24DC': 'm',\n\t'\\uFF4D': 'm',\n\t'\\u1E3F': 'm',\n\t'\\u1E41': 'm',\n\t'\\u1E43': 'm',\n\t'\\u0271': 'm',\n\t'\\u026F': 'm',\n\t'\\u24DD': 'n',\n\t'\\uFF4E': 'n',\n\t'\\u01F9': 'n',\n\t'\\u0144': 'n',\n\t'\\u00F1': 'n',\n\t'\\u1E45': 'n',\n\t'\\u0148': 'n',\n\t'\\u1E47': 'n',\n\t'\\u0146': 'n',\n\t'\\u1E4B': 'n',\n\t'\\u1E49': 'n',\n\t'\\u019E': 'n',\n\t'\\u0272': 'n',\n\t'\\u0149': 'n',\n\t'\\uA791': 'n',\n\t'\\uA7A5': 'n',\n\t'\\u01CC': 'nj',\n\t'\\u24DE': 'o',\n\t'\\uFF4F': 'o',\n\t'\\u00F2': 'o',\n\t'\\u00F3': 'o',\n\t'\\u00F4': 'o',\n\t'\\u1ED3': 'o',\n\t'\\u1ED1': 'o',\n\t'\\u1ED7': 'o',\n\t'\\u1ED5': 'o',\n\t'\\u00F5': 'o',\n\t'\\u1E4D': 'o',\n\t'\\u022D': 'o',\n\t'\\u1E4F': 'o',\n\t'\\u014D': 'o',\n\t'\\u1E51': 'o',\n\t'\\u1E53': 'o',\n\t'\\u014F': 'o',\n\t'\\u022F': 'o',\n\t'\\u0231': 'o',\n\t'\\u00F6': 'o',\n\t'\\u022B': 'o',\n\t'\\u1ECF': 'o',\n\t'\\u0151': 'o',\n\t'\\u01D2': 'o',\n\t'\\u020D': 'o',\n\t'\\u020F': 'o',\n\t'\\u01A1': 'o',\n\t'\\u1EDD': 'o',\n\t'\\u1EDB': 'o',\n\t'\\u1EE1': 'o',\n\t'\\u1EDF': 'o',\n\t'\\u1EE3': 'o',\n\t'\\u1ECD': 'o',\n\t'\\u1ED9': 'o',\n\t'\\u01EB': 'o',\n\t'\\u01ED': 'o',\n\t'\\u00F8': 'o',\n\t'\\u01FF': 'o',\n\t'\\u0254': 'o',\n\t'\\uA74B': 'o',\n\t'\\uA74D': 'o',\n\t'\\u0275': 'o',\n\t'\\u01A3': 'oi',\n\t'\\u0223': 'ou',\n\t'\\uA74F': 'oo',\n\t'\\u24DF': 'p',\n\t'\\uFF50': 'p',\n\t'\\u1E55': 'p',\n\t'\\u1E57': 'p',\n\t'\\u01A5': 'p',\n\t'\\u1D7D': 'p',\n\t'\\uA751': 'p',\n\t'\\uA753': 'p',\n\t'\\uA755': 'p',\n\t'\\u24E0': 'q',\n\t'\\uFF51': 'q',\n\t'\\u024B': 'q',\n\t'\\uA757': 'q',\n\t'\\uA759': 'q',\n\t'\\u24E1': 'r',\n\t'\\uFF52': 'r',\n\t'\\u0155': 'r',\n\t'\\u1E59': 'r',\n\t'\\u0159': 'r',\n\t'\\u0211': 'r',\n\t'\\u0213': 'r',\n\t'\\u1E5B': 'r',\n\t'\\u1E5D': 'r',\n\t'\\u0157': 'r',\n\t'\\u1E5F': 'r',\n\t'\\u024D': 'r',\n\t'\\u027D': 'r',\n\t'\\uA75B': 'r',\n\t'\\uA7A7': 'r',\n\t'\\uA783': 'r',\n\t'\\u24E2': 's',\n\t'\\uFF53': 's',\n\t'\\u00DF': 's',\n\t'\\u015B': 's',\n\t'\\u1E65': 's',\n\t'\\u015D': 's',\n\t'\\u1E61': 's',\n\t'\\u0161': 's',\n\t'\\u1E67': 's',\n\t'\\u1E63': 's',\n\t'\\u1E69': 's',\n\t'\\u0219': 's',\n\t'\\u015F': 's',\n\t'\\u023F': 's',\n\t'\\uA7A9': 's',\n\t'\\uA785': 's',\n\t'\\u1E9B': 's',\n\t'\\u24E3': 't',\n\t'\\uFF54': 't',\n\t'\\u1E6B': 't',\n\t'\\u1E97': 't',\n\t'\\u0165': 't',\n\t'\\u1E6D': 't',\n\t'\\u021B': 't',\n\t'\\u0163': 't',\n\t'\\u1E71': 't',\n\t'\\u1E6F': 't',\n\t'\\u0167': 't',\n\t'\\u01AD': 't',\n\t'\\u0288': 't',\n\t'\\u2C66': 't',\n\t'\\uA787': 't',\n\t'\\uA729': 'tz',\n\t'\\u24E4': 'u',\n\t'\\uFF55': 'u',\n\t'\\u00F9': 'u',\n\t'\\u00FA': 'u',\n\t'\\u00FB': 'u',\n\t'\\u0169': 'u',\n\t'\\u1E79': 'u',\n\t'\\u016B': 'u',\n\t'\\u1E7B': 'u',\n\t'\\u016D': 'u',\n\t'\\u00FC': 'u',\n\t'\\u01DC': 'u',\n\t'\\u01D8': 'u',\n\t'\\u01D6': 'u',\n\t'\\u01DA': 'u',\n\t'\\u1EE7': 'u',\n\t'\\u016F': 'u',\n\t'\\u0171': 'u',\n\t'\\u01D4': 'u',\n\t'\\u0215': 'u',\n\t'\\u0217': 'u',\n\t'\\u01B0': 'u',\n\t'\\u1EEB': 'u',\n\t'\\u1EE9': 'u',\n\t'\\u1EEF': 'u',\n\t'\\u1EED': 'u',\n\t'\\u1EF1': 'u',\n\t'\\u1EE5': 'u',\n\t'\\u1E73': 'u',\n\t'\\u0173': 'u',\n\t'\\u1E77': 'u',\n\t'\\u1E75': 'u',\n\t'\\u0289': 'u',\n\t'\\u24E5': 'v',\n\t'\\uFF56': 'v',\n\t'\\u1E7D': 'v',\n\t'\\u1E7F': 'v',\n\t'\\u028B': 'v',\n\t'\\uA75F': 'v',\n\t'\\u028C': 'v',\n\t'\\uA761': 'vy',\n\t'\\u24E6': 'w',\n\t'\\uFF57': 'w',\n\t'\\u1E81': 'w',\n\t'\\u1E83': 'w',\n\t'\\u0175': 'w',\n\t'\\u1E87': 'w',\n\t'\\u1E85': 'w',\n\t'\\u1E98': 'w',\n\t'\\u1E89': 'w',\n\t'\\u2C73': 'w',\n\t'\\u24E7': 'x',\n\t'\\uFF58': 'x',\n\t'\\u1E8B': 'x',\n\t'\\u1E8D': 'x',\n\t'\\u24E8': 'y',\n\t'\\uFF59': 'y',\n\t'\\u1EF3': 'y',\n\t'\\u00FD': 'y',\n\t'\\u0177': 'y',\n\t'\\u1EF9': 'y',\n\t'\\u0233': 'y',\n\t'\\u1E8F': 'y',\n\t'\\u00FF': 'y',\n\t'\\u1EF7': 'y',\n\t'\\u1E99': 'y',\n\t'\\u1EF5': 'y',\n\t'\\u01B4': 'y',\n\t'\\u024F': 'y',\n\t'\\u1EFF': 'y',\n\t'\\u24E9': 'z',\n\t'\\uFF5A': 'z',\n\t'\\u017A': 'z',\n\t'\\u1E91': 'z',\n\t'\\u017C': 'z',\n\t'\\u017E': 'z',\n\t'\\u1E93': 'z',\n\t'\\u1E95': 'z',\n\t'\\u01B6': 'z',\n\t'\\u0225': 'z',\n\t'\\u0240': 'z',\n\t'\\u2C6C': 'z',\n\t'\\uA763': 'z',\n\t'\\u0386': '\\u0391',\n\t'\\u0388': '\\u0395',\n\t'\\u0389': '\\u0397',\n\t'\\u038A': '\\u0399',\n\t'\\u03AA': '\\u0399',\n\t'\\u038C': '\\u039F',\n\t'\\u038E': '\\u03A5',\n\t'\\u03AB': '\\u03A5',\n\t'\\u038F': '\\u03A9',\n\t'\\u03AC': '\\u03B1',\n\t'\\u03AD': '\\u03B5',\n\t'\\u03AE': '\\u03B7',\n\t'\\u03AF': '\\u03B9',\n\t'\\u03CA': '\\u03B9',\n\t'\\u0390': '\\u03B9',\n\t'\\u03CC': '\\u03BF',\n\t'\\u03CD': '\\u03C5',\n\t'\\u03CB': '\\u03C5',\n\t'\\u03B0': '\\u03C5',\n\t'\\u03C9': '\\u03C9',\n\t'\\u03C2': '\\u03C3',\n};\n\nexport function stripSpecialChars(text: string): string {\n\tconst match = (a: string): string => diacritics[a] || a;\n\t// eslint-disable-next-line no-control-regex\n\treturn 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\tprivate _groups: OptionGroups;\n\n\tconstructor(\n\t\tprivate _ngSelect: NgSelectComponent,\n\t\tprivate _selectionModel: SelectionModel,\n\t) {}\n\n\tprivate _items: NgOption[] = [];\n\n\tget items(): NgOption[] {\n\t\treturn this._items;\n\t}\n\n\tprivate _filteredItems: NgOption[] = [];\n\n\tget filteredItems(): NgOption[] {\n\t\treturn this._filteredItems;\n\t}\n\n\tprivate _markedIndex = -1;\n\n\tget markedIndex(): number {\n\t\treturn this._markedIndex;\n\t}\n\n\tget selectedItems() {\n\t\treturn this._selectionModel.value;\n\t}\n\n\tget markedItem(): NgOption {\n\t\treturn this._filteredItems[this._markedIndex];\n\t}\n\n\tget noItemsToSelect(): boolean {\n\t\treturn this._ngSelect.hideSelected() && this._items.length === this.selectedItems.length;\n\t}\n\n\tget maxItemsSelected(): boolean {\n\t\treturn this._ngSelect.multiple() && this._ngSelect.maxSelectedItems() <= this.selectedItems.length;\n\t}\n\n\tget lastSelectedItem() {\n\t\tlet i = this.selectedItems.length - 1;\n\t\tfor (; i >= 0; i--) {\n\t\t\tconst item = this.selectedItems[i];\n\t\t\tif (!item.disabled) {\n\t\t\t\treturn item;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tsetItems(items: readonly any[]) {\n\t\tthis._items = items.map((item, index) => this.mapItem(item, index));\n\t\tconst groupBy = this._ngSelect.groupBy();\n\t\tif (groupBy) {\n\t\t\tthis._groups = this._groupBy(this._items, groupBy);\n\t\t\tthis._items = this._flatten(this._groups);\n\t\t} else {\n\t\t\tthis._groups = new Map();\n\t\t\tthis._groups.set(undefined, this._items);\n\t\t}\n\t\tthis._filteredItems = [...this._items];\n\t}\n\n\tselect(item: NgOption) {\n\t\tif (item.selected || this.maxItemsSelected) {\n\t\t\treturn;\n\t\t}\n\t\tconst multiple = this._ngSelect.multiple();\n\t\tif (!multiple) {\n\t\t\tthis.clearSelected();\n\t\t}\n\n\t\tthis._selectionModel.select(item, multiple, this._ngSelect.selectableGroupAsModel());\n\t\tif (this._ngSelect.hideSelected()) {\n\t\t\tthis._hideSelected(item);\n\t\t}\n\t}\n\n\tunselect(item: NgOption) {\n\t\tif (!item.selected) {\n\t\t\treturn;\n\t\t}\n\t\tconst multiple = this._ngSelect.multiple();\n\t\tthis._selectionModel.unselect(item, multiple);\n\t\tif (this._ngSelect.hideSelected() && isDefined(item.index) && multiple) {\n\t\t\tthis._showSelected(item);\n\t\t}\n\t}\n\n\tfindItem(value: any): NgOption {\n\t\tlet findBy: (item: NgOption) => boolean;\n\t\tif (this._ngSelect.compareWith()) {\n\t\t\tfindBy = (item) => this._ngSelect.compareWith()(item.value, value);\n\t\t} else if (this._ngSelect.bindValue()) {\n\t\t\tfindBy = (item) => !item.children && this.resolveNested(item.value, this._ngSelect.bindValue()) === value;\n\t\t} else {\n\t\t\tfindBy = (item) =>\n\t\t\t\titem.value === value || (!item.children && item.label && item.label === this.resolveNested(value, this._ngSelect.bindLabel()));\n\t\t}\n\t\treturn this._items.find((item) => findBy(item));\n\t}\n\n\taddItem(item: any) {\n\t\tconst option = this.mapItem(item, this._items.length);\n\t\tthis._items.push(option);\n\t\tthis._filteredItems.push(option);\n\t\treturn option;\n\t}\n\n\tclearSelected(keepDisabled = false) {\n\t\tthis._selectionModel.clear(keepDisabled);\n\t\tthis._items.forEach((item) => {\n\t\t\titem.selected = keepDisabled && item.selected && item.disabled;\n\t\t\titem.marked = false;\n\t\t});\n\t\tif (this._ngSelect.hideSelected()) {\n\t\t\tthis.resetFilteredItems();\n\t\t}\n\t}\n\n\tfindByLabel(term: string) {\n\t\tterm = searchHelper.stripSpecialChars(term).toLocaleLowerCase();\n\t\treturn this.filteredItems.find((item) => {\n\t\t\tconst label = searchHelper.stripSpecialChars(item.label).toLocaleLowerCase();\n\t\t\treturn label.substr(0, term.length) === term;\n\t\t});\n\t}\n\n\tfilter(term: string): void {\n\t\tif (!term) {\n\t\t\tthis.resetFilteredItems();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._filteredItems = [];\n\t\tterm = this._ngSelect.searchFn() ? term : searchHelper.stripSpecialChars(term).toLocaleLowerCase();\n\t\tconst match = this._ngSelect.searchFn() || this._defaultSearchFn;\n\t\tconst hideSelected = this._ngSelect.hideSelected();\n\n\t\tfor (const key of Array.from(this._groups.keys())) {\n\t\t\tconst matchedItems = [];\n\t\t\tfor (const item of this._groups.get(key)) {\n\t\t\t\tif (hideSelected && ((item.parent && item.parent.selected) || item.selected)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst searchItem = this._ngSelect.searchFn() ? item.value : item;\n\t\t\t\tif (match(term, searchItem)) {\n\t\t\t\t\tmatchedItems.push(item);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (matchedItems.length > 0) {\n\t\t\t\tconst [last] = matchedItems.slice(-1);\n\t\t\t\tif (last.parent) {\n\t\t\t\t\tconst head = this._items.find((x) => x === last.parent);\n\t\t\t\t\tthis._filteredItems.push(head);\n\t\t\t\t}\n\t\t\t\tthis._filteredItems.push(...matchedItems);\n\t\t\t}\n\t\t}\n\t}\n\n\tresetFilteredItems() {\n\t\tif (this._filteredItems.length === this._items.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._ngSelect.hideSelected() && this.selectedItems.length > 0) {\n\t\t\tthis._filteredItems = this._items.filter((x) => !x.selected);\n\t\t} else {\n\t\t\tthis._filteredItems = this._items;\n\t\t}\n\t}\n\n\tunmarkItem() {\n\t\tthis._markedIndex = -1;\n\t}\n\n\tmarkNextItem() {\n\t\tthis._stepToItem(+1);\n\t}\n\n\tmarkPreviousItem() {\n\t\tthis._stepToItem(-1);\n\t}\n\n\tmarkItem(item: NgOption) {\n\t\tthis._markedIndex = this._filteredItems.indexOf(item);\n\t}\n\n\tmarkSelectedOrDefault(markDefault?: boolean) {\n\t\tif (this._filteredItems.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst lastMarkedIndex = this._getLastMarkedIndex();\n\t\tif (lastMarkedIndex > -1) {\n\t\t\tthis._markedIndex = lastMarkedIndex;\n\t\t} else {\n\t\t\tthis._markedIndex = markDefault ? this.filteredItems.findIndex((x) => !x.disabled) : -1;\n\t\t}\n\t}\n\n\tresolveNested(option: any, key: string): any {\n\t\tif (!isObject(option)) {\n\t\t\treturn option;\n\t\t}\n\t\tif (key.indexOf('.') === -1) {\n\t\t\treturn option[key];\n\t\t} else {\n\t\t\tconst keys: string[] = key.split('.');\n\t\t\tlet value = option;\n\t\t\tfor (let i = 0, len = keys.length; i < len; ++i) {\n\t\t\t\tif (value == null) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tvalue = value[keys[i]];\n\t\t\t}\n\t\t\treturn value;\n\t\t}\n\t}\n\n\tmapItem(item: any, index: number): NgOption {\n\t\tconst hasNgOptionLabel = isObject(item) && '$ngOptionLabel' in item;\n\t\tconst hasNgOptionValue = isObject(item) && '$ngOptionValue' in item;\n\t\tconst label = hasNgOptionLabel ? item.$ngOptionLabel : this.resolveNested(item, this._ngSelect.bindLabel());\n\t\tconst value = hasNgOptionValue ? item.$ngOptionValue : item;\n\t\treturn {\n\t\t\tindex,\n\t\t\tlabel: isDefined(label) ? label.toString() : '',\n\t\t\tvalue,\n\t\t\tdisabled: item && item.disabled ? item.disabled : false,\n\t\t\thtmlId: `${this._ngSelect.dropdownId}-${index}`,\n\t\t};\n\t}\n\n\tmapSelectedItems() {\n\t\tconst multiple = this._ngSelect.multiple();\n\t\tfor (const selected of this.selectedItems) {\n\t\t\tconst bindValue = this._ngSelect.bindValue();\n\t\t\tlet item: NgOption | null = null;\n\n\t\t\t// When compareWith is used, we need to find the item using the original selected value rather than the extracted bindValue,\n\t\t\t// since compareWith expects to compare against the original value\n\t\t\tif (this._ngSelect.compareWith()) {\n\t\t\t\titem = this._items.find((item) => this._ngSelect.compareWith()(item.value, selected.value));\n\t\t\t} else {\n\t\t\t\tconst value = bindValue ? this.resolveNested(selected.value, bindValue) : selected.value;\n\t\t\t\titem = isDefined(value) ? this.findItem(value) : null;\n\t\t\t}\n\n\t\t\tthis._selectionModel.unselect(selected, multiple);\n\t\t\tthis._selectionModel.select(item || selected, multiple, this._ngSelect.selectableGroupAsModel());\n\t\t}\n\n\t\tif (this._ngSelect.hideSelected()) {\n\t\t\tthis._filteredItems = this.filteredItems.filter((x) => this.selectedItems.indexOf(x) === -1);\n\t\t}\n\t}\n\n\tprivate _showSelected(item: NgOption) {\n\t\tthis._filteredItems.push(item);\n\t\tif (item.parent) {\n\t\t\tconst parent = item.parent;\n\t\t\tconst parentExists = this._filteredItems.find((x) => x === parent);\n\t\t\tif (!parentExists) {\n\t\t\t\tthis._filteredItems.push(parent);\n\t\t\t}\n\t\t} else if (item.children) {\n\t\t\tfor (const child of item.children) {\n\t\t\t\tchild.selected = false;\n\t\t\t\tthis._filteredItems.push(child);\n\t\t\t}\n\t\t}\n\t\tthis._filteredItems = [...this._filteredItems.sort((a, b) => a.index - b.index)];\n\t}\n\n\tprivate _hideSelected(item: NgOption) {\n\t\tthis._filteredItems = this._filteredItems.filter((x) => x !== item);\n\t\tif (item.parent) {\n\t\t\tconst children = item.parent.children;\n\t\t\tif (children.every((x) => x.selected)) {\n\t\t\t\tthis._filteredItems = this._filteredItems.filter((x) => x !== item.parent);\n\t\t\t}\n\t\t} else if (item.children) {\n\t\t\tthis._filteredItems = this.filteredItems.filter((x) => x.parent !== item);\n\t\t}\n\t}\n\n\tprivate _defaultSearchFn(search: string, opt: NgOption) {\n\t\tconst label = searchHelper.stripSpecialChars(opt.label).toLocaleLowerCase();\n\t\treturn label.indexOf(search) > -1;\n\t}\n\n\tprivate _getNextItemIndex(steps: number) {\n\t\tif (steps > 0) {\n\t\t\treturn this._markedIndex >= this._filteredItems.length - 1 ? 0 : this._markedIndex + 1;\n\t\t}\n\t\treturn this._markedIndex <= 0 ? this._filteredItems.length - 1 : this._markedIndex - 1;\n\t}\n\n\tprivate _stepToItem(steps: number) {\n\t\tif (this._filteredItems.length === 0 || this._filteredItems.every((x) => x.disabled)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._markedIndex = this._getNextItemIndex(steps);\n\t\tif (this.markedItem.disabled) {\n\t\t\tthis._stepToItem(steps);\n\t\t}\n\t}\n\n\tprivate _getLastMarkedIndex() {\n\t\tif (this._ngSelect.hideSelected()) {\n\t\t\treturn -1;\n\t\t}\n\n\t\tif (this._markedIndex > -1 && this.markedItem === undefined) {\n\t\t\treturn -1;\n\t\t}\n\n\t\tconst selectedIndex = this._filteredItems.indexOf(this.lastSelectedItem);\n\t\tif (this.lastSelectedItem && selectedIndex < 0) {\n\t\t\treturn -1;\n\t\t}\n\n\t\treturn Math.max(this.markedIndex, selectedIndex);\n\t}\n\n\tprivate _groupBy(items: NgOption[], prop: string | ((value: any) => any)): OptionGroups {\n\t\tconst groups = new Map<string | NgOption, NgOption[]>();\n\t\tif (items.length === 0) {\n\t\t\treturn groups;\n\t\t}\n\n\t\t// Check if items are already grouped by given key.\n\t\tif (Array.isArray(items[0].value[<string>prop])) {\n\t\t\tfor (const item of items) {\n\t\t\t\tconst children = (item.value[<string>prop] || []).map((x, index) => this.mapItem(x, index));\n\t\t\t\tgroups.set(item, children);\n\t\t\t}\n\t\t\treturn groups;\n\t\t}\n\n\t\tconst isFnKey = isFunction(this._ngSelect.groupBy());\n\t\tconst keyFn = (item: NgOption) => {\n\t\t\tconst key = isFnKey ? (<(value: any) => any>prop)(item.value) : item.value[<string>prop];\n\t\t\treturn isDefined(key) ? key : undefined;\n\t\t};\n\n\t\t// Group items by key.\n\t\tfor (const item of items) {\n\t\t\tconst key = keyFn(item);\n\t\t\tconst group = groups.get(key);\n\t\t\tif (group) {\n\t\t\t\tgroup.push(item);\n\t\t\t} else {\n\t\t\t\tgroups.set(key, [item]);\n\t\t\t}\n\t\t}\n\t\treturn groups;\n\t}\n\n\tprivate _flatten(groups: OptionGroups) {\n\t\tconst isGroupByFn = isFunction(this._ngSelect.groupBy());\n\t\tconst items = [];\n\t\tfor (const key of Array.from(groups.keys())) {\n\t\t\tlet i = items.length;\n\t\t\tif (key === undefined) {\n\t\t\t\tconst withoutGroup = groups.get(undefined) || [];\n\t\t\t\titems.push(\n\t\t\t\t\t...withoutGroup.map((x) => {\n\t\t\t\t\t\tx.index = i++;\n\t\t\t\t\t\treturn x;\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst isObjectKey = isObject(key);\n\t\t\tconst parent: NgOption = {\n\t\t\t\tlabel: isObjectKey ? '' : String(key),\n\t\t\t\tchildren: undefined,\n\t\t\t\tparent: null,\n\t\t\t\tindex: i++,\n\t\t\t\tdisabled: !this._ngSelect.selectableGroup(),\n\t\t\t\thtmlId: newId(),\n\t\t\t};\n\t\t\tconst groupKey = isGroupByFn ? this._ngSelect.bindLabel() : <string>this._ngSelect.groupBy();\n\t\t\tconst groupValue =\n\t\t\t\tthis._ngSelect.groupValue() ||\n\t\t\t\t(() => {\n\t\t\t\t\tif (isObjectKey) {\n\t\t\t\t\t\treturn (<NgOption>key).value;\n\t\t\t\t\t}\n\t\t\t\t\treturn { [groupKey]: key };\n\t\t\t\t});\n\t\t\tconst children = groups.get(key).map((x) => {\n\t\t\t\tx.parent = parent;\n\t\t\t\tx.children = undefined;\n\t\t\t\tx.index = i++;\n\t\t\t\treturn x;\n\t\t\t});\n\t\t\tparent.children = children;\n\t\t\tparent.value = groupValue(\n\t\t\t\tkey,\n\t\t\t\tchildren.map((x) => x.value),\n\t\t\t);\n\t\t\titems.push(parent);\n\t\t\titems.push(...children);\n\t\t}\n\t\treturn items;\n\t}\n}\n","import { Injectable } from '@angular/core';\nexport interface ItemsRangeResult {\n\tscrollHeight: number;\n\ttopPadding: number;\n\tstart: number;\n\tend: number;\n}\n\nexport interface PanelDimensions {\n\titemHeight: number;\n\tpanelHeight: number;\n\titemsPerViewport: number;\n}\n\n@Injectable()\nexport class NgDropdownPanelService {\n\tprivate _dimensions: PanelDimensions = {\n\t\titemHeight: 0,\n\t\tpanelHeight: 0,\n\t\titemsPerViewport: 0,\n\t};\n\n\tget dimensions() {\n\t\treturn this._dimensions;\n\t}\n\n\tcalculateItems(scrollPos: number, itemsLength: number, buffer: number): ItemsRangeResult {\n\t\tconst d = this._dimensions;\n\t\tconst scrollHeight = d.itemHeight * itemsLength;\n\n\t\tconst scrollTop = Math.max(0, scrollPos);\n\t\tconst indexByScrollTop = (scrollTop / scrollHeight) * itemsLength;\n\t\tlet end = Math.min(itemsLength, Math.ceil(indexByScrollTop) + (d.itemsPerViewport + 1));\n\n\t\tconst maxStartEnd = end;\n\t\tconst maxStart = Math.max(0, maxStartEnd - d.itemsPerViewport);\n\t\tlet start = Math.min(maxStart, Math.floor(indexByScrollTop));\n\n\t\tlet topPadding = d.itemHeight * Math.ceil(start) - d.itemHeight * Math.min(start, buffer);\n\t\ttopPadding = !isNaN(topPadding) ? topPadding : 0;\n\t\tstart = !isNaN(start) ? start : -1;\n\t\tend = !isNaN(end) ? end : -1;\n\t\tstart -= buffer;\n\t\tstart = Math.max(0, start);\n\t\tend += buffer;\n\t\tend = Math.min(itemsLength, end);\n\n\t\treturn {\n\t\t\ttopPadding,\n\t\t\tscrollHeight,\n\t\t\tstart,\n\t\t\tend,\n\t\t};\n\t}\n\n\tsetDimensions(itemHeight: number, panelHeight: number) {\n\t\tconst itemsPerViewport = Math.max(1, Math.floor(panelHeight / itemHeight));\n\t\tthis._dimensions = {\n\t\t\titemHeight,\n\t\t\tpanelHeight,\n\t\t\titemsPerViewport,\n\t\t};\n\t}\n\n\tgetScrollTo(itemTop: number, itemHeight: number, lastScroll: number) {\n\t\tconst { panelHeight } = this.dimensions;\n\t\tconst itemBottom = itemTop + itemHeight;\n\t\tconst top = lastScroll;\n\t\tconst bottom = top + panelHeight;\n\n\t\tif (panelHeight >= itemBottom && lastScroll === itemTop) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif (itemBottom > bottom) {\n\t\t\treturn top + itemBottom - bottom;\n\t\t} else if (itemTop <= top) {\n\t\t\treturn itemTop;\n\t\t}\n\n\t\treturn null;\n\t}\n}\n","import { DOCUMENT, NgTemplateOutlet } from '@angular/common';\nimport {\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tDestroyRef,\n\tElementRef,\n\tinject,\n\tinput,\n\tNgZone,\n\tOnChanges,\n\tOnInit,\n\toutput,\n\tRenderer2,\n\tSimpleChanges,\n\tTemplateRef,\n\tviewChild,\n\tViewEncapsulation,\n} from '@angular/core';\n\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { animationFrameScheduler, asapScheduler, fromEvent } from 'rxjs';\nimport { auditTime } from 'rxjs/operators';\nimport { NgDropdownPanelService, PanelDimensions } from './ng-dropdown-panel.service';\n\nimport { DropdownPosition, NgOption } from './ng-select.types';\nimport { isDefined } from './value-utils';\n\nconst CSS_POSITIONS: readonly string[] = ['top', 'right', 'bottom', 'left'];\nconst SCROLL_SCHEDULER = typeof requestAnimationFrame !== 'undefined' ? animationFrameScheduler : asapScheduler;\n\n@Component({\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\tselector: 'ng-dropdown-panel',\n\ttemplate: `\n\t\t@if (headerTemplate()) {\n\t\t\t<div class=\"ng-dropdown-header\">\n\t\t\t\t<ng-container [ngTemplateOutlet]=\"headerTemplate()\" [ngTemplateOutletContext]=\"{ searchTerm: filterValue() }\" />\n\t\t\t</div>\n\t\t}\n\t\t<div #scroll role=\"listbox\" class=\"ng-dropdown-panel-items scroll-host\" [attr.aria-label]=\"ariaLabelDropdown()\">\n\t\t\t<div #padding [class.total-padding]=\"virtualScroll()\"></div>\n\t\t\t<div #content [class.scrollable-content]=\"virtualScroll() && items().length\">\n\t\t\t\t<ng-content />\n\t\t\t</div>\n\t\t</div>\n\t\t@if (footerTemplate()) {\n\t\t\t<div class=\"ng-dropdown-footer\">\n\t\t\t\t<ng-container [ngTemplateOutlet]=\"footerTemplate()\" [ngTemplateOutletContext]=\"{ searchTerm: filterValue() }\" />\n\t\t\t</div>\n\t\t}\n\t`,\n\timports: [NgTemplateOutlet],\n})\nexport class NgDropdownPanelComponent implements OnInit, OnChanges {\n\treadonly items = input<NgOption[]>([]);\n\treadonly showAddTag = input(false, { transform: booleanAttribute });\n\treadonly markedItem = input<NgOption>(undefined);\n\treadonly position = input<DropdownPosition>('auto');\n\treadonly appendTo = input<string>(undefined);\n\treadonly bufferAmount = input<number>(undefined);\n\treadonly virtualScroll = input(false, { transform: booleanAttribute });\n\treadonly headerTemplate = input<TemplateRef<any>>(undefined);\n\treadonly footerTemplate = input<TemplateRef<any>>(undefined);\n\treadonly filterValue = input<string>(null);\n\treadonly ariaLabelDropdown = input<string | null>(null);\n\t/**\n\t * Which DOM event to listen to for outside click detection\n\t */\n\treadonly outsideClickEvent = input<'click' | 'mousedown'>('click');\n\treadonly update = output<any[]>();\n\treadonly scroll = output<{\n\t\tstart: number;\n\t\tend: number;\n\t}>();\n\treadonly scrollToEnd = output<void>();\n\treadonly outsideClick = output<void>();\n\tprivate _renderer = inject(Renderer2);\n\tprivate _zone = inject(NgZone);\n\tprivate _panelService = inject(NgDropdownPanelService);\n\tprivate _document = inject(DOCUMENT, { optional: true })!;\n\tprivate _destroyRef = inject(DestroyRef);\n\tprivate _dropdown = inject(ElementRef<HTMLElement>).nativeElement;\n\tprivate readonly contentElementRef = viewChild('content', { read: ElementRef });\n\tprivate readonly scrollElementRef = viewChild('scroll', { read: ElementRef });\n\tprivate readonly paddingElementRef = viewChild('padding', { read: ElementRef });\n\n\tprivate readonly _virtualPadding = computed(() => this.paddingElementRef()?.nativeElement);\n\tprivate readonly _scrollablePanel = computed(() => this.scrollElementRef()?.nativeElement);\n\tprivate readonly _contentPanel = computed(() => this.contentElementRef()?.nativeElement);\n\n\tprivate _select: HTMLElement | undefined;\n\tprivate _parent: HTMLElement;\n\tprivate _scrollToEndFired = false;\n\tprivate _updateScrollHeight = false;\n\tprivate _lastScrollPosition = 0;\n\n\tconstructor() {\n\t\tthis._destroyRef.onDestroy(() => {\n\t\t\tif (this.appendTo()) {\n\t\t\t\tthis._renderer.removeChild(this._dropdown.parentNode, this._dropdown);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate _currentPosition: DropdownPosition;\n\n\tget currentPosition(): DropdownPosition {\n\t\treturn this._currentPosition;\n\t}\n\n\tprivate _itemsLength: number;\n\n\tprivate get itemsLength() {\n\t\treturn this._itemsLength;\n\t}\n\n\tprivate set itemsLength(value: number) {\n\t\tif (value !== this._itemsLength) {\n\t\t\tthis._itemsLength = value;\n\t\t\tthis._onItemsLengthChanged();\n\t\t}\n\t}\n\n\tprivate get _startOffset() {\n\t\tif (this.markedItem()) {\n\t\t\tconst { itemHeight, panelHeight } = this._panelService.dimensions;\n\t\t\tconst offset = this.markedItem().index * itemHeight;\n\t\t\treturn panelHeight > offset ? 0 : offset;\n\t\t}\n\t\treturn 0;\n\t}\n\n\tngOnInit() {\n\t\tthis._select = this._dropdown.parentElement;\n\t\tthis._handleScroll();\n\t\tthis._handleOutsideClick();\n\t\tthis._appendDropdown();\n\t\tthis._setupMousedownListener();\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\tif (changes.items) {\n\t\t\tconst change = changes.items;\n\t\t\tthis._onItemsOrShowAddTagChange(change.currentValue, this.showAddTag(), change.firstChange);\n\t\t}\n\t\tif (changes.showAddTag) {\n\t\t\tconst change = changes.showAddTag;\n\t\t\tthis._onItemsOrShowAddTagChange(this.items(), change.currentValue, change.firstChange);\n\t\t}\n\t}\n\n\tscrollTo(option: NgOption, startFromOption = false) {\n\t\tif (!option) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst index = this.items().indexOf(option);\n\t\tif (index < 0 || index >= this.itemsLength) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet scrollTo;\n\t\tif (this.virtualScroll()) {\n\t\t\tconst itemHeight = this._panelService.dimensions.itemHeight;\n\t\t\tscrollTo = this._panelService.getScrollTo(index * itemHeight, itemHeight, this._lastScrollPosition);\n\t\t} else {\n\t\t\tconst item: HTMLElement = this._dropdown.querySelector(`#${option.htmlId}`);\n\t\t\tconst lastScroll = startFromOption ? item.offsetTop : this._lastScrollPosition;\n\t\t\tscrollTo = this._panelService.getScrollTo(item.offsetTop, item.clientHeight, lastScroll);\n\t\t}\n\n\t\tif (isDefined(scrollTo)) {\n\t\t\tthis._scrollablePanel().scrollTop = scrollTo;\n\t\t}\n\t}\n\n\tscrollToTag() {\n\t\tconst panel = this._scrollablePanel();\n\t\tpanel.scrollTop = panel.scrollHeight - panel.clientHeight;\n\t}\n\n\tadjustPosition() {\n\t\tthis._updateYPosition();\n\t}\n\n\tprivate _handleDropdownPosition() {\n\t\tthis._currentPosition = this._calculateCurrentPosition(this._dropdown);\n\t\tif (CSS_POSITIONS.includes(this._currentPosition)) {\n\t\t\tthis._updateDropdownClass(this._currentPosition);\n\t\t} else {\n\t\t\tthis._updateDropdownClass('bottom');\n\t\t}\n\n\t\tif (this.appendTo()) {\n\t\t\tthis._updateYPosition();\n\t\t}\n\n\t\tthis._dropdown.style.opacity = '1';\n\t}\n\n\tprivate _updateDropdownClass(currentPosition: string) {\n\t\tCSS_POSITIONS.forEach((position) => {\n\t\t\tconst REMOVE_CSS_CLASS = `ng-select-${position}`;\n\t\t\tthis._renderer.removeClass(this._dropdown, REMOVE_CSS_CLASS);\n\t\t\tthis._renderer.removeClass(this._select, REMOVE_CSS_CLASS);\n\t\t});\n\n\t\tconst ADD_CSS_CLASS = `ng-select-${currentPosition}`;\n\t\tthis._renderer.addClass(this._dropdown, ADD_CSS_CLASS);\n\t\tthis._renderer.addClass(this._select, ADD_CSS_CLASS);\n\t}\n\n\tprivate _handleScroll() {\n\t\tthis._zone.runOutsideAngular(() => {\n\t\t\tconst scrollablePanel = this._scrollablePanel();\n\t\t\tif (!scrollablePanel) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tfromEvent(scrollablePanel, 'scroll')\n\t\t\t\t.pipe(takeUntilDestroyed(this._destroyRef), auditTime(0, SCROLL_SCHEDULER))\n\t\t\t\t.subscribe(() => {\n\t\t\t\t\tif (scrollablePanel && 'scrollTop' in scrollablePanel) {\n\t\t\t\t\t\tthis._onContentScrolled(scrollablePanel.scrollTop);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t});\n\t}\n\n\tprivate _handleOutsideClick() {\n\t\tif (!this._document) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._zone.runOutsideAngular(() => {\n\t\t\tfromEvent(this._document, this.outsideClickEvent(), { capture: true })\n\t\t\t\t.pipe(takeUntilDestroyed(this._destroyRef))\n\t\t\t\t.subscribe(($event) => this._checkToClose($event));\n\t\t});\n\t}\n\n\tprivate _checkToClose($event: any) {\n\t\tif (this._select.contains($event.target) || this._dropdown.contains($event.target)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst path = $event.path || ($event.composedPath && $event.composedPath());\n\t\tif ($event.target && $event.target.shadowRoot && path && path[0] && this._select.contains(path[0])) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._zone.run(() => this.outsideClick.emit());\n\t}\n\n\tprivate _onItemsOrShowAddTagChange(items: NgOption[] = [], showAddTag: boolean, firstChange: boolean) {\n\t\tthis._scrollToEndFired = false;\n\t\tthis.itemsLength = items.length;\n\t\tif (showAddTag && items.length) {\n\t\t\tthis.itemsLength++;\n\t\t}\n\n\t\tif (this.virtualScroll()) {\n\t\t\tthis._updateItemsRange(firstChange);\n\t\t} else {\n\t\t\tthis._setVirtualHeight();\n\t\t\tthis._updateItems(firstChange);\n\t\t}\n\t}\n\n\tprivate _updateItems(firstChange: boolean) {\n\t\tthis.update.emit(this.items());\n\t\tif (firstChange === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._zone.runOutsideAngular(() => {\n\t\t\tPromise.resolve().then(() => {\n\t\t\t\tconst panelHeight = this._scrollablePanel().clientHeight;\n\t\t\t\tthis._panelService.setDimensions(0, panelHeight);\n\t\t\t\tthis._handleDropdownPosition();\n\t\t\t\tthis.scrollTo(this.markedItem(), firstChange);\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate _updateItemsRange(firstChange: boolean) {\n\t\tthis._zone.runOutsideAngular(() => {\n\t\t\tthis._measureDimensions().then(() => {\n\t\t\t\tif (firstChange) {\n\t\t\t\t\tthis._renderItemsRange(this._startOffset);\n\t\t\t\t\tthis._handleDropdownPosition();\n\t\t\t\t} else {\n\t\t\t\t\tthis._renderItemsRange();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate _onContentScrolled(scrollTop: number) {\n\t\tif (this.virtualScroll()) {\n\t\t\tthis._renderItemsRange(scrollTop);\n\t\t}\n\t\tthis._lastScrollPosition = scrollTop;\n\t\tthis._fireScrollToEnd(scrollTop);\n\t}\n\n\tprivate _updateVirtualHeight(height: number) {\n\t\tif (this._updateScrollHeight) {\n\t\t\tthis._virtualPadding().style.height = `${height}px`;\n\t\t\tthis._updateScrollHeight = false;\n\t\t}\n\t}\n\n\tprivate _setVirtualHeight() {\n\t\tif (!this._virtualPadding()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._virtualPadding().style.height = `0px`;\n\t}\n\n\tprivate _onItemsLengthChanged() {\n\t\tthis._updateScrollHeight = true;\n\t}\n\n\tprivate _renderItemsRange(scrollTop = null) {\n\t\tif (scrollTop && this._lastScrollPosition === scrollTop) {\n\t\t\treturn;\n\t\t}\n\n\t\tscrollTop = scrollTop || this._scrollablePanel().scrollTop;\n\t\tconst range = this._panelService.calculateItems(scrollTop, this.itemsLength, this.bufferAmount());\n\t\tthis._updateVirtualHeight(range.scrollHeight);\n\t\tthis._contentPanel().style.transform = `translateY(${range.topPadding}px)`;\n\n\t\tthis._zone.run(() => {\n\t\t\tthis.update.emit(this.items().slice(range.start, range.end));\n\t\t\tthis.scroll.emit({ start: range.start, end: range.end });\n\t\t});\n\n\t\tif (isDefined(scrollTop) && this._lastScrollPosition === 0) {\n\t\t\tthis._scrollablePanel().scrollTop = scrollTop;\n\t\t\tthis._lastScrollPosition = scrollTop;\n\t\t}\n\t}\n\n\tprivate _measureDimensions(): Promise<PanelDimensions> {\n\t\tif (this._panelService.dimensions.itemHeight > 0 || this.itemsLength === 0) {\n\t\t\treturn Promise.resolve(this._panelService.dimensions);\n\t\t}\n\n\t\tconst [first] = this.items();\n\t\tthis.update.emit([first]);\n\n\t\treturn Promise.resolve().then(() => {\n\t\t\tconst option = this._dropdown.querySelector(`#${first.htmlId}`);\n\t\t\tconst optionHeight = option.clientHeight;\n\t\t\tthis._virtualPadding().style.height = `${optionHeight * this.itemsLength}px`;\n\t\t\tconst panelHeight = this._scrollablePanel().clientHeight;\n\t\t\tthis._panelService.setDimensions(optionHeight, panelHeight);\n\n\t\t\treturn this._panelService.dimensions;\n\t\t});\n\t}\n\n\tprivate _fireScrollToEnd(scrollTop: number) {\n\t\tif (this._scrollToEndFired || scrollTop === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst padding = this.virtualScroll() ? this._virtualPadding() : this._contentPanel();\n\n\t\tif (scrollTop + this._dropdown.clientHeight >= padding.clientHeight - 1) {\n\t\t\tthis._zone.run(() => this.scrollToEnd.emit());\n\t\t\tthis._scrollToEndFired = true;\n\t\t}\n\t}\n\n\tprivate _calculateCurrentPosition(dropdownEl: HTMLElement) {\n\t\tconst position = this.position();\n\t\tif (position !== 'auto') {\n\t\t\treturn position;\n\t\t}\n\t\tconst selectRect: ClientRect = this._select.getBoundingClientRect();\n\t\tconst scrollTop = document.documentElement.scrollTop || document.body.scrollTop;\n\t\tconst offsetTop = selectRect.top + window.pageYOffset;\n\t\tconst height = selectRect.height;\n\t\tconst dropdownHeight = dropdownEl.getBoundingClientRect().height;\n\t\tif (offsetTop + height + dropdownHeight > scrollTop + document.documentElement.clientHeight) {\n\t\t\treturn 'top';\n\t\t} else {\n\t\t\treturn 'bottom';\n\t\t}\n\t}\n\n\tprivate _appendDropdown() {\n\t\tif (!this.appendTo()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._parent = this._dropdown.shadowRoot\n\t\t\t? this._dropdown.shadowRoot.querySelector(this.appendTo())\n\t\t\t: document.querySelector(this.appendTo());\n\t\tif (!this._parent) {\n\t\t\tthrow new Error(`appendTo selector ${this.appendTo()} did not found any parent element`);\n\t\t}\n\t\tthis._updateXPosition();\n\t\tthis._parent.appendChild(this._dropdown);\n\t}\n\n\tprivate _updateXPosition() {\n\t\tconst select = this._select.getBoundingClientRect();\n\t\tconst parent = this._parent.getBoundingClientRect();\n\t\tconst isRTL = document.documentElement.dir === 'rtl';\n\t\tconst offsetLeft = select.left - parent.left;\n\n\t\tif (isRTL) {\n\t\t\tconst offsetRight = parent.right - select.right;\n\t\t\tthis._dropdown.style.right = offsetRight + 'px';\n\t\t\tthis._dropdown.style.left = 'auto';\n\t\t} else {\n\t\t\tthis._dropdown.style.left = offsetLeft + 'px';\n\t\t\tthis._dropdown.style.right = 'auto';\n\t\t}\n\n\t\tthis._dropdown.style.width = select.width + 'px';\n\t\tthis._dropdown.style.minWidth = select.width + 'px';\n\t}\n\n\tprivate _updateYPosition() {\n\t\tconst select = this._select.getBoundingClientRect();\n\t\tconst parent = this._parent.getBoundingClientRect();\n\t\tconst delta = select.height;\n\n\t\tif (this._currentPosition === 'top') {\n\t\t\tconst offsetBottom = parent.bottom - select.bottom;\n\t\t\tthis._dropdown.style.bottom = offsetBottom + delta + 'px';\n\t\t\tthis._dropdown.style.top = 'auto';\n\t\t} else if (this._currentPosition === 'bottom') {\n\t\t\tconst offsetTop = select.top - parent.top;\n\t\t\tthis._dropdown.style.top = offsetTop + delta + 'px';\n\t\t\tthis._dropdown.style.bottom = 'auto';\n\t\t}\n\t}\n\n\tprivate _setupMousedownListener(): void {\n\t\tthis._zone.runOutsideAngular(() => {\n\t\t\tfromEvent(this._dropdown, 'mousedown')\n\t\t\t\t.pipe(takeUntilDestroyed(this._destroyRef))\n\t\t\t\t.subscribe((event: MouseEvent) => {\n\t\t\t\t\tconst target = event.target as HTMLElement;\n\t\t\t\t\tif (target.tagName === 'INPUT') {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t});\n\t\t});\n\t}\n}\n","import {\n\tafterEveryRender,\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tinject,\n\tinput,\n\tsignal,\n} from '@angular/core';\n\n@Component({\n\tselector: 'ng-option',\n\tstandalone: true,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `<ng-content />`,\n})\nexport class NgOptionComponent {\n\n\tpublic readonly value = input<any>();\n\tpublic readonly disabled = input(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\tpublic readonly elementRef = inject(ElementRef<HTMLElement>);\n\n\tpublic readonly label = signal<string>('');\n\n\tconstructor() {\n\t\tafterEveryRender(() => {\n\t\t\t// Update label signal after render (innerHTML updated by template bindings)\n\t\t\tconst currentLabel = (this.elementRef.nativeElement.innerHTML || '').trim();\n\t\t\tif (currentLabel !== this.label()) {\n\t\t\t\tthis.label.set(currentLabel);\n\t\t\t}\n\t\t});\n\t}\n}\n","export interface NgOption {\n\t[name: string]: any;\n\n\tindex?: number;\n\thtmlId?: string;\n\tselected?: boolean;\n\tdisabled?: boolean;\n\tmarked?: boolean;\n\tlabel?: string;\n\tvalue?: string | any;\n\tparent?: NgOption;\n\tchildren?: NgOption[];\n}\n\nexport enum KeyCode {\n\tTab = 'Tab',\n\tEnter = 'Enter',\n\tEsc = 'Escape',\n\tSpace = ' ',\n\tArrowUp = 'ArrowUp',\n\tArrowDown = 'ArrowDown',\n\tBackspace = 'Backspace',\n}\n\nexport type DropdownPosition = 'top' | 'right' | 'bottom' | 'left' | 'auto';\n","import { NgOption } from './ng-select.types';\n\nexport type SelectionModelFactory = () => SelectionModel;\n\nexport function DefaultSelectionModelFactory() {\n\treturn new DefaultSelectionModel();\n}\n\nexport interface SelectionModel {\n\tvalue: NgOption[];\n\tselect(item: NgOption, multiple: boolean, selectableGroupAsModel: boolean);\n\tunselect(item: NgOption, multiple: boolean);\n\tclear(keepDisabled: boolean);\n}\n\nexport class DefaultSelectionModel implements SelectionModel {\n\tprivate _selected: NgOption[] = [];\n\n\tget value(): NgOption[] {\n\t\treturn this._selected;\n\t}\n\n\tselect(item: NgOption, multiple: boolean, groupAsModel: boolean) {\n\t\titem.selected = true;\n\t\tif (!item.children || (!multiple && groupAsModel)) {\n\t\t\tthis._selected.push(item);\n\t\t}\n\t\tif (multiple) {\n\t\t\tif (item.parent) {\n\t\t\t\tconst childrenCount = item.parent.children.length;\n\t\t\t\tconst selectedCount = item.parent.children.filter((x) => x.selected).length;\n\t\t\t\titem.parent.selected = childrenCount === selectedCount;\n\t\t\t} else if (item.children) {\n\t\t\t\tthis._setChildrenSelectedState(item.children, true);\n\t\t\t\tthis._removeChildren(item);\n\t\t\t\tif (groupAsModel && this._activeChildren(item)) {\n\t\t\t\t\tthis._selected = [...this._selected.filter((x) => x.parent !== item), item];\n\t\t\t\t} else {\n\t\t\t\t\tthis._selected = [...this._selected, ...item.children.filter((x) => !x.disabled)];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tunselect(item: NgOption, multiple: boolean) {\n\t\tthis._selected = this._selected.filter((x) => x !== item);\n\t\titem.selected = false;\n\t\tif (multiple) {\n\t\t\tif (item.parent && item.parent.selected) {\n\t\t\t\tconst children = item.parent.children;\n\t\t\t\tthis._removeParent(item.parent);\n\t\t\t\tthis._removeChildren(item.parent);\n\t\t\t\tthis._selected.push(...children.filter((x) => x !== item && !x.disabled));\n\t\t\t\titem.parent.selected = false;\n\t\t\t} else if (item.children) {\n\t\t\t\tthis._setChildrenSelectedState(item.children, false);\n\t\t\t\tthis._removeChildren(item);\n\t\t\t}\n\t\t}\n\t}\n\n\tclear(keepDisabled: boolean) {\n\t\tthis._selected = keepDisabled ? this._selected.filter((x) => x.disabled) : [];\n\t}\n\n\tprivate _setChildrenSelectedState(children: NgOption[], selected: boolean) {\n\t\tfor (const child of children) {\n\t\t\tif (child.disabled) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tchild.selected = selected;\n\t\t}\n\t}\n\n\tprivate _removeChildren(parent: NgOption) {\n\t\tthis._selected = [\n\t\t\t...this._selected.filter((x) => x.parent !== parent),\n\t\t\t...parent.children.filter((x) => x.parent === parent && x.disabled && x.selected),\n\t\t];\n\t}\n\n\tprivate _removeParent(parent: NgOption) {\n\t\tthis._selected = this._selected.filter((x) => x !== parent);\n\t}\n\n\tprivate _activeChildren(item: NgOption): boolean {\n\t\treturn item.children.every((x) => !x.disabled || x.selected);\n\t}\n}\n","import {\n\tAfterViewInit,\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tcomputed,\n\tcontentChild,\n\tcontentChildren,\n\tDestroyRef,\n\teffect,\n\tElementRef,\n\tforwardRef,\n\tHostAttributeToken,\n\tHostListener,\n\tinject,\n\tInjectionToken,\n\tInjector,\n\tinput,\n\tmodel,\n\tnumberAttribute,\n\tOnChanges,\n\tOnInit,\n\toutput,\n\tsignal,\n\tSimpleChanges,\n\tTemplateRef,\n\tviewChild,\n\tViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { debounceTime, filter, map, tap } from 'rxjs/operators';\n\nimport {\n\tNgClearButtonTemplateDirective,\n\tNgFooterTemplateDirective,\n\tNgHeaderTemplateDirective,\n\tNgItemLabelDirective,\n\tNgLabelTemplateDirective,\n\tNgLoadingSpinnerTemplateDirective,\n\tNgLoadingTextTemplateDirective,\n\tNgMultiLabelTemplateDirective,\n\tNgNotFoundTemplateDirective,\n\tNgOptgroupTemplateDirective,\n\tNgOptionTemplateDirective,\n\tNgPlaceholderTemplateDirective,\n\tNgTagTemplateDirective,\n\tNgTypeToSearchTemplateDirective,\n} from './ng-templates.directive';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NgSelectConfig } from './config.service';\nimport { ConsoleService } from './console.service';\nimport { newId } from './id';\nimport { ItemsList } from './items-list';\nimport { NgDropdownPanelComponent } from './ng-dropdown-panel.component';\nimport { NgDropdownPanelService } from './ng-dropdown-panel.service';\nimport { NgOptionComponent } from './ng-option.component';\nimport { DropdownPosition, KeyCode, NgOption } from './ng-select.types';\nimport { DefaultSelectionModelFactory, SelectionModelFactory } from './selection-model';\nimport { isDefined, isFunction, isObject, isPromise } from './value-utils';\n\nexport const SELECTION_MODEL_FACTORY = new InjectionToken<SelectionModelFactory>('ng-select-selection-model');\nexport type AddTagFn = (term: string) => any | Promise<any>;\nexport type CompareWithFn = (a: any, b: any) => boolean;\nexport type GroupValueFn = (key: string | any, children: any[]) => string | any;\n\n@Component({\n\tselector: 'ng-select',\n\texportAs: 'ngSelect',\n\ttemplateUrl: './ng-select.component.html',\n\tstyleUrls: ['./ng-select.component.scss'],\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => NgSelectComponent),\n\t\t\tmulti: true,\n\t\t},\n\t\tNgDropdownPanelService,\n\t],\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgTemplateOutlet, NgItemLabelDirective, NgDropdownPanelComponent],\n\thost: {\n\t\t'[class.ng-select]': 'true',\n\t\t'[class.ng-select-single]': '!multiple()',\n\t\t'[class.ng-select-typeahead]': 'typeahead()',\n\t\t'[class.ng-select-multiple]': 'multiple()',\n\t\t'[class.ng-select-taggable]': 'addTag()',\n\t\t'[class.ng-select-searchable]': 'searchable()',\n\t\t'[class.ng-select-clearable]': 'clearable()',\n\t\t'[class.ng-select-opened]': 'isOpen()',\n\t\t'[class.ng-select-filtered]': 'filtered',\n\t\t'[class.ng-select-disabled]': 'disabled()',\n\t},\n})\nexport class NgSelectComponent implements OnChanges, OnInit, AfterViewInit, ControlValueAccessor {\n\treadonly classes = inject(new HostAttributeToken('class'), { optional: true });\n\treadonly config = inject(NgSelectConfig);\n\tprivate readonly _cd = inject(ChangeDetectorRef);\n\tprivate readonly _console = inject(ConsoleService);\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\n\t// signals\n\tpublic readonly _disabled = signal<boolean>(false);\n\t// inputs\n\treadonly ariaLabelDropdown = input<string>('Options List');\n\treadonly ariaLabel = input<string | undefined>(undefined);\n\treadonly markFirst = input(true, { transform: booleanAttribute });\n\treadonly placeholder = input<string>(this.config.placeholder);\n\treadonly fixedPlaceholder = input<boolean>(true);\n\treadonly notFoundText = input<string>(undefined);\n\treadonly typeToSearchText = input<string>(undefined);\n\treadonly preventToggleOnRightClick = input<boolean>(false);\n\treadonly addTagText = input<string>(undefined);\n\treadonly loadingText = input<string>(undefined);\n\treadonly clearAllText = input<string>(undefined);\n\treadonly dropdownPosition = input<DropdownPosition>('auto');\n\treadonly appendTo = input<string>(undefined);\n\treadonly outsideClickEvent = input<'click' | 'mousedown'>(this.config.outsideClickEvent);\n\treadonly loading = input(false, { transform: booleanAttribute });\n\treadonly closeOnSelect = input(true, { transform: booleanAttribute });\n\treadonly hideSelected = input(false, { transform: booleanAttribute });\n\treadonly selectOnTab = input(false, { transform: booleanAttribute });\n\treadonly openOnEnter = input(undefined, { transform: booleanAttribute });\n\treadonly maxSelectedItems = input<number, unknown>(undefined, { transform: numberAttribute });\n\treadonly groupBy = input<string | ((value: any) => any)>(undefined);\n\treadonly groupValue = input<GroupValueFn>(undefined);\n\treadonly bufferAmount = input(4, { transform: numberAttribute });\n\treadonly virtualScroll = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\treadonly selectableGroup = input(false, { transform: booleanAttribute });\n\treadonly tabFocusOnClearButton = input<boolean | undefined>();\n\treadonly selectableGroupAsModel = input(true, { transform: booleanAttribute });\n\treadonly searchFn = input(null);\n\treadonly trackByFn = input(null);\n\treadonly clearOnBackspace = input(true, { transform: booleanAttribute });\n\treadonly labelForId = input(null);\n\treadonly inputAttrs = input<Record<string, string>>({});\n\treadonly tabIndex = input<number, unknown>(undefined, { transform: numberAttribute });\n\treadonly readonly = input(false, { transform: booleanAttribute });\n\treadonly searchWhileComposing = input(true, { transform: booleanAttribute });\n\treadonly minTermLength = input(0, { transform: numberAttribute });\n\treadonly editableSearchTerm = input(false, { transform: booleanAttribute });\n\treadonly ngClass = input(null);\n\treadonly typeahead = input<Subject<string>>(undefined);\n\treadonly multiple = input(false, { transform: booleanAttribute });\n\treadonly addTag = input<boolean | AddTagFn>(false);\n\treadonly searchable = input(true, { transform: booleanAttribute });\n\treadonly clearable = input(true, { transform: booleanAttribute });\n\treadonly deselectOnClick = input<boolean>();\n\treadonly clearSearchOnAdd = input(undefined);\n\treadonly compareWith = input(undefined, {\n\t\ttransform: (fn: CompareWithFn | undefined) => {\n\t\t\tif (fn !== undefined && fn !== null && !isFunction(fn)) {\n\t\t\t\tthrow Error('`compareWith` must be a function.');\n\t\t\t}\n\t\t\treturn fn;\n\t\t},\n\t});\n\treadonly keyDownFn = input<(_: KeyboardEvent) => boolean>((_: KeyboardEvent) => true);\n\n\t// models\n\treadonly bindLabel = model<string>(undefined);\n\treadonly bindValue = model<string>(undefined);\n\treadonly appearance = model<string>(undefined);\n\treadonly isOpen = model<boolean | undefined>(false);\n\treadonly items = model<readonly any[]>([]);\n\n\t// output events\n\treadonly blurEvent = output<any>({ alias: 'blur' });\n\treadonly focusEvent = output<any>({ alias: 'focus' });\n\treadonly changeEvent = output<any>({ alias: 'change' });\n\treadonly openEvent = output({ alias: 'open' });\n\treadonly closeEvent = output({ alias: 'close' });\n\treadonly searchEvent = output<{\n\t\tterm: string;\n\t\titems: any[];\n\t}>({ alias: 'search' });\n\treadonly clearEvent = output({ alias: 'clear' });\n\treadonly addEvent = output<any>({ alias: 'add' });\n\treadonly removeEvent = output<any>({ alias: 'remove' });\n\treadonly scroll = output<{\n\t\tstart: number;\n\t\tend: number;\n\t}>({ alias: 'scroll' });\n\treadonly scrollToEnd = output<any>({ alias: 'scrollToEnd' });\n\n\t// computed\n\treadonly disabled = computed(() => this.readonly() || this._disabled());\n\treadonly clearSearchOnAddValue = computed(() => {\n\t\tif (isDefined(this.clearSearchOnAdd())) {\n\t\t\treturn this.clearSearchOnAdd();\n\t\t}\n\t\tif (isDefined(this.config.clearSearchOnAdd)) {\n\t\t\treturn this.config.clearSearchOnAdd;\n\t\t}\n\t\treturn this.closeOnSelect();\n\t});\n\treadonly deselectOnClickValue = computed(() => {\n\t\tif (isDefined(this.deselectOnClick())) {\n\t\t\treturn this.deselectOnClick();\n\t\t}\n\t\tif (isDefined(this.config.deselectOnClick)) {\n\t\t\treturn this.config.deselectOnClick;\n\t\t}\n\t\treturn this.multiple();\n\t});\n\t// content child queries\n\treadonly optionTemplate = contentChild(NgOptionTemplateDirective, { read: TemplateRef });\n\treadonly optgroupTemplate = contentChild(NgOptgroupTemplateDirective, { read: TemplateRef });\n\treadonly labelTemplate = contentChild(NgLabelTemplateDirective, { read: TemplateRef });\n\treadonly multiLabelTemplate = contentChild(NgMultiLabelTemplateDirective, { read: TemplateRef });\n\treadonly headerTemplate = contentChild(NgHeaderTemplateDirective, { read: TemplateRef });\n\treadonly footerTemplate = contentChild(NgFooterTemplateDirective, { read: TemplateRef });\n\treadonly notFoundTemplate = contentChild(NgNotFoundTemplateDirective, { read: TemplateRef });\n\treadonly placeholderTemplate = contentChild(NgPlaceholderTemplateDirective, { read: TemplateRef });\n\treadonly typeToSearchTemplate = contentChild(NgTypeToSearchTemplateDirective, { read: TemplateRef });\n\treadonly loadingTextTemplate = contentChild(NgLoadingTextTemplateDirective, { read: TemplateRef });\n\treadonly tagTemplate = contentChild(NgTagTemplateDirective, { read: TemplateRef });\n\treadonly loadingSpinnerTemplate = contentChild(NgLoadingSpinnerTemplateDirective, { read: TemplateRef });\n\treadonly clearButtonTemplate = contentChild(NgClearButtonTemplateDirective, { read: TemplateRef });\n\treadonly ngOptions = contentChildren(NgOptionComponent, { descendants: true });\n\n\t// view children queries\n\treadonly dropdownPanel = viewChild(forwardRef(() => NgDropdownPanelComponent));\n\treadonly searchInput = viewChild<ElementRef<HTMLInputElement>>('searchInput');\n\treadonly clearButton = viewChild<ElementRef<HTMLSpanElement>>('clearButton');\n\t// public variables\n\treadonly dropdownId = newId();\n\treadonly element: HTMLElement;\n\n\t// variables\n\tescapeHTML = true;\n\titemsList: ItemsList;\n\tviewPortItems: NgOption[] = [];\n\ttabFocusOnClear = signal<boolean>(true);\n\tprivate readonly autoFocus = inject(new HostAttributeToken('autofocus'), { optional: true });\n\t// private variables\n\tprivate readonly _defaultLabel = 'label';\n\tprivate readonly _editableSearchTerm = computed(() => this.editableSearchTerm() && !this.multiple());\n\tprivate _focused: boolean;\n\tprivate _injector = inject(Injector);\n\tprivate _isComposing = false;\n\tprivate _itemsAreUsed: boolean;\n\tprivate readonly _keyPress$ = new Subject<string>();\n\tprivate _manualOpen: boolean;\n\tprivate _pressedKeys: string[] = [];\n\tprivate _primitive: any;\n\tprivate readonly _searchTerm = signal<string>(null);\n\tprivate readonly _validTerm = computed(() => {\n\t\tconst term = this._searchTerm()?.trim();\n\t\treturn term && term.length >= this.minTermLength();\n\t});\n\n\tconstructor() {\n\t\tconst config = this.config;\n\t\tconst newSelectionModel = inject<SelectionModelFactory | undefined>(SELECTION_MODEL_FACTORY, { optional: true });\n\t\tconst _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\t\tthis._mergeGlobalConfig(config);\n\t\tthis.itemsList = new ItemsList(this, newSelectionModel ? newSelectionModel() : DefaultSelectionModelFactory());\n\t\tthis.element = _elementRef.nativeElement;\n\t}\n\n\tget filtered() {\n\t\treturn (!!this.searchTerm && this.searchable()) || this._isComposing;\n\t}\n\n\tget focused() {\n\t\treturn this._focused;\n\t}\n\n\tget searchTerm() {\n\t\treturn this._searchTerm();\n\t}\n\n\tget selectedItems(): NgOption[] {\n\t\treturn this.itemsList.selectedItems;\n\t}\n\n\tget selectedValues() {\n\t\treturn this.selectedItems.map((x) => x.value);\n\t}\n\n\tget hasValue() {\n\t\treturn this.selectedItems.length > 0;\n\t}\n\n\tget currentPanelPosition(): DropdownPosition {\n\t\tif (this.dropdownPanel()) {\n\t\t\treturn this.dropdownPanel().currentPosition;\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tget showAddTag() {\n\t\tif (!this._validTerm()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst term = this.searchTerm.toLowerCase().trim();\n\t\treturn (\n\t\t\tthis.addTag() &&\n\t\t\t!this.itemsList.filteredItems.some((x) => x.label.toLowerCase() === term) &&\n\t\t\t((!this.hideSelected() && this.isOpen()) || !this.selectedItems.some((x) => x.label.toLowerCase() === term)) &&\n\t\t\t!this.loading()\n\t\t);\n\t}\n\n\tclearItem = (item: any) => {\n\t\tconst option = this.selectedItems.find((x) => x.value === item);\n\t\tthis.unselect(option);\n\t};\n\n\tngOnInit() {\n\t\tthis._handleKeyPresses();\n\t\tthis._setInputAttributes();\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\tif (changes.multiple) {\n\t\t\tthis.itemsList.clearSelected();\n\t\t}\n\t\tif (changes.items) {\n\t\t\tthis._itemsAreUsed = true;\n\t\t\tthis._setItems(changes.items.currentValue || []);\n\t\t}\n\t\tif (changes.isOpen) {\n\t\t\tthis._manualOpen = isDefined(changes.isOpen.currentValue);\n\t\t}\n\t\tif (changes.groupBy) {\n\t\t\tif (!changes.items) {\n\t\t\t\tthis._setItems([...this.items()]);\n\t\t\t}\n\t\t}\n\t\tif (changes.inputAttrs) {\n\t\t\tthis._setInputAttributes();\n\t\t}\n\t\tthis._setTabFocusOnClear();\n\t}\n\n\tngAfterViewInit() {\n\t\tif (!this._itemsAreUsed) {\n\t\t\tthis.escapeHTML = false;\n\t\t\tthis._setItemsFromNgOptions();\n\t\t}\n\n\t\tif (isDefined(this.autoFocus)) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\n\t@HostListener('keydown', ['$event'])\n\thandleKeyDown($event: KeyboardEvent) {\n\t\tconst keyName = $event.key;\n\t\tif (Object.values(KeyCode).includes(keyName as KeyCode)) {\n\t\t\tif (this.keyDownFn()($event) === false) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.handleKeyCode($event);\n\t\t} else if (keyName && keyName.length === 1) {\n\t\t\tthis._keyPress$.next(keyName.toLocaleLowerCase());\n\t\t}\n\t}\n\n\thandleKeyCode($event: KeyboardEvent) {\n\t\tconst target = $event.target;\n\n\t\tif (this.clearButton() && this.clearButton().nativeElement === target) {\n\t\t\tthis.handleKeyCodeClear($event);\n\t\t} else {\n\t\t\tthis.handleKeyCodeInput($event);\n\t\t}\n\t}\n\n\thandleKeyCodeInput($event: KeyboardEvent) {\n\t\tswitch ($event.key) {\n\t\t\tcase KeyCode.ArrowDown:\n\t\t\t\tthis._handleArrowDown($event);\n\t\t\t\tbreak;\n\t\t\tcase KeyCode.ArrowUp:\n\t\t\t\tthis._handleArrowUp($event);\n\t\t\t\tbreak;\n\t\t\tcase KeyCode.Space:\n\t\t\t\tthis._handleSpace($event);\n\t\t\t\tbreak;\n\t\t\tcase KeyCode.Enter:\n\t\t\t\tthis._handleEnter($event);\n\t\t\t\tbreak;\n\t\t\tcase KeyCode.Tab:\n\t\t\t\tthis._handleTab($event);\n\t\t\t\tbreak;\n\t\t\tcase KeyCode.Esc:\n\t\t\t\tthis.close();\n\t\t\t\t$event.preventDefault();\n\t\t\t\tbreak;\n\t\t\tcase KeyCode.Backspace:\n\t\t\t\tthis._handleBackspace();\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\thandleKeyCodeClear($event: KeyboardEvent) {\n\t\tswitch ($event.key) {\n\t\t\tcase KeyCode.Enter:\n\t\t\t\tthis.handleClearClick();\n\t\t\t\t$event.preventDefault();\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\thandleMousedown($event: MouseEvent) {\n\t\tif (this.disabled()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.preventToggleOnRightClick() && $event.button === 2) {\n\t\t\treturn false;\n\t\t}\n\t\tconst target = $event.target as HTMLElement;\n\t\tif (target.tagName !== 'INPUT') {\n\t\t\t$event.preventDefault();\n\t\t}\n\n\t\tif (target.classList.contains('ng-clear-wrapper')) {\n\t\t\t// Don't handle clear on mousedown - let click event handle it\n\t\t\treturn;\n\t\t}\n\n\t\tif (target.classList.contains('ng-arrow-wrapper')) {\n\t\t\tthis.handleArrowClick();\n\t\t\treturn;\n\t\t}\n\n\t\tif (target.classList.contains('ng-value-icon')) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._focused) {\n\t\t\tthis.focus();\n\t\t}\n\n\t\tif (this.searchable()) {\n\t\t\tthis.open();\n\t\t} else {\n\t\t\tthis.toggle();\n\t\t}\n\t}\n\n\thandleArrowClick() {\n\t\tif (this.isOpen()) {\n\t\t\tthis.close();\n\t\t} else {\n\t\t\tthis.open();\n\t\t}\n\t}\n\n\thandleClearClick(_event?: MouseEvent) {\n\t\tif (this.hasValue) {\n\t\t\tthis.itemsList.clearSelected(true);\n\t\t\tthis._updateNgModel();\n\t\t}\n\t\tthis._clearSearch();\n\t\tthis.focus();\n\t\tthis.clearEvent.emit();\n\n\t\tthis._onSelectionChanged();\n\t}\n\n\tclearModel() {\n\t\tif (!this.clearable()) {\n\t\t\treturn;\n\t\t}\n\t\tthis.itemsList.clearSelected();\n\t\tthis._updateNgModel();\n\t}\n\n\twriteValue(value: any | any[]): void {\n\t\tthis.itemsList.clearSelected();\n\t\tthis._handleWriteValue(value);\n\t\tif (this._editableSearchTerm()) {\n\t\t\tthis._setSearchTermFromItems();\n\t\t}\n\t\tthis._cd.markForCheck();\n\t}\n\n\tregisterOnChange(fn: any): void {\n\t\tthis._onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: any): void {\n\t\tthis._onTouched = fn;\n\t}\n\n\tsetDisabledState(state: boolean): void {\n\t\tthis._disabled.set(state);\n\t\tthis._cd.markForCheck();\n\t}\n\n\ttoggle() {\n\t\tif (!this.isOpen()) {\n\t\t\tthis.open();\n\t\t} else {\n\t\t\tthis.close();\n\t\t}\n\t}\n\n\topen() {\n\t\tif (this.disabled() || this.isOpen() || this._manualOpen) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.typeahead()?.observed && !this.addTag() && this.itemsList.noItemsToSelect) {\n\t\t\treturn;\n\t\t}\n\t\tthis.isOpen.set(true);\n\t\tthis.itemsList.markSelectedOrDefault(this.markFirst());\n\t\tthis.openEvent.emit();\n\t\tif (!this.searchTerm) {\n\t\t\tthis.focus();\n\t\t}\n\t\tthis.detectChanges();\n\t}\n\n\tclose() {\n\t\tif (!this.isOpen() || this._manualOpen) {\n\t\t\treturn;\n\t\t}\n\t\tthis.isOpen.set(false);\n\t\tthis._isComposing = false;\n\t\tif (!this._editableSearchTerm()) {\n\t\t\tthis._clearSearch();\n\t\t} else {\n\t\t\tthis.itemsList.resetFilteredItems();\n\t\t}\n\t\tthis.itemsList.unmarkItem();\n\t\tthis._onTouched();\n\t\tthis.closeEvent.emit();\n\t\tthis._cd.markForCheck();\n\t}\n\n\ttoggleItem(item: NgOption) {\n\t\tif (!item || item.disabled || this.disabled()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.deselectOnClickValue() && item.selected) {\n\t\t\tthis.unselect(item);\n\t\t} else {\n\t\t\tthis.select(item);\n\t\t}\n\n\t\tif (this._editableSearchTerm()) {\n\t\t\tthis._setSearchTermFromItems();\n\t\t}\n\t}\n\n\tselect(item: NgOption) {\n\t\tif (!item.selected) {\n\t\t\tthis.itemsList.select(item);\n\t\t\tif (this.clearSearchOnAddValue() && !this._editableSearchTerm()) {\n\t\t\t\tthis._clearSearch();\n\t\t\t}\n\n\t\t\tthis._updateNgModel();\n\t\t\tif (this.multiple()) {\n\t\t\t\tthis.addEvent.emit(item.value);\n\t\t\t}\n\t\t}\n\n\t\tif (this.closeOnSelect() || this.itemsList.noItemsToSelect) {\n\t\t\tthis.close();\n\t\t}\n\n\t\tthis._onSelectionChanged();\n\t}\n\n\tfocus() {\n\t\tthis.searchInput().nativeElement.focus();\n\t}\n\n\tblur() {\n\t\tthis.searchInput().nativeElement.blur();\n\t}\n\n\tunselect(item: NgOption) {\n\t\tif (!item) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.itemsList.unselect(item);\n\t\tthis.focus();\n\t\tthis._updateNgModel();\n\t\tthis.removeEvent.emit(item.value);\n\t\tthis._onSelectionChanged();\n\t}\n\n\tselectTag() {\n\t\tlet tag;\n\t\tif (isFunction(this.addTag())) {\n\t\t\ttag = (<AddTagFn>this.addTag())(this.searchTerm);\n\t\t} else {\n\t\t\ttag = this._primitive ? this.searchTerm : { [this.bindLabel()]: this.searchTerm };\n\t\t}\n\n\t\tconst handleTag = (item) =>\n\t\t\tthis.typeahead()?.observed || !this.isOpen() ? this.itemsList.mapItem(item, null) : this.itemsList.addItem(item);\n\t\tif (isPromise(tag)) {\n\t\t\ttag.then((item) => this.select(handleTag(item))).catch(() => { });\n\t\t} else if (tag) {\n\t\t\tthis.select(handleTag(tag));\n\t\t}\n\t}\n\n\tshowClear() {\n\t\treturn this.clearable() && (this.hasValue || this.searchTerm) && !this.disabled();\n\t}\n\n\tfocusOnClear() {\n\t\tthis.blur();\n\t\tif (this.clearButton()) {\n\t\t\tthis.clearButton().nativeElement.focus();\n\t\t}\n\t}\n\n\ttrackByOption = (_: number, item: NgOption) => {\n\t\tif (this.trackByFn()) {\n\t\t\treturn this.trackByFn()(item.value);\n\t\t}\n\n\t\treturn item;\n\t};\n\n\tshowNoItemsFound() {\n\t\tconst empty = this.itemsList.filteredItems.length === 0;\n\t\treturn (\n\t\t\t((empty && !this.typeahead()?.observed && !this.loading()) ||\n\t\t\t\t(empty && this.typeahead()?.observed && this._validTerm() && !this.loading())) &&\n\t\t\t!this.showAddTag\n\t\t);\n\t}\n\n\tshowTypeToSearch() {\n\t\tconst empty = this.itemsList.filteredItems.length === 0;\n\t\treturn empty && this.typeahead()?.observed && !this._validTerm() && !this.loading();\n\t}\n\n\tonCompositionStart() {\n\t\tthis._isComposing = true;\n\t}\n\n\tonCompositionEnd(term: string) {\n\t\tthis._isComposing = false;\n\t\tif (this.searchWhileComposing()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.filter(term);\n\t}\n\n\tfilter(term: string) {\n\t\tif (this._isComposing && !this.searchWhileComposing()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._searchTerm.set(term);\n\t\tif (this.typeahead()?.observed && (this._validTerm() || this.minTermLength() === 0)) {\n\t\t\tthis.typeahead().next(term);\n\t\t}\n\n\t\tif (!this.typeahead()?.observed) {\n\t\t\tthis.itemsList.filter(term);\n\t\t\tif (this.isOpen()) {\n\t\t\t\tthis.itemsList.markSelectedOrDefault(this.markFirst());\n\t\t\t}\n\t\t}\n\n\t\tthis.searchEvent.emit({ term, items: this.itemsList.filteredItems.map((x) => x.value) });\n\t\tthis.open();\n\t}\n\n\tonInputFocus($event: FocusEvent) {\n\t\tif (this._focused) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._editableSearchTerm()) {\n\t\t\tthis._setSearchTermFromItems();\n\t\t}\n\n\t\tthis.element.classList.add('ng-select-focused');\n\t\tthis.focusEvent.emit($event);\n\t\tthis._focused = true;\n\t}\n\n\tonInputBlur($event: FocusEvent) {\n\t\tthis.element.classList.remove('ng-select-focused');\n\t\tthis.blurEvent.emit($event);\n\t\tif (!this.isOpen() && !this.disabled()) {\n\t\t\tthis._onTouched();\n\t\t}\n\t\tif (this._editableSearchTerm()) {\n\t\t\tthis._setSearchTermFromItems();\n\t\t}\n\t\tthis._focused = false;\n\t}\n\n\tonItemHover(item: NgOption) {\n\t\tif (item.disabled) {\n\t\t\treturn;\n\t\t}\n\t\tthis.itemsList.markItem(item);\n\t}\n\n\tdetectChanges() {\n\t\tif (!(<any>this._cd).destroyed) {\n\t\t\tthis._cd.detectChanges();\n\t\t}\n\t}\n\n\tprivate _onChange = (_: any) => { };\n\n\tprivate _onTouched = () => { };\n\n\tprivate _setSearchTermFromItems() {\n\t\tconst selected = this.selectedItems?.[0];\n\t\tthis._searchTerm.set(selected?.label ?? null);\n\t}\n\n\tprivate _setItems(items: readonly any[]) {\n\t\tconst firstItem = items[0];\n\t\tthis.bindLabel.set(this.bindLabel() || this._defaultLabel);\n\t\tthis._primitive = isDefined(firstItem) ? !isObject(firstItem) : this._primitive || this.bindLabel() === this._defaultLabel;\n\t\tthis.itemsList.setItems(items);\n\t\tif (items.length > 0 && this.hasValue) {\n\t\t\tthis.itemsList.mapSelectedItems();\n\t\t}\n\t\tif (this.isOpen() && isDefined(this.searchTerm) && !this.typeahead()?.observed) {\n\t\t\tthis.itemsList.filter(this.searchTerm);\n\t\t}\n\t\tif (this.typeahead()?.observed || this.isOpen()) {\n\t\t\tthis.itemsList.markSelectedOrDefault(this.markFirst());\n\t\t}\n\t}\n\n\tprivate _setItemsFromNgOptions() {\n\t\teffect(\n\t\t\t() => {\n\t\t\t\tconst options = this.ngOptions();\n\t\t\t\tthis.bindLabel.set(this._defaultLabel);\n\t\t\t\tconst items =\n\t\t\t\t\toptions.map((option) => ({\n\t\t\t\t\t\t$ngOptionValue: option.value(),\n\t\t\t\t\t\t$ngOptionLabel: option.elementRef.nativeElement.innerHTML,\n\t\t\t\t\t\tdisabled: option.disabled(),\n\t\t\t\t\t})) ?? [];\n\t\t\t\tthis.items.set(items);\n\t\t\t\tthis.itemsList.setItems(items);\n\t\t\t\tif (this.hasValue) {\n\t\t\t\t\tthis.itemsList.mapSelectedItems();\n\t\t\t\t}\n\t\t\t\tthis._cd.detectChanges();\n\n\t\t\t\toptions\n\t\t\t\t\t// find item for each option\n\t\t\t\t\t.map((option) => ({\n\t\t\t\t\t\toption,\n\t\t\t\t\t\titem: this.itemsList.findItem(option.value()),\n\t\t\t\t\t}))\n\t\t\t\t\t// filter non found items\n\t\t\t\t\t.filter(({ item }) => isDefined(item))\n\t\t\t\t\t// process to update disabled and label\n\t\t\t\t\t.forEach(({ option, item }) => {\n\t\t\t\t\t\titem.disabled = option.disabled();\n\t\t\t\t\t\titem.label = option.label() || item.label;\n\t\t\t\t\t});\n\t\t\t},\n\t\t\t{ injector: this._injector },\n\t\t);\n\t}\n\n\tprivate _isValidWriteValue(value: any): boolean {\n\t\tif (!isDefined(value) || (this.multiple() && value === '') || (Array.isArray(value) && value.length === 0)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst validateBinding = (item: any): boolean => {\n\t\t\tif (!isDefined(this.compareWith()) && isObject(item) && this.bindValue()) {\n\t\t\t\tthis._console.warn(\n\t\t\t\t\t`Setting object(${JSON.stringify(item)}) as your model with bindValue is not allowed unless [compareWith] is used.`,\n\t\t\t\t);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn true;\n\t\t};\n\n\t\tif (this.multiple()) {\n\t\t\tif (!Array.isArray(value)) {\n\t\t\t\tthis._console.warn('Multiple select ngModel should be array.');\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn value.every((item) => validateBinding(item));\n\t\t} else {\n\t\t\treturn validateBinding(value);\n\t\t}\n\t}\n\n\tprivate _handleWriteValue(ngModel: any | any[]) {\n\t\tif (!this._isValidWriteValue(ngModel)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst select = (val: any) => {\n\t\t\tlet item = this.itemsList.findItem(val);\n\t\t\tif (item) {\n\t\t\t\tthis.itemsList.select(item);\n\t\t\t} else {\n\t\t\t\tconst isValObject = isObject(val);\n\t\t\t\tconst isPrimitive = !isValObject && !this.bindValue();\n\t\t\t\tif (isValObject || isPrimitive) {\n\t\t\t\t\tthis.itemsList.select(this.itemsList.mapItem(val, null));\n\t\t\t\t} else if (this.bindValue()) {\n\t\t\t\t\titem = {\n\t\t\t\t\t\t[this.bindLabel()]: null,\n\t\t\t\t\t\t[this.bindValue()]: val,\n\t\t\t\t\t};\n\t\t\t\t\tthis.itemsList.select(this.itemsList.mapItem(item, null));\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tif (this.multiple()) {\n\t\t\t(<any[]>ngModel).forEach((item) => select(item));\n\t\t} else {\n\t\t\tselect(ngModel);\n\t\t}\n\t}\n\n\tprivate _handleKeyPresses() {\n\t\tif (this.searchable()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._keyPress$\n\t\t\t.pipe(\n\t\t\t\ttakeUntilDestroyed(this._destroyRef),\n\t\t\t\ttap((letter) => this._pressedKeys.push(letter)),\n\t\t\t\tdebounceTime(200),\n\t\t\t\tfilter(() => this._pressedKeys.length > 0),\n\t\t\t\tmap(() => this._pressedKeys.join('')),\n\t\t\t)\n\t\t\t.subscribe((term) => {\n\t\t\t\tconst item = this.itemsList.findByLabel(term);\n\t\t\t\tif (item) {\n\t\t\t\t\tif (this.isOpen()) {\n\t\t\t\t\t\tthis.itemsList.markItem(item);\n\t\t\t\t\t\tthis._scrollToMarked();\n\t\t\t\t\t\tthis._cd.markForCheck();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.select(item);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis._pressedKeys = [];\n\t\t\t});\n\t}\n\n\tprivate _setInputAttributes() {\n\t\tconst input = this.searchInput().nativeElement;\n\t\tconst attributes = {\n\t\t\ttype: 'text',\n\t\t\tautocorrect: 'off',\n\t\t\tautocapitalize: 'off',\n\t\t\tautocomplete: 'off',\n\t\t\t'aria-controls': this.dropdownId,\n\t\t\t...this.inputAttrs(),\n\t\t};\n\n\t\tfor (const key of Object.keys(attributes)) {\n\t\t\tinput.setAttribute(key, attributes[key]);\n\t\t}\n\t}\n\n\tprivate _setTabFocusOnClear() {\n\t\tthis.tabFocusOnClear.set(isDefined(this.tabFocusOnClearButton()) ? !!this.tabFocusOnClearButton() : this.config.tabFocusOnClear);\n\t}\n\n\tprivate _updateNgModel() {\n\t\tconst model = [];\n\t\tfor (const item of this.selectedItems) {\n\t\t\tif (this.bindValue()) {\n\t\t\t\tlet value = null;\n\t\t\t\tif (item.children) {\n\t\t\t\t\tconst groupKey = this.groupValue() ? this.bindValue() : <string>this.groupBy();\n\t\t\t\t\tvalue = item.value[groupKey || <string>this.groupBy()];\n\t\t\t\t} else {\n\t\t\t\t\tvalue = this.itemsList.resolveNested(item.value, this.bindValue());\n\t\t\t\t}\n\t\t\t\tmodel.push(value);\n\t\t\t} else {\n\t\t\t\tmodel.push(item.value);\n\t\t\t}\n\t\t}\n\n\t\tconst selected = this.selectedItems.map((x) => x.value);\n\t\tif (this.multiple()) {\n\t\t\tthis._onChange(model);\n\t\t\tthis.changeEvent.emit(selected);\n\t\t} else {\n\t\t\tthis._onChange(isDefined(model[0]) ? model[0] : null);\n\t\t\tthis.changeEvent.emit(selected[0]);\n\t\t}\n\n\t\tthis._cd.markForCheck();\n\t}\n\n\tprivate _clearSearch() {\n\t\tif (!this.searchTerm) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._changeSearch(null);\n\t\tthis.itemsList.resetFilteredItems();\n\t}\n\n\tprivate _changeSearch(searchTerm: string) {\n\t\tthis._searchTerm.set(searchTerm);\n\t\tif (this.typeahead()?.observed) {\n\t\t\tthis.typeahead().next(searchTerm);\n\t\t}\n\t}\n\n\tprivate _scrollToMarked() {\n\t\tif (!this.isOpen() || !this.dropdownPanel()) {\n\t\t\treturn;\n\t\t}\n\t\tthis.dropdownPanel().scrollTo(this.itemsList.markedItem);\n\t}\n\n\tprivate _scrollToTag() {\n\t\tif (!this.isOpen() || !this.dropdownPanel()) {\n\t\t\treturn;\n\t\t}\n\t\tthis.dropdownPanel().scrollToTag();\n\t}\n\n\tprivate _onSelectionChanged() {\n\t\tconst appendTo = this.appendTo() ?? this.config.appendTo;\n\t\tif (this.isOpen() && this.deselectOnClickValue() && appendTo) {\n\t\t\t// Make sure items are rendered.\n\t\t\tthis._cd.detectChanges();\n\t\t\tthis.dropdownPanel().adjustPosition();\n\t\t}\n\t}\n\n\tprivate _handleTab($event: KeyboardEvent) {\n\t\tif (this.isOpen() === false) {\n\t\t\tif (this.showClear() && !$event.shiftKey && this.tabFocusOnClear()) {\n\t\t\t\tthis.focusOnClear();\n\t\t\t\t$event.preventDefault();\n\t\t\t} else if (!this.addTag()) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (this.selectOnTab()) {\n\t\t\tif (this.itemsList.markedItem) {\n\t\t\t\tthis.toggleItem(this.itemsList.markedItem);\n\t\t\t\t$event.preventDefault();\n\t\t\t} else if (this.showAddTag) {\n\t\t\t\tthis.selectTag();\n\t\t\t\t$event.preventDefault();\n\t\t\t} else {\n\t\t\t\tthis.close();\n\t\t\t}\n\t\t} else {\n\t\t\tthis.close();\n\t\t}\n\t}\n\n\tprivate _handleEnter($event: KeyboardEvent) {\n\t\tconst openOnEnter = this.openOnEnter() ?? this.config.openOnEnter;\n\t\tif (this.isOpen() || this._manualOpen) {\n\t\t\tif (this.itemsList.markedItem) {\n\t\t\t\tthis.toggleItem(this.itemsList.markedItem);\n\t\t\t} else if (this.showAddTag) {\n\t\t\t\tthis.selectTag();\n\t\t\t}\n\t\t} else if (openOnEnter) {\n\t\t\tthis.open();\n\t\t} else {\n\t\t\treturn;\n\t\t}\n\n\t\t$event.preventDefault();\n\t}\n\n\tprivate _handleSpace($event: KeyboardEvent) {\n\t\tif (this.isOpen() || this._manualOpen) {\n\t\t\treturn;\n\t\t}\n\t\tthis.open();\n\t\t$event.preventDefault();\n\t}\n\n\tprivate _handleArrowDown($event: KeyboardEvent) {\n\t\tif (this._nextItemIsTag(+1)) {\n\t\t\tthis.itemsList.unmarkItem();\n\t\t\tthis._scrollToTag();\n\t\t} else {\n\t\t\tthis.itemsList.markNextItem();\n\t\t\tthis._scrollToMarked();\n\t\t}\n\t\tthis.open();\n\t\t$event.preventDefault();\n\t}\n\n\tprivate _handleArrowUp($event: KeyboardEvent) {\n\t\tif (!this.isOpen()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._nextItemIsTag(-1)) {\n\t\t\tthis.itemsList.unmarkItem();\n\t\t\tthis._scrollToTag();\n\t\t} else {\n\t\t\tthis.itemsList.markPreviousItem();\n\t\t\tthis._scrollToMarked();\n\t\t}\n\t\t$event.preventDefault();\n\t}\n\n\tprivate _nextItemIsTag(nextStep: number): boolean {\n\t\tconst nextIndex = this.itemsList.markedIndex + nextStep;\n\t\treturn (\n\t\t\tthis.addTag() && this.searchTerm && this.itemsList.markedItem && (nextIndex < 0 || nextIndex === this.itemsList.filteredItems.length)\n\t\t);\n\t}\n\n\tprivate _handleBackspace() {\n\t\tif (this.searchTerm || !this.clearable() || !this.clearOnBackspace() || !this.hasValue) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.multiple()) {\n\t\t\tthis.unselect(this.itemsList.lastSelectedItem);\n\t\t} else {\n\t\t\tthis.clearModel();\n\t\t}\n\t}\n\n\tprivate _mergeGlobalConfig(config: NgSelectConfig) {\n\t\tthis.bindValue.set(this.bindValue() || config.bindValue);\n\t\tthis.bindLabel.set(this.bindLabel() || config.bindLabel);\n\t\tthis.appearance.set(this.appearance() || config.appearance);\n\t\tthis._setTabFocusOnClear();\n\t}\n\n\t/**\n\t * Gets virtual scroll value from input or from config\n\t *\n\t * @param config NgSelectConfig object\n\t *\n\t * @returns `true` if virtual scroll is enabled, `false` otherwise\n\t */\n\tprivate getVirtualScroll(config: NgSelectConfig): boolean {\n\t\treturn isDefined(this.virtualScroll) ? this.virtualScroll() : this.isVirtualScrollDisabled(config);\n\t}\n\n\t/**\n\t * Gets disableVirtualScroll value from input or from config\n\t *\n\t * @param config NgSelectConfig object\n\t *\n\t * @returns `true` if disableVirtualScroll is enabled, `false` otherwise\n\t */\n\tprivate isVirtualScrollDisabled(config: NgSelectConfig) {\n\t\treturn isDefined(config.disableVirtualScroll) ? !config.disableVirtualScroll : false;\n\t}\n}\n","<div\n\t(mousedown)=\"handleMousedown($event)\"\n\t[class.ng-appearance-outline]=\"appearance() === 'outline'\"\n\t[class.ng-has-value]=\"hasValue\"\n\tclass=\"ng-select-container\">\n\t<div class=\"ng-value-container\">\n\t\t@if ((selectedItems.length === 0 && !searchTerm) || (fixedPlaceholder() ?? config.fixedPlaceholder)) {\n\t\t\t<ng-template #defaultPlaceholderTemplate>\n\t\t\t\t<div class=\"ng-placeholder\">{{ placeholder() ?? config.placeholder }}</div>\n\t\t\t</ng-template>\n\t\t\t<ng-template [ngTemplateOutlet]=\"placeholderTemplate() || defaultPlaceholderTemplate\"> </ng-template>\n\t\t}\n\n\t\t@if ((!multiLabelTemplate() || !multiple()) && selectedItems.length > 0) {\n\t\t\t@for (item of selectedItems; track trackByOption($index, item)) {\n\t\t\t\t<div [class.ng-value-disabled]=\"item.disabled\" class=\"ng-value\">\n\t\t\t\t\t<ng-template #defaultLabelTemplate>\n\t\t\t\t\t\t<span class=\"ng-value-icon left\" (click)=\"unselect(item)\" aria-hidden=\"true\">×</span>\n\t\t\t\t\t\t<span class=\"ng-value-label\" [ngItemLabel]=\"item.label\" [escape]=\"escapeHTML\"></span>\n\t\t\t\t\t</ng-template>\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate() || defaultLabelTemplate\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item: item.value, clear: clearItem, label: item.label }\">\n\t\t\t\t\t</ng-template>\n\t\t\t\t</div>\n\t\t\t}\n\t\t}\n\n\t\t@if (multiple() && multiLabelTemplate() && selectedValues.length > 0) {\n\t\t\t<ng-template [ngTemplateOutlet]=\"multiLabelTemplate()\" [ngTemplateOutletContext]=\"{ items: selectedValues, clear: clearItem }\">\n\t\t\t</ng-template>\n\t\t}\n\n\t\t<div class=\"ng-input\">\n\t\t\t<input\n\t\t\t\t#searchInput\n\t\t\t\t(blur)=\"onInputBlur($event)\"\n\t\t\t\t(change)=\"$event.stopPropagation()\"\n\t\t\t\t(compositionend)=\"onCompositionEnd(searchInput.value)\"\n\t\t\t\t(compositionstart)=\"onCompositionStart()\"\n\t\t\t\t(focus)=\"onInputFocus($event)\"\n\t\t\t\t(input)=\"filter(searchInput.value)\"\n\t\t\t\t[attr.aria-activedescendant]=\"isOpen() ? itemsList?.markedItem?.htmlId : null\"\n\t\t\t\t[attr.aria-controls]=\"isOpen() ? dropdownId : null\"\n\t\t\t\t[attr.aria-expanded]=\"isOpen()\"\n\t\t\t\t[attr.aria-label]=\"ariaLabel()\"\n\t\t\t\t[attr.id]=\"labelForId()\"\n\t\t\t\t[attr.tabindex]=\"tabIndex()\"\n\t\t\t\t[disabled]=\"disabled()\"\n\t\t\t\t[readOnly]=\"!searchable() || itemsList.maxItemsSelected\"\n\t\t\t\t[value]=\"searchTerm ?? ''\"\n\t\t\t\taria-autocomplete=\"list\"\n\t\t\t\trole=\"combobox\" />\n\t\t</div>\n\t</div>\n\n\t@if (loading()) {\n\t\t<ng-template #defaultLoadingSpinnerTemplate>\n\t\t\t<div class=\"ng-spinner-loader\"></div>\n\t\t</ng-template>\n\t\t<ng-template [ngTemplateOutlet]=\"loadingSpinnerTemplate() || defaultLoadingSpinnerTemplate\"></ng-template>\n\t}\n\n\t@if (showClear()) {\n\t\t@if (clearButtonTemplate()) {\n\t\t\t<ng-container [ngTemplateOutlet]=\"clearButtonTemplate()\"></ng-container>\n\t\t} @else {\n\t\t\t<span\n\t\t\t\tclass=\"ng-clear-wrapper\"\n\t\t\t\trole=\"button\"\n\t\t\t\ttabindex=\"0\"\n\t\t\t\t[attr.tabindex]=\"tabFocusOnClear() ? 0 : -1\"\n\t\t\t\ttitle=\"{{ clearAllText() || config.clearAllText }}\"\n\t\t\t\t#clearButton\n\t\t\t\t(click)=\"handleClearClick($event)\">\n\t\t\t\t<span class=\"ng-clear\" aria-hidden=\"true\">×</span>\n\t\t\t</span>\n\t\t}\n\t}\n\n\t<span class=\"ng-arrow-wrapper\">\n\t\t<span class=\"ng-arrow\"></span>\n\t</span>\n</div>\n\n@if (isOpen()) {\n\t@let appendToValue = appendTo() || config.appendTo;\n\t<ng-dropdown-panel\n\t\tclass=\"ng-dropdown-panel\"\n\t\t[virtualScroll]=\"virtualScroll() ?? !config.disableVirtualScroll ?? false\"\n\t\t[bufferAmount]=\"bufferAmount()\"\n\t\t[appendTo]=\"appendToValue\"\n\t\t[position]=\"dropdownPosition()\"\n\t\t[outsideClickEvent]=\"outsideClickEvent()\"\n\t\t[headerTemplate]=\"headerTemplate()\"\n\t\t[footerTemplate]=\"footerTemplate()\"\n\t\t[filterValue]=\"searchTerm\"\n\t\t[items]=\"itemsList.filteredItems\"\n\t\t[showAddTag]=\"showAddTag\"\n\t\t[markedItem]=\"itemsList.markedItem\"\n\t\t(update)=\"viewPortItems = $event\"\n\t\t(scroll)=\"scroll.emit($event)\"\n\t\t(scrollToEnd)=\"scrollToEnd.emit($event)\"\n\t\t(outsideClick)=\"close()\"\n\t\t[class.ng-select-multiple]=\"multiple()\"\n\t\t[class]=\"appendToValue ? (ngClass() ? ngClass() : classes) : null\"\n\t\t[id]=\"dropdownId\"\n\t\t[ariaLabelDropdown]=\"ariaLabelDropdown()\">\n\t\t<ng-container>\n\t\t\t@for (item of viewPortItems; track trackByOption($index, item)) {\n\t\t\t\t<!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events, @angular-eslint/template/interactive-supports-focus, @angular-eslint/template/mouse-events-have-key-events -->\n\t\t\t\t<div\n\t\t\t\t\tclass=\"ng-option\"\n\t\t\t\t\t[attr.role]=\"item.children ? 'group' : 'option'\"\n\t\t\t\t\t(click)=\"toggleItem(item)\"\n\t\t\t\t\t(mouseover)=\"onItemHover(item)\"\n\t\t\t\t\t[class.ng-option-disabled]=\"item.disabled\"\n\t\t\t\t\t[class.ng-option-selected]=\"item.selected\"\n\t\t\t\t\t[class.ng-optgroup]=\"item.children\"\n\t\t\t\t\t[class.ng-option]=\"!item.children\"\n\t\t\t\t\t[class.ng-option-child]=\"!!item.parent\"\n\t\t\t\t\t[class.ng-option-marked]=\"item === itemsList.markedItem\"\n\t\t\t\t\t[attr.aria-selected]=\"item.selected\"\n\t\t\t\t\t[attr.id]=\"item?.htmlId\"\n\t\t\t\t\t[attr.aria-setsize]=\"itemsList.filteredItems.length\"\n\t\t\t\t\t[attr.aria-posinset]=\"item.index + 1\">\n\t\t\t\t\t<ng-template #defaultOptionTemplate>\n\t\t\t\t\t\t<span class=\"ng-option-label\" [ngItemLabel]=\"item.label\" [escape]=\"escapeHTML\"></span>\n\t\t\t\t\t</ng-template>\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"\n\t\t\t\t\t\t\titem.children ? optgroupTemplate() || defaultOptionTemplate : optionTemplate() || defaultOptionTemplate\n\t\t\t\t\t\t\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item: item.value, item$: item, index: item.index, searchTerm: searchTerm }\">\n\t\t\t\t\t</ng-template>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t@if (showAddTag) {\n\t\t\t\t<!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events, @angular-eslint/template/interactive-supports-focus, @angular-eslint/template/mouse-events-have-key-events -->\n\t\t\t\t<div\n\t\t\t\t\tclass=\"ng-option\"\n\t\t\t\t\t[class.ng-option-marked]=\"!itemsList.markedItem\"\n\t\t\t\t\t(mouseover)=\"itemsList.unmarkItem()\"\n\t\t\t\t\trole=\"option\"\n\t\t\t\t\t[attr.aria-selected]=\"false\"\n\t\t\t\t\t(click)=\"selectTag()\">\n\t\t\t\t\t<ng-template #defaultTagTemplate>\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t><span class=\"ng-tag-label\">{{ addTagText() || config.addTagText }}</span\n\t\t\t\t\t\t\t>\"{{ searchTerm }}\"</span\n\t\t\t\t\t\t>\n\t\t\t\t\t</ng-template>\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"tagTemplate() || defaultTagTemplate\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n\t\t\t\t\t</ng-template>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</ng-container>\n\t\t@if (showNoItemsFound()) {\n\t\t\t<ng-template #defaultNotFoundTemplate>\n\t\t\t\t<div class=\"ng-option ng-option-disabled\">{{ notFoundText() ?? config.notFoundText }}</div>\n\t\t\t</ng-template>\n\t\t\t<ng-template\n\t\t\t\t[ngTemplateOutlet]=\"notFoundTemplate() || defaultNotFoundTemplate\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n\t\t\t</ng-template>\n\t\t}\n\t\t@if (showTypeToSearch()) {\n\t\t\t<ng-template #defaultTypeToSearchTemplate>\n\t\t\t\t<div class=\"ng-option ng-option-disabled\">{{ typeToSearchText() || config.typeToSearchText }}</div>\n\t\t\t</ng-template>\n\t\t\t<ng-template [ngTemplateOutlet]=\"typeToSearchTemplate() || defaultTypeToSearchTemplate\"></ng-template>\n\t\t}\n\t\t@if (loading() && itemsList.filteredItems.length === 0) {\n\t\t\t<ng-template #defaultLoadingTextTemplate>\n\t\t\t\t<div class=\"ng-option ng-option-disabled\">{{ loadingText() || config.loadingText }}</div>\n\t\t\t</ng-template>\n\t\t\t<ng-template\n\t\t\t\t[ngTemplateOutlet]=\"loadingTextTemplate() || defaultLoadingTextTemplate\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n\t\t\t</ng-template>\n\t\t}\n\t</ng-dropdown-panel>\n}\n\n<!-- Always present aria-live region -->\n<div aria-atomic=\"true\" aria-live=\"polite\" class=\"ng-visually-hidden\" role=\"status\">\n\t@if (isOpen() && showNoItemsFound()) {\n\t\t{{ notFoundText() ?? config.notFoundText }}\n\t}\n</div>\n","import { 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\tNgFooterTemplateDirective,\n\tNgHeaderTemplateDirective,\n\tNgItemLabelDirective,\n\tNgLabelTemplateDirective,\n\tNgLoadingSpinnerTemplateDirective,\n\tNgLoadingTextTemplateDirective,\n\tNgMultiLabelTemplateDirective,\n\tNgNotFoundTemplateDirective,\n\tNgOptgroupTemplateDirective,\n\tNgOptionTemplateDirective,\n\tNgPlaceholderTemplateDirective,\n\tNgTagTemplateDirective,\n\tNgTypeToSearchTemplateDirective,\n\tNgClearButtonTemplateDirective\n} from './ng-templates.directive';\nimport { DefaultSelectionModelFactory } from './selection-model';\n\n@NgModule({\n\timports: [\n\t\tNgDropdownPanelComponent,\n\t\tNgOptionComponent,\n\t\tNgSelectComponent,\n\t\tNgOptgroupTemplateDirective,\n\t\tNgOptionTemplateDirective,\n\t\tNgLabelTemplateDirective,\n\t\tNgMultiLabelTemplateDirective,\n\t\tNgHeaderTemplateDirective,\n\t\tNgFooterTemplateDirective,\n\t\tNgPlaceholderTemplateDirective,\n\t\tNgClearButtonTemplateDirective,\n\t\tNgNotFoundTemplateDirective,\n\t\tNgTypeToSearchTemplateDirective,\n\t\tNgLoadingTextTemplateDirective,\n\t\tNgTagTemplateDirective,\n\t\tNgLoadingSpinnerTemplateDirective,\n\t\tNgItemLabelDirective,\n\t],\n\texports: [\n\t\tNgSelectComponent,\n\t\tNgOptionComponent,\n\t\tNgOptgroupTemplateDirective,\n\t\tNgOptionTemplateDirective,\n\t\tNgLabelTemplateDirective,\n\t\tNgMultiLabelTemplateDirective,\n\t\tNgHeaderTemplateDirective,\n\t\tNgFooterTemplateDirective,\n\t\tNgPlaceholderTemplateDirective,\n\t\tNgNotFoundTemplateDirective,\n\t\tNgTypeToSearchTemplateDirective,\n\t\tNgLoadingTextTemplateDirective,\n\t\tNgTagTemplateDirective,\n\t\tNgLoadingSpinnerTemplateDirective,\n\t\tNgClearButtonTemplateDirective\n\t],\n\tproviders: provideNgSelect(),\n})\nexport class NgSelectModule { }\n\nexport function provideNgSelect() {\n\treturn [\n\t\t{\n\t\t\tprovide: SELECTION_MODEL_FACTORY,\n\t\t\tuseValue: DefaultSelectionModelFactory,\n\t\t},\n\t];\n}","/*\n * Public API Surface of ng-select\n */\n\nexport { NgSelectComponent, SELECTION_MODEL_FACTORY } from './lib/ng-select.component';\nexport { NgSelectModule } from './lib/ng-select.module';\nexport { NgOption, DropdownPosition } from './lib/ng-select.types';\nexport { DefaultSelectionModelFactory, DefaultSelectionModel, SelectionModel } from './lib/selection-model';\nexport { NgSelectConfig } from './lib/config.service';\nexport { NgOptionComponent } from './lib/ng-option.component';\nexport { ConsoleService } from './lib/console.service';\nexport { NgDropdownPanelComponent } from './lib/ng-dropdown-panel.component';\nexport { NgDropdownPanelService } from './lib/ng-dropdown-panel.service';\nexport {\n\tNgOptgroupTemplateDirective,\n\tNgOptionTemplateDirective,\n\tNgFooterTemplateDirective,\n\tNgPlaceholderTemplateDirective,\n\tNgHeaderTemplateDirective,\n\tNgItemLabelDirective,\n\tNgLabelTemplateDirective,\n\tNgLoadingSpinnerTemplateDirective,\n\tNgLoadingTextTemplateDirective,\n\tNgMultiLabelTemplateDirective,\n\tNgNotFoundTemplateDirective,\n\tNgTagTemplateDirective,\n\tNgTypeToSearchTemplateDirective,\n\tNgClearButtonTemplateDirective,\n} from './lib/ng-templates.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["searchHelper.stripSpecialChars"],"mappings":"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,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE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"}
|