@c80/ui 1.0.57 → 1.0.58
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/index.js +12 -8
- package/esm2022/index.js.map +1 -1
- package/esm2022/lib/action-list/action-list.component.js +7 -0
- package/esm2022/lib/action-list/action-list.component.js.map +1 -1
- package/esm2022/lib/action-list/action-list.types.js.map +1 -1
- package/esm2022/lib/card-level/card-level.component.js +3 -0
- package/esm2022/lib/card-level/card-level.component.js.map +1 -1
- package/esm2022/lib/header/header.component.js +8 -2
- package/esm2022/lib/header/header.component.js.map +1 -1
- package/esm2022/lib/header/header.types.js.map +1 -1
- package/esm2022/lib/icon/icon.component.js +10 -2
- package/esm2022/lib/icon/icon.component.js.map +1 -1
- package/esm2022/lib/icon/icon.definitions.js +34 -1
- package/esm2022/lib/icon/icon.definitions.js.map +1 -1
- package/esm2022/lib/icon/icon.types.js.map +1 -1
- package/esm2022/lib/icon/icon.utils.js +7 -0
- package/esm2022/lib/icon/icon.utils.js.map +1 -1
- package/esm2022/lib/icon/theme.service.js +17 -0
- package/esm2022/lib/icon/theme.service.js.map +1 -1
- package/esm2022/lib/info-list/info-list.component.js +3 -0
- package/esm2022/lib/info-list/info-list.component.js.map +1 -1
- package/esm2022/lib/input-field/input-field.component.js +19 -2
- package/esm2022/lib/input-field/input-field.component.js.map +1 -1
- package/esm2022/lib/input-search/c80-input-search.component.js +26 -0
- package/esm2022/lib/input-search/c80-input-search.component.js.map +1 -0
- package/esm2022/lib/input-search/index.js +2 -0
- package/esm2022/lib/input-search/index.js.map +1 -0
- package/esm2022/lib/modal/modal.component.js +57 -0
- package/esm2022/lib/modal/modal.component.js.map +1 -1
- package/esm2022/lib/modal/modal.service.js +60 -3
- package/esm2022/lib/modal/modal.service.js.map +1 -1
- package/esm2022/lib/profile-stats/profile-stats.component.js +6 -2
- package/esm2022/lib/profile-stats/profile-stats.component.js.map +1 -1
- package/esm2022/lib/profile-stats/profile-stats.types.js.map +1 -1
- package/esm2022/lib/rating-display/index.js +2 -0
- package/esm2022/lib/rating-display/index.js.map +1 -0
- package/esm2022/lib/rating-display/rating-display.component.js +24 -0
- package/esm2022/lib/rating-display/rating-display.component.js.map +1 -0
- package/esm2022/lib/rating-stars/index.js +2 -0
- package/esm2022/lib/rating-stars/index.js.map +1 -0
- package/esm2022/lib/rating-stars/rating-stars.component.js +33 -0
- package/esm2022/lib/rating-stars/rating-stars.component.js.map +1 -0
- package/esm2022/lib/select/select.component.js +27 -0
- package/esm2022/lib/select/select.component.js.map +1 -1
- package/esm2022/lib/snackbar/snackbar.component.js +17 -0
- package/esm2022/lib/snackbar/snackbar.component.js.map +1 -1
- package/esm2022/lib/snackbar/snackbar.service.js +9 -0
- package/esm2022/lib/snackbar/snackbar.service.js.map +1 -1
- package/esm2022/lib/spinner/index.js +2 -0
- package/esm2022/lib/spinner/index.js.map +1 -0
- package/esm2022/lib/spinner/spinner.component.js +22 -0
- package/esm2022/lib/spinner/spinner.component.js.map +1 -0
- package/esm2022/lib/stat-card/stat-card.component.js +3 -0
- package/esm2022/lib/stat-card/stat-card.component.js.map +1 -1
- package/esm2022/lib/tab/c80-tab.component.js +19 -2
- package/esm2022/lib/tab/c80-tab.component.js.map +1 -1
- package/esm2022/lib/tab/directives/c80-tab-item.directive.js +3 -0
- package/esm2022/lib/tab/directives/c80-tab-item.directive.js.map +1 -1
- package/esm2022/lib/tab/directives/c80-tab-label.directive.js +3 -0
- package/esm2022/lib/tab/directives/c80-tab-label.directive.js.map +1 -1
- package/esm2022/lib/table/table-column-visibility.service.js +27 -34
- package/esm2022/lib/table/table-column-visibility.service.js.map +1 -1
- package/esm2022/lib/table/table-crud-state.service.js +7 -7
- package/esm2022/lib/table/table-crud-state.service.js.map +1 -1
- package/esm2022/lib/table/table-data-converter.service.js +18 -10
- package/esm2022/lib/table/table-data-converter.service.js.map +1 -1
- package/esm2022/lib/table/table-data-utils.service.js +17 -1
- package/esm2022/lib/table/table-data-utils.service.js.map +1 -1
- package/esm2022/lib/table/table-selection.service.js +14 -3
- package/esm2022/lib/table/table-selection.service.js.map +1 -1
- package/esm2022/lib/table/table.component.js +58 -16
- package/esm2022/lib/table/table.component.js.map +1 -1
- package/esm2022/lib/table/table.types.js.map +1 -1
- package/esm2022/lib/table/table.utils.js +7 -0
- package/esm2022/lib/table/table.utils.js.map +1 -1
- package/index.d.ts +12 -8
- package/lib/action-list/action-list.component.d.ts +7 -0
- package/lib/action-list/action-list.types.d.ts +2 -1
- package/lib/card-level/card-level.component.d.ts +4 -1
- package/lib/header/header.component.d.ts +7 -1
- package/lib/header/header.types.d.ts +2 -0
- package/lib/icon/icon.component.d.ts +9 -1
- package/lib/icon/icon.types.d.ts +2 -0
- package/lib/icon/icon.utils.d.ts +7 -0
- package/lib/icon/theme.service.d.ts +17 -0
- package/lib/info-list/info-list.component.d.ts +3 -0
- package/lib/input-field/input-field.component.d.ts +17 -0
- package/lib/input-search/c80-input-search.component.d.ts +16 -0
- package/lib/input-search/index.d.ts +1 -0
- package/lib/modal/modal.component.d.ts +57 -0
- package/lib/modal/modal.service.d.ts +72 -3
- package/lib/profile-stats/profile-stats.component.d.ts +4 -0
- package/lib/profile-stats/profile-stats.types.d.ts +6 -2
- package/lib/rating-display/index.d.ts +1 -0
- package/lib/rating-display/rating-display.component.d.ts +12 -0
- package/lib/rating-stars/index.d.ts +1 -0
- package/lib/rating-stars/rating-stars.component.d.ts +19 -0
- package/lib/select/select.component.d.ts +27 -0
- package/lib/snackbar/snackbar.component.d.ts +17 -0
- package/lib/snackbar/snackbar.service.d.ts +9 -0
- package/lib/spinner/index.d.ts +1 -0
- package/lib/spinner/spinner.component.d.ts +12 -0
- package/lib/stat-card/stat-card.component.d.ts +3 -0
- package/lib/tab/c80-tab.component.d.ts +17 -0
- package/lib/tab/directives/c80-tab-item.directive.d.ts +3 -0
- package/lib/tab/directives/c80-tab-label.directive.d.ts +3 -0
- package/lib/table/table-column-visibility.service.d.ts +19 -6
- package/lib/table/table-crud-state.service.d.ts +23 -13
- package/lib/table/table-data-converter.service.d.ts +2 -0
- package/lib/table/table-data-utils.service.d.ts +7 -0
- package/lib/table/table-selection.service.d.ts +14 -12
- package/lib/table/table.component.d.ts +3 -0
- package/lib/table/table.types.d.ts +1 -0
- package/lib/table/table.utils.d.ts +2 -0
- package/package.json +1 -1
|
@@ -1,9 +1,26 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
*/
|
|
2
5
|
export declare class ThemeService {
|
|
3
6
|
readonly isDark: import("@angular/core").WritableSignal<boolean>;
|
|
7
|
+
/**
|
|
8
|
+
*
|
|
9
|
+
* @returns true si el tema es oscuro
|
|
10
|
+
*/
|
|
4
11
|
private getInitialTheme;
|
|
12
|
+
/**
|
|
13
|
+
*
|
|
14
|
+
*/
|
|
5
15
|
toggle(): void;
|
|
16
|
+
/**
|
|
17
|
+
*
|
|
18
|
+
* @param isDark
|
|
19
|
+
*/
|
|
6
20
|
private applyTheme;
|
|
21
|
+
/**
|
|
22
|
+
*
|
|
23
|
+
*/
|
|
7
24
|
initialize(): void;
|
|
8
25
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThemeService, never>;
|
|
9
26
|
static ɵprov: i0.ɵɵInjectableDeclaration<ThemeService>;
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { InfoItem } from './info-list.types';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
3
6
|
export declare class InfoListComponent {
|
|
4
7
|
readonly items: import("@angular/core").InputSignal<InfoItem[]>;
|
|
5
8
|
static ɵfac: i0.ɵɵFactoryDeclaration<InfoListComponent, never>;
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
*/
|
|
2
5
|
export declare class InputFieldComponent {
|
|
3
6
|
readonly label: import("@angular/core").WritableSignal<string>;
|
|
4
7
|
readonly value: import("@angular/core").WritableSignal<string>;
|
|
@@ -10,9 +13,23 @@ export declare class InputFieldComponent {
|
|
|
10
13
|
valueChange: import("@angular/core").OutputEmitterRef<string>;
|
|
11
14
|
enterPressed: import("@angular/core").OutputEmitterRef<void>;
|
|
12
15
|
protected readonly isFocused: import("@angular/core").WritableSignal<boolean>;
|
|
16
|
+
/**
|
|
17
|
+
*
|
|
18
|
+
* @param event
|
|
19
|
+
*/
|
|
13
20
|
protected onValueChange(event: Event): void;
|
|
21
|
+
/**
|
|
22
|
+
*
|
|
23
|
+
*/
|
|
14
24
|
protected onFocus(): void;
|
|
25
|
+
/**
|
|
26
|
+
*
|
|
27
|
+
*/
|
|
15
28
|
protected onBlur(): void;
|
|
29
|
+
/**
|
|
30
|
+
*
|
|
31
|
+
* @param event
|
|
32
|
+
*/
|
|
16
33
|
protected onKeyDown(event: KeyboardEvent): void;
|
|
17
34
|
static ɵfac: i0.ɵɵFactoryDeclaration<InputFieldComponent, never>;
|
|
18
35
|
static ɵcmp: i0.ɵɵComponentDeclaration<InputFieldComponent, "c80-input-field", never, {}, { "valueChange": "valueChange"; "enterPressed": "enterPressed"; }, never, never, true, never>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
*/
|
|
5
|
+
export declare class InputSearchComponent {
|
|
6
|
+
readonly value: import("@angular/core").InputSignal<string>;
|
|
7
|
+
readonly placeholder: import("@angular/core").InputSignal<string>;
|
|
8
|
+
readonly inputChange: import("@angular/core").OutputEmitterRef<string>;
|
|
9
|
+
/**
|
|
10
|
+
*
|
|
11
|
+
* @param event
|
|
12
|
+
*/
|
|
13
|
+
protected onInput(event: Event): void;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<InputSearchComponent, never>;
|
|
15
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<InputSearchComponent, "c80-input-search", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; }, { "inputChange": "inputChange"; }, never, never, true, never>;
|
|
16
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './c80-input-search.component';
|
|
@@ -14,25 +14,82 @@ export interface ModalResult {
|
|
|
14
14
|
action: 'confirm' | 'cancel' | 'yes' | 'no';
|
|
15
15
|
confirmed: boolean;
|
|
16
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
*
|
|
19
|
+
*/
|
|
17
20
|
export declare class ModalComponent {
|
|
18
21
|
private readonly modalService;
|
|
19
22
|
readonly isOpen: import("@angular/core").Signal<boolean>;
|
|
20
23
|
readonly config: import("@angular/core").Signal<ModalConfig>;
|
|
21
24
|
readonly isVisible: import("@angular/core").Signal<boolean>;
|
|
25
|
+
/**
|
|
26
|
+
*
|
|
27
|
+
*/
|
|
22
28
|
constructor();
|
|
29
|
+
/**
|
|
30
|
+
* Maneja la confirmación del modal
|
|
31
|
+
*/
|
|
23
32
|
onConfirm(): void;
|
|
33
|
+
/**
|
|
34
|
+
* Maneja la cancelación del modal
|
|
35
|
+
*/
|
|
24
36
|
onCancel(): void;
|
|
37
|
+
/**
|
|
38
|
+
* Maneja la respuesta afirmativa del modal
|
|
39
|
+
*/
|
|
25
40
|
onYes(): void;
|
|
41
|
+
/**
|
|
42
|
+
* Maneja la respuesta negativa del modal
|
|
43
|
+
*/
|
|
26
44
|
onNo(): void;
|
|
45
|
+
/**
|
|
46
|
+
* Cierra el modal actual
|
|
47
|
+
*/
|
|
27
48
|
closeModal(): void;
|
|
49
|
+
/**
|
|
50
|
+
* Maneja el clic en el backdrop del modal
|
|
51
|
+
* @param event - Evento de clic
|
|
52
|
+
*/
|
|
28
53
|
onBackdropClick(event: Event): void;
|
|
54
|
+
/**
|
|
55
|
+
*
|
|
56
|
+
* @returns Clase CSS del botón primario según el tipo de modal
|
|
57
|
+
*/
|
|
29
58
|
getPrimaryButtonClass(): string;
|
|
59
|
+
/**
|
|
60
|
+
*
|
|
61
|
+
* @returns true si debe mostrar botones Sí/No
|
|
62
|
+
*/
|
|
30
63
|
showYesNoButtons(): boolean;
|
|
64
|
+
/**
|
|
65
|
+
*
|
|
66
|
+
* @returns true si debe mostrar botones Confirmar/Cancelar
|
|
67
|
+
*/
|
|
31
68
|
showConfirmButtons(): boolean;
|
|
69
|
+
/**
|
|
70
|
+
*
|
|
71
|
+
* @returns true si debe mostrar botón OK
|
|
72
|
+
*/
|
|
32
73
|
showOkButton(): boolean;
|
|
74
|
+
/**
|
|
75
|
+
*
|
|
76
|
+
* @returns Texto del botón de confirmación
|
|
77
|
+
*/
|
|
33
78
|
getConfirmText(): string;
|
|
79
|
+
/**
|
|
80
|
+
*
|
|
81
|
+
* @returns Texto del botón de cancelar
|
|
82
|
+
*/
|
|
34
83
|
getCancelText(): string;
|
|
84
|
+
/**
|
|
85
|
+
*
|
|
86
|
+
* @returns Texto del botón Sí
|
|
87
|
+
*/
|
|
35
88
|
getYesText(): string;
|
|
89
|
+
/**
|
|
90
|
+
*
|
|
91
|
+
* @returns Texto del botón No
|
|
92
|
+
*/
|
|
36
93
|
getNoText(): string;
|
|
37
94
|
static ɵfac: i0.ɵɵFactoryDeclaration<ModalComponent, never>;
|
|
38
95
|
static ɵcmp: i0.ɵɵComponentDeclaration<ModalComponent, "c80-modal", never, {}, {}, never, never, true, never>;
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { ModalConfig, ModalResult } from './modal.component';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
3
6
|
export declare class ModalService {
|
|
4
7
|
private readonly isOpen;
|
|
5
8
|
private readonly config;
|
|
@@ -8,13 +11,79 @@ export declare class ModalService {
|
|
|
8
11
|
isOpen: import("@angular/core").Signal<boolean>;
|
|
9
12
|
config: import("@angular/core").Signal<ModalConfig>;
|
|
10
13
|
};
|
|
14
|
+
/**
|
|
15
|
+
*
|
|
16
|
+
* @param config
|
|
17
|
+
*/
|
|
11
18
|
showModal(config: ModalConfig): Promise<ModalResult>;
|
|
12
|
-
|
|
13
|
-
|
|
19
|
+
/**
|
|
20
|
+
*
|
|
21
|
+
* @param options
|
|
22
|
+
* @param options.title
|
|
23
|
+
* @param options.message
|
|
24
|
+
* @param options.confirmText
|
|
25
|
+
* @param options.cancelText
|
|
26
|
+
* @returns Promise que resuelve true si se confirmó
|
|
27
|
+
*/
|
|
28
|
+
confirm(options: {
|
|
29
|
+
title: string;
|
|
30
|
+
message: string;
|
|
31
|
+
confirmText?: string;
|
|
32
|
+
cancelText?: string;
|
|
33
|
+
}): Promise<boolean>;
|
|
34
|
+
/**
|
|
35
|
+
*
|
|
36
|
+
* @param options
|
|
37
|
+
* @param options.title
|
|
38
|
+
* @param options.message
|
|
39
|
+
* @param options.yesText
|
|
40
|
+
* @param options.noText
|
|
41
|
+
* @returns Promise que resuelve true si se eligió Sí
|
|
42
|
+
*/
|
|
43
|
+
yesNo(options: {
|
|
44
|
+
title: string;
|
|
45
|
+
message: string;
|
|
46
|
+
yesText?: string;
|
|
47
|
+
noText?: string;
|
|
48
|
+
}): Promise<boolean>;
|
|
49
|
+
/**
|
|
50
|
+
*
|
|
51
|
+
* @param title
|
|
52
|
+
* @param message
|
|
53
|
+
* @returns Promise que resuelve cuando se cierra el modal
|
|
54
|
+
*/
|
|
14
55
|
info(title: string, message: string): Promise<void>;
|
|
15
|
-
|
|
56
|
+
/**
|
|
57
|
+
*
|
|
58
|
+
* @param options
|
|
59
|
+
* @param options.title
|
|
60
|
+
* @param options.message
|
|
61
|
+
* @param options.confirmText
|
|
62
|
+
* @param options.cancelText
|
|
63
|
+
* @returns Promise que resuelve true si se confirmó
|
|
64
|
+
*/
|
|
65
|
+
warning(options: {
|
|
66
|
+
title: string;
|
|
67
|
+
message: string;
|
|
68
|
+
confirmText?: string;
|
|
69
|
+
cancelText?: string;
|
|
70
|
+
}): Promise<boolean>;
|
|
71
|
+
/**
|
|
72
|
+
*
|
|
73
|
+
* @param title
|
|
74
|
+
* @param message
|
|
75
|
+
* @param confirmText
|
|
76
|
+
* @returns Promise que resuelve true si se confirmó
|
|
77
|
+
*/
|
|
16
78
|
error(title: string, message: string, confirmText?: string): Promise<void>;
|
|
79
|
+
/**
|
|
80
|
+
* Maneja el resultado del modal y resuelve la promesa
|
|
81
|
+
* @param result - Resultado de la acción del modal
|
|
82
|
+
*/
|
|
17
83
|
handleResult(result: ModalResult): void;
|
|
84
|
+
/**
|
|
85
|
+
* Cierra el modal actual
|
|
86
|
+
*/
|
|
18
87
|
closeModal(): void;
|
|
19
88
|
static ɵfac: i0.ɵɵFactoryDeclaration<ModalService, never>;
|
|
20
89
|
static ɵprov: i0.ɵɵInjectableDeclaration<ModalService>;
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import type { StatItem } from './profile-stats.types';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Componente para mostrar estadísticas del usuario
|
|
5
|
+
* Soporta valores con etiquetas o botones de acción
|
|
6
|
+
*/
|
|
3
7
|
export declare class ProfileStatsComponent {
|
|
4
8
|
stats: import("@angular/core").InputSignal<StatItem[]>;
|
|
5
9
|
static ɵfac: i0.ɵɵFactoryDeclaration<ProfileStatsComponent, never>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './rating-display.component';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
*/
|
|
5
|
+
export declare class RatingDisplayComponent {
|
|
6
|
+
rating: import("@angular/core").InputSignal<number>;
|
|
7
|
+
size: import("@angular/core").InputSignal<number>;
|
|
8
|
+
spacing: import("@angular/core").InputSignal<number>;
|
|
9
|
+
protected readonly stars: import("@angular/core").Signal<unknown[]>;
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RatingDisplayComponent, never>;
|
|
11
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RatingDisplayComponent, "c80-rating-display", never, { "rating": { "alias": "rating"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "spacing": { "alias": "spacing"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './rating-stars.component';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
*/
|
|
5
|
+
export declare class RatingStarsComponent {
|
|
6
|
+
rating: import("@angular/core").InputSignal<number>;
|
|
7
|
+
showLabel: import("@angular/core").InputSignal<boolean>;
|
|
8
|
+
readonly: import("@angular/core").InputSignal<boolean>;
|
|
9
|
+
ratingChange: import("@angular/core").OutputEmitterRef<number>;
|
|
10
|
+
protected readonly currentRating: import("@angular/core").Signal<number>;
|
|
11
|
+
protected readonly stars: import("@angular/core").Signal<boolean[]>;
|
|
12
|
+
/**
|
|
13
|
+
*
|
|
14
|
+
* @param rating
|
|
15
|
+
*/
|
|
16
|
+
protected onStarClick(rating: number): void;
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RatingStarsComponent, never>;
|
|
18
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RatingStarsComponent, "c80-rating-stars", never, { "rating": { "alias": "rating"; "required": false; "isSignal": true; }; "showLabel": { "alias": "showLabel"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; }, { "ratingChange": "ratingChange"; }, never, never, true, never>;
|
|
19
|
+
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { type ElementRef } from '@angular/core';
|
|
2
2
|
import type { SelectOption } from './select.model';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
*
|
|
6
|
+
*/
|
|
4
7
|
export declare class SelectComponent<T = string> {
|
|
5
8
|
readonly label: import("@angular/core").InputSignal<string>;
|
|
6
9
|
readonly placeholder: import("@angular/core").InputSignal<string>;
|
|
@@ -18,12 +21,36 @@ export declare class SelectComponent<T = string> {
|
|
|
18
21
|
readonly controlId: string;
|
|
19
22
|
readonly searchInput: import("@angular/core").Signal<ElementRef<HTMLInputElement> | undefined>;
|
|
20
23
|
readonly filteredOptions: import("@angular/core").Signal<SelectOption<T>[]>;
|
|
24
|
+
/**
|
|
25
|
+
*
|
|
26
|
+
*/
|
|
21
27
|
toggleDropdown(): void;
|
|
28
|
+
/**
|
|
29
|
+
*
|
|
30
|
+
* @param option
|
|
31
|
+
*/
|
|
22
32
|
selectOption(option: SelectOption<T>): void;
|
|
33
|
+
/**
|
|
34
|
+
*
|
|
35
|
+
*/
|
|
23
36
|
selectNull(): void;
|
|
37
|
+
/**
|
|
38
|
+
*
|
|
39
|
+
* @returns Etiqueta del valor seleccionado o placeholder
|
|
40
|
+
*/
|
|
24
41
|
getSelectedLabel(): string;
|
|
42
|
+
/**
|
|
43
|
+
*
|
|
44
|
+
*/
|
|
25
45
|
closeDropdown(): void;
|
|
46
|
+
/**
|
|
47
|
+
*
|
|
48
|
+
* @param term
|
|
49
|
+
*/
|
|
26
50
|
onSearchChange(term: string): void;
|
|
51
|
+
/**
|
|
52
|
+
*
|
|
53
|
+
*/
|
|
27
54
|
clearSearch(): void;
|
|
28
55
|
static ɵfac: i0.ɵɵFactoryDeclaration<SelectComponent<any>, never>;
|
|
29
56
|
static ɵcmp: i0.ɵɵComponentDeclaration<SelectComponent<any>, "c80-select", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "filterable": { "alias": "filterable"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "opened": "opened"; }, never, never, true, never>;
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { SnackbarData } from './snackbar.model';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
3
6
|
export declare class SnackbarComponent {
|
|
4
7
|
private readonly elementRef;
|
|
5
8
|
private readonly renderer;
|
|
@@ -8,9 +11,23 @@ export declare class SnackbarComponent {
|
|
|
8
11
|
readonly visible: import("@angular/core").WritableSignal<boolean>;
|
|
9
12
|
private timerId?;
|
|
10
13
|
readonly panelClasses: import("@angular/core").Signal<string>;
|
|
14
|
+
/**
|
|
15
|
+
*
|
|
16
|
+
* @param data
|
|
17
|
+
*/
|
|
11
18
|
show(data: SnackbarData): void;
|
|
19
|
+
/**
|
|
20
|
+
*
|
|
21
|
+
*/
|
|
12
22
|
dismiss(): void;
|
|
23
|
+
/**
|
|
24
|
+
*
|
|
25
|
+
*/
|
|
13
26
|
private clearTimer;
|
|
27
|
+
/**
|
|
28
|
+
*
|
|
29
|
+
* @param config
|
|
30
|
+
*/
|
|
14
31
|
private applyPosition;
|
|
15
32
|
static ɵfac: i0.ɵɵFactoryDeclaration<SnackbarComponent, never>;
|
|
16
33
|
static ɵcmp: i0.ɵɵComponentDeclaration<SnackbarComponent, "c80-snackbar", never, {}, {}, never, never, true, never>;
|
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
import type { SnackbarConfig } from './snackbar.model';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
3
6
|
export declare class SnackbarService {
|
|
4
7
|
private readonly appRef;
|
|
5
8
|
private readonly injector;
|
|
6
9
|
private componentRef?;
|
|
7
10
|
private readonly defaultConfig;
|
|
11
|
+
/**
|
|
12
|
+
*
|
|
13
|
+
* @param message
|
|
14
|
+
* @param action
|
|
15
|
+
* @param config
|
|
16
|
+
*/
|
|
8
17
|
open(message: string, action?: string, config?: SnackbarConfig): void;
|
|
9
18
|
static ɵfac: i0.ɵɵFactoryDeclaration<SnackbarService, never>;
|
|
10
19
|
static ɵprov: i0.ɵɵInjectableDeclaration<SnackbarService>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './spinner.component';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
*/
|
|
5
|
+
export declare class SpinnerComponent {
|
|
6
|
+
readonly size: import("@angular/core").InputSignal<number>;
|
|
7
|
+
readonly borderWidth: import("@angular/core").InputSignal<number>;
|
|
8
|
+
readonly color: import("@angular/core").InputSignal<string>;
|
|
9
|
+
readonly message: import("@angular/core").InputSignal<string>;
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SpinnerComponent, never>;
|
|
11
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SpinnerComponent, "c80-spinner", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "borderWidth": { "alias": "borderWidth"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "message": { "alias": "message"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
12
|
+
}
|
|
@@ -2,13 +2,30 @@ import { type TemplateRef } from '@angular/core';
|
|
|
2
2
|
import { C80TabItemDirective } from './directives/c80-tab-item.directive';
|
|
3
3
|
import { C80TabLabelDirective } from './directives/c80-tab-label.directive';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
+
/**
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
5
8
|
export declare class TabComponent {
|
|
6
9
|
readonly tabs: import("@angular/core").Signal<readonly C80TabItemDirective[]>;
|
|
7
10
|
readonly labels: import("@angular/core").Signal<readonly C80TabLabelDirective[]>;
|
|
8
11
|
readonly selectedIndex: import("@angular/core").ModelSignal<number>;
|
|
9
12
|
readonly selectedIndexChange: import("@angular/core").OutputEmitterRef<number>;
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
* @param index
|
|
16
|
+
*/
|
|
10
17
|
onTabClick(index: number): void;
|
|
18
|
+
/**
|
|
19
|
+
*
|
|
20
|
+
* @param index
|
|
21
|
+
* @returns Template del contenido del tab o null
|
|
22
|
+
*/
|
|
11
23
|
getTabContent(index: number): TemplateRef<unknown> | null;
|
|
24
|
+
/**
|
|
25
|
+
*
|
|
26
|
+
* @param index
|
|
27
|
+
* @returns Template de la etiqueta del tab o null
|
|
28
|
+
*/
|
|
12
29
|
getTabLabel(index: number): TemplateRef<unknown> | null;
|
|
13
30
|
static ɵfac: i0.ɵɵFactoryDeclaration<TabComponent, never>;
|
|
14
31
|
static ɵcmp: i0.ɵɵComponentDeclaration<TabComponent, "c80-tab", never, { "selectedIndex": { "alias": "selectedIndex"; "required": false; "isSignal": true; }; }, { "selectedIndex": "selectedIndexChange"; "selectedIndexChange": "selectedIndexChange"; }, ["tabs", "labels"], never, true, never>;
|
|
@@ -14,12 +14,14 @@ export declare class TableColumnVisibilityService {
|
|
|
14
14
|
/**
|
|
15
15
|
* Actualiza las keys de columnas visibles basándose en el estado actual
|
|
16
16
|
* @param columns - Definiciones de columnas
|
|
17
|
-
* @param
|
|
18
|
-
* @param creating - Si está en modo creación
|
|
19
|
-
* @param editing - ID de fila en edición (null si no hay edición)
|
|
17
|
+
* @param context - Contexto con datos, estado de creación y edición
|
|
20
18
|
* @returns Array de accessors de columnas visibles
|
|
21
19
|
*/
|
|
22
|
-
updateVisibleKeys<T extends Record<string, unknown>>(columns: TableColDef[],
|
|
20
|
+
updateVisibleKeys<T extends Record<string, unknown>>(columns: TableColDef[], context: {
|
|
21
|
+
data: T[];
|
|
22
|
+
creating: boolean;
|
|
23
|
+
editing: string | null;
|
|
24
|
+
}): string[];
|
|
23
25
|
/**
|
|
24
26
|
* Determina si una columna debe ser visible basándose en su configuración y datos
|
|
25
27
|
* Método unificado que maneja todos los casos de visibilidad
|
|
@@ -34,16 +36,27 @@ export declare class TableColumnVisibilityService {
|
|
|
34
36
|
editing?: string | null;
|
|
35
37
|
row?: T;
|
|
36
38
|
}): boolean;
|
|
39
|
+
private checkColumnVisibilityByContext;
|
|
40
|
+
private isVisibleInCreation;
|
|
41
|
+
private isVisibleInEditing;
|
|
37
42
|
/**
|
|
38
43
|
* Determina si una columna debe ser visible en los headers
|
|
39
44
|
* Wrapper para mantener compatibilidad con API existente
|
|
40
45
|
*/
|
|
41
|
-
isColumnVisibleInHeader<T extends Record<string, unknown>>(column: TableColDef,
|
|
46
|
+
isColumnVisibleInHeader<T extends Record<string, unknown>>(column: TableColDef, context: {
|
|
47
|
+
data: T[];
|
|
48
|
+
creating: boolean;
|
|
49
|
+
editing: string | null;
|
|
50
|
+
}): boolean;
|
|
42
51
|
/**
|
|
43
52
|
* Determina si una columna debe ser visible en una fila específica
|
|
44
53
|
* Wrapper para mantener compatibilidad con API existente
|
|
45
54
|
*/
|
|
46
|
-
isColumnVisibleForRow<T extends Record<string, unknown>>(column: TableColDef,
|
|
55
|
+
isColumnVisibleForRow<T extends Record<string, unknown>>(column: TableColDef, context: {
|
|
56
|
+
row: T;
|
|
57
|
+
data: T[];
|
|
58
|
+
editing: string | null;
|
|
59
|
+
}): boolean;
|
|
47
60
|
/**
|
|
48
61
|
* Verifica si todos los valores de una columna están vacíos/nulos
|
|
49
62
|
*/
|
|
@@ -1,5 +1,26 @@
|
|
|
1
|
+
import { type Signal } from '@angular/core';
|
|
1
2
|
import type { TableColDef } from './table.types';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
4
|
+
interface CrudState<T extends Record<string, unknown>> {
|
|
5
|
+
creating: Signal<boolean>;
|
|
6
|
+
newRow: Signal<Partial<T> | null>;
|
|
7
|
+
editing: Signal<string | null>;
|
|
8
|
+
editRow: Signal<Partial<T> | null>;
|
|
9
|
+
startCreate: (context: {
|
|
10
|
+
columns: TableColDef[];
|
|
11
|
+
data: T[];
|
|
12
|
+
}) => void;
|
|
13
|
+
cancelCreate: () => void;
|
|
14
|
+
updateNewRow: (key: string, value: unknown) => void;
|
|
15
|
+
startEdit: (context: {
|
|
16
|
+
row: T;
|
|
17
|
+
columns: TableColDef[];
|
|
18
|
+
data: T[];
|
|
19
|
+
}) => void;
|
|
20
|
+
cancelEdit: () => void;
|
|
21
|
+
updateEditRow: (key: string, value: unknown) => void;
|
|
22
|
+
applyInputValues: (partialValues: Partial<T>) => void;
|
|
23
|
+
}
|
|
3
24
|
/**
|
|
4
25
|
* Servicio para gestionar el estado CRUD (Crear, Leer, Actualizar, Eliminar) en tablas C80
|
|
5
26
|
*
|
|
@@ -28,19 +49,7 @@ export declare class TableCrudStateService {
|
|
|
28
49
|
* Inicializa el estado CRUD para una nueva tabla
|
|
29
50
|
* @returns Objeto con signals y métodos para gestión CRUD
|
|
30
51
|
*/
|
|
31
|
-
createCrudState<T extends Record<string, unknown>>():
|
|
32
|
-
creating: import("@angular/core").Signal<boolean>;
|
|
33
|
-
newRow: import("@angular/core").Signal<Partial<T> | null>;
|
|
34
|
-
editing: import("@angular/core").Signal<string | null>;
|
|
35
|
-
editRow: import("@angular/core").Signal<Partial<T> | null>;
|
|
36
|
-
startCreate: (columns: TableColDef[], data: T[]) => void;
|
|
37
|
-
cancelCreate: () => void;
|
|
38
|
-
updateNewRow: (key: string, value: unknown) => void;
|
|
39
|
-
startEdit: (row: T, columns: TableColDef[], data: T[]) => void;
|
|
40
|
-
cancelEdit: () => void;
|
|
41
|
-
updateEditRow: (key: string, value: unknown) => void;
|
|
42
|
-
applyInputValues: (partialValues: Partial<T>) => void;
|
|
43
|
-
};
|
|
52
|
+
createCrudState<T extends Record<string, unknown>>(): CrudState<T>;
|
|
44
53
|
private startCreate;
|
|
45
54
|
private cancelCreate;
|
|
46
55
|
private updateRow;
|
|
@@ -50,3 +59,4 @@ export declare class TableCrudStateService {
|
|
|
50
59
|
static ɵfac: i0.ɵɵFactoryDeclaration<TableCrudStateService, never>;
|
|
51
60
|
static ɵprov: i0.ɵɵInjectableDeclaration<TableCrudStateService>;
|
|
52
61
|
}
|
|
62
|
+
export {};
|
|
@@ -15,6 +15,8 @@ export declare class TableDataConverterService {
|
|
|
15
15
|
* @returns Valor convertido al tipo apropiado
|
|
16
16
|
*/
|
|
17
17
|
convertCellValue(value: unknown, col: TableColDef, sampleValue?: unknown): unknown;
|
|
18
|
+
private convertByColumnType;
|
|
19
|
+
private convertBySampleValue;
|
|
18
20
|
/**
|
|
19
21
|
* Convierte un valor a boolean usando mejores prácticas
|
|
20
22
|
* @param value - Valor a convertir
|
|
@@ -31,6 +31,13 @@ export declare class TableDataUtilsService {
|
|
|
31
31
|
* @returns Cadena formateada para display
|
|
32
32
|
*/
|
|
33
33
|
getDisplayValue(value: unknown, col?: TableColDef): string;
|
|
34
|
+
/**
|
|
35
|
+
* Trunca un texto a N caracteres y agrega '...' si es necesario
|
|
36
|
+
* @param value - Texto a truncar
|
|
37
|
+
* @param maxLength - Longitud máxima
|
|
38
|
+
* @returns Texto truncado
|
|
39
|
+
*/
|
|
40
|
+
private truncateText;
|
|
34
41
|
private formatValueByType;
|
|
35
42
|
private formatPrimitiveValue;
|
|
36
43
|
/**
|