@caribeng/ui 22.1.1 → 22.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. package/README.md +48 -8
  2. package/fesm2022/caribeng-ui-accordion.mjs +2 -2
  3. package/fesm2022/caribeng-ui-anchor.mjs +169 -0
  4. package/fesm2022/caribeng-ui-autocomplete.mjs +10 -8
  5. package/fesm2022/caribeng-ui-avatargroup.mjs +9 -3
  6. package/fesm2022/caribeng-ui-blockui.mjs +12 -4
  7. package/fesm2022/caribeng-ui-breadcrumb.mjs +5 -2
  8. package/fesm2022/caribeng-ui-button.mjs +22 -2
  9. package/fesm2022/caribeng-ui-caribe-alert.mjs +5 -2
  10. package/fesm2022/caribeng-ui-caribe-animation-lottie.mjs +6 -3
  11. package/fesm2022/caribeng-ui-caribe-button-group.mjs +6 -3
  12. package/fesm2022/caribeng-ui-caribe-calendar.mjs +11 -6
  13. package/fesm2022/caribeng-ui-caribe-card-content.mjs +6 -3
  14. package/fesm2022/caribeng-ui-caribe-card-move.mjs +29 -7
  15. package/fesm2022/caribeng-ui-caribe-card-select.mjs +56 -14
  16. package/fesm2022/caribeng-ui-caribe-circle-loading.mjs +10 -7
  17. package/fesm2022/caribeng-ui-caribe-coachmark.mjs +42 -19
  18. package/fesm2022/caribeng-ui-caribe-data-table.mjs +15 -9
  19. package/fesm2022/caribeng-ui-caribe-dots-indicator.mjs +38 -5
  20. package/fesm2022/caribeng-ui-caribe-expansion-panel.mjs +16 -5
  21. package/fesm2022/caribeng-ui-caribe-fab-menu.mjs +56 -7
  22. package/fesm2022/caribeng-ui-caribe-file-download.mjs +68 -27
  23. package/fesm2022/caribeng-ui-caribe-file-select.mjs +22 -17
  24. package/fesm2022/caribeng-ui-caribe-float-menu.mjs +6 -3
  25. package/fesm2022/caribeng-ui-caribe-footer.mjs +8 -4
  26. package/fesm2022/caribeng-ui-caribe-header.mjs +6 -3
  27. package/fesm2022/caribeng-ui-caribe-icon-button.mjs +6 -3
  28. package/fesm2022/caribeng-ui-caribe-illustration.mjs +6 -3
  29. package/fesm2022/caribeng-ui-caribe-inline-alert.mjs +5 -2
  30. package/fesm2022/caribeng-ui-caribe-input-search.mjs +14 -10
  31. package/fesm2022/caribeng-ui-caribe-input-select.mjs +12 -10
  32. package/fesm2022/caribeng-ui-caribe-input-token.mjs +61 -11
  33. package/fesm2022/caribeng-ui-caribe-link.mjs +7 -2
  34. package/fesm2022/caribeng-ui-caribe-loader.mjs +8 -5
  35. package/fesm2022/caribeng-ui-caribe-modal.mjs +32 -16
  36. package/fesm2022/caribeng-ui-caribe-off-canvas.mjs +26 -12
  37. package/fesm2022/caribeng-ui-caribe-onboarding.mjs +44 -19
  38. package/fesm2022/caribeng-ui-caribe-pictogram.mjs +6 -3
  39. package/fesm2022/caribeng-ui-caribe-pop-over.mjs +34 -10
  40. package/fesm2022/caribeng-ui-caribe-preloader.mjs +9 -6
  41. package/fesm2022/caribeng-ui-caribe-progress-bar.mjs +5 -2
  42. package/fesm2022/caribeng-ui-caribe-shortcut.mjs +8 -3
  43. package/fesm2022/caribeng-ui-caribe-step-indicator.mjs +12 -5
  44. package/fesm2022/caribeng-ui-caribe-stroke.mjs +6 -3
  45. package/fesm2022/caribeng-ui-caribe-switch.mjs +5 -3
  46. package/fesm2022/caribeng-ui-caribe-tag-button.mjs +1 -1
  47. package/fesm2022/caribeng-ui-caribe-tracker.mjs +5 -2
  48. package/fesm2022/caribeng-ui-caribe-transaction-status.mjs +1 -1
  49. package/fesm2022/caribeng-ui-caribe-voucher.mjs +11 -8
  50. package/fesm2022/caribeng-ui-carousel.mjs +49 -14
  51. package/fesm2022/caribeng-ui-cascadeselect.mjs +22 -8
  52. package/fesm2022/caribeng-ui-chart.mjs +2598 -303
  53. package/fesm2022/caribeng-ui-chip.mjs +9 -4
  54. package/fesm2022/caribeng-ui-chips.mjs +9 -5
  55. package/fesm2022/caribeng-ui-colorpicker.mjs +9 -7
  56. package/fesm2022/caribeng-ui-confirmdialog.mjs +74 -9
  57. package/fesm2022/caribeng-ui-confirmpopup.mjs +134 -9
  58. package/fesm2022/caribeng-ui-contextmenu.mjs +6 -3
  59. package/fesm2022/caribeng-ui-dataview.mjs +211 -6
  60. package/fesm2022/caribeng-ui-datepicker.mjs +1630 -393
  61. package/fesm2022/caribeng-ui-descriptions.mjs +124 -0
  62. package/fesm2022/caribeng-ui-dialog.mjs +10 -7
  63. package/fesm2022/caribeng-ui-dock.mjs +6 -3
  64. package/fesm2022/caribeng-ui-drawer.mjs +10 -7
  65. package/fesm2022/caribeng-ui-dynamicdialog.mjs +210 -6
  66. package/fesm2022/caribeng-ui-editor.mjs +4392 -243
  67. package/fesm2022/caribeng-ui-empty.mjs +80 -0
  68. package/fesm2022/caribeng-ui-file-card.mjs +2 -2
  69. package/fesm2022/caribeng-ui-fileupload.mjs +96 -19
  70. package/fesm2022/caribeng-ui-floatlabel.mjs +4 -2
  71. package/fesm2022/caribeng-ui-folder-card.mjs +10 -3
  72. package/fesm2022/caribeng-ui-galleria.mjs +76 -45
  73. package/fesm2022/caribeng-ui-image.mjs +52 -29
  74. package/fesm2022/caribeng-ui-inplace.mjs +22 -6
  75. package/fesm2022/caribeng-ui-input-number.mjs +9 -7
  76. package/fesm2022/caribeng-ui-inputgroup.mjs +2 -2
  77. package/fesm2022/caribeng-ui-inputmask.mjs +14 -11
  78. package/fesm2022/caribeng-ui-inputotp.mjs +12 -6
  79. package/fesm2022/caribeng-ui-keyfilter.mjs +72 -0
  80. package/fesm2022/caribeng-ui-listbox.mjs +13 -11
  81. package/fesm2022/caribeng-ui-megamenu.mjs +222 -30
  82. package/fesm2022/caribeng-ui-menu.mjs +11 -5
  83. package/fesm2022/caribeng-ui-menubar.mjs +10 -5
  84. package/fesm2022/caribeng-ui-message.mjs +7 -4
  85. package/fesm2022/caribeng-ui-metergroup.mjs +29 -11
  86. package/fesm2022/caribeng-ui-multiselect.mjs +399 -97
  87. package/fesm2022/caribeng-ui-orderlist.mjs +230 -11
  88. package/fesm2022/caribeng-ui-organizationchart.mjs +12 -7
  89. package/fesm2022/caribeng-ui-paginator.mjs +18 -15
  90. package/fesm2022/caribeng-ui-panel.mjs +5 -2
  91. package/fesm2022/caribeng-ui-panelmenu.mjs +6 -3
  92. package/fesm2022/caribeng-ui-password.mjs +8 -6
  93. package/fesm2022/caribeng-ui-pdfviewer.mjs +1553 -0
  94. package/fesm2022/caribeng-ui-picklist.mjs +251 -14
  95. package/fesm2022/caribeng-ui-pricing.mjs +17 -14
  96. package/fesm2022/caribeng-ui-rating.mjs +7 -3
  97. package/fesm2022/caribeng-ui-repeater.mjs +223 -0
  98. package/fesm2022/caribeng-ui-result.mjs +91 -0
  99. package/fesm2022/caribeng-ui-scrollpanel.mjs +6 -3
  100. package/fesm2022/caribeng-ui-scrolltop.mjs +6 -3
  101. package/fesm2022/caribeng-ui-select.mjs +379 -87
  102. package/fesm2022/caribeng-ui-selectbutton.mjs +2 -2
  103. package/fesm2022/caribeng-ui-slider.mjs +171 -75
  104. package/fesm2022/caribeng-ui-speeddial.mjs +7 -4
  105. package/fesm2022/caribeng-ui-spinner.mjs +5 -2
  106. package/fesm2022/caribeng-ui-splitbutton.mjs +163 -0
  107. package/fesm2022/caribeng-ui-splitter.mjs +5 -2
  108. package/fesm2022/caribeng-ui-statistic.mjs +183 -0
  109. package/fesm2022/caribeng-ui-stepper.mjs +8 -5
  110. package/fesm2022/caribeng-ui-steps.mjs +6 -3
  111. package/fesm2022/caribeng-ui-table.mjs +708 -82
  112. package/fesm2022/caribeng-ui-tabmenu.mjs +6 -3
  113. package/fesm2022/caribeng-ui-tag.mjs +2 -2
  114. package/fesm2022/caribeng-ui-terminal.mjs +45 -9
  115. package/fesm2022/caribeng-ui-themetoggle.mjs +82 -0
  116. package/fesm2022/caribeng-ui-tieredmenu.mjs +9 -6
  117. package/fesm2022/caribeng-ui-timeline.mjs +175 -6
  118. package/fesm2022/caribeng-ui-toast.mjs +7 -4
  119. package/fesm2022/caribeng-ui-togglebutton.mjs +8 -6
  120. package/fesm2022/caribeng-ui-toolbar.mjs +6 -3
  121. package/fesm2022/caribeng-ui-tree.mjs +302 -6
  122. package/fesm2022/caribeng-ui-treeselect.mjs +26 -10
  123. package/fesm2022/caribeng-ui-treetable.mjs +269 -6
  124. package/fesm2022/caribeng-ui-virtualscroller.mjs +123 -10
  125. package/fesm2022/caribeng-ui.mjs +829 -6
  126. package/package.json +53 -3
  127. package/schematics/collection.json +10 -0
  128. package/schematics/ng-add/index.js +125 -0
  129. package/schematics/ng-add/schema.js +2 -0
  130. package/schematics/ng-add/schema.json +66 -0
  131. package/styles/caribeng.css +380 -0
  132. package/styles/scss/_mixins.scss +46 -0
  133. package/styles/scss/_overlay.scss +15 -0
  134. package/styles/scss/_tokens.scss +267 -0
  135. package/styles/scss/_utilities.scss +73 -0
  136. package/styles/scss/_variables.scss +33 -0
  137. package/styles/scss/index.scss +16 -0
  138. package/types/caribeng-ui-anchor.d.ts +50 -0
  139. package/types/caribeng-ui-autocomplete.d.ts +4 -2
  140. package/types/caribeng-ui-avatargroup.d.ts +3 -1
  141. package/types/caribeng-ui-blockui.d.ts +9 -4
  142. package/types/caribeng-ui-breadcrumb.d.ts +3 -0
  143. package/types/caribeng-ui-button.d.ts +9 -1
  144. package/types/caribeng-ui-caribe-alert.d.ts +3 -0
  145. package/types/caribeng-ui-caribe-animation-lottie.d.ts +4 -1
  146. package/types/caribeng-ui-caribe-button-group.d.ts +4 -1
  147. package/types/caribeng-ui-caribe-calendar.d.ts +5 -1
  148. package/types/caribeng-ui-caribe-card-content.d.ts +4 -1
  149. package/types/caribeng-ui-caribe-card-move.d.ts +13 -13
  150. package/types/caribeng-ui-caribe-card-select.d.ts +10 -1
  151. package/types/caribeng-ui-caribe-circle-loading.d.ts +4 -1
  152. package/types/caribeng-ui-caribe-coachmark.d.ts +6 -0
  153. package/types/caribeng-ui-caribe-data-table.d.ts +7 -2
  154. package/types/caribeng-ui-caribe-dots-indicator.d.ts +9 -0
  155. package/types/caribeng-ui-caribe-expansion-panel.d.ts +7 -10
  156. package/types/caribeng-ui-caribe-fab-menu.d.ts +10 -1
  157. package/types/caribeng-ui-caribe-file-download.d.ts +8 -10
  158. package/types/caribeng-ui-caribe-file-select.d.ts +7 -1
  159. package/types/caribeng-ui-caribe-float-menu.d.ts +4 -1
  160. package/types/caribeng-ui-caribe-header.d.ts +3 -0
  161. package/types/caribeng-ui-caribe-icon-button.d.ts +4 -1
  162. package/types/caribeng-ui-caribe-illustration.d.ts +4 -1
  163. package/types/caribeng-ui-caribe-inline-alert.d.ts +3 -0
  164. package/types/caribeng-ui-caribe-input-search.d.ts +4 -2
  165. package/types/caribeng-ui-caribe-input-select.d.ts +4 -2
  166. package/types/caribeng-ui-caribe-input-token.d.ts +16 -1
  167. package/types/caribeng-ui-caribe-link.d.ts +3 -0
  168. package/types/caribeng-ui-caribe-loader.d.ts +4 -1
  169. package/types/caribeng-ui-caribe-modal.d.ts +7 -10
  170. package/types/caribeng-ui-caribe-off-canvas.d.ts +6 -1
  171. package/types/caribeng-ui-caribe-onboarding.d.ts +6 -0
  172. package/types/caribeng-ui-caribe-pictogram.d.ts +4 -1
  173. package/types/caribeng-ui-caribe-pop-over.d.ts +7 -10
  174. package/types/caribeng-ui-caribe-preloader.d.ts +4 -1
  175. package/types/caribeng-ui-caribe-progress-bar.d.ts +3 -0
  176. package/types/caribeng-ui-caribe-shortcut.d.ts +3 -1
  177. package/types/caribeng-ui-caribe-step-indicator.d.ts +6 -0
  178. package/types/caribeng-ui-caribe-stroke.d.ts +4 -1
  179. package/types/caribeng-ui-caribe-switch.d.ts +3 -1
  180. package/types/caribeng-ui-caribe-tracker.d.ts +3 -0
  181. package/types/caribeng-ui-caribe-voucher.d.ts +5 -2
  182. package/types/caribeng-ui-carousel.d.ts +10 -1
  183. package/types/caribeng-ui-cascadeselect.d.ts +7 -2
  184. package/types/caribeng-ui-chart.d.ts +469 -44
  185. package/types/caribeng-ui-chip.d.ts +6 -0
  186. package/types/caribeng-ui-chips.d.ts +6 -2
  187. package/types/caribeng-ui-colorpicker.d.ts +3 -1
  188. package/types/caribeng-ui-confirmdialog.d.ts +25 -6
  189. package/types/caribeng-ui-confirmpopup.d.ts +37 -5
  190. package/types/caribeng-ui-contextmenu.d.ts +4 -1
  191. package/types/caribeng-ui-dataview.d.ts +63 -5
  192. package/types/caribeng-ui-datepicker.d.ts +186 -21
  193. package/types/caribeng-ui-descriptions.d.ts +63 -0
  194. package/types/caribeng-ui-dialog.d.ts +4 -1
  195. package/types/caribeng-ui-dock.d.ts +4 -1
  196. package/types/caribeng-ui-drawer.d.ts +4 -1
  197. package/types/caribeng-ui-dynamicdialog.d.ts +93 -3
  198. package/types/caribeng-ui-editor.d.ts +486 -13
  199. package/types/caribeng-ui-empty.d.ts +34 -0
  200. package/types/caribeng-ui-file-card.d.ts +1 -1
  201. package/types/caribeng-ui-fileupload.d.ts +27 -4
  202. package/types/caribeng-ui-folder-card.d.ts +4 -1
  203. package/types/caribeng-ui-galleria.d.ts +9 -0
  204. package/types/caribeng-ui-image.d.ts +10 -0
  205. package/types/caribeng-ui-inplace.d.ts +8 -0
  206. package/types/caribeng-ui-input-number.d.ts +3 -1
  207. package/types/caribeng-ui-inputmask.d.ts +5 -0
  208. package/types/caribeng-ui-inputotp.d.ts +7 -2
  209. package/types/caribeng-ui-keyfilter.d.ts +30 -0
  210. package/types/caribeng-ui-listbox.d.ts +5 -3
  211. package/types/caribeng-ui-megamenu.d.ts +26 -2
  212. package/types/caribeng-ui-menu.d.ts +7 -2
  213. package/types/caribeng-ui-menubar.d.ts +5 -1
  214. package/types/caribeng-ui-message.d.ts +3 -0
  215. package/types/caribeng-ui-metergroup.d.ts +9 -1
  216. package/types/caribeng-ui-multiselect.d.ts +71 -10
  217. package/types/caribeng-ui-orderlist.d.ts +58 -6
  218. package/types/caribeng-ui-organizationchart.d.ts +7 -1
  219. package/types/caribeng-ui-paginator.d.ts +3 -0
  220. package/types/caribeng-ui-panel.d.ts +3 -0
  221. package/types/caribeng-ui-panelmenu.d.ts +4 -1
  222. package/types/caribeng-ui-password.d.ts +4 -2
  223. package/types/caribeng-ui-pdfviewer.d.ts +258 -0
  224. package/types/caribeng-ui-picklist.d.ts +67 -7
  225. package/types/caribeng-ui-pricing.d.ts +8 -5
  226. package/types/caribeng-ui-rating.d.ts +6 -2
  227. package/types/caribeng-ui-repeater.d.ts +79 -0
  228. package/types/caribeng-ui-result.d.ts +35 -0
  229. package/types/caribeng-ui-scrollpanel.d.ts +4 -1
  230. package/types/caribeng-ui-scrolltop.d.ts +4 -1
  231. package/types/caribeng-ui-select.d.ts +73 -9
  232. package/types/caribeng-ui-slider.d.ts +63 -10
  233. package/types/caribeng-ui-speeddial.d.ts +5 -2
  234. package/types/caribeng-ui-spinner.d.ts +3 -0
  235. package/types/caribeng-ui-splitbutton.d.ts +49 -0
  236. package/types/caribeng-ui-splitter.d.ts +3 -0
  237. package/types/caribeng-ui-statistic.d.ts +65 -0
  238. package/types/caribeng-ui-stepper.d.ts +3 -0
  239. package/types/caribeng-ui-steps.d.ts +4 -1
  240. package/types/caribeng-ui-table.d.ts +184 -16
  241. package/types/caribeng-ui-tabmenu.d.ts +4 -1
  242. package/types/caribeng-ui-terminal.d.ts +10 -0
  243. package/types/caribeng-ui-themetoggle.d.ts +32 -0
  244. package/types/caribeng-ui-tieredmenu.d.ts +5 -2
  245. package/types/caribeng-ui-timeline.d.ts +63 -4
  246. package/types/caribeng-ui-toast.d.ts +3 -0
  247. package/types/caribeng-ui-togglebutton.d.ts +5 -3
  248. package/types/caribeng-ui-toolbar.d.ts +7 -4
  249. package/types/caribeng-ui-tree.d.ts +76 -4
  250. package/types/caribeng-ui-treeselect.d.ts +10 -2
  251. package/types/caribeng-ui-treetable.d.ts +68 -4
  252. package/types/caribeng-ui-virtualscroller.d.ts +45 -5
  253. package/types/caribeng-ui.d.ts +501 -12
