@caribeng/ui 22.4.0 → 22.6.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.
Files changed (186) hide show
  1. package/README.md +313 -313
  2. package/fesm2022/caribeng-ui-account-picker.mjs +533 -0
  3. package/fesm2022/caribeng-ui-aging.mjs +488 -0
  4. package/fesm2022/{caribeng-ui-caribe-alert.mjs → caribeng-ui-alert.mjs} +45 -45
  5. package/fesm2022/caribeng-ui-amount.mjs +249 -0
  6. package/fesm2022/caribeng-ui-anchor.mjs +2 -2
  7. package/fesm2022/{caribeng-ui-caribe-animation-lottie.mjs → caribeng-ui-animation-lottie.mjs} +41 -41
  8. package/fesm2022/caribeng-ui-audit-log.mjs +323 -0
  9. package/fesm2022/caribeng-ui-avatar.mjs +2 -2
  10. package/fesm2022/caribeng-ui-breadcrumb.mjs +13 -3
  11. package/fesm2022/{caribeng-ui-caribe-button-group.mjs → caribeng-ui-button-group.mjs} +15 -15
  12. package/fesm2022/caribeng-ui-button.mjs +2 -2
  13. package/fesm2022/{caribeng-ui-caribe-card-content.mjs → caribeng-ui-card-content.mjs} +39 -39
  14. package/fesm2022/{caribeng-ui-caribe-card-move.mjs → caribeng-ui-card-move.mjs} +65 -65
  15. package/fesm2022/{caribeng-ui-caribe-card-primary.mjs → caribeng-ui-card-primary.mjs} +31 -31
  16. package/fesm2022/{caribeng-ui-caribe-card-select.mjs → caribeng-ui-card-select.mjs} +67 -67
  17. package/fesm2022/caribeng-ui-carousel.mjs +2 -2
  18. package/fesm2022/caribeng-ui-cascadeselect.mjs +45 -9
  19. package/fesm2022/caribeng-ui-chat.mjs +2 -2
  20. package/fesm2022/{caribeng-ui-caribe-coachmark.mjs → caribeng-ui-coachmark.mjs} +85 -85
  21. package/fesm2022/caribeng-ui-command-palette.mjs +2 -2
  22. package/fesm2022/caribeng-ui-comments.mjs +864 -0
  23. package/fesm2022/caribeng-ui-datagrid.mjs +1635 -0
  24. package/fesm2022/caribeng-ui-dataview.mjs +2 -2
  25. package/fesm2022/caribeng-ui-datepicker.mjs +2 -2
  26. package/fesm2022/caribeng-ui-document.mjs +495 -0
  27. package/fesm2022/{caribeng-ui-caribe-dots-indicator.mjs → caribeng-ui-dots-indicator.mjs} +41 -41
  28. package/fesm2022/caribeng-ui-dynamic-form.mjs +1581 -0
  29. package/fesm2022/caribeng-ui-editor.mjs +2303 -1311
  30. package/fesm2022/{caribeng-ui-caribe-expansion-panel.mjs → caribeng-ui-expansion-panel.mjs} +39 -39
  31. package/fesm2022/{caribeng-ui-caribe-fab-menu.mjs → caribeng-ui-fab-menu.mjs} +75 -75
  32. package/fesm2022/caribeng-ui-file-card.mjs +2 -2
  33. package/fesm2022/{caribeng-ui-caribe-file-download.mjs → caribeng-ui-file-download.mjs} +63 -63
  34. package/fesm2022/caribeng-ui-financial-report.mjs +380 -0
  35. package/fesm2022/{caribeng-ui-caribe-float-menu.mjs → caribeng-ui-float-menu.mjs} +31 -31
  36. package/fesm2022/caribeng-ui-floatlabel.mjs +2 -2
  37. package/fesm2022/caribeng-ui-flow.mjs +1508 -0
  38. package/fesm2022/{caribeng-ui-caribe-footer.mjs → caribeng-ui-footer.mjs} +19 -19
  39. package/fesm2022/caribeng-ui-gantt.mjs +1094 -0
  40. package/fesm2022/{caribeng-ui-caribe-header.mjs → caribeng-ui-header.mjs} +49 -49
  41. package/fesm2022/{caribeng-ui-caribe-icon-button.mjs → caribeng-ui-icon-button.mjs} +23 -23
  42. package/fesm2022/caribeng-ui-image-cropper.mjs +671 -0
  43. package/fesm2022/caribeng-ui-import-wizard.mjs +746 -0
  44. package/fesm2022/caribeng-ui-infinite-scroll.mjs +226 -0
  45. package/fesm2022/caribeng-ui-input-number.mjs +22 -6
  46. package/fesm2022/{caribeng-ui-caribe-input-search.mjs → caribeng-ui-input-search.mjs} +65 -65
  47. package/fesm2022/{caribeng-ui-caribe-input-token.mjs → caribeng-ui-input-token.mjs} +59 -59
  48. package/fesm2022/caribeng-ui-inputotp.mjs +2 -2
  49. package/fesm2022/caribeng-ui-journal-entry.mjs +340 -0
  50. package/fesm2022/caribeng-ui-kanban.mjs +6 -6
  51. package/fesm2022/caribeng-ui-kpi.mjs +189 -0
  52. package/fesm2022/{caribeng-ui-caribe-link.mjs → caribeng-ui-link.mjs} +37 -37
  53. package/fesm2022/caribeng-ui-masonry.mjs +93 -0
  54. package/fesm2022/caribeng-ui-media-player.mjs +821 -0
  55. package/fesm2022/caribeng-ui-mentions.mjs +2 -2
  56. package/fesm2022/caribeng-ui-notification-center.mjs +636 -0
  57. package/fesm2022/{caribeng-ui-caribe-off-canvas.mjs → caribeng-ui-off-canvas.mjs} +55 -55
  58. package/fesm2022/{caribeng-ui-caribe-onboarding.mjs → caribeng-ui-onboarding.mjs} +105 -105
  59. package/fesm2022/caribeng-ui-orderlist.mjs +2 -2
  60. package/fesm2022/caribeng-ui-pdfviewer.mjs +1755 -25
  61. package/fesm2022/caribeng-ui-period-picker.mjs +637 -0
  62. package/fesm2022/caribeng-ui-phone-input.mjs +2 -2
  63. package/fesm2022/caribeng-ui-picklist.mjs +2 -2
  64. package/fesm2022/caribeng-ui-pivot.mjs +419 -0
  65. package/fesm2022/caribeng-ui-pricing.mjs +2 -2
  66. package/fesm2022/caribeng-ui-rating.mjs +14 -17
  67. package/fesm2022/caribeng-ui-reconciliation.mjs +386 -0
  68. package/fesm2022/caribeng-ui-scheduler.mjs +1027 -0
  69. package/fesm2022/caribeng-ui-select.mjs +2 -2
  70. package/fesm2022/{caribeng-ui-caribe-shortcut.mjs → caribeng-ui-shortcut.mjs} +29 -29
  71. package/fesm2022/caribeng-ui-sidebar.mjs +2 -2
  72. package/fesm2022/caribeng-ui-signature-pad.mjs +654 -0
  73. package/fesm2022/{caribeng-ui-caribe-status.mjs → caribeng-ui-status.mjs} +11 -11
  74. package/fesm2022/{caribeng-ui-caribe-step-indicator.mjs → caribeng-ui-step-indicator.mjs} +53 -53
  75. package/fesm2022/caribeng-ui-stepper.mjs +2 -2
  76. package/fesm2022/caribeng-ui-steps.mjs +2 -2
  77. package/fesm2022/caribeng-ui-table.mjs +323 -15
  78. package/fesm2022/caribeng-ui-tabmenu.mjs +2 -2
  79. package/fesm2022/caribeng-ui-tabs.mjs +2 -2
  80. package/fesm2022/{caribeng-ui-caribe-tag-button.mjs → caribeng-ui-tag-button.mjs} +25 -25
  81. package/fesm2022/caribeng-ui-tag.mjs +2 -2
  82. package/fesm2022/caribeng-ui-tieredmenu.mjs +6 -6
  83. package/fesm2022/{caribeng-ui-caribe-tracker.mjs → caribeng-ui-tracker.mjs} +29 -29
  84. package/fesm2022/{caribeng-ui-caribe-transaction-status.mjs → caribeng-ui-transaction-status.mjs} +11 -11
  85. package/fesm2022/caribeng-ui-treeselect.mjs +44 -9
  86. package/fesm2022/caribeng-ui-treetable.mjs +236 -17
  87. package/fesm2022/{caribeng-ui-caribe-voucher.mjs → caribeng-ui-voucher.mjs} +45 -45
  88. package/fesm2022/caribeng-ui-xlsx.mjs +486 -0
  89. package/fesm2022/caribeng-ui.mjs +1185 -5
  90. package/package.json +217 -177
  91. package/types/caribeng-ui-account-picker.d.ts +142 -0
  92. package/types/caribeng-ui-aging.d.ts +123 -0
  93. package/types/{caribeng-ui-caribe-alert.d.ts → caribeng-ui-alert.d.ts} +2 -2
  94. package/types/caribeng-ui-amount.d.ts +82 -0
  95. package/types/{caribeng-ui-caribe-animation-lottie.d.ts → caribeng-ui-animation-lottie.d.ts} +2 -2
  96. package/types/caribeng-ui-audit-log.d.ts +86 -0
  97. package/types/caribeng-ui-breadcrumb.d.ts +2 -2
  98. package/types/{caribeng-ui-caribe-button-group.d.ts → caribeng-ui-button-group.d.ts} +2 -2
  99. package/types/{caribeng-ui-caribe-card-content.d.ts → caribeng-ui-card-content.d.ts} +2 -2
  100. package/types/{caribeng-ui-caribe-card-move.d.ts → caribeng-ui-card-move.d.ts} +1 -1
  101. package/types/{caribeng-ui-caribe-card-primary.d.ts → caribeng-ui-card-primary.d.ts} +2 -2
  102. package/types/{caribeng-ui-caribe-card-select.d.ts → caribeng-ui-card-select.d.ts} +2 -2
  103. package/types/caribeng-ui-cascadeselect.d.ts +6 -0
  104. package/types/{caribeng-ui-caribe-coachmark.d.ts → caribeng-ui-coachmark.d.ts} +2 -2
  105. package/types/caribeng-ui-comments.d.ts +214 -0
  106. package/types/caribeng-ui-datagrid.d.ts +269 -0
  107. package/types/caribeng-ui-document.d.ts +138 -0
  108. package/types/{caribeng-ui-caribe-dots-indicator.d.ts → caribeng-ui-dots-indicator.d.ts} +2 -2
  109. package/types/caribeng-ui-dynamic-form.d.ts +409 -0
  110. package/types/caribeng-ui-editor.d.ts +110 -12
  111. package/types/{caribeng-ui-caribe-expansion-panel.d.ts → caribeng-ui-expansion-panel.d.ts} +1 -1
  112. package/types/{caribeng-ui-caribe-fab-menu.d.ts → caribeng-ui-fab-menu.d.ts} +2 -2
  113. package/types/{caribeng-ui-caribe-file-download.d.ts → caribeng-ui-file-download.d.ts} +1 -1
  114. package/types/caribeng-ui-financial-report.d.ts +102 -0
  115. package/types/{caribeng-ui-caribe-float-menu.d.ts → caribeng-ui-float-menu.d.ts} +2 -2
  116. package/types/caribeng-ui-flow.d.ts +228 -0
  117. package/types/{caribeng-ui-caribe-footer.d.ts → caribeng-ui-footer.d.ts} +2 -2
  118. package/types/caribeng-ui-gantt.d.ts +244 -0
  119. package/types/{caribeng-ui-caribe-header.d.ts → caribeng-ui-header.d.ts} +2 -2
  120. package/types/{caribeng-ui-caribe-icon-button.d.ts → caribeng-ui-icon-button.d.ts} +2 -2
  121. package/types/{caribeng-ui-caribe-illustration.d.ts → caribeng-ui-illustration.d.ts} +1 -1
  122. package/types/caribeng-ui-image-cropper.d.ts +169 -0
  123. package/types/caribeng-ui-import-wizard.d.ts +149 -0
  124. package/types/caribeng-ui-infinite-scroll.d.ts +75 -0
  125. package/types/caribeng-ui-input-number.d.ts +1 -1
  126. package/types/{caribeng-ui-caribe-input-search.d.ts → caribeng-ui-input-search.d.ts} +2 -2
  127. package/types/{caribeng-ui-caribe-input-token.d.ts → caribeng-ui-input-token.d.ts} +2 -2
  128. package/types/caribeng-ui-journal-entry.d.ts +110 -0
  129. package/types/caribeng-ui-kpi.d.ts +64 -0
  130. package/types/{caribeng-ui-caribe-link.d.ts → caribeng-ui-link.d.ts} +2 -2
  131. package/types/{caribeng-ui-caribe-logo.d.ts → caribeng-ui-logo.d.ts} +1 -1
  132. package/types/caribeng-ui-masonry.d.ts +32 -0
  133. package/types/caribeng-ui-media-player.d.ts +140 -0
  134. package/types/caribeng-ui-notification-center.d.ts +153 -0
  135. package/types/{caribeng-ui-caribe-off-canvas.d.ts → caribeng-ui-off-canvas.d.ts} +2 -2
  136. package/types/{caribeng-ui-caribe-onboarding.d.ts → caribeng-ui-onboarding.d.ts} +2 -2
  137. package/types/caribeng-ui-pdfviewer.d.ts +245 -5
  138. package/types/caribeng-ui-period-picker.d.ts +148 -0
  139. package/types/caribeng-ui-pivot.d.ts +116 -0
  140. package/types/caribeng-ui-reconciliation.d.ts +109 -0
  141. package/types/caribeng-ui-scheduler.d.ts +188 -0
  142. package/types/{caribeng-ui-caribe-shortcut.d.ts → caribeng-ui-shortcut.d.ts} +2 -2
  143. package/types/caribeng-ui-signature-pad.d.ts +151 -0
  144. package/types/{caribeng-ui-caribe-status.d.ts → caribeng-ui-status.d.ts} +2 -2
  145. package/types/{caribeng-ui-caribe-step-indicator.d.ts → caribeng-ui-step-indicator.d.ts} +2 -2
  146. package/types/caribeng-ui-table.d.ts +66 -2
  147. package/types/{caribeng-ui-caribe-tag-button.d.ts → caribeng-ui-tag-button.d.ts} +2 -2
  148. package/types/{caribeng-ui-caribe-tracker.d.ts → caribeng-ui-tracker.d.ts} +2 -2
  149. package/types/{caribeng-ui-caribe-transaction-status.d.ts → caribeng-ui-transaction-status.d.ts} +2 -2
  150. package/types/caribeng-ui-treeselect.d.ts +6 -0
  151. package/types/caribeng-ui-treetable.d.ts +67 -2
  152. package/types/{caribeng-ui-caribe-voucher.d.ts → caribeng-ui-voucher.d.ts} +2 -2
  153. package/types/caribeng-ui-xlsx.d.ts +79 -0
  154. package/types/caribeng-ui.d.ts +713 -4
  155. package/fesm2022/caribeng-ui-caribe-calendar.mjs +0 -92
  156. package/fesm2022/caribeng-ui-caribe-circle-loading.mjs +0 -130
  157. package/fesm2022/caribeng-ui-caribe-data-table.mjs +0 -94
  158. package/fesm2022/caribeng-ui-caribe-file-select.mjs +0 -88
  159. package/fesm2022/caribeng-ui-caribe-inline-alert.mjs +0 -100
  160. package/fesm2022/caribeng-ui-caribe-input-date.mjs +0 -138
  161. package/fesm2022/caribeng-ui-caribe-input-select.mjs +0 -154
  162. package/fesm2022/caribeng-ui-caribe-loader.mjs +0 -48
  163. package/fesm2022/caribeng-ui-caribe-modal.mjs +0 -119
  164. package/fesm2022/caribeng-ui-caribe-pictogram.mjs +0 -52
  165. package/fesm2022/caribeng-ui-caribe-pop-over.mjs +0 -104
  166. package/fesm2022/caribeng-ui-caribe-preloader.mjs +0 -57
  167. package/fesm2022/caribeng-ui-caribe-progress-bar.mjs +0 -84
  168. package/fesm2022/caribeng-ui-caribe-stroke.mjs +0 -69
  169. package/fesm2022/caribeng-ui-caribe-switch.mjs +0 -182
  170. package/types/caribeng-ui-caribe-calendar.d.ts +0 -27
  171. package/types/caribeng-ui-caribe-circle-loading.d.ts +0 -28
  172. package/types/caribeng-ui-caribe-data-table.d.ts +0 -26
  173. package/types/caribeng-ui-caribe-file-select.d.ts +0 -31
  174. package/types/caribeng-ui-caribe-inline-alert.d.ts +0 -28
  175. package/types/caribeng-ui-caribe-input-date.d.ts +0 -40
  176. package/types/caribeng-ui-caribe-input-select.d.ts +0 -47
  177. package/types/caribeng-ui-caribe-loader.d.ts +0 -22
  178. package/types/caribeng-ui-caribe-modal.d.ts +0 -21
  179. package/types/caribeng-ui-caribe-pictogram.d.ts +0 -15
  180. package/types/caribeng-ui-caribe-pop-over.d.ts +0 -17
  181. package/types/caribeng-ui-caribe-preloader.d.ts +0 -24
  182. package/types/caribeng-ui-caribe-progress-bar.d.ts +0 -28
  183. package/types/caribeng-ui-caribe-stroke.d.ts +0 -17
  184. package/types/caribeng-ui-caribe-switch.d.ts +0 -55
  185. /package/fesm2022/{caribeng-ui-caribe-illustration.mjs → caribeng-ui-illustration.mjs} +0 -0
  186. /package/fesm2022/{caribeng-ui-caribe-logo.mjs → caribeng-ui-logo.mjs} +0 -0
