@c80/ui 1.0.34 → 1.0.37
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/esm2022/lib/icon/icon.component.mjs +65 -205
- package/esm2022/lib/icon/icon.constants.mjs +38 -0
- package/esm2022/lib/icon/icon.types.mjs +2 -0
- package/esm2022/lib/icon/index.mjs +3 -1
- package/esm2022/lib/stat-card/stat-card.component.mjs +1 -1
- package/esm2022/lib/table/table-column-visibility.service.mjs +1 -1
- package/esm2022/lib/table/table-crud-state.service.mjs +97 -76
- package/esm2022/lib/table/table-data-converter.service.mjs +9 -13
- package/esm2022/lib/table/table-data-utils.service.mjs +4 -4
- package/esm2022/lib/table/table-selection.service.mjs +53 -66
- package/esm2022/lib/table/table.component.mjs +24 -7
- package/lib/icon/icon.component.d.ts +38 -44
- package/lib/icon/icon.constants.d.ts +9 -0
- package/lib/icon/icon.types.d.ts +4 -0
- package/lib/icon/index.d.ts +2 -0
- package/lib/stat-card/stat-card.component.d.ts +2 -2
- package/lib/table/table-crud-state.service.d.ts +25 -0
- package/lib/table/table-data-utils.service.d.ts +1 -1
- package/lib/table/table-selection.service.d.ts +14 -8
- package/lib/table/table.component.d.ts +10 -1
- package/package.json +1 -1
|
@@ -1,49 +1,43 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TemplateRef } from '@angular/core';
|
|
2
|
+
import { ColorType, ButtonType } from './icon.types';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
|
-
export type Icon = 'check' | 'cancel' | 'edit' | 'delete' | 'add' | 'view' | 'get' | 'schedule' | 'refresh' | 'check_circle' | 'cancel_circle' | 'error' | 'queue' | 'arrow_up' | 'arrow_down' | 'toggle_on' | 'toggle_off' | 'search' | 'upload' | 'pending_actions' | 'play_circle';
|
|
4
|
-
export type Color = 'primary' | 'secondary' | 'warn' | 'success';
|
|
5
4
|
export declare class C80IconComponent {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
pendingActionsIconTpl: TemplateRef<unknown>;
|
|
42
|
-
playCircleIconTpl: TemplateRef<unknown>;
|
|
43
|
-
getIconTemplate(): TemplateRef<unknown>;
|
|
44
|
-
get iconColor(): string;
|
|
45
|
-
get iconOpacity(): number;
|
|
5
|
+
readonly icon: import("@angular/core").InputSignal<"default" | "check" | "cancel" | "edit" | "delete" | "add" | "view" | "get" | "settings" | "schedule" | "refresh" | "checkCircle" | "cancelCircle" | "error" | "queue" | "arrowUp" | "arrowDown" | "toggleOn" | "toggleOff" | "search" | "upload" | "pendingActions" | "playCircle">;
|
|
6
|
+
readonly color: import("@angular/core").InputSignal<ColorType>;
|
|
7
|
+
readonly customColor: import("@angular/core").InputSignal<string | undefined>;
|
|
8
|
+
readonly disabled: import("@angular/core").InputSignal<boolean>;
|
|
9
|
+
readonly size: import("@angular/core").InputSignal<number>;
|
|
10
|
+
readonly button: import("@angular/core").InputSignalWithTransform<boolean, string | boolean | null | undefined>;
|
|
11
|
+
readonly type: import("@angular/core").InputSignal<ButtonType>;
|
|
12
|
+
readonly iconClick: import("@angular/core").OutputEmitterRef<Event>;
|
|
13
|
+
readonly iconSize: import("@angular/core").Signal<number>;
|
|
14
|
+
readonly iconColor: import("@angular/core").Signal<string>;
|
|
15
|
+
readonly iconOpacity: import("@angular/core").Signal<0.5 | 0.7 | 1>;
|
|
16
|
+
readonly iconTemplate: import("@angular/core").Signal<any>;
|
|
17
|
+
readonly check: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
|
|
18
|
+
readonly cancel: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
|
|
19
|
+
readonly edit: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
|
|
20
|
+
readonly delete: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
|
|
21
|
+
readonly add: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
|
|
22
|
+
readonly view: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
|
|
23
|
+
readonly get: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
|
|
24
|
+
readonly settings: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
|
|
25
|
+
readonly schedule: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
|
|
26
|
+
readonly refresh: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
|
|
27
|
+
readonly checkCircle: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
|
|
28
|
+
readonly cancelCircle: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
|
|
29
|
+
readonly error: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
|
|
30
|
+
readonly queue: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
|
|
31
|
+
readonly arrowUp: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
|
|
32
|
+
readonly arrowDown: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
|
|
33
|
+
readonly toggleOn: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
|
|
34
|
+
readonly toggleOff: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
|
|
35
|
+
readonly search: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
|
|
36
|
+
readonly upload: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
|
|
37
|
+
readonly pendingActions: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
|
|
38
|
+
readonly playCircle: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
|
|
39
|
+
readonly default: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
|
|
46
40
|
onButtonClick(event: Event): void;
|
|
47
41
|
static ɵfac: i0.ɵɵFactoryDeclaration<C80IconComponent, never>;
|
|
48
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<C80IconComponent, "c80-icon", never, { "icon": { "alias": "icon"; "required": false; }; "color": { "alias": "color"; "required": false; }; "customColor": { "alias": "customColor"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "size": { "alias": "size"; "required": false; }; "button": { "alias": "button"; "required": false; }; "type": { "alias": "type"; "required": false; }; }, { "iconClick": "iconClick"; }, never, never, true, never>;
|
|
42
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<C80IconComponent, "c80-icon", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "customColor": { "alias": "customColor"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "button": { "alias": "button"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; }, { "iconClick": "iconClick"; }, never, never, true, never>;
|
|
49
43
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ColorType } from './icon.types';
|
|
2
|
+
export declare const ICON_NAMES: readonly ["default", "check", "cancel", "edit", "delete", "add", "view", "get", "settings", "schedule", "refresh", "checkCircle", "cancelCircle", "error", "queue", "arrowUp", "arrowDown", "toggleOn", "toggleOff", "search", "upload", "pendingActions", "playCircle"];
|
|
3
|
+
export declare const BASE_ICON_COLORS: Readonly<Record<ColorType, string>>;
|
|
4
|
+
export declare const DISABLED_COLOR = "#bdbdbd";
|
|
5
|
+
export declare const DEFAULT_ICON_COLOR = "#222";
|
|
6
|
+
export declare const DISABLED_OPACITY = 0.5;
|
|
7
|
+
export declare const SECONDARY_WARN_OPACITY = 0.7;
|
|
8
|
+
export declare const DEFAULT_OPACITY = 1;
|
|
9
|
+
export declare const BASE_ICON_SIZE = 24;
|
package/lib/icon/index.d.ts
CHANGED
|
@@ -13,6 +13,22 @@ import * as i0 from "@angular/core";
|
|
|
13
13
|
export declare class TableCrudStateService {
|
|
14
14
|
private readonly visibilityService;
|
|
15
15
|
private readonly dataConverter;
|
|
16
|
+
/**
|
|
17
|
+
* Filtra columnas visibles y editables
|
|
18
|
+
*/
|
|
19
|
+
private getEditableColumns;
|
|
20
|
+
/**
|
|
21
|
+
* Convierte valores de row según definición de columnas
|
|
22
|
+
*/
|
|
23
|
+
private convertRowValues;
|
|
24
|
+
/**
|
|
25
|
+
* Inicializa row para creación con valores por defecto
|
|
26
|
+
*/
|
|
27
|
+
private initializeNewRow;
|
|
28
|
+
/**
|
|
29
|
+
* Inicializa row para edición con valores actuales
|
|
30
|
+
*/
|
|
31
|
+
private initializeEditRow;
|
|
16
32
|
/**
|
|
17
33
|
* Inicializa el estado CRUD para una nueva tabla
|
|
18
34
|
* @returns Objeto con signals y métodos para gestión CRUD
|
|
@@ -39,6 +55,15 @@ export declare class TableCrudStateService {
|
|
|
39
55
|
}>) => void;
|
|
40
56
|
applyInputValues: (partialValues: Partial<T>) => void;
|
|
41
57
|
};
|
|
58
|
+
private createStartCreateFn;
|
|
59
|
+
private createCancelCreateFn;
|
|
60
|
+
private createUpdateNewRowFn;
|
|
61
|
+
private createSaveCreateFn;
|
|
62
|
+
private createStartEditFn;
|
|
63
|
+
private createCancelEditFn;
|
|
64
|
+
private createUpdateEditRowFn;
|
|
65
|
+
private createSaveEditFn;
|
|
66
|
+
private createApplyInputValuesFn;
|
|
42
67
|
static ɵfac: i0.ɵɵFactoryDeclaration<TableCrudStateService, never>;
|
|
43
68
|
static ɵprov: i0.ɵɵInjectableDeclaration<TableCrudStateService>;
|
|
44
69
|
}
|
|
@@ -23,7 +23,7 @@ export declare class TableDataUtilsService {
|
|
|
23
23
|
* @param accessor - Ruta de acceso usando notación de punto
|
|
24
24
|
* @returns El valor anidado o undefined
|
|
25
25
|
*/
|
|
26
|
-
getNestedValue(obj:
|
|
26
|
+
getNestedValue(obj: Record<string, unknown>, accessor: string): unknown;
|
|
27
27
|
/**
|
|
28
28
|
* Devuelve el valor de display para una celda, mostrando '-' para valores falsy excepto 0, false y objetos/arrays vacíos
|
|
29
29
|
* @param value - Valor a formatear
|
|
@@ -15,25 +15,31 @@ export declare class TableSelectionService {
|
|
|
15
15
|
* Inicializa el estado de selección para una nueva tabla
|
|
16
16
|
* @returns Objeto con signals y métodos de selección
|
|
17
17
|
*/
|
|
18
|
-
createSelectionState<
|
|
18
|
+
createSelectionState<_T extends Record<string, unknown>>(): {
|
|
19
19
|
selectedItems: import("@angular/core").Signal<Set<ID>>;
|
|
20
20
|
selectAllChecked: import("@angular/core").Signal<boolean>;
|
|
21
21
|
selectAllIndeterminate: import("@angular/core").Signal<boolean>;
|
|
22
22
|
clearSelection: () => void;
|
|
23
|
-
toggleSelectAll: (allItems:
|
|
24
|
-
toggleItemSelection: (item:
|
|
25
|
-
isItemSelected: (item:
|
|
26
|
-
preserveSelection: (newData:
|
|
27
|
-
getSelectedItems: (allData:
|
|
28
|
-
updateSelectAllState: (allItems?: T[]) => void;
|
|
23
|
+
toggleSelectAll: (allItems: Record<string, unknown>[]) => void;
|
|
24
|
+
toggleItemSelection: (item: Record<string, unknown>, multiple: boolean) => void;
|
|
25
|
+
isItemSelected: (item: Record<string, unknown>) => boolean;
|
|
26
|
+
preserveSelection: (newData: Record<string, unknown>[]) => void;
|
|
27
|
+
getSelectedItems: (allData: Record<string, unknown>[]) => Record<string, unknown>[];
|
|
29
28
|
};
|
|
29
|
+
private createClearSelectionFn;
|
|
30
|
+
private createToggleSelectAllFn;
|
|
31
|
+
private createToggleItemSelectionFn;
|
|
32
|
+
private createIsItemSelectedFn;
|
|
33
|
+
private createPreserveSelectionFn;
|
|
34
|
+
private createGetSelectedItemsFn;
|
|
35
|
+
private updateSelectAllState;
|
|
30
36
|
/**
|
|
31
37
|
* Emite los elementos seleccionados a través del EventEmitter proporcionado
|
|
32
38
|
* @param selectionState - Estado de selección
|
|
33
39
|
* @param allData - Todos los datos de la tabla
|
|
34
40
|
* @param selectableEmitter - EventEmitter para emitir la selección
|
|
35
41
|
*/
|
|
36
|
-
emitSelection<T extends Record<string, unknown>>(selectionState: ReturnType<typeof this.createSelectionState
|
|
42
|
+
emitSelection<T extends Record<string, unknown>>(selectionState: ReturnType<typeof this.createSelectionState>, allData: T[], selectableEmitter: EventEmitter<T[]>): void;
|
|
37
43
|
static ɵfac: i0.ɵɵFactoryDeclaration<TableSelectionService, never>;
|
|
38
44
|
static ɵprov: i0.ɵɵInjectableDeclaration<TableSelectionService>;
|
|
39
45
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { EventEmitter, OnInit, OnDestroy } from '@angular/core';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
|
+
import { type IconType } from '../icon';
|
|
3
4
|
import { C80TableColDef, ID } from './table.types';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
/**
|
|
@@ -69,6 +70,8 @@ import * as i0 from "@angular/core";
|
|
|
69
70
|
size: number;
|
|
70
71
|
multiple: boolean;
|
|
71
72
|
noConfirm: boolean;
|
|
73
|
+
customActionIcon: IconType;
|
|
74
|
+
customActionTooltip: string;
|
|
72
75
|
createAction: EventEmitter<{
|
|
73
76
|
row: Partial<T>;
|
|
74
77
|
done: (result: boolean) => void;
|
|
@@ -89,6 +92,7 @@ import * as i0 from "@angular/core";
|
|
|
89
92
|
viewAction: EventEmitter<T>;
|
|
90
93
|
uploadAction: EventEmitter<T>;
|
|
91
94
|
getRowButtonAction: EventEmitter<T>;
|
|
95
|
+
customAction: EventEmitter<T>;
|
|
92
96
|
moveUpAction: EventEmitter<{
|
|
93
97
|
id: ID;
|
|
94
98
|
done: (result: boolean) => void;
|
|
@@ -124,6 +128,7 @@ import * as i0 from "@angular/core";
|
|
|
124
128
|
readonly hasViewActionListener: import("@angular/core").WritableSignal<boolean>;
|
|
125
129
|
readonly hasUploadActionListener: import("@angular/core").WritableSignal<boolean>;
|
|
126
130
|
readonly hasGetRowButtonListener: import("@angular/core").WritableSignal<boolean>;
|
|
131
|
+
readonly hasCustomActionListener: import("@angular/core").WritableSignal<boolean>;
|
|
127
132
|
readonly hasMoveUpActionListener: import("@angular/core").WritableSignal<boolean>;
|
|
128
133
|
readonly hasMoveDownActionListener: import("@angular/core").WritableSignal<boolean>;
|
|
129
134
|
readonly hasEnableActionListener: import("@angular/core").WritableSignal<boolean>;
|
|
@@ -166,6 +171,10 @@ import * as i0 from "@angular/core";
|
|
|
166
171
|
* Emits the getRowButtonAction event with the entire row data
|
|
167
172
|
*/
|
|
168
173
|
onGetRowButton(row: T): void;
|
|
174
|
+
/**
|
|
175
|
+
* Emits the customAction event with the entire row data
|
|
176
|
+
*/
|
|
177
|
+
onCustomAction(row: T): void;
|
|
169
178
|
/**
|
|
170
179
|
* Emits the moveUpAction event with the row id
|
|
171
180
|
*/
|
|
@@ -212,6 +221,6 @@ import * as i0 from "@angular/core";
|
|
|
212
221
|
isColumnVisibleForRow(column: C80TableColDef, row: T): boolean;
|
|
213
222
|
onUpload(row: T): void;
|
|
214
223
|
static ɵfac: i0.ɵɵFactoryDeclaration<C80TableComponent<any>, never>;
|
|
215
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<C80TableComponent<any>, "c80-table", never, { "data$": { "alias": "data$"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "inputValues$": { "alias": "inputValues$"; "required": false; }; "size": { "alias": "size"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "noConfirm": { "alias": "noConfirm"; "required": false; }; }, { "createAction": "createAction"; "updateAction": "updateAction"; "deleteAction": "deleteAction"; "cancelAction": "cancelAction"; "viewAction": "viewAction"; "uploadAction": "uploadAction"; "getRowButtonAction": "getRowButtonAction"; "moveUpAction": "moveUpAction"; "moveDownAction": "moveDownAction"; "enableAction": "enableAction"; "searchTerm": "searchTerm"; "errorEvent": "errorEvent"; "selectable": "selectable"; }, never, never, true, never>;
|
|
224
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<C80TableComponent<any>, "c80-table", never, { "data$": { "alias": "data$"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "inputValues$": { "alias": "inputValues$"; "required": false; }; "size": { "alias": "size"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "noConfirm": { "alias": "noConfirm"; "required": false; }; "customActionIcon": { "alias": "customActionIcon"; "required": false; }; "customActionTooltip": { "alias": "customActionTooltip"; "required": false; }; }, { "createAction": "createAction"; "updateAction": "updateAction"; "deleteAction": "deleteAction"; "cancelAction": "cancelAction"; "viewAction": "viewAction"; "uploadAction": "uploadAction"; "getRowButtonAction": "getRowButtonAction"; "customAction": "customAction"; "moveUpAction": "moveUpAction"; "moveDownAction": "moveDownAction"; "enableAction": "enableAction"; "searchTerm": "searchTerm"; "errorEvent": "errorEvent"; "selectable": "selectable"; }, never, never, true, never>;
|
|
216
225
|
static ngAcceptInputType_noConfirm: boolean | string;
|
|
217
226
|
}
|