@telcomdev/ui 0.0.7 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telcomdev/ui",
3
- "version": "0.0.7",
3
+ "version": "0.0.8",
4
4
  "description": "Librería UI reutilizable para los sistemas TelcomDev.",
5
5
  "keywords": [
6
6
  "angular",
@@ -1,8 +1,8 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { OnChanges, OnDestroy, EventEmitter, SimpleChanges, InjectionToken, Type, TemplateRef, AfterContentInit } from '@angular/core';
2
+ import { OnChanges, OnDestroy, EventEmitter, SimpleChanges, InjectionToken, Type, ModelSignal, OutputEmitterRef, TemplateRef, AfterContentInit } from '@angular/core';
3
3
  import { ScrollStrategy } from '@angular/cdk/overlay';
4
4
  import { ControlValueAccessor } from '@angular/forms';
5
- import { FormValueControl, WithOptionalFieldTree, ValidationError } from '@angular/forms/signals';
5
+ import { FormValueControl, WithOptionalFieldTree, DisabledReason, ValidationError } from '@angular/forms/signals';
6
6
  import { Observable } from 'rxjs';
7
7
  import { DialogRef } from '@angular/cdk/dialog';
8
8
  import * as _telcomdev_ui from '@telcomdev/ui';
@@ -133,6 +133,7 @@ interface CalendarDay {
133
133
  type CalendarView = 'dias' | 'meses' | 'anios';
134
134
  declare class TdDatePicker implements ControlValueAccessor, FormValueControl<TdDatePickerValue> {
135
135
  private readonly cdr;
136
+ private readonly formBridge;
136
137
  private readonly scrollStrategies;
137
138
  private readonly generatedId;
138
139
  private readonly formatter;
@@ -142,18 +143,24 @@ declare class TdDatePicker implements ControlValueAccessor, FormValueControl<TdD
142
143
  placeholder: string;
143
144
  mode: TdDatePickerMode;
144
145
  hint: string;
145
- error: string;
146
- minDate: string | number | null | undefined;
147
- maxDate: string | number | null | undefined;
146
+ readonly name: _angular_core.InputSignal<string>;
148
147
  readonly disabled: _angular_core.InputSignal<boolean>;
148
+ readonly disabledReasons: _angular_core.InputSignal<readonly WithOptionalFieldTree<DisabledReason>[]>;
149
149
  readonly readonly: _angular_core.InputSignal<boolean>;
150
+ readonly hidden: _angular_core.InputSignal<boolean>;
150
151
  readonly invalid: _angular_core.InputSignal<boolean>;
152
+ readonly pending: _angular_core.InputSignal<boolean>;
153
+ readonly dirty: _angular_core.InputSignal<boolean>;
154
+ readonly required: _angular_core.InputSignal<boolean>;
151
155
  readonly errors: _angular_core.InputSignal<readonly WithOptionalFieldTree<ValidationError>[]>;
156
+ readonly touched: _angular_core.ModelSignal<boolean>;
152
157
  readonly touch: _angular_core.OutputEmitterRef<void>;
158
+ readonly error: _angular_core.InputSignal<string>;
159
+ minDate: string | number | null | undefined;
160
+ maxDate: string | number | null | undefined;
153
161
  clearable: boolean;
154
162
  dark: boolean;
155
163
  readonly value: _angular_core.ModelSignal<TdDatePickerValue>;
156
- private readonly cvaDisabled;
157
164
  protected readonly isDisabled: _angular_core.Signal<boolean>;
158
165
  protected readonly displayError: _angular_core.Signal<string>;
159
166
  protected readonly hasError: _angular_core.Signal<boolean>;
@@ -188,7 +195,6 @@ declare class TdDatePicker implements ControlValueAccessor, FormValueControl<TdD
188
195
  protected get rangeStartLabel(): string;
189
196
  protected get rangeEndLabel(): string;
190
197
  private changed;
191
- private onCvaTouched;
192
198
  writeValue(value: TdDatePickerValue): void;
193
199
  registerOnChange(fn: (value: TdDatePickerValue) => void): void;
194
200
  registerOnTouched(fn: () => void): void;
@@ -223,7 +229,7 @@ declare class TdDatePicker implements ControlValueAccessor, FormValueControl<TdD
223
229
  private monthIntersectsLimits;
224
230
  private yearIntersectsLimits;
225
231
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TdDatePicker, never>;
226
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TdDatePicker, "td-date-picker", never, { "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "error": { "alias": "error"; "required": false; }; "minDate": { "alias": "min"; "required": false; }; "maxDate": { "alias": "max"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; }; "dark": { "alias": "dark"; "required": false; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "touch": "touch"; "value": "valueChange"; "selectionChange": "selectionChange"; "openedChange": "openedChange"; }, never, never, true, never>;
232
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TdDatePicker, "td-date-picker", never, { "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "disabledReasons": { "alias": "disabledReasons"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "hidden": { "alias": "hidden"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "pending": { "alias": "pending"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "minDate": { "alias": "min"; "required": false; }; "maxDate": { "alias": "max"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "dark": { "alias": "dark"; "required": false; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "touched": "touchedChange"; "touch": "touch"; "value": "valueChange"; "selectionChange": "selectionChange"; "openedChange": "openedChange"; }, never, never, true, never>;
227
233
  }
228
234
 
229
235
  type TdDialogTamano = 'pequeno' | 'mediano' | 'grande' | 'pantalla';
@@ -307,6 +313,21 @@ declare class TdFooter {
307
313
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<TdFooter, "td-footer", never, { "empresa": { "alias": "empresa"; "required": false; }; "texto": { "alias": "texto"; "required": false; }; "version": { "alias": "version"; "required": false; }; "oscuro": { "alias": "oscuro"; "required": false; }; "compacto": { "alias": "compacto"; "required": false; }; "anio": { "alias": "anio"; "required": false; }; }, {}, never, ["[tdFooterLinks]", "[tdFooterActions]"], true, never>;
308
314
  }
309
315
 
316
+ interface TdFormControlBridge {
317
+ readonly usesSignalForms: boolean;
318
+ isDisabled(fieldDisabled: boolean): boolean;
319
+ registerOnTouched(fn: () => void): void;
320
+ setDisabledState(disabled: boolean): void;
321
+ markTouched(touched: ModelSignal<boolean>, touch: OutputEmitterRef<void>): void;
322
+ }
323
+ /**
324
+ * Puente reutilizable entre Signal Forms y ControlValueAccessor.
325
+ *
326
+ * Los inputs del contrato se declaran en cada componente porque el compilador
327
+ * de Signal Forms de Angular 21 necesita encontrarlos directamente allí.
328
+ */
329
+ declare function createTdFormControlBridge(): TdFormControlBridge;
330
+
310
331
  interface TdHeaderNotificacion {
311
332
  id: string | number;
312
333
  titulo: string;
@@ -615,53 +636,73 @@ declare const TD_ICONOS: {
615
636
  type TdIconoNombre = keyof typeof TD_ICONOS;
616
637
  declare const TD_ICONOS_NOMBRES: readonly ("error" | "info" | "link" | "menu" | "search" | "cancel" | "close" | "copy" | "home" | "dashboard" | "folder" | "settings" | "people" | "person" | "security" | "inventory" | "shopping_cart" | "receipt" | "assessment" | "description" | "business" | "chevron_left" | "chevron_right" | "sun" | "moon" | "alert" | "check" | "visibility" | "visibility_off" | "notifications" | "chevron_down" | "apps" | "help" | "add" | "edit" | "delete" | "toggle_on" | "toggle_off" | "inbox" | "pdf" | "save" | "download" | "upload" | "print" | "excel" | "xml" | "zip" | "file" | "image" | "calendar" | "clock" | "history" | "filter" | "refresh" | "sort" | "more_vertical" | "more_horizontal" | "arrow_back" | "arrow_forward" | "login" | "logout" | "lock" | "lock_open" | "mail" | "phone" | "send" | "location" | "language" | "warning" | "check_circle" | "star" | "favorite" | "database" | "cloud" | "camera" | "external_link")[];
617
638
 
618
- declare class TdInput implements ControlValueAccessor, FormValueControl<string> {
639
+ type TdInputValue = string | number | null;
640
+ type TdInputEmptyValue = 'auto' | 'null' | 'empty-string';
641
+ declare class TdInput implements ControlValueAccessor, FormValueControl<TdInputValue> {
619
642
  private readonly cdr;
643
+ private readonly formBridge;
620
644
  private readonly generatedId;
645
+ private legacyMinLength;
646
+ private legacyMaxLength;
647
+ private receivedNullValue;
648
+ private nativeInput?;
621
649
  id: string;
622
- readonly name: _angular_core.InputSignal<string>;
623
650
  label: string;
624
651
  type: 'text' | 'email' | 'password' | 'number' | 'tel' | 'url' | 'search' | 'date' | 'time';
625
652
  placeholder: string;
626
653
  autocomplete: string;
627
654
  icon: string;
628
655
  hint: string;
629
- error: string;
630
- readonly readonly: _angular_core.InputSignal<boolean>;
656
+ readonly name: _angular_core.InputSignal<string>;
631
657
  readonly disabled: _angular_core.InputSignal<boolean>;
632
- readonly required: _angular_core.InputSignal<boolean>;
658
+ readonly disabledReasons: _angular_core.InputSignal<readonly WithOptionalFieldTree<DisabledReason>[]>;
659
+ readonly readonly: _angular_core.InputSignal<boolean>;
660
+ readonly hidden: _angular_core.InputSignal<boolean>;
633
661
  readonly invalid: _angular_core.InputSignal<boolean>;
662
+ readonly pending: _angular_core.InputSignal<boolean>;
663
+ readonly dirty: _angular_core.InputSignal<boolean>;
664
+ readonly required: _angular_core.InputSignal<boolean>;
634
665
  readonly errors: _angular_core.InputSignal<readonly WithOptionalFieldTree<ValidationError>[]>;
666
+ readonly touched: _angular_core.ModelSignal<boolean>;
635
667
  readonly touch: _angular_core.OutputEmitterRef<void>;
668
+ readonly error: _angular_core.InputSignal<string>;
636
669
  clearable: boolean;
637
670
  dark: boolean;
638
- minValue: string | number | null | undefined;
639
- maxValue: string | number | null | undefined;
671
+ emptyValue: TdInputEmptyValue;
672
+ readonly minValue: _angular_core.InputSignal<string | number | null | undefined>;
673
+ readonly maxValue: _angular_core.InputSignal<string | number | null | undefined>;
674
+ readonly minLength: _angular_core.InputSignal<number | undefined>;
675
+ readonly maxLength: _angular_core.InputSignal<number | undefined>;
676
+ readonly pattern: _angular_core.InputSignal<readonly RegExp[]>;
640
677
  step: string | number | null;
641
- minlength: number | null;
642
- maxlength: number | null;
643
- readonly value: _angular_core.ModelSignal<string>;
644
- private readonly cvaDisabled;
678
+ set minlength(value: number | null);
679
+ set maxlength(value: number | null);
680
+ readonly value: _angular_core.ModelSignal<TdInputValue>;
645
681
  protected readonly isDisabled: _angular_core.Signal<boolean>;
646
682
  protected readonly displayError: _angular_core.Signal<string>;
647
683
  protected readonly hasError: _angular_core.Signal<boolean>;
684
+ protected readonly resolvedMinLength: _angular_core.Signal<number | null>;
685
+ protected readonly resolvedMaxLength: _angular_core.Signal<number | null>;
686
+ protected readonly resolvedPattern: _angular_core.Signal<string | null>;
648
687
  protected focused: boolean;
649
688
  protected passwordVisible: boolean;
650
689
  protected get inputId(): string;
651
690
  protected get descriptionId(): string | null;
652
691
  protected get resolvedType(): string;
653
692
  private onChange;
654
- private onTouched;
655
693
  writeValue(value: unknown): void;
656
- registerOnChange(fn: (value: string) => void): void;
694
+ registerOnChange(fn: (value: TdInputValue) => void): void;
657
695
  registerOnTouched(fn: () => void): void;
658
696
  setDisabledState(disabled: boolean): void;
697
+ focus(options?: FocusOptions): void;
659
698
  protected handleInput(event: Event): void;
660
699
  protected handleBlur(): void;
661
700
  protected clear(): void;
701
+ private parseInputValue;
702
+ private resolveEmptyValue;
662
703
  private setValue;
663
704
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TdInput, never>;
664
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TdInput, "td-input", never, { "id": { "alias": "id"; "required": false; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; }; "type": { "alias": "type"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "error": { "alias": "error"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; }; "dark": { "alias": "dark"; "required": false; }; "minValue": { "alias": "min"; "required": false; }; "maxValue": { "alias": "max"; "required": false; }; "step": { "alias": "step"; "required": false; }; "minlength": { "alias": "minlength"; "required": false; }; "maxlength": { "alias": "maxlength"; "required": false; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "touch": "touch"; "value": "valueChange"; }, never, never, true, never>;
705
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TdInput, "td-input", never, { "id": { "alias": "id"; "required": false; }; "label": { "alias": "label"; "required": false; }; "type": { "alias": "type"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "disabledReasons": { "alias": "disabledReasons"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "hidden": { "alias": "hidden"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "pending": { "alias": "pending"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; }; "dark": { "alias": "dark"; "required": false; }; "emptyValue": { "alias": "emptyValue"; "required": false; }; "minValue": { "alias": "min"; "required": false; "isSignal": true; }; "maxValue": { "alias": "max"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "pattern": { "alias": "pattern"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; }; "minlength": { "alias": "minlength"; "required": false; }; "maxlength": { "alias": "maxlength"; "required": false; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "touched": "touchedChange"; "touch": "touch"; "value": "valueChange"; }, never, never, true, never>;
665
706
  }
666
707
 
667
708
  interface TdSelectOption<T = unknown> {
@@ -675,6 +716,7 @@ type TdSelectScrollBehavior = 'reposition' | 'close';
675
716
 
676
717
  declare class TdAutocompleteSelect<T = unknown> implements ControlValueAccessor, FormValueControl<T | null> {
677
718
  private readonly cdr;
719
+ private readonly formBridge;
678
720
  private readonly document;
679
721
  private readonly destroyRef;
680
722
  private readonly scrollStrategies;
@@ -685,14 +727,22 @@ declare class TdAutocompleteSelect<T = unknown> implements ControlValueAccessor,
685
727
  placeholder: string;
686
728
  options: TdSelectOption<T>[];
687
729
  hint: string;
688
- error: string;
689
- emptyText: string;
690
- clearable: boolean;
691
- dark: boolean;
730
+ readonly name: _angular_core.InputSignal<string>;
692
731
  readonly disabled: _angular_core.InputSignal<boolean>;
732
+ readonly disabledReasons: _angular_core.InputSignal<readonly WithOptionalFieldTree<DisabledReason>[]>;
733
+ readonly readonly: _angular_core.InputSignal<boolean>;
734
+ readonly hidden: _angular_core.InputSignal<boolean>;
693
735
  readonly invalid: _angular_core.InputSignal<boolean>;
736
+ readonly pending: _angular_core.InputSignal<boolean>;
737
+ readonly dirty: _angular_core.InputSignal<boolean>;
738
+ readonly required: _angular_core.InputSignal<boolean>;
694
739
  readonly errors: _angular_core.InputSignal<readonly WithOptionalFieldTree<ValidationError>[]>;
740
+ readonly touched: _angular_core.ModelSignal<boolean>;
695
741
  readonly touch: _angular_core.OutputEmitterRef<void>;
742
+ readonly error: _angular_core.InputSignal<string>;
743
+ emptyText: string;
744
+ clearable: boolean;
745
+ dark: boolean;
696
746
  scrollBehavior: TdSelectScrollBehavior;
697
747
  minimumCharacters: number;
698
748
  filterWith: (option: TdSelectOption<T>, search: string) => boolean;
@@ -700,7 +750,6 @@ declare class TdAutocompleteSelect<T = unknown> implements ControlValueAccessor,
700
750
  readonly selectionChange: EventEmitter<T | null>;
701
751
  readonly searchChange: EventEmitter<string>;
702
752
  readonly value: _angular_core.ModelSignal<T | null>;
703
- private readonly cvaDisabled;
704
753
  protected readonly isDisabled: _angular_core.Signal<boolean>;
705
754
  protected readonly displayError: _angular_core.Signal<string>;
706
755
  protected readonly hasError: _angular_core.Signal<boolean>;
@@ -713,12 +762,12 @@ declare class TdAutocompleteSelect<T = unknown> implements ControlValueAccessor,
713
762
  protected get filteredOptions(): TdSelectOption<T>[];
714
763
  protected readonly onTouched: () => void;
715
764
  private changed;
716
- private onCvaTouched;
717
765
  constructor();
718
766
  writeValue(value: T | null): void;
719
767
  registerOnChange(fn: (value: T | null) => void): void;
720
768
  registerOnTouched(fn: () => void): void;
721
769
  setDisabledState(disabled: boolean): void;
770
+ focus(options?: FocusOptions): void;
722
771
  protected compare(first: T | null, second: T | null): boolean;
723
772
  protected openPanel(): void;
724
773
  protected close(): void;
@@ -729,33 +778,42 @@ declare class TdAutocompleteSelect<T = unknown> implements ControlValueAccessor,
729
778
  private moveActive;
730
779
  private firstEnabledIndex;
731
780
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TdAutocompleteSelect<any>, never>;
732
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TdAutocompleteSelect<any>, "td-autocomplete-select", never, { "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "options": { "alias": "options"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "error": { "alias": "error"; "required": false; }; "emptyText": { "alias": "emptyText"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "dark": { "alias": "dark"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "scrollBehavior": { "alias": "scrollBehavior"; "required": false; }; "minimumCharacters": { "alias": "minimumCharacters"; "required": false; }; "filterWith": { "alias": "filterWith"; "required": false; }; "compareWith": { "alias": "compareWith"; "required": false; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "touch": "touch"; "selectionChange": "selectionChange"; "searchChange": "searchChange"; "value": "valueChange"; }, never, never, true, never>;
781
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TdAutocompleteSelect<any>, "td-autocomplete-select", never, { "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "options": { "alias": "options"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "disabledReasons": { "alias": "disabledReasons"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "hidden": { "alias": "hidden"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "pending": { "alias": "pending"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "dark": { "alias": "dark"; "required": false; }; "scrollBehavior": { "alias": "scrollBehavior"; "required": false; }; "minimumCharacters": { "alias": "minimumCharacters"; "required": false; }; "filterWith": { "alias": "filterWith"; "required": false; }; "compareWith": { "alias": "compareWith"; "required": false; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "touched": "touchedChange"; "touch": "touch"; "selectionChange": "selectionChange"; "searchChange": "searchChange"; "value": "valueChange"; }, never, never, true, never>;
733
782
  }
734
783
 
735
784
  declare class TdSelect<T = unknown> implements ControlValueAccessor, FormValueControl<T | null> {
736
785
  private readonly cdr;
786
+ private readonly formBridge;
737
787
  private readonly document;
738
788
  private readonly destroyRef;
739
789
  private readonly scrollStrategies;
740
790
  private readonly generatedId;
741
791
  private connectedOverlay?;
792
+ private trigger?;
742
793
  label: string;
743
794
  placeholder: string;
744
795
  options: TdSelectOption<T>[];
745
796
  hint: string;
746
- error: string;
747
- emptyText: string;
748
- clearable: boolean;
749
- dark: boolean;
797
+ readonly name: _angular_core.InputSignal<string>;
750
798
  readonly disabled: _angular_core.InputSignal<boolean>;
799
+ readonly disabledReasons: _angular_core.InputSignal<readonly WithOptionalFieldTree<DisabledReason>[]>;
800
+ readonly readonly: _angular_core.InputSignal<boolean>;
801
+ readonly hidden: _angular_core.InputSignal<boolean>;
751
802
  readonly invalid: _angular_core.InputSignal<boolean>;
803
+ readonly pending: _angular_core.InputSignal<boolean>;
804
+ readonly dirty: _angular_core.InputSignal<boolean>;
805
+ readonly required: _angular_core.InputSignal<boolean>;
752
806
  readonly errors: _angular_core.InputSignal<readonly WithOptionalFieldTree<ValidationError>[]>;
807
+ readonly touched: _angular_core.ModelSignal<boolean>;
753
808
  readonly touch: _angular_core.OutputEmitterRef<void>;
809
+ readonly error: _angular_core.InputSignal<string>;
810
+ emptyText: string;
811
+ clearable: boolean;
812
+ dark: boolean;
754
813
  scrollBehavior: TdSelectScrollBehavior;
755
814
  compareWith: (first: T | null, second: T | null) => boolean;
756
815
  readonly selectionChange: EventEmitter<T | null>;
757
816
  readonly value: _angular_core.ModelSignal<T | null>;
758
- private readonly cvaDisabled;
759
817
  protected readonly isDisabled: _angular_core.Signal<boolean>;
760
818
  protected readonly displayError: _angular_core.Signal<string>;
761
819
  protected readonly hasError: _angular_core.Signal<boolean>;
@@ -766,12 +824,12 @@ declare class TdSelect<T = unknown> implements ControlValueAccessor, FormValueCo
766
824
  protected get listId(): string;
767
825
  protected get selectedOption(): TdSelectOption<T> | undefined;
768
826
  private onChange;
769
- private onTouched;
770
827
  constructor();
771
828
  writeValue(value: T | null): void;
772
829
  registerOnChange(fn: (value: T | null) => void): void;
773
830
  registerOnTouched(fn: () => void): void;
774
831
  setDisabledState(disabled: boolean): void;
832
+ focus(options?: FocusOptions): void;
775
833
  protected compare(first: T | null, second: T | null): boolean;
776
834
  protected toggle(): void;
777
835
  protected close(): void;
@@ -784,7 +842,7 @@ declare class TdSelect<T = unknown> implements ControlValueAccessor, FormValueCo
784
842
  private firstEnabledIndex;
785
843
  private setValue;
786
844
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TdSelect<any>, never>;
787
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TdSelect<any>, "td-select", never, { "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "options": { "alias": "options"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "error": { "alias": "error"; "required": false; }; "emptyText": { "alias": "emptyText"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "dark": { "alias": "dark"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "scrollBehavior": { "alias": "scrollBehavior"; "required": false; }; "compareWith": { "alias": "compareWith"; "required": false; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "touch": "touch"; "selectionChange": "selectionChange"; "value": "valueChange"; }, never, never, true, never>;
845
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TdSelect<any>, "td-select", never, { "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "options": { "alias": "options"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "disabledReasons": { "alias": "disabledReasons"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "hidden": { "alias": "hidden"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "pending": { "alias": "pending"; "required": false; "isSignal": true; }; "dirty": { "alias": "dirty"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "dark": { "alias": "dark"; "required": false; }; "scrollBehavior": { "alias": "scrollBehavior"; "required": false; }; "compareWith": { "alias": "compareWith"; "required": false; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "touched": "touchedChange"; "touch": "touch"; "selectionChange": "selectionChange"; "value": "valueChange"; }, never, never, true, never>;
788
846
  }
789
847
 
790
848
  interface MenuSidebar {
@@ -883,5 +941,5 @@ declare class TdTabs implements AfterContentInit, OnDestroy {
883
941
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<TdTabs, "td-tabs", never, { "selectedIndex": { "alias": "selectedIndex"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "alignment": { "alias": "alignment"; "required": false; }; "stretch": { "alias": "stretch"; "required": false; }; "dark": { "alias": "dark"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "panelFocusable": { "alias": "panelFocusable"; "required": false; }; }, { "selectedIndexChange": "selectedIndexChange"; "tabChange": "tabChange"; }, ["tabQuery"], never, true, never>;
884
942
  }
885
943
 
886
- export { TD_DIALOG_CONFIG, TD_DIALOG_DATA, TD_ICONOS, TD_ICONOS_NOMBRES, TdAlerta, TdAutocompleteSelect, TdDataTable, TdDatePicker, TdDialog, TdDialogActions, TdDialogClose, TdDialogPrimary, TdDialogRef, TdFooter, TdHeader, TdIcon, TdIconoRegistry, TdInput, TdSelect, TdSidebar, TdTab, TdTabs, TelcomdevUi };
887
- export type { MenuSidebar, TdAlertaOpciones, TdAlertaTipo, TdDataTableAccion, TdDataTableAccionEvento, TdDataTableAlineacion, TdDataTableBoton, TdDataTableColumna, TdDataTableTipoColumna, TdDataTableTono, TdDatePickerMode, TdDatePickerValue, TdDateRange, TdDialogConfig, TdDialogPanelData, TdDialogRefLike, TdDialogTamano, TdHeaderAccionPerfil, TdHeaderNotificacion, TdIconoDefinicion, TdIconoNombre, TdIconoPersonalizado, TdSelectOption, TdSelectScrollBehavior, TdSidebarModoCerrado, TdSidebarSeleccion, TdTabsAlignment, TdTabsVariant };
944
+ export { TD_DIALOG_CONFIG, TD_DIALOG_DATA, TD_ICONOS, TD_ICONOS_NOMBRES, TdAlerta, TdAutocompleteSelect, TdDataTable, TdDatePicker, TdDialog, TdDialogActions, TdDialogClose, TdDialogPrimary, TdDialogRef, TdFooter, TdHeader, TdIcon, TdIconoRegistry, TdInput, TdSelect, TdSidebar, TdTab, TdTabs, TelcomdevUi, createTdFormControlBridge };
945
+ export type { MenuSidebar, TdAlertaOpciones, TdAlertaTipo, TdDataTableAccion, TdDataTableAccionEvento, TdDataTableAlineacion, TdDataTableBoton, TdDataTableColumna, TdDataTableTipoColumna, TdDataTableTono, TdDatePickerMode, TdDatePickerValue, TdDateRange, TdDialogConfig, TdDialogPanelData, TdDialogRefLike, TdDialogTamano, TdFormControlBridge, TdHeaderAccionPerfil, TdHeaderNotificacion, TdIconoDefinicion, TdIconoNombre, TdIconoPersonalizado, TdInputEmptyValue, TdInputValue, TdSelectOption, TdSelectScrollBehavior, TdSidebarModoCerrado, TdSidebarSeleccion, TdTabsAlignment, TdTabsVariant };