@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
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import * as _caribeng_ui from '@caribeng/ui';
|
|
3
|
+
import { cbFormat } from '@caribeng/ui';
|
|
4
|
+
|
|
5
|
+
/** Movimiento del extracto o de los libros (positivo: entra; negativo: sale). */
|
|
6
|
+
interface CbReconItem {
|
|
7
|
+
readonly id: string | number;
|
|
8
|
+
/** `Date` o `AAAA-MM-DD`. */
|
|
9
|
+
readonly date: Date | string;
|
|
10
|
+
readonly description: string;
|
|
11
|
+
readonly amount: number;
|
|
12
|
+
/** Referencia (cheque, transferencia, factura): si coincide, ayuda a emparejar. */
|
|
13
|
+
readonly reference?: string;
|
|
14
|
+
}
|
|
15
|
+
/** Emparejamiento: uno o varios movimientos del extracto con uno o varios de los libros. */
|
|
16
|
+
interface CbReconMatch {
|
|
17
|
+
readonly statement: readonly (string | number)[];
|
|
18
|
+
readonly ledger: readonly (string | number)[];
|
|
19
|
+
}
|
|
20
|
+
declare function sumAmounts(items: readonly CbReconItem[]): number;
|
|
21
|
+
/** Ids ya emparejados de cada lado. */
|
|
22
|
+
declare function matchedIds(matches: readonly CbReconMatch[]): {
|
|
23
|
+
statement: Set<string | number>;
|
|
24
|
+
ledger: Set<string | number>;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Empareja solo, uno a uno, los movimientos pendientes con el mismo valor y una
|
|
28
|
+
* fecha cercana (`toleranceDays`): primero los de igual referencia, después los
|
|
29
|
+
* de fecha más próxima.
|
|
30
|
+
*/
|
|
31
|
+
declare function autoMatch(statement: readonly CbReconItem[], ledger: readonly CbReconItem[], existing: readonly CbReconMatch[], toleranceDays?: number): CbReconMatch[];
|
|
32
|
+
|
|
33
|
+
type Side = 'statement' | 'ledger';
|
|
34
|
+
/**
|
|
35
|
+
* Conciliación bancaria de CaribeNG: el extracto del banco frente a los
|
|
36
|
+
* movimientos en libros, para emparejarlos y ver qué queda pendiente.
|
|
37
|
+
*
|
|
38
|
+
* - «Conciliar automáticamente» empareja los de igual valor y fecha cercana
|
|
39
|
+
* (`toleranceDays`), dando prioridad a la misma referencia.
|
|
40
|
+
* - Se marcan movimientos de cada lado y «Emparejar» los une cuando sus sumas
|
|
41
|
+
* coinciden (uno con uno, uno con varios o varios con uno).
|
|
42
|
+
* - Resumen con los pendientes de cada lado y la diferencia; `createEntry` sirve
|
|
43
|
+
* para registrar en libros un movimiento del extracto (comisiones, intereses).
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```html
|
|
47
|
+
* <cb-reconciliation [statement]="extracto" [ledger]="libros" [(matches)]="conciliados" />
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
declare class CbReconciliation {
|
|
51
|
+
protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
|
|
52
|
+
protected readonly fmt: typeof cbFormat;
|
|
53
|
+
private readonly amount;
|
|
54
|
+
protected readonly uid: string;
|
|
55
|
+
protected readonly sides: Side[];
|
|
56
|
+
/** Movimientos del extracto bancario. */
|
|
57
|
+
readonly statement: _angular_core.InputSignal<readonly CbReconItem[]>;
|
|
58
|
+
/** Movimientos en libros (cuenta de bancos). */
|
|
59
|
+
readonly ledger: _angular_core.InputSignal<readonly CbReconItem[]>;
|
|
60
|
+
/** Emparejamientos (bidireccional). */
|
|
61
|
+
readonly matches: _angular_core.ModelSignal<readonly CbReconMatch[]>;
|
|
62
|
+
/** Días de diferencia admitidos al conciliar automáticamente. */
|
|
63
|
+
readonly toleranceDays: _angular_core.InputSignal<number>;
|
|
64
|
+
readonly statementLabel: _angular_core.InputSignal<string>;
|
|
65
|
+
readonly ledgerLabel: _angular_core.InputSignal<string>;
|
|
66
|
+
/** Botón «Crear asiento» en los movimientos del extracto sin pareja. */
|
|
67
|
+
readonly allowCreate: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
68
|
+
readonly readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
69
|
+
readonly currency: _angular_core.InputSignal<string | undefined>;
|
|
70
|
+
/** Registrar en libros un movimiento del extracto. */
|
|
71
|
+
readonly createEntry: _angular_core.OutputEmitterRef<CbReconItem>;
|
|
72
|
+
protected readonly onlyPending: _angular_core.WritableSignal<boolean>;
|
|
73
|
+
private readonly selection;
|
|
74
|
+
protected readonly announcement: _angular_core.WritableSignal<string>;
|
|
75
|
+
private readonly matched;
|
|
76
|
+
protected items(side: Side): readonly CbReconItem[];
|
|
77
|
+
protected visible(side: Side): CbReconItem[];
|
|
78
|
+
protected pending(side: Side): CbReconItem[];
|
|
79
|
+
protected pendingSum(side: Side): number;
|
|
80
|
+
protected total(side: Side): number;
|
|
81
|
+
protected readonly progress: _angular_core.Signal<number>;
|
|
82
|
+
protected isMatched(side: Side, item: CbReconItem): boolean;
|
|
83
|
+
protected isSelected(side: Side, item: CbReconItem): boolean;
|
|
84
|
+
protected selectedItems(side: Side): CbReconItem[];
|
|
85
|
+
protected selectedSum(side: Side): number;
|
|
86
|
+
protected readonly hasSelection: _angular_core.Signal<boolean>;
|
|
87
|
+
protected readonly selectionDiff: _angular_core.Signal<number>;
|
|
88
|
+
/** Se puede emparejar: hay de los dos lados, nada ya emparejado y las sumas coinciden. */
|
|
89
|
+
protected readonly canMatch: _angular_core.Signal<boolean>;
|
|
90
|
+
protected readonly selectedMatched: _angular_core.Signal<boolean>;
|
|
91
|
+
protected money(value: number): string;
|
|
92
|
+
protected pct(value: number): string;
|
|
93
|
+
protected shortDate(value: Date | string): string;
|
|
94
|
+
protected toggle(side: Side, item: CbReconItem): void;
|
|
95
|
+
/** Empareja los movimientos pendientes de igual valor y fecha cercana. */
|
|
96
|
+
runAuto(): void;
|
|
97
|
+
/** Une lo seleccionado de los dos lados (si sus sumas coinciden). */
|
|
98
|
+
matchSelection(): void;
|
|
99
|
+
/** Deshace los emparejamientos que tocan lo seleccionado. */
|
|
100
|
+
unmatchSelection(): void;
|
|
101
|
+
private clearSelection;
|
|
102
|
+
private say;
|
|
103
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbReconciliation, never>;
|
|
104
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbReconciliation, "cb-reconciliation", never, { "statement": { "alias": "statement"; "required": false; "isSignal": true; }; "ledger": { "alias": "ledger"; "required": false; "isSignal": true; }; "matches": { "alias": "matches"; "required": false; "isSignal": true; }; "toleranceDays": { "alias": "toleranceDays"; "required": false; "isSignal": true; }; "statementLabel": { "alias": "statementLabel"; "required": false; "isSignal": true; }; "ledgerLabel": { "alias": "ledgerLabel"; "required": false; "isSignal": true; }; "allowCreate": { "alias": "allowCreate"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "currency": { "alias": "currency"; "required": false; "isSignal": true; }; }, { "matches": "matchesChange"; "createEntry": "createEntry"; }, never, never, true, never>;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
export { CbReconciliation, autoMatch, matchedIds, sumAmounts };
|
|
108
|
+
export type { CbReconItem, CbReconMatch };
|
|
109
|
+
//# sourceMappingURL=caribeng-ui-reconciliation.d.ts.map
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import * as _caribeng_ui from '@caribeng/ui';
|
|
3
|
+
import { cbFormat } from '@caribeng/ui';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Modelo del calendario de eventos: fechas, rejilla del mes, eventos de cada
|
|
7
|
+
* día y colocación de los que se solapan. Funciones puras (sin DOM).
|
|
8
|
+
*/
|
|
9
|
+
/** Evento del calendario. `start` y `end` son fecha y hora (`Date` o ISO); en uno de día completo, días. */
|
|
10
|
+
interface CbSchedulerEvent {
|
|
11
|
+
readonly id: string;
|
|
12
|
+
readonly title: string;
|
|
13
|
+
readonly start: string | Date;
|
|
14
|
+
/** Fin (exclusivo en eventos con hora; inclusivo en los de día completo). Por defecto, una hora después. */
|
|
15
|
+
readonly end?: string | Date;
|
|
16
|
+
/** Evento de día completo (va en la franja superior). */
|
|
17
|
+
readonly allDay?: boolean;
|
|
18
|
+
readonly color?: string;
|
|
19
|
+
readonly location?: string;
|
|
20
|
+
readonly description?: string;
|
|
21
|
+
}
|
|
22
|
+
/** Vista del calendario. */
|
|
23
|
+
type CbSchedulerView = 'month' | 'week' | 'day' | 'agenda';
|
|
24
|
+
/** Un evento cambió de fecha u hora (al arrastrarlo, redimensionarlo o con el teclado). */
|
|
25
|
+
interface CbSchedulerChange {
|
|
26
|
+
readonly event: CbSchedulerEvent;
|
|
27
|
+
readonly previous: CbSchedulerEvent;
|
|
28
|
+
}
|
|
29
|
+
/** Hueco elegido para crear un evento. */
|
|
30
|
+
interface CbSchedulerSlot {
|
|
31
|
+
readonly start: Date;
|
|
32
|
+
readonly end: Date;
|
|
33
|
+
readonly allDay: boolean;
|
|
34
|
+
}
|
|
35
|
+
/** Evento con sus fechas resueltas. En los de día completo, `end` es el último día (inclusivo). */
|
|
36
|
+
interface ResolvedEvent {
|
|
37
|
+
readonly event: CbSchedulerEvent;
|
|
38
|
+
readonly start: Date;
|
|
39
|
+
readonly end: Date;
|
|
40
|
+
readonly allDay: boolean;
|
|
41
|
+
}
|
|
42
|
+
/** Posición de un evento con hora dentro de su día: columna y número de columnas del grupo que se solapa. */
|
|
43
|
+
interface PlacedEvent {
|
|
44
|
+
readonly e: ResolvedEvent;
|
|
45
|
+
/** Minutos desde la medianoche, recortados al día. */
|
|
46
|
+
readonly from: number;
|
|
47
|
+
readonly to: number;
|
|
48
|
+
readonly column: number;
|
|
49
|
+
readonly columns: number;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
interface Preview {
|
|
53
|
+
readonly id: string | null;
|
|
54
|
+
readonly days: number;
|
|
55
|
+
readonly minutes: number;
|
|
56
|
+
/** Hueco seleccionado (al arrastrar sobre una franja vacía). */
|
|
57
|
+
readonly select: {
|
|
58
|
+
day: Date;
|
|
59
|
+
from: number;
|
|
60
|
+
to: number;
|
|
61
|
+
} | null;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Calendario de eventos de CaribeNG: vistas de mes, semana, día y agenda.
|
|
65
|
+
*
|
|
66
|
+
* - En semana y día, los eventos con hora se colocan en su franja (los que se
|
|
67
|
+
* solapan, uno al lado del otro) y los de día completo en la franja superior;
|
|
68
|
+
* una línea marca la hora actual.
|
|
69
|
+
* - Arrastra un evento para moverlo y su borde inferior para cambiar la duración;
|
|
70
|
+
* arrastra sobre una franja vacía (o haz clic) para elegir un hueco
|
|
71
|
+
* (`slotSelect`). En el mes, los eventos se arrastran de un día a otro.
|
|
72
|
+
* - Con el teclado cada evento es un botón: flechas lo mueven (un día, o la
|
|
73
|
+
* duración de una franja), Mayús + flechas arriba / abajo cambian la duración y
|
|
74
|
+
* Enter lo abre; cada día tiene un botón para crear un evento.
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```html
|
|
78
|
+
* <cb-scheduler [(events)]="eventos" [(view)]="vista" (slotSelect)="crear($event)" (eventOpen)="abrir($event)" />
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
declare class CbScheduler {
|
|
82
|
+
/** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
|
|
83
|
+
protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
|
|
84
|
+
protected readonly fmt: typeof cbFormat;
|
|
85
|
+
protected readonly Math: Math;
|
|
86
|
+
private readonly injector;
|
|
87
|
+
private readonly host;
|
|
88
|
+
protected readonly uid: string;
|
|
89
|
+
protected readonly hour = 48;
|
|
90
|
+
protected readonly ppm: number;
|
|
91
|
+
protected readonly hours: number[];
|
|
92
|
+
/** Eventos (bidireccional: se actualiza al moverlos o cambiar su duración). */
|
|
93
|
+
readonly events: _angular_core.ModelSignal<readonly CbSchedulerEvent[]>;
|
|
94
|
+
readonly view: _angular_core.ModelSignal<CbSchedulerView>;
|
|
95
|
+
/** Día de referencia de la vista (el mes, la semana o el día que se muestra). */
|
|
96
|
+
readonly date: _angular_core.ModelSignal<Date>;
|
|
97
|
+
/** Vistas disponibles y su orden. */
|
|
98
|
+
readonly views: _angular_core.InputSignal<readonly CbSchedulerView[]>;
|
|
99
|
+
/** Primer día de la semana (0 = domingo, 1 = lunes). */
|
|
100
|
+
readonly firstDayOfWeek: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
101
|
+
/** Minutos de cada franja: paso al arrastrar y con el teclado. */
|
|
102
|
+
readonly slotMinutes: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
103
|
+
/** Hora a la que se desplaza la vista de semana o día al abrirse. */
|
|
104
|
+
readonly scrollHour: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
105
|
+
/** Días que muestra la agenda desde el día de referencia. */
|
|
106
|
+
readonly agendaDays: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
107
|
+
/** Permite mover, cambiar la duración y elegir huecos. */
|
|
108
|
+
readonly editable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
109
|
+
/** Alto del área del calendario. */
|
|
110
|
+
readonly height: _angular_core.InputSignal<string>;
|
|
111
|
+
/** Un evento cambió de fecha u hora. */
|
|
112
|
+
readonly eventChange: _angular_core.OutputEmitterRef<CbSchedulerChange>;
|
|
113
|
+
/** Clic o Enter sobre un evento. */
|
|
114
|
+
readonly eventOpen: _angular_core.OutputEmitterRef<CbSchedulerEvent>;
|
|
115
|
+
/** Se eligió un hueco (arrastrando o con clic en una franja, doble clic o el botón + de un día). */
|
|
116
|
+
readonly slotSelect: _angular_core.OutputEmitterRef<CbSchedulerSlot>;
|
|
117
|
+
protected readonly preview: _angular_core.WritableSignal<Preview | null>;
|
|
118
|
+
protected readonly announcement: _angular_core.WritableSignal<string>;
|
|
119
|
+
private readonly now;
|
|
120
|
+
private drag;
|
|
121
|
+
/** Tras arrastrar un evento no se emite el clic que lo sigue. */
|
|
122
|
+
private suppressClick;
|
|
123
|
+
private readonly scrollRef;
|
|
124
|
+
constructor();
|
|
125
|
+
private readonly resolved;
|
|
126
|
+
/** Eventos con la vista previa del arrastre aplicada. */
|
|
127
|
+
private readonly shown;
|
|
128
|
+
/** Días de la vista de semana o día. */
|
|
129
|
+
protected readonly days: _angular_core.Signal<Date[]>;
|
|
130
|
+
protected readonly weeks: _angular_core.Signal<Date[][]>;
|
|
131
|
+
protected readonly weekdayNames: _angular_core.Signal<string[]>;
|
|
132
|
+
protected readonly agenda: _angular_core.Signal<{
|
|
133
|
+
day: Date;
|
|
134
|
+
events: ResolvedEvent[];
|
|
135
|
+
}[]>;
|
|
136
|
+
protected readonly title: _angular_core.Signal<string>;
|
|
137
|
+
private rangeText;
|
|
138
|
+
protected readonly nowTop: _angular_core.Signal<number>;
|
|
139
|
+
/** Hueco seleccionado al arrastrar sobre una franja. */
|
|
140
|
+
protected readonly selection: _angular_core.Signal<{
|
|
141
|
+
day: Date;
|
|
142
|
+
from: number;
|
|
143
|
+
to: number;
|
|
144
|
+
} | null>;
|
|
145
|
+
/** Día bajo el puntero al arrastrar en el mes o en la franja de día completo. */
|
|
146
|
+
protected readonly dropDay: _angular_core.Signal<Date | null>;
|
|
147
|
+
protected viewLabel(v: CbSchedulerView): string;
|
|
148
|
+
protected time(d: Date): string;
|
|
149
|
+
protected hourLabel(h: number): string;
|
|
150
|
+
protected weekday(d: Date): string;
|
|
151
|
+
/** Cabecera de un día de la agenda (el número va aparte): "Viernes, octubre". */
|
|
152
|
+
protected agendaDay(d: Date): string;
|
|
153
|
+
protected longDay(d: Date): string;
|
|
154
|
+
protected eventLabel(e: ResolvedEvent): string;
|
|
155
|
+
protected isToday(d: Date): boolean;
|
|
156
|
+
protected isMulti(e: ResolvedEvent): boolean;
|
|
157
|
+
protected minuteDate(day: Date, minute: number): Date;
|
|
158
|
+
protected dayEvents(d: Date): ResolvedEvent[];
|
|
159
|
+
/** En el mes, si sobra uno se muestra (no "+1 más"). */
|
|
160
|
+
protected limitFor(d: Date): number;
|
|
161
|
+
protected allDayEvents(d: Date): ResolvedEvent[];
|
|
162
|
+
protected placed(d: Date): PlacedEvent[];
|
|
163
|
+
/** Periodo anterior (−1) o siguiente (1). */
|
|
164
|
+
step(direction: 1 | -1): void;
|
|
165
|
+
goToday(): void;
|
|
166
|
+
/** Abre la vista de día de una fecha. */
|
|
167
|
+
openDay(d: Date): void;
|
|
168
|
+
protected selectDay(d: Date): void;
|
|
169
|
+
protected selectTime(d: Date, minute: number): void;
|
|
170
|
+
/** Día (y minuto, en las columnas de hora) bajo el puntero. */
|
|
171
|
+
private pointAt;
|
|
172
|
+
private snap;
|
|
173
|
+
protected onEventPointerDown(event: PointerEvent, e: ResolvedEvent, mode: 'move' | 'resize', day: Date, dayOnly: boolean): void;
|
|
174
|
+
protected onColumnPointerDown(event: PointerEvent, d: Date): void;
|
|
175
|
+
protected onPointerMove(event: PointerEvent): void;
|
|
176
|
+
protected onPointerUp(): void;
|
|
177
|
+
private selectRange;
|
|
178
|
+
protected cancelDrag(): void;
|
|
179
|
+
protected onEventClick(e: ResolvedEvent): void;
|
|
180
|
+
private apply;
|
|
181
|
+
protected onEventKeydown(event: KeyboardEvent, e: ResolvedEvent, dayOnly: boolean): void;
|
|
182
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbScheduler, never>;
|
|
183
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbScheduler, "cb-scheduler", never, { "events": { "alias": "events"; "required": false; "isSignal": true; }; "view": { "alias": "view"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": false; "isSignal": true; }; "views": { "alias": "views"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "slotMinutes": { "alias": "slotMinutes"; "required": false; "isSignal": true; }; "scrollHour": { "alias": "scrollHour"; "required": false; "isSignal": true; }; "agendaDays": { "alias": "agendaDays"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; }, { "events": "eventsChange"; "view": "viewChange"; "date": "dateChange"; "eventChange": "eventChange"; "eventOpen": "eventOpen"; "slotSelect": "slotSelect"; }, never, never, true, never>;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
export { CbScheduler };
|
|
187
|
+
export type { CbSchedulerChange, CbSchedulerEvent, CbSchedulerSlot, CbSchedulerView };
|
|
188
|
+
//# sourceMappingURL=caribeng-ui-scheduler.d.ts.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Shortcut
|
|
4
|
+
* Shortcut: acceso directo con icono y etiqueta, presentado
|
|
5
5
|
* como una tarjeta pulsable (típico de dashboards y home bancario).
|
|
6
6
|
*
|
|
7
7
|
* @example
|
|
@@ -25,4 +25,4 @@ declare class CbShortcut {
|
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
export { CbShortcut };
|
|
28
|
-
//# sourceMappingURL=caribeng-ui-
|
|
28
|
+
//# sourceMappingURL=caribeng-ui-shortcut.d.ts.map
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import * as _caribeng_ui from '@caribeng/ui';
|
|
3
|
+
import { ControlValueAccessor } from '@angular/forms';
|
|
4
|
+
|
|
5
|
+
/** Punto de un trazo, en unidades del `viewBox` (`t` en ms, `p` presión 0–1). */
|
|
6
|
+
interface CbSignaturePoint {
|
|
7
|
+
readonly x: number;
|
|
8
|
+
readonly y: number;
|
|
9
|
+
readonly t: number;
|
|
10
|
+
readonly p: number;
|
|
11
|
+
}
|
|
12
|
+
type CbSignatureStroke = readonly CbSignaturePoint[];
|
|
13
|
+
/** Firma serializable: trazos dibujados o nombre escrito, con su lienzo y su tinta. */
|
|
14
|
+
interface CbSignatureData {
|
|
15
|
+
readonly width: number;
|
|
16
|
+
readonly height: number;
|
|
17
|
+
readonly strokes: readonly CbSignatureStroke[];
|
|
18
|
+
/** Nombre escrito (modo `type`); si hay texto, se pinta en lugar de los trazos. */
|
|
19
|
+
readonly text?: string;
|
|
20
|
+
readonly color: string;
|
|
21
|
+
}
|
|
22
|
+
/** Formato de `value`. */
|
|
23
|
+
type CbSignatureFormat = 'png' | 'jpeg' | 'svg';
|
|
24
|
+
/** Cómo se firma: a mano o escribiendo el nombre. */
|
|
25
|
+
type CbSignatureMode = 'draw' | 'type';
|
|
26
|
+
/** Segmento listo para pintar: un trozo de curva con su grosor. */
|
|
27
|
+
interface CbSignatureSegment {
|
|
28
|
+
readonly d: string;
|
|
29
|
+
readonly width: number;
|
|
30
|
+
}
|
|
31
|
+
/** Tipografías manuscritas del sistema (sin descargar fuentes) para el modo escrito. */
|
|
32
|
+
declare const CB_SIGNATURE_FONT = "'Segoe Script', 'Bradley Hand', 'Brush Script MT', 'Snell Roundhand', 'URW Chancery L', cursive";
|
|
33
|
+
/**
|
|
34
|
+
* La firma como documento SVG independiente (sin dependencias de la página). `background`
|
|
35
|
+
* vacío o `transparent` lo deja sin fondo; `image` es una firma previa que va debajo.
|
|
36
|
+
*/
|
|
37
|
+
declare function signatureToSvg(data: CbSignatureData, options: {
|
|
38
|
+
minWidth: number;
|
|
39
|
+
maxWidth: number;
|
|
40
|
+
background?: string;
|
|
41
|
+
font?: string;
|
|
42
|
+
fontSize?: number;
|
|
43
|
+
image?: string;
|
|
44
|
+
}): string;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Firma digital de CaribeNG: área para firmar con ratón, dedo o lápiz (grosor según velocidad y
|
|
48
|
+
* presión) o, como alternativa accesible, escribiendo el nombre en letra manuscrita. Devuelve la
|
|
49
|
+
* firma como PNG, JPEG o SVG (`[(value)]`, también con Angular Forms) y permite deshacer y borrar.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```html
|
|
53
|
+
* <cb-signature-pad [(value)]="firma" format="png" />
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
declare class CbSignaturePad implements ControlValueAccessor {
|
|
57
|
+
protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
|
|
58
|
+
private readonly injector;
|
|
59
|
+
private readonly destroyRef;
|
|
60
|
+
protected readonly hintId: string;
|
|
61
|
+
/** Firma como data URL en `format` (`''` si está vacía). Una firma que llega de fuera se muestra de fondo. */
|
|
62
|
+
readonly value: _angular_core.ModelSignal<string>;
|
|
63
|
+
/** Formato de `value`: PNG (por defecto), JPEG (fondo blanco) o SVG. */
|
|
64
|
+
readonly format: _angular_core.InputSignal<CbSignatureFormat>;
|
|
65
|
+
/** Dibujar a mano o escribir el nombre. */
|
|
66
|
+
readonly mode: _angular_core.ModelSignal<CbSignatureMode>;
|
|
67
|
+
/** Ofrece el modo escrito, la alternativa para quien no puede dibujar (teclado, lector de pantalla). */
|
|
68
|
+
readonly typing: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
69
|
+
readonly penColor: _angular_core.InputSignal<string>;
|
|
70
|
+
/** Fondo del área y de la imagen exportada (`transparent` para PNG o SVG sin fondo). */
|
|
71
|
+
readonly background: _angular_core.InputSignal<string>;
|
|
72
|
+
/** Grosor mínimo y máximo del trazo (en píxeles del área). */
|
|
73
|
+
readonly minWidth: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
74
|
+
readonly maxWidth: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
75
|
+
readonly height: _angular_core.InputSignal<string>;
|
|
76
|
+
/** Tipografía del nombre escrito (por defecto, manuscritas del sistema). */
|
|
77
|
+
readonly font: _angular_core.InputSignal<string>;
|
|
78
|
+
readonly placeholder: _angular_core.InputSignal<string | undefined>;
|
|
79
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
80
|
+
readonly readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
81
|
+
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
82
|
+
/** Nombre del área (por defecto, "Área de firma"). */
|
|
83
|
+
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
84
|
+
/** Empieza un trazo. */
|
|
85
|
+
readonly signStart: _angular_core.OutputEmitterRef<void>;
|
|
86
|
+
/** Termina un trazo o cambia el nombre escrito (con la firma completa). */
|
|
87
|
+
readonly signEnd: _angular_core.OutputEmitterRef<CbSignatureData>;
|
|
88
|
+
readonly cleared: _angular_core.OutputEmitterRef<void>;
|
|
89
|
+
protected readonly fieldState: _caribeng_ui.CbFieldState;
|
|
90
|
+
private readonly cvaDisabled;
|
|
91
|
+
protected readonly isDisabled: _angular_core.Signal<boolean>;
|
|
92
|
+
protected readonly strokes: _angular_core.WritableSignal<readonly CbSignatureStroke[]>;
|
|
93
|
+
private readonly current;
|
|
94
|
+
protected readonly text: _angular_core.WritableSignal<string>;
|
|
95
|
+
/** Firma previa (de `value`), pintada de fondo. */
|
|
96
|
+
protected readonly image: _angular_core.WritableSignal<string>;
|
|
97
|
+
/** Tamaño lógico del lienzo (el del área al montarse). */
|
|
98
|
+
protected readonly box: _angular_core.WritableSignal<{
|
|
99
|
+
w: number;
|
|
100
|
+
h: number;
|
|
101
|
+
}>;
|
|
102
|
+
protected readonly announcement: _angular_core.WritableSignal<string>;
|
|
103
|
+
protected readonly canDraw: _angular_core.Signal<boolean>;
|
|
104
|
+
protected readonly segments: _angular_core.Signal<CbSignatureSegment[]>;
|
|
105
|
+
/** Tamaño medido para que el nombre quepa (cada tipografía manuscrita tiene su ancho). */
|
|
106
|
+
private readonly fittedSize;
|
|
107
|
+
protected readonly fontSize: _angular_core.Signal<number>;
|
|
108
|
+
protected readonly empty: _angular_core.Signal<boolean>;
|
|
109
|
+
protected readonly padLabel: _angular_core.Signal<string>;
|
|
110
|
+
private readonly svg;
|
|
111
|
+
private pointerId;
|
|
112
|
+
private lastEmitted;
|
|
113
|
+
private emitToken;
|
|
114
|
+
private onChange;
|
|
115
|
+
protected onTouched: () => void;
|
|
116
|
+
constructor();
|
|
117
|
+
/** La firma actual (trazos o nombre escrito), para guardarla y restaurarla con `setData`. */
|
|
118
|
+
data(): CbSignatureData;
|
|
119
|
+
/** Restaura una firma guardada con `data()`. */
|
|
120
|
+
setData(data: CbSignatureData): void;
|
|
121
|
+
/** La firma como SVG independiente. */
|
|
122
|
+
toSvg(): string;
|
|
123
|
+
/** La firma como data URL (PNG y JPEG se generan en un canvas, de forma asíncrona). */
|
|
124
|
+
toDataUrl(format?: CbSignatureFormat): Promise<string>;
|
|
125
|
+
/** Borra la firma. */
|
|
126
|
+
clear(): void;
|
|
127
|
+
/** Deshace el último trazo. */
|
|
128
|
+
undo(): void;
|
|
129
|
+
writeValue(value: string | null | undefined): void;
|
|
130
|
+
registerOnChange(fn: (v: string) => void): void;
|
|
131
|
+
registerOnTouched(fn: () => void): void;
|
|
132
|
+
setDisabledState(disabled: boolean): void;
|
|
133
|
+
protected setMode(mode: CbSignatureMode): void;
|
|
134
|
+
protected onType(event: Event): void;
|
|
135
|
+
private fitText;
|
|
136
|
+
protected onPointerDown(event: PointerEvent): void;
|
|
137
|
+
protected onPointerMove(event: PointerEvent): void;
|
|
138
|
+
protected onPointerUp(event: PointerEvent): void;
|
|
139
|
+
private point;
|
|
140
|
+
/** Recalcula `value` (PNG y JPEG llegan cuando termina el canvas; uno viejo se descarta). */
|
|
141
|
+
private emit;
|
|
142
|
+
/** Un espacio duro alterno hace que el mismo texto cuente como cambio y se vuelva a anunciar. */
|
|
143
|
+
private announce;
|
|
144
|
+
private announceFlip;
|
|
145
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbSignaturePad, never>;
|
|
146
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbSignaturePad, "cb-signature-pad", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "typing": { "alias": "typing"; "required": false; "isSignal": true; }; "penColor": { "alias": "penColor"; "required": false; "isSignal": true; }; "background": { "alias": "background"; "required": false; "isSignal": true; }; "minWidth": { "alias": "minWidth"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "font": { "alias": "font"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "mode": "modeChange"; "signStart": "signStart"; "signEnd": "signEnd"; "cleared": "cleared"; }, never, never, true, never>;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
export { CB_SIGNATURE_FONT, CbSignaturePad, signatureToSvg as cbSignatureToSvg };
|
|
150
|
+
export type { CbSignatureData, CbSignatureFormat, CbSignatureMode, CbSignaturePoint, CbSignatureStroke };
|
|
151
|
+
//# sourceMappingURL=caribeng-ui-signature-pad.d.ts.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Status
|
|
4
|
+
* Status: chip de estado con punto de color y etiqueta.
|
|
5
5
|
*
|
|
6
6
|
* @example
|
|
7
7
|
* ```html
|
|
@@ -16,4 +16,4 @@ declare class CbStatus {
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
export { CbStatus };
|
|
19
|
-
//# sourceMappingURL=caribeng-ui-
|
|
19
|
+
//# sourceMappingURL=caribeng-ui-status.d.ts.map
|
|
@@ -3,7 +3,7 @@ import * as _caribeng_ui from '@caribeng/ui';
|
|
|
3
3
|
import { cbFormat } from '@caribeng/ui';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
* Step-indicator
|
|
6
|
+
* Step-indicator: progreso por segmentos para flujos de varios
|
|
7
7
|
* pasos (transferencias, onboarding). Muestra segmentos completados, activo y
|
|
8
8
|
* pendientes, con una leyenda opcional.
|
|
9
9
|
*
|
|
@@ -31,4 +31,4 @@ declare class CbStepIndicator {
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
export { CbStepIndicator };
|
|
34
|
-
//# sourceMappingURL=caribeng-ui-
|
|
34
|
+
//# sourceMappingURL=caribeng-ui-step-indicator.d.ts.map
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import * as _caribeng_ui from '@caribeng/ui';
|
|
2
|
-
import { cbFormat } from '@caribeng/ui';
|
|
2
|
+
import { cbFormat, CbNegativeStyle, CbSummary } from '@caribeng/ui';
|
|
3
3
|
import * as _angular_core from '@angular/core';
|
|
4
4
|
import { TemplateRef } from '@angular/core';
|
|
5
5
|
import { CbPaginatorState } from '@caribeng/ui/paginator';
|
|
6
|
+
import { CbExcelExportOptions, CbXlsxSheet } from '@caribeng/ui/xlsx';
|
|
6
7
|
|
|
7
8
|
/** Cómo compara un filtro el texto buscado con el valor de la celda (sin distinguir mayúsculas ni tildes). */
|
|
8
9
|
type CbTableFilterMatchMode = 'contains' | 'startsWith' | 'equals';
|
|
@@ -27,6 +28,27 @@ interface CbTableColumn {
|
|
|
27
28
|
frozen?: boolean;
|
|
28
29
|
/** Incluir la columna en `toCSV()` / `exportCSV()`. Por defecto `true`. */
|
|
29
30
|
exportable?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Formato del valor: `number` (separadores y decimales), `currency` (moneda) o
|
|
33
|
+
* `percent` (`0.15` → 15 %). Los numéricos se alinean a la derecha y los
|
|
34
|
+
* negativos se marcan en rojo.
|
|
35
|
+
*/
|
|
36
|
+
type?: 'text' | 'number' | 'currency' | 'percent';
|
|
37
|
+
/** Moneda de una columna `currency` (si no, la de la tabla o `provideCaribeNG({ currency })`). */
|
|
38
|
+
currency?: string;
|
|
39
|
+
/** Decimales fijos de una columna numérica. */
|
|
40
|
+
decimals?: number;
|
|
41
|
+
/** Negativos con signo o entre paréntesis (si no, el de la tabla). */
|
|
42
|
+
negative?: CbNegativeStyle;
|
|
43
|
+
/** Texto propio de la celda (no cambia el valor con el que se ordena, filtra o exporta). */
|
|
44
|
+
format?: (value: any, row: any) => string;
|
|
45
|
+
/**
|
|
46
|
+
* Total de la columna en el pie (y en los subtotales de grupo): `sum`, `avg`,
|
|
47
|
+
* `count`, `min`, `max` o una función con las filas filtradas.
|
|
48
|
+
*/
|
|
49
|
+
summary?: CbSummary | ((rows: readonly any[]) => unknown);
|
|
50
|
+
/** Texto fijo en el pie de esta columna (p. ej. "Total"). */
|
|
51
|
+
footer?: string;
|
|
30
52
|
}
|
|
31
53
|
interface CbTableCellContext<T = any> {
|
|
32
54
|
$implicit: T;
|
|
@@ -153,6 +175,12 @@ declare class CbTable {
|
|
|
153
175
|
readonly totalRecords: _angular_core.InputSignal<number | null>;
|
|
154
176
|
/** Muestra la capa de carga y marca la tabla con `aria-busy`. */
|
|
155
177
|
readonly loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
178
|
+
/** Con `groupRowsBy`, una fila de subtotal al final de cada grupo (columnas con `summary`). */
|
|
179
|
+
readonly groupSubtotals: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
180
|
+
/** Moneda de las columnas `currency` (si no, la de `provideCaribeNG({ currency })`). */
|
|
181
|
+
readonly currency: _angular_core.InputSignal<string | undefined>;
|
|
182
|
+
/** Negativos con signo o entre paréntesis (si no, el de `provideCaribeNG({ negativeStyle })`). */
|
|
183
|
+
readonly negativeStyle: _angular_core.InputSignal<CbNegativeStyle | undefined>;
|
|
156
184
|
readonly selection: _angular_core.ModelSignal<unknown>;
|
|
157
185
|
readonly sortChange: _angular_core.OutputEmitterRef<{
|
|
158
186
|
field: string | null;
|
|
@@ -188,6 +216,21 @@ declare class CbTable {
|
|
|
188
216
|
/** Filas por grupo en todos los datos (no solo en la página). */
|
|
189
217
|
private readonly groupCounts;
|
|
190
218
|
protected readonly pageRows: _angular_core.Signal<readonly unknown[]>;
|
|
219
|
+
private readonly config;
|
|
220
|
+
protected readonly hasSummary: _angular_core.Signal<boolean>;
|
|
221
|
+
protected readonly hasFooterText: _angular_core.Signal<boolean>;
|
|
222
|
+
protected readonly hasFooter: _angular_core.Signal<boolean>;
|
|
223
|
+
/** Columna donde va la etiqueta "Total" / "Subtotal": la primera sin total. */
|
|
224
|
+
protected readonly labelColumn: _angular_core.Signal<number>;
|
|
225
|
+
/**
|
|
226
|
+
* Columnas que ocupa la etiqueta: desde la suya hasta la siguiente con total
|
|
227
|
+
* (sin partir columnas fijas de no fijas).
|
|
228
|
+
*/
|
|
229
|
+
protected readonly labelSpan: _angular_core.Signal<number>;
|
|
230
|
+
/** Totales del pie, sobre todas las filas filtradas (no solo la página). */
|
|
231
|
+
protected readonly totals: _angular_core.Signal<Record<string, unknown>>;
|
|
232
|
+
/** Totales por grupo (con `groupSubtotals`). */
|
|
233
|
+
private readonly groupTotals;
|
|
191
234
|
protected readonly colspan: _angular_core.Signal<number>;
|
|
192
235
|
private readonly selectedCount;
|
|
193
236
|
protected readonly allSelected: _angular_core.Signal<boolean>;
|
|
@@ -224,11 +267,22 @@ declare class CbTable {
|
|
|
224
267
|
protected onPageChange(state: CbPaginatorState): void;
|
|
225
268
|
protected groupOf(row: unknown): unknown;
|
|
226
269
|
protected groupCount(row: unknown): number;
|
|
270
|
+
/** La fila cierra grupo si es la última de la página o el siguiente cambia de grupo. */
|
|
271
|
+
protected isGroupEnd(index: number): boolean;
|
|
272
|
+
protected groupSummary(row: unknown, col: CbTableColumn): unknown;
|
|
227
273
|
/** La fila abre grupo si es la primera de la página o cambia el valor del grupo. */
|
|
228
274
|
protected isGroupStart(index: number): boolean;
|
|
229
275
|
protected frozenLeft(key: string): number | null;
|
|
230
276
|
/** Suma los anchos de las celdas fijas anteriores (expandir, selección y columnas `frozen`). */
|
|
231
277
|
private measureFrozen;
|
|
278
|
+
/**
|
|
279
|
+
* Hoja de Excel con las columnas visibles (salvo `exportable: false`) y todas las
|
|
280
|
+
* filas filtradas y ordenadas: importes como números con su formato, subtotales
|
|
281
|
+
* de grupo y totales en negrita.
|
|
282
|
+
*/
|
|
283
|
+
toExcelSheet(options?: CbExcelExportOptions & CbTableCsvOptions): CbXlsxSheet;
|
|
284
|
+
/** Descarga las filas en Excel (`nombre.xlsx`) con formatos de número, subtotales y totales. */
|
|
285
|
+
exportExcel(filename?: string, options?: CbExcelExportOptions & CbTableCsvOptions): void;
|
|
232
286
|
/**
|
|
233
287
|
* Datos en CSV: columnas visibles (salvo `exportable: false`) y todas las filas
|
|
234
288
|
* filtradas y ordenadas (no solo la página), o las seleccionadas con `selectionOnly`.
|
|
@@ -236,6 +290,16 @@ declare class CbTable {
|
|
|
236
290
|
toCSV(options?: CbTableCsvOptions): string;
|
|
237
291
|
/** Descarga el CSV (`nombre.csv`), con BOM para que Excel respete tildes y eñes. */
|
|
238
292
|
exportCSV(filename?: string, options?: CbTableCsvOptions): void;
|
|
293
|
+
/** Totales de las columnas con `summary` sobre unas filas. */
|
|
294
|
+
private summarize;
|
|
295
|
+
protected isNumeric(col: CbTableColumn): boolean;
|
|
296
|
+
protected alignOf(col: CbTableColumn): string | null;
|
|
297
|
+
protected isNegative(value: unknown, col: CbTableColumn): boolean;
|
|
298
|
+
/** Texto de una celda: `format`, o el formato de su `type`. */
|
|
299
|
+
protected display(value: unknown, col: CbTableColumn, row: unknown): unknown;
|
|
300
|
+
/** Texto de un total: con el formato de la columna (una cuenta, como número entero). */
|
|
301
|
+
protected summaryText(value: unknown, col: CbTableColumn): string;
|
|
302
|
+
private formatNumber;
|
|
239
303
|
protected cellValue(row: unknown, col: CbTableColumn): unknown;
|
|
240
304
|
protected cellTemplate(field: string): CbTableCellDirective | undefined;
|
|
241
305
|
protected cellContext(row: unknown, col: CbTableColumn): CbTableCellContext;
|
|
@@ -245,7 +309,7 @@ declare class CbTable {
|
|
|
245
309
|
private same;
|
|
246
310
|
private compare;
|
|
247
311
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbTable, never>;
|
|
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>;
|
|
312
|
+
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; }; "groupSubtotals": { "alias": "groupSubtotals"; "required": false; "isSignal": true; }; "currency": { "alias": "currency"; "required": false; "isSignal": true; }; "negativeStyle": { "alias": "negativeStyle"; "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>;
|
|
249
313
|
}
|
|
250
314
|
|
|
251
315
|
export { CbTable, CbTableCellDirective, CbTableGroupHeader, CbTableRowExpansion };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Tag-button
|
|
4
|
+
* Tag-button: píldora pulsable usada como filtro o chip de
|
|
5
5
|
* acción. Alterna su estado seleccionado y emite el cambio.
|
|
6
6
|
*
|
|
7
7
|
* @example
|
|
@@ -24,4 +24,4 @@ declare class CbTagButton {
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
export { CbTagButton };
|
|
27
|
-
//# sourceMappingURL=caribeng-ui-
|
|
27
|
+
//# sourceMappingURL=caribeng-ui-tag-button.d.ts.map
|