vue-data-ui 3.26.4 → 3.27.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 (200) hide show
  1. package/dist/{Arrow-BW_Fs3gD.js → Arrow-DKO1l8oR.js} +1 -1
  2. package/dist/{BaseDraggableDialog-BniZj4c8.js → BaseDraggableDialog-C50TEJFv.js} +2 -2
  3. package/dist/{BaseIcon-CPBlYfWq.js → BaseIcon-Cx9FD751.js} +1 -1
  4. package/dist/{BaseLegendToggle-CWtURpCj.js → BaseLegendToggle-CP3sddwv.js} +1 -1
  5. package/dist/{BaseZoomControls-jfXIQvEi.js → BaseZoomControls-vNi8YykO.js} +2 -2
  6. package/dist/{ColorPicker-BKndMOAm.js → ColorPicker-hmC2bvwS.js} +2 -2
  7. package/dist/{DataTable-DV4Plrm3.js → DataTable-CjF_An2h.js} +2 -2
  8. package/dist/{HillActions-B45z2DmP.js → HillActions-DqqGB33u.js} +1 -1
  9. package/dist/{Legend-CJzCVAWl.js → Legend-CulFgjUY.js} +2 -2
  10. package/dist/{NonSvgPenAndPaper-B3I_UGDm.js → NonSvgPenAndPaper-BK1v_MfW.js} +3 -3
  11. package/dist/{PackageVersion-DEAYvEjl.js → PackageVersion-D7H9nfK0.js} +1 -1
  12. package/dist/{PenAndPaper-Dv8WPVwA.js → PenAndPaper-CNiuGw6k.js} +3 -3
  13. package/dist/{Shape-BIe6C0HJ.js → Shape-DSwamtmO.js} +1 -1
  14. package/dist/{SlicerPreview-8atniw0P.js → SlicerPreview-k5YerMA9.js} +12 -12
  15. package/dist/{SparkTooltip-DsGcGbm2.js → SparkTooltip-D35KVv6N.js} +6 -6
  16. package/dist/{Title-B4UpMerH.js → Title-BMCuINbv.js} +1 -1
  17. package/dist/{Tooltip-BmfGHn1L.js → Tooltip-C4ZTwkLF.js} +1 -1
  18. package/dist/{UserOptions-C92R4ACT.js → UserOptions-CORYQiif.js} +2 -2
  19. package/dist/components/arrow.js +1 -1
  20. package/dist/components/vue-ui-3d-bar.js +1 -1
  21. package/dist/components/vue-ui-accordion.js +1 -1
  22. package/dist/components/vue-ui-age-pyramid.js +1 -1
  23. package/dist/components/vue-ui-annotator.js +1 -1
  24. package/dist/components/vue-ui-bullet.js +1 -1
  25. package/dist/components/vue-ui-bump.js +1 -1
  26. package/dist/components/vue-ui-candlestick.js +1 -1
  27. package/dist/components/vue-ui-carousel-table.js +1 -1
  28. package/dist/components/vue-ui-chestnut.js +1 -1
  29. package/dist/components/vue-ui-chord.js +1 -1
  30. package/dist/components/vue-ui-circle-pack.js +1 -1
  31. package/dist/components/vue-ui-cursor.js +1 -1
  32. package/dist/components/vue-ui-dag.js +1 -1
  33. package/dist/components/vue-ui-dashboard.js +1 -1
  34. package/dist/components/vue-ui-digits.js +1 -1
  35. package/dist/components/vue-ui-donut-evolution.js +1 -1
  36. package/dist/components/vue-ui-donut.js +1 -1
  37. package/dist/components/vue-ui-dumbbell.js +1 -1
  38. package/dist/components/vue-ui-flow.js +1 -1
  39. package/dist/components/vue-ui-funnel.js +1 -1
  40. package/dist/components/vue-ui-galaxy.js +1 -1
  41. package/dist/components/vue-ui-gauge.js +1 -1
  42. package/dist/components/vue-ui-geo.js +1 -1
  43. package/dist/components/vue-ui-gizmo.js +1 -1
  44. package/dist/components/vue-ui-heatmap.js +1 -1
  45. package/dist/components/vue-ui-hill.js +1 -1
  46. package/dist/components/vue-ui-history-plot.js +1 -1
  47. package/dist/components/vue-ui-horizontal-bar.js +1 -1
  48. package/dist/components/vue-ui-icon.js +1 -1
  49. package/dist/components/vue-ui-kpi.js +1 -1
  50. package/dist/components/vue-ui-label.js +1 -1
  51. package/dist/components/vue-ui-mini-loader.js +1 -1
  52. package/dist/components/vue-ui-molecule.js +1 -1
  53. package/dist/components/vue-ui-mood-radar.js +1 -1
  54. package/dist/components/vue-ui-nested-donuts.js +1 -1
  55. package/dist/components/vue-ui-onion.js +1 -1
  56. package/dist/components/vue-ui-parallel-coordinate-plot.js +1 -1
  57. package/dist/components/vue-ui-quadrant.js +1 -1
  58. package/dist/components/vue-ui-quick-chart.js +1 -1
  59. package/dist/components/vue-ui-radar.js +1 -1
  60. package/dist/components/vue-ui-rating.js +1 -1
  61. package/dist/components/vue-ui-relation-circle.js +1 -1
  62. package/dist/components/vue-ui-ridgeline.js +1 -1
  63. package/dist/components/vue-ui-rings.js +1 -1
  64. package/dist/components/vue-ui-scatter.js +1 -1
  65. package/dist/components/vue-ui-skeleton.js +1 -1
  66. package/dist/components/vue-ui-smiley.js +1 -1
  67. package/dist/components/vue-ui-spark-trend.js +1 -1
  68. package/dist/components/vue-ui-sparkbar.js +1 -1
  69. package/dist/components/vue-ui-sparkgauge.js +1 -1
  70. package/dist/components/vue-ui-sparkhistogram.js +1 -1
  71. package/dist/components/vue-ui-sparkline.js +1 -1
  72. package/dist/components/vue-ui-sparkstackbar.js +1 -1
  73. package/dist/components/vue-ui-stackbar.js +1 -1
  74. package/dist/components/vue-ui-stackline.js +1 -1
  75. package/dist/components/vue-ui-strip-plot.js +1 -1
  76. package/dist/components/vue-ui-table-heatmap.js +1 -1
  77. package/dist/components/vue-ui-table-sparkline.js +1 -1
  78. package/dist/components/vue-ui-table.js +1 -1
  79. package/dist/components/vue-ui-thermometer.js +1 -1
  80. package/dist/components/vue-ui-timer.js +1 -1
  81. package/dist/components/vue-ui-tiremarks.js +1 -1
  82. package/dist/components/vue-ui-treemap.js +1 -1
  83. package/dist/components/vue-ui-vertical-bar.js +1 -1
  84. package/dist/components/vue-ui-waffle.js +1 -1
  85. package/dist/components/vue-ui-wheel.js +1 -1
  86. package/dist/components/vue-ui-word-cloud.js +1 -1
  87. package/dist/components/vue-ui-world.js +1 -1
  88. package/dist/components/vue-ui-xy-canvas.js +1 -1
  89. package/dist/components/vue-ui-xy.js +1 -1
  90. package/dist/{dom-to-png-BL08UcHI.js → dom-to-png-CBusMkua.js} +1 -1
  91. package/dist/{exposedLib-CBUiJ5b-.js → exposedLib-UNxZlnAS.js} +10 -10
  92. package/dist/{img--C0otIB0.js → img-Bb5rHcpO.js} +1 -1
  93. package/dist/{labelUtils-CfQIxXGL.js → labelUtils-Ccn9kK7T.js} +1 -1
  94. package/dist/{lib-DTiqmM1G.js → lib-D4wK6ljP.js} +130 -136
  95. package/dist/{package-Dj6ohGVJ.js → package-DmQufM0G.js} +1 -1
  96. package/dist/{pdf-CbSwKZjC.js → pdf-BzIQHx-F.js} +1 -1
  97. package/dist/{render-common-vuBsglf8.js → render-common-BtfjXdkJ.js} +10 -10
  98. package/dist/ssr/vue-ui-donut.js +1 -1
  99. package/dist/ssr/vue-ui-xy.js +1 -1
  100. package/dist/ssr.js +2 -2
  101. package/dist/style.css +1 -1
  102. package/dist/types/vue-data-ui.d.ts +212 -60
  103. package/dist/types/vue-ui-stackbar.d.ts +10 -0
  104. package/dist/{useConfig-DObkR9Aa.js → useConfig-D_6ZrPMD.js} +82 -0
  105. package/dist/{useNestedProp-D8cRQaVo.js → useNestedProp-DR_8JPol.js} +1 -1
  106. package/dist/{useObjectBindings-CPmyIJxB.js → useObjectBindings-DvasYMGu.js} +2 -2
  107. package/dist/{usePrinter-R2nu9g4B.js → usePrinter-DdW2GSm0.js} +2 -2
  108. package/dist/utils.js +10 -10
  109. package/dist/{vue-data-ui-CijFk00w.js → vue-data-ui-Df7WV80w.js} +70 -70
  110. package/dist/vue-data-ui.js +75 -75
  111. package/dist/{vue-ui-3d-bar-BxmndVBz.js → vue-ui-3d-bar-CJjNPwhG.js} +463 -463
  112. package/dist/{vue-ui-accordion-CxMo-mXC.js → vue-ui-accordion-CaoNWreI.js} +4 -4
  113. package/dist/{vue-ui-age-pyramid-ysX_ySuK.js → vue-ui-age-pyramid-BYcM0uIP.js} +22 -22
  114. package/dist/{vue-ui-annotator-IAqTX-5M.js → vue-ui-annotator-BmqjDjRF.js} +10 -10
  115. package/dist/{vue-ui-bullet-rO5_pB7t.js → vue-ui-bullet-DBOAvpBB.js} +18 -18
  116. package/dist/vue-ui-bump-rPYwDJ4o.js +1242 -0
  117. package/dist/{vue-ui-candlestick-BLxP54W4.js → vue-ui-candlestick-WQHIQNv_.js} +625 -625
  118. package/dist/{vue-ui-carousel-table-DHbt40ze.js → vue-ui-carousel-table-Dojcvt49.js} +106 -106
  119. package/dist/{vue-ui-chestnut-CHHZx5ek.js → vue-ui-chestnut-BdhEByUf.js} +65 -65
  120. package/dist/{vue-ui-chord-WmqFMK4A.js → vue-ui-chord-MF4xF5az.js} +46 -46
  121. package/dist/{vue-ui-circle-pack-D2RXFToP.js → vue-ui-circle-pack-BwDim7G8.js} +26 -26
  122. package/dist/{vue-ui-cursor-CDf6s7AZ.js → vue-ui-cursor-w_5cbpSb.js} +61 -61
  123. package/dist/{vue-ui-dag-Ba3Bkxd7.js → vue-ui-dag-D2EUqeDN.js} +65 -65
  124. package/dist/{vue-ui-dashboard-DKCEm56d.js → vue-ui-dashboard-BLnVXosj.js} +70 -70
  125. package/dist/{vue-ui-digits-B6cSEytP.js → vue-ui-digits-zSqwYWHm.js} +4 -4
  126. package/dist/{vue-ui-donut-BfAlXtvS.js → vue-ui-donut-ZYZfqIhi.js} +117 -117
  127. package/dist/{vue-ui-donut-evolution-C2TYUKag.js → vue-ui-donut-evolution-DtLbWi3h.js} +216 -216
  128. package/dist/vue-ui-donut-nLDLZwig.js +2427 -0
  129. package/dist/{vue-ui-dumbbell-GMQ4JZf_.js → vue-ui-dumbbell-Qgn3wRyI.js} +20 -20
  130. package/dist/{vue-ui-flow-B53jXaVQ.js → vue-ui-flow-iSH6dyGw.js} +109 -109
  131. package/dist/vue-ui-funnel-Cc2z2zS5.js +749 -0
  132. package/dist/{vue-ui-galaxy-CE7LYi8M.js → vue-ui-galaxy-GhuBSU0o.js} +267 -267
  133. package/dist/vue-ui-gauge-BAjBO13a.js +934 -0
  134. package/dist/{vue-ui-geo-B4a2hwYf.js → vue-ui-geo-mwTtvIHY.js} +19 -19
  135. package/dist/{vue-ui-gizmo-CY4cLNcJ.js → vue-ui-gizmo-B5vOOrZX.js} +4 -4
  136. package/dist/vue-ui-heatmap-fimkY1nN.js +1613 -0
  137. package/dist/{vue-ui-hill-CTPzgkCs.js → vue-ui-hill-DPfTt3UE.js} +18 -18
  138. package/dist/{vue-ui-history-plot-CGFijdmp.js → vue-ui-history-plot-B1WgzqTb.js} +53 -53
  139. package/dist/vue-ui-horizontal-bar-Bkp5HQdt.js +1723 -0
  140. package/dist/{vue-ui-kpi-Bu2OpF5d.js → vue-ui-kpi-D-p0CSQh.js} +4 -4
  141. package/dist/{vue-ui-label-CWFQzKOy.js → vue-ui-label-r3-QloJL.js} +65 -65
  142. package/dist/{vue-ui-mini-loader-hdh8SSxW.js → vue-ui-mini-loader-CnrBGAtM.js} +3 -3
  143. package/dist/vue-ui-molecule-BhdAYX_H.js +941 -0
  144. package/dist/vue-ui-mood-radar-CdlnPrQf.js +1111 -0
  145. package/dist/{vue-ui-nested-donuts-DN2PgxeK.js → vue-ui-nested-donuts-DceVEyUc.js} +341 -341
  146. package/dist/{vue-ui-onion-lrDciRpg.js → vue-ui-onion-_L0uEATI.js} +209 -209
  147. package/dist/vue-ui-parallel-coordinate-plot-CbXwIM47.js +1444 -0
  148. package/dist/{vue-ui-quadrant-DrcflMPg.js → vue-ui-quadrant-CDDFLRcX.js} +55 -55
  149. package/dist/{vue-ui-quick-chart-D5ZFV0Aj.js → vue-ui-quick-chart-Dom257hl.js} +377 -377
  150. package/dist/vue-ui-radar-BLdri1bA.js +1386 -0
  151. package/dist/{vue-ui-rating-DxBJXbPW.js → vue-ui-rating-C_iTttXB.js} +25 -25
  152. package/dist/vue-ui-relation-circle-BmxTSgjd.js +905 -0
  153. package/dist/vue-ui-ridgeline-CsUrcVmL.js +1630 -0
  154. package/dist/{vue-ui-rings-6OHcBlOC.js → vue-ui-rings-D_GPkgbD.js} +318 -318
  155. package/dist/vue-ui-scatter-D_C-IhnW.js +2418 -0
  156. package/dist/{vue-ui-skeleton--HlS7ySk.js → vue-ui-skeleton-t7e6KEZ2.js} +60 -60
  157. package/dist/{vue-ui-smiley-ZrM6-QCy.js → vue-ui-smiley-Dl95YWVo.js} +14 -14
  158. package/dist/{vue-ui-spark-trend-CIfpocxI.js → vue-ui-spark-trend-pkZA7u5V.js} +20 -20
  159. package/dist/{vue-ui-sparkbar-Db7Ntacd.js → vue-ui-sparkbar-Ds7OJjhG.js} +77 -77
  160. package/dist/{vue-ui-sparkgauge-DEuNFkU_.js → vue-ui-sparkgauge-US1M88qc.js} +6 -6
  161. package/dist/vue-ui-sparkhistogram-FISVpSvv.js +589 -0
  162. package/dist/{vue-ui-sparkline-CSsnkXMJ.js → vue-ui-sparkline-DvE1dHcs.js} +37 -37
  163. package/dist/{vue-ui-sparkstackbar-BnN7KebI.js → vue-ui-sparkstackbar-CWtF9eG-.js} +39 -39
  164. package/dist/vue-ui-stackbar-fMgrHzZe.js +3273 -0
  165. package/dist/{vue-ui-stackline-CqjwxpU1.js → vue-ui-stackline-CSMuUup2.js} +303 -303
  166. package/dist/vue-ui-strip-plot-TGD2UFHS.js +1752 -0
  167. package/dist/{vue-ui-table-CsMozTrM.js → vue-ui-table-BCEIbg8-.js} +14 -14
  168. package/dist/{vue-ui-table-heatmap-DFcESbBy.js → vue-ui-table-heatmap-CvUcFWMf.js} +9 -9
  169. package/dist/vue-ui-table-sparkline-CoVQ1qGY.js +738 -0
  170. package/dist/vue-ui-thermometer-BYFAZCzh.js +758 -0
  171. package/dist/{vue-ui-timer-CFxvU_q1.js → vue-ui-timer-BKr8RVnn.js} +10 -10
  172. package/dist/{vue-ui-tiremarks-DIjsyNwO.js → vue-ui-tiremarks-BYu3cEoy.js} +35 -35
  173. package/dist/{vue-ui-treemap-BuvFUWJm.js → vue-ui-treemap-BR3rX5_L.js} +50 -50
  174. package/dist/{vue-ui-waffle-B8Knvp7m.js → vue-ui-waffle-mP8g5aQk.js} +275 -275
  175. package/dist/{vue-ui-wheel-2_4BOo6P.js → vue-ui-wheel-CZsSO2R6.js} +187 -187
  176. package/dist/{vue-ui-word-cloud-BEgmAfj1.js → vue-ui-word-cloud-CJ30onqy.js} +35 -35
  177. package/dist/{vue-ui-world-D4WMHq7E.js → vue-ui-world-BZ09DOiF.js} +498 -498
  178. package/dist/{vue-ui-xy-DBLJ8Uhc.js → vue-ui-xy-C3h54loZ.js} +405 -405
  179. package/dist/{vue-ui-xy-canvas-Dv0pk4Wd.js → vue-ui-xy-canvas-BwgK8drp.js} +165 -165
  180. package/dist/{vue-ui-xy-DGIz4MDV.js → vue-ui-xy-jemv5dsf.js} +288 -288
  181. package/dist/{vue_ui_stackbar-DdjDL6aq.js → vue_ui_stackbar-yQyvT4Su.js} +46 -0
  182. package/package.json +1 -1
  183. package/dist/vue-ui-bump-BIyTRpqJ.js +0 -1242
  184. package/dist/vue-ui-donut-DMISY-E8.js +0 -2427
  185. package/dist/vue-ui-funnel-eVH871L3.js +0 -749
  186. package/dist/vue-ui-gauge-D_jNBHjA.js +0 -934
  187. package/dist/vue-ui-heatmap-DW7bo_Um.js +0 -1613
  188. package/dist/vue-ui-horizontal-bar-vPeWNfxO.js +0 -1723
  189. package/dist/vue-ui-molecule-ejjPjG63.js +0 -941
  190. package/dist/vue-ui-mood-radar-pqMAcUWm.js +0 -1111
  191. package/dist/vue-ui-parallel-coordinate-plot-McES6sLT.js +0 -1444
  192. package/dist/vue-ui-radar-DZPVV9cU.js +0 -1386
  193. package/dist/vue-ui-relation-circle-BtESVsB0.js +0 -905
  194. package/dist/vue-ui-ridgeline-CSLuDJWq.js +0 -1630
  195. package/dist/vue-ui-scatter-CKJ87fhp.js +0 -2418
  196. package/dist/vue-ui-sparkhistogram-CQTwLaZi.js +0 -589
  197. package/dist/vue-ui-stackbar-CISQXhoK.js +0 -2660
  198. package/dist/vue-ui-strip-plot-CRZDCNc1.js +0 -1752
  199. package/dist/vue-ui-table-sparkline-CwsrD7te.js +0 -738
  200. package/dist/vue-ui-thermometer-_zSQM0Nk.js +0 -758
