ngx-eiffage-material 0.1.8 → 0.3.0

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/index.d.ts CHANGED
@@ -1,83 +1,21 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { OnInit, ElementRef, WritableSignal, Type, TemplateRef, PipeTransform, InjectionToken, Signal, OnDestroy } from '@angular/core';
3
- import { ControlValueAccessor, FormControl, FormBuilder, FormGroup, FormArray, AbstractControl } from '@angular/forms';
2
+ import { WritableSignal, Type, TemplateRef, PipeTransform, InjectionToken, Signal, EnvironmentProviders, AfterViewInit, DoCheck, ElementRef, OnDestroy } from '@angular/core';
3
+ import * as ngx_eiffage_material from 'ngx-eiffage-material';
4
+ import { FormBuilder, FormGroup, FormArray, AbstractControl, ControlValueAccessor, FormControl } from '@angular/forms';
4
5
  import { ErrorStateMatcher } from '@angular/material/core';
5
- import { SubscriptSizing } from '@angular/material/form-field';
6
+ import { MatFormFieldAppearance, SubscriptSizing } from '@angular/material/form-field';
6
7
  import { MatSelect, MatSelectChange } from '@angular/material/select';
7
- import { Observable, Subject } from 'rxjs';
8
- import * as ngx_eiffage_material from 'ngx-eiffage-material';
9
8
  import { MatDialogRef, MatDialogConfig } from '@angular/material/dialog';
10
9
  import { DateRange } from '@angular/material/datepicker';
11
10
  import { MatMenuTrigger } from '@angular/material/menu';
12
11
  import { PageEvent, MatPaginator } from '@angular/material/paginator';
13
12
  import { SortDirection, Sort } from '@angular/material/sort';
13
+ import { Observable, Subject } from 'rxjs';
14
14
  import jsPDF from 'jspdf';
15
15
  import moment from 'moment';
16
16
  import { MatTableDataSource } from '@angular/material/table';
17
17
  import { MatChipEvent } from '@angular/material/chips';
18
18
 
19
- declare class NgxLoadingButton {
20
- isLoading: _angular_core.InputSignal<boolean>;
21
- label: _angular_core.InputSignal<string>;
22
- matButton: _angular_core.InputSignal<"text" | "filled" | "elevated" | "outlined" | "tonal">;
23
- type: _angular_core.InputSignal<"button" | "submit" | "reset">;
24
- disabled: _angular_core.InputSignal<boolean>;
25
- spinnerDiameter: _angular_core.InputSignal<number>;
26
- spinnerStrokeWidth: _angular_core.InputSignal<number>;
27
- color: _angular_core.InputSignal<"secondary" | "tertiary" | undefined>;
28
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxLoadingButton, never>;
29
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxLoadingButton, "ngx-loading-button", never, { "isLoading": { "alias": "isLoading"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "matButton": { "alias": "matButton"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "spinnerDiameter": { "alias": "spinnerDiameter"; "required": false; "isSignal": true; }; "spinnerStrokeWidth": { "alias": "spinnerStrokeWidth"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
30
- }
31
-
32
- declare class NgxInputFile implements ControlValueAccessor, OnInit {
33
- private _cdr;
34
- value: _angular_core.WritableSignal<File[]>;
35
- onChangeCb?: (files: File[]) => void;
36
- onTouchCb?: () => void;
37
- label: _angular_core.InputSignal<string>;
38
- /**
39
- * FormControl externo. Es opcional: si el componente se usa con
40
- * `formControlName` / `[formControl]`, el enlace se hace por
41
- * ControlValueAccessor y no hace falta pasarlo.
42
- */
43
- control: _angular_core.InputSignal<FormControl<File[]> | undefined>;
44
- disabled: _angular_core.InputSignal<boolean>;
45
- placeholder: _angular_core.InputSignal<string>;
46
- class: _angular_core.InputSignal<string>;
47
- accept: _angular_core.InputSignal<string[]>;
48
- multiple: _angular_core.InputSignal<boolean>;
49
- hint: _angular_core.InputSignal<string>;
50
- error: _angular_core.InputSignal<string>;
51
- isDropping: _angular_core.WritableSignal<boolean>;
52
- inputFileRef: _angular_core.Signal<ElementRef<any> | undefined>;
53
- internalControl: FormControl<string[] | null>;
54
- /** Estado deshabilitado que llega desde setDisabledState() (reactive forms). */
55
- private readonly _cvaDisabled;
56
- /** Estado deshabilitado efectivo: input `disabled` o el del FormControl padre. */
57
- readonly isDisabled: _angular_core.Signal<boolean>;
58
- constructor();
59
- private checkErrors;
60
- controlEffect: _angular_core.EffectRef;
61
- ngOnInit(): void;
62
- onContainerClick(): void;
63
- onInputchange(event: any): void;
64
- onDragOver(event: DragEvent): void;
65
- onDragLeave(event: DragEvent): void;
66
- onDrop(event: DragEvent): void;
67
- attachFiles(files: FileList | null | undefined): void;
68
- writeValue(files: File[] | undefined | null): void;
69
- registerOnChange(fn: any): void;
70
- registerOnTouched(fn: any): void;
71
- setDisabledState(isDisabled: boolean): void;
72
- onDeleteFileClick(file: File): void;
73
- getAccept(): string;
74
- bytesToMegaBytes(bytes: number): string;
75
- private markAsTouched;
76
- private markAsDirty;
77
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxInputFile, never>;
78
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxInputFile, "ngx-input-file", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "control": { "alias": "control"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
79
- }
80
-
81
19
  interface BasicSelectConfig<T> {
82
20
  valueKey: keyof T;
83
21
  displayedLabel: (item: T) => string;
@@ -263,6 +201,12 @@ interface DynamicFilter<T> {
263
201
  grupo: string;
264
202
  }
265
203
 
204
+ /**
205
+ * @deprecated Usa `provideNgxEiffageTexts()`: solo hay que indicar los textos que cambian, se agrupan
206
+ * por componente y se actualizan solos al cambiar de idioma (signals). Mientras tanto, una subclase de
207
+ * NgxTablesIntl provista en la app se sigue respetando. Esta clase no recibirá textos nuevos y se
208
+ * eliminará en una versión mayor.
209
+ */
266
210
  declare class NgxTablesIntl {
267
211
  /**
268
212
  * Stream que emite cuando las etiquetas cambian.
@@ -500,6 +444,203 @@ declare class NgxTablesIntl {
500
444
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<NgxTablesIntl>;
501
445
  }
502
446
 
447
+ /**
448
+ * Todos los textos de la librería, agrupados por componente.
449
+ * Los que dependen de un dato (nombre, número…) son funciones.
450
+ */
451
+ interface NgxEiffageTexts {
452
+ /** Textos compartidos por varios componentes. */
453
+ common: {
454
+ search: string;
455
+ clearSearch: string;
456
+ noData: string;
457
+ loading: string;
458
+ cancel: string;
459
+ confirm: string;
460
+ close: string;
461
+ save: string;
462
+ saveAndApply: string;
463
+ };
464
+ /** ngx-basic-table y ngx-paginated-table. */
465
+ table: {
466
+ create: string;
467
+ edit: string;
468
+ delete: string;
469
+ confirmDelete: string;
470
+ deleteConfirmTitle: string;
471
+ deleteConfirmBody: string;
472
+ editColumns: string;
473
+ deselectAll: string;
474
+ selectionActions: string;
475
+ export: string;
476
+ exportExcel: string;
477
+ exportPdf: string;
478
+ enterFullscreen: string;
479
+ exitFullscreen: string;
480
+ actions: string;
481
+ dateRangeStart: string;
482
+ dateRangeEnd: string;
483
+ totalPerPage: string;
484
+ totalGeneral: string;
485
+ };
486
+ /** Diálogo de ordenar y mostrar columnas de las tablas. */
487
+ columnsDialog: {
488
+ title: string;
489
+ pin: string;
490
+ unpin: string;
491
+ moveUp: string;
492
+ moveDown: string;
493
+ hasFiltersApplied: string;
494
+ hideColumnWithFiltersNote: string;
495
+ note: string;
496
+ reset: string;
497
+ };
498
+ /** Filtros avanzados de ngx-paginated-table. */
499
+ advancedFilters: {
500
+ label: string;
501
+ new: string;
502
+ remove: string;
503
+ editTooltip: (filterName: string) => string;
504
+ deleteTooltip: (filterName: string) => string;
505
+ deleteTitle: string;
506
+ deleteMessage: (filterName: string) => string;
507
+ dialogTitle: string;
508
+ templateName: string;
509
+ templateNameRequired: string;
510
+ helpTitle: string;
511
+ groupHelp: string;
512
+ ruleHelp: string;
513
+ group: string;
514
+ filter: string;
515
+ addFilter: string;
516
+ addGroup: string;
517
+ deleteGroup: string;
518
+ deleteFilter: string;
519
+ field: string;
520
+ condition: string;
521
+ value: string;
522
+ selectOption: string;
523
+ required: string;
524
+ and: string;
525
+ or: string;
526
+ operators: {
527
+ equals: string;
528
+ notEquals: string;
529
+ greaterThan: string;
530
+ greaterOrEquals: string;
531
+ lessThan: string;
532
+ lessOrEquals: string;
533
+ like: string;
534
+ };
535
+ };
536
+ /** ngx-basic-select, ngx-searchable-select y ngx-paginated-searchable-select. */
537
+ select: {
538
+ noResults: string;
539
+ showMore: string;
540
+ removeOption: (optionName: string) => string;
541
+ resultsCount: (count: number) => string;
542
+ };
543
+ /** ngx-paginated-select. */
544
+ paginatedSelect: {
545
+ confirm: string;
546
+ reset: string;
547
+ selectAll: string;
548
+ loadingMore: string;
549
+ endOfList: string;
550
+ noResultsHint: string;
551
+ clearSearch: string;
552
+ errorTitle: string;
553
+ errorHint: string;
554
+ retry: string;
555
+ selectedCount: (selected: number, total: number) => string;
556
+ resultsCount: (total: number) => string;
557
+ };
558
+ /** NgxDialogService y ngx-dialog (botones por defecto). */
559
+ dialog: {
560
+ cancel: string;
561
+ /** Botón de confirmar de NgxDialogService.confirm(). */
562
+ confirm: string;
563
+ /** Botón de aceptar de NgxDialogService.info() y de ngx-dialog. */
564
+ accept: string;
565
+ /** Etiqueta accesible y tooltip del botón X de cerrar. */
566
+ close: string;
567
+ };
568
+ /** ngx-file-input. */
569
+ fileInput: {
570
+ dropLabel: string;
571
+ browse: string;
572
+ remove: (fileName: string) => string;
573
+ removed: (fileName: string) => string;
574
+ added: (count: number) => string;
575
+ maxFiles: (max: number) => string;
576
+ typeNotAllowed: (type: string) => string;
577
+ tooLarge: (maxSize: string) => string;
578
+ };
579
+ /** ngx-input-file. */
580
+ inputFile: {
581
+ label: string;
582
+ /** Texto del campo vacío. */
583
+ placeholder: string;
584
+ /** Pista mientras se arrastran ficheros encima. */
585
+ dropping: string;
586
+ /** Etiqueta accesible y tooltip del botón de examinar. */
587
+ browse: string;
588
+ remove: (fileName: string) => string;
589
+ /** Fichero descartado por no cumplir `accept`. */
590
+ rejectedType: (fileName: string) => string;
591
+ /** Fichero descartado por superar `maxSize` (ya formateado: «2 MB»). */
592
+ rejectedSize: (fileName: string, maxSize: string) => string;
593
+ /** Ficheros descartados por superar `maxFiles`. */
594
+ rejectedCount: (max: number) => string;
595
+ };
596
+ skeleton: {
597
+ loading: string;
598
+ };
599
+ alert: {
600
+ dismiss: string;
601
+ };
602
+ loadingButton: {
603
+ busy: string;
604
+ };
605
+ }
606
+ /** Igual que T pero con todo opcional, a cualquier profundidad (las funciones se quedan como están). */
607
+ type DeepPartial<T> = {
608
+ [K in keyof T]?: T[K] extends (...args: never[]) => unknown ? T[K] : T[K] extends object ? DeepPartial<T[K]> : T[K];
609
+ };
610
+ /** Textos que la app quiere cambiar: solo los que difieren de los valores por defecto. */
611
+ type NgxEiffageTextsOverrides = DeepPartial<NgxEiffageTexts>;
612
+ /** Valores por defecto (castellano). */
613
+ declare const NGX_EIFFAGE_DEFAULT_TEXTS: NgxEiffageTexts;
614
+ /** Lo que acepta provideNgxEiffageTexts: un objeto fijo o un signal (para cambiar de idioma en caliente). */
615
+ type NgxEiffageTextsSource = NgxEiffageTextsOverrides | Signal<NgxEiffageTextsOverrides>;
616
+ /** Textos que la app consumidora sustituye. Se provee con provideNgxEiffageTexts(). */
617
+ declare const NGX_EIFFAGE_TEXTS: InjectionToken<Signal<DeepPartial<NgxEiffageTexts>>>;
618
+ /**
619
+ * Cambia los textos de la librería. Solo hay que indicar los que difieren de los valores por defecto.
620
+ *
621
+ * ```ts
622
+ * // Textos fijos
623
+ * provideNgxEiffageTexts({ alert: { dismiss: 'Dismiss' } })
624
+ *
625
+ * // Según el idioma de la app: una función (se ejecuta en contexto de inyección) que devuelve un signal
626
+ * provideNgxEiffageTexts(() => {
627
+ * const language = inject(LanguageService);
628
+ * return computed(() => language.current() === 'en' ? EN_TEXTS : {});
629
+ * })
630
+ * ```
631
+ */
632
+ declare function provideNgxEiffageTexts(texts: NgxEiffageTextsSource | (() => NgxEiffageTextsSource)): EnvironmentProviders;
633
+ /** Textos efectivos de la librería: valores por defecto + NgxTablesIntl (obsoleto) + provideNgxEiffageTexts. */
634
+ declare class NgxTexts {
635
+ private readonly _overrides;
636
+ private readonly _legacyIntl;
637
+ private readonly _legacyChanges;
638
+ /** Todos los textos ya combinados. En plantilla: `texts().alert.dismiss`. */
639
+ readonly texts: Signal<NgxEiffageTexts>;
640
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxTexts, never>;
641
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<NgxTexts>;
642
+ }
643
+
503
644
  declare class AdvancedFilterUtils {
504
645
  static createAdvancedFilter: <T>(fb: FormBuilder, advancedFilter: AdvancedFilter<T>) => FormGroup;
505
646
  static createFilterGroup: <T>(fb: FormBuilder, group: FilterGroup<T>) => FormGroup;
@@ -519,7 +660,7 @@ declare class AdvancedFilterUtils {
519
660
  private static isNonEmptyFilter;
520
661
  private static isNonEmptyGroup;
521
662
  private static isNonEmptyRule;
522
- static groupsToReadableHtml<T>(groups: FilterGroup<T>[], columns: PaginatedTableColumn<T>[], intl: NgxTablesIntl): string;
663
+ static groupsToReadableHtml<T>(groups: FilterGroup<T>[], columns: PaginatedTableColumn<T>[], texts: NgxEiffageTexts): string;
523
664
  private static groupToHtml;
524
665
  private static ruleToHtml;
525
666
  private static getOperatorLabel;
@@ -612,6 +753,13 @@ interface BasicTableColumn<T> {
612
753
  type SortType = 'string' | 'number' | 'date';
613
754
 
614
755
  type AlertType = 'info' | 'warning' | 'error' | 'success';
756
+ /** standard: fondo tintado + borde izquierdo; soft: solo fondo tintado; outlined: solo borde. */
757
+ type AlertAppearance = 'standard' | 'soft' | 'outlined';
758
+
759
+ /** Apariencia de Material del botón (el valor del atributo matButton). */
760
+ type LoadingButtonAppearance = 'text' | 'filled' | 'elevated' | 'outlined' | 'tonal';
761
+ /** Color del botón. Sin valor, el primary del tema. */
762
+ type LoadingButtonColor = 'secondary' | 'tertiary' | 'error';
615
763
 
616
764
  type SkeletonVariant = 'text' | 'circle' | 'rect' | 'rounded';
617
765
  type SkeletonAnimation = 'shimmer' | 'pulse' | 'none';
@@ -670,6 +818,31 @@ interface DialogConfig<T = any> {
670
818
  showConfirm?: boolean;
671
819
  cancelText?: string;
672
820
  confirmText?: string;
821
+ /** El botón de confirmar se pinta en el color de error (eliminar, descartar…). */
822
+ destructive?: boolean;
823
+ /** Muestra la X de cerrar en el encabezado (cierra devolviendo undefined). Por defecto true, salvo con disableClose. */
824
+ showClose?: boolean;
825
+ }
826
+ /**
827
+ * Lo que un componente o plantilla dentro de un diálogo de NgxDialogService puede controlar.
828
+ *
829
+ * - En un componente: `inject(NgxDialogContext)`.
830
+ * - En una plantilla: viene en el contexto como `dialog` (`let-dialog="dialog"`).
831
+ */
832
+ declare abstract class NgxDialogContext<R = unknown> {
833
+ /** Resultado que se devuelve al pulsar confirmar. Si se queda sin valor, se devuelve `true`. */
834
+ abstract readonly result: WritableSignal<R | undefined>;
835
+ /** Deshabilita el botón de confirmar (p. ej. mientras un formulario no es válido). */
836
+ abstract readonly confirmDisabled: WritableSignal<boolean>;
837
+ /** Cierra el diálogo devolviendo `result` (o `false`/`undefined` para cancelar). */
838
+ abstract close(result?: R | boolean): void;
839
+ }
840
+ /** Contexto que recibe una plantilla usada como cuerpo de un diálogo. */
841
+ interface NgxDialogTemplateContext<T = any, R = unknown> {
842
+ /** Los datos que se pasaron en `templateData`. */
843
+ $implicit: T;
844
+ /** Para cerrar el diálogo, fijar el resultado o deshabilitar el botón de confirmar. */
845
+ dialog: NgxDialogContext<R>;
673
846
  }
674
847
 
675
848
  interface ConfigureTableColumnData<T> {
@@ -695,6 +868,141 @@ interface Pantalla {
695
868
 
696
869
  type SendType = 'save' | 'save_and_apply';
697
870
 
871
+ /**
872
+ * Botón de Material que muestra un spinner mientras dura una acción y no deja volver a pulsarlo.
873
+ *
874
+ * El clic se escucha en el propio selector: `<ngx-loading-button (click)="save()" />`.
875
+ * Mientras `isLoading` es true el clic no llega (ni el submit del formulario, ni con Enter).
876
+ */
877
+ declare class NgxLoadingButton {
878
+ private readonly _texts;
879
+ /** Muestra el spinner y bloquea el botón. */
880
+ readonly isLoading: _angular_core.InputSignalWithTransform<boolean, unknown>;
881
+ /** Texto del botón. Para iconos o contenido con formato, proyéctalo en su lugar. */
882
+ readonly label: _angular_core.InputSignal<string | undefined>;
883
+ /**
884
+ * Texto que sustituye al contenido mientras carga, con un spinner pequeño delante
885
+ * (p. ej. «Guardando…»). Sin él, el spinner se superpone y el botón mantiene su ancho.
886
+ */
887
+ readonly loadingText: _angular_core.InputSignal<string | undefined>;
888
+ /** Apariencia de Material: text, filled, elevated, outlined o tonal. */
889
+ readonly matButton: _angular_core.InputSignal<LoadingButtonAppearance>;
890
+ /** Tipo nativo del botón. */
891
+ readonly type: _angular_core.InputSignal<"reset" | "submit" | "button">;
892
+ /** Deshabilita el botón (independiente de isLoading). */
893
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
894
+ /** Color. Sin valor, el primary del tema. */
895
+ readonly color: _angular_core.InputSignal<LoadingButtonColor | undefined>;
896
+ /** Diámetro en px del spinner superpuesto. */
897
+ readonly spinnerDiameter: _angular_core.InputSignalWithTransform<number, unknown>;
898
+ /** Grosor en px del trazo del spinner. */
899
+ readonly spinnerStrokeWidth: _angular_core.InputSignalWithTransform<number, unknown>;
900
+ /** Lo que anuncia el lector de pantalla mientras carga. Por defecto, el texto `loadingButton.busy` de la librería. */
901
+ readonly busyLabel: _angular_core.InputSignal<string | undefined>;
902
+ /** El spinner va encima del contenido (que se oculta sin cambiar el ancho). */
903
+ protected readonly overlaySpinner: _angular_core.Signal<boolean>;
904
+ /** El spinner va en línea, delante de loadingText. */
905
+ protected readonly inlineSpinner: _angular_core.Signal<boolean>;
906
+ protected readonly resolvedBusyLabel: _angular_core.Signal<string>;
907
+ /**
908
+ * Mientras carga, anula el clic en el propio botón: preventDefault evita el submit del formulario
909
+ * (también el implícito al pulsar Enter en un campo) y stopImmediatePropagation evita que llegue
910
+ * al (click) que el consumidor escucha en <ngx-loading-button>.
911
+ */
912
+ protected blockWhileLoading(event: Event): void;
913
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxLoadingButton, never>;
914
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxLoadingButton, "ngx-loading-button", never, { "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "loadingText": { "alias": "loadingText"; "required": false; "isSignal": true; }; "matButton": { "alias": "matButton"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "spinnerDiameter": { "alias": "spinnerDiameter"; "required": false; "isSignal": true; }; "spinnerStrokeWidth": { "alias": "spinnerStrokeWidth"; "required": false; "isSignal": true; }; "busyLabel": { "alias": "busyLabel"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
915
+ }
916
+
917
+ /**
918
+ * Selector de ficheros con forma de campo de formulario: un `mat-form-field` con los ficheros como chips.
919
+ * Se usa con `formControlName` / `[formControl]` / `ngModel` (valor: `File[]`) o con `[(files)]`.
920
+ */
921
+ declare class NgxInputFile implements ControlValueAccessor, AfterViewInit, DoCheck {
922
+ private readonly _ngControl;
923
+ private readonly _parentForm;
924
+ private readonly _cdr;
925
+ private readonly _host;
926
+ private readonly _locale;
927
+ private readonly _nativeInput;
928
+ private readonly _chipGrid;
929
+ protected readonly texts: _angular_core.Signal<ngx_eiffage_material.NgxEiffageTexts>;
930
+ /** Etiqueta del campo. Por defecto, el texto `inputFile.label` de la librería. */
931
+ readonly label: _angular_core.InputSignal<string | undefined>;
932
+ /** Texto del campo vacío. Por defecto, el texto `inputFile.placeholder` de la librería. */
933
+ readonly placeholder: _angular_core.InputSignal<string | undefined>;
934
+ /** Texto de ayuda bajo el campo. */
935
+ readonly hint: _angular_core.InputSignal<string>;
936
+ /** Mensaje de error. Se ve cuando el control es inválido y está tocado o el formulario se ha enviado. */
937
+ readonly error: _angular_core.InputSignal<string>;
938
+ /** Tipos admitidos: extensiones (`.pdf`), MIME (`application/pdf`) o comodines (`image/*`). Se comprueba también al arrastrar. */
939
+ readonly accept: _angular_core.InputSignal<string | string[]>;
940
+ /** Permite varios ficheros; cada selección se añade a los que ya hay. */
941
+ readonly multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
942
+ /** Tamaño máximo por fichero, en bytes. Los mayores se descartan. */
943
+ readonly maxSize: _angular_core.InputSignal<number | null>;
944
+ /** Número máximo de ficheros (con `multiple`). Los que no caben se descartan. */
945
+ readonly maxFiles: _angular_core.InputSignal<number | null>;
946
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
947
+ /** Apariencia del `mat-form-field`. */
948
+ readonly appearance: _angular_core.InputSignal<MatFormFieldAppearance>;
949
+ /** Ficheros seleccionados. Admite `[(files)]` para usarlo sin formularios. */
950
+ readonly files: _angular_core.ModelSignal<File[]>;
951
+ /** Fichero descartado al seleccionar o arrastrar (tipo, tamaño o número), con el mismo formato que ngx-file-input. */
952
+ readonly validationError: _angular_core.OutputEmitterRef<NgxFileError>;
953
+ protected readonly resolvedLabel: _angular_core.Signal<string>;
954
+ protected readonly resolvedPlaceholder: _angular_core.Signal<string>;
955
+ protected readonly acceptAttr: _angular_core.Signal<string>;
956
+ protected readonly items: _angular_core.Signal<{
957
+ file: File;
958
+ icon: string;
959
+ size: string;
960
+ }[]>;
961
+ private readonly _cvaDisabled;
962
+ /** Deshabilitado por el input `disabled` o por el control del formulario. */
963
+ readonly isDisabled: _angular_core.Signal<boolean>;
964
+ protected readonly isDropping: _angular_core.WritableSignal<boolean>;
965
+ protected readonly isRequired: _angular_core.WritableSignal<boolean>;
966
+ /** Ficheros descartados en la última selección; el mensaje se recalcula si cambia el idioma. */
967
+ private readonly _rejected;
968
+ protected readonly rejectionMessage: _angular_core.Signal<string>;
969
+ /** Error con el estado del control del formulario (inválido y tocado, o formulario enviado). */
970
+ protected readonly errorStateMatcher: ErrorStateMatcher;
971
+ protected readonly noSeparators: number[];
972
+ private _onChange;
973
+ private _onTouched;
974
+ private _controlSub?;
975
+ constructor();
976
+ ngAfterViewInit(): void;
977
+ ngDoCheck(): void;
978
+ /** Abre el selector de ficheros del sistema. */
979
+ openPicker(): void;
980
+ /** Quita un fichero de la selección. */
981
+ remove(file: File): void;
982
+ protected onFieldClick(event: MouseEvent): void;
983
+ protected onTriggerKeydown(event: KeyboardEvent): void;
984
+ protected onTriggerBlur(): void;
985
+ protected onNativeChange(event: Event): void;
986
+ protected onNativeCancel(): void;
987
+ protected onDragOver(event: DragEvent): void;
988
+ protected onDragLeave(event: DragEvent): void;
989
+ protected onDrop(event: DragEvent): void;
990
+ writeValue(files: File[] | null | undefined): void;
991
+ registerOnChange(fn: (files: File[]) => void): void;
992
+ registerOnTouched(fn: () => void): void;
993
+ setDisabledState(isDisabled: boolean): void;
994
+ private _control;
995
+ /** Escucha el control (y el envío del formulario) para refrescar el asterisco y el estado de error con OnPush. */
996
+ private _bindControl;
997
+ private _syncFormState;
998
+ private _addFiles;
999
+ private _commit;
1000
+ private _markTouched;
1001
+ private _message;
1002
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxInputFile, never>;
1003
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxInputFile, "ngx-input-file", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "maxSize": { "alias": "maxSize"; "required": false; "isSignal": true; }; "maxFiles": { "alias": "maxFiles"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "files": { "alias": "files"; "required": false; "isSignal": true; }; }, { "files": "filesChange"; "validationError": "validationError"; }, never, never, true, never>;
1004
+ }
1005
+
698
1006
  /** Opción ya resuelta (valor, etiqueta, disabled y visibilidad según el buscador). */
699
1007
  interface ResolvedOption<T> {
700
1008
  value: T[keyof T];
@@ -703,7 +1011,7 @@ interface ResolvedOption<T> {
703
1011
  visible: boolean;
704
1012
  }
705
1013
  declare class NgxBasicSelect<T> implements ControlValueAccessor {
706
- readonly intl: NgxTablesIntl;
1014
+ readonly texts: _angular_core.Signal<ngx_eiffage_material.NgxEiffageTexts>;
707
1015
  /**
708
1016
  * Se auto-registra como ControlValueAccessor del control del formulario.
709
1017
  * Se usa `self`/`optional` para poder leer el estado de validación (invalid/touched)
@@ -798,9 +1106,14 @@ declare class NgxBasicSelect<T> implements ControlValueAccessor {
798
1106
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxBasicSelect<any>, "ngx-basic-select", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "options": { "alias": "options"; "required": true; "isSignal": true; }; "basicSelectConfig": { "alias": "basicSelectConfig"; "required": true; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "subscriptSizing": { "alias": "subscriptSizing"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; }, never, never, true, never>;
799
1107
  }
800
1108
 
801
- declare class NgxDialog<T = any> {
802
- private _dialogRef;
803
- private _data;
1109
+ /**
1110
+ * Diálogo genérico que abre NgxDialogService. El contenido (texto, HTML, componente o plantilla)
1111
+ * puede usar NgxDialogContext para devolver un resultado o deshabilitar el botón de confirmar.
1112
+ */
1113
+ declare class NgxDialog<T = any, R = unknown> implements NgxDialogContext<R> {
1114
+ private readonly _dialogRef;
1115
+ private readonly _data;
1116
+ private readonly _texts;
804
1117
  readonly title: string;
805
1118
  readonly icon: string | undefined;
806
1119
  readonly iconColor: string | undefined;
@@ -808,31 +1121,43 @@ declare class NgxDialog<T = any> {
808
1121
  readonly body: ngx_eiffage_material.DialogBodyConfig<T>;
809
1122
  readonly showCancel: boolean;
810
1123
  readonly showConfirm: boolean;
1124
+ readonly destructive: boolean;
1125
+ /** La X no tiene sentido en un diálogo con disableClose (está pensado para no poder cerrarse sin decidir). */
1126
+ readonly showClose: boolean;
1127
+ readonly closeLabel: string;
811
1128
  readonly cancelText: string;
812
1129
  readonly confirmText: string;
813
- DialogBodyType: typeof DialogBodyType;
1130
+ readonly result: _angular_core.WritableSignal<R | undefined>;
1131
+ readonly confirmDisabled: _angular_core.WritableSignal<boolean>;
1132
+ close(result?: R | boolean): void;
1133
+ protected readonly DialogBodyType: typeof DialogBodyType;
1134
+ protected readonly templateContext: NgxDialogTemplateContext<T, R>;
814
1135
  onCancelClick(): void;
815
1136
  onConfirmClick(): void;
816
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxDialog<any>, never>;
817
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxDialog<any>, "ngx-dialog", never, {}, {}, never, never, true, never>;
1137
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxDialog<any, any>, never>;
1138
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxDialog<any, any>, "ngx-dialog", never, {}, {}, never, never, true, never>;
818
1139
  }
819
1140
 
1141
+ /**
1142
+ * @deprecated Usar `NgxDialogService.confirm()` (o `template()` con contenido propio), que tiene el
1143
+ * encabezado, el botón X y la opción `destructive` de ngx-dialog. Las tablas ya no lo usan; se
1144
+ * mantiene solo por compatibilidad con quien lo abra directamente.
1145
+ */
820
1146
  declare class NgxConfirmDialogComponent {
821
1147
  dialogRef: MatDialogRef<any, any>;
822
1148
  data: ConfirmDialogData<any>;
823
- intl: NgxTablesIntl;
1149
+ readonly texts: _angular_core.Signal<ngx_eiffage_material.NgxEiffageTexts>;
824
1150
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxConfirmDialogComponent, never>;
825
1151
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxConfirmDialogComponent, "ngx-confirm-dialog", never, {}, {}, never, never, true, never>;
826
1152
  }
827
1153
 
828
- declare class NgxPaginatedTable<T, U extends PaginatedFilter<T>> implements OnInit, OnDestroy {
1154
+ declare class NgxPaginatedTable<T, U extends PaginatedFilter<T>> implements OnDestroy {
829
1155
  private readonly columnConfigService;
830
1156
  private readonly advancedFilterService;
831
1157
  private readonly dialog;
1158
+ private readonly dialogService;
832
1159
  private readonly datosPantallaService;
833
- private readonly _changeDetectorRef;
834
- readonly intl: NgxTablesIntl;
835
- private readonly _destroy$;
1160
+ readonly texts: Signal<ngx_eiffage_material.NgxEiffageTexts>;
836
1161
  protected isDesktop: Signal<boolean>;
837
1162
  endpoint: _angular_core.InputSignal<(filters: U) => Observable<PaginatedItems<T>>>;
838
1163
  filters: _angular_core.InputSignal<WritableSignal<U>>;
@@ -874,7 +1199,6 @@ declare class NgxPaginatedTable<T, U extends PaginatedFilter<T>> implements OnIn
874
1199
  private overlayRef?;
875
1200
  private portal?;
876
1201
  protected defaultFiltersForPaginatedFilterOptions: WritableSignal<PaginatedFilter<FilterOption>>;
877
- ngOnInit(): void;
878
1202
  onEscape(): void;
879
1203
  ngOnDestroy(): void;
880
1204
  private includeInColumnConfig;
@@ -935,8 +1259,9 @@ declare class NgxPaginatedTable<T, U extends PaginatedFilter<T>> implements OnIn
935
1259
  declare class NgxBasicTable<T, U extends BasicFilter<T>> {
936
1260
  private readonly columnConfigService;
937
1261
  private readonly dialog;
1262
+ private readonly dialogService;
938
1263
  private readonly datosPantallaService;
939
- readonly intl: NgxTablesIntl;
1264
+ readonly texts: _angular_core.Signal<ngx_eiffage_material.NgxEiffageTexts>;
940
1265
  protected isDesktop: _angular_core.Signal<boolean>;
941
1266
  filters: _angular_core.InputSignal<WritableSignal<U>>;
942
1267
  config: _angular_core.InputSignal<WritableSignal<BasicTableConfig<T>>>;
@@ -1031,9 +1356,8 @@ declare class NgxBasicTable<T, U extends BasicFilter<T>> {
1031
1356
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxBasicTable<any, any>, "ngx-basic-table", never, { "filters": { "alias": "filters"; "required": false; "isSignal": true; }; "config": { "alias": "config"; "required": true; "isSignal": true; }; "data": { "alias": "data"; "required": true; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "queryFilter": { "alias": "queryFilter"; "required": false; "isSignal": true; }; "moreFilters": { "alias": "moreFilters"; "required": false; "isSignal": true; }; }, { "createClick": "createClick"; "updateClick": "updateClick"; "deleteClick": "deleteClick"; "rowActionClick": "rowActionClick"; "expandedItemChange": "expandedItemChange"; "selectionActionEvent": "selectionActionEvent"; }, never, ["[icon-buttons]", "[more-filters]", "[extra-header-content]", "[end-container]"], true, never>;
1032
1357
  }
1033
1358
 
1034
- declare class SearchableSelectComponent<T> {
1035
- readonly intl: NgxTablesIntl;
1036
- control: _angular_core.InputSignal<FormControl<any> | undefined>;
1359
+ declare class SearchableSelectComponent<T> implements ControlValueAccessor, AfterViewInit {
1360
+ readonly texts: _angular_core.Signal<ngx_eiffage_material.NgxEiffageTexts>;
1037
1361
  options: _angular_core.InputSignal<T[]>;
1038
1362
  optionLabel: _angular_core.InputSignal<(option: T) => string>;
1039
1363
  optionValue: _angular_core.InputSignal<(option: T) => string>;
@@ -1050,7 +1374,23 @@ declare class SearchableSelectComponent<T> {
1050
1374
  optionChange: _angular_core.OutputEmitterRef<string | string[] | undefined>;
1051
1375
  protected searcher: _angular_core.Signal<ElementRef<any> | undefined>;
1052
1376
  protected innerControl: _angular_core.WritableSignal<FormControl<any>>;
1377
+ /** Control del formulario si se usa con formControlName / [formControl] / ngModel (se registra como su value accessor). */
1378
+ private readonly _ngControl;
1379
+ private readonly _parentForm;
1380
+ private readonly _cvaDisabled;
1381
+ private _onChange;
1382
+ private _onTouched;
1383
+ /** Asterisco de obligatorio: lo decide el control del formulario. */
1384
+ protected readonly isRequired: _angular_core.WritableSignal<boolean>;
1385
+ /** Error con el estado del control del formulario (inválido y tocado, o formulario enviado). */
1386
+ protected readonly errorStateMatcher: ErrorStateMatcher;
1387
+ constructor();
1053
1388
  selectedEffect: _angular_core.EffectRef;
1389
+ ngAfterViewInit(): void;
1390
+ writeValue(value: string | string[] | undefined | null): void;
1391
+ registerOnChange(fn: (value: string | string[] | undefined) => void): void;
1392
+ registerOnTouched(fn: () => void): void;
1393
+ setDisabledState(isDisabled: boolean): void;
1054
1394
  protected openedChange(open: boolean): void;
1055
1395
  protected cleanQuery(): void;
1056
1396
  protected getClearableOptionName(): string;
@@ -1058,12 +1398,11 @@ declare class SearchableSelectComponent<T> {
1058
1398
  protected onOptionChange(event: MatSelectChange<string | string[] | undefined>): void;
1059
1399
  protected numberOfResults(): number;
1060
1400
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SearchableSelectComponent<any>, never>;
1061
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SearchableSelectComponent<any>, "ngx-searchable-select", never, { "control": { "alias": "control"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": true; "isSignal": true; }; "optionLabel": { "alias": "optionLabel"; "required": false; "isSignal": true; }; "optionValue": { "alias": "optionValue"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "searchInputPlaceholder": { "alias": "searchInputPlaceholder"; "required": false; "isSignal": true; }; "selectLabel": { "alias": "selectLabel"; "required": false; "isSignal": true; }; "selectPlaceholder": { "alias": "selectPlaceholder"; "required": false; "isSignal": true; }; "clearableOptionLabel": { "alias": "clearableOptionLabel"; "required": false; "isSignal": true; }; "subscriptSizing": { "alias": "subscriptSizing"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "optionChange": "optionChange"; }, never, never, true, never>;
1401
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SearchableSelectComponent<any>, "ngx-searchable-select", never, { "options": { "alias": "options"; "required": true; "isSignal": true; }; "optionLabel": { "alias": "optionLabel"; "required": false; "isSignal": true; }; "optionValue": { "alias": "optionValue"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "searchInputPlaceholder": { "alias": "searchInputPlaceholder"; "required": false; "isSignal": true; }; "selectLabel": { "alias": "selectLabel"; "required": false; "isSignal": true; }; "selectPlaceholder": { "alias": "selectPlaceholder"; "required": false; "isSignal": true; }; "clearableOptionLabel": { "alias": "clearableOptionLabel"; "required": false; "isSignal": true; }; "subscriptSizing": { "alias": "subscriptSizing"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "optionChange": "optionChange"; }, never, never, true, never>;
1062
1402
  }
1063
1403
 
1064
- declare class PaginatedSearchableSelectComponent<T, U extends PaginatedFilter<T>> implements OnDestroy {
1065
- readonly intl: NgxTablesIntl;
1066
- control: _angular_core.InputSignal<FormControl<any> | undefined>;
1404
+ declare class PaginatedSearchableSelectComponent<T, U extends PaginatedFilter<T>> implements ControlValueAccessor, AfterViewInit, OnDestroy {
1405
+ readonly texts: _angular_core.Signal<ngx_eiffage_material.NgxEiffageTexts>;
1067
1406
  endpoint: _angular_core.InputSignal<(filters: U) => Observable<PaginatedItems<T>>>;
1068
1407
  filters: _angular_core.InputSignal<WritableSignal<U>>;
1069
1408
  optionLabel: _angular_core.InputSignal<(option: T) => string>;
@@ -1083,7 +1422,23 @@ declare class PaginatedSearchableSelectComponent<T, U extends PaginatedFilter<T>
1083
1422
  protected innerControl: WritableSignal<FormControl<any>>;
1084
1423
  private queryTimeout;
1085
1424
  private readonly debounceTime;
1425
+ /** Control del formulario si se usa con formControlName / [formControl] / ngModel (se registra como su value accessor). */
1426
+ private readonly _ngControl;
1427
+ private readonly _parentForm;
1428
+ private readonly _cvaDisabled;
1429
+ private _onChange;
1430
+ private _onTouched;
1431
+ /** Asterisco de obligatorio: lo decide el control del formulario. */
1432
+ protected readonly isRequired: WritableSignal<boolean>;
1433
+ /** Error con el estado del control del formulario (inválido y tocado, o formulario enviado). */
1434
+ protected readonly errorStateMatcher: ErrorStateMatcher;
1435
+ constructor();
1086
1436
  selectedEffect: _angular_core.EffectRef;
1437
+ ngAfterViewInit(): void;
1438
+ writeValue(value: T | T[] | undefined | null): void;
1439
+ registerOnChange(fn: (value: T | T[] | undefined) => void): void;
1440
+ registerOnTouched(fn: () => void): void;
1441
+ setDisabledState(isDisabled: boolean): void;
1087
1442
  dataResource: _angular_core.ResourceRef<PaginatedItems<T>>;
1088
1443
  protected options: WritableSignal<T[]>;
1089
1444
  setOptions: _angular_core.EffectRef;
@@ -1097,16 +1452,42 @@ declare class PaginatedSearchableSelectComponent<T, U extends PaginatedFilter<T>
1097
1452
  protected optionsSelectedForView(): T[];
1098
1453
  protected onMoreClick(): void;
1099
1454
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<PaginatedSearchableSelectComponent<any, any>, never>;
1100
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<PaginatedSearchableSelectComponent<any, any>, "ngx-paginated-searchable-select", never, { "control": { "alias": "control"; "required": false; "isSignal": true; }; "endpoint": { "alias": "endpoint"; "required": true; "isSignal": true; }; "filters": { "alias": "filters"; "required": false; "isSignal": true; }; "optionLabel": { "alias": "optionLabel"; "required": false; "isSignal": true; }; "compareWith": { "alias": "compareWith"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "searchInputPlaceholder": { "alias": "searchInputPlaceholder"; "required": false; "isSignal": true; }; "selectLabel": { "alias": "selectLabel"; "required": false; "isSignal": true; }; "selectPlaceholder": { "alias": "selectPlaceholder"; "required": false; "isSignal": true; }; "clearableOptionLabel": { "alias": "clearableOptionLabel"; "required": false; "isSignal": true; }; "subscriptSizing": { "alias": "subscriptSizing"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "optionChange": "optionChange"; }, never, never, true, never>;
1455
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<PaginatedSearchableSelectComponent<any, any>, "ngx-paginated-searchable-select", never, { "endpoint": { "alias": "endpoint"; "required": true; "isSignal": true; }; "filters": { "alias": "filters"; "required": false; "isSignal": true; }; "optionLabel": { "alias": "optionLabel"; "required": false; "isSignal": true; }; "compareWith": { "alias": "compareWith"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "searchInputPlaceholder": { "alias": "searchInputPlaceholder"; "required": false; "isSignal": true; }; "selectLabel": { "alias": "selectLabel"; "required": false; "isSignal": true; }; "selectPlaceholder": { "alias": "selectPlaceholder"; "required": false; "isSignal": true; }; "clearableOptionLabel": { "alias": "clearableOptionLabel"; "required": false; "isSignal": true; }; "subscriptSizing": { "alias": "subscriptSizing"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "optionChange": "optionChange"; }, never, never, true, never>;
1101
1456
  }
1102
1457
 
1103
1458
  declare class NgxAlert {
1104
- type: _angular_core.InputSignal<AlertType>;
1105
- title: _angular_core.InputSignal<string | undefined>;
1106
- message: _angular_core.InputSignal<string | undefined>;
1107
- iconName: _angular_core.Signal<"info" | "warning" | "error" | "check_circle">;
1459
+ private readonly _texts;
1460
+ /** Gravedad del mensaje: define color, icono por defecto y cómo se anuncia. */
1461
+ readonly type: _angular_core.InputSignal<AlertType>;
1462
+ /** Título en negrita sobre el mensaje. */
1463
+ readonly title: _angular_core.InputSignal<string | undefined>;
1464
+ /** Mensaje en texto plano. Para contenido con formato o enlaces, proyéctalo como contenido. */
1465
+ readonly message: _angular_core.InputSignal<string | undefined>;
1466
+ /** Estilo visual: standard (fondo + franja lateral), soft (solo fondo) u outlined (solo borde). */
1467
+ readonly appearance: _angular_core.InputSignal<AlertAppearance>;
1468
+ /** Icono de Material Symbols. Por defecto, el del tipo (info, check_circle, warning, error). */
1469
+ readonly icon: _angular_core.InputSignal<string | undefined>;
1470
+ /** Oculta el icono. */
1471
+ readonly hideIcon: _angular_core.InputSignalWithTransform<boolean, unknown>;
1472
+ /** Muestra un botón para cerrar el aviso. Al pulsarlo se oculta y emite `dismissed`. */
1473
+ readonly dismissible: _angular_core.InputSignalWithTransform<boolean, unknown>;
1474
+ /** Etiqueta accesible del botón de cerrar. Por defecto, el texto `alert.dismiss` de la librería. */
1475
+ readonly dismissLabel: _angular_core.InputSignal<string | undefined>;
1476
+ /**
1477
+ * Cómo lo anuncia el lector de pantalla. assertive interrumpe (role="alert"), polite espera
1478
+ * a que termine (role="status") y off no lo anuncia. Por defecto: assertive para error y
1479
+ * warning, polite para info y success.
1480
+ */
1481
+ readonly politeness: _angular_core.InputSignal<"assertive" | "polite" | "off" | undefined>;
1482
+ /** Se emite cuando el usuario cierra el aviso con el botón de cerrar. */
1483
+ readonly dismissed: _angular_core.OutputEmitterRef<void>;
1484
+ protected readonly isDismissed: _angular_core.WritableSignal<boolean>;
1485
+ protected readonly resolvedIcon: _angular_core.Signal<string>;
1486
+ protected readonly resolvedDismissLabel: _angular_core.Signal<string>;
1487
+ protected readonly resolvedRole: _angular_core.Signal<"alert" | "status" | null>;
1488
+ protected dismiss(): void;
1108
1489
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxAlert, never>;
1109
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxAlert, "ngx-alert", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "message": { "alias": "message"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1490
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxAlert, "ngx-alert", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "message": { "alias": "message"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "hideIcon": { "alias": "hideIcon"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "dismissLabel": { "alias": "dismissLabel"; "required": false; "isSignal": true; }; "politeness": { "alias": "politeness"; "required": false; "isSignal": true; }; }, { "dismissed": "dismissed"; }, never, ["*", "[alertActions]"], true, never>;
1110
1491
  }
1111
1492
 
1112
1493
  declare class NgxPaginatedSelect<T, U extends PaginatedFilter<T>> implements ControlValueAccessor {
@@ -1117,7 +1498,7 @@ declare class NgxPaginatedSelect<T, U extends PaginatedFilter<T>> implements Con
1117
1498
  private readonly _parentFormGroup;
1118
1499
  private readonly _parentForm;
1119
1500
  private readonly _changeDetectorRef;
1120
- readonly intl: NgxTablesIntl;
1501
+ readonly texts: _angular_core.Signal<ngx_eiffage_material.NgxEiffageTexts>;
1121
1502
  /** Label that floats on the form field */
1122
1503
  readonly label: _angular_core.InputSignal<string>;
1123
1504
  /** Title shown in the bottom sheet header */
@@ -1144,9 +1525,9 @@ declare class NgxPaginatedSelect<T, U extends PaginatedFilter<T>> implements Con
1144
1525
  readonly displayMode: _angular_core.InputSignal<"text" | "chips">;
1145
1526
  /** Whether to show the search input inside the bottom sheet */
1146
1527
  readonly showSearch: _angular_core.InputSignalWithTransform<boolean, unknown>;
1147
- /** Placeholder for the search input inside the bottom sheet (defaults to intl) */
1528
+ /** Placeholder for the search input inside the bottom sheet (defaults to the library texts) */
1148
1529
  readonly searchPlaceholder: _angular_core.InputSignal<string | undefined>;
1149
- /** Message when no results are found (defaults to intl) */
1530
+ /** Message when no results are found (defaults to the library texts) */
1150
1531
  readonly noResultsMessage: _angular_core.InputSignal<string | undefined>;
1151
1532
  /** Label for the confirm button (multiple mode, defaults to intl) */
1152
1533
  readonly confirmLabel: _angular_core.InputSignal<string | undefined>;
@@ -1173,7 +1554,7 @@ declare class NgxPaginatedSelect<T, U extends PaginatedFilter<T>> implements Con
1173
1554
  readonly chipsDirection: _angular_core.InputSignal<"row" | "column">;
1174
1555
  /** Whether to show a "Select all" toggle in the bottom sheet (multiple mode) */
1175
1556
  readonly showSelectAll: _angular_core.InputSignalWithTransform<boolean, unknown>;
1176
- /** Label for the select all toggle (defaults to intl) */
1557
+ /** Label for the select all toggle (defaults to the library texts) */
1177
1558
  readonly selectAllLabel: _angular_core.InputSignal<string | undefined>;
1178
1559
  /** Emits the full T object (single) or T[] (multiple) when selection changes */
1179
1560
  readonly valueChange: _angular_core.OutputEmitterRef<Partial<T> | Partial<T>[] | undefined>;
@@ -1264,7 +1645,7 @@ declare class NgxPaginatedSelectBottomSheetComponent<T, U extends PaginatedFilte
1264
1645
  private readonly _ref;
1265
1646
  private readonly _destroy;
1266
1647
  readonly data: NgxPaginatedSelectBottomSheetData<T, U>;
1267
- readonly intl: NgxTablesIntl;
1648
+ readonly texts: _angular_core.Signal<ngx_eiffage_material.NgxEiffageTexts>;
1268
1649
  /** Raw input value — updates on every keystroke, does NOT trigger the resource */
1269
1650
  readonly query: WritableSignal<string | undefined>;
1270
1651
  /** Holds Partial<T> initially; items get upgraded to full T when toggled from the list */
@@ -1355,36 +1736,46 @@ declare class NgxPaginatedSelectBottomSheetComponent<T, U extends PaginatedFilte
1355
1736
  }
1356
1737
 
1357
1738
  declare class NgxSkeleton {
1358
- /** Shape variant of the skeleton: text (horizontal bars), circle, rect, or rounded rect. */
1359
- variant: _angular_core.InputSignal<SkeletonVariant>;
1360
- /** Width of the skeleton element. Accepts any valid CSS value (px, %, rem, etc.). */
1361
- width: _angular_core.InputSignal<string>;
1362
- /** Height of the skeleton element. Accepts any valid CSS value (px, %, rem, etc.). */
1363
- height: _angular_core.InputSignal<string>;
1364
- /** Number of lines to render. Only applies when variant is 'text'. */
1365
- lines: _angular_core.InputSignal<number>;
1366
- /** Vertical spacing between text lines. Accepts any valid CSS value. */
1367
- lineSpacing: _angular_core.InputSignal<string>;
1368
- /** Width of the last text line for a realistic paragraph effect. Accepts any valid CSS value. */
1369
- lastLineWidth: _angular_core.InputSignal<string>;
1370
- /** Type of loading animation: shimmer (sliding highlight), pulse (opacity), or none. */
1371
- animation: _angular_core.InputSignal<SkeletonAnimation>;
1372
- /** Duration of one full animation cycle. Accepts any valid CSS time value. */
1373
- animationDuration: _angular_core.InputSignal<string>;
1374
- /** Overrides the default border-radius derived from the variant. */
1375
- borderRadius: _angular_core.InputSignal<string | null>;
1376
- /** Accessible label read by screen readers. */
1377
- ariaLabel: _angular_core.InputSignal<string>;
1378
- /** Whether the component should render multiple stacked lines. */
1379
- protected isMultiLine: _angular_core.Signal<boolean>;
1380
- /** Index array used to iterate over text lines in the template. */
1381
- protected lineIndices: _angular_core.Signal<number[]>;
1382
- /** Resolved border-radius based on variant with optional override. */
1383
- protected computedBorderRadius: _angular_core.Signal<string>;
1384
- /** For circle variant, width equals height to ensure a perfect circle. */
1385
- protected computedWidth: _angular_core.Signal<string>;
1739
+ private readonly _texts;
1740
+ /** Forma: text (barras de texto), circle, rect o rounded (rectángulo redondeado). */
1741
+ readonly variant: _angular_core.InputSignal<SkeletonVariant>;
1742
+ /** Ancho. Cualquier valor CSS; un número se interpreta como px. Se ignora en `circle`. */
1743
+ readonly width: _angular_core.InputSignalWithTransform<string, string | number>;
1744
+ /** Alto. Cualquier valor CSS; un número se interpreta como px. En `circle` también es el diámetro. */
1745
+ readonly height: _angular_core.InputSignalWithTransform<string, string | number>;
1746
+ /** Número de líneas. Solo aplica con `variant="text"`. */
1747
+ readonly lines: _angular_core.InputSignalWithTransform<number, unknown>;
1748
+ /** Separación vertical entre líneas de texto. */
1749
+ readonly lineSpacing: _angular_core.InputSignalWithTransform<string, string | number>;
1750
+ /** Ancho de la última línea, para que el párrafo parezca real. Solo con varias líneas. */
1751
+ readonly lastLineWidth: _angular_core.InputSignalWithTransform<string, string | number>;
1752
+ /** Animación: shimmer (brillo que se desliza), pulse (opacidad) o none. */
1753
+ readonly animation: _angular_core.InputSignal<SkeletonAnimation>;
1754
+ /**
1755
+ * Duración de un ciclo de animación (cualquier tiempo CSS). Por defecto 1.5s, o el valor
1756
+ * de la variable CSS `--ngx-skeleton-duration` si el consumidor la define.
1757
+ */
1758
+ readonly animationDuration: _angular_core.InputSignal<string | undefined>;
1759
+ /** Sustituye el border-radius que corresponde a la variante. */
1760
+ readonly borderRadius: _angular_core.InputSignalWithTransform<string | null, string | number | null | undefined>;
1761
+ /** Etiqueta accesible. Por defecto, el texto `skeleton.loading` de la librería. */
1762
+ readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
1763
+ /**
1764
+ * Oculta el skeleton a lectores de pantalla (sin role ni etiqueta). Úsalo cuando varios
1765
+ * skeletons forman una misma pieza: márcalos todos como decorativos y anuncia la carga
1766
+ * una sola vez en el contenedor (p. ej. con `aria-busy` o un skeleton sin `decorative`).
1767
+ */
1768
+ readonly decorative: _angular_core.InputSignalWithTransform<boolean, unknown>;
1769
+ protected readonly resolvedAriaLabel: _angular_core.Signal<string>;
1770
+ /** Una entrada por línea a pintar (siempre al menos una). */
1771
+ protected readonly lineIndices: _angular_core.Signal<number[]>;
1772
+ protected readonly isMultiLine: _angular_core.Signal<boolean>;
1773
+ /** border-radius de la variante, salvo que se indique `borderRadius`. */
1774
+ protected readonly computedBorderRadius: _angular_core.Signal<string>;
1775
+ /** En `circle` el ancho es el alto, para que sea un círculo perfecto. */
1776
+ protected readonly computedWidth: _angular_core.Signal<string>;
1386
1777
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxSkeleton, never>;
1387
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxSkeleton, "ngx-skeleton", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "lines": { "alias": "lines"; "required": false; "isSignal": true; }; "lineSpacing": { "alias": "lineSpacing"; "required": false; "isSignal": true; }; "lastLineWidth": { "alias": "lastLineWidth"; "required": false; "isSignal": true; }; "animation": { "alias": "animation"; "required": false; "isSignal": true; }; "animationDuration": { "alias": "animationDuration"; "required": false; "isSignal": true; }; "borderRadius": { "alias": "borderRadius"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1778
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxSkeleton, "ngx-skeleton", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "lines": { "alias": "lines"; "required": false; "isSignal": true; }; "lineSpacing": { "alias": "lineSpacing"; "required": false; "isSignal": true; }; "lastLineWidth": { "alias": "lastLineWidth"; "required": false; "isSignal": true; }; "animation": { "alias": "animation"; "required": false; "isSignal": true; }; "animationDuration": { "alias": "animationDuration"; "required": false; "isSignal": true; }; "borderRadius": { "alias": "borderRadius"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "decorative": { "alias": "decorative"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1388
1779
  }
1389
1780
 
1390
1781
  declare class NgxFileInput implements ControlValueAccessor {
@@ -1401,8 +1792,10 @@ declare class NgxFileInput implements ControlValueAccessor {
1401
1792
  readonly maxFiles: _angular_core.InputSignal<number | null>;
1402
1793
  /** Disables the component. */
1403
1794
  readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
1404
- /** Label text shown inside the drop zone. */
1405
- readonly label: _angular_core.InputSignal<string>;
1795
+ /** Label text shown inside the drop zone. Por defecto, el texto `fileInput.dropLabel` de la librería. */
1796
+ readonly label: _angular_core.InputSignal<string | undefined>;
1797
+ protected readonly texts: _angular_core.Signal<ngx_eiffage_material.NgxEiffageTexts>;
1798
+ protected readonly resolvedLabel: _angular_core.Signal<string>;
1406
1799
  /** Secondary hint text (formats, sizes…). */
1407
1800
  readonly hint: _angular_core.InputSignal<string | null>;
1408
1801
  /** Show the file preview list below the drop zone. */
@@ -1464,123 +1857,75 @@ declare class NgxFileInput implements ControlValueAccessor {
1464
1857
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxFileInput, "ngx-file-input", never, { "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "maxSize": { "alias": "maxSize"; "required": false; "isSignal": true; }; "maxFiles": { "alias": "maxFiles"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "showPreview": { "alias": "showPreview"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, { "filesSelected": "filesSelected"; "fileRemoved": "fileRemoved"; "validationError": "validationError"; }, never, never, true, never>;
1465
1858
  }
1466
1859
 
1467
- declare class NgxDialogService {
1468
- private readonly _dialog;
1860
+ /** Opciones comunes a todos los diálogos. */
1861
+ interface DialogHeaderOptions {
1862
+ title: string;
1863
+ subtitle?: string;
1864
+ icon?: string;
1865
+ iconColor?: string;
1866
+ cancelText?: string;
1867
+ confirmText?: string;
1868
+ showCancel?: boolean;
1869
+ showConfirm?: boolean;
1870
+ /** El botón de confirmar se pinta en el color de error (eliminar, descartar…). */
1871
+ destructive?: boolean;
1469
1872
  /**
1470
- *
1471
- * @param config
1472
- * @param dialogConfig
1473
- * @returns Observable<DialogResult>
1474
- *
1475
- * Opens a text dialog with the provided configuration.
1873
+ * Muestra la X de cerrar en el encabezado; cerrar con ella devuelve undefined, igual que Esc.
1874
+ * Por defecto true, salvo si dialogConfig.disableClose es true.
1476
1875
  */
1477
- openText(config: {
1478
- title: string;
1876
+ showClose?: boolean;
1877
+ }
1878
+ /**
1879
+ * Abre diálogos de Material con una estructura común: título con icono opcional, subtítulo,
1880
+ * cuerpo (texto, HTML, componente o plantilla) y botones de cancelar/confirmar.
1881
+ *
1882
+ * Todos devuelven un Observable que emite al cerrarse y completa:
1883
+ * - `true` (o el resultado fijado por el contenido) si se confirma,
1884
+ * - `false` si se cancela,
1885
+ * - `undefined` si se cierra sin pulsar ningún botón (Esc o clic fuera).
1886
+ */
1887
+ declare class NgxDialogService {
1888
+ private readonly _dialog;
1889
+ private readonly _texts;
1890
+ /** Diálogo con un texto. Base de `confirm()` e `info()`. */
1891
+ openText(config: DialogHeaderOptions & {
1479
1892
  content: string;
1480
- subtitle?: string;
1481
- cancelText?: string;
1482
- confirmText?: string;
1483
- icon?: string;
1484
- iconColor?: string;
1485
- showCancel?: boolean;
1486
- showConfirm?: boolean;
1487
1893
  }, dialogConfig?: MatDialogConfig): Observable<boolean | undefined>;
1488
- /**
1489
- *
1490
- * @param title
1491
- * @param message
1492
- * @param cancelText
1493
- * @param confirmText
1494
- * @param dialogConfig
1495
- * @returns Observable<DialogResult>
1496
- *
1497
- * Opens a confirmation dialog with cancel and confirm buttons.
1498
- */
1499
- confirm(config: {
1500
- title: string;
1894
+ /** Pregunta de confirmación con botones de cancelar y confirmar. */
1895
+ confirm(config: Omit<DialogHeaderOptions, 'showCancel' | 'showConfirm'> & {
1501
1896
  message: string;
1502
- subtitle?: string;
1503
- icon?: string;
1504
- iconColor?: string;
1505
- cancelText?: string;
1506
- confirmText?: string;
1507
1897
  }, dialogConfig?: MatDialogConfig): Observable<boolean | undefined>;
1508
- /**
1509
- *
1510
- * @param title
1511
- * @param message
1512
- * @param confirmText
1513
- * @param dialogConfig
1514
- * @returns Observable<DialogResult>
1515
- *
1516
- * Opens an informational dialog with a single confirm button.
1517
- */
1518
- info(config: {
1519
- title: string;
1898
+ /** Aviso informativo con un único botón. */
1899
+ info(config: Omit<DialogHeaderOptions, 'showCancel' | 'showConfirm' | 'cancelText'> & {
1520
1900
  message: string;
1521
- subtitle?: string;
1522
- icon?: string;
1523
- iconColor?: string;
1524
- confirmText?: string;
1525
1901
  }, dialogConfig?: MatDialogConfig): Observable<boolean | undefined>;
1526
1902
  /**
1527
- *
1528
- * @param config
1529
- * @param dialogConfig
1530
- * @returns Observable<DialogResult>
1531
- *
1532
- * Opens an HTML dialog with the provided configuration.
1903
+ * Diálogo con HTML. Angular sanea el HTML: se quitan scripts, estilos en línea y atributos
1904
+ * peligrosos. Para contenido con interacción, usa `component()` o `template()`.
1533
1905
  */
1534
- html(config: {
1535
- title: string;
1536
- subtitle?: string;
1537
- icon?: string;
1538
- iconColor?: string;
1906
+ html(config: DialogHeaderOptions & {
1539
1907
  html: string;
1540
- cancelText?: string;
1541
- confirmText?: string;
1542
- showCancel?: boolean;
1543
- showConfirm?: boolean;
1544
1908
  }, dialogConfig?: MatDialogConfig): Observable<boolean | undefined>;
1545
1909
  /**
1546
- *
1547
- * @param config
1548
- * @return Observable<DialogResult>
1549
- *
1550
- * Opens a component dialog with the provided configuration.
1910
+ * Diálogo con un componente propio. El componente recibe `componentData` por su input `data`
1911
+ * y puede inyectar `NgxDialogContext<R>` para devolver un resultado (`result`), cerrar
1912
+ * (`close()`) o deshabilitar el botón de confirmar (`confirmDisabled`).
1551
1913
  */
1552
- component<T = any>(config: {
1553
- title: string;
1554
- subtitle?: string;
1555
- icon?: string;
1556
- iconColor?: string;
1914
+ component<T = any, R = boolean>(config: DialogHeaderOptions & {
1557
1915
  component: Type<any>;
1558
1916
  componentData?: T;
1559
- cancelText?: string;
1560
- confirmText?: string;
1561
- showCancel?: boolean;
1562
- showConfirm?: boolean;
1563
- }, dialogConfig?: MatDialogConfig): Observable<boolean | undefined>;
1917
+ }, dialogConfig?: MatDialogConfig): Observable<R | boolean | undefined>;
1564
1918
  /**
1565
- *
1566
- * @param config
1567
- * @param dialogConfig
1568
- * @returns Observable<DialogResult>
1569
- *
1570
- * Opens a template dialog with the provided configuration.
1919
+ * Diálogo con una plantilla. La plantilla recibe `templateData` como `$implicit` y el contexto
1920
+ * del diálogo como `dialog` (`let-data let-dialog="dialog"`).
1571
1921
  */
1572
- template<T = any>(config: {
1573
- title: string;
1574
- subtitle?: string;
1575
- icon?: string;
1576
- iconColor?: string;
1577
- template: TemplateRef<T>;
1922
+ template<T = any, R = boolean>(config: DialogHeaderOptions & {
1923
+ template: TemplateRef<NgxDialogTemplateContext<T, R>> | TemplateRef<{
1924
+ $implicit: T;
1925
+ }> | TemplateRef<T>;
1578
1926
  templateData?: T;
1579
- cancelText?: string;
1580
- confirmText?: string;
1581
- showCancel?: boolean;
1582
- showConfirm?: boolean;
1583
- }, dialogConfig?: MatDialogConfig): Observable<boolean | undefined>;
1927
+ }, dialogConfig?: MatDialogConfig): Observable<R | boolean | undefined>;
1928
+ private _open;
1584
1929
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxDialogService, never>;
1585
1930
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<NgxDialogService>;
1586
1931
  }
@@ -1636,5 +1981,5 @@ declare class DynamicHostDirective<T> {
1636
1981
  declare const includeNoSensible: (cadena: string, query: string) => boolean;
1637
1982
  declare const base64ToUtf8: (str: string) => string;
1638
1983
 
1639
- export { AdvancedFilterService, AdvancedFilterUtils, ColumnConfigService, DatosPantallaService, DialogBodyType, DynamicHostDirective, NgxAlert, NgxBasicSelect, NgxBasicTable, NgxConfirmDialogComponent, NgxDialog, NgxDialogService, NgxFileInput, NgxInputFile, NgxLoadingButton, NgxPaginatedSelect, NgxPaginatedSelectBottomSheetComponent, NgxPaginatedTable, NgxSkeleton, NgxTablesIntl, OPERATOR_BY_FILTER_TYPE, PaginatedSearchableSelectComponent, SearchableSelectComponent, USER_ID_FACTORY, base64ToUtf8, includeNoSensible, isFilterOption };
1640
- export type { AdvancedFilter, AlertType, BasicFilter, BasicSelectConfig, BasicTableColumn, BasicTableConfig, ColumnConfig, ColumnPipe, ColumnValue, ConfigureTableColumnData, ConfirmDialogData, DeleteConfirm, DialogBodyConfig, DialogConfig, DynamicFilter, FilterConnector, FilterGroup, FilterOperator, FilterOption, FilterRule, FilterType, NgxFileError, NgxFileErrorCode, NgxFileInputVariant, NgxFileItem, NgxPaginatedSelectBottomSheetData, PaginatedFilter, PaginatedItems, PaginatedSelectConfig, PaginatedTableColumn, PaginatedTableConfig, Pantalla, RowActionClickEvent, RowActionIconColor, RowSelectionAction, SelectionActionEvent, SendType, SkeletonAnimation, SkeletonVariant, SortBy, SortType, TableBasicAction, TableRowAction, TipoPantalla };
1984
+ export { AdvancedFilterService, AdvancedFilterUtils, ColumnConfigService, DatosPantallaService, DialogBodyType, DynamicHostDirective, NGX_EIFFAGE_DEFAULT_TEXTS, NGX_EIFFAGE_TEXTS, NgxAlert, NgxBasicSelect, NgxBasicTable, NgxConfirmDialogComponent, NgxDialog, NgxDialogContext, NgxDialogService, NgxFileInput, NgxInputFile, NgxLoadingButton, NgxPaginatedSelect, NgxPaginatedSelectBottomSheetComponent, NgxPaginatedTable, NgxSkeleton, NgxTablesIntl, NgxTexts, OPERATOR_BY_FILTER_TYPE, PaginatedSearchableSelectComponent, SearchableSelectComponent, USER_ID_FACTORY, base64ToUtf8, includeNoSensible, isFilterOption, provideNgxEiffageTexts };
1985
+ export type { AdvancedFilter, AlertAppearance, AlertType, BasicFilter, BasicSelectConfig, BasicTableColumn, BasicTableConfig, ColumnConfig, ColumnPipe, ColumnValue, ConfigureTableColumnData, ConfirmDialogData, DeleteConfirm, DialogBodyConfig, DialogConfig, DynamicFilter, FilterConnector, FilterGroup, FilterOperator, FilterOption, FilterRule, FilterType, LoadingButtonAppearance, LoadingButtonColor, NgxDialogTemplateContext, NgxEiffageTexts, NgxEiffageTextsOverrides, NgxEiffageTextsSource, NgxFileError, NgxFileErrorCode, NgxFileInputVariant, NgxFileItem, NgxPaginatedSelectBottomSheetData, PaginatedFilter, PaginatedItems, PaginatedSelectConfig, PaginatedTableColumn, PaginatedTableConfig, Pantalla, RowActionClickEvent, RowActionIconColor, RowSelectionAction, SelectionActionEvent, SendType, SkeletonAnimation, SkeletonVariant, SortBy, SortType, TableBasicAction, TableRowAction, TipoPantalla };