ng-select2-component 8.0.5 → 8.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"ng-select2-component.js","sources":["../../../projects/ng-select2-component/src/lib/select2-interfaces.ts","../../../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-hint.component.ts","../../../projects/ng-select2-component/src/lib/select2-label.component.ts","../../../projects/ng-select2-component/src/lib/select2.module.ts"],"sourcesContent":["import { Select2 } from './select2.component';\n\nexport interface Select2Group {\n /** label of group */\n label: string;\n /** options list */\n options: Select2Option[];\n /** add classes */\n classes?: string;\n /** template id */\n templateId?: string;\n /** template data */\n data?: any;\n}\n\nexport interface Select2Option {\n /** value */\n value: Select2Value;\n /** label of option */\n label: string;\n /** no selectable is disabled */\n disabled?: boolean;\n /** for identification */\n id?: string;\n /** add classes */\n classes?: string;\n /** template id */\n templateId?: string;\n /** template data */\n data?: any;\n /** hide this option */\n hide?: boolean;\n}\n\nexport type Select2Value = string | number | boolean | object;\n\nexport type Select2UpdateValue = Select2Value | Select2Value[];\n\nexport type Select2Data = (Select2Group | Select2Option)[];\n\nexport interface Select2UpdateEvent<U extends Select2UpdateValue = Select2Value> {\n component: Select2;\n value: U;\n options: Select2Option[];\n}\n\nexport interface Select2SearchEvent<U extends Select2UpdateValue = Select2Value> {\n component: Select2;\n value: U;\n search: string;\n}\n\nexport interface Select2RemoveEvent<U extends Select2UpdateValue = Select2Value> {\n component: Select2;\n value: U;\n removedOption: Select2Option;\n}\n\nexport interface Select2ScrollEvent {\n component: Select2;\n way: 'up' | 'down';\n search: string;\n}\n","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\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 {\n if ((groupOrOption as Select2Option).value === value) {\n return groupOrOption as Select2Option;\n }\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 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 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 {\n if ((groupOrOption as Select2Option).value === value) {\n return false;\n }\n }\n }\n return true;\n }\n\n // tslint:disable-next-line:cognitive-complexity\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) {\n if (!option.disabled && !option.hide) {\n return option;\n }\n }\n 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 }\n if (!findIt) {\n findIt = option.value === hoveringValue;\n }\n }\n }\n return null;\n }\n // tslint:disable-next-line:cognitive-complexity\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 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 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 label: groupOrOption.label,\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 label: groupOrOption.label,\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","import {\n CdkConnectedOverlay, ConnectedOverlayPositionChange, ConnectedPosition, VerticalConnectionPos,\n} from '@angular/cdk/overlay';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport type { ElementRef, QueryList } from '@angular/core';\nimport {\n AfterViewInit, Attribute, ChangeDetectorRef, Component, DoCheck, EventEmitter, HostBinding, Input, OnDestroy,\n OnInit, Optional, Output, Self, TemplateRef, ViewChild, 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, Select2Group, Select2Option, Select2RemoveEvent, Select2ScrollEvent, Select2SearchEvent,\n Select2UpdateEvent, Select2UpdateValue, 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 of options & optiongrps */\n @Input() data!: Select2Data;\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 /** 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 /** 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\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\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: ClientRect;\n _dropdownRect: ClientRect;\n\n get _positions(): ConnectedPosition[] {\n if (this.listPosition === 'auto') {\n [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n },\n ];\n } else {\n return null;\n }\n }\n private _minCountForSearch?: number | string;\n\n @ViewChild(CdkConnectedOverlay)\n private cdkConnectedOverlay: CdkConnectedOverlay;\n\n @ViewChild('selection', { static: true })\n 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 _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 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(e: MouseEvent) {\n this.select(null);\n\n e.preventDefault();\n e.stopPropagation();\n }\n\n prevChange(event: Event) {\n event.stopPropagation();\n }\n\n toggleOpenAndClose() {\n if (this.disabled) {\n return;\n }\n this._focus(true);\n this.isOpen = !this.isOpen;\n\n if (this.isOpen) {\n this.innerSearchText = '';\n this.updateFilteredData();\n this._focusSearchboxOrResultsElement();\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) {\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 if (\n !this.multiple ||\n !this.limitSelection ||\n (Array.isArray(this._value) && this._value.length < this.limitSelection)\n ) {\n return true;\n }\n return false;\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 (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 if (this.containClasses(element, cssClass.trim().split(/\\s+/))) {\n return element;\n }\n return element.parentElement ? this.getParentElementByClass(element.parentElement, cssClass) : null;\n }\n\n private getParentElementById(element: HTMLElement, id: string): HTMLElement | null {\n if (element.id === id) {\n return element;\n }\n return element.parentElement ? this.getParentElementById(element.parentElement, id) : 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 return;\n }\n this._focus(true);\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 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 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 if (this.selectionElement) {\n this.selectionElement.focus();\n }\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) {\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) {\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 trackBy(_index: number, item: Select2Option): any {\n return item.value;\n }\n\n searchUpdate(e: Event) {\n this.searchText = (e.target as HTMLInputElement).value;\n this.updateFilteredData();\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, 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 && this._control.invalid;\n const isTouched = this._control && this._control.touched;\n const isSubmitted =\n (this._parentFormGroup && this._parentFormGroup.submitted) ||\n (this._parentForm && this._parentForm.submitted);\n\n return !!(isInvalid && (isTouched || isSubmitted));\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() {\n if (!this.isSearchboxHidden) {\n setTimeout(() => {\n if (this.searchInput && this.searchInput.nativeElement) {\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","import { Directive } from '@angular/core';\n\n@Directive({ selector: 'select2-hint' })\nexport class Select2Hint {}\n","import { Directive } from '@angular/core';\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@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"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-select2-component.js","sources":["../../../projects/ng-select2-component/src/lib/select2-interfaces.ts","../../../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-hint.component.ts","../../../projects/ng-select2-component/src/lib/select2-label.component.ts","../../../projects/ng-select2-component/src/lib/select2.module.ts"],"sourcesContent":["import { Select2 } from './select2.component';\n\nexport interface Select2Group {\n /** label of group */\n label: string;\n /** options list */\n options: Select2Option[];\n /** add classes */\n classes?: string;\n /** template id */\n templateId?: string;\n /** template data */\n data?: any;\n}\n\nexport interface Select2Option {\n /** value */\n value: Select2Value;\n /** label of option */\n label: string;\n /** no selectable is disabled */\n disabled?: boolean;\n /** for identification */\n id?: string;\n /** add classes */\n classes?: string;\n /** template id */\n templateId?: string;\n /** template data */\n data?: any;\n /** hide this option */\n hide?: boolean;\n}\n\nexport type Select2Value = string | number | boolean | object;\n\nexport type Select2UpdateValue = Select2Value | Select2Value[];\n\nexport type Select2Data = (Select2Group | Select2Option)[];\n\nexport interface Select2UpdateEvent<U extends Select2UpdateValue = Select2Value> {\n component: Select2;\n value: U;\n options: Select2Option[];\n}\n\nexport interface Select2SearchEvent<U extends Select2UpdateValue = Select2Value> {\n component: Select2;\n value: U;\n search: string;\n}\n\nexport interface Select2RemoveEvent<U extends Select2UpdateValue = Select2Value> {\n component: Select2;\n value: U;\n removedOption: Select2Option;\n}\n\nexport interface Select2ScrollEvent {\n component: Select2;\n way: 'up' | 'down';\n search: string;\n}\n","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\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 {\n if ((groupOrOption as Select2Option).value === value) {\n return groupOrOption as Select2Option;\n }\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 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 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 {\n if ((groupOrOption as Select2Option).value === value) {\n return false;\n }\n }\n }\n return true;\n }\n\n // tslint:disable-next-line:cognitive-complexity\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) {\n if (!option.disabled && !option.hide) {\n return option;\n }\n }\n 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 }\n if (!findIt) {\n findIt = option.value === hoveringValue;\n }\n }\n }\n return null;\n }\n // tslint:disable-next-line:cognitive-complexity\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 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 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 label: groupOrOption.label,\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 label: groupOrOption.label,\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","import {\n CdkConnectedOverlay, ConnectedOverlayPositionChange, ConnectedPosition, VerticalConnectionPos,\n} from '@angular/cdk/overlay';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport type { ElementRef, QueryList } from '@angular/core';\nimport {\n AfterViewInit, Attribute, ChangeDetectorRef, Component, DoCheck, EventEmitter, HostBinding, Input, OnDestroy,\n OnInit, Optional, Output, Self, TemplateRef, ViewChild, 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, Select2Group, Select2Option, Select2RemoveEvent, Select2ScrollEvent, Select2SearchEvent,\n Select2UpdateEvent, Select2UpdateValue, 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 /** 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 /** 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\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\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: ClientRect;\n _dropdownRect: ClientRect;\n\n get _positions(): ConnectedPosition[] {\n if (this.listPosition === 'auto') {\n [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n },\n ];\n } else {\n return null;\n }\n }\n private _minCountForSearch?: number | string;\n\n @ViewChild(CdkConnectedOverlay)\n private cdkConnectedOverlay: CdkConnectedOverlay;\n\n @ViewChild('selection', { static: true })\n 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 _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 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(e: MouseEvent) {\n this.select(null);\n\n e.preventDefault();\n e.stopPropagation();\n }\n\n prevChange(event: Event) {\n event.stopPropagation();\n }\n\n toggleOpenAndClose() {\n if (this.disabled) {\n return;\n }\n this._focus(true);\n this.isOpen = !this.isOpen;\n\n if (this.isOpen) {\n this.innerSearchText = '';\n this.updateFilteredData();\n this._focusSearchboxOrResultsElement();\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) {\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 if (\n !this.multiple ||\n !this.limitSelection ||\n (Array.isArray(this._value) && this._value.length < this.limitSelection)\n ) {\n return true;\n }\n return false;\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 (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 if (this.containClasses(element, cssClass.trim().split(/\\s+/))) {\n return element;\n }\n return element.parentElement ? this.getParentElementByClass(element.parentElement, cssClass) : null;\n }\n\n private getParentElementById(element: HTMLElement, id: string): HTMLElement | null {\n if (element.id === id) {\n return element;\n }\n return element.parentElement ? this.getParentElementById(element.parentElement, id) : 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 return;\n }\n this._focus(true);\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 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 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 if (this.selectionElement) {\n this.selectionElement.focus();\n }\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) {\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) {\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 trackBy(_index: number, item: Select2Option): any {\n return item.value;\n }\n\n searchUpdate(e: Event) {\n this.searchText = (e.target as HTMLInputElement).value;\n this.updateFilteredData();\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, 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 && this._control.invalid;\n const isTouched = this._control && this._control.touched;\n const isSubmitted =\n (this._parentFormGroup && this._parentFormGroup.submitted) ||\n (this._parentForm && this._parentForm.submitted);\n\n return !!(isInvalid && (isTouched || isSubmitted));\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() {\n if (!this.isSearchboxHidden) {\n setTimeout(() => {\n if (this.searchInput && this.searchInput.nativeElement) {\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","import { Directive } from '@angular/core';\n\n@Directive({ selector: 'select2-hint' })\nexport class Select2Hint {}\n","import { Directive } from '@angular/core';\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@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"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
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;
@@ -1,2 +1,2 @@
1
- export declare class Select2Hint {
2
- }
1
+ export declare class Select2Hint {
2
+ }
@@ -1,54 +1,54 @@
1
- import { Select2 } from './select2.component';
2
- export interface Select2Group {
3
- /** label of group */
4
- label: string;
5
- /** options list */
6
- options: Select2Option[];
7
- /** add classes */
8
- classes?: string;
9
- /** template id */
10
- templateId?: string;
11
- /** template data */
12
- data?: any;
13
- }
14
- export interface Select2Option {
15
- /** value */
16
- value: Select2Value;
17
- /** label of option */
18
- label: string;
19
- /** no selectable is disabled */
20
- disabled?: boolean;
21
- /** for identification */
22
- id?: string;
23
- /** add classes */
24
- classes?: string;
25
- /** template id */
26
- templateId?: string;
27
- /** template data */
28
- data?: any;
29
- /** hide this option */
30
- hide?: boolean;
31
- }
32
- export declare type Select2Value = string | number | boolean | object;
33
- export declare type Select2UpdateValue = Select2Value | Select2Value[];
34
- export declare type Select2Data = (Select2Group | Select2Option)[];
35
- export interface Select2UpdateEvent<U extends Select2UpdateValue = Select2Value> {
36
- component: Select2;
37
- value: U;
38
- options: Select2Option[];
39
- }
40
- export interface Select2SearchEvent<U extends Select2UpdateValue = Select2Value> {
41
- component: Select2;
42
- value: U;
43
- search: string;
44
- }
45
- export interface Select2RemoveEvent<U extends Select2UpdateValue = Select2Value> {
46
- component: Select2;
47
- value: U;
48
- removedOption: Select2Option;
49
- }
50
- export interface Select2ScrollEvent {
51
- component: Select2;
52
- way: 'up' | 'down';
53
- search: string;
54
- }
1
+ import { Select2 } from './select2.component';
2
+ export interface Select2Group {
3
+ /** label of group */
4
+ label: string;
5
+ /** options list */
6
+ options: Select2Option[];
7
+ /** add classes */
8
+ classes?: string;
9
+ /** template id */
10
+ templateId?: string;
11
+ /** template data */
12
+ data?: any;
13
+ }
14
+ export interface Select2Option {
15
+ /** value */
16
+ value: Select2Value;
17
+ /** label of option */
18
+ label: string;
19
+ /** no selectable is disabled */
20
+ disabled?: boolean;
21
+ /** for identification */
22
+ id?: string;
23
+ /** add classes */
24
+ classes?: string;
25
+ /** template id */
26
+ templateId?: string;
27
+ /** template data */
28
+ data?: any;
29
+ /** hide this option */
30
+ hide?: boolean;
31
+ }
32
+ export declare type Select2Value = string | number | boolean | object;
33
+ export declare type Select2UpdateValue = Select2Value | Select2Value[];
34
+ export declare type Select2Data = (Select2Group | Select2Option)[];
35
+ export interface Select2UpdateEvent<U extends Select2UpdateValue = Select2Value> {
36
+ component: Select2;
37
+ value: U;
38
+ options: Select2Option[];
39
+ }
40
+ export interface Select2SearchEvent<U extends Select2UpdateValue = Select2Value> {
41
+ component: Select2;
42
+ value: U;
43
+ search: string;
44
+ }
45
+ export interface Select2RemoveEvent<U extends Select2UpdateValue = Select2Value> {
46
+ component: Select2;
47
+ value: U;
48
+ removedOption: Select2Option;
49
+ }
50
+ export interface Select2ScrollEvent {
51
+ component: Select2;
52
+ way: 'up' | 'down';
53
+ search: string;
54
+ }
@@ -1,2 +1,2 @@
1
- export declare class Select2Label {
2
- }
1
+ export declare class Select2Label {
2
+ }
@@ -1,20 +1,20 @@
1
- import { Select2Data, Select2Option, Select2UpdateValue, Select2Value } from './select2-interfaces';
2
- export declare class Select2Utils {
3
- static getOptionByValue(data: Select2Data, value: Select2Value | null | undefined): Select2Option;
4
- static getOptionsByValue(data: Select2Data, value: Select2UpdateValue | null | undefined, multiple: boolean | null | undefined): Select2Option | Select2Option[];
5
- static getFirstAvailableOption(data: Select2Data): Select2Value;
6
- private static getOptionsCount;
7
- static valueIsNotInFilteredData(filteredData: Select2Data, value: Select2Value | null | undefined): boolean;
8
- static getPreviousOption(filteredData: Select2Data, hoveringValue: Select2Value | null | undefined): Select2Option;
9
- static getNextOption(filteredData: Select2Data, hoveringValue: Select2Value | null | undefined): Select2Option;
10
- private static isNullOrUndefined;
11
- private static containSearchText;
12
- private static protectPattern;
13
- private static formatSansUnicode;
14
- private static formatPattern;
15
- static getFilteredData(data: Select2Data, searchText: string | null, editPattern?: (str: string) => string): Select2Data;
16
- static getFilteredSelectedData(data: Select2Data, selectedOptions: Select2Option | Select2Option[] | null): Select2Data;
17
- static isSearchboxHiddex(data: Select2Data, minCountForSearch?: number | string): boolean;
18
- static isSelected(options: Select2Option | Select2Option[] | null, option: Select2Option, multiple: boolean | null | undefined): "true" | "false";
19
- static removeSelection(options: Select2Option | Select2Option[] | null, option: Select2Option): void;
20
- }
1
+ import { Select2Data, Select2Option, Select2UpdateValue, Select2Value } from './select2-interfaces';
2
+ export declare class Select2Utils {
3
+ static getOptionByValue(data: Select2Data, value: Select2Value | null | undefined): Select2Option;
4
+ static getOptionsByValue(data: Select2Data, value: Select2UpdateValue | null | undefined, multiple: boolean | null | undefined): Select2Option | Select2Option[];
5
+ static getFirstAvailableOption(data: Select2Data): Select2Value;
6
+ private static getOptionsCount;
7
+ static valueIsNotInFilteredData(filteredData: Select2Data, value: Select2Value | null | undefined): boolean;
8
+ static getPreviousOption(filteredData: Select2Data, hoveringValue: Select2Value | null | undefined): Select2Option;
9
+ static getNextOption(filteredData: Select2Data, hoveringValue: Select2Value | null | undefined): Select2Option;
10
+ private static isNullOrUndefined;
11
+ private static containSearchText;
12
+ private static protectPattern;
13
+ private static formatSansUnicode;
14
+ private static formatPattern;
15
+ static getFilteredData(data: Select2Data, searchText: string | null, editPattern?: (str: string) => string): Select2Data;
16
+ static getFilteredSelectedData(data: Select2Data, selectedOptions: Select2Option | Select2Option[] | null): Select2Data;
17
+ static isSearchboxHiddex(data: Select2Data, minCountForSearch?: number | string): boolean;
18
+ static isSelected(options: Select2Option | Select2Option[] | null, option: Select2Option, multiple: boolean | null | undefined): "true" | "false";
19
+ static removeSelection(options: Select2Option | Select2Option[] | null, option: Select2Option): void;
20
+ }