@@ -5,7 +5,6 @@ declare module 'vue-data-ui' {
5
5
  VNodeChild,
6
6
  Component,
7
7
  ComputedRef,
8
- MaybeRefOrGetter,
9
8
  } from 'vue';
10
9
 
11
10
  export type VueUiUnknownObj = {
@@ -158,6 +157,7 @@ declare module 'vue-data-ui' {
158
157
 
159
158
  export type VueDataUiExpose = {
160
159
  getData?: (...args: any[]) => Promise<any> | any;
160
+ getWaterfallSteps?: () => VueUiStackbarWaterfallComputedStep[];
161
161
  getImage?: (options?: { scale?: number }) => Promise<any>;
162
162
  generateCsv?: () => void;
163
163
  generateImage?: () => void;
@@ -196,7 +196,6 @@ declare module 'vue-data-ui' {
196
196
  [key: string]: any;
197
197
  };
198
198
 
199
- /** Keep the named export exactly as before (now with loader/component props). */
200
199
  export const VueDataUi: DefineComponent<VueDataUiProps, VueDataUiExpose>;
201
200
 
202
201
  export type ChartEvent<T> =
@@ -235,7 +234,14 @@ declare module 'vue-data-ui' {
235
234
  export type VueUiCirclePackEvent = ChartEvent<VueUiCirclePackDatapoint>;
236
235
  export type VueUiSparklineEvent = ChartEvent<VueUiSparklineDatasetItem>;
237
236
  export type VueUiAgePyramidEvent = ChartEvent<VueUiAgePyramidDatapoint>;
238
- export type VueUiStackbarEvent = ChartEvent<VueUiStackbarDatapointItem[]>;
237
+ export type VueUiStackbarEvent =
238
+ | null
239
+ | ((payload: {
240
+ datapoint: VueUiStackbarInteractionDatapoint[];
241
+ seriesIndex: number;
242
+ // Present for waterfall clicks
243
+ waterfall?: VueUiStackbarWaterfallComputedStep;
244
+ }) => void);
239
245
  export type VueUiStacklineEvent = ChartEvent<VueUiStacklineDatapointItem[]>;
240
246
  export type VueUiCandlestickEvent = ChartEvent<VueUiCandlestickDatapoint>;
241
247
  export type VueUiRidgelineEvent = ChartEvent<VueUiRidgelineDatapointEvent>;
@@ -13383,13 +13389,46 @@ declare module 'vue-data-ui' {
13383
13389
  };
13384
13390
  };
13385
13391
 
13386
- export type VueUiStackbarDatasetItem = {
13387
- [key: string]: any; // To be recovered through the #svg slot
13392
+ export type VueUiStackbarWaterfallSegment = {
13393
+ key?: string | number;
13394
+ id?: string | number;
13395
+ name?: string;
13396
+ label?: string;
13397
+ value: number;
13398
+ color?: string;
13399
+ };
13400
+
13401
+ export type VueUiStackbarWaterfallKind = 'total' | 'subtotal' | 'change';
13402
+
13403
+ export type VueUiStackbarDatasetItemWaterfallSeries = {
13404
+ name?: string;
13405
+ label?: string;
13406
+ type?: VueUiStackbarWaterfallKind;
13407
+ color?: string;
13408
+ series?: VueUiStackbarWaterfallSegment[];
13409
+ };
13410
+
13411
+ export type VueUiStackbarStandardDatasetItem = {
13412
+ [key: string]: any;
13388
13413
  name: string;
13389
13414
  series: Array<number | null>;
13390
13415
  color?: string;
13416
+ type?: never;
13417
+ };
13418
+
13419
+ export type VueUiStackbarWaterfallDatasetItem = {
13420
+ [key: string]: any;
13421
+ name: string;
13422
+ type: 'waterfall';
13423
+ startValue?: number;
13424
+ series: VueUiStackbarDatasetItemWaterfallSeries[];
13425
+ color?: string;
13391
13426
  };
13392
13427
 
13428
+ export type VueUiStackbarDatasetItem =
13429
+ | VueUiStackbarStandardDatasetItem
13430
+ | VueUiStackbarWaterfallDatasetItem;
13431
+
13393
13432
  export type VueUiStackbarDatapointItem = {
13394
13433
  name: string;
13395
13434
  value: number;
@@ -13398,7 +13437,54 @@ declare module 'vue-data-ui' {
13398
13437
  id: string;
13399
13438
  };
13400
13439
 
13401
- export type VueUiStackbarSeriesItem = VueUiStackbarDatasetItem & {
13440
+ export type VueUiStackbarWaterfallComputedSegment = {
13441
+ key: string;
13442
+ name: string;
13443
+ label: string;
13444
+ value: number;
13445
+ start: number;
13446
+ end: number;
13447
+ color: string;
13448
+ };
13449
+
13450
+ export type VueUiStackbarWaterfallComputedStep = {
13451
+ index: number;
13452
+ name: string;
13453
+ kind: VueUiStackbarWaterfallKind;
13454
+ isTotal: boolean;
13455
+ previousBalance: number;
13456
+ start: number;
13457
+ end: number;
13458
+ balance: number;
13459
+ change: number;
13460
+ hasMixedSigns: boolean;
13461
+ positiveExtent: number;
13462
+ negativeExtent: number;
13463
+ segments: VueUiStackbarWaterfallComputedSegment[];
13464
+ color: string | null;
13465
+ };
13466
+
13467
+ export type VueUiStackbarInteractionDatapoint = {
13468
+ name: string;
13469
+ value: number | null;
13470
+ proportion: number | null;
13471
+ color: string;
13472
+ id: string;
13473
+ absoluteIndex?: number;
13474
+ timeLabel?: {
13475
+ text: string;
13476
+ absoluteIndex?: number;
13477
+ };
13478
+ // Available when the active dataset is a waterfall
13479
+ start?: number;
13480
+ end?: number;
13481
+ kind?: VueUiStackbarWaterfallKind;
13482
+ balance?: number;
13483
+ change?: number;
13484
+ stepName?: string;
13485
+ };
13486
+
13487
+ export type VueUiStackbarSeriesItem = VueUiStackbarStandardDatasetItem & {
13402
13488
  id: string;
13403
13489
  color: string;
13404
13490
  absoluteIndex: number;
@@ -13458,6 +13544,89 @@ declare module 'vue-data-ui' {
13458
13544
  backgroundColor?: string;
13459
13545
  position?: 'bottom' | 'top';
13460
13546
  };
13547
+ // waterfall config applied when a dataset series has a 'waterfall' type
13548
+ waterfall?: {
13549
+ bars?: {
13550
+ gapRatio?: number;
13551
+ borderRadius?: number;
13552
+ strokeWidth?: number;
13553
+ stroke?: string;
13554
+ gradient?: {
13555
+ show?: boolean;
13556
+ intensity?: number;
13557
+ };
13558
+ };
13559
+ colors?: {
13560
+ useSeriesColor?: boolean;
13561
+ positive?: string;
13562
+ negative?: string;
13563
+ total?: string;
13564
+ subtotal?: string;
13565
+ neutral?: string;
13566
+ };
13567
+ connectors?: {
13568
+ show?: boolean;
13569
+ stroke?: string;
13570
+ strokeWidth?: number;
13571
+ strokeDasharray?: string | number;
13572
+ adaptToRadius?: boolean;
13573
+ inset?: number;
13574
+ };
13575
+ categoryLabels?: {
13576
+ show?: boolean;
13577
+ fontSize?: number;
13578
+ color?: string;
13579
+ bold?: boolean;
13580
+ rotation?: number;
13581
+ offsetY?: number;
13582
+ };
13583
+ segmentLabels?: {
13584
+ show?: boolean;
13585
+ fontSize?: number;
13586
+ bold?: boolean;
13587
+ color?: string;
13588
+ adaptColorToBackground?: boolean;
13589
+ minHeight?: number;
13590
+ minWidth?: number;
13591
+ showZero?: boolean;
13592
+ prefix?: string;
13593
+ suffix?: string;
13594
+ rounding?: number;
13595
+ formatter?: Formatter;
13596
+ };
13597
+ stepLabels?: {
13598
+ show?: boolean;
13599
+ fontSize?: number;
13600
+ color?: string;
13601
+ bold?: boolean;
13602
+ prefix?: string;
13603
+ suffix?: string;
13604
+ rounding?: number;
13605
+ offset?: number;
13606
+ showPlusSign?: boolean;
13607
+ showZero?: boolean;
13608
+ useBalanceForTotals?: boolean;
13609
+ formatter?: Formatter;
13610
+ };
13611
+ tooltip?: {
13612
+ showBalance?: boolean;
13613
+ showChange?: boolean;
13614
+ showStart?: boolean;
13615
+ balanceTranslation?: string;
13616
+ changeTranslation?: string;
13617
+ startTranslation?: string;
13618
+ totalTranslation?: string;
13619
+ subtotalTranslation?: string;
13620
+ rounding?: number;
13621
+ };
13622
+ table?: {
13623
+ showKind?: boolean;
13624
+ showBalance?: boolean;
13625
+ kindTranslation?: string;
13626
+ balanceTranslation?: string;
13627
+ changeTranslation?: string;
13628
+ };
13629
+ };
13461
13630
  zoom?: ChartZoom & {
13462
13631
  preview?: {
13463
13632
  enable?: boolean;
@@ -13472,11 +13641,7 @@ declare module 'vue-data-ui' {
13472
13641
  | null
13473
13642
  | ((
13474
13643
  params: MinimalCustomFormatParams<
13475
- Array<
13476
- VueUiStackbarDatapointItem & {
13477
- absoluteIndex: number;
13478
- }
13479
- >
13644
+ VueUiStackbarInteractionDatapoint[]
13480
13645
  >,
13481
13646
  ) => string);
13482
13647
  };
@@ -13489,8 +13654,8 @@ declare module 'vue-data-ui' {
13489
13654
  | null
13490
13655
  | ((
13491
13656
  params: VueUiTooltipParams<
13492
- VueUiStackbarDatapointItem[],
13493
- VueUiStackbarSeriesItem[],
13657
+ VueUiStackbarInteractionDatapoint[],
13658
+ VueUiStackbarFormattedDatasetItem[],
13494
13659
  VueUiStackbarConfig
13495
13660
  >,
13496
13661
  ) => string);
@@ -13613,23 +13778,8 @@ declare module 'vue-data-ui' {
13613
13778
  };
13614
13779
 
13615
13780
  export type VueUiStackbarExpose = {
13616
- getData(): Promise<
13617
- Array<{
13618
- absoluteIndex: number;
13619
- color: string;
13620
- height: number[];
13621
- horizontal_width: number[];
13622
- horizontal_x: number[];
13623
- horizontal_y: number[];
13624
- id: string;
13625
- name: string;
13626
- proportions: number[];
13627
- series: number[];
13628
- signedSeries: number[];
13629
- x: number[];
13630
- y: number[];
13631
- }>
13632
- >;
13781
+ getData(): VueUiStackbarFormattedDatasetItem[];
13782
+ getWaterfallSteps(): VueUiStackbarWaterfallComputedStep[];
13633
13783
  getImage(options?: { scale?: number }): GetImagePromise;
13634
13784
  generateCsv(): void;
13635
13785
  generateImage(): void;
@@ -13644,32 +13794,33 @@ declare module 'vue-data-ui' {
13644
13794
  hideSeries(name: string): void;
13645
13795
  setZoomState(state: VueUiZoomState): void;
13646
13796
  resetZoom(): void;
13797
+ copyAlt(): Promise<void>;
13647
13798
  };
13648
13799
 
13649
13800
  export type VueUiStackbarFormattedDatasetItem = {
13650
13801
  absoluteIndex: number;
13802
+ datasetKey: string;
13651
13803
  color: string;
13652
- height: number[];
13653
- heightMinimap: ({ minimapH }: { minimapH: number }) => number[];
13654
- horizontal_width: number[];
13655
- horizontal_x: number[];
13656
- horizontal_y: number[];
13657
13804
  id: string;
13658
13805
  name: string;
13659
- proportions: number[];
13660
13806
  series: number[];
13661
- signedSeries: Array<0 | 1>;
13807
+ signedSeries: Array<-1 | 0 | 1>;
13808
+ proportions: number[];
13662
13809
  x: number[];
13663
- xMinimap: ({
13664
- left,
13665
- unitW,
13666
- }: {
13667
- left: number;
13668
- unitW: number;
13669
- }) => number[];
13670
13810
  y: number[];
13671
- yMinimap: ({ minimapH }: { minimapH: number }) => number[];
13811
+ height: number[];
13812
+ horizontal_width: number[];
13813
+ horizontal_x: number[];
13814
+ horizontal_y: number[];
13672
13815
  rectKeys: string[];
13816
+ minimapRectKeys: string[];
13817
+ xMinimap: (params: { left: number; unitW: number }) => number[];
13818
+ yMinimap: (params: { minimapH: number }) => number[];
13819
+ heightMinimap: (params: { minimapH: number }) => number[];
13820
+ // Waterfall-only segment positions and colors. null = no segment
13821
+ waterfallSegments?: Array<VueUiStackbarWaterfallComputedSegment | null>;
13822
+ waterfallColors?: string[];
13823
+ minimapWaterfallColors?: string[];
13673
13824
  };
13674
13825
 
13675
13826
  export type VueUiStackbarTimeLabelSlotProps = {
@@ -13707,27 +13858,22 @@ declare module 'vue-data-ui' {
13707
13858
  };
13708
13859
  };
13709
13860
 
13710
- export type VueUiStackbarTooltipDatapoint = {
13711
- absoluteIndex: number;
13712
- color: string;
13713
- id: string;
13714
- name: string;
13715
- proportion: number | null;
13716
- timeLabel: { text: string; absoluteIndex: number } | undefined;
13717
- value: number | null;
13718
- };
13861
+ export type VueUiStackbarTooltipDatapoint =
13862
+ VueUiStackbarInteractionDatapoint;
13719
13863
 
13720
13864
  export type VueUiStackbarTooltipSlotProps = {
13721
13865
  config: VueUiStackbarConfig;
13722
13866
  datapoint: VueUiStackbarTooltipDatapoint[];
13723
13867
  series: VueUiStackbarFormattedDatasetItem[];
13724
13868
  seriesIndex: number;
13725
- timeLabel: string;
13869
+ timeLabel: string | null;
13870
+ waterfall: VueUiStackbarWaterfallComputedStep | null;
13726
13871
  };
13727
13872
 
13728
13873
  export type VueUiStackbarLegendItem = {
13729
13874
  absoluteIndex: number;
13730
13875
  color: string;
13876
+ datasetKey?: string; // Stable key for legend groups in waterfall datasets
13731
13877
  id: string;
13732
13878
  isSegregated: boolean;
13733
13879
  name: string;
@@ -13735,7 +13881,7 @@ declare module 'vue-data-ui' {
13735
13881
  segregate: () => void;
13736
13882
  series: number[];
13737
13883
  shape: Shape;
13738
- signedSeries: Array<0 | 1>;
13884
+ signedSeries: Array<-1 | 0 | 1>;
13739
13885
  };
13740
13886
 
13741
13887
  export type VueUiStackbarLegendSlotProps = {
@@ -13753,23 +13899,29 @@ declare module 'vue-data-ui' {
13753
13899
  VueUiStackbarFormattedDatasetItem[];
13754
13900
 
13755
13901
  export type VueUiStackbarEmitSelectDatapoint = {
13756
- datapoint: VueUiStackbarDatapointItem[];
13902
+ datapoint: VueUiStackbarInteractionDatapoint[];
13757
13903
  period: {
13758
13904
  absoluteIndex: number;
13759
13905
  text: string;
13760
13906
  };
13907
+ // Added to waterfall events
13908
+ seriesIndex?: number;
13909
+ waterfall?: VueUiStackbarWaterfallComputedStep;
13761
13910
  };
13762
13911
 
13763
13912
  export type VueUiStackbarEmitSelectTimeLabel = {
13764
- datapoint: VueUiStackbarDatapointItem[];
13913
+ datapoint: VueUiStackbarInteractionDatapoint[];
13765
13914
  absoluteIndex: number;
13766
13915
  label: string;
13916
+ // Added to waterfall category selections
13917
+ waterfall?: VueUiStackbarWaterfallComputedStep;
13767
13918
  };
13768
13919
 
13769
13920
  export type VueUiStackbarEmitSelectX = {
13770
13921
  dataset: VueUiStackbarTooltipDatapoint[] | null;
13771
13922
  index: number | null;
13772
- indexLabel: number | null | undefined;
13923
+ // For waterfall categories this is a string label
13924
+ indexLabel: number | string | null | undefined;
13773
13925
  };
13774
13926
 
13775
13927
  export type VueUiStackbarEmitCopyAlt = {
@@ -13854,7 +14006,7 @@ declare module 'vue-data-ui' {
13854
14006
  standalone: boolean;
13855
14007
  };
13856
14008
 
13857
- export type VueUiStacklineDatasetItem = VueUiStackbarDatasetItem & {
14009
+ export type VueUiStacklineDatasetItem = VueUiStackbarStandardDatasetItem & {
13858
14010
  shape?: Shape;
13859
14011
  standalone?: boolean; // If true, series will not be part of stacked series
13860
14012
  };
@@ -30,6 +30,11 @@ import type {
30
30
  VueUiStackbarEmitCopyAlt,
31
31
  VueUiZoomState,
32
32
  VueUiEmitZoom,
33
+ VueUiStackbarWaterfallKind,
34
+ VueUiStackbarStandardDatasetItem,
35
+ VueUiStackbarDatasetItemWaterfallSeries,
36
+ VueUiStackbarWaterfallSegment,
37
+ VueUiStackbarWaterfallDatasetItem,
33
38
  } from 'vue-data-ui';
34
39
 
35
40
  export type {
@@ -62,6 +67,11 @@ export type {
62
67
  VueUiStackbarEmitCopyAlt,
63
68
  VueUiZoomState,
64
69
  VueUiEmitZoom,
70
+ VueUiStackbarWaterfallKind,
71
+ VueUiStackbarStandardDatasetItem,
72
+ VueUiStackbarDatasetItemWaterfallSeries,
73
+ VueUiStackbarWaterfallSegment,
74
+ VueUiStackbarWaterfallDatasetItem,
65
75
  };
66
76
 
67
77
  declare const VueUiStackbarBase: DefineComponent<
@@ -725,6 +725,88 @@ function e(e = {}) {
725
725
  ...O,
726
726
  position: "bottom"
727
727
  },
728
+ waterfall: {
729
+ bars: {
730
+ gapRatio: .5,
731
+ borderRadius: 0,
732
+ strokeWidth: 1,
733
+ stroke: m,
734
+ gradient: {
735
+ show: !0,
736
+ intensity: 20
737
+ }
738
+ },
739
+ colors: {
740
+ useSeriesColor: !0,
741
+ positive: "#36A783",
742
+ negative: "#E76F51",
743
+ total: "#4C7899",
744
+ subtotal: "#8192B0",
745
+ neutral: "#A3A3A3"
746
+ },
747
+ connectors: {
748
+ show: !0,
749
+ stroke: "#8B8B8B",
750
+ strokeWidth: 1,
751
+ strokeDasharray: "3 3",
752
+ adaptToRadius: !1,
753
+ inset: 0
754
+ },
755
+ categoryLabels: {
756
+ show: !0,
757
+ fontSize: b._14,
758
+ color: t,
759
+ bold: !1,
760
+ rotation: 0,
761
+ offsetY: 0
762
+ },
763
+ segmentLabels: {
764
+ show: !0,
765
+ fontSize: b._14,
766
+ bold: !1,
767
+ color: t,
768
+ adaptColorToBackground: !0,
769
+ minHeight: 14,
770
+ minWidth: 26,
771
+ showZero: !1,
772
+ prefix: "",
773
+ suffix: "",
774
+ rounding: 0,
775
+ formatter: null
776
+ },
777
+ stepLabels: {
778
+ show: !0,
779
+ fontSize: b._14,
780
+ color: t,
781
+ bold: !1,
782
+ prefix: "",
783
+ suffix: "",
784
+ rounding: 0,
785
+ offset: 0,
786
+ showPlusSign: !1,
787
+ showZero: !0,
788
+ useBalanceForTotals: !0,
789
+ formatter: null
790
+ },
791
+ tooltip: {
792
+ showBalance: !0,
793
+ showChange: !0,
794
+ showStart: !1,
795
+ balanceTranslation: "Balance",
796
+ changeTranslation: "Change",
797
+ startTranslation: "Previous balance",
798
+ totalTranslation: "Total",
799
+ subtotalTranslation: "Subtotal",
800
+ rounding: 0
801
+ },
802
+ table: {
803
+ showKind: !0,
804
+ showBalance: !0,
805
+ kindTranslation: "Type",
806
+ balanceTranslation: "Balance",
807
+ changeTranslation: "Change"
808
+ }
809
+ },
728
810
  zoom: {
729
811
  ...L,
730
812
  minimap: R,
@@ -1,4 +1,4 @@
1
- import { C as e, tn as t } from "./lib-DTiqmM1G.js";
1
+ import { C as e, nn as t } from "./lib-D4wK6ljP.js";
2
2
  //#region src/useNestedProp.js
3
3
  function n({ defaultConfig: n, userConfig: r }) {
4
4
  if (!Object.keys(r || {}).length) return n;
@@ -1,4 +1,4 @@
1
- import { t as e } from "./useConfig-DObkR9Aa.js";
1
+ import { t as e } from "./useConfig-D_6ZrPMD.js";
2
2
  import { computed as t, isRef as n, markRaw as r, watchEffect as i } from "vue";
3
3
  //#region src/getVueDataUiConfig.js
4
4
  var a = /* @__PURE__ */ "vue_ui_3d_bar.vue_ui_accordion.vue_ui_age_pyramid.vue_ui_annotator.vue_ui_bullet.vue_ui_bump.vue_ui_candlestick.vue_ui_carousel_table.vue_ui_chestnut.vue_ui_chord.vue_ui_circle_pack.vue_ui_cursor.vue_ui_dag.vue_ui_dashboard.vue_ui_digits.vue_ui_donut.vue_ui_donut_evolution.vue_ui_dumbbell.vue_ui_flow.vue_ui_funnel.vue_ui_galaxy.vue_ui_gauge.vue_ui_geo.vue_ui_gizmo.vue_ui_heatmap.vue_ui_hill.vue_ui_history_plot.vue_ui_horizontal_bar.vue_ui_kpi.vue_ui_label.vue_ui_mini_loader.vue_ui_molecule.vue_ui_mood_radar.vue_ui_nested_donuts.vue_ui_onion.vue_ui_parallel_coordinate_plot.vue_ui_quadrant.vue_ui_quick_chart.vue_ui_radar.vue_ui_rating.vue_ui_relation_circle.vue_ui_ridgeline.vue_ui_rings.vue_ui_scatter.vue_ui_skeleton.vue_ui_smiley.vue_ui_spark_trend.vue_ui_sparkbar.vue_ui_sparkgauge.vue_ui_sparkhistogram.vue_ui_sparkline.vue_ui_sparkstackbar.vue_ui_stackbar.vue_ui_stackline.vue_ui_strip_plot.vue_ui_table.vue_ui_table_heatmap.vue_ui_table_sparkline.vue_ui_thermometer.vue_ui_timer.vue_ui_tiremarks.vue_ui_treemap.vue_ui_vertical_bar.vue_ui_waffle.vue_ui_wheel.vue_ui_word_cloud.vue_ui_world.vue_ui_xy.vue_ui_xy_canvas".split(".");
@@ -48,7 +48,7 @@ var s = Object.fromEntries(Object.entries(/* @__PURE__ */ Object.assign({
48
48
  "./themes/vue_ui_sparkhistogram.json": () => import("./vue_ui_sparkhistogram-BRgvKUH6.js").then((e) => e.n).then((e) => e.default),
49
49
  "./themes/vue_ui_sparkline.json": () => import("./vue_ui_sparkline-b9pEUyGF.js").then((e) => e.n).then((e) => e.default),
50
50
  "./themes/vue_ui_sparkstackbar.json": () => import("./vue_ui_sparkstackbar-BOjuQnZd.js").then((e) => e.n).then((e) => e.default),
51
- "./themes/vue_ui_stackbar.json": () => import("./vue_ui_stackbar-DdjDL6aq.js").then((e) => e.n).then((e) => e.default),
51
+ "./themes/vue_ui_stackbar.json": () => import("./vue_ui_stackbar-yQyvT4Su.js").then((e) => e.n).then((e) => e.default),
52
52
  "./themes/vue_ui_stackline.json": () => import("./vue_ui_stackline-Bh0RuInt.js").then((e) => e.n).then((e) => e.default),
53
53
  "./themes/vue_ui_strip_plot.json": () => import("./vue_ui_strip_plot-BaHbnnwN.js").then((e) => e.n).then((e) => e.default),
54
54
  "./themes/vue_ui_table_heatmap.json": () => import("./vue_ui_table_heatmap-w8vx5k6f.js").then((e) => e.n).then((e) => e.default),
@@ -5,7 +5,7 @@ function t({ elementId: t, fileName: n, canPrint: r = !0, options: i }) {
5
5
  async function c() {
6
6
  r && !a.value && (a.value = !0, clearTimeout(s.value), s.value = setTimeout(async () => {
7
7
  if (r) try {
8
- let { default: e } = await import("./pdf-CbSwKZjC.js");
8
+ let { default: e } = await import("./pdf-BzIQHx-F.js");
9
9
  await e({
10
10
  domElement: document.getElementById(t),
11
11
  fileName: n,
@@ -24,7 +24,7 @@ function t({ elementId: t, fileName: n, canPrint: r = !0, options: i }) {
24
24
  async function l() {
25
25
  r && !o.value && (o.value = !0, clearTimeout(s.value), s.value = setTimeout(async () => {
26
26
  if (r) try {
27
- let { default: e } = await import("./img--C0otIB0.js").then((e) => e.n);
27
+ let { default: e } = await import("./img-Bb5rHcpO.js").then((e) => e.n);
28
28
  await e({
29
29
  domElement: document.getElementById(t),
30
30
  fileName: n,
package/dist/utils.js CHANGED
@@ -1,30 +1,30 @@
1
- import { E as e, P as t, U as n, Z as r, dt as i, mt as a, n as o, pt as s, q as c, r as l, yt as u } from "./lib-DTiqmM1G.js";
2
- import { a as d, i as f, n as p, o as m, r as h, t as g } from "./exposedLib-CBUiJ5b-.js";
1
+ import { E as e, P as t, U as n, Z as r, bt as i, ft as a, ht as o, mt as s, n as c, q as l, r as u } from "./lib-D4wK6ljP.js";
2
+ import { a as d, i as f, n as p, o as m, r as h, t as g } from "./exposedLib-UNxZlnAS.js";
3
3
  import { t as _ } from "./patternUtils-CS7hn6at.js";
4
- import { i as v, n as y, r as b, t as x } from "./useObjectBindings-CPmyIJxB.js";
4
+ import { i as v, n as y, r as b, t as x } from "./useObjectBindings-DvasYMGu.js";
5
5
  //#region src/entries/utils.js
6
6
  var S = {
7
7
  applyDataCorrection: y,
8
8
  getVueDataUiConfig: v,
9
9
  getThemeConfig: b,
10
- abbreviate: o,
10
+ abbreviate: c,
11
11
  createPatternDef: _,
12
12
  createSmoothPath: t,
13
13
  createStraightPath: n,
14
- createTSpans: c,
14
+ createTSpans: l,
15
15
  createWordCloudDatasetFromPlainText: r,
16
- formatSmallValue: i,
16
+ formatSmallValue: a,
17
17
  getCumulativeAverage: s,
18
- getCumulativeMedian: a,
19
- getPalette: u,
18
+ getCumulativeMedian: o,
19
+ getPalette: i,
20
20
  lightenColor: h,
21
21
  darkenColor: p,
22
22
  shiftColorHue: m,
23
23
  mergeConfigs: d,
24
24
  useObjectBindings: x,
25
- adaptColorToBackground: l,
25
+ adaptColorToBackground: u,
26
26
  average: g,
27
27
  median: f
28
28
  };
29
29
  //#endregion
30
- export { o as abbreviate, l as adaptColorToBackground, y as applyDataCorrection, g as average, e as createColorWheel, _ as createPatternDef, t as createSmoothPath, n as createStraightPath, c as createTSpans, r as createWordCloudDatasetFromPlainText, p as darkenColor, S as default, i as formatSmallValue, s as getCumulativeAverage, a as getCumulativeMedian, u as getPalette, b as getThemeConfig, v as getVueDataUiConfig, h as lightenColor, f as median, d as mergeConfigs, m as shiftColorHue, x as useObjectBindings };
30
+ export { c as abbreviate, u as adaptColorToBackground, y as applyDataCorrection, g as average, e as createColorWheel, _ as createPatternDef, t as createSmoothPath, n as createStraightPath, l as createTSpans, r as createWordCloudDatasetFromPlainText, p as darkenColor, S as default, a as formatSmallValue, s as getCumulativeAverage, o as getCumulativeMedian, i as getPalette, b as getThemeConfig, v as getVueDataUiConfig, h as lightenColor, f as median, d as mergeConfigs, m as shiftColorHue, x as useObjectBindings };