@@ -0,0 +1,102 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import * as _caribeng_ui from '@caribeng/ui';
3
+ import { cbFormat, CbNegativeStyle } from '@caribeng/ui';
4
+ import { CbAccount } from '@caribeng/ui/account-picker';
5
+ import { CbTreeTableNode, CbTreeTableColumn } from '@caribeng/ui/treetable';
6
+ import { CbXlsxSheet } from '@caribeng/ui/xlsx';
7
+
8
+ /** Fila de total calculada a partir de cuentas (p. ej. «Utilidad del ejercicio» = 4 − 5 − 6). */
9
+ interface CbReportTotal {
10
+ readonly label: string;
11
+ readonly terms: readonly {
12
+ readonly code: string;
13
+ readonly sign?: 1 | -1;
14
+ }[];
15
+ }
16
+ /** Valores por cuenta de movimiento: uno por periodo, en el orden de `periods`. */
17
+ type CbReportBalances = Readonly<Record<string, readonly (number | null)[]>>;
18
+ /**
19
+ * Informe financiero jerárquico de CaribeNG: balance general, estado de resultados
20
+ * o balance de prueba a partir del plan de cuentas y los saldos de las cuentas de
21
+ * movimiento.
22
+ *
23
+ * - Cada cuenta mayor suma a sus auxiliares; los niveles se abren con los botones
24
+ * «Nivel 1…N» y se pueden ocultar las cuentas en cero.
25
+ * - Varios periodos en columnas y, con `comparative`, la variación y el % del
26
+ * primero frente al segundo.
27
+ * - Totales calculados (`totals`), saldos de naturaleza crédito en positivo
28
+ * (`signByNature`), exportación a Excel con niveles plegables e impresión.
29
+ * - Clic o Enter en una cuenta de movimiento emite `accountOpen` (ver sus movimientos).
30
+ *
31
+ * @example
32
+ * ```html
33
+ * <cb-financial-report title="Estado de resultados" [accounts]="puc" [balances]="saldos" [periods]="['2026', '2025']" comparative [classes]="['4', '5', '6']" [totals]="utilidad" />
34
+ * ```
35
+ */
36
+ declare class CbFinancialReport {
37
+ protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
38
+ protected readonly fmt: typeof cbFormat;
39
+ private readonly config;
40
+ protected readonly uid: string;
41
+ private readonly tree;
42
+ readonly title: _angular_core.InputSignal<string>;
43
+ /** Líneas bajo el título (empresa, NIT, periodo). */
44
+ readonly subtitle: _angular_core.InputSignal<readonly string[]>;
45
+ /** Plan de cuentas. */
46
+ readonly accounts: _angular_core.InputSignal<readonly CbAccount[]>;
47
+ /** Saldos de las cuentas de movimiento, uno por periodo. */
48
+ readonly balances: _angular_core.InputSignal<Readonly<Record<string, readonly (number | null)[]>>>;
49
+ /** Nombres de los periodos (columnas). */
50
+ readonly periods: _angular_core.InputSignal<readonly string[]>;
51
+ /** Columnas de variación y % del primer periodo frente al segundo. */
52
+ readonly comparative: _angular_core.InputSignalWithTransform<boolean, unknown>;
53
+ /**
54
+ * Clases (cuentas raíz) que se muestran: `['1', '2', '3']` para el balance. Todas
55
+ * por defecto. Los `totals` pueden usar cualquier cuenta, también de otras clases.
56
+ */
57
+ readonly classes: _angular_core.InputSignal<readonly string[] | null>;
58
+ /** Muestra en positivo los saldos de naturaleza crédito (pasivo, patrimonio, ingresos). */
59
+ readonly signByNature: _angular_core.InputSignalWithTransform<boolean, unknown>;
60
+ /** Filas de total al final. */
61
+ readonly totals: _angular_core.InputSignal<readonly CbReportTotal[]>;
62
+ /** Niveles abiertos (1 = solo las clases). */
63
+ readonly level: _angular_core.ModelSignal<number>;
64
+ /** Oculta las cuentas cuyos saldos son todos cero. */
65
+ readonly hideZero: _angular_core.ModelSignal<boolean>;
66
+ readonly toolbar: _angular_core.InputSignalWithTransform<boolean, unknown>;
67
+ readonly currency: _angular_core.InputSignal<string | undefined>;
68
+ readonly negativeStyle: _angular_core.InputSignal<CbNegativeStyle | undefined>;
69
+ /** Clic o Enter en una cuenta de movimiento. */
70
+ readonly accountOpen: _angular_core.OutputEmitterRef<CbAccount>;
71
+ private readonly resolved;
72
+ private readonly byCode;
73
+ /** Signo de cada cuenta según la naturaleza de su clase. */
74
+ private signOf;
75
+ /** Árbol de todo el plan de cuentas con los saldos (con signo) en las hojas. */
76
+ private readonly allNodes;
77
+ /** Árbol del informe: solo las clases pedidas (`classes`). */
78
+ private readonly baseNodes;
79
+ /** Árbol mostrado: sin las cuentas en cero (si se pide) y con las filas de total. */
80
+ protected readonly nodes: _angular_core.Signal<CbTreeTableNode[]>;
81
+ /** Total (con signo) de una cuenta en cada periodo, sumando sus hojas. */
82
+ private readonly sums;
83
+ private readonly totalNodes;
84
+ protected readonly columns: _angular_core.Signal<CbTreeTableColumn[]>;
85
+ /** Niveles disponibles (hasta la profundidad del plan de cuentas). */
86
+ protected readonly levels: _angular_core.Signal<number[]>;
87
+ protected readonly rowClass: (node: CbTreeTableNode) => string | null;
88
+ constructor();
89
+ protected onActivate(node: CbTreeTableNode): void;
90
+ /** Hoja de Excel del informe: todas las cuentas con sus niveles plegables, títulos y totales. */
91
+ toExcelSheet(): CbXlsxSheet;
92
+ /** Descarga el informe en Excel. */
93
+ exportExcel(filename?: string): void;
94
+ /** Imprime el informe (todas las cuentas hasta el nivel abierto) en una ventana de impresión limpia. */
95
+ print(): void;
96
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbFinancialReport, never>;
97
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbFinancialReport, "cb-financial-report", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "accounts": { "alias": "accounts"; "required": false; "isSignal": true; }; "balances": { "alias": "balances"; "required": false; "isSignal": true; }; "periods": { "alias": "periods"; "required": false; "isSignal": true; }; "comparative": { "alias": "comparative"; "required": false; "isSignal": true; }; "classes": { "alias": "classes"; "required": false; "isSignal": true; }; "signByNature": { "alias": "signByNature"; "required": false; "isSignal": true; }; "totals": { "alias": "totals"; "required": false; "isSignal": true; }; "level": { "alias": "level"; "required": false; "isSignal": true; }; "hideZero": { "alias": "hideZero"; "required": false; "isSignal": true; }; "toolbar": { "alias": "toolbar"; "required": false; "isSignal": true; }; "currency": { "alias": "currency"; "required": false; "isSignal": true; }; "negativeStyle": { "alias": "negativeStyle"; "required": false; "isSignal": true; }; }, { "level": "levelChange"; "hideZero": "hideZeroChange"; "accountOpen": "accountOpen"; }, never, never, true, never>;
98
+ }
99
+
100
+ export { CbFinancialReport };
101
+ export type { CbReportBalances, CbReportTotal };
102
+ //# sourceMappingURL=caribeng-ui-financial-report.d.ts.map
@@ -6,7 +6,7 @@ interface CbFloatMenuItem {
6
6
  label: string;
7
7
  }
