{"version":3,"file":"mosaic-design-infosec-components-components-search.mjs","sources":["../../../libs/components/search/src/lib/components/search/search.component.ts","../../../libs/components/search/src/lib/components/search/search.component.html","../../../libs/components/search/src/lib/search.module.ts","../../../libs/components/search/mosaic-design-infosec-components-components-search.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { KbqButtonStyles } from '@koobiq/components/button';\nimport { KbqComponentColors } from '@koobiq/components/core';\nimport { BehaviorSubject, debounceTime, distinctUntilChanged, filter, takeUntil } from 'rxjs';\n\nimport { DestroyService } from '@mosaic-design/infosec-components/services';\nimport { OnChange, OnTouch } from '@mosaic-design/infosec-components/types';\n\nconst defaultValue = '';\nconst defaultEmitValueTimeout = 200;\n\n@Component({\n    selector: 'ic-search',\n    templateUrl: './search.component.html',\n    styleUrls: ['./search.component.scss'],\n    host: {\n        class: 'ic-search'\n    },\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: SearchComponent,\n            multi: true\n        },\n        DestroyService\n    ]\n})\nexport class SearchComponent implements ControlValueAccessor {\n    protected readonly KbqButtonStyles = KbqButtonStyles;\n    protected readonly KbqComponentColors = KbqComponentColors;\n\n    value$ = new BehaviorSubject(defaultValue);\n\n    get isOpened(): boolean {\n        return this._isOpened;\n    }\n\n    @HostBinding('class.ic-search_opened')\n    @Input()\n    set isOpened(value: boolean) {\n        this._isOpened = value;\n    }\n\n    private _isOpened = false;\n\n    @Input() placeholder = '';\n    @Input() isEmitValueByEnterEnabled = false;\n    @Input() emitValueTimeout = defaultEmitValueTimeout;\n\n    @Output() isOpenedChange = new EventEmitter<boolean>();\n\n    private lastEmittedValue = defaultValue;\n\n    constructor(private destroyed$: DestroyService) {\n        this.value$\n            .pipe(\n                distinctUntilChanged(),\n                filter(() => !this.isEmitValueByEnterEnabled),\n                debounceTime(this.emitValueTimeout),\n                takeUntil(destroyed$)\n            )\n            .subscribe((value) => {\n                this.emitValue(value);\n            });\n    }\n\n    onChange: OnChange<string> = () => {\n        // empty\n    };\n\n    onTouch: OnTouch = () => {\n        // empty\n    };\n\n    registerOnChange(fn: OnChange<string>): void {\n        this.onChange = fn;\n    }\n\n    registerOnTouched(fn: OnTouch): void {\n        this.onTouch = fn;\n    }\n\n    writeValue(value: string): void {\n        this.value$.next(value || defaultValue);\n    }\n\n    toggleSearchInput(): void {\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.isOpenedChange.emit(this._isOpened);\n    }\n\n    submit(): void {\n        if (this.isEmitValueByEnterEnabled) {\n            this.emitValue(this.value$.value);\n        }\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","<button\n    *ngIf=\"!isOpened; else searchInput\"\n    type=\"button\"\n    kbq-button\n    [color]=\"KbqComponentColors.Contrast\"\n    [kbqStyle]=\"KbqButtonStyles.Transparent\"\n    class=\"ic-search__toggle\"\n    (click)=\"toggleSearchInput()\"\n    e2e-id=\"btnOpenSearch\"\n>\n    <i kbq-icon=\"kbq-magnifying-glass_16\"></i>\n</button>\n\n<ng-template #searchInput>\n    <kbq-form-field>\n        <i kbqPrefix kbq-icon=\"kbq-magnifying-glass_16\"></i>\n\n        <form (ngSubmit)=\"submit()\" autocomplete=\"off\">\n            <input\n                kbqInput\n                icAutofocus\n                name=\"value\"\n                type=\"text\"\n                autocomplete=\"off\"\n                [placeholder]=\"placeholder\"\n                [ngModel]=\"value$ | icPush\"\n                (ngModelChange)=\"value$.next($event)\"\n                (blur)=\"onTouch()\"\n                (keyup.escape)=\"toggleSearchInput()\"\n            />\n\n            <input type=\"submit\" class=\"ic-search__submit\" />\n        </form>\n\n        <i kbqSuffix kbq-icon-button=\"kbq-xmark-s_16\" (click)=\"toggleSearchInput()\" e2e-id=\"iCloseSearch\"></i>\n    </kbq-form-field>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { KbqButtonModule } from '@koobiq/components/button';\nimport { KbqFormFieldModule } from '@koobiq/components/form-field';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqInputModule } from '@koobiq/components/input';\n\nimport { IcAutofocusDirective } from '@mosaic-design/infosec-components/directives';\nimport { IcPushPipe } from '@mosaic-design/infosec-components/external/ngrx-component/pipes';\n\nimport { SearchComponent } from './components';\n\n/**\n * @deprecated Будет удален в 19 версии. Компоненты будут standalone\n */\n@NgModule({\n    imports: [\n        CommonModule,\n        FormsModule,\n        KbqButtonModule,\n        KbqIconModule,\n        KbqFormFieldModule,\n        KbqInputModule,\n        IcPushPipe,\n        IcAutofocusDirective\n    ],\n    declarations: [SearchComponent],\n    exports: [SearchComponent]\n})\nexport class IcSearchModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}