@@ -1,14 +1,66 @@
1
1
  import * as _angular_core from '@angular/core';
2
+ import { TemplateRef } from '@angular/core';
3
+ import * as _caribeng_ui from '@caribeng/ui';
2
4
 
5
+ /** Contexto de `<ng-template cbOrderListItem let-item let-index="index">`. */
6
+ interface CbOrderListItemContext<T = any> {
7
+ $implicit: T;
8
+ index: number;
9
+ }
10
+ /** Plantilla de cada elemento de un `<cb-orderlist>`. */
11
+ declare class CbOrderListItemTemplate {
12
+ readonly template: TemplateRef<CbOrderListItemContext<any>>;
13
+ static ngTemplateContextGuard(_dir: CbOrderListItemTemplate, ctx: unknown): ctx is CbOrderListItemContext;
14
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbOrderListItemTemplate, never>;
15
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CbOrderListItemTemplate, "ng-template[cbOrderListItem]", never, {}, {}, never, never, true, never>;
16
+ }
17
+ /** Evento de reordenación. */
18
+ interface CbOrderListReorderEvent {
19
+ from: number;
20
+ to: number;
21
+ value: readonly unknown[];
22
+ }
23
+ /**
24
+ * Lista reordenable de CaribeNG. Selecciona un elemento y muévelo con los
25
+ * botones o con Alt + ↑/↓.
26
+ *
27
+ * @example
28
+ * ```html
29
+ * <cb-orderlist [(value)]="pasos" header="Orden de aprobación">
30
+ * <ng-template cbOrderListItem let-paso>{{ paso.nombre }}</ng-template>
31
+ * </cb-orderlist>
32
+ * ```
33
+ */
3
34
  declare class CbOrderList {
35
+ protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
36
+ private readonly host;
37
+ private readonly injector;
38
+ protected readonly headerId: string;
39
+ /** Elementos, en orden (two-way). */
4
40
  readonly value: _angular_core.ModelSignal<readonly unknown[]>;
5
- readonly ariaLabel: _angular_core.InputSignal<string>;
6
- protected readonly selected: _angular_core.WritableSignal<unknown>;
7
- protected index(): number;
8
- protected move(direction: number): void;
41
+ /** Título visible de la lista (también la nombra para el lector de pantalla). */
42
+ readonly header: _angular_core.InputSignal<string>;
43
+ /** Nombre accesible cuando no hay `header`. Por defecto, el del idioma activo. */
44
+ readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
45
+ /** Se emite tras mover un elemento. */
46
+ readonly reorder: _angular_core.OutputEmitterRef<CbOrderListReorderEvent>;
47
+ protected readonly itemTemplate: _angular_core.Signal<CbOrderListItemTemplate | undefined>;
48
+ /** Índice seleccionado (se guarda por posición: admite elementos repetidos). */
49
+ protected readonly selectedIndex: _angular_core.WritableSignal<number>;
50
+ protected readonly focusedIndex: _angular_core.WritableSignal<number>;
51
+ protected readonly tabbableIndex: _angular_core.Signal<number>;
52
+ protected readonly listLabel: _angular_core.Signal<string>;
53
+ protected readonly canMoveUp: _angular_core.Signal<boolean>;
54
+ protected readonly canMoveDown: _angular_core.Signal<boolean>;
55
+ protected select(index: number): void;
56
+ protected moveBy(delta: number): void;
57
+ protected moveTo(to: number): void;
58
+ protected onKeydown(event: KeyboardEvent): void;
59
+ private focusItem;
9
60
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbOrderList, never>;
10
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbOrderList, "cb-orderlist", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
61
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbOrderList, "cb-orderlist", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "header": { "alias": "header"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "reorder": "reorder"; }, ["itemTemplate"], never, true, never>;
11
62
  }
