{"version":3,"file":"ironsource-fusion-ui-components-search-v3.mjs","sources":["../../../projects/fusion-ui/components/search/v3/search.component.html","../../../projects/fusion-ui/components/search/v3/search.component.ts","../../../projects/fusion-ui/components/search/v3/ironsource-fusion-ui-components-search-v3.ts"],"sourcesContent":["<fusion-icon class=\"fu-search\" [name]=\"searchIcon\"></fusion-icon>\n<input #input\n       type=\"text\"\n       autocomplete=\"off\"\n       minlength=\"1\"\n       [placeholder]=\"placeholder\"\n       [formControl]=\"searchFormControl\"\n       [class.fu-has-clear-icon]=\"showClearIcon\"\n       [attr.data-testid]=\"testIdsService.getTestAttribute.bind(this) | generic:testId:searchTestIdModifiers.INPUT\"\n/>\n<fusion-icon class=\"fu-clear\"\n             *ngIf=\"showClearIcon && (searchFormControl.valueChanges | async)\"\n             [name]=\"clearIcon\"\n             [attr.data-testid]=\"testIdsService.getTestAttribute.bind(this) | generic:testId:searchTestIdModifiers.CLEAR_BUTTON\"\n             (click)=\"clearInput(true)\"\n></fusion-icon>\n","import {ChangeDetectionStrategy, Component, ElementRef, forwardRef, Injector, Input, OnDestroy, OnInit, ViewChild} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormControl, FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule} from '@angular/forms';\nimport {Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\nimport {isNullOrUndefined} from '@ironsource/fusion-ui/utils';\nimport {IconData, IconModule} from '@ironsource/fusion-ui/components/icon/v1';\nimport {GenericPipe} from '@ironsource/fusion-ui/pipes/generic';\nimport {SearchTestIdModifiers} from '@ironsource/fusion-ui/entities';\nimport {TestIdsService} from '@ironsource/fusion-ui/services/test-ids';\n\n@Component({\n    selector: 'fusion-search',\n    templateUrl: './search.component.html',\n    styleUrls: ['./search.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: true,\n    imports: [CommonModule, FormsModule, ReactiveFormsModule, IconModule, GenericPipe],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => SearchComponent),\n            multi: true\n        }\n    ]\n})\nexport class SearchComponent implements OnInit, OnDestroy {\n    /** @internal */\n    @ViewChild('input') inputElRef: ElementRef;\n\n    private _placeholder = 'Search';\n    @Input()\n    set placeholder(value: string) {\n        if (!isNullOrUndefined(value)) {\n            this._placeholder = value;\n        }\n    }\n    get placeholder(): string {\n        return this._placeholder;\n    }\n\n    private _showClearIcon = true;\n    @Input()\n    set showClearIcon(value: boolean) {\n        this._showClearIcon = value;\n    }\n    get showClearIcon(): boolean {\n        return this._showClearIcon;\n    }\n\n    /** @internal */\n    @Input() testId: string;\n\n    /** @internal */\n    searchFormControl = new FormControl();\n    /** @internal */\n    onDestroy$ = new Subject<void>();\n    /** @internal */\n    searchIcon: IconData = {iconName: 'search-bold', iconVersion: 'v3'};\n    /** @internal */\n    clearIcon: IconData = {iconName: 'cancel', iconVersion: 'v3'};\n\n    /** @internal */\n    searchTestIdModifiers: typeof SearchTestIdModifiers = SearchTestIdModifiers;\n    /** @internal */\n    testIdsService: TestIdsService = this.injector.get(TestIdsService);\n\n    constructor(private injector: Injector) {}\n\n    ngOnInit() {\n        this.searchFormControl.valueChanges.pipe(takeUntil(this.onDestroy$)).subscribe(value => {\n            this.propagateTouched();\n            this.propagateChange(value);\n        });\n    }\n\n    ngOnDestroy() {\n        this.onDestroy$.next();\n        this.onDestroy$.complete();\n    }\n\n    // region Implement ControlValueAccessor methods\n    /**\n     * Method to call when value has changes.\n     * @ignore\n     */\n    propagateChange = (_: boolean) => {};\n\n    /**\n     * Method to call when the component is touched (when it was is clicked).\n     * @ignore\n     */\n    propagateTouched = () => {};\n\n    /**\n     * update value from model to the component\n     * @ignore\n     */\n    writeValue(value: string): void {\n        if (isNullOrUndefined(value)) {\n            this.clearInput();\n        } else {\n            this.searchFormControl.setValue(value, {emitEvent: false});\n        }\n    }\n\n    /**\n     * Informs the outside world about changes.\n     * see method propagateChange call - this.propagateChange(this.model);\n     * @ignore\n     */\n    registerOnChange(fn: any): void {\n        this.propagateChange = fn;\n    }\n\n    /**\n     * on click\n     * @ignore\n     */\n    registerOnTouched(fn: any): void {\n        this.propagateTouched = fn;\n    }\n\n    /**\n     * on set form controll enabled / disabled\n     * also do UI Component enabled / disabled\n     * @ignore\n     */\n    setDisabledState?(disabled: boolean): void {\n        if (disabled) {\n            this.searchFormControl.disable();\n        } else {\n            this.searchFormControl.enable();\n        }\n    }\n    // endregion\n\n    clearInput(withEvent = false): void {\n        this.searchFormControl.setValue('', {emitEvent: withEvent});\n        if (withEvent) {\n            this.setFocus();\n        }\n    }\n\n    private setFocus(): void {\n        this.inputElRef.nativeElement.focus();\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}