8
8
  /**
9
- * Float-menu de Caribe Design: menú flotante en forma de píldora con opciones
9
+ * Float-menu: menú flotante en forma de píldora con opciones
10
10
  * seleccionables (segmentado horizontal).
11
11
  *
12
12
  * @example
@@ -31,4 +31,4 @@ declare class CbFloatMenu {
31
31
 
32
32
  export { CbFloatMenu };
33
33
  export type { CbFloatMenuItem };
34
- //# sourceMappingURL=caribeng-ui-caribe-float-menu.d.ts.map
34
+ //# sourceMappingURL=caribeng-ui-float-menu.d.ts.map
@@ -0,0 +1,228 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import * as _caribeng_ui from '@caribeng/ui';
3
+ import { cbFormat } from '@caribeng/ui';
4
+
5
+ /** Tipo de nodo de un flujo. */
6
+ type CbFlowNodeType = 'start' | 'task' | 'decision' | 'end';
7
+ /** Nodo: `x`, `y` es su esquina superior izquierda en el lienzo (px a zoom 100 %). */
8
+ interface CbFlowNode {
9
+ readonly id: string;
10
+ readonly type: CbFlowNodeType;
11
+ readonly label: string;
12
+ readonly x: number;
13
+ readonly y: number;
14
+ }
15
+ /** Conexión dirigida de `from` a `to`, con una etiqueta opcional ("Aprobado"). */
16
+ interface CbFlowEdge {
17
+ readonly id: string;
18
+ readonly from: string;
19
+ readonly to: string;
20
+ readonly label?: string;
21
+ }
22
+ /** Un flujo: nodos y conexiones. */
23
+ interface CbFlow {
24
+ readonly nodes: readonly CbFlowNode[];
25
+ readonly edges: readonly CbFlowEdge[];
26
+ }
27
+ /** Problema de un flujo (`cbValidateFlow`). */
28
+ type CbFlowIssueCode = 'no-start' | 'many-starts' | 'no-end' | 'start-incoming' | 'end-outgoing' | 'dead-end' | 'decision-branches' | 'branch-label' | 'unreachable';
29
+ interface CbFlowIssue {
30
+ readonly code: CbFlowIssueCode;
31
+ /** Nodo afectado (si lo hay). */
32
+ readonly nodeId?: string;
33
+ /** `warning` no impide usar el flujo (una salida de decisión sin etiqueta). */
34
+ readonly severity: 'error' | 'warning';
35
+ }
36
+ /** Tamaño de cada tipo de nodo (px a zoom 100 %). */
37
+ declare const CB_FLOW_NODE_SIZE: Readonly<Record<CbFlowNodeType, {
38
+ readonly w: number;
39
+ readonly h: number;
40
+ }>>;
41
+ /**
42
+ * Problemas del flujo: falta un inicio o un fin, nodos sin salida o inalcanzables desde el inicio,
43
+ * decisiones con menos de dos salidas (o salidas sin etiqueta), y conexiones que entran en un inicio
44
+ * o salen de un fin. Un flujo vacío no tiene problemas.
45
+ */
46
+ declare function cbValidateFlow(flow: CbFlow): CbFlowIssue[];
47
+ /**
48
+ * Coloca los nodos por niveles de arriba abajo (el inicio arriba y cada paso debajo del anterior),
49
+ * centrados y sin cruzar más de lo necesario. Las conexiones que vuelven atrás no cuentan para
50
+ * los niveles. Las posiciones se ajustan a la rejilla `grid`.
51
+ */
52
+ declare function cbLayoutFlow(flow: CbFlow, grid?: number): CbFlow;
53
+
54
+ /** Conexión ya colocada: trazado, flecha, etiqueta y nombre accesible. */
55
+ interface EdgeView {
56
+ readonly edge: CbFlowEdge;
57
+ readonly d: string;
58
+ readonly arrow: string;
59
+ readonly mid: readonly [number, number];
60
+ readonly label: string;
61
+ }
62
+ /** Edición en línea del nombre de un nodo o de la etiqueta de una conexión. */
63
+ interface Editing {
64
+ readonly id: string;
65
+ readonly kind: 'node' | 'edge';
66
+ }
67
+ /**
68
+ * Editor de flujos (aprobaciones, procesos): nodos de inicio, tarea, decisión y fin unidos por
69
+ * conexiones con etiqueta. Se arrastran los nodos, se conectan desde su tirador y el lienzo se
70
+ * desplaza y amplía. Todo se puede hacer con el teclado, y la vista Lista es una alternativa
71
+ * sin lienzo para editar el flujo con lector de pantalla. Valida el flujo (`issues`) y lo ordena
72
+ * por niveles (`layout()`).
73
+ *
74
+ * @example
75
+ * ```html
76
+ * <cb-flow-editor [(flow)]="aprobacion" />
77
+ * ```
78
+ */
79
+ declare class CbFlowEditor {
80
+ /** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
81
+ protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
82
+ protected readonly format: typeof cbFormat;
83
+ /** El flujo: nodos y conexiones. */
84
+ readonly flow: _angular_core.ModelSignal<CbFlow>;
85
+ /** Solo lectura: se puede recorrer, desplazar y ampliar, pero no editar. Intro abre el nodo (`nodeOpen`). */
86
+ readonly readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
87
+ /** Rejilla en px: los nodos se ajustan a ella al moverlos (1 la desactiva). */
88
+ readonly gridSize: _angular_core.InputSignalWithTransform<number, unknown>;
89
+ /** Zoom (1 = 100 %). */
90
+ readonly zoom: _angular_core.ModelSignal<number>;
91
+ /** Diagrama o lista (alternativa sin lienzo, para teclado y lector de pantalla). */
92
+ readonly view: _angular_core.ModelSignal<"diagram" | "list">;
93
+ /** Nodo o conexión seleccionada (su `id`). */
94
+ readonly selected: _angular_core.ModelSignal<string | null>;
95
+ /** Muestra los problemas del flujo bajo el editor. */
96
+ readonly showValidation: _angular_core.InputSignalWithTransform<boolean, unknown>;
97
+ /** Ajusta el zoom para ver todo el flujo al cargarlo. */
98
+ readonly fitOnLoad: _angular_core.InputSignalWithTransform<boolean, unknown>;
99
+ /** Nombre accesible (por defecto, "Editor de flujo"). */
100
+ readonly ariaLabel: _angular_core.InputSignal<string>;
101
+ /** Se abrió un nodo: doble clic, o Intro en solo lectura. */
102
+ readonly nodeOpen: _angular_core.OutputEmitterRef<CbFlowNode>;
103
+ protected readonly uid: string;
104
+ protected readonly types: readonly CbFlowNodeType[];
105
+ protected readonly sizes: Readonly<Record<CbFlowNodeType, {
106
+ readonly w: number;
107
+ readonly h: number;
108
+ }>>;
109
+ protected readonly minZoom = 0.25;
110
+ protected readonly maxZoom = 2;
111
+ protected readonly step = 1.2;
112
+ private readonly host;
113
+ private readonly injector;
114
+ private readonly viewport;
115
+ private readonly editor;
116
+ /** Desplazamiento del lienzo (px de pantalla). */
117
+ protected readonly pan: _angular_core.WritableSignal<{
118
+ x: number;
119
+ y: number;
120
+ }>;
121
+ protected readonly panning: _angular_core.WritableSignal<boolean>;
122
+ /** Posición provisional de un nodo mientras se arrastra. */
123
+ private readonly dragPos;
124
+ /** Nodo desde el que se conecta (con el teclado o con el botón Conectar). */
125
+ protected readonly connectFrom: _angular_core.WritableSignal<string | null>;
126
+ /** Conexión que se arrastra desde un tirador, hasta el puntero (coordenadas del lienzo). */
127
+ private readonly linkDrag;
128
+ protected readonly editing: _angular_core.WritableSignal<Editing | null>;
129
+ protected readonly announcement: _angular_core.WritableSignal<string>;
130
+ private announceFlip;
131
+ private fitted;
132
+ /** Problemas del flujo (los mismos que muestra el editor). */
133
+ readonly issues: _angular_core.Signal<CbFlowIssue[]>;
134
+ protected readonly nodes: _angular_core.Signal<readonly CbFlowNode[]>;
135
+ private readonly nodeMap;
136
+ protected readonly outgoing: _angular_core.Signal<Map<string, CbFlowEdge[]>>;
137
+ protected readonly issuesByNode: _angular_core.Signal<Map<string, CbFlowIssue[]>>;
138
+ protected readonly edgeViews: _angular_core.Signal<EdgeView[]>;
139
+ /** Caja del SVG de conexiones: la de los nodos con margen para las curvas que rodean. */
140
+ protected readonly svgBox: _angular_core.Signal<{
141
+ x: number;
142
+ y: number;
143
+ w: number;
144
+ h: number;
145
+ }>;
146
+ protected readonly tempLine: _angular_core.Signal<string>;
147
+ protected readonly worldTransform: _angular_core.Signal<string>;
148
+ protected readonly gridBackground: _angular_core.Signal<{
149
+ size: string;
150
+ position: string;
151
+ }>;
152
+ protected readonly percent: _angular_core.Signal<string>;
153
+ protected readonly ordered: _angular_core.Signal<CbFlowNode[]>;
154
+ protected readonly selectedNode: _angular_core.Signal<CbFlowNode | null>;
155
+ protected readonly selectedExists: _angular_core.Signal<boolean>;
156
+ /** Caja del campo de edición en línea (sobre el nodo o en el punto medio de la conexión). */
157
+ protected readonly editorBox: _angular_core.Signal<{
158
+ x: number;
159
+ y: number;
160
+ w: number;
161
+ label: string;
162
+ } | null>;
163
+ constructor();
164
+ /** Añade un nodo. Con un nodo seleccionado, lo pone debajo y lo conecta desde él; después abre su nombre. */
165
+ addNode(type: CbFlowNodeType): CbFlowNode;
166
+ /** Conecta dos nodos (si se puede: no consigo mismo, no repetida, no hacia un inicio ni desde un fin). */
167
+ connect(from: string, to: string, label?: string): CbFlowEdge | null;
168
+ removeNode(id: string): void;
169
+ removeEdge(id: string): void;
170
+ rename(id: string, label: string): void;
171
+ relabel(id: string, label: string): void;
172
+ /** Coloca los nodos por niveles de arriba abajo y ajusta la vista. */
173
+ layout(): void;
174
+ /** Ajusta zoom y desplazamiento para ver todo el flujo. */
175
+ fit(): void;
176
+ /** Multiplica el zoom por `factor` alrededor del centro de la vista (o del punto `at`, en px de la vista). */
177
+ zoomBy(factor: number, at?: {
178
+ x: number;
179
+ y: number;
180
+ }): void;
181
+ protected toggleConnect(): void;
182
+ protected deleteSelected(): void;
183
+ protected connectFromList(from: string, select: HTMLSelectElement): void;
184
+ protected reveal(id: string): void;
185
+ protected onNodeKeydown(event: KeyboardEvent, rendered: CbFlowNode): void;
186
+ protected onEdgeKeydown(event: KeyboardEvent, edge: CbFlowEdge): void;
187
+ protected onHostKeydown(event: KeyboardEvent): void;
188
+ protected startEdit(id: string, kind: 'node' | 'edge'): void;
189
+ protected onEditorKeydown(event: KeyboardEvent): void;
190
+ /** Guarda lo escrito (al pulsar Intro o al salir del campo). */
191
+ protected commitEdit(refocus?: boolean): void;
192
+ private cancelEdit;
193
+ private focusItem;
194
+ protected onNodePointerDown(event: PointerEvent, node: CbFlowNode): void;
195
+ protected onNodeDblClick(node: CbFlowNode): void;
196
+ /** Arrastrar desde el tirador crea una conexión con el nodo donde se suelta. */
197
+ protected onHandlePointerDown(event: PointerEvent, node: CbFlowNode): void;
198
+ protected onEdgePointerDown(event: PointerEvent, edge: CbFlowEdge): void;
199
+ /** Arrastrar el fondo desplaza el lienzo; un clic sin moverse quita la selección. */
200
+ protected onBackgroundPointerDown(event: PointerEvent): void;
201
+ /** Rueda: desplaza; con Ctrl (o el gesto de pellizcar del panel táctil), amplía alrededor del puntero. */
202
+ protected onWheel(event: WheelEvent): void;
203
+ private track;
204
+ private beginConnect;
205
+ private cancelConnect;
206
+ private moveNode;
207
+ private newEdge;
208
+ /** Coordenadas del lienzo bajo el puntero. */
209
+ private toWorld;
210
+ /** Desplaza el lienzo lo justo para que se vea el nodo. */
211
+ private ensureVisible;
212
+ private focusNode;
213
+ private focusAfterRemoval;
214
+ protected nodeLabel(n: CbFlowNode): string;
215
+ protected typeLabel(type: CbFlowNodeType): string;
216
+ protected nameOf(id: string): string;
217
+ /** Destinos posibles en la lista: todos menos él mismo, los inicios y los ya conectados. */
218
+ protected targetsFor(node: CbFlowNode): CbFlowNode[];
219
+ protected issueText(issue: CbFlowIssue): string;
220
+ protected diamond(type: CbFlowNodeType): string;
221
+ private announce;
222
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbFlowEditor, never>;
223
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbFlowEditor, "cb-flow-editor", never, { "flow": { "alias": "flow"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "gridSize": { "alias": "gridSize"; "required": false; "isSignal": true; }; "zoom": { "alias": "zoom"; "required": false; "isSignal": true; }; "view": { "alias": "view"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "showValidation": { "alias": "showValidation"; "required": false; "isSignal": true; }; "fitOnLoad": { "alias": "fitOnLoad"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "flow": "flowChange"; "zoom": "zoomChange"; "view": "viewChange"; "selected": "selectedChange"; "nodeOpen": "nodeOpen"; }, never, never, true, never>;
224
+ }
225
+
226
+ export { CB_FLOW_NODE_SIZE, CbFlowEditor, cbLayoutFlow, cbValidateFlow };
227
+ export type { CbFlow, CbFlowEdge, CbFlowIssue, CbFlowIssueCode, CbFlowNode, CbFlowNodeType };
228
+ //# sourceMappingURL=caribeng-ui-flow.d.ts.map
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
 
3
3
  /**
4
- * Footer de Caribe Design: pie de página con texto de copyright y una zona de
4
+ * Footer: pie de página con texto de copyright y una zona de
5
5
  * enlaces o acciones proyectadas.
6
6
  *
7
7
  * @example
@@ -17,4 +17,4 @@ declare class CbFooter {
17
17
  }
18
18
 
19
19
  export { CbFooter };
20
- //# sourceMappingURL=caribeng-ui-caribe-footer.d.ts.map
20
+ //# sourceMappingURL=caribeng-ui-footer.d.ts.map
@@ -0,0 +1,244 @@
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 diagrama de Gantt: fechas, árbol de tareas, grupos calculados,
7
+ * dependencias (fin → inicio) y planificación automática. Funciones puras: el
8
+ * componente las usa y los tests las prueban sin DOM.
9
+ */
10
+ /** Tarea del diagrama. Las fechas son días (`'AAAA-MM-DD'` o `Date`); el fin es inclusivo. */
11
+ interface CbGanttTask {
12
+ readonly id: string;
13
+ readonly name: string;
14
+ readonly start: string | Date;
15
+ readonly end: string | Date;
16
+ /** Avance de 0 a 100. En los grupos se calcula con el de sus tareas. */
17
+ readonly progress?: number;
18
+ /** Tarea que la contiene (grupo). */
19
+ readonly parent?: string | null;
20
+ /** Tareas que deben terminar antes de que esta empiece (fin → inicio). */
21
+ readonly dependencies?: readonly string[];
22
+ /** `milestone` es un hito (un solo día, rombo); `group` agrupa tareas (sus fechas se calculan). */
23
+ readonly type?: 'task' | 'milestone' | 'group';
24
+ /** Color de la barra. */
25
+ readonly color?: string;
26
+ /** Texto de la columna Responsable. */
27
+ readonly assignee?: string;
28
+ }
29
+ /** Escala del diagrama: un día, una semana o un mes por columna. */
30
+ type CbGanttScale = 'day' | 'week' | 'month';
31
+ /** Columnas de la tabla de la izquierda. */
32
+ type CbGanttColumn = 'name' | 'start' | 'end' | 'duration' | 'progress' | 'assignee';
33
+ /** Una tarea cambió (al arrastrar, con el teclado o por la planificación automática). */
34
+ interface CbGanttChange {
35
+ readonly task: CbGanttTask;
36
+ readonly previous: CbGanttTask;
37
+ readonly reason: 'move' | 'resize' | 'progress' | 'schedule';
38
+ }
39
+ /** Dependencia creada o quitada: `to` depende de `from`. */
40
+ interface CbGanttLink {
41
+ readonly from: string;
42
+ readonly to: string;
43
+ }
44
+ /** Tarea con sus fechas ya resueltas (en los grupos, calculadas con sus tareas). */
45
+ interface ResolvedTask {
46
+ readonly task: CbGanttTask;
47
+ readonly start: Date;
48
+ readonly end: Date;
49
+ readonly progress: number;
50
+ readonly level: number;
51
+ readonly isGroup: boolean;
52
+ readonly isMilestone: boolean;
53
+ readonly children: readonly string[];
54
+ }
55
+ /** ¿Se puede crear la dependencia `from` → `to`? (sin repetir, sin ciclos ni grupos que se contienen). */
56
+ declare function canLink(tasks: readonly CbGanttTask[], from: string, to: string): boolean;
57
+ /**
58
+ * Planificación automática: cada tarea empieza como pronto el día siguiente al
59
+ * fin de sus predecesoras; si no, se desplaza conservando su duración. Devuelve
60
+ * las tareas cambiadas (las de grupos se resuelven con sus hijas).
61
+ */
62
+ declare function autoSchedule(tasks: readonly CbGanttTask[]): CbGanttTask[];
63
+
64
+ type DragMode = 'move' | 'start' | 'end' | 'progress' | 'link';
65
+ interface Preview {
66
+ readonly id: string;
67
+ readonly mode: DragMode;
68
+ /** Días desplazados (mover / cambiar inicio o fin). */
69
+ readonly delta: number;
70
+ /** Avance nuevo (al arrastrar el avance). */
71
+ readonly progress: number;
72
+ /** Punto del puntero en el diagrama (al crear una dependencia). */
73
+ readonly point: {
74
+ x: number;
75
+ y: number;
76
+ } | null;
77
+ }
78
+ interface Bar {
79
+ readonly row: ResolvedTask;
80
+ readonly index: number;
81
+ readonly x: number;
82
+ readonly width: number;
83
+ readonly y: number;
84
+ readonly start: Date;
85
+ readonly end: Date;
86
+ readonly progress: number;
87
+ }
88
+ interface Unit {
89
+ readonly key: string;
90
+ readonly label: string;
91
+ readonly x: number;
92
+ readonly width: number;
93
+ readonly weekend?: boolean;
94
+ }
95
+ /**
96
+ * Diagrama de Gantt de CaribeNG: tabla de tareas en árbol (grupos plegables) y
97
+ * barras en el tiempo, con escalas de día, semana y mes.
98
+ *
99
+ * - Arrastra una barra para moverla, sus bordes para cambiar inicio o fin, el
100
+ * tirador inferior para el avance y el punto de la derecha hasta otra tarea
101
+ * para crear una dependencia (fin → inicio).
102
+ * - Con `autoSchedule`, al retrasar una tarea se desplazan las que dependen de ella.
103
+ * - Los grupos abarcan a sus tareas y promedian su avance; los hitos son rombos.
104
+ * - Con el teclado, cada barra es un botón: flechas mueven, Mayús + flechas cambian
105
+ * el fin, Alt + flechas el inicio, + / − el avance, Supr quita sus dependencias
106
+ * y Enter abre la tarea. Cada cambio se anuncia.
107
+ *
108
+ * @example
109
+ * ```html
110
+ * <cb-gantt [(tasks)]="tareas" [(scale)]="escala" (taskChange)="guardar($event)" />
111
+ * ```
112
+ */
113
+ declare class CbGantt {
114
+ /** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
115
+ protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
116
+ protected readonly fmt: typeof cbFormat;
117
+ private readonly injector;
118
+ private readonly host;
119
+ protected readonly uid: string;
120
+ protected readonly row = 40;
121
+ protected readonly scales: readonly CbGanttScale[];
122
+ /** Tareas (bidireccional: se actualiza al arrastrar, con el teclado y al planificar). */
123
+ readonly tasks: _angular_core.ModelSignal<readonly CbGanttTask[]>;
124
+ /** Escala: un día, una semana o un mes por columna. */
125
+ readonly scale: _angular_core.ModelSignal<CbGanttScale>;
126
+ /** Columnas de la tabla de la izquierda y su orden. */
127
+ readonly columns: _angular_core.InputSignal<readonly CbGanttColumn[]>;
128
+ /** Ancho de la tabla de la izquierda; por defecto, el de sus columnas (como mucho, el 60 % del componente). */
129
+ readonly gridWidth: _angular_core.InputSignal<string>;
130
+ /** Alto del componente (con scroll). */
131
+ readonly height: _angular_core.InputSignal<string>;
132
+ /** Al retrasar una tarea, desplaza las que dependen de ella (fin → inicio). */
133
+ readonly autoSchedule: _angular_core.InputSignalWithTransform<boolean, unknown>;
134
+ /** Sin edición: no se arrastra ni se crean dependencias. */
135
+ readonly readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
136
+ /** Barra con la escala y el botón Hoy. */
137
+ readonly showToolbar: _angular_core.InputSignalWithTransform<boolean, unknown>;
138
+ /** Texto sin tareas. Por defecto, "Sin datos". */
139
+ readonly emptyMessage: _angular_core.InputSignal<string | undefined>;
140
+ readonly ariaLabel: _angular_core.InputSignal<string>;
141
+ /** Una tarea cambió de fechas o de avance (también las desplazadas por la planificación). */
142
+ readonly taskChange: _angular_core.OutputEmitterRef<CbGanttChange>;
143
+ /** Doble clic o Enter sobre una tarea. */
144
+ readonly taskOpen: _angular_core.OutputEmitterRef<CbGanttTask>;
145
+ /** Dependencia creada (`to` depende de `from`). */
146
+ readonly linkAdd: _angular_core.OutputEmitterRef<CbGanttLink>;
147
+ /** Dependencia quitada. */
148
+ readonly linkRemove: _angular_core.OutputEmitterRef<CbGanttLink>;
149
+ protected readonly collapsed: _angular_core.WritableSignal<ReadonlySet<string>>;
150
+ protected readonly selected: _angular_core.WritableSignal<string | null>;
151
+ protected readonly selectedLink: _angular_core.WritableSignal<{
152
+ key: string;
153
+ from: string;
154
+ to: string;
155
+ fromName: string;
156
+ toName: string;
157
+ mid: {
158
+ x: number;
159
+ y: number;
160
+ };
161
+ } | null>;
162
+ protected readonly preview: _angular_core.WritableSignal<Preview | null>;
163
+ protected readonly announcement: _angular_core.WritableSignal<string>;
164
+ private drag;
165
+ private readonly scroller;
166
+ private readonly chart;
167
+ private readonly resolved;
168
+ /** Ancho de la tabla: el indicado o el nombre (14rem) más el de cada columna. */
169
+ protected readonly gridSize: _angular_core.Signal<string>;
170
+ protected readonly rows: _angular_core.Signal<ResolvedTask[]>;
171
+ protected readonly dayWidth: _angular_core.Signal<number>;
172
+ /** Primer y último día del diagrama (con margen, alineados a la unidad de la escala). */
173
+ protected readonly range: _angular_core.Signal<{
174
+ start: Date;
175
+ end: Date;
176
+ days: number;
177
+ }>;
178
+ protected readonly chartWidth: _angular_core.Signal<number>;
179
+ private x;
180
+ /** Unidades de la escala (fila inferior de la cabecera y columnas del fondo). */
181
+ protected readonly units: _angular_core.Signal<Unit[]>;
182
+ /** Fila superior de la cabecera: meses (día y semana) o años (mes). */
183
+ protected readonly topUnits: _angular_core.Signal<Unit[]>;
184
+ protected readonly todayX: _angular_core.Signal<number | null>;
185
+ /** Geometría de las barras (con la vista previa del arrastre). */
186
+ protected readonly bars: _angular_core.Signal<Bar[]>;
187
+ /** Flechas de dependencias entre barras visibles. */
188
+ protected readonly links: _angular_core.Signal<{
189
+ key: string;
190
+ from: string;
191
+ to: string;
192
+ fromName: string;
193
+ toName: string;
194
+ path: string;
195
+ mid: {
196
+ x: number;
197
+ y: number;
198
+ };
199
+ }[]>;
200
+ /** Línea provisional al crear una dependencia. */
201
+ protected readonly linkLine: _angular_core.Signal<string | null>;
202
+ protected scaleLabel(s: CbGanttScale): string;
203
+ protected columnLabel(col: CbGanttColumn): string;
204
+ private dateText;
205
+ protected cellText(r: ResolvedTask, col: CbGanttColumn): string;
206
+ protected barLabel(b: Bar): string;
207
+ protected toggle(id: string): void;
208
+ /** Selecciona la tarea, lleva su barra a la vista y le da el foco. */
209
+ focusBar(id: string): void;
210
+ /** Desplaza el diagrama hasta hoy (centrado en la parte visible). */
211
+ scrollToToday(smooth?: boolean): void;
212
+ constructor();
213
+ private barEl;
214
+ /** Aplica un cambio a una tarea (y a las desplazadas por la planificación) y lo emite. */
215
+ private apply;
216
+ private commit;
217
+ private resolveFresh;
218
+ /** Crea la dependencia `from` → `to` (si no forma un ciclo). */
219
+ addLink(from: string, to: string): boolean;
220
+ /** Quita la dependencia `from` → `to`. */
221
+ removeLink(from: string, to: string): void;
222
+ protected selectLink(link: {
223
+ key: string;
224
+ from: string;
225
+ to: string;
226
+ fromName: string;
227
+ toName: string;
228
+ mid: {
229
+ x: number;
230
+ y: number;
231
+ };
232
+ }): void;
233
+ protected onPointerDown(event: PointerEvent, bar: Bar): void;
234
+ protected onPointerMove(event: PointerEvent): void;
235
+ protected onPointerUp(event: PointerEvent): void;
236
+ protected cancelDrag(): void;
237
+ protected onBarKeydown(event: KeyboardEvent, r: ResolvedTask): void;
238
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbGantt, never>;
239
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbGantt, "cb-gantt", never, { "tasks": { "alias": "tasks"; "required": false; "isSignal": true; }; "scale": { "alias": "scale"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "gridWidth": { "alias": "gridWidth"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "autoSchedule": { "alias": "autoSchedule"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "showToolbar": { "alias": "showToolbar"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "tasks": "tasksChange"; "scale": "scaleChange"; "taskChange": "taskChange"; "taskOpen": "taskOpen"; "linkAdd": "linkAdd"; "linkRemove": "linkRemove"; }, never, never, true, never>;
240
+ }
241
+
242
+ export { CbGantt, autoSchedule as cbGanttAutoSchedule, canLink as cbGanttCanLink };
243
+ export type { CbGanttChange, CbGanttColumn, CbGanttLink, CbGanttScale, CbGanttTask };
244
+ //# sourceMappingURL=caribeng-ui-gantt.d.ts.map
@@ -2,7 +2,7 @@ import * as _angular_core from '@angular/core';
2
2
  import * as _caribeng_ui from '@caribeng/ui';
3
3
 
4
4
  /**
5
- * Header de Caribe Design: cabecera de pantalla con título, subtítulo opcional,
5
+ * Header: cabecera de pantalla con título, subtítulo opcional,
6
6
  * botón de retroceso y una zona de acciones proyectadas.
7
7
  *
8
8
  * @example
@@ -26,4 +26,4 @@ declare class CbHeader {
26
26
  }
27
27
 
28
28
  export { CbHeader };
29
- //# sourceMappingURL=caribeng-ui-caribe-header.d.ts.map
29
+ //# sourceMappingURL=caribeng-ui-header.d.ts.map
@@ -2,7 +2,7 @@ import * as _angular_core from '@angular/core';
2
2
  import * as _caribeng_ui from '@caribeng/ui';
3
3
 
4
4
  /**
5
- * Icon-button de Caribe Design: botón circular con un único icono. Útil para
5
+ * Icon-button: botón circular con un único icono. Útil para
6
6
  * acciones compactas en barras y cabeceras.
7
7
  *
8
8
  * @example
@@ -28,4 +28,4 @@ declare class CbIconButton {
28
28
  }
29
29
 
30
30
  export { CbIconButton };
31
- //# sourceMappingURL=caribeng-ui-caribe-icon-button.d.ts.map
31
+ //# sourceMappingURL=caribeng-ui-icon-button.d.ts.map
@@ -12,4 +12,4 @@ declare class CbIllustration {
12
12
  }
13
13
 
14
14
  export { CbIllustration };
15
- //# sourceMappingURL=caribeng-ui-caribe-illustration.d.ts.map
15
+ //# sourceMappingURL=caribeng-ui-illustration.d.ts.map