@caribeng/ui 22.1.0 → 22.2.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/README.md +52 -12
- package/fesm2022/caribeng-ui-accordion.mjs +2 -2
- package/fesm2022/caribeng-ui-anchor.mjs +169 -0
- package/fesm2022/caribeng-ui-autocomplete.mjs +10 -8
- package/fesm2022/caribeng-ui-avatargroup.mjs +9 -3
- package/fesm2022/caribeng-ui-blockui.mjs +12 -4
- package/fesm2022/caribeng-ui-breadcrumb.mjs +5 -2
- package/fesm2022/caribeng-ui-button.mjs +22 -2
- package/fesm2022/caribeng-ui-caribe-alert.mjs +5 -2
- package/fesm2022/caribeng-ui-caribe-animation-lottie.mjs +6 -3
- package/fesm2022/caribeng-ui-caribe-button-group.mjs +6 -3
- package/fesm2022/caribeng-ui-caribe-calendar.mjs +11 -6
- package/fesm2022/caribeng-ui-caribe-card-content.mjs +6 -3
- package/fesm2022/caribeng-ui-caribe-card-move.mjs +29 -7
- package/fesm2022/caribeng-ui-caribe-card-select.mjs +56 -14
- package/fesm2022/caribeng-ui-caribe-circle-loading.mjs +10 -7
- package/fesm2022/caribeng-ui-caribe-coachmark.mjs +42 -19
- package/fesm2022/caribeng-ui-caribe-data-table.mjs +15 -9
- package/fesm2022/caribeng-ui-caribe-dots-indicator.mjs +38 -5
- package/fesm2022/caribeng-ui-caribe-expansion-panel.mjs +16 -5
- package/fesm2022/caribeng-ui-caribe-fab-menu.mjs +56 -7
- package/fesm2022/caribeng-ui-caribe-file-download.mjs +68 -27
- package/fesm2022/caribeng-ui-caribe-file-select.mjs +22 -17
- package/fesm2022/caribeng-ui-caribe-float-menu.mjs +6 -3
- package/fesm2022/caribeng-ui-caribe-footer.mjs +8 -4
- package/fesm2022/caribeng-ui-caribe-header.mjs +6 -3
- package/fesm2022/caribeng-ui-caribe-icon-button.mjs +6 -3
- package/fesm2022/caribeng-ui-caribe-illustration.mjs +6 -3
- package/fesm2022/caribeng-ui-caribe-inline-alert.mjs +5 -2
- package/fesm2022/caribeng-ui-caribe-input-search.mjs +14 -10
- package/fesm2022/caribeng-ui-caribe-input-select.mjs +12 -10
- package/fesm2022/caribeng-ui-caribe-input-token.mjs +61 -11
- package/fesm2022/caribeng-ui-caribe-link.mjs +7 -2
- package/fesm2022/caribeng-ui-caribe-loader.mjs +8 -5
- package/fesm2022/caribeng-ui-caribe-modal.mjs +32 -16
- package/fesm2022/caribeng-ui-caribe-off-canvas.mjs +26 -12
- package/fesm2022/caribeng-ui-caribe-onboarding.mjs +44 -19
- package/fesm2022/caribeng-ui-caribe-pictogram.mjs +6 -3
- package/fesm2022/caribeng-ui-caribe-pop-over.mjs +34 -10
- package/fesm2022/caribeng-ui-caribe-preloader.mjs +9 -6
- package/fesm2022/caribeng-ui-caribe-progress-bar.mjs +5 -2
- package/fesm2022/caribeng-ui-caribe-shortcut.mjs +8 -3
- package/fesm2022/caribeng-ui-caribe-step-indicator.mjs +12 -5
- package/fesm2022/caribeng-ui-caribe-stroke.mjs +6 -3
- package/fesm2022/caribeng-ui-caribe-switch.mjs +5 -3
- package/fesm2022/caribeng-ui-caribe-tag-button.mjs +1 -1
- package/fesm2022/caribeng-ui-caribe-tracker.mjs +5 -2
- package/fesm2022/caribeng-ui-caribe-transaction-status.mjs +1 -1
- package/fesm2022/caribeng-ui-caribe-voucher.mjs +11 -8
- package/fesm2022/caribeng-ui-carousel.mjs +49 -14
- package/fesm2022/caribeng-ui-cascadeselect.mjs +22 -8
- package/fesm2022/caribeng-ui-chart.mjs +2598 -303
- package/fesm2022/caribeng-ui-chip.mjs +9 -4
- package/fesm2022/caribeng-ui-chips.mjs +9 -5
- package/fesm2022/caribeng-ui-colorpicker.mjs +9 -7
- package/fesm2022/caribeng-ui-confirmdialog.mjs +74 -9
- package/fesm2022/caribeng-ui-confirmpopup.mjs +134 -9
- package/fesm2022/caribeng-ui-contextmenu.mjs +6 -3
- package/fesm2022/caribeng-ui-dataview.mjs +211 -6
- package/fesm2022/caribeng-ui-datepicker.mjs +1630 -393
- package/fesm2022/caribeng-ui-descriptions.mjs +124 -0
- package/fesm2022/caribeng-ui-dialog.mjs +10 -7
- package/fesm2022/caribeng-ui-dock.mjs +6 -3
- package/fesm2022/caribeng-ui-drawer.mjs +10 -7
- package/fesm2022/caribeng-ui-dynamicdialog.mjs +210 -6
- package/fesm2022/caribeng-ui-editor.mjs +4392 -243
- package/fesm2022/caribeng-ui-empty.mjs +80 -0
- package/fesm2022/caribeng-ui-file-card.mjs +2 -2
- package/fesm2022/caribeng-ui-fileupload.mjs +96 -19
- package/fesm2022/caribeng-ui-floatlabel.mjs +4 -2
- package/fesm2022/caribeng-ui-folder-card.mjs +10 -3
- package/fesm2022/caribeng-ui-galleria.mjs +76 -45
- package/fesm2022/caribeng-ui-image.mjs +52 -29
- package/fesm2022/caribeng-ui-inplace.mjs +22 -6
- package/fesm2022/caribeng-ui-input-number.mjs +9 -7
- package/fesm2022/caribeng-ui-inputgroup.mjs +2 -2
- package/fesm2022/caribeng-ui-inputmask.mjs +14 -11
- package/fesm2022/caribeng-ui-inputotp.mjs +12 -6
- package/fesm2022/caribeng-ui-keyfilter.mjs +72 -0
- package/fesm2022/caribeng-ui-listbox.mjs +13 -11
- package/fesm2022/caribeng-ui-megamenu.mjs +222 -30
- package/fesm2022/caribeng-ui-menu.mjs +11 -5
- package/fesm2022/caribeng-ui-menubar.mjs +10 -5
- package/fesm2022/caribeng-ui-message.mjs +7 -4
- package/fesm2022/caribeng-ui-metergroup.mjs +29 -11
- package/fesm2022/caribeng-ui-multiselect.mjs +399 -97
- package/fesm2022/caribeng-ui-orderlist.mjs +230 -11
- package/fesm2022/caribeng-ui-organizationchart.mjs +12 -7
- package/fesm2022/caribeng-ui-paginator.mjs +18 -15
- package/fesm2022/caribeng-ui-panel.mjs +5 -2
- package/fesm2022/caribeng-ui-panelmenu.mjs +6 -3
- package/fesm2022/caribeng-ui-password.mjs +8 -6
- package/fesm2022/caribeng-ui-pdfviewer.mjs +1553 -0
- package/fesm2022/caribeng-ui-picklist.mjs +251 -14
- package/fesm2022/caribeng-ui-pricing.mjs +17 -14
- package/fesm2022/caribeng-ui-rating.mjs +7 -3
- package/fesm2022/caribeng-ui-repeater.mjs +223 -0
- package/fesm2022/caribeng-ui-result.mjs +91 -0
- package/fesm2022/caribeng-ui-scrollpanel.mjs +6 -3
- package/fesm2022/caribeng-ui-scrolltop.mjs +6 -3
- package/fesm2022/caribeng-ui-select.mjs +379 -87
- package/fesm2022/caribeng-ui-selectbutton.mjs +2 -2
- package/fesm2022/caribeng-ui-slider.mjs +171 -75
- package/fesm2022/caribeng-ui-speeddial.mjs +7 -4
- package/fesm2022/caribeng-ui-spinner.mjs +5 -2
- package/fesm2022/caribeng-ui-splitbutton.mjs +163 -0
- package/fesm2022/caribeng-ui-splitter.mjs +5 -2
- package/fesm2022/caribeng-ui-statistic.mjs +183 -0
- package/fesm2022/caribeng-ui-stepper.mjs +8 -5
- package/fesm2022/caribeng-ui-steps.mjs +6 -3
- package/fesm2022/caribeng-ui-table.mjs +708 -82
- package/fesm2022/caribeng-ui-tabmenu.mjs +6 -3
- package/fesm2022/caribeng-ui-tag.mjs +2 -2
- package/fesm2022/caribeng-ui-terminal.mjs +45 -9
- package/fesm2022/caribeng-ui-themetoggle.mjs +82 -0
- package/fesm2022/caribeng-ui-tieredmenu.mjs +9 -6
- package/fesm2022/caribeng-ui-timeline.mjs +175 -6
- package/fesm2022/caribeng-ui-toast.mjs +7 -4
- package/fesm2022/caribeng-ui-togglebutton.mjs +8 -6
- package/fesm2022/caribeng-ui-toolbar.mjs +6 -3
- package/fesm2022/caribeng-ui-tree.mjs +302 -6
- package/fesm2022/caribeng-ui-treeselect.mjs +26 -10
- package/fesm2022/caribeng-ui-treetable.mjs +269 -6
- package/fesm2022/caribeng-ui-virtualscroller.mjs +123 -10
- package/fesm2022/caribeng-ui.mjs +829 -6
- package/package.json +70 -11
- package/schematics/collection.json +10 -0
- package/schematics/ng-add/index.js +125 -0
- package/schematics/ng-add/schema.js +2 -0
- package/schematics/ng-add/schema.json +66 -0
- package/styles/caribeng.css +380 -0
- package/styles/scss/_mixins.scss +46 -0
- package/styles/scss/_overlay.scss +15 -0
- package/styles/scss/_tokens.scss +267 -0
- package/styles/scss/_utilities.scss +73 -0
- package/styles/scss/_variables.scss +33 -0
- package/styles/scss/index.scss +16 -0
- package/types/caribeng-ui-anchor.d.ts +50 -0
- package/types/caribeng-ui-autocomplete.d.ts +4 -2
- package/types/caribeng-ui-avatargroup.d.ts +3 -1
- package/types/caribeng-ui-blockui.d.ts +9 -4
- package/types/caribeng-ui-breadcrumb.d.ts +3 -0
- package/types/caribeng-ui-button.d.ts +9 -1
- package/types/caribeng-ui-caribe-alert.d.ts +3 -0
- package/types/caribeng-ui-caribe-animation-lottie.d.ts +4 -1
- package/types/caribeng-ui-caribe-button-group.d.ts +4 -1
- package/types/caribeng-ui-caribe-calendar.d.ts +5 -1
- package/types/caribeng-ui-caribe-card-content.d.ts +4 -1
- package/types/caribeng-ui-caribe-card-move.d.ts +13 -13
- package/types/caribeng-ui-caribe-card-select.d.ts +10 -1
- package/types/caribeng-ui-caribe-circle-loading.d.ts +4 -1
- package/types/caribeng-ui-caribe-coachmark.d.ts +6 -0
- package/types/caribeng-ui-caribe-data-table.d.ts +7 -2
- package/types/caribeng-ui-caribe-dots-indicator.d.ts +9 -0
- package/types/caribeng-ui-caribe-expansion-panel.d.ts +7 -10
- package/types/caribeng-ui-caribe-fab-menu.d.ts +10 -1
- package/types/caribeng-ui-caribe-file-download.d.ts +8 -10
- package/types/caribeng-ui-caribe-file-select.d.ts +7 -1
- package/types/caribeng-ui-caribe-float-menu.d.ts +4 -1
- package/types/caribeng-ui-caribe-header.d.ts +3 -0
- package/types/caribeng-ui-caribe-icon-button.d.ts +4 -1
- package/types/caribeng-ui-caribe-illustration.d.ts +4 -1
- package/types/caribeng-ui-caribe-inline-alert.d.ts +3 -0
- package/types/caribeng-ui-caribe-input-search.d.ts +4 -2
- package/types/caribeng-ui-caribe-input-select.d.ts +4 -2
- package/types/caribeng-ui-caribe-input-token.d.ts +16 -1
- package/types/caribeng-ui-caribe-link.d.ts +3 -0
- package/types/caribeng-ui-caribe-loader.d.ts +4 -1
- package/types/caribeng-ui-caribe-modal.d.ts +7 -10
- package/types/caribeng-ui-caribe-off-canvas.d.ts +6 -1
- package/types/caribeng-ui-caribe-onboarding.d.ts +6 -0
- package/types/caribeng-ui-caribe-pictogram.d.ts +4 -1
- package/types/caribeng-ui-caribe-pop-over.d.ts +7 -10
- package/types/caribeng-ui-caribe-preloader.d.ts +4 -1
- package/types/caribeng-ui-caribe-progress-bar.d.ts +3 -0
- package/types/caribeng-ui-caribe-shortcut.d.ts +3 -1
- package/types/caribeng-ui-caribe-step-indicator.d.ts +6 -0
- package/types/caribeng-ui-caribe-stroke.d.ts +4 -1
- package/types/caribeng-ui-caribe-switch.d.ts +3 -1
- package/types/caribeng-ui-caribe-tracker.d.ts +3 -0
- package/types/caribeng-ui-caribe-voucher.d.ts +5 -2
- package/types/caribeng-ui-carousel.d.ts +10 -1
- package/types/caribeng-ui-cascadeselect.d.ts +7 -2
- package/types/caribeng-ui-chart.d.ts +469 -44
- package/types/caribeng-ui-chip.d.ts +6 -0
- package/types/caribeng-ui-chips.d.ts +6 -2
- package/types/caribeng-ui-colorpicker.d.ts +3 -1
- package/types/caribeng-ui-confirmdialog.d.ts +25 -6
- package/types/caribeng-ui-confirmpopup.d.ts +37 -5
- package/types/caribeng-ui-contextmenu.d.ts +4 -1
- package/types/caribeng-ui-dataview.d.ts +63 -5
- package/types/caribeng-ui-datepicker.d.ts +186 -21
- package/types/caribeng-ui-descriptions.d.ts +63 -0
- package/types/caribeng-ui-dialog.d.ts +4 -1
- package/types/caribeng-ui-dock.d.ts +4 -1
- package/types/caribeng-ui-drawer.d.ts +4 -1
- package/types/caribeng-ui-dynamicdialog.d.ts +93 -3
- package/types/caribeng-ui-editor.d.ts +486 -13
- package/types/caribeng-ui-empty.d.ts +34 -0
- package/types/caribeng-ui-file-card.d.ts +1 -1
- package/types/caribeng-ui-fileupload.d.ts +27 -4
- package/types/caribeng-ui-folder-card.d.ts +4 -1
- package/types/caribeng-ui-galleria.d.ts +9 -0
- package/types/caribeng-ui-image.d.ts +10 -0
- package/types/caribeng-ui-inplace.d.ts +8 -0
- package/types/caribeng-ui-input-number.d.ts +3 -1
- package/types/caribeng-ui-inputmask.d.ts +5 -0
- package/types/caribeng-ui-inputotp.d.ts +7 -2
- package/types/caribeng-ui-keyfilter.d.ts +30 -0
- package/types/caribeng-ui-listbox.d.ts +5 -3
- package/types/caribeng-ui-megamenu.d.ts +26 -2
- package/types/caribeng-ui-menu.d.ts +7 -2
- package/types/caribeng-ui-menubar.d.ts +5 -1
- package/types/caribeng-ui-message.d.ts +3 -0
- package/types/caribeng-ui-metergroup.d.ts +9 -1
- package/types/caribeng-ui-multiselect.d.ts +71 -10
- package/types/caribeng-ui-orderlist.d.ts +58 -6
- package/types/caribeng-ui-organizationchart.d.ts +7 -1
- package/types/caribeng-ui-paginator.d.ts +3 -0
- package/types/caribeng-ui-panel.d.ts +3 -0
- package/types/caribeng-ui-panelmenu.d.ts +4 -1
- package/types/caribeng-ui-password.d.ts +4 -2
- package/types/caribeng-ui-pdfviewer.d.ts +258 -0
- package/types/caribeng-ui-picklist.d.ts +67 -7
- package/types/caribeng-ui-pricing.d.ts +8 -5
- package/types/caribeng-ui-rating.d.ts +6 -2
- package/types/caribeng-ui-repeater.d.ts +79 -0
- package/types/caribeng-ui-result.d.ts +35 -0
- package/types/caribeng-ui-scrollpanel.d.ts +4 -1
- package/types/caribeng-ui-scrolltop.d.ts +4 -1
- package/types/caribeng-ui-select.d.ts +73 -9
- package/types/caribeng-ui-slider.d.ts +63 -10
- package/types/caribeng-ui-speeddial.d.ts +5 -2
- package/types/caribeng-ui-spinner.d.ts +3 -0
- package/types/caribeng-ui-splitbutton.d.ts +49 -0
- package/types/caribeng-ui-splitter.d.ts +3 -0
- package/types/caribeng-ui-statistic.d.ts +65 -0
- package/types/caribeng-ui-stepper.d.ts +3 -0
- package/types/caribeng-ui-steps.d.ts +4 -1
- package/types/caribeng-ui-table.d.ts +184 -16
- package/types/caribeng-ui-tabmenu.d.ts +4 -1
- package/types/caribeng-ui-terminal.d.ts +10 -0
- package/types/caribeng-ui-themetoggle.d.ts +32 -0
- package/types/caribeng-ui-tieredmenu.d.ts +5 -2
- package/types/caribeng-ui-timeline.d.ts +63 -4
- package/types/caribeng-ui-toast.d.ts +3 -0
- package/types/caribeng-ui-togglebutton.d.ts +5 -3
- package/types/caribeng-ui-toolbar.d.ts +7 -4
- package/types/caribeng-ui-tree.d.ts +76 -4
- package/types/caribeng-ui-treeselect.d.ts +10 -2
- package/types/caribeng-ui-treetable.d.ts +68 -4
- package/types/caribeng-ui-virtualscroller.d.ts +45 -5
- package/types/caribeng-ui.d.ts +501 -12
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
import * as _caribeng_ui from '@caribeng/ui';
|
|
2
|
+
import { cbFormat } from '@caribeng/ui';
|
|
1
3
|
import * as _angular_core from '@angular/core';
|
|
2
4
|
import { TemplateRef } from '@angular/core';
|
|
3
5
|
import { CbPaginatorState } from '@caribeng/ui/paginator';
|
|
4
6
|
|
|
7
|
+
/** Cómo compara un filtro el texto buscado con el valor de la celda (sin distinguir mayúsculas ni tildes). */
|
|
8
|
+
type CbTableFilterMatchMode = 'contains' | 'startsWith' | 'equals';
|
|
5
9
|
interface CbTableColumn {
|
|
6
10
|
/** Propiedad de la fila a mostrar. */
|
|
7
11
|
field: string;
|
|
@@ -9,35 +13,110 @@ interface CbTableColumn {
|
|
|
9
13
|
header: string;
|
|
10
14
|
/** Permite ordenar por esta columna. */
|
|
11
15
|
sortable?: boolean;
|
|
16
|
+
/** Muestra un campo de filtro bajo el encabezado. */
|
|
17
|
+
filter?: boolean;
|
|
18
|
+
/** Comparación del filtro de la columna. Por defecto `contains`. */
|
|
19
|
+
filterMatchMode?: CbTableFilterMatchMode;
|
|
20
|
+
/** Placeholder del filtro de la columna. */
|
|
21
|
+
filterPlaceholder?: string;
|
|
12
22
|
/** Alineación del contenido. */
|
|
13
23
|
align?: 'left' | 'center' | 'right';
|
|
14
24
|
/** Ancho CSS de la columna. */
|
|
15
25
|
width?: string;
|
|
26
|
+
/** Fija la columna a la izquierda al hacer scroll horizontal (las fijas se muestran primero). */
|
|
27
|
+
frozen?: boolean;
|
|
28
|
+
/** Incluir la columna en `toCSV()` / `exportCSV()`. Por defecto `true`. */
|
|
29
|
+
exportable?: boolean;
|
|
16
30
|
}
|
|
17
|
-
interface CbTableCellContext {
|
|
18
|
-
$implicit:
|
|
19
|
-
row:
|
|
20
|
-
value:
|
|
31
|
+
interface CbTableCellContext<T = any> {
|
|
32
|
+
$implicit: T;
|
|
33
|
+
row: T;
|
|
34
|
+
value: any;
|
|
21
35
|
col: CbTableColumn;
|
|
22
36
|
}
|
|
37
|
+
interface CbTableRowExpansionContext<T = any> {
|
|
38
|
+
$implicit: T;
|
|
39
|
+
/** Posición de la fila en los datos filtrados y ordenados. */
|
|
40
|
+
index: number;
|
|
41
|
+
}
|
|
42
|
+
interface CbTableGroupHeaderContext<T = any> {
|
|
43
|
+
/** Valor del campo `groupRowsBy` del grupo. */
|
|
44
|
+
$implicit: T;
|
|
45
|
+
/** Filas del grupo (en todos los datos filtrados). */
|
|
46
|
+
count: number;
|
|
47
|
+
}
|
|
48
|
+
/** Petición de datos en modo `lazy`: la tabla pide la página, el orden y los filtros al servidor. */
|
|
49
|
+
interface CbTableLazyLoadEvent {
|
|
50
|
+
first: number;
|
|
51
|
+
rows: number;
|
|
52
|
+
sortField: string | null;
|
|
53
|
+
sortOrder: 1 | -1;
|
|
54
|
+
globalFilter: string;
|
|
55
|
+
filters: Readonly<Partial<Record<string, string>>>;
|
|
56
|
+
}
|
|
57
|
+
/** Opciones de `toCSV()` / `exportCSV()`. */
|
|
58
|
+
interface CbTableCsvOptions {
|
|
59
|
+
/** Solo las filas seleccionadas. */
|
|
60
|
+
selectionOnly?: boolean;
|
|
61
|
+
/** Separador de columnas. Por defecto `,`. */
|
|
62
|
+
separator?: string;
|
|
63
|
+
}
|
|
64
|
+
/** Estado de los filtros, emitido por `filterChange`. */
|
|
65
|
+
interface CbTableFilterState {
|
|
66
|
+
global: string;
|
|
67
|
+
/** Texto de filtro por campo de columna. */
|
|
68
|
+
columns: Readonly<Partial<Record<string, string>>>;
|
|
69
|
+
}
|
|
70
|
+
/** Plantilla de las celdas de una columna: `<ng-template cbTableCell="campo" let-row let-value="value">`. */
|
|
23
71
|
declare class CbTableCellDirective {
|
|
24
72
|
readonly cbTableCell: _angular_core.InputSignal<string>;
|
|
25
|
-
readonly template: TemplateRef<CbTableCellContext
|
|
73
|
+
readonly template: TemplateRef<CbTableCellContext<any>>;
|
|
74
|
+
static ngTemplateContextGuard(_dir: CbTableCellDirective, ctx: unknown): ctx is CbTableCellContext;
|
|
26
75
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbTableCellDirective, never>;
|
|
27
76
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CbTableCellDirective, "ng-template[cbTableCell]", never, { "cbTableCell": { "alias": "cbTableCell"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
28
77
|
}
|
|
78
|
+
/** Contenido de la fila expandida: `<ng-template cbTableRowExpansion let-row>`. */
|
|
79
|
+
declare class CbTableRowExpansion {
|
|
80
|
+
readonly template: TemplateRef<CbTableRowExpansionContext<any>>;
|
|
81
|
+
static ngTemplateContextGuard(_dir: CbTableRowExpansion, ctx: unknown): ctx is CbTableRowExpansionContext;
|
|
82
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbTableRowExpansion, never>;
|
|
83
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CbTableRowExpansion, "ng-template[cbTableRowExpansion]", never, {}, {}, never, never, true, never>;
|
|
84
|
+
}
|
|
85
|
+
/** Cabecera de grupo: `<ng-template cbTableGroupHeader let-valor let-count="count">`. */
|
|
86
|
+
declare class CbTableGroupHeader {
|
|
87
|
+
readonly template: TemplateRef<CbTableGroupHeaderContext<any>>;
|
|
88
|
+
static ngTemplateContextGuard(_dir: CbTableGroupHeader, ctx: unknown): ctx is CbTableGroupHeaderContext;
|
|
89
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbTableGroupHeader, never>;
|
|
90
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CbTableGroupHeader, "ng-template[cbTableGroupHeader]", never, {}, {}, never, never, true, never>;
|
|
91
|
+
}
|
|
29
92
|
/**
|
|
30
93
|
* Table de CaribeNG: tabla de datos con columnas declarativas, ordenación,
|
|
31
|
-
*
|
|
94
|
+
* filtros (global y por columna), paginación, selección (simple/múltiple),
|
|
95
|
+
* columnas redimensionables y fijas, cabecera fija, filas expandibles y
|
|
96
|
+
* agrupadas, exportación a CSV y carga desde el servidor (`lazy`).
|
|
32
97
|
*
|
|
33
98
|
* @example
|
|
34
99
|
* ```html
|
|
35
|
-
* <
|
|
36
|
-
*
|
|
100
|
+
* <input type="search" [(ngModel)]="busqueda" aria-label="Buscar" />
|
|
101
|
+
* <cb-table [value]="productos" [columns]="cols" [globalFilter]="busqueda" [paginator]="true" [rows]="5"
|
|
102
|
+
* striped selectionMode="multiple" dataKey="id" [(selection)]="sel" resizableColumns>
|
|
103
|
+
* <ng-template cbTableRowExpansion let-producto>{{ producto.descripcion }}</ng-template>
|
|
104
|
+
* </cb-table>
|
|
37
105
|
* ```
|
|
38
106
|
*/
|
|
39
107
|
declare class CbTable {
|
|
108
|
+
/** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
|
|
109
|
+
protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
|
|
110
|
+
/** Rellena `{0}`, `{1}`… de un texto traducido. */
|
|
111
|
+
protected readonly fmt: typeof cbFormat;
|
|
112
|
+
protected readonly minColumnWidth = 48;
|
|
113
|
+
private readonly document;
|
|
40
114
|
private readonly cellTemplates;
|
|
115
|
+
/** Plantilla de fila expandida; si existe, se añade la columna de expandir. */
|
|
116
|
+
protected readonly expansion: _angular_core.Signal<CbTableRowExpansion | undefined>;
|
|
117
|
+
/** Plantilla de cabecera de grupo (con `groupRowsBy`). */
|
|
118
|
+
protected readonly groupHeader: _angular_core.Signal<CbTableGroupHeader | undefined>;
|
|
119
|
+
private readonly tableRef;
|
|
41
120
|
readonly value: _angular_core.InputSignal<readonly unknown[]>;
|
|
42
121
|
readonly columns: _angular_core.InputSignal<readonly CbTableColumn[]>;
|
|
43
122
|
readonly paginator: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
@@ -46,40 +125,129 @@ declare class CbTable {
|
|
|
46
125
|
readonly striped: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
47
126
|
readonly rowHover: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
48
127
|
readonly size: _angular_core.InputSignal<"sm" | "md" | "lg">;
|
|
49
|
-
readonly emptyMessage: _angular_core.InputSignal<string>;
|
|
128
|
+
readonly emptyMessage: _angular_core.InputSignal<string | undefined>;
|
|
129
|
+
/** Nombre accesible de la tabla. */
|
|
130
|
+
readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
50
131
|
/** `single`, `multiple` o `null` (sin selección). */
|
|
51
132
|
readonly selectionMode: _angular_core.InputSignal<"single" | "multiple" | null>;
|
|
52
|
-
/** Propiedad identificadora para comparar selección (si no, por referencia). */
|
|
133
|
+
/** Propiedad identificadora para comparar selección y filas expandidas (si no, por referencia). */
|
|
53
134
|
readonly dataKey: _angular_core.InputSignal<string | null>;
|
|
135
|
+
/** Texto del filtro global (two-way). Busca en `globalFilterFields`. */
|
|
136
|
+
readonly globalFilter: _angular_core.ModelSignal<string>;
|
|
137
|
+
/** Campos en los que busca el filtro global. Por defecto, los de todas las columnas. */
|
|
138
|
+
readonly globalFilterFields: _angular_core.InputSignal<readonly string[] | null>;
|
|
139
|
+
/** Permite cambiar el ancho de las columnas arrastrando o con el teclado. */
|
|
140
|
+
readonly resizableColumns: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
141
|
+
/** Claves (`dataKey`) o filas expandidas (two-way). */
|
|
142
|
+
readonly expandedRowKeys: _angular_core.ModelSignal<readonly unknown[]>;
|
|
143
|
+
/** Alto máximo (CSS) de la tabla: hace scroll con la cabecera fija. */
|
|
144
|
+
readonly scrollHeight: _angular_core.InputSignal<string | null>;
|
|
145
|
+
/** Agrupa las filas por este campo, con una fila de cabecera por grupo. */
|
|
146
|
+
readonly groupRowsBy: _angular_core.InputSignal<string | null>;
|
|
147
|
+
/**
|
|
148
|
+
* Datos desde el servidor: la tabla no filtra, ordena ni pagina; emite `lazyLoad`
|
|
149
|
+
* y muestra `value` tal cual (la página actual).
|
|
150
|
+
*/
|
|
151
|
+
readonly lazy: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
152
|
+
/** Total de filas en el servidor (modo `lazy`), para el paginador. */
|
|
153
|
+
readonly totalRecords: _angular_core.InputSignal<number | null>;
|
|
154
|
+
/** Muestra la capa de carga y marca la tabla con `aria-busy`. */
|
|
155
|
+
readonly loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
54
156
|
readonly selection: _angular_core.ModelSignal<unknown>;
|
|
55
157
|
readonly sortChange: _angular_core.OutputEmitterRef<{
|
|
56
158
|
field: string | null;
|
|
57
159
|
order: 1 | -1;
|
|
58
160
|
}>;
|
|
59
|
-
|
|
161
|
+
readonly filterChange: _angular_core.OutputEmitterRef<CbTableFilterState>;
|
|
162
|
+
readonly columnResize: _angular_core.OutputEmitterRef<{
|
|
163
|
+
field: string;
|
|
164
|
+
width: number;
|
|
165
|
+
}>;
|
|
166
|
+
readonly rowExpand: _angular_core.OutputEmitterRef<unknown>;
|
|
167
|
+
readonly rowCollapse: _angular_core.OutputEmitterRef<unknown>;
|
|
168
|
+
/** En modo `lazy`: página, orden y filtros que hay que pedir al servidor. */
|
|
169
|
+
readonly lazyLoad: _angular_core.OutputEmitterRef<CbTableLazyLoadEvent>;
|
|
60
170
|
private readonly sortField;
|
|
61
171
|
private readonly sortOrder;
|
|
62
|
-
protected readonly
|
|
63
|
-
protected readonly
|
|
172
|
+
protected readonly columnFilters: _angular_core.WritableSignal<Readonly<Partial<Record<string, string>>>>;
|
|
173
|
+
protected readonly widths: _angular_core.WritableSignal<Readonly<Partial<Record<string, number>>>>;
|
|
174
|
+
/** Columnas en orden de pantalla: las fijas primero. */
|
|
175
|
+
protected readonly displayColumns: _angular_core.Signal<CbTableColumn[]>;
|
|
176
|
+
protected readonly hasFrozen: _angular_core.Signal<boolean>;
|
|
177
|
+
protected readonly lastFrozen: _angular_core.Signal<string | null>;
|
|
178
|
+
/** Desplazamiento `left` (px) de cada celda fija, medido tras el render. */
|
|
179
|
+
private readonly frozenOffsets;
|
|
180
|
+
protected readonly hasColumnFilters: _angular_core.Signal<boolean>;
|
|
181
|
+
protected readonly isFiltering: _angular_core.Signal<boolean>;
|
|
182
|
+
protected readonly filtered: _angular_core.Signal<readonly unknown[]>;
|
|
183
|
+
protected readonly sorted: _angular_core.Signal<readonly unknown[]>;
|
|
184
|
+
/** Filas totales: las del servidor en modo `lazy`, las filtradas si no. */
|
|
185
|
+
protected readonly total: _angular_core.Signal<number>;
|
|
186
|
+
/** Primera fila de la página; vuelve a 0 al filtrar u ordenar (y, sin `lazy`, al cambiar los datos). */
|
|
187
|
+
protected readonly first: _angular_core.WritableSignal<number>;
|
|
188
|
+
/** Filas por grupo en todos los datos (no solo en la página). */
|
|
189
|
+
private readonly groupCounts;
|
|
190
|
+
protected readonly pageRows: _angular_core.Signal<readonly unknown[]>;
|
|
64
191
|
protected readonly colspan: _angular_core.Signal<number>;
|
|
192
|
+
private readonly selectedCount;
|
|
65
193
|
protected readonly allSelected: _angular_core.Signal<boolean>;
|
|
194
|
+
protected readonly someSelected: _angular_core.Signal<boolean>;
|
|
195
|
+
private readonly uid;
|
|
196
|
+
private stopResize;
|
|
197
|
+
constructor();
|
|
198
|
+
/** Aplica el filtro global (equivale a `[globalFilter]`). */
|
|
199
|
+
filterGlobal(text: string): void;
|
|
200
|
+
/** Aplica el filtro de una columna. */
|
|
201
|
+
filterColumn(field: string, text: string): void;
|
|
202
|
+
/** Quita todos los filtros. */
|
|
203
|
+
clearFilters(): void;
|
|
204
|
+
private emitFilters;
|
|
205
|
+
/** Pide al servidor la página actual (solo en modo `lazy`). */
|
|
206
|
+
private emitLazy;
|
|
207
|
+
private matchMode;
|
|
66
208
|
protected onSort(col: CbTableColumn): void;
|
|
67
209
|
protected sortIcon(col: CbTableColumn): string;
|
|
68
210
|
protected ariaSort(col: CbTableColumn): string | null;
|
|
69
211
|
protected onRowClick(row: unknown): void;
|
|
70
212
|
protected toggleAll(): void;
|
|
71
213
|
protected isSelected(row: unknown): boolean;
|
|
214
|
+
protected isExpanded(row: unknown): boolean;
|
|
215
|
+
/** Expande o contrae una fila. */
|
|
216
|
+
toggleExpansion(row: unknown): void;
|
|
217
|
+
protected expansionId(index: number): string;
|
|
218
|
+
protected columnWidth(col: CbTableColumn): string | null;
|
|
219
|
+
protected startResize(event: PointerEvent, col: CbTableColumn): void;
|
|
220
|
+
/** Flecha izquierda / derecha cambian el ancho (10 px; 50 px con Mayús). */
|
|
221
|
+
protected onResizerKeydown(event: KeyboardEvent, col: CbTableColumn): void;
|
|
222
|
+
private currentWidth;
|
|
223
|
+
private setWidth;
|
|
72
224
|
protected onPageChange(state: CbPaginatorState): void;
|
|
225
|
+
protected groupOf(row: unknown): unknown;
|
|
226
|
+
protected groupCount(row: unknown): number;
|
|
227
|
+
/** La fila abre grupo si es la primera de la página o cambia el valor del grupo. */
|
|
228
|
+
protected isGroupStart(index: number): boolean;
|
|
229
|
+
protected frozenLeft(key: string): number | null;
|
|
230
|
+
/** Suma los anchos de las celdas fijas anteriores (expandir, selección y columnas `frozen`). */
|
|
231
|
+
private measureFrozen;
|
|
232
|
+
/**
|
|
233
|
+
* Datos en CSV: columnas visibles (salvo `exportable: false`) y todas las filas
|
|
234
|
+
* filtradas y ordenadas (no solo la página), o las seleccionadas con `selectionOnly`.
|
|
235
|
+
*/
|
|
236
|
+
toCSV(options?: CbTableCsvOptions): string;
|
|
237
|
+
/** Descarga el CSV (`nombre.csv`), con BOM para que Excel respete tildes y eñes. */
|
|
238
|
+
exportCSV(filename?: string, options?: CbTableCsvOptions): void;
|
|
73
239
|
protected cellValue(row: unknown, col: CbTableColumn): unknown;
|
|
74
240
|
protected cellTemplate(field: string): CbTableCellDirective | undefined;
|
|
75
241
|
protected cellContext(row: unknown, col: CbTableColumn): CbTableCellContext;
|
|
76
242
|
protected rowKey(row: unknown, index: number): unknown;
|
|
243
|
+
/** Clave de una fila: su `dataKey` o la propia fila. */
|
|
244
|
+
private keyOf;
|
|
77
245
|
private same;
|
|
78
246
|
private compare;
|
|
79
247
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbTable, never>;
|
|
80
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbTable, "cb-table", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "paginator": { "alias": "paginator"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "rowsPerPageOptions": { "alias": "rowsPerPageOptions"; "required": false; "isSignal": true; }; "striped": { "alias": "striped"; "required": false; "isSignal": true; }; "rowHover": { "alias": "rowHover"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "dataKey": { "alias": "dataKey"; "required": false; "isSignal": true; }; "selection": { "alias": "selection"; "required": false; "isSignal": true; }; }, { "rows": "rowsChange"; "selection": "selectionChange"; "sortChange": "sortChange"; }, ["cellTemplates"],
|
|
248
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbTable, "cb-table", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "paginator": { "alias": "paginator"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "rowsPerPageOptions": { "alias": "rowsPerPageOptions"; "required": false; "isSignal": true; }; "striped": { "alias": "striped"; "required": false; "isSignal": true; }; "rowHover": { "alias": "rowHover"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "dataKey": { "alias": "dataKey"; "required": false; "isSignal": true; }; "globalFilter": { "alias": "globalFilter"; "required": false; "isSignal": true; }; "globalFilterFields": { "alias": "globalFilterFields"; "required": false; "isSignal": true; }; "resizableColumns": { "alias": "resizableColumns"; "required": false; "isSignal": true; }; "expandedRowKeys": { "alias": "expandedRowKeys"; "required": false; "isSignal": true; }; "scrollHeight": { "alias": "scrollHeight"; "required": false; "isSignal": true; }; "groupRowsBy": { "alias": "groupRowsBy"; "required": false; "isSignal": true; }; "lazy": { "alias": "lazy"; "required": false; "isSignal": true; }; "totalRecords": { "alias": "totalRecords"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "selection": { "alias": "selection"; "required": false; "isSignal": true; }; }, { "rows": "rowsChange"; "globalFilter": "globalFilterChange"; "expandedRowKeys": "expandedRowKeysChange"; "selection": "selectionChange"; "sortChange": "sortChange"; "filterChange": "filterChange"; "columnResize": "columnResize"; "rowExpand": "rowExpand"; "rowCollapse": "rowCollapse"; "lazyLoad": "lazyLoad"; }, ["cellTemplates", "expansion", "groupHeader"], ["[cbTableHeader]"], true, never>;
|
|
81
249
|
}
|
|
82
250
|
|
|
83
|
-
export { CbTable, CbTableCellDirective };
|
|
84
|
-
export type { CbTableCellContext, CbTableColumn };
|
|
251
|
+
export { CbTable, CbTableCellDirective, CbTableGroupHeader, CbTableRowExpansion };
|
|
252
|
+
export type { CbTableCellContext, CbTableColumn, CbTableCsvOptions, CbTableFilterMatchMode, CbTableFilterState, CbTableGroupHeaderContext, CbTableLazyLoadEvent, CbTableRowExpansionContext };
|
|
85
253
|
//# sourceMappingURL=caribeng-ui-table.d.ts.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
+
import * as _caribeng_ui from '@caribeng/ui';
|
|
2
3
|
|
|
3
4
|
interface CbTabMenuItem {
|
|
4
5
|
label: string;
|
|
@@ -8,9 +9,11 @@ interface CbTabMenuItem {
|
|
|
8
9
|
}
|
|
9
10
|
/** Horizontal navigation menu with an active item. */
|
|
10
11
|
declare class CbTabMenu {
|
|
12
|
+
/** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
|
|
13
|
+
protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
|
|
11
14
|
readonly items: _angular_core.InputSignal<readonly CbTabMenuItem[]>;
|
|
12
15
|
readonly activeIndex: _angular_core.ModelSignal<number>;
|
|
13
|
-
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
16
|
+
readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
14
17
|
readonly itemSelect: _angular_core.OutputEmitterRef<CbTabMenuItem>;
|
|
15
18
|
select(item: CbTabMenuItem, index: number): void;
|
|
16
19
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbTabMenu, never>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
+
import * as _caribeng_ui from '@caribeng/ui';
|
|
2
3
|
|
|
3
4
|
interface CbTerminalEntry {
|
|
4
5
|
command: string;
|
|
@@ -8,13 +9,22 @@ interface CbTerminalEntry {
|
|
|
8
9
|
* Terminal de CaribeNG: consola interactiva basada en señales con historial de comandos.
|
|
9
10
|
*/
|
|
10
11
|
declare class CbTerminal {
|
|
12
|
+
/** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
|
|
13
|
+
protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
|
|
11
14
|
readonly welcomeMessage: _angular_core.InputSignal<string>;
|
|
12
15
|
readonly prompt: _angular_core.InputSignal<string>;
|
|
13
16
|
readonly commandEntered: _angular_core.OutputEmitterRef<string>;
|
|
14
17
|
readonly entries: _angular_core.WritableSignal<CbTerminalEntry[]>;
|
|
15
18
|
readonly currentCommand: _angular_core.WritableSignal<string>;
|
|
19
|
+
/** Posición en el historial al recorrerlo con flechas (`null` = escribiendo uno nuevo). */
|
|
20
|
+
private historyIndex;
|
|
21
|
+
private readonly commandInput;
|
|
22
|
+
/** Fija el comando actual también en el DOM (el binding no detecta '' → '' si no hubo render entre medias). */
|
|
23
|
+
private setCommand;
|
|
16
24
|
protected onInput(event: Event): void;
|
|
17
25
|
submitCommand(): void;
|
|
26
|
+
/** Flecha arriba / abajo recorren los comandos anteriores. */
|
|
27
|
+
protected recall(event: Event, step: -1 | 1): void;
|
|
18
28
|
sendResponse(response: string): void;
|
|
19
29
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbTerminal, never>;
|
|
20
30
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbTerminal, "cb-terminal", never, { "welcomeMessage": { "alias": "welcomeMessage"; "required": false; "isSignal": true; }; "prompt": { "alias": "prompt"; "required": false; "isSignal": true; }; }, { "commandEntered": "commandEntered"; }, never, never, true, never>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import * as _caribeng_ui from '@caribeng/ui';
|
|
3
|
+
import { CbThemeService, CbSize } from '@caribeng/ui';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Botón de cambio de tema claro / oscuro sobre `CbThemeService` (con
|
|
7
|
+
* `provideCaribeNG({ persistTheme: true })` recuerda la elección).
|
|
8
|
+
*
|
|
9
|
+
* Su nombre accesible describe la acción ("Cambiar a tema oscuro"), por eso
|
|
10
|
+
* no usa `aria-pressed`.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```html
|
|
14
|
+
* <cb-theme-toggle />
|
|
15
|
+
* <cb-theme-toggle showLabel size="sm" />
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
declare class CbThemeToggle {
|
|
19
|
+
/** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
|
|
20
|
+
protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
|
|
21
|
+
protected readonly theme: CbThemeService;
|
|
22
|
+
readonly size: _angular_core.InputSignal<CbSize>;
|
|
23
|
+
/** Muestra el texto además del icono. */
|
|
24
|
+
readonly showLabel: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
25
|
+
/** Acción que hará el botón: cambiar al tema contrario al actual. */
|
|
26
|
+
protected readonly label: _angular_core.Signal<string>;
|
|
27
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbThemeToggle, never>;
|
|
28
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbThemeToggle, "cb-theme-toggle", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "showLabel": { "alias": "showLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export { CbThemeToggle };
|
|
32
|
+
//# sourceMappingURL=caribeng-ui-themetoggle.d.ts.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
+
import * as _caribeng_ui from '@caribeng/ui';
|
|
2
3
|
|
|
3
4
|
interface CbTieredMenuItem {
|
|
4
5
|
label: string;
|
|
@@ -10,12 +11,14 @@ interface CbTieredMenuItem {
|
|
|
10
11
|
}
|
|
11
12
|
/** Popup menu with cascading submenus. */
|
|
12
13
|
declare class CbTieredMenu {
|
|
14
|
+
/** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
|
|
15
|
+
protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
|
|
13
16
|
private readonly overlay;
|
|
14
17
|
private readonly vcr;
|
|
15
18
|
private readonly destroyRef;
|
|
16
19
|
readonly items: _angular_core.InputSignal<readonly CbTieredMenuItem[]>;
|
|
17
|
-
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
18
|
-
readonly triggerLabel: _angular_core.InputSignal<string>;
|
|
20
|
+
readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
21
|
+
readonly triggerLabel: _angular_core.InputSignal<string | undefined>;
|
|
19
22
|
readonly itemSelect: _angular_core.OutputEmitterRef<CbTieredMenuItem>;
|
|
20
23
|
protected readonly isOpen: _angular_core.WritableSignal<boolean>;
|
|
21
24
|
protected readonly openIndex: _angular_core.WritableSignal<number | null>;
|
|
@@ -1,18 +1,77 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { TemplateRef } from '@angular/core';
|
|
3
|
+
import * as _caribeng_ui from '@caribeng/ui';
|
|
2
4
|
|
|
3
5
|
interface CbTimelineEvent {
|
|
4
6
|
title: string;
|
|
7
|
+
/** Fecha o momento, tal como se muestra (p. ej. "Hoy, 10:30"). */
|
|
5
8
|
date?: string;
|
|
9
|
+
/** Fecha legible por máquina para `<time datetime>` (p. ej. "2026-10-20T10:30"). */
|
|
10
|
+
datetime?: string;
|
|
6
11
|
description?: string;
|
|
12
|
+
/** Icono dentro del marcador (nombre del set de iconos). */
|
|
13
|
+
icon?: string;
|
|
14
|
+
/** Color del marcador (cualquier color CSS). */
|
|
15
|
+
color?: string;
|
|
7
16
|
}
|
|
17
|
+
type CbTimelineAlign = 'left' | 'right' | 'alternate';
|
|
18
|
+
/** Contexto de las plantillas `let-event let-index="index"`. */
|
|
19
|
+
interface CbTimelineContext {
|
|
20
|
+
$implicit: CbTimelineEvent;
|
|
21
|
+
index: number;
|
|
22
|
+
}
|
|
23
|
+
/** Plantilla del contenido de cada evento. */
|
|
24
|
+
declare class CbTimelineContentTemplate {
|
|
25
|
+
readonly template: TemplateRef<CbTimelineContext>;
|
|
26
|
+
static ngTemplateContextGuard(_dir: CbTimelineContentTemplate, ctx: unknown): ctx is CbTimelineContext;
|
|
27
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbTimelineContentTemplate, never>;
|
|
28
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CbTimelineContentTemplate, "ng-template[cbTimelineContent]", never, {}, {}, never, never, true, never>;
|
|
29
|
+
}
|
|
30
|
+
/** Plantilla del lado opuesto al contenido (p. ej. la fecha). */
|
|
31
|
+
declare class CbTimelineOppositeTemplate {
|
|
32
|
+
readonly template: TemplateRef<CbTimelineContext>;
|
|
33
|
+
static ngTemplateContextGuard(_dir: CbTimelineOppositeTemplate, ctx: unknown): ctx is CbTimelineContext;
|
|
34
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbTimelineOppositeTemplate, never>;
|
|
35
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CbTimelineOppositeTemplate, "ng-template[cbTimelineOpposite]", never, {}, {}, never, never, true, never>;
|
|
36
|
+
}
|
|
37
|
+
/** Plantilla del marcador de cada evento. */
|
|
38
|
+
declare class CbTimelineMarkerTemplate {
|
|
39
|
+
readonly template: TemplateRef<CbTimelineContext>;
|
|
40
|
+
static ngTemplateContextGuard(_dir: CbTimelineMarkerTemplate, ctx: unknown): ctx is CbTimelineContext;
|
|
41
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbTimelineMarkerTemplate, never>;
|
|
42
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CbTimelineMarkerTemplate, "ng-template[cbTimelineMarker]", never, {}, {}, never, never, true, never>;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Línea de tiempo de CaribeNG: eventos en vertical u horizontal, alineados a
|
|
46
|
+
* un lado o alternados, con plantillas para el contenido, el lado opuesto y
|
|
47
|
+
* el marcador.
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```html
|
|
51
|
+
* <cb-timeline [value]="eventos" align="alternate" />
|
|
52
|
+
*
|
|
53
|
+
* <cb-timeline [value]="eventos">
|
|
54
|
+
* <ng-template cbTimelineContent let-evento>{{ evento.title }}</ng-template>
|
|
55
|
+
* </cb-timeline>
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
8
58
|
declare class CbTimeline {
|
|
59
|
+
protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
|
|
60
|
+
/** Eventos, en orden. */
|
|
9
61
|
readonly value: _angular_core.InputSignal<readonly CbTimelineEvent[]>;
|
|
62
|
+
/** Disposición: vertical (por defecto) u horizontal. */
|
|
10
63
|
readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
|
|
11
|
-
|
|
64
|
+
/** Lado del contenido respecto a la línea: izquierda, derecha o alternado. */
|
|
65
|
+
readonly align: _angular_core.InputSignal<CbTimelineAlign>;
|
|
66
|
+
/** Nombre accesible de la lista. Por defecto, el del idioma activo. */
|
|
67
|
+
readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
68
|
+
protected readonly contentTemplate: _angular_core.Signal<CbTimelineContentTemplate | undefined>;
|
|
69
|
+
protected readonly oppositeTemplate: _angular_core.Signal<CbTimelineOppositeTemplate | undefined>;
|
|
70
|
+
protected readonly markerTemplate: _angular_core.Signal<CbTimelineMarkerTemplate | undefined>;
|
|
12
71
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbTimeline, never>;
|
|
13
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbTimeline, "cb-timeline", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {},
|
|
72
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbTimeline, "cb-timeline", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, ["contentTemplate", "oppositeTemplate", "markerTemplate"], never, true, never>;
|
|
14
73
|
}
|
|
15
74
|
|
|
16
|
-
export { CbTimeline };
|
|
17
|
-
export type { CbTimelineEvent };
|
|
75
|
+
export { CbTimeline, CbTimelineContentTemplate, CbTimelineMarkerTemplate, CbTimelineOppositeTemplate };
|
|
76
|
+
export type { CbTimelineAlign, CbTimelineContext, CbTimelineEvent };
|
|
18
77
|
//# sourceMappingURL=caribeng-ui-timeline.d.ts.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
+
import * as _caribeng_ui from '@caribeng/ui';
|
|
2
3
|
import { CbSeverity } from '@caribeng/ui';
|
|
3
4
|
|
|
4
5
|
interface CbToastMessage {
|
|
@@ -58,6 +59,8 @@ type CbToastPosition = 'top-right' | 'top-left' | 'top-center' | 'bottom-right'
|
|
|
58
59
|
* ```
|
|
59
60
|
*/
|
|
60
61
|
declare class CbToast {
|
|
62
|
+
/** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
|
|
63
|
+
protected readonly t: i0.Signal<_caribeng_ui.CbTranslation>;
|
|
61
64
|
protected readonly service: CbToastService;
|
|
62
65
|
readonly position: i0.InputSignal<CbToastPosition>;
|
|
63
66
|
protected iconFor(severity: CbSeverity): string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
1
2
|
import * as _caribeng_ui from '@caribeng/ui';
|
|
2
3
|
import { CbSize } from '@caribeng/ui';
|
|
3
|
-
import * as _angular_core from '@angular/core';
|
|
4
4
|
import { ControlValueAccessor } from '@angular/forms';
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -13,8 +13,10 @@ import { ControlValueAccessor } from '@angular/forms';
|
|
|
13
13
|
* ```
|
|
14
14
|
*/
|
|
15
15
|
declare class CbToggleButton implements ControlValueAccessor {
|
|
16
|
-
|
|
17
|
-
readonly
|
|
16
|
+
/** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
|
|
17
|
+
protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
|
|
18
|
+
readonly onLabel: _angular_core.InputSignal<string | undefined>;
|
|
19
|
+
readonly offLabel: _angular_core.InputSignal<string | undefined>;
|
|
18
20
|
readonly onIcon: _angular_core.InputSignal<string>;
|
|
19
21
|
readonly offIcon: _angular_core.InputSignal<string>;
|
|
20
22
|
readonly size: _angular_core.InputSignal<CbSize>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import * as _caribeng_ui from '@caribeng/ui';
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* Toolbar de CaribeNG: contenedor horizontal accesible (`role="toolbar"`) para
|
|
@@ -15,10 +16,12 @@ import * as i0 from '@angular/core';
|
|
|
15
16
|
* ```
|
|
16
17
|
*/
|
|
17
18
|
declare class CbToolbar {
|
|
19
|
+
/** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
|
|
20
|
+
protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
|
|
18
21
|
/** Etiqueta accesible para el contenedor `role="toolbar"`. */
|
|
19
|
-
readonly ariaLabel:
|
|
20
|
-
static ɵfac:
|
|
21
|
-
static ɵcmp:
|
|
22
|
+
readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
23
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbToolbar, never>;
|
|
24
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbToolbar, "cb-toolbar", never, { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, ["[cb-toolbar-start]", "*", "[cb-toolbar-center]", "[cb-toolbar-end]"], true, never>;
|
|
22
25
|
}
|
|
23
26
|
|
|
24
27
|
export { CbToolbar };
|
|
@@ -1,19 +1,91 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { TemplateRef } from '@angular/core';
|
|
3
|
+
import * as _caribeng_ui from '@caribeng/ui';
|
|
4
|
+
import { cbFormat } from '@caribeng/ui';
|
|
2
5
|
|
|
6
|
+
/** Nodo de un `<cb-tree>`. */
|
|
3
7
|
interface CbTreeNode {
|
|
8
|
+
/** Identificador único en todo el árbol. */
|
|
4
9
|
key: string;
|
|
5
10
|
label: string;
|
|
11
|
+
/** Icono opcional (nombre del set de iconos). */
|
|
12
|
+
icon?: string;
|
|
13
|
+
/** El nodo no se puede seleccionar (sí expandir). */
|
|
14
|
+
disabled?: boolean;
|
|
6
15
|
children?: readonly CbTreeNode[];
|
|
16
|
+
/** Datos propios, disponibles en la plantilla de nodo. */
|
|
17
|
+
data?: unknown;
|
|
7
18
|
}
|
|
19
|
+
/** Contexto de la plantilla `<ng-template cbTreeNode let-node let-level="level">`. */
|
|
20
|
+
interface CbTreeNodeContext {
|
|
21
|
+
$implicit: CbTreeNode;
|
|
22
|
+
level: number;
|
|
23
|
+
expanded: boolean;
|
|
24
|
+
selected: boolean;
|
|
25
|
+
}
|
|
26
|
+
/** Plantilla para el contenido de cada nodo. */
|
|
27
|
+
declare class CbTreeNodeTemplate {
|
|
28
|
+
readonly template: TemplateRef<CbTreeNodeContext>;
|
|
29
|
+
static ngTemplateContextGuard(_dir: CbTreeNodeTemplate, ctx: unknown): ctx is CbTreeNodeContext;
|
|
30
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbTreeNodeTemplate, never>;
|
|
31
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CbTreeNodeTemplate, "ng-template[cbTreeNode]", never, {}, {}, never, never, true, never>;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Árbol jerárquico de CaribeNG con niveles ilimitados, selección simple y
|
|
35
|
+
* navegación con teclado según el patrón *tree* de WAI-ARIA.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```html
|
|
39
|
+
* <cb-tree [value]="nodes" [(selection)]="selected" ariaLabel="Documentos" />
|
|
40
|
+
*
|
|
41
|
+
* <cb-tree [value]="nodes">
|
|
42
|
+
* <ng-template cbTreeNode let-node>{{ node.label }} ({{ node.children?.length ?? 0 }})</ng-template>
|
|
43
|
+
* </cb-tree>
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
8
46
|
declare class CbTree {
|
|
47
|
+
protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
|
|
48
|
+
protected readonly fmt: typeof cbFormat;
|
|
49
|
+
private readonly host;
|
|
50
|
+
private readonly uid;
|
|
51
|
+
/** Nodos raíz. */
|
|
9
52
|
readonly value: _angular_core.InputSignal<readonly CbTreeNode[]>;
|
|
53
|
+
/** Nodo seleccionado (two-way). */
|
|
10
54
|
readonly selection: _angular_core.ModelSignal<CbTreeNode | null>;
|
|
55
|
+
/** Nombre accesible del árbol. */
|
|
56
|
+
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
57
|
+
/** Se emite al expandir un nodo. */
|
|
58
|
+
readonly nodeExpand: _angular_core.OutputEmitterRef<CbTreeNode>;
|
|
59
|
+
/** Se emite al contraer un nodo. */
|
|
60
|
+
readonly nodeCollapse: _angular_core.OutputEmitterRef<CbTreeNode>;
|
|
61
|
+
/** Se emite al seleccionar un nodo. */
|
|
62
|
+
readonly nodeSelect: _angular_core.OutputEmitterRef<CbTreeNode>;
|
|
63
|
+
protected readonly nodeTemplate: _angular_core.Signal<CbTreeNodeTemplate | undefined>;
|
|
11
64
|
protected readonly expanded: _angular_core.WritableSignal<ReadonlySet<string>>;
|
|
12
|
-
|
|
65
|
+
/** Último nodo enfocado por el usuario. */
|
|
66
|
+
protected readonly activeKey: _angular_core.WritableSignal<string | null>;
|
|
67
|
+
/** Nodo que recibe el foco con Tab (roving tabindex): el activo, el seleccionado o el primero. */
|
|
68
|
+
protected readonly tabbableKey: _angular_core.Signal<string>;
|
|
69
|
+
/** Nodos visibles en orden de lectura (solo ramas expandidas). */
|
|
70
|
+
private readonly visible;
|
|
71
|
+
/** Expande todos los nodos. */
|
|
72
|
+
expandAll(): void;
|
|
73
|
+
/** Contrae todos los nodos. */
|
|
74
|
+
collapseAll(): void;
|
|
75
|
+
protected hasChildren(node: CbTreeNode): boolean;
|
|
76
|
+
protected isExpanded(node: CbTreeNode): boolean;
|
|
77
|
+
protected isSelected(node: CbTreeNode): boolean;
|
|
78
|
+
protected itemId(node: CbTreeNode): string;
|
|
79
|
+
protected toggle(node: CbTreeNode, event?: Event): void;
|
|
80
|
+
protected onClick(event: Event, node: CbTreeNode): void;
|
|
81
|
+
protected onKeydown(event: KeyboardEvent): void;
|
|
82
|
+
private select;
|
|
83
|
+
private setExpanded;
|
|
84
|
+
private focus;
|
|
13
85
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbTree, never>;
|
|
14
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbTree, "cb-tree", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "selection": { "alias": "selection"; "required": false; "isSignal": true; }; }, { "selection": "selectionChange"; },
|
|
86
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbTree, "cb-tree", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "selection": { "alias": "selection"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "selection": "selectionChange"; "nodeExpand": "nodeExpand"; "nodeCollapse": "nodeCollapse"; "nodeSelect": "nodeSelect"; }, ["nodeTemplate"], never, true, never>;
|
|
15
87
|
}
|
|
16
88
|
|
|
17
|
-
export { CbTree };
|
|
18
|
-
export type { CbTreeNode };
|
|
89
|
+
export { CbTree, CbTreeNodeTemplate };
|
|
90
|
+
export type { CbTreeNode, CbTreeNodeContext };
|
|
19
91
|
//# sourceMappingURL=caribeng-ui-tree.d.ts.map
|