UNPKG

@ng-select/ng-select

Version:

Angular ng-select - All in One UI Select, Multiselect and Autocomplete

1 lines 282 kB
{"version":3,"file":"ng-select-ng-select.mjs","sources":["../../../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/value-utils.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":["import { Directive, effect, ElementRef, inject, input, TemplateRef } from '@angular/core';\n\n/**\n * @deprecated Default labels are plain text via interpolation. Prefer `{{ label }}` or\n * custom templates (`ng-label-tmp` / `ng-option-tmp`) for rich markup. Kept for public API\n * compatibility; always writes `textContent` (the `escape` input is ignored).\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\t/** @deprecated Ignored — labels are always written as text. */\n\tescape = input(true);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tthis.element.nativeElement.textContent = 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/** Configuration provider for the NgSelect component. You can inject this service and provide application wide configuration. */\n@Injectable({ providedIn: 'root' })\nexport class NgSelectConfig {\n\t/** Placeholder text. */\n\tplaceholder: string;\n\t/** Set placeholder visible even when an item is selected. */\n\tfixedPlaceholder = true;\n\t/** Set custom text when filter returns empty result. */\n\tnotFoundText = 'No items found';\n\t/** Set custom text when using Typeahead. */\n\ttypeToSearchText = 'Type to search';\n\t/** Set custom text when using tagging. */\n\taddTagText = 'Add item';\n\t/** Set custom text when loading items. */\n\tloadingText = 'Loading...';\n\t/** Set custom text for clear all icon title. */\n\tclearAllText = 'Clear all';\n\t/** Set custom text prefixed to the option label in the aria-label of the remove icon on selected values (multiple mode). */\n\tremoveText = 'Remove';\n\t/** Set custom aria-label for the dropdown options list. */\n\tariaLabelDropdown = 'Options List';\n\t/** Disable virtual scroll for the dropdown panel. */\n\tdisableVirtualScroll = true;\n\t/** Open dropdown using enter. */\n\topenOnEnter = true;\n\t/** Append the dropdown overlay of every select to any element using a css selector. Painting and positioning are unaffected; the target determines DOM containment (ancestor-scoped styles, focus enclosure). */\n\tappendTo: string;\n\t/** Object property to use for selected model. By default binds to whole object. */\n\tbindValue: string;\n\t/** Object property to use for label. */\n\tbindLabel: string;\n\t/** Allows to select dropdown appearance. Set to `outline` or `fill` for Material form-field styles (applies only to Material theme). */\n\tappearance = 'underline';\n\t/** Clears search input when item is selected. */\n\tclearSearchOnAdd: boolean;\n\t/** Deselects a selected item when it is clicked in the dropdown. */\n\tdeselectOnClick: boolean;\n\t/** Control tab navigation behavior for the clear button. */\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","export 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 { 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(false);\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) => item.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: boolean) {\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 hasNgOptionClasses = isObject(item) && '$ngOptionClasses' 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\tclasses: hasNgOptionClasses ? item.$ngOptionClasses : '',\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\tconst value = bindValue ? this.resolveNested(selected.value, bindValue) : selected.value;\n\t\t\tconst valueFound = isDefined(value);\n\t\t\tlet item = valueFound ? this.findItem(value) : null;\n\n\t\t\tif (!item && !valueFound && this._ngSelect.compareWith()) {\n\t\t\t\titem = this._items.find((item) => this._ngSelect.compareWith()(item.value, selected.value));\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._getFirstSelectedIndex();\n\t\tif (this.lastSelectedItem && selectedIndex < 0) {\n\t\t\treturn -1;\n\t\t}\n\n\t\treturn selectedIndex > -1 ? selectedIndex : this.markedIndex;\n\t}\n\n\t/**\n\t * Index of the first selected, non-disabled option in filtered list order.\n\t * Per the WAI-ARIA listbox pattern, focus lands on the first selected option when the list opens.\n\t */\n\tprivate _getFirstSelectedIndex() {\n\t\tlet index = -1;\n\t\tfor (const selected of this.selectedItems) {\n\t\t\tif (selected.disabled) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst i = this._filteredItems.indexOf(selected);\n\t\t\tif (i > -1 && (index === -1 || i < index)) {\n\t\t\t\tindex = i;\n\t\t\t}\n\t\t}\n\t\treturn index;\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\tconst firstValue = items[0].value;\n\t\tif (firstValue != null && Array.isArray(firstValue[<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\tx.htmlId = `${this._ngSelect.dropdownId}-${x.index}`;\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\tx.htmlId = `${this._ngSelect.dropdownId}-${x.index}`;\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';\n\nexport interface ItemsRangeResult {\n\tscrollHeight: number;\n\ttopPadding: number;\n\tstart: number;\n\tend: number;\n}\n\nexport interface PanelDimensions {\n\t/** Height of a regular option row (non-group). */\n\titemHeight: number;\n\t/** Height of a group header row. Falls back to itemHeight when unset/equal. */\n\tgroupHeight: number;\n\tpanelHeight: number;\n\titemsPerViewport: number;\n}\n\n/** Minimal shape needed to distinguish group headers from options. */\nexport interface VirtualScrollItem {\n\tchildren?: unknown;\n}\n\n@Injectable()\nexport class NgDropdownPanelService {\n\tprivate _dimensions: PanelDimensions = {\n\t\titemHeight: 0,\n\t\tgroupHeight: 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(\n\t\tscrollPos: number,\n\t\titemsLength: number,\n\t\tbuffer: number,\n\t\titems?: readonly VirtualScrollItem[],\n\t): ItemsRangeResult {\n\t\tconst d = this._dimensions;\n\t\tconst useVariableHeights = !!items && d.groupHeight > 0 && d.groupHeight !== d.itemHeight;\n\n\t\tif (useVariableHeights) {\n\t\t\treturn this._calculateItemsVariable(scrollPos, items, buffer);\n\t\t}\n\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, groupHeight: number = itemHeight) {\n\t\tconst effectiveItemHeight = itemHeight > 0 ? itemHeight : groupHeight;\n\t\tconst itemsPerViewport = effectiveItemHeight > 0 ? Math.max(1, Math.floor(panelHeight / effectiveItemHeight)) : 0;\n\t\tthis._dimensions = {\n\t\t\titemHeight,\n\t\t\tgroupHeight: groupHeight > 0 ? groupHeight : itemHeight,\n\t\t\tpanelHeight,\n\t\t\titemsPerViewport,\n\t\t};\n\t}\n\n\tgetItemHeight(item: VirtualScrollItem | null | undefined): number {\n\t\tconst d = this._dimensions;\n\t\tif (item?.children) {\n\t\t\treturn d.groupHeight || d.itemHeight;\n\t\t}\n\t\treturn d.itemHeight || d.groupHeight;\n\t}\n\n\tgetItemOffset(items: readonly VirtualScrollItem[], index: number): number {\n\t\tlet offset = 0;\n\t\tconst end = Math.max(0, Math.min(index, items.length));\n\t\tfor (let i = 0; i < end; i++) {\n\t\t\toffset += this.getItemHeight(items[i]);\n\t\t}\n\t\treturn offset;\n\t}\n\n\tgetScrollHeight(items: readonly VirtualScrollItem[]): number {\n\t\treturn this.getItemOffset(items, items.length);\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\tprivate _calculateItemsVariable(\n\t\tscrollPos: number,\n\t\titems: readonly VirtualScrollItem[],\n\t\tbuffer: number,\n\t): ItemsRangeResult {\n\t\tconst { panelHeight } = this._dimensions;\n\t\tconst itemsLength = items.length;\n\t\tconst scrollHeight = this.getScrollHeight(items);\n\t\tconst scrollTop = Math.max(0, scrollPos);\n\n\t\tlet accumulated = 0;\n\t\tlet start = 0;\n\t\tfor (let i = 0; i < itemsLength; i++) {\n\t\t\tconst height = this.getItemHeight(items[i]);\n\t\t\tif (accumulated + height > scrollTop) {\n\t\t\t\tstart = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\taccumulated += height;\n\t\t\tstart = i + 1;\n\t\t}\n\n\t\tlet end = start;\n\t\tlet visibleHeight = 0;\n\t\twhile (end < itemsLength && visibleHeight < panelHeight) {\n\t\t\tvisibleHeight += this.getItemHeight(items[end]);\n\t\t\tend++;\n\t\t}\n\t\t// Match the uniform path's +1 viewport slack so the last partially-visible row is included.\n\t\tend = Math.min(itemsLength, end + 1);\n\n\t\tconst bufferedStart = Math.max(0, start - buffer);\n\t\tconst bufferedEnd = Math.min(itemsLength, end + buffer);\n\t\tconst topPadding = this.getItemOffset(items, bufferedStart);\n\n\t\treturn {\n\t\t\ttopPadding,\n\t\t\tscrollHeight,\n\t\t\tstart: bufferedStart,\n\t\t\tend: bufferedEnd,\n\t\t};\n\t}\n}\n","import { ConnectionPositionPair, FlexibleConnectedPositionStrategy, OverlayRef } from '@angular/cdk/overlay';\nimport { 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.id]=\"listboxId()\" [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 bufferAmount = input<number>(undefined);\n\treadonly virtualScroll = input(false, { transform: booleanAttribute });\n\treadonly headerTemplate = input<TemplateRef<any> | undefined>(undefined);\n\treadonly footerTemplate = input<TemplateRef<any> | undefined>(undefined);\n\treadonly filterValue = input<string>(null);\n\treadonly ariaLabelDropdown = input<string | null>(null);\n\treadonly listboxId = 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\t/** @deprecated Has no effect: the CDK overlay renders in the native Popover API top layer automatically in supporting browsers. Will be removed in a future major version. */\n\treadonly popover = input(false, { transform: booleanAttribute });\n\t/** Overlay hosting this panel. Used to request repositioning when the rendered content changes. */\n\treadonly overlayRef = input<OverlayRef | null>(null);\n\t/** Host `ng-select` element. The panel's DOM lives in the overlay, so the host cannot be derived from the DOM tree. */\n\treadonly selectElement = input<HTMLElement>(undefined);\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 _scrollToEndFired = false;\n\tprivate _updateScrollHeight = false;\n\tprivate _lastScrollPosition = 0;\n\tprivate _lastMousedownInside = false;\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 { panelHeight } = this._panelService.dimensions;\n\t\t\tconst offset = this._panelService.getItemOffset(this.items(), this.markedItem().index);\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.selectElement() ?? this._dropdown.parentElement;\n\t\tthis._handleScroll();\n\t\tthis._handleOutsideClick();\n\t\tthis._setupMousedownListener();\n\t\tthis._subscribeOverlayPosition();\n\t\tthis._handleDocumentScroll();\n\t\tthis._handleSelectResize();\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 items = this.items();\n\t\t\tconst itemHeight = this._panelService.getItemHeight(option);\n\t\t\tconst itemTop = this._panelService.getItemOffset(items, index);\n\t\t\tscrollTo = this._panelService.getScrollTo(itemTop, itemHeight, this._lastScrollPosition);\n\t\t} else {\n\t\t\tconst item: HTMLElement = this._dropdown.querySelector(`#${option.htmlId}`);\n\t\t\tif (!item) {\n\t\t\t\treturn;\n\t\t\t}\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\t// Programmatic scrollTop does not always deliver a `scroll` event before the next\n\t\t\t// keyboard step (and animationFrame-audited listeners can lag). Keep the virtual\n\t\t\t// window in sync immediately so the marked row is rendered (#2744).\n\t\t\tif (this.virtualScroll()) {\n\t\t\t\tthis._onContentScrolled(scrollTo);\n\t\t\t} else {\n\t\t\t\tthis._lastScrollPosition = scrollTo;\n\t\t\t}\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.overlayRef()?.updatePosition();\n\t}\n\n\t/**\n\t * Applies the position chosen by the overlay's position strategy to the panel and host\n\t * as `ng-select-top` / `ng-select-bottom` (and `-left` / `-right`) classes, which the\n\t * shipped themes use for borders, radius and spacing.\n\t */\n\tprivate _setCurrentPosition(position: DropdownPosition) {\n\t\tthis._currentPosition = position;\n\t\tif (CSS_POSITIONS.includes(position)) {\n\t\t\tthis._updateDropdownClass(position);\n\t\t} else {\n\t\t\tthis._updateDropdownClass('bottom');\n\t\t}\n\t}\n\n\t/**\n\t * Positions the freshly rendered panel. The overlay measures the real DOM, so header and\n\t * footer templates and the actual item count are part of the auto placement decision\n\t * (#2575). Only then is the panel made visible to avoid a flash at a stale position.\n\t */\n\tprivate _positionDropdown() {\n\t\tconst overlayRef = this.overlayRef();\n\t\tif (overlayRef) {\n\t\t\t// Applies the best fitting position and synchronously emits positionChanges,\n\t\t\t// which updates the position classes before the panel becomes visible\n\t\t\toverlayRef.updatePosition();\n\t\t} else if (!isDefined(this._currentPosition)) {\n\t\t\t// Standalone usage without an overlay: reflect the configured side directly\n\t\t\tthis._setCurrentPosition(this.position() === 'auto' ? 'bottom' : this.position());\n\t\t}\n\n\t\tthis._dropdown.style.opacity = '1';\n\t}\n\n\tprivate _subscribeOverlayPosition() {\n\t\tconst strategy = this.overlayRef()?.getConfig().positionStrategy;\n\t\tif (!(strategy instanceof FlexibleConnectedPositionStrategy)) {\n\t\t\treturn;\n\t\t}\n\n\t\tstrategy.positionChanges.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((change) => {\n\t\t\tthis._setCurrentPosition(this._connectionPairToPosition(change.connectionPair));\n\t\t});\n\t}\n\n\tprivate _connectionPairToPosition(pair: ConnectionPositionPair): DropdownPosition {\n\t\tif (pair.originY === 'bottom' && pair.overlayY === 'top') {\n\t\t\treturn 'bottom';\n\t\t}\n\t\tif (pair.originY === 'top' && pair.overlayY === 'bottom') {\n\t\t\treturn 'top';\n\t\t}\n\t\tif (pair.originX === 'end' && pair.overlayX === 'start') {\n\t\t\treturn 'right';\n\t\t}\n\t\tif (pair.originX === 'start' && pair.overlayX === 'end') {\n\t\t\treturn 'left';\n\t\t}\n\t\treturn 'bottom';\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\tthis._onContentScrolled(scrollablePanel.scrollTop);\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\tconst outsideEvent = this.outsideClickEvent() ?? 'click';\n\n\t\tthis._zone.runOutsideAngular(() => {\n\t\t\t// A click is judged by where the press began, not where it ended. Between\n\t\t\t// mousedown and click the layout can move under the cursor — focusing the\n\t\t\t// select auto-scrolls it into view (#2773), or the freshly opened panel\n\t\t\t// shifts the page (#2441) — leaving the click target on an unrelated\n\t\t\t// element. Irrelevant when closing on mousedown itself, so skip the\n\t\t\t// listener in that mode\n\t\t\tif (outsideEvent === 'click') {\n\t\t\t\tfromEvent(this._document, 'mousedown', { capture: true })\n\t\t\t\t\t.pipe(takeUntilDestroyed(this._destroyRef))\n\t\t\t\t\t.subscribe(($event) => (this._lastMousedownInside = this._isEventInside($event)));\n\t\t\t}\n\n\t\t\tfromEvent(this._document, outsideEvent, { 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: Event) {\n\t\tconst pressStartedInside = this._lastMousedownInside;\n\t\tthis._lastMousedownInside = false;\n\t\tif (pressStartedInside || this._isEventInside($event)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._zone.run(() => this.outsideClick.emit());\n\t}\n\n\tprivate _isEventInside($event: any): boolean {\n\t\t// An event crossing a shadow boundary is retargeted to the shadow host, which\n\t\t// hides its real origin from contains(). composedPath() still lists every node\n\t\t// the event bubbled through, so matching the select or dropdown anywhere along\n\t\t// it works identically for light DOM, shadow DOM, and nested roots (#2726)\n\t\tconst path: EventTarget[] = $event.path || ($event.composedPath && $event.composedPath());\n\t\tif (path?.length) {\n\t\t\treturn path.includes(this._select) || path.includes(this._dropdown);\n\t\t}\n\t\treturn this._select.contains($event.target) || this._dropdown.contains($event.target);\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\n\t\tthis._zone.runOutsideAngular(() => {\n\t\t\tPromise.resolve().then(() => {\n\t\t\t\t// Typeahead/filter can open empty (panelHeight ≈ type-to-search) then replace\n\t\t\t\t// items while open. Refresh the scrollport height so keyboard scrollTo math\n\t\t\t\t// matches the real max-height panel — without changing scroll position (#2744).\n\t\t\t\tthis._syncPanelHeightFromDom();\n\t\t\t\tif (!firstChange) {\n\t\t\t\t\t// Re-anchor so a top-placed panel grows upward instead of covering the\n\t\t\t\t\t// select, and `auto` can flip once the content no longer fits (#2092)\n\t\t\t\t\tthis.overlayRef()?.updatePosition();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis._positionDropdown();\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\tconst scrollTop = firstChange ? this._startOffset : (this._scrollablePanel()?.scrollTop ?? 0);\n\t\t\t\tthis._renderItemsRange(scrollTop);\n\n\t\t\t\t// Measurement / a short prior list leaves the panel content-sized. After the\n\t\t\t\t// provisional range paints, sync max-height panelHeight for scrollTo (#2744).\n\t\t\t\t// If viewport capacity grows, re-render — otherwise DOM stays on the stale\n\t\t\t\t// (too-small) range while dimensions already reflect the larger panel.\n\t\t\t\tconst itemsPerViewportBefore = this._panelService.dimensions.itemsPerViewport;\n\t\t\t\tthis._syncPanelHeightFromDom();\n\t\t\t\tif (this._panelService.dimensions.itemsPerViewport !== itemsPerViewportBefore) {\n\t\t\t\t\tthis._lastScrollPosition = -1;\n\t\t\t\t\tthis._renderItemsRange(this._scrollablePanel()?.scrollTop ?? scrollTop);\n\t\t\t\t}\n\n\t\t\t\tif (firstChange) {\n\t\t\t\t\tthis._positionDropdown();\n\t\t\t\t} else {\n\t\t\t\t\tthis.overlayRef()?.updatePosition();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t/** Updates cached panelHeight from the live scrollport, preserving row-height measurements. */\n\tprivate _syncPanelHeightFromDom() {\n\t\tconst panel = this._scrollablePanel();\n\t\tif (!panel) {\n\t\t\treturn;\n\t\t}\n\t\tconst panelHeight = panel.clientHeight;\n\t\tif (panelHeight <= 0) {\n\t\t\treturn;\n\t\t}\n\t\tconst { itemHeight, groupHeight } = this._panelService.dimensions;\n\t\tthis._panelService.setDimensions(itemHeight, panelHeight, groupHeight);\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(), this.items());\n\t\tthis._updateVirtualHeight(range.scrollHeight);\n\t\tthis._contentPanel().style.transform = `translateY(${range.topPadding}px)`;\n\n\t\t// These outputs must stay template-bound in ng-select.component.html: the\n\t\t// template listener wrapper is what schedules CD under zoneless (zone.run is a\n\t\t// no-op there). A programmatic subscribe would need an explicit markForCheck\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 items = this.items();\n\t\tconst firstGroup = items.find((item) => !!item.children);\n\t\tconst firstOption = items.find((item) => !item.children);\n\t\tconst toMeasure = [firstGroup, firstOption].filter((item): item is NgOption => !!item);\n\t\tif (toMeasure.length === 0) {\n\t\t\treturn Promise.resolve(this._panelService.dimensions);\n\t\t}\n\n\t\t// Relies on synchronous template execution: the emitted items render in the\n\t\t// same CD pass (the parent's template listener runs mid-pass and the @for sits\n\t\t// later in the template), so the microtask below measures real DOM with and\n\t\t// without zone.js alike. Measuring both a group header and an option avoids\n\t\t// under-sizing virtual scroll when their templates have different heights (#2762).\n\t\tthis._zone.run(() => this.update.emit(toMeasure));\n\n\t\treturn Promise.resolve()\n\t\t\t.then(() => this._readMeasuredDimensions(items, firstOption, firstGroup))\n\t\t\t.then((dims) => {\n\t\t\t\tif (dims.itemHeight > 0) {\n\t\t\t\t\treturn dims;\n\t\t\t\t}\n\t\t\t\t// Empty→items (typeahead) can measure before the projected options paint.\n\t\t\t\t// Retry once on the next frame (#2744).\n\t\t\t\treturn new Promise<PanelDimensions>((resolve) => {\n\t\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\t\tthis._zone.run(() => this.update.emit(toMeasure));\n\t\t\t\t\t\tPromise.resolve().then(() => resolve(this._readMeasuredDimensions(items, firstOption, firstGroup)));\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\tprivate _readMeasuredDimensions(\n\t\titems: NgOption[],\n\t\tfirstOption: NgOption | undefined,\n\t\tfirstGroup: NgOption | undefined,\n\t): PanelDimensions {\n\t\tconst optionEl = firstOption ? this._dropdown.querySelector(`#${firstOption.htmlId}`) : null;\n\t\tconst groupEl = firstGroup ? this._dropdown.querySelector(`#${firstGroup.htmlId}`) : null;\n\t\tif (!optionEl && !groupEl) {\n\t\t\treturn this._panelService.dimensions;\n\t\t}\n\n\t\tconst measuredOptionHeight = optionEl?.offsetHeight ?? 0;\n\t\tconst measuredGroupHeight = groupEl?.offsetHeight ?? 0;\n\t\tconst optionHeight = measuredOptionHeight || measuredGroupHeight;\n\t\tconst groupHeight = measuredGroupHeight || measuredOptionHeight;\n\n\t\tconst panelHeight = this._scrollablePanel().clientHeight;\n\t\tthis._panelService.setDimensions(optionHeight, panelHeight, groupHeight);\n\t\tthis._virtualPadding().style.height = `${this._panelService.getScrollHeight(items)}px`;\n\n\t\treturn this._panelService.dimensions;\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 _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\tprivate _handleDocumentScroll() {\n\t\tif (!this._document || !this.overlayRef()) {\n\t\t\treturn;\n\t\t}\n\t\tthis._zone.runOutsideAngular(() => {\n\t\t\t// The capture phase sees scrolls of the window and of every ancestor scroll\n\t\t\t// container — including plain overflow elements that CDK's ScrollDispatcher\n\t\t\t// cannot observe without a cdkScrollable marker — so the panel stays anchored\n\t\t\t// to the select wherever the page moves (#2788, #2829)\n\t\t\tfromEvent(this._document, 'scroll', { capture: true, passive: true })\n\t\t\t\t.pipe(takeUntilDestroyed(this._destroyRef), auditTime(0, SCROLL_SCHEDULER))\n\t\t\t\t.subscribe(($event) => {\n\t\t\t\t\tconst target = $event.target as Node | null;\n\t\t\t\t\t// Scrolling the option list itself does not move the anchor\n\t\t\t\t\tif (target && this._dropdown.contains(target)) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tthis.overlayRef().updatePosition();\n\t\t\t\t});\n\t\t});\n\t}\n\n\tprivate _handleSelectResize() {\n\t\tconst overlayRef = this.overlayRef();\n\t\tif (!overlayRef || !this._select || typeof ResizeObserver === 'undefined') {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._zone.runOutsideAngular(() => {\n\t\t\tconst observer = new ResizeObserver(() => {\n\t\t\t\toverlayRef.updateSize({ width: this._select.getBoundingClientRect().width });\n\t\t\t\toverlayRef.updatePosition();\n\t\t\t});\n\n\t\t\tobserver.observe(this._select);\n\t\t\tthis._destroyRef.onDestroy(() => observer.disconnect());\n\t\t});\n\t}\n}\n","import { afterEveryRender, booleanAttribute, ChangeDetectionStrategy, Component, ElementRef, inject, input, OnInit, signal } from '@angular/core';\n\n/** Declares an option for ng-select declared via HTML. Use the value input to bind the option's value and the element content as its label. */\n@Component({\n\tselector: 'ng-option',\n\tstandalone: true,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `<ng-content />`,\n})\nexport class NgOptionComponent implements OnInit {\n\t/** Value bound to the option. The projected element content is used as the option's label. */\n\tpublic readonly value = input<any>();\n\t/** Whether the option is disabled and cannot be selected. */\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\tpublic readonly classes = signal<string>('');\n\n\t/** True when this component's inputs are initialized (after first change detection). */\n\tpublic readonly isInitialized = signal<boolean>(false);\n\n\tconstructor() {\n\t\tafterEveryRender(() => {\n\t\t\tconst element = this.elementRef.nativeElement;\n\t\t\t// textContent (not innerHTML): default labels are plain text, like Material viewValue.\n\t\t\tconst currentLabel = (element.textContent || '').trim();\n\t\t\tif (currentLabel !== this.label()) {\n\t\t\t\tthis.label.set(currentLabel);\n\t\t\t}\n\n\t\t\tconst currentClasses = Array.from(element.classList)\n\t\t\t\t.filter((className) => className !== 'ng-star-inserted')\n\t\t\t\t.join(' ');\n\t\t\tif (currentClasses !== this.classes()) {\n\t\t\t\tthis.classes.set(currentClasses);\n\t\t\t}\n\t\t});\n\t}\n\n\tngOnInit(): void {\n\t\tthis.isInitialized.set(true);\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\tclasses?: string;\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 = [...this._selected.filter((x) => x.parent !== parent), ...parent.children.filter((x) => x.parent === parent && x.disabled && x.selected)];\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\tConnectedPosition,\n\tcreateFlexibleConnectedPositionStrategy,\n\tcreateNoopScrollStrategy,\n\tcreateOverlayRef,\n\tFlexibleConnectedPositionStrategy,\n\tOverlayContainer,\n\tOverlayRef,\n} from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n\tafterEveryRender,\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\tisDevMode,\n\tlinkedSignal,\n\tmodel,\n\tnumberAttribute,\n\tOnChanges,\n\tOnInit,\n\toutput,\n\trunInInjectionContext,\n\tsignal,\n\tSimpleChanges,\n\tTemplateRef,\n\tuntracked,\n\tviewChild,\n\tViewContainerRef,\n\tViewEncapsulation,\n} from '@angular/core';\nimport { EventPhase } from '@angular/core/primitives/event-dispatch';\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\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 { NgClass, 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\n/** DI token for SelectionModel implementation. You can provide custom implementation changing selection behaviour. */\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\nfunction optionalBooleanAttribute(value: unknown): boolean | undefined {\n\treturn value == null ? undefined : booleanAttribute(value);\n}\n\nconst DROPDOWN_POSITION_BELOW: ConnectedPosition = { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' };\nconst DROPDOWN_POSITION_ABOVE: ConnectedPosition = { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom' };\nconst DROPDOWN_POSITION_AFTER: ConnectedPosition = { originX: 'end', originY: 'top', overlayX: 'start', overlayY: 'top' };\nconst DROPDOWN_POSITION_BEFORE: ConnectedPosition = { originX: 'start', originY: 'top', overlayX: 'end', overlayY: 'top' };\n\nconst DROPDOWN_POSITIONS: Record<DropdownPosition, ConnectedPosition[]> = {\n\t// 'auto' prefers below and flips above when the panel does not fit the viewport;\n\t// the fit check measures the rendered overlay, so header/footer templates and\n\t// item count are accounted for (#2687, #2575)\n\tauto: [DROPDOWN_POSITION_BELOW, DROPDOWN_POSITION_ABOVE],\n\tbottom: [DROPDOWN_POSITION_BELOW],\n\ttop: [DROPDOWN_POSITION_ABOVE],\n\tright: [DROPDOWN_POSITION_AFTER],\n\tleft: [DROPDOWN_POSITION_BEFORE],\n};\n\n/**\n * Overlay container created inside the `appendTo` host. Only used by browsers without the\n * Popover API (where the popover insertion point cannot place the overlay host): keeping the\n * container a descendant of the `appendTo` host preserves ancestor-scoped styles and focus\n * containment there too. The container element carries `position: fixed`, so the connected\n * position strategy's viewport coordinates stay valid, same as the default body container.\n */\nclass NgSelectAppendToOverlayContainer extends OverlayContainer {\n\tconstructor(private readonly _appendToHost: HTMLElement) {\n\t\tsuper();\n\t}\n\n\tprotected override _createContainer(): void {\n\t\tsuper._createContainer();\n\t\tthis._appendToHost.appendChild(this._containerElement);\n\t}\n}\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: [NgClass, NgTemplateOutlet, 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\t// signals\n\tpublic readonly _disabled = signal<boolean>(false);\n\t// inputs: underscored input() + alias + linkedSignal() for stable public names (back compat)\n\treadonly _ariaLabelDropdown = input<string>(undefined, { alias: 'ariaLabelDropdown' });\n\treadonly ariaLabelDropdown = linkedSignal(() => this._ariaLabelDropdown());\n\treadonly _ariaLabel = input<string | undefined>(undefined, { alias: 'ariaLabel' });\n\treadonly ariaLabel = linkedSignal(() => this._ariaLabel());\n\t/** Marks first item as focused when opening/filtering. */\n\treadonly _markFirst = input(true, { alias: 'markFirst', transform: booleanAttribute });\n\treadonly markFirst = linkedSignal(() => this._markFirst());\n\t/** Placeholder text. */\n\treadonly _placeholder = input<string>(this.config.placeholder, { alias: 'placeholder' });\n\treadonly placeholder = linkedSignal(() => this._placeholder());\n\t/** Set placeholder visible even when an item is selected */\n\treadonly _fixedPlaceholder = input<boolean>(this.config.fixedPlaceholder, { alias: 'fixedPlaceholder' });\n\treadonly fixedPlaceholder = linkedSignal(() => this._fixedPlaceholder());\n\t/** Set custom text when filter returns empty result */\n\treadonly _notFoundText = input<string>(undefined, { alias: 'notFoundText' });\n\treadonly notFoundText = linkedSignal(() => this._notFoundText());\n\t/** Set custom text when using Typeahead */\n\treadonly _typeToSearchText = input<string>(undefined, { alias: 'typeToSearchText' });\n\treadonly typeToSearchText = linkedSignal(() => this._typeToSearchText());\n\t/** Prevent opening of ng-select on right mouse click */\n\treadonly _preventToggleOnRightClick = input<boolean>(false, { alias: 'preventToggleOnRightClick' });\n\treadonly preventToggleOnRightClick = linkedSignal(() => this._preventToggleOnRightClick());\n\t/** Set custom text when using tagging */\n\treadonly _addTagText = input<string>(undefined, { alias: 'addTagText' });\n\treadonly addTagText = linkedSignal(() => this._addTagText());\n\t/** Set custom text when for loading items */\n\treadonly _loadingText = input<string>(undefined, { alias: 'loadingText' });\n\treadonly loadingText = linkedSignal(() => this._loadingText());\n\t/** Set custom text for clear all icon title */\n\treadonly _clearAllText = input<string>(undefined, { alias: 'clearAllText' });\n\treadonly clearAllText = linkedSignal(() => this._clearAllText());\n\t/** Set custom text prefixed to the option label in the aria-label of the remove icon on selected values (multiple mode) */\n\treadonly _removeText = input<string>(undefined, { alias: 'removeText' });\n\treadonly removeText = linkedSignal(() => this._removeText());\n\t/** Set the dropdown position on open */\n\treadonly _dropdownPosition = input<DropdownPosition>('auto', { alias: 'dropdownPosition' });\n\treadonly dropdownPosition = linkedSignal(() => this._dropdownPosition());\n\t/**\n\t * Append the dropdown overlay to any element using a css selector, resolved against the\n\t * select's own root (document or shadow root). The panel keeps its viewport-based\n\t * positioning and top-layer painting; the target controls where the overlay lives in the\n\t * DOM — ancestor-scoped styles, stacking context and focus containment. Defaults to the\n\t * document body.\n\t */\n\treadonly _appendTo = input<string>(undefined, { alias: 'appendTo' });\n\treadonly appendTo = linkedSignal(() => this._appendTo());\n\t/** Configure which DOM event type is used for outside click detection. Use `'mousedown'` to fix issues with backdrop/loading overlays that appear on dropdown open */\n\treadonly _outsideClickEvent = input<'click' | 'mousedown'>(this.config.outsideClickEvent ?? 'click', { alias: 'outsideClickEvent' });\n\treadonly outsideClickEvent = linkedSignal(() => this._outsideClickEvent());\n\t/** You can set the loading state from the outside (e.g. async items loading) */\n\treadonly _loading = input(false, { alias: 'loading', transform: booleanAttribute });\n\treadonly loading = linkedSignal(() => this._loading());\n\t/** Whether to close the menu when a value is selected */\n\treadonly _closeOnSelect = input(true, { alias: 'closeOnSelect', transform: booleanAttribute });\n\treadonly closeOnSelect = linkedSignal(() => this._closeOnSelect());\n\t/** Allows to hide selected items. */\n\treadonly _hideSelected = input(false, { alias: 'hideSelected', transform: booleanAttribute });\n\treadonly hideSelected = linkedSignal(() => this._hideSelected());\n\t/** Select marked dropdown item using tab. Default `false` */\n\treadonly _selectOnTab = input(false, { alias: 'selectOnTab', transform: booleanAttribute });\n\treadonly selectOnTab = linkedSignal(() => this._selectOnTab());\n\t/** Open dropdown using enter. Default `true` */\n\treadonly _openOnEnter = input(undefined, { alias: 'openOnEnter', transform: booleanAttribute });\n\treadonly openOnEnter = linkedSignal(() => this._openOnEnter());\n\t/** When multiple = true, allows to set a limit number of selection. */\n\treadonly _maxSelectedItems = input<number, unknown>(undefined, { alias: 'maxSelectedItems', transform: numberAttribute });\n\treadonly maxSelectedItems = linkedSignal(() => this._maxSelectedItems());\n\t/** Allow to group items by key or function expression */\n\treadonly _groupBy = input<string | ((value: any) => any)>(undefined, { alias: 'groupBy' });\n\treadonly groupBy = linkedSignal(() => this._groupBy());\n\t/** Function expression to provide group value */\n\treadonly _groupValue = input<GroupValueFn>(undefined, { alias: 'groupValue' });\n\treadonly groupValue = linkedSignal(() => this._groupValue());\n\t/** Used in virtual scrolling, the `bufferAmount` property controls the number of items preloaded in the background to ensure smoother and more seamless scrolling. */\n\treadonly _bufferAmount = input(4, { alias: 'bufferAmount', transform: numberAttribute });\n\treadonly bufferAmount = linkedSignal(() => this._bufferAmount());\n\t/** Enable virtual scroll for better performance when rendering a lot of data */\n\treadonly _virtualScroll = input<boolean | undefined, unknown>(undefined, {\n\t\talias: 'virtualScroll',\n\t\ttransform: optionalBooleanAttribute,\n\t});\n\treadonly virtualScroll = linkedSignal(() => this._virtualScroll());\n\treadonly dropdownVirtualScroll = computed(() => {\n\t\tconst value = this._virtualScroll();\n\t\treturn isDefined(value) ? value : this.isVirtualScrollDisabled(this.config);\n\t});\n\t/** Allow to select group when groupBy is used */\n\treadonly _selectableGroup = input(false, { alias: 'selectableGroup', transform: booleanAttribute });\n\treadonly selectableGroup = linkedSignal(() => this._selectableGroup());\n\t/** Control tab navigation behavior for the clear button. Default `true` */\n\treadonly _tabFocusOnClearButton = input<boolean | undefined>(undefined, { alias: 'tabFocusOnClearButton' });\n\treadonly tabFocusOnClearButton = linkedSignal(() => this._tabFocusOnClearButton());\n\t/** Indicates whether to select all children or group itself */\n\treadonly _selectableGroupAsModel = input(true, { alias: 'selectableGroupAsModel', transform: booleanAttribute });\n\treadonly selectableGroupAsModel = linkedSignal(() => this._selectableGroupAsModel());\n\t/** Allow to filter by custom search function */\n\treadonly _searchFn = input(null, { alias: 'searchFn' });\n\treadonly searchFn = linkedSignal(() => this._searchFn());\n\t/** Provide custom trackBy function */\n\treadonly _trackByFn = input(null, { alias: 'trackByFn' });\n\treadonly trackByFn = linkedSignal(() => this._trackByFn());\n\t/** Clear selected values one by one when clicking backspace. Default `true` */\n\treadonly _clearOnBackspace = input(true, { alias: 'clearOnBackspace', transform: booleanAttribute });\n\treadonly clearOnBackspace = linkedSignal(() => this._clearOnBackspace());\n\t/** Id to associate control with label. */\n\treadonly _labelForId = input(null, { alias: 'labelForId' });\n\treadonly labelForId = linkedSignal(() => this._labelForId());\n\t/** Pass custom attributes to underlying `input` element */\n\treadonly _inputAttrs = input<Record<string, string>>({}, { alias: 'inputAttrs' });\n\treadonly inputAttrs = linkedSignal(() => this._inputAttrs());\n\t/** Set tabindex on ng-select */\n\treadonly _tabIndex = input<number, unknown>(undefined, { alias: 'tabIndex', transform: numberAttribute });\n\treadonly tabIndex = linkedSignal(() => this._tabIndex());\n\t/** Set ng-select as readonly. Mostly used with reactive forms. */\n\treadonly _readonly = input(false, { alias: 'readonly', transform: booleanAttribute });\n\treadonly readonly = linkedSignal(() => this._readonly());\n\t/** Whether items should be filtered while composition started */\n\treadonly _searchWhileComposing = input(true, { alias: 'searchWhileComposing', transform: booleanAttribute });\n\treadonly searchWhileComposing = linkedSignal(() => this._searchWhileComposing());\n\t/** Minimum term length to start a search. Should be used with `typeahead` */\n\treadonly _minTermLength = input(0, { alias: 'minTermLength', transform: numberAttribute });\n\treadonly minTermLength = linkedSignal(() => this._minTermLength());\n\t/** Allow to edit search query if option selected. Default `false`. Works only if multiple is `false`. */\n\treadonly _editableSearchTerm = input(false, { alias: 'editableSearchTerm', transform: booleanAttribute });\n\treadonly editableSearchTerm = linkedSignal(() => this._editableSearchTerm());\n\treadonly _ngClass = input(null, { alias: 'ngClass' });\n\treadonly ngClass = linkedSignal(() => this._ngClass());\n\t/** Custom autocomplete or advanced filter. */\n\treadonly _typeahead = input<Subject<string>>(undefined, { alias: 'typeahead' });\n\treadonly typeahead = linkedSignal(() => this._typeahead());\n\t/** Allows to select multiple items. */\n\treadonly _multiple = input(false, { alias: 'multiple', transform: booleanAttribute });\n\treadonly multiple = linkedSignal(() => this._multiple());\n\t/** Allows to create custom options. */\n\treadonly _addTag = input<boolean | AddTagFn>(false, { alias: 'addTag' });\n\treadonly addTag = linkedSignal(() => this._addTag());\n\t/** Allow to search for value. Default `true` */\n\treadonly _searchable = input(true, { alias: 'searchable', transform: booleanAttribute });\n\treadonly searchable = linkedSignal(() => this._searchable());\n\t/** Allow to clear selected value. Default `true` */\n\treadonly _clearable = input(true, { alias: 'clearable', transform: booleanAttribute });\n\treadonly clearable = linkedSignal(() => this._clearable());\n\treadonly _clearKeepsDisabledOptions = input(true, { alias: 'clearKeepsDisabledOptions', transform: booleanAttribute });\n\treadonly clearKeepsDisabledOptions = linkedSignal(() => this._clearKeepsDisabledOptions());\n\t/** Deselects a selected item when it is clicked in the dropdown. Default `false`. Default `true` when **multiple** is `true` */\n\treadonly _deselectOnClick = input<boolean>(undefined, { alias: 'deselectOnClick' });\n\treadonly deselectOnClick = linkedSignal(() => this._deselectOnClick());\n\t/** Clears search input when item is selected. Default `true`. Default `false` when **closeOnSelect** is `false` */\n\treadonly _clearSearchOnAdd = input(undefined, { alias: 'clearSearchOnAdd' });\n\treadonly clearSearchOnAdd = linkedSignal(() => this._clearSearchOnAdd());\n\t/** A function to compare the option values with the selected values. The first argument is a value from an option. The second is a value from the selection(model). A boolean should be returned. */\n\treadonly _compareWith = input(undefined, {\n\t\talias: 'compareWith',\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 compareWith = linkedSignal(() => this._compareWith());\n\t/** Provide custom keyDown function. Executed before default handler. Return false to suppress execution of default key down handlers */\n\treadonly _keyDownFn = input<(_: KeyboardEvent) => boolean>((_: KeyboardEvent) => true, { alias: 'keyDownFn' });\n\treadonly keyDownFn = linkedSignal(() => this._keyDownFn());\n\t/** @deprecated Has no effect: the CDK overlay renders in the native Popover API top layer automatically in supporting browsers. Will be removed in a future major version. */\n\treadonly _popover = input(false, { alias: 'popover', transform: booleanAttribute });\n\t/** @deprecated Has no effect: the CDK overlay renders in the native Popover API top layer automatically in supporting browsers. Will be removed in a future major version. */\n\treadonly popover = linkedSignal(() => this._popover());\n\t// models\n\t/** Object property to use for label. Default `label` */\n\treadonly bindLabel = model<string>(undefined);\n\t/** Object property to use for selected model. By default binds to whole object. */\n\treadonly bindValue = model<string>(undefined);\n\t/** Allows to select dropdown appearance. Set to `outline` or `fill` for Material form-field styles (applies only to Material theme) */\n\treadonly appearance = model<string>(undefined);\n\t/** Allows manual control of dropdown opening and closing. `true` - won't close. `false` - won't open. */\n\treadonly isOpen = model<boolean | undefined>(false);\n\t/** Items array */\n\treadonly items = model<readonly any[]>([]);\n\t// output events\n\t/** Fired on select blur */\n\treadonly blurEvent = output<any>({ alias: 'blur' });\n\t/** Fired on select focus */\n\treadonly focusEvent = output<any>({ alias: 'focus' });\n\t/** Fired on model change. Outputs whole model */\n\treadonly changeEvent = output<any>({ alias: 'change' });\n\t/** Fired on select dropdown open */\n\treadonly openEvent = output({ alias: 'open' });\n\t/** Fired on select dropdown close */\n\treadonly closeEvent = output({ alias: 'close' });\n\t/** Fired while typing search term. Outputs search term with filtered items */\n\treadonly searchEvent = output<{\n\t\tterm: string;\n\t\titems: any[];\n\t}>({ alias: 'search' });\n\t/** Fired on clear icon click */\n\treadonly clearEvent = output({ alias: 'clear' });\n\t/** Fired when item is added while `[multiple]=\"true\"`. Outputs added item */\n\treadonly addEvent = output<any>({ alias: 'add' });\n\t/** Fired when item is removed while `[multiple]=\"true\"` */\n\treadonly removeEvent = output<any>({ alias: 'remove' });\n\t/** Fired when scrolled (only when `[virtualScroll]=\"true\"`). Provides the start and end index of the currently available items. Can be used for loading more items in chunks before the user has scrolled all the way to the bottom of the list. */\n\treadonly scroll = output<{\n\t\tstart: number;\n\t\tend: number;\n\t}>({ alias: 'scroll' });\n\t/** Fired when scrolled to the end of items. Can be used for loading more items in chunks. */\n\treadonly scrollToEnd = output<any>({ alias: 'scrollToEnd' });\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\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\tprivate readonly _dropdownTemplate = viewChild<TemplateRef<any>>('dropdownTemplate');\n\t// The portal's embedded view is anchored at the template's own container so it stays\n\t// part of this component's logical view tree (DI, view queries, detectChanges) while\n\t// its DOM nodes live in the CDK overlay\n\tprivate readonly _dropdownOutlet = viewChild('dropdownTemplate', { read: ViewContainerRef });\n\tprivate readonly _selectContainer = viewChild<ElementRef<HTMLDivElement>>('selectContainer');\n\t// public variables\n\treadonly dropdownId = newId();\n\treadonly element: HTMLElement;\n\t/** Width of the notched-outline gap for the floated label in the material outline appearance */\n\treadonly outlineNotchWidth = signal(0);\n\t// variables\n\titemsList: ItemsList;\n\tviewPortItems: NgOption[] = [];\n\ttabFocusOnClear = signal<boolean>(true);\n\tprivate readonly _cd = inject(ChangeDetectorRef);\n\tprivate readonly _console = inject(ConsoleService);\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\tprivate readonly autoFocus = inject(new HostAttributeToken('autofocus'), { optional: true });\n\t/** Overlay hosting the dropdown panel while open. Bound into the panel so it can request repositioning. */\n\tprotected dropdownOverlayRef: OverlayRef | null = null;\n\t// private variables\n\tprivate readonly _defaultLabel = 'label';\n\tprivate readonly _editableSearchTermActive = computed(() => this.editableSearchTerm() && !this.multiple());\n\tprivate readonly _document = inject(DOCUMENT);\n\tprivate _dropdownPositionStrategy: FlexibleConnectedPositionStrategy | null = null;\n\tprivate _dropdownPortal: TemplatePortal | null = null;\n\t/** `appendTo` value the current overlay was created against; a change rebuilds the overlay. */\n\tprivate _overlayAppendTo: string | null = null;\n\t/** Overlay container placed inside the `appendTo` host for browsers without the Popover API. */\n\tprivate _appendToContainer: NgSelectAppendToOverlayContainer | null = null;\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\tthis._handleSignalChanges();\n\t\tafterEveryRender({\n\t\t\tread: () => this._measureOutlineNotch(),\n\t\t});\n\t\tthis._destroyRef.onDestroy(() => this._destroyDropdownOverlay());\n\t}\n\n\t/**\n\t * Measures the placeholder label so the notched outline can leave a real gap in the border\n\t * for the floated label instead of masking it with an opaque background (material theme).\n\t * The 0.75 factor matches the `scale(0.75)` the material theme applies to the floated label.\n\t */\n\tprivate _measureOutlineNotch() {\n\t\tif (this.appearance() !== 'outline') {\n\t\t\treturn;\n\t\t}\n\t\tconst label = this.element.querySelector<HTMLElement>('.ng-select-container > .ng-value-container .ng-placeholder');\n\t\tconst width = label ? label.offsetWidth * 0.75 : 0;\n\t\tif (width !== this.outlineNotchWidth()) {\n\t\t\tthis.outlineNotchWidth.set(width);\n\t\t}\n\t}\n\n\tprivate _focused: boolean;\n\n\tget focused() {\n\t\treturn this._focused;\n\t}\n\n\tget filtered() {\n\t\treturn (!!this.searchTerm && this.searchable()) || this._isComposing;\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\tthis._warnDeprecatedInputs();\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\tconst multipleChange = changes._multiple ?? changes.multiple;\n\t\tconst itemsChange = changes.items;\n\t\tconst isOpenChange = changes.isOpen;\n\t\tconst groupByChange = changes._groupBy ?? changes.groupBy;\n\n\t\tif (multipleChange?.firstChange) {\n\t\t\tthis.itemsList.clearSelected(false);\n\t\t}\n\n\t\tif (itemsChange?.firstChange) {\n\t\t\tthis._itemsAreUsed = true;\n\t\t\tthis._setItems(itemsChange.currentValue || []);\n\t\t}\n\n\t\tif (isOpenChange) {\n\t\t\tthis._manualOpen = isDefined(isOpenChange.currentValue);\n\t\t}\n\n\t\tif (groupByChange?.firstChange && !itemsChange) {\n\t\t\tthis._setItems([...this.items()]);\n\t\t}\n\n\t\tthis._setTabFocusOnClear();\n\t}\n\n\tngAfterViewInit() {\n\t\tif (!this._itemsAreUsed) {\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\t// Only consume Escape when it closes the dropdown so parent overlays/dialogs can still handle Escape when already closed\n\t\t\t\tif (!this.isOpen() || this._manualOpen) {\n\t\t\t\t\treturn;\n\t\t\t\t}\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\tcase KeyCode.Space:\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\thandleRemoveKeydown($event: KeyboardEvent, item: NgOption) {\n\t\tif (item.disabled) {\n\t\t\treturn;\n\t\t}\n\t\tif ($event.key === KeyCode.Enter || $event.key === KeyCode.Space) {\n\t\t\t$event.preventDefault();\n\t\t\t$event.stopPropagation();\n\t\t\tthis.unselect(item);\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\n\t\t// Allow highlighting/copying the selected label when search is disabled.\n\t\t// Skipping preventDefault + toggle lets the browser start a text selection.\n\t\t// See https://github.com/ng-select/ng-select/issues/2669\n\t\tconst onSelectedValue = !!target.closest?.('.ng-value');\n\t\tconst onValueIcon = target.classList.contains('ng-value-icon') || !!target.closest?.('.ng-value-icon');\n\t\tif (!this.searchable() && onSelectedValue && !onValueIcon) {\n\t\t\tif (!this._focused) {\n\t\t\t\tthis.focus();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\t// Skip during Angular event replay (SSR hydration): preventDefault has no effect\n\t\t// after browser dispatch and throws — see https://github.com/ng-select/ng-select/issues/2549\n\t\tif (target.tagName !== 'INPUT' && $event.eventPhase !== EventPhase.REPLAY) {\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(this.clearKeepsDisabledOptions());\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(false);\n\t\tthis._updateNgModel();\n\t}\n\n\twriteValue(value: any | any[]): void {\n\t\tthis.itemsList.clearSelected(false);\n\t\tthis._handleWriteValue(value);\n\t\tif (this._editableSearchTermActive()) {\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\t/** Opens the select dropdown panel */\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\t// Attach synchronously (effects only flush on the next tick): consumers expect the\n\t\t// panel to be in the DOM right after open() returns\n\t\tthis._syncDropdownOverlay();\n\t\tthis.detectChanges();\n\t}\n\n\t/** Closes the select dropdown panel */\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._editableSearchTermActive()) {\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\t// Detach synchronously (effects only flush on the next tick): the panel must leave\n\t\t// the DOM without relying on zone-triggered change detection (#2765)\n\t\tthis._syncDropdownOverlay();\n\t\tthis.detectChanges();\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._editableSearchTermActive()) {\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._editableSearchTermActive()) {\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\t/** Focuses the select element */\n\tfocus() {\n\t\tthis.searchInput().nativeElement.focus();\n\t}\n\n\t/** Blurs the select element */\n\tblur() {\n\t\tthis.searchInput().nativeElement.blur();\n\t}\n\n\tunselect(item: NgOption) {\n\t\tif (!item || this.disabled() || item.disabled) {\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) => (this.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()) || (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._editableSearchTermActive()) {\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\t// When `selectOnTab` is enabled, commit the marked item on any focus loss, not just the literal Tab\n\t\t// key handled in `_handleTab` (e.g. mouse click-away or assistive-technology navigation). The Tab key\n\t\t// path calls `preventDefault()` and keeps focus, so this cannot double-select for that case.\n\t\tif (this.selectOnTab() && this.isOpen() && !this.disabled() && this.itemsList.markedItem && !this._isComposing) {\n\t\t\tthis.toggleItem(this.itemsList.markedItem);\n\t\t}\n\t\tif (!this.isOpen() && !this.disabled()) {\n\t\t\tthis._onTouched();\n\t\t}\n\t\tif (this._editableSearchTermActive()) {\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 _handleSignalChanges() {\n\t\tlet itemsInitialized = false;\n\t\teffect(\n\t\t\t() => {\n\t\t\t\tconst items = this.items();\n\n\t\t\t\tif (!itemsInitialized) {\n\t\t\t\t\titemsInitialized = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tuntracked(() => {\n\t\t\t\t\tthis._itemsAreUsed = true;\n\t\t\t\t\tthis._setItems(items || []);\n\t\t\t\t});\n\t\t\t},\n\t\t\t{ injector: this._injector },\n\t\t);\n\n\t\tlet multipleInitialized = false;\n\t\teffect(\n\t\t\t() => {\n\t\t\t\tthis.multiple();\n\n\t\t\t\tif (!multipleInitialized) {\n\t\t\t\t\tmultipleInitialized = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tuntracked(() => this.itemsList.clearSelected(false));\n\t\t\t},\n\t\t\t{ injector: this._injector },\n\t\t);\n\n\t\tlet groupByInitialized = false;\n\t\teffect(\n\t\t\t() => {\n\t\t\t\tthis.groupBy();\n\n\t\t\t\tif (!groupByInitialized) {\n\t\t\t\t\tgroupByInitialized = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tuntracked(() => this._setItems([...this.items()]));\n\t\t\t},\n\t\t\t{ injector: this._injector },\n\t\t);\n\n\t\teffect(\n\t\t\t() => {\n\t\t\t\tthis.inputAttrs();\n\t\t\t\tconst input = this.searchInput();\n\n\t\t\t\tif (!input) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tuntracked(() => this._setInputAttributes());\n\t\t\t},\n\t\t\t{ injector: this._injector },\n\t\t);\n\n\t\t// open()/close() sync the overlay imperatively; this effect covers the paths that\n\t\t// bypass them — an [isOpen] binding (manual mode), programmatic isOpen.set(), and\n\t\t// dropdownPosition changes while open\n\t\teffect(\n\t\t\t() => {\n\t\t\t\tthis.isOpen();\n\t\t\t\tthis.dropdownPosition();\n\t\t\t\t// Track the template query too: with [isOpen] pre-set, the first run can happen\n\t\t\t\t// before view children resolve, and this re-runs the effect once they do\n\t\t\t\tthis._dropdownTemplate();\n\n\t\t\t\tuntracked(() => this._syncDropdownOverlay());\n\t\t\t},\n\t\t\t{ injector: this._injector },\n\t\t);\n\t}\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\t// Wait until all ng-option inputs are initialized (avoids _groupBy crash when values load async)\n\t\t\t\tif (options.length > 0 && !options.every((opt) => opt.isInitialized())) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.bindLabel.set(this._defaultLabel);\n\t\t\t\tconst items = options.map((option) => ({\n\t\t\t\t\t$ngOptionValue: option.value(),\n\t\t\t\t\t$ngOptionLabel: option.label(),\n\t\t\t\t\t$ngOptionClasses: option.classes(),\n\t\t\t\t\tdisabled: option.disabled(),\n\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\titem.classes = option.classes();\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(`Setting object(${JSON.stringify(item)}) as your model with bindValue is not allowed unless [compareWith] is used.`);\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 {\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\tif (!item.disabled) {\n\t\t\t\t\t\t\tthis.itemsList.markItem(item);\n\t\t\t\t\t\t\tthis._scrollToMarked();\n\t\t\t\t\t\t\t// Required under zoneless CD: this subscription fires from a debounce\n\t\t\t\t\t\t\t// timer, which schedules nothing by itself\n\t\t\t\t\t\t\tthis._cd.markForCheck();\n\t\t\t\t\t\t}\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...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;\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\t// Required under zoneless CD: sole notifier for the programmatic selection\n\t\t// APIs (select/unselect/clearModel/clearItem) called from non-Angular contexts\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}\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\tif (this.isOpen() && this.deselectOnClickValue()) {\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\t/** Attaches or detaches the dropdown overlay to match the current open state. Idempotent. */\n\tprivate _syncDropdownOverlay() {\n\t\tif (!this._dropdownTemplate()) {\n\t\t\treturn;\n\t\t}\n\t\tif (this.isOpen()) {\n\t\t\tthis._openDropdownOverlay(this.dropdownPosition());\n\t\t} else {\n\t\t\tthis.dropdownOverlayRef?.detach();\n\t\t}\n\t}\n\n\t/**\n\t * Creates the overlay on first open and (re)attaches the dropdown template to it.\n\t * The panel always renders in the CDK overlay; `dropdownPosition` maps onto connected\n\t * positions, with `auto` falling back to the opposite side when space runs out.\n\t */\n\tprivate _openDropdownOverlay(position: DropdownPosition) {\n\t\tconst overlayRef = this._ensureDropdownOverlay();\n\t\tthis._dropdownPositionStrategy.withPositions(DROPDOWN_POSITIONS[position] ?? DROPDOWN_POSITIONS.auto);\n\t\t// Direction is snapshotted per open, matching how the previous implementation read\n\t\t// `document.documentElement.dir` when positioning an appended panel\n\t\toverlayRef.setDirection(this._document?.documentElement?.dir === 'rtl' ? 'rtl' : 'ltr');\n\t\t// The panel tracks the width of the select; the panel keeps it in sync on host resize\n\t\toverlayRef.updateSize({ width: this._dropdownOrigin().getBoundingClientRect().width });\n\t\tif (overlayRef.hasAttached()) {\n\t\t\t// Only `dropdownPosition` changed while open — re-evaluate with the new positions\n\t\t\toverlayRef.updatePosition();\n\t\t\treturn;\n\t\t}\n\t\tthis._dropdownPortal ??= new TemplatePortal(this._dropdownTemplate(), this._dropdownOutlet());\n\t\toverlayRef.attach(this._dropdownPortal);\n\t}\n\n\t/**\n\t * The dropdown anchors to the `.ng-select-container` box, not the host: themes may pad\n\t * the host below the container (material reserves 1.25em of subscript space under the\n\t * underline), and the panel must sit flush against the visible field — the same anchor\n\t * the pre-overlay `appendTo` positioning used.\n\t */\n\tprivate _dropdownOrigin(): HTMLElement {\n\t\treturn this._selectContainer()?.nativeElement ?? this.element;\n\t}\n\n\tprivate _ensureDropdownOverlay(): OverlayRef {\n\t\tconst appendTo = this.appendTo() ?? this.config.appendTo ?? null;\n\t\tif (this.dropdownOverlayRef && appendTo !== this._overlayAppendTo) {\n\t\t\t// `appendTo` changed since the overlay was created — rebuild against the new host\n\t\t\tthis._destroyDropdownOverlay();\n\t\t}\n\t\tif (!this.dropdownOverlayRef) {\n\t\t\tlet injector = this._injector;\n\t\t\tlet appendToHost: HTMLElement | null = null;\n\t\t\tif (appendTo) {\n\t\t\t\tappendToHost = this._resolveAppendToHost(appendTo);\n\t\t\t\tthis._appendToContainer = runInInjectionContext(this._injector, () => new NgSelectAppendToOverlayContainer(appendToHost));\n\t\t\t\tinjector = Injector.create({\n\t\t\t\t\tparent: this._injector,\n\t\t\t\t\tproviders: [{ provide: OverlayContainer, useValue: this._appendToContainer }],\n\t\t\t\t});\n\t\t\t}\n\t\t\tthis._dropdownPositionStrategy = createFlexibleConnectedPositionStrategy(injector, this._dropdownOrigin()).withFlexibleDimensions(false).withPush(false);\n\t\t\tif (appendToHost) {\n\t\t\t\t// Popover-capable browsers paint the panel in the top layer regardless of where it\n\t\t\t\t// lives in the DOM, so the `appendTo` host only determines DOM containment —\n\t\t\t\t// ancestor-scoped styles and focus enclosure. Browsers without the Popover API fall\n\t\t\t\t// back to the NgSelectAppendToOverlayContainer provided above instead.\n\t\t\t\tthis._dropdownPositionStrategy.withPopoverLocation({ type: 'parent', element: appendToHost });\n\t\t\t}\n\t\t\tthis._overlayAppendTo = appendTo;\n\t\t\tthis.dropdownOverlayRef = createOverlayRef(injector, {\n\t\t\t\tpositionStrategy: this._dropdownPositionStrategy,\n\t\t\t\t// Ancestor-scroll repositioning is handled by the panel's capture-phase document\n\t\t\t\t// listener, which also covers plain scroll containers that CDK's ScrollDispatcher\n\t\t\t\t// cannot see without a `cdkScrollable` marker (#2788)\n\t\t\t\tscrollStrategy: createNoopScrollStrategy(),\n\t\t\t\t// Detach must remove the panel from the DOM synchronously (#2765); the panel has\n\t\t\t\t// no CDK-driven animations to wait for\n\t\t\t\tdisableAnimations: true,\n\t\t\t});\n\t\t}\n\t\treturn this.dropdownOverlayRef;\n\t}\n\n\tprivate _destroyDropdownOverlay() {\n\t\tthis.dropdownOverlayRef?.dispose();\n\t\tthis.dropdownOverlayRef = null;\n\t\tthis._dropdownPositionStrategy = null;\n\t\tthis._appendToContainer?.ngOnDestroy();\n\t\tthis._appendToContainer = null;\n\t}\n\n\t/** Resolves the `appendTo` selector against the select's own root, so a select inside a shadow root finds hosts in that same root. */\n\tprivate _resolveAppendToHost(selector: string): HTMLElement {\n\t\tconst root = this.element.getRootNode();\n\t\tconst scope = typeof ShadowRoot !== 'undefined' && root instanceof ShadowRoot ? root : this._document;\n\t\tconst host = scope.querySelector<HTMLElement>(selector);\n\t\tif (!host) {\n\t\t\tthrow new Error(`appendTo selector ${selector} did not found any parent element`);\n\t\t}\n\t\treturn host;\n\t}\n\n\tprivate _warnDeprecatedInputs() {\n\t\tif (!isDevMode()) {\n\t\t\treturn;\n\t\t}\n\t\tif (this.popover()) {\n\t\t\tthis._console.warn(\n\t\t\t\t'[ng-select] `popover` is deprecated and has no effect: the dropdown panel now renders in an Angular CDK overlay, which uses the native Popover API top layer automatically in supporting browsers.',\n\t\t\t);\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 this.addTag() && this.searchTerm && this.itemsList.markedItem && (nextIndex < 0 || nextIndex === this.itemsList.filteredItems.length);\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#selectContainer\n\t(mousedown)=\"handleMousedown($event)\"\n\t[class.ng-appearance-outline]=\"appearance() === 'outline'\"\n\t[class.ng-appearance-fill]=\"appearance() === 'fill'\"\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\n\t\t\t\t\t\t\tclass=\"ng-value-icon left\"\n\t\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\t\t\t[attr.aria-label]=\"(removeText() ?? config.removeText) + ' ' + item.label\"\n\t\t\t\t\t\t\t(click)=\"unselect(item)\"\n\t\t\t\t\t\t\t(keydown)=\"handleRemoveKeydown($event, item)\"\n\t\t\t\t\t\t\t>×</span\n\t\t\t\t\t\t>\n\t\t\t\t\t\t<span class=\"ng-value-label\">{{ item.label }}</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 }\"> </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<span\n\t\t\tclass=\"ng-clear-wrapper\"\n\t\t\trole=\"button\"\n\t\t\ttabindex=\"0\"\n\t\t\t[attr.tabindex]=\"tabFocusOnClear() ? 0 : -1\"\n\t\t\t[attr.aria-label]=\"clearAllText() || config.clearAllText\"\n\t\t\ttitle=\"{{ clearAllText() || config.clearAllText }}\"\n\t\t\t#clearButton\n\t\t\t(click)=\"handleClearClick($event)\">\n\t\t\t@if (clearButtonTemplate()) {\n\t\t\t\t<ng-container [ngTemplateOutlet]=\"clearButtonTemplate()\"></ng-container>\n\t\t\t} @else {\n\t\t\t\t<span class=\"ng-clear\" aria-hidden=\"true\">×</span>\n\t\t\t}\n\t\t</span>\n\t}\n\n\t<span class=\"ng-arrow-wrapper\">\n\t\t<span class=\"ng-arrow\"></span>\n\t</span>\n\n\t@if (appearance() === 'outline') {\n\t\t<div class=\"ng-notched-outline\" aria-hidden=\"true\">\n\t\t\t<div class=\"ng-notched-outline-leading\"></div>\n\t\t\t<div class=\"ng-notched-outline-notch\" [style.width.px]=\"outlineNotchWidth()\"></div>\n\t\t\t<div class=\"ng-notched-outline-trailing\"></div>\n\t\t</div>\n\t}\n</div>\n\n<!-- Rendered through a TemplatePortal into the CDK overlay while the select is open;\n     the embedded view stays part of this component's view tree, only the DOM moves. -->\n<ng-template #dropdownTemplate>\n\t<ng-dropdown-panel\n\t\tclass=\"ng-dropdown-panel\"\n\t\t[virtualScroll]=\"dropdownVirtualScroll()\"\n\t\t[bufferAmount]=\"bufferAmount()\"\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]=\"ngClass() ? ngClass() : classes\"\n\t\t[listboxId]=\"dropdownId\"\n\t\t[ariaLabelDropdown]=\"ariaLabelDropdown() ?? config.ariaLabelDropdown\"\n\t\t[overlayRef]=\"dropdownOverlayRef\"\n\t\t[selectElement]=\"element\">\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\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[ngClass]=\"item.classes\"\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]=\"itemsList.filteredItems.indexOf(item) + 1 || null\">\n\t\t\t\t\t<ng-template #defaultOptionTemplate>\n\t\t\t\t\t\t<span class=\"ng-option-label\">{{ item.label }}</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]=\"item.children ? optgroupTemplate() || defaultOptionTemplate : optionTemplate() || defaultOptionTemplate\"\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 [ngTemplateOutlet]=\"tagTemplate() || defaultTagTemplate\" [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\"> </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 [ngTemplateOutlet]=\"notFoundTemplate() || defaultNotFoundTemplate\" [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 [ngTemplateOutlet]=\"loadingTextTemplate() || defaultLoadingTextTemplate\" [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\">\n\t\t\t</ng-template>\n\t\t}\n\t</ng-dropdown-panel>\n</ng-template>\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()) {\n\t\t@if (showNoItemsFound()) {\n\t\t\t{{ notFoundText() ?? config.notFoundText }}\n\t\t} @else if (showTypeToSearch()) {\n\t\t\t{{ typeToSearchText() || config.typeToSearchText }}\n\t\t} @else if (loading() && itemsList.filteredItems.length === 0) {\n\t\t\t{{ loadingText() || config.loadingText }}\n\t\t} @else if (itemsList.markedItem) {\n\t\t\t{{ itemsList.markedItem.label }}\n\t\t}\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","/*\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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;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;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,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,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,QAAQ,EAAE,QAAQ;AAClB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"}