Select Git revision
search-field.component.ts
search-field.component.ts 1.42 KiB
import { CommonModule } from '@angular/common';
import { Component, EventEmitter, Input, Output } from '@angular/core';
import { FormControl } from '@angular/forms';
import { EMPTY_STRING } from '../../../../../tech-shared/src';
import { TextInputComponent } from '../../form/text-input/text-input.component';
import { CloseIconComponent } from '../../icons/close-icon/close-icon.component';
import { SearchIconComponent } from '../../icons/search-icon/search-icon.component';
@Component({
selector: 'ods-search-field',
standalone: true,
imports: [CommonModule, TextInputComponent, SearchIconComponent, CloseIconComponent],
template: `<ods-text-input
[label]="label"
[fieldControl]="control"
[placeholder]="placeholder"
[withPrefix]="true"
[withSuffix]="true"
(clickEmitter)="inputClicked.emit()"
role="combobox"
>
<ods-search-icon prefix aria-hidden="true" aria-label="Suchfeld" />
<button suffix *ngIf="control.value" (click)="clearInput()" aria-label="Eingabe löschen">
<ods-close-icon class="fill-primary hover:fill-primary-hover" />
</button>
</ods-text-input>`,
})
export class SearchFieldComponent {
@Input() label: string = EMPTY_STRING;
@Input() placeholder: string = EMPTY_STRING;
@Input() control = new FormControl(EMPTY_STRING);
@Output() inputClicked: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();
clearInput() {
this.control.setValue(EMPTY_STRING);
}
}