ngx-eiffage-material 0.0.50 → 0.1.1
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 +742 -398
- package/fesm2022/ngx-eiffage-material.mjs.map +1 -1
- package/index.d.ts +506 -225
- package/package.json +11 -2
package/index.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { OnInit, ElementRef, WritableSignal, Type, TemplateRef, PipeTransform, InjectionToken, Signal, OnDestroy } from '@angular/core';
|
|
3
|
-
import { FormControl,
|
|
3
|
+
import { ControlValueAccessor, FormControl, FormBuilder, FormGroup, FormArray, AbstractControl } from '@angular/forms';
|
|
4
|
+
import { ErrorStateMatcher } from '@angular/material/core';
|
|
4
5
|
import { SubscriptSizing } from '@angular/material/form-field';
|
|
5
6
|
import { MatSelect, MatSelectChange } from '@angular/material/select';
|
|
6
|
-
import { MatDialogRef, MatDialogConfig } from '@angular/material/dialog';
|
|
7
7
|
import { Observable, Subject } from 'rxjs';
|
|
8
|
+
import * as ngx_eiffage_material from 'ngx-eiffage-material';
|
|
9
|
+
import { MatDialogRef, MatDialogConfig } from '@angular/material/dialog';
|
|
8
10
|
import { DateRange } from '@angular/material/datepicker';
|
|
9
11
|
import { MatMenuTrigger } from '@angular/material/menu';
|
|
10
12
|
import { PageEvent, MatPaginator } from '@angular/material/paginator';
|
|
@@ -13,7 +15,6 @@ import jsPDF from 'jspdf';
|
|
|
13
15
|
import moment from 'moment';
|
|
14
16
|
import { MatTableDataSource } from '@angular/material/table';
|
|
15
17
|
import { MatChipEvent } from '@angular/material/chips';
|
|
16
|
-
import { ErrorStateMatcher } from '@angular/material/core';
|
|
17
18
|
|
|
18
19
|
declare class NgxLoadingButton {
|
|
19
20
|
isLoading: _angular_core.InputSignal<boolean>;
|
|
@@ -28,13 +29,18 @@ declare class NgxLoadingButton {
|
|
|
28
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>;
|
|
29
30
|
}
|
|
30
31
|
|
|
31
|
-
declare class NgxInputFile implements OnInit {
|
|
32
|
+
declare class NgxInputFile implements ControlValueAccessor, OnInit {
|
|
32
33
|
private _cdr;
|
|
33
34
|
value: _angular_core.WritableSignal<File[]>;
|
|
34
35
|
onChangeCb?: (files: File[]) => void;
|
|
35
36
|
onTouchCb?: () => void;
|
|
36
37
|
label: _angular_core.InputSignal<string>;
|
|
37
|
-
|
|
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>;
|
|
38
44
|
disabled: _angular_core.InputSignal<boolean>;
|
|
39
45
|
placeholder: _angular_core.InputSignal<string>;
|
|
40
46
|
class: _angular_core.InputSignal<string>;
|
|
@@ -45,6 +51,10 @@ declare class NgxInputFile implements OnInit {
|
|
|
45
51
|
isDropping: _angular_core.WritableSignal<boolean>;
|
|
46
52
|
inputFileRef: _angular_core.Signal<ElementRef<any> | undefined>;
|
|
47
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>;
|
|
48
58
|
constructor();
|
|
49
59
|
private checkErrors;
|
|
50
60
|
controlEffect: _angular_core.EffectRef;
|
|
@@ -58,11 +68,14 @@ declare class NgxInputFile implements OnInit {
|
|
|
58
68
|
writeValue(files: File[] | undefined | null): void;
|
|
59
69
|
registerOnChange(fn: any): void;
|
|
60
70
|
registerOnTouched(fn: any): void;
|
|
71
|
+
setDisabledState(isDisabled: boolean): void;
|
|
61
72
|
onDeleteFileClick(file: File): void;
|
|
62
73
|
getAccept(): string;
|
|
63
74
|
bytesToMegaBytes(bytes: number): string;
|
|
75
|
+
private markAsTouched;
|
|
76
|
+
private markAsDirty;
|
|
64
77
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxInputFile, never>;
|
|
65
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxInputFile, "ngx-input-file", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "control": { "alias": "control"; "required":
|
|
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>;
|
|
66
79
|
}
|
|
67
80
|
|
|
68
81
|
interface BasicSelectConfig<T> {
|
|
@@ -89,12 +102,18 @@ interface PaginatedSelectConfig<T> {
|
|
|
89
102
|
subtitle?: (item: T) => string;
|
|
90
103
|
/** Whether an individual option row is disabled */
|
|
91
104
|
disabled?: (item: T) => boolean;
|
|
105
|
+
/**
|
|
106
|
+
* URL of an image shown in the circular avatar (e.g. a photo or logo).
|
|
107
|
+
* Takes priority over `avatarText` and `avatarIcon`. If the image fails to
|
|
108
|
+
* load, the component falls back to `avatarText`/`avatarIcon`/initials.
|
|
109
|
+
*/
|
|
110
|
+
avatarImage?: (item: T) => string | null | undefined;
|
|
92
111
|
/**
|
|
93
112
|
* Short text for the circular avatar badge (e.g. initials).
|
|
94
|
-
* Takes priority over `avatarIcon`.
|
|
113
|
+
* Used when `avatarImage` is not provided. Takes priority over `avatarIcon`.
|
|
95
114
|
*/
|
|
96
115
|
avatarText?: (item: T) => string;
|
|
97
|
-
/** Material icon name shown as avatar when `avatarText`
|
|
116
|
+
/** Material icon name shown as avatar when `avatarImage`/`avatarText` are not provided */
|
|
98
117
|
avatarIcon?: string;
|
|
99
118
|
}
|
|
100
119
|
|
|
@@ -133,6 +152,8 @@ interface PaginatedTableConfig<T> {
|
|
|
133
152
|
defaultStickyColumn?: keyof T;
|
|
134
153
|
showActions?: () => boolean;
|
|
135
154
|
hideExportData?: () => boolean;
|
|
155
|
+
hideColumnConfig?: () => boolean;
|
|
156
|
+
hideFullScreen?: () => boolean;
|
|
136
157
|
}
|
|
137
158
|
interface PaginatedTableColumn<T> {
|
|
138
159
|
key: keyof T;
|
|
@@ -205,6 +226,14 @@ interface SortBy {
|
|
|
205
226
|
direction: SortDirection;
|
|
206
227
|
}
|
|
207
228
|
|
|
229
|
+
/**
|
|
230
|
+
* Signal con el identificador del usuario actual. Se usa para aislar por usuario
|
|
231
|
+
* la configuracion de columnas y los filtros avanzados guardados en localStorage.
|
|
232
|
+
*
|
|
233
|
+
* Si la aplicacion no lo provee, el valor por defecto es `undefined`, lo que
|
|
234
|
+
* desactiva la persistencia: las tablas siguen funcionando, pero no recuerdan
|
|
235
|
+
* la configuracion entre sesiones.
|
|
236
|
+
*/
|
|
208
237
|
declare const USER_ID_FACTORY: InjectionToken<Signal<string | null | undefined>>;
|
|
209
238
|
|
|
210
239
|
type FilterConnector = 'AND' | 'OR';
|
|
@@ -226,178 +255,12 @@ interface FilterRule<T> {
|
|
|
226
255
|
}
|
|
227
256
|
declare const OPERATOR_BY_FILTER_TYPE: Record<FilterType, FilterOperator[]>;
|
|
228
257
|
|
|
229
|
-
interface
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
id: string;
|
|
236
|
-
rows: T[];
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
interface ConfirmDialogData<T = any> {
|
|
240
|
-
title: string;
|
|
241
|
-
body?: string;
|
|
242
|
-
template?: TemplateRef<{
|
|
243
|
-
$implicit: T;
|
|
244
|
-
}>;
|
|
245
|
-
row?: T;
|
|
246
|
-
denyButtonLabel?: string;
|
|
247
|
-
confirmButtonLabel?: string;
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
interface BasicFilter<T> {
|
|
251
|
-
query?: string;
|
|
252
|
-
sortBy?: SortBy;
|
|
253
|
-
columnsFiltersValue?: Partial<Record<keyof T, ColumnValue>>;
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
interface BasicTableConfig<T> {
|
|
257
|
-
tableId: string;
|
|
258
|
-
primaryKey: keyof T | Array<keyof T>;
|
|
259
|
-
title: () => string;
|
|
260
|
-
columns: BasicTableColumn<T>[];
|
|
261
|
-
queryFilterPlaceholder?: string;
|
|
262
|
-
create?: TableBasicAction<T>;
|
|
263
|
-
update?: TableBasicAction<T>;
|
|
264
|
-
clickOnRowForUpdate?: boolean;
|
|
265
|
-
delete?: TableBasicAction<T>;
|
|
266
|
-
deleteConfirm?: DeleteConfirm<T>;
|
|
267
|
-
rowActions?: TableRowAction<T>[];
|
|
268
|
-
expandableDetail?: boolean;
|
|
269
|
-
expandableDetailTemplateRef?: () => TemplateRef<{
|
|
270
|
-
$implicit: T;
|
|
271
|
-
}>;
|
|
272
|
-
enableRowSelection?: boolean;
|
|
273
|
-
rowSelectionAction?: RowSelectionAction<T>[];
|
|
274
|
-
exportFileName?: () => string;
|
|
275
|
-
mapperForExportData?: (row: T) => Partial<Record<keyof T, any>>;
|
|
276
|
-
pdfConfig?: jsPDF;
|
|
277
|
-
maxHeight?: string;
|
|
278
|
-
defaultStickyColumn?: keyof T;
|
|
279
|
-
showActions?: () => boolean;
|
|
280
|
-
hideExportData?: () => boolean;
|
|
281
|
-
}
|
|
282
|
-
interface BasicTableColumn<T> {
|
|
283
|
-
key: keyof T;
|
|
284
|
-
label: string;
|
|
285
|
-
isFilterableByInput?: boolean;
|
|
286
|
-
sortType?: SortType;
|
|
287
|
-
sortByKey?: (row: T) => string | undefined;
|
|
288
|
-
filterType?: FilterType;
|
|
289
|
-
filterOptions?: FilterOption[];
|
|
290
|
-
endpointForPaginatedFilterOptions?: (filters: PaginatedFilter<FilterOption>) => Observable<PaginatedItems<FilterOption>>;
|
|
291
|
-
filtersForEndpointPaginatedFilterOptions?: WritableSignal<PaginatedFilter<FilterOption>>;
|
|
292
|
-
filterByKey?: (row: T) => string | undefined;
|
|
293
|
-
component?: Type<any>;
|
|
294
|
-
templateRef?: () => TemplateRef<{
|
|
295
|
-
$implicit: T;
|
|
296
|
-
}>;
|
|
297
|
-
valueGetter?: (row: T) => string;
|
|
298
|
-
pipes?: ColumnPipe | ColumnPipe[];
|
|
299
|
-
showTotalPerPage?: boolean;
|
|
300
|
-
showTotalGeneral?: boolean;
|
|
301
|
-
totalFooterFormatter?: (total: number) => string;
|
|
302
|
-
style?: string;
|
|
303
|
-
footerStyle?: string;
|
|
304
|
-
}
|
|
305
|
-
type SortType = 'string' | 'number' | 'date';
|
|
306
|
-
|
|
307
|
-
type AlertType = 'info' | 'warning' | 'error' | 'success';
|
|
308
|
-
|
|
309
|
-
type SkeletonVariant = 'text' | 'circle' | 'rect' | 'rounded';
|
|
310
|
-
type SkeletonAnimation = 'shimmer' | 'pulse' | 'none';
|
|
311
|
-
|
|
312
|
-
/** Visual variant of the file input component. */
|
|
313
|
-
type NgxFileInputVariant = 'default' | 'compact' | 'button';
|
|
314
|
-
/** Validation error codes emitted by the file input. */
|
|
315
|
-
type NgxFileErrorCode = 'SIZE_EXCEEDED' | 'TYPE_NOT_ALLOWED' | 'MAX_FILES_EXCEEDED';
|
|
316
|
-
/** Represents a file selected by the user, with metadata and optional preview. */
|
|
317
|
-
interface NgxFileItem {
|
|
318
|
-
/** The native File object. */
|
|
319
|
-
file: File;
|
|
320
|
-
/** Unique identifier generated internally. */
|
|
321
|
-
id: string;
|
|
322
|
-
/** File name. */
|
|
323
|
-
name: string;
|
|
324
|
-
/** File size in bytes. */
|
|
325
|
-
size: number;
|
|
326
|
-
/** MIME type of the file. */
|
|
327
|
-
type: string;
|
|
328
|
-
/** Data URL for image previews. */
|
|
329
|
-
preview?: string;
|
|
330
|
-
/** Whether the file passed validation. */
|
|
331
|
-
status: 'valid' | 'error';
|
|
332
|
-
/** Validation error message, if any. */
|
|
333
|
-
error?: string;
|
|
334
|
-
}
|
|
335
|
-
/** Describes a validation error for a specific file. */
|
|
336
|
-
interface NgxFileError {
|
|
337
|
-
/** The native File that failed validation. */
|
|
338
|
-
file: File;
|
|
339
|
-
/** Machine-readable error code. */
|
|
340
|
-
code: NgxFileErrorCode;
|
|
341
|
-
/** Human-readable error message. */
|
|
342
|
-
message: string;
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
declare class NgxBasicSelect<T> {
|
|
346
|
-
readonly label: _angular_core.InputSignal<string>;
|
|
347
|
-
readonly options: _angular_core.InputSignal<T[]>;
|
|
348
|
-
readonly basicSelectConfig: _angular_core.InputSignal<BasicSelectConfig<T>>;
|
|
349
|
-
readonly control: _angular_core.InputSignal<FormControl<any>>;
|
|
350
|
-
readonly isLoading: _angular_core.InputSignal<boolean>;
|
|
351
|
-
readonly placeholder: _angular_core.InputSignal<string>;
|
|
352
|
-
readonly subscriptSizing: _angular_core.InputSignal<SubscriptSizing>;
|
|
353
|
-
readonly appearance: _angular_core.InputSignal<"fill" | "outline">;
|
|
354
|
-
readonly multiple: _angular_core.InputSignal<boolean>;
|
|
355
|
-
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
356
|
-
readonly clearable: _angular_core.InputSignal<boolean>;
|
|
357
|
-
readonly error: _angular_core.InputSignal<string>;
|
|
358
|
-
readonly class: _angular_core.InputSignal<string>;
|
|
359
|
-
selectionChange: _angular_core.OutputEmitterRef<any>;
|
|
360
|
-
readonly matSelect: _angular_core.Signal<MatSelect>;
|
|
361
|
-
readonly searchInput: _angular_core.Signal<ElementRef<any> | undefined>;
|
|
362
|
-
constructor();
|
|
363
|
-
onOpenedChange(opened: boolean): void;
|
|
364
|
-
includeInFilter(option: T, query: string): boolean;
|
|
365
|
-
onClearClick(): void;
|
|
366
|
-
onSelectionChange(event: MatSelectChange): void;
|
|
367
|
-
onClearInputClick(): void;
|
|
368
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxBasicSelect<any>, never>;
|
|
369
|
-
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; }; "control": { "alias": "control"; "required": true; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": true; "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>;
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
declare enum DialogBodyType {
|
|
373
|
-
TEXT = "text",
|
|
374
|
-
HTML = "html",
|
|
375
|
-
COMPONENT = "component",
|
|
376
|
-
TEMPLATE = "template"
|
|
377
|
-
}
|
|
378
|
-
interface DialogBodyConfig<T = any> {
|
|
379
|
-
type: DialogBodyType;
|
|
380
|
-
content: string | Type<T> | TemplateRef<any>;
|
|
381
|
-
data?: T;
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
declare class NgxDialog<T = any> {
|
|
385
|
-
private _dialogRef;
|
|
386
|
-
private _data;
|
|
387
|
-
readonly title: string;
|
|
388
|
-
readonly icon: string | undefined;
|
|
389
|
-
readonly iconColor: string | undefined;
|
|
390
|
-
readonly subtitle: string | undefined;
|
|
391
|
-
readonly body: DialogBodyConfig<T>;
|
|
392
|
-
readonly showCancel: boolean;
|
|
393
|
-
readonly showConfirm: boolean;
|
|
394
|
-
readonly cancelText: string;
|
|
395
|
-
readonly confirmText: string;
|
|
396
|
-
DialogBodyType: typeof DialogBodyType;
|
|
397
|
-
onCancelClick(): void;
|
|
398
|
-
onConfirmClick(): void;
|
|
399
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxDialog<any>, never>;
|
|
400
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxDialog<any>, "ngx-dialog", never, {}, {}, never, never, true, never>;
|
|
258
|
+
interface DynamicFilter<T> {
|
|
259
|
+
campo: keyof T;
|
|
260
|
+
operador: FilterOperator;
|
|
261
|
+
valor: string;
|
|
262
|
+
conector: FilterConnector;
|
|
263
|
+
grupo: string;
|
|
401
264
|
}
|
|
402
265
|
|
|
403
266
|
declare class NgxTablesIntl {
|
|
@@ -568,6 +431,26 @@ declare class NgxTablesIntl {
|
|
|
568
431
|
noResultsMessage: string;
|
|
569
432
|
/** Etiqueta del botón de ver más resultados */
|
|
570
433
|
showMoreLabel: string;
|
|
434
|
+
/** Botón de confirmar selección (modo múltiple) */
|
|
435
|
+
paginatedSelectConfirmLabel: string;
|
|
436
|
+
/** Botón de limpiar selección (modo múltiple) */
|
|
437
|
+
paginatedSelectResetLabel: string;
|
|
438
|
+
/** Etiqueta del toggle "Seleccionar todo" */
|
|
439
|
+
paginatedSelectSelectAllLabel: string;
|
|
440
|
+
/** Fila "cargando más…" al paginar por scroll */
|
|
441
|
+
paginatedSelectLoadingMoreLabel: string;
|
|
442
|
+
/** Fila de fin de lista cuando ya no quedan más resultados */
|
|
443
|
+
paginatedSelectEndOfListLabel: string;
|
|
444
|
+
/** Ayuda bajo el mensaje de "sin resultados" cuando hay búsqueda activa */
|
|
445
|
+
paginatedSelectNoResultsHint: string;
|
|
446
|
+
/** Botón para limpiar la búsqueda desde el estado vacío */
|
|
447
|
+
paginatedSelectClearSearchLabel: string;
|
|
448
|
+
/** Título del estado de error al fallar la carga */
|
|
449
|
+
paginatedSelectErrorTitle: string;
|
|
450
|
+
/** Ayuda del estado de error */
|
|
451
|
+
paginatedSelectErrorHint: string;
|
|
452
|
+
/** Botón de reintentar la carga */
|
|
453
|
+
paginatedSelectRetryLabel: string;
|
|
571
454
|
/**
|
|
572
455
|
* Función para obtener el mensaje de confirmación de eliminación
|
|
573
456
|
* @param itemName Nombre del elemento a eliminar (opcional)
|
|
@@ -598,24 +481,332 @@ declare class NgxTablesIntl {
|
|
|
598
481
|
* @param optionName Nombre de la opción (opcional)
|
|
599
482
|
*/
|
|
600
483
|
getRemoveOptionText(optionName: string): string;
|
|
484
|
+
/**
|
|
485
|
+
* Mensaje anunciado por lectores de pantalla (aria-live) con el número de
|
|
486
|
+
* resultados tras filtrar en un select buscable.
|
|
487
|
+
* @param count Número de resultados visibles
|
|
488
|
+
*/
|
|
489
|
+
getSearchResultsCountMessage(count: number): string;
|
|
490
|
+
/**
|
|
491
|
+
* Footer del ngx-paginated-select en modo múltiple: elementos seleccionados
|
|
492
|
+
* sobre el total disponible.
|
|
493
|
+
*/
|
|
494
|
+
getPaginatedSelectSelectedCountLabel(selected: number, total: number): string;
|
|
495
|
+
/**
|
|
496
|
+
* Footer del ngx-paginated-select en modo simple: número total de resultados.
|
|
497
|
+
*/
|
|
498
|
+
getPaginatedSelectResultsCountLabel(total: number): string;
|
|
601
499
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxTablesIntl, never>;
|
|
602
500
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<NgxTablesIntl>;
|
|
603
501
|
}
|
|
604
502
|
|
|
605
|
-
declare class
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
static
|
|
610
|
-
static
|
|
503
|
+
declare class AdvancedFilterUtils {
|
|
504
|
+
static createAdvancedFilter: <T>(fb: FormBuilder, advancedFilter: AdvancedFilter<T>) => FormGroup;
|
|
505
|
+
static createFilterGroup: <T>(fb: FormBuilder, group: FilterGroup<T>) => FormGroup;
|
|
506
|
+
static createFilterRule: <T>(fb: FormBuilder, rule: FilterRule<T>) => FormGroup;
|
|
507
|
+
static isFilterGroup: <T>(obj: any) => obj is FilterGroup<T>;
|
|
508
|
+
private static isFilterRule;
|
|
509
|
+
static addGroupToGroup<T>(fb: FormBuilder, form: FormGroup, groupId: string, group: FilterGroup<T>): void;
|
|
510
|
+
static deleteGroup<T>(form: FormGroup, groupId: string): boolean;
|
|
511
|
+
static addRuleToGroup: <T>(fb: FormBuilder, form: FormGroup, groupId: string, rule: FilterRule<T>) => void;
|
|
512
|
+
static deleteRule<T>(form: FormGroup, ruleId: string): boolean;
|
|
513
|
+
private static deleteByIdRecursive;
|
|
514
|
+
static findGroupFormById(array: FormArray, id: string): FormGroup | null;
|
|
515
|
+
static isFilterGroupForm(group: AbstractControl): boolean;
|
|
516
|
+
static mapFormToAdvancedFilter<T>(form: FormGroup): AdvancedFilter<T>;
|
|
517
|
+
private static mapFormGroupToFilterGroup;
|
|
518
|
+
private static mapFormGroupToFilterRule;
|
|
519
|
+
private static isNonEmptyFilter;
|
|
520
|
+
private static isNonEmptyGroup;
|
|
521
|
+
private static isNonEmptyRule;
|
|
522
|
+
static groupsToReadableHtml<T>(groups: FilterGroup<T>[], columns: PaginatedTableColumn<T>[], intl: NgxTablesIntl): string;
|
|
523
|
+
private static groupToHtml;
|
|
524
|
+
private static ruleToHtml;
|
|
525
|
+
private static getOperatorLabel;
|
|
526
|
+
private static valueToHtml;
|
|
527
|
+
static mapToDynamicFilter<T>(advancedFilter: AdvancedFilter<T>): DynamicFilter<T>[];
|
|
528
|
+
private static mapGroupToDynamicFilters;
|
|
529
|
+
static normalizeAdvancedFilterForBackend<T>(filter: AdvancedFilter<T>): AdvancedFilter<T>;
|
|
530
|
+
private static normalizeGroupForBackend;
|
|
531
|
+
private static normalizeRuleForBackend;
|
|
611
532
|
}
|
|
612
533
|
|
|
534
|
+
interface RowActionClickEvent<T> {
|
|
535
|
+
id: string;
|
|
536
|
+
row: T;
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
interface SelectionActionEvent<T> {
|
|
540
|
+
id: string;
|
|
541
|
+
rows: T[];
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
interface ConfirmDialogData<T = any> {
|
|
545
|
+
title: string;
|
|
546
|
+
body?: string;
|
|
547
|
+
template?: TemplateRef<{
|
|
548
|
+
$implicit: T;
|
|
549
|
+
}>;
|
|
550
|
+
row?: T;
|
|
551
|
+
denyButtonLabel?: string;
|
|
552
|
+
confirmButtonLabel?: string;
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
interface BasicFilter<T> {
|
|
556
|
+
query?: string;
|
|
557
|
+
sortBy?: SortBy;
|
|
558
|
+
columnsFiltersValue?: Partial<Record<keyof T, ColumnValue>>;
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
interface BasicTableConfig<T> {
|
|
562
|
+
tableId: string;
|
|
563
|
+
primaryKey: keyof T | Array<keyof T>;
|
|
564
|
+
title: () => string;
|
|
565
|
+
columns: BasicTableColumn<T>[];
|
|
566
|
+
queryFilterPlaceholder?: string;
|
|
567
|
+
create?: TableBasicAction<T>;
|
|
568
|
+
update?: TableBasicAction<T>;
|
|
569
|
+
clickOnRowForUpdate?: boolean;
|
|
570
|
+
delete?: TableBasicAction<T>;
|
|
571
|
+
deleteConfirm?: DeleteConfirm<T>;
|
|
572
|
+
rowActions?: TableRowAction<T>[];
|
|
573
|
+
expandableDetail?: boolean;
|
|
574
|
+
expandableDetailTemplateRef?: () => TemplateRef<{
|
|
575
|
+
$implicit: T;
|
|
576
|
+
}>;
|
|
577
|
+
enableRowSelection?: boolean;
|
|
578
|
+
rowSelectionAction?: RowSelectionAction<T>[];
|
|
579
|
+
exportFileName?: () => string;
|
|
580
|
+
mapperForExportData?: (row: T) => Partial<Record<keyof T, any>>;
|
|
581
|
+
pdfConfig?: jsPDF;
|
|
582
|
+
maxHeight?: string;
|
|
583
|
+
defaultStickyColumn?: keyof T;
|
|
584
|
+
showActions?: () => boolean;
|
|
585
|
+
hideExportData?: () => boolean;
|
|
586
|
+
hideColumnConfig?: () => boolean;
|
|
587
|
+
hideFullScreen?: () => boolean;
|
|
588
|
+
}
|
|
589
|
+
interface BasicTableColumn<T> {
|
|
590
|
+
key: keyof T;
|
|
591
|
+
label: string;
|
|
592
|
+
isFilterableByInput?: boolean;
|
|
593
|
+
sortType?: SortType;
|
|
594
|
+
sortByKey?: (row: T) => string | undefined;
|
|
595
|
+
filterType?: FilterType;
|
|
596
|
+
filterOptions?: FilterOption[];
|
|
597
|
+
endpointForPaginatedFilterOptions?: (filters: PaginatedFilter<FilterOption>) => Observable<PaginatedItems<FilterOption>>;
|
|
598
|
+
filtersForEndpointPaginatedFilterOptions?: WritableSignal<PaginatedFilter<FilterOption>>;
|
|
599
|
+
filterByKey?: (row: T) => string | undefined;
|
|
600
|
+
component?: Type<any>;
|
|
601
|
+
templateRef?: () => TemplateRef<{
|
|
602
|
+
$implicit: T;
|
|
603
|
+
}>;
|
|
604
|
+
valueGetter?: (row: T) => string;
|
|
605
|
+
pipes?: ColumnPipe | ColumnPipe[];
|
|
606
|
+
showTotalPerPage?: boolean;
|
|
607
|
+
showTotalGeneral?: boolean;
|
|
608
|
+
totalFooterFormatter?: (total: number) => string;
|
|
609
|
+
style?: string;
|
|
610
|
+
footerStyle?: string;
|
|
611
|
+
}
|
|
612
|
+
type SortType = 'string' | 'number' | 'date';
|
|
613
|
+
|
|
614
|
+
type AlertType = 'info' | 'warning' | 'error' | 'success';
|
|
615
|
+
|
|
616
|
+
type SkeletonVariant = 'text' | 'circle' | 'rect' | 'rounded';
|
|
617
|
+
type SkeletonAnimation = 'shimmer' | 'pulse' | 'none';
|
|
618
|
+
|
|
619
|
+
/** Visual variant of the file input component. */
|
|
620
|
+
type NgxFileInputVariant = 'default' | 'compact' | 'button';
|
|
621
|
+
/** Validation error codes emitted by the file input. */
|
|
622
|
+
type NgxFileErrorCode = 'SIZE_EXCEEDED' | 'TYPE_NOT_ALLOWED' | 'MAX_FILES_EXCEEDED';
|
|
623
|
+
/** Represents a file selected by the user, with metadata and optional preview. */
|
|
624
|
+
interface NgxFileItem {
|
|
625
|
+
/** The native File object. */
|
|
626
|
+
file: File;
|
|
627
|
+
/** Unique identifier generated internally. */
|
|
628
|
+
id: string;
|
|
629
|
+
/** File name. */
|
|
630
|
+
name: string;
|
|
631
|
+
/** File size in bytes. */
|
|
632
|
+
size: number;
|
|
633
|
+
/** MIME type of the file. */
|
|
634
|
+
type: string;
|
|
635
|
+
/** Data URL for image previews. */
|
|
636
|
+
preview?: string;
|
|
637
|
+
/** Whether the file passed validation. */
|
|
638
|
+
status: 'valid' | 'error';
|
|
639
|
+
/** Validation error message, if any. */
|
|
640
|
+
error?: string;
|
|
641
|
+
}
|
|
642
|
+
/** Describes a validation error for a specific file. */
|
|
643
|
+
interface NgxFileError {
|
|
644
|
+
/** The native File that failed validation. */
|
|
645
|
+
file: File;
|
|
646
|
+
/** Machine-readable error code. */
|
|
647
|
+
code: NgxFileErrorCode;
|
|
648
|
+
/** Human-readable error message. */
|
|
649
|
+
message: string;
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
declare enum DialogBodyType {
|
|
653
|
+
TEXT = "text",
|
|
654
|
+
HTML = "html",
|
|
655
|
+
COMPONENT = "component",
|
|
656
|
+
TEMPLATE = "template"
|
|
657
|
+
}
|
|
658
|
+
interface DialogBodyConfig<T = any> {
|
|
659
|
+
type: DialogBodyType;
|
|
660
|
+
content: string | Type<T> | TemplateRef<any>;
|
|
661
|
+
data?: T;
|
|
662
|
+
}
|
|
663
|
+
interface DialogConfig<T = any> {
|
|
664
|
+
title: string;
|
|
665
|
+
icon?: string;
|
|
666
|
+
iconColor?: string;
|
|
667
|
+
subtitle?: string;
|
|
668
|
+
body: DialogBodyConfig<T>;
|
|
669
|
+
showCancel?: boolean;
|
|
670
|
+
showConfirm?: boolean;
|
|
671
|
+
cancelText?: string;
|
|
672
|
+
confirmText?: string;
|
|
673
|
+
}
|
|
674
|
+
|
|
675
|
+
interface ConfigureTableColumnData<T> {
|
|
676
|
+
tableId: string;
|
|
677
|
+
tableName: string;
|
|
678
|
+
columns: ColumnConfig<T>[];
|
|
679
|
+
filtersValue: Partial<Record<keyof T, ColumnValue>>;
|
|
680
|
+
columnsLabels: Partial<Record<keyof T, string>>;
|
|
681
|
+
}
|
|
613
682
|
interface ColumnConfig<T> {
|
|
614
683
|
key: keyof T;
|
|
615
684
|
show: boolean;
|
|
616
685
|
isSticky: boolean;
|
|
617
686
|
}
|
|
618
687
|
|
|
688
|
+
type TipoPantalla = 'movil' | 'tablet' | 'escritorio';
|
|
689
|
+
|
|
690
|
+
interface Pantalla {
|
|
691
|
+
tipo: TipoPantalla;
|
|
692
|
+
ancho: number;
|
|
693
|
+
alto: number;
|
|
694
|
+
}
|
|
695
|
+
|
|
696
|
+
type SendType = 'save' | 'save_and_apply';
|
|
697
|
+
|
|
698
|
+
/** Opción ya resuelta (valor, etiqueta, disabled y visibilidad según el buscador). */
|
|
699
|
+
interface ResolvedOption<T> {
|
|
700
|
+
value: T[keyof T];
|
|
701
|
+
label: string;
|
|
702
|
+
disabled: boolean;
|
|
703
|
+
visible: boolean;
|
|
704
|
+
}
|
|
705
|
+
declare class NgxBasicSelect<T> implements ControlValueAccessor {
|
|
706
|
+
readonly intl: NgxTablesIntl;
|
|
707
|
+
/**
|
|
708
|
+
* Se auto-registra como ControlValueAccessor del control del formulario.
|
|
709
|
+
* Se usa `self`/`optional` para poder leer el estado de validación (invalid/touched)
|
|
710
|
+
* y para no fallar cuando el componente se usa sin formulario.
|
|
711
|
+
*/
|
|
712
|
+
private readonly _ngControl;
|
|
713
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
714
|
+
readonly options: _angular_core.InputSignal<T[]>;
|
|
715
|
+
readonly basicSelectConfig: _angular_core.InputSignal<BasicSelectConfig<T>>;
|
|
716
|
+
readonly isLoading: _angular_core.InputSignal<boolean>;
|
|
717
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
718
|
+
readonly subscriptSizing: _angular_core.InputSignal<SubscriptSizing>;
|
|
719
|
+
readonly appearance: _angular_core.InputSignal<"fill" | "outline">;
|
|
720
|
+
readonly multiple: _angular_core.InputSignal<boolean>;
|
|
721
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
722
|
+
readonly clearable: _angular_core.InputSignal<boolean>;
|
|
723
|
+
readonly error: _angular_core.InputSignal<string>;
|
|
724
|
+
readonly class: _angular_core.InputSignal<string>;
|
|
725
|
+
/** Emite el/los valor(es) de `valueKey` al cambiar la selección. */
|
|
726
|
+
selectionChange: _angular_core.OutputEmitterRef<T[keyof T] | T[keyof T][] | null>;
|
|
727
|
+
readonly matSelect: _angular_core.Signal<MatSelect>;
|
|
728
|
+
readonly searchInput: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
|
|
729
|
+
/** FormControl interno que gobierna el mat-select (independiente del control del form). */
|
|
730
|
+
protected readonly innerControl: FormControl<any>;
|
|
731
|
+
/** Copia del valor como signal, para leerlo reactivamente en plantilla (OnPush). */
|
|
732
|
+
protected readonly value: _angular_core.WritableSignal<any>;
|
|
733
|
+
/** Deshabilitado que llega vía setDisabledState (reactive forms). */
|
|
734
|
+
private readonly cvaDisabled;
|
|
735
|
+
/** Estado del buscador (signal, no el DOM, para funcionar en zoneless). */
|
|
736
|
+
protected readonly searchQuery: _angular_core.WritableSignal<string>;
|
|
737
|
+
private onChange;
|
|
738
|
+
private onTouched;
|
|
739
|
+
/** Deshabilitado efectivo: input `disabled` o el que llega del formulario. */
|
|
740
|
+
protected readonly isDisabled: _angular_core.Signal<boolean>;
|
|
741
|
+
/**
|
|
742
|
+
* Opciones resueltas y marcadas con `visible` según el buscador. Las no visibles
|
|
743
|
+
* NO se quitan del DOM (se ocultan con display:none) para que el mat-select siga
|
|
744
|
+
* pudiendo pintar la etiqueta del valor seleccionado aunque esté filtrado.
|
|
745
|
+
*/
|
|
746
|
+
protected readonly resolvedOptions: _angular_core.Signal<ResolvedOption<T>[]>;
|
|
747
|
+
/** Hay datos de entrada (con independencia del buscador). */
|
|
748
|
+
protected readonly hasData: _angular_core.Signal<boolean>;
|
|
749
|
+
/**
|
|
750
|
+
* Opciones que se renderizan realmente: las que casan con el buscador MÁS las que
|
|
751
|
+
* estén seleccionadas (aunque no casen). Se quitan del DOM las que no casan para que
|
|
752
|
+
* el ListKeyManager de mat-select no las pueda enfocar con las flechas —marcarlas
|
|
753
|
+
* `disabled` no basta: con el panel abierto Material permite enfocar deshabilitadas
|
|
754
|
+
* (recomendación WAI-ARIA)—. Las seleccionadas se conservan para que el trigger
|
|
755
|
+
* pueda pintar su etiqueta y no se pierda el valor al filtrar.
|
|
756
|
+
*/
|
|
757
|
+
protected readonly displayedOptions: _angular_core.Signal<ResolvedOption<T>[]>;
|
|
758
|
+
/** No hay ninguna opción que mostrar (ni coincidencia ni seleccionada). */
|
|
759
|
+
protected readonly showNoOptionsMessage: _angular_core.Signal<boolean>;
|
|
760
|
+
/** Mensaje aria-live con el recuento de resultados al filtrar. */
|
|
761
|
+
protected readonly searchAnnouncement: _angular_core.Signal<string>;
|
|
762
|
+
/** ErrorStateMatcher que refleja el estado del control del formulario. */
|
|
763
|
+
protected readonly errorStateMatcher: ErrorStateMatcher;
|
|
764
|
+
constructor();
|
|
765
|
+
writeValue(value: any): void;
|
|
766
|
+
registerOnChange(fn: (value: any) => void): void;
|
|
767
|
+
registerOnTouched(fn: () => void): void;
|
|
768
|
+
setDisabledState(isDisabled: boolean): void;
|
|
769
|
+
onOpenedChange(opened: boolean): void;
|
|
770
|
+
onSearchInput(value: string): void;
|
|
771
|
+
/**
|
|
772
|
+
* Deja pasar al mat-select las teclas de navegación (flechas, Enter, Escape…) para
|
|
773
|
+
* poder moverse por la lista sin salir del buscador, y detiene las de carácter para
|
|
774
|
+
* que no disparen el typeahead nativo del mat-select.
|
|
775
|
+
*/
|
|
776
|
+
onSearchKeydown(event: KeyboardEvent): void;
|
|
777
|
+
clearSearch(): void;
|
|
778
|
+
onClearClick(): void;
|
|
779
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxBasicSelect<any>, never>;
|
|
780
|
+
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>;
|
|
781
|
+
}
|
|
782
|
+
|
|
783
|
+
declare class NgxDialog<T = any> {
|
|
784
|
+
private _dialogRef;
|
|
785
|
+
private _data;
|
|
786
|
+
readonly title: string;
|
|
787
|
+
readonly icon: string | undefined;
|
|
788
|
+
readonly iconColor: string | undefined;
|
|
789
|
+
readonly subtitle: string | undefined;
|
|
790
|
+
readonly body: ngx_eiffage_material.DialogBodyConfig<T>;
|
|
791
|
+
readonly showCancel: boolean;
|
|
792
|
+
readonly showConfirm: boolean;
|
|
793
|
+
readonly cancelText: string;
|
|
794
|
+
readonly confirmText: string;
|
|
795
|
+
DialogBodyType: typeof DialogBodyType;
|
|
796
|
+
onCancelClick(): void;
|
|
797
|
+
onConfirmClick(): void;
|
|
798
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxDialog<any>, never>;
|
|
799
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxDialog<any>, "ngx-dialog", never, {}, {}, never, never, true, never>;
|
|
800
|
+
}
|
|
801
|
+
|
|
802
|
+
declare class NgxConfirmDialogComponent {
|
|
803
|
+
dialogRef: MatDialogRef<any, any>;
|
|
804
|
+
data: ConfirmDialogData<any>;
|
|
805
|
+
intl: NgxTablesIntl;
|
|
806
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxConfirmDialogComponent, never>;
|
|
807
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxConfirmDialogComponent, "ngx-confirm-dialog", never, {}, {}, never, never, true, never>;
|
|
808
|
+
}
|
|
809
|
+
|
|
619
810
|
declare class NgxPaginatedTable<T, U extends PaginatedFilter<T>> implements OnInit, OnDestroy {
|
|
620
811
|
private readonly columnConfigService;
|
|
621
812
|
private readonly advancedFilterService;
|
|
@@ -665,7 +856,6 @@ declare class NgxPaginatedTable<T, U extends PaginatedFilter<T>> implements OnIn
|
|
|
665
856
|
private overlayRef?;
|
|
666
857
|
private portal?;
|
|
667
858
|
protected defaultFiltersForPaginatedFilterOptions: WritableSignal<PaginatedFilter<FilterOption>>;
|
|
668
|
-
constructor(intl: NgxTablesIntl | null);
|
|
669
859
|
ngOnInit(): void;
|
|
670
860
|
onEscape(): void;
|
|
671
861
|
ngOnDestroy(): void;
|
|
@@ -720,7 +910,7 @@ declare class NgxPaginatedTable<T, U extends PaginatedFilter<T>> implements OnIn
|
|
|
720
910
|
private enterFullscreen;
|
|
721
911
|
private exitFullscreen;
|
|
722
912
|
private isMyOverlayOnTop;
|
|
723
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxPaginatedTable<any, any>,
|
|
913
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxPaginatedTable<any, any>, never>;
|
|
724
914
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxPaginatedTable<any, any>, "ngx-paginated-table", never, { "endpoint": { "alias": "endpoint"; "required": true; "isSignal": true; }; "filters": { "alias": "filters"; "required": false; "isSignal": true; }; "config": { "alias": "config"; "required": true; "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>;
|
|
725
915
|
}
|
|
726
916
|
|
|
@@ -842,7 +1032,6 @@ declare class SearchableSelectComponent<T> {
|
|
|
842
1032
|
optionChange: _angular_core.OutputEmitterRef<string | string[] | undefined>;
|
|
843
1033
|
protected searcher: _angular_core.Signal<ElementRef<any> | undefined>;
|
|
844
1034
|
protected innerControl: _angular_core.WritableSignal<FormControl<any>>;
|
|
845
|
-
constructor(intl: NgxTablesIntl | null);
|
|
846
1035
|
selectedEffect: _angular_core.EffectRef;
|
|
847
1036
|
protected openedChange(open: boolean): void;
|
|
848
1037
|
protected cleanQuery(): void;
|
|
@@ -850,7 +1039,7 @@ declare class SearchableSelectComponent<T> {
|
|
|
850
1039
|
protected showOption(option: T): boolean;
|
|
851
1040
|
protected onOptionChange(event: MatSelectChange<string | string[] | undefined>): void;
|
|
852
1041
|
protected numberOfResults(): number;
|
|
853
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SearchableSelectComponent<any>,
|
|
1042
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SearchableSelectComponent<any>, never>;
|
|
854
1043
|
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>;
|
|
855
1044
|
}
|
|
856
1045
|
|
|
@@ -876,7 +1065,6 @@ declare class PaginatedSearchableSelectComponent<T, U extends PaginatedFilter<T>
|
|
|
876
1065
|
protected innerControl: WritableSignal<FormControl<any>>;
|
|
877
1066
|
private queryTimeout;
|
|
878
1067
|
private readonly debounceTime;
|
|
879
|
-
constructor(intl: NgxTablesIntl | null);
|
|
880
1068
|
selectedEffect: _angular_core.EffectRef;
|
|
881
1069
|
dataResource: _angular_core.ResourceRef<PaginatedItems<T>>;
|
|
882
1070
|
protected options: WritableSignal<T[]>;
|
|
@@ -890,7 +1078,7 @@ declare class PaginatedSearchableSelectComponent<T, U extends PaginatedFilter<T>
|
|
|
890
1078
|
protected onOptionChange(event: MatSelectChange<T | T[] | undefined>): void;
|
|
891
1079
|
protected optionsSelectedForView(): T[];
|
|
892
1080
|
protected onMoreClick(): void;
|
|
893
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PaginatedSearchableSelectComponent<any, any>,
|
|
1081
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PaginatedSearchableSelectComponent<any, any>, never>;
|
|
894
1082
|
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>;
|
|
895
1083
|
}
|
|
896
1084
|
|
|
@@ -903,10 +1091,11 @@ declare class NgxAlert {
|
|
|
903
1091
|
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>;
|
|
904
1092
|
}
|
|
905
1093
|
|
|
906
|
-
declare class NgxPaginatedSelect<T, U extends PaginatedFilter<T>> implements
|
|
1094
|
+
declare class NgxPaginatedSelect<T, U extends PaginatedFilter<T>> implements ControlValueAccessor {
|
|
907
1095
|
private readonly _bottomSheet;
|
|
908
|
-
|
|
909
|
-
private readonly
|
|
1096
|
+
/** Se auto-registra como CVA (self/optional para leer validación y no fallar sin form). */
|
|
1097
|
+
private readonly _ngControl;
|
|
1098
|
+
readonly intl: NgxTablesIntl;
|
|
910
1099
|
/** Label that floats on the form field */
|
|
911
1100
|
readonly label: _angular_core.InputSignal<string>;
|
|
912
1101
|
/** Title shown in the bottom sheet header */
|
|
@@ -917,8 +1106,6 @@ declare class NgxPaginatedSelect<T, U extends PaginatedFilter<T>> implements OnI
|
|
|
917
1106
|
readonly config: _angular_core.InputSignal<PaginatedSelectConfig<T>>;
|
|
918
1107
|
/** Writable signal with the current filter state */
|
|
919
1108
|
readonly filters: _angular_core.InputSignal<WritableSignal<U>>;
|
|
920
|
-
/** FormControl to integrate with reactive forms */
|
|
921
|
-
readonly control: _angular_core.InputSignal<FormControl<any>>;
|
|
922
1109
|
/** Pre-selected items — accepts full objects OR partials with only the valueKey set */
|
|
923
1110
|
readonly selectedItems: _angular_core.InputSignal<Partial<T>[]>;
|
|
924
1111
|
/** Allow selecting multiple items */
|
|
@@ -932,17 +1119,17 @@ declare class NgxPaginatedSelect<T, U extends PaginatedFilter<T>> implements OnI
|
|
|
932
1119
|
* - 'chips': a chip per selected item (default when multiple=true)
|
|
933
1120
|
* - 'text': a single comma-joined text line
|
|
934
1121
|
*/
|
|
935
|
-
readonly displayMode: _angular_core.InputSignal<"
|
|
1122
|
+
readonly displayMode: _angular_core.InputSignal<"text" | "chips">;
|
|
936
1123
|
/** Whether to show the search input inside the bottom sheet */
|
|
937
1124
|
readonly showSearch: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
938
|
-
/** Placeholder for the search input inside the bottom sheet */
|
|
939
|
-
readonly searchPlaceholder: _angular_core.InputSignal<string>;
|
|
940
|
-
/** Message when no results are found */
|
|
941
|
-
readonly noResultsMessage: _angular_core.InputSignal<string>;
|
|
942
|
-
/** Label for the confirm button (multiple mode) */
|
|
943
|
-
readonly confirmLabel: _angular_core.InputSignal<string>;
|
|
944
|
-
/** Label for the reset button (multiple mode) */
|
|
945
|
-
readonly resetLabel: _angular_core.InputSignal<string>;
|
|
1125
|
+
/** Placeholder for the search input inside the bottom sheet (defaults to intl) */
|
|
1126
|
+
readonly searchPlaceholder: _angular_core.InputSignal<string | undefined>;
|
|
1127
|
+
/** Message when no results are found (defaults to intl) */
|
|
1128
|
+
readonly noResultsMessage: _angular_core.InputSignal<string | undefined>;
|
|
1129
|
+
/** Label for the confirm button (multiple mode, defaults to intl) */
|
|
1130
|
+
readonly confirmLabel: _angular_core.InputSignal<string | undefined>;
|
|
1131
|
+
/** Label for the reset button (multiple mode, defaults to intl) */
|
|
1132
|
+
readonly resetLabel: _angular_core.InputSignal<string | undefined>;
|
|
946
1133
|
/** Controls how the subscript wrapper (hint/error) reserves space */
|
|
947
1134
|
readonly subscriptSizing: _angular_core.InputSignal<SubscriptSizing>;
|
|
948
1135
|
/** Error message rendered inside mat-error */
|
|
@@ -964,35 +1151,55 @@ declare class NgxPaginatedSelect<T, U extends PaginatedFilter<T>> implements OnI
|
|
|
964
1151
|
readonly chipsDirection: _angular_core.InputSignal<"row" | "column">;
|
|
965
1152
|
/** Whether to show a "Select all" toggle in the bottom sheet (multiple mode) */
|
|
966
1153
|
readonly showSelectAll: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
967
|
-
/** Label for the select all toggle */
|
|
968
|
-
readonly selectAllLabel: _angular_core.InputSignal<string>;
|
|
1154
|
+
/** Label for the select all toggle (defaults to intl) */
|
|
1155
|
+
readonly selectAllLabel: _angular_core.InputSignal<string | undefined>;
|
|
969
1156
|
/** Emits the full T object (single) or T[] (multiple) when selection changes */
|
|
970
1157
|
readonly valueChange: _angular_core.OutputEmitterRef<Partial<T> | Partial<T>[] | undefined>;
|
|
971
1158
|
/** Emits the raw array of selected items (may be partial if never confirmed) */
|
|
972
1159
|
readonly selectionChange: _angular_core.OutputEmitterRef<Partial<T>[]>;
|
|
973
|
-
protected _selectedItems: WritableSignal<Partial<T>[]>;
|
|
974
|
-
|
|
975
|
-
protected _isOpen: WritableSignal<boolean>;
|
|
1160
|
+
protected readonly _selectedItems: WritableSignal<Partial<T>[]>;
|
|
1161
|
+
private readonly _cvaDisabled;
|
|
1162
|
+
protected readonly _isOpen: WritableSignal<boolean>;
|
|
1163
|
+
private onChange;
|
|
1164
|
+
private onTouched;
|
|
1165
|
+
/** Evita re-emitir onChange cuando el cambio viene del formulario (writeValue). */
|
|
1166
|
+
private _suppressEmit;
|
|
1167
|
+
/** Huella de la última selección aplicada desde el input `selectedItems`. */
|
|
1168
|
+
private _lastSyncedSelection;
|
|
1169
|
+
protected readonly isDisabled: _angular_core.Signal<boolean>;
|
|
976
1170
|
protected readonly selectedLabel: _angular_core.Signal<string>;
|
|
977
|
-
/**
|
|
978
|
-
* Safe label resolver: tries `displayedLabel(item)`, falls back to
|
|
979
|
-
* `String(item[valueKey])` so partial objects never throw.
|
|
980
|
-
*/
|
|
981
|
-
protected getLabel(item: Partial<T>): string;
|
|
982
1171
|
protected readonly hasSelection: _angular_core.Signal<boolean>;
|
|
983
|
-
/** ErrorStateMatcher that reflects the bound FormControl's touched+invalid state */
|
|
984
|
-
protected readonly errorStateMatcher: _angular_core.Signal<ErrorStateMatcher>;
|
|
985
1172
|
protected readonly showChips: _angular_core.Signal<boolean>;
|
|
986
1173
|
protected readonly displayedChips: _angular_core.Signal<Partial<T>[]>;
|
|
987
1174
|
protected readonly remainingChipsCount: _angular_core.Signal<number>;
|
|
1175
|
+
/** ErrorStateMatcher que refleja el estado del control del formulario. */
|
|
1176
|
+
protected readonly errorStateMatcher: ErrorStateMatcher;
|
|
1177
|
+
protected readonly effectiveSearchPlaceholder: _angular_core.Signal<string>;
|
|
1178
|
+
protected readonly effectiveNoResults: _angular_core.Signal<string>;
|
|
1179
|
+
protected readonly effectiveConfirmLabel: _angular_core.Signal<string>;
|
|
1180
|
+
protected readonly effectiveResetLabel: _angular_core.Signal<string>;
|
|
1181
|
+
protected readonly effectiveSelectAllLabel: _angular_core.Signal<string>;
|
|
988
1182
|
constructor();
|
|
989
|
-
|
|
1183
|
+
writeValue(value: T[keyof T] | T[keyof T][] | null): void;
|
|
1184
|
+
registerOnChange(fn: (value: T[keyof T] | T[keyof T][] | null) => void): void;
|
|
1185
|
+
registerOnTouched(fn: () => void): void;
|
|
1186
|
+
setDisabledState(isDisabled: boolean): void;
|
|
1187
|
+
private keysFromValue;
|
|
1188
|
+
private applyValueFromKeys;
|
|
1189
|
+
private sameKeySet;
|
|
1190
|
+
private emitChange;
|
|
1191
|
+
/**
|
|
1192
|
+
* Safe label resolver: tries `displayedLabel(item)`, falls back to
|
|
1193
|
+
* `String(item[valueKey])` so partial objects never throw.
|
|
1194
|
+
*/
|
|
1195
|
+
protected getLabel(item: Partial<T>): string;
|
|
990
1196
|
openBottomSheet(event: Event): void;
|
|
1197
|
+
/** Abrir el bottom sheet desde el teclado (Enter / Espacio / flecha abajo). */
|
|
1198
|
+
onTriggerKeydown(event: KeyboardEvent): void;
|
|
991
1199
|
removeChip(item: Partial<T>, _event: MatChipEvent): void;
|
|
992
|
-
preventOpen(isOpen: boolean): void;
|
|
993
1200
|
clearSelection(event: Event): void;
|
|
994
1201
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxPaginatedSelect<any, any>, never>;
|
|
995
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxPaginatedSelect<any, any>, "ngx-paginated-select", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "endpoint": { "alias": "endpoint"; "required": true; "isSignal": true; }; "config": { "alias": "config"; "required": true; "isSignal": true; }; "filters": { "alias": "filters"; "required": false; "isSignal": true; }; "
|
|
1202
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxPaginatedSelect<any, any>, "ngx-paginated-select", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "endpoint": { "alias": "endpoint"; "required": true; "isSignal": true; }; "config": { "alias": "config"; "required": true; "isSignal": true; }; "filters": { "alias": "filters"; "required": false; "isSignal": true; }; "selectedItems": { "alias": "selectedItems"; "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; }; "displayMode": { "alias": "displayMode"; "required": false; "isSignal": true; }; "showSearch": { "alias": "showSearch"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "noResultsMessage": { "alias": "noResultsMessage"; "required": false; "isSignal": true; }; "confirmLabel": { "alias": "confirmLabel"; "required": false; "isSignal": true; }; "resetLabel": { "alias": "resetLabel"; "required": false; "isSignal": true; }; "subscriptSizing": { "alias": "subscriptSizing"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "optionTemplate": { "alias": "optionTemplate"; "required": false; "isSignal": true; }; "extraFiltersTemplate": { "alias": "extraFiltersTemplate"; "required": false; "isSignal": true; }; "maxChipsDisplayed": { "alias": "maxChipsDisplayed"; "required": false; "isSignal": true; }; "chipsDirection": { "alias": "chipsDirection"; "required": false; "isSignal": true; }; "showSelectAll": { "alias": "showSelectAll"; "required": false; "isSignal": true; }; "selectAllLabel": { "alias": "selectAllLabel"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "selectionChange": "selectionChange"; }, never, never, true, never>;
|
|
996
1203
|
}
|
|
997
1204
|
|
|
998
1205
|
interface NgxPaginatedSelectBottomSheetData<T, U extends PaginatedFilter<T>> {
|
|
@@ -1019,6 +1226,7 @@ declare class NgxPaginatedSelectBottomSheetComponent<T, U extends PaginatedFilte
|
|
|
1019
1226
|
private readonly _ref;
|
|
1020
1227
|
private readonly _destroy;
|
|
1021
1228
|
readonly data: NgxPaginatedSelectBottomSheetData<T, U>;
|
|
1229
|
+
readonly intl: NgxTablesIntl;
|
|
1022
1230
|
/** Raw input value — updates on every keystroke, does NOT trigger the resource */
|
|
1023
1231
|
readonly query: WritableSignal<string | undefined>;
|
|
1024
1232
|
/** Holds Partial<T> initially; items get upgraded to full T when toggled from the list */
|
|
@@ -1038,8 +1246,26 @@ declare class NgxPaginatedSelectBottomSheetComponent<T, U extends PaginatedFilte
|
|
|
1038
1246
|
readonly resource: _angular_core.ResourceRef<PaginatedItems<T>>;
|
|
1039
1247
|
readonly isLoading: _angular_core.Signal<boolean>;
|
|
1040
1248
|
readonly options: _angular_core.Signal<T[]>;
|
|
1041
|
-
readonly
|
|
1249
|
+
readonly hasError: _angular_core.Signal<boolean>;
|
|
1042
1250
|
readonly selectedCount: _angular_core.Signal<number>;
|
|
1251
|
+
/**
|
|
1252
|
+
* Total como signal, actualizado SOLO cuando el recurso no está cargando. Durante
|
|
1253
|
+
* la carga por scroll, resource.value() pasa transitoriamente al defaultValue
|
|
1254
|
+
* (total: 0); leerlo directamente hacía parpadear el footer a "0 resultados"
|
|
1255
|
+
* aunque el total real no cambie. Con este signal el total se mantiene estable
|
|
1256
|
+
* mientras se cargan más páginas.
|
|
1257
|
+
*/
|
|
1258
|
+
private readonly _total;
|
|
1259
|
+
readonly total: _angular_core.Signal<number>;
|
|
1260
|
+
private readonly _totalEffect;
|
|
1261
|
+
/** Cargando la PRIMERA página (lista vacía) → se muestran skeletons. */
|
|
1262
|
+
readonly isInitialLoading: _angular_core.Signal<boolean>;
|
|
1263
|
+
/** Cargando MÁS páginas (scroll) → fila inline "cargando más…", sin barra superior. */
|
|
1264
|
+
readonly isLoadingMore: _angular_core.Signal<boolean>;
|
|
1265
|
+
/** Ya se han cargado todos los resultados disponibles. */
|
|
1266
|
+
readonly allLoaded: _angular_core.Signal<boolean>;
|
|
1267
|
+
/** Cabecera con sombra solo cuando la lista está desplazada. */
|
|
1268
|
+
readonly headerScrolled: WritableSignal<boolean>;
|
|
1043
1269
|
readonly allSelected: _angular_core.Signal<boolean>;
|
|
1044
1270
|
readonly someSelected: _angular_core.Signal<boolean>;
|
|
1045
1271
|
/**
|
|
@@ -1069,11 +1295,19 @@ declare class NgxPaginatedSelectBottomSheetComponent<T, U extends PaginatedFilte
|
|
|
1069
1295
|
*/
|
|
1070
1296
|
getLabel(item: Partial<T>): string;
|
|
1071
1297
|
getAvatarText(item: Partial<T>): string;
|
|
1298
|
+
/** Claves de items cuya imagen de avatar falló al cargar (para el fallback). */
|
|
1299
|
+
private readonly failedImages;
|
|
1300
|
+
/** URL de imagen del avatar, o null si no hay o si falló al cargar. */
|
|
1301
|
+
getAvatarImage(item: Partial<T>): string | null | undefined;
|
|
1302
|
+
/** Marca la imagen como fallida para caer al texto/icono. */
|
|
1303
|
+
onAvatarError(item: Partial<T>): void;
|
|
1072
1304
|
toggleItem(item: T): void;
|
|
1073
1305
|
removeSelectedChip(item: Partial<T>): void;
|
|
1074
1306
|
onQueryInput(event: Event, container: HTMLElement): void;
|
|
1075
|
-
clearQuery(
|
|
1307
|
+
clearQuery(container?: HTMLElement): void;
|
|
1076
1308
|
onScroll(container: HTMLElement): void;
|
|
1309
|
+
/** Reintenta la carga tras un error. */
|
|
1310
|
+
retry(): void;
|
|
1077
1311
|
toggleSelectAll(): void;
|
|
1078
1312
|
confirm(): void;
|
|
1079
1313
|
reset(): void;
|
|
@@ -1118,6 +1352,7 @@ declare class NgxSkeleton {
|
|
|
1118
1352
|
declare class NgxFileInput implements ControlValueAccessor {
|
|
1119
1353
|
private readonly _platform;
|
|
1120
1354
|
private readonly _inputId;
|
|
1355
|
+
private readonly _nativeInput;
|
|
1121
1356
|
/** Accepted MIME types or extensions (e.g. `'image/*,.pdf'`). */
|
|
1122
1357
|
readonly accept: _angular_core.InputSignal<string>;
|
|
1123
1358
|
/** Allow selecting multiple files. */
|
|
@@ -1152,6 +1387,13 @@ declare class NgxFileInput implements ControlValueAccessor {
|
|
|
1152
1387
|
readonly liveAnnouncement: _angular_core.WritableSignal<string>;
|
|
1153
1388
|
/** Unique id for the hidden file input. */
|
|
1154
1389
|
readonly inputId: string;
|
|
1390
|
+
/** Disabled state coming from `setDisabledState()` (reactive forms). */
|
|
1391
|
+
private readonly _cvaDisabled;
|
|
1392
|
+
/**
|
|
1393
|
+
* Effective disabled state: the `disabled` input OR the state pushed by the
|
|
1394
|
+
* parent FormControl through `setDisabledState()`.
|
|
1395
|
+
*/
|
|
1396
|
+
readonly isDisabled: _angular_core.Signal<boolean>;
|
|
1155
1397
|
/** Derived: valid files only (used as FormControl value). */
|
|
1156
1398
|
protected readonly validFiles: _angular_core.Signal<File[]>;
|
|
1157
1399
|
private _onChange;
|
|
@@ -1159,6 +1401,7 @@ declare class NgxFileInput implements ControlValueAccessor {
|
|
|
1159
1401
|
writeValue(files: File[] | null): void;
|
|
1160
1402
|
registerOnChange(fn: (value: File[]) => void): void;
|
|
1161
1403
|
registerOnTouched(fn: () => void): void;
|
|
1404
|
+
setDisabledState(isDisabled: boolean): void;
|
|
1162
1405
|
onDragOver(event: DragEvent): void;
|
|
1163
1406
|
onDragLeave(event: DragEvent): void;
|
|
1164
1407
|
onDrop(event: DragEvent): void;
|
|
@@ -1304,6 +1547,44 @@ declare class NgxDialogService {
|
|
|
1304
1547
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<NgxDialogService>;
|
|
1305
1548
|
}
|
|
1306
1549
|
|
|
1550
|
+
declare class AdvancedFilterService {
|
|
1551
|
+
private userIdFactory;
|
|
1552
|
+
private readonly PARTIAL_KEY_STORAGE_ADVANCED_FILTER_CONFIG;
|
|
1553
|
+
private fullKey;
|
|
1554
|
+
private _advancedFilters;
|
|
1555
|
+
advancedFilters: _angular_core.Signal<Record<string, AdvancedFilter<any>[]>>;
|
|
1556
|
+
private setAdvancedFiltersEffect;
|
|
1557
|
+
constructor();
|
|
1558
|
+
private setAdvancedFilter;
|
|
1559
|
+
saveAdvancedFilter(tableId: string, advancedFilter: AdvancedFilter<any>): boolean;
|
|
1560
|
+
deleteAdvancedFilter(tableId: string, advancedFilter: AdvancedFilter<any>): boolean;
|
|
1561
|
+
getAdvancedFilterById(tableId: string, advancedFilterId: string, normalizeForBackend?: boolean): AdvancedFilter<any> | undefined;
|
|
1562
|
+
getDynamicFiltersById(tableId: string, advancedFilterId: string): DynamicFilter<any>[];
|
|
1563
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AdvancedFilterService, never>;
|
|
1564
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AdvancedFilterService>;
|
|
1565
|
+
}
|
|
1566
|
+
|
|
1567
|
+
declare class ColumnConfigService {
|
|
1568
|
+
private userIdFactory;
|
|
1569
|
+
private readonly PARTIAL_KEY_STORAGE_COLUMN_CONFIG;
|
|
1570
|
+
private fullKey;
|
|
1571
|
+
private _columnConfigs;
|
|
1572
|
+
columnConfigs: _angular_core.Signal<Record<string, ColumnConfig<any>[]>>;
|
|
1573
|
+
private setColumnConfigEffect;
|
|
1574
|
+
saveColumnConfig(tableId: string, columnConfig: ColumnConfig<any>[]): boolean;
|
|
1575
|
+
deleteColumnConfig(tableId: string): boolean;
|
|
1576
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ColumnConfigService, never>;
|
|
1577
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ColumnConfigService>;
|
|
1578
|
+
}
|
|
1579
|
+
|
|
1580
|
+
declare class DatosPantallaService {
|
|
1581
|
+
private readonly isBrowser;
|
|
1582
|
+
pantalla: Signal<Pantalla | undefined>;
|
|
1583
|
+
private obtenerDatosPantalla;
|
|
1584
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DatosPantallaService, never>;
|
|
1585
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<DatosPantallaService>;
|
|
1586
|
+
}
|
|
1587
|
+
|
|
1307
1588
|
declare class DynamicHostDirective<T> {
|
|
1308
1589
|
private _vcr;
|
|
1309
1590
|
private _currentRef;
|
|
@@ -1317,5 +1598,5 @@ declare class DynamicHostDirective<T> {
|
|
|
1317
1598
|
declare const includeNoSensible: (cadena: string, query: string) => boolean;
|
|
1318
1599
|
declare const base64ToUtf8: (str: string) => string;
|
|
1319
1600
|
|
|
1320
|
-
export { 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 };
|
|
1321
|
-
export type { AdvancedFilter, AlertType, BasicFilter, BasicSelectConfig, BasicTableColumn, BasicTableConfig, ColumnPipe, ConfirmDialogData, DeleteConfirm, FilterConnector, FilterGroup, FilterOperator, FilterOption, FilterRule, FilterType, NgxFileError, NgxFileErrorCode, NgxFileInputVariant, NgxFileItem, NgxPaginatedSelectBottomSheetData, PaginatedFilter, PaginatedItems, PaginatedSelectConfig, PaginatedTableColumn, PaginatedTableConfig, RowActionClickEvent, RowActionIconColor, RowSelectionAction, SelectionActionEvent, SkeletonAnimation, SkeletonVariant, SortBy, SortType, TableBasicAction, TableRowAction };
|
|
1601
|
+
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 };
|
|
1602
|
+
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 };
|