{"version":3,"file":"koobiq-components-search-expandable.mjs","sources":["../../../packages/components/search-expandable/search-expandable.ts","../../../packages/components/search-expandable/search-expandable.html","../../../packages/components/search-expandable/search-expandable.module.ts","../../../packages/components/search-expandable/koobiq-components-search-expandable.ts"],"sourcesContent":["import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n    AfterViewInit,\n    booleanAttribute,\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    DestroyRef,\n    ElementRef,\n    EventEmitter,\n    inject,\n    InjectionToken,\n    Input,\n    numberAttribute,\n    OnDestroy,\n    Output,\n    QueryList,\n    ViewChild,\n    ViewChildren,\n    ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { KbqButton, KbqButtonModule } from '@koobiq/components/button';\nimport { KBQ_LOCALE_SERVICE, ruRULocaleData } from '@koobiq/components/core';\nimport { KbqFormFieldModule } from '@koobiq/components/form-field';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqInput, KbqInputModule } from '@koobiq/components/input';\nimport { KbqToolTipModule, KbqTooltipTrigger } from '@koobiq/components/tooltip';\nimport { BehaviorSubject, debounceTime, distinctUntilChanged, filter } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n/** default configuration of search-expandable */\nexport const KBQ_SEARCH_EXPANDABLE_DEFAULT_CONFIGURATION = ruRULocaleData.searchExpandable;\n\n/** Injection Token for providing configuration of search-expandable */\nexport const KBQ_SEARCH_EXPANDABLE_CONFIGURATION = new InjectionToken('KbqSearchExpandableConfiguration');\n\nexport const defaultValue = '';\nexport const defaultEmitValueTimeout = 200;\n\n@Component({\n    selector: 'kbq-search-expandable',\n    imports: [\n        KbqButtonModule,\n        KbqIconModule,\n        KbqInputModule,\n        FormsModule,\n        KbqToolTipModule,\n        KbqFormFieldModule,\n        ReactiveFormsModule\n    ],\n    templateUrl: './search-expandable.html',\n    styleUrls: ['./search-expandable.scss'],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: {\n        class: 'kbq-search-expandable',\n        '[class.kbq-search-expandable_opened]': 'isOpened'\n    }\n})\nexport class KbqSearchExpandable implements ControlValueAccessor, AfterViewInit, OnDestroy {\n    /** @docs-private */\n    protected readonly ngControl = inject(NgControl, { optional: true, self: true });\n    /** @docs-private */\n    protected readonly focusMonitor = inject(FocusMonitor);\n    /** @docs-private */\n    protected readonly localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });\n    /** @docs-private */\n    protected readonly destroyRef = inject(DestroyRef);\n    /** @docs-private */\n    protected readonly changeDetectorRef = inject(ChangeDetectorRef);\n    /** @docs-private */\n    protected readonly nativeElement: HTMLElement = inject(ElementRef).nativeElement;\n\n    readonly externalConfiguration = inject(KBQ_SEARCH_EXPANDABLE_CONFIGURATION, { optional: true });\n\n    @ViewChildren(KbqInput) private input: QueryList<KbqInput>;\n    @ViewChildren(KbqButton) private button: QueryList<KbqButton>;\n    @ViewChild(KbqTooltipTrigger) private tooltip: KbqTooltipTrigger;\n\n    configuration;\n\n    /** Current value in input. */\n    value = new BehaviorSubject(defaultValue);\n\n    protected lastFocusOrigin: 'touch' | 'mouse' | 'keyboard' | 'program' | null;\n\n    /** state of component. */\n    @Input({ transform: booleanAttribute }) isOpened = false;\n    /** Emit event by enter or not. Default is false */\n    @Input() isEmitValueByEnterEnabled = false;\n    /** Timeout in milliseconds for emit event. The default value is taken from defaultEmitValueTimeout */\n    @Input({ transform: numberAttribute }) emitValueTimeout = defaultEmitValueTimeout;\n\n    /** Tooltip text for the search button. When set, overrides localeData.tooltip */\n    @Input()\n    get tooltipText(): string {\n        return this._tooltipText ?? this.localeData?.tooltip;\n    }\n\n    set tooltipText(value: string | null) {\n        this._tooltipText = value;\n    }\n\n    private _tooltipText: string | null;\n\n    /** Placeholder for input when expanded */\n    @Input()\n    get placeholder(): string {\n        return this._placeholder ?? this.localeData?.placeholder;\n    }\n\n    set placeholder(value: string | null) {\n        this._placeholder = value;\n    }\n\n    private _placeholder: string | null = this.localeData?.placeholder;\n\n    @Input({ transform: booleanAttribute })\n    get disabled(): boolean {\n        return this._disabled;\n    }\n\n    set disabled(value: boolean) {\n        this._disabled = value;\n\n        this._disabled ? this.stopFocusMonitor() : this.runFocusMonitor();\n    }\n\n    private _disabled: boolean = false;\n\n    @Input({ transform: numberAttribute })\n    get tabIndex(): number {\n        return this.disabled ? -1 : this._tabIndex;\n    }\n\n    set tabIndex(value: number) {\n        this._tabIndex = value;\n    }\n\n    private _tabIndex = 0;\n\n    /** Event emitted when the search has been toggled. */\n    @Output() readonly isOpenedChange = new EventEmitter<boolean>();\n\n    /** localized data\n     * @docs-private */\n    get localeData() {\n        return this.configuration;\n    }\n\n    private lastEmittedValue = defaultValue;\n\n    constructor() {\n        if (!this.ngControl) {\n            throw Error(`kbq-search-expandable must be used with the [formControl], [formControlName] or [(ngModel)].`);\n        }\n\n        this.ngControl.valueAccessor = this;\n\n        this.ngControl.valueChanges?.pipe(takeUntilDestroyed()).subscribe((value) => this.value.next(value));\n\n        this.localeService?.changes.pipe(takeUntilDestroyed()).subscribe(this.updateLocaleParams);\n\n        if (!this.localeService) {\n            this.initDefaultParams();\n        }\n\n        this.value\n            .pipe(\n                distinctUntilChanged(),\n                filter(() => !this.isEmitValueByEnterEnabled),\n                debounceTime(this.emitValueTimeout),\n                takeUntilDestroyed(this.destroyRef)\n            )\n            .subscribe(this.emitValue);\n    }\n\n    ngAfterViewInit(): void {\n        this.runFocusMonitor();\n\n        this.button.changes\n            .pipe(\n                filter((queryList) => queryList.length),\n                map((queryList) => queryList.first),\n                takeUntilDestroyed(this.destroyRef)\n            )\n            .subscribe((button: KbqButton) => {\n                this.tooltip.disabled = true;\n\n                this.focusMonitor.focusVia(button.elementRef.nativeElement, this.lastFocusOrigin);\n\n                this.tooltip.disabled = false;\n            });\n\n        this.input.changes\n            .pipe(\n                filter((queryList) => queryList.length),\n                map((queryList) => queryList.first),\n                takeUntilDestroyed(this.destroyRef)\n            )\n            .subscribe((input: KbqInput) => input.focus());\n    }\n\n    ngOnDestroy() {\n        this.stopFocusMonitor();\n    }\n\n    /** @docs-private */\n    onChange: (value: string) => void;\n\n    /** @docs-private */\n    onTouch: () => void = () => {};\n\n    /** Implemented as part of ControlValueAccessor. */\n    registerOnChange(fn: (value: string) => void): void {\n        this.onChange = fn;\n    }\n\n    /** Implemented as part of ControlValueAccessor. */\n    registerOnTouched(fn: () => void): void {\n        this.onTouch = fn;\n    }\n\n    /** Implemented as part of ControlValueAccessor. */\n    writeValue(value: string): void {\n        this.value.next(value || defaultValue);\n    }\n\n    /** Implemented as part of ControlValueAccessor. */\n    setDisabledState(isDisabled: boolean): void {\n        this.disabled = isDisabled;\n    }\n\n    toggle(): void {\n        if (this.disabled) return;\n\n        this.isOpened = !this.isOpened;\n\n        if (!this.isOpened) {\n            this.value.next(defaultValue);\n\n            if (this.isEmitValueByEnterEnabled) {\n                this.emitValue(defaultValue, true);\n            }\n        }\n\n        this.tooltip?.hide();\n\n        this.isOpenedChange.emit(this.isOpened);\n    }\n\n    private updateLocaleParams = () => {\n        this.configuration = this.externalConfiguration || this.localeService?.getParams('searchExpandable');\n\n        this.changeDetectorRef.markForCheck();\n    };\n\n    private initDefaultParams() {\n        this.configuration = KBQ_SEARCH_EXPANDABLE_DEFAULT_CONFIGURATION;\n    }\n\n    private emitValue = (value: string, forced = false): void => {\n        if (value !== this.lastEmittedValue || forced) {\n            this.onChange(value);\n            this.lastEmittedValue = value;\n        }\n    };\n\n    private runFocusMonitor() {\n        this.focusMonitor.monitor(this.nativeElement, true).subscribe((origin) => (this.lastFocusOrigin = origin));\n    }\n\n    private stopFocusMonitor() {\n        this.focusMonitor.stopMonitoring(this.nativeElement);\n    }\n}\n","@if (!isOpened) {\n    <button\n        type=\"button\"\n        kbq-button\n        class=\"kbq-search-expandable__button\"\n        [kbqTooltip]=\"tooltipText\"\n        [color]=\"'contrast'\"\n        [kbqStyle]=\"'transparent'\"\n        [kbqTooltipDisabled]=\"disabled\"\n        [tabIndex]=\"tabIndex\"\n        [disabled]=\"disabled\"\n        (click)=\"toggle()\"\n    >\n        <i kbq-icon=\"kbq-magnifying-glass_16\"></i>\n    </button>\n} @else {\n    <kbq-form-field class=\"kbq-search-expandable__search\">\n        <i kbqPrefix kbq-icon=\"kbq-magnifying-glass_16\"></i>\n\n        <input\n            kbqInput\n            name=\"value\"\n            type=\"text\"\n            autocomplete=\"off\"\n            [tabIndex]=\"tabIndex\"\n            [placeholder]=\"placeholder\"\n            [formControl]=\"$any(ngControl?.control)\"\n            (blur)=\"onTouch()\"\n            (keyup.escape)=\"toggle()\"\n        />\n\n        <i\n            kbqSuffix\n            kbq-icon-button=\"kbq-circle-xmark_16\"\n            [disabled]=\"disabled\"\n            (click)=\"toggle()\"\n            (keyup.enter)=\"toggle()\"\n        ></i>\n    </kbq-form-field>\n}\n","import { NgModule } from '@angular/core';\nimport { KbqSearchExpandable } from './search-expandable';\n\n@NgModule({\n    imports: [\n        KbqSearchExpandable\n    ],\n    exports: [KbqSearchExpandable]\n})\nexport class KbqSearchExpandableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}