{"version":3,"file":"usitsdasdesign-dds-ng-search.mjs","sources":["../../src/app/dds/search/directives/search.directive.ts","../../src/app/dds/search/search/constants.ts","../../src/app/dds/search/search/search.component.ts","../../src/app/dds/search/search/search.component.html","../../src/app/dds/search/search.module.ts","../../src/app/dds/search/usitsdasdesign-dds-ng-search.ts"],"sourcesContent":["import { Directive, ElementRef, HostBinding, Optional, Self } from '@angular/core';\nimport { FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { FocusHandlerDirective } from '@usitsdasdesign/dds-ng/core/focus-handler';\n\n@Directive({\n  selector: '[ddsSearch]',\n  hostDirectives: [FocusHandlerDirective],\n  standalone: true,\n})\nexport class SearchFieldDirective {\n  @HostBinding(`class.dds-search__input`) searchField = true;\n\n  constructor(\n    @Optional() @Self() public ngControl: NgControl,\n    @Optional() public parentForm: NgForm,\n    @Optional() public parentFormGroup: FormGroupDirective,\n    public elementRef: ElementRef<HTMLInputElement>\n  ) { }\n}\n","import { ThemeClassesMap, ThemeMapEnum } from '@usitsdasdesign/dds-ng/core/theme';\nimport { Size } from '@usitsdasdesign/dds-ng/shared';\n\nexport const DEFAULT_PLACEHOLDER = 'Search...';\nexport const DEFAULT_DEBOUNCE_TIME = 300;\nexport const DEFAULT_ICON = 'dds-icon_search';\nexport const SEARCH_FIELD_ROLE = 'searchbox';\n\nexport const themeClassesMap: ThemeClassesMap = {\n  [ThemeMapEnum.Size]: {\n    [Size.lg]: 'dds-search_lg',\n    [Size.sm]: 'dds-search_sm',\n  },\n};\n","import { CommonModule } from '@angular/common';\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  DoCheck,\n  ElementRef,\n  EventEmitter,\n  HostBinding,\n  Input,\n  OnChanges,\n  OnInit,\n  Optional,\n  Output,\n  Renderer2,\n  Self,\n  SimpleChanges,\n  ViewChild,\n} from '@angular/core';\nimport { FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport {\n  DestroyCtor,\n  DestroyMixin,\n  FormAccessorCtor,\n  FormAccessorMixin,\n  I18nCtor,\n  I18nMixin,\n  ResponsivenessCtor,\n} from '@usitsdasdesign/dds-ng/core/common-behaviors';\nimport { FocusHandlerModule } from '@usitsdasdesign/dds-ng/core/focus-handler';\nimport { ThemeClassesMap, ThemeModule } from '@usitsdasdesign/dds-ng/core/theme';\nimport { AdditionalClass, Size } from '@usitsdasdesign/dds-ng/shared';\nimport { DdsConfigService } from '@usitsdasdesign/dds-ng/shared/dds-config';\nimport { I18nModule, I18nService, ITranslation } from '@usitsdasdesign/dds-ng/shared/i18n';\nimport { Subject, fromEvent } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\nimport { SearchFieldDirective } from '../directives/search.directive';\nimport { DEFAULT_DEBOUNCE_TIME, DEFAULT_ICON, DEFAULT_PLACEHOLDER, SEARCH_FIELD_ROLE, themeClassesMap } from './constants';\n\nconst SearchBase: DestroyCtor & I18nCtor & ResponsivenessCtor & FormAccessorCtor = DestroyMixin(I18nMixin(FormAccessorMixin()));\n\n@Component({\n  selector: 'dds-search',\n  templateUrl: './search.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [CommonModule, FocusHandlerModule, ThemeModule, I18nModule],\n})\nexport class SearchComponent extends SearchBase implements OnInit, DoCheck, AfterContentInit, OnChanges {\n  // Host bindings for disabled class and empty value attribute\n  @HostBinding(`class.${AdditionalClass.disabled}`) @Input() disabled: boolean | undefined;\n  @HostBinding(`attr.data-is-empty`) isEmptyValue: boolean; // WalkMe\n\n  // ViewChild and ContentChild references for template elements\n  @ViewChild('searchField') searchField: ElementRef<HTMLInputElement>;\n  @ViewChild('clearBtn') clearBtn: ElementRef<HTMLButtonElement>;\n  @ContentChild(SearchFieldDirective) searchFieldExternal: SearchFieldDirective;\n\n  // Input properties with default values\n  @Input() placeholder: string | undefined = DEFAULT_PLACEHOLDER;\n  @Input() debounceTime: number | undefined = DEFAULT_DEBOUNCE_TIME;\n  @Input() isInverse: boolean | undefined;\n  @Input() readonly: boolean | undefined;\n  @Input() isTrimValue: boolean | undefined = true;\n  @Input() size: Size | string | undefined = this.ddsConfig.getConfig().size;\n  @Input() ariaLabel: string | undefined;\n  @Input() customClass: string | undefined;\n  @Input() icon: string | undefined = DEFAULT_ICON;\n  @Input() maxLength: number | undefined;\n\n  // Setter and getter for value with change detection\n  @Input()\n  set value(value: string | undefined) {\n    this._value = value;\n    this.checkIsEmpty();\n  }\n\n  get value(): string | undefined {\n    return this._value;\n  }\n\n  // Output events for value change and field cleared\n  @Output() valueChanged = new EventEmitter<string>();\n  @Output() fieldCleared = new EventEmitter<void>();\n\n  // Protected properties\n  protected SEARCH_FIELD_ROLE = SEARCH_FIELD_ROLE;\n\n  // Public properties\n  public themeConfig: ThemeClassesMap = themeClassesMap;\n  public clearBtnAriaLabel: string;\n\n  // Private properties\n  private _value = '';\n  private valueSubject = new Subject<string>();\n  private emittedValue: string;\n\n  constructor(\n    @Optional() @Self() public ngControl: NgControl,\n    @Optional() public parentForm: NgForm,\n    @Optional() public parentFormGroup: FormGroupDirective,\n    public cdr: ChangeDetectorRef,\n    private ddsConfig: DdsConfigService,\n    public i18n: I18nService,\n    private renderer: Renderer2\n  ) {\n    super();\n\n    if (this.ngControl !== null) {\n      this.ngControl.valueAccessor = this;\n    }\n  }\n\n  public ngOnInit(): void {\n    this.checkIsEmpty();\n    super.ngOnInit();\n\n    // Subscribe to value changes with debounce time\n    this.valueSubject.pipe(debounceTime(this.debounceTime), takeUntil(this.destroy)).subscribe((value: string) => {\n      this.valueChanged.emit(value);\n    });\n  }\n\n  public ngOnChanges(changes: SimpleChanges): void {\n    if (changes?.value && changes?.value?.currentValue) {\n      this.value = this.isTrimValue ? this.value.trim() : this.value;\n\n      // Trim value if it exceeds maxLength\n      if (changes?.value?.currentValue.length > this.maxLength && this.maxLength) {\n        this.value = this.value.slice(0, this.maxLength);\n      }\n\n      this.emittedValue = this.value;\n    }\n  }\n\n  public ngDoCheck() {\n    if (this.ngControl && this.searchFieldExternal) {\n      // Update disabled state if it changes\n      if (this.ngControl.disabled !== null && this.ngControl.disabled !== this.disabled) {\n        this.disabled = this.ngControl.disabled;\n        this.cdr.markForCheck();\n      }\n    }\n  }\n\n  public ngAfterContentInit(): void {\n    if (this.searchFieldExternal) {\n      this.ngControl = this.searchFieldExternal.ngControl;\n      this.parentForm = this.searchFieldExternal.parentForm;\n      this.parentFormGroup = this.searchFieldExternal.parentFormGroup;\n\n      this.externalSearchSetAttr();\n    }\n  }\n\n  public changeHandle(e: Event): void {\n    // Handle input change and trim value if necessary\n    if ((e.target as HTMLTextAreaElement).value.length > this.maxLength && this.maxLength) {\n      (e.target as HTMLTextAreaElement).value = (e.target as HTMLTextAreaElement).value.slice(0, this.maxLength);\n    } else {\n      this.value = (e.target as HTMLTextAreaElement).value;\n    }\n\n    this.changeEmit(this.value);\n  }\n\n  public writeValue(text: string): void {\n    if (text) {\n      this.value = text;\n    } else {\n      this.reset(false);\n    }\n\n    this.cdr.markForCheck();\n  }\n\n  public setDisabledState(disabled: boolean): void {\n    this.disabled = disabled;\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * Clears the search field and resets the component state.\n   */\n  public clearField(event: Event): void {\n    event.stopPropagation();\n\n    this.reset();\n    this.removeFocus(this.clearBtn.nativeElement);\n    this.focus();\n    this.fieldCleared.emit();\n  }\n\n  /**\n   * Resets the search field value and emits a change event.\n   */\n  public reset(isModelChange = true): void {\n    const searchField = this.searchField || this.searchFieldExternal?.elementRef;\n\n    if (searchField) {\n      this.value = searchField.nativeElement.value = '';\n    }\n\n    this.changeEmit(this.value, isModelChange);\n    this.cdr.markForCheck();\n  }\n\n  public focus(): void {\n    const searchField = this.searchField || this.searchFieldExternal?.elementRef;\n\n    searchField.nativeElement.focus();\n  }\n\n  public blur(): void {\n    this.value = this.emittedValue;\n    this.onModelTouched();\n  }\n\n  protected setI18nTexts(translation: ITranslation): void {\n    this.clearBtnAriaLabel = translation.SEARCH.A11Y.CLEAR_BTN_ARIA_LABEL;\n    this.cdr.detectChanges();\n  }\n\n  /**\n   * Emits a change event with the provided data.\n   */\n  private changeEmit(data: string, isModelChange = true): void {\n    data = this.isTrimValue ? data.trim() : data;\n\n    this.emittedValue = data;\n    this.valueSubject.next(data);\n    if (isModelChange) this.onModelChange(data);\n  }\n\n  private checkIsEmpty(): void {\n    this.isEmptyValue = this._value && this._value.length ? false : true;\n  }\n\n  private removeFocus(el: HTMLElement): void {\n    el.classList.remove(AdditionalClass.keyboardFocus);\n  }\n\n  /**\n   * Sets attributes and event listeners for the external search input element.\n   */\n  private externalSearchSetAttr(): void {\n    const externalInputEl = this.searchFieldExternal.elementRef.nativeElement;\n\n    this.value = externalInputEl.value;\n    this.renderer.setAttribute(externalInputEl, 'role', SEARCH_FIELD_ROLE);\n\n    this.cdr.markForCheck();\n\n    fromEvent(externalInputEl, 'input')\n      .pipe(takeUntil(this.destroy))\n      .subscribe((e) => {\n        this.value = (e.target as HTMLInputElement).value;\n        this.cdr.markForCheck();\n      });\n  }\n}\n","<label [ngClass]=\"{\n         'dds-search_disabled': disabled,\n         'dds-search_inverse': isInverse,\n         'dds-search_readonly': readonly\n       }\"\n       [size]=\"size\"\n       [ddsTheme]=\"themeConfig\"\n       class=\"dds-search {{customClass}}\">\n\n  @if (searchFieldExternal) {\n    <ng-content></ng-content>\n  } @else {\n    <input [ngClass]=\"{'dds-search__input_active': value?.length}\"\n           [placeholder]=\"placeholder\"\n           [disabled]=\"disabled\"\n           [value]=\"value || ''\"\n           [attr.aria-label]=\"ariaLabel\"\n           [attr.aria-disabled]=\"disabled\"\n           [readonly]=\"readonly\"\n           [attr.role]=\"SEARCH_FIELD_ROLE\"\n           ddsFocus\n           class=\"dds-search__input\"\n           type=\"search\"\n           (input)=\"changeHandle($event)\"\n           (blur)=\"blur()\"\n           #searchField />\n  }\n\n\n  <span class=\"dds-search__icon dds-icon {{icon}}\"></span>\n\n  <button class=\"dds-search__close\"\n          [ngClass]=\"{'dds-search__close_shown': value?.length}\"\n          [attr.aria-label]=\"clearBtnAriaLabel\"\n          ddsFocus\n          type=\"button\"\n          [disabled]=\"readonly\"\n          (keydown.enter)=\"clearField($event)\"\n          (keydown.space)=\"clearField($event)\"\n          (click)=\"clearField($event)\"\n          #clearBtn>\n    <span class=\"dds-icon dds-icon_close\"></span>\n  </button>\n</label>\n","import { NgModule } from '@angular/core';\nimport { SearchFieldDirective } from './directives/search.directive';\nimport { SearchComponent } from './search/search.component';\n\n@NgModule({\n  declarations: [],\n  imports: [SearchComponent, SearchFieldDirective],\n  exports: [SearchComponent, SearchFieldDirective],\n})\nexport class SearchModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i5"],"mappings":"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"}