@eui/components 16.2.10 → 16.2.11-snapshot-1707102697130
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/docs/components/EuiToolbarMenuComponent.html +1 -1
- package/docs/components/EuiUserProfileComponent.html +1 -1
- package/docs/dependencies.html +2 -2
- package/docs/js/search/search_index.js +2 -2
- package/esm2022/eui-autocomplete/eui-autocomplete.component.mjs +1 -4
- package/esm2022/layout/eui-toolbar/toolbar-menu/toolbar-menu.component.mjs +3 -3
- package/esm2022/layout/eui-toolbar/toolbar.component.mjs +2 -2
- package/esm2022/layout/eui-user-profile/user-profile.component.mjs +3 -3
- package/eui-autocomplete/eui-autocomplete.component.d.ts.map +1 -1
- package/fesm2022/eui-components-eui-autocomplete.mjs +0 -3
- package/fesm2022/eui-components-eui-autocomplete.mjs.map +1 -1
- package/fesm2022/eui-components-layout.mjs +6 -6
- package/fesm2022/eui-components-layout.mjs.map +1 -1
- package/package.json +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-components-eui-autocomplete.mjs","sources":["../../eui-autocomplete/models/eui-autocomplete-item.model.ts","../../eui-autocomplete/eui-autocomplete.component.ts","../../eui-autocomplete/eui-autocomplete.component.html","../../eui-autocomplete/eui-autocomplete.module.ts","../../eui-autocomplete/eui-components-eui-autocomplete.ts"],"sourcesContent":["import { EuiChipTooltip } from '@eui/components/eui-chip';\n\n// TODO: on v17 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class EuiAutoCompleteItem<METADATA = any> {\n id: string | number;\n euiInternalId: string;\n label: string;\n typeClass: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'danger';\n sizeClass: 'euiSizeS' | 'euiSizeM' | 'euiSizeL' | 'euiSizeXL' | 'euiSize2XL';\n iconClass: string;\n isRemovable: boolean;\n isOutline: boolean;\n isRounded: boolean;\n dragAndDropSource: string;\n isDisabled = false;\n tooltip?: EuiChipTooltip;\n metadata?: METADATA;\n\n constructor(values = {}) {\n Object.assign(this, values);\n }\n}\n","import {\n Component,\n Input,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n OnInit,\n OnDestroy,\n ElementRef,\n ViewChild,\n OnChanges,\n ChangeDetectorRef,\n Output,\n EventEmitter,\n SimpleChanges,\n QueryList,\n AfterViewInit,\n TemplateRef,\n ContentChildren,\n HostBinding,\n Self,\n Optional,\n DoCheck,\n} from '@angular/core';\nimport { FormControl, ControlValueAccessor, NgControl } from '@angular/forms';\nimport { coerceBooleanProperty, coerceNumberProperty, BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport { skip, startWith, takeUntil } from 'rxjs/operators';\nimport { Subject, BehaviorSubject, of, Observable, Subscription, fromEvent, filter } from 'rxjs';\nimport { MatAutocomplete, MatAutocompleteSelectedEvent, MatAutocompleteTrigger } from '@angular/material/autocomplete';\nimport { CdkScrollable, ScrollDispatcher, CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\n\nimport { uniqueId } from '@eui/core';\nimport { EuiChip, EuiChipTooltip } from '@eui/components/eui-chip';\nimport { EuiChipDragDrop, EuiChipListComponent } from '@eui/components/eui-chip-list';\nimport { EuiTemplateDirective } from '@eui/components/directives';\nimport { BaseDirective } from '@eui/components/shared';\n\nimport { EuiAutoCompleteItem } from './models/eui-autocomplete-item.model';\n\n@Component({\n templateUrl: './eui-autocomplete.component.html',\n selector: 'eui-autocomplete, input[euiAutocomplete]',\n styleUrls: ['./styles/_index.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiAutocompleteComponent\n extends BaseDirective\n implements OnInit, OnDestroy, ControlValueAccessor, OnChanges, AfterViewInit, DoCheck {\n @Input() toggleLinkMoreLabel: string = null;\n @Input() toggleLinkLessLabel: string = null;\n @Input() autocompleteData: EuiAutoCompleteItem[] = [];\n @Input() autocompleteDataSelected: EuiAutoCompleteItem[] = [];\n @Input() chipsSortOrder: 'ASC' | 'DESC' = 'ASC';\n @Input() itemsSortOrder: 'ASC' | 'DESC' = 'ASC';\n @Input() placeholder = '';\n @Input() matching: 'startWith' | 'contains' = 'contains';\n @Input() chipsPosition: 'top' | 'bottom' | 'inside' = 'top';\n @Input() panelWidth: string | number;\n @Input() visibleOptions = 5;\n @Input() classList: string;\n @Input() groupBy: string;\n @Input() dragAndDropSourceName: string;\n @Input() dragAndDropConnectedTo: string[] = [];\n\n /** @deprecated This will be removed in next version of eui */\n @Output() closed = new EventEmitter();\n /** @deprecated This will be removed in next version of eui */\n @Output() opened = new EventEmitter();\n /** @deprecated This will be removed in next version of eui */\n @Output() selectionChanged = new EventEmitter<EuiAutoCompleteItem[]>();\n /** @deprecated This will be removed in next version of eui */\n @Output() itemAdded = new EventEmitter<EuiAutoCompleteItem>();\n /** @deprecated This will be removed in next version of eui */\n @Output() itemRemoved = new EventEmitter<EuiAutoCompleteItem>();\n /** @deprecated This will be removed in next version of eui */\n @Output() inputChanged = new EventEmitter<string>();\n /** @deprecated This will be removed in next version of eui */\n @Output() chipDragStarted = new EventEmitter<EuiChipDragDrop>();\n /** @deprecated This will be removed in next version of eui */\n @Output() chipDragReleased = new EventEmitter<EuiChipDragDrop>();\n /** @deprecated This will be removed in next version of eui */\n @Output() chipDropped = new EventEmitter<EuiChipDragDrop>();\n // euiInputText does not send event when the the field is cleared\n @Output() clear = new EventEmitter();\n\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() close = new EventEmitter();\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() open = new EventEmitter();\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() blur = new EventEmitter();\n @Output() selectionChange = new EventEmitter<EuiAutoCompleteItem[]>();\n @Output() itemAdd = new EventEmitter<EuiAutoCompleteItem>();\n @Output() itemRemove = new EventEmitter<EuiAutoCompleteItem>();\n @Output() inputChange = new EventEmitter<string>();\n @Output() chipDragStart = new EventEmitter<EuiChipDragDrop>();\n @Output() chipDragRelease = new EventEmitter<EuiChipDragDrop>();\n @Output() chipDrop = new EventEmitter<EuiChipDragDrop>();\n\n @HostBinding('class')\n get cssClasses(): string {\n return [this.hasChips ? 'eui-autocomplete--has-chips' : '', super.getCssClasses('eui-autocomplete')].join(' ').trim();\n }\n\n @ContentChildren(EuiTemplateDirective) templates: QueryList<EuiTemplateDirective>;\n\n @ViewChild('autocompleteInput', { read: ElementRef }) autocompleteInput: ElementRef<HTMLInputElement>;\n @ViewChild('autocompleteInputTrigger', { read: MatAutocompleteTrigger }) autocompleteInputTrigger: MatAutocompleteTrigger;\n @ViewChild('auto') matAutocomplete: MatAutocomplete;\n @ViewChild('chipList') chipList: EuiChipListComponent;\n @ViewChild('virtualScrolling') virtualScrolling: CdkVirtualScrollViewport;\n\n public autocompleteOptionTemplate: TemplateRef<{ $implicit: { label: string } }>;\n public autocompleteOptGroupTemplate: TemplateRef<{ $implicit: { label: string } }>;\n public separatorKeysCodes: number[] = [ENTER, COMMA];\n public autocompleteControl = new FormControl();\n public autocompleteOptions: BehaviorSubject<EuiAutoCompleteItem[]> = new BehaviorSubject<EuiAutoCompleteItem[]>(this.autocompleteData);\n public chips: EuiChip[] = [];\n public distinctOptionGroups: string[];\n public groupedOptions = new BehaviorSubject<{ [id: string]: { options: EuiAutoCompleteItem[], ancestorLength: number } }>({});\n public groupedItems: { [id: string]: Observable<EuiAutoCompleteItem[]> };\n public autocompleteId = `eui-autocomplete-${uniqueId()}`;\n public isDisabled = false;\n public selectedOptionIndex = -1;\n public itemSize = 48;\n\n @Input()\n get hasChips(): boolean {\n return this._hasChips;\n }\n set hasChips(value: BooleanInput) {\n this._hasChips = coerceBooleanProperty(value);\n }\n private _hasChips = false;\n @Input()\n get isGrid(): boolean {\n return this._isGrid;\n }\n set isGrid(value: BooleanInput) {\n this._isGrid = coerceBooleanProperty(value);\n }\n private _isGrid = true;\n @Input()\n get async(): boolean {\n return this._async;\n }\n set async(value: BooleanInput) {\n this._async = coerceBooleanProperty(value);\n }\n private _async = false;\n @Input()\n get addOnBlur(): boolean {\n return this._addOnBlur;\n }\n set addOnBlur(value: BooleanInput) {\n this._addOnBlur = coerceBooleanProperty(value);\n }\n private _addOnBlur = false;\n @Input()\n get isFreeValueAllowed(): boolean {\n return this._isFreeValueAllowed;\n }\n set isFreeValueAllowed(value: BooleanInput) {\n this._isFreeValueAllowed = coerceBooleanProperty(value);\n }\n private _isFreeValueAllowed = true;\n @Input()\n get isDuplicateValueAllowed(): boolean {\n return this._isDuplicateValueAllowed;\n }\n set isDuplicateValueAllowed(value: BooleanInput) {\n this._isDuplicateValueAllowed = coerceBooleanProperty(value);\n }\n private _isDuplicateValueAllowed = false;\n @Input()\n get isLoading(): boolean {\n return this._isLoading;\n }\n set isLoading(value: BooleanInput) {\n this._isLoading = coerceBooleanProperty(value);\n }\n private _isLoading = false;\n @Input()\n get isChipsRemovable(): boolean {\n return this._isChipsRemovable;\n }\n set isChipsRemovable(value: BooleanInput) {\n this._isChipsRemovable = coerceBooleanProperty(value);\n }\n private _isChipsRemovable = true;\n @Input()\n get maxVisibleChipsCount(): number {\n return this._maxVisibleChipsCount;\n }\n set maxVisibleChipsCount(value: NumberInput) {\n this._maxVisibleChipsCount = coerceNumberProperty(value);\n }\n private _maxVisibleChipsCount = null;\n @Input()\n get chipsLabelTruncateCount(): number {\n return this._chipsLabelTruncateCount;\n }\n set chipsLabelTruncateCount(value: NumberInput) {\n this._chipsLabelTruncateCount = coerceNumberProperty(value);\n }\n private _chipsLabelTruncateCount = null;\n @Input()\n get isMaxVisibleChipsOpened(): boolean {\n return this._isMaxVisibleChipsOpened;\n }\n set isMaxVisibleChipsOpened(value: BooleanInput) {\n this._isMaxVisibleChipsOpened = coerceBooleanProperty(value);\n }\n private _isMaxVisibleChipsOpened = false;\n @Input()\n get readonly(): boolean {\n return this._readonly;\n }\n set readonly(value: BooleanInput) {\n this._readonly = coerceBooleanProperty(value);\n }\n private _readonly = false;\n @Input()\n get isChipsSorted(): boolean {\n return this._isChipsSorted;\n }\n set isChipsSorted(value: BooleanInput) {\n this._isChipsSorted = coerceBooleanProperty(value);\n }\n private _isChipsSorted = false;\n @Input()\n get isItemsSorted(): boolean {\n return this._isItemsSorted;\n }\n set isItemsSorted(value: BooleanInput) {\n this._isItemsSorted = coerceBooleanProperty(value);\n }\n private _isItemsSorted = false;\n @Input()\n get isChipsDragAndDrop(): boolean {\n return this._isChipsDragAndDrop;\n }\n set isChipsDragAndDrop(value: BooleanInput) {\n this._isChipsDragAndDrop = coerceBooleanProperty(value);\n }\n private _isChipsDragAndDrop = false;\n @Input()\n get isForceSelection(): boolean {\n return this._isForceSelection;\n }\n set isForceSelection(value: BooleanInput) {\n this._isForceSelection = coerceBooleanProperty(value);\n }\n private _isForceSelection = false;\n @Input()\n get autoActiveFirstOption(): boolean {\n return this._autoActiveFirstOption;\n }\n set autoActiveFirstOption(value: BooleanInput) {\n this._autoActiveFirstOption = coerceBooleanProperty(value);\n }\n private _autoActiveFirstOption = true;\n\n get isChipsGrid(): boolean {\n if (this._isGrid) {\n return this._isChipsDragAndDrop && this.dragAndDropConnectedTo.length === 0;\n } else {\n return this._isGrid;\n }\n }\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private nbClick = 0;\n private ignoreOpenCloseEvents = false;\n private value: EuiAutoCompleteItem | EuiAutoCompleteItem[] = null;\n private fieldValue = null;\n private scrollDispatcherSubscription = new Subscription();\n private keyboardOptionSelectorHandlerSubscription = new Subscription();\n\n constructor(\n private cd: ChangeDetectorRef,\n @Self() @Optional() private control: NgControl,\n private scrollDispatcher: ScrollDispatcher,\n private elementRef: ElementRef,\n ) {\n super();\n if (this.control) {\n this.control.valueAccessor = this;\n }\n }\n\n ngOnChanges(c: SimpleChanges): void {\n if (c && c.autocompleteData) {\n this.autocompleteOptions.next(this._filter(''));\n\n if (this.groupBy) {\n this.groupingHandler();\n }\n }\n\n if (c && c.autocompleteDataSelected && this.hasChips) {\n this.autocompleteDataSelected = this.autocompleteDataSelected.map(\n (selected) => new EuiAutoCompleteItem(Object.assign({}, selected, { euiInternalId: this.generateId() })),\n );\n\n this.chips = this.mapAsChip();\n this.autocompleteOptions.next(this._filter(''));\n }\n\n if (c && c.visibleOptions) {\n this.classList = 'eui-autocomplete--no-max-height';\n }\n }\n\n ngOnInit(): void {\n const start = Array.isArray(this.value) ? null : this.value?.label;\n this.autocompleteOptions.next(this._filter(start));\n this.autocompleteControl.valueChanges.pipe(takeUntil(this.destroy$), startWith(start), skip(1)).subscribe((value) => {\n this.selectedOptionIndex = 0;\n this.fieldValue = value;\n this.inputValueHandler(value);\n });\n\n if (this.groupBy) {\n this.groupingHandler();\n this.autocompleteOptions.pipe(takeUntil(this.destroy$)).subscribe((options) => {\n this.groupingHandler();\n });\n }\n }\n\n // TODO: Refactor ngDoCheck when euiInput Text will refactor this hooks\n ngDoCheck(): void {\n if (this.control) {\n this.control.touched ? this.autocompleteControl.markAsTouched() : this.autocompleteControl.markAsUntouched();\n this.control.invalid ? this.autocompleteControl.setErrors({ invalid: true }) : this.autocompleteControl.setErrors(null);\n this.cd.detectChanges();\n }\n }\n\n ngAfterViewInit(): void {\n this.templates.forEach((item) => {\n if (item.getType() === 'dropdownOption') {\n this.autocompleteOptionTemplate = item.template;\n }\n if (item.getType() === 'dropdownOptGroup') {\n this.autocompleteOptGroupTemplate = item.template;\n }\n });\n\n if (this.hasChips) {\n this.chips = this.mapAsChip();\n this.cd.detectChanges();\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n get nbOptionsVisible(): number {\n return this.visibleOptions;\n }\n\n get cdkVirtualScrollViewport(): number {\n if (this.groupBy) {\n const filteredOptionGroups: string[] = this.autocompleteOptions.value\n .map(item => this.groupBy.split('.').reduce((prev, curr) => (prev ? prev[curr] : null), item || self))\n .filter((optionGroup: string) => {\n return (\n this.autocompleteOptions.value.some(\n (option) => this.groupBy.split('.').reduce((prev, curr) => (prev ? prev[curr] : null), option || self) === optionGroup,\n )\n );\n })\n .filter((optionGroup: string, index, array: string[]) => array.indexOf(optionGroup) === index);\n\n if (this.autocompleteOptions.value.length >= this.visibleOptions) {\n return this.visibleOptions * this.itemSize;\n } else {\n const scrollItems = this.autocompleteOptions.value.length + filteredOptionGroups.length;\n return (scrollItems > this.visibleOptions ? this.visibleOptions : scrollItems) * this.itemSize;\n }\n } else {\n return this.autocompleteOptions.value.length >= this.visibleOptions ?\n this.visibleOptions * this.itemSize :\n this.autocompleteOptions.value.length * this.itemSize;\n }\n }\n\n public addOnBlurHandler(event: FocusEvent): void {\n if (this.addOnBlur) {\n const target: HTMLElement = event.relatedTarget as HTMLElement;\n if (!target || target.tagName !== 'MAT-OPTION') {\n const newValue = this.autocompleteInput.nativeElement.value;\n this.add(newValue);\n }\n }\n }\n\n public addOnEnterHandler(): void {\n const newValue = this.autocompleteInput.nativeElement.value;\n this.add(newValue);\n }\n\n public add(newValue: string): void {\n if (this.isFreeValueAllowed) {\n if ((newValue || '').trim()) {\n const foundItem = !this.isDuplicateValueAllowed\n ? this.autocompleteDataSelected.find((selectedItem) => selectedItem.label.toString().trim() === newValue.trim())\n : false;\n\n if (!foundItem) {\n this.autocompleteDataSelected.push(new EuiAutoCompleteItem({ label: newValue.trim() }));\n this.chips = this.mapAsChip();\n this.autocompleteInput.nativeElement.value = '';\n this.autocompleteControl.setValue(null);\n this.autocompleteInputTrigger.closePanel();\n\n this.selectionChanged.emit(this.autocompleteDataSelected);\n this.selectionChange.emit(this.autocompleteDataSelected);\n this.itemAdded.emit(new EuiAutoCompleteItem({ label: newValue.trim() }));\n this.itemAdd.emit(new EuiAutoCompleteItem({ label: newValue.trim() }));\n }\n }\n }\n }\n\n public onOptionSelected(event: MatAutocompleteSelectedEvent): void {\n const value = event.option.value;\n\n if (this.hasChips) {\n this.autocompleteDataSelected.push(value);\n this.autocompleteInput.nativeElement.value = '';\n this.autocompleteControl.setValue(null);\n } else {\n this.autocompleteDataSelected = value;\n this.autocompleteInput.nativeElement.value = value.label;\n this.autocompleteControl.setValue(value.label, { emitEvent: false });\n }\n\n if (this.hasChips) {\n this.autocompleteOptions.next(this._filter(''));\n }\n\n this.selectionChanged.emit(this.autocompleteDataSelected);\n this.selectionChange.emit(this.autocompleteDataSelected);\n this.itemAdded.emit(value);\n this.itemAdd.emit(value);\n }\n\n public onChipRemove(e: { chips: EuiChip[]; removed: EuiChip | { chip: EuiChip; event: Event } }): void {\n const autocompleteDataRemoved = this.autocompleteDataSelected.find((data) =>\n e.removed instanceof EuiChip\n ? data.euiInternalId === e.removed.euiInternalId\n : data.euiInternalId === e.removed.chip.euiInternalId,\n );\n\n this.autocompleteDataSelected = this.autocompleteDataSelected.filter((data) =>\n e.removed instanceof EuiChip\n ? data.euiInternalId !== e.removed.euiInternalId\n : data.euiInternalId !== e.removed.chip.euiInternalId,\n );\n\n if (!this.isDuplicateValueAllowed) {\n this.autocompleteOptions.next(\n this.isItemsSorted ? (this.orderItems(this._filter(''), this.itemsSortOrder) as EuiAutoCompleteItem[]) : this._filter(''),\n );\n }\n\n this.onChange(this.autocompleteDataSelected.length > 0 ? this.autocompleteDataSelected : null);\n this.selectionChanged.emit(this.autocompleteDataSelected);\n this.selectionChange.emit(this.autocompleteDataSelected);\n this.itemRemoved.emit(autocompleteDataRemoved);\n this.itemRemove.emit(autocompleteDataRemoved);\n if (\n !(e.removed instanceof EuiChip) &&\n e.removed.event instanceof KeyboardEvent &&\n (e.removed.event as KeyboardEvent).code === 'Backspace' &&\n this.chipList.euiChipItems.length > 1\n ) {\n this.chipList.euiChipItems\n .get(this.chipList.euiChipItems.length - 2)\n .nativeElement.querySelector('.eui-chip__remove-icon')\n .focus();\n }\n }\n\n /** @deprecated This will be removed in eUI-14 */\n public onClick(): void {\n if (!this.readonly) {\n if (this.nbClick > 0) {\n this.matAutocomplete.isOpen ? this.autocompleteInputTrigger.closePanel() : this.autocompleteInputTrigger.openPanel();\n }\n this.nbClick += 1;\n }\n }\n\n /** @deprecated This will be removed in eUI-14 */\n public resetNbClick(e: FocusEvent): void {\n if (!e.relatedTarget || e.relatedTarget['className'].indexOf('mat-option') === -1) {\n this.nbClick = 0;\n }\n\n this.onTouch();\n }\n\n public onFocus(): void {\n if (this.isForceSelection) {\n if (this.hasChips) {\n this.autocompleteControl.setValue(null);\n } else {\n if (!this.autocompleteData.find(a => a.label?.toLowerCase() === this.autocompleteControl.value?.toLowerCase())) {\n this.autocompleteControl.setValue(null);\n }\n }\n }\n }\n\n public onFocusOut(): void {\n this.onTouch();\n\n if (this.isForceSelection) {\n if (this.hasChips) {\n setTimeout(() => {\n this.autocompleteInput.nativeElement.value = '';\n this.autocompleteControl.setValue(null);\n }, 250);\n } else {\n setTimeout(() => {\n if (!this.autocompleteData.find(a => a.label?.toLowerCase() === this.autocompleteControl.value?.toLowerCase())) {\n this.autocompleteInput.nativeElement.value = '';\n this.autocompleteControl.setValue(null);\n }\n }, 250);\n }\n }\n\n this.blur.emit();\n }\n\n public trackByFn(index: number): number {\n return index;\n }\n\n public onClose(): void {\n this.scrollDispatcherSubscription.unsubscribe();\n if (!this.ignoreOpenCloseEvents) {\n this.closed.emit();\n this.close.emit();\n }\n this.virtualScrolling.scrollToIndex(0);\n this.selectedOptionIndex = -1;\n this.keyboardOptionSelectorHandlerSubscription.unsubscribe();\n }\n\n public onOpen(): void {\n setTimeout(() => {\n this.itemSize = (this.matAutocomplete.options?.first['_element']?.nativeElement?.clientHeight + 1) || 48;\n });\n\n this.scrollDispatcherSubscription = this.scrollDispatcher\n .ancestorScrolled(this.autocompleteInput)\n .subscribe((event: CdkScrollable) => {\n const scrollableParent = event ? event.getElementRef().nativeElement : document.querySelector('body');\n if (!this.isVisible(this.autocompleteInput.nativeElement, scrollableParent)) {\n this.autocompleteInputTrigger.closePanel();\n }\n });\n if (!this.ignoreOpenCloseEvents) {\n this.opened.emit();\n this.open.emit();\n }\n\n let visibleRangeStart = 0;\n let visibleRangeEnd = this.visibleOptions - 1;\n\n if (this.autocompleteOptions.value.length < this.nbOptionsVisible) {\n visibleRangeEnd = this.autocompleteOptions.value.length - 1;\n }\n\n this.keyboardOptionSelectorHandlerSubscription = fromEvent(this.elementRef.nativeElement, 'keydown')\n .pipe(\n takeUntil(this.destroy$),\n filter((e: KeyboardEvent) => e.code === 'ArrowDown' || e.code === 'ArrowUp'),\n // startWith(this.autoActiveFirstOption ? { code: 'ArrowDown' } : null),\n )\n .subscribe((e: KeyboardEvent) => {\n if (e) {\n if (e.code === 'ArrowDown' && this.selectedOptionIndex < this.autocompleteOptions.value.length - 1) {\n this.selectedOptionIndex++;\n }\n\n if (e.code === 'ArrowUp' && this.selectedOptionIndex > 0) {\n this.selectedOptionIndex--;\n }\n\n const cIndex = this.selectedOptionIndex - this.virtualScrolling.getRenderedRange().start;\n\n this.matAutocomplete._keyManager.setActiveItem(cIndex);\n this.matAutocomplete.options.toArray()[cIndex]?.setActiveStyles();\n\n if (e.code === 'ArrowDown' && cIndex > visibleRangeEnd - visibleRangeStart - visibleRangeEnd) {\n let nbOptionsGroup = 0;\n const nbOptions = this.autocompleteOptions.value.length;\n if (this.groupBy) {\n Object.keys(this.groupedOptions.value).forEach(groupedOption => {\n if (this.groupedOptions.value[groupedOption].options.length > 0 &&\n this.selectedOptionIndex > this.groupedOptions.value[groupedOption].ancestorLength - 1) {\n nbOptionsGroup ++;\n }\n });\n }\n\n if ((this.selectedOptionIndex + nbOptionsGroup) > visibleRangeEnd && visibleRangeEnd <= nbOptions) {\n this.virtualScrolling.scrollToIndex((this.selectedOptionIndex + nbOptionsGroup) - visibleRangeEnd + visibleRangeStart);\n visibleRangeStart++;\n visibleRangeEnd++;\n }\n this.cd.detectChanges();\n }\n if (e.code === 'ArrowUp' && cIndex < visibleRangeStart) {\n if (this.selectedOptionIndex < visibleRangeStart) {\n this.virtualScrolling.scrollToIndex(this.selectedOptionIndex);\n visibleRangeStart--;\n visibleRangeEnd--;\n }\n }\n }\n });\n }\n\n public writeValue(value: EuiAutoCompleteItem | EuiAutoCompleteItem[]): void {\n this.value = value;\n\n if (this.hasChips) {\n this.autocompleteDataSelected = value ? (value as EuiAutoCompleteItem[]) : [];\n this.autocompleteDataSelected = this.autocompleteDataSelected.map(\n (selected) => new EuiAutoCompleteItem(Object.assign({}, selected, { euiInternalId: this.generateId() })),\n );\n this.chips = [...this.mapAsChip()];\n this.autocompleteControl.patchValue(null, { emitEvent: false });\n\n this.autocompleteOptions.next(this._filter(''));\n } else {\n this.autocompleteControl.patchValue(value ? (value as EuiAutoCompleteItem).label : null, { emitEvent: false });\n this.fieldValue = value ? (value as EuiAutoCompleteItem).label : null;\n this.autocompleteOptions.next(this._filter(this.fieldValue));\n }\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n isDisabled ? this.autocompleteControl.disable() : this.autocompleteControl.enable();\n }\n\n public registerOnChange(fn: () => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouch = fn;\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public onChipDropped(e: any): void {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.autocompleteDataSelected = e.chips.map((c: any) => {\n const found = this.autocompleteDataSelected.find((a) => a.id === c.id);\n return found ? found : new EuiAutoCompleteItem({ ...c.data, euiInternalId: c.euiInternalId });\n });\n\n this.chips = this.mapAsChip();\n this.autocompleteOptions.next(this._filter(''));\n\n this.onChange(this.autocompleteDataSelected.length > 0 ? this.autocompleteDataSelected : null);\n this.selectionChanged.emit(this.autocompleteDataSelected);\n this.selectionChange.emit(this.autocompleteDataSelected);\n\n this.chipDropped.emit(e);\n this.chipDrop.emit(e);\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public onChipDragStarted(e: any): void {\n this.chipDragStarted.emit(e);\n this.chipDragStart.emit(e);\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public onChipDragReleased(e: any): void {\n this.chipDragReleased.emit(e);\n this.chipDragRelease.emit(e);\n }\n\n public onClear(): void {\n this.clear.next(undefined);\n }\n\n public onChipListFocus(): void {\n this.autocompleteInputTrigger.closePanel();\n }\n\n public onKeyDownBackspace(): void {\n if (this.chipsPosition === 'inside' && this.autocompleteInput.nativeElement.value === '' && this.chipList.euiChipItems.length > 0) {\n this.onChipListFocus();\n this.chipList.euiChipItems.last.nativeElement.querySelector('.eui-chip__remove-icon').focus();\n }\n }\n\n private isVisible(origin: HTMLElement, scrollableParent: HTMLElement): boolean {\n const originY = origin.getBoundingClientRect().y;\n const scrollableParentY = Math.abs(scrollableParent.getBoundingClientRect().y);\n const scrollableParentHeight = scrollableParent.getBoundingClientRect().height - 50;\n\n return (\n (originY > 0 && originY < scrollableParentHeight) ||\n (originY - scrollableParentY > 0 && originY < scrollableParentY + scrollableParentHeight)\n );\n }\n\n private inputValueHandler(value: string | EuiAutoCompleteItem): void {\n if (this.hasChips) {\n this.autocompleteDataSelected = this.autocompleteDataSelected.map(\n (selected) => new EuiAutoCompleteItem(Object.assign({}, selected, { euiInternalId: this.generateId() })),\n );\n\n this.chips = this.mapAsChip();\n\n // value is null when chips is added, testing value prevent having two valuechanges triggered\n if (!value) {\n this.onChange(this.autocompleteDataSelected.length > 0 ? this.autocompleteDataSelected : null);\n }\n } else {\n if (typeof value === 'string') {\n const foundItem = this.autocompleteData.find((data) =>\n data && data.label && value && typeof value === 'string'\n ? data.label.toLowerCase().trim() === value.toLowerCase().trim()\n : false,\n );\n\n if (foundItem) {\n this.onChange(foundItem);\n } else {\n value ? this.onChange(new EuiAutoCompleteItem({ label: value })) : this.onChange(null);\n }\n } else {\n this.onChange(value === undefined ? null : value);\n if (!value) {\n this.autocompleteOptions.next(this._filter(''));\n }\n }\n }\n\n this.inputChanged.emit(value as string);\n this.inputChange.emit(value as string);\n\n if (!this.async) {\n const filterValue = typeof value === 'string' || !value ? value : value.label;\n this.autocompleteOptions.next(\n this.isItemsSorted\n ? (this.orderItems(this._filter(filterValue as string), this.itemsSortOrder) as EuiAutoCompleteItem[])\n : this._filter(filterValue as string),\n );\n }\n }\n\n private onChange = <T>(change?: T): void => {\n /** empty */\n };\n\n private onTouch = (): void => {\n /** empty */\n };\n\n private _filter(str: string): EuiAutoCompleteItem[] {\n const filteredItems: EuiAutoCompleteItem[] = [];\n this.autocompleteData.forEach((item: EuiAutoCompleteItem) => {\n const foundItem =\n !this.isDuplicateValueAllowed && Array.isArray(this.autocompleteDataSelected)\n ? this.autocompleteDataSelected.find((selectedItem: EuiAutoCompleteItem) => {\n if (item.id) {\n return selectedItem.id === item.id;\n } else {\n return selectedItem.label.toLowerCase() === item.label.toLowerCase();\n }\n })\n : false;\n\n if (!foundItem) {\n if (str) {\n if (this.matching === 'contains' && item.label.toLowerCase().indexOf(str.toString().toLowerCase()) !== -1) {\n filteredItems.push(item);\n }\n if (this.matching === 'startWith' && item.label.toLowerCase().substr(0, str.toString().length) === str.toLowerCase()) {\n filteredItems.push(item);\n }\n } else {\n filteredItems.push(item);\n }\n }\n });\n\n return this.isItemsSorted ? (this.orderItems(filteredItems, this.itemsSortOrder) as EuiAutoCompleteItem[]) : filteredItems;\n }\n\n private mapAsChip(): EuiChip[] {\n const chips = this.autocompleteDataSelected.map(\n (selected) =>\n new EuiChip({\n id: selected.id,\n euiInternalId: selected.euiInternalId,\n label: selected.label,\n typeClass: selected.typeClass,\n isOutline: selected.isOutline,\n isRounded: selected.isRounded,\n sizeClass: selected.sizeClass,\n isRemovable: selected.isRemovable,\n tooltipMessage: selected.tooltip?.tooltipMessage,\n tooltip: new EuiChipTooltip(selected.tooltip),\n iconClass: selected.iconClass,\n }),\n );\n\n return this.isChipsSorted ? (this.orderItems(chips, this.chipsSortOrder) as EuiChip[]) : chips;\n }\n\n private generateId(): string {\n return '_' + Math.random().toString(36).substr(2, 9);\n }\n\n private orderItems(tab: EuiAutoCompleteItem[] | EuiChip[], sortOrder: 'ASC' | 'DESC'): EuiAutoCompleteItem[] | EuiChip[] {\n tab.sort((a: EuiAutoCompleteItem | EuiChip, b: EuiAutoCompleteItem | EuiChip) => {\n const aObj = a.label.toLowerCase();\n const bObj = b.label.toLowerCase();\n\n if (sortOrder === 'ASC') {\n if (aObj < bObj) {\n return -1;\n }\n if (aObj > bObj) {\n return 1;\n }\n return 0;\n } else {\n if (aObj > bObj) {\n return -1;\n }\n if (aObj < bObj) {\n return 1;\n }\n return 0;\n }\n });\n\n return tab;\n }\n\n private groupingHandler(): void {\n const distinctGroups: string[] = this.autocompleteData.map(item => this.groupBy.split('.').reduce((prev, curr) => (prev ? prev[curr] : null), item || self));\n const distinctOptionGroups: string[] = [...new Set(distinctGroups)].sort((a: string, b: string) => (a > b ? 1 : -1));\n const groupedOptions: { [id: string]: { options: EuiAutoCompleteItem[], ancestorLength: number } } = {};\n \n let ancestorLength = 0;\n for (const group of distinctOptionGroups) {\n let o = this.autocompleteOptions.value.filter(option => this.groupBy.split('.').reduce((prev, curr) => (prev ? prev[curr] : null), option || self) === group);\n if (this.isItemsSorted) {\n o = this.orderItems(o, this.itemsSortOrder) as EuiAutoCompleteItem[];\n }\n\n groupedOptions[group] = { options: o, ancestorLength };\n ancestorLength += o.length;\n }\n \n this.groupedOptions.next(groupedOptions);\n this.distinctOptionGroups = distinctOptionGroups;\n }\n}\n","<div class=\"eui-autocomplete__container\" matAutocompleteOrigin #origin=\"matAutocompleteOrigin\">\n <div class=\"eui-autocomplete__wrapper eui-autocomplete__wrapper--{{ chipsPosition }}\">\n <ng-template [ngIf]=\"chipsPosition === 'bottom'\">\n <ng-container *ngTemplateOutlet=\"field\"></ng-container>\n </ng-template>\n\n <ng-container *ngIf=\"hasChips\">\n <eui-chip-list\n #chipList\n [chips]=\"chips\"\n [isGrid]=\"isChipsGrid\"\n [isChipsDragAndDrop]=\"isChipsDragAndDrop\"\n [isChipsRemovable]=\"isChipsRemovable && !readonly\"\n [isChipsSorted]=\"isChipsSorted\"\n [chipsSortOrder]=\"chipsSortOrder\"\n [maxVisibleChipsCount]=\"maxVisibleChipsCount\"\n [isMaxVisibleChipsOpened]=\"isMaxVisibleChipsOpened\"\n [toggleLinkMoreLabel]=\"toggleLinkMoreLabel\"\n [toggleLinkLessLabel]=\"toggleLinkLessLabel\"\n [chipsLabelTruncateCount]=\"chipsLabelTruncateCount\"\n [dragAndDropSourceName]=\"dragAndDropSourceName\"\n [dragAndDropConnectedTo]=\"dragAndDropConnectedTo\"\n (chipDropped)=\"onChipDropped($event)\"\n (chipDragStarted)=\"onChipDragStarted($event)\"\n (chipDragReleased)=\"onChipDragReleased($event)\"\n (chipRemove)=\"onChipRemove($event)\"\n (chiplistFocus)=\"onChipListFocus()\">\n <euiChipListAppendContent>\n <ng-template [ngIf]=\"chipsPosition === 'inside'\">\n <ng-container *ngTemplateOutlet=\"field\"></ng-container>\n </ng-template>\n </euiChipListAppendContent>\n </eui-chip-list>\n </ng-container>\n\n <ng-template [ngIf]=\"chipsPosition === 'top' || !hasChips\">\n <ng-container *ngTemplateOutlet=\"field\"></ng-container>\n </ng-template>\n\n <ng-template #field>\n <span class=\"eui-autocomplete__field-wrapper\">\n <ng-container *ngIf=\"!hasChips\">\n <input\n [euiClearable]=\"!readonly && !isLoading && !isDisabled\"\n [euiLoading]=\"isLoading\"\n euiInputText\n #autocompleteInput\n #autocompleteInputTrigger\n placeholder=\"{{ placeholder }}\"\n [matAutocompleteDisabled]=\"readonly\"\n [formControl]=\"autocompleteControl\"\n [matAutocomplete]=\"auto\"\n [readonly]=\"readonly\"\n [attr.aria-label]=\"placeholder ? placeholder : 'Autocomplete Input Field'\"\n (clear)=\"onClear()\"\n (focusout)=\"onFocusOut()\"\n (focus)=\"onFocus()\"\n role=\"combobox\"\n aria-autocomplete=\"both\"\n aria-haspopup=\"true\"\n aria-controls=\"autocompleteId\" />\n </ng-container>\n <ng-container *ngIf=\"hasChips\">\n <input\n [euiClearable]=\"!readonly && !isLoading && !isDisabled\"\n [euiLoading]=\"isLoading\"\n euiInputText\n #autocompleteInput\n #autocompleteInputTrigger\n placeholder=\"{{ placeholder }}\"\n [matAutocompleteDisabled]=\"readonly\"\n [formControl]=\"autocompleteControl\"\n [matAutocomplete]=\"auto\"\n [matAutocompleteConnectedTo]=\"chipsPosition === 'inside' ? origin : null\"\n [readonly]=\"readonly\"\n [attr.aria-label]=\"placeholder ? placeholder : 'Autocomplete Input Field'\"\n (clear)=\"onClear()\"\n (focusout)=\"onFocusOut(); addOnBlurHandler($event)\"\n (focus)=\"onFocus()\"\n (keydown.enter)=\"addOnEnterHandler()\"\n (keydown.backspace)=\"onKeyDownBackspace()\"\n role=\"combobox\"\n aria-autocomplete=\"both\"\n aria-haspopup=\"true\"\n aria-controls=\"autocompleteId\" />\n </ng-container>\n\n <mat-autocomplete\n [id]=\"autocompleteId\"\n #auto=\"matAutocomplete\"\n [panelWidth]=\"panelWidth === 'auto' ? null : panelWidth\"\n [class]=\"classList\"\n [autoActiveFirstOption]=\"autoActiveFirstOption\"\n [hideSingleSelectionIndicator]=\"true\"\n (closed)=\"onClose()\"\n (opened)=\"onOpen()\"\n (optionSelected)=\"onOptionSelected($event)\">\n <ng-container *ngIf=\"groupBy\">\n <cdk-virtual-scroll-viewport\n #virtualScrolling\n [itemSize]=\"itemSize\"\n minBufferPx=\"500\"\n maxBufferPx=\"750\"\n [style.min-height]=\"cdkVirtualScrollViewport + 'px'\">\n <ng-container *ngFor=\"let distinctOptionGroup of distinctOptionGroups; let i=index\">\n <mat-optgroup\n [class.eui-autocomplete__optgroup--custom]=\"autocompleteOptGroupTemplate\"\n *ngIf=\"(groupedOptions | async)[distinctOptionGroup].options.length > 0\"\n [label]=\"distinctOptionGroup\">\n <ng-container *ngIf=\"autocompleteOptGroupTemplate\">\n <div class=\"eui-autocomplete__optgroup--custom-optgroup-wrapper\">\n <ng-template\n [ngTemplateOutlet]=\"autocompleteOptGroupTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { label: distinctOptionGroup } }\"></ng-template>\n </div>\n </ng-container>\n <mat-option\n *ngFor=\"let autocompleteOption of (groupedOptions | async)[distinctOptionGroup].options; trackBy: trackByFn; let ii=index\"\n [disabled]=\"autocompleteOption.isDisabled\"\n [class]=\"\n autocompleteOption.typeClass\n ? 'mat-option eui-autocomplete__option eui-autocomplete__option--' + autocompleteOption.typeClass\n : 'mat-option eui-autocomplete__option'\n \"\n [class.eui-autocomplete__option--custom]=\"autocompleteOptionTemplate\"\n [class.mat-mdc-option-active]=\"selectedOptionIndex === (groupedOptions | async)[distinctOptionGroup].ancestorLength + ii\"\n [value]=\"autocompleteOption\">\n <span *ngIf=\"autocompleteOption.iconClass\" class=\"{{ autocompleteOption.iconClass }}\"></span>\n <ng-container *ngIf=\"!autocompleteOptionTemplate\">\n {{ autocompleteOption.label }}\n </ng-container>\n <ng-container *ngIf=\"autocompleteOptionTemplate\">\n <ng-template\n [ngTemplateOutlet]=\"autocompleteOptionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: autocompleteOption }\"></ng-template>\n </ng-container>\n </mat-option>\n </mat-optgroup>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </ng-container>\n <ng-container *ngIf=\"!groupBy\">\n <cdk-virtual-scroll-viewport\n #virtualScrolling\n [itemSize]=\"itemSize\"\n minBufferPx=\"500\"\n maxBufferPx=\"750\"\n [style.min-height]=\"cdkVirtualScrollViewport + 'px'\">\n <mat-option\n *cdkVirtualFor=\"let autocompleteOption of autocompleteOptions | async; let i = index; trackBy: trackByFn\"\n [disabled]=\"autocompleteOption.isDisabled\"\n [class]=\"\n autocompleteOption.typeClass\n ? 'mat-option eui-autocomplete__option eui-autocomplete__option--' + autocompleteOption.typeClass\n : 'mat-option eui-autocomplete__option'\n \"\n [class.eui-autocomplete__option--custom]=\"autocompleteOptionTemplate\"\n [class.mat-mdc-option-active]=\"i === selectedOptionIndex\"\n [class.mdc-list-item--selected]=\"false\"\n [value]=\"autocompleteOption\">\n <span *ngIf=\"autocompleteOption.iconClass\" class=\"{{ autocompleteOption.iconClass }}\"></span>\n <ng-container *ngIf=\"!autocompleteOptionTemplate\">{{ autocompleteOption.label }}</ng-container>\n <ng-container *ngIf=\"autocompleteOptionTemplate\">\n <ng-template\n [ngTemplateOutlet]=\"autocompleteOptionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: autocompleteOption }\"></ng-template>\n </ng-container>\n </mat-option>\n </cdk-virtual-scroll-viewport>\n </ng-container>\n </mat-autocomplete>\n </span>\n </ng-template>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\n\nimport { EuiChipListModule } from '@eui/components/eui-chip-list';\nimport { EuiChipModule } from '@eui/components/eui-chip';\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiInputTextModule } from '@eui/components/eui-input-text';\n\nimport { EuiAutocompleteComponent } from './eui-autocomplete.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatAutocompleteModule,\n EuiChipListModule,\n EuiChipModule,\n EuiIconModule,\n EuiInputTextModule,\n ScrollingModule,\n ],\n declarations: [EuiAutocompleteComponent],\n exports: [EuiAutocompleteComponent],\n})\nexport class EuiAutocompleteModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-components-eui-autocomplete.mjs","sources":["../../eui-autocomplete/models/eui-autocomplete-item.model.ts","../../eui-autocomplete/eui-autocomplete.component.ts","../../eui-autocomplete/eui-autocomplete.component.html","../../eui-autocomplete/eui-autocomplete.module.ts","../../eui-autocomplete/eui-components-eui-autocomplete.ts"],"sourcesContent":["import { EuiChipTooltip } from '@eui/components/eui-chip';\n\n// TODO: on v17 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class EuiAutoCompleteItem<METADATA = any> {\n id: string | number;\n euiInternalId: string;\n label: string;\n typeClass: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'danger';\n sizeClass: 'euiSizeS' | 'euiSizeM' | 'euiSizeL' | 'euiSizeXL' | 'euiSize2XL';\n iconClass: string;\n isRemovable: boolean;\n isOutline: boolean;\n isRounded: boolean;\n dragAndDropSource: string;\n isDisabled = false;\n tooltip?: EuiChipTooltip;\n metadata?: METADATA;\n\n constructor(values = {}) {\n Object.assign(this, values);\n }\n}\n","import {\n Component,\n Input,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n OnInit,\n OnDestroy,\n ElementRef,\n ViewChild,\n OnChanges,\n ChangeDetectorRef,\n Output,\n EventEmitter,\n SimpleChanges,\n QueryList,\n AfterViewInit,\n TemplateRef,\n ContentChildren,\n HostBinding,\n Self,\n Optional,\n DoCheck,\n} from '@angular/core';\nimport { FormControl, ControlValueAccessor, NgControl } from '@angular/forms';\nimport { coerceBooleanProperty, coerceNumberProperty, BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport { skip, startWith, takeUntil } from 'rxjs/operators';\nimport { Subject, BehaviorSubject, of, Observable, Subscription, fromEvent, filter } from 'rxjs';\nimport { MatAutocomplete, MatAutocompleteSelectedEvent, MatAutocompleteTrigger } from '@angular/material/autocomplete';\nimport { CdkScrollable, ScrollDispatcher, CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\n\nimport { uniqueId } from '@eui/core';\nimport { EuiChip, EuiChipTooltip } from '@eui/components/eui-chip';\nimport { EuiChipDragDrop, EuiChipListComponent } from '@eui/components/eui-chip-list';\nimport { EuiTemplateDirective } from '@eui/components/directives';\nimport { BaseDirective } from '@eui/components/shared';\n\nimport { EuiAutoCompleteItem } from './models/eui-autocomplete-item.model';\n\n@Component({\n templateUrl: './eui-autocomplete.component.html',\n selector: 'eui-autocomplete, input[euiAutocomplete]',\n styleUrls: ['./styles/_index.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiAutocompleteComponent\n extends BaseDirective\n implements OnInit, OnDestroy, ControlValueAccessor, OnChanges, AfterViewInit, DoCheck {\n @Input() toggleLinkMoreLabel: string = null;\n @Input() toggleLinkLessLabel: string = null;\n @Input() autocompleteData: EuiAutoCompleteItem[] = [];\n @Input() autocompleteDataSelected: EuiAutoCompleteItem[] = [];\n @Input() chipsSortOrder: 'ASC' | 'DESC' = 'ASC';\n @Input() itemsSortOrder: 'ASC' | 'DESC' = 'ASC';\n @Input() placeholder = '';\n @Input() matching: 'startWith' | 'contains' = 'contains';\n @Input() chipsPosition: 'top' | 'bottom' | 'inside' = 'top';\n @Input() panelWidth: string | number;\n @Input() visibleOptions = 5;\n @Input() classList: string;\n @Input() groupBy: string;\n @Input() dragAndDropSourceName: string;\n @Input() dragAndDropConnectedTo: string[] = [];\n\n /** @deprecated This will be removed in next version of eui */\n @Output() closed = new EventEmitter();\n /** @deprecated This will be removed in next version of eui */\n @Output() opened = new EventEmitter();\n /** @deprecated This will be removed in next version of eui */\n @Output() selectionChanged = new EventEmitter<EuiAutoCompleteItem[]>();\n /** @deprecated This will be removed in next version of eui */\n @Output() itemAdded = new EventEmitter<EuiAutoCompleteItem>();\n /** @deprecated This will be removed in next version of eui */\n @Output() itemRemoved = new EventEmitter<EuiAutoCompleteItem>();\n /** @deprecated This will be removed in next version of eui */\n @Output() inputChanged = new EventEmitter<string>();\n /** @deprecated This will be removed in next version of eui */\n @Output() chipDragStarted = new EventEmitter<EuiChipDragDrop>();\n /** @deprecated This will be removed in next version of eui */\n @Output() chipDragReleased = new EventEmitter<EuiChipDragDrop>();\n /** @deprecated This will be removed in next version of eui */\n @Output() chipDropped = new EventEmitter<EuiChipDragDrop>();\n // euiInputText does not send event when the the field is cleared\n @Output() clear = new EventEmitter();\n\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() close = new EventEmitter();\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() open = new EventEmitter();\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() blur = new EventEmitter();\n @Output() selectionChange = new EventEmitter<EuiAutoCompleteItem[]>();\n @Output() itemAdd = new EventEmitter<EuiAutoCompleteItem>();\n @Output() itemRemove = new EventEmitter<EuiAutoCompleteItem>();\n @Output() inputChange = new EventEmitter<string>();\n @Output() chipDragStart = new EventEmitter<EuiChipDragDrop>();\n @Output() chipDragRelease = new EventEmitter<EuiChipDragDrop>();\n @Output() chipDrop = new EventEmitter<EuiChipDragDrop>();\n\n @HostBinding('class')\n get cssClasses(): string {\n return [this.hasChips ? 'eui-autocomplete--has-chips' : '', super.getCssClasses('eui-autocomplete')].join(' ').trim();\n }\n\n @ContentChildren(EuiTemplateDirective) templates: QueryList<EuiTemplateDirective>;\n\n @ViewChild('autocompleteInput', { read: ElementRef }) autocompleteInput: ElementRef<HTMLInputElement>;\n @ViewChild('autocompleteInputTrigger', { read: MatAutocompleteTrigger }) autocompleteInputTrigger: MatAutocompleteTrigger;\n @ViewChild('auto') matAutocomplete: MatAutocomplete;\n @ViewChild('chipList') chipList: EuiChipListComponent;\n @ViewChild('virtualScrolling') virtualScrolling: CdkVirtualScrollViewport;\n\n public autocompleteOptionTemplate: TemplateRef<{ $implicit: { label: string } }>;\n public autocompleteOptGroupTemplate: TemplateRef<{ $implicit: { label: string } }>;\n public separatorKeysCodes: number[] = [ENTER, COMMA];\n public autocompleteControl = new FormControl();\n public autocompleteOptions: BehaviorSubject<EuiAutoCompleteItem[]> = new BehaviorSubject<EuiAutoCompleteItem[]>(this.autocompleteData);\n public chips: EuiChip[] = [];\n public distinctOptionGroups: string[];\n public groupedOptions = new BehaviorSubject<{ [id: string]: { options: EuiAutoCompleteItem[], ancestorLength: number } }>({});\n public groupedItems: { [id: string]: Observable<EuiAutoCompleteItem[]> };\n public autocompleteId = `eui-autocomplete-${uniqueId()}`;\n public isDisabled = false;\n public selectedOptionIndex = -1;\n public itemSize = 48;\n\n @Input()\n get hasChips(): boolean {\n return this._hasChips;\n }\n set hasChips(value: BooleanInput) {\n this._hasChips = coerceBooleanProperty(value);\n }\n private _hasChips = false;\n @Input()\n get isGrid(): boolean {\n return this._isGrid;\n }\n set isGrid(value: BooleanInput) {\n this._isGrid = coerceBooleanProperty(value);\n }\n private _isGrid = true;\n @Input()\n get async(): boolean {\n return this._async;\n }\n set async(value: BooleanInput) {\n this._async = coerceBooleanProperty(value);\n }\n private _async = false;\n @Input()\n get addOnBlur(): boolean {\n return this._addOnBlur;\n }\n set addOnBlur(value: BooleanInput) {\n this._addOnBlur = coerceBooleanProperty(value);\n }\n private _addOnBlur = false;\n @Input()\n get isFreeValueAllowed(): boolean {\n return this._isFreeValueAllowed;\n }\n set isFreeValueAllowed(value: BooleanInput) {\n this._isFreeValueAllowed = coerceBooleanProperty(value);\n }\n private _isFreeValueAllowed = true;\n @Input()\n get isDuplicateValueAllowed(): boolean {\n return this._isDuplicateValueAllowed;\n }\n set isDuplicateValueAllowed(value: BooleanInput) {\n this._isDuplicateValueAllowed = coerceBooleanProperty(value);\n }\n private _isDuplicateValueAllowed = false;\n @Input()\n get isLoading(): boolean {\n return this._isLoading;\n }\n set isLoading(value: BooleanInput) {\n this._isLoading = coerceBooleanProperty(value);\n }\n private _isLoading = false;\n @Input()\n get isChipsRemovable(): boolean {\n return this._isChipsRemovable;\n }\n set isChipsRemovable(value: BooleanInput) {\n this._isChipsRemovable = coerceBooleanProperty(value);\n }\n private _isChipsRemovable = true;\n @Input()\n get maxVisibleChipsCount(): number {\n return this._maxVisibleChipsCount;\n }\n set maxVisibleChipsCount(value: NumberInput) {\n this._maxVisibleChipsCount = coerceNumberProperty(value);\n }\n private _maxVisibleChipsCount = null;\n @Input()\n get chipsLabelTruncateCount(): number {\n return this._chipsLabelTruncateCount;\n }\n set chipsLabelTruncateCount(value: NumberInput) {\n this._chipsLabelTruncateCount = coerceNumberProperty(value);\n }\n private _chipsLabelTruncateCount = null;\n @Input()\n get isMaxVisibleChipsOpened(): boolean {\n return this._isMaxVisibleChipsOpened;\n }\n set isMaxVisibleChipsOpened(value: BooleanInput) {\n this._isMaxVisibleChipsOpened = coerceBooleanProperty(value);\n }\n private _isMaxVisibleChipsOpened = false;\n @Input()\n get readonly(): boolean {\n return this._readonly;\n }\n set readonly(value: BooleanInput) {\n this._readonly = coerceBooleanProperty(value);\n }\n private _readonly = false;\n @Input()\n get isChipsSorted(): boolean {\n return this._isChipsSorted;\n }\n set isChipsSorted(value: BooleanInput) {\n this._isChipsSorted = coerceBooleanProperty(value);\n }\n private _isChipsSorted = false;\n @Input()\n get isItemsSorted(): boolean {\n return this._isItemsSorted;\n }\n set isItemsSorted(value: BooleanInput) {\n this._isItemsSorted = coerceBooleanProperty(value);\n }\n private _isItemsSorted = false;\n @Input()\n get isChipsDragAndDrop(): boolean {\n return this._isChipsDragAndDrop;\n }\n set isChipsDragAndDrop(value: BooleanInput) {\n this._isChipsDragAndDrop = coerceBooleanProperty(value);\n }\n private _isChipsDragAndDrop = false;\n @Input()\n get isForceSelection(): boolean {\n return this._isForceSelection;\n }\n set isForceSelection(value: BooleanInput) {\n this._isForceSelection = coerceBooleanProperty(value);\n }\n private _isForceSelection = false;\n @Input()\n get autoActiveFirstOption(): boolean {\n return this._autoActiveFirstOption;\n }\n set autoActiveFirstOption(value: BooleanInput) {\n this._autoActiveFirstOption = coerceBooleanProperty(value);\n }\n private _autoActiveFirstOption = true;\n\n get isChipsGrid(): boolean {\n if (this._isGrid) {\n return this._isChipsDragAndDrop && this.dragAndDropConnectedTo.length === 0;\n } else {\n return this._isGrid;\n }\n }\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private nbClick = 0;\n private ignoreOpenCloseEvents = false;\n private value: EuiAutoCompleteItem | EuiAutoCompleteItem[] = null;\n private fieldValue = null;\n private scrollDispatcherSubscription = new Subscription();\n private keyboardOptionSelectorHandlerSubscription = new Subscription();\n\n constructor(\n private cd: ChangeDetectorRef,\n @Self() @Optional() private control: NgControl,\n private scrollDispatcher: ScrollDispatcher,\n private elementRef: ElementRef,\n ) {\n super();\n if (this.control) {\n this.control.valueAccessor = this;\n }\n }\n\n ngOnChanges(c: SimpleChanges): void {\n if (c && c.autocompleteData) {\n this.autocompleteOptions.next(this._filter(''));\n\n if (this.groupBy) {\n this.groupingHandler();\n }\n }\n\n if (c && c.autocompleteDataSelected && this.hasChips) {\n this.autocompleteDataSelected = this.autocompleteDataSelected.map(\n (selected) => new EuiAutoCompleteItem(Object.assign({}, selected, { euiInternalId: this.generateId() })),\n );\n\n this.chips = this.mapAsChip();\n this.autocompleteOptions.next(this._filter(''));\n }\n\n if (c && c.visibleOptions) {\n this.classList = 'eui-autocomplete--no-max-height';\n }\n }\n\n ngOnInit(): void {\n const start = Array.isArray(this.value) ? null : this.value?.label;\n this.autocompleteOptions.next(this._filter(start));\n this.autocompleteControl.valueChanges.pipe(takeUntil(this.destroy$), startWith(start), skip(1)).subscribe((value) => {\n this.selectedOptionIndex = 0;\n this.fieldValue = value;\n this.inputValueHandler(value);\n });\n\n if (this.groupBy) {\n this.groupingHandler();\n this.autocompleteOptions.pipe(takeUntil(this.destroy$)).subscribe((options) => {\n this.groupingHandler();\n });\n }\n }\n\n // TODO: Refactor ngDoCheck when euiInput Text will refactor this hooks\n ngDoCheck(): void {\n if (this.control) {\n this.control.touched ? this.autocompleteControl.markAsTouched() : this.autocompleteControl.markAsUntouched();\n this.control.invalid ? this.autocompleteControl.setErrors({ invalid: true }) : this.autocompleteControl.setErrors(null);\n this.cd.detectChanges();\n }\n }\n\n ngAfterViewInit(): void {\n this.templates.forEach((item) => {\n if (item.getType() === 'dropdownOption') {\n this.autocompleteOptionTemplate = item.template;\n }\n if (item.getType() === 'dropdownOptGroup') {\n this.autocompleteOptGroupTemplate = item.template;\n }\n });\n\n if (this.hasChips) {\n this.chips = this.mapAsChip();\n this.cd.detectChanges();\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n get nbOptionsVisible(): number {\n return this.visibleOptions;\n }\n\n get cdkVirtualScrollViewport(): number {\n if (this.groupBy) {\n const filteredOptionGroups: string[] = this.autocompleteOptions.value\n .map(item => this.groupBy.split('.').reduce((prev, curr) => (prev ? prev[curr] : null), item || self))\n .filter((optionGroup: string) => {\n return (\n this.autocompleteOptions.value.some(\n (option) => this.groupBy.split('.').reduce((prev, curr) => (prev ? prev[curr] : null), option || self) === optionGroup,\n )\n );\n })\n .filter((optionGroup: string, index, array: string[]) => array.indexOf(optionGroup) === index);\n\n if (this.autocompleteOptions.value.length >= this.visibleOptions) {\n return this.visibleOptions * this.itemSize;\n } else {\n const scrollItems = this.autocompleteOptions.value.length + filteredOptionGroups.length;\n return (scrollItems > this.visibleOptions ? this.visibleOptions : scrollItems) * this.itemSize;\n }\n } else {\n return this.autocompleteOptions.value.length >= this.visibleOptions ?\n this.visibleOptions * this.itemSize :\n this.autocompleteOptions.value.length * this.itemSize;\n }\n }\n\n public addOnBlurHandler(event: FocusEvent): void {\n if (this.addOnBlur) {\n const target: HTMLElement = event.relatedTarget as HTMLElement;\n if (!target || target.tagName !== 'MAT-OPTION') {\n const newValue = this.autocompleteInput.nativeElement.value;\n this.add(newValue);\n }\n }\n }\n\n public addOnEnterHandler(): void {\n const newValue = this.autocompleteInput.nativeElement.value;\n this.add(newValue);\n }\n\n public add(newValue: string): void {\n if (this.isFreeValueAllowed) {\n if ((newValue || '').trim()) {\n const foundItem = !this.isDuplicateValueAllowed\n ? this.autocompleteDataSelected.find((selectedItem) => selectedItem.label.toString().trim() === newValue.trim())\n : false;\n\n if (!foundItem) {\n this.autocompleteDataSelected.push(new EuiAutoCompleteItem({ label: newValue.trim() }));\n this.chips = this.mapAsChip();\n this.autocompleteInput.nativeElement.value = '';\n this.autocompleteControl.setValue(null);\n this.autocompleteInputTrigger.closePanel();\n\n this.selectionChanged.emit(this.autocompleteDataSelected);\n this.selectionChange.emit(this.autocompleteDataSelected);\n this.itemAdded.emit(new EuiAutoCompleteItem({ label: newValue.trim() }));\n this.itemAdd.emit(new EuiAutoCompleteItem({ label: newValue.trim() }));\n }\n }\n }\n }\n\n public onOptionSelected(event: MatAutocompleteSelectedEvent): void {\n const value = event.option.value;\n\n if (this.hasChips) {\n this.autocompleteDataSelected.push(value);\n this.autocompleteInput.nativeElement.value = '';\n this.autocompleteControl.setValue(null);\n } else {\n this.autocompleteDataSelected = value;\n this.autocompleteInput.nativeElement.value = value.label;\n this.autocompleteControl.setValue(value.label, { emitEvent: false });\n }\n\n if (this.hasChips) {\n this.autocompleteOptions.next(this._filter(''));\n }\n\n this.selectionChanged.emit(this.autocompleteDataSelected);\n this.selectionChange.emit(this.autocompleteDataSelected);\n this.itemAdded.emit(value);\n this.itemAdd.emit(value);\n }\n\n public onChipRemove(e: { chips: EuiChip[]; removed: EuiChip | { chip: EuiChip; event: Event } }): void {\n const autocompleteDataRemoved = this.autocompleteDataSelected.find((data) =>\n e.removed instanceof EuiChip\n ? data.euiInternalId === e.removed.euiInternalId\n : data.euiInternalId === e.removed.chip.euiInternalId,\n );\n\n this.autocompleteDataSelected = this.autocompleteDataSelected.filter((data) =>\n e.removed instanceof EuiChip\n ? data.euiInternalId !== e.removed.euiInternalId\n : data.euiInternalId !== e.removed.chip.euiInternalId,\n );\n\n if (!this.isDuplicateValueAllowed) {\n this.autocompleteOptions.next(\n this.isItemsSorted ? (this.orderItems(this._filter(''), this.itemsSortOrder) as EuiAutoCompleteItem[]) : this._filter(''),\n );\n }\n\n this.onChange(this.autocompleteDataSelected.length > 0 ? this.autocompleteDataSelected : null);\n this.selectionChanged.emit(this.autocompleteDataSelected);\n this.selectionChange.emit(this.autocompleteDataSelected);\n this.itemRemoved.emit(autocompleteDataRemoved);\n this.itemRemove.emit(autocompleteDataRemoved);\n if (\n !(e.removed instanceof EuiChip) &&\n e.removed.event instanceof KeyboardEvent &&\n (e.removed.event as KeyboardEvent).code === 'Backspace' &&\n this.chipList.euiChipItems.length > 1\n ) {\n this.chipList.euiChipItems\n .get(this.chipList.euiChipItems.length - 2)\n .nativeElement.querySelector('.eui-chip__remove-icon')\n .focus();\n }\n }\n\n /** @deprecated This will be removed in eUI-14 */\n public onClick(): void {\n if (!this.readonly) {\n if (this.nbClick > 0) {\n this.matAutocomplete.isOpen ? this.autocompleteInputTrigger.closePanel() : this.autocompleteInputTrigger.openPanel();\n }\n this.nbClick += 1;\n }\n }\n\n /** @deprecated This will be removed in eUI-14 */\n public resetNbClick(e: FocusEvent): void {\n if (!e.relatedTarget || e.relatedTarget['className'].indexOf('mat-option') === -1) {\n this.nbClick = 0;\n }\n\n this.onTouch();\n }\n\n public onFocus(): void {\n if (this.isForceSelection) {\n if (this.hasChips) {\n this.autocompleteControl.setValue(null);\n } else {\n if (!this.autocompleteData.find(a => a.label?.toLowerCase() === this.autocompleteControl.value?.toLowerCase())) {\n this.autocompleteControl.setValue(null);\n }\n }\n }\n }\n\n public onFocusOut(): void {\n this.onTouch();\n\n if (this.isForceSelection) {\n if (this.hasChips) {\n setTimeout(() => {\n this.autocompleteInput.nativeElement.value = '';\n this.autocompleteControl.setValue(null);\n }, 250);\n } else {\n setTimeout(() => {\n if (!this.autocompleteData.find(a => a.label?.toLowerCase() === this.autocompleteControl.value?.toLowerCase())) {\n this.autocompleteInput.nativeElement.value = '';\n this.autocompleteControl.setValue(null);\n }\n }, 250);\n }\n }\n\n this.blur.emit();\n }\n\n public trackByFn(index: number): number {\n return index;\n }\n\n public onClose(): void {\n this.scrollDispatcherSubscription.unsubscribe();\n if (!this.ignoreOpenCloseEvents) {\n this.closed.emit();\n this.close.emit();\n }\n this.virtualScrolling.scrollToIndex(0);\n this.selectedOptionIndex = -1;\n this.keyboardOptionSelectorHandlerSubscription.unsubscribe();\n }\n\n public onOpen(): void {\n this.scrollDispatcherSubscription = this.scrollDispatcher\n .ancestorScrolled(this.autocompleteInput)\n .subscribe((event: CdkScrollable) => {\n const scrollableParent = event ? event.getElementRef().nativeElement : document.querySelector('body');\n if (!this.isVisible(this.autocompleteInput.nativeElement, scrollableParent)) {\n this.autocompleteInputTrigger.closePanel();\n }\n });\n if (!this.ignoreOpenCloseEvents) {\n this.opened.emit();\n this.open.emit();\n }\n\n let visibleRangeStart = 0;\n let visibleRangeEnd = this.visibleOptions - 1;\n\n if (this.autocompleteOptions.value.length < this.nbOptionsVisible) {\n visibleRangeEnd = this.autocompleteOptions.value.length - 1;\n }\n\n this.keyboardOptionSelectorHandlerSubscription = fromEvent(this.elementRef.nativeElement, 'keydown')\n .pipe(\n takeUntil(this.destroy$),\n filter((e: KeyboardEvent) => e.code === 'ArrowDown' || e.code === 'ArrowUp'),\n )\n .subscribe((e: KeyboardEvent) => {\n if (e) {\n if (e.code === 'ArrowDown' && this.selectedOptionIndex < this.autocompleteOptions.value.length - 1) {\n this.selectedOptionIndex++;\n }\n\n if (e.code === 'ArrowUp' && this.selectedOptionIndex > 0) {\n this.selectedOptionIndex--;\n }\n\n const cIndex = this.selectedOptionIndex - this.virtualScrolling.getRenderedRange().start;\n\n this.matAutocomplete._keyManager.setActiveItem(cIndex);\n this.matAutocomplete.options.toArray()[cIndex]?.setActiveStyles();\n\n if (e.code === 'ArrowDown' && cIndex > visibleRangeEnd - visibleRangeStart - visibleRangeEnd) {\n let nbOptionsGroup = 0;\n const nbOptions = this.autocompleteOptions.value.length;\n if (this.groupBy) {\n Object.keys(this.groupedOptions.value).forEach(groupedOption => {\n if (this.groupedOptions.value[groupedOption].options.length > 0 &&\n this.selectedOptionIndex > this.groupedOptions.value[groupedOption].ancestorLength - 1) {\n nbOptionsGroup ++;\n }\n });\n }\n\n if ((this.selectedOptionIndex + nbOptionsGroup) > visibleRangeEnd && visibleRangeEnd <= nbOptions) {\n this.virtualScrolling.scrollToIndex((this.selectedOptionIndex + nbOptionsGroup) - visibleRangeEnd + visibleRangeStart);\n visibleRangeStart++;\n visibleRangeEnd++;\n }\n this.cd.detectChanges();\n }\n if (e.code === 'ArrowUp' && cIndex < visibleRangeStart) {\n if (this.selectedOptionIndex < visibleRangeStart) {\n this.virtualScrolling.scrollToIndex(this.selectedOptionIndex);\n visibleRangeStart--;\n visibleRangeEnd--;\n }\n }\n }\n });\n }\n\n public writeValue(value: EuiAutoCompleteItem | EuiAutoCompleteItem[]): void {\n this.value = value;\n\n if (this.hasChips) {\n this.autocompleteDataSelected = value ? (value as EuiAutoCompleteItem[]) : [];\n this.autocompleteDataSelected = this.autocompleteDataSelected.map(\n (selected) => new EuiAutoCompleteItem(Object.assign({}, selected, { euiInternalId: this.generateId() })),\n );\n this.chips = [...this.mapAsChip()];\n this.autocompleteControl.patchValue(null, { emitEvent: false });\n\n this.autocompleteOptions.next(this._filter(''));\n } else {\n this.autocompleteControl.patchValue(value ? (value as EuiAutoCompleteItem).label : null, { emitEvent: false });\n this.fieldValue = value ? (value as EuiAutoCompleteItem).label : null;\n this.autocompleteOptions.next(this._filter(this.fieldValue));\n }\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n isDisabled ? this.autocompleteControl.disable() : this.autocompleteControl.enable();\n }\n\n public registerOnChange(fn: () => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouch = fn;\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public onChipDropped(e: any): void {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.autocompleteDataSelected = e.chips.map((c: any) => {\n const found = this.autocompleteDataSelected.find((a) => a.id === c.id);\n return found ? found : new EuiAutoCompleteItem({ ...c.data, euiInternalId: c.euiInternalId });\n });\n\n this.chips = this.mapAsChip();\n this.autocompleteOptions.next(this._filter(''));\n\n this.onChange(this.autocompleteDataSelected.length > 0 ? this.autocompleteDataSelected : null);\n this.selectionChanged.emit(this.autocompleteDataSelected);\n this.selectionChange.emit(this.autocompleteDataSelected);\n\n this.chipDropped.emit(e);\n this.chipDrop.emit(e);\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public onChipDragStarted(e: any): void {\n this.chipDragStarted.emit(e);\n this.chipDragStart.emit(e);\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public onChipDragReleased(e: any): void {\n this.chipDragReleased.emit(e);\n this.chipDragRelease.emit(e);\n }\n\n public onClear(): void {\n this.clear.next(undefined);\n }\n\n public onChipListFocus(): void {\n this.autocompleteInputTrigger.closePanel();\n }\n\n public onKeyDownBackspace(): void {\n if (this.chipsPosition === 'inside' && this.autocompleteInput.nativeElement.value === '' && this.chipList.euiChipItems.length > 0) {\n this.onChipListFocus();\n this.chipList.euiChipItems.last.nativeElement.querySelector('.eui-chip__remove-icon').focus();\n }\n }\n\n private isVisible(origin: HTMLElement, scrollableParent: HTMLElement): boolean {\n const originY = origin.getBoundingClientRect().y;\n const scrollableParentY = Math.abs(scrollableParent.getBoundingClientRect().y);\n const scrollableParentHeight = scrollableParent.getBoundingClientRect().height - 50;\n\n return (\n (originY > 0 && originY < scrollableParentHeight) ||\n (originY - scrollableParentY > 0 && originY < scrollableParentY + scrollableParentHeight)\n );\n }\n\n private inputValueHandler(value: string | EuiAutoCompleteItem): void {\n if (this.hasChips) {\n this.autocompleteDataSelected = this.autocompleteDataSelected.map(\n (selected) => new EuiAutoCompleteItem(Object.assign({}, selected, { euiInternalId: this.generateId() })),\n );\n\n this.chips = this.mapAsChip();\n\n // value is null when chips is added, testing value prevent having two valuechanges triggered\n if (!value) {\n this.onChange(this.autocompleteDataSelected.length > 0 ? this.autocompleteDataSelected : null);\n }\n } else {\n if (typeof value === 'string') {\n const foundItem = this.autocompleteData.find((data) =>\n data && data.label && value && typeof value === 'string'\n ? data.label.toLowerCase().trim() === value.toLowerCase().trim()\n : false,\n );\n\n if (foundItem) {\n this.onChange(foundItem);\n } else {\n value ? this.onChange(new EuiAutoCompleteItem({ label: value })) : this.onChange(null);\n }\n } else {\n this.onChange(value === undefined ? null : value);\n if (!value) {\n this.autocompleteOptions.next(this._filter(''));\n }\n }\n }\n\n this.inputChanged.emit(value as string);\n this.inputChange.emit(value as string);\n\n if (!this.async) {\n const filterValue = typeof value === 'string' || !value ? value : value.label;\n this.autocompleteOptions.next(\n this.isItemsSorted\n ? (this.orderItems(this._filter(filterValue as string), this.itemsSortOrder) as EuiAutoCompleteItem[])\n : this._filter(filterValue as string),\n );\n }\n }\n\n private onChange = <T>(change?: T): void => {\n /** empty */\n };\n\n private onTouch = (): void => {\n /** empty */\n };\n\n private _filter(str: string): EuiAutoCompleteItem[] {\n const filteredItems: EuiAutoCompleteItem[] = [];\n this.autocompleteData.forEach((item: EuiAutoCompleteItem) => {\n const foundItem =\n !this.isDuplicateValueAllowed && Array.isArray(this.autocompleteDataSelected)\n ? this.autocompleteDataSelected.find((selectedItem: EuiAutoCompleteItem) => {\n if (item.id) {\n return selectedItem.id === item.id;\n } else {\n return selectedItem.label.toLowerCase() === item.label.toLowerCase();\n }\n })\n : false;\n\n if (!foundItem) {\n if (str) {\n if (this.matching === 'contains' && item.label.toLowerCase().indexOf(str.toString().toLowerCase()) !== -1) {\n filteredItems.push(item);\n }\n if (this.matching === 'startWith' && item.label.toLowerCase().substr(0, str.toString().length) === str.toLowerCase()) {\n filteredItems.push(item);\n }\n } else {\n filteredItems.push(item);\n }\n }\n });\n\n return this.isItemsSorted ? (this.orderItems(filteredItems, this.itemsSortOrder) as EuiAutoCompleteItem[]) : filteredItems;\n }\n\n private mapAsChip(): EuiChip[] {\n const chips = this.autocompleteDataSelected.map(\n (selected) =>\n new EuiChip({\n id: selected.id,\n euiInternalId: selected.euiInternalId,\n label: selected.label,\n typeClass: selected.typeClass,\n isOutline: selected.isOutline,\n isRounded: selected.isRounded,\n sizeClass: selected.sizeClass,\n isRemovable: selected.isRemovable,\n tooltipMessage: selected.tooltip?.tooltipMessage,\n tooltip: new EuiChipTooltip(selected.tooltip),\n iconClass: selected.iconClass,\n }),\n );\n\n return this.isChipsSorted ? (this.orderItems(chips, this.chipsSortOrder) as EuiChip[]) : chips;\n }\n\n private generateId(): string {\n return '_' + Math.random().toString(36).substr(2, 9);\n }\n\n private orderItems(tab: EuiAutoCompleteItem[] | EuiChip[], sortOrder: 'ASC' | 'DESC'): EuiAutoCompleteItem[] | EuiChip[] {\n tab.sort((a: EuiAutoCompleteItem | EuiChip, b: EuiAutoCompleteItem | EuiChip) => {\n const aObj = a.label.toLowerCase();\n const bObj = b.label.toLowerCase();\n\n if (sortOrder === 'ASC') {\n if (aObj < bObj) {\n return -1;\n }\n if (aObj > bObj) {\n return 1;\n }\n return 0;\n } else {\n if (aObj > bObj) {\n return -1;\n }\n if (aObj < bObj) {\n return 1;\n }\n return 0;\n }\n });\n\n return tab;\n }\n\n private groupingHandler(): void {\n const distinctGroups: string[] = this.autocompleteData.map(item => this.groupBy.split('.').reduce((prev, curr) => (prev ? prev[curr] : null), item || self));\n const distinctOptionGroups: string[] = [...new Set(distinctGroups)].sort((a: string, b: string) => (a > b ? 1 : -1));\n const groupedOptions: { [id: string]: { options: EuiAutoCompleteItem[], ancestorLength: number } } = {};\n \n let ancestorLength = 0;\n for (const group of distinctOptionGroups) {\n let o = this.autocompleteOptions.value.filter(option => this.groupBy.split('.').reduce((prev, curr) => (prev ? prev[curr] : null), option || self) === group);\n if (this.isItemsSorted) {\n o = this.orderItems(o, this.itemsSortOrder) as EuiAutoCompleteItem[];\n }\n\n groupedOptions[group] = { options: o, ancestorLength };\n ancestorLength += o.length;\n }\n \n this.groupedOptions.next(groupedOptions);\n this.distinctOptionGroups = distinctOptionGroups;\n }\n}\n","<div class=\"eui-autocomplete__container\" matAutocompleteOrigin #origin=\"matAutocompleteOrigin\">\n <div class=\"eui-autocomplete__wrapper eui-autocomplete__wrapper--{{ chipsPosition }}\">\n <ng-template [ngIf]=\"chipsPosition === 'bottom'\">\n <ng-container *ngTemplateOutlet=\"field\"></ng-container>\n </ng-template>\n\n <ng-container *ngIf=\"hasChips\">\n <eui-chip-list\n #chipList\n [chips]=\"chips\"\n [isGrid]=\"isChipsGrid\"\n [isChipsDragAndDrop]=\"isChipsDragAndDrop\"\n [isChipsRemovable]=\"isChipsRemovable && !readonly\"\n [isChipsSorted]=\"isChipsSorted\"\n [chipsSortOrder]=\"chipsSortOrder\"\n [maxVisibleChipsCount]=\"maxVisibleChipsCount\"\n [isMaxVisibleChipsOpened]=\"isMaxVisibleChipsOpened\"\n [toggleLinkMoreLabel]=\"toggleLinkMoreLabel\"\n [toggleLinkLessLabel]=\"toggleLinkLessLabel\"\n [chipsLabelTruncateCount]=\"chipsLabelTruncateCount\"\n [dragAndDropSourceName]=\"dragAndDropSourceName\"\n [dragAndDropConnectedTo]=\"dragAndDropConnectedTo\"\n (chipDropped)=\"onChipDropped($event)\"\n (chipDragStarted)=\"onChipDragStarted($event)\"\n (chipDragReleased)=\"onChipDragReleased($event)\"\n (chipRemove)=\"onChipRemove($event)\"\n (chiplistFocus)=\"onChipListFocus()\">\n <euiChipListAppendContent>\n <ng-template [ngIf]=\"chipsPosition === 'inside'\">\n <ng-container *ngTemplateOutlet=\"field\"></ng-container>\n </ng-template>\n </euiChipListAppendContent>\n </eui-chip-list>\n </ng-container>\n\n <ng-template [ngIf]=\"chipsPosition === 'top' || !hasChips\">\n <ng-container *ngTemplateOutlet=\"field\"></ng-container>\n </ng-template>\n\n <ng-template #field>\n <span class=\"eui-autocomplete__field-wrapper\">\n <ng-container *ngIf=\"!hasChips\">\n <input\n [euiClearable]=\"!readonly && !isLoading && !isDisabled\"\n [euiLoading]=\"isLoading\"\n euiInputText\n #autocompleteInput\n #autocompleteInputTrigger\n placeholder=\"{{ placeholder }}\"\n [matAutocompleteDisabled]=\"readonly\"\n [formControl]=\"autocompleteControl\"\n [matAutocomplete]=\"auto\"\n [readonly]=\"readonly\"\n [attr.aria-label]=\"placeholder ? placeholder : 'Autocomplete Input Field'\"\n (clear)=\"onClear()\"\n (focusout)=\"onFocusOut()\"\n (focus)=\"onFocus()\"\n role=\"combobox\"\n aria-autocomplete=\"both\"\n aria-haspopup=\"true\"\n aria-controls=\"autocompleteId\" />\n </ng-container>\n <ng-container *ngIf=\"hasChips\">\n <input\n [euiClearable]=\"!readonly && !isLoading && !isDisabled\"\n [euiLoading]=\"isLoading\"\n euiInputText\n #autocompleteInput\n #autocompleteInputTrigger\n placeholder=\"{{ placeholder }}\"\n [matAutocompleteDisabled]=\"readonly\"\n [formControl]=\"autocompleteControl\"\n [matAutocomplete]=\"auto\"\n [matAutocompleteConnectedTo]=\"chipsPosition === 'inside' ? origin : null\"\n [readonly]=\"readonly\"\n [attr.aria-label]=\"placeholder ? placeholder : 'Autocomplete Input Field'\"\n (clear)=\"onClear()\"\n (focusout)=\"onFocusOut(); addOnBlurHandler($event)\"\n (focus)=\"onFocus()\"\n (keydown.enter)=\"addOnEnterHandler()\"\n (keydown.backspace)=\"onKeyDownBackspace()\"\n role=\"combobox\"\n aria-autocomplete=\"both\"\n aria-haspopup=\"true\"\n aria-controls=\"autocompleteId\" />\n </ng-container>\n\n <mat-autocomplete\n [id]=\"autocompleteId\"\n #auto=\"matAutocomplete\"\n [panelWidth]=\"panelWidth === 'auto' ? null : panelWidth\"\n [class]=\"classList\"\n [autoActiveFirstOption]=\"autoActiveFirstOption\"\n [hideSingleSelectionIndicator]=\"true\"\n (closed)=\"onClose()\"\n (opened)=\"onOpen()\"\n (optionSelected)=\"onOptionSelected($event)\">\n <ng-container *ngIf=\"groupBy\">\n <cdk-virtual-scroll-viewport\n #virtualScrolling\n [itemSize]=\"itemSize\"\n minBufferPx=\"500\"\n maxBufferPx=\"750\"\n [style.min-height]=\"cdkVirtualScrollViewport + 'px'\">\n <ng-container *ngFor=\"let distinctOptionGroup of distinctOptionGroups; let i=index\">\n <mat-optgroup\n [class.eui-autocomplete__optgroup--custom]=\"autocompleteOptGroupTemplate\"\n *ngIf=\"(groupedOptions | async)[distinctOptionGroup].options.length > 0\"\n [label]=\"distinctOptionGroup\">\n <ng-container *ngIf=\"autocompleteOptGroupTemplate\">\n <div class=\"eui-autocomplete__optgroup--custom-optgroup-wrapper\">\n <ng-template\n [ngTemplateOutlet]=\"autocompleteOptGroupTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { label: distinctOptionGroup } }\"></ng-template>\n </div>\n </ng-container>\n <mat-option\n *ngFor=\"let autocompleteOption of (groupedOptions | async)[distinctOptionGroup].options; trackBy: trackByFn; let ii=index\"\n [disabled]=\"autocompleteOption.isDisabled\"\n [class]=\"\n autocompleteOption.typeClass\n ? 'mat-option eui-autocomplete__option eui-autocomplete__option--' + autocompleteOption.typeClass\n : 'mat-option eui-autocomplete__option'\n \"\n [class.eui-autocomplete__option--custom]=\"autocompleteOptionTemplate\"\n [class.mat-mdc-option-active]=\"selectedOptionIndex === (groupedOptions | async)[distinctOptionGroup].ancestorLength + ii\"\n [value]=\"autocompleteOption\">\n <span *ngIf=\"autocompleteOption.iconClass\" class=\"{{ autocompleteOption.iconClass }}\"></span>\n <ng-container *ngIf=\"!autocompleteOptionTemplate\">\n {{ autocompleteOption.label }}\n </ng-container>\n <ng-container *ngIf=\"autocompleteOptionTemplate\">\n <ng-template\n [ngTemplateOutlet]=\"autocompleteOptionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: autocompleteOption }\"></ng-template>\n </ng-container>\n </mat-option>\n </mat-optgroup>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </ng-container>\n <ng-container *ngIf=\"!groupBy\">\n <cdk-virtual-scroll-viewport\n #virtualScrolling\n [itemSize]=\"itemSize\"\n minBufferPx=\"500\"\n maxBufferPx=\"750\"\n [style.min-height]=\"cdkVirtualScrollViewport + 'px'\">\n <mat-option\n *cdkVirtualFor=\"let autocompleteOption of autocompleteOptions | async; let i = index; trackBy: trackByFn\"\n [disabled]=\"autocompleteOption.isDisabled\"\n [class]=\"\n autocompleteOption.typeClass\n ? 'mat-option eui-autocomplete__option eui-autocomplete__option--' + autocompleteOption.typeClass\n : 'mat-option eui-autocomplete__option'\n \"\n [class.eui-autocomplete__option--custom]=\"autocompleteOptionTemplate\"\n [class.mat-mdc-option-active]=\"i === selectedOptionIndex\"\n [class.mdc-list-item--selected]=\"false\"\n [value]=\"autocompleteOption\">\n <span *ngIf=\"autocompleteOption.iconClass\" class=\"{{ autocompleteOption.iconClass }}\"></span>\n <ng-container *ngIf=\"!autocompleteOptionTemplate\">{{ autocompleteOption.label }}</ng-container>\n <ng-container *ngIf=\"autocompleteOptionTemplate\">\n <ng-template\n [ngTemplateOutlet]=\"autocompleteOptionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: autocompleteOption }\"></ng-template>\n </ng-container>\n </mat-option>\n </cdk-virtual-scroll-viewport>\n </ng-container>\n </mat-autocomplete>\n </span>\n </ng-template>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\n\nimport { EuiChipListModule } from '@eui/components/eui-chip-list';\nimport { EuiChipModule } from '@eui/components/eui-chip';\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiInputTextModule } from '@eui/components/eui-input-text';\n\nimport { EuiAutocompleteComponent } from './eui-autocomplete.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatAutocompleteModule,\n EuiChipListModule,\n EuiChipModule,\n EuiIconModule,\n EuiInputTextModule,\n ScrollingModule,\n ],\n declarations: [EuiAutocompleteComponent],\n exports: [EuiAutocompleteComponent],\n})\nexport class EuiAutocompleteModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;MACa,mBAAmB,CAAA;IAe5B,WAAY,CAAA,MAAM,GAAG,EAAE,EAAA;QAJvB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AAKf,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;KAC/B;AACJ;;ACwBK,MAAO,wBACT,SAAQ,aAAa,CAAA;AAqDrB,IAAA,IACI,UAAU,GAAA;AACV,QAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,6BAA6B,GAAG,EAAE,EAAE,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;KACzH;AAwBD,IAAA,IACI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IACD,IAAI,QAAQ,CAAC,KAAmB,EAAA;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACjD;AAED,IAAA,IACI,MAAM,GAAA;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;KACvB;IACD,IAAI,MAAM,CAAC,KAAmB,EAAA;AAC1B,QAAA,IAAI,CAAC,OAAO,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAC/C;AAED,IAAA,IACI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;IACD,IAAI,KAAK,CAAC,KAAmB,EAAA;AACzB,QAAA,IAAI,CAAC,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAC9C;AAED,IAAA,IACI,SAAS,GAAA;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;KAC1B;IACD,IAAI,SAAS,CAAC,KAAmB,EAAA;AAC7B,QAAA,IAAI,CAAC,UAAU,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAClD;AAED,IAAA,IACI,kBAAkB,GAAA;QAClB,OAAO,IAAI,CAAC,mBAAmB,CAAC;KACnC;IACD,IAAI,kBAAkB,CAAC,KAAmB,EAAA;AACtC,QAAA,IAAI,CAAC,mBAAmB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAC3D;AAED,IAAA,IACI,uBAAuB,GAAA;QACvB,OAAO,IAAI,CAAC,wBAAwB,CAAC;KACxC;IACD,IAAI,uBAAuB,CAAC,KAAmB,EAAA;AAC3C,QAAA,IAAI,CAAC,wBAAwB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAChE;AAED,IAAA,IACI,SAAS,GAAA;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;KAC1B;IACD,IAAI,SAAS,CAAC,KAAmB,EAAA;AAC7B,QAAA,IAAI,CAAC,UAAU,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAClD;AAED,IAAA,IACI,gBAAgB,GAAA;QAChB,OAAO,IAAI,CAAC,iBAAiB,CAAC;KACjC;IACD,IAAI,gBAAgB,CAAC,KAAmB,EAAA;AACpC,QAAA,IAAI,CAAC,iBAAiB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACzD;AAED,IAAA,IACI,oBAAoB,GAAA;QACpB,OAAO,IAAI,CAAC,qBAAqB,CAAC;KACrC;IACD,IAAI,oBAAoB,CAAC,KAAkB,EAAA;AACvC,QAAA,IAAI,CAAC,qBAAqB,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;KAC5D;AAED,IAAA,IACI,uBAAuB,GAAA;QACvB,OAAO,IAAI,CAAC,wBAAwB,CAAC;KACxC;IACD,IAAI,uBAAuB,CAAC,KAAkB,EAAA;AAC1C,QAAA,IAAI,CAAC,wBAAwB,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;KAC/D;AAED,IAAA,IACI,uBAAuB,GAAA;QACvB,OAAO,IAAI,CAAC,wBAAwB,CAAC;KACxC;IACD,IAAI,uBAAuB,CAAC,KAAmB,EAAA;AAC3C,QAAA,IAAI,CAAC,wBAAwB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAChE;AAED,IAAA,IACI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IACD,IAAI,QAAQ,CAAC,KAAmB,EAAA;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACjD;AAED,IAAA,IACI,aAAa,GAAA;QACb,OAAO,IAAI,CAAC,cAAc,CAAC;KAC9B;IACD,IAAI,aAAa,CAAC,KAAmB,EAAA;AACjC,QAAA,IAAI,CAAC,cAAc,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACtD;AAED,IAAA,IACI,aAAa,GAAA;QACb,OAAO,IAAI,CAAC,cAAc,CAAC;KAC9B;IACD,IAAI,aAAa,CAAC,KAAmB,EAAA;AACjC,QAAA,IAAI,CAAC,cAAc,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACtD;AAED,IAAA,IACI,kBAAkB,GAAA;QAClB,OAAO,IAAI,CAAC,mBAAmB,CAAC;KACnC;IACD,IAAI,kBAAkB,CAAC,KAAmB,EAAA;AACtC,QAAA,IAAI,CAAC,mBAAmB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAC3D;AAED,IAAA,IACI,gBAAgB,GAAA;QAChB,OAAO,IAAI,CAAC,iBAAiB,CAAC;KACjC;IACD,IAAI,gBAAgB,CAAC,KAAmB,EAAA;AACpC,QAAA,IAAI,CAAC,iBAAiB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACzD;AAED,IAAA,IACI,qBAAqB,GAAA;QACrB,OAAO,IAAI,CAAC,sBAAsB,CAAC;KACtC;IACD,IAAI,qBAAqB,CAAC,KAAmB,EAAA;AACzC,QAAA,IAAI,CAAC,sBAAsB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAC9D;AAGD,IAAA,IAAI,WAAW,GAAA;QACX,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,OAAO,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,sBAAsB,CAAC,MAAM,KAAK,CAAC,CAAC;AAC/E,SAAA;AAAM,aAAA;YACH,OAAO,IAAI,CAAC,OAAO,CAAC;AACvB,SAAA;KACJ;AAUD,IAAA,WAAA,CACY,EAAqB,EACD,OAAkB,EACtC,gBAAkC,EAClC,UAAsB,EAAA;AAE9B,QAAA,KAAK,EAAE,CAAC;QALA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;QACD,IAAO,CAAA,OAAA,GAAP,OAAO,CAAW;QACtC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QA3OzB,IAAmB,CAAA,mBAAA,GAAW,IAAI,CAAC;QACnC,IAAmB,CAAA,mBAAA,GAAW,IAAI,CAAC;QACnC,IAAgB,CAAA,gBAAA,GAA0B,EAAE,CAAC;QAC7C,IAAwB,CAAA,wBAAA,GAA0B,EAAE,CAAC;QACrD,IAAc,CAAA,cAAA,GAAmB,KAAK,CAAC;QACvC,IAAc,CAAA,cAAA,GAAmB,KAAK,CAAC;QACvC,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;QACjB,IAAQ,CAAA,QAAA,GAA6B,UAAU,CAAC;QAChD,IAAa,CAAA,aAAA,GAAgC,KAAK,CAAC;QAEnD,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC;QAInB,IAAsB,CAAA,sBAAA,GAAa,EAAE,CAAC;;AAGrC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;;AAE5B,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;;AAE5B,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAyB,CAAC;;AAE7D,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAuB,CAAC;;AAEpD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAuB,CAAC;;AAEtD,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAU,CAAC;;AAE1C,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAmB,CAAC;;AAEtD,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAmB,CAAC;;AAEvD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAmB,CAAC;;AAElD,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;;AAG3B,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;;AAE3B,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;;AAE1B,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;AAC1B,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAyB,CAAC;AAC5D,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAuB,CAAC;AAClD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAuB,CAAC;AACrD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAU,CAAC;AACzC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAmB,CAAC;AACpD,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAmB,CAAC;AACtD,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAmB,CAAC;AAiBlD,QAAA,IAAA,CAAA,kBAAkB,GAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC9C,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,WAAW,EAAE,CAAC;QACxC,IAAmB,CAAA,mBAAA,GAA2C,IAAI,eAAe,CAAwB,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAChI,IAAK,CAAA,KAAA,GAAc,EAAE,CAAC;AAEtB,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,eAAe,CAA+E,EAAE,CAAC,CAAC;AAEvH,QAAA,IAAA,CAAA,cAAc,GAAG,CAAA,iBAAA,EAAoB,QAAQ,EAAE,EAAE,CAAC;QAClD,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAmB,CAAA,mBAAA,GAAG,CAAC,CAAC,CAAC;QACzB,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;QASb,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAQlB,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC;QAQf,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;QAQf,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QAQnB,IAAmB,CAAA,mBAAA,GAAG,IAAI,CAAC;QAQ3B,IAAwB,CAAA,wBAAA,GAAG,KAAK,CAAC;QAQjC,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QAQnB,IAAiB,CAAA,iBAAA,GAAG,IAAI,CAAC;QAQzB,IAAqB,CAAA,qBAAA,GAAG,IAAI,CAAC;QAQ7B,IAAwB,CAAA,wBAAA,GAAG,IAAI,CAAC;QAQhC,IAAwB,CAAA,wBAAA,GAAG,KAAK,CAAC;QAQjC,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAQlB,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;QAQvB,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;QAQvB,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC;QAQ5B,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;QAQ1B,IAAsB,CAAA,sBAAA,GAAG,IAAI,CAAC;AAU9B,QAAA,IAAA,CAAA,QAAQ,GAAqB,IAAI,OAAO,EAAW,CAAC;QACpD,IAAO,CAAA,OAAA,GAAG,CAAC,CAAC;QACZ,IAAqB,CAAA,qBAAA,GAAG,KAAK,CAAC;QAC9B,IAAK,CAAA,KAAA,GAAgD,IAAI,CAAC;QAC1D,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;AAClB,QAAA,IAAA,CAAA,4BAA4B,GAAG,IAAI,YAAY,EAAE,CAAC;AAClD,QAAA,IAAA,CAAA,yCAAyC,GAAG,IAAI,YAAY,EAAE,CAAC;AA0e/D,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAI,MAAU,KAAU;;AAE3C,SAAC,CAAC;QAEM,IAAO,CAAA,OAAA,GAAG,MAAW;;AAE7B,SAAC,CAAC;QAveE,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;AACrC,SAAA;KACJ;AAED,IAAA,WAAW,CAAC,CAAgB,EAAA;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE;AACzB,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;YAEhD,IAAI,IAAI,CAAC,OAAO,EAAE;gBACd,IAAI,CAAC,eAAe,EAAE,CAAC;AAC1B,aAAA;AACJ,SAAA;QAED,IAAI,CAAC,IAAI,CAAC,CAAC,wBAAwB,IAAI,IAAI,CAAC,QAAQ,EAAE;AAClD,YAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAC7D,CAAC,QAAQ,KAAK,IAAI,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAC3G,CAAC;AAEF,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;AAC9B,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACnD,SAAA;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,SAAS,GAAG,iCAAiC,CAAC;AACtD,SAAA;KACJ;IAED,QAAQ,GAAA;QACJ,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;AACnE,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACnD,QAAA,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AAChH,YAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;AAC7B,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAClC,SAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,eAAe,EAAE,CAAC;AACvB,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,KAAI;gBAC1E,IAAI,CAAC,eAAe,EAAE,CAAC;AAC3B,aAAC,CAAC,CAAC;AACN,SAAA;KACJ;;IAGD,SAAS,GAAA;QACL,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,CAAC;AAC7G,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACxH,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;AAC3B,SAAA;KACJ;IAED,eAAe,GAAA;QACX,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AAC5B,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,gBAAgB,EAAE;AACrC,gBAAA,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,QAAQ,CAAC;AACnD,aAAA;AACD,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,kBAAkB,EAAE;AACvC,gBAAA,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,QAAQ,CAAC;AACrD,aAAA;AACL,SAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;AAC9B,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;AAC3B,SAAA;KACJ;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;KAC/B;AAED,IAAA,IAAI,gBAAgB,GAAA;QAChB,OAAO,IAAI,CAAC,cAAc,CAAC;KAC9B;AAED,IAAA,IAAI,wBAAwB,GAAA;QACxB,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,MAAM,oBAAoB,GAAa,IAAI,CAAC,mBAAmB,CAAC,KAAK;AAChE,iBAAA,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC;AACrG,iBAAA,MAAM,CAAC,CAAC,WAAmB,KAAI;gBAC5B,QACI,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAC/B,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC,KAAK,WAAW,CACzH,EACH;AACN,aAAC,CAAC;AACD,iBAAA,MAAM,CAAC,CAAC,WAAmB,EAAE,KAAK,EAAE,KAAe,KAAK,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,KAAK,CAAC,CAAC;YAEnG,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,EAAE;AAC9D,gBAAA,OAAO,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC9C,aAAA;AAAM,iBAAA;AACH,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC;gBACxF,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC;AAClG,aAAA;AACJ,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc;AAC/D,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ;gBACnC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC7D,SAAA;KACJ;AAEM,IAAA,gBAAgB,CAAC,KAAiB,EAAA;QACrC,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,MAAM,MAAM,GAAgB,KAAK,CAAC,aAA4B,CAAC;YAC/D,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,YAAY,EAAE;gBAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC;AAC5D,gBAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACtB,aAAA;AACJ,SAAA;KACJ;IAEM,iBAAiB,GAAA;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC;AAC5D,QAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;KACtB;AAEM,IAAA,GAAG,CAAC,QAAgB,EAAA;QACvB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE;AACzB,gBAAA,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,uBAAuB;sBACzC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;sBAC9G,KAAK,CAAC;gBAEZ,IAAI,CAAC,SAAS,EAAE;AACZ,oBAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AACxF,oBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;oBAC9B,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;AAChD,oBAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxC,oBAAA,IAAI,CAAC,wBAAwB,CAAC,UAAU,EAAE,CAAC;oBAE3C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;oBAC1D,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AACzD,oBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AACzE,oBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1E,iBAAA;AACJ,aAAA;AACJ,SAAA;KACJ;AAEM,IAAA,gBAAgB,CAAC,KAAmC,EAAA;AACvD,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAEjC,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;AAChD,YAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC3C,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;YACtC,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AACzD,YAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AACxE,SAAA;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACnD,SAAA;QAED,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC1D,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AACzD,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5B;AAEM,IAAA,YAAY,CAAC,CAA2E,EAAA;AAC3F,QAAA,MAAM,uBAAuB,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,IAAI,KACpE,CAAC,CAAC,OAAO,YAAY,OAAO;cACtB,IAAI,CAAC,aAAa,KAAK,CAAC,CAAC,OAAO,CAAC,aAAa;AAChD,cAAE,IAAI,CAAC,aAAa,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAC5D,CAAC;AAEF,QAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,IAAI,KACtE,CAAC,CAAC,OAAO,YAAY,OAAO;cACtB,IAAI,CAAC,aAAa,KAAK,CAAC,CAAC,OAAO,CAAC,aAAa;AAChD,cAAE,IAAI,CAAC,aAAa,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAC5D,CAAC;AAEF,QAAA,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE;AAC/B,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CACzB,IAAI,CAAC,aAAa,GAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,cAAc,CAA2B,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAC5H,CAAC;AACL,SAAA;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAAC;QAC/F,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC1D,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AACzD,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AAC/C,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AAC9C,QAAA,IACI,EAAE,CAAC,CAAC,OAAO,YAAY,OAAO,CAAC;AAC/B,YAAA,CAAC,CAAC,OAAO,CAAC,KAAK,YAAY,aAAa;AACvC,YAAA,CAAC,CAAC,OAAO,CAAC,KAAuB,CAAC,IAAI,KAAK,WAAW;YACvD,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EACvC;YACE,IAAI,CAAC,QAAQ,CAAC,YAAY;iBACrB,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1C,iBAAA,aAAa,CAAC,aAAa,CAAC,wBAAwB,CAAC;AACrD,iBAAA,KAAK,EAAE,CAAC;AAChB,SAAA;KACJ;;IAGM,OAAO,GAAA;AACV,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChB,YAAA,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE;gBAClB,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,CAAC;AACxH,aAAA;AACD,YAAA,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;AACrB,SAAA;KACJ;;AAGM,IAAA,YAAY,CAAC,CAAa,EAAA;AAC7B,QAAA,IAAI,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE;AAC/E,YAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AACpB,SAAA;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;IAEM,OAAO,GAAA;QACV,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,gBAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC3C,aAAA;AAAM,iBAAA;gBACH,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE;AAC5G,oBAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC3C,iBAAA;AACJ,aAAA;AACJ,SAAA;KACJ;IAEM,UAAU,GAAA;QACb,IAAI,CAAC,OAAO,EAAE,CAAC;QAEf,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,UAAU,CAAC,MAAK;oBACZ,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;AAChD,oBAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;iBAC3C,EAAE,GAAG,CAAC,CAAC;AACX,aAAA;AAAM,iBAAA;gBACH,UAAU,CAAC,MAAK;oBACZ,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE;wBAC5G,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;AAChD,wBAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC3C,qBAAA;iBACJ,EAAE,GAAG,CAAC,CAAC;AACX,aAAA;AACJ,SAAA;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;KACpB;AAEM,IAAA,SAAS,CAAC,KAAa,EAAA;AAC1B,QAAA,OAAO,KAAK,CAAC;KAChB;IAEM,OAAO,GAAA;AACV,QAAA,IAAI,CAAC,4BAA4B,CAAC,WAAW,EAAE,CAAC;AAChD,QAAA,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;AAC7B,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AACnB,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AACrB,SAAA;AACD,QAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AACvC,QAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC;AAC9B,QAAA,IAAI,CAAC,yCAAyC,CAAC,WAAW,EAAE,CAAC;KAChE;IAEM,MAAM,GAAA;AACT,QAAA,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,gBAAgB;AACpD,aAAA,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC;AACxC,aAAA,SAAS,CAAC,CAAC,KAAoB,KAAI;YAChC,MAAM,gBAAgB,GAAG,KAAK,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACtG,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,gBAAgB,CAAC,EAAE;AACzE,gBAAA,IAAI,CAAC,wBAAwB,CAAC,UAAU,EAAE,CAAC;AAC9C,aAAA;AACL,SAAC,CAAC,CAAC;AACP,QAAA,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;AAC7B,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AACnB,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AACpB,SAAA;QAED,IAAI,iBAAiB,GAAG,CAAC,CAAC;AAC1B,QAAA,IAAI,eAAe,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QAE9C,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE;YAC/D,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAC/D,SAAA;AAED,QAAA,IAAI,CAAC,yCAAyC,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,SAAS,CAAC;aAC/F,IAAI,CACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EACxB,MAAM,CAAC,CAAC,CAAgB,KAAK,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAC/E;AACA,aAAA,SAAS,CAAC,CAAC,CAAgB,KAAI;AAC5B,YAAA,IAAI,CAAC,EAAE;AACH,gBAAA,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBAChG,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC9B,iBAAA;gBAED,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,mBAAmB,GAAG,CAAC,EAAE;oBACtD,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC9B,iBAAA;AAED,gBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,KAAK,CAAC;gBAEzF,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACvD,gBAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;AAElE,gBAAA,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,MAAM,GAAG,eAAe,GAAG,iBAAiB,GAAG,eAAe,EAAE;oBAC1F,IAAI,cAAc,GAAG,CAAC,CAAC;oBACnB,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC;oBACxD,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,wBAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,aAAa,IAAG;AAC3D,4BAAA,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;AAC3D,gCAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,cAAc,GAAG,CAAC,EAAE;AACxF,gCAAA,cAAc,EAAG,CAAC;AACrB,6BAAA;AACL,yBAAC,CAAC,CAAC;AACN,qBAAA;AAEL,oBAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,GAAG,cAAc,IAAI,eAAe,IAAI,eAAe,IAAI,SAAS,EAAE;AAC/F,wBAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,mBAAmB,GAAG,cAAc,IAAI,eAAe,GAAG,iBAAiB,CAAC,CAAC;AACvH,wBAAA,iBAAiB,EAAE,CAAC;AACpB,wBAAA,eAAe,EAAE,CAAC;AACrB,qBAAA;AACD,oBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;AAC3B,iBAAA;gBACD,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,GAAG,iBAAiB,EAAE;AACpD,oBAAA,IAAI,IAAI,CAAC,mBAAmB,GAAG,iBAAiB,EAAE;wBAC9C,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAC9D,wBAAA,iBAAiB,EAAE,CAAC;AACpB,wBAAA,eAAe,EAAE,CAAC;AACrB,qBAAA;AACJ,iBAAA;AACJ,aAAA;AACL,SAAC,CAAC,CAAC;KACV;AAEM,IAAA,UAAU,CAAC,KAAkD,EAAA;AAChE,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,wBAAwB,GAAG,KAAK,GAAI,KAA+B,GAAG,EAAE,CAAC;AAC9E,YAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAC7D,CAAC,QAAQ,KAAK,IAAI,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAC3G,CAAC;YACF,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;AACnC,YAAA,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AAEhE,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACnD,SAAA;AAAM,aAAA;YACH,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,KAAK,GAAI,KAA6B,CAAC,KAAK,GAAG,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/G,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,GAAI,KAA6B,CAAC,KAAK,GAAG,IAAI,CAAC;AACtE,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AAChE,SAAA;KACJ;AAEM,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AACvC,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AAC7B,QAAA,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC;KACvF;AAEM,IAAA,gBAAgB,CAAC,EAAc,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACtB;AAEM,IAAA,iBAAiB,CAAC,EAAc,EAAA;AACnC,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;KACrB;;;AAIM,IAAA,aAAa,CAAC,CAAM,EAAA;;;AAGvB,QAAA,IAAI,CAAC,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,KAAI;YACnD,MAAM,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YACvE,OAAO,KAAK,GAAG,KAAK,GAAG,IAAI,mBAAmB,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;AAClG,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAEhD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAAC;QAC/F,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC1D,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AAEzD,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACzB;;;AAIM,IAAA,iBAAiB,CAAC,CAAM,EAAA;AAC3B,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAC9B;;;AAIM,IAAA,kBAAkB,CAAC,CAAM,EAAA;AAC5B,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9B,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAChC;IAEM,OAAO,GAAA;AACV,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC9B;IAEM,eAAe,GAAA;AAClB,QAAA,IAAI,CAAC,wBAAwB,CAAC,UAAU,EAAE,CAAC;KAC9C;IAEM,kBAAkB,GAAA;QACrB,IAAI,IAAI,CAAC,aAAa,KAAK,QAAQ,IAAI,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/H,IAAI,CAAC,eAAe,EAAE,CAAC;AACvB,YAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,KAAK,EAAE,CAAC;AACjG,SAAA;KACJ;IAEO,SAAS,CAAC,MAAmB,EAAE,gBAA6B,EAAA;QAChE,MAAM,OAAO,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;AACjD,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/E,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,qBAAqB,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC;QAEpF,QACI,CAAC,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,sBAAsB;AAChD,aAAC,OAAO,GAAG,iBAAiB,GAAG,CAAC,IAAI,OAAO,GAAG,iBAAiB,GAAG,sBAAsB,CAAC,EAC3F;KACL;AAEO,IAAA,iBAAiB,CAAC,KAAmC,EAAA;QACzD,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAC7D,CAAC,QAAQ,KAAK,IAAI,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAC3G,CAAC;AAEF,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;;YAG9B,IAAI,CAAC,KAAK,EAAE;gBACR,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAAC;AAClG,aAAA;AACJ,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,KAC9C,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;AACpD,sBAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE;sBAC9D,KAAK,CACd,CAAC;AAEF,gBAAA,IAAI,SAAS,EAAE;AACX,oBAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC5B,iBAAA;AAAM,qBAAA;oBACH,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,mBAAmB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC1F,iBAAA;AACJ,aAAA;AAAM,iBAAA;AACH,gBAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC;gBAClD,IAAI,CAAC,KAAK,EAAE;AACR,oBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACnD,iBAAA;AACJ,aAAA;AACJ,SAAA;AAED,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC;AACxC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC;AAEvC,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACb,YAAA,MAAM,WAAW,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AAC9E,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CACzB,IAAI,CAAC,aAAa;AACd,kBAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,WAAqB,CAAC,EAAE,IAAI,CAAC,cAAc,CAA2B;kBACpG,IAAI,CAAC,OAAO,CAAC,WAAqB,CAAC,CAC5C,CAAC;AACL,SAAA;KACJ;AAUO,IAAA,OAAO,CAAC,GAAW,EAAA;QACvB,MAAM,aAAa,GAA0B,EAAE,CAAC;QAChD,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAyB,KAAI;AACxD,YAAA,MAAM,SAAS,GACX,CAAC,IAAI,CAAC,uBAAuB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC;kBACvE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,YAAiC,KAAI;oBACrE,IAAI,IAAI,CAAC,EAAE,EAAE;AACT,wBAAA,OAAO,YAAY,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;AACtC,qBAAA;AAAM,yBAAA;AACH,wBAAA,OAAO,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;AACxE,qBAAA;AACL,iBAAC,CAAC;kBACF,KAAK,CAAC;YAEhB,IAAI,CAAC,SAAS,EAAE;AACZ,gBAAA,IAAI,GAAG,EAAE;oBACL,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE;AACvG,wBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,qBAAA;AACD,oBAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,WAAW,EAAE,EAAE;AAClH,wBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,qBAAA;AACJ,iBAAA;AAAM,qBAAA;AACH,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,iBAAA;AACJ,aAAA;AACL,SAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,aAAa,GAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,CAA2B,GAAG,aAAa,CAAC;KAC9H;IAEO,SAAS,GAAA;AACb,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAC3C,CAAC,QAAQ,KACL,IAAI,OAAO,CAAC;YACR,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,aAAa,EAAE,QAAQ,CAAC,aAAa;YACrC,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,WAAW,EAAE,QAAQ,CAAC,WAAW;AACjC,YAAA,cAAc,EAAE,QAAQ,CAAC,OAAO,EAAE,cAAc;AAChD,YAAA,OAAO,EAAE,IAAI,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC7C,SAAS,EAAE,QAAQ,CAAC,SAAS;AAChC,SAAA,CAAC,CACT,CAAC;QAEF,OAAO,IAAI,CAAC,aAAa,GAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAe,GAAG,KAAK,CAAC;KAClG;IAEO,UAAU,GAAA;AACd,QAAA,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KACxD;IAEO,UAAU,CAAC,GAAsC,EAAE,SAAyB,EAAA;QAChF,GAAG,CAAC,IAAI,CAAC,CAAC,CAAgC,EAAE,CAAgC,KAAI;YAC5E,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YAEnC,IAAI,SAAS,KAAK,KAAK,EAAE;gBACrB,IAAI,IAAI,GAAG,IAAI,EAAE;oBACb,OAAO,CAAC,CAAC,CAAC;AACb,iBAAA;gBACD,IAAI,IAAI,GAAG,IAAI,EAAE;AACb,oBAAA,OAAO,CAAC,CAAC;AACZ,iBAAA;AACD,gBAAA,OAAO,CAAC,CAAC;AACZ,aAAA;AAAM,iBAAA;gBACH,IAAI,IAAI,GAAG,IAAI,EAAE;oBACb,OAAO,CAAC,CAAC,CAAC;AACb,iBAAA;gBACD,IAAI,IAAI,GAAG,IAAI,EAAE;AACb,oBAAA,OAAO,CAAC,CAAC;AACZ,iBAAA;AACD,gBAAA,OAAO,CAAC,CAAC;AACZ,aAAA;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,GAAG,CAAC;KACd;IAEO,eAAe,GAAA;QACnB,MAAM,cAAc,GAAa,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;AAC7J,QAAA,MAAM,oBAAoB,GAAa,CAAC,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,CAAS,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACrH,MAAM,cAAc,GAAiF,EAAE,CAAC;QAExG,IAAI,cAAc,GAAG,CAAC,CAAC;AACvB,QAAA,KAAK,MAAM,KAAK,IAAI,oBAAoB,EAAE;YACtC,IAAI,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;YAC9J,IAAI,IAAI,CAAC,aAAa,EAAE;gBACpB,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAA0B,CAAC;AACxE,aAAA;YAED,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC;AACvD,YAAA,cAAc,IAAI,CAAC,CAAC,MAAM,CAAC;AAC9B,SAAA;AAED,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACzC,QAAA,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;KACpD;kIA/zBQ,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,2yDA2DhB,oBAAoB,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAEG,UAAU,EACH,EAAA,EAAA,YAAA,EAAA,0BAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,sBAAsB,iWC5GzE,2tVA+KA,EAAA,MAAA,EAAA,CAAA,42JAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,8BAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,mDAAA,EAAA,QAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,kDAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,yBAAA,EAAA,yBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iCAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,gCAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FDjIa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,SAAS;AAEI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0CAA0C,mBAEnC,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,2tVAAA,EAAA,MAAA,EAAA,CAAA,42JAAA,CAAA,EAAA,CAAA;;0BA8OhC,IAAI;;0BAAI,QAAQ;oGAzOZ,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBACG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,wBAAwB,EAAA,CAAA;sBAAhC,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,qBAAqB,EAAA,CAAA;sBAA7B,KAAK;gBACG,sBAAsB,EAAA,CAAA;sBAA9B,KAAK;gBAGI,MAAM,EAAA,CAAA;sBAAf,MAAM;gBAEG,MAAM,EAAA,CAAA;sBAAf,MAAM;gBAEG,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBAEG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBAEG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAEG,YAAY,EAAA,CAAA;sBAArB,MAAM;gBAEG,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBAEG,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBAEG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAEG,KAAK,EAAA,CAAA;sBAAd,MAAM;gBAGG,KAAK,EAAA,CAAA;sBAAd,MAAM;gBAEG,IAAI,EAAA,CAAA;sBAAb,MAAM;gBAEG,IAAI,EAAA,CAAA;sBAAb,MAAM;gBACG,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBACG,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBACG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBAGH,UAAU,EAAA,CAAA;sBADb,WAAW;uBAAC,OAAO,CAAA;gBAKmB,SAAS,EAAA,CAAA;sBAA/C,eAAe;uBAAC,oBAAoB,CAAA;gBAEiB,iBAAiB,EAAA,CAAA;sBAAtE,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,mBAAmB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;gBACqB,wBAAwB,EAAA,CAAA;sBAAhG,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,0BAA0B,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAA;gBACpD,eAAe,EAAA,CAAA;sBAAjC,SAAS;uBAAC,MAAM,CAAA;gBACM,QAAQ,EAAA,CAAA;sBAA9B,SAAS;uBAAC,UAAU,CAAA;gBACU,gBAAgB,EAAA,CAAA;sBAA9C,SAAS;uBAAC,kBAAkB,CAAA;gBAiBzB,QAAQ,EAAA,CAAA;sBADX,KAAK;gBASF,MAAM,EAAA,CAAA;sBADT,KAAK;gBASF,KAAK,EAAA,CAAA;sBADR,KAAK;gBASF,SAAS,EAAA,CAAA;sBADZ,KAAK;gBASF,kBAAkB,EAAA,CAAA;sBADrB,KAAK;gBASF,uBAAuB,EAAA,CAAA;sBAD1B,KAAK;gBASF,SAAS,EAAA,CAAA;sBADZ,KAAK;gBASF,gBAAgB,EAAA,CAAA;sBADnB,KAAK;gBASF,oBAAoB,EAAA,CAAA;sBADvB,KAAK;gBASF,uBAAuB,EAAA,CAAA;sBAD1B,KAAK;gBASF,uBAAuB,EAAA,CAAA;sBAD1B,KAAK;gBASF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBASF,aAAa,EAAA,CAAA;sBADhB,KAAK;gBASF,aAAa,EAAA,CAAA;sBADhB,KAAK;gBASF,kBAAkB,EAAA,CAAA;sBADrB,KAAK;gBASF,gBAAgB,EAAA,CAAA;sBADnB,KAAK;gBASF,qBAAqB,EAAA,CAAA;sBADxB,KAAK;;;MEpOG,qBAAqB,CAAA;kIAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;mIAArB,qBAAqB,EAAA,YAAA,EAAA,CAHf,wBAAwB,CAAA,EAAA,OAAA,EAAA,CATnC,YAAY;YACZ,mBAAmB;YACnB,qBAAqB;YACrB,iBAAiB;YACjB,aAAa;YACb,aAAa;YACb,kBAAkB;AAClB,YAAA,eAAe,aAGT,wBAAwB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEzB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,YAZ1B,YAAY;YACZ,mBAAmB;YACnB,qBAAqB;YACrB,iBAAiB;YACjB,aAAa;YACb,aAAa;YACb,kBAAkB;YAClB,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAKV,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAdjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,mBAAmB;wBACnB,qBAAqB;wBACrB,iBAAiB;wBACjB,aAAa;wBACb,aAAa;wBACb,kBAAkB;wBAClB,eAAe;AAClB,qBAAA;oBACD,YAAY,EAAE,CAAC,wBAAwB,CAAC;oBACxC,OAAO,EAAE,CAAC,wBAAwB,CAAC;AACtC,iBAAA,CAAA;;;AC1BD;;AAEG;;;;"}
|