import * as _angular_core from '@angular/core'; import { OnInit, OnDestroy, ElementRef, TemplateRef, EventEmitter } from '@angular/core'; import { FormGroup, FormControl, FormGroupDirective, NgForm } from '@angular/forms'; import { MatAutocompleteTrigger } from '@angular/material/autocomplete'; import { ErrorStateMatcher } from '@angular/material/core'; import { MatFormFieldAppearance } from '@angular/material/form-field'; import { SdItemDefDefDirective, SdViewDefDirective } from '@sdcorejs/angular/forms/directives'; import { SdSearch, SdViewed, SdViewedInput, SdCustomValidator, SdSelectionData, SdFormControl } from '@sdcorejs/angular/forms/models'; import { Size } from '@sdcorejs/utils/models'; declare class SdAutocompleteErrotStateMatcher implements ErrorStateMatcher { private formControl; constructor(formControl: FormControl); isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean; } declare class SdAutocomplete implements OnInit, OnDestroy { #private; id: string; inputRef: _angular_core.Signal | undefined>; autocompleteTrigger: _angular_core.Signal; sdLabelTemplate: _angular_core.Signal | undefined>; sdValueTemplate: _angular_core.Signal | undefined>; itemDef: _angular_core.Signal | undefined>; sdViewDef: _angular_core.Signal | undefined>; private ref; private formConfig; autoIdInput: _angular_core.InputSignal; autoId: _angular_core.Signal; readonly dataDisabled: _angular_core.Signal<"true" | "false">; readonly dataInvalid: _angular_core.Signal<"true" | "false">; readonly dataEmpty: _angular_core.Signal<"true" | "false">; readonly dataValue: _angular_core.Signal; readonly dataLoading: _angular_core.Signal<"true" | "false">; readonly dataRequired: _angular_core.Signal<"true" | "false">; readonly dataErrorMessage: _angular_core.Signal; name: _angular_core.InputSignal; size: _angular_core.InputSignal; form: _angular_core.InputSignalWithTransform | undefined, any>; label: _angular_core.InputSignal; helperText: _angular_core.InputSignal; placeholder: _angular_core.InputSignal; valueField: _angular_core.InputSignal; displayField: _angular_core.InputSignal; disabledField: _angular_core.InputSignal; limit: _angular_core.InputSignal; cacheChecksum: _angular_core.InputSignal; hyperlink: _angular_core.InputSignal; items: _angular_core.InputSignal | T[] | null | undefined>; hideInlineError: _angular_core.InputSignalWithTransform; addable: _angular_core.InputSignalWithTransform; required: _angular_core.InputSignalWithTransform; disabled: _angular_core.InputSignalWithTransform; /** Display mode: `false` edit · `true` static view · `'inline'` view + click-to-edit (autocomplete panel). */ viewed: _angular_core.InputSignalWithTransform; /** In `viewed='inline'`, show a hover clear-× on the text face. Set `false` when the host owns removal (chips). */ clearable: _angular_core.InputSignalWithTransform; /** `true` when `viewed === 'inline'`. */ readonly isInline: _angular_core.Signal; /** `true` when `viewed === true` (static view, no editor). */ readonly isViewed: _angular_core.Signal; /** Open the autocomplete panel from the inline text face. No-op unless `viewed='inline'`. */ enterInlineEdit: () => void; /** View display template: `sdViewDef` overrides the projected `#sdValue` (unified). */ readonly viewTemplate: _angular_core.Signal | undefined>; validator: _angular_core.InputSignal; inlineError: _angular_core.InputSignal; /** * Tổng hợp error message để hiển thị trong tooltip khi hideInlineError = true. */ readonly errorMessage: _angular_core.Signal; appearanceInput: _angular_core.InputSignal; appearance: _angular_core.Signal; valueModel: _angular_core.ModelSignal; sdChange: _angular_core.OutputEmitterRef; sdSelection: _angular_core.OutputEmitterRef>; readonly sdAdd: EventEmitter; loading: _angular_core.WritableSignal; isFocused: boolean; isTyping: _angular_core.WritableSignal; inputControl: SdFormControl; formControl: SdFormControl; matcher: SdAutocompleteErrotStateMatcher; filteredItems: _angular_core.WritableSignal; selected: _angular_core.WritableSignal; display: _angular_core.WritableSignal; controlPlaceHolder: _angular_core.WritableSignal; normalizedValue: _angular_core.Signal; getNestedValue: (obj: any, path: string | undefined) => any; constructor(); ngOnInit(): void; ngOnDestroy(): void; onSelect: (item: T) => void; onFocus: () => void; onBlur: () => void; onClick: () => void; blur: () => void; focus: () => void; /** Open the autocomplete panel programmatically (anchors to the field input). Used by inline mode. */ open: () => void; clear: ($event?: any) => void; onAdd: ($event: Event) => void; reValidate: () => void; static ɵfac: _angular_core.ɵɵFactoryDeclaration, never>; static ɵcmp: _angular_core.ɵɵComponentDeclaration, "sd-autocomplete", never, { "autoIdInput": { "alias": "autoId"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": false; "isSignal": true; }; "displayField": { "alias": "displayField"; "required": false; "isSignal": true; }; "disabledField": { "alias": "disabledField"; "required": false; "isSignal": true; }; "limit": { "alias": "limit"; "required": false; "isSignal": true; }; "cacheChecksum": { "alias": "cacheChecksum"; "required": false; "isSignal": true; }; "hyperlink": { "alias": "hyperlink"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "hideInlineError": { "alias": "hideInlineError"; "required": false; "isSignal": true; }; "addable": { "alias": "addable"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "viewed": { "alias": "viewed"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "validator": { "alias": "validator"; "required": false; "isSignal": true; }; "inlineError": { "alias": "inlineError"; "required": false; "isSignal": true; }; "appearanceInput": { "alias": "appearance"; "required": false; "isSignal": true; }; "valueModel": { "alias": "model"; "required": false; "isSignal": true; }; }, { "valueModel": "modelChange"; "sdChange": "sdChange"; "sdSelection": "sdSelection"; "sdAdd": "sdAdd"; }, ["sdLabelTemplate", "sdValueTemplate", "itemDef", "sdViewDef"], ["[sdLabel]"], true, never>; } export { SdAutocomplete };