ngx-eiffage-material 0.0.50 → 0.1.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 +741 -397
- package/fesm2022/ngx-eiffage-material.mjs.map +1 -1
- package/index.d.ts +504 -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,330 @@ 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
|
+
}
|
|
587
|
+
interface BasicTableColumn<T> {
|
|
588
|
+
key: keyof T;
|
|
589
|
+
label: string;
|
|
590
|
+
isFilterableByInput?: boolean;
|
|
591
|
+
sortType?: SortType;
|
|
592
|
+
sortByKey?: (row: T) => string | undefined;
|
|
593
|
+
filterType?: FilterType;
|
|
594
|
+
filterOptions?: FilterOption[];
|
|
595
|
+
endpointForPaginatedFilterOptions?: (filters: PaginatedFilter<FilterOption>) => Observable<PaginatedItems<FilterOption>>;
|
|
596
|
+
filtersForEndpointPaginatedFilterOptions?: WritableSignal<PaginatedFilter<FilterOption>>;
|
|
597
|
+
filterByKey?: (row: T) => string | undefined;
|
|
598
|
+
component?: Type<any>;
|
|
599
|
+
templateRef?: () => TemplateRef<{
|
|
600
|
+
$implicit: T;
|
|
601
|
+
}>;
|
|
602
|
+
valueGetter?: (row: T) => string;
|
|
603
|
+
pipes?: ColumnPipe | ColumnPipe[];
|
|
604
|
+
showTotalPerPage?: boolean;
|
|
605
|
+
showTotalGeneral?: boolean;
|
|
606
|
+
totalFooterFormatter?: (total: number) => string;
|
|
607
|
+
style?: string;
|
|
608
|
+
footerStyle?: string;
|
|
609
|
+
}
|
|
610
|
+
type SortType = 'string' | 'number' | 'date';
|
|
611
|
+
|
|
612
|
+
type AlertType = 'info' | 'warning' | 'error' | 'success';
|
|
613
|
+
|
|
614
|
+
type SkeletonVariant = 'text' | 'circle' | 'rect' | 'rounded';
|
|
615
|
+
type SkeletonAnimation = 'shimmer' | 'pulse' | 'none';
|
|
616
|
+
|
|
617
|
+
/** Visual variant of the file input component. */
|
|
618
|
+
type NgxFileInputVariant = 'default' | 'compact' | 'button';
|
|
619
|
+
/** Validation error codes emitted by the file input. */
|
|
620
|
+
type NgxFileErrorCode = 'SIZE_EXCEEDED' | 'TYPE_NOT_ALLOWED' | 'MAX_FILES_EXCEEDED';
|
|
621
|
+
/** Represents a file selected by the user, with metadata and optional preview. */
|
|
622
|
+
interface NgxFileItem {
|
|
623
|
+
/** The native File object. */
|
|
624
|
+
file: File;
|
|
625
|
+
/** Unique identifier generated internally. */
|
|
626
|
+
id: string;
|
|
627
|
+
/** File name. */
|
|
628
|
+
name: string;
|
|
629
|
+
/** File size in bytes. */
|
|
630
|
+
size: number;
|
|
631
|
+
/** MIME type of the file. */
|
|
632
|
+
type: string;
|
|
633
|
+
/** Data URL for image previews. */
|
|
634
|
+
preview?: string;
|
|
635
|
+
/** Whether the file passed validation. */
|
|
636
|
+
status: 'valid' | 'error';
|
|
637
|
+
/** Validation error message, if any. */
|
|
638
|
+
error?: string;
|
|
639
|
+
}
|
|
640
|
+
/** Describes a validation error for a specific file. */
|
|
641
|
+
interface NgxFileError {
|
|
642
|
+
/** The native File that failed validation. */
|
|
643
|
+
file: File;
|
|
644
|
+
/** Machine-readable error code. */
|
|
645
|
+
code: NgxFileErrorCode;
|
|
646
|
+
/** Human-readable error message. */
|
|
647
|
+
message: string;
|
|
648
|
+
}
|
|
649
|
+
|
|
650
|
+
declare enum DialogBodyType {
|
|
651
|
+
TEXT = "text",
|
|
652
|
+
HTML = "html",
|
|
653
|
+
COMPONENT = "component",
|
|
654
|
+
TEMPLATE = "template"
|
|
655
|
+
}
|
|
656
|
+
interface DialogBodyConfig<T = any> {
|
|
657
|
+
type: DialogBodyType;
|
|
658
|
+
content: string | Type<T> | TemplateRef<any>;
|
|
659
|
+
data?: T;
|
|
660
|
+
}
|
|
661
|
+
interface DialogConfig<T = any> {
|
|
662
|
+
title: string;
|
|
663
|
+
icon?: string;
|
|
664
|
+
iconColor?: string;
|
|
665
|
+
subtitle?: string;
|
|
666
|
+
body: DialogBodyConfig<T>;
|
|
667
|
+
showCancel?: boolean;
|
|
668
|
+
showConfirm?: boolean;
|
|
669
|
+
cancelText?: string;
|
|
670
|
+
confirmText?: string;
|
|
671
|
+
}
|
|
672
|
+
|
|
673
|
+
interface ConfigureTableColumnData<T> {
|
|
674
|
+
tableId: string;
|
|
675
|
+
tableName: string;
|
|
676
|
+
columns: ColumnConfig<T>[];
|
|
677
|
+
filtersValue: Partial<Record<keyof T, ColumnValue>>;
|
|
678
|
+
columnsLabels: Partial<Record<keyof T, string>>;
|
|
679
|
+
}
|
|
613
680
|
interface ColumnConfig<T> {
|
|
614
681
|
key: keyof T;
|
|
615
682
|
show: boolean;
|
|
616
683
|
isSticky: boolean;
|
|
617
684
|
}
|
|
618
685
|
|
|
686
|
+
type TipoPantalla = 'movil' | 'tablet' | 'escritorio';
|
|
687
|
+
|
|
688
|
+
interface Pantalla {
|
|
689
|
+
tipo: TipoPantalla;
|
|
690
|
+
ancho: number;
|
|
691
|
+
alto: number;
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
type SendType = 'save' | 'save_and_apply';
|
|
695
|
+
|
|
696
|
+
/** Opción ya resuelta (valor, etiqueta, disabled y visibilidad según el buscador). */
|
|
697
|
+
interface ResolvedOption<T> {
|
|
698
|
+
value: T[keyof T];
|
|
699
|
+
label: string;
|
|
700
|
+
disabled: boolean;
|
|
701
|
+
visible: boolean;
|
|
702
|
+
}
|
|
703
|
+
declare class NgxBasicSelect<T> implements ControlValueAccessor {
|
|
704
|
+
readonly intl: NgxTablesIntl;
|
|
705
|
+
/**
|
|
706
|
+
* Se auto-registra como ControlValueAccessor del control del formulario.
|
|
707
|
+
* Se usa `self`/`optional` para poder leer el estado de validación (invalid/touched)
|
|
708
|
+
* y para no fallar cuando el componente se usa sin formulario.
|
|
709
|
+
*/
|
|
710
|
+
private readonly _ngControl;
|
|
711
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
712
|
+
readonly options: _angular_core.InputSignal<T[]>;
|
|
713
|
+
readonly basicSelectConfig: _angular_core.InputSignal<BasicSelectConfig<T>>;
|
|
714
|
+
readonly isLoading: _angular_core.InputSignal<boolean>;
|
|
715
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
716
|
+
readonly subscriptSizing: _angular_core.InputSignal<SubscriptSizing>;
|
|
717
|
+
readonly appearance: _angular_core.InputSignal<"fill" | "outline">;
|
|
718
|
+
readonly multiple: _angular_core.InputSignal<boolean>;
|
|
719
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
720
|
+
readonly clearable: _angular_core.InputSignal<boolean>;
|
|
721
|
+
readonly error: _angular_core.InputSignal<string>;
|
|
722
|
+
readonly class: _angular_core.InputSignal<string>;
|
|
723
|
+
/** Emite el/los valor(es) de `valueKey` al cambiar la selección. */
|
|
724
|
+
selectionChange: _angular_core.OutputEmitterRef<T[keyof T] | T[keyof T][] | null>;
|
|
725
|
+
readonly matSelect: _angular_core.Signal<MatSelect>;
|
|
726
|
+
readonly searchInput: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
|
|
727
|
+
/** FormControl interno que gobierna el mat-select (independiente del control del form). */
|
|
728
|
+
protected readonly innerControl: FormControl<any>;
|
|
729
|
+
/** Copia del valor como signal, para leerlo reactivamente en plantilla (OnPush). */
|
|
730
|
+
protected readonly value: _angular_core.WritableSignal<any>;
|
|
731
|
+
/** Deshabilitado que llega vía setDisabledState (reactive forms). */
|
|
732
|
+
private readonly cvaDisabled;
|
|
733
|
+
/** Estado del buscador (signal, no el DOM, para funcionar en zoneless). */
|
|
734
|
+
protected readonly searchQuery: _angular_core.WritableSignal<string>;
|
|
735
|
+
private onChange;
|
|
736
|
+
private onTouched;
|
|
737
|
+
/** Deshabilitado efectivo: input `disabled` o el que llega del formulario. */
|
|
738
|
+
protected readonly isDisabled: _angular_core.Signal<boolean>;
|
|
739
|
+
/**
|
|
740
|
+
* Opciones resueltas y marcadas con `visible` según el buscador. Las no visibles
|
|
741
|
+
* NO se quitan del DOM (se ocultan con display:none) para que el mat-select siga
|
|
742
|
+
* pudiendo pintar la etiqueta del valor seleccionado aunque esté filtrado.
|
|
743
|
+
*/
|
|
744
|
+
protected readonly resolvedOptions: _angular_core.Signal<ResolvedOption<T>[]>;
|
|
745
|
+
/** Hay datos de entrada (con independencia del buscador). */
|
|
746
|
+
protected readonly hasData: _angular_core.Signal<boolean>;
|
|
747
|
+
/**
|
|
748
|
+
* Opciones que se renderizan realmente: las que casan con el buscador MÁS las que
|
|
749
|
+
* estén seleccionadas (aunque no casen). Se quitan del DOM las que no casan para que
|
|
750
|
+
* el ListKeyManager de mat-select no las pueda enfocar con las flechas —marcarlas
|
|
751
|
+
* `disabled` no basta: con el panel abierto Material permite enfocar deshabilitadas
|
|
752
|
+
* (recomendación WAI-ARIA)—. Las seleccionadas se conservan para que el trigger
|
|
753
|
+
* pueda pintar su etiqueta y no se pierda el valor al filtrar.
|
|
754
|
+
*/
|
|
755
|
+
protected readonly displayedOptions: _angular_core.Signal<ResolvedOption<T>[]>;
|
|
756
|
+
/** No hay ninguna opción que mostrar (ni coincidencia ni seleccionada). */
|
|
757
|
+
protected readonly showNoOptionsMessage: _angular_core.Signal<boolean>;
|
|
758
|
+
/** Mensaje aria-live con el recuento de resultados al filtrar. */
|
|
759
|
+
protected readonly searchAnnouncement: _angular_core.Signal<string>;
|
|
760
|
+
/** ErrorStateMatcher que refleja el estado del control del formulario. */
|
|
761
|
+
protected readonly errorStateMatcher: ErrorStateMatcher;
|
|
762
|
+
constructor();
|
|
763
|
+
writeValue(value: any): void;
|
|
764
|
+
registerOnChange(fn: (value: any) => void): void;
|
|
765
|
+
registerOnTouched(fn: () => void): void;
|
|
766
|
+
setDisabledState(isDisabled: boolean): void;
|
|
767
|
+
onOpenedChange(opened: boolean): void;
|
|
768
|
+
onSearchInput(value: string): void;
|
|
769
|
+
/**
|
|
770
|
+
* Deja pasar al mat-select las teclas de navegación (flechas, Enter, Escape…) para
|
|
771
|
+
* poder moverse por la lista sin salir del buscador, y detiene las de carácter para
|
|
772
|
+
* que no disparen el typeahead nativo del mat-select.
|
|
773
|
+
*/
|
|
774
|
+
onSearchKeydown(event: KeyboardEvent): void;
|
|
775
|
+
clearSearch(): void;
|
|
776
|
+
onClearClick(): void;
|
|
777
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxBasicSelect<any>, never>;
|
|
778
|
+
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>;
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
declare class NgxDialog<T = any> {
|
|
782
|
+
private _dialogRef;
|
|
783
|
+
private _data;
|
|
784
|
+
readonly title: string;
|
|
785
|
+
readonly icon: string | undefined;
|
|
786
|
+
readonly iconColor: string | undefined;
|
|
787
|
+
readonly subtitle: string | undefined;
|
|
788
|
+
readonly body: ngx_eiffage_material.DialogBodyConfig<T>;
|
|
789
|
+
readonly showCancel: boolean;
|
|
790
|
+
readonly showConfirm: boolean;
|
|
791
|
+
readonly cancelText: string;
|
|
792
|
+
readonly confirmText: string;
|
|
793
|
+
DialogBodyType: typeof DialogBodyType;
|
|
794
|
+
onCancelClick(): void;
|
|
795
|
+
onConfirmClick(): void;
|
|
796
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxDialog<any>, never>;
|
|
797
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxDialog<any>, "ngx-dialog", never, {}, {}, never, never, true, never>;
|
|
798
|
+
}
|
|
799
|
+
|
|
800
|
+
declare class NgxConfirmDialogComponent {
|
|
801
|
+
dialogRef: MatDialogRef<any, any>;
|
|
802
|
+
data: ConfirmDialogData<any>;
|
|
803
|
+
intl: NgxTablesIntl;
|
|
804
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxConfirmDialogComponent, never>;
|
|
805
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxConfirmDialogComponent, "ngx-confirm-dialog", never, {}, {}, never, never, true, never>;
|
|
806
|
+
}
|
|
807
|
+
|
|
619
808
|
declare class NgxPaginatedTable<T, U extends PaginatedFilter<T>> implements OnInit, OnDestroy {
|
|
620
809
|
private readonly columnConfigService;
|
|
621
810
|
private readonly advancedFilterService;
|
|
@@ -665,7 +854,6 @@ declare class NgxPaginatedTable<T, U extends PaginatedFilter<T>> implements OnIn
|
|
|
665
854
|
private overlayRef?;
|
|
666
855
|
private portal?;
|
|
667
856
|
protected defaultFiltersForPaginatedFilterOptions: WritableSignal<PaginatedFilter<FilterOption>>;
|
|
668
|
-
constructor(intl: NgxTablesIntl | null);
|
|
669
857
|
ngOnInit(): void;
|
|
670
858
|
onEscape(): void;
|
|
671
859
|
ngOnDestroy(): void;
|
|
@@ -720,7 +908,7 @@ declare class NgxPaginatedTable<T, U extends PaginatedFilter<T>> implements OnIn
|
|
|
720
908
|
private enterFullscreen;
|
|
721
909
|
private exitFullscreen;
|
|
722
910
|
private isMyOverlayOnTop;
|
|
723
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxPaginatedTable<any, any>,
|
|
911
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxPaginatedTable<any, any>, never>;
|
|
724
912
|
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
913
|
}
|
|
726
914
|
|
|
@@ -842,7 +1030,6 @@ declare class SearchableSelectComponent<T> {
|
|
|
842
1030
|
optionChange: _angular_core.OutputEmitterRef<string | string[] | undefined>;
|
|
843
1031
|
protected searcher: _angular_core.Signal<ElementRef<any> | undefined>;
|
|
844
1032
|
protected innerControl: _angular_core.WritableSignal<FormControl<any>>;
|
|
845
|
-
constructor(intl: NgxTablesIntl | null);
|
|
846
1033
|
selectedEffect: _angular_core.EffectRef;
|
|
847
1034
|
protected openedChange(open: boolean): void;
|
|
848
1035
|
protected cleanQuery(): void;
|
|
@@ -850,7 +1037,7 @@ declare class SearchableSelectComponent<T> {
|
|
|
850
1037
|
protected showOption(option: T): boolean;
|
|
851
1038
|
protected onOptionChange(event: MatSelectChange<string | string[] | undefined>): void;
|
|
852
1039
|
protected numberOfResults(): number;
|
|
853
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SearchableSelectComponent<any>,
|
|
1040
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SearchableSelectComponent<any>, never>;
|
|
854
1041
|
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
1042
|
}
|
|
856
1043
|
|
|
@@ -876,7 +1063,6 @@ declare class PaginatedSearchableSelectComponent<T, U extends PaginatedFilter<T>
|
|
|
876
1063
|
protected innerControl: WritableSignal<FormControl<any>>;
|
|
877
1064
|
private queryTimeout;
|
|
878
1065
|
private readonly debounceTime;
|
|
879
|
-
constructor(intl: NgxTablesIntl | null);
|
|
880
1066
|
selectedEffect: _angular_core.EffectRef;
|
|
881
1067
|
dataResource: _angular_core.ResourceRef<PaginatedItems<T>>;
|
|
882
1068
|
protected options: WritableSignal<T[]>;
|
|
@@ -890,7 +1076,7 @@ declare class PaginatedSearchableSelectComponent<T, U extends PaginatedFilter<T>
|
|
|
890
1076
|
protected onOptionChange(event: MatSelectChange<T | T[] | undefined>): void;
|
|
891
1077
|
protected optionsSelectedForView(): T[];
|
|
892
1078
|
protected onMoreClick(): void;
|
|
893
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PaginatedSearchableSelectComponent<any, any>,
|
|
1079
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PaginatedSearchableSelectComponent<any, any>, never>;
|
|
894
1080
|
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
1081
|
}
|
|
896
1082
|
|
|
@@ -903,10 +1089,11 @@ declare class NgxAlert {
|
|
|
903
1089
|
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
1090
|
}
|
|
905
1091
|
|
|
906
|
-
declare class NgxPaginatedSelect<T, U extends PaginatedFilter<T>> implements
|
|
1092
|
+
declare class NgxPaginatedSelect<T, U extends PaginatedFilter<T>> implements ControlValueAccessor {
|
|
907
1093
|
private readonly _bottomSheet;
|
|
908
|
-
|
|
909
|
-
private readonly
|
|
1094
|
+
/** Se auto-registra como CVA (self/optional para leer validación y no fallar sin form). */
|
|
1095
|
+
private readonly _ngControl;
|
|
1096
|
+
readonly intl: NgxTablesIntl;
|
|
910
1097
|
/** Label that floats on the form field */
|
|
911
1098
|
readonly label: _angular_core.InputSignal<string>;
|
|
912
1099
|
/** Title shown in the bottom sheet header */
|
|
@@ -917,8 +1104,6 @@ declare class NgxPaginatedSelect<T, U extends PaginatedFilter<T>> implements OnI
|
|
|
917
1104
|
readonly config: _angular_core.InputSignal<PaginatedSelectConfig<T>>;
|
|
918
1105
|
/** Writable signal with the current filter state */
|
|
919
1106
|
readonly filters: _angular_core.InputSignal<WritableSignal<U>>;
|
|
920
|
-
/** FormControl to integrate with reactive forms */
|
|
921
|
-
readonly control: _angular_core.InputSignal<FormControl<any>>;
|
|
922
1107
|
/** Pre-selected items — accepts full objects OR partials with only the valueKey set */
|
|
923
1108
|
readonly selectedItems: _angular_core.InputSignal<Partial<T>[]>;
|
|
924
1109
|
/** Allow selecting multiple items */
|
|
@@ -932,17 +1117,17 @@ declare class NgxPaginatedSelect<T, U extends PaginatedFilter<T>> implements OnI
|
|
|
932
1117
|
* - 'chips': a chip per selected item (default when multiple=true)
|
|
933
1118
|
* - 'text': a single comma-joined text line
|
|
934
1119
|
*/
|
|
935
|
-
readonly displayMode: _angular_core.InputSignal<"
|
|
1120
|
+
readonly displayMode: _angular_core.InputSignal<"text" | "chips">;
|
|
936
1121
|
/** Whether to show the search input inside the bottom sheet */
|
|
937
1122
|
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>;
|
|
1123
|
+
/** Placeholder for the search input inside the bottom sheet (defaults to intl) */
|
|
1124
|
+
readonly searchPlaceholder: _angular_core.InputSignal<string | undefined>;
|
|
1125
|
+
/** Message when no results are found (defaults to intl) */
|
|
1126
|
+
readonly noResultsMessage: _angular_core.InputSignal<string | undefined>;
|
|
1127
|
+
/** Label for the confirm button (multiple mode, defaults to intl) */
|
|
1128
|
+
readonly confirmLabel: _angular_core.InputSignal<string | undefined>;
|
|
1129
|
+
/** Label for the reset button (multiple mode, defaults to intl) */
|
|
1130
|
+
readonly resetLabel: _angular_core.InputSignal<string | undefined>;
|
|
946
1131
|
/** Controls how the subscript wrapper (hint/error) reserves space */
|
|
947
1132
|
readonly subscriptSizing: _angular_core.InputSignal<SubscriptSizing>;
|
|
948
1133
|
/** Error message rendered inside mat-error */
|
|
@@ -964,35 +1149,55 @@ declare class NgxPaginatedSelect<T, U extends PaginatedFilter<T>> implements OnI
|
|
|
964
1149
|
readonly chipsDirection: _angular_core.InputSignal<"row" | "column">;
|
|
965
1150
|
/** Whether to show a "Select all" toggle in the bottom sheet (multiple mode) */
|
|
966
1151
|
readonly showSelectAll: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
967
|
-
/** Label for the select all toggle */
|
|
968
|
-
readonly selectAllLabel: _angular_core.InputSignal<string>;
|
|
1152
|
+
/** Label for the select all toggle (defaults to intl) */
|
|
1153
|
+
readonly selectAllLabel: _angular_core.InputSignal<string | undefined>;
|
|
969
1154
|
/** Emits the full T object (single) or T[] (multiple) when selection changes */
|
|
970
1155
|
readonly valueChange: _angular_core.OutputEmitterRef<Partial<T> | Partial<T>[] | undefined>;
|
|
971
1156
|
/** Emits the raw array of selected items (may be partial if never confirmed) */
|
|
972
1157
|
readonly selectionChange: _angular_core.OutputEmitterRef<Partial<T>[]>;
|
|
973
|
-
protected _selectedItems: WritableSignal<Partial<T>[]>;
|
|
974
|
-
|
|
975
|
-
protected _isOpen: WritableSignal<boolean>;
|
|
1158
|
+
protected readonly _selectedItems: WritableSignal<Partial<T>[]>;
|
|
1159
|
+
private readonly _cvaDisabled;
|
|
1160
|
+
protected readonly _isOpen: WritableSignal<boolean>;
|
|
1161
|
+
private onChange;
|
|
1162
|
+
private onTouched;
|
|
1163
|
+
/** Evita re-emitir onChange cuando el cambio viene del formulario (writeValue). */
|
|
1164
|
+
private _suppressEmit;
|
|
1165
|
+
/** Huella de la última selección aplicada desde el input `selectedItems`. */
|
|
1166
|
+
private _lastSyncedSelection;
|
|
1167
|
+
protected readonly isDisabled: _angular_core.Signal<boolean>;
|
|
976
1168
|
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
1169
|
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
1170
|
protected readonly showChips: _angular_core.Signal<boolean>;
|
|
986
1171
|
protected readonly displayedChips: _angular_core.Signal<Partial<T>[]>;
|
|
987
1172
|
protected readonly remainingChipsCount: _angular_core.Signal<number>;
|
|
1173
|
+
/** ErrorStateMatcher que refleja el estado del control del formulario. */
|
|
1174
|
+
protected readonly errorStateMatcher: ErrorStateMatcher;
|
|
1175
|
+
protected readonly effectiveSearchPlaceholder: _angular_core.Signal<string>;
|
|
1176
|
+
protected readonly effectiveNoResults: _angular_core.Signal<string>;
|
|
1177
|
+
protected readonly effectiveConfirmLabel: _angular_core.Signal<string>;
|
|
1178
|
+
protected readonly effectiveResetLabel: _angular_core.Signal<string>;
|
|
1179
|
+
protected readonly effectiveSelectAllLabel: _angular_core.Signal<string>;
|
|
988
1180
|
constructor();
|
|
989
|
-
|
|
1181
|
+
writeValue(value: T[keyof T] | T[keyof T][] | null): void;
|
|
1182
|
+
registerOnChange(fn: (value: T[keyof T] | T[keyof T][] | null) => void): void;
|
|
1183
|
+
registerOnTouched(fn: () => void): void;
|
|
1184
|
+
setDisabledState(isDisabled: boolean): void;
|
|
1185
|
+
private keysFromValue;
|
|
1186
|
+
private applyValueFromKeys;
|
|
1187
|
+
private sameKeySet;
|
|
1188
|
+
private emitChange;
|
|
1189
|
+
/**
|
|
1190
|
+
* Safe label resolver: tries `displayedLabel(item)`, falls back to
|
|
1191
|
+
* `String(item[valueKey])` so partial objects never throw.
|
|
1192
|
+
*/
|
|
1193
|
+
protected getLabel(item: Partial<T>): string;
|
|
990
1194
|
openBottomSheet(event: Event): void;
|
|
1195
|
+
/** Abrir el bottom sheet desde el teclado (Enter / Espacio / flecha abajo). */
|
|
1196
|
+
onTriggerKeydown(event: KeyboardEvent): void;
|
|
991
1197
|
removeChip(item: Partial<T>, _event: MatChipEvent): void;
|
|
992
|
-
preventOpen(isOpen: boolean): void;
|
|
993
1198
|
clearSelection(event: Event): void;
|
|
994
1199
|
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; }; "
|
|
1200
|
+
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
1201
|
}
|
|
997
1202
|
|
|
998
1203
|
interface NgxPaginatedSelectBottomSheetData<T, U extends PaginatedFilter<T>> {
|
|
@@ -1019,6 +1224,7 @@ declare class NgxPaginatedSelectBottomSheetComponent<T, U extends PaginatedFilte
|
|
|
1019
1224
|
private readonly _ref;
|
|
1020
1225
|
private readonly _destroy;
|
|
1021
1226
|
readonly data: NgxPaginatedSelectBottomSheetData<T, U>;
|
|
1227
|
+
readonly intl: NgxTablesIntl;
|
|
1022
1228
|
/** Raw input value — updates on every keystroke, does NOT trigger the resource */
|
|
1023
1229
|
readonly query: WritableSignal<string | undefined>;
|
|
1024
1230
|
/** Holds Partial<T> initially; items get upgraded to full T when toggled from the list */
|
|
@@ -1038,8 +1244,26 @@ declare class NgxPaginatedSelectBottomSheetComponent<T, U extends PaginatedFilte
|
|
|
1038
1244
|
readonly resource: _angular_core.ResourceRef<PaginatedItems<T>>;
|
|
1039
1245
|
readonly isLoading: _angular_core.Signal<boolean>;
|
|
1040
1246
|
readonly options: _angular_core.Signal<T[]>;
|
|
1041
|
-
readonly
|
|
1247
|
+
readonly hasError: _angular_core.Signal<boolean>;
|
|
1042
1248
|
readonly selectedCount: _angular_core.Signal<number>;
|
|
1249
|
+
/**
|
|
1250
|
+
* Total como signal, actualizado SOLO cuando el recurso no está cargando. Durante
|
|
1251
|
+
* la carga por scroll, resource.value() pasa transitoriamente al defaultValue
|
|
1252
|
+
* (total: 0); leerlo directamente hacía parpadear el footer a "0 resultados"
|
|
1253
|
+
* aunque el total real no cambie. Con este signal el total se mantiene estable
|
|
1254
|
+
* mientras se cargan más páginas.
|
|
1255
|
+
*/
|
|
1256
|
+
private readonly _total;
|
|
1257
|
+
readonly total: _angular_core.Signal<number>;
|
|
1258
|
+
private readonly _totalEffect;
|
|
1259
|
+
/** Cargando la PRIMERA página (lista vacía) → se muestran skeletons. */
|
|
1260
|
+
readonly isInitialLoading: _angular_core.Signal<boolean>;
|
|
1261
|
+
/** Cargando MÁS páginas (scroll) → fila inline "cargando más…", sin barra superior. */
|
|
1262
|
+
readonly isLoadingMore: _angular_core.Signal<boolean>;
|
|
1263
|
+
/** Ya se han cargado todos los resultados disponibles. */
|
|
1264
|
+
readonly allLoaded: _angular_core.Signal<boolean>;
|
|
1265
|
+
/** Cabecera con sombra solo cuando la lista está desplazada. */
|
|
1266
|
+
readonly headerScrolled: WritableSignal<boolean>;
|
|
1043
1267
|
readonly allSelected: _angular_core.Signal<boolean>;
|
|
1044
1268
|
readonly someSelected: _angular_core.Signal<boolean>;
|
|
1045
1269
|
/**
|
|
@@ -1069,11 +1293,19 @@ declare class NgxPaginatedSelectBottomSheetComponent<T, U extends PaginatedFilte
|
|
|
1069
1293
|
*/
|
|
1070
1294
|
getLabel(item: Partial<T>): string;
|
|
1071
1295
|
getAvatarText(item: Partial<T>): string;
|
|
1296
|
+
/** Claves de items cuya imagen de avatar falló al cargar (para el fallback). */
|
|
1297
|
+
private readonly failedImages;
|
|
1298
|
+
/** URL de imagen del avatar, o null si no hay o si falló al cargar. */
|
|
1299
|
+
getAvatarImage(item: Partial<T>): string | null | undefined;
|
|
1300
|
+
/** Marca la imagen como fallida para caer al texto/icono. */
|
|
1301
|
+
onAvatarError(item: Partial<T>): void;
|
|
1072
1302
|
toggleItem(item: T): void;
|
|
1073
1303
|
removeSelectedChip(item: Partial<T>): void;
|
|
1074
1304
|
onQueryInput(event: Event, container: HTMLElement): void;
|
|
1075
|
-
clearQuery(
|
|
1305
|
+
clearQuery(container?: HTMLElement): void;
|
|
1076
1306
|
onScroll(container: HTMLElement): void;
|
|
1307
|
+
/** Reintenta la carga tras un error. */
|
|
1308
|
+
retry(): void;
|
|
1077
1309
|
toggleSelectAll(): void;
|
|
1078
1310
|
confirm(): void;
|
|
1079
1311
|
reset(): void;
|
|
@@ -1118,6 +1350,7 @@ declare class NgxSkeleton {
|
|
|
1118
1350
|
declare class NgxFileInput implements ControlValueAccessor {
|
|
1119
1351
|
private readonly _platform;
|
|
1120
1352
|
private readonly _inputId;
|
|
1353
|
+
private readonly _nativeInput;
|
|
1121
1354
|
/** Accepted MIME types or extensions (e.g. `'image/*,.pdf'`). */
|
|
1122
1355
|
readonly accept: _angular_core.InputSignal<string>;
|
|
1123
1356
|
/** Allow selecting multiple files. */
|
|
@@ -1152,6 +1385,13 @@ declare class NgxFileInput implements ControlValueAccessor {
|
|
|
1152
1385
|
readonly liveAnnouncement: _angular_core.WritableSignal<string>;
|
|
1153
1386
|
/** Unique id for the hidden file input. */
|
|
1154
1387
|
readonly inputId: string;
|
|
1388
|
+
/** Disabled state coming from `setDisabledState()` (reactive forms). */
|
|
1389
|
+
private readonly _cvaDisabled;
|
|
1390
|
+
/**
|
|
1391
|
+
* Effective disabled state: the `disabled` input OR the state pushed by the
|
|
1392
|
+
* parent FormControl through `setDisabledState()`.
|
|
1393
|
+
*/
|
|
1394
|
+
readonly isDisabled: _angular_core.Signal<boolean>;
|
|
1155
1395
|
/** Derived: valid files only (used as FormControl value). */
|
|
1156
1396
|
protected readonly validFiles: _angular_core.Signal<File[]>;
|
|
1157
1397
|
private _onChange;
|
|
@@ -1159,6 +1399,7 @@ declare class NgxFileInput implements ControlValueAccessor {
|
|
|
1159
1399
|
writeValue(files: File[] | null): void;
|
|
1160
1400
|
registerOnChange(fn: (value: File[]) => void): void;
|
|
1161
1401
|
registerOnTouched(fn: () => void): void;
|
|
1402
|
+
setDisabledState(isDisabled: boolean): void;
|
|
1162
1403
|
onDragOver(event: DragEvent): void;
|
|
1163
1404
|
onDragLeave(event: DragEvent): void;
|
|
1164
1405
|
onDrop(event: DragEvent): void;
|
|
@@ -1304,6 +1545,44 @@ declare class NgxDialogService {
|
|
|
1304
1545
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<NgxDialogService>;
|
|
1305
1546
|
}
|
|
1306
1547
|
|
|
1548
|
+
declare class AdvancedFilterService {
|
|
1549
|
+
private userIdFactory;
|
|
1550
|
+
private readonly PARTIAL_KEY_STORAGE_ADVANCED_FILTER_CONFIG;
|
|
1551
|
+
private fullKey;
|
|
1552
|
+
private _advancedFilters;
|
|
1553
|
+
advancedFilters: _angular_core.Signal<Record<string, AdvancedFilter<any>[]>>;
|
|
1554
|
+
private setAdvancedFiltersEffect;
|
|
1555
|
+
constructor();
|
|
1556
|
+
private setAdvancedFilter;
|
|
1557
|
+
saveAdvancedFilter(tableId: string, advancedFilter: AdvancedFilter<any>): boolean;
|
|
1558
|
+
deleteAdvancedFilter(tableId: string, advancedFilter: AdvancedFilter<any>): boolean;
|
|
1559
|
+
getAdvancedFilterById(tableId: string, advancedFilterId: string, normalizeForBackend?: boolean): AdvancedFilter<any> | undefined;
|
|
1560
|
+
getDynamicFiltersById(tableId: string, advancedFilterId: string): DynamicFilter<any>[];
|
|
1561
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AdvancedFilterService, never>;
|
|
1562
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AdvancedFilterService>;
|
|
1563
|
+
}
|
|
1564
|
+
|
|
1565
|
+
declare class ColumnConfigService {
|
|
1566
|
+
private userIdFactory;
|
|
1567
|
+
private readonly PARTIAL_KEY_STORAGE_COLUMN_CONFIG;
|
|
1568
|
+
private fullKey;
|
|
1569
|
+
private _columnConfigs;
|
|
1570
|
+
columnConfigs: _angular_core.Signal<Record<string, ColumnConfig<any>[]>>;
|
|
1571
|
+
private setColumnConfigEffect;
|
|
1572
|
+
saveColumnConfig(tableId: string, columnConfig: ColumnConfig<any>[]): boolean;
|
|
1573
|
+
deleteColumnConfig(tableId: string): boolean;
|
|
1574
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ColumnConfigService, never>;
|
|
1575
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ColumnConfigService>;
|
|
1576
|
+
}
|
|
1577
|
+
|
|
1578
|
+
declare class DatosPantallaService {
|
|
1579
|
+
private readonly isBrowser;
|
|
1580
|
+
pantalla: Signal<Pantalla | undefined>;
|
|
1581
|
+
private obtenerDatosPantalla;
|
|
1582
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DatosPantallaService, never>;
|
|
1583
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<DatosPantallaService>;
|
|
1584
|
+
}
|
|
1585
|
+
|
|
1307
1586
|
declare class DynamicHostDirective<T> {
|
|
1308
1587
|
private _vcr;
|
|
1309
1588
|
private _currentRef;
|
|
@@ -1317,5 +1596,5 @@ declare class DynamicHostDirective<T> {
|
|
|
1317
1596
|
declare const includeNoSensible: (cadena: string, query: string) => boolean;
|
|
1318
1597
|
declare const base64ToUtf8: (str: string) => string;
|
|
1319
1598
|
|
|
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 };
|
|
1599
|
+
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 };
|
|
1600
|
+
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 };
|