@caribeng/ui 22.4.0 → 22.5.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 +311 -313
- package/fesm2022/caribeng-ui-account-picker.mjs +533 -0
- package/fesm2022/caribeng-ui-aging.mjs +488 -0
- package/fesm2022/{caribeng-ui-caribe-alert.mjs → caribeng-ui-alert.mjs} +45 -45
- package/fesm2022/caribeng-ui-amount.mjs +249 -0
- package/fesm2022/caribeng-ui-anchor.mjs +2 -2
- package/fesm2022/{caribeng-ui-caribe-animation-lottie.mjs → caribeng-ui-animation-lottie.mjs} +41 -41
- package/fesm2022/caribeng-ui-audit-log.mjs +323 -0
- package/fesm2022/caribeng-ui-avatar.mjs +2 -2
- package/fesm2022/caribeng-ui-breadcrumb.mjs +13 -3
- package/fesm2022/{caribeng-ui-caribe-button-group.mjs → caribeng-ui-button-group.mjs} +15 -15
- package/fesm2022/caribeng-ui-button.mjs +2 -2
- package/fesm2022/{caribeng-ui-caribe-card-content.mjs → caribeng-ui-card-content.mjs} +39 -39
- package/fesm2022/{caribeng-ui-caribe-card-move.mjs → caribeng-ui-card-move.mjs} +65 -65
- package/fesm2022/{caribeng-ui-caribe-card-primary.mjs → caribeng-ui-card-primary.mjs} +31 -31
- package/fesm2022/{caribeng-ui-caribe-card-select.mjs → caribeng-ui-card-select.mjs} +67 -67
- package/fesm2022/caribeng-ui-carousel.mjs +2 -2
- package/fesm2022/caribeng-ui-cascadeselect.mjs +45 -9
- package/fesm2022/caribeng-ui-chat.mjs +2 -2
- package/fesm2022/{caribeng-ui-caribe-coachmark.mjs → caribeng-ui-coachmark.mjs} +85 -85
- package/fesm2022/caribeng-ui-command-palette.mjs +2 -2
- package/fesm2022/caribeng-ui-comments.mjs +864 -0
- package/fesm2022/caribeng-ui-datagrid.mjs +1635 -0
- package/fesm2022/caribeng-ui-dataview.mjs +2 -2
- package/fesm2022/caribeng-ui-datepicker.mjs +2 -2
- package/fesm2022/caribeng-ui-document.mjs +495 -0
- package/fesm2022/{caribeng-ui-caribe-dots-indicator.mjs → caribeng-ui-dots-indicator.mjs} +41 -41
- package/fesm2022/caribeng-ui-dynamic-form.mjs +1581 -0
- package/fesm2022/caribeng-ui-editor.mjs +2303 -1311
- package/fesm2022/{caribeng-ui-caribe-expansion-panel.mjs → caribeng-ui-expansion-panel.mjs} +39 -39
- package/fesm2022/{caribeng-ui-caribe-fab-menu.mjs → caribeng-ui-fab-menu.mjs} +75 -75
- package/fesm2022/caribeng-ui-file-card.mjs +2 -2
- package/fesm2022/{caribeng-ui-caribe-file-download.mjs → caribeng-ui-file-download.mjs} +63 -63
- package/fesm2022/caribeng-ui-financial-report.mjs +380 -0
- package/fesm2022/{caribeng-ui-caribe-float-menu.mjs → caribeng-ui-float-menu.mjs} +31 -31
- package/fesm2022/caribeng-ui-floatlabel.mjs +2 -2
- package/fesm2022/caribeng-ui-flow.mjs +1508 -0
- package/fesm2022/{caribeng-ui-caribe-footer.mjs → caribeng-ui-footer.mjs} +19 -19
- package/fesm2022/caribeng-ui-gantt.mjs +1094 -0
- package/fesm2022/{caribeng-ui-caribe-header.mjs → caribeng-ui-header.mjs} +49 -49
- package/fesm2022/{caribeng-ui-caribe-icon-button.mjs → caribeng-ui-icon-button.mjs} +23 -23
- package/fesm2022/caribeng-ui-image-cropper.mjs +671 -0
- package/fesm2022/caribeng-ui-import-wizard.mjs +746 -0
- package/fesm2022/caribeng-ui-infinite-scroll.mjs +226 -0
- package/fesm2022/caribeng-ui-input-number.mjs +22 -6
- package/fesm2022/{caribeng-ui-caribe-input-search.mjs → caribeng-ui-input-search.mjs} +65 -65
- package/fesm2022/{caribeng-ui-caribe-input-token.mjs → caribeng-ui-input-token.mjs} +59 -59
- package/fesm2022/caribeng-ui-inputotp.mjs +2 -2
- package/fesm2022/caribeng-ui-journal-entry.mjs +340 -0
- package/fesm2022/caribeng-ui-kanban.mjs +6 -6
- package/fesm2022/caribeng-ui-kpi.mjs +189 -0
- package/fesm2022/{caribeng-ui-caribe-link.mjs → caribeng-ui-link.mjs} +37 -37
- package/fesm2022/caribeng-ui-masonry.mjs +93 -0
- package/fesm2022/caribeng-ui-media-player.mjs +821 -0
- package/fesm2022/caribeng-ui-mentions.mjs +2 -2
- package/fesm2022/caribeng-ui-notification-center.mjs +636 -0
- package/fesm2022/{caribeng-ui-caribe-off-canvas.mjs → caribeng-ui-off-canvas.mjs} +55 -55
- package/fesm2022/{caribeng-ui-caribe-onboarding.mjs → caribeng-ui-onboarding.mjs} +105 -105
- package/fesm2022/caribeng-ui-orderlist.mjs +2 -2
- package/fesm2022/caribeng-ui-pdfviewer.mjs +1755 -25
- package/fesm2022/caribeng-ui-period-picker.mjs +637 -0
- package/fesm2022/caribeng-ui-phone-input.mjs +2 -2
- package/fesm2022/caribeng-ui-picklist.mjs +2 -2
- package/fesm2022/caribeng-ui-pivot.mjs +419 -0
- package/fesm2022/caribeng-ui-pricing.mjs +2 -2
- package/fesm2022/caribeng-ui-rating.mjs +14 -17
- package/fesm2022/caribeng-ui-reconciliation.mjs +386 -0
- package/fesm2022/caribeng-ui-scheduler.mjs +1027 -0
- package/fesm2022/caribeng-ui-select.mjs +2 -2
- package/fesm2022/{caribeng-ui-caribe-shortcut.mjs → caribeng-ui-shortcut.mjs} +29 -29
- package/fesm2022/caribeng-ui-sidebar.mjs +2 -2
- package/fesm2022/caribeng-ui-signature-pad.mjs +654 -0
- package/fesm2022/{caribeng-ui-caribe-status.mjs → caribeng-ui-status.mjs} +11 -11
- package/fesm2022/{caribeng-ui-caribe-step-indicator.mjs → caribeng-ui-step-indicator.mjs} +53 -53
- package/fesm2022/caribeng-ui-stepper.mjs +2 -2
- package/fesm2022/caribeng-ui-steps.mjs +2 -2
- package/fesm2022/caribeng-ui-table.mjs +323 -15
- package/fesm2022/caribeng-ui-tabmenu.mjs +2 -2
- package/fesm2022/caribeng-ui-tabs.mjs +2 -2
- package/fesm2022/{caribeng-ui-caribe-tag-button.mjs → caribeng-ui-tag-button.mjs} +25 -25
- package/fesm2022/caribeng-ui-tag.mjs +2 -2
- package/fesm2022/caribeng-ui-tieredmenu.mjs +6 -6
- package/fesm2022/{caribeng-ui-caribe-tracker.mjs → caribeng-ui-tracker.mjs} +29 -29
- package/fesm2022/{caribeng-ui-caribe-transaction-status.mjs → caribeng-ui-transaction-status.mjs} +11 -11
- package/fesm2022/caribeng-ui-treeselect.mjs +44 -9
- package/fesm2022/caribeng-ui-treetable.mjs +236 -17
- package/fesm2022/{caribeng-ui-caribe-voucher.mjs → caribeng-ui-voucher.mjs} +45 -45
- package/fesm2022/caribeng-ui-xlsx.mjs +486 -0
- package/fesm2022/caribeng-ui.mjs +1181 -1
- package/package.json +217 -177
- package/types/caribeng-ui-account-picker.d.ts +142 -0
- package/types/caribeng-ui-aging.d.ts +123 -0
- package/types/{caribeng-ui-caribe-alert.d.ts → caribeng-ui-alert.d.ts} +2 -2
- package/types/caribeng-ui-amount.d.ts +82 -0
- package/types/{caribeng-ui-caribe-animation-lottie.d.ts → caribeng-ui-animation-lottie.d.ts} +2 -2
- package/types/caribeng-ui-audit-log.d.ts +86 -0
- package/types/caribeng-ui-breadcrumb.d.ts +2 -2
- package/types/{caribeng-ui-caribe-button-group.d.ts → caribeng-ui-button-group.d.ts} +2 -2
- package/types/{caribeng-ui-caribe-card-content.d.ts → caribeng-ui-card-content.d.ts} +2 -2
- package/types/{caribeng-ui-caribe-card-move.d.ts → caribeng-ui-card-move.d.ts} +1 -1
- package/types/{caribeng-ui-caribe-card-primary.d.ts → caribeng-ui-card-primary.d.ts} +2 -2
- package/types/{caribeng-ui-caribe-card-select.d.ts → caribeng-ui-card-select.d.ts} +2 -2
- package/types/caribeng-ui-cascadeselect.d.ts +6 -0
- package/types/{caribeng-ui-caribe-coachmark.d.ts → caribeng-ui-coachmark.d.ts} +2 -2
- package/types/caribeng-ui-comments.d.ts +214 -0
- package/types/caribeng-ui-datagrid.d.ts +269 -0
- package/types/caribeng-ui-document.d.ts +138 -0
- package/types/{caribeng-ui-caribe-dots-indicator.d.ts → caribeng-ui-dots-indicator.d.ts} +2 -2
- package/types/caribeng-ui-dynamic-form.d.ts +409 -0
- package/types/caribeng-ui-editor.d.ts +110 -12
- package/types/{caribeng-ui-caribe-expansion-panel.d.ts → caribeng-ui-expansion-panel.d.ts} +1 -1
- package/types/{caribeng-ui-caribe-fab-menu.d.ts → caribeng-ui-fab-menu.d.ts} +2 -2
- package/types/{caribeng-ui-caribe-file-download.d.ts → caribeng-ui-file-download.d.ts} +1 -1
- package/types/caribeng-ui-financial-report.d.ts +102 -0
- package/types/{caribeng-ui-caribe-float-menu.d.ts → caribeng-ui-float-menu.d.ts} +2 -2
- package/types/caribeng-ui-flow.d.ts +228 -0
- package/types/{caribeng-ui-caribe-footer.d.ts → caribeng-ui-footer.d.ts} +2 -2
- package/types/caribeng-ui-gantt.d.ts +244 -0
- package/types/{caribeng-ui-caribe-header.d.ts → caribeng-ui-header.d.ts} +2 -2
- package/types/{caribeng-ui-caribe-icon-button.d.ts → caribeng-ui-icon-button.d.ts} +2 -2
- package/types/{caribeng-ui-caribe-illustration.d.ts → caribeng-ui-illustration.d.ts} +1 -1
- package/types/caribeng-ui-image-cropper.d.ts +169 -0
- package/types/caribeng-ui-import-wizard.d.ts +149 -0
- package/types/caribeng-ui-infinite-scroll.d.ts +75 -0
- package/types/caribeng-ui-input-number.d.ts +1 -1
- package/types/{caribeng-ui-caribe-input-search.d.ts → caribeng-ui-input-search.d.ts} +2 -2
- package/types/{caribeng-ui-caribe-input-token.d.ts → caribeng-ui-input-token.d.ts} +2 -2
- package/types/caribeng-ui-journal-entry.d.ts +110 -0
- package/types/caribeng-ui-kpi.d.ts +64 -0
- package/types/{caribeng-ui-caribe-link.d.ts → caribeng-ui-link.d.ts} +2 -2
- package/types/{caribeng-ui-caribe-logo.d.ts → caribeng-ui-logo.d.ts} +1 -1
- package/types/caribeng-ui-masonry.d.ts +32 -0
- package/types/caribeng-ui-media-player.d.ts +140 -0
- package/types/caribeng-ui-notification-center.d.ts +153 -0
- package/types/{caribeng-ui-caribe-off-canvas.d.ts → caribeng-ui-off-canvas.d.ts} +2 -2
- package/types/{caribeng-ui-caribe-onboarding.d.ts → caribeng-ui-onboarding.d.ts} +2 -2
- package/types/caribeng-ui-pdfviewer.d.ts +245 -5
- package/types/caribeng-ui-period-picker.d.ts +148 -0
- package/types/caribeng-ui-pivot.d.ts +116 -0
- package/types/caribeng-ui-reconciliation.d.ts +109 -0
- package/types/caribeng-ui-scheduler.d.ts +188 -0
- package/types/{caribeng-ui-caribe-shortcut.d.ts → caribeng-ui-shortcut.d.ts} +2 -2
- package/types/caribeng-ui-signature-pad.d.ts +151 -0
- package/types/{caribeng-ui-caribe-status.d.ts → caribeng-ui-status.d.ts} +2 -2
- package/types/{caribeng-ui-caribe-step-indicator.d.ts → caribeng-ui-step-indicator.d.ts} +2 -2
- package/types/caribeng-ui-table.d.ts +66 -2
- package/types/{caribeng-ui-caribe-tag-button.d.ts → caribeng-ui-tag-button.d.ts} +2 -2
- package/types/{caribeng-ui-caribe-tracker.d.ts → caribeng-ui-tracker.d.ts} +2 -2
- package/types/{caribeng-ui-caribe-transaction-status.d.ts → caribeng-ui-transaction-status.d.ts} +2 -2
- package/types/caribeng-ui-treeselect.d.ts +6 -0
- package/types/caribeng-ui-treetable.d.ts +67 -2
- package/types/{caribeng-ui-caribe-voucher.d.ts → caribeng-ui-voucher.d.ts} +2 -2
- package/types/caribeng-ui-xlsx.d.ts +79 -0
- package/types/caribeng-ui.d.ts +711 -2
- package/fesm2022/caribeng-ui-caribe-calendar.mjs +0 -92
- package/fesm2022/caribeng-ui-caribe-circle-loading.mjs +0 -130
- package/fesm2022/caribeng-ui-caribe-data-table.mjs +0 -94
- package/fesm2022/caribeng-ui-caribe-file-select.mjs +0 -88
- package/fesm2022/caribeng-ui-caribe-inline-alert.mjs +0 -100
- package/fesm2022/caribeng-ui-caribe-input-date.mjs +0 -138
- package/fesm2022/caribeng-ui-caribe-input-select.mjs +0 -154
- package/fesm2022/caribeng-ui-caribe-loader.mjs +0 -48
- package/fesm2022/caribeng-ui-caribe-modal.mjs +0 -119
- package/fesm2022/caribeng-ui-caribe-pictogram.mjs +0 -52
- package/fesm2022/caribeng-ui-caribe-pop-over.mjs +0 -104
- package/fesm2022/caribeng-ui-caribe-preloader.mjs +0 -57
- package/fesm2022/caribeng-ui-caribe-progress-bar.mjs +0 -84
- package/fesm2022/caribeng-ui-caribe-stroke.mjs +0 -69
- package/fesm2022/caribeng-ui-caribe-switch.mjs +0 -182
- package/types/caribeng-ui-caribe-calendar.d.ts +0 -27
- package/types/caribeng-ui-caribe-circle-loading.d.ts +0 -28
- package/types/caribeng-ui-caribe-data-table.d.ts +0 -26
- package/types/caribeng-ui-caribe-file-select.d.ts +0 -31
- package/types/caribeng-ui-caribe-inline-alert.d.ts +0 -28
- package/types/caribeng-ui-caribe-input-date.d.ts +0 -40
- package/types/caribeng-ui-caribe-input-select.d.ts +0 -47
- package/types/caribeng-ui-caribe-loader.d.ts +0 -22
- package/types/caribeng-ui-caribe-modal.d.ts +0 -21
- package/types/caribeng-ui-caribe-pictogram.d.ts +0 -15
- package/types/caribeng-ui-caribe-pop-over.d.ts +0 -17
- package/types/caribeng-ui-caribe-preloader.d.ts +0 -24
- package/types/caribeng-ui-caribe-progress-bar.d.ts +0 -28
- package/types/caribeng-ui-caribe-stroke.d.ts +0 -17
- package/types/caribeng-ui-caribe-switch.d.ts +0 -55
- /package/fesm2022/{caribeng-ui-caribe-illustration.mjs → caribeng-ui-illustration.mjs} +0 -0
- /package/fesm2022/{caribeng-ui-caribe-logo.mjs → caribeng-ui-logo.mjs} +0 -0
|
@@ -4,6 +4,64 @@ import * as _caribeng_ui from '@caribeng/ui';
|
|
|
4
4
|
import { cbFormat } from '@caribeng/ui';
|
|
5
5
|
import * as pdfjs_dist from 'pdfjs-dist';
|
|
6
6
|
|
|
7
|
+
/** Rectángulo en puntos PDF de la página (`[x1, y1, x2, y2]`, con y hacia arriba, sin el giro del visor). */
|
|
8
|
+
type CbPdfRect = readonly [number, number, number, number];
|
|
9
|
+
/** Herramienta de anotación activa. */
|
|
10
|
+
type CbPdfTool = 'none' | 'highlight' | 'note' | 'ink' | 'signature';
|
|
11
|
+
/** Colores de anotación: el claro se usa para resaltar y el oscuro para notas y dibujos. */
|
|
12
|
+
type CbPdfAnnotationColor = 'yellow' | 'green' | 'blue' | 'red';
|
|
13
|
+
declare const CB_PDF_COLORS: Readonly<Record<CbPdfAnnotationColor, {
|
|
14
|
+
light: string;
|
|
15
|
+
dark: string;
|
|
16
|
+
}>>;
|
|
17
|
+
interface CbPdfAnnotationBase {
|
|
18
|
+
readonly id: string;
|
|
19
|
+
/** Página, desde 1. */
|
|
20
|
+
readonly page: number;
|
|
21
|
+
/** Autor (campo `T` del PDF). */
|
|
22
|
+
readonly author?: string;
|
|
23
|
+
/** Fecha de creación (ISO 8601). */
|
|
24
|
+
readonly date?: string;
|
|
25
|
+
}
|
|
26
|
+
/** Texto resaltado, con un comentario opcional (nota emergente en el PDF). */
|
|
27
|
+
interface CbPdfHighlight extends CbPdfAnnotationBase {
|
|
28
|
+
readonly type: 'highlight';
|
|
29
|
+
/** Un rectángulo por línea resaltada. */
|
|
30
|
+
readonly rects: readonly CbPdfRect[];
|
|
31
|
+
readonly color: CbPdfAnnotationColor;
|
|
32
|
+
/** Texto que se resaltó. */
|
|
33
|
+
readonly text: string;
|
|
34
|
+
readonly comment?: string;
|
|
35
|
+
}
|
|
36
|
+
/** Nota de texto visible sobre la página (`FreeText` en el PDF). */
|
|
37
|
+
interface CbPdfNote extends CbPdfAnnotationBase {
|
|
38
|
+
readonly type: 'note';
|
|
39
|
+
readonly rect: CbPdfRect;
|
|
40
|
+
/** Texto; cada salto de línea es una línea en el PDF. */
|
|
41
|
+
readonly text: string;
|
|
42
|
+
readonly color: CbPdfAnnotationColor;
|
|
43
|
+
/** Tamaño de letra en puntos (12 por defecto). */
|
|
44
|
+
readonly fontSize?: number;
|
|
45
|
+
}
|
|
46
|
+
/** Dibujo a mano alzada (`Ink` en el PDF). */
|
|
47
|
+
interface CbPdfInk extends CbPdfAnnotationBase {
|
|
48
|
+
readonly type: 'ink';
|
|
49
|
+
/** Trazos, cada uno como puntos PDF seguidos: `[x1, y1, x2, y2, …]`. */
|
|
50
|
+
readonly paths: readonly (readonly number[])[];
|
|
51
|
+
readonly color: CbPdfAnnotationColor;
|
|
52
|
+
/** Grosor en puntos. */
|
|
53
|
+
readonly thickness: number;
|
|
54
|
+
}
|
|
55
|
+
/** Firma como imagen (`Stamp` en el PDF). */
|
|
56
|
+
interface CbPdfSignature extends CbPdfAnnotationBase {
|
|
57
|
+
readonly type: 'signature';
|
|
58
|
+
readonly rect: CbPdfRect;
|
|
59
|
+
/** Imagen de la firma (data URL PNG, como la da `cb-signature-pad`). */
|
|
60
|
+
readonly image: string;
|
|
61
|
+
}
|
|
62
|
+
/** Anotación del visor. Las coordenadas son puntos PDF: no cambian con el zoom ni con el giro. */
|
|
63
|
+
type CbPdfAnnotation = CbPdfHighlight | CbPdfNote | CbPdfInk | CbPdfSignature;
|
|
64
|
+
|
|
7
65
|
/** Módulo de pdf.js (`pdfjs-dist`) que usa el visor. */
|
|
8
66
|
type CbPdfJs = typeof pdfjs_dist;
|
|
9
67
|
/** Documento abierto por pdf.js. */
|
|
@@ -87,13 +145,54 @@ type CbPdfZoom = number | 'page-width' | 'page-fit';
|
|
|
87
145
|
/** Giro del documento, en grados. */
|
|
88
146
|
type CbPdfRotation = 0 | 90 | 180 | 270;
|
|
89
147
|
type ViewerState = 'idle' | 'loading' | 'password' | 'ready' | 'error';
|
|
148
|
+
type SidebarView = 'thumbnails' | 'outline' | 'annotations';
|
|
149
|
+
/** Una anotación ya colocada en su página dibujada (píxeles CSS). */
|
|
150
|
+
interface Mark {
|
|
151
|
+
readonly a: CbPdfAnnotation;
|
|
152
|
+
readonly box: {
|
|
153
|
+
left: number;
|
|
154
|
+
top: number;
|
|
155
|
+
width: number;
|
|
156
|
+
height: number;
|
|
157
|
+
};
|
|
158
|
+
/** Resaltado: un rectángulo por línea, relativo a `box`. */
|
|
159
|
+
readonly rects?: readonly {
|
|
160
|
+
left: number;
|
|
161
|
+
top: number;
|
|
162
|
+
width: number;
|
|
163
|
+
height: number;
|
|
164
|
+
}[];
|
|
165
|
+
/** Dibujo: trazado SVG relativo a `box`. */
|
|
166
|
+
readonly d?: string;
|
|
167
|
+
readonly strokePx?: number;
|
|
168
|
+
/** Nota: tamaño de letra en píxeles. */
|
|
169
|
+
readonly fontPx?: number;
|
|
170
|
+
readonly light: string;
|
|
171
|
+
readonly dark: string;
|
|
172
|
+
readonly label: string;
|
|
173
|
+
}
|
|
174
|
+
/** Entrada del índice (marcadores) del documento. */
|
|
175
|
+
interface CbPdfOutlineItem {
|
|
176
|
+
readonly title: string;
|
|
177
|
+
/** Destino interno (nombre o destino explícito de pdf.js). */
|
|
178
|
+
readonly dest: string | unknown[] | null;
|
|
179
|
+
/** Enlace externo. */
|
|
180
|
+
readonly url: string | null;
|
|
181
|
+
readonly bold: boolean;
|
|
182
|
+
readonly italic: boolean;
|
|
183
|
+
readonly items: readonly CbPdfOutlineItem[];
|
|
184
|
+
}
|
|
185
|
+
/** Valor de un campo de formulario: texto, casilla marcada u opciones elegidas. */
|
|
186
|
+
type CbPdfFormValue = string | boolean | string[] | null;
|
|
90
187
|
/**
|
|
91
188
|
* Visor de PDF sobre [pdf.js](https://mozilla.github.io/pdf.js/) (`pdfjs-dist`,
|
|
92
189
|
* dependencia opcional que se carga al abrir el primer documento).
|
|
93
190
|
*
|
|
94
191
|
* Renderiza las páginas a medida que se ven, con texto seleccionable y
|
|
95
192
|
* legible por lectores de pantalla, búsqueda (ignora tildes y mayúsculas),
|
|
96
|
-
* miniaturas,
|
|
193
|
+
* miniaturas, índice (marcadores), enlaces internos y externos, formularios
|
|
194
|
+
* rellenables (se descargan e imprimen con lo escrito), zoom, giro, descarga,
|
|
195
|
+
* impresión y documentos con contraseña.
|
|
97
196
|
*
|
|
98
197
|
* @example
|
|
99
198
|
* ```html
|
|
@@ -126,17 +225,45 @@ declare class CbPdfViewer {
|
|
|
126
225
|
readonly showRotate: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
127
226
|
readonly downloadable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
128
227
|
readonly printable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
228
|
+
/** Pestaña Índice en el panel lateral (si el documento tiene marcadores). */
|
|
229
|
+
readonly showOutline: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
230
|
+
/** Campos de formulario rellenables (si no, se pintan como imagen). */
|
|
231
|
+
readonly forms: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
232
|
+
/** Enlaces externos del documento: se abren en otra pestaña. `false` los desactiva. */
|
|
233
|
+
readonly externalLinks: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
234
|
+
/** Vista del panel lateral. */
|
|
235
|
+
readonly sidebarView: _angular_core.ModelSignal<SidebarView>;
|
|
129
236
|
/** Nombre accesible del visor (por defecto, "Visor de PDF"). */
|
|
130
237
|
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
238
|
+
/** Herramientas para resaltar, poner notas, dibujar y firmar (y la pestaña Anotaciones). */
|
|
239
|
+
readonly annotatable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
240
|
+
/**
|
|
241
|
+
* Anotaciones del usuario, en puntos PDF. Se ven siempre; con `annotatable` se crean, mueven y
|
|
242
|
+
* borran. Al descargar o imprimir se escriben en el PDF como anotaciones estándar.
|
|
243
|
+
*/
|
|
244
|
+
readonly annotations: _angular_core.ModelSignal<readonly CbPdfAnnotation[]>;
|
|
245
|
+
/** Herramienta activa (`none`, `highlight`, `note`, `ink`). Escape vuelve a `none`. */
|
|
246
|
+
readonly tool: _angular_core.ModelSignal<CbPdfTool>;
|
|
247
|
+
/** Color de las anotaciones nuevas. */
|
|
248
|
+
readonly annotationColor: _angular_core.ModelSignal<CbPdfAnnotationColor>;
|
|
249
|
+
/** Autor de las anotaciones nuevas (se guarda en el PDF). */
|
|
250
|
+
readonly author: _angular_core.InputSignal<string>;
|
|
131
251
|
/** Documento abierto. */
|
|
132
252
|
readonly loaded: _angular_core.OutputEmitterRef<{
|
|
133
253
|
numPages: number;
|
|
134
254
|
}>;
|
|
135
255
|
/** No se pudo abrir el documento. */
|
|
136
256
|
readonly loadError: _angular_core.OutputEmitterRef<unknown>;
|
|
257
|
+
/** El usuario cambió un campo del formulario (los valores, con `getFormData()`). */
|
|
258
|
+
readonly formChange: _angular_core.OutputEmitterRef<void>;
|
|
259
|
+
/** El usuario creó una anotación. */
|
|
260
|
+
readonly annotationAdd: _angular_core.OutputEmitterRef<CbPdfAnnotation>;
|
|
261
|
+
/** El usuario borró una anotación. */
|
|
262
|
+
readonly annotationRemove: _angular_core.OutputEmitterRef<CbPdfAnnotation>;
|
|
137
263
|
private readonly engine;
|
|
138
264
|
private readonly document;
|
|
139
265
|
private readonly injector;
|
|
266
|
+
private readonly host;
|
|
140
267
|
private readonly isBrowser;
|
|
141
268
|
protected readonly uid: string;
|
|
142
269
|
protected readonly state: _angular_core.WritableSignal<ViewerState>;
|
|
@@ -154,11 +281,19 @@ declare class CbPdfViewer {
|
|
|
154
281
|
protected readonly matchIndex: _angular_core.WritableSignal<number>;
|
|
155
282
|
protected readonly searching: _angular_core.WritableSignal<boolean>;
|
|
156
283
|
protected readonly zoomLevels: number[];
|
|
284
|
+
/** Índice del documento (vacío si no tiene). */
|
|
285
|
+
readonly outline: _angular_core.WritableSignal<readonly CbPdfOutlineItem[]>;
|
|
286
|
+
/** Algún campo del formulario cambió desde que se abrió. */
|
|
287
|
+
readonly formModified: _angular_core.WritableSignal<boolean>;
|
|
288
|
+
private readonly collapsed;
|
|
289
|
+
/** Enlaces del documento (lo que la capa de anotaciones de pdf.js necesita). */
|
|
290
|
+
private readonly linkService;
|
|
157
291
|
private readonly viewport;
|
|
158
292
|
private readonly pageEls;
|
|
159
293
|
private readonly thumbEls;
|
|
160
294
|
private readonly searchInput;
|
|
161
295
|
private readonly passwordInput;
|
|
296
|
+
private readonly cardText;
|
|
162
297
|
/** Factor de zoom efectivo (1 = 100 %). */
|
|
163
298
|
readonly scale: _angular_core.Signal<number>;
|
|
164
299
|
/** Tamaño de cada página en píxeles CSS con el zoom y el giro actuales. */
|
|
@@ -176,6 +311,34 @@ declare class CbPdfViewer {
|
|
|
176
311
|
protected readonly zoomValue: _angular_core.Signal<string>;
|
|
177
312
|
protected readonly customZoom: _angular_core.Signal<number | null>;
|
|
178
313
|
protected readonly searchStatus: _angular_core.Signal<string>;
|
|
314
|
+
protected readonly colors: Readonly<Record<CbPdfAnnotationColor, {
|
|
315
|
+
light: string;
|
|
316
|
+
dark: string;
|
|
317
|
+
}>>;
|
|
318
|
+
protected readonly colorNames: CbPdfAnnotationColor[];
|
|
319
|
+
protected readonly selectedId: _angular_core.WritableSignal<string | null>;
|
|
320
|
+
/** Anotación con el editor (texto de la nota o comentario del resaltado) abierto. */
|
|
321
|
+
protected readonly editingId: _angular_core.WritableSignal<string | null>;
|
|
322
|
+
/** Anotación mientras se arrastra o cambia de tamaño (se confirma al soltar). */
|
|
323
|
+
private readonly dragPreview;
|
|
324
|
+
/** Trazo que se está dibujando, en píxeles de la página. */
|
|
325
|
+
protected readonly stroke: _angular_core.WritableSignal<{
|
|
326
|
+
page: number;
|
|
327
|
+
points: number[];
|
|
328
|
+
} | null>;
|
|
329
|
+
protected readonly announcement: _angular_core.WritableSignal<string>;
|
|
330
|
+
private announceFlip;
|
|
331
|
+
protected readonly signing: _angular_core.WritableSignal<boolean>;
|
|
332
|
+
protected readonly signatureValue: _angular_core.WritableSignal<string>;
|
|
333
|
+
private pendingFocus;
|
|
334
|
+
private readonly shownAnnotations;
|
|
335
|
+
/** Anotaciones de cada página, ya colocadas con el zoom y el giro actuales. */
|
|
336
|
+
protected readonly marks: _angular_core.Signal<Mark[][]>;
|
|
337
|
+
protected readonly editingMark: _angular_core.Signal<Mark | null>;
|
|
338
|
+
protected readonly sortedAnnotations: _angular_core.Signal<CbPdfAnnotation[]>;
|
|
339
|
+
protected readonly sidebarTabs: _angular_core.Signal<SidebarView[]>;
|
|
340
|
+
protected readonly activeView: _angular_core.Signal<SidebarView>;
|
|
341
|
+
protected readonly toolHint: _angular_core.Signal<string>;
|
|
179
342
|
private pdfjs?;
|
|
180
343
|
private pdf?;
|
|
181
344
|
private loadingTask?;
|
|
@@ -209,11 +372,18 @@ declare class CbPdfViewer {
|
|
|
209
372
|
search(query: string): Promise<void>;
|
|
210
373
|
findNext(): void;
|
|
211
374
|
findPrevious(): void;
|
|
212
|
-
/**
|
|
375
|
+
/** Lleva a un destino del documento (nombre o destino explícito), con su posición en la página. */
|
|
376
|
+
goToDestination(dest: string | unknown[] | null): Promise<void>;
|
|
377
|
+
/** Valores actuales del formulario, por nombre de campo. */
|
|
378
|
+
getFormData(): Promise<Record<string, CbPdfFormValue>>;
|
|
379
|
+
/** El PDF con lo escrito en el formulario y las anotaciones (o el original si no hay cambios). */
|
|
380
|
+
save(): Promise<Blob | null>;
|
|
381
|
+
/** Descarga el documento (con los datos del formulario y las anotaciones, si los hay). */
|
|
213
382
|
download(): Promise<void>;
|
|
214
383
|
/** Imprime el documento (no la página de la aplicación). */
|
|
215
384
|
print(): Promise<void>;
|
|
216
385
|
private open;
|
|
386
|
+
private loadOutline;
|
|
217
387
|
protected submitPassword(event: Event, value: string): void;
|
|
218
388
|
/** Lee el tamaño real de todas las páginas (pueden ser distintas de la primera). */
|
|
219
389
|
private measurePages;
|
|
@@ -226,6 +396,8 @@ declare class CbPdfViewer {
|
|
|
226
396
|
private renderVisible;
|
|
227
397
|
private renderPage;
|
|
228
398
|
private unrender;
|
|
399
|
+
/** Enlaces y campos de formulario de la página (capa de anotaciones de pdf.js). */
|
|
400
|
+
private renderAnnotations;
|
|
229
401
|
private observeThumbs;
|
|
230
402
|
private renderThumbs;
|
|
231
403
|
private renderThumb;
|
|
@@ -237,10 +409,78 @@ declare class CbPdfViewer {
|
|
|
237
409
|
protected onScroll(): void;
|
|
238
410
|
private mostVisiblePage;
|
|
239
411
|
private scrollToPage;
|
|
412
|
+
/** Desplaza hasta la altura `top` (puntos PDF, desde abajo) de la página `n`. */
|
|
413
|
+
private scrollToPoint;
|
|
240
414
|
private readAnchor;
|
|
241
415
|
private restoreAnchor;
|
|
242
416
|
private observeResize;
|
|
243
417
|
private pageEl;
|
|
418
|
+
protected toggleTool(tool: CbPdfTool): void;
|
|
419
|
+
/** Con texto seleccionado lo resalta al momento; si no, activa la herramienta. */
|
|
420
|
+
protected onHighlightTool(): void;
|
|
421
|
+
/** Con el teclado (sin puntero) la nota se pone directamente en la página que se ve. */
|
|
422
|
+
protected onNoteTool(event: MouseEvent): void;
|
|
423
|
+
protected openSignature(): void;
|
|
424
|
+
protected insertSignature(): Promise<void>;
|
|
425
|
+
/** El foco vuelve tras cerrar el diálogo: entonces se lleva a la firma recién puesta. */
|
|
426
|
+
protected onSignatureHide(): void;
|
|
427
|
+
/** Resalta el texto seleccionado en el documento (una anotación por página). */
|
|
428
|
+
protected highlightSelection(): boolean;
|
|
429
|
+
protected onPagesPointerUp(): void;
|
|
430
|
+
protected onMarksPointerDown(event: PointerEvent, page: number): void;
|
|
431
|
+
private finishStroke;
|
|
432
|
+
private addNote;
|
|
433
|
+
/** Añade una anotación, la anuncia y la selecciona. Devuelve su `id`. */
|
|
434
|
+
private addAnnotation;
|
|
435
|
+
/** Borra una anotación y deja el foco en la siguiente de la página (o en el documento). */
|
|
436
|
+
removeAnnotation(annotation: CbPdfAnnotation): void;
|
|
437
|
+
private replaceAnnotation;
|
|
438
|
+
protected select(id: string): void;
|
|
439
|
+
/** Lleva a la anotación (desde la lista del panel) y le da el foco. */
|
|
440
|
+
protected revealAnnotation(annotation: CbPdfAnnotation): void;
|
|
441
|
+
private focusMark;
|
|
442
|
+
protected openEditor(id: string): void;
|
|
443
|
+
protected onCardInput(value: string): void;
|
|
444
|
+
protected onCardKeydown(event: KeyboardEvent): void;
|
|
445
|
+
/** Cierra el editor: una nota vacía se borra y una con texto ajusta su caja a lo escrito. */
|
|
446
|
+
closeEditor(refocus: boolean): void;
|
|
447
|
+
/** La caja de la nota en el PDF es la que ocupa su texto en pantalla. */
|
|
448
|
+
private measureNote;
|
|
449
|
+
protected onMarkPointerDown(event: PointerEvent, annotation: CbPdfAnnotation): void;
|
|
450
|
+
protected onResizePointerDown(event: PointerEvent, annotation: CbPdfAnnotation): void;
|
|
451
|
+
/** Arrastre con vista previa: se confirma al soltar; sin moverse es un clic (`onClick`). */
|
|
452
|
+
private trackPointer;
|
|
453
|
+
protected onMarkKeydown(event: KeyboardEvent, rendered: CbPdfAnnotation): void;
|
|
454
|
+
/** Desplaza `dx`, `dy` píxeles de pantalla (con el giro, en el sentido en que se ven). */
|
|
455
|
+
private translated;
|
|
456
|
+
private announcePosition;
|
|
457
|
+
private announce;
|
|
458
|
+
/** Centro de la parte visible de la página `n`, en píxeles de la página. */
|
|
459
|
+
private visibleSpot;
|
|
460
|
+
private toMark;
|
|
461
|
+
protected labelOf(a: CbPdfAnnotation): string;
|
|
462
|
+
private nounOf;
|
|
463
|
+
protected swatchOf(a: CbPdfAnnotation): string;
|
|
464
|
+
protected colorLabel(color: CbPdfAnnotationColor): string;
|
|
465
|
+
/** Posición del editor: bajo la anotación, sin salirse de la página. */
|
|
466
|
+
protected cardLeft(m: Mark, pageWidth: number): number;
|
|
467
|
+
protected noteHeight(m: Mark): number;
|
|
468
|
+
private newBase;
|
|
469
|
+
private geomOf;
|
|
470
|
+
private viewOf;
|
|
471
|
+
/** Altura (para ordenar de arriba abajo en el panel). */
|
|
472
|
+
private topOf;
|
|
473
|
+
/**
|
|
474
|
+
* Escribe las anotaciones en el `annotationStorage` de pdf.js mientras dura `run` (guardar o
|
|
475
|
+
* tomar la copia para imprimir) y las quita después, sin marcar el formulario como cambiado.
|
|
476
|
+
*/
|
|
477
|
+
private withAnnotations;
|
|
478
|
+
protected isCollapsed(path: string): boolean;
|
|
479
|
+
protected toggleOutline(path: string): void;
|
|
480
|
+
protected openOutlineItem(item: CbPdfOutlineItem): void;
|
|
481
|
+
/** Acciones con nombre de los enlaces (NextPage, PrevPage, FirstPage, LastPage). */
|
|
482
|
+
private namedAction;
|
|
483
|
+
protected onFormInput(): void;
|
|
244
484
|
protected onPageInput(event: Event): void;
|
|
245
485
|
protected onZoomSelect(value: string): void;
|
|
246
486
|
protected onThumbKeydown(event: KeyboardEvent, n: number): void;
|
|
@@ -250,9 +490,9 @@ declare class CbPdfViewer {
|
|
|
250
490
|
private downloadName;
|
|
251
491
|
private rotatedPoints;
|
|
252
492
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbPdfViewer, never>;
|
|
253
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbPdfViewer, "cb-pdf-viewer", never, { "src": { "alias": "src"; "required": false; "isSignal": true; }; "fileName": { "alias": "fileName"; "required": false; "isSignal": true; }; "password": { "alias": "password"; "required": false; "isSignal": true; }; "withCredentials": { "alias": "withCredentials"; "required": false; "isSignal": true; }; "httpHeaders": { "alias": "httpHeaders"; "required": false; "isSignal": true; }; "page": { "alias": "page"; "required": false; "isSignal": true; }; "zoom": { "alias": "zoom"; "required": false; "isSignal": true; }; "rotation": { "alias": "rotation"; "required": false; "isSignal": true; }; "sidebar": { "alias": "sidebar"; "required": false; "isSignal": true; }; "showToolbar": { "alias": "showToolbar"; "required": false; "isSignal": true; }; "showSearch": { "alias": "showSearch"; "required": false; "isSignal": true; }; "showThumbnails": { "alias": "showThumbnails"; "required": false; "isSignal": true; }; "showRotate": { "alias": "showRotate"; "required": false; "isSignal": true; }; "downloadable": { "alias": "downloadable"; "required": false; "isSignal": true; }; "printable": { "alias": "printable"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "page": "pageChange"; "zoom": "zoomChange"; "rotation": "rotationChange"; "sidebar": "sidebarChange"; "loaded": "loaded"; "loadError": "loadError"; }, never, never, true, never>;
|
|
493
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbPdfViewer, "cb-pdf-viewer", never, { "src": { "alias": "src"; "required": false; "isSignal": true; }; "fileName": { "alias": "fileName"; "required": false; "isSignal": true; }; "password": { "alias": "password"; "required": false; "isSignal": true; }; "withCredentials": { "alias": "withCredentials"; "required": false; "isSignal": true; }; "httpHeaders": { "alias": "httpHeaders"; "required": false; "isSignal": true; }; "page": { "alias": "page"; "required": false; "isSignal": true; }; "zoom": { "alias": "zoom"; "required": false; "isSignal": true; }; "rotation": { "alias": "rotation"; "required": false; "isSignal": true; }; "sidebar": { "alias": "sidebar"; "required": false; "isSignal": true; }; "showToolbar": { "alias": "showToolbar"; "required": false; "isSignal": true; }; "showSearch": { "alias": "showSearch"; "required": false; "isSignal": true; }; "showThumbnails": { "alias": "showThumbnails"; "required": false; "isSignal": true; }; "showRotate": { "alias": "showRotate"; "required": false; "isSignal": true; }; "downloadable": { "alias": "downloadable"; "required": false; "isSignal": true; }; "printable": { "alias": "printable"; "required": false; "isSignal": true; }; "showOutline": { "alias": "showOutline"; "required": false; "isSignal": true; }; "forms": { "alias": "forms"; "required": false; "isSignal": true; }; "externalLinks": { "alias": "externalLinks"; "required": false; "isSignal": true; }; "sidebarView": { "alias": "sidebarView"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "annotatable": { "alias": "annotatable"; "required": false; "isSignal": true; }; "annotations": { "alias": "annotations"; "required": false; "isSignal": true; }; "tool": { "alias": "tool"; "required": false; "isSignal": true; }; "annotationColor": { "alias": "annotationColor"; "required": false; "isSignal": true; }; "author": { "alias": "author"; "required": false; "isSignal": true; }; }, { "page": "pageChange"; "zoom": "zoomChange"; "rotation": "rotationChange"; "sidebar": "sidebarChange"; "sidebarView": "sidebarViewChange"; "annotations": "annotationsChange"; "tool": "toolChange"; "annotationColor": "annotationColorChange"; "loaded": "loaded"; "loadError": "loadError"; "formChange": "formChange"; "annotationAdd": "annotationAdd"; "annotationRemove": "annotationRemove"; }, never, never, true, never>;
|
|
254
494
|
}
|
|
255
495
|
|
|
256
|
-
export { CB_PDF_VIEWER_OPTIONS, CbPdfEngine, CbPdfViewer, provideCbPdfViewer };
|
|
257
|
-
export type { CbPdfDocument, CbPdfJs, CbPdfMatch, CbPdfPage, CbPdfRotation, CbPdfSource, CbPdfTextPosition, CbPdfViewerOptions, CbPdfZoom };
|
|
496
|
+
export { CB_PDF_COLORS, CB_PDF_VIEWER_OPTIONS, CbPdfEngine, CbPdfViewer, provideCbPdfViewer };
|
|
497
|
+
export type { CbPdfAnnotation, CbPdfAnnotationColor, CbPdfDocument, CbPdfFormValue, CbPdfHighlight, CbPdfInk, CbPdfJs, CbPdfMatch, CbPdfNote, CbPdfOutlineItem, CbPdfPage, CbPdfRect, CbPdfRotation, CbPdfSignature, CbPdfSource, CbPdfTextPosition, CbPdfTool, CbPdfViewerOptions, CbPdfZoom };
|
|
258
498
|
//# sourceMappingURL=caribeng-ui-pdfviewer.d.ts.map
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import * as _caribeng_ui from '@caribeng/ui';
|
|
3
|
+
import { CbSize, CbRequiredIndicator } from '@caribeng/ui';
|
|
4
|
+
import { ControlValueAccessor } from '@angular/forms';
|
|
5
|
+
import { ConnectedPosition } from '@angular/cdk/overlay';
|
|
6
|
+
|
|
7
|
+
/** Tipo de periodo contable. */
|
|
8
|
+
type CbPeriodKind = 'month' | 'quarter' | 'year' | 'range';
|
|
9
|
+
/** Periodo contable elegido. */
|
|
10
|
+
interface CbPeriod {
|
|
11
|
+
readonly kind: CbPeriodKind;
|
|
12
|
+
/** Primer día (00:00). */
|
|
13
|
+
readonly from: Date;
|
|
14
|
+
/** Último día (00:00). */
|
|
15
|
+
readonly to: Date;
|
|
16
|
+
/** Clave estable: `2026-10`, `2026-Q3`, `2026` (año fiscal) o `2026-01-01_2026-10-23`. */
|
|
17
|
+
readonly key: string;
|
|
18
|
+
}
|
|
19
|
+
/** Atajos de periodo. */
|
|
20
|
+
type CbPeriodPreset = 'thisMonth' | 'lastMonth' | 'thisQuarter' | 'lastQuarter' | 'yearToDate' | 'thisYear' | 'lastYear';
|
|
21
|
+
/** Mes: `2026-10`. */
|
|
22
|
+
declare function monthPeriod(year: number, month: number): CbPeriod;
|
|
23
|
+
/**
|
|
24
|
+
* Año fiscal que empieza en `startMonth` (0 = enero). Se nombra por el año en
|
|
25
|
+
* que termina (con inicio en julio, el año fiscal 2026 va de jul 2025 a jun 2026).
|
|
26
|
+
*/
|
|
27
|
+
declare function fiscalYear(year: number, startMonth?: number): CbPeriod;
|
|
28
|
+
/** Trimestre `q` (1–4) del año fiscal `year`. */
|
|
29
|
+
declare function quarterPeriod(year: number, q: number, startMonth?: number): CbPeriod;
|
|
30
|
+
declare function rangePeriod(from: Date, to: Date): CbPeriod;
|
|
31
|
+
/** Año fiscal al que pertenece una fecha. */
|
|
32
|
+
declare function fiscalYearOf(date: Date, startMonth?: number): number;
|
|
33
|
+
/** Trimestre fiscal (1–4) de una fecha. */
|
|
34
|
+
declare function quarterOf(date: Date, startMonth?: number): number;
|
|
35
|
+
/** Periodo de un atajo respecto a `today`. */
|
|
36
|
+
declare function presetPeriod(preset: CbPeriodPreset, today: Date, startMonth?: number): CbPeriod;
|
|
37
|
+
/** Meses (`AAAA-MM`) que abarca un periodo. */
|
|
38
|
+
declare function monthsOf(period: CbPeriod): string[];
|
|
39
|
+
/** Periodo a partir de su clave (`2026-10`, `2026-Q3`, `2026`, `2026-01-01_2026-03-31`). */
|
|
40
|
+
declare function periodFromKey(key: string, startMonth?: number): CbPeriod | null;
|
|
41
|
+
|
|
42
|
+
type Mode = Exclude<CbPeriodKind, 'range'>;
|
|
43
|
+
interface Cell {
|
|
44
|
+
readonly period: CbPeriod;
|
|
45
|
+
readonly text: string;
|
|
46
|
+
readonly label: string;
|
|
47
|
+
readonly closed: boolean;
|
|
48
|
+
readonly disabled: boolean;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Selector de periodo contable de CaribeNG: mes, trimestre o año (fiscal), con
|
|
52
|
+
* atajos («Mes anterior», «Año a la fecha»…) y periodos cerrados marcados.
|
|
53
|
+
*
|
|
54
|
+
* - `fiscalYearStart` mueve el inicio del año fiscal (trimestres y años incluidos).
|
|
55
|
+
* - `closed` marca meses cerrados con un candado; con `disableClosed` no se eligen
|
|
56
|
+
* (útil al contabilizar), sin él se pueden consultar (útil en informes).
|
|
57
|
+
* - Funciona con Angular Forms o con `[(value)]`; el valor es un `CbPeriod` con
|
|
58
|
+
* `from`, `to`, `kind` y `key`.
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```html
|
|
62
|
+
* <cb-period-picker label="Periodo" [(value)]="periodo" [closed]="cerrados" />
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
declare class CbPeriodPicker implements ControlValueAccessor {
|
|
66
|
+
protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
|
|
67
|
+
private readonly injector;
|
|
68
|
+
private readonly uid;
|
|
69
|
+
readonly value: _angular_core.ModelSignal<CbPeriod | null>;
|
|
70
|
+
/** Vista de la cuadrícula: mes, trimestre o año. */
|
|
71
|
+
readonly mode: _angular_core.ModelSignal<Mode>;
|
|
72
|
+
/** Vistas disponibles y su orden. */
|
|
73
|
+
readonly modes: _angular_core.InputSignal<readonly Mode[]>;
|
|
74
|
+
/** Atajos del panel (lista vacía para quitarlos). */
|
|
75
|
+
readonly presets: _angular_core.InputSignal<readonly CbPeriodPreset[]>;
|
|
76
|
+
/** Mes en que empieza el año fiscal (1 = enero). */
|
|
77
|
+
readonly fiscalYearStart: _angular_core.InputSignal<number>;
|
|
78
|
+
/** Meses cerrados (`AAAA-MM`): se marcan con un candado. */
|
|
79
|
+
readonly closed: _angular_core.InputSignal<readonly string[]>;
|
|
80
|
+
/** No deja elegir periodos que incluyan meses cerrados. */
|
|
81
|
+
readonly disableClosed: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
82
|
+
/** Primer y último día que se pueden elegir. */
|
|
83
|
+
readonly min: _angular_core.InputSignal<Date | null>;
|
|
84
|
+
readonly max: _angular_core.InputSignal<Date | null>;
|
|
85
|
+
/** «Hoy» para los atajos y el periodo actual (por defecto, la fecha del sistema). */
|
|
86
|
+
readonly today: _angular_core.InputSignal<Date>;
|
|
87
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
88
|
+
readonly hint: _angular_core.InputSignal<string>;
|
|
89
|
+
readonly error: _angular_core.InputSignal<string>;
|
|
90
|
+
readonly placeholder: _angular_core.InputSignal<string | undefined>;
|
|
91
|
+
readonly size: _angular_core.InputSignal<CbSize>;
|
|
92
|
+
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
93
|
+
readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
94
|
+
readonly requiredIndicator: _angular_core.InputSignal<CbRequiredIndicator | undefined>;
|
|
95
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
96
|
+
readonly inputId: _angular_core.InputSignal<string>;
|
|
97
|
+
readonly periodChange: _angular_core.OutputEmitterRef<CbPeriod | null>;
|
|
98
|
+
protected readonly fieldState: _caribeng_ui.CbFieldState;
|
|
99
|
+
protected readonly positions: ConnectedPosition[];
|
|
100
|
+
protected readonly open: _angular_core.WritableSignal<boolean>;
|
|
101
|
+
private readonly cvaDisabled;
|
|
102
|
+
protected readonly isDisabled: _angular_core.Signal<boolean>;
|
|
103
|
+
private readonly trigger;
|
|
104
|
+
private readonly startMonth;
|
|
105
|
+
private readonly closedSet;
|
|
106
|
+
/** Año (o primer año de la docena, en la vista de años) que muestra la cuadrícula. */
|
|
107
|
+
protected readonly year: _angular_core.WritableSignal<number>;
|
|
108
|
+
private readonly decadeStart;
|
|
109
|
+
protected readonly cells: _angular_core.Signal<Cell[]>;
|
|
110
|
+
/** Celda con el foco (la elegida, la del periodo actual o la primera). */
|
|
111
|
+
protected readonly focusIndex: _angular_core.WritableSignal<number>;
|
|
112
|
+
protected readonly navTitle: _angular_core.Signal<string>;
|
|
113
|
+
protected readonly describedBy: _angular_core.Signal<string | null>;
|
|
114
|
+
private onChange;
|
|
115
|
+
private onTouched;
|
|
116
|
+
writeValue(value: CbPeriod | null): void;
|
|
117
|
+
registerOnChange(fn: (value: CbPeriod | null) => void): void;
|
|
118
|
+
registerOnTouched(fn: () => void): void;
|
|
119
|
+
setDisabledState(disabled: boolean): void;
|
|
120
|
+
/** Nombre de un periodo: «Octubre de 2026», «T3 2026», «2026», «1 ene – 23 oct 2026». */
|
|
121
|
+
labelOf(period: CbPeriod): string;
|
|
122
|
+
protected modeLabel(mode: Mode): string;
|
|
123
|
+
protected presetLabel(preset: CbPeriodPreset): string;
|
|
124
|
+
protected isClosed(period: CbPeriod): boolean;
|
|
125
|
+
protected isCurrent(period: CbPeriod): boolean;
|
|
126
|
+
protected isPresetActive(preset: CbPeriodPreset): boolean;
|
|
127
|
+
protected presetDisabled(preset: CbPeriodPreset): boolean;
|
|
128
|
+
protected toggle(): void;
|
|
129
|
+
protected onTriggerKeydown(event: KeyboardEvent): void;
|
|
130
|
+
protected onOutsideClick(event: MouseEvent): void;
|
|
131
|
+
protected setMode(mode: Mode): void;
|
|
132
|
+
protected step(delta: number): void;
|
|
133
|
+
protected choose(cell: Cell): void;
|
|
134
|
+
protected choosePreset(preset: CbPeriodPreset): void;
|
|
135
|
+
protected onGridKeydown(event: KeyboardEvent): void;
|
|
136
|
+
private openPanel;
|
|
137
|
+
/** Cierra el panel (y devuelve el foco al botón si se cerró desde dentro). */
|
|
138
|
+
close(refocus: boolean): void;
|
|
139
|
+
private focusCell;
|
|
140
|
+
private setValue;
|
|
141
|
+
private day;
|
|
142
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbPeriodPicker, never>;
|
|
143
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbPeriodPicker, "cb-period-picker", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "modes": { "alias": "modes"; "required": false; "isSignal": true; }; "presets": { "alias": "presets"; "required": false; "isSignal": true; }; "fiscalYearStart": { "alias": "fiscalYearStart"; "required": false; "isSignal": true; }; "closed": { "alias": "closed"; "required": false; "isSignal": true; }; "disableClosed": { "alias": "disableClosed"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "today": { "alias": "today"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "requiredIndicator": { "alias": "requiredIndicator"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "mode": "modeChange"; "periodChange": "periodChange"; }, never, never, true, never>;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
export { CbPeriodPicker, fiscalYear, fiscalYearOf, monthPeriod, monthsOf, periodFromKey, presetPeriod, quarterOf, quarterPeriod, rangePeriod };
|
|
147
|
+
export type { CbPeriod, CbPeriodKind, CbPeriodPreset };
|
|
148
|
+
//# sourceMappingURL=caribeng-ui-period-picker.d.ts.map
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import * as _caribeng_ui from '@caribeng/ui';
|
|
3
|
+
import { CbSummary, cbFormat } from '@caribeng/ui';
|
|
4
|
+
import { CbXlsxSheet } from '@caribeng/ui/xlsx';
|
|
5
|
+
|
|
6
|
+
/** Medida de la tabla dinámica: qué campo se agrega y cómo. */
|
|
7
|
+
interface CbPivotValue {
|
|
8
|
+
readonly field: string;
|
|
9
|
+
readonly aggregate?: CbSummary;
|
|
10
|
+
readonly label?: string;
|
|
11
|
+
/** `currency` (por defecto), `number` o `integer`. */
|
|
12
|
+
readonly format?: 'currency' | 'number' | 'integer';
|
|
13
|
+
}
|
|
14
|
+
/** Dimensión disponible para filas o columnas (o medida, si es numérica). */
|
|
15
|
+
interface CbPivotField {
|
|
16
|
+
readonly key: string;
|
|
17
|
+
readonly label: string;
|
|
18
|
+
/** Texto de cada valor (p. ej. nombre de la cuenta a partir del código). */
|
|
19
|
+
readonly format?: (value: unknown) => string;
|
|
20
|
+
}
|
|
21
|
+
/** Nodo de filas: un valor de una dimensión con sus hijos (siguiente dimensión). */
|
|
22
|
+
interface PivotRowNode {
|
|
23
|
+
readonly key: string;
|
|
24
|
+
/** Ruta de valores desde la raíz (`['5135', 'Enel']`). */
|
|
25
|
+
readonly path: readonly string[];
|
|
26
|
+
readonly level: number;
|
|
27
|
+
readonly label: string;
|
|
28
|
+
readonly records: readonly Record<string, unknown>[];
|
|
29
|
+
readonly children: readonly PivotRowNode[];
|
|
30
|
+
}
|
|
31
|
+
/** Valores distintos (combinados) de las dimensiones de columna, ordenados. */
|
|
32
|
+
declare function columnKeys(data: readonly Record<string, unknown>[], fields: readonly string[]): string[];
|
|
33
|
+
/** Árbol de filas agrupando por cada dimensión de `fields`, en orden. */
|
|
34
|
+
declare function rowTree(data: readonly Record<string, unknown>[], fields: readonly string[], labelOf: (field: string, value: string) => string, level?: number, path?: string[]): PivotRowNode[];
|
|
35
|
+
/** Valor agregado de una medida sobre unos registros. */
|
|
36
|
+
declare function aggregate(records: readonly Record<string, unknown>[], value: CbPivotValue): number | null;
|
|
37
|
+
|
|
38
|
+
interface FlatRow {
|
|
39
|
+
readonly node: PivotRowNode;
|
|
40
|
+
readonly hasChildren: boolean;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Tabla dinámica de CaribeNG: cruza los registros por dimensiones de filas y
|
|
44
|
+
* columnas (cuenta, tercero, centro de costo, mes…) y agrega una o varias medidas.
|
|
45
|
+
*
|
|
46
|
+
* - Filas anidadas que se contraen, con subtotales; totales por fila, por columna y general.
|
|
47
|
+
* - Con `configurable`, el usuario elige desde la propia tabla las dimensiones y la medida.
|
|
48
|
+
* - Importes con la moneda de `provideCaribeNG`, exportación a Excel con niveles.
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```html
|
|
52
|
+
* <cb-pivot [data]="movimientos" [fields]="dimensiones" [(rows)]="filas" [(columns)]="columnas" [values]="[{ field: 'valor' }]" configurable />
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
declare class CbPivot {
|
|
56
|
+
protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
|
|
57
|
+
protected readonly fmt: typeof cbFormat;
|
|
58
|
+
private readonly config;
|
|
59
|
+
protected readonly uid: string;
|
|
60
|
+
/** Registros a cruzar. */
|
|
61
|
+
readonly data: _angular_core.InputSignal<readonly Record<string, unknown>[]>;
|
|
62
|
+
/** Dimensiones disponibles (clave, etiqueta y formato de sus valores). */
|
|
63
|
+
readonly fields: _angular_core.InputSignal<readonly CbPivotField[]>;
|
|
64
|
+
/** Dimensiones de las filas, de la más general a la más detallada (bidireccional). */
|
|
65
|
+
readonly rows: _angular_core.ModelSignal<readonly string[]>;
|
|
66
|
+
/** Dimensiones de las columnas (bidireccional). */
|
|
67
|
+
readonly columns: _angular_core.ModelSignal<readonly string[]>;
|
|
68
|
+
/** Medidas (campo y agregación); por defecto, suma. */
|
|
69
|
+
readonly values: _angular_core.InputSignal<readonly CbPivotValue[]>;
|
|
70
|
+
/** Selectores de filas, columnas y agregación sobre la tabla. */
|
|
71
|
+
readonly configurable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
72
|
+
/** Las filas con hijos empiezan contraídas. */
|
|
73
|
+
readonly collapsed: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
74
|
+
readonly currency: _angular_core.InputSignal<string | undefined>;
|
|
75
|
+
readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
76
|
+
private readonly collapsedKeys;
|
|
77
|
+
protected readonly aggregateOverride: _angular_core.WritableSignal<CbSummary | null>;
|
|
78
|
+
protected readonly measures: _angular_core.Signal<CbPivotValue[]>;
|
|
79
|
+
protected readonly aggregateValue: _angular_core.Signal<CbSummary>;
|
|
80
|
+
private readonly fieldMap;
|
|
81
|
+
private labelOf;
|
|
82
|
+
protected readonly colKeys: _angular_core.Signal<string[]>;
|
|
83
|
+
protected readonly colKeysWithTotal: _angular_core.Signal<string[]>;
|
|
84
|
+
private readonly tree;
|
|
85
|
+
protected readonly flat: _angular_core.Signal<FlatRow[]>;
|
|
86
|
+
private collapsedSet;
|
|
87
|
+
protected readonly dimensionOptions: _angular_core.Signal<{
|
|
88
|
+
label: string;
|
|
89
|
+
value: string;
|
|
90
|
+
}[]>;
|
|
91
|
+
protected readonly columnOptions: _angular_core.Signal<{
|
|
92
|
+
label: string;
|
|
93
|
+
value: string;
|
|
94
|
+
}[]>;
|
|
95
|
+
protected readonly aggregateOptions: _angular_core.Signal<{
|
|
96
|
+
label: string;
|
|
97
|
+
value: string;
|
|
98
|
+
}[]>;
|
|
99
|
+
protected rowHeader(): string;
|
|
100
|
+
protected colLabel(key: string): string;
|
|
101
|
+
protected measureLabel(m: CbPivotValue): string;
|
|
102
|
+
protected cell(records: readonly Record<string, unknown>[], colKey: string, m: CbPivotValue): number | null;
|
|
103
|
+
protected text(value: number | null, m: CbPivotValue): string;
|
|
104
|
+
protected isCollapsed(key: string): boolean;
|
|
105
|
+
protected toggle(key: string): void;
|
|
106
|
+
protected setRows(keys: readonly string[]): void;
|
|
107
|
+
/** Hoja de Excel con todas las filas (con niveles plegables) y los totales. */
|
|
108
|
+
toExcelSheet(): CbXlsxSheet;
|
|
109
|
+
exportExcel(filename?: string): void;
|
|
110
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbPivot, never>;
|
|
111
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbPivot, "cb-pivot", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "fields": { "alias": "fields"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "values": { "alias": "values"; "required": false; "isSignal": true; }; "configurable": { "alias": "configurable"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "currency": { "alias": "currency"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "rows": "rowsChange"; "columns": "columnsChange"; }, never, never, true, never>;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export { CbPivot, aggregate, columnKeys, rowTree };
|
|
115
|
+
export type { CbPivotField, CbPivotValue, PivotRowNode };
|
|
116
|
+
//# sourceMappingURL=caribeng-ui-pivot.d.ts.map
|