import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, Input, Output, TemplateRef, ViewChild, ViewEncapsulation, } from '@angular/core';
import { merge, Subject } from 'rxjs';
import { NgSelectComponent } from '@ng-select/ng-select';
import { delay, takeUntil, tap } from 'rxjs/operators';
import { isNull } from 'lodash-es';
import { EvoInputTheme } from '../../../evo-input';
import { iconDecline } from '@evotor-dev/ui-kit/icons/system';
import * as i0 from "@angular/core";
import * as i1 from "@angular/forms";
import * as i2 from "@ng-select/ng-select";
import * as i3 from "../../../evo-control-error/evo-control-error.component";
import * as i4 from "../../../../directives/evo-ui-class.directive";
import * as i5 from "@angular/common";
const DEFAULT_NOT_FOUND_TEXT = 'Не найдено';
export class EvoAutocompleteComponent {
    constructor(cdr, control) {
        this.cdr = cdr;
        this.control = control;
        this.theme = EvoInputTheme.default;
        this.size = 'normal';
        this.isFocused = false;
        this.isSelectbox = false;
        this.markFirst = true;
        this.addTagText = 'Добавить тэг';
        this.loadingText = 'Идет поиск...';
        this.dropdownPosition = 'auto';
        this.closeOnSelect = true;
        this.bufferAmount = 4;
        this.selectableGroupAsModel = true;
        this.clearOnBackspace = true;
        this.clearable = true;
        // Fix: https://github.com/ng-select/ng-select/pull/1257
        // Don't work with custom template - labelTemp
        this.editQuery = false;
        // Outputs
        /* eslint-disable @angular-eslint/no-output-rename */
        this.blurEvent = new EventEmitter();
        this.focusEvent = new EventEmitter();
        this.changeEvent = new EventEmitter();
        this.openEvent = new EventEmitter();
        this.closeEvent = new EventEmitter();
        this.searchEvent = new EventEmitter();
        this.clearEvent = new EventEmitter();
        this.addEvent = new EventEmitter();
        this.removeEvent = new EventEmitter();
        this.scrollEvent = new EventEmitter();
        this.scrollToEndEvent = new EventEmitter();
        this._destroy$ = new Subject();
        this._onChange = (value) => { };
        this._onTouched = () => { };
        control.valueAccessor = this;
    }
    get notFoundText() {
        if (this.isSelectbox) {
            return this._notFoundText || '';
        }
        return this._notFoundText || DEFAULT_NOT_FOUND_TEXT;
    }
    set searchable(searchable) {
        this._searchable = searchable;
    }
    get searchable() {
        return this._searchable ?? !this.isSelectbox;
    }
    set setSelectbox(isSelectbox) {
        this.clearable = false;
        this.editQuery = false;
        this.isSelectbox = isSelectbox;
    }
    set setTheme(theme) {
        if (EvoInputTheme[theme]) {
            this.theme = EvoInputTheme[theme];
        }
    }
    get hasErrors() {
        return this.control.dirty && this.control.touched && this.control.invalid;
    }
    get classes() {
        return {
            'is-multiple-inline': this.multipleInline,
            'is-edit-query': this.editQuery,
            'is-selectbox': this.isSelectbox,
            disabled: this.control.disabled,
            touched: this.control.touched,
            valid: this.control.valid,
            invalid: this.control.invalid,
            [`theme-${this.theme}`]: true,
            [`size-${this.size}`]: true,
        };
    }
    get value() {
        return this._value;
    }
    set value(value) {
        if (value !== this._value) {
            this._value = value;
            this._onChange(value);
        }
    }
    getMultipleInlineItemsLabels(items) {
        if (!items || !Array.isArray(items) || items.length === 0) {
            return '';
        }
        return items
            .map((item) => item[this.bindLabel] || '')
            .filter((item) => item !== '')
            .join(', ');
    }
    ngAfterViewInit() {
        if (this.editQuery) {
            this.editQueryMode();
        }
        this.patchClearButtonIcon();
        // prevent option click to close evo-modal
        this.ngSelectComponent.element.addEventListener('click', (e) => {
            if (e.target.closest('.ng-option')) {
                e.stopPropagation();
            }
        });
        // Allows to mark view for check
        // if control was validated with FormHelper.validate
        // and it's touched
        this.control.control.statusChanges
            .pipe(takeUntil(this._destroy$), tap(() => this.cdr.markForCheck()))
            .subscribe();
    }
    ngOnDestroy() {
        this._destroy$.next();
        this._destroy$.complete();
    }
    writeValue(value) {
        this.value = value;
        if (this.ngSelectComponent) {
            this.ngSelectComponent.writeValue(value);
        }
    }
    registerOnChange(fn) {
        this._onChange = fn;
    }
    registerOnTouched(fn) {
        this._onTouched = fn;
    }
    setDisabledState(isDisabled) {
        if (this.ngSelectComponent) {
            this.ngSelectComponent.setDisabledState(isDisabled);
        }
    }
    // TODO: investigate and remove
    editQueryMode() {
        const ngSelectEl = this.ngSelectComponent.element;
        this.inputEl = ngSelectEl.querySelector('.ng-input input');
        const streams$ = [
            this.changeEvent.pipe(delay(0), tap(() => {
                this.resetSearchQuery();
                this.inputEl.value = this.inputVal || '';
            })),
            this.closeEvent.pipe(delay(0), tap(() => {
                this.resetSearchQuery();
                if (ngSelectEl.classList.contains('ng-select-focused')) {
                    this.inputEl.value = this.inputVal || '';
                }
            })),
            this.focusEvent.pipe(tap(() => {
                this.resetSearchQuery();
                this.inputEl.value = this.inputVal || '';
            })),
            this.blurEvent.pipe(tap(() => {
                this.inputEl.value = '';
            })),
        ];
        if (this.control.valueChanges) {
            streams$.push(this.control.valueChanges.pipe(tap((value) => {
                if (!isNull(value)) {
                    this.resetSearchQuery();
                    return;
                }
                this.inputVal = '';
                this.inputEl.value = '';
            })));
        }
        merge(...streams$)
            .pipe(takeUntil(this._destroy$))
            .subscribe();
    }
    resetSearchQuery() {
        const currentItem = this.ngSelectComponent.selectedItems[0];
        this.inputVal = currentItem?.label || '';
    }
    focus() {
        this.ngSelectComponent.focus();
    }
    blur() {
        this.ngSelectComponent.blur();
    }
    open() {
        this.ngSelectComponent.open();
    }
    close() {
        this.ngSelectComponent.close();
    }
    onFocus(event) {
        this.isFocused = true;
        this._onTouched();
        if (this.control.value) {
            this.focusEvent.emit(event);
        }
    }
    onBlur(event) {
        this.isFocused = false;
        this.blurEvent.emit(event);
    }
    onClearClick() {
        this.ngSelectComponent.handleClearClick();
    }
    /**
     * Try to patch clear button icon
     */
    patchClearButtonIcon() {
        const originalShowClearFn = this.ngSelectComponent.showClear;
        const ngSelectElement = this.ngSelectComponent;
        let patchTimeout = null;
        this.ngSelectComponent.showClear = function () {
            const isClearButtonVisible = originalShowClearFn.bind(this)();
            if (isClearButtonVisible) {
                if (patchTimeout) {
                    clearTimeout(patchTimeout);
                }
                patchTimeout = setTimeout(() => {
                    const ngClearWrapperElement = ngSelectElement.element.querySelector('.ng-clear-wrapper');
                    if (!ngClearWrapperElement) {
                        return;
                    }
                    // tslint:disable-next-line:max-line-length
                    ngClearWrapperElement.innerHTML = `<span class="ng-clear ng-clear_patched"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">${iconDecline}</svg></span>`;
                });
            }
            return isClearButtonVisible;
        };
    }
}
EvoAutocompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: EvoAutocompleteComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.NgControl }], target: i0.ɵɵFactoryTarget.Component });
EvoAutocompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: EvoAutocompleteComponent, selector: "evo-autocomplete", inputs: { size: "size", isOpen: "isOpen", items: "items", bindLabel: "bindLabel", bindValue: "bindValue", markFirst: "markFirst", placeholder: "placeholder", typeToSearchText: "typeToSearchText", addTagText: "addTagText", loadingText: "loadingText", clearAllText: "clearAllText", dropdownPosition: "dropdownPosition", appendTo: "appendTo", loading: "loading", closeOnSelect: "closeOnSelect", hideSelected: "hideSelected", selectOnTab: "selectOnTab", openOnEnter: "openOnEnter", maxSelectedItems: "maxSelectedItems", groupBy: "groupBy", groupValue: "groupValue", bufferAmount: "bufferAmount", virtualScroll: "virtualScroll", selectableGroup: "selectableGroup", selectableGroupAsModel: "selectableGroupAsModel", searchFn: "searchFn", clearOnBackspace: "clearOnBackspace", typeahead: "typeahead", multiple: "multiple", multipleInline: "multipleInline", addTag: "addTag", clearable: "clearable", errorsMessages: "errorsMessages", compareWith: "compareWith", _notFoundText: ["notFoundText", "_notFoundText"], editQuery: "editQuery", searchable: "searchable", setSelectbox: ["isSelectbox", "setSelectbox"], setTheme: ["theme", "setTheme"] }, outputs: { blurEvent: "blur", focusEvent: "focus", changeEvent: "change", openEvent: "open", closeEvent: "close", searchEvent: "search", clearEvent: "clear", addEvent: "add", removeEvent: "remove", scrollEvent: "scroll", scrollToEndEvent: "scrollToEnd" }, queries: [{ propertyName: "labelTemp", first: true, predicate: ["labelTemp"], descendants: true, read: TemplateRef }, { propertyName: "multiLabelTemp", first: true, predicate: ["multiLabelTemp"], descendants: true, read: TemplateRef }, { propertyName: "optionTemp", first: true, predicate: ["optionTemp"], descendants: true, read: TemplateRef }, { propertyName: "optgroupTemp", first: true, predicate: ["optgroupTemp"], descendants: true, read: TemplateRef }, { propertyName: "headerTemp", first: true, predicate: ["headerTemp"], descendants: true, read: TemplateRef }, { propertyName: "footerTemp", first: true, predicate: ["footerTemp"], descendants: true, read: TemplateRef }, { propertyName: "notFoundTemp", first: true, predicate: ["notFoundTemp"], descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "ngSelectComponent", first: true, predicate: NgSelectComponent, descendants: true }], ngImport: i0, template: "<div class=\"evo-autocomplete\" [evoUiClass]=\"classes\">\n    <ng-select\n        [items]=\"items\"\n        [bindLabel]=\"bindLabel\"\n        [bindValue]=\"bindValue\"\n        [markFirst]=\"markFirst\"\n        [placeholder]=\"placeholder\"\n        [notFoundText]=\"notFoundText\"\n        [typeToSearchText]=\"typeToSearchText\"\n        [addTagText]=\"addTagText\"\n        [loadingText]=\"loadingText\"\n        [clearAllText]=\"clearAllText\"\n        [dropdownPosition]=\"dropdownPosition\"\n        [appendTo]=\"appendTo\"\n        [loading]=\"loading\"\n        [closeOnSelect]=\"closeOnSelect\"\n        [hideSelected]=\"hideSelected\"\n        [selectOnTab]=\"selectOnTab\"\n        [openOnEnter]=\"openOnEnter\"\n        [maxSelectedItems]=\"maxSelectedItems\"\n        [groupBy]=\"groupBy\"\n        [groupValue]=\"groupValue\"\n        [bufferAmount]=\"bufferAmount\"\n        [virtualScroll]=\"virtualScroll\"\n        [selectableGroup]=\"selectableGroup\"\n        [selectableGroupAsModel]=\"selectableGroupAsModel\"\n        [searchFn]=\"searchFn\"\n        [clearOnBackspace]=\"clearOnBackspace\"\n        [typeahead]=\"typeahead\"\n        [multiple]=\"multiple || multipleInline\"\n        [addTag]=\"addTag\"\n        [searchable]=\"searchable\"\n        [clearable]=\"clearable\"\n        [isOpen]=\"isOpen\"\n        [editableSearchTerm]=\"editQuery\"\n        [disabled]=\"control.disabled\"\n        [compareWith]=\"compareWith\"\n        [(ngModel)]=\"value\"\n        (blur)=\"onBlur($event)\"\n        (focus)=\"onFocus($event)\"\n        (change)=\"changeEvent.emit($event)\"\n        (open)=\"openEvent.emit($event)\"\n        (close)=\"closeEvent.emit($event)\"\n        (search)=\"searchEvent.emit($event)\"\n        (clear)=\"clearEvent.emit($event)\"\n        (add)=\"addEvent.emit($event)\"\n        (remove)=\"removeEvent.emit($event)\"\n        (scroll)=\"scrollEvent.emit($event)\"\n        (scrollToEnd)=\"scrollToEndEvent.emit($event)\"\n    >\n        <!-- Selected Item Template -->\n        <ng-template *ngIf=\"labelTemp\" ng-label-tmp let-item=\"item\">\n            <ng-template *ngTemplateOutlet=\"labelTemp; context: { item: item }\"></ng-template>\n        </ng-template>\n\n        <!-- Overall Label For All Selected Items Template -->\n        <ng-template *ngIf=\"multiLabelTemp\" ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n            <div class=\"evo-autocomplete__label\">\n                <ng-template *ngTemplateOutlet=\"multiLabelTemp; context: { items: items, clear: clear }\"></ng-template>\n            </div>\n        </ng-template>\n\n        <!-- Options header template -->\n        <ng-template *ngIf=\"headerTemp\" ng-header-tmp>\n            <ng-template *ngTemplateOutlet=\"headerTemp; context: {items: items}\"></ng-template>\n        </ng-template>\n\n        <!-- Option Template -->\n        <ng-template\n            *ngIf=\"optionTemp\"\n            ng-option-tmp\n            let-item=\"item\"\n            let-index=\"index\"\n            let-search=\"searchTerm\"\n            let-item$=\"item$\"\n        >\n            <ng-template\n                *ngTemplateOutlet=\"optionTemp; context: { item: item, index: index, searchTerm: search, item$: item$}\"\n            ></ng-template>\n        </ng-template>\n\n        <ng-container *ngIf=\"multipleInline && !multiLabelTemp\">\n            <ng-template ng-multi-label-tmp let-items=\"items\">\n                <div class=\"ng-value evo-autocomplete__label\">{{ getMultipleInlineItemsLabels(items) }}</div>\n            </ng-template>\n        </ng-container>\n\n        <!-- Options group template -->\n        <ng-template *ngIf=\"optgroupTemp\" ng-optgroup-tmp let-item=\"item\" let-index=\"index\">\n            <ng-template *ngTemplateOutlet=\"optgroupTemp; context: { item: item, index: index }\"></ng-template>\n        </ng-template>\n\n        <!-- Search Text Templates -->\n        <ng-template ng-typetosearch-tmp>\n            <div *ngIf=\"typeToSearchText\" class=\"ng-option disabled\">{{typeToSearchText}}</div>\n        </ng-template>\n        <ng-template ng-loadingtext-tmp let-searchTerm=\"searchTerm\">\n            <div class=\"ng-option disabled\">{{loadingText}}</div>\n        </ng-template>\n\n        <ng-container *ngIf=\"notFoundTemp; else defaultNotFoundTemplate\">\n            <ng-template ng-notfound-tmp let-searchTerm=\"searchTerm\">\n                <ng-template *ngTemplateOutlet=\"notFoundTemp; context: {searchTerm: searchTerm}\"></ng-template>\n            </ng-template>\n        </ng-container>\n        <ng-template #defaultNotFoundTemplate>\n            <ng-template ng-notfound-tmp>\n                <div class=\"ng-option disabled\">{{notFoundText}}</div>\n            </ng-template>\n        </ng-template>\n\n        <!-- Options footer template -->\n        <ng-template *ngIf=\"footerTemp\" ng-footer-tmp>\n            <ng-template *ngTemplateOutlet=\"footerTemp; context: {items: items}\"></ng-template>\n        </ng-template>\n    </ng-select>\n    <evo-control-error\n        *ngIf=\"hasErrors && errorsMessages\"\n        [errors]=\"control.errors\"\n        [errorsMessages]=\"errorsMessages\"\n    ></evo-control-error>\n</div>\n", styles: ["@keyframes evo-fx-blink{50%{transform:scale(1);opacity:1}to{opacity:0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes gradient{0%{background-position:0 50%}50%{background-position:50vw 50%}to{background-position:100vw 50%}}@keyframes evo-ellipsis-animation{0%{content:\"\"}25%{content:\".\"}50%{content:\"..\"}75%{content:\"...\"}to{content:\"\"}}evo-autocomplete{--evo-dropdown-max-height: 310px;--evo-autocomplete-option-overflow: hidden;--evo-autocomplete-option-text-overflow: ellipsis;--evo-autocomplete-option-white-space: normal;--evo-autocomplete-optgroup-overflow: hidden;--evo-autocomplete-optgroup-text-overflow: ellipsis;--evo-autocomplete-optgroup-white-space: nowrap;--evo-autocomplete-arrow-icon-color: #91B1B8;--evo-autocomplete-option-v-padding: 12px;--evo-autocomplete-option-h-padding: 16px;--evo-autocomplete-panel-border-radius: 8px;--evo-autocomplete-panel-shadow: 0px 8px 10px rgba(0, 0, 0, .14), 0px 3px 14px rgba(0, 0, 0, .12)}evo-autocomplete .evo-autocomplete{--inner-input-padding-right: 12px;position:relative;display:block}evo-autocomplete .evo-autocomplete__icon{display:block;flex:0 0 24px;width:24px;height:24px}evo-autocomplete .evo-autocomplete__icon_clear{position:absolute;top:12px;right:12px;z-index:1001;cursor:pointer;transition:fill .3s;fill:#91b1b8}evo-autocomplete .evo-autocomplete__icon_clear:hover{fill:#a7c1c6}evo-autocomplete .evo-autocomplete__icon_clear:active{fill:#829fa6}evo-autocomplete .evo-autocomplete__icon_dropdown{fill:#212121}evo-autocomplete .evo-autocomplete .ng-input{padding:0 var(--inner-input-padding-right) 0 12px}evo-autocomplete .evo-autocomplete .ng-placeholder{color:#9b9b9b}evo-autocomplete .evo-autocomplete .ng-value-container{align-items:center;min-width:0;overflow:hidden}evo-autocomplete .evo-autocomplete__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}evo-autocomplete .evo-autocomplete .ng-select-container{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;display:flex;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s;position:relative;align-items:center;margin:0;padding:8px var(--inner-input-padding-right) 8px 12px;line-height:var(--evo-input-height)}evo-autocomplete .evo-autocomplete .ng-select-container:hover{border:1px solid #9B9B9B}evo-autocomplete .evo-autocomplete .ng-select-container:has(.ng-clear:not(:empty)){--inner-input-padding-right: 0}evo-autocomplete .evo-autocomplete .ng-select-container.ng-has-value .ng-placeholder{display:none}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper{display:inline-flex;align-items:center;width:24px;height:100%;margin:0 8px;padding:0;text-align:center;color:#91b1b8;transition:color .3s}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper:hover{color:#a7c1c6}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper:active{color:#829fa6}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper .ng-clear{display:none}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper .ng-clear_patched{display:block;cursor:pointer}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper .ng-clear_patched svg{display:block;fill:currentColor}evo-autocomplete .evo-autocomplete .ng-select .ng-spinner-loader{display:flex;justify-content:center;align-items:center;width:16px;height:100%;margin:0 0 0 8px;border:none;transform:none;animation:none}evo-autocomplete .evo-autocomplete .ng-select .ng-spinner-loader:before{content:\"\";display:block;flex:0 0 16px;width:16px;height:16px;border:2px solid #C6C6C6;border-top-color:#21c68b;border-radius:50%;animation:spin .8s linear infinite}evo-autocomplete .evo-autocomplete .ng-optgroup{font-weight:400;--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #FFFFFF;display:flex;align-items:center;min-height:48px;white-space:normal;color:var(--inner-option-text-color);background-color:var(--inner-option-background);padding:var(--evo-autocomplete-option-v-padding) var(--evo-autocomplete-option-h-padding);cursor:pointer;font-family:var(--evo-font);font-style:normal;font-size:14px;line-height:24px;font-weight:600}evo-autocomplete .evo-autocomplete .ng-optgroup evo-autocomplete-default-option{--evo-autocomplete-default-option-background: var(--inner-option-background);--evo-autocomplete-default-option-text-color: var(--inner-option-text-color);--evo-autocomplete-default-option-description-color: var(--inner-option-description-color)}evo-autocomplete .evo-autocomplete .ng-optgroup.ng-option-marked{--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #F4F6F8}evo-autocomplete .evo-autocomplete .ng-optgroup.ng-option-disabled{--inner-option-text-color: #C6C6C6;--inner-option-description-color: #C6C6C6;--inner-option-background: #FFFFFF;cursor:default}evo-autocomplete .evo-autocomplete .ng-optgroup.ng-option-selected{--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #E1ECEF}evo-autocomplete .evo-autocomplete .ng-option{font-family:var(--evo-font);font-style:normal;font-size:14px;line-height:24px;font-weight:400;--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #FFFFFF;display:flex;align-items:center;min-height:48px;white-space:normal;color:var(--inner-option-text-color);background-color:var(--inner-option-background);padding:var(--evo-autocomplete-option-v-padding) var(--evo-autocomplete-option-h-padding);cursor:pointer}evo-autocomplete .evo-autocomplete .ng-option evo-autocomplete-default-option{--evo-autocomplete-default-option-background: var(--inner-option-background);--evo-autocomplete-default-option-text-color: var(--inner-option-text-color);--evo-autocomplete-default-option-description-color: var(--inner-option-description-color)}evo-autocomplete .evo-autocomplete .ng-option.ng-option-marked{--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #F4F6F8}evo-autocomplete .evo-autocomplete .ng-option.ng-option-disabled{--inner-option-text-color: #C6C6C6;--inner-option-description-color: #C6C6C6;--inner-option-background: #FFFFFF;cursor:default}evo-autocomplete .evo-autocomplete .ng-option.ng-option-selected{--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #E1ECEF}evo-autocomplete .evo-autocomplete_is-edit-query .ng-select.ng-select-single:not(.ng-select-focused) .ng-select-container .ng-value-container .ng-value{visibility:visible}evo-autocomplete .evo-autocomplete_is-edit-query .ng-select.ng-select-single.ng-select-focused .ng-select-container .ng-value-container .ng-value{visibility:var(--evo-autocomplete-option-overflow)}evo-autocomplete .evo-autocomplete .ng-dropdown-panel{z-index:3001;display:block;margin:4px 0;background-color:#fff;border-radius:var(--evo-autocomplete-panel-border-radius);box-shadow:var(--evo-autocomplete-panel-shadow);overflow:hidden}evo-autocomplete .evo-autocomplete .ng-dropdown-panel.ng-select-top{bottom:100%}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items{max-height:var(--evo-dropdown-max-height, 310px)}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{overflow:var(--evo-autocomplete-option-overflow);white-space:var(--evo-autocomplete-option-white-space);text-overflow:var(--evo-autocomplete-option-text-overflow)}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{overflow:var(--evo-autocomplete-optgroup-overflow);white-space:var(--evo-autocomplete-optgroup-white-space);text-overflow:var(--evo-autocomplete-optgroup-text-overflow)}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar{width:16px;background-color:transparent}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar-track{background-color:transparent}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar-thumb{background-color:#c6c6c6;border:6px solid #FFFFFF;border-radius:16px}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar-button{display:none}evo-autocomplete .evo-autocomplete_is-selectbox{--inner-input-padding-right: 0}evo-autocomplete .evo-autocomplete_is-selectbox .ng-select .ng-arrow-wrapper{display:inline-flex;align-items:center;width:24px;height:100%;margin:0 8px;padding:0;text-align:center}evo-autocomplete .evo-autocomplete_is-selectbox .ng-select .ng-arrow-wrapper .ng-arrow{display:block;width:24px;height:24px;background-color:var(--evo-autocomplete-arrow-icon-color);mask-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E    %3Cpath d%3D%22M8.81066 10C8.14248 10 7.80786 10.8079 8.28033 11.2803L11.4697 14.4697C11.7626 14.7626 12.2374 14.7626 12.5303 14.4697L15.7197 11.2803C16.1921 10.8079 15.8575 10 15.1893 10H8.81066Z%22 %2F%3E%3C%2Fsvg%3E\");background-position:center;transition:transform .25s}evo-autocomplete .evo-autocomplete_is-selectbox .ng-select.ng-select-opened .ng-arrow{transform:rotate(180deg);transform-origin:center center}evo-autocomplete .evo-autocomplete_is-selectbox.ng-select-focused{z-index:11}evo-autocomplete .evo-autocomplete_is-selectbox.ng-select-focused .ng-placeholder{display:none}evo-autocomplete .evo-autocomplete_is-selectbox.ng-select-focused .ng-select-container{box-shadow:0 0 2px #91b1b8}evo-autocomplete .evo-autocomplete_theme-default.evo-autocomplete_size-normal .ng-select-container{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}evo-autocomplete .evo-autocomplete_theme-default.evo-autocomplete_size-normal .ng-select-container:hover{border:1px solid #9B9B9B}evo-autocomplete .evo-autocomplete_theme-default.evo-autocomplete_size-small .ng-select-container{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;--evo-input-height: 32px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s;padding:4px var(--inner-input-padding-right) 4px 12px}evo-autocomplete .evo-autocomplete_theme-default.evo-autocomplete_size-small .ng-select-container:hover{border:1px solid #9B9B9B}evo-autocomplete .evo-autocomplete_theme-rounded.evo-autocomplete_size-normal .ng-select-container{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;--evo-input-border-radius: 256px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}evo-autocomplete .evo-autocomplete_theme-rounded.evo-autocomplete_size-normal .ng-select-container:hover{border:1px solid #9B9B9B}evo-autocomplete .evo-autocomplete_theme-rounded.evo-autocomplete_size-small .ng-select-container{--evo-input-border-radius: 4px;--evo-input-line-height: 24px;--evo-input-font-size: 14px;--evo-input-height: 40px;--evo-input-border-radius: 256px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}evo-autocomplete .evo-autocomplete_theme-rounded.evo-autocomplete_size-small .ng-select-container:hover{border:1px solid #9B9B9B}evo-autocomplete .evo-autocomplete_is-multiple-inline .ng-select .ng-select-container .ng-value-icon{display:none}evo-autocomplete .evo-autocomplete_is-multiple-inline .ng-select .ng-select-container .ng-input{display:none}evo-autocomplete .evo-autocomplete .ng-select-multiple .ng-option-selected{--inner-option-background: #FFFFFF}evo-autocomplete .evo-autocomplete .ng-select-multiple .ng-option-selected.ng-option-marked{--inner-option-background: #F4F6F8}evo-autocomplete .evo-autocomplete .ng-select.ng-select-focused .ng-select-container,evo-autocomplete .evo-autocomplete .ng-select.ng-select-opened .ng-select-container{border:solid 1px #74706F}evo-autocomplete .evo-autocomplete.evo-autocomplete_touched.evo-autocomplete_invalid .ng-select:not(.ng-select-opened) .ng-select-container{border-color:#ff1817!important}evo-autocomplete .evo-autocomplete.evo-autocomplete_disabled .ng-select-container{color:#b0b0b0!important;background-color:#f9fafb!important;border:1px solid #E3E3E3!important;cursor:default;pointer-events:none}evo-autocomplete .evo-autocomplete.evo-autocomplete_disabled .ng-select-container .ng-arrow{opacity:.3}evo-autocomplete .evo-autocomplete .ng-input>input[readonly]{-webkit-user-select:auto!important;user-select:auto!important}\n"], components: [{ type: i2.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { type: i3.EvoControlErrorComponent, selector: "evo-control-error", inputs: ["errors", "errorsMessages", "showCount"] }], directives: [{ type: i4.EvoUiClassDirective, selector: "[evoUiClass]", inputs: ["class", "evoUiClass"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2.NgMultiLabelTemplateDirective, selector: "[ng-multi-label-tmp]" }, { type: i2.NgHeaderTemplateDirective, selector: "[ng-header-tmp]" }, { type: i2.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { type: i2.NgOptgroupTemplateDirective, selector: "[ng-optgroup-tmp]" }, { type: i2.NgTypeToSearchTemplateDirective, selector: "[ng-typetosearch-tmp]" }, { type: i2.NgLoadingTextTemplateDirective, selector: "[ng-loadingtext-tmp]" }, { type: i2.NgNotFoundTemplateDirective, selector: "[ng-notfound-tmp]" }, { type: i2.NgFooterTemplateDirective, selector: "[ng-footer-tmp]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: EvoAutocompleteComponent, decorators: [{
            type: Component,
            args: [{ selector: 'evo-autocomplete', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"evo-autocomplete\" [evoUiClass]=\"classes\">\n    <ng-select\n        [items]=\"items\"\n        [bindLabel]=\"bindLabel\"\n        [bindValue]=\"bindValue\"\n        [markFirst]=\"markFirst\"\n        [placeholder]=\"placeholder\"\n        [notFoundText]=\"notFoundText\"\n        [typeToSearchText]=\"typeToSearchText\"\n        [addTagText]=\"addTagText\"\n        [loadingText]=\"loadingText\"\n        [clearAllText]=\"clearAllText\"\n        [dropdownPosition]=\"dropdownPosition\"\n        [appendTo]=\"appendTo\"\n        [loading]=\"loading\"\n        [closeOnSelect]=\"closeOnSelect\"\n        [hideSelected]=\"hideSelected\"\n        [selectOnTab]=\"selectOnTab\"\n        [openOnEnter]=\"openOnEnter\"\n        [maxSelectedItems]=\"maxSelectedItems\"\n        [groupBy]=\"groupBy\"\n        [groupValue]=\"groupValue\"\n        [bufferAmount]=\"bufferAmount\"\n        [virtualScroll]=\"virtualScroll\"\n        [selectableGroup]=\"selectableGroup\"\n        [selectableGroupAsModel]=\"selectableGroupAsModel\"\n        [searchFn]=\"searchFn\"\n        [clearOnBackspace]=\"clearOnBackspace\"\n        [typeahead]=\"typeahead\"\n        [multiple]=\"multiple || multipleInline\"\n        [addTag]=\"addTag\"\n        [searchable]=\"searchable\"\n        [clearable]=\"clearable\"\n        [isOpen]=\"isOpen\"\n        [editableSearchTerm]=\"editQuery\"\n        [disabled]=\"control.disabled\"\n        [compareWith]=\"compareWith\"\n        [(ngModel)]=\"value\"\n        (blur)=\"onBlur($event)\"\n        (focus)=\"onFocus($event)\"\n        (change)=\"changeEvent.emit($event)\"\n        (open)=\"openEvent.emit($event)\"\n        (close)=\"closeEvent.emit($event)\"\n        (search)=\"searchEvent.emit($event)\"\n        (clear)=\"clearEvent.emit($event)\"\n        (add)=\"addEvent.emit($event)\"\n        (remove)=\"removeEvent.emit($event)\"\n        (scroll)=\"scrollEvent.emit($event)\"\n        (scrollToEnd)=\"scrollToEndEvent.emit($event)\"\n    >\n        <!-- Selected Item Template -->\n        <ng-template *ngIf=\"labelTemp\" ng-label-tmp let-item=\"item\">\n            <ng-template *ngTemplateOutlet=\"labelTemp; context: { item: item }\"></ng-template>\n        </ng-template>\n\n        <!-- Overall Label For All Selected Items Template -->\n        <ng-template *ngIf=\"multiLabelTemp\" ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n            <div class=\"evo-autocomplete__label\">\n                <ng-template *ngTemplateOutlet=\"multiLabelTemp; context: { items: items, clear: clear }\"></ng-template>\n            </div>\n        </ng-template>\n\n        <!-- Options header template -->\n        <ng-template *ngIf=\"headerTemp\" ng-header-tmp>\n            <ng-template *ngTemplateOutlet=\"headerTemp; context: {items: items}\"></ng-template>\n        </ng-template>\n\n        <!-- Option Template -->\n        <ng-template\n            *ngIf=\"optionTemp\"\n            ng-option-tmp\n            let-item=\"item\"\n            let-index=\"index\"\n            let-search=\"searchTerm\"\n            let-item$=\"item$\"\n        >\n            <ng-template\n                *ngTemplateOutlet=\"optionTemp; context: { item: item, index: index, searchTerm: search, item$: item$}\"\n            ></ng-template>\n        </ng-template>\n\n        <ng-container *ngIf=\"multipleInline && !multiLabelTemp\">\n            <ng-template ng-multi-label-tmp let-items=\"items\">\n                <div class=\"ng-value evo-autocomplete__label\">{{ getMultipleInlineItemsLabels(items) }}</div>\n            </ng-template>\n        </ng-container>\n\n        <!-- Options group template -->\n        <ng-template *ngIf=\"optgroupTemp\" ng-optgroup-tmp let-item=\"item\" let-index=\"index\">\n            <ng-template *ngTemplateOutlet=\"optgroupTemp; context: { item: item, index: index }\"></ng-template>\n        </ng-template>\n\n        <!-- Search Text Templates -->\n        <ng-template ng-typetosearch-tmp>\n            <div *ngIf=\"typeToSearchText\" class=\"ng-option disabled\">{{typeToSearchText}}</div>\n        </ng-template>\n        <ng-template ng-loadingtext-tmp let-searchTerm=\"searchTerm\">\n            <div class=\"ng-option disabled\">{{loadingText}}</div>\n        </ng-template>\n\n        <ng-container *ngIf=\"notFoundTemp; else defaultNotFoundTemplate\">\n            <ng-template ng-notfound-tmp let-searchTerm=\"searchTerm\">\n                <ng-template *ngTemplateOutlet=\"notFoundTemp; context: {searchTerm: searchTerm}\"></ng-template>\n            </ng-template>\n        </ng-container>\n        <ng-template #defaultNotFoundTemplate>\n            <ng-template ng-notfound-tmp>\n                <div class=\"ng-option disabled\">{{notFoundText}}</div>\n            </ng-template>\n        </ng-template>\n\n        <!-- Options footer template -->\n        <ng-template *ngIf=\"footerTemp\" ng-footer-tmp>\n            <ng-template *ngTemplateOutlet=\"footerTemp; context: {items: items}\"></ng-template>\n        </ng-template>\n    </ng-select>\n    <evo-control-error\n        *ngIf=\"hasErrors && errorsMessages\"\n        [errors]=\"control.errors\"\n        [errorsMessages]=\"errorsMessages\"\n    ></evo-control-error>\n</div>\n", styles: ["@keyframes evo-fx-blink{50%{transform:scale(1);opacity:1}to{opacity:0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes gradient{0%{background-position:0 50%}50%{background-position:50vw 50%}to{background-position:100vw 50%}}@keyframes evo-ellipsis-animation{0%{content:\"\"}25%{content:\".\"}50%{content:\"..\"}75%{content:\"...\"}to{content:\"\"}}evo-autocomplete{--evo-dropdown-max-height: 310px;--evo-autocomplete-option-overflow: hidden;--evo-autocomplete-option-text-overflow: ellipsis;--evo-autocomplete-option-white-space: normal;--evo-autocomplete-optgroup-overflow: hidden;--evo-autocomplete-optgroup-text-overflow: ellipsis;--evo-autocomplete-optgroup-white-space: nowrap;--evo-autocomplete-arrow-icon-color: #91B1B8;--evo-autocomplete-option-v-padding: 12px;--evo-autocomplete-option-h-padding: 16px;--evo-autocomplete-panel-border-radius: 8px;--evo-autocomplete-panel-shadow: 0px 8px 10px rgba(0, 0, 0, .14), 0px 3px 14px rgba(0, 0, 0, .12)}evo-autocomplete .evo-autocomplete{--inner-input-padding-right: 12px;position:relative;display:block}evo-autocomplete .evo-autocomplete__icon{display:block;flex:0 0 24px;width:24px;height:24px}evo-autocomplete .evo-autocomplete__icon_clear{position:absolute;top:12px;right:12px;z-index:1001;cursor:pointer;transition:fill .3s;fill:#91b1b8}evo-autocomplete .evo-autocomplete__icon_clear:hover{fill:#a7c1c6}evo-autocomplete .evo-autocomplete__icon_clear:active{fill:#829fa6}evo-autocomplete .evo-autocomplete__icon_dropdown{fill:#212121}evo-autocomplete .evo-autocomplete .ng-input{padding:0 var(--inner-input-padding-right) 0 12px}evo-autocomplete .evo-autocomplete .ng-placeholder{color:#9b9b9b}evo-autocomplete .evo-autocomplete .ng-value-container{align-items:center;min-width:0;overflow:hidden}evo-autocomplete .evo-autocomplete__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}evo-autocomplete .evo-autocomplete .ng-select-container{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;display:flex;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s;position:relative;align-items:center;margin:0;padding:8px var(--inner-input-padding-right) 8px 12px;line-height:var(--evo-input-height)}evo-autocomplete .evo-autocomplete .ng-select-container:hover{border:1px solid #9B9B9B}evo-autocomplete .evo-autocomplete .ng-select-container:has(.ng-clear:not(:empty)){--inner-input-padding-right: 0}evo-autocomplete .evo-autocomplete .ng-select-container.ng-has-value .ng-placeholder{display:none}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper{display:inline-flex;align-items:center;width:24px;height:100%;margin:0 8px;padding:0;text-align:center;color:#91b1b8;transition:color .3s}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper:hover{color:#a7c1c6}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper:active{color:#829fa6}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper .ng-clear{display:none}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper .ng-clear_patched{display:block;cursor:pointer}evo-autocomplete .evo-autocomplete .ng-select .ng-clear-wrapper .ng-clear_patched svg{display:block;fill:currentColor}evo-autocomplete .evo-autocomplete .ng-select .ng-spinner-loader{display:flex;justify-content:center;align-items:center;width:16px;height:100%;margin:0 0 0 8px;border:none;transform:none;animation:none}evo-autocomplete .evo-autocomplete .ng-select .ng-spinner-loader:before{content:\"\";display:block;flex:0 0 16px;width:16px;height:16px;border:2px solid #C6C6C6;border-top-color:#21c68b;border-radius:50%;animation:spin .8s linear infinite}evo-autocomplete .evo-autocomplete .ng-optgroup{font-weight:400;--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #FFFFFF;display:flex;align-items:center;min-height:48px;white-space:normal;color:var(--inner-option-text-color);background-color:var(--inner-option-background);padding:var(--evo-autocomplete-option-v-padding) var(--evo-autocomplete-option-h-padding);cursor:pointer;font-family:var(--evo-font);font-style:normal;font-size:14px;line-height:24px;font-weight:600}evo-autocomplete .evo-autocomplete .ng-optgroup evo-autocomplete-default-option{--evo-autocomplete-default-option-background: var(--inner-option-background);--evo-autocomplete-default-option-text-color: var(--inner-option-text-color);--evo-autocomplete-default-option-description-color: var(--inner-option-description-color)}evo-autocomplete .evo-autocomplete .ng-optgroup.ng-option-marked{--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #F4F6F8}evo-autocomplete .evo-autocomplete .ng-optgroup.ng-option-disabled{--inner-option-text-color: #C6C6C6;--inner-option-description-color: #C6C6C6;--inner-option-background: #FFFFFF;cursor:default}evo-autocomplete .evo-autocomplete .ng-optgroup.ng-option-selected{--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #E1ECEF}evo-autocomplete .evo-autocomplete .ng-option{font-family:var(--evo-font);font-style:normal;font-size:14px;line-height:24px;font-weight:400;--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #FFFFFF;display:flex;align-items:center;min-height:48px;white-space:normal;color:var(--inner-option-text-color);background-color:var(--inner-option-background);padding:var(--evo-autocomplete-option-v-padding) var(--evo-autocomplete-option-h-padding);cursor:pointer}evo-autocomplete .evo-autocomplete .ng-option evo-autocomplete-default-option{--evo-autocomplete-default-option-background: var(--inner-option-background);--evo-autocomplete-default-option-text-color: var(--inner-option-text-color);--evo-autocomplete-default-option-description-color: var(--inner-option-description-color)}evo-autocomplete .evo-autocomplete .ng-option.ng-option-marked{--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #F4F6F8}evo-autocomplete .evo-autocomplete .ng-option.ng-option-disabled{--inner-option-text-color: #C6C6C6;--inner-option-description-color: #C6C6C6;--inner-option-background: #FFFFFF;cursor:default}evo-autocomplete .evo-autocomplete .ng-option.ng-option-selected{--inner-option-text-color: #212121;--inner-option-description-color: #9B9B9B;--inner-option-background: #E1ECEF}evo-autocomplete .evo-autocomplete_is-edit-query .ng-select.ng-select-single:not(.ng-select-focused) .ng-select-container .ng-value-container .ng-value{visibility:visible}evo-autocomplete .evo-autocomplete_is-edit-query .ng-select.ng-select-single.ng-select-focused .ng-select-container .ng-value-container .ng-value{visibility:var(--evo-autocomplete-option-overflow)}evo-autocomplete .evo-autocomplete .ng-dropdown-panel{z-index:3001;display:block;margin:4px 0;background-color:#fff;border-radius:var(--evo-autocomplete-panel-border-radius);box-shadow:var(--evo-autocomplete-panel-shadow);overflow:hidden}evo-autocomplete .evo-autocomplete .ng-dropdown-panel.ng-select-top{bottom:100%}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items{max-height:var(--evo-dropdown-max-height, 310px)}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{overflow:var(--evo-autocomplete-option-overflow);white-space:var(--evo-autocomplete-option-white-space);text-overflow:var(--evo-autocomplete-option-text-overflow)}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{overflow:var(--evo-autocomplete-optgroup-overflow);white-space:var(--evo-autocomplete-optgroup-white-space);text-overflow:var(--evo-autocomplete-optgroup-text-overflow)}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar{width:16px;background-color:transparent}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar-track{background-color:transparent}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar-thumb{background-color:#c6c6c6;border:6px solid #FFFFFF;border-radius:16px}evo-autocomplete .evo-autocomplete .ng-dropdown-panel .ng-dropdown-panel-items::-webkit-scrollbar-button{display:none}evo-autocomplete .evo-autocomplete_is-selectbox{--inner-input-padding-right: 0}evo-autocomplete .evo-autocomplete_is-selectbox .ng-select .ng-arrow-wrapper{display:inline-flex;align-items:center;width:24px;height:100%;margin:0 8px;padding:0;text-align:center}evo-autocomplete .evo-autocomplete_is-selectbox .ng-select .ng-arrow-wrapper .ng-arrow{display:block;width:24px;height:24px;background-color:var(--evo-autocomplete-arrow-icon-color);mask-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E    %3Cpath d%3D%22M8.81066 10C8.14248 10 7.80786 10.8079 8.28033 11.2803L11.4697 14.4697C11.7626 14.7626 12.2374 14.7626 12.5303 14.4697L15.7197 11.2803C16.1921 10.8079 15.8575 10 15.1893 10H8.81066Z%22 %2F%3E%3C%2Fsvg%3E\");background-position:center;transition:transform .25s}evo-autocomplete .evo-autocomplete_is-selectbox .ng-select.ng-select-opened .ng-arrow{transform:rotate(180deg);transform-origin:center center}evo-autocomplete .evo-autocomplete_is-selectbox.ng-select-focused{z-index:11}evo-autocomplete .evo-autocomplete_is-selectbox.ng-select-focused .ng-placeholder{display:none}evo-autocomplete .evo-autocomplete_is-selectbox.ng-select-focused .ng-select-container{box-shadow:0 0 2px #91b1b8}evo-autocomplete .evo-autocomplete_theme-default.evo-autocomplete_size-normal .ng-select-container{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}evo-autocomplete .evo-autocomplete_theme-default.evo-autocomplete_size-normal .ng-select-container:hover{border:1px solid #9B9B9B}evo-autocomplete .evo-autocomplete_theme-default.evo-autocomplete_size-small .ng-select-container{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;--evo-input-height: 32px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s;padding:4px var(--inner-input-padding-right) 4px 12px}evo-autocomplete .evo-autocomplete_theme-default.evo-autocomplete_size-small .ng-select-container:hover{border:1px solid #9B9B9B}evo-autocomplete .evo-autocomplete_theme-rounded.evo-autocomplete_size-normal .ng-select-container{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;--evo-input-border-radius: 256px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}evo-autocomplete .evo-autocomplete_theme-rounded.evo-autocomplete_size-normal .ng-select-container:hover{border:1px solid #9B9B9B}evo-autocomplete .evo-autocomplete_theme-rounded.evo-autocomplete_size-small .ng-select-container{--evo-input-border-radius: 4px;--evo-input-line-height: 24px;--evo-input-font-size: 14px;--evo-input-height: 40px;--evo-input-border-radius: 256px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}evo-autocomplete .evo-autocomplete_theme-rounded.evo-autocomplete_size-small .ng-select-container:hover{border:1px solid #9B9B9B}evo-autocomplete .evo-autocomplete_is-multiple-inline .ng-select .ng-select-container .ng-value-icon{display:none}evo-autocomplete .evo-autocomplete_is-multiple-inline .ng-select .ng-select-container .ng-input{display:none}evo-autocomplete .evo-autocomplete .ng-select-multiple .ng-option-selected{--inner-option-background: #FFFFFF}evo-autocomplete .evo-autocomplete .ng-select-multiple .ng-option-selected.ng-option-marked{--inner-option-background: #F4F6F8}evo-autocomplete .evo-autocomplete .ng-select.ng-select-focused .ng-select-container,evo-autocomplete .evo-autocomplete .ng-select.ng-select-opened .ng-select-container{border:solid 1px #74706F}evo-autocomplete .evo-autocomplete.evo-autocomplete_touched.evo-autocomplete_invalid .ng-select:not(.ng-select-opened) .ng-select-container{border-color:#ff1817!important}evo-autocomplete .evo-autocomplete.evo-autocomplete_disabled .ng-select-container{color:#b0b0b0!important;background-color:#f9fafb!important;border:1px solid #E3E3E3!important;cursor:default;pointer-events:none}evo-autocomplete .evo-autocomplete.evo-autocomplete_disabled .ng-select-container .ng-arrow{opacity:.3}evo-autocomplete .evo-autocomplete .ng-input>input[readonly]{-webkit-user-select:auto!important;user-select:auto!important}\n"] }]
        }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.NgControl }]; }, propDecorators: { size: [{
                type: Input
            }], isOpen: [{
                type: Input
            }], items: [{
                type: Input
            }], bindLabel: [{
                type: Input
            }], bindValue: [{
                type: Input
            }], markFirst: [{
                type: Input
            }], placeholder: [{
                type: Input
            }], typeToSearchText: [{
                type: Input
            }], addTagText: [{
                type: Input
            }], loadingText: [{
                type: Input
            }], clearAllText: [{
                type: Input
            }], dropdownPosition: [{
                type: Input
            }], appendTo: [{
                type: Input
            }], loading: [{
                type: Input
            }], closeOnSelect: [{
                type: Input
            }], hideSelected: [{
                type: Input
            }], selectOnTab: [{
                type: Input
            }], openOnEnter: [{
                type: Input
            }], maxSelectedItems: [{
                type: Input
            }], groupBy: [{
                type: Input
            }], groupValue: [{
                type: Input
            }], bufferAmount: [{
                type: Input
            }], virtualScroll: [{
                type: Input
            }], selectableGroup: [{
                type: Input
            }], selectableGroupAsModel: [{
                type: Input
            }], searchFn: [{
                type: Input
            }], clearOnBackspace: [{
                type: Input
            }], typeahead: [{
                type: Input
            }], multiple: [{
                type: Input
            }], multipleInline: [{
                type: Input
            }], addTag: [{
                type: Input
            }], clearable: [{
                type: Input
            }], errorsMessages: [{
                type: Input
            }], compareWith: [{
                type: Input
            }], _notFoundText: [{
                type: Input,
                args: ['notFoundText']
            }], editQuery: [{
                type: Input
            }], blurEvent: [{
                type: Output,
                args: ['blur']
            }], focusEvent: [{
                type: Output,
                args: ['focus']
            }], changeEvent: [{
                type: Output,
                args: ['change']
            }], openEvent: [{
                type: Output,
                args: ['open']
            }], closeEvent: [{
                type: Output,
                args: ['close']
            }], searchEvent: [{
                type: Output,
                args: ['search']
            }], clearEvent: [{
                type: Output,
                args: ['clear']
            }], addEvent: [{
                type: Output,
                args: ['add']
            }], removeEvent: [{
                type: Output,
                args: ['remove']
            }], scrollEvent: [{
                type: Output,
                args: ['scroll']
            }], scrollToEndEvent: [{
                type: Output,
                args: ['scrollToEnd']
            }], ngSelectComponent: [{
                type: ViewChild,
                args: [NgSelectComponent]
            }], labelTemp: [{
                type: ContentChild,
                args: ['labelTemp', { read: TemplateRef }]
            }], multiLabelTemp: [{
                type: ContentChild,
                args: ['multiLabelTemp', { read: TemplateRef }]
            }], optionTemp: [{
                type: ContentChild,
                args: ['optionTemp', { read: TemplateRef }]
            }], optgroupTemp: [{
                type: ContentChild,
                args: ['optgroupTemp', { read: TemplateRef }]
            }], headerTemp: [{
                type: ContentChild,
                args: ['headerTemp', { read: TemplateRef }]
            }], footerTemp: [{
                type: ContentChild,
                args: ['footerTemp', { read: TemplateRef }]
            }], notFoundTemp: [{
                type: ContentChild,
                args: ['notFoundTemp', { read: TemplateRef }]
            }], searchable: [{
                type: Input
            }], setSelectbox: [{
                type: Input,
                args: ['isSelectbox']
            }], setTheme: [{
                type: Input,
                args: ['theme']
            }] } });
//# sourceMappingURL=data:application/json;base64, 