12
63
 
13
- export { CbOrderList };
64
+ export { CbOrderList, CbOrderListItemTemplate };
65
+ export type { CbOrderListItemContext, CbOrderListReorderEvent };
14
66
  //# sourceMappingURL=caribeng-ui-orderlist.d.ts.map
@@ -1,4 +1,6 @@
1
1
  import * as _angular_core from '@angular/core';
2
+ import * as _caribeng_ui from '@caribeng/ui';
3
+ import { cbFormat } from '@caribeng/ui';
2
4
 
3
5
  interface CbOrganizationChartNode {
4
6
  key: string;
@@ -9,9 +11,13 @@ interface CbOrganizationChartNode {
9
11
  children?: readonly CbOrganizationChartNode[];
10
12
  }
11
13
  declare class CbOrganizationChart {
14
+ /** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
15
+ protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
16
+ /** Rellena `{0}`, `{1}`… de un texto traducido. */
17
+ protected readonly fmt: typeof cbFormat;
12
18
  readonly value: _angular_core.InputSignal<readonly CbOrganizationChartNode[]>;
13
19
  readonly selection: _angular_core.ModelSignal<CbOrganizationChartNode | null>;
14
- readonly ariaLabel: _angular_core.InputSignal<string>;
20
+ readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
15
21
  protected readonly expanded: _angular_core.WritableSignal<ReadonlySet<string>>;
16
22
  protected toggle(key: string): void;
17
23
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbOrganizationChart, never>;
@@ -1,4 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
+ import * as _caribeng_ui from '@caribeng/ui';
2
3
 
3
4
  interface CbPaginatorState {
4
5
  /** Índice del primer registro de la página. */
@@ -21,6 +22,8 @@ interface CbPaginatorState {
21
22
  * ```
22
23
  */
23
24
  declare class CbPaginator {
25
+ /** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
26
+ protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
24
27
  readonly totalRecords: _angular_core.InputSignal<number>;
25
28
  readonly rows: _angular_core.ModelSignal<number>;
26
29
  readonly first: _angular_core.ModelSignal<number>;
@@ -1,4 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
+ import * as _caribeng_ui from '@caribeng/ui';
2
3
 
3
4
  /**
4
5
  * Panel de CaribeNG: contenedor con encabezado, cuerpo colapsable opcional y pie.
@@ -12,6 +13,8 @@ import * as _angular_core from '@angular/core';
12
13
  * ```
13
14
  */
14
15
  declare class CbPanel {
16
+ /** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
17
+ protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
15
18
  private readonly uid;
16
19
  /** Título mostrado en la cabecera del panel. */
17
20
  readonly header: _angular_core.InputSignal<string>;
@@ -1,4 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
+ import * as _caribeng_ui from '@caribeng/ui';
2
3
 
3
4
  interface CbPanelMenuItem {
4
5
  label: string;
@@ -9,9 +10,11 @@ interface CbPanelMenuItem {
9
10
  }
10
11
  /** Vertical menu with collapsible sections. */
11
12
  declare class CbPanelMenu {
13
+ /** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
14
+ protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
12
15
  private readonly uid;
13
16
  readonly items: _angular_core.InputSignal<readonly CbPanelMenuItem[]>;
14
- readonly ariaLabel: _angular_core.InputSignal<string>;
17
+ readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
15
18
  readonly multiple: _angular_core.InputSignal<boolean>;
16
19
  readonly itemSelect: _angular_core.OutputEmitterRef<CbPanelMenuItem>;
17
20
  private readonly openItems;
@@ -1,5 +1,5 @@
1
- import * as _caribeng_ui from '@caribeng/ui';
2
1
  import * as _angular_core from '@angular/core';
2
+ import * as _caribeng_ui from '@caribeng/ui';
3
3
  import { ControlValueAccessor } from '@angular/forms';
4
4
 
5
5
  type CbPasswordSize = 'sm' | 'md' | 'lg';
@@ -9,6 +9,8 @@ type CbPasswordStrength = 'none' | 'weak' | 'medium' | 'strong';
9
9
  * indicador de fortaleza e integración completa con Angular Forms (CVA).
10
10
  */
11
11
  declare class CbPassword implements ControlValueAccessor {
12
+ /** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
13
+ protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
12
14
  readonly placeholder: _angular_core.InputSignal<string>;
13
15
  readonly disabled: _angular_core.InputSignal<boolean>;
14
16
  readonly invalid: _angular_core.InputSignal<boolean>;
@@ -25,7 +27,7 @@ declare class CbPassword implements ControlValueAccessor {
25
27
  protected readonly isDisabled: _angular_core.Signal<boolean>;
26
28
  readonly strengthScore: _angular_core.Signal<0 | 1 | 2 | 3>;
27
29
  readonly strength: _angular_core.Signal<CbPasswordStrength>;
28
- protected readonly strengthLabel: _angular_core.Signal<"" | "Fortaleza: Débil" | "Fortaleza: Media" | "Fortaleza: Fuerte">;
30
+ protected readonly strengthLabel: _angular_core.Signal<string>;
29
31
  private onChange;
30
32
  private onTouched;
31
33
  toggleReveal(): void;
@@ -0,0 +1,258 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { InjectionToken, EnvironmentProviders } from '@angular/core';
3
+ import * as _caribeng_ui from '@caribeng/ui';
4
+ import { cbFormat } from '@caribeng/ui';
5
+ import * as pdfjs_dist from 'pdfjs-dist';
6
+
7
+ /** Módulo de pdf.js (`pdfjs-dist`) que usa el visor. */
8
+ type CbPdfJs = typeof pdfjs_dist;
9
+ /** Documento abierto por pdf.js. */
10
+ type CbPdfDocument = pdfjs_dist.PDFDocumentProxy;
11
+ /** Página de un documento de pdf.js. */
12
+ type CbPdfPage = pdfjs_dist.PDFPageProxy;
13
+ /** Origen del documento: URL, bytes o un `Blob` / `File`. */
14
+ type CbPdfSource = string | URL | ArrayBuffer | Uint8Array | Blob;
15
+ /** Opciones globales del visor (`provideCbPdfViewer`). */
16
+ interface CbPdfViewerOptions {
17
+ /**
18
+ * URL del worker de pdf.js. Por defecto `pdfjs/build/pdf.worker.min.mjs`,
19
+ * relativa al `<base href>` (ver la configuración de assets en la documentación).
20
+ */
21
+ workerSrc?: string;
22
+ /**
23
+ * Carpeta con los recursos de pdf.js (`cmaps/`, `standard_fonts/`, `wasm/`,
24
+ * `iccs/`). Por defecto `pdfjs/`.
25
+ */
26
+ assetsUrl?: string;
27
+ /**
28
+ * Carga de pdf.js. Por defecto su build `legacy` (se descarga al abrir el primer PDF):
29
+ * la build moderna usa APIs que los navegadores estables aún no tienen
30
+ * (`Map.prototype.getOrInsertComputed`, `Math.sumPrecise`) y la legacy las incluye.
31
+ */
32
+ loader?: () => Promise<CbPdfJs>;
33
+ }
34
+ declare const CB_PDF_VIEWER_OPTIONS: InjectionToken<CbPdfViewerOptions>;
35
+ /**
36
+ * Configura el visor de PDF (worker, recursos y carga de pdf.js).
37
+ *
38
+ * @example
39
+ * ```ts
40
+ * bootstrapApplication(App, {
41
+ * providers: [provideCaribeNG(), provideCbPdfViewer({ workerSrc: '/static/pdf.worker.min.mjs' })],
42
+ * });
43
+ * ```
44
+ */
45
+ declare function provideCbPdfViewer(options: CbPdfViewerOptions): EnvironmentProviders;
46
+ /** Recursos que pdf.js necesita, ya resueltos como URLs absolutas. */
47
+ interface CbPdfResources {
48
+ cMapUrl: string;
49
+ standardFontDataUrl: string;
50
+ wasmUrl: string;
51
+ iccUrl: string;
52
+ }
53
+ /**
54
+ * Carga pdf.js una sola vez y configura su worker. Las URLs se resuelven contra
55
+ * el `<base href>` del documento: el worker de pdf.js las pediría relativas a
56
+ * su propio script.
57
+ */
58
+ declare class CbPdfEngine {
59
+ private readonly options;
60
+ private readonly document;
61
+ private pdfjs?;
62
+ load(): Promise<CbPdfJs>;
63
+ resources(): CbPdfResources;
64
+ /**
65
+ * Resuelve una URL contra el `<base href>`, como Angular y `<img>`; pdf.js
66
+ * la resolvería contra la ruta actual (`/components/visor/doc.pdf`).
67
+ */
68
+ resolve(url: string | URL): string;
69
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbPdfEngine, never>;
70
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<CbPdfEngine>;
71
+ }
72
+
73
+ /** Posición dentro del texto de una página: elemento de texto de pdf.js y desplazamiento. */
74
+ interface CbPdfTextPosition {
75
+ item: number;
76
+ offset: number;
77
+ }
78
+ /** Coincidencia de búsqueda. `end.offset` es exclusivo. */
79
+ interface CbPdfMatch {
80
+ page: number;
81
+ start: CbPdfTextPosition;
82
+ end: CbPdfTextPosition;
83
+ }
84
+
85
+ /** Zoom: factor (1 = 100 %), ajustar al ancho o página completa. */
86
+ type CbPdfZoom = number | 'page-width' | 'page-fit';
87
+ /** Giro del documento, en grados. */
88
+ type CbPdfRotation = 0 | 90 | 180 | 270;
89
+ type ViewerState = 'idle' | 'loading' | 'password' | 'ready' | 'error';
90
+ /**
91
+ * Visor de PDF sobre [pdf.js](https://mozilla.github.io/pdf.js/) (`pdfjs-dist`,
92
+ * dependencia opcional que se carga al abrir el primer documento).
93
+ *
94
+ * Renderiza las páginas a medida que se ven, con texto seleccionable y
95
+ * legible por lectores de pantalla, búsqueda (ignora tildes y mayúsculas),
96
+ * miniaturas, zoom, giro, descarga, impresión y documentos con contraseña.
97
+ *
98
+ * @example
99
+ * ```html
100
+ * <cb-pdf-viewer src="/docs/extracto.pdf" [(page)]="pagina" zoom="page-width" />
101
+ * ```
102
+ */
103
+ declare class CbPdfViewer {
104
+ /** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
105
+ protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
106
+ protected readonly format: typeof cbFormat;
107
+ /** Documento: URL, `ArrayBuffer`, `Uint8Array`, `Blob` o `File`. */
108
+ readonly src: _angular_core.InputSignal<CbPdfSource | null | undefined>;
109
+ /** Nombre del archivo al descargar (por defecto, el de la URL o del `File`). */
110
+ readonly fileName: _angular_core.InputSignal<string | undefined>;
111
+ /** Contraseña para abrir el documento sin pedirla. */
112
+ readonly password: _angular_core.InputSignal<string | undefined>;
113
+ /** Envía cookies en peticiones a otro origen. */
114
+ readonly withCredentials: _angular_core.InputSignalWithTransform<boolean, unknown>;
115
+ /** Cabeceras HTTP para descargar el documento (p. ej. `Authorization`). */
116
+ readonly httpHeaders: _angular_core.InputSignal<Record<string, string> | undefined>;
117
+ /** Página actual (desde 1). */
118
+ readonly page: _angular_core.ModelSignal<number>;
119
+ readonly zoom: _angular_core.ModelSignal<CbPdfZoom>;
120
+ readonly rotation: _angular_core.ModelSignal<CbPdfRotation>;
121
+ /** Panel de miniaturas abierto. */
122
+ readonly sidebar: _angular_core.ModelSignal<boolean>;
123
+ readonly showToolbar: _angular_core.InputSignalWithTransform<boolean, unknown>;
124
+ readonly showSearch: _angular_core.InputSignalWithTransform<boolean, unknown>;
125
+ readonly showThumbnails: _angular_core.InputSignalWithTransform<boolean, unknown>;
126
+ readonly showRotate: _angular_core.InputSignalWithTransform<boolean, unknown>;
127
+ readonly downloadable: _angular_core.InputSignalWithTransform<boolean, unknown>;
128
+ readonly printable: _angular_core.InputSignalWithTransform<boolean, unknown>;
129
+ /** Nombre accesible del visor (por defecto, "Visor de PDF"). */
130
+ readonly ariaLabel: _angular_core.InputSignal<string>;
131
+ /** Documento abierto. */
132
+ readonly loaded: _angular_core.OutputEmitterRef<{
133
+ numPages: number;
134
+ }>;
135
+ /** No se pudo abrir el documento. */
136
+ readonly loadError: _angular_core.OutputEmitterRef<unknown>;
137
+ private readonly engine;
138
+ private readonly document;
139
+ private readonly injector;
140
+ private readonly isBrowser;
141
+ protected readonly uid: string;
142
+ protected readonly state: _angular_core.WritableSignal<ViewerState>;
143
+ protected readonly progress: _angular_core.WritableSignal<number | null>;
144
+ protected readonly passwordIncorrect: _angular_core.WritableSignal<boolean>;
145
+ protected readonly printProgress: _angular_core.WritableSignal<{
146
+ done: number;
147
+ total: number;
148
+ } | null>;
149
+ protected readonly numPages: _angular_core.WritableSignal<number>;
150
+ private readonly sizes;
151
+ private readonly box;
152
+ protected readonly query: _angular_core.WritableSignal<string>;
153
+ protected readonly matches: _angular_core.WritableSignal<CbPdfMatch[]>;
154
+ protected readonly matchIndex: _angular_core.WritableSignal<number>;
155
+ protected readonly searching: _angular_core.WritableSignal<boolean>;
156
+ protected readonly zoomLevels: number[];
157
+ private readonly viewport;
158
+ private readonly pageEls;
159
+ private readonly thumbEls;
160
+ private readonly searchInput;
161
+ private readonly passwordInput;
162
+ /** Factor de zoom efectivo (1 = 100 %). */
163
+ readonly scale: _angular_core.Signal<number>;
164
+ /** Tamaño de cada página en píxeles CSS con el zoom y el giro actuales. */
165
+ protected readonly pageBoxes: _angular_core.Signal<{
166
+ width: number;
167
+ height: number;
168
+ scaleFactor: number;
169
+ userUnit: number;
170
+ }[]>;
171
+ protected readonly thumbBoxes: _angular_core.Signal<{
172
+ width: number;
173
+ height: number;
174
+ }[]>;
175
+ /** Valor del selector de zoom. */
176
+ protected readonly zoomValue: _angular_core.Signal<string>;
177
+ protected readonly customZoom: _angular_core.Signal<number | null>;
178
+ protected readonly searchStatus: _angular_core.Signal<string>;
179
+ private pdfjs?;
180
+ private pdf?;
181
+ private loadingTask?;
182
+ private passwordCallback?;
183
+ private loadToken;
184
+ private searchToken;
185
+ private searchTimer?;
186
+ private readonly pages;
187
+ private readonly texts;
188
+ private readonly indexes;
189
+ private readonly rendered;
190
+ private readonly thumbs;
191
+ private readonly visible;
192
+ private readonly visibleThumbs;
193
+ private pageObserver?;
194
+ private thumbObserver?;
195
+ private resizeObserver?;
196
+ /** Página que se ve al desplazarse (distingue el scroll del usuario de un cambio de `page`). */
197
+ private visiblePage;
198
+ private scrollFrame;
199
+ private scrollToMatch;
200
+ constructor();
201
+ goToPage(page: number): void;
202
+ previousPage(): void;
203
+ nextPage(): void;
204
+ zoomIn(): void;
205
+ zoomOut(): void;
206
+ /** Gira 90° a la derecha (o a la izquierda con `-1`). */
207
+ rotate(direction?: 1 | -1): void;
208
+ /** Busca en todo el documento; resalta y lleva a la primera coincidencia. */
209
+ search(query: string): Promise<void>;
210
+ findNext(): void;
211
+ findPrevious(): void;
212
+ /** Descarga el documento original. */
213
+ download(): Promise<void>;
214
+ /** Imprime el documento (no la página de la aplicación). */
215
+ print(): Promise<void>;
216
+ private open;
217
+ protected submitPassword(event: Event, value: string): void;
218
+ /** Lee el tamaño real de todas las páginas (pueden ser distintas de la primera). */
219
+ private measurePages;
220
+ private close;
221
+ private getPage;
222
+ private textContent;
223
+ private textIndex;
224
+ /** Observa qué páginas están cerca de la vista para renderizar solo esas. */
225
+ private observePages;
226
+ private renderVisible;
227
+ private renderPage;
228
+ private unrender;
229
+ private observeThumbs;
230
+ private renderThumbs;
231
+ private renderThumb;
232
+ private selectMatch;
233
+ private refreshHighlights;
234
+ private highlightPage;
235
+ protected onSearchInput(value: string): void;
236
+ protected onSearchKeydown(event: KeyboardEvent, value: string): void;
237
+ protected onScroll(): void;
238
+ private mostVisiblePage;
239
+ private scrollToPage;
240
+ private readAnchor;
241
+ private restoreAnchor;
242
+ private observeResize;
243
+ private pageEl;
244
+ protected onPageInput(event: Event): void;
245
+ protected onZoomSelect(value: string): void;
246
+ protected onThumbKeydown(event: KeyboardEvent, n: number): void;
247
+ protected onHostKeydown(event: KeyboardEvent): void;
248
+ protected onWheel(event: WheelEvent): void;
249
+ protected percent(zoom: number): string;
250
+ private downloadName;
251
+ private rotatedPoints;
252
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbPdfViewer, never>;
253
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbPdfViewer, "cb-pdf-viewer", never, { "src": { "alias": "src"; "required": false; "isSignal": true; }; "fileName": { "alias": "fileName"; "required": false; "isSignal": true; }; "password": { "alias": "password"; "required": false; "isSignal": true; }; "withCredentials": { "alias": "withCredentials"; "required": false; "isSignal": true; }; "httpHeaders": { "alias": "httpHeaders"; "required": false; "isSignal": true; }; "page": { "alias": "page"; "required": false; "isSignal": true; }; "zoom": { "alias": "zoom"; "required": false; "isSignal": true; }; "rotation": { "alias": "rotation"; "required": false; "isSignal": true; }; "sidebar": { "alias": "sidebar"; "required": false; "isSignal": true; }; "showToolbar": { "alias": "showToolbar"; "required": false; "isSignal": true; }; "showSearch": { "alias": "showSearch"; "required": false; "isSignal": true; }; "showThumbnails": { "alias": "showThumbnails"; "required": false; "isSignal": true; }; "showRotate": { "alias": "showRotate"; "required": false; "isSignal": true; }; "downloadable": { "alias": "downloadable"; "required": false; "isSignal": true; }; "printable": { "alias": "printable"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "page": "pageChange"; "zoom": "zoomChange"; "rotation": "rotationChange"; "sidebar": "sidebarChange"; "loaded": "loaded"; "loadError": "loadError"; }, never, never, true, never>;
254
+ }
255
+
256
+ export { CB_PDF_VIEWER_OPTIONS, CbPdfEngine, CbPdfViewer, provideCbPdfViewer };
257
+ export type { CbPdfDocument, CbPdfJs, CbPdfMatch, CbPdfPage, CbPdfRotation, CbPdfSource, CbPdfTextPosition, CbPdfViewerOptions, CbPdfZoom };
258
+ //# sourceMappingURL=caribeng-ui-pdfviewer.d.ts.map
@@ -1,14 +1,74 @@
1
1
  import * as _angular_core from '@angular/core';
2
+ import { TemplateRef } from '@angular/core';
3
+ import * as _caribeng_ui from '@caribeng/ui';
2
4
 
5
+ /** Contexto de `<ng-template cbPickListItem let-item let-list="list">`. */
6
+ interface CbPickListItemContext<T = any> {
7
+ $implicit: T;
8
+ index: number;
9
+ list: 'source' | 'target';
10
+ }
11
+ /** Plantilla de cada elemento de un `<cb-picklist>`. */
12
+ declare class CbPickListItemTemplate {
13
+ readonly template: TemplateRef<CbPickListItemContext<any>>;
14
+ static ngTemplateContextGuard(_dir: CbPickListItemTemplate, ctx: unknown): ctx is CbPickListItemContext;
15
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbPickListItemTemplate, never>;
16
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CbPickListItemTemplate, "ng-template[cbPickListItem]", never, {}, {}, never, never, true, never>;
17
+ }
18
+ /** Elementos transferidos entre listas. */
19
+ interface CbPickListMoveEvent {
20
+ to: 'source' | 'target';
21
+ items: readonly unknown[];
22
+ }
23
+ type Side = 'source' | 'target';
24
+ /**
25
+ * PickList de CaribeNG: transfiere elementos entre una lista de disponibles y
26
+ * otra de seleccionados, con botones, doble clic o teclado (Espacio marca,
27
+ * Enter transfiere).
28
+ *
29
+ * @example
30
+ * ```html
31
+ * <cb-picklist [(source)]="disponibles" [(target)]="asignados" sourceHeader="Permisos" targetHeader="Asignados">
32
+ * <ng-template cbPickListItem let-permiso>{{ permiso.nombre }}</ng-template>
33
+ * </cb-picklist>
34
+ * ```
35
+ */
3
36
  declare class CbPickList {
4
- readonly source: _angular_core.ModelSignal<readonly string[]>;
5
- readonly target: _angular_core.ModelSignal<readonly string[]>;
6
- protected readonly selected: _angular_core.WritableSignal<ReadonlySet<string>>;
7
- protected toggle(item: string): void;
8
- protected move(toTarget: boolean): void;
37
+ protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
38
+ private readonly host;
39
+ private readonly uid;
40
+ /** Elementos disponibles (two-way). */
41
+ readonly source: _angular_core.ModelSignal<readonly unknown[]>;
42
+ /** Elementos seleccionados (two-way). */
43
+ readonly target: _angular_core.ModelSignal<readonly unknown[]>;
44
+ /** Título de la lista de origen. Por defecto, "Disponibles" del idioma activo. */
45
+ readonly sourceHeader: _angular_core.InputSignal<string | undefined>;
46
+ /** Título de la lista de destino. Por defecto, "Seleccionados" del idioma activo. */
47
+ readonly targetHeader: _angular_core.InputSignal<string | undefined>;
48
+ /** Se emite tras transferir elementos. */
49
+ readonly moved: _angular_core.OutputEmitterRef<CbPickListMoveEvent>;
50
+ protected readonly itemTemplate: _angular_core.Signal<CbPickListItemTemplate | undefined>;
51
+ /** Posiciones marcadas en cada lista. */
52
+ protected readonly selected: _angular_core.WritableSignal<Record<Side, ReadonlySet<number>>>;
53
+ private readonly focused;
54
+ protected headerId(side: Side): string;
55
+ protected isSelected(side: Side, index: number): boolean;
56
+ protected tabbable(side: Side): number;
57
+ protected setFocused(side: Side, index: number): void;
58
+ protected toggle(side: Side, index: number): void;
59
+ /** Transfiere los elementos marcados al lado indicado. */
60
+ protected move(to: Side): void;
61
+ /** Transfiere todos los elementos al lado indicado. */
62
+ protected moveAll(to: Side): void;
63
+ /** Transfiere un único elemento al otro lado (doble clic). */
64
+ protected moveOne(from: Side, index: number): void;
65
+ protected onKeydown(event: KeyboardEvent, side: Side): void;
66
+ private list;
67
+ private transfer;
9
68
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbPickList, never>;
10
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbPickList, "cb-picklist", never, { "source": { "alias": "source"; "required": false; "isSignal": true; }; "target": { "alias": "target"; "required": false; "isSignal": true; }; }, { "source": "sourceChange"; "target": "targetChange"; }, never, never, true, never>;
69
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbPickList, "cb-picklist", never, { "source": { "alias": "source"; "required": false; "isSignal": true; }; "target": { "alias": "target"; "required": false; "isSignal": true; }; "sourceHeader": { "alias": "sourceHeader"; "required": false; "isSignal": true; }; "targetHeader": { "alias": "targetHeader"; "required": false; "isSignal": true; }; }, { "source": "sourceChange"; "target": "targetChange"; "moved": "moved"; }, ["itemTemplate"], never, true, never>;
11
70
  }
12
71
 
13
- export { CbPickList };
72
+ export { CbPickList, CbPickListItemTemplate };
73
+ export type { CbPickListItemContext, CbPickListMoveEvent };
14
74
  //# sourceMappingURL=caribeng-ui-picklist.d.ts.map
@@ -1,4 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
+ import * as _caribeng_ui from '@caribeng/ui';
2
3
 
3
4
  /** Ciclo de facturación del selector de precios. */
4
5
  type CbPricingBilling = 'monthly' | 'annual';
@@ -39,6 +40,8 @@ interface CbPricingPlan {
39
40
  * ```
40
41
  */
41
42
  declare class CbPricing {
43
+ /** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
44
+ protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
42
45
  /** Planes a mostrar. */
43
46
  readonly plans: _angular_core.InputSignal<readonly CbPricingPlan[]>;
44
47
  /** Ciclo activo (two-way). */
@@ -52,12 +55,12 @@ declare class CbPricing {
52
55
  /** Símbolo de moneda. */
53
56
  readonly currency: _angular_core.InputSignal<string>;
54
57
  /** Etiquetas configurables. */
55
- readonly monthlyLabel: _angular_core.InputSignal<string>;
56
- readonly annualLabel: _angular_core.InputSignal<string>;
57
- readonly perMonthLabel: _angular_core.InputSignal<string>;
58
- readonly perYearLabel: _angular_core.InputSignal<string>;
58
+ readonly monthlyLabel: _angular_core.InputSignal<string | undefined>;
59
+ readonly annualLabel: _angular_core.InputSignal<string | undefined>;
60
+ readonly perMonthLabel: _angular_core.InputSignal<string | undefined>;
61
+ readonly perYearLabel: _angular_core.InputSignal<string | undefined>;
59
62
  /** Prefijo del CTA cuando el plan no define `ctaLabel`. */
60
- readonly ctaLabel: _angular_core.InputSignal<string>;
63
+ readonly ctaLabel: _angular_core.InputSignal<string | undefined>;
61
64
  /** Emite el plan elegido. */
62
65
  readonly planSelect: _angular_core.OutputEmitterRef<CbPricingPlan>;
63
66
  protected readonly annual: _angular_core.Signal<boolean>;
@@ -1,6 +1,6 @@
1
- import * as _caribeng_ui from '@caribeng/ui';
2
- import { CbSize } from '@caribeng/ui';
3
1
  import * as _angular_core from '@angular/core';
2
+ import * as _caribeng_ui from '@caribeng/ui';
3
+ import { cbFormat, CbSize } from '@caribeng/ui';
4
4
  import { ControlValueAccessor } from '@angular/forms';
5
5
 
6
6
  /**
@@ -13,6 +13,10 @@ import { ControlValueAccessor } from '@angular/forms';
13
13
  * ```
14
14
  */
15
15
  declare class CbRating implements ControlValueAccessor {
16
+ /** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
17
+ protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
18
+ /** Rellena `{0}`, `{1}`… de un texto traducido. */
19
+ protected readonly fmt: typeof cbFormat;
16
20
  /** Valor seleccionado (two-way opcional fuera de Angular Forms). */
17
21
  readonly value: _angular_core.ModelSignal<number>;
18
22
  /** Número de estrellas. */
@@ -0,0 +1,79 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { TemplateRef } from '@angular/core';
3
+ import * as _caribeng_ui from '@caribeng/ui';
4
+ import { cbFormat } from '@caribeng/ui';
5
+ import { AbstractControl, FormArray } from '@angular/forms';
6
+
7
+ interface CbRepeaterItemContext<T extends AbstractControl = any> {
8
+ /** Control del elemento (normalmente un FormGroup). */
9
+ $implicit: T;
10
+ index: number;
11
+ /** Nombre del elemento ("Beneficiario 2"). */
12
+ label: string;
13
+ }
14
+ /** Plantilla de cada elemento: `<ng-template cbRepeaterItem let-grupo let-i="index">`. */
15
+ declare class CbRepeaterItem {
16
+ readonly template: TemplateRef<CbRepeaterItemContext<any>>;
17
+ static ngTemplateContextGuard(_dir: CbRepeaterItem, ctx: unknown): ctx is CbRepeaterItemContext;
18
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbRepeaterItem, never>;
19
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CbRepeaterItem, "ng-template[cbRepeaterItem]", never, {}, {}, never, never, true, never>;
20
+ }
21
+ /**
22
+ * Repeater de CaribeNG: lista repetible de campos sobre un `FormArray`
23
+ * ("Agregar beneficiario"). Cada elemento es un grupo nombrado con su botón de
24
+ * quitar; respeta `min` y `max`, mueve el foco al agregar y quitar, y anuncia
25
+ * los cambios al lector de pantalla.
26
+ *
27
+ * @example
28
+ * ```html
29
+ * <cb-repeater [formArray]="beneficiarios" [createItem]="nuevoBeneficiario" itemLabel="Beneficiario" [max]="5">
30
+ * <ng-template cbRepeaterItem let-grupo>
31
+ * <ng-container [formGroup]="grupo">
32
+ * <cb-input label="Nombre" formControlName="nombre" />
33
+ * </ng-container>
34
+ * </ng-template>
35
+ * </cb-repeater>
36
+ * ```
37
+ */
38
+ declare class CbRepeater {
39
+ /** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
40
+ protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
41
+ /** Rellena `{0}`, `{1}`… de un texto traducido. */
42
+ protected readonly fmt: typeof cbFormat;
43
+ private readonly host;
44
+ private readonly injector;
45
+ protected readonly itemTemplate: _angular_core.Signal<CbRepeaterItem | undefined>;
46
+ /** FormArray con un control por elemento. */
47
+ readonly formArray: _angular_core.InputSignal<FormArray<any>>;
48
+ /** Crea el control de un elemento nuevo (p. ej. `() => fb.group({ nombre: [''] })`). */
49
+ readonly createItem: _angular_core.InputSignal<() => AbstractControl>;
50
+ /** Nombre de cada elemento ("Beneficiario" → "Beneficiario 1", "Beneficiario 2"…). Por defecto, "Elemento" del idioma activo. */
51
+ readonly itemLabel: _angular_core.InputSignal<string | undefined>;
52
+ /** Texto del botón de agregar. Por defecto, "Agregar beneficiario". */
53
+ readonly addLabel: _angular_core.InputSignal<string | undefined>;
54
+ /** Mínimo de elementos (no se puede quitar por debajo). */
55
+ readonly min: _angular_core.InputSignal<number>;
56
+ /** Máximo de elementos (el botón de agregar se deshabilita). */
57
+ readonly max: _angular_core.InputSignal<number>;
58
+ readonly disabled: _angular_core.InputSignal<boolean>;
59
+ readonly itemAdd: _angular_core.OutputEmitterRef<number>;
60
+ readonly itemRemove: _angular_core.OutputEmitterRef<number>;
61
+ /** Controles del FormArray (se actualiza también si el FormArray cambia desde fuera). */
62
+ protected readonly controls: _angular_core.WritableSignal<readonly AbstractControl<any, any, any>[]>;
63
+ protected readonly announcement: _angular_core.WritableSignal<string>;
64
+ protected readonly canAdd: _angular_core.Signal<boolean>;
65
+ protected readonly addText: _angular_core.Signal<string>;
66
+ constructor();
67
+ protected labelFor(index: number): string;
68
+ /** Agrega un elemento al final y lleva el foco a su primer campo. */
69
+ add(): void;
70
+ /** Quita un elemento y deja el foco en el anterior (o en el botón de agregar). */
71
+ remove(index: number): void;
72
+ private focusAfterRender;
73
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbRepeater, never>;
74
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbRepeater, "cb-repeater", never, { "formArray": { "alias": "formArray"; "required": true; "isSignal": true; }; "createItem": { "alias": "createItem"; "required": true; "isSignal": true; }; "itemLabel": { "alias": "itemLabel"; "required": false; "isSignal": true; }; "addLabel": { "alias": "addLabel"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "itemAdd": "itemAdd"; "itemRemove": "itemRemove"; }, ["itemTemplate"], never, true, never>;
75
+ }
76
+
77
+ export { CbRepeater, CbRepeaterItem };
78
+ export type { CbRepeaterItemContext };
79
+ //# sourceMappingURL=caribeng-ui-repeater.d.ts.map