vue-data-ui 2.9.2 → 2.9.4

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 (167) hide show
  1. package/dist/{Arrow-KvKZ2SBJ.cjs → Arrow-CgYR3FXj.cjs} +1 -1
  2. package/dist/{Arrow-DIEvl571.js → Arrow-CyxG4Ftp.js} +1 -1
  3. package/dist/{BaseIcon-BH4bJe82.js → BaseIcon-CnzdK8aV.js} +1 -1
  4. package/dist/{BaseIcon-C6L3qbQ8.cjs → BaseIcon-DKFlmXEr.cjs} +1 -1
  5. package/dist/{ColorPicker-Dnjy6olA.js → ColorPicker-CYa3DFQB.js} +3 -3
  6. package/dist/{ColorPicker-BmVm6Lqe.cjs → ColorPicker-PNrzRxPw.cjs} +1 -1
  7. package/dist/{DataTable-Cz1SDtvT.cjs → DataTable-CW5aC-bf.cjs} +1 -1
  8. package/dist/{DataTable-CaUgku7o.js → DataTable-aPT7Gaka.js} +2 -2
  9. package/dist/{Legend-Bl_MrORk.cjs → Legend-CUqaARo5.cjs} +1 -1
  10. package/dist/{Legend-BxZxsJCp.js → Legend-Cfm0ctX6.js} +2 -2
  11. package/dist/{PackageVersion-BEE_4baV.js → PackageVersion-BEjIamIO.js} +1 -1
  12. package/dist/{PackageVersion-BrUdYdIC.cjs → PackageVersion-DDIH1bP5.cjs} +1 -1
  13. package/dist/{PenAndPaper-DyGcaflS.cjs → PenAndPaper-B8Lcd-xn.cjs} +1 -1
  14. package/dist/{PenAndPaper-B3WdOAcZ.js → PenAndPaper-hBDvj9b2.js} +3 -3
  15. package/dist/{Shape-DuVb3Mev.cjs → Shape-Ca8AZL7o.cjs} +1 -1
  16. package/dist/{Shape-Hrc-BQkc.js → Shape-WIhUvB3A.js} +1 -1
  17. package/dist/{Slicer-2ZyRAred.js → Slicer-YYOuyiYz.js} +2 -2
  18. package/dist/{Slicer-DVYmI2V1.cjs → Slicer-yLatG2Q8.cjs} +1 -1
  19. package/dist/{Title-BGh0hWb2.cjs → Title-D7uuc4dY.cjs} +1 -1
  20. package/dist/{Title-CGY0WlAI.js → Title-DBZSWCMO.js} +1 -1
  21. package/dist/{Tooltip-DckFFIYj.cjs → Tooltip-D--0gUVq.cjs} +1 -1
  22. package/dist/{Tooltip-BfEhZz9k.js → Tooltip-DokmjO-n.js} +1 -1
  23. package/dist/{dom-to-png-BgJJyI6M.js → dom-to-png-DsYwe1no.js} +1 -1
  24. package/dist/{dom-to-png-DnnnXKpR.cjs → dom-to-png-J1vxOmp_.cjs} +1 -1
  25. package/dist/{img-DkpJ0ciT.js → img-COrXIjCE.js} +1 -1
  26. package/dist/{img-DT7UDEPk.cjs → img-CU6TyX57.cjs} +1 -1
  27. package/dist/{index-9ZicrZWM.js → index-Ldu7K4PE.js} +47 -40
  28. package/dist/index-SCeiWj92.cjs +9 -0
  29. package/dist/{pdf-zqw8E-me.js → pdf-B9y2xWfS.js} +18 -18
  30. package/dist/pdf-BujZw1ZQ.cjs +1 -0
  31. package/dist/style.css +1 -1
  32. package/dist/types/vue-data-ui.d.cts +2 -0
  33. package/dist/types/vue-data-ui.d.ts +2 -0
  34. package/dist/{useNestedProp-BS9eJthK.cjs → useNestedProp-BV2kijyF.cjs} +1 -1
  35. package/dist/{useNestedProp-s1XZrtPS.js → useNestedProp-WCQEv2hV.js} +1 -1
  36. package/dist/{usePrinter-D7IXLE53.js → usePrinter-Bca_ZkY4.js} +3 -3
  37. package/dist/{usePrinter-vFXYgZiT.cjs → usePrinter-CWjBWUyP.cjs} +1 -1
  38. package/dist/{vue-data-ui-gEqI-hOT.js → vue-data-ui-BQay3z7m.js} +61 -61
  39. package/dist/{vue-data-ui-CNieT2ov.cjs → vue-data-ui-BmmN2NNv.cjs} +1 -1
  40. package/dist/vue-data-ui.cjs +1 -1
  41. package/dist/vue-data-ui.js +18 -18
  42. package/dist/{vue-ui-3d-bar-DX5baNUz.cjs → vue-ui-3d-bar-BRTXPLII.cjs} +1 -1
  43. package/dist/{vue-ui-3d-bar-Sbk5MT1S.js → vue-ui-3d-bar-CB7Pf9zo.js} +9 -9
  44. package/dist/{vue-ui-accordion-DIMalTE4.cjs → vue-ui-accordion-BL41vY_P.cjs} +1 -1
  45. package/dist/{vue-ui-accordion-62KnRfCb.js → vue-ui-accordion-BeqSE4u4.js} +3 -3
  46. package/dist/{vue-ui-age-pyramid-DfuEC7WE.cjs → vue-ui-age-pyramid-Cyryx6dt.cjs} +1 -1
  47. package/dist/{vue-ui-age-pyramid-BkhVyOTM.js → vue-ui-age-pyramid-DXOH1De2.js} +10 -10
  48. package/dist/vue-ui-annotator-47R4n6BM.cjs +371 -0
  49. package/dist/{vue-ui-annotator-CrwbL3rn.js → vue-ui-annotator-pqbJ1XeI.js} +43 -43
  50. package/dist/{vue-ui-bullet-BVr_zBo7.js → vue-ui-bullet-C4nINrVz.js} +8 -8
  51. package/dist/{vue-ui-bullet-TmXeLFPZ.cjs → vue-ui-bullet-CrWSjpKP.cjs} +1 -1
  52. package/dist/{vue-ui-candlestick-BArypZ1A.js → vue-ui-candlestick-B7BBpXBZ.js} +11 -11
  53. package/dist/{vue-ui-candlestick-BFJ8I4sb.cjs → vue-ui-candlestick-CwCEV4Dk.cjs} +1 -1
  54. package/dist/{vue-ui-carousel-table-B1i5b5xU.cjs → vue-ui-carousel-table-8pfD4UOc.cjs} +1 -1
  55. package/dist/{vue-ui-carousel-table-CqWp06Xz.js → vue-ui-carousel-table-Dmcbfq6Q.js} +4 -4
  56. package/dist/{vue-ui-chestnut-B8oiuRgc.cjs → vue-ui-chestnut-VcW4bYRK.cjs} +1 -1
  57. package/dist/{vue-ui-chestnut-EHo3sSMv.js → vue-ui-chestnut-nOXmtueI.js} +8 -8
  58. package/dist/{vue-ui-circle-pack-kx10AVM0.js → vue-ui-circle-pack-Dbqw_xRR.js} +9 -9
  59. package/dist/{vue-ui-circle-pack-BGLhSNyo.cjs → vue-ui-circle-pack-XI4kOOSC.cjs} +1 -1
  60. package/dist/{vue-ui-cursor-C8qofYJh.js → vue-ui-cursor-BXXcSCXO.js} +2 -2
  61. package/dist/{vue-ui-cursor-H77Z-m2e.cjs → vue-ui-cursor-DOZ1d1Gv.cjs} +1 -1
  62. package/dist/{vue-ui-dashboard-4YFqFygh.cjs → vue-ui-dashboard-CDWd7y-K.cjs} +1 -1
  63. package/dist/{vue-ui-dashboard-Bn2slDQx.js → vue-ui-dashboard-Dj5UeEUe.js} +62 -62
  64. package/dist/{vue-ui-digits-DbSV0D-j.cjs → vue-ui-digits-CMBdp5dX.cjs} +1 -1
  65. package/dist/{vue-ui-digits-Cv__rzXF.js → vue-ui-digits-DOX9plTt.js} +2 -2
  66. package/dist/{vue-ui-donut-Bno5POxU.cjs → vue-ui-donut-DCjz_RJx.cjs} +1 -1
  67. package/dist/{vue-ui-donut-D_CLR29p.js → vue-ui-donut-V6slQS8W.js} +28 -28
  68. package/dist/{vue-ui-donut-evolution-BgNwQ1J8.js → vue-ui-donut-evolution-BHBEHaBz.js} +40 -40
  69. package/dist/{vue-ui-donut-evolution-Dg6laY3D.cjs → vue-ui-donut-evolution-DJQiBc2K.cjs} +1 -1
  70. package/dist/{vue-ui-dumbbell-C5Z8rSTk.js → vue-ui-dumbbell-c6ZUS2gn.js} +10 -10
  71. package/dist/{vue-ui-dumbbell-DWQl4sxh.cjs → vue-ui-dumbbell-qP17lDtS.cjs} +1 -1
  72. package/dist/{vue-ui-flow-DKS1oZHc.js → vue-ui-flow-BftL5SCF.js} +36 -36
  73. package/dist/{vue-ui-flow-D0t3MSCU.cjs → vue-ui-flow-NFVQYGwe.cjs} +1 -1
  74. package/dist/{vue-ui-funnel-CqhhBoYG.cjs → vue-ui-funnel-Bm78Fuif.cjs} +1 -1
  75. package/dist/{vue-ui-funnel-r57KM4Wi.js → vue-ui-funnel-BxnyO-cX.js} +9 -9
  76. package/dist/{vue-ui-galaxy-CLIAdqkr.js → vue-ui-galaxy-ErKBaW-Q.js} +35 -35
  77. package/dist/{vue-ui-galaxy-BeQSEKLG.cjs → vue-ui-galaxy-PqPqi1rL.cjs} +1 -1
  78. package/dist/{vue-ui-gauge-CcTneeaQ.cjs → vue-ui-gauge-5uNTa5st.cjs} +1 -1
  79. package/dist/{vue-ui-gauge-BQ4S55FH.js → vue-ui-gauge-CC4gRmiU.js} +19 -19
  80. package/dist/{vue-ui-gizmo-B_rVeweF.cjs → vue-ui-gizmo-Cke9n_3I.cjs} +1 -1
  81. package/dist/{vue-ui-gizmo-DACB7BcV.js → vue-ui-gizmo-DeeQXNxB.js} +3 -3
  82. package/dist/{vue-ui-heatmap-DBtRfAWr.cjs → vue-ui-heatmap-DIkfrZTI.cjs} +1 -1
  83. package/dist/{vue-ui-heatmap-DNvbR504.js → vue-ui-heatmap-DVmGDa29.js} +33 -33
  84. package/dist/{vue-ui-history-plot-MfnR_Gg0.js → vue-ui-history-plot-BdH6ipQR.js} +11 -11
  85. package/dist/{vue-ui-history-plot-B1zXFmOc.cjs → vue-ui-history-plot-Bg9LcJ-j.cjs} +1 -1
  86. package/dist/{vue-ui-kpi-DDMCa5qe.js → vue-ui-kpi-DZm8eIsy.js} +3 -3
  87. package/dist/{vue-ui-kpi-Dm71j1ZP.cjs → vue-ui-kpi-O8tB2EAC.cjs} +1 -1
  88. package/dist/{vue-ui-mini-loader-CROjVz1w.cjs → vue-ui-mini-loader-B74fpNsK.cjs} +1 -1
  89. package/dist/{vue-ui-mini-loader-mMxdW73Y.js → vue-ui-mini-loader-CF9PEaSJ.js} +2 -2
  90. package/dist/{vue-ui-molecule-BHUWRS5i.js → vue-ui-molecule-BzTuiwZn.js} +22 -22
  91. package/dist/{vue-ui-molecule-BulwtJre.cjs → vue-ui-molecule-CWTtY72k.cjs} +1 -1
  92. package/dist/{vue-ui-mood-radar-CUWTjV4S.js → vue-ui-mood-radar-Dc_RBdIt.js} +11 -11
  93. package/dist/{vue-ui-mood-radar-BhS9UcqE.cjs → vue-ui-mood-radar-DqpXi_vx.cjs} +1 -1
  94. package/dist/{vue-ui-nested-donuts-Db_lFOB1.cjs → vue-ui-nested-donuts-C9aOv8cV.cjs} +1 -1
  95. package/dist/{vue-ui-nested-donuts-BQk9K-uM.js → vue-ui-nested-donuts-DRMKAx-K.js} +11 -11
  96. package/dist/{vue-ui-onion-C38MS0We.cjs → vue-ui-onion-CQlidixa.cjs} +1 -1
  97. package/dist/{vue-ui-onion-CEP_SVGa.js → vue-ui-onion-DIp0iWEm.js} +11 -11
  98. package/dist/{vue-ui-parallel-coordinate-plot-DOER4ePV.cjs → vue-ui-parallel-coordinate-plot-BEJ7Hjd_.cjs} +1 -1
  99. package/dist/{vue-ui-parallel-coordinate-plot-DlIPqsBr.js → vue-ui-parallel-coordinate-plot-D2gzzyV6.js} +12 -12
  100. package/dist/{vue-ui-quadrant-BzA3R8WL.cjs → vue-ui-quadrant-BOaaj6gv.cjs} +1 -1
  101. package/dist/{vue-ui-quadrant-hEW2euTx.js → vue-ui-quadrant-DHRPPQzH.js} +40 -40
  102. package/dist/{vue-ui-quick-chart-D43_sxe7.js → vue-ui-quick-chart-Nf2FEMS_.js} +37 -37
  103. package/dist/{vue-ui-quick-chart-vCYn3Ycg.cjs → vue-ui-quick-chart-qDpGCH4Q.cjs} +1 -1
  104. package/dist/{vue-ui-radar-ea-S6hNo.js → vue-ui-radar-BhLZ-5X_.js} +12 -12
  105. package/dist/{vue-ui-radar-CrPGLRgF.cjs → vue-ui-radar-D9u86iM_.cjs} +1 -1
  106. package/dist/{vue-ui-rating-Cr7OYhms.js → vue-ui-rating-B1kvbIOJ.js} +10 -10
  107. package/dist/{vue-ui-rating-DQhxPqnC.cjs → vue-ui-rating-hXwiZ658.cjs} +1 -1
  108. package/dist/{vue-ui-relation-circle-BD63yYPk.js → vue-ui-relation-circle-DlegAoHJ.js} +7 -7
  109. package/dist/{vue-ui-relation-circle-Ci_zTDv6.cjs → vue-ui-relation-circle-DvAO3fkO.cjs} +1 -1
  110. package/dist/{vue-ui-rings-Dup7cJhU.js → vue-ui-rings-DTILCifX.js} +22 -22
  111. package/dist/{vue-ui-rings-o_5TelyF.cjs → vue-ui-rings-ZsNoADO7.cjs} +1 -1
  112. package/dist/{vue-ui-scatter-CpUvuCj4.js → vue-ui-scatter-CVn7AqGT.js} +44 -44
  113. package/dist/{vue-ui-scatter-D1p3fd_k.cjs → vue-ui-scatter-DS8YLaTC.cjs} +1 -1
  114. package/dist/{vue-ui-skeleton-BjminQzl.js → vue-ui-skeleton-CLrl96Gp.js} +57 -57
  115. package/dist/{vue-ui-skeleton-BGykkjYQ.cjs → vue-ui-skeleton-D4hXCz3m.cjs} +1 -1
  116. package/dist/{vue-ui-smiley-BtpjYEEP.cjs → vue-ui-smiley-BKEs5-OT.cjs} +1 -1
  117. package/dist/{vue-ui-smiley-CFKscwS7.js → vue-ui-smiley-CoyijT0I.js} +2 -2
  118. package/dist/{vue-ui-spark-trend-CRcDMTzh.cjs → vue-ui-spark-trend-DTwDre2O.cjs} +1 -1
  119. package/dist/{vue-ui-spark-trend-wAANMLZ4.js → vue-ui-spark-trend-JmorBpIp.js} +5 -5
  120. package/dist/{vue-ui-sparkbar-BTUT-uco.js → vue-ui-sparkbar-BcwjiTbk.js} +4 -4
  121. package/dist/{vue-ui-sparkbar-BVh9AOEX.cjs → vue-ui-sparkbar-CV3V99Ed.cjs} +1 -1
  122. package/dist/{vue-ui-sparkgauge-B_N07sh6.cjs → vue-ui-sparkgauge-BZyFxTJ1.cjs} +1 -1
  123. package/dist/{vue-ui-sparkgauge-DXxoZfG0.js → vue-ui-sparkgauge-CCMnqCx0.js} +9 -9
  124. package/dist/{vue-ui-sparkhistogram-cSUQzQ6o.js → vue-ui-sparkhistogram-BxpQOwco.js} +5 -5
  125. package/dist/{vue-ui-sparkhistogram-CHbsbOtx.cjs → vue-ui-sparkhistogram-vlx7Cb26.cjs} +1 -1
  126. package/dist/{vue-ui-sparkline-Cr5KANZ_.cjs → vue-ui-sparkline-BHjhZFcb.cjs} +1 -1
  127. package/dist/{vue-ui-sparkline-_wbJMVVr.js → vue-ui-sparkline-CkEtaWH1.js} +15 -15
  128. package/dist/{vue-ui-sparkstackbar-SRvQImaw.cjs → vue-ui-sparkstackbar-BKXkw6NY.cjs} +1 -1
  129. package/dist/{vue-ui-sparkstackbar-D93-i-tg.js → vue-ui-sparkstackbar-Eip-31FE.js} +5 -5
  130. package/dist/{vue-ui-stackbar-CnZsiebh.js → vue-ui-stackbar-B6taUxpU.js} +13 -13
  131. package/dist/{vue-ui-stackbar-D3KicC2k.cjs → vue-ui-stackbar-CYZcA9l8.cjs} +1 -1
  132. package/dist/{vue-ui-strip-plot-Dz8doRxV.cjs → vue-ui-strip-plot-Cz75jy3H.cjs} +1 -1
  133. package/dist/{vue-ui-strip-plot-Dv-C246v.js → vue-ui-strip-plot-h63h6xVb.js} +13 -14
  134. package/dist/vue-ui-table-BfACPcxW.cjs +14 -0
  135. package/dist/vue-ui-table-DF8MfQ59.js +1482 -0
  136. package/dist/{vue-ui-table-heatmap-C8Vi0yvC.cjs → vue-ui-table-heatmap-CDgDaJqX.cjs} +1 -1
  137. package/dist/{vue-ui-table-heatmap-CYuY_cv8.js → vue-ui-table-heatmap-mEcSMZHP.js} +4 -4
  138. package/dist/{vue-ui-table-sparkline-C4REu4fs.cjs → vue-ui-table-sparkline-Heo61EuM.cjs} +1 -1
  139. package/dist/{vue-ui-table-sparkline-B76wcNNt.js → vue-ui-table-sparkline-hJtU88Q0.js} +5 -5
  140. package/dist/{vue-ui-thermometer-DvNlCnAL.cjs → vue-ui-thermometer-BbzxbL6e.cjs} +1 -1
  141. package/dist/{vue-ui-thermometer-DiZILoae.js → vue-ui-thermometer-b_eOMDGK.js} +7 -7
  142. package/dist/{vue-ui-timer-DxYKc_c7.js → vue-ui-timer-CuXuiuA_.js} +5 -5
  143. package/dist/{vue-ui-timer-DUN6vOs9.cjs → vue-ui-timer-bfXj2Xo1.cjs} +1 -1
  144. package/dist/{vue-ui-tiremarks-D52pzq2N.js → vue-ui-tiremarks-BRcnMsCk.js} +7 -7
  145. package/dist/{vue-ui-tiremarks-BV7MTnlS.cjs → vue-ui-tiremarks-_io5f_yy.cjs} +1 -1
  146. package/dist/{vue-ui-treemap-gQhTSE_P.cjs → vue-ui-treemap-6-kgqJkN.cjs} +1 -1
  147. package/dist/{vue-ui-treemap-CNbw7CLO.js → vue-ui-treemap-B1udyPJO.js} +12 -12
  148. package/dist/{vue-ui-vertical-bar-ClJttiMf.cjs → vue-ui-vertical-bar-BBiuT_QA.cjs} +1 -1
  149. package/dist/{vue-ui-vertical-bar-B_nsQpZa.js → vue-ui-vertical-bar-DdxNhCdC.js} +12 -12
  150. package/dist/{vue-ui-waffle-CLfNk30s.js → vue-ui-waffle-Bkvw0dyy.js} +37 -37
  151. package/dist/{vue-ui-waffle-BYBctA3T.cjs → vue-ui-waffle-Dqy7BytZ.cjs} +1 -1
  152. package/dist/{vue-ui-wheel-4Yit1iRJ.js → vue-ui-wheel-B5M90GQn.js} +7 -7
  153. package/dist/{vue-ui-wheel-Bj6lxA5M.cjs → vue-ui-wheel-DM6r0w_a.cjs} +1 -1
  154. package/dist/{vue-ui-word-cloud-D94M5Lsf.js → vue-ui-word-cloud-B1u5uWI-.js} +10 -10
  155. package/dist/{vue-ui-word-cloud-AZ1OJrxo.cjs → vue-ui-word-cloud-BeLBUUGY.cjs} +1 -1
  156. package/dist/{vue-ui-world-rkzHCxBG.js → vue-ui-world-CdCSnlhK.js} +12 -12
  157. package/dist/{vue-ui-world-BwcOIaHG.cjs → vue-ui-world-UyenY3MD.cjs} +2 -2
  158. package/dist/{vue-ui-xy-DJiY5DSr.cjs → vue-ui-xy-B-NzV2X6.cjs} +2 -2
  159. package/dist/{vue-ui-xy-DXgpQ8zr.js → vue-ui-xy-CFq6SBzu.js} +34 -35
  160. package/dist/{vue-ui-xy-canvas-CAfAcJWj.js → vue-ui-xy-canvas-CWsJDLOK.js} +12 -12
  161. package/dist/{vue-ui-xy-canvas-DsuvSNM3.cjs → vue-ui-xy-canvas-Df-vG-MU.cjs} +1 -1
  162. package/package.json +1 -1
  163. package/dist/index-DjDcQ8pe.cjs +0 -9
  164. package/dist/pdf-DuohwkFu.cjs +0 -1
  165. package/dist/vue-ui-annotator-BGWZZUN7.cjs +0 -371
  166. package/dist/vue-ui-table-Dkoj_poY.js +0 -1466
  167. package/dist/vue-ui-table-iE1t-zP9.cjs +0 -14
@@ -0,0 +1,1482 @@
1
+ import { a3 as z, A as P, l as T, r as U, f as V, h as X, q as j, z as Y, d as W, G as J, u as K, p as Z } from "./index-Ldu7K4PE.js";
2
+ import q from "./vue-ui-xy-CFq6SBzu.js";
3
+ import Q from "./vue-ui-donut-V6slQS8W.js";
4
+ import { resolveComponent as x, createElementBlock as u, openBlock as c, normalizeStyle as g, createElementVNode as a, createCommentVNode as b, toDisplayString as d, Fragment as I, renderList as _, normalizeClass as p, createTextVNode as w, withDirectives as O, vModelText as S, withKeys as L, withModifiers as A, vModelSelect as $, createBlock as E, createVNode as ee } from "vue";
5
+ import { _ as te } from "./_plugin-vue_export-helper-CHgC5LLL.js";
6
+ const se = {
7
+ name: "vue-ui-table",
8
+ props: {
9
+ config: {
10
+ type: Object,
11
+ default() {
12
+ return {};
13
+ }
14
+ },
15
+ dataset: {
16
+ type: Object,
17
+ default() {
18
+ return {};
19
+ }
20
+ }
21
+ },
22
+ components: { VueUiXy: q, VueUiDonut: Q },
23
+ data() {
24
+ return {
25
+ uid: `vue-ui-table-${Math.random()}`,
26
+ bodyCopy: JSON.parse(JSON.stringify(this.dataset.body)).map((s, r) => ({
27
+ ...s,
28
+ absoluteIndex: r
29
+ })),
30
+ buttonTimeout: null,
31
+ canMoveChart: !1,
32
+ chart: {
33
+ height: 316,
34
+ type: "bar",
35
+ width: 512
36
+ },
37
+ constants: {
38
+ ASC: 1,
39
+ BAR: "bar",
40
+ DATE: "date",
41
+ DESC: -1,
42
+ DONUT: "donut",
43
+ LINE: "line",
44
+ NUMERIC: "numeric",
45
+ PERCENTAGE: "percentage",
46
+ TEXT: "text"
47
+ },
48
+ clientX: 100,
49
+ clientY: 100,
50
+ dragOffsetX: 0,
51
+ dragOffsetY: 0,
52
+ modalWidth: 400,
53
+ modalHeight: 200,
54
+ cssClass: {
55
+ CELL: "smart-td-selected",
56
+ FIRST_TD: "smart-td-selected-first",
57
+ LAST_TD: "smart-td-selected-last",
58
+ ROW: "smart-td-selected-neighbor"
59
+ },
60
+ currentDonut: void 0,
61
+ currentFilter: void 0,
62
+ currentSearch: void 0,
63
+ currentSelectionSpan: {
64
+ col: void 0,
65
+ rows: []
66
+ },
67
+ currentPage: 0,
68
+ dates: {},
69
+ filteredDatesIndexes: {},
70
+ hasNaN: {},
71
+ iconColor: "#2D353C",
72
+ iconSize: 20,
73
+ immutableRangeFilters: {},
74
+ isExportRequest: !1,
75
+ isLoading: !1,
76
+ itemsPerPage: this.config.rowsPerPage ? this.config.rowsPerPage : 25,
77
+ multiselects: {},
78
+ paginatorOptions: [.../* @__PURE__ */ new Set([10, 25, 50, 100, 250, 500, this.config.rowsPerPage ? this.config.rowsPerPage : 25, this.dataset.body.length])].sort((s, r) => s - r),
79
+ palette: Z,
80
+ percentages: {},
81
+ rafId: null,
82
+ rangeFilters: {},
83
+ searches: {},
84
+ selectedColumn: void 0,
85
+ selectedDonutCategory: void 0,
86
+ selectedPlot: void 0,
87
+ showChart: !1,
88
+ showDonutOptions: !1,
89
+ sorts: {},
90
+ tableBody: JSON.parse(JSON.stringify(this.dataset.body)).map((s, r) => ({
91
+ ...s,
92
+ absoluteIndex: r
93
+ })),
94
+ tableHead: JSON.parse(JSON.stringify(this.dataset.header)).map((s) => ({
95
+ average: Object.hasOwn(s, "average") ? s.average : !1,
96
+ decimals: Object.hasOwn(s, "decimals") ? s.decimals : 0,
97
+ isMultiselect: Object.hasOwn(s, "isMultiselect") ? s.isMultiselect : !1,
98
+ isPercentage: Object.hasOwn(s, "isPercentage") ? s.isPercentage : !1,
99
+ isSearch: Object.hasOwn(s, "isSearch") ? s.isSearch : !1,
100
+ isSort: Object.hasOwn(s, "isSort") ? s.isSort : !1,
101
+ name: s.name,
102
+ // this attribute is mandatory
103
+ percentageTo: Object.hasOwn(s, "percentageTo") ? s.percentageTo : void 0,
104
+ prefix: Object.hasOwn(s, "prefix") ? s.prefix : "",
105
+ rangeFilter: Object.hasOwn(s, "rangeFilter") ? s.rangeFilter : !1,
106
+ suffix: Object.hasOwn(s, "suffix") ? s.suffix : "",
107
+ sum: Object.hasOwn(s, "sum") ? s.sum : !1,
108
+ type: s.type
109
+ // this attribute is mandatory
110
+ }))
111
+ };
112
+ },
113
+ mounted() {
114
+ if (this.dataset.header.length === 0)
115
+ throw new Error(`vue-ui-table error: missing header data.
116
+ Provide an array of objects of type:
117
+ {
118
+ name: string;
119
+ type: string; ('text' | 'numeric' | 'date')
120
+ average: boolean;
121
+ decimals: number | undefined;
122
+ sum: boolean;
123
+ isSort:boolean;
124
+ isSearch: boolean;
125
+ isMultiselect: boolean;
126
+ isPercentage: boolean;
127
+ percentageTo: string; (or '')
128
+ }`);
129
+ if (this.dataset.body.length === 0)
130
+ throw new Error("vue-ui-table error: missing body data");
131
+ this.isLoading = !0, this.promiseWithAsyncFunction(this.prepareBodyCopy, () => {
132
+ this.$forceUpdate(), this.isLoading = !1;
133
+ }), document.addEventListener("keydown", (n) => {
134
+ const s = document.activeElement;
135
+ (s && Array.from(s.classList).includes("td-focusable") && n.key.includes("Arrow") || n.code === "Space") && n.preventDefault();
136
+ });
137
+ },
138
+ watch: {
139
+ showChart: function(n) {
140
+ n && this.$nextTick(() => {
141
+ this.closeDragElement();
142
+ });
143
+ },
144
+ dataset: {
145
+ handler(n) {
146
+ this.isLoading = !0, this.bodyCopy = JSON.parse(JSON.stringify(n.body)).map((s, r) => ({
147
+ ...s,
148
+ absoluteIndex: r
149
+ })), this.tableBody = JSON.parse(JSON.stringify(n.body)).map((s, r) => ({
150
+ ...s,
151
+ absoluteIndex: r
152
+ })), this.tableHead = JSON.parse(JSON.stringify(n.header)).map((s) => ({
153
+ average: Object.hasOwn(s, "average") ? s.average : !1,
154
+ decimals: Object.hasOwn(s, "decimals") ? s.decimals : 0,
155
+ isMultiselect: Object.hasOwn(s, "isMultiselect") ? s.isMultiselect : !1,
156
+ isPercentage: Object.hasOwn(s, "isPercentage") ? s.isPercentage : !1,
157
+ isSearch: Object.hasOwn(s, "isSearch") ? s.isSearch : !1,
158
+ isSort: Object.hasOwn(s, "isSort") ? s.isSort : !1,
159
+ name: s.name,
160
+ percentageTo: Object.hasOwn(s, "percentageTo") ? s.percentageTo : void 0,
161
+ prefix: Object.hasOwn(s, "prefix") ? s.prefix : "",
162
+ rangeFilter: Object.hasOwn(s, "rangeFilter") ? s.rangeFilter : !1,
163
+ suffix: Object.hasOwn(s, "suffix") ? s.suffix : "",
164
+ sum: Object.hasOwn(s, "sum") ? s.sum : !1,
165
+ type: s.type
166
+ })), this.currentSelectionSpan = { col: void 0, rows: [] }, this.selectedColumn = void 0, this.itemsPerPage = this.config.rowsPerPage ? this.config.rowsPerPage : 25, this.percentages = {}, this.dates = {}, this.filteredDatesIndexes = {}, this.hasNaN = {}, this.immutableRangeFilters = {}, this.rangeFilters = {}, this.multiselects = {}, this.searches = {}, this.sorts = {}, this.showChart = !1, this.currentDonut = void 0, this.selectedDonutCategory = void 0, this.selectedPlot = void 0, this.showDonutOptions = !1, this.currentSelectionSpan.col = void 0, this.currentSelectionSpan.rows = [], this.promiseWithAsyncFunction(this.prepareBodyCopy, () => {
167
+ this.$forceUpdate(), this.updateCurrentPage(), this.isLoading = !1;
168
+ });
169
+ },
170
+ deep: !0,
171
+ // In case dataset.body/header are updated in-place
172
+ immediate: !1
173
+ }
174
+ },
175
+ computed: {
176
+ availableDonutCategories() {
177
+ return Object.keys(this.multiselects).map((n) => ({
178
+ index: n,
179
+ name: this.dataset.header[n].name,
180
+ options: this.multiselects[n]
181
+ }));
182
+ },
183
+ canChart() {
184
+ return this.FINAL_CONFIG.useChart && this.currentSelectionSpan.rows.length > 1;
185
+ },
186
+ chartData() {
187
+ if (!this.canChart) return [];
188
+ const n = 316, s = 512, r = this.currentSelectionSpan.rows.length, i = s / r, t = Math.max(...this.currentSelectionSpan.rows.map((v) => v.value)), e = Math.min(...this.currentSelectionSpan.rows.map((v) => v.value)), y = this.dataset.header[this.currentSelectionSpan.col].isPercentage && this.dataset.header[this.currentSelectionSpan.col].percentageTo, f = this.chart.type === this.constants.DONUT && this.selectedDonutCategory && this.selectedDonutCategory.name, l = this.dataset.header[this.currentSelectionSpan.col].name + (y ? ` / ${this.dataset.header[this.percentages[this.currentSelectionSpan.col].referenceIndex].name}` : "") + (f ? ` ${this.FINAL_CONFIG.translations.by} ${this.selectedDonutCategory.name}` : ""), o = this.dataset.header[this.currentSelectionSpan.col].prefix, h = this.dataset.header[this.currentSelectionSpan.col].suffix, m = [
189
+ {
190
+ name: l,
191
+ series: this.currentSelectionSpan.rows.map((v) => v.value),
192
+ type: "line",
193
+ useProgression: !0,
194
+ smooth: this.FINAL_CONFIG.style.chart.layout.line.smooth,
195
+ color: this.FINAL_CONFIG.style.chart.layout.line.stroke,
196
+ useArea: this.FINAL_CONFIG.style.chart.layout.line.useArea
197
+ }
198
+ ], F = [
199
+ {
200
+ name: l,
201
+ series: this.currentSelectionSpan.rows.map((v) => v.value),
202
+ type: "bar",
203
+ useProgression: !0,
204
+ color: this.FINAL_CONFIG.style.chart.layout.bar.fill
205
+ }
206
+ ], k = this.FINAL_CONFIG.style.chart.modal.backgroundColor, N = this.adaptColorToBackground(k), C = this.dataset.header[this.currentSelectionSpan.col].decimals, B = {
207
+ chart: {
208
+ backgroundColor: k,
209
+ color: N,
210
+ labels: {
211
+ fontSize: 18,
212
+ prefix: o,
213
+ suffix: h
214
+ },
215
+ grid: {
216
+ stroke: T(N, 0.5),
217
+ labels: {
218
+ color: N,
219
+ xAxisLabels: { show: !1 }
220
+ }
221
+ },
222
+ highlighter: {
223
+ color: N
224
+ },
225
+ legend: {
226
+ color: N
227
+ },
228
+ padding: {
229
+ left: 72,
230
+ bottom: 24,
231
+ top: 36
232
+ },
233
+ title: {
234
+ text: l,
235
+ color: N,
236
+ fontSize: 18
237
+ },
238
+ tooltip: {
239
+ showTimeLabel: !1,
240
+ backgroundOpacity: 30,
241
+ color: N,
242
+ backgroundColor: k,
243
+ showPercentage: !1,
244
+ roundingValue: C
245
+ },
246
+ userOptions: {
247
+ position: "left",
248
+ buttons: {
249
+ pdf: !1,
250
+ csv: !1,
251
+ table: !1,
252
+ annotator: !1
253
+ }
254
+ },
255
+ zoom: { show: !1 }
256
+ },
257
+ line: {
258
+ labels: {
259
+ show: !0,
260
+ color: N,
261
+ rounding: C
262
+ },
263
+ dot: {
264
+ useSerieColor: !1,
265
+ fill: this.FINAL_CONFIG.style.chart.layout.line.plot.fill,
266
+ strokeWidth: this.FINAL_CONFIG.style.chart.layout.line.plot.strokeWidth
267
+ }
268
+ },
269
+ bar: {
270
+ useGradient: !1,
271
+ border: {
272
+ useSerieColor: !1,
273
+ stroke: this.FINAL_CONFIG.style.chart.layout.bar.stroke,
274
+ strokeWidth: this.FINAL_CONFIG.style.chart.layout.bar.strokeWidth
275
+ },
276
+ labels: {
277
+ show: !0,
278
+ color: N,
279
+ rounding: C
280
+ }
281
+ }
282
+ }, D = e >= 0 ? 0 : Math.abs(e), H = t + D, M = this.dataset.header[this.currentSelectionSpan.col].isPercentage, G = this.currentSelectionSpan.rows.map((v, R) => ({
283
+ x: i * R + i / 2,
284
+ y: (1 - (v.value + D) / H) * n,
285
+ value: M ? v.value * 100 : v.value,
286
+ suffix: M ? "%" : this.dataset.header[this.currentSelectionSpan.col].suffix ? this.dataset.header[this.currentSelectionSpan.col].suffix : "",
287
+ prefix: this.dataset.header[this.currentSelectionSpan.col].prefix ? this.dataset.header[this.currentSelectionSpan.col].prefix : "",
288
+ index: v.index,
289
+ absoluteValue: M ? Math.abs(v.value) * 100 : Math.abs(v.value)
290
+ }));
291
+ return {
292
+ donutConfig: {
293
+ userOptions: {
294
+ position: "left",
295
+ buttons: {
296
+ pdf: !1,
297
+ csv: !1,
298
+ table: !1,
299
+ annotator: !1
300
+ }
301
+ },
302
+ style: {
303
+ chart: {
304
+ backgroundColor: k,
305
+ color: N,
306
+ layout: {
307
+ curvedMarkers: !0,
308
+ donut: {
309
+ strokeWidth: 64
310
+ },
311
+ labels: {
312
+ dataLabels: {
313
+ suffix: M ? "%" : "",
314
+ prefix: o
315
+ },
316
+ value: {
317
+ rounding: C
318
+ },
319
+ percentage: {
320
+ color: N,
321
+ rounding: C
322
+ },
323
+ name: {
324
+ color: N
325
+ },
326
+ hollow: {
327
+ average: {
328
+ color: N,
329
+ text: this.FINAL_CONFIG.translations.average,
330
+ value: {
331
+ color: N
332
+ }
333
+ },
334
+ total: {
335
+ color: N,
336
+ offsetY: -12,
337
+ text: this.FINAL_CONFIG.translations.total,
338
+ value: {
339
+ color: N,
340
+ offsetY: -12
341
+ }
342
+ }
343
+ }
344
+ }
345
+ },
346
+ legend: {
347
+ backgroundColor: k,
348
+ color: N,
349
+ roundingValue: C,
350
+ roundingPercentage: C
351
+ },
352
+ padding: {
353
+ left: 12,
354
+ right: 12
355
+ },
356
+ title: {
357
+ text: l,
358
+ color: N,
359
+ fontSize: 18
360
+ },
361
+ tooltip: {
362
+ backgroundOpacity: 30,
363
+ color: N,
364
+ backgroundColor: k,
365
+ roundingValue: C,
366
+ roundingValue: C
367
+ }
368
+ }
369
+ }
370
+ },
371
+ xyConfig: B,
372
+ xyDatasetLine: m,
373
+ xyDatasetBar: F,
374
+ progression: G.length >= 2 ? this.calcLinearProgression(G) : !1
375
+ };
376
+ },
377
+ hasNumericTypes() {
378
+ return this.dataset.header.map((n) => n.type).includes(this.constants.NUMERIC);
379
+ },
380
+ icons() {
381
+ return {
382
+ arrowSort: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize}" height="${this.iconSize}" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M3 9l4 -4l4 4m-4 -4v14" /><path d="M21 15l-4 4l-4 -4m4 4v-14" /></svg>`,
383
+ bar: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize}" height="${this.iconSize}" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M3 12m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z" /><path d="M9 8m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v10a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z" /><path d="M15 4m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v14a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z" /><path d="M4 20l14 0" /></svg>`,
384
+ chart: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize}" height="${this.iconSize}" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M4 19l16 0" /><path d="M4 15l4 -6l4 2l4 -5l4 4" /></svg>`,
385
+ chevronDown: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize}" height="${this.iconSize}" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M6 9l6 6l6 -6" /></svg>`,
386
+ chevronLeft: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize * 1.6}" height="${this.iconSize * 1.6}" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M15 6l-6 6l6 6" /></svg>`,
387
+ chevronRight: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize * 1.6}" height="${this.iconSize * 1.6}" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M9 6l6 6l-6 6" /></svg>`,
388
+ donut: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize * 0.8}" height="${this.iconSize * 0.8}" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M12 3v5m4 4h5" /><path d="M8.929 14.582l-3.429 2.918" /><path d="M12 12m-4 0a4 4 0 1 0 8 0a4 4 0 1 0 -8 0" /><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0" /></svg>`,
389
+ export: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize}" height="${this.iconSize}" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M12.5 21h-7.5a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v7.5" /><path d="M3 10h18" /><path d="M10 3v18" /><path d="M16 19h6" /><path d="M19 16l3 3l-3 3" /></svg>`,
390
+ fileDownload: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize}" height="${this.iconSize}" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M14 3v4a1 1 0 0 0 1 1h4" /><path d="M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z" /><path d="M12 17v-6" /><path d="M9.5 14.5l2.5 2.5l2.5 -2.5" /></svg>`,
391
+ filter: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize}" height="${this.iconSize}" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M4 4h16v2.172a2 2 0 0 1 -.586 1.414l-4.414 4.414v7l-6 2v-8.5l-4.48 -4.928a2 2 0 0 1 -.52 -1.345v-2.227z" /></svg>`,
392
+ move: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize}" height="${this.iconSize}" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M18 9l3 3l-3 3" /><path d="M15 12h6" /><path d="M6 9l-3 3l3 3" /><path d="M3 12h6" /><path d="M9 18l3 3l3 -3" /><path d="M12 15v6" /><path d="M15 6l-3 -3l-3 3" /><path d="M12 3v6" /></svg>`,
393
+ sort09: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize}" height="${this.iconSize}" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M4 15l3 3l3 -3" /><path d="M7 6v12" /><path d="M17 3a2 2 0 0 1 2 2v3a2 2 0 1 1 -4 0v-3a2 2 0 0 1 2 -2z" /><path d="M17 16m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" /><path d="M19 16v3a2 2 0 0 1 -2 2h-1.5" /></svg>`,
394
+ sort90: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize}" height="${this.iconSize}" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M4 15l3 3l3 -3" /><path d="M7 6v12" /><path d="M17 14a2 2 0 0 1 2 2v3a2 2 0 1 1 -4 0v-3a2 2 0 0 1 2 -2z" /><path d="M17 5m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" /><path d="M19 5v3a2 2 0 0 1 -2 2h-1.5" /></svg>`,
395
+ sortAZ: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize}" height="${this.iconSize}" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M15 10v-5c0 -1.38 .62 -2 2 -2s2 .62 2 2v5m0 -3h-4" /><path d="M19 21h-4l4 -7h-4" /><path d="M4 15l3 3l3 -3" /><path d="M7 6v12" /></svg>`,
396
+ sortZA: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize}" height="${this.iconSize}" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M15 21v-5c0 -1.38 .62 -2 2 -2s2 .62 2 2v5m0 -3h-4" /><path d="M19 10h-4l4 -7h-4" /><path d="M4 15l3 3l3 -3" /><path d="M7 6v12" /></svg>`,
397
+ sum: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize}" height="${this.iconSize}" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M18 16v2a1 1 0 0 1 -1 1h-11l6 -7l-6 -7h11a1 1 0 0 1 1 1v2" /></svg>`,
398
+ table: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize}" height="${this.iconSize}" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" fill="white" d="M 10 2, 21 2, 21 21, 10 21Z"/><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14z" /><path d="M3 10h18" /><path d="M10 3v18" /></svg>`,
399
+ warning: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize * 0.8}" height="${this.iconSize * 0.8}" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M10.24 3.957l-8.422 14.06a1.989 1.989 0 0 0 1.7 2.983h16.845a1.989 1.989 0 0 0 1.7 -2.983l-8.423 -14.06a1.989 1.989 0 0 0 -3.4 0z" /><path d="M12 9v4" /><path d="M12 17h.01" /></svg>`,
400
+ grip: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize}" height="${this.iconSize}" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><path d="M5 9m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /><path d="M5 15m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /><path d="M12 9m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /><path d="M12 15m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /><path d="M19 9m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /><path d="M19 15m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /></svg>`
401
+ };
402
+ },
403
+ pages() {
404
+ const n = [];
405
+ if (this.bodyCopy.length)
406
+ for (let s = 0; s < this.bodyCopy.length; s += this.itemsPerPage)
407
+ n.push(this.bodyCopy.slice(s, s + this.itemsPerPage));
408
+ return n;
409
+ },
410
+ rows() {
411
+ return this.bodyCopy.map((n) => n.td);
412
+ },
413
+ selectedCellsCalculations() {
414
+ return {
415
+ sumPercentage: Number((this.currentSelectionSpan.rows.map((n) => n.value).reduce((n, s) => n + s, 0) * 100).toFixed(this.dataset.header[this.currentSelectionSpan.col].decimals)).toLocaleString(),
416
+ sumRegular: Number(this.currentSelectionSpan.rows.map((n) => n.value).reduce((n, s) => n + s, 0).toFixed(this.dataset.header[this.currentSelectionSpan.col].decimals)).toLocaleString(),
417
+ averagePercentage: Number((this.currentSelectionSpan.rows.map((n) => n.value).reduce((n, s) => n + s, 0) / this.currentSelectionSpan.rows.length * 100).toFixed(this.dataset.header[this.currentSelectionSpan.col].decimals)).toLocaleString(),
418
+ averageRegular: Number((this.currentSelectionSpan.rows.map((n) => n.value).reduce((n, s) => n + s, 0) / this.currentSelectionSpan.rows.length).toFixed(this.dataset.header[this.currentSelectionSpan.col].decimals)).toLocaleString()
419
+ };
420
+ },
421
+ FINAL_CONFIG() {
422
+ const { vue_ui_table: n } = K();
423
+ if (!Object.keys(this.config || {}).length)
424
+ return n;
425
+ const s = this.treeShake({
426
+ defaultConfig: n,
427
+ userConfig: this.config
428
+ });
429
+ return this.convertConfigColors(s);
430
+ },
431
+ visibleRows() {
432
+ return this.pages[this.currentPage];
433
+ }
434
+ },
435
+ methods: {
436
+ // lib
437
+ adaptColorToBackground: J,
438
+ convertColorToHex: W,
439
+ convertConfigColors: Y,
440
+ createCsvContent: j,
441
+ darkenHexColor: X,
442
+ dataLabel: V,
443
+ downloadCsv: U,
444
+ lightenHexColor: T,
445
+ treeShake: P,
446
+ // specific
447
+ applyDonutOption() {
448
+ const n = this.selectedDonutCategory.options.map((s, r) => ({
449
+ name: s,
450
+ color: this.palette[r] || this.palette[r % this.palette.length],
451
+ values: [this.visibleRows.filter((i, t) => i.td[this.selectedDonutCategory.index] === s && this.currentSelectionSpan.rows.map((e) => e.index).includes(t)).map((i) => i.td[this.currentSelectionSpan.col]).reduce((i, t) => Math.abs(i) + Math.abs(t), 0)],
452
+ absoluteValue: this.visibleRows.filter((i, t) => i.td[this.selectedDonutCategory.index] === s && this.currentSelectionSpan.rows.map((e) => e.index).includes(t)).map((i) => i.td[this.currentSelectionSpan.col]).reduce((i, t) => i + t, 0)
453
+ })).sort((s, r) => r.value - s.value);
454
+ this.currentDonut = n, this.$nextTick(() => {
455
+ this.chart.type = this.constants.DONUT, this.showDonutOptions = !1;
456
+ });
457
+ },
458
+ calcRectY(n, s) {
459
+ return n >= 0 ? s : this.chartData.zero;
460
+ },
461
+ canResetColumn(n, s) {
462
+ return !this.hasNaN[n] && (s.isSort || s.isSearch || s.isMultiselect || s.rangeFilter) && ![this.constants.DATE].includes(s.type);
463
+ },
464
+ createXls(n = "all") {
465
+ const s = this.dataset.header.map((e) => e.name), r = n === "all" ? this.bodyCopy.map((e) => e.td) : this.visibleRows.map((e) => e.td), i = [s].concat(r), t = this.createCsvContent(i);
466
+ this.downloadCsv({ csvContent: t, title: "vue-ui-table" });
467
+ },
468
+ calcLinearProgression: z,
469
+ closeAllDropdowns() {
470
+ const n = document.getElementsByClassName("th-dropdown");
471
+ n.length && Array.from(n).forEach((s) => {
472
+ s.dataset.isOpen = !1;
473
+ });
474
+ },
475
+ debounce(n, s) {
476
+ let r;
477
+ clearTimeout(r), r = setTimeout(n, s);
478
+ },
479
+ filterBody() {
480
+ this.bodyCopy = this.tableBody.filter((n) => {
481
+ for (const s in this.searches)
482
+ if (!n.td[s].toUpperCase().includes(this.searches[s].toUpperCase()))
483
+ return !1;
484
+ for (const s in this.multiselects)
485
+ if (!this.multiselects[s].some((i) => i === n.td[s]))
486
+ return !1;
487
+ for (const s in this.dates) {
488
+ const r = new Date(n.td[s]), i = new Date(this.dates[s].from), t = new Date(this.dates[s].to);
489
+ if (r < i || r > t)
490
+ return !1;
491
+ }
492
+ return !0;
493
+ }), this.sortBody();
494
+ },
495
+ getAverage(n) {
496
+ return this.rows.map((s) => s[n]).map((s) => isNaN(Number(s)) ? 0 : s).reduce((s, r) => s + r, 0) / this.bodyCopy.length;
497
+ },
498
+ getDatesRange(n) {
499
+ const s = this.dataset.body.map((F) => new Date(F.td[n])), r = new Date(Math.min(...s)), i = new Date(Math.max(...s)), t = r.getFullYear(), e = i.getFullYear(), y = String(r.getMonth() + 1).padStart(2, "0"), f = String(i.getMonth() + 1).padStart(2, "0"), l = String(r.getDate()).padStart(2, "0"), o = String(i.getDate()).padStart(2, "0"), h = `${t}-${y}-${l}`, m = `${e}-${f}-${o}`;
500
+ return {
501
+ from: h,
502
+ to: m
503
+ };
504
+ },
505
+ getDonutLegendValue(n) {
506
+ return Number((n * (this.dataset.header[this.currentSelectionSpan.col].isPercentage ? 100 : 1)).toFixed(this.dataset.header[this.currentSelectionSpan.col].decimals)).toLocaleString();
507
+ },
508
+ getDropdownOptions(n) {
509
+ return [...new Set(this.dataset.body.map((s) => s.td[n]))];
510
+ },
511
+ getSum(n) {
512
+ return this.rows.map((s) => s[n]).map((s) => isNaN(Number(s)) ? 0 : s).reduce((s, r) => s + r, 0);
513
+ },
514
+ includesNaN(n) {
515
+ return n.includes(NaN);
516
+ },
517
+ isDropdownOptionSelected(n, s) {
518
+ return this.multiselects[s] ? this.multiselects[s].includes(n) : !0;
519
+ },
520
+ isNumeric(n) {
521
+ return !isNaN(Number(String(n).replaceAll("%", "")));
522
+ },
523
+ isResetDisabled(n, s) {
524
+ const r = s.isSort, i = s.isSearch, t = s.isMultiselect && this.multiselects[n], e = s.rangeFilter, y = (f) => {
525
+ if (e && this.rangeFilters[f])
526
+ return Math.round(this.rangeFilters[f].min) === this.immutableRangeFilters[f].min && Math.round(this.rangeFilters[f].max) === this.immutableRangeFilters[f].max;
527
+ };
528
+ if (r && i && t && e)
529
+ return ["", void 0].includes(this.searches[n]) && [void 0].includes(this.sorts[n]) && this.multiselects[n].length === this.getDropdownOptions(n).length && y(n);
530
+ if (r && i && t)
531
+ return ["", void 0].includes(this.searches[n]) && [void 0].includes(this.sorts[n]) && this.multiselects[n].length === this.getDropdownOptions(n).length;
532
+ if (r && i && e)
533
+ return ["", void 0].includes(this.searches[n]) && [void 0].includes(this.sorts[n]) && y(n);
534
+ if (r && i)
535
+ return ["", void 0].includes(this.searches[n]) && [void 0].includes(this.sorts[n]);
536
+ if (r && t && e)
537
+ return [void 0].includes(this.sorts[n]) && this.multiselects[n].length === this.getDropdownOptions(n).length && y(n);
538
+ if (r && t)
539
+ return [void 0].includes(this.sorts[n]) && this.multiselects[n].length === this.getDropdownOptions(n).length;
540
+ if (i && t && e)
541
+ return ["", void 0].includes(this.searches[n]) && this.multiselects[n].length === this.getDropdownOptions(n).length && y(n);
542
+ if (i && t)
543
+ return ["", void 0].includes(this.searches[n]) && this.multiselects[n].length === this.getDropdownOptions(n).length;
544
+ if (i && e)
545
+ return ["", void 0].includes(this.searches[n]) && y(n);
546
+ if (i)
547
+ return ["", void 0].includes(this.searches[n]);
548
+ if (r && e)
549
+ return [void 0].includes(this.sorts[n]) && y(n);
550
+ if (r)
551
+ return [void 0].includes(this.sorts[n]);
552
+ if (t && e)
553
+ return this.multiselects[n].length === this.getDropdownOptions(n).length && y(n);
554
+ if (t)
555
+ return this.multiselects[n].length === this.getDropdownOptions(n).length;
556
+ },
557
+ navigate(n) {
558
+ this.resetSelection(), n === "next" && this.currentPage < this.pages.length ? this.currentPage += 1 : n === "previous" && this.currentPage >= 1 ? this.currentPage -= 1 : this.currentPage = n - 1, this.$refs.tableWrapper.scrollTo({
559
+ top: 0,
560
+ left: 0,
561
+ behavior: "smooth"
562
+ });
563
+ },
564
+ navigateCell(n) {
565
+ n.preventDefault();
566
+ const s = n.keyCode, r = 38, i = 40, t = 37, e = 39;
567
+ if (![r, i, t, e].includes(s)) return;
568
+ const y = n.target.id, f = /cell_(\d+)_(\d+)_vue-ui-table-(\d+)/, l = y.match(f), o = parseInt(l[1]), h = parseInt(l[2]), m = document.getElementById(`cell_${o}_${h + 1}_${this.uid}`), F = document.getElementById(`cell_${o}_${h - 1}_${this.uid}`), k = document.getElementById(`cell_${o + 1}_${h}_${this.uid}`), N = document.getElementById(`cell_${o - 1}_${h}_${this.uid}`);
569
+ let C;
570
+ switch (!0) {
571
+ case s === e:
572
+ C = m;
573
+ break;
574
+ case s === t:
575
+ C = F;
576
+ break;
577
+ case s === r:
578
+ C = N;
579
+ break;
580
+ case s === i:
581
+ C = k;
582
+ break;
583
+ default:
584
+ return;
585
+ }
586
+ C && (C.focus(), C.scrollIntoView({ behavior: "smooth", block: "center" }));
587
+ },
588
+ openDonutOptions() {
589
+ this.selectedDonutCategory = this.availableDonutCategories[0], this.showDonutOptions = !0;
590
+ },
591
+ placeLabelOnTopOrBottom({ previousPlot: n, currentPlot: s, nextPlot: r }) {
592
+ const i = s.y - 38, t = s.y + 16;
593
+ return n && r ? n.value < s.value && r.value < s.value ? i : n.value > s.value && r.value > s.value ? t : (n.value > s.value && r.value < s.value || n.value < s.value && r.value > s.value, i) : n && !r ? n.value > s.value ? t : i : !n && r && r.value > s.value ? t : i;
594
+ },
595
+ async prepareBodyCopy() {
596
+ return new Promise((n) => {
597
+ const s = [];
598
+ this.tableHead.forEach((r, i) => {
599
+ if (r.isSearch && Object.assign(this.searches, { [i]: "" }), r.isMultiselect && Object.assign(this.multiselects, { [i]: this.getDropdownOptions(i) }), r.type === this.constants.DATE && (Object.assign(this.dates, { [i]: this.getDatesRange(i) }), Object.assign(this.filteredDatesIndexes, { [i]: !1 })), (r.isPercentage || r.percentageTo) && Object.assign(this.percentages, {
600
+ [i]: {
601
+ reference: r.percentageTo,
602
+ referenceIndex: this.dataset.header.map((t) => t.name).indexOf(r.percentageTo)
603
+ }
604
+ }), r.rangeFilter && (Object.assign(this.rangeFilters, {
605
+ [i]: {
606
+ min: Math.round(Math.min(...this.dataset.body.map((t) => t.td).map((t) => t[i]))),
607
+ max: Math.round(Math.max(...this.dataset.body.map((t) => t.td).map((t) => t[i])))
608
+ }
609
+ }), Object.assign(this.immutableRangeFilters, {
610
+ [i]: {
611
+ min: Math.round(Math.min(...this.dataset.body.map((t) => t.td).map((t) => t[i]))),
612
+ max: Math.round(Math.max(...this.dataset.body.map((t) => t.td).map((t) => t[i])))
613
+ }
614
+ })), r.isPercentage) {
615
+ const t = this.dataset.header.map((y) => y.name).indexOf(r.percentageTo), e = this.dataset.body.map((y) => y.td[t]).reduce((y, f) => y + f, 0);
616
+ s.push([i, t, e]);
617
+ }
618
+ r.type === this.constants.NUMERIC && !r.isPercentage && Object.assign(this.hasNaN, { [i]: this.includesNaN(this.dataset.body.map((t) => Number(t.td[i]))) });
619
+ }), this.bodyCopy.forEach((r, i) => {
620
+ s.map((t) => {
621
+ const [e, y, f] = t;
622
+ r.td[e] = r.td[y] / f;
623
+ }), r.td.forEach((t, e) => {
624
+ this.dataset.header[e].type === this.constants.TEXT && this.dataset.header[e].isSearch && (r[e] = this.stringToNumber(t)), this.dataset.header[e].type === this.constants.DATE && (r[e] = new Date(t).getTime()), this.dataset.header[e].type === this.constants.NUMERIC && (r[e] = isNaN(Number(t)) ? e : t), this.tableBody[i][e] = r[e];
625
+ });
626
+ }), n(!0);
627
+ });
628
+ },
629
+ promiseWithAsyncFunction(n, s) {
630
+ return new Promise((r, i) => {
631
+ n().then((t) => {
632
+ try {
633
+ const e = s(t);
634
+ r(e);
635
+ } catch (e) {
636
+ i(e);
637
+ }
638
+ }).catch((t) => {
639
+ i(t);
640
+ });
641
+ });
642
+ },
643
+ resetDates(n) {
644
+ this.dates[n] = {
645
+ from: this.getDatesRange(n).from,
646
+ to: this.getDatesRange(n).to
647
+ }, this.filteredDatesIndexes[n] = !1, this.$forceUpdate(), this.filterBody();
648
+ },
649
+ resetFilter(n, s, r) {
650
+ const i = r.currentTarget;
651
+ clearTimeout(this.buttonTimeout), i.classList.add("clicked"), this.buttonTimeout = setTimeout(() => {
652
+ i.classList.remove("clicked");
653
+ }, 200), this.currentFilter = void 0, s.rangeFilter && (this.rangeFilters[n].min = this.immutableRangeFilters[n].min, this.rangeFilters[n].max = this.immutableRangeFilters[n].max), s.isMultiselect ? (this.multiselects[n] = this.getDropdownOptions(n), s.type === this.constants.TEXT && (this.sorts[n] = void 0), s.isSearch && (this.searches[n] = "")) : s.type === this.constants.NUMERIC ? this.sorts[n] = void 0 : s.type === this.constants.TEXT ? (this.sorts[n] = void 0, this.searches[n] = "") : s.type === this.constants.DATE && (this.sorts[n] = void 0), this.filterBody();
654
+ },
655
+ resetSelection() {
656
+ const n = document.getElementsByClassName(`tr_${this.uid}`);
657
+ Array.from(n).forEach((s) => {
658
+ Array.from(s.getElementsByTagName("td")).forEach((r) => {
659
+ r.dataset.row === "even" ? (r.style.background = this.FINAL_CONFIG.style.rows.even.backgroundColor, r.style.color = this.FINAL_CONFIG.style.rows.even.color) : (r.style.background = this.FINAL_CONFIG.style.rows.odd.backgroundColor, r.style.color = this.FINAL_CONFIG.style.rows.odd.color);
660
+ });
661
+ }), Array.from(n).forEach((s) => s.dataset.selected = "false"), this.currentPage > this.pages.length - 1 && (this.currentPage = this.pages.length - 1), this.showChart = !1, this.currentDonut = void 0, this.selectedColumn = void 0, this.chart.type = this.constants.BAR, this.currentSelectionSpan = {
662
+ col: void 0,
663
+ rows: []
664
+ }, this.clientX = 100, this.clientY = 100;
665
+ },
666
+ selectColumn(n) {
667
+ this.currentSelectionSpan.col !== n ? (this.visibleRows.forEach((s, r) => {
668
+ this.selectTd({
669
+ td: s.td[n],
670
+ rowIndex: r,
671
+ colIndex: n,
672
+ headerType: this.constants.NUMERIC,
673
+ event: {
674
+ currentTarget: document.getElementById(`cell_${r}_${n}_${this.uid}`)
675
+ }
676
+ });
677
+ }), this.selectedColumn = n) : (this.selectedColumn = void 0, this.resetSelection());
678
+ },
679
+ selectDropdownOption(n, s) {
680
+ this.multiselects[s].includes(n) ? this.multiselects[s] = this.multiselects[s].filter((r) => r !== n) : this.multiselects[s].push(n), this.$forceUpdate(), this.filterBody();
681
+ },
682
+ selectTd({ td: n, rowIndex: s, colIndex: r, headerType: i, event: t }) {
683
+ if (i !== this.constants.NUMERIC || isNaN(Number(n))) {
684
+ this.resetSelection();
685
+ return;
686
+ }
687
+ this.currentSelectionSpan.col !== r && this.resetSelection();
688
+ const e = t.currentTarget.parentNode;
689
+ this.currentSelectionSpan.col = r, this.currentSelectionSpan.rows.map((y) => y.index).includes(s) ? (e.dataset.selected = "false", this.currentSelectionSpan.rows = this.currentSelectionSpan.rows.filter((y) => y.index !== s), t.currentTarget.classList.remove(this.cssClass.CELL), Array.from(e.children).forEach((y, f) => {
690
+ y.dataset.row === "even" ? (y.style.background = this.FINAL_CONFIG.style.rows.even.backgroundColor, y.style.color = this.FINAL_CONFIG.style.rows.even.olor) : (y.style.background = this.FINAL_CONFIG.style.rows.odd.backgroundColor, y.style.color = this.FINAL_CONFIG.style.rows.odd.color);
691
+ }), t.currentTarget.dataset.row === "even" ? (t.currentTarget.style.background = this.FINAL_CONFIG.style.rows.even.backgroundColor, t.currentTarget.style.color = this.FINAL_CONFIG.style.rows.even.color) : (t.currentTarget.style.background = this.FINAL_CONFIG.style.rows.odd.backgroundColor, t.currentTarget.style.color = this.FINAL_CONFIG.style.rows.odd.color)) : (e.dataset.selected = "true", this.currentSelectionSpan.rows.push({
692
+ index: s,
693
+ value: n
694
+ }), Array.from(e.children).forEach((y, f) => {
695
+ y.dataset.row === "even" ? (y.style.background = this.FINAL_CONFIG.style.rows.even.selectedNeighbors.backgroundColor, y.style.color = this.FINAL_CONFIG.style.rows.even.selectedNeighbors.color) : (y.style.background = this.FINAL_CONFIG.style.rows.odd.selectedNeighbors.backgroundColor, y.style.color = this.FINAL_CONFIG.style.rows.odd.selectedNeighbors.color);
696
+ }), t.currentTarget.dataset.row === "odd" ? (t.currentTarget.style.background = this.FINAL_CONFIG.style.rows.odd.selectedCell.backgroundColor, t.currentTarget.style.color = this.FINAL_CONFIG.style.rows.odd.selectedCell.color) : (t.currentTarget.style.background = this.FINAL_CONFIG.style.rows.even.selectedCell.backgroundColor, t.currentTarget.style.color = this.FINAL_CONFIG.style.rows.even.selectedCell.color)), this.currentSelectionSpan.rows = this.currentSelectionSpan.rows.sort((y, f) => y.index - f.index), this.chart.type === this.constants.DONUT && this.currentSelectionSpan.rows.length > 0 && this.applyDonutOption();
697
+ },
698
+ setFilterDatesIndexes(n) {
699
+ this.filteredDatesIndexes[n] = !(this.getDatesRange(n).from === this.dates[n].from && this.getDatesRange(n).to === this.dates[n].to);
700
+ },
701
+ sortBody() {
702
+ this.resetSelection(), Object.keys(this.rangeFilters).forEach((n) => {
703
+ this.filterByRange(this.bodyCopy, n);
704
+ }), Object.keys(this.sorts).forEach((n) => {
705
+ this.sortByNumber(this.bodyCopy, n);
706
+ }), this.currentFilter !== void 0 && this.sortByNumber(this.bodyCopy, this.currentFilter), this.dataset.header.forEach((n, s) => {
707
+ if (n.isPercentage) {
708
+ const r = this.percentages[s].referenceIndex, i = this.bodyCopy.map((t) => t.td[r]).reduce((t, e) => t + e, 0);
709
+ this.bodyCopy.forEach((t) => {
710
+ t.td[s] = t.td[r] / i;
711
+ });
712
+ }
713
+ }), this.currentPage > this.pages.length - 1 && (this.currentPage = this.pages.length - 1), [-1].includes(this.currentPage) && (this.currentPage = 0), this.$forceUpdate();
714
+ },
715
+ filterByRange(n, s) {
716
+ this.bodyCopy = n.filter((r) => r.td[s] >= this.rangeFilters[s].min && r[s] <= this.rangeFilters[s].max);
717
+ },
718
+ sortByNumber(n, s) {
719
+ if (this.sorts[s] === this.constants.ASC && (n = n.sort((r, i) => r[s] - i[s])), this.sorts[s] === this.constants.DESC)
720
+ n = n.sort((r, i) => i[s] - r[s]);
721
+ else
722
+ return 0;
723
+ },
724
+ sortTh(n, s) {
725
+ this.currentFilter = n;
726
+ const r = s.currentTarget;
727
+ clearTimeout(this.buttonTimeout), r.classList.add("clicked"), this.buttonTimeout = setTimeout(() => {
728
+ r.classList.remove("clicked");
729
+ }, 200), this.sorts[n] === 1 ? this.sorts[n] = this.constants.DESC : this.sorts[n] = this.constants.ASC, this.sortBody();
730
+ },
731
+ stringToNumber(n) {
732
+ let s = 0;
733
+ for (let r = 0; r < n.length; r += 1)
734
+ s += n.charCodeAt(r);
735
+ return s;
736
+ },
737
+ toggleMultiselect(n, s, r) {
738
+ const i = r.currentTarget;
739
+ clearTimeout(this.buttonTimeout), i.classList.add("clicked"), this.buttonTimeout = setTimeout(() => {
740
+ i.classList.remove("clicked");
741
+ }, 200);
742
+ const t = document.getElementById(`th_dropdown_${n}`);
743
+ t.dataset.isOpen === "false" ? t.dataset.isOpen = "true" : t.dataset.isOpen = "false";
744
+ },
745
+ updateCurrentPage(n) {
746
+ this.resetSelection(), !n || !n.target.value ? this.currentPage = 0 : this.currentPage = Number(n.target.value);
747
+ },
748
+ // DONUTS
749
+ calcDonutMarkerConnectorColor(n) {
750
+ return n.proportion * 100 > 3 ? n.color : "transparent";
751
+ },
752
+ calcDonutMarkerLabelPositionX(n) {
753
+ return n.center.endX + this.calcMarkerOffset(n, 50);
754
+ },
755
+ calcMarkerOffset(n, s) {
756
+ return n.center.endX - s >= 0 ? 3 : -2;
757
+ },
758
+ displayArcPercentage(n, s) {
759
+ return isNaN(n.value / this.sumValues(s)) ? 0 : (n.value / this.sumValues(s) * 100).toFixed(0) + "%";
760
+ },
761
+ isArcBigEnough(n) {
762
+ return n.proportion * 100 > 3;
763
+ },
764
+ sumValues(n) {
765
+ return [...n].map((s) => s.value).reduce((s, r) => s + r, 0);
766
+ },
767
+ // CHART DRAGGING METHODS
768
+ closeDragElement() {
769
+ document.onmouseup = null, document.onmousemove = null;
770
+ },
771
+ dragMouseDown(n) {
772
+ n = n || window.event, n.preventDefault();
773
+ const r = this.$refs.chartModal.getBoundingClientRect();
774
+ this.dragOffsetX = n.clientX - r.left, this.dragOffsetY = n.clientY - r.top, this.modalWidth = r.width, this.modalHeight = r.height, document.onmouseup = this.closeDragElement, document.onmousemove = this.elementDrag;
775
+ },
776
+ elementDrag(n) {
777
+ if (this.rafId) return;
778
+ const r = this.$refs.chartModal.getBoundingClientRect();
779
+ this.clientX = n.clientX - this.dragOffsetX, this.clientY = n.clientY - this.dragOffsetY - 40, this.clientX < 0 && (this.clientX = 0), this.clientX + r.width > window.innerWidth && (this.clientX = window.innerWidth - r.width - 48), this.clientY < 0 && (this.clientY = 0), this.clientY + r.height > window.innerHeight && (this.clientY = window.innerHeight - r.height - 24);
780
+ }
781
+ }
782
+ }, ne = { class: "vue-ui-table-export-hub" }, re = ["innerHTML"], oe = ["data-is-open"], le = { class: "vue-ui-table-export-hub-options" }, ae = { class: "vue-ui-table-export-hub-option-wrapper" }, ie = { class: "label" }, ce = ["innerHTML"], ue = { class: "vue-ui-table-export-hub-option-wrapper" }, he = { class: "label" }, de = ["innerHTML"], ge = { class: "vue-ui-table" }, ye = { id: "tableHead" }, me = { key: 0 }, be = { key: 0 }, fe = { key: 1 }, Ne = {
783
+ key: 0,
784
+ style: { display: "flex", "align-items": "center", "justify-content": "flex-end" }
785
+ }, pe = ["innerHTML"], Ce = {
786
+ key: 0,
787
+ style: { "margin-left": "3px" }
788
+ }, Ie = { key: 0 }, Fe = { class: "th-filter" }, ve = {
789
+ key: 0,
790
+ class: "th-date"
791
+ }, we = { class: "date-wrapper--inputs" }, _e = { class: "date-fieldset" }, ke = ["for"], Oe = ["id", "onUpdate:modelValue", "onInput"], Se = { class: "date-fieldset" }, Le = ["for"], Ae = ["id", "onUpdate:modelValue", "onInput"], Me = { class: "date-wrapper--button" }, De = ["onClick"], Ge = ["innerHTML"], Te = ["innerHTML"], xe = ["innerHTML"], Ee = ["onClick", "disabled"], Be = ["placeholder", "onUpdate:modelValue", "name"], He = ["onClick"], Re = ["innerHTML"], ze = ["innerHTML"], Pe = ["innerHTML"], Ue = ["onClick", "innerHTML"], Ve = ["innerHTML"], Xe = {
792
+ key: 5,
793
+ class: "th-range-filter"
794
+ }, je = ["for"], Ye = ["id", "max", "min", "onUpdate:modelValue"], We = ["id", "max", "min", "onUpdate:modelValue"], Je = ["for"], Ke = ["onClick", "disabled"], Ze = ["id"], qe = ["onClick"], Qe = ["onClick", "onKeyup"], $e = ["innerHTML", "onClick", "onKeyup"], et = ["data-row"], tt = ["data-row"], st = ["data-row", "onClick", "onKeyup", "id"], nt = ["innerHTML"], rt = { key: 1 }, ot = { key: 2 }, lt = { key: 5 }, at = ["innerHTML"], it = { key: 0 }, ct = { style: { "margin-left": "12px" } }, ut = { class: "format-num" }, ht = { style: { "margin-left": "12px" } }, dt = {
795
+ key: 0,
796
+ class: "format-num"
797
+ }, gt = {
798
+ key: 1,
799
+ class: "format-num"
800
+ }, yt = { key: 2 }, mt = { style: { "margin-left": "12px" } }, bt = {
801
+ key: 0,
802
+ class: "format-num"
803
+ }, ft = {
804
+ key: 1,
805
+ class: "format-num"
806
+ }, Nt = { key: 2 }, pt = {
807
+ key: 0,
808
+ class: "vue-ui-table-paginator format-num"
809
+ }, Ct = {
810
+ key: 1,
811
+ class: "vue-ui-table-size-warning"
812
+ }, It = ["innerHTML"], Ft = {
813
+ key: 3,
814
+ class: "vue-ui-table-pagination format-num"
815
+ }, vt = ["innerHTML", "disabled"], wt = ["disabled"], _t = {
816
+ key: 0,
817
+ class: "vue-ui-table-page-scroller-wrapper"
818
+ }, kt = {
819
+ for: "pageScroller",
820
+ style: { "font-size": "14px" }
821
+ }, Ot = ["max", "value"], St = { key: 1 }, Lt = ["disabled"], At = ["innerHTML", "disabled"], Mt = ["innerHTML"], Dt = { class: "chart-modal-options" }, Gt = ["innerHTML"], Tt = ["innerHTML"], xt = ["innerHTML"], Et = {
822
+ style: { width: "100%", height: "fit-content" },
823
+ ref: "chartModal"
824
+ }, Bt = { class: "vue-ui-table-fieldset" }, Ht = { class: "vue-ui-table-fieldset-wrapper" }, Rt = ["name", "id", "checked", "onInput"], zt = ["for"], Pt = ["disabled"], Ut = ["innerHTML"], Vt = { style: { width: "100%", "margin-bottom": "12px" } }, Xt = {
825
+ key: 2,
826
+ style: { width: "100%", "margin-bottom": "32px" }
827
+ };
828
+ function jt(n, s, r, i, t, e) {
829
+ const y = x("VueUiXy"), f = x("VueUiDonut");
830
+ return c(), u("div", {
831
+ class: "vue-ui-table-main",
832
+ style: g(`font-family: ${e.FINAL_CONFIG.fontFamily}`)
833
+ }, [
834
+ a("div", ne, [
835
+ a("button", {
836
+ onClick: s[0] || (s[0] = (l) => t.isExportRequest = !t.isExportRequest),
837
+ innerHTML: e.icons.export,
838
+ style: g(`background:${e.FINAL_CONFIG.style.exportMenu.backgroundColor};color:${e.FINAL_CONFIG.style.exportMenu.color}`)
839
+ }, null, 12, re),
840
+ a("div", {
841
+ class: "vue-ui-table-export-hub-dropdown",
842
+ "data-is-open": t.isExportRequest || "false",
843
+ style: g(`background:${e.FINAL_CONFIG.style.exportMenu.backgroundColor};color:${e.FINAL_CONFIG.style.exportMenu.color}`)
844
+ }, [
845
+ s[25] || (s[25] = a("b", { class: "vue-ui-table-export-hub-title" }, " Export ", -1)),
846
+ a("button", {
847
+ class: "close-dropdown",
848
+ onClick: s[1] || (s[1] = (l) => t.isExportRequest = !1),
849
+ style: g(`background:${e.FINAL_CONFIG.style.closeButtons.backgroundColor};color:${e.FINAL_CONFIG.style.closeButtons.color};border-radius:${e.FINAL_CONFIG.style.closeButtons.borderRadius}`)
850
+ }, " ✖ ", 4),
851
+ a("div", le, [
852
+ a("div", ae, [
853
+ a("div", ie, d(e.FINAL_CONFIG.translations.exportAllLabel) + " (" + d(t.bodyCopy.length) + ") ", 1),
854
+ a("button", {
855
+ id: "exportAll",
856
+ onClick: s[2] || (s[2] = (l) => e.createXls("all")),
857
+ style: g(`background:${e.FINAL_CONFIG.style.exportMenu.buttons.backgroundColor};color:${e.FINAL_CONFIG.style.exportMenu.buttons.color}`)
858
+ }, [
859
+ a("div", {
860
+ innerHTML: e.icons.fileDownload
861
+ }, null, 8, ce),
862
+ a("span", null, d(e.FINAL_CONFIG.translations.exportAllButton), 1)
863
+ ], 4)
864
+ ]),
865
+ a("div", ue, [
866
+ a("div", he, d(e.FINAL_CONFIG.translations.exportPageLabel), 1),
867
+ a("button", {
868
+ id: "exportPage",
869
+ onClick: s[3] || (s[3] = (l) => e.createXls("page")),
870
+ style: g(`background:${e.FINAL_CONFIG.style.exportMenu.buttons.backgroundColor};color:${e.FINAL_CONFIG.style.exportMenu.buttons.color}`)
871
+ }, [
872
+ a("div", {
873
+ innerHTML: e.icons.fileDownload
874
+ }, null, 8, de),
875
+ a("span", null, d(e.FINAL_CONFIG.translations.exportPageButton), 1)
876
+ ], 4)
877
+ ])
878
+ ])
879
+ ], 12, oe)
880
+ ]),
881
+ a("div", {
882
+ class: "vue-ui-table__wrapper",
883
+ style: g(`max-height:${e.FINAL_CONFIG.maxHeight}px`),
884
+ ref: "tableWrapper"
885
+ }, [
886
+ a("table", ge, [
887
+ a("thead", ye, [
888
+ a("tr", null, [
889
+ s[26] || (s[26] = a("th", { class: "invisible-cell" }, null, -1)),
890
+ (c(!0), u(I, null, _(t.tableHead, (l, o) => (c(), u("th", {
891
+ key: `thead_${o}`,
892
+ style: g(`overflow: visible;background:${e.FINAL_CONFIG.style.th.backgroundColor};color:${e.FINAL_CONFIG.style.th.color};outline:${e.FINAL_CONFIG.style.th.outline}`),
893
+ class: p({ "th-has-nan": t.hasNaN[o] })
894
+ }, [
895
+ e.hasNumericTypes && ([t.constants.TEXT, t.constants.DATE].includes(l.type) || l.isPercentage) ? (c(), u("span", me, [
896
+ w(d(l.name) + " ", 1),
897
+ l.isPercentage ? (c(), u("span", be, " / " + d(l.percentageTo), 1)) : b("", !0)
898
+ ])) : (c(), u("span", fe, d(l.name), 1))
899
+ ], 6))), 128))
900
+ ]),
901
+ e.hasNumericTypes ? (c(), u(I, { key: 0 }, [
902
+ a("tr", null, [
903
+ s[27] || (s[27] = a("th", { class: "invisible-cell" }, null, -1)),
904
+ (c(!0), u(I, null, _(t.tableHead, (l, o) => (c(), u("th", {
905
+ key: `thead_${o}`,
906
+ class: p({ "th-numeric": !0, "th-has-nan": t.hasNaN[o] }),
907
+ style: g(`background:${e.FINAL_CONFIG.style.th.backgroundColor};color:${e.FINAL_CONFIG.style.th.color};outline:${e.FINAL_CONFIG.style.th.outline}`)
908
+ }, [
909
+ l.sum && !t.hasNaN[o] ? (c(), u("span", Ne, [
910
+ a("span", {
911
+ innerHTML: e.icons.sum,
912
+ style: { "margin-bottom": "-4px", "margin-right": "3px" }
913
+ }, null, 8, pe),
914
+ w(" " + d(e.dataLabel({
915
+ p: l.prefix,
916
+ v: Number(e.getSum(o)),
917
+ s: l.suffix,
918
+ r: l.decimals
919
+ })) + " ", 1),
920
+ t.percentages[o] && l.percentageTo && !l.isPercentage ? (c(), u("span", Ce, " (" + d(isNaN(e.getSum(o) / e.getSum(t.percentages[o].referenceIndex)) ? "-" : e.dataLabel({
921
+ v: e.getSum(o) / e.getSum(t.percentages[o].referenceIndex) * 100,
922
+ s: "%",
923
+ r: l.decimals
924
+ })) + ") ", 1)) : b("", !0)
925
+ ])) : b("", !0)
926
+ ], 6))), 128))
927
+ ]),
928
+ a("tr", null, [
929
+ s[28] || (s[28] = a("th", { class: "invisible-cell" }, null, -1)),
930
+ (c(!0), u(I, null, _(t.tableHead, (l, o) => (c(), u("th", {
931
+ key: `thead_${o}`,
932
+ class: p({ "th-numeric": !0, "th-has-nan": t.hasNaN[o] }),
933
+ style: g(`background:${e.FINAL_CONFIG.style.th.backgroundColor};color:${e.FINAL_CONFIG.style.th.color};outline:${e.FINAL_CONFIG.style.th.outline}`)
934
+ }, [
935
+ l.average && !t.hasNaN[o] ? (c(), u("span", Ie, " ~ " + d(isNaN(e.getAverage(o)) ? "" : e.dataLabel({
936
+ p: l.prefix,
937
+ v: Number(e.getAverage(o)),
938
+ s: l.suffix,
939
+ r: l.decimals
940
+ })), 1)) : b("", !0)
941
+ ], 6))), 128))
942
+ ]),
943
+ a("tr", null, [
944
+ s[31] || (s[31] = a("th", { class: "invisible-cell" }, null, -1)),
945
+ (c(!0), u(I, null, _(t.tableHead, (l, o) => (c(), u("th", {
946
+ key: `thead_${o}`,
947
+ class: p({ "th-has-nan": t.hasNaN[o] }),
948
+ style: g(`background:${e.FINAL_CONFIG.style.th.backgroundColor};color:${e.FINAL_CONFIG.style.th.color};outline:${e.FINAL_CONFIG.style.th.outline}`)
949
+ }, [
950
+ a("div", Fe, [
951
+ l.type === t.constants.DATE && t.dates[o] ? (c(), u("div", ve, [
952
+ a("div", we, [
953
+ a("div", _e, [
954
+ a("label", {
955
+ for: `from_${o}`
956
+ }, d(e.FINAL_CONFIG.translations.from), 9, ke),
957
+ O(a("input", {
958
+ id: `from_${o}`,
959
+ type: "date",
960
+ "onUpdate:modelValue": (h) => t.dates[o].from = h,
961
+ onInput: (h) => {
962
+ e.filterBody(), e.setFilterDatesIndexes(o);
963
+ },
964
+ style: g(`background:${e.FINAL_CONFIG.style.inputs.backgroundColor};color:${e.FINAL_CONFIG.style.inputs.color};border:${e.FINAL_CONFIG.style.inputs.border}`)
965
+ }, null, 44, Oe), [
966
+ [S, t.dates[o].from]
967
+ ])
968
+ ]),
969
+ a("div", Se, [
970
+ a("label", {
971
+ for: `to_${o}`
972
+ }, d(e.FINAL_CONFIG.translations.to), 9, Le),
973
+ O(a("input", {
974
+ id: `to_${o}`,
975
+ type: "date",
976
+ "onUpdate:modelValue": (h) => t.dates[o].to = h,
977
+ onInput: (h) => {
978
+ e.filterBody(), e.setFilterDatesIndexes(o);
979
+ },
980
+ style: g(`background:${e.FINAL_CONFIG.style.inputs.backgroundColor};color:${e.FINAL_CONFIG.style.inputs.color};border:${e.FINAL_CONFIG.style.inputs.border}`)
981
+ }, null, 44, Ae), [
982
+ [S, t.dates[o].to]
983
+ ])
984
+ ])
985
+ ]),
986
+ a("div", Me, [
987
+ l.isSort ? (c(), u("button", {
988
+ key: 0,
989
+ onClick: (h) => e.sortTh(o, h),
990
+ class: p({ "th-button-active": [t.constants.DESC, t.constants.ASC].includes(t.sorts[o]) }),
991
+ style: g(`background:${[t.constants.DESC, t.constants.ASC].includes(t.sorts[o]) ? "" : e.FINAL_CONFIG.style.pagination.buttons.backgroundColor};color:${[t.constants.DESC, t.constants.ASC].includes(t.sorts[o]) ? "" : e.FINAL_CONFIG.style.pagination.buttons.color}`)
992
+ }, [
993
+ t.sorts[o] === t.constants.ASC ? (c(), u("span", {
994
+ key: 0,
995
+ innerHTML: [t.constants.DATE].includes(l.type) ? e.icons.sort09 : e.icons.sortAZ
996
+ }, null, 8, Ge)) : t.sorts[o] === t.constants.DESC ? (c(), u("span", {
997
+ key: 1,
998
+ innerHTML: [t.constants.DATE].includes(l.type) ? e.icons.sort90 : e.icons.sortZA
999
+ }, null, 8, Te)) : (c(), u("span", {
1000
+ key: 2,
1001
+ innerHTML: e.icons.arrowSort
1002
+ }, null, 8, xe))
1003
+ ], 14, De)) : b("", !0),
1004
+ a("button", {
1005
+ onClick: (h) => {
1006
+ e.resetDates(o), e.resetFilter(o, l, h);
1007
+ },
1008
+ disabled: !t.filteredDatesIndexes[o] && e.isResetDisabled(o, l),
1009
+ class: "th-reset"
1010
+ }, " ✖ ", 8, Ee)
1011
+ ])
1012
+ ])) : b("", !0),
1013
+ l.isSearch ? O((c(), u("input", {
1014
+ key: 1,
1015
+ placeholder: e.FINAL_CONFIG.translations.inputPlaceholder,
1016
+ "onUpdate:modelValue": (h) => t.searches[o] = h,
1017
+ onInput: s[4] || (s[4] = (h) => e.debounce(e.filterBody, 400)),
1018
+ name: `search_${o}`,
1019
+ style: g(`background:${e.FINAL_CONFIG.style.inputs.backgroundColor};color:${e.FINAL_CONFIG.style.inputs.color};border:${e.FINAL_CONFIG.style.inputs.border}`)
1020
+ }, null, 44, Be)), [
1021
+ [S, t.searches[o]]
1022
+ ]) : b("", !0),
1023
+ !t.hasNaN[o] && l.isSort && l.type !== t.constants.DATE ? (c(), u("button", {
1024
+ key: 2,
1025
+ onClick: (h) => e.sortTh(o, h),
1026
+ class: p({ "th-button-active": [t.constants.DESC, t.constants.ASC].includes(t.sorts[o]) }),
1027
+ style: g(`background:${[t.constants.DESC, t.constants.ASC].includes(t.sorts[o]) ? "" : e.FINAL_CONFIG.style.pagination.buttons.backgroundColor};color:${[t.constants.DESC, t.constants.ASC].includes(t.sorts[o]) ? "" : e.FINAL_CONFIG.style.pagination.buttons.color}`)
1028
+ }, [
1029
+ t.sorts[o] === t.constants.ASC ? (c(), u("span", {
1030
+ key: 0,
1031
+ innerHTML: [t.constants.NUMERIC].includes(l.type) ? e.icons.sort09 : e.icons.sortZA
1032
+ }, null, 8, Re)) : t.sorts[o] === t.constants.DESC ? (c(), u("span", {
1033
+ key: 1,
1034
+ innerHTML: [t.constants.NUMERIC].includes(l.type) ? e.icons.sort90 : e.icons.sortAZ
1035
+ }, null, 8, ze)) : (c(), u("span", {
1036
+ key: 2,
1037
+ innerHTML: e.icons.arrowSort
1038
+ }, null, 8, Pe))
1039
+ ], 14, He)) : b("", !0),
1040
+ l.isMultiselect ? (c(), u("button", {
1041
+ key: 3,
1042
+ onClick: (h) => e.toggleMultiselect(o, l, h),
1043
+ innerHTML: e.icons.filter,
1044
+ class: p({ "th-button-active": t.multiselects[o] && t.multiselects[o].length !== e.getDropdownOptions(o).length }),
1045
+ style: g(`background:${t.multiselects[o] && t.multiselects[o].length !== e.getDropdownOptions(o).length ? "" : e.FINAL_CONFIG.style.pagination.buttons.backgroundColor};color:${t.multiselects[o] && t.multiselects[o].length !== e.getDropdownOptions(o).length ? "" : e.FINAL_CONFIG.style.pagination.buttons.color}`)
1046
+ }, null, 14, Ue)) : b("", !0),
1047
+ t.currentSelectionSpan.col === o && e.canChart ? (c(), u("button", {
1048
+ key: 4,
1049
+ onClick: s[5] || (s[5] = (h) => t.showChart = !t.showChart),
1050
+ innerHTML: e.icons.chart,
1051
+ class: p({ "th-button-active": t.showChart }),
1052
+ style: g(`background:${t.showChart ? "" : e.FINAL_CONFIG.style.pagination.buttons.backgroundColor};color:${t.showChart ? "" : e.FINAL_CONFIG.style.pagination.buttons.color}`)
1053
+ }, null, 14, Ve)) : b("", !0),
1054
+ l.rangeFilter && t.rangeFilters[o] && !t.hasNaN[o] ? (c(), u("div", Xe, [
1055
+ a("label", {
1056
+ for: `rangeMin${o}`
1057
+ }, s[29] || (s[29] = [
1058
+ a("span", { style: { color: "grey" } }, "ᒥ", -1),
1059
+ w(" min "),
1060
+ a("span", { style: { color: "grey" } }, "ᒣ", -1)
1061
+ ]), 8, je),
1062
+ O(a("input", {
1063
+ type: "number",
1064
+ id: `rangeMin${o}`,
1065
+ max: t.immutableRangeFilters[o].max,
1066
+ min: t.immutableRangeFilters[o].min,
1067
+ "onUpdate:modelValue": (h) => t.rangeFilters[o].min = h,
1068
+ onInput: s[6] || (s[6] = (h) => e.debounce(e.filterBody, 400)),
1069
+ style: g(`background:${e.FINAL_CONFIG.style.inputs.backgroundColor};color:${e.FINAL_CONFIG.style.inputs.color};border:${e.FINAL_CONFIG.style.inputs.border}`)
1070
+ }, null, 44, Ye), [
1071
+ [
1072
+ S,
1073
+ t.rangeFilters[o].min,
1074
+ void 0,
1075
+ { number: !0 }
1076
+ ]
1077
+ ]),
1078
+ O(a("input", {
1079
+ type: "number",
1080
+ id: `rangeMax${o}`,
1081
+ max: t.immutableRangeFilters[o].max,
1082
+ min: t.immutableRangeFilters[o].min,
1083
+ "onUpdate:modelValue": (h) => t.rangeFilters[o].max = h,
1084
+ onInput: s[7] || (s[7] = (h) => e.debounce(e.filterBody, 400)),
1085
+ style: g(`background:${e.FINAL_CONFIG.style.inputs.backgroundColor};color:${e.FINAL_CONFIG.style.inputs.color};border:${e.FINAL_CONFIG.style.inputs.border}`)
1086
+ }, null, 44, We), [
1087
+ [
1088
+ S,
1089
+ t.rangeFilters[o].max,
1090
+ void 0,
1091
+ { number: !0 }
1092
+ ]
1093
+ ]),
1094
+ a("label", {
1095
+ for: `rangeMax${o}`
1096
+ }, s[30] || (s[30] = [
1097
+ a("span", { style: { color: "grey" } }, "ᒪ", -1),
1098
+ w(" max "),
1099
+ a("span", { style: { color: "grey" } }, "ᒧ", -1)
1100
+ ]), 8, Je)
1101
+ ])) : b("", !0),
1102
+ e.canResetColumn(o, l) ? (c(), u("button", {
1103
+ key: 6,
1104
+ onClick: (h) => e.resetFilter(o, l, h),
1105
+ disabled: e.isResetDisabled(o, l),
1106
+ class: "th-reset"
1107
+ }, " ✖ ", 8, Ke)) : b("", !0),
1108
+ l.isMultiselect ? (c(), u("div", {
1109
+ key: 7,
1110
+ class: "th-dropdown",
1111
+ "data-is-open": "false",
1112
+ id: `th_dropdown_${o}`,
1113
+ style: g(`background:${e.FINAL_CONFIG.style.dropdowns.backgroundColor};color:${e.FINAL_CONFIG.style.dropdowns.color}`)
1114
+ }, [
1115
+ a("button", {
1116
+ class: "close-dropdown",
1117
+ onClick: (h) => e.toggleMultiselect(o, l, h),
1118
+ style: g(`background:${e.FINAL_CONFIG.style.closeButtons.backgroundColor};color:${e.FINAL_CONFIG.style.closeButtons.color}`)
1119
+ }, " ✖ ", 12, qe),
1120
+ (c(!0), u(I, null, _(e.getDropdownOptions(o), (h, m) => (c(), u("span", {
1121
+ class: "th-option",
1122
+ key: `th_option_${o}_${m}`,
1123
+ onClick: (F) => e.selectDropdownOption(h, o),
1124
+ onKeyup: [
1125
+ L((F) => e.selectDropdownOption(h, o), ["enter"]),
1126
+ L((F) => e.selectDropdownOption(h, o), ["space"])
1127
+ ],
1128
+ style: g(`opacity:${e.isDropdownOptionSelected(h, o) ? 1 : 0.5}`),
1129
+ tabindex: "0"
1130
+ }, [
1131
+ e.isDropdownOptionSelected(h, o) ? (c(), u("span", {
1132
+ key: 0,
1133
+ style: g(`color:${e.FINAL_CONFIG.style.dropdowns.icons.selected.color};margin-right:5px`),
1134
+ class: "th-icon-green"
1135
+ }, d(e.FINAL_CONFIG.style.dropdowns.icons.selected.unicode), 5)) : (c(), u("span", {
1136
+ key: 1,
1137
+ style: g(`color:${e.FINAL_CONFIG.style.dropdowns.icons.unselected.color};margin-right:5px`),
1138
+ class: "th-icon-red"
1139
+ }, d(e.FINAL_CONFIG.style.dropdowns.icons.unselected.unicode), 5)),
1140
+ a("span", null, d(h), 1)
1141
+ ], 44, Qe))), 128))
1142
+ ], 12, Ze)) : b("", !0)
1143
+ ])
1144
+ ], 6))), 128))
1145
+ ])
1146
+ ], 64)) : b("", !0),
1147
+ a("tr", null, [
1148
+ s[32] || (s[32] = a("th", { class: "invisible-cell" }, null, -1)),
1149
+ (c(!0), u(I, null, _(t.tableHead, (l, o) => (c(), u("th", {
1150
+ key: `col_selector_${o}`,
1151
+ class: p({ "vue-ui-table-col-selector": !t.hasNaN[o], "th-has-nan": t.hasNaN[o] }),
1152
+ style: g(`background:${o === t.selectedColumn && !t.hasNaN[o] ? e.FINAL_CONFIG.style.th.selected.backgroundColor : e.FINAL_CONFIG.style.th.backgroundColor};color:${o === t.selectedColumn && !t.hasNaN[o] ? e.FINAL_CONFIG.style.th.selected.color : e.FINAL_CONFIG.style.th.color};outline:${e.FINAL_CONFIG.style.th.outline}`)
1153
+ }, [
1154
+ t.hasNaN[o] ? b("", !0) : (c(), u("div", {
1155
+ key: 0,
1156
+ innerHTML: t.tableHead[o].type === t.constants.NUMERIC ? e.icons.chevronDown : "",
1157
+ class: p({ "col-selector": t.tableHead[o].type === t.constants.NUMERIC }),
1158
+ tabindex: "0",
1159
+ onClick: A((h) => e.selectColumn(o), ["stop"]),
1160
+ onKeyup: L((h) => e.selectColumn(o), ["enter"])
1161
+ }, null, 42, $e))
1162
+ ], 6))), 128))
1163
+ ])
1164
+ ]),
1165
+ a("tbody", {
1166
+ onClick: s[8] || (s[8] = (...l) => e.closeAllDropdowns && e.closeAllDropdowns(...l)),
1167
+ onKeydown: s[9] || (s[9] = (l) => e.navigateCell(l))
1168
+ }, [
1169
+ (c(!0), u(I, null, _(e.visibleRows, (l, o) => (c(), u("tr", {
1170
+ key: `tbody_${o}`,
1171
+ "data-row": o % 2 === 0 ? "odd" : "even",
1172
+ class: p(`tr_${t.uid}`),
1173
+ style: g(`${o % 2 === 0 ? `background:${e.FINAL_CONFIG.style.rows.odd.backgroundColor};color:${e.FINAL_CONFIG.style.rows.odd.color}` : `background:${e.FINAL_CONFIG.style.rows.even.backgroundColor};color:${e.FINAL_CONFIG.style.rows.even.color}`}`)
1174
+ }, [
1175
+ a("td", {
1176
+ class: "vue-ui-table-td-iteration",
1177
+ "data-row": o % 2 === 0 ? "odd" : "even"
1178
+ }, d(l.absoluteIndex + 1), 9, tt),
1179
+ (c(!0), u(I, null, _(l.td, (h, m) => (c(), u("td", {
1180
+ "data-row": o % 2 === 0 ? "odd" : "even",
1181
+ key: `td_${o}_${m}`,
1182
+ style: g(e.isNumeric(h) || r.dataset.header[m].type === t.constants.DATE ? "text-align:right;font-variant-numeric: tabular-nums;" : ""),
1183
+ onClick: (F) => e.selectTd({
1184
+ td: h,
1185
+ rowIndex: o,
1186
+ colIndex: m,
1187
+ headerType: r.dataset.header[m].type,
1188
+ event: F
1189
+ }),
1190
+ onKeyup: [
1191
+ L((F) => e.selectTd({
1192
+ td: h,
1193
+ rowIndex: o,
1194
+ colIndex: m,
1195
+ headerType: r.dataset.header[m].type,
1196
+ event: F
1197
+ }), ["enter"]),
1198
+ L((F) => e.selectTd({
1199
+ td: h,
1200
+ rowIndex: o,
1201
+ colIndex: m,
1202
+ headerType: r.dataset.header[m].type,
1203
+ event: F
1204
+ }), ["space"])
1205
+ ],
1206
+ class: p({ "td-numeric": r.dataset.header[m].type === t.constants.NUMERIC, "td-focusable": !0, "td-has-nan": t.hasNaN[m] }),
1207
+ id: `cell_${o}_${m}_${t.uid}`,
1208
+ tabindex: "0"
1209
+ }, [
1210
+ l.meta && l.meta.markerIndices.includes(m) && l.meta.unicodeIcon ? (c(), u("span", {
1211
+ key: 0,
1212
+ style: g(`color:${l.meta.color};margin-right:3px`),
1213
+ innerHTML: l.meta.unicodeIcon
1214
+ }, null, 12, nt)) : b("", !0),
1215
+ r.dataset.header[m].type === t.constants.DATE ? (c(), u("span", rt, d(r.dataset.header[m].prefix) + " " + d(new Date(h).toLocaleString().slice(0, 10)) + " " + d(r.dataset.header[m].suffix), 1)) : r.dataset.header[m].isPercentage ? (c(), u("span", ot, d(e.dataLabel({
1216
+ v: Number(h * 100),
1217
+ s: "%",
1218
+ r: r.dataset.header[m].decimals
1219
+ })), 1)) : t.percentages[m] && r.dataset.header[m].percentageTo && !r.dataset.header[m].isPercentage ? (c(), u("span", {
1220
+ key: 3,
1221
+ class: p({ "td-nan": isNaN(Number(h)) })
1222
+ }, d(isNaN(Number(h)) ? `${h} is not ${t.constants.NUMERIC}` : e.dataLabel({
1223
+ p: r.dataset.header[m].prefix,
1224
+ v: Number(h),
1225
+ s: r.dataset.header[m].suffix,
1226
+ r: r.dataset.header[m].decimals
1227
+ })) + " (" + d(isNaN(Number(h)) ? "" : e.dataLabel({
1228
+ v: Number(h / e.getSum(t.percentages[m].referenceIndex) * 100),
1229
+ s: "%",
1230
+ r: r.dataset.header[m].decimals
1231
+ })) + ") ", 3)) : r.dataset.header[m].type === t.constants.NUMERIC ? (c(), u("span", {
1232
+ key: 4,
1233
+ class: p({ "td-nan": isNaN(Number(h)) })
1234
+ }, d(isNaN(Number(h)) ? `${h} is not ${t.constants.NUMERIC}` : e.dataLabel({
1235
+ p: r.dataset.header[m].prefix,
1236
+ v: Number(h.toFixed(r.dataset.header[m].decimals)),
1237
+ s: r.dataset.header[m].suffix,
1238
+ r: r.dataset.header[m].decimals
1239
+ })), 3)) : (c(), u("span", lt, d(r.dataset.header[m].prefix) + " " + d(h) + " " + d(r.dataset.header[m].suffix), 1))
1240
+ ], 46, st))), 128))
1241
+ ], 14, et))), 128))
1242
+ ], 32)
1243
+ ])
1244
+ ], 4),
1245
+ a("div", {
1246
+ class: p({ "td-selector-info": !0, "td-selector-info--active": t.currentSelectionSpan.col !== void 0 && t.currentSelectionSpan.rows.length }),
1247
+ style: g(`background:${e.FINAL_CONFIG.style.infoBar.backgroundColor};color:${e.FINAL_CONFIG.style.infoBar.color}`)
1248
+ }, [
1249
+ t.currentSelectionSpan.col !== void 0 && t.currentSelectionSpan.rows.length ? (c(), u(I, { key: 0 }, [
1250
+ a("div", {
1251
+ innerHTML: e.icons.table,
1252
+ class: "td-selector-icon"
1253
+ }, null, 8, at),
1254
+ a("span", null, [
1255
+ a("b", null, [
1256
+ w(d(r.dataset.header[t.currentSelectionSpan.col].name) + " ", 1),
1257
+ r.dataset.header[t.currentSelectionSpan.col].isPercentage ? (c(), u("span", it, " / " + d(r.dataset.header[t.percentages[t.currentSelectionSpan.col].referenceIndex].name), 1)) : b("", !0)
1258
+ ]),
1259
+ a("span", ct, [
1260
+ w(d(e.FINAL_CONFIG.translations.nb) + " : ", 1),
1261
+ a("b", ut, d(t.currentSelectionSpan.rows.length), 1)
1262
+ ]),
1263
+ a("span", ht, [
1264
+ w(d(e.FINAL_CONFIG.translations.sum) + " : ", 1),
1265
+ r.dataset.header[t.currentSelectionSpan.col].isPercentage ? (c(), u("b", dt, d(e.selectedCellsCalculations.sumPercentage), 1)) : (c(), u("b", gt, d(r.dataset.header[t.currentSelectionSpan.col].prefix) + " " + d(e.selectedCellsCalculations.sumRegular) + " " + d(r.dataset.header[t.currentSelectionSpan.col].suffix), 1)),
1266
+ r.dataset.header[t.currentSelectionSpan.col].isPercentage ? (c(), u("b", yt, "%")) : b("", !0)
1267
+ ]),
1268
+ a("span", mt, [
1269
+ w(d(e.FINAL_CONFIG.translations.average) + " : ", 1),
1270
+ r.dataset.header[t.currentSelectionSpan.col].isPercentage ? (c(), u("b", bt, d(e.selectedCellsCalculations.averagePercentage), 1)) : (c(), u("b", ft, d(r.dataset.header[t.currentSelectionSpan.col].prefix) + " " + d(e.selectedCellsCalculations.averageRegular) + " " + d(r.dataset.header[t.currentSelectionSpan.col].suffix), 1)),
1271
+ r.dataset.header[t.currentSelectionSpan.col].isPercentage ? (c(), u("b", Nt, "%")) : b("", !0)
1272
+ ])
1273
+ ]),
1274
+ a("button", {
1275
+ onClick: s[10] || (s[10] = (...l) => e.resetSelection && e.resetSelection(...l)),
1276
+ class: "td-selector-info-reset",
1277
+ style: g(`background:${e.FINAL_CONFIG.style.closeButtons.backgroundColor};color:${e.FINAL_CONFIG.style.closeButtons.color};border-radius:${e.FINAL_CONFIG.style.closeButtons.borderRadius}`)
1278
+ }, " ✖ ", 4)
1279
+ ], 64)) : b("", !0)
1280
+ ], 6),
1281
+ t.bodyCopy.length > 10 ? (c(), u("div", pt, [
1282
+ w(d(e.FINAL_CONFIG.translations.totalRows) + " : " + d(r.dataset.body.length) + " | " + d(e.FINAL_CONFIG.translations.paginatorLabel) + " : ", 1),
1283
+ t.bodyCopy.length > 10 ? O((c(), u("select", {
1284
+ key: 0,
1285
+ id: "paginatorSelector",
1286
+ "onUpdate:modelValue": s[11] || (s[11] = (l) => t.itemsPerPage = l),
1287
+ onChange: s[12] || (s[12] = (...l) => e.resetSelection && e.resetSelection(...l)),
1288
+ style: g(`background:${e.FINAL_CONFIG.style.inputs.backgroundColor};color:${e.FINAL_CONFIG.style.inputs.color};border:${e.FINAL_CONFIG.style.inputs.border}`)
1289
+ }, [
1290
+ (c(!0), u(I, null, _(t.paginatorOptions, (l, o) => (c(), u(I, null, [
1291
+ t.bodyCopy.length > l || r.dataset.body.length === l ? (c(), u("option", {
1292
+ key: `paginator_option_${o}`
1293
+ }, d(l), 1)) : b("", !0)
1294
+ ], 64))), 256))
1295
+ ], 36)), [
1296
+ [
1297
+ $,
1298
+ t.itemsPerPage,
1299
+ void 0,
1300
+ { number: !0 }
1301
+ ]
1302
+ ]) : b("", !0)
1303
+ ])) : b("", !0),
1304
+ t.itemsPerPage >= 250 ? (c(), u("div", Ct, [
1305
+ a("span", {
1306
+ innerHTML: e.icons.warning
1307
+ }, null, 8, It),
1308
+ w(d(e.FINAL_CONFIG.translations.sizeWarning), 1)
1309
+ ])) : b("", !0),
1310
+ e.pages.length > 1 && e.pages.length <= 10 ? (c(), u("div", {
1311
+ key: 2,
1312
+ class: "vue-ui-table-navigation-indicator",
1313
+ style: g(`background:${e.FINAL_CONFIG.style.pagination.navigationIndicator.backgroundColor};width:calc(${t.currentPage / (e.pages.length - 1) * 100}%)`)
1314
+ }, null, 4)) : b("", !0),
1315
+ e.pages.length > 1 ? (c(), u("div", Ft, [
1316
+ a("button", {
1317
+ class: "vue-ui-table-navigation",
1318
+ onClick: s[13] || (s[13] = A((l) => e.navigate("previous"), ["stop"])),
1319
+ innerHTML: e.icons.chevronLeft,
1320
+ disabled: t.currentPage === 0,
1321
+ style: g(`background:${e.FINAL_CONFIG.style.pagination.buttons.backgroundColor};color:${e.FINAL_CONFIG.style.pagination.buttons.color};opacity:${t.currentPage === 0 ? e.FINAL_CONFIG.style.pagination.buttons.opacityDisabled : 1}`)
1322
+ }, null, 12, vt),
1323
+ e.pages.length > 3 ? (c(), u(I, { key: 0 }, [
1324
+ a("button", {
1325
+ class: "vue-ui-table-navigation",
1326
+ onClick: s[14] || (s[14] = A((l) => e.navigate(1), ["stop"])),
1327
+ disabled: t.currentPage === 0,
1328
+ style: g(`background:${e.FINAL_CONFIG.style.pagination.buttons.backgroundColor};color:${e.FINAL_CONFIG.style.pagination.buttons.color};opacity:${t.currentPage === 0 ? e.FINAL_CONFIG.style.pagination.buttons.opacityDisabled : 1}`)
1329
+ }, " 1 ", 12, wt),
1330
+ e.pages.length > 10 ? (c(), u("div", _t, [
1331
+ a("label", kt, d(e.FINAL_CONFIG.translations.page) + " " + d(t.currentPage + 1) + " / " + d(e.pages.length), 1),
1332
+ a("input", {
1333
+ class: "vue-ui-table-page-scroller",
1334
+ id: "pageScroller",
1335
+ type: "range",
1336
+ step: "1",
1337
+ min: 0,
1338
+ max: e.pages.length - 1,
1339
+ onInput: s[15] || (s[15] = (l) => e.updateCurrentPage(l)),
1340
+ value: t.currentPage,
1341
+ style: g(`background:${e.FINAL_CONFIG.style.inputs.backgroundColor};color:${e.FINAL_CONFIG.style.inputs.color};border:${e.FINAL_CONFIG.style.inputs.border};accent-color:${e.FINAL_CONFIG.style.inputs.accentColor}`)
1342
+ }, null, 44, Ot)
1343
+ ])) : (c(), u("span", St, d(e.FINAL_CONFIG.translations.page) + " " + d(t.currentPage + 1) + " / " + d(e.pages.length), 1)),
1344
+ a("button", {
1345
+ class: "vue-ui-table-navigation",
1346
+ onClick: s[16] || (s[16] = A((l) => e.navigate(e.pages.length), ["stop"])),
1347
+ disabled: t.currentPage === e.pages.length - 1,
1348
+ style: g(`background:${e.FINAL_CONFIG.style.pagination.buttons.backgroundColor};color:${e.FINAL_CONFIG.style.pagination.buttons.color};opacity:${t.currentPage === e.pages.length - 1 ? e.FINAL_CONFIG.style.pagination.buttons.opacityDisabled : 1}`)
1349
+ }, d(e.pages.length), 13, Lt)
1350
+ ], 64)) : (c(), u(I, { key: 1 }, [
1351
+ w(d(e.FINAL_CONFIG.translations.page) + " " + d(t.currentPage + 1) + " / " + d(e.pages.length), 1)
1352
+ ], 64)),
1353
+ a("button", {
1354
+ class: "vue-ui-table-navigation",
1355
+ onClick: s[17] || (s[17] = A((l) => e.navigate("next"), ["stop"])),
1356
+ innerHTML: e.icons.chevronRight,
1357
+ disabled: t.currentPage === e.pages.length - 1,
1358
+ style: g(`background:${e.FINAL_CONFIG.style.pagination.buttons.backgroundColor};color:${e.FINAL_CONFIG.style.pagination.buttons.color};opacity:${t.currentPage === e.pages.length - 1 ? e.FINAL_CONFIG.style.pagination.buttons.opacityDisabled : 1}`)
1359
+ }, null, 12, At)
1360
+ ])) : b("", !0),
1361
+ t.showChart && e.canChart ? (c(), u("div", {
1362
+ key: 4,
1363
+ class: "vue-ui-table-chart-modal",
1364
+ style: g(`width: ${t.modalWidth}px;top:${t.clientY}px; left:${t.clientX}px;background:${e.FINAL_CONFIG.style.chart.modal.backgroundColor};color:${e.FINAL_CONFIG.style.chart.modal.color}`)
1365
+ }, [
1366
+ a("div", {
1367
+ class: "modal-drag-handle",
1368
+ onMousedown: s[19] || (s[19] = (...l) => e.dragMouseDown && e.dragMouseDown(...l))
1369
+ }, [
1370
+ a("span", {
1371
+ innerHTML: e.icons.grip
1372
+ }, null, 8, Mt),
1373
+ a("button", {
1374
+ class: "close-chart-modal",
1375
+ onClick: s[18] || (s[18] = (l) => t.showChart = !1)
1376
+ }, "✖")
1377
+ ], 32),
1378
+ a("button", {
1379
+ style: g([{ "z-index": "1" }, `background:${e.FINAL_CONFIG.style.closeButtons.backgroundColor};color:${e.FINAL_CONFIG.style.closeButtons.color};border-radius:${e.FINAL_CONFIG.style.closeButtons.borderRadius}`]),
1380
+ class: "close-chart-modal",
1381
+ onClick: s[20] || (s[20] = (l) => t.showChart = !1)
1382
+ }, " ✖ ", 4),
1383
+ a("div", Dt, [
1384
+ e.availableDonutCategories.length ? (c(), u("button", {
1385
+ key: 0,
1386
+ onClick: s[21] || (s[21] = (l) => t.showDonutOptions = !0),
1387
+ innerHTML: e.icons.donut,
1388
+ class: p({ "is-active-chart": t.chart.type === t.constants.DONUT || t.showDonutOptions }),
1389
+ style: g(`background:${t.chart.type === t.constants.DONUT || t.showDonutOptions ? e.FINAL_CONFIG.style.chart.modal.buttons.selected.backgroundColor : e.FINAL_CONFIG.style.chart.modal.buttons.unselected.backgroundColor};color:${t.chart.type === t.constants.DONUT || t.showDonutOptions ? e.FINAL_CONFIG.style.chart.modal.buttons.selected.color : e.FINAL_CONFIG.style.chart.modal.buttons.unselected.color}`)
1390
+ }, null, 14, Gt)) : b("", !0),
1391
+ a("button", {
1392
+ onClick: s[22] || (s[22] = (l) => {
1393
+ t.chart.type = t.constants.LINE, t.showDonutOptions = !1;
1394
+ }),
1395
+ innerHTML: e.icons.chart,
1396
+ class: p({ "is-active-chart": t.chart.type === t.constants.LINE && !t.showDonutOptions }),
1397
+ style: g(`background:${t.chart.type === t.constants.LINE && !t.showDonutOptions ? e.FINAL_CONFIG.style.chart.modal.buttons.selected.backgroundColor : e.FINAL_CONFIG.style.chart.modal.buttons.unselected.backgroundColor};color:${t.chart.type === t.constants.LINE && !t.showDonutOptions ? e.FINAL_CONFIG.style.chart.modal.buttons.selected.color : e.FINAL_CONFIG.style.chart.modal.buttons.unselected.color}`)
1398
+ }, null, 14, Tt),
1399
+ a("button", {
1400
+ onClick: s[23] || (s[23] = (l) => {
1401
+ t.chart.type = t.constants.BAR, t.showDonutOptions = !1;
1402
+ }),
1403
+ innerHTML: e.icons.bar,
1404
+ class: p({ "is-active-chart": t.chart.type === t.constants.BAR && !t.showDonutOptions }),
1405
+ style: g(`background:${t.chart.type === t.constants.BAR && !t.showDonutOptions ? e.FINAL_CONFIG.style.chart.modal.buttons.selected.backgroundColor : e.FINAL_CONFIG.style.chart.modal.buttons.unselected.backgroundColor};color:${t.chart.type === t.constants.BAR && !t.showDonutOptions ? e.FINAL_CONFIG.style.chart.modal.buttons.selected.color : e.FINAL_CONFIG.style.chart.modal.buttons.unselected.color}`)
1406
+ }, null, 14, xt)
1407
+ ]),
1408
+ a("div", Et, [
1409
+ t.showDonutOptions && e.availableDonutCategories.length ? (c(), u("div", {
1410
+ key: 0,
1411
+ style: g(`background:${e.FINAL_CONFIG.style.chart.modal.backgroundColor};color:${e.FINAL_CONFIG.style.chart.modal.color}`)
1412
+ }, [
1413
+ a("fieldset", Bt, [
1414
+ a("legend", null, d(e.FINAL_CONFIG.translations.chooseCategoryColumn), 1),
1415
+ a("div", Ht, [
1416
+ (c(!0), u(I, null, _(e.availableDonutCategories, (l, o) => (c(), u("div", {
1417
+ key: `donut_radio_${o}`,
1418
+ class: "vue-ui-table-fieldset-option"
1419
+ }, [
1420
+ a("input", {
1421
+ type: "radio",
1422
+ name: l.name,
1423
+ id: l.name,
1424
+ checked: t.selectedDonutCategory && l.name === t.selectedDonutCategory.name,
1425
+ onInput: (h) => t.selectedDonutCategory = e.availableDonutCategories[o],
1426
+ style: g(`background:${e.FINAL_CONFIG.style.inputs.backgroundColor};color:${e.FINAL_CONFIG.style.inputs.color};border:${e.FINAL_CONFIG.style.inputs.border};accent-color:${e.FINAL_CONFIG.style.inputs.accentColor}`)
1427
+ }, null, 44, Rt),
1428
+ a("label", {
1429
+ for: l.name
1430
+ }, d(l.name), 9, zt)
1431
+ ]))), 128))
1432
+ ]),
1433
+ a("button", {
1434
+ class: "vue-ui-table-generate-donut",
1435
+ disabled: !t.selectedDonutCategory,
1436
+ onClick: s[24] || (s[24] = (...l) => e.applyDonutOption && e.applyDonutOption(...l)),
1437
+ style: g(`background:${e.FINAL_CONFIG.style.chart.modal.buttons.selected.backgroundColor};color:${e.FINAL_CONFIG.style.chart.modal.buttons.selected.color}`)
1438
+ }, [
1439
+ a("div", {
1440
+ style: { "margin-bottom": "-3px" },
1441
+ innerHTML: e.icons.donut
1442
+ }, null, 8, Ut),
1443
+ w(" " + d(e.FINAL_CONFIG.translations.makeDonut), 1)
1444
+ ], 12, Pt)
1445
+ ])
1446
+ ], 4)) : b("", !0),
1447
+ [t.constants.BAR, t.constants.LINE].includes(t.chart.type) && !t.showDonutOptions ? (c(), u(I, { key: 1 }, [
1448
+ a("div", Vt, [
1449
+ t.chart.type === t.constants.LINE ? (c(), E(y, {
1450
+ key: 0,
1451
+ dataset: e.chartData.xyDatasetLine,
1452
+ config: e.chartData.xyConfig
1453
+ }, null, 8, ["dataset", "config"])) : b("", !0),
1454
+ t.chart.type === t.constants.BAR ? (c(), E(y, {
1455
+ key: 1,
1456
+ dataset: e.chartData.xyDatasetBar,
1457
+ config: e.chartData.xyConfig
1458
+ }, null, 8, ["dataset", "config"])) : b("", !0)
1459
+ ]),
1460
+ t.currentSelectionSpan.rows.length >= 2 ? (c(), u("div", {
1461
+ key: 0,
1462
+ class: "chart-trend",
1463
+ style: g(`color:${e.FINAL_CONFIG.style.chart.modal.color}`)
1464
+ }, [
1465
+ s[33] || (s[33] = a("span", null, "---", -1)),
1466
+ w(" Trend: " + d((e.chartData.progression.trend * 100).toFixed(1)) + " % ", 1)
1467
+ ], 4)) : b("", !0)
1468
+ ], 64)) : b("", !0),
1469
+ [t.constants.DONUT].includes(t.chart.type) && !t.showDonutOptions ? (c(), u("div", Xt, [
1470
+ ee(f, {
1471
+ dataset: t.currentDonut,
1472
+ config: e.chartData.donutConfig
1473
+ }, null, 8, ["dataset", "config"])
1474
+ ])) : b("", !0)
1475
+ ], 512)
1476
+ ], 4)) : b("", !0)
1477
+ ], 4);
1478
+ }
1479
+ const Qt = /* @__PURE__ */ te(se, [["render", jt], ["__scopeId", "data-v-03b16812"]]);
1480
+ export {
1481
+ Qt as default
1482
+ };