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/fesm2022/ngx-eiffage-material.mjs +1188 -598
- package/fesm2022/ngx-eiffage-material.mjs.map +1 -1
- package/index.d.ts +576 -231
- package/package.json +6 -6
package/index.d.ts
CHANGED
|
@@ -1,83 +1,21 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
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>[],
|
|
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
|
|
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
|
-
|
|
802
|
-
|
|
803
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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, { "
|
|
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
|
|
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, { "
|
|
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
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
/**
|
|
1379
|
-
|
|
1380
|
-
/**
|
|
1381
|
-
|
|
1382
|
-
/**
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
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
|
-
|
|
1468
|
-
|
|
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
|
-
*
|
|
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
|
-
|
|
1478
|
-
|
|
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
|
-
*
|
|
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
|
-
*
|
|
1548
|
-
*
|
|
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
|
-
|
|
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
|
-
*
|
|
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
|
-
|
|
1574
|
-
|
|
1575
|
-
|
|
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
|
-
|
|
1580
|
-
|
|
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 };
|