ng-select2-component 12.0.0 → 13.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/README.md +34 -15
- package/esm2022/lib/select2-const.mjs +47 -47
- package/esm2022/lib/select2-hint.component.mjs +10 -10
- package/esm2022/lib/select2-interfaces.mjs +2 -2
- package/esm2022/lib/select2-label.component.mjs +10 -10
- package/esm2022/lib/select2-utils.mjs +279 -279
- package/esm2022/lib/select2.component.mjs +868 -900
- package/esm2022/lib/select2.module.mjs +22 -22
- package/esm2022/ng-select2-component.mjs +4 -4
- package/esm2022/public_api.mjs +11 -11
- package/fesm2022/ng-select2-component.mjs +1210 -1241
- package/fesm2022/ng-select2-component.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/select2-const.d.ts +7 -7
- package/lib/select2-hint.component.d.ts +5 -5
- package/lib/select2-interfaces.d.ts +72 -54
- package/lib/select2-interfaces.d.ts.map +1 -1
- package/lib/select2-label.component.d.ts +5 -5
- package/lib/select2-utils.d.ts +24 -24
- package/lib/select2.component.d.ts +234 -235
- package/lib/select2.component.d.ts.map +1 -1
- package/lib/select2.module.d.ts +13 -13
- package/package.json +4 -4
- package/public_api.d.ts +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-select2-component.mjs","sources":["../../../projects/ng-select2-component/src/lib/select2-const.ts","../../../projects/ng-select2-component/src/lib/select2-utils.ts","../../../projects/ng-select2-component/src/lib/select2.component.ts","../../../projects/ng-select2-component/src/lib/select2.component.html","../../../projects/ng-select2-component/src/lib/select2-hint.component.ts","../../../projects/ng-select2-component/src/lib/select2-label.component.ts","../../../projects/ng-select2-component/src/lib/select2.module.ts","../../../projects/ng-select2-component/src/public_api.ts","../../../projects/ng-select2-component/src/ng-select2-component.ts"],"sourcesContent":["export const timeout = 200;\n\nexport const unicodePatterns: { l: string; s: RegExp }[] = [\n { l: 'a', s: /[ⓐaẚàáâầấẫẩãāăằắẵẳȧǡäǟảåǻǎȁȃạậặḁąⱥɐ]/gi },\n { l: 'aa', s: /ꜳ/gi },\n { l: 'ae', s: /[æǽǣ]/gi },\n { l: 'ao', s: /ꜵ/gi },\n { l: 'au', s: /ꜷ/gi },\n { l: 'av', s: /[ꜹꜻ]/gi },\n { l: 'ay', s: /ꜽ/gi },\n { l: 'b', s: /[ⓑbḃḅḇƀƃɓ]/gi },\n { l: 'c', s: /[ⓒcćĉċčçḉƈȼꜿↄ]/gi },\n { l: 'd', s: /[ⓓdḋďḍḑḓḏđƌɖɗꝺ]/gi },\n { l: 'dz', s: /[dzdž]/gi },\n { l: 'e', s: /[ⓔeèéêềếễểẽēḕḗĕėëẻěȅȇẹệȩḝęḙḛɇɛǝ]/gi },\n { l: 'f', s: /[ⓕfḟƒꝼ]/gi },\n { l: 'g', s: /[ⓖgǵĝḡğġǧģǥɠꞡᵹꝿ]/gi },\n { l: 'h', s: /[ⓗhĥḣḧȟḥḩḫẖħⱨⱶɥ]/gi },\n { l: 'hv', s: /ƕ/gi },\n { l: 'i', s: /[ⓘiìíîĩīĭİïḯỉǐȉȋịįḭɨı]/gi },\n { l: 'j', s: /[ⓙjĵǰɉ]/gi },\n { l: 'k', s: /[ⓚkḱǩḳķḵƙⱪꝁꝃꝅꞣ]/gi },\n { l: 'l', s: /[ⓛlŀĺľḷḹļḽḻſłƚɫⱡꝉꞁꝇꝆ]/gi },\n { l: 'lj', s: /lj/gi },\n { l: 'm', s: /[ⓜmḿṁṃɱɯ]/gi },\n { l: 'n', s: /[ⓝnǹńñṅňṇņṋṉƞɲʼnꞑꞥ]/gi },\n { l: 'nj', s: /nj/gi },\n { l: 'o', s: /[ⓞoòóôồốỗổõṍȭṏōṑṓŏȯȱöȫỏőǒȍȏơờớỡởợọộǫǭøǿɔƟꝋꝍɵ]/gi },\n { l: 'oi', s: /ƣ/gi },\n { l: 'oe', s: /œ/gi },\n { l: 'oo', s: /ꝏ/gi },\n { l: 'ou', s: /ȣ/gi },\n { l: 'p', s: /[ⓟpṕṗƥᵽꝑꝓꝕ]/gi },\n { l: 'q', s: /[ⓠqɋꝗꝙ]/gi },\n { l: 'r', s: /[ⓡrŕṙřȑȓṛṝŗṟɍɽꝛꞧꞃ]/gi },\n { l: 's', s: /[ⓢsßẞśṥŝṡšṧṣṩșşȿꞩꞅẛ]/gi },\n { l: 't', s: /[ⓣtṫẗťṭțţṱṯŧƭʈⱦꞇ]/gi },\n { l: 'tz', s: /ꜩ/gi },\n { l: 'u', s: /[ⓤuùúûũṹūṻŭüǜǘǖǚủůűǔȕȗưừứữửựụṳųṷṵʉ]/gi },\n { l: 'v', s: /[ⓥvṽṿʋꝟʌ]/gi },\n { l: 'vy', s: /ꝡ/gi },\n { l: 'w', s: /[ⓦwẁẃŵẇẅẘẉⱳ]/gi },\n { l: 'x', s: /[ⓧxẋẍ]/gi },\n { l: 'y', s: /[ⓨyỳýŷỹȳẏÿỷẙỵƴɏỿ]/gi },\n { l: 'z', s: /[ⓩzźẑżžẓẕƶȥɀⱬꝣ]/gi },\n];\n\nexport const defaultMinCountForSearch = 6;\n\nexport const protectRegexp = new RegExp('[\\\\-\\\\[\\\\]\\\\/\\\\{\\\\}\\\\(\\\\)\\\\*\\\\+\\\\?\\\\.\\\\\\\\\\\\^\\\\$\\\\|]', 'g');\n","import { defaultMinCountForSearch, protectRegexp, unicodePatterns } from './select2-const';\nimport { Select2Data, Select2Group, Select2Option, Select2UpdateValue, Select2Value } from './select2-interfaces';\n\n\nexport class Select2Utils {\n static getOptionByValue(data: Select2Data, value: Select2Value | null | undefined) {\n if (Array.isArray(data)) {\n for (const groupOrOption of data) {\n const options = (groupOrOption as Select2Group).options;\n if (options) {\n for (const option of options) {\n if (option.value === value) {\n return option;\n }\n }\n } else if ((groupOrOption as Select2Option).value === value) {\n return groupOrOption as Select2Option;\n }\n }\n }\n return null;\n }\n\n static getOptionsByValue(\n data: Select2Data,\n value: Select2UpdateValue | null | undefined,\n multiple: boolean | null | undefined,\n ) {\n if (multiple) {\n const values: Select2Value[] = Array.isArray(value) ? value : [];\n const result: Select2Option[] = [];\n for (const v of values) {\n const option = Select2Utils.getOptionByValue(data, v);\n if (option) {\n result.push(option);\n }\n }\n return result;\n }\n return Select2Utils.getOptionByValue(data, value as Select2Value | null | undefined);\n }\n\n static getFirstAvailableOption(data: Select2Data) {\n if (Array.isArray(data)) {\n for (const groupOrOption of data) {\n const options = (groupOrOption as Select2Group).options;\n if (options) {\n for (const option of options) {\n if (!option.disabled) {\n return option.value;\n }\n }\n } else {\n const option = groupOrOption as Select2Option;\n if (!option.disabled) {\n return option.value;\n }\n }\n }\n }\n return null;\n }\n\n static valueIsNotInFilteredData(filteredData: Select2Data, value: Select2Value | null | undefined) {\n if (Select2Utils.isNullOrUndefined(value)) {\n return true;\n }\n for (const groupOrOption of filteredData) {\n const options = (groupOrOption as Select2Group).options;\n if (options) {\n for (const option of options) {\n if (option.value === value) {\n return false;\n }\n }\n } else if ((groupOrOption as Select2Option).value === value) {\n return false;\n }\n }\n return true;\n }\n\n // eslint-disable-next-line\n static getPreviousOption(filteredData: Select2Data, hoveringValue: Select2Value | null | undefined) {\n let findIt = Select2Utils.isNullOrUndefined(hoveringValue);\n for (let i = filteredData.length - 1; i >= 0; i--) {\n const groupOrOption = filteredData[i];\n const options = (groupOrOption as Select2Group).options;\n if (options) {\n for (let j = options.length - 1; j >= 0; j--) {\n const option = options[j];\n if (findIt && !option.disabled && !option.hide) {\n return option;\n }\n if (!findIt) {\n findIt = option.value === hoveringValue;\n }\n }\n } else {\n const option = groupOrOption as Select2Option;\n if (findIt && !option.disabled && !option.hide) {\n return option;\n }\n if (!findIt) {\n findIt = option.value === hoveringValue;\n }\n }\n }\n return null;\n }\n // eslint-disable-next-line\n static getNextOption(filteredData: Select2Data, hoveringValue: Select2Value | null | undefined) {\n let findIt = Select2Utils.isNullOrUndefined(hoveringValue);\n for (const groupOrOption of filteredData) {\n const options = (groupOrOption as Select2Group).options;\n if (options) {\n for (const option of options) {\n if (findIt) {\n if (!option.disabled && !option.hide) {\n return option;\n }\n } else if (!findIt) {\n findIt = option.value === hoveringValue;\n }\n }\n } else {\n const option = groupOrOption as Select2Option;\n if (findIt) {\n if (!option.disabled && !option.hide) {\n return option;\n }\n } else if (!findIt) {\n findIt = option.value === hoveringValue;\n }\n }\n }\n return null;\n }\n\n static getReduceData(data: Select2Data, maxResults: number = 0): { result: Select2Data; reduce: boolean } {\n if (maxResults > 0) {\n let counter = 0;\n const result: Select2Data = [];\n // debugger;\n\n for (const groupOrOption of data) {\n const options = (groupOrOption as Select2Group).options;\n if (options) {\n const group = {\n ...groupOrOption,\n options: [],\n };\n result.push(group);\n for (const item of options) {\n group.options.push(item);\n counter++;\n if (counter === maxResults) {\n return { result, reduce: true };\n }\n }\n } else {\n result.push(groupOrOption);\n counter++;\n }\n if (counter === maxResults) {\n return { result, reduce: true };\n }\n }\n return { result, reduce: false };\n } else {\n return { result: data, reduce: false };\n }\n }\n\n static getFilteredData(\n data: Select2Data,\n searchText: string | null,\n editPattern?: (str: string) => string,\n ): Select2Data {\n if (searchText) {\n const result: Select2Data = [];\n for (const groupOrOption of data) {\n const options = (groupOrOption as Select2Group).options;\n if (options) {\n if (options.some(group => Select2Utils.containSearchText(group.label, searchText, editPattern))) {\n const filteredOptions = options.filter(group =>\n Select2Utils.containSearchText(group.label, searchText, editPattern),\n );\n result.push({\n ...groupOrOption,\n options: filteredOptions,\n });\n }\n } else if (Select2Utils.containSearchText(groupOrOption.label, searchText, editPattern)) {\n result.push(groupOrOption);\n }\n }\n return result;\n } else {\n return data;\n }\n }\n\n static getFilteredSelectedData(\n data: Select2Data,\n selectedOptions: Select2Option | Select2Option[] | null,\n ): Select2Data {\n const result: Select2Data = [];\n for (const groupOrOption of data) {\n const options = (groupOrOption as Select2Group).options;\n if (options) {\n const filteredOptions = options.filter(\n group => Select2Utils.isSelected(selectedOptions, group, true) === 'false',\n );\n if (filteredOptions.length) {\n result.push({\n ...groupOrOption,\n options: filteredOptions,\n });\n }\n } else if (Select2Utils.isSelected(selectedOptions, groupOrOption as Select2Option, true) === 'false') {\n result.push(groupOrOption);\n }\n }\n return result;\n }\n\n static isSearchboxHiddex(data: Select2Data, minCountForSearch?: number | string): boolean {\n if (\n minCountForSearch === '' ||\n minCountForSearch === undefined ||\n minCountForSearch === null ||\n isNaN(+minCountForSearch)\n ) {\n minCountForSearch = defaultMinCountForSearch;\n }\n const optionCount = Select2Utils.getOptionsCount(data);\n return optionCount < +minCountForSearch;\n }\n\n static isSelected(\n options: Select2Option | Select2Option[] | null,\n option: Select2Option,\n multiple: boolean | null | undefined,\n ) {\n return multiple\n ? options && (options as Select2Option[]).some(op => op.value === option.value)\n ? 'true'\n : 'false'\n : options && option.value === (options as Select2Option).value\n ? 'true'\n : 'false';\n }\n\n static removeSelection(options: Select2Option | Select2Option[] | null, option: Select2Option) {\n for (let i = 0; i < (options as Select2Option[]).length; i++) {\n if ((options as Select2Option[])[i].value === option.value) {\n (options as Select2Option[]).splice(i, 1);\n return;\n }\n }\n }\n\n private static getOptionsCount(data: Select2Data) {\n let count = 0;\n if (Array.isArray(data)) {\n for (const groupOrOption of data) {\n const options = (groupOrOption as Select2Group).options;\n if (options) {\n count += options.length;\n } else {\n count++;\n }\n }\n }\n return count;\n }\n\n private static isNullOrUndefined(value: any) {\n return value === null || value === undefined;\n }\n\n private static containSearchText(\n label: string,\n searchText: string | null,\n editPattern: ((str: string) => string) | undefined,\n ): boolean {\n return searchText\n ? Select2Utils.formatSansUnicode(label).match(\n new RegExp(Select2Utils.formatPattern(searchText, editPattern), 'i'),\n ) !== null\n : true;\n }\n\n private static protectPattern(str: string): string {\n return str.replace(protectRegexp, '\\\\$&');\n }\n\n private static formatSansUnicode(str: string): string {\n for (const unicodePattern of unicodePatterns) {\n str = str.replace(unicodePattern.s, unicodePattern.l);\n }\n return str;\n }\n\n private static formatPattern(str: string, editPattern: ((str: string) => string) | undefined): string {\n str = Select2Utils.formatSansUnicode(Select2Utils.protectPattern(str));\n\n if (editPattern && typeof editPattern === 'function') {\n str = editPattern(str);\n }\n return str;\n }\n}\n","import {\n CdkConnectedOverlay,\n ConnectedOverlayPositionChange,\n ConnectedPosition,\n VerticalConnectionPos,\n} from '@angular/cdk/overlay';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport type { ElementRef, QueryList } from '@angular/core';\nimport {\n AfterViewInit,\n Attribute,\n ChangeDetectorRef,\n Component,\n DoCheck,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Self,\n TemplateRef,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { ControlValueAccessor, FormGroupDirective, NgControl, NgForm } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\n\nimport { timeout } from './select2-const';\nimport {\n Select2Data,\n Select2Group,\n Select2Option,\n Select2RemoveEvent,\n Select2ScrollEvent,\n Select2SearchEvent,\n Select2UpdateEvent,\n Select2UpdateValue,\n Select2Value,\n} from './select2-interfaces';\nimport { Select2Utils } from './select2-utils';\n\nlet nextUniqueId = 0;\n\nconst displaySearchStatusList = ['default', 'hidden', 'always'];\n\n@Component({\n selector: 'select2',\n templateUrl: './select2.component.html',\n styleUrls: ['./select2.component.scss'],\n})\nexport class Select2 implements ControlValueAccessor, OnInit, OnDestroy, DoCheck, AfterViewInit {\n _data: Select2Data;\n\n /** data of options & optiongrps */\n @Input() set data(data: Select2Data) {\n this._data = data;\n this.updateFilteredData();\n }\n @Input() minCharForSearch = 0;\n @Input() displaySearchStatus: 'default' | 'hidden' | 'always';\n @Input() placeholder: string;\n @Input() customSearchEnabled: boolean;\n @Input() limitSelection = 0;\n @Input() listPosition: 'above' | 'below' | 'auto' = 'below';\n\n @Input()\n get multiple(): any {\n return this._multiple;\n }\n set multiple(value: any) {\n this._multiple = this._coerceBooleanProperty(value);\n this.ngOnInit();\n }\n\n /** use the material style */\n @Input()\n get overlay(): any {\n return this._overlay;\n }\n set overlay(value: any) {\n this._overlay = this._coerceBooleanProperty(value);\n }\n\n /** use the material style */\n @Input() styleMode: 'material' | 'noStyle' | 'default' = 'default';\n\n /** message when no result */\n @Input() noResultMessage: string;\n\n /** maximum results limit (0 = no limit) */\n @Input() maxResults = 0;\n\n /** message when maximum results */\n @Input() maxResultsMessage = 'Too many results…';\n\n /** infinite scroll distance */\n @Input() infiniteScrollDistance = 1.5;\n\n /** infinite scroll distance */\n @Input() infiniteScrollThrottle = 150;\n\n /** infinite scroll activated */\n @Input()\n get infiniteScroll(): any {\n return this._infiniteScroll;\n }\n set infiniteScroll(value: any) {\n this._infiniteScroll = this._coerceBooleanProperty(value);\n }\n\n /** auto create if not existe */\n @Input()\n get autoCreate(): any {\n return this._autoCreate;\n }\n set autoCreate(value: any) {\n this._autoCreate = this._coerceBooleanProperty(value);\n }\n\n /** no template for label selection */\n @Input()\n get noLabelTemplate(): any {\n return this._noLabelTemplate;\n }\n set noLabelTemplate(value: any) {\n this._noLabelTemplate = this._coerceBooleanProperty(value);\n }\n\n /** use it for change the pattern of the filter search */\n @Input() editPattern: (str: string) => string;\n\n /** template for formating */\n @Input() templates: TemplateRef<any> | { [key: string]: TemplateRef<any> };\n\n /** the max height of the results container when opening the select */\n @Input() resultMaxHeight = '200px';\n\n @Output() update = new EventEmitter<Select2UpdateEvent<Select2UpdateValue>>();\n @Output() open = new EventEmitter<Select2>();\n @Output() close = new EventEmitter<Select2>();\n @Output() focus = new EventEmitter<Select2>();\n @Output() blur = new EventEmitter<Select2>();\n @Output() search = new EventEmitter<Select2SearchEvent<Select2UpdateValue>>();\n @Output() scroll = new EventEmitter<Select2ScrollEvent>();\n @Output() removeOption = new EventEmitter<Select2RemoveEvent<Select2UpdateValue>>();\n\n option: Select2Option | Select2Option[] | null = null;\n isOpen = false;\n searchStyle: string;\n\n /** Whether the element is focused or not. */\n focused = false;\n\n filteredData: Select2Data;\n\n get select2Options() {\n return this.multiple ? (this.option as Select2Option[]) : null;\n }\n\n get select2Option() {\n return this.multiple ? null : (this.option as Select2Option);\n }\n\n get searchText() {\n return this.innerSearchText;\n }\n\n set searchText(text: string) {\n if (this.customSearchEnabled) {\n this.search.emit({\n component: this,\n value: this._value,\n search: text,\n });\n }\n this.innerSearchText = text;\n }\n\n /** minimal data of show the search field */\n @Input()\n get minCountForSearch(): number | string {\n return this._minCountForSearch;\n }\n\n set minCountForSearch(value: number | string) {\n this._minCountForSearch = value;\n this.updateSearchBox();\n }\n\n /** Unique id of the element. */\n @Input()\n @HostBinding('id')\n get id() {\n return this._id;\n }\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n /** Whether the element is required. */\n @Input()\n get required() {\n return this._required;\n }\n set required(value: any) {\n this._required = this._coerceBooleanProperty(value);\n }\n\n /** Whether selected items should be hidden. */\n @Input()\n get disabled() {\n return this._control ? this._control.disabled : this._disabled;\n }\n set disabled(value: any) {\n this._disabled = this._coerceBooleanProperty(value);\n }\n\n /** Whether items are hidden when has. */\n @Input()\n get hideSelectedItems() {\n return this._hideSelectedItems;\n }\n set hideSelectedItems(value: any) {\n this._hideSelectedItems = this._coerceBooleanProperty(value);\n }\n\n /** Whether the element is readonly. */\n @Input()\n get readonly() {\n return this._readonly;\n }\n set readonly(value: any) {\n this._readonly = this._coerceBooleanProperty(value);\n }\n\n /** The input element's value. */\n @Input()\n get value() {\n return this._value;\n }\n set value(value: Select2UpdateValue) {\n if (this.testValueChange(this._value, value)) {\n setTimeout(() => {\n this._value = value;\n this.writeValue(value);\n }, 10);\n }\n }\n\n /** Tab index for the select2 element. */\n @Input()\n get tabIndex(): number {\n return this.disabled ? -1 : this._tabIndex;\n }\n set tabIndex(value: number) {\n if (typeof value !== 'undefined') {\n this._tabIndex = value;\n }\n }\n\n /** reset with no selected value */\n @Input()\n get resettable() {\n return this._resettable;\n }\n set resettable(value: any) {\n this._resettable = this._coerceBooleanProperty(value);\n }\n\n @HostBinding('attr.aria-invalid')\n get ariaInvalid(): boolean {\n return this._isErrorState();\n }\n\n @HostBinding('class.material')\n get classMaterial(): boolean {\n return this.styleMode === 'material';\n }\n\n @HostBinding('class.nostyle')\n get classNostyle(): boolean {\n return this.styleMode === 'noStyle';\n }\n\n @HostBinding('class.select2-above')\n get select2above(): boolean {\n return !this.overlay ? this.listPosition === 'above' : this._isAbobeOverlay();\n }\n\n overlayWidth: number;\n overlayHeight: number;\n _triggerRect: DOMRect;\n _dropdownRect: DOMRect;\n\n get _positions(): ConnectedPosition[] {\n return this.listPosition === 'auto' ? undefined : null;\n }\n\n maxResultsExceeded: boolean;\n\n private _minCountForSearch?: number | string;\n\n @ViewChild(CdkConnectedOverlay) private cdkConnectedOverlay: CdkConnectedOverlay;\n @ViewChild('selection', { static: true }) private selection: ElementRef<HTMLElement>;\n @ViewChild('results') private resultContainer: ElementRef<HTMLElement>;\n @ViewChildren('result') private results: QueryList<ElementRef>;\n @ViewChild('searchInput') private searchInput: ElementRef<HTMLElement>;\n @ViewChild('dropdown') private dropdown: ElementRef<HTMLElement>;\n\n private hoveringValue: Select2Value | null | undefined = null;\n private innerSearchText = '';\n private isSearchboxHidden: boolean;\n\n private selectionElement: HTMLElement;\n\n private get resultsElement(): HTMLElement {\n return this.resultContainer?.nativeElement;\n }\n\n private _stateChanges = new Subject<void>();\n\n /** Tab index for the element. */\n private _tabIndex: number;\n\n private _disabled = false;\n private _required = false;\n private _readonly = false;\n private _multiple = false;\n private _overlay = false;\n private _resettable = false;\n private _hideSelectedItems = false;\n private _clickDetection = false;\n private _clickDetectionFc: (e: MouseEvent) => void;\n private _id: string;\n private _uid = `select2-${nextUniqueId++}`;\n private _value: Select2UpdateValue;\n private _previousNativeValue: Select2UpdateValue;\n private _infiniteScroll = true;\n private _autoCreate = true;\n private _noLabelTemplate = true;\n private _overlayPosition: VerticalConnectionPos;\n\n constructor(\n protected _viewportRuler: ViewportRuler,\n private _changeDetectorRef: ChangeDetectorRef,\n @Optional() private _parentForm: NgForm,\n @Optional() private _parentFormGroup: FormGroupDirective,\n @Self() @Optional() public _control: NgControl,\n @Attribute('tabindex') tabIndex: string,\n ) {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n this._tabIndex = parseInt(tabIndex, 10) || 0;\n\n if (this._control) {\n this._control.valueAccessor = this;\n }\n\n this._clickDetectionFc = this.clickDetection.bind(this);\n }\n\n /** View -> model callback called when select has been touched */\n private _onTouched = () => {\n // do nothing\n };\n\n /** View -> model callback called when value changes */\n private _onChange: (value: any) => void = () => {\n // do nothing\n };\n\n ngOnInit() {\n this._viewportRuler.change(100).subscribe(() => {\n if (this.isOpen) {\n this.triggerRect();\n }\n });\n\n const option = Select2Utils.getOptionsByValue(\n this._data,\n this._control ? this._control.value : this.value,\n this.multiple,\n );\n if (option !== null) {\n this.option = option;\n }\n if (!Array.isArray(option)) {\n this.hoveringValue = this.value as string | undefined;\n }\n this.updateSearchBox();\n }\n\n ngAfterViewInit() {\n this.cdkConnectedOverlay.positionChange.subscribe((posChange: ConnectedOverlayPositionChange) => {\n if (\n this.listPosition === 'auto' &&\n posChange.connectionPair?.originY &&\n this._overlayPosition !== posChange.connectionPair.originY\n ) {\n this.triggerRect();\n this._overlayPosition = posChange.connectionPair.originY;\n this._changeDetectorRef.detectChanges();\n }\n });\n\n this.selectionElement = this.selection.nativeElement;\n this.triggerRect();\n }\n\n ngDoCheck() {\n this.updateSearchBox();\n this._dirtyCheckNativeValue();\n if (this._triggerRect) {\n if (this.overlayWidth !== this._triggerRect.width) {\n this.overlayWidth = this._triggerRect.width;\n }\n if (this._dropdownRect?.height > 0 && this.overlayHeight !== this._dropdownRect.height) {\n this.overlayHeight = this.listPosition === 'auto' ? this._dropdownRect.height : 0;\n }\n }\n }\n\n ngOnDestroy() {\n window.document.body.removeEventListener('click', this._clickDetectionFc);\n }\n\n updateSearchBox() {\n const hidden = this.customSearchEnabled\n ? false\n : Select2Utils.isSearchboxHiddex(this._data, this._minCountForSearch);\n if (this.isSearchboxHidden !== hidden) {\n this.isSearchboxHidden = hidden;\n }\n }\n\n hideSearch(): boolean {\n const displaySearchStatus =\n displaySearchStatusList.indexOf(this.displaySearchStatus) > -1 ? this.displaySearchStatus : 'default';\n return (displaySearchStatus === 'default' && this.isSearchboxHidden) || displaySearchStatus === 'hidden';\n }\n\n getOptionStyle(option: Select2Option) {\n return (\n 'select2-results__option ' +\n (option.hide ? 'select2-results__option--hide ' : '') +\n (option.value === this.hoveringValue ? 'select2-results__option--highlighted ' : '') +\n (option.classes || '')\n );\n }\n\n mouseenter(option: Select2Option) {\n if (!option.disabled) {\n this.hoveringValue = option.value;\n }\n }\n\n click(option: Select2Option) {\n if (this.testSelection(option)) {\n this.select(option);\n }\n }\n\n reset(event: MouseEvent) {\n this.select(null);\n this.stopEvent(event);\n }\n\n prevChange(event: Event) {\n event.stopPropagation();\n }\n\n stopEvent(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n toggleOpenAndClose(focus = true, open?: boolean) {\n if (this.disabled) {\n return;\n }\n this._focus(focus);\n this.isOpen = open ?? !this.isOpen;\n\n if (this.isOpen) {\n this.innerSearchText = '';\n this.updateFilteredData();\n this._focusSearchboxOrResultsElement(focus);\n\n setTimeout(() => {\n if (this.option) {\n const option: Select2Option = this.option instanceof Array ? this.option[0] : this.option;\n this.updateScrollFromOption(option);\n } else if (this.resultsElement) {\n this.resultsElement.scrollTop = 0;\n }\n setTimeout(() => {\n this.triggerRect();\n this.cdkConnectedOverlay?.overlayRef?.updatePosition();\n }, 100);\n });\n this.open.emit(this);\n } else {\n this.close.emit(this);\n }\n\n if (this.isOpen && !this._clickDetection && focus) {\n setTimeout(() => {\n window.document.body.addEventListener('click', this._clickDetectionFc, false);\n this._clickDetection = true;\n }, timeout);\n }\n\n this._changeDetectorRef.markForCheck();\n }\n\n hasTemplate(option: Select2Option | Select2Group, defaut: string) {\n return (\n this.templates instanceof TemplateRef ||\n this.templates?.[option.templateId] instanceof TemplateRef ||\n this.templates?.[defaut] instanceof TemplateRef\n );\n }\n\n getTemplate(option: Select2Option | Select2Group, defaut: string) {\n return this.hasTemplate(option, defaut)\n ? this.templates[option.templateId] || this.templates[defaut] || this.templates\n : undefined;\n }\n\n triggerRect() {\n this._triggerRect = this.selectionElement.getBoundingClientRect();\n this._dropdownRect = this.dropdown?.nativeElement\n ? this.dropdown.nativeElement.getBoundingClientRect()\n : undefined;\n }\n\n private testSelection(option: Select2Option) {\n if (option.disabled) {\n return false;\n }\n\n return (\n !this.multiple ||\n !this.limitSelection ||\n (Array.isArray(this._value) && this._value.length < this.limitSelection)\n );\n }\n\n private testValueChange(value1: Select2UpdateValue, value2: Select2UpdateValue) {\n if (\n ((value1 === null || value1 === undefined) && (value2 === null || value2 === undefined)) ||\n value1 === value2\n ) {\n return false;\n }\n if (\n this.multiple &&\n (value1 as Select2Value[])?.length &&\n (value2 as Select2Value[])?.length &&\n (value1 as Select2Value[]).length === (value2 as Select2Value[]).length\n ) {\n for (const e1 of value1 as Select2Value[]) {\n const test = (value2 as Select2Value[]).indexOf(e1) > -1;\n if (!test) {\n return true;\n }\n }\n return false;\n }\n return true;\n }\n\n private updateFilteredData() {\n setTimeout(() => {\n let result = this._data;\n if (this.multiple && this.hideSelectedItems) {\n result = Select2Utils.getFilteredSelectedData(result, this.option);\n }\n\n if (!this.customSearchEnabled && this.searchText && this.searchText.length >= +this.minCharForSearch) {\n result = Select2Utils.getFilteredData(result, this.searchText, this.editPattern);\n }\n\n if (this.maxResults > 0) {\n const data = Select2Utils.getReduceData(result, +this.maxResults);\n result = data.result;\n this.maxResultsExceeded = data.reduce;\n } else {\n this.maxResultsExceeded = false;\n }\n\n if (Select2Utils.valueIsNotInFilteredData(result, this.hoveringValue)) {\n this.hoveringValue = Select2Utils.getFirstAvailableOption(result);\n }\n\n this.filteredData = result;\n this._changeDetectorRef.markForCheck();\n });\n }\n\n private clickDetection(e: MouseEvent) {\n if (!this.ifParentContainsClass(e.target as HTMLElement, 'selection')) {\n if (this.isOpen && !this.ifParentContainsClass(e.target as HTMLElement, 'select2-dropdown')) {\n this.toggleOpenAndClose();\n }\n if (!this.ifParentContainsId(e.target as HTMLElement, this._id)) {\n this.clickExit();\n }\n } else if (this.isOpen && !this.ifParentContainsId(e.target as HTMLElement, this._id)) {\n this.toggleOpenAndClose();\n this.clickExit();\n }\n }\n\n private clickExit() {\n this._focus(false);\n window.document.body.removeEventListener('click', this._clickDetectionFc);\n this._clickDetection = false;\n }\n\n private ifParentContainsClass(element: HTMLElement, cssClass: string): boolean {\n return this.getParentElementByClass(element, cssClass) !== null;\n }\n\n private ifParentContainsId(element: HTMLElement, id: string): boolean {\n return this.getParentElementById(element, id) !== null;\n }\n\n private getParentElementByClass(element: HTMLElement, cssClass: string): HTMLElement | null {\n return this.containClasses(element, cssClass.trim().split(/\\s+/))\n ? element\n : element.parentElement\n ? this.getParentElementByClass(element.parentElement, cssClass)\n : null;\n }\n\n private getParentElementById(element: HTMLElement, id: string): HTMLElement | null {\n return element.id === id\n ? element\n : element.parentElement\n ? this.getParentElementById(element.parentElement, id)\n : null;\n }\n\n private containClasses(element: HTMLElement, cssClasses: string[]): boolean {\n if (!element.classList) {\n return false;\n }\n for (const cssClass of cssClasses) {\n if (!element.classList.contains(cssClass)) {\n return false;\n }\n }\n return true;\n }\n\n focusin() {\n if (!this.disabled) {\n this._focus(true);\n }\n }\n\n focusout() {\n if (this.selectionElement && !this.selectionElement.classList.contains('select2-focused')) {\n this._focus(false);\n this._onTouched();\n }\n }\n\n select(option: Select2Option | null) {\n let value: any;\n if (option !== null) {\n if (this.multiple) {\n const options = this.option as Select2Option[];\n const index = options.findIndex(op => op.value === option.value);\n if (index === -1) {\n options.push(option);\n } else {\n options.splice(index, 1);\n }\n value = (this.option as Select2Option[]).map(op => op.value);\n } else {\n this.option = option;\n if (this.isOpen) {\n this.isOpen = false;\n this.close.emit(this);\n this.selectionElement?.focus();\n }\n value = this.option.value;\n }\n } else {\n this.option = null;\n }\n\n if (this.multiple && this.hideSelectedItems) {\n this.updateFilteredData();\n }\n\n if (this._control) {\n this._onChange(value);\n } else {\n this._value = value;\n }\n\n this.update.emit({\n component: this,\n value: value,\n options: Array.isArray(this.option) ? this.option : this.option ? [this.option] : null,\n });\n }\n\n keyDown(e: KeyboardEvent, create = false) {\n if (create && this._testKey(e, ['Enter', 13])) {\n this.createAndAdd(e);\n return;\n }\n if (this._testKey(e, ['ArrowDown', 40])) {\n this.moveDown();\n e.preventDefault();\n } else if (this._testKey(e, ['ArrowUp', 38])) {\n this.moveUp();\n e.preventDefault();\n } else if (this._testKey(e, ['Enter', 13])) {\n this.selectByEnter();\n e.preventDefault();\n } else if (this._testKey(e, ['Escape', 'Tab', 9, 27]) && this.isOpen) {\n this.toggleOpenAndClose();\n this._focus(false);\n }\n }\n\n openKey(e: KeyboardEvent, create = false) {\n if (create && this._testKey(e, ['Enter', 13])) {\n this.createAndAdd(e);\n return;\n }\n if (this._testKey(e, ['ArrowDown', 'ArrowUp', 'Enter', 40, 38, 13])) {\n this.toggleOpenAndClose();\n e.preventDefault();\n } else if (this._testKey(e, ['Escape', 'Tab', 9, 27])) {\n this._focus(false);\n this._onTouched();\n }\n }\n\n searchUpdate(e: Event) {\n this.searchText = (e.target as HTMLInputElement).value;\n this.updateFilteredData();\n }\n\n trackBy(_index: number, item: Select2Option): any {\n return item.value;\n }\n\n isSelected(option: Select2Option) {\n return Select2Utils.isSelected(this.option, option, this.multiple);\n }\n\n isDisabled(option: Select2Option) {\n return option.disabled ? 'true' : 'false';\n }\n\n removeSelection(e: MouseEvent | KeyboardEvent, option: Select2Option) {\n Select2Utils.removeSelection(this.option, option);\n\n if (this.multiple && this.hideSelectedItems) {\n this.updateFilteredData();\n }\n\n const value = (this.option as Select2Option[]).map(op => op.value);\n\n if (this._control) {\n this._onChange(value);\n } else {\n this._value = value;\n }\n\n this.update.emit({\n component: this,\n value: value,\n options: Array.isArray(this.option) ? this.option : this.option ? [this.option] : null,\n });\n this.removeOption.emit({\n component: this,\n value: value,\n removedOption: option,\n });\n\n e.preventDefault();\n e.stopPropagation();\n\n if (this.isOpen) {\n this._focusSearchboxOrResultsElement();\n }\n }\n\n /**\n * Sets the model value. Implemented as part of ControlValueAccessor.\n * @param value\n */\n writeValue(value: any) {\n this._setSelectionByValue(value);\n }\n\n /**\n * Saves a callback function to be invoked when the select's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the value changes.\n */\n registerOnChange(fn: (value: any) => void): void {\n this._onChange = fn;\n }\n\n /**\n * Saves a callback function to be invoked when the select is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the component has been touched.\n */\n registerOnTouched(fn: () => {}): void {\n this._onTouched = fn;\n }\n\n /**\n * Sets whether the component should be disabled.\n * Implemented as part of ControlValueAccessor.\n * @param isDisabled\n */\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n onScroll(way: 'up' | 'down') {\n this.scroll.emit({\n component: this,\n way,\n search: this.innerSearchText,\n });\n }\n\n _isErrorState(): boolean {\n const isInvalid = this._control?.invalid;\n const isTouched = this._control?.touched;\n const isSubmitted = this._parentFormGroup?.submitted || this._parentForm?.submitted;\n return !!(isInvalid && (isTouched || isSubmitted));\n }\n\n private addItem(value: string): Select2Option {\n let item = Select2Utils.getOptionByValue(this._data, value);\n if (!item) {\n item = {\n value,\n label: value,\n };\n this._data.push(item);\n }\n return item;\n }\n\n private createAndAdd(e: KeyboardEvent) {\n const value = (e.target as HTMLInputElement).value;\n if (value.trim()) {\n const item = this.addItem(value.trim());\n this.click(item);\n (e.target as HTMLInputElement).value = '';\n }\n this.stopEvent(e);\n }\n\n private moveUp() {\n this.updateScrollFromOption(Select2Utils.getPreviousOption(this.filteredData, this.hoveringValue));\n }\n\n private moveDown() {\n this.updateScrollFromOption(Select2Utils.getNextOption(this.filteredData, this.hoveringValue));\n }\n\n private updateScrollFromOption(option: Select2Option) {\n if (option) {\n this.hoveringValue = option.value;\n const domElement = this.results.find(r => r.nativeElement.innerText.trim() === option.label);\n if (domElement && this.resultsElement) {\n this.resultsElement.scrollTop = 0;\n const listClientRect = this.resultsElement.getBoundingClientRect();\n const optionClientRect = domElement.nativeElement.getBoundingClientRect();\n this.resultsElement.scrollTop = optionClientRect.top - listClientRect.top;\n }\n }\n }\n\n private selectByEnter() {\n if (this.hoveringValue) {\n const option = Select2Utils.getOptionByValue(this._data, this.hoveringValue);\n this.select(option);\n }\n }\n\n private _testKey(event: KeyboardEvent, refs: (number | string)[] = []): boolean {\n return this._isKey(this._getKey(event), refs);\n }\n\n private _getKey(event: KeyboardEvent): number | string {\n let code: number | string;\n\n if (event.key !== undefined) {\n code = event.key;\n } else if (event['keyIdentifier'] !== undefined) {\n code = event['keyIdentifier'];\n } else if (event['keyCode'] !== undefined) {\n code = event['keyCode'];\n } else {\n event.preventDefault();\n }\n\n return code;\n }\n\n private _isKey(code: number | string, refs: (number | string)[] = []): boolean {\n return refs && refs.length > 0 ? refs.indexOf(code) !== -1 : false;\n }\n\n /**\n * Sets the selected option based on a value. If no option can be\n * found with the designated value, the select trigger is cleared.\n */\n private _setSelectionByValue(value: any | any[]): void {\n if (this.option || (value !== undefined && value !== null)) {\n const isArray = Array.isArray(value);\n if (this.multiple && value && !isArray) {\n throw new Error('Non array value.');\n } else if (this._data) {\n if (this.multiple) {\n this.option = []; // if value is null, then empty option and return\n if (isArray) {\n // value is not null. Preselect value\n const selectedValues: any = Select2Utils.getOptionsByValue(this._data, value, this.multiple);\n selectedValues.map(item => this.select(item));\n }\n } else {\n this.select(Select2Utils.getOptionByValue(this._data, value));\n }\n } else if (this._control) {\n this._control.viewToModelUpdate(value);\n }\n\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /** Does some manual dirty checking on the native input `value` property. */\n private _dirtyCheckNativeValue() {\n const newValue = this.value;\n\n if (this._previousNativeValue !== newValue) {\n this._previousNativeValue = newValue;\n this._stateChanges.next();\n }\n }\n\n private _coerceBooleanProperty(value: any): boolean {\n return value != null && `${value}` !== 'false';\n }\n\n private _focusSearchboxOrResultsElement(focus = true) {\n if (!this.isSearchboxHidden) {\n setTimeout(() => {\n if (this.searchInput && this.searchInput.nativeElement && focus) {\n this.searchInput.nativeElement.focus();\n }\n });\n } else if (this.resultsElement) {\n this.resultsElement.focus();\n }\n }\n\n private _focus(state: boolean) {\n if (!state && this.focused) {\n this.focused = state;\n this.blur.emit(this);\n } else if (state && !this.focused) {\n this.focused = state;\n this.focus.emit(this);\n }\n }\n\n private _isAbobeOverlay(): boolean {\n return this.overlay && this._overlayPosition && this.listPosition === 'auto'\n ? this._overlayPosition === 'top'\n : this.listPosition === 'above';\n }\n}\n","<div class=\"select2-label\" (click)=\"toggleOpenAndClose()\">\n <ng-content select=\"select2-label\"></ng-content>\n <span *ngIf=\"required\" class=\"select2-required\"></span>\n</div>\n<div\n class=\"select2 select2-container select2-container--default\"\n [class.select2-container--focus]=\"focused\"\n [class.select2-container--below]=\"!select2above\"\n [class.select2-container--above]=\"select2above\"\n [class.select2-container--open]=\"isOpen\"\n [class.select2-container--disabled]=\"disabled\"\n>\n <div\n class=\"selection\"\n #selection\n #trigger=\"cdkOverlayOrigin\"\n [tabindex]=\"!this.isOpen ? tabIndex : '-1'\"\n (click)=\"toggleOpenAndClose()\"\n (focus)=\"focusin()\"\n (blur)=\"focusout()\"\n (keydown)=\"openKey($event)\"\n cdkOverlayOrigin\n [class.select2-focused]=\"focused\"\n >\n <div\n class=\"select2-selection\"\n [class.select2-selection--multiple]=\"multiple\"\n [class.select2-selection--single]=\"!multiple\"\n role=\"combobox\"\n >\n <span *ngIf=\"!multiple\" class=\"select2-selection__rendered\" [title]=\"select2Option?.label || ''\">\n <span *ngIf=\"!select2Option\"> </span>\n <ng-container *ngIf=\"select2Option\">\n <span\n *ngIf=\"!hasTemplate(select2Option, 'option') || noLabelTemplate; else template\"\n [innerHTML]=\"select2Option.label\"\n ></span>\n <ng-template #template>\n <ng-container *ngTemplateOutlet=\"getTemplate(select2Option, 'option'); context: select2Option\">\n </ng-container>\n </ng-template>\n </ng-container>\n <span [class.select2-selection__placeholder__option]=\"option\" class=\"select2-selection__placeholder\">{{\n placeholder\n }}</span>\n </span>\n <span\n (click)=\"reset($event)\"\n *ngIf=\"!multiple && resettable && select2Option && !(disabled || readonly)\"\n class=\"select2-selection__reset\"\n role=\"presentation\"\n >×</span\n >\n <span *ngIf=\"!multiple\" class=\"select2-selection__arrow\" role=\"presentation\"> </span>\n <ul *ngIf=\"multiple\" class=\"select2-selection__rendered\">\n <span\n *ngIf=\"!autoCreate\"\n [class.select2-selection__placeholder__option]=\"select2Options?.length > 0\"\n class=\"select2-selection__placeholder\"\n >{{ placeholder }}</span\n >\n <li\n *ngFor=\"let op of option; trackBy: trackBy\"\n class=\"select2-selection__choice\"\n [title]=\"op.label\"\n tabindex=\"0\"\n (keydown.enter)=\"removeSelection($event, op)\"\n >\n <span\n *ngIf=\"!(disabled || readonly)\"\n (click)=\"removeSelection($event, op)\"\n class=\"select2-selection__choice__remove\"\n role=\"presentation\"\n >×</span\n >\n <span [innerHTML]=\"op.label\"></span>\n </li>\n <li\n *ngIf=\"autoCreate\"\n class=\"select2-selection__auto-create\"\n (focus)=\"stopEvent($event)\"\n (blur)=\"stopEvent($event)\"\n >\n <input\n [id]=\"id + '-create-field'\"\n (click)=\"toggleOpenAndClose(false, true); stopEvent($event)\"\n (keydown)=\"keyDown($event, true)\"\n (keyup)=\"searchUpdate($event)\"\n (change)=\"prevChange($event)\"\n class=\"select2-create__field\"\n type=\"search\"\n role=\"textbox\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"false\"\n />\n </li>\n </ul>\n </div>\n </div>\n <ng-container *ngIf=\"!overlay\">\n <ng-container *ngTemplateOutlet=\"containerTemplate\"></ng-container>\n </ng-container>\n\n <div class=\"select2-subscript-wrapper\">\n <ng-content select=\"select2-hint\"></ng-content>\n </div>\n</div>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayBackdropClass=\"select2-overlay-backdrop\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"this.isOpen && overlay\"\n [cdkConnectedOverlayMinWidth]=\"overlayWidth\"\n [cdkConnectedOverlayHeight]=\"overlayHeight\"\n [cdkConnectedOverlayPositions]=\"_positions\"\n (backdropClick)=\"toggleOpenAndClose()\"\n>\n <ng-container *ngTemplateOutlet=\"containerTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #containerTemplate>\n <div\n class=\"select2-container select2-container--default select2-container-dropdown\"\n [class.select2-container--open]=\"isOpen\"\n [class.select2-overlay]=\"overlay\"\n [class.select2-position-auto]=\"listPosition === 'auto'\"\n >\n <div\n #dropdown\n class=\"select2-dropdown\"\n [class.select2-dropdown--below]=\"!select2above\"\n [class.select2-dropdown--above]=\"select2above\"\n >\n <div class=\"select2-search select2-search--dropdown\" [class.select2-search--hide]=\"hideSearch()\">\n <input\n #searchInput\n [id]=\"id + '-search-field'\"\n [value]=\"searchText\"\n (keydown)=\"keyDown($event)\"\n (keyup)=\"searchUpdate($event)\"\n (change)=\"prevChange($event)\"\n class=\"select2-search__field\"\n type=\"search\"\n role=\"textbox\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"false\"\n [attr.tabindex]=\"this.isOpen ? tabIndex : '-1'\"\n />\n </div>\n <div class=\"select2-results\">\n <ul\n #results\n class=\"select2-results__options\"\n [style.max-height]=\"resultMaxHeight\"\n role=\"tree\"\n tabindex=\"-1\"\n infiniteScroll\n [infiniteScrollDisabled]=\"!infiniteScroll && !isOpen\"\n [infiniteScrollDistance]=\"infiniteScrollDistance\"\n [infiniteScrollThrottle]=\"infiniteScrollThrottle\"\n [infiniteScrollContainer]=\"results\"\n (scrolled)=\"onScroll('down')\"\n (scrolledUp)=\"onScroll('up')\"\n (keydown)=\"keyDown($event)\"\n >\n <ng-container *ngFor=\"let groupOrOption of filteredData; index as i; trackBy: trackBy\">\n <li *ngIf=\"groupOrOption.options\" class=\"select2-results__option\" role=\"group\">\n <strong\n *ngIf=\"!hasTemplate(groupOrOption, 'group'); else optGroup\"\n [attr.class]=\"\n 'select2-results__group' +\n (groupOrOption.classes ? ' ' + groupOrOption.classes : '')\n \"\n [innerHTML]=\"groupOrOption.label\"\n ></strong>\n <ng-template #optGroup>\n <ng-container\n *ngTemplateOutlet=\"getTemplate(groupOrOption, 'group'); context: groupOrOption\"\n >\n </ng-container>\n </ng-template>\n\n <ul class=\"select2-results__options select2-results__options--nested\">\n <li\n *ngFor=\"let option of groupOrOption.options; index as j; trackBy: trackBy\"\n #result\n [id]=\"option.id || id + '-option-' + i + '-' + j\"\n [class]=\"getOptionStyle(option)\"\n role=\"treeitem\"\n [attr.aria-selected]=\"isSelected(option)\"\n [attr.aria-disabled]=\"isDisabled(option)\"\n (mouseenter)=\"mouseenter(option)\"\n (click)=\"click(option)\"\n >\n <div\n *ngIf=\"!hasTemplate(option, 'option'); else liGroup\"\n class=\"select2-label-content\"\n [innerHTML]=\"option.label\"\n ></div>\n <ng-template #liGroup>\n <ng-container\n *ngTemplateOutlet=\"getTemplate(option, 'option'); context: option\"\n >\n </ng-container>\n </ng-template>\n </li>\n </ul>\n </li>\n <li\n *ngIf=\"!groupOrOption.options\"\n #result\n [id]=\"groupOrOption.id || id + '-option-' + i\"\n [class]=\"getOptionStyle(groupOrOption)\"\n role=\"treeitem\"\n [attr.aria-selected]=\"isSelected(groupOrOption)\"\n [attr.aria-disabled]=\"isDisabled(groupOrOption)\"\n (mouseenter)=\"mouseenter(groupOrOption)\"\n (click)=\"click(groupOrOption)\"\n >\n <div\n *ngIf=\"!hasTemplate(groupOrOption, 'option'); else li\"\n [innerHTML]=\"groupOrOption.label\"\n class=\"select2-label-content\"\n ></div>\n <ng-template #li>\n <ng-container\n *ngTemplateOutlet=\"getTemplate(groupOrOption, 'option'); context: groupOrOption\"\n >\n </ng-container>\n </ng-template>\n </li>\n </ng-container>\n <li\n class=\"select2-no-result select2-results__option\"\n *ngIf=\"!filteredData?.length && noResultMessage\"\n [innerHTML]=\"noResultMessage\"\n ></li>\n <li\n class=\"select2-too-much-result select2-results__option\"\n *ngIf=\"maxResultsExceeded\"\n [innerHTML]=\"maxResultsMessage\"\n ></li>\n </ul>\n </div>\n </div>\n </div>\n</ng-template>\n","import { Directive } from '@angular/core';\n\n\n@Directive({ selector: 'select2-hint' })\nexport class Select2Hint {}\n","import { Directive } from '@angular/core';\n\n\n@Directive({ selector: 'select2-label' })\nexport class Select2Label {}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\n\nimport { Select2Hint } from './select2-hint.component';\nimport { Select2Label } from './select2-label.component';\nimport { Select2 } from './select2.component';\n\n\n@NgModule({\n imports: [CommonModule, FormsModule, OverlayModule, ReactiveFormsModule, InfiniteScrollModule],\n declarations: [Select2Hint, Select2Label, Select2],\n exports: [FormsModule, ReactiveFormsModule, Select2Hint, Select2Label, Select2],\n})\nexport class Select2Module {}\n","/*\n * Public API Surface of ng-select2-component\n */\n\nexport * from './lib/select2-interfaces';\nexport * from './lib/select2-const';\nexport * from './lib/select2.component';\nexport * from './lib/select2.component';\nexport * from './lib/select2-hint.component';\nexport * from './lib/select2-label.component';\nexport * from './lib/select2-utils';\nexport * from './lib/select2.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-select2-component.mjs","sources":["../../../projects/ng-select2-component/src/lib/select2-const.ts","../../../projects/ng-select2-component/src/lib/select2-utils.ts","../../../projects/ng-select2-component/src/lib/select2.component.ts","../../../projects/ng-select2-component/src/lib/select2.component.html","../../../projects/ng-select2-component/src/lib/select2-hint.component.ts","../../../projects/ng-select2-component/src/lib/select2-label.component.ts","../../../projects/ng-select2-component/src/lib/select2.module.ts","../../../projects/ng-select2-component/src/public_api.ts","../../../projects/ng-select2-component/src/ng-select2-component.ts"],"sourcesContent":["export const timeout = 200;\n\nexport const unicodePatterns: { l: string; s: RegExp }[] = [\n { l: 'a', s: /[ⓐaẚàáâầấẫẩãāăằắẵẳȧǡäǟảåǻǎȁȃạậặḁąⱥɐ]/gi },\n { l: 'aa', s: /ꜳ/gi },\n { l: 'ae', s: /[æǽǣ]/gi },\n { l: 'ao', s: /ꜵ/gi },\n { l: 'au', s: /ꜷ/gi },\n { l: 'av', s: /[ꜹꜻ]/gi },\n { l: 'ay', s: /ꜽ/gi },\n { l: 'b', s: /[ⓑbḃḅḇƀƃɓ]/gi },\n { l: 'c', s: /[ⓒcćĉċčçḉƈȼꜿↄ]/gi },\n { l: 'd', s: /[ⓓdḋďḍḑḓḏđƌɖɗꝺ]/gi },\n { l: 'dz', s: /[dzdž]/gi },\n { l: 'e', s: /[ⓔeèéêềếễểẽēḕḗĕėëẻěȅȇẹệȩḝęḙḛɇɛǝ]/gi },\n { l: 'f', s: /[ⓕfḟƒꝼ]/gi },\n { l: 'g', s: /[ⓖgǵĝḡğġǧģǥɠꞡᵹꝿ]/gi },\n { l: 'h', s: /[ⓗhĥḣḧȟḥḩḫẖħⱨⱶɥ]/gi },\n { l: 'hv', s: /ƕ/gi },\n { l: 'i', s: /[ⓘiìíîĩīĭİïḯỉǐȉȋịįḭɨı]/gi },\n { l: 'j', s: /[ⓙjĵǰɉ]/gi },\n { l: 'k', s: /[ⓚkḱǩḳķḵƙⱪꝁꝃꝅꞣ]/gi },\n { l: 'l', s: /[ⓛlŀĺľḷḹļḽḻſłƚɫⱡꝉꞁꝇꝆ]/gi },\n { l: 'lj', s: /lj/gi },\n { l: 'm', s: /[ⓜmḿṁṃɱɯ]/gi },\n { l: 'n', s: /[ⓝnǹńñṅňṇņṋṉƞɲʼnꞑꞥ]/gi },\n { l: 'nj', s: /nj/gi },\n { l: 'o', s: /[ⓞoòóôồốỗổõṍȭṏōṑṓŏȯȱöȫỏőǒȍȏơờớỡởợọộǫǭøǿɔƟꝋꝍɵ]/gi },\n { l: 'oi', s: /ƣ/gi },\n { l: 'oe', s: /œ/gi },\n { l: 'oo', s: /ꝏ/gi },\n { l: 'ou', s: /ȣ/gi },\n { l: 'p', s: /[ⓟpṕṗƥᵽꝑꝓꝕ]/gi },\n { l: 'q', s: /[ⓠqɋꝗꝙ]/gi },\n { l: 'r', s: /[ⓡrŕṙřȑȓṛṝŗṟɍɽꝛꞧꞃ]/gi },\n { l: 's', s: /[ⓢsßẞśṥŝṡšṧṣṩșşȿꞩꞅẛ]/gi },\n { l: 't', s: /[ⓣtṫẗťṭțţṱṯŧƭʈⱦꞇ]/gi },\n { l: 'tz', s: /ꜩ/gi },\n { l: 'u', s: /[ⓤuùúûũṹūṻŭüǜǘǖǚủůűǔȕȗưừứữửựụṳųṷṵʉ]/gi },\n { l: 'v', s: /[ⓥvṽṿʋꝟʌ]/gi },\n { l: 'vy', s: /ꝡ/gi },\n { l: 'w', s: /[ⓦwẁẃŵẇẅẘẉⱳ]/gi },\n { l: 'x', s: /[ⓧxẋẍ]/gi },\n { l: 'y', s: /[ⓨyỳýŷỹȳẏÿỷẙỵƴɏỿ]/gi },\n { l: 'z', s: /[ⓩzźẑżžẓẕƶȥɀⱬꝣ]/gi },\n];\n\nexport const defaultMinCountForSearch = 6;\n\nexport const protectRegexp = new RegExp('[\\\\-\\\\[\\\\]\\\\/\\\\{\\\\}\\\\(\\\\)\\\\*\\\\+\\\\?\\\\.\\\\\\\\\\\\^\\\\$\\\\|]', 'g');\n","import { defaultMinCountForSearch, protectRegexp, unicodePatterns } from './select2-const';\nimport { Select2Data, Select2Group, Select2Option, Select2UpdateValue, Select2Value } from './select2-interfaces';\n\n\nexport class Select2Utils {\n static getOptionByValue(data: Select2Data, value: Select2Value | null | undefined) {\n if (Array.isArray(data)) {\n for (const groupOrOption of data) {\n const options = (groupOrOption as Select2Group).options;\n if (options) {\n for (const option of options) {\n if (option.value === value) {\n return option;\n }\n }\n } else if ((groupOrOption as Select2Option).value === value) {\n return groupOrOption as Select2Option;\n }\n }\n }\n return null;\n }\n\n static getOptionsByValue(\n data: Select2Data,\n value: Select2UpdateValue | null | undefined,\n multiple: boolean | null | undefined,\n ) {\n if (multiple) {\n const values: Select2Value[] = Array.isArray(value) ? value : [];\n const result: Select2Option[] = [];\n for (const v of values) {\n const option = Select2Utils.getOptionByValue(data, v);\n if (option) {\n result.push(option);\n }\n }\n return result;\n }\n return Select2Utils.getOptionByValue(data, value as Select2Value | null | undefined);\n }\n\n static getFirstAvailableOption(data: Select2Data) {\n if (Array.isArray(data)) {\n for (const groupOrOption of data) {\n const options = (groupOrOption as Select2Group).options;\n if (options) {\n for (const option of options) {\n if (!option.disabled) {\n return option.value;\n }\n }\n } else {\n const option = groupOrOption as Select2Option;\n if (!option.disabled) {\n return option.value;\n }\n }\n }\n }\n return null;\n }\n\n static valueIsNotInFilteredData(filteredData: Select2Data, value: Select2Value | null | undefined) {\n if (Select2Utils.isNullOrUndefined(value)) {\n return true;\n }\n for (const groupOrOption of filteredData) {\n const options = (groupOrOption as Select2Group).options;\n if (options) {\n for (const option of options) {\n if (option.value === value) {\n return false;\n }\n }\n } else if ((groupOrOption as Select2Option).value === value) {\n return false;\n }\n }\n return true;\n }\n\n // eslint-disable-next-line\n static getPreviousOption(filteredData: Select2Data, hoveringValue: Select2Value | null | undefined) {\n let findIt = Select2Utils.isNullOrUndefined(hoveringValue);\n for (let i = filteredData.length - 1; i >= 0; i--) {\n const groupOrOption = filteredData[i];\n const options = (groupOrOption as Select2Group).options;\n if (options) {\n for (let j = options.length - 1; j >= 0; j--) {\n const option = options[j];\n if (findIt && !option.disabled && !option.hide) {\n return option;\n }\n if (!findIt) {\n findIt = option.value === hoveringValue;\n }\n }\n } else {\n const option = groupOrOption as Select2Option;\n if (findIt && !option.disabled && !option.hide) {\n return option;\n }\n if (!findIt) {\n findIt = option.value === hoveringValue;\n }\n }\n }\n return null;\n }\n // eslint-disable-next-line\n static getNextOption(filteredData: Select2Data, hoveringValue: Select2Value | null | undefined) {\n let findIt = Select2Utils.isNullOrUndefined(hoveringValue);\n for (const groupOrOption of filteredData) {\n const options = (groupOrOption as Select2Group).options;\n if (options) {\n for (const option of options) {\n if (findIt) {\n if (!option.disabled && !option.hide) {\n return option;\n }\n } else if (!findIt) {\n findIt = option.value === hoveringValue;\n }\n }\n } else {\n const option = groupOrOption as Select2Option;\n if (findIt) {\n if (!option.disabled && !option.hide) {\n return option;\n }\n } else if (!findIt) {\n findIt = option.value === hoveringValue;\n }\n }\n }\n return null;\n }\n\n static getReduceData(data: Select2Data, maxResults: number = 0): { result: Select2Data; reduce: boolean } {\n if (maxResults > 0) {\n let counter = 0;\n const result: Select2Data = [];\n // debugger;\n\n for (const groupOrOption of data) {\n const options = (groupOrOption as Select2Group).options;\n if (options) {\n const group = {\n ...groupOrOption,\n options: [],\n };\n result.push(group);\n for (const item of options) {\n group.options.push(item);\n counter++;\n if (counter === maxResults) {\n return { result, reduce: true };\n }\n }\n } else {\n result.push(groupOrOption);\n counter++;\n }\n if (counter === maxResults) {\n return { result, reduce: true };\n }\n }\n return { result, reduce: false };\n } else {\n return { result: data, reduce: false };\n }\n }\n\n static getFilteredData(\n data: Select2Data,\n searchText: string | null,\n editPattern?: (str: string) => string,\n ): Select2Data {\n if (searchText) {\n const result: Select2Data = [];\n for (const groupOrOption of data) {\n const options = (groupOrOption as Select2Group).options;\n if (options) {\n if (options.some(group => Select2Utils.containSearchText(group.label, searchText, editPattern))) {\n const filteredOptions = options.filter(group =>\n Select2Utils.containSearchText(group.label, searchText, editPattern),\n );\n result.push({\n ...groupOrOption,\n options: filteredOptions,\n });\n }\n } else if (Select2Utils.containSearchText(groupOrOption.label, searchText, editPattern)) {\n result.push(groupOrOption);\n }\n }\n return result;\n } else {\n return data;\n }\n }\n\n static getFilteredSelectedData(\n data: Select2Data,\n selectedOptions: Select2Option | Select2Option[] | null,\n ): Select2Data {\n const result: Select2Data = [];\n for (const groupOrOption of data) {\n const options = (groupOrOption as Select2Group).options;\n if (options) {\n const filteredOptions = options.filter(\n group => Select2Utils.isSelected(selectedOptions, group, true) === 'false',\n );\n if (filteredOptions.length) {\n result.push({\n ...groupOrOption,\n options: filteredOptions,\n });\n }\n } else if (Select2Utils.isSelected(selectedOptions, groupOrOption as Select2Option, true) === 'false') {\n result.push(groupOrOption);\n }\n }\n return result;\n }\n\n static isSearchboxHiddex(data: Select2Data, minCountForSearch?: number | string): boolean {\n if (\n minCountForSearch === '' ||\n minCountForSearch === undefined ||\n minCountForSearch === null ||\n isNaN(+minCountForSearch)\n ) {\n minCountForSearch = defaultMinCountForSearch;\n }\n const optionCount = Select2Utils.getOptionsCount(data);\n return optionCount < +minCountForSearch;\n }\n\n static isSelected(\n options: Select2Option | Select2Option[] | null,\n option: Select2Option,\n multiple: boolean | null | undefined,\n ) {\n return multiple\n ? options && (options as Select2Option[]).some(op => op.value === option.value)\n ? 'true'\n : 'false'\n : options && option.value === (options as Select2Option).value\n ? 'true'\n : 'false';\n }\n\n static removeSelection(options: Select2Option | Select2Option[] | null, option: Select2Option) {\n for (let i = 0; i < (options as Select2Option[]).length; i++) {\n if ((options as Select2Option[])[i].value === option.value) {\n (options as Select2Option[]).splice(i, 1);\n return;\n }\n }\n }\n\n private static getOptionsCount(data: Select2Data) {\n let count = 0;\n if (Array.isArray(data)) {\n for (const groupOrOption of data) {\n const options = (groupOrOption as Select2Group).options;\n if (options) {\n count += options.length;\n } else {\n count++;\n }\n }\n }\n return count;\n }\n\n private static isNullOrUndefined(value: any) {\n return value === null || value === undefined;\n }\n\n private static containSearchText(\n label: string,\n searchText: string | null,\n editPattern: ((str: string) => string) | undefined,\n ): boolean {\n return searchText\n ? Select2Utils.formatSansUnicode(label).match(\n new RegExp(Select2Utils.formatPattern(searchText, editPattern), 'i'),\n ) !== null\n : true;\n }\n\n private static protectPattern(str: string): string {\n return str.replace(protectRegexp, '\\\\$&');\n }\n\n private static formatSansUnicode(str: string): string {\n for (const unicodePattern of unicodePatterns) {\n str = str.replace(unicodePattern.s, unicodePattern.l);\n }\n return str;\n }\n\n private static formatPattern(str: string, editPattern: ((str: string) => string) | undefined): string {\n str = Select2Utils.formatSansUnicode(Select2Utils.protectPattern(str));\n\n if (editPattern && typeof editPattern === 'function') {\n str = editPattern(str);\n }\n return str;\n }\n}\n","import {\n CdkConnectedOverlay,\n ConnectedOverlayPositionChange,\n ConnectedPosition,\n VerticalConnectionPos,\n} from '@angular/cdk/overlay';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport type { ElementRef, QueryList } from '@angular/core';\nimport {\n AfterViewInit,\n Attribute,\n ChangeDetectorRef,\n Component,\n DoCheck,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Optional,\n Output,\n Self,\n TemplateRef,\n ViewChild,\n ViewChildren,\n booleanAttribute,\n numberAttribute,\n} from '@angular/core';\nimport { ControlValueAccessor, FormGroupDirective, NgControl, NgForm } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\n\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n Select2Data,\n Select2Group,\n Select2Option,\n Select2RemoveEvent,\n Select2ScrollEvent,\n Select2SearchEvent,\n Select2UpdateEvent,\n Select2UpdateValue,\n Select2Value,\n} from './select2-interfaces';\nimport { Select2Utils } from './select2-utils';\n\nlet nextUniqueId = 0;\n\nconst displaySearchStatusList = ['default', 'hidden', 'always'];\n\n@Component({\n selector: 'select2',\n templateUrl: './select2.component.html',\n styleUrls: ['./select2.component.scss'],\n})\nexport class Select2 implements ControlValueAccessor, OnInit, DoCheck, AfterViewInit {\n _data: Select2Data;\n\n /** data of options & optiongrps */\n @Input({ required: true }) set data(data: Select2Data) {\n this._data = data;\n this.updateFilteredData();\n }\n @Input({ transform: numberAttribute }) minCharForSearch = 0;\n @Input() displaySearchStatus: 'default' | 'hidden' | 'always';\n @Input() placeholder: string;\n\n @Input({ transform: numberAttribute }) limitSelection = 0;\n @Input() listPosition: 'above' | 'below' | 'auto' = 'below';\n\n @Input()\n get multiple(): any {\n return this._multiple;\n }\n set multiple(value: any) {\n this._multiple = coerceBooleanProperty(value);\n this.ngOnInit();\n }\n\n /** use the material style */\n @Input({ transform: booleanAttribute })\n overlay = false;\n\n /** use the material style */\n @Input() styleMode: 'material' | 'noStyle' | 'default' = 'default';\n\n /** message when no result */\n @Input() noResultMessage: string;\n\n /** maximum results limit (0 = no limit) */\n @Input({ transform: numberAttribute }) maxResults = 0;\n\n /** message when maximum results */\n @Input() maxResultsMessage = 'Too many results…';\n\n /** infinite scroll distance */\n @Input({ transform: numberAttribute }) infiniteScrollDistance = 1.5;\n\n /** infinite scroll distance */\n @Input({ transform: numberAttribute }) infiniteScrollThrottle = 150;\n\n /** infinite scroll activated */\n @Input({ transform: booleanAttribute }) infiniteScroll = false;\n\n /** auto create if not existe */\n @Input({ transform: booleanAttribute }) autoCreate = false;\n\n /** no template for label selection */\n @Input({ transform: booleanAttribute }) noLabelTemplate = false;\n\n /** use it for change the pattern of the filter search */\n @Input() editPattern: (str: string) => string;\n\n /** template for formating */\n @Input() templates: TemplateRef<any> | { [key: string]: TemplateRef<any> };\n\n /** the max height of the results container when opening the select */\n @Input() resultMaxHeight = '200px';\n\n /** Active Search event */\n @Input({ transform: booleanAttribute }) customSearchEnabled = false;\n\n /** minimal data of show the search field */\n @Input({ transform: numberAttribute })\n get minCountForSearch(): number {\n return this._minCountForSearch;\n }\n\n set minCountForSearch(value: number) {\n this._minCountForSearch = value;\n this.updateSearchBox();\n }\n\n /** Unique id of the element. */\n @Input()\n @HostBinding('id')\n get id() {\n return this._id;\n }\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n /** Whether the element is required. */\n @Input({ transform: booleanAttribute }) required = false;\n\n /** Whether selected items should be hidden. */\n @Input({ transform: booleanAttribute })\n get disabled() {\n return this._control ? this._control.disabled : this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = value;\n }\n\n /** Whether items are hidden when has. */\n @Input({ transform: booleanAttribute }) hideSelectedItems = false;\n\n /** Whether the element is readonly. */\n @Input({ transform: booleanAttribute }) readonly = false;\n\n /** The input element's value. */\n @Input()\n get value() {\n return this._value;\n }\n set value(value: Select2UpdateValue) {\n if (this.testValueChange(this._value, value)) {\n setTimeout(() => {\n this._value = value;\n this.writeValue(value);\n }, 10);\n }\n }\n\n /** Tab index for the select2 element. */\n @Input({ transform: numberAttribute })\n get tabIndex(): number {\n return this.disabled ? -1 : this._tabIndex;\n }\n set tabIndex(value: number) {\n this._tabIndex = value;\n }\n\n /** reset with no selected value */\n @Input({ transform: booleanAttribute })\n resettable = false;\n\n @Output() update = new EventEmitter<Select2UpdateEvent<Select2UpdateValue>>();\n @Output() open = new EventEmitter<Select2>();\n @Output() close = new EventEmitter<Select2>();\n @Output() focus = new EventEmitter<Select2>();\n @Output() blur = new EventEmitter<Select2>();\n @Output() search = new EventEmitter<Select2SearchEvent<Select2UpdateValue>>();\n @Output() scroll = new EventEmitter<Select2ScrollEvent>();\n @Output() removeOption = new EventEmitter<Select2RemoveEvent<Select2UpdateValue>>();\n\n option: Select2Option | Select2Option[] | null = null;\n isOpen = false;\n searchStyle: string;\n\n /** Whether the element is focused or not. */\n focused = false;\n\n filteredData: Select2Data;\n\n get select2Options() {\n return this.multiple ? (this.option as Select2Option[]) : null;\n }\n\n get select2Option() {\n return this.multiple ? null : (this.option as Select2Option);\n }\n\n get searchText() {\n return this.innerSearchText;\n }\n\n set searchText(text: string) {\n this.innerSearchText = text;\n }\n\n @HostBinding('attr.aria-invalid')\n get ariaInvalid(): boolean {\n return this._isErrorState();\n }\n\n @HostBinding('class.material')\n get classMaterial(): boolean {\n return this.styleMode === 'material';\n }\n\n @HostBinding('class.nostyle')\n get classNostyle(): boolean {\n return this.styleMode === 'noStyle';\n }\n\n @HostBinding('class.select2-above')\n get select2above(): boolean {\n return !this.overlay ? this.listPosition === 'above' : this._isAbobeOverlay();\n }\n\n overlayWidth: number;\n overlayHeight: number;\n _triggerRect: DOMRect;\n _dropdownRect: DOMRect;\n\n get _positions(): ConnectedPosition[] {\n return this.listPosition === 'auto' ? undefined : null;\n }\n\n maxResultsExceeded: boolean;\n\n private _customSearchEnabled: boolean;\n private _minCountForSearch?: number;\n\n @ViewChild(CdkConnectedOverlay) private cdkConnectedOverlay: CdkConnectedOverlay;\n @ViewChild('selection', { static: true }) private selection: ElementRef<HTMLElement>;\n @ViewChild('results') private resultContainer: ElementRef<HTMLElement>;\n @ViewChildren('result') private results: QueryList<ElementRef>;\n @ViewChild('searchInput') private searchInput: ElementRef<HTMLElement>;\n @ViewChild('dropdown') private dropdown: ElementRef<HTMLElement>;\n\n private hoveringValue: Select2Value | null | undefined = null;\n private innerSearchText = '';\n private isSearchboxHidden: boolean;\n\n private selectionElement: HTMLElement;\n\n private get resultsElement(): HTMLElement {\n return this.resultContainer?.nativeElement;\n }\n\n private _stateChanges = new Subject<void>();\n\n /** Tab index for the element. */\n private _tabIndex: number;\n\n private _disabled = false;\n private _multiple = false;\n private _id: string;\n private _uid = `select2-${nextUniqueId++}`;\n private _value: Select2UpdateValue;\n private _previousNativeValue: Select2UpdateValue;\n private _overlayPosition: VerticalConnectionPos;\n\n constructor(\n protected _viewportRuler: ViewportRuler,\n private _changeDetectorRef: ChangeDetectorRef,\n @Optional() private _parentForm: NgForm,\n @Optional() private _parentFormGroup: FormGroupDirective,\n @Self() @Optional() public _control: NgControl,\n @Attribute('tabindex') tabIndex: string,\n ) {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n this._tabIndex = parseInt(tabIndex, 10) || 0;\n\n if (this._control) {\n this._control.valueAccessor = this;\n }\n }\n\n @HostListener('document:click', ['$event'])\n clickDetection(e: MouseEvent) {\n if (this.isOpen && focus) {\n const target = e.target as HTMLElement;\n if (!this.ifParentContainsClass(target, 'selection')) {\n if (!this.ifParentContainsClass(target, 'select2-dropdown')) {\n this.toggleOpenAndClose();\n }\n if (!this.ifParentContainsId(target, this._id)) {\n this.clickExit();\n }\n } else if (!this.ifParentContainsId(target, this._id)) {\n this.toggleOpenAndClose();\n this.clickExit();\n }\n }\n }\n\n /** View -> model callback called when select has been touched */\n private _onTouched = () => {\n // do nothing\n };\n\n /** View -> model callback called when value changes */\n private _onChange: (value: any) => void = () => {\n // do nothing\n };\n\n ngOnInit() {\n this._viewportRuler.change(100).subscribe(() => {\n if (this.isOpen) {\n this.triggerRect();\n }\n });\n\n const option = Select2Utils.getOptionsByValue(\n this._data,\n this._control ? this._control.value : this.value,\n this.multiple,\n );\n if (option !== null) {\n this.option = option;\n }\n if (!Array.isArray(option)) {\n this.hoveringValue = this.value as string | undefined;\n }\n this.updateSearchBox();\n }\n\n ngAfterViewInit() {\n this.cdkConnectedOverlay.positionChange.subscribe((posChange: ConnectedOverlayPositionChange) => {\n if (\n this.listPosition === 'auto' &&\n posChange.connectionPair?.originY &&\n this._overlayPosition !== posChange.connectionPair.originY\n ) {\n this.triggerRect();\n this._overlayPosition = posChange.connectionPair.originY;\n this._changeDetectorRef.detectChanges();\n }\n });\n\n this.selectionElement = this.selection.nativeElement;\n this.triggerRect();\n }\n\n ngDoCheck() {\n this.updateSearchBox();\n this._dirtyCheckNativeValue();\n if (this._triggerRect) {\n if (this.overlayWidth !== this._triggerRect.width) {\n this.overlayWidth = this._triggerRect.width;\n }\n if (this._dropdownRect?.height > 0 && this.overlayHeight !== this._dropdownRect.height) {\n this.overlayHeight = this.listPosition === 'auto' ? this._dropdownRect.height : 0;\n }\n }\n }\n\n updateSearchBox() {\n const hidden = this.customSearchEnabled\n ? false\n : Select2Utils.isSearchboxHiddex(this._data, this._minCountForSearch);\n if (this.isSearchboxHidden !== hidden) {\n this.isSearchboxHidden = hidden;\n }\n }\n\n hideSearch(): boolean {\n const displaySearchStatus =\n displaySearchStatusList.indexOf(this.displaySearchStatus) > -1 ? this.displaySearchStatus : 'default';\n return (displaySearchStatus === 'default' && this.isSearchboxHidden) || displaySearchStatus === 'hidden';\n }\n\n getOptionStyle(option: Select2Option) {\n return (\n 'select2-results__option ' +\n (option.hide ? 'select2-results__option--hide ' : '') +\n (option.value === this.hoveringValue ? 'select2-results__option--highlighted ' : '') +\n (option.classes || '')\n );\n }\n\n mouseenter(option: Select2Option) {\n if (!option.disabled) {\n this.hoveringValue = option.value;\n }\n }\n\n click(option: Select2Option) {\n if (this.testSelection(option)) {\n this.select(option);\n }\n }\n\n reset(event: MouseEvent) {\n this.select(null);\n this.stopEvent(event);\n }\n\n prevChange(event: Event) {\n event.stopPropagation();\n }\n\n stopEvent(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n toggleOpenAndClose(focus = true, open?: boolean) {\n if (this.disabled) {\n return;\n }\n this._focus(focus);\n this.isOpen = open ?? !this.isOpen;\n\n if (this.isOpen) {\n this.innerSearchText = '';\n this.updateFilteredData();\n this._focusSearchboxOrResultsElement(focus);\n\n setTimeout(() => {\n if (this.option) {\n const option: Select2Option = this.option instanceof Array ? this.option[0] : this.option;\n this.updateScrollFromOption(option);\n } else if (this.resultsElement) {\n this.resultsElement.scrollTop = 0;\n }\n setTimeout(() => {\n this.triggerRect();\n this.cdkConnectedOverlay?.overlayRef?.updatePosition();\n }, 100);\n });\n this.open.emit(this);\n } else {\n this.close.emit(this);\n }\n\n this._changeDetectorRef.markForCheck();\n }\n\n hasTemplate(option: Select2Option | Select2Group, defaut: string) {\n return (\n this.templates instanceof TemplateRef ||\n this.templates?.[option.templateId] instanceof TemplateRef ||\n this.templates?.[defaut] instanceof TemplateRef\n );\n }\n\n getTemplate(option: Select2Option | Select2Group, defaut: string) {\n return this.hasTemplate(option, defaut)\n ? this.templates[option.templateId] || this.templates[defaut] || this.templates\n : undefined;\n }\n\n triggerRect() {\n this._triggerRect = this.selectionElement.getBoundingClientRect();\n this._dropdownRect = this.dropdown?.nativeElement\n ? this.dropdown.nativeElement.getBoundingClientRect()\n : undefined;\n }\n\n private testSelection(option: Select2Option) {\n if (option.disabled) {\n return false;\n }\n\n return (\n !this.multiple ||\n !this.limitSelection ||\n (Array.isArray(this._value) && this._value.length < this.limitSelection)\n );\n }\n\n private testValueChange(value1: Select2UpdateValue, value2: Select2UpdateValue) {\n if (\n ((value1 === null || value1 === undefined) && (value2 === null || value2 === undefined)) ||\n value1 === value2\n ) {\n return false;\n }\n if (\n this.multiple &&\n (value1 as Select2Value[])?.length &&\n (value2 as Select2Value[])?.length &&\n (value1 as Select2Value[]).length === (value2 as Select2Value[]).length\n ) {\n for (const e1 of value1 as Select2Value[]) {\n const test = (value2 as Select2Value[]).indexOf(e1) > -1;\n if (!test) {\n return true;\n }\n }\n return false;\n }\n return true;\n }\n\n private updateFilteredData() {\n setTimeout(() => {\n let result = this._data;\n if (this.multiple && this.hideSelectedItems) {\n result = Select2Utils.getFilteredSelectedData(result, this.option);\n }\n\n if (!this.customSearchEnabled && this.searchText && this.searchText.length >= +this.minCharForSearch) {\n result = Select2Utils.getFilteredData(result, this.searchText, this.editPattern);\n }\n\n if (this.maxResults > 0) {\n const data = Select2Utils.getReduceData(result, +this.maxResults);\n result = data.result;\n this.maxResultsExceeded = data.reduce;\n } else {\n this.maxResultsExceeded = false;\n }\n\n if (Select2Utils.valueIsNotInFilteredData(result, this.hoveringValue)) {\n this.hoveringValue = Select2Utils.getFirstAvailableOption(result);\n }\n\n this.filteredData = result;\n this._changeDetectorRef.markForCheck();\n });\n }\n\n private clickExit() {\n this._focus(false);\n }\n\n private ifParentContainsClass(element: HTMLElement, cssClass: string): boolean {\n return this.getParentElementByClass(element, cssClass) !== null;\n }\n\n private ifParentContainsId(element: HTMLElement, id: string): boolean {\n return this.getParentElementById(element, id) !== null;\n }\n\n private getParentElementByClass(element: HTMLElement, cssClass: string): HTMLElement | null {\n return this.containClasses(element, cssClass.trim().split(/\\s+/))\n ? element\n : element.parentElement\n ? this.getParentElementByClass(element.parentElement, cssClass)\n : null;\n }\n\n private getParentElementById(element: HTMLElement, id: string): HTMLElement | null {\n return element.id === id\n ? element\n : element.parentElement\n ? this.getParentElementById(element.parentElement, id)\n : null;\n }\n\n private containClasses(element: HTMLElement, cssClasses: string[]): boolean {\n if (!element.classList) {\n return false;\n }\n for (const cssClass of cssClasses) {\n if (!element.classList.contains(cssClass)) {\n return false;\n }\n }\n return true;\n }\n\n focusin() {\n if (!this.disabled) {\n this._focus(true);\n }\n }\n\n focusout() {\n if (this.selectionElement && !this.selectionElement.classList.contains('select2-focused')) {\n this._focus(false);\n this._onTouched();\n }\n }\n\n select(option: Select2Option | null) {\n let value: any;\n if (option !== null) {\n if (this.multiple) {\n const options = this.option as Select2Option[];\n const index = options.findIndex(op => op.value === option.value);\n if (index === -1) {\n options.push(option);\n } else {\n options.splice(index, 1);\n }\n value = (this.option as Select2Option[]).map(op => op.value);\n } else {\n this.option = option;\n if (this.isOpen) {\n this.isOpen = false;\n this.close.emit(this);\n this.selectionElement?.focus();\n }\n value = this.option.value;\n }\n } else {\n this.option = null;\n }\n\n if (this.multiple && this.hideSelectedItems) {\n this.updateFilteredData();\n }\n\n if (this._control) {\n this._onChange(value);\n } else {\n this._value = value;\n }\n\n this.update.emit({\n component: this,\n value: value,\n options: Array.isArray(this.option) ? this.option : this.option ? [this.option] : null,\n });\n }\n\n keyDown(e: KeyboardEvent, create = false) {\n if (create && this._testKey(e, ['Enter', 13])) {\n this.createAndAdd(e);\n return;\n }\n if (this._testKey(e, ['ArrowDown', 40])) {\n this.moveDown();\n e.preventDefault();\n } else if (this._testKey(e, ['ArrowUp', 38])) {\n this.moveUp();\n e.preventDefault();\n } else if (this._testKey(e, ['Enter', 13])) {\n this.selectByEnter();\n e.preventDefault();\n } else if (this._testKey(e, ['Escape', 'Tab', 9, 27]) && this.isOpen) {\n this.toggleOpenAndClose();\n this._focus(false);\n }\n }\n\n openKey(e: KeyboardEvent, create = false) {\n if (create && this._testKey(e, ['Enter', 13])) {\n this.createAndAdd(e);\n return;\n }\n if (this._testKey(e, ['ArrowDown', 'ArrowUp', 'Enter', 40, 38, 13])) {\n this.toggleOpenAndClose();\n e.preventDefault();\n } else if (this._testKey(e, ['Escape', 'Tab', 9, 27])) {\n this._focus(false);\n this._onTouched();\n }\n }\n\n searchUpdate(e: Event) {\n this.searchText = (e.target as HTMLInputElement).value;\n if (!this._customSearchEnabled) {\n this.updateFilteredData();\n } else {\n this.search.emit({\n component: this,\n value: this._value,\n search: this.searchText,\n data: this._data,\n filteredData: (data: Select2Data) => {\n this.filteredData = data;\n this._changeDetectorRef.markForCheck();\n },\n });\n }\n }\n\n trackBy(_index: number, item: Select2Option): any {\n return item.value;\n }\n\n isSelected(option: Select2Option) {\n return Select2Utils.isSelected(this.option, option, this.multiple);\n }\n\n isDisabled(option: Select2Option) {\n return option.disabled ? 'true' : 'false';\n }\n\n removeSelection(e: MouseEvent | KeyboardEvent, option: Select2Option) {\n Select2Utils.removeSelection(this.option, option);\n\n if (this.multiple && this.hideSelectedItems) {\n this.updateFilteredData();\n }\n\n const value = (this.option as Select2Option[]).map(op => op.value);\n\n if (this._control) {\n this._onChange(value);\n } else {\n this._value = value;\n }\n\n this.update.emit({\n component: this,\n value: value,\n options: Array.isArray(this.option) ? this.option : this.option ? [this.option] : null,\n });\n this.removeOption.emit({\n component: this,\n value: value,\n removedOption: option,\n });\n\n e.preventDefault();\n e.stopPropagation();\n\n if (this.isOpen) {\n this._focusSearchboxOrResultsElement();\n }\n }\n\n /**\n * Sets the model value. Implemented as part of ControlValueAccessor.\n * @param value\n */\n writeValue(value: any) {\n this._setSelectionByValue(value);\n }\n\n /**\n * Saves a callback function to be invoked when the select's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the value changes.\n */\n registerOnChange(fn: (value: any) => void): void {\n this._onChange = fn;\n }\n\n /**\n * Saves a callback function to be invoked when the select is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the component has been touched.\n */\n registerOnTouched(fn: () => {}): void {\n this._onTouched = fn;\n }\n\n /**\n * Sets whether the component should be disabled.\n * Implemented as part of ControlValueAccessor.\n * @param isDisabled\n */\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n onScroll(way: 'up' | 'down') {\n this.scroll.emit({\n component: this,\n way,\n search: this.innerSearchText,\n data: this._data,\n });\n }\n\n _isErrorState(): boolean {\n const isInvalid = this._control?.invalid;\n const isTouched = this._control?.touched;\n const isSubmitted = this._parentFormGroup?.submitted || this._parentForm?.submitted;\n return !!(isInvalid && (isTouched || isSubmitted));\n }\n\n private addItem(value: string): Select2Option {\n let item = Select2Utils.getOptionByValue(this._data, value);\n if (!item) {\n item = {\n value,\n label: value,\n };\n this._data.push(item);\n }\n return item;\n }\n\n private createAndAdd(e: KeyboardEvent) {\n const value = (e.target as HTMLInputElement).value;\n if (value.trim()) {\n const item = this.addItem(value.trim());\n this.click(item);\n (e.target as HTMLInputElement).value = '';\n }\n this.stopEvent(e);\n }\n\n private moveUp() {\n this.updateScrollFromOption(Select2Utils.getPreviousOption(this.filteredData, this.hoveringValue));\n }\n\n private moveDown() {\n this.updateScrollFromOption(Select2Utils.getNextOption(this.filteredData, this.hoveringValue));\n }\n\n private updateScrollFromOption(option: Select2Option) {\n if (option) {\n this.hoveringValue = option.value;\n const domElement = this.results.find(r => r.nativeElement.innerText.trim() === option.label);\n if (domElement && this.resultsElement) {\n this.resultsElement.scrollTop = 0;\n const listClientRect = this.resultsElement.getBoundingClientRect();\n const optionClientRect = domElement.nativeElement.getBoundingClientRect();\n this.resultsElement.scrollTop = optionClientRect.top - listClientRect.top;\n }\n }\n }\n\n private selectByEnter() {\n if (this.hoveringValue) {\n const option = Select2Utils.getOptionByValue(this._data, this.hoveringValue);\n this.select(option);\n }\n }\n\n private _testKey(event: KeyboardEvent, refs: (number | string)[] = []): boolean {\n return this._isKey(this._getKey(event), refs);\n }\n\n private _getKey(event: KeyboardEvent): number | string {\n let code: number | string;\n\n if (event.key !== undefined) {\n code = event.key;\n } else if (event['keyIdentifier'] !== undefined) {\n code = event['keyIdentifier'];\n } else if (event['keyCode'] !== undefined) {\n code = event['keyCode'];\n } else {\n event.preventDefault();\n }\n\n return code;\n }\n\n private _isKey(code: number | string, refs: (number | string)[] = []): boolean {\n return refs && refs.length > 0 ? refs.indexOf(code) !== -1 : false;\n }\n\n /**\n * Sets the selected option based on a value. If no option can be\n * found with the designated value, the select trigger is cleared.\n */\n private _setSelectionByValue(value: any | any[]): void {\n if (this.option || (value !== undefined && value !== null)) {\n const isArray = Array.isArray(value);\n if (this.multiple && value && !isArray) {\n throw new Error('Non array value.');\n } else if (this._data) {\n if (this.multiple) {\n this.option = []; // if value is null, then empty option and return\n if (isArray) {\n // value is not null. Preselect value\n const selectedValues: any = Select2Utils.getOptionsByValue(this._data, value, this.multiple);\n selectedValues.map(item => this.select(item));\n }\n } else {\n this.select(Select2Utils.getOptionByValue(this._data, value));\n }\n } else if (this._control) {\n this._control.viewToModelUpdate(value);\n }\n\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /** Does some manual dirty checking on the native input `value` property. */\n private _dirtyCheckNativeValue() {\n const newValue = this.value;\n\n if (this._previousNativeValue !== newValue) {\n this._previousNativeValue = newValue;\n this._stateChanges.next();\n }\n }\n\n private _focusSearchboxOrResultsElement(focus = true) {\n if (!this.isSearchboxHidden) {\n setTimeout(() => {\n if (this.searchInput && this.searchInput.nativeElement && focus) {\n this.searchInput.nativeElement.focus();\n }\n });\n } else if (this.resultsElement) {\n this.resultsElement.focus();\n }\n }\n\n private _focus(state: boolean) {\n if (!state && this.focused) {\n this.focused = state;\n this.blur.emit(this);\n } else if (state && !this.focused) {\n this.focused = state;\n this.focus.emit(this);\n }\n }\n\n private _isAbobeOverlay(): boolean {\n return this.overlay && this._overlayPosition && this.listPosition === 'auto'\n ? this._overlayPosition === 'top'\n : this.listPosition === 'above';\n }\n}\n","<div class=\"select2-label\" (click)=\"toggleOpenAndClose()\">\n <ng-content select=\"select2-label\"></ng-content>\n <span *ngIf=\"required\" class=\"select2-required\"></span>\n</div>\n<div\n class=\"select2 select2-container select2-container--default\"\n [class.select2-container--focus]=\"focused\"\n [class.select2-container--below]=\"!select2above\"\n [class.select2-container--above]=\"select2above\"\n [class.select2-container--open]=\"isOpen\"\n [class.select2-container--disabled]=\"disabled\"\n>\n <div\n class=\"selection\"\n #selection\n #trigger=\"cdkOverlayOrigin\"\n [tabindex]=\"!this.isOpen ? tabIndex : '-1'\"\n (click)=\"toggleOpenAndClose()\"\n (focus)=\"focusin()\"\n (blur)=\"focusout()\"\n (keydown)=\"openKey($event)\"\n cdkOverlayOrigin\n [class.select2-focused]=\"focused\"\n >\n <div\n class=\"select2-selection\"\n [class.select2-selection--multiple]=\"multiple\"\n [class.select2-selection--single]=\"!multiple\"\n role=\"combobox\"\n >\n <span *ngIf=\"!multiple\" class=\"select2-selection__rendered\" [title]=\"select2Option?.label || ''\">\n <span *ngIf=\"!select2Option\"> </span>\n <ng-container *ngIf=\"select2Option\">\n <span\n *ngIf=\"!hasTemplate(select2Option, 'option') || noLabelTemplate; else template\"\n [innerHTML]=\"select2Option.label\"\n ></span>\n <ng-template #template>\n <ng-container *ngTemplateOutlet=\"getTemplate(select2Option, 'option'); context: select2Option\">\n </ng-container>\n </ng-template>\n </ng-container>\n <span [class.select2-selection__placeholder__option]=\"option\" class=\"select2-selection__placeholder\">{{\n placeholder\n }}</span>\n </span>\n <span\n (click)=\"reset($event)\"\n *ngIf=\"!multiple && resettable && select2Option && !(disabled || readonly)\"\n class=\"select2-selection__reset\"\n role=\"presentation\"\n >×</span\n >\n <span *ngIf=\"!multiple\" class=\"select2-selection__arrow\" role=\"presentation\"> </span>\n <ul *ngIf=\"multiple\" class=\"select2-selection__rendered\">\n <span\n *ngIf=\"!autoCreate\"\n [class.select2-selection__placeholder__option]=\"select2Options?.length > 0\"\n class=\"select2-selection__placeholder\"\n >{{ placeholder }}</span\n >\n <li\n *ngFor=\"let op of option; trackBy: trackBy\"\n class=\"select2-selection__choice\"\n [title]=\"op.label\"\n tabindex=\"0\"\n (keydown.enter)=\"removeSelection($event, op)\"\n >\n <span\n *ngIf=\"!(disabled || readonly)\"\n (click)=\"removeSelection($event, op)\"\n class=\"select2-selection__choice__remove\"\n role=\"presentation\"\n >×</span\n >\n <span\n *ngIf=\"!hasTemplate(op, 'option') || noLabelTemplate; else templateMultiple\"\n [innerHTML]=\"op.label\"\n ></span>\n <ng-template #templateMultiple>\n <ng-container *ngTemplateOutlet=\"getTemplate(op, 'option'); context: op\"></ng-container>\n </ng-template>\n </li>\n <li\n *ngIf=\"autoCreate\"\n class=\"select2-selection__auto-create\"\n (focus)=\"stopEvent($event)\"\n (blur)=\"stopEvent($event)\"\n >\n <input\n [id]=\"id + '-create-field'\"\n (click)=\"toggleOpenAndClose(false, true); stopEvent($event)\"\n (keydown)=\"keyDown($event, true)\"\n (keyup)=\"searchUpdate($event)\"\n (change)=\"prevChange($event)\"\n class=\"select2-create__field\"\n type=\"search\"\n role=\"textbox\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"false\"\n />\n </li>\n </ul>\n </div>\n </div>\n <ng-container *ngIf=\"!overlay\">\n <ng-container *ngTemplateOutlet=\"containerTemplate\"></ng-container>\n </ng-container>\n\n <div class=\"select2-subscript-wrapper\">\n <ng-content select=\"select2-hint\"></ng-content>\n </div>\n</div>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop\n cdkConnectedOverlayBackdropClass=\"select2-overlay-backdrop\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"this.isOpen && overlay\"\n [cdkConnectedOverlayMinWidth]=\"overlayWidth\"\n [cdkConnectedOverlayHeight]=\"overlayHeight\"\n [cdkConnectedOverlayPositions]=\"_positions\"\n (backdropClick)=\"toggleOpenAndClose()\"\n>\n <ng-container *ngTemplateOutlet=\"containerTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #containerTemplate>\n <div\n class=\"select2-container select2-container--default select2-container-dropdown\"\n [class.select2-container--open]=\"isOpen\"\n [class.select2-overlay]=\"overlay\"\n [class.select2-position-auto]=\"listPosition === 'auto'\"\n >\n <div\n #dropdown\n class=\"select2-dropdown\"\n [class.select2-dropdown--below]=\"!select2above\"\n [class.select2-dropdown--above]=\"select2above\"\n >\n <div class=\"select2-search select2-search--dropdown\" [class.select2-search--hide]=\"hideSearch()\">\n <input\n #searchInput\n [id]=\"id + '-search-field'\"\n [value]=\"searchText\"\n (keydown)=\"keyDown($event)\"\n (keyup)=\"searchUpdate($event)\"\n (change)=\"prevChange($event)\"\n class=\"select2-search__field\"\n type=\"search\"\n role=\"textbox\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"false\"\n [attr.tabindex]=\"this.isOpen ? tabIndex : '-1'\"\n />\n </div>\n <div class=\"select2-results\">\n <ul\n #results\n class=\"select2-results__options\"\n [style.max-height]=\"resultMaxHeight\"\n role=\"tree\"\n tabindex=\"-1\"\n infiniteScroll\n [infiniteScrollDisabled]=\"!infiniteScroll && !isOpen\"\n [infiniteScrollDistance]=\"infiniteScrollDistance\"\n [infiniteScrollThrottle]=\"infiniteScrollThrottle\"\n [infiniteScrollContainer]=\"results\"\n (scrolled)=\"onScroll('down')\"\n (scrolledUp)=\"onScroll('up')\"\n (keydown)=\"keyDown($event)\"\n >\n <ng-container *ngFor=\"let groupOrOption of filteredData; index as i; trackBy: trackBy\">\n <li *ngIf=\"groupOrOption.options\" class=\"select2-results__option\" role=\"group\">\n <strong\n *ngIf=\"!hasTemplate(groupOrOption, 'group'); else optGroup\"\n [attr.class]=\"\n 'select2-results__group' +\n (groupOrOption.classes ? ' ' + groupOrOption.classes : '')\n \"\n [innerHTML]=\"groupOrOption.label\"\n ></strong>\n <ng-template #optGroup>\n <ng-container\n *ngTemplateOutlet=\"getTemplate(groupOrOption, 'group'); context: groupOrOption\"\n >\n </ng-container>\n </ng-template>\n\n <ul class=\"select2-results__options select2-results__options--nested\">\n <li\n *ngFor=\"let option of groupOrOption.options; index as j; trackBy: trackBy\"\n #result\n [id]=\"option.id || id + '-option-' + i + '-' + j\"\n [class]=\"getOptionStyle(option)\"\n role=\"treeitem\"\n [attr.aria-selected]=\"isSelected(option)\"\n [attr.aria-disabled]=\"isDisabled(option)\"\n (mouseenter)=\"mouseenter(option)\"\n (click)=\"click(option)\"\n >\n <div\n *ngIf=\"!hasTemplate(option, 'option'); else liGroup\"\n class=\"select2-label-content\"\n [innerHTML]=\"option.label\"\n ></div>\n <ng-template #liGroup>\n <ng-container\n *ngTemplateOutlet=\"getTemplate(option, 'option'); context: option\"\n >\n </ng-container>\n </ng-template>\n </li>\n </ul>\n </li>\n <li\n *ngIf=\"!groupOrOption.options\"\n #result\n [id]=\"groupOrOption.id || id + '-option-' + i\"\n [class]=\"getOptionStyle(groupOrOption)\"\n role=\"treeitem\"\n [attr.aria-selected]=\"isSelected(groupOrOption)\"\n [attr.aria-disabled]=\"isDisabled(groupOrOption)\"\n (mouseenter)=\"mouseenter(groupOrOption)\"\n (click)=\"click(groupOrOption)\"\n >\n <div\n *ngIf=\"!hasTemplate(groupOrOption, 'option'); else li\"\n [innerHTML]=\"groupOrOption.label\"\n class=\"select2-label-content\"\n ></div>\n <ng-template #li>\n <ng-container\n *ngTemplateOutlet=\"getTemplate(groupOrOption, 'option'); context: groupOrOption\"\n >\n </ng-container>\n </ng-template>\n </li>\n </ng-container>\n <li\n class=\"select2-no-result select2-results__option\"\n *ngIf=\"!filteredData?.length && noResultMessage\"\n [innerHTML]=\"noResultMessage\"\n ></li>\n <li\n class=\"select2-too-much-result select2-results__option\"\n *ngIf=\"maxResultsExceeded\"\n [innerHTML]=\"maxResultsMessage\"\n ></li>\n </ul>\n </div>\n </div>\n </div>\n</ng-template>\n","import { Directive } from '@angular/core';\n\n\n@Directive({ selector: 'select2-hint' })\nexport class Select2Hint {}\n","import { Directive } from '@angular/core';\n\n\n@Directive({ selector: 'select2-label' })\nexport class Select2Label {}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\n\nimport { Select2Hint } from './select2-hint.component';\nimport { Select2Label } from './select2-label.component';\nimport { Select2 } from './select2.component';\n\n\n@NgModule({\n imports: [CommonModule, FormsModule, OverlayModule, ReactiveFormsModule, InfiniteScrollModule],\n declarations: [Select2Hint, Select2Label, Select2],\n exports: [FormsModule, ReactiveFormsModule, Select2Hint, Select2Label, Select2],\n})\nexport class Select2Module {}\n","/*\n * Public API Surface of ng-select2-component\n */\n\nexport * from './lib/select2-interfaces';\nexport * from './lib/select2-const';\nexport * from './lib/select2.component';\nexport * from './lib/select2.component';\nexport * from './lib/select2-hint.component';\nexport * from './lib/select2-label.component';\nexport * from './lib/select2-utils';\nexport * from './lib/select2.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
/// <amd-module name="ng-select2-component" />
|
|
5
|
-
export * from './public_api';
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
/// <amd-module name="ng-select2-component" />
|
|
5
|
+
export * from './public_api';
|
|
6
6
|
//# sourceMappingURL=ng-select2-component.d.ts.map
|
package/lib/select2-const.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export declare const timeout = 200;
|
|
2
|
-
export declare const unicodePatterns: {
|
|
3
|
-
l: string;
|
|
4
|
-
s: RegExp;
|
|
5
|
-
}[];
|
|
6
|
-
export declare const defaultMinCountForSearch = 6;
|
|
7
|
-
export declare const protectRegexp: RegExp;
|
|
1
|
+
export declare const timeout = 200;
|
|
2
|
+
export declare const unicodePatterns: {
|
|
3
|
+
l: string;
|
|
4
|
+
s: RegExp;
|
|
5
|
+
}[];
|
|
6
|
+
export declare const defaultMinCountForSearch = 6;
|
|
7
|
+
export declare const protectRegexp: RegExp;
|
|
8
8
|
//# sourceMappingURL=select2-const.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
export declare class Select2Hint {
|
|
3
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<Select2Hint, never>;
|
|
4
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<Select2Hint, "select2-hint", never, {}, {}, never, never, false, never>;
|
|
5
|
-
}
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class Select2Hint {
|
|
3
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<Select2Hint, never>;
|
|
4
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<Select2Hint, "select2-hint", never, {}, {}, never, never, false, never>;
|
|
5
|
+
}
|
|
6
6
|
//# sourceMappingURL=select2-hint.component.d.ts.map
|