{"version":3,"file":"pv-frontend-pv-shared-components-search-bar.mjs","sources":["../../../projects/pv-shared-components/search-bar/search-bar.component.ts","../../../projects/pv-shared-components/search-bar/search-bar.component.html","../../../projects/pv-shared-components/search-bar/search-bar.module.ts","../../../projects/pv-shared-components/search-bar/pv-frontend-pv-shared-components-search-bar.ts"],"sourcesContent":["import {\n  AfterViewInit,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  ViewChild,\n} from '@angular/core';\nimport { OverrideStyleConfig } from '@pv-frontend/pv-shared-components/common/types';\nimport { Subject, debounceTime } from 'rxjs';\nexport interface SearchBarStyleOverride {\n  container?: OverrideStyleConfig;\n  input?: OverrideStyleConfig;\n  backIcon?: OverrideStyleConfig;\n  searchIcon?: OverrideStyleConfig;\n  loader?: {\n    icon?: OverrideStyleConfig;\n    strokeWidth?: string;\n    fill?: string;\n  };\n}\n\n@Component({\n  selector: 'pv-search-bar',\n  templateUrl: './search-bar.component.html',\n  styleUrls: ['./search-bar.component.scss'],\n})\nexport class SearchBarComponent implements OnInit, AfterViewInit {\n  @ViewChild('searchInputRef') public searchInputRef!: ElementRef;\n\n  private subject: Subject<string> = new Subject();\n  public DEFAULT_LOADER_FILL: string = 'var(--primary-color)';\n  public DEFAULT_ICON_SIZE: OverrideStyleConfig = {\n    width: '0.8rem',\n    height: '1.2rem',\n  };\n  public DEFAULT_LOADER_STROKE_WIDTH: string = '3';\n  public DEFAULT_SEARCH_PLACEHOLDER: string = 'Search...';\n  public DEFAULT_DEBOUNCE_DUE_TIME: number = 500;\n  public appliedStyles?: SearchBarStyleOverride = this.style;\n\n  @Output() public searchQueryChange: EventEmitter<string> =\n    new EventEmitter<string>();\n  @Output() public backTo: EventEmitter<Event> = new EventEmitter<Event>();\n\n  @Input() public showBackIcon: boolean = false; //To show backBtnIcon in place of search icon\n  @Input() public debounceDueTime: number = this.DEFAULT_DEBOUNCE_DUE_TIME;\n  @Input() public isLoading: boolean = false;\n  @Input() public placeholder?: string | null = this.DEFAULT_SEARCH_PLACEHOLDER;\n  @Input() public autoFocus: boolean = false;\n  @Input() public style?: SearchBarStyleOverride;\n\n  @Input()\n  public analyticsEnabled: boolean = false;\n\n  @Input()\n  public labelForAnalytics: string = '';\n\n  public ngOnInit(): void {\n    this.appliedStyles = {\n      ...this.style,\n      backIcon: { ...this.DEFAULT_ICON_SIZE, ...this.style?.backIcon },\n      searchIcon: { ...this.DEFAULT_ICON_SIZE, ...this.style?.searchIcon },\n      loader: {\n        icon: { ...this.DEFAULT_ICON_SIZE, ...this.style?.loader?.icon },\n        strokeWidth: this.style?.loader?.strokeWidth,\n        fill: this.style?.loader?.fill,\n      },\n    };\n    this.subject.pipe(debounceTime(this.debounceDueTime)).subscribe({\n      next: (input: string) => {\n        this.searchQueryChange.emit(input);\n      },\n    });\n  }\n\n  public ngAfterViewInit(): void {\n    if (this.autoFocus) {\n      this.searchInputRef?.nativeElement?.focus();\n    }\n  }\n\n  public handleBackClick(event: Event): void {\n    event.preventDefault();\n    event.stopPropagation();\n    this.backTo.emit();\n  }\n\n  public handleInputChange(inputEvent: Event): void {\n    const searchInput = (inputEvent.target as HTMLInputElement)?.value ?? '';\n    this.subject.next(searchInput);\n  }\n}\n","<span\n  class=\"pv-search-bar-container border-round-3xl flex px-3 py-2 align-items-center justify-content-center w-full surface-border border-1\"\n  [style]=\"appliedStyles?.container\">\n  <pv-svg-icon\n    *ngIf=\"showBackIcon; else searchIcon\"\n    name=\"back\"\n    styleClass=\"cursor-pointer\"\n    [style]=\"appliedStyles?.backIcon\"\n    (click)=\"handleBackClick($event)\"></pv-svg-icon>\n  <ng-template #searchIcon>\n    <pv-svg-icon\n      name=\"search\"\n      [style]=\"appliedStyles?.searchIcon\"></pv-svg-icon>\n  </ng-template>\n  <input\n    class=\"pv-search-input outline-none shadow-none border-none w-full px-2 py-1 bg-transparent\"\n    [style]=\"appliedStyles?.input\"\n    [placeholder]=\"placeholder ?? DEFAULT_SEARCH_PLACEHOLDER\"\n    (input)=\"handleInputChange($event)\"\n    [pvClickTrack]=\"this.analyticsEnabled\"\n    [pvTrackLabel]=\"this.labelForAnalytics\"\n    #searchInputRef />\n  <p-progressSpinner\n    class=\"flex\"\n    *ngIf=\"isLoading\"\n    [style]=\"appliedStyles?.loader?.icon\"\n    [strokeWidth]=\"\n      appliedStyles?.loader?.strokeWidth || DEFAULT_LOADER_STROKE_WIDTH\n    \"\n    [fill]=\"\n      appliedStyles?.loader?.fill || DEFAULT_LOADER_FILL\n    \"></p-progressSpinner>\n</span>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SvgIconModule } from '@pv-frontend/pv-shared-components/svg-icon';\nimport { ClickTrackingModule } from '@pv-frontend/pv-shared-directives/tracking';\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\n\nimport { SearchBarComponent } from './search-bar.component';\n\n@NgModule({\n  declarations: [SearchBarComponent],\n  imports: [\n    CommonModule,\n    SvgIconModule,\n    ProgressSpinnerModule,\n    ClickTrackingModule,\n  ],\n  exports: [SearchBarComponent],\n})\nexport class PvSearchBarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}