{"version":3,"file":"ngx-t-forms-search-field.component-mR4Kk12C.mjs","sources":["../../../projects/ngx-t-forms/src/lib/components/t-dynamic-data-edit/elements/_shared/search-field/search-field.component.ts","../../../projects/ngx-t-forms/src/lib/components/t-dynamic-data-edit/elements/_shared/search-field/search-field.component.html"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ViewEncapsulation, input, model } from '@angular/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\n/**\r\n * Internal search field: a tokenised input with a leading icon, an optional\r\n * result-count badge, and a clear button. Two-way bound via `value`.\r\n *\r\n * @example\r\n *   <lib-search-field [(value)]=\"query\" [resultCount]=\"matches().length\"\r\n *     placeholder=\"Search options\" />\r\n */\r\n@Component({\r\n  selector: 'lib-search-field',\r\n  imports: [MatIconModule],\r\n  templateUrl: './search-field.component.html',\r\n  styleUrl: './search-field.component.scss',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  encapsulation: ViewEncapsulation.Emulated,\r\n  host: { 'class': 'lib-search-field' },\r\n})\r\nexport class SearchFieldComponent {\r\n  /** Two-way search text. */\r\n  readonly value = model<string>('');\r\n  /** Placeholder shown when empty. */\r\n  readonly placeholder = input<string>('Search');\r\n  /** Optional result-count badge; `undefined` hides it. */\r\n  readonly resultCount = input<number | undefined>(undefined);\r\n\r\n  protected onInput(event: Event): void {\r\n    this.value.set((event.target as HTMLInputElement).value);\r\n  }\r\n\r\n  protected clear(): void {\r\n    this.value.set('');\r\n  }\r\n}\r\n","<mat-icon class=\"lib-search-field__icon\">search</mat-icon>\r\n<input\r\n  class=\"lib-search-field__input\"\r\n  type=\"text\"\r\n  [placeholder]=\"placeholder()\"\r\n  [value]=\"value()\"\r\n  (input)=\"onInput($event)\"\r\n  aria-label=\"Search\" />\r\n@if (resultCount() !== undefined) {\r\n<span class=\"lib-search-field__count\">{{ resultCount() }}</span>\r\n}\r\n@if (value()) {\r\n<button type=\"button\" class=\"lib-search-field__clear\" (click)=\"clear()\" aria-label=\"Clear search\">\r\n  <mat-icon>close</mat-icon>\r\n</button>\r\n}\r\n"],"names":["i1"],"mappings":";;;;;AAGA;;;;;;;AAOG;MAUU,oBAAoB,CAAA;AATjC,IAAA,WAAA,GAAA;;AAWW,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,EAAE,4EAAC;;AAEzB,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAS,QAAQ,kFAAC;;AAErC,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAqB,SAAS,kFAAC;AAS5D,IAAA;AAPW,IAAA,OAAO,CAAC,KAAY,EAAA;QAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;IAC1D;IAEU,KAAK,GAAA;AACb,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;IACpB;+GAdW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpBjC,wiBAgBA,EAAA,MAAA,EAAA,CAAA,kkDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDHY,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAOZ,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAThC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,WACnB,CAAC,aAAa,CAAC,EAAA,eAAA,EAGP,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,QAAQ,EAAA,IAAA,EACnC,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAA,QAAA,EAAA,wiBAAA,EAAA,MAAA,EAAA,CAAA,kkDAAA,CAAA,EAAA;;;;;"}