vue-data-ui 3.23.0 → 3.23.2

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 (206) hide show
  1. package/dist/{Arrow-o2qHNvrC.js → Arrow-CF0VFcBH.js} +1 -1
  2. package/dist/{BaseDraggableDialog-qTnfhLBz.js → BaseDraggableDialog-LoqqwRtV.js} +2 -2
  3. package/dist/{BaseIcon-91MZoczJ.js → BaseIcon-BfndwIWE.js} +1 -1
  4. package/dist/{BaseLegendToggle-CtAPwzr2.js → BaseLegendToggle-DZVucLnv.js} +1 -1
  5. package/dist/{BaseZoomControls-rdzlicuz.js → BaseZoomControls-BZvCnZEi.js} +2 -2
  6. package/dist/{ColorPicker-CIAkdPrj.js → ColorPicker--ayG2YHf.js} +2 -2
  7. package/dist/{DataTable-D4tM9s5Y.js → DataTable-BbKgJ5UI.js} +2 -2
  8. package/dist/{HillActions-BWhxHlrj.js → HillActions-BD9j_sOU.js} +1 -1
  9. package/dist/{Legend-CQTRlzK-.js → Legend-CQxUgOd-.js} +2 -2
  10. package/dist/{NonSvgPenAndPaper-Cawacw1W.js → NonSvgPenAndPaper-4ypecDg1.js} +6 -6
  11. package/dist/{PackageVersion--QCMh5k_.js → PackageVersion-DXU7nRr9.js} +1 -1
  12. package/dist/{PenAndPaper-cE4J8-rA.js → PenAndPaper-DAE-tnEQ.js} +6 -6
  13. package/dist/{Shape-BPMV94Ij.js → Shape-C21CMlWS.js} +1 -1
  14. package/dist/SlicerPreview-wUw1hFwe.js +1703 -0
  15. package/dist/{SparkTooltip-BaYtEKS6.js → SparkTooltip-CjsbIhzi.js} +1 -1
  16. package/dist/{Title-BODtwViI.js → Title-BE3qg9xl.js} +1 -1
  17. package/dist/{Tooltip-CMTGxeYO.js → Tooltip-DhjyfHwz.js} +2 -2
  18. package/dist/{UserOptions-3ujTo3LD.js → UserOptions-Dt98of5H.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-mini-loader.js +1 -1
  51. package/dist/components/vue-ui-molecule.js +1 -1
  52. package/dist/components/vue-ui-mood-radar.js +1 -1
  53. package/dist/components/vue-ui-nested-donuts.js +1 -1
  54. package/dist/components/vue-ui-onion.js +1 -1
  55. package/dist/components/vue-ui-parallel-coordinate-plot.js +1 -1
  56. package/dist/components/vue-ui-quadrant.js +1 -1
  57. package/dist/components/vue-ui-quick-chart.js +1 -1
  58. package/dist/components/vue-ui-radar.js +1 -1
  59. package/dist/components/vue-ui-rating.js +1 -1
  60. package/dist/components/vue-ui-relation-circle.js +1 -1
  61. package/dist/components/vue-ui-ridgeline.js +1 -1
  62. package/dist/components/vue-ui-rings.js +1 -1
  63. package/dist/components/vue-ui-scatter.js +1 -1
  64. package/dist/components/vue-ui-skeleton.js +1 -1
  65. package/dist/components/vue-ui-smiley.js +1 -1
  66. package/dist/components/vue-ui-spark-trend.js +1 -1
  67. package/dist/components/vue-ui-sparkbar.js +1 -1
  68. package/dist/components/vue-ui-sparkgauge.js +1 -1
  69. package/dist/components/vue-ui-sparkhistogram.js +1 -1
  70. package/dist/components/vue-ui-sparkline.js +1 -1
  71. package/dist/components/vue-ui-sparkstackbar.js +1 -1
  72. package/dist/components/vue-ui-stackbar.js +1 -1
  73. package/dist/components/vue-ui-stackline.js +1 -1
  74. package/dist/components/vue-ui-strip-plot.js +1 -1
  75. package/dist/components/vue-ui-table-heatmap.js +1 -1
  76. package/dist/components/vue-ui-table-sparkline.js +1 -1
  77. package/dist/components/vue-ui-table.js +1 -1
  78. package/dist/components/vue-ui-thermometer.js +1 -1
  79. package/dist/components/vue-ui-timer.js +1 -1
  80. package/dist/components/vue-ui-tiremarks.js +1 -1
  81. package/dist/components/vue-ui-treemap.js +1 -1
  82. package/dist/components/vue-ui-vertical-bar.js +1 -1
  83. package/dist/components/vue-ui-waffle.js +1 -1
  84. package/dist/components/vue-ui-wheel.js +1 -1
  85. package/dist/components/vue-ui-word-cloud.js +1 -1
  86. package/dist/components/vue-ui-world.js +1 -1
  87. package/dist/components/vue-ui-xy-canvas.js +1 -1
  88. package/dist/components/vue-ui-xy.js +1 -1
  89. package/dist/composables.js +1 -1
  90. package/dist/{dom-to-png-4tdMNGPX.js → dom-to-png-BYIvdTe8.js} +1 -1
  91. package/dist/{exposedLib-DWLRqRhv.js → exposedLib-C0DPCgFj.js} +7 -4
  92. package/dist/{geoProjections-BCP_PoiB.js → geoProjections-CEo3dVaL.js} +1 -1
  93. package/dist/{img-DIQG5q8T.js → img-Bnokohej.js} +1 -1
  94. package/dist/{labelUtils-C5lnc_xc.js → labelUtils-BeVpDvTJ.js} +1 -1
  95. package/dist/{lib-BuMGJ_a0.js → lib-Bttd6u5E.js} +21 -11
  96. package/dist/{package-BMc_ZieJ.js → package-bsfpO6y3.js} +1 -1
  97. package/dist/{pdf-Cnz4NKM9.js → pdf-CVIDfCrS.js} +1 -1
  98. package/dist/{render-common-Ktg2LZFG.js → render-common-C0PEe9so.js} +2 -2
  99. package/dist/ssr/vue-ui-donut.js +1 -1
  100. package/dist/ssr/vue-ui-xy.js +1 -1
  101. package/dist/ssr.js +2 -2
  102. package/dist/style.css +1 -1
  103. package/dist/types/vue-data-ui.d.ts +9 -0
  104. package/dist/{useSvgExport-Ba9qBr9M.js → useChartExport-DNiwdPmb.js} +48 -2
  105. package/dist/{useConfig-BilxnBNr.js → useConfig-DlNpz6P8.js} +13 -1
  106. package/dist/{useNestedProp--NSEmhOH.js → useNestedProp-vPNvh7rV.js} +5 -3
  107. package/dist/{useObjectBindings-Cwq7NcQz.js → useObjectBindings-BeWS5v0i.js} +1 -1
  108. package/dist/{usePrinter-BFvi4jVy.js → usePrinter-DN5bYhTG.js} +2 -2
  109. package/dist/{useTimeLabels-B9CEuiLZ.js → useTimeLabels-d2f-W1L4.js} +2 -4
  110. package/dist/{useTooltipPosition-BsRysTrw.js → useTooltipPosition-DifeoeQW.js} +13 -13
  111. package/dist/utils.js +3 -3
  112. package/dist/{vue-data-ui-EsawKe_W.js → vue-data-ui-BNxtW8pK.js} +69 -69
  113. package/dist/vue-data-ui.js +74 -74
  114. package/dist/{vue-ui-3d-bar-RSUS2xpL.js → vue-ui-3d-bar-BYumVxZG.js} +147 -165
  115. package/dist/{vue-ui-accordion-61MlW-Ge.js → vue-ui-accordion-DegI2lzR.js} +4 -4
  116. package/dist/vue-ui-age-pyramid-tJx_hCsS.js +1241 -0
  117. package/dist/{vue-ui-annotator-DBRT85HG.js → vue-ui-annotator-DfG79D4r.js} +41 -68
  118. package/dist/vue-ui-bullet-DrWG4jRy.js +700 -0
  119. package/dist/{vue-ui-bump-Dvv3iSKr.js → vue-ui-bump-mKysp0KO.js} +222 -272
  120. package/dist/vue-ui-candlestick-PgKcBZdy.js +1837 -0
  121. package/dist/vue-ui-carousel-table-DRvycNBl.js +467 -0
  122. package/dist/{vue-ui-chestnut-ArloORzP.js → vue-ui-chestnut-Dpklo-VE.js} +311 -365
  123. package/dist/vue-ui-chord-7PPVH_iG.js +1345 -0
  124. package/dist/vue-ui-circle-pack-DW4Os6_8.js +1636 -0
  125. package/dist/{vue-ui-cursor-CxgE6Phh.js → vue-ui-cursor-DIt7vOwc.js} +4 -4
  126. package/dist/{vue-ui-dag-C9Sf9vH7.js → vue-ui-dag-Cl0WdSLb.js} +812 -840
  127. package/dist/{vue-ui-dashboard-bGmaglAj.js → vue-ui-dashboard-BwxRLR4E.js} +70 -70
  128. package/dist/{vue-ui-digits-DgDE-_Fn.js → vue-ui-digits-Bp1OH_t1.js} +5 -5
  129. package/dist/{vue-ui-donut-B_n6wF6B.js → vue-ui-donut-BZUT7QYt.js} +352 -377
  130. package/dist/vue-ui-donut-evolution-CQy3ZKXk.js +1549 -0
  131. package/dist/{vue-ui-donut-Bmo149AR.js → vue-ui-donut-y6tOAVyY.js} +18 -17
  132. package/dist/{vue-ui-dumbbell-BX4Ao_wR.js → vue-ui-dumbbell-BtKZcAOV.js} +370 -420
  133. package/dist/{vue-ui-flow-Bshw8pT_.js → vue-ui-flow-BF_cndsv.js} +191 -216
  134. package/dist/vue-ui-funnel-z3AeiDu6.js +750 -0
  135. package/dist/{vue-ui-galaxy-CvXgy-dy.js → vue-ui-galaxy-ClWaSOmM.js} +276 -302
  136. package/dist/vue-ui-gauge-CJstpakj.js +932 -0
  137. package/dist/{vue-ui-geo-C-gSZL2q.js → vue-ui-geo-B1tOD3HC.js} +398 -449
  138. package/dist/{vue-ui-gizmo-CJdxyPID.js → vue-ui-gizmo-foatosAv.js} +4 -4
  139. package/dist/{vue-ui-heatmap-DEEKv8ip.js → vue-ui-heatmap-By33A9dZ.js} +479 -502
  140. package/dist/{vue-ui-hill-D7LYAgAL.js → vue-ui-hill-ewqkK9s5.js} +570 -593
  141. package/dist/vue-ui-history-plot-FEIwXlsz.js +1698 -0
  142. package/dist/{vue-ui-horizontal-bar-CfFye5tL.js → vue-ui-horizontal-bar-D51sAeVu.js} +307 -332
  143. package/dist/{vue-ui-kpi-DCBnNfTb.js → vue-ui-kpi-y3EkgqJQ.js} +4 -4
  144. package/dist/{vue-ui-mini-loader-CtWpqnLW.js → vue-ui-mini-loader-CtTewZJG.js} +3 -3
  145. package/dist/vue-ui-molecule-paWHp18h.js +935 -0
  146. package/dist/{vue-ui-mood-radar-sl6DMxqR.js → vue-ui-mood-radar-wBRTZI5k.js} +341 -390
  147. package/dist/vue-ui-nested-donuts-CB-HOLo2.js +1503 -0
  148. package/dist/vue-ui-onion-B2Q2n55x.js +1233 -0
  149. package/dist/{vue-ui-parallel-coordinate-plot-DE9wTmQQ.js → vue-ui-parallel-coordinate-plot-GpkXiIZA.js} +189 -214
  150. package/dist/{vue-ui-quadrant-SaY_RPSE.js → vue-ui-quadrant-DOPuejDE.js} +254 -284
  151. package/dist/{vue-ui-quick-chart-CJ9rejnj.js → vue-ui-quick-chart-CgHX9njq.js} +108 -109
  152. package/dist/{vue-ui-radar-CaNen5Fj.js → vue-ui-radar-BLvG-_zE.js} +407 -434
  153. package/dist/{vue-ui-rating--K7rX2an.js → vue-ui-rating-BDVSVFA0.js} +10 -11
  154. package/dist/vue-ui-relation-circle-plOXwxJ5.js +903 -0
  155. package/dist/vue-ui-ridgeline-BbrnXvBo.js +1614 -0
  156. package/dist/{vue-ui-rings-BevKD8P-.js → vue-ui-rings-B3cKfMWy.js} +419 -444
  157. package/dist/vue-ui-scatter-BY7waF2T.js +2403 -0
  158. package/dist/{vue-ui-skeleton-B9ZP1w-i.js → vue-ui-skeleton-DwKxd7fk.js} +4 -4
  159. package/dist/{vue-ui-smiley-DYnqqk6u.js → vue-ui-smiley-5iHJeTPc.js} +64 -65
  160. package/dist/{vue-ui-spark-trend-R0ebpg-G.js → vue-ui-spark-trend-MpvrV5Wd.js} +11 -11
  161. package/dist/{vue-ui-sparkbar-DYC3By0v.js → vue-ui-sparkbar-s-2rBmEz.js} +97 -100
  162. package/dist/{vue-ui-sparkgauge-Bw6no-In.js → vue-ui-sparkgauge-B-BYVv4p.js} +4 -4
  163. package/dist/{vue-ui-sparkhistogram-DvRKy8rq.js → vue-ui-sparkhistogram-D7D4NHdi.js} +18 -19
  164. package/dist/{vue-ui-sparkline-Dz1uzBos.js → vue-ui-sparkline-RbeYtLWp.js} +11 -11
  165. package/dist/{vue-ui-sparkstackbar-DlnPdZih.js → vue-ui-sparkstackbar-ohN7mtbg.js} +194 -198
  166. package/dist/{vue-ui-stackbar-B-THcavY.js → vue-ui-stackbar-D2bpvQYt.js} +530 -552
  167. package/dist/{vue-ui-stackline-3dBPoI0h.js → vue-ui-stackline-Bo1oE8yq.js} +592 -614
  168. package/dist/vue-ui-strip-plot-CZ-C4a5x.js +1734 -0
  169. package/dist/vue-ui-table-3PPiJPV6.js +1352 -0
  170. package/dist/{vue-ui-table-heatmap-DVwMqzje.js → vue-ui-table-heatmap-D1bbPXKG.js} +56 -57
  171. package/dist/{vue-ui-table-sparkline-CABJzK8p.js → vue-ui-table-sparkline-l1cUX3ny.js} +13 -15
  172. package/dist/{vue-ui-thermometer-CVQ-H69Q.js → vue-ui-thermometer-DltAELO7.js} +240 -261
  173. package/dist/{vue-ui-timer-Bm8LpsnI.js → vue-ui-timer-DWNdx47q.js} +6 -6
  174. package/dist/vue-ui-tiremarks-GYhji_fa.js +538 -0
  175. package/dist/{vue-ui-treemap-DP0Sx8Y8.js → vue-ui-treemap-DjNlnOG5.js} +521 -547
  176. package/dist/vue-ui-waffle-BAA9EX6O.js +1386 -0
  177. package/dist/vue-ui-wheel-DrefGLos.js +871 -0
  178. package/dist/{vue-ui-word-cloud-B2sxtel9.js → vue-ui-word-cloud-CQZ8AyOi.js} +382 -405
  179. package/dist/{vue-ui-world-BBQZLnzm.js → vue-ui-world-Y7a3VEjq.js} +426 -451
  180. package/dist/{vue-ui-xy-DZj5DT-q.js → vue-ui-xy-CJcdttNL.js} +879 -905
  181. package/dist/{vue-ui-xy-ChZg7AtI.js → vue-ui-xy-DPxtkYGc.js} +329 -326
  182. package/dist/{vue-ui-xy-canvas-BN2u0bOJ.js → vue-ui-xy-canvas-1rbwMA1m.js} +30 -27
  183. package/package.json +4 -4
  184. package/dist/Slicer-5yIrdoJv.js +0 -1149
  185. package/dist/SlicerPreview-DvjLV2TW.js +0 -1689
  186. package/dist/vue-ui-age-pyramid-CgnPWA93.js +0 -1263
  187. package/dist/vue-ui-bullet-Bc3-WaN1.js +0 -724
  188. package/dist/vue-ui-candlestick-DvvsrIdp.js +0 -1864
  189. package/dist/vue-ui-carousel-table-DtsNVim8.js +0 -463
  190. package/dist/vue-ui-chord-xX5gWZy8.js +0 -1396
  191. package/dist/vue-ui-circle-pack-D8wykmqg.js +0 -1638
  192. package/dist/vue-ui-donut-evolution-D6vH_hfx.js +0 -1598
  193. package/dist/vue-ui-funnel-CjYosIik.js +0 -797
  194. package/dist/vue-ui-gauge-CByT0_vF.js +0 -953
  195. package/dist/vue-ui-history-plot-BhcU94Pt.js +0 -1722
  196. package/dist/vue-ui-molecule-D3igGyOy.js +0 -958
  197. package/dist/vue-ui-nested-donuts-aS4YzaB3.js +0 -1528
  198. package/dist/vue-ui-onion-EhPTZpW_.js +0 -1258
  199. package/dist/vue-ui-relation-circle-FLs8vOxQ.js +0 -925
  200. package/dist/vue-ui-ridgeline-Beg5hshN.js +0 -1663
  201. package/dist/vue-ui-scatter-CNA7jF-o.js +0 -2428
  202. package/dist/vue-ui-strip-plot-ACeYOoHj.js +0 -1757
  203. package/dist/vue-ui-table-rFy16bp0.js +0 -1347
  204. package/dist/vue-ui-tiremarks-DB3f5qiz.js +0 -559
  205. package/dist/vue-ui-waffle-iPpdk1Bm.js +0 -1412
  206. package/dist/vue-ui-wheel-BJkEYfLj.js +0 -892
@@ -1,1864 +0,0 @@
1
- import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
2
- import { $ as t, Bt as n, D as r, Jt as i, Vt as a, X as o, _ as s, b as c, c as l, ct as ee, dt as te, jt as ne, q as re, qt as ie, t as ae, tt as u, xt as oe } from "./lib-BuMGJ_a0.js";
3
- import { n as se, t as ce } from "./useHints-Dq_w2E8B.js";
4
- import { n as le, r as ue, t as de } from "./useTimeLabels-B9CEuiLZ.js";
5
- import { t as fe } from "./useConfig-BilxnBNr.js";
6
- import { t as pe } from "./usePrinter-BFvi4jVy.js";
7
- import { n as me, t as he } from "./BaseScanner-DZvpgOjM.js";
8
- import { t as ge } from "./useSvgExport-Ba9qBr9M.js";
9
- import { t as _e } from "./useNestedProp--NSEmhOH.js";
10
- import { t as ve } from "./useThemeCheck-C43Tcqmk.js";
11
- import { t as ye } from "./useTransitions-g_zBREk2.js";
12
- import { t as be } from "./useTimeLabelCollider-AEcY4Ioe.js";
13
- import { t as xe } from "./img-DIQG5q8T.js";
14
- import { n as Se } from "./Title-BODtwViI.js";
15
- import { t as Ce } from "./_plugin-vue_export-helper-B3ysoDQm.js";
16
- import { l as we, t as Te } from "./useResponsive-ZtArZtUf.js";
17
- import { t as Ee } from "./DefGrad-DVBqDjhO.js";
18
- import { t as De } from "./SlicerPreview-DvjLV2TW.js";
19
- import { t as Oe } from "./A11yDataTable-DdRsVULz.js";
20
- import { t as ke } from "./useUserOptionState-DK-_1ddE.js";
21
- import { t as Ae } from "./useChartAccessibility-DYqac8yF.js";
22
- import { t as je } from "./vue_ui_candlestick-J8jmJvxP.js";
23
- import { Fragment as d, computed as f, createBlock as p, createCommentVNode as m, createElementBlock as h, createElementVNode as g, createSlots as Me, createTextVNode as Ne, createVNode as Pe, defineAsyncComponent as _, guardReactiveProps as v, mergeProps as Fe, nextTick as Ie, normalizeClass as y, normalizeProps as b, normalizeStyle as Le, onBeforeUnmount as Re, onMounted as ze, openBlock as x, ref as S, renderList as C, renderSlot as w, resolveDynamicComponent as Be, shallowRef as Ve, toDisplayString as T, toRefs as He, unref as E, watch as Ue, watchEffect as We, withCtx as D } from "vue";
24
- //#region src/components/vue-ui-candlestick.vue
25
- var Ge = /* @__PURE__ */ e({ default: () => Tt }), Ke = ["id"], qe = ["id"], Je = { style: { position: "relative" } }, Ye = [
26
- "xmlns",
27
- "aria-describedby",
28
- "viewBox"
29
- ], Xe = [
30
- "x",
31
- "y",
32
- "width",
33
- "height"
34
- ], Ze = { key: 1 }, Qe = { key: 0 }, $e = [
35
- "x1",
36
- "x2",
37
- "y1",
38
- "y2",
39
- "stroke",
40
- "stroke-width"
41
- ], et = [
42
- "x1",
43
- "x2",
44
- "y1",
45
- "y2",
46
- "stroke",
47
- "stroke-width"
48
- ], tt = [
49
- "x1",
50
- "x2",
51
- "y1",
52
- "y2",
53
- "stroke",
54
- "stroke-width",
55
- "stroke-dasharray"
56
- ], nt = [
57
- "x1",
58
- "x2",
59
- "y1",
60
- "y2",
61
- "stroke",
62
- "stroke-width",
63
- "stroke-dasharray"
64
- ], rt = [
65
- "x1",
66
- "x2",
67
- "y1",
68
- "y2",
69
- "stroke",
70
- "stroke-width"
71
- ], it = [
72
- "x1",
73
- "x2",
74
- "y1",
75
- "y2",
76
- "stroke",
77
- "stroke-width"
78
- ], at = [
79
- "transform",
80
- "text-anchor",
81
- "font-size",
82
- "fill",
83
- "font-weight"
84
- ], ot = [
85
- "transform",
86
- "text-anchor",
87
- "font-size",
88
- "fill",
89
- "font-weight"
90
- ], st = [
91
- "transform",
92
- "text-anchor",
93
- "font-size",
94
- "fill",
95
- "font-weight"
96
- ], ct = [
97
- "x",
98
- "y",
99
- "width",
100
- "height",
101
- "fill",
102
- "rx"
103
- ], lt = { key: 0 }, ut = [
104
- "cx",
105
- "cy",
106
- "r",
107
- "fill"
108
- ], dt = [
109
- "cx",
110
- "cy",
111
- "r",
112
- "fill"
113
- ], ft = { key: 1 }, pt = [
114
- "x",
115
- "y",
116
- "width",
117
- "height",
118
- "rx",
119
- "fill"
120
- ], mt = [
121
- "x",
122
- "y",
123
- "width",
124
- "height",
125
- "fill",
126
- "rx"
127
- ], ht = [
128
- "x",
129
- "y",
130
- "height",
131
- "width",
132
- "fill",
133
- "rx"
134
- ], gt = [
135
- "x",
136
- "y",
137
- "height",
138
- "width",
139
- "fill",
140
- "rx",
141
- "stroke",
142
- "stroke-width"
143
- ], _t = ["d", "stroke"], vt = [
144
- "x",
145
- "y",
146
- "height",
147
- "width",
148
- "fill",
149
- "onMouseover",
150
- "onMouseleave",
151
- "onClick"
152
- ], yt = ["data-start", "data-end"], bt = {
153
- key: 0,
154
- style: {
155
- position: "absolute",
156
- top: "100%",
157
- left: "0",
158
- width: "100%"
159
- },
160
- "data-dom-to-png-ignore": "",
161
- "aria-hidden": "true"
162
- }, xt = {
163
- key: 5,
164
- class: "vue-data-ui-watermark"
165
- }, St = ["d", "stroke"], Ct = [
166
- "d",
167
- "stroke",
168
- "stroke-width"
169
- ], wt = ["innerHTML"], Tt = /*#__PURE__*/ Ce({
170
- __name: "vue-ui-candlestick",
171
- props: {
172
- config: {
173
- type: Object,
174
- default() {
175
- return {};
176
- }
177
- },
178
- dataset: {
179
- type: Array,
180
- default() {
181
- return [];
182
- }
183
- },
184
- selectedXIndex: {
185
- type: Number,
186
- default: void 0
187
- }
188
- },
189
- emits: ["selectX", "copyAlt"],
190
- setup(e, { expose: Ce, emit: Ge }) {
191
- let Tt = _(() => import("./BaseIcon-91MZoczJ.js").then((e) => e.n)), Et = _(() => import("./Tooltip-CMTGxeYO.js")), Dt = _(() => import("./vue-ui-accordion-61MlW-Ge.js").then((e) => e.n)), Ot = _(() => import("./DataTable-D4tM9s5Y.js")), kt = _(() => import("./PenAndPaper-cE4J8-rA.js").then((e) => e.t)), At = _(() => import("./UserOptions-3ujTo3LD.js").then((e) => e.n)), jt = _(() => import("./PackageVersion--QCMh5k_.js").then((e) => e.t)), Mt = _(() => import("./BaseDraggableDialog-qTnfhLBz.js").then((e) => e.n)), { vue_ui_candlestick: Nt } = fe(), { isThemeValid: Pt, warnInvalidTheme: Ft } = ve(), O = e, It = Ge, Lt = f(() => !!O.dataset && O.dataset.length), k = S(!1), Rt = S(null), A = S(re()), zt = S(!1), Bt = S(""), j = S(void 0), Vt = S(0), M = S(null), Ht = S(null), Ut = S(null), Wt = S(null), Gt = S(null), Kt = S(null), qt = S(0), Jt = S(0), Yt = S(0), Xt = S(null), Zt = S(null), Qt = S(null), $t = S(null), en = S(null), tn = S(!1), nn = S(!1), N = S(null), rn = S({
192
- x: 0,
193
- y: 0
194
- }), an = S("pointer"), on = S(!1), P = S(gn());
195
- se({
196
- config: () => P.value,
197
- dataset: () => O.dataset,
198
- component: "VueUiCandlestick",
199
- rules: [ce.emptyArray, {
200
- test: (e) => e.length > 200,
201
- message: [
202
- "👀 Dataset has > 200 points, which can cause performance issues. Consider:",
203
- "",
204
- "▶️ Adding date inputs to constraint the dataset into a specific timeframe",
205
- "",
206
- "▶️ Aggregate the data to larger time series to reduce the number of datapoints."
207
- ]
208
- }]
209
- });
210
- let { transitionEnabled: sn } = ye({
211
- config: () => P.value.transitions,
212
- dataset: () => O.dataset
213
- }), cn = f(() => P.value.userOptions.useCursorPointer), ln = f(() => i({
214
- defaultConfig: {
215
- useCssAnimation: !1,
216
- userOptions: { show: !1 },
217
- table: { show: !1 },
218
- style: {
219
- backgroundColor: "#99999930",
220
- layout: {
221
- candle: { colors: {
222
- bearish: "#BABABA",
223
- bullish: "#CACACA"
224
- } },
225
- grid: {
226
- stroke: "#6A6A6A",
227
- verticalLines: { stroke: "#6A6A6A" },
228
- horizontalLines: { stroke: "#6A6A6A" },
229
- yAxis: {
230
- dataLabels: { show: !1 },
231
- scale: {
232
- min: null,
233
- max: null
234
- }
235
- }
236
- },
237
- wick: {
238
- stroke: "#6A6A6A",
239
- extremity: { color: "#6A6A6A" }
240
- }
241
- },
242
- tooltip: { show: !1 },
243
- zoom: {
244
- show: !1,
245
- startIndex: null,
246
- endIndex: null
247
- }
248
- }
249
- },
250
- userConfig: P.value.skeletonConfig ?? {}
251
- })), { loading: F, FINAL_DATASET: I, manualLoading: un } = me({
252
- ...He(O),
253
- FINAL_CONFIG: P,
254
- prepareConfig: gn,
255
- callback: () => {
256
- Promise.resolve().then(async () => {
257
- await lr();
258
- });
259
- },
260
- skeletonDataset: O.config?.skeletonDataset ?? [
261
- [
262
- 17040672e5,
263
- 10,
264
- 20,
265
- 2,
266
- 10,
267
- 30
268
- ],
269
- [
270
- 17067456e5,
271
- 10,
272
- 30,
273
- 5,
274
- 20,
275
- 50
276
- ],
277
- [
278
- 17092512e5,
279
- 20,
280
- 50,
281
- 10,
282
- 30,
283
- 80
284
- ],
285
- [
286
- 17119296e5,
287
- 30,
288
- 80,
289
- 20,
290
- 50,
291
- 130
292
- ],
293
- [
294
- 17145216e5,
295
- 50,
296
- 130,
297
- 30,
298
- 100,
299
- 210
300
- ],
301
- [
302
- 17172e8,
303
- 80,
304
- 210,
305
- 50,
306
- 150,
307
- 340
308
- ],
309
- [
310
- 1719792e6,
311
- 130,
312
- 340,
313
- 80,
314
- 280,
315
- 550
316
- ],
317
- [
318
- 17224704e5,
319
- 210,
320
- 550,
321
- 130,
322
- 450,
323
- 890
324
- ],
325
- [
326
- 17251488e5,
327
- 340,
328
- 890,
329
- 210,
330
- 750,
331
- 1440
332
- ],
333
- [
334
- 17277408e5,
335
- 550,
336
- 1440,
337
- 340,
338
- 1230,
339
- 2330
340
- ],
341
- [
342
- 17304192e5,
343
- 890,
344
- 2330,
345
- 550,
346
- 1950,
347
- 3770
348
- ],
349
- [
350
- 17330112e5,
351
- 1440,
352
- 3770,
353
- 890,
354
- 3200,
355
- 5100
356
- ]
357
- ],
358
- skeletonConfig: i({
359
- defaultConfig: P.value,
360
- userConfig: ln.value
361
- })
362
- }), { userOptionsVisible: dn, setUserOptionsVisibility: fn, keepUserOptionState: pn } = ke({ config: P.value }), { svgRef: L } = Ae({ config: P.value.style.title });
363
- function mn() {
364
- fn(!0);
365
- }
366
- function hn() {
367
- fn(!1), It("selectX", {
368
- seriesIndex: null,
369
- datapoint: null
370
- }), j.value = null;
371
- }
372
- function gn() {
373
- let e = _e({
374
- userConfig: O.config,
375
- defaultConfig: Nt
376
- }), t = {}, n = e.theme;
377
- if (n) if (!Pt.value(e)) Ft(e), t = e;
378
- else {
379
- let r = _e({
380
- userConfig: je[n] || O.config,
381
- defaultConfig: e
382
- });
383
- t = { ..._e({
384
- userConfig: O.config,
385
- defaultConfig: r
386
- }) };
387
- }
388
- else t = e;
389
- return t;
390
- }
391
- Ue(() => O.config, (e) => {
392
- F.value || (P.value = gn()), dn.value = !P.value.userOptions.showOnChartHover, _n(), qt.value += 1, Yt.value += 1, Jt.value += 1, H.value.showTable = P.value.table.show, H.value.showTooltip = P.value.style.tooltip.show, An();
393
- }, { deep: !0 }), Ue(() => O.dataset, (e) => {
394
- Array.isArray(e) && e.length > 0 && (un.value = !1), ar();
395
- }, { deep: !0 });
396
- let R = S({
397
- height: P.value.style.height,
398
- width: P.value.style.width,
399
- xAxisFontSize: P.value.style.layout.grid.xAxis.dataLabels.fontSize,
400
- yAxisFontSize: P.value.style.layout.grid.yAxis.dataLabels.fontSize
401
- }), z = Ve(null), B = Ve(null);
402
- ze(() => {
403
- _n();
404
- });
405
- let V = f(() => !!P.value.debug);
406
- function _n() {
407
- if (ne(O.dataset) && (u({
408
- componentName: "VueUiCandlestick",
409
- type: "dataset",
410
- debug: V.value
411
- }), un.value = !0), ne(O.dataset) || (un.value = P.value.loading), setTimeout(() => {
412
- k.value = !0;
413
- }, 10), P.value.responsive) {
414
- let e = we(() => {
415
- k.value = !1;
416
- let { width: e, height: t } = Te({
417
- chart: M.value,
418
- title: P.value.style.title.text ? Ht.value : null,
419
- slicer: P.value.style.zoom.show && G.value > 6 ? Wt.value.$el : null,
420
- legend: Ut.value,
421
- source: Gt.value,
422
- noTitle: Kt.value
423
- });
424
- requestAnimationFrame(() => {
425
- R.value.width = e, R.value.height = t - 12, P.value.responsiveProportionalSizing ? (R.value.xAxisFontSize = ie({
426
- relator: Math.min(e, t),
427
- adjuster: P.value.style.width,
428
- source: P.value.style.layout.grid.xAxis.dataLabels.fontSize,
429
- threshold: 6,
430
- fallback: 6
431
- }), R.value.yAxisFontSize = ie({
432
- relator: Math.min(e, t),
433
- adjuster: P.value.style.width,
434
- source: P.value.style.layout.grid.yAxis.dataLabels.fontSize,
435
- threshold: 6,
436
- fallback: 6
437
- })) : (R.value.xAxisFontSize = P.value.style.layout.grid.xAxis.dataLabels.fontSize, R.value.yAxisFontSize = P.value.style.layout.grid.yAxis.dataLabels.fontSize), Rt.value && clearTimeout(Rt.value), Rt.value = setTimeout(() => {
438
- k.value = !0;
439
- }, 10);
440
- });
441
- });
442
- z.value && (B.value && z.value.unobserve(B.value), z.value.disconnect()), z.value = new ResizeObserver(e), B.value = M.value.parentNode, z.value.observe(B.value);
443
- }
444
- lr();
445
- }
446
- Re(() => {
447
- z.value && (B.value && z.value.unobserve(B.value), z.value.disconnect());
448
- });
449
- let { isPrinting: vn, isImaging: yn, generatePdf: bn, generateImage: xn } = pe({
450
- elementId: `vue-ui-candlestick_${A.value}`,
451
- fileName: P.value.style.title.text || "vue-ui-candlestick",
452
- options: P.value.userOptions.print
453
- }), Sn = f(() => P.value.userOptions.show && !P.value.style.title.text), H = S({
454
- showTable: P.value.table.show,
455
- showTooltip: P.value.style.tooltip.show
456
- }), Cn = S(0), wn = we((e) => {
457
- Cn.value = e;
458
- }, 100);
459
- We((e) => {
460
- let t = Zt.value;
461
- if (!t) return;
462
- let n = new ResizeObserver((e) => {
463
- wn(e[0].contentRect.height);
464
- });
465
- n.observe(t), e(() => n.disconnect());
466
- }), Re(() => {
467
- Cn.value = 0;
468
- });
469
- let Tn = f(() => {
470
- let e = 0;
471
- return Zt.value && (e = Cn.value + R.value.xAxisFontSize), e;
472
- }), U = f(() => P.value.style.layout.grid.yAxis.position === "right");
473
- function En() {
474
- let e = P.value.style.layout.grid.yAxis.dataLabels.offsetX;
475
- Xt.value && (e = Array.from(Xt.value.querySelectorAll("text")).reduce((e, t) => {
476
- let n = t.getComputedTextLength();
477
- return n > e ? n : e;
478
- }, 0));
479
- let t = P.value.style.layout.grid.yAxis.axisName?.show ? P.value.style.layout.grid.yAxis.axisName.fontSize + P.value.style.layout.grid.yAxis.axisName.offsetX : 0, n = e + 13 + t;
480
- return {
481
- left: U.value ? 0 : n,
482
- right: U.value ? n : 0,
483
- scaleLabelsWidth: e,
484
- yAxisNameWidth: t,
485
- crosshair: 13
486
- };
487
- }
488
- let W = f(() => {
489
- let { top: e, right: t, bottom: n, left: r } = P.value.style.layout.padding, i = En();
490
- return {
491
- top: e + 12,
492
- right: R.value.width - t - i.right,
493
- left: r + i.left,
494
- bottom: R.value.height - n - Tn.value,
495
- width: R.value.width - r - t - i.left - i.right,
496
- height: R.value.height - e - n - Tn.value - 12,
497
- scaleLabelsWidth: i.scaleLabelsWidth,
498
- yAxisNameWidth: i.yAxisNameWidth,
499
- crosshair: i.crosshair
500
- };
501
- }), Dn = f(() => {
502
- let { left: e, top: t, width: n, height: r } = W.value, i = K.value.start, a = K.value.end - i, o = n / a, s = q.value.start - i, c = q.value.end - i, l = Math.max(0, Math.min(a, s)), ee = Math.max(0, Math.min(a, c));
503
- return {
504
- x: e + l * o,
505
- y: t,
506
- width: (ee - l) * o,
507
- height: r,
508
- fill: P.value.style.zoom.preview.fill,
509
- stroke: P.value.style.zoom.preview.stroke,
510
- "stroke-width": P.value.style.zoom.preview.strokeWidth,
511
- "stroke-dasharray": P.value.style.zoom.preview.strokeDasharray,
512
- "stroke-linecap": "round",
513
- "stroke-linejoin": "round",
514
- style: {
515
- pointerEvents: "none",
516
- transition: "none !important",
517
- animation: "none !important"
518
- }
519
- };
520
- }), G = f(() => I.value.length), K = S({
521
- start: 0,
522
- end: G.value
523
- }), q = S({
524
- start: 0,
525
- end: G.value
526
- }), On = f(() => P.value.style.zoom.preview.enable && (q.value.start !== K.value.start || q.value.end !== K.value.end));
527
- function kn(e, t) {
528
- q.value[e] = t;
529
- }
530
- function An() {
531
- let e = Math.max(0, Math.min(K.value.start ?? 0, G.value - 1)), t = Math.max(e + 1, Math.min(K.value.end ?? G.value, G.value));
532
- (!Number.isFinite(e) || !Number.isFinite(t) || t <= e) && (e = 0, t = G.value), K.value.start = e, K.value.end = t, q.value.start = e, q.value.end = t, Wt.value && (Wt.value.setStartValue(e), Wt.value.setEndValue(t));
533
- }
534
- let jn = f(() => I.value.map((e, t) => ({
535
- ...e,
536
- absoluteIndex: t
537
- }))), Mn = f(() => jn.value.slice(K.value.start, K.value.end)), J = f(() => (I.value.forEach((e, t) => {
538
- [null, void 0].includes(e[0]) && u({
539
- componentName: "VueUiCandlestick",
540
- type: "datasetAttribute",
541
- property: "period (index 0)",
542
- index: t,
543
- debug: V.value
544
- }), [null, void 0].includes(e[1]) && u({
545
- componentName: "VueUiCandlestick",
546
- type: "datasetAttribute",
547
- property: "open (index 1)",
548
- index: t,
549
- debug: V.value
550
- }), [null, void 0].includes(e[2]) && u({
551
- componentName: "VueUiCandlestick",
552
- type: "datasetAttribute",
553
- property: "high (index 2)",
554
- index: t,
555
- debug: V.value
556
- }), [null, void 0].includes(e[3]) && u({
557
- componentName: "VueUiCandlestick",
558
- type: "datasetAttribute",
559
- property: "low (index 3)",
560
- index: t,
561
- debug: V.value
562
- }), [null, void 0].includes(e[4]) && u({
563
- componentName: "VueUiCandlestick",
564
- type: "datasetAttribute",
565
- property: "close (index 4)",
566
- index: t,
567
- debug: V.value
568
- }), [null, void 0].includes(e[5]) && u({
569
- componentName: "VueUiCandlestick",
570
- type: "datasetAttribute",
571
- property: "volume (index 5)",
572
- index: t,
573
- debug: V.value
574
- });
575
- }), Mn.value.map((e) => ({
576
- absoluteIndex: e.absoluteIndex,
577
- period: e[0],
578
- open: e[1],
579
- high: e[2],
580
- low: e[3],
581
- close: e[4],
582
- volume: e[5]
583
- })))), Nn = f(() => jn.value.map((e) => ({
584
- absoluteIndex: e.absoluteIndex,
585
- period: e[0],
586
- open: e[1],
587
- high: e[2],
588
- low: e[3],
589
- close: e[4],
590
- volume: e[5]
591
- }))), Y = f(() => W.value.width / Mn.value.length), Pn = f(() => ({
592
- max: P.value.style.layout.grid.yAxis.scale.max === null ? Math.max(...J.value.map((e) => e.high)) : P.value.style.layout.grid.yAxis.scale.max,
593
- min: P.value.style.layout.grid.yAxis.scale.min === null ? 0 : P.value.style.layout.grid.yAxis.scale.min
594
- })), X = f(() => s(Pn.value.min, Pn.value.max, P.value.style.layout.grid.yAxis.dataLabels.steps));
595
- function Fn(e, t, n = null, r = null) {
596
- return {
597
- ...e,
598
- x: c(W.value.left + t * Y.value + Y.value / 2),
599
- y: c(W.value.top + (1 - (e - X.value.min) / (X.value.max - X.value.min)) * W.value.height),
600
- value: c(e),
601
- isMax: e === n,
602
- isMin: e === r
603
- };
604
- }
605
- let Z = f(() => {
606
- let e = {
607
- o: Math.max(...J.value.map((e) => e.open)),
608
- h: Math.max(...J.value.map((e) => e.high)),
609
- l: Math.max(...J.value.map((e) => e.low)),
610
- c: Math.max(...J.value.map((e) => e.low))
611
- }, t = {
612
- o: Math.min(...J.value.map((e) => e.open)),
613
- h: Math.min(...J.value.map((e) => e.high)),
614
- l: Math.min(...J.value.map((e) => e.low)),
615
- c: Math.min(...J.value.map((e) => e.low))
616
- }, n = Math.max(...J.value.map((e) => e.volume)), r = Math.min(...J.value.map((e) => e.volume));
617
- return J.value.map((i, a) => {
618
- let o = Fn(i.open, a, e.o, t.o), s = Fn(i.high, a, e.h, t.h), c = Fn(i.low, a, e.l, t.l), l = Fn(i.close, a, e.c, t.c), ee = i.close > i.open, te = i.volume === n, ne = i.volume === r;
619
- return {
620
- period: i.period,
621
- open: o,
622
- high: s,
623
- low: c,
624
- close: l,
625
- volume: i.volume,
626
- isBullish: ee,
627
- absoluteIndex: i.absoluteIndex,
628
- isMaxVolume: te,
629
- isMinVolume: ne
630
- };
631
- });
632
- });
633
- function In({ item: e, index: t, minimapH: n, unitW: r }) {
634
- let i = P.value.style.layout.grid.yAxis.scale.min ?? 0, a = P.value.style.layout.grid.yAxis.scale.max ?? Math.max(...I.value.map((e) => e[2]));
635
- return {
636
- ...e,
637
- x: c(t * r),
638
- y: c((1 - (e - i) / (a - i)) * n),
639
- value: c(e)
640
- };
641
- }
642
- let Ln = f(() => ({ minimapH: e, unitW: t }) => Nn.value.map((n, r) => {
643
- let i = In({
644
- item: n.open,
645
- index: r,
646
- minimapH: e,
647
- unitW: t
648
- }), a = In({
649
- item: n.high,
650
- index: r,
651
- minimapH: e,
652
- unitW: t
653
- }), o = In({
654
- item: n.low,
655
- index: r,
656
- minimapH: e,
657
- unitW: t
658
- }), s = In({
659
- item: n.close,
660
- index: r,
661
- minimapH: e,
662
- unitW: t
663
- }), c = n.close > n.open;
664
- return {
665
- period: n.period,
666
- open: i,
667
- high: a,
668
- low: o,
669
- close: s,
670
- volume: n.volume,
671
- isBullish: c,
672
- absoluteIndex: n.absoluteIndex
673
- };
674
- })), Rn = f(() => P.value.style.zoom.minimap.show ? [{
675
- name: "",
676
- series: I.value.map((e) => e[2]),
677
- color: "#000000",
678
- isVisible: !0
679
- }] : []);
680
- function zn(e) {
681
- return c((e - X.value.min) / (X.value.max - X.value.min));
682
- }
683
- let Bn = f(() => X.value.ticks.map((e) => ({
684
- y: W.value.bottom - W.value.height * zn(e),
685
- value: c(e)
686
- }))), Vn = f(() => J.value.map((e) => e.period)), Q = S([]), Hn = S([]), Un = 0;
687
- We(() => {
688
- let e = ++Un;
689
- (async () => {
690
- let t = await de({
691
- values: I.value.map((e) => e[0]),
692
- maxDatapoints: I.value.length,
693
- formatter: P.value.style.layout.grid.xAxis.dataLabels.datetimeFormatter,
694
- start: K.value.start,
695
- end: K.value.end
696
- });
697
- e === Un && (Q.value = t);
698
- })();
699
- });
700
- let Wn = 0;
701
- We(() => {
702
- let e = ++Wn;
703
- (async () => {
704
- let t = await de({
705
- values: I.value.map((e) => e[0]),
706
- maxDatapoints: I.value.length,
707
- formatter: P.value.style.layout.grid.xAxis.dataLabels.datetimeFormatter,
708
- start: 0,
709
- end: G.value
710
- });
711
- e === Wn && (Hn.value = t);
712
- })();
713
- });
714
- let Gn = f(() => {
715
- let e = P.value.style.layout.grid.xAxis.dataLabels.modulo;
716
- return Q.value.length ? Math.min(e, [...new Set(Q.value.map((e) => e.text))].length) : e;
717
- }), Kn = S({
718
- months: [],
719
- shortMonths: [],
720
- days: [],
721
- shortDays: []
722
- }), qn = 0;
723
- We(() => {
724
- let e = ++qn, t = P.value.style.layout.grid.xAxis.dataLabels.datetimeFormatter;
725
- (async () => {
726
- let n = await ue(t.locale).catch(() => ue("en"));
727
- e === qn && (Kn.value = n.data);
728
- })();
729
- });
730
- let Jn = f(() => {
731
- let e = P.value.style.layout.grid.xAxis.dataLabels.datetimeFormatter, t = le({
732
- useUTC: e.useUTC,
733
- locale: Kn.value,
734
- januaryAsYear: e.januaryAsYear
735
- });
736
- return (e, n) => {
737
- let r = I.value.map((e) => e[0])?.[e];
738
- return r == null ? "" : t.formatDate(new Date(r), n);
739
- };
740
- }), Yn = f(() => (I.value.map((e) => e[0]) || []).map((e, t) => ({
741
- text: Jn.value(t, P.value.style.tooltip.timeFormat),
742
- absoluteIndex: t
743
- }))), Xn = f(() => (I.value.map((e) => e[0]) || []).map((e, t) => ({
744
- text: Jn.value(t, P.value.style.zoom.timeFormat),
745
- absoluteIndex: t
746
- }))), Zn = f(() => {
747
- let e = P.value.style.layout.grid.xAxis.dataLabels, t = Q.value || [], n = Hn.value || [], r = K.value.start ?? 0, i = j.value, a = G.value, o = t.map((e) => e?.text ?? ""), s = n.map((e) => e?.text ?? "");
748
- return l(!!e.showOnlyFirstAndLast, !!e.showOnlyAtModulo, Math.max(1, Gn.value || 1), o, s, r, i, a);
749
- }), Qn = f(() => P.value.style.layout.grid.xAxis.dataLabels.datetimeFormatter.enable ? {
750
- start: Q.value.find((e) => e.absoluteIndex === K.value.start)?.text ?? "",
751
- end: Q.value.find((e) => e.absoluteIndex === K.value.end - 1)?.text ?? ""
752
- } : {
753
- start: I.value[K.value.start] ? I.value[K.value.start][0] : I.value[0][0],
754
- end: I.value[K.value.end - 1] ? I.value[K.value.end - 1][0] : I.value.at(-1)[0]
755
- }), $n = S(null);
756
- function er(e, t) {
757
- P.value.events.datapointClick && P.value.events.datapointClick({
758
- datapoint: t,
759
- seriesIndex: e + K.value.start
760
- });
761
- }
762
- function tr(e, t) {
763
- P.value.events.datapointLeave && P.value.events.datapointLeave({
764
- datapoint: t,
765
- seriesIndex: e + K.value.start
766
- }), j.value = void 0, zt.value = !1, N.value = null, an.value = "pointer";
767
- }
768
- Ue(() => O.selectedXIndex, (e) => {
769
- if ([null, void 0].includes(O.selectedXIndex)) {
770
- j.value = null;
771
- return;
772
- }
773
- let t = e - K.value.start;
774
- t < 0 || e >= K.value.end ? j.value = null : j.value = t ?? null;
775
- }, { immediate: !0 });
776
- function nr(e, t, n = "pointer") {
777
- P.value.events.datapointEnter && P.value.events.datapointEnter({
778
- datapoint: t,
779
- seriesIndex: e + K.value.start
780
- }), j.value = e, N.value = e, an.value = n, $n.value = {
781
- datapoint: t,
782
- seriesIndex: e,
783
- series: Z.value,
784
- config: P.value
785
- }, Ar({
786
- seriesIndex: e,
787
- datapoint: t
788
- });
789
- let r = P.value.style.tooltip.customFormat;
790
- if (oe(r) && ee(() => r({
791
- seriesIndex: e,
792
- datapoint: t,
793
- series: Z.value,
794
- config: P.value
795
- }))) Bt.value = r({
796
- seriesIndex: e,
797
- datapoint: t,
798
- series: Z.value,
799
- config: P.value
800
- });
801
- else if (P.value.style.tooltip.show) {
802
- let n = "", { period: r, open: i, high: a, low: s, close: c, volume: l, isBullish: ee } = Z.value[e], { period: te, open: ne, high: re, low: ie, close: ae, volume: u } = P.value.translations, oe = P.value.style.layout.grid.xAxis.dataLabels.datetimeFormatter.enable ? P.value.style.tooltip.useDefaultTimeFormat ? Q.value[e].text : Yn.value[e].text : r;
803
- n += `<div><svg style="margin-right:6px" viewBox="0 0 12 12" height="12" width="12"><rect x="0" y="0" height="12" width="12" rx="${P.value.style.layout.candle.borderRadius * 3}" stroke="${P.value.style.layout.candle.stroke}" stroke-width="${P.value.style.layout.candle.strokeWidth}"
804
- fill="${P.value.style.layout.candle.gradient.show ? ee ? `url(#bullish_gradient_${A.value})` : `url(#bearish_gradient_${A.value})` : ee ? P.value.style.layout.candle.colors.bullish : P.value.style.layout.candle.colors.bearish}"/></svg>${oe}</div>`, n += `${u} : <b>${isNaN(l) ? "-" : Number(l.toFixed(P.value.style.tooltip.roundingValue)).toLocaleString()}</b>`, n += `<div style="margin-top:6px;padding-top:6px;border-top:1px solid ${P.value.style.tooltip.borderColor}">`;
805
- let se = o({
806
- p: P.value.style.tooltip.prefix,
807
- v: i.value,
808
- s: P.value.style.tooltip.suffix,
809
- r: P.value.style.tooltip.roundingValue
810
- }), ce = o({
811
- p: P.value.style.tooltip.prefix,
812
- v: a.value,
813
- s: P.value.style.tooltip.suffix,
814
- r: P.value.style.tooltip.roundingValue
815
- }), le = o({
816
- p: P.value.style.tooltip.prefix,
817
- v: s.value,
818
- s: P.value.style.tooltip.suffix,
819
- r: P.value.style.tooltip.roundingValue
820
- }), ue = o({
821
- p: P.value.style.tooltip.prefix,
822
- v: c.value,
823
- s: P.value.style.tooltip.suffix,
824
- r: P.value.style.tooltip.roundingValue
825
- });
826
- P.value.style.tooltip.showChart ? n += `<div style="width:100%;display:flex;align-items:center;justify-content:center;">
827
- <svg viewBox="0 0 100 100" width="100px" style="background: transparent; overflow: visible">
828
- <g>
829
- <line x1="50" x2="50" y1="20" y2="80" stroke="${t.isBullish ? P.value.style.layout.candle.colors.bullish : P.value.style.layout.candle.colors.bearish}" stroke-width="2" stroke-linecap="round" />
830
- ${t.isBullish ? `
831
- <line x1="45" x2="50" y1="65" y2="65" stroke="${P.value.style.layout.candle.colors.bullish}" stroke-width="1.5" stroke-linecap="round" />
832
- <line x1="50" x2="55" y1="35" y2="35" stroke="${P.value.style.layout.candle.colors.bullish}" stroke-width="1.5" stroke-linecap="round" />
833
- <text x="38" y="70" text-anchor="end" fill="${P.value.style.tooltip.color}">${se}</text>
834
- <text x="62" y="40" text-anchor="start" fill="${P.value.style.tooltip.color}">${ue}</text>
835
- ` : `
836
- <line x1="45" x2="50" y1="35" y2="35" stroke="${P.value.style.layout.candle.colors.bearish}" stroke-width="1.5" stroke-linecap="round" />
837
- <line x1="50" x2="55" y1="65" y2="65" stroke="${P.value.style.layout.candle.colors.bearish}" stroke-width="1.5" stroke-linecap="round" />
838
- <text x="40" y="40" text-anchor="end" fill="${P.value.style.tooltip.color}">${se}</text>
839
- <text x="60" y="70" text-anchor="start" fill="${P.value.style.tooltip.color}">${ue}</text>
840
- `}
841
- <text x="50" y="13" text-anchor="middle" fill="${P.value.style.tooltip.color}">${ce}</text>
842
- <text x="50" y="97" text-anchor="middle" fill="${P.value.style.tooltip.color}">${le}</text>
843
- <g>
844
- </svg>
845
- <div>
846
- ` : (n += `<div>${ne}: <b>${se}</b></div>`, n += `<div>${re}: <b>${ce}</b></div>`, n += `<div>${ie}: <b>${le}</b></div>`, n += `<div>${ae}: <b>${ue}</b></div>`), n += "</div>", Bt.value = `<div style="text-align:right">${n}</div>`;
847
- }
848
- zt.value = !0;
849
- }
850
- let rr = S(null);
851
- function ir() {
852
- return new Promise((e) => requestAnimationFrame(() => requestAnimationFrame(() => e())));
853
- }
854
- Re(() => {
855
- rr.value && cancelAnimationFrame(rr.value);
856
- });
857
- async function ar() {
858
- lr(), await Ie(), rr.value && cancelAnimationFrame(rr.value), rr.value = requestAnimationFrame(async () => {
859
- await ir(), lr();
860
- });
861
- }
862
- let or = S(!1), sr = S(!1), cr = S(!1);
863
- function lr() {
864
- if (!or.value) {
865
- or.value = !0;
866
- try {
867
- let { startIndex: e, endIndex: t } = P.value.style.zoom, n = G.value, r = e ?? 0, i = t == null ? n : Math.min(ur(t + 1), n);
868
- cr.value = !0, K.value.start = r, K.value.end = i, q.value.start = r, q.value.end = i, An(), sr.value = !0;
869
- } finally {
870
- queueMicrotask(() => {
871
- cr.value = !1;
872
- }), or.value = !1;
873
- }
874
- }
875
- }
876
- function ur(e) {
877
- let t = G.value;
878
- return e > t ? t : e < 0 || e < K.value.start ? P.value.style.zoom.startIndex === null ? 1 : P.value.style.zoom.startIndex + 1 : e;
879
- }
880
- function dr(e = null) {
881
- Ie(() => {
882
- let n = [
883
- P.value.translations.period,
884
- P.value.translations.open,
885
- P.value.translations.high,
886
- P.value.translations.low,
887
- P.value.translations.close,
888
- P.value.translations.volume
889
- ], i = Z.value.map((e, t) => [
890
- P.value.style.layout.grid.xAxis.dataLabels.datetimeFormatter.enable ? Q.value[t].text : e.period,
891
- e.open.value,
892
- e.high.value,
893
- e.low.value,
894
- e.close.value,
895
- e.volume
896
- ]), a = r([
897
- [P.value.style.title.text],
898
- [P.value.style.title.subtitle.text],
899
- [
900
- [""],
901
- [""],
902
- [""]
903
- ],
904
- n
905
- ].concat(i));
906
- e ? e(a) : t({
907
- csvContent: a,
908
- title: P.value.style.title.text || "vue-ui-candlestick"
909
- });
910
- });
911
- }
912
- let fr = f(() => {
913
- let e = Z.value.map((e, t) => {
914
- let n = P.value.style.layout.grid.xAxis.dataLabels.datetimeFormatter.enable ? Q.value?.[t]?.text ?? "" : e.period, r = o({
915
- p: P.value.table.td.prefix,
916
- v: e.open.value,
917
- s: P.value.table.td.suffix,
918
- r: P.value.table.td.roundingValue
919
- }), i = o({
920
- p: P.value.table.td.prefix,
921
- v: e.high.value,
922
- s: P.value.table.td.suffix,
923
- r: P.value.table.td.roundingValue
924
- }), a = o({
925
- p: P.value.table.td.prefix,
926
- v: e.low.value,
927
- s: P.value.table.td.suffix,
928
- r: P.value.table.td.roundingValue
929
- }), s = o({
930
- p: P.value.table.td.prefix,
931
- v: e.close.value,
932
- s: P.value.table.td.suffix,
933
- r: P.value.table.td.roundingValue
934
- });
935
- return [
936
- `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 12" height="12" width="12" style="margin-right: 6px"><rect x="0" y="0" height="12" width="12" rx="${P.value.style.layout.candle.borderRadius * 3}" fill="${P.value.style.layout.candle.gradient.show ? e.isBullish ? `url(#bullish_gradient_${A.value})` : `url(#bearish_gradient_${A.value})` : e.isBullish ? P.value.style.layout.candle.colors.bullish : P.value.style.layout.candle.colors.bearish}"/></svg> ${n}`,
937
- r,
938
- i,
939
- a,
940
- s,
941
- `${isNaN(e.volume) ? "-" : e.volume.toLocaleString()}`
942
- ];
943
- }), t = Z.value.map((e, t) => [
944
- P.value.style.layout.grid.xAxis.dataLabels.datetimeFormatter.enable ? Q.value?.[t]?.text ?? "" : e.period,
945
- o({
946
- p: P.value.table.td.prefix,
947
- v: e.open.value,
948
- s: P.value.table.td.suffix,
949
- r: P.value.table.td.roundingValue
950
- }),
951
- o({
952
- p: P.value.table.td.prefix,
953
- v: e.high.value,
954
- s: P.value.table.td.suffix,
955
- r: P.value.table.td.roundingValue
956
- }),
957
- o({
958
- p: P.value.table.td.prefix,
959
- v: e.low.value,
960
- s: P.value.table.td.suffix,
961
- r: P.value.table.td.roundingValue
962
- }),
963
- o({
964
- p: P.value.table.td.prefix,
965
- v: e.close.value,
966
- s: P.value.table.td.suffix,
967
- r: P.value.table.td.roundingValue
968
- }),
969
- `${isNaN(e.volume) ? "-" : e.volume}`
970
- ]), n = {
971
- th: {
972
- backgroundColor: P.value.table.th.backgroundColor,
973
- color: P.value.table.th.color,
974
- outline: P.value.table.th.outline
975
- },
976
- td: {
977
- backgroundColor: P.value.table.td.backgroundColor,
978
- color: P.value.table.td.color,
979
- outline: P.value.table.td.outline
980
- },
981
- breakpoint: P.value.table.responsiveBreakpoint
982
- }, r = [
983
- P.value.translations.period,
984
- P.value.translations.open,
985
- P.value.translations.high,
986
- P.value.translations.low,
987
- P.value.translations.last,
988
- P.value.translations.volume
989
- ];
990
- return {
991
- head: r,
992
- body: e,
993
- bodyA11y: t,
994
- config: n,
995
- colNames: r
996
- };
997
- }), $ = S(!1);
998
- function pr(e) {
999
- $.value = e, Vt.value += 1;
1000
- }
1001
- function mr() {
1002
- H.value.showTable = !H.value.showTable;
1003
- }
1004
- function hr() {
1005
- H.value.showTooltip = !H.value.showTooltip;
1006
- }
1007
- let gr = S(!1);
1008
- function _r() {
1009
- gr.value = !gr.value;
1010
- }
1011
- async function vr({ scale: e = 2 } = {}) {
1012
- if (!M.value) return;
1013
- let { imageUri: t, base64: n } = await xe({
1014
- domElement: M.value,
1015
- base64: !0,
1016
- img: !0,
1017
- scale: e
1018
- }), r = M.value.getBoundingClientRect(), i = {
1019
- width: r.width,
1020
- height: r.height,
1021
- aspectRatio: r.height ? r.width / r.height : 0
1022
- }, a = await te(t, e) ?? i;
1023
- return {
1024
- imageUri: t,
1025
- base64: n,
1026
- title: P.value.style.title.text,
1027
- ...a
1028
- };
1029
- }
1030
- let yr = f(() => R.value.width), br = f(() => R.value.height);
1031
- be({
1032
- timeLabelsEls: Zt,
1033
- timeLabels: Q,
1034
- slicer: K,
1035
- configRef: P,
1036
- rotationPath: [
1037
- "style",
1038
- "layout",
1039
- "grid",
1040
- "xAxis",
1041
- "dataLabels",
1042
- "rotation"
1043
- ],
1044
- autoRotatePath: [
1045
- "style",
1046
- "layout",
1047
- "grid",
1048
- "xAxis",
1049
- "dataLabels",
1050
- "autoRotate",
1051
- "enable"
1052
- ],
1053
- isAutoSize: !1,
1054
- rotation: P.value.style.layout.grid.xAxis.dataLabels.autoRotate.angle,
1055
- width: yr,
1056
- height: br
1057
- }), Ue(P, () => {
1058
- H.value = {
1059
- showTable: P.value.table.show,
1060
- showTooltip: P.value.style.tooltip.show
1061
- };
1062
- }, { immediate: !0 });
1063
- let xr = f(() => {
1064
- let e = P.value.table.useDialog && !P.value.table.show, t = H.value.showTable;
1065
- return {
1066
- component: e ? Mt : Dt,
1067
- title: `${P.value.style.title.text}${P.value.style.title.subtitle.text ? `: ${P.value.style.title.subtitle.text}` : ""}`,
1068
- props: e ? {
1069
- backgroundColor: P.value.table.th.backgroundColor,
1070
- color: P.value.table.th.color,
1071
- headerColor: P.value.table.th.color,
1072
- headerBg: P.value.table.th.backgroundColor,
1073
- isFullscreen: $.value,
1074
- fullscreenParent: M.value,
1075
- forcedWidth: Math.min(800, window.innerWidth * .8),
1076
- isCursorPointer: cn.value
1077
- } : {
1078
- hideDetails: !0,
1079
- config: {
1080
- open: t,
1081
- maxHeight: 1e4,
1082
- body: {
1083
- backgroundColor: P.value.style.backgroundColor,
1084
- color: P.value.style.color
1085
- },
1086
- head: {
1087
- backgroundColor: P.value.style.backgroundColor,
1088
- color: P.value.style.color
1089
- }
1090
- }
1091
- }
1092
- };
1093
- });
1094
- Ue(() => H.value.showTable, (e) => {
1095
- P.value.table.show || (e && P.value.table.useDialog && Qt.value ? Qt.value.open() : "close" in Qt.value && Qt.value.close());
1096
- });
1097
- function Sr() {
1098
- H.value.showTable = !1, $t.value && $t.value.setTableIconState(!1);
1099
- }
1100
- let Cr = f(() => P.value.style.backgroundColor), { exportSvg: wr, getSvg: Tr } = ge({
1101
- svg: L,
1102
- title: f(() => P.value.style.title),
1103
- backgroundColor: Cr
1104
- });
1105
- async function Er({ isCb: e }) {
1106
- nn.value = !0, await Ie();
1107
- try {
1108
- if (e) {
1109
- let { blob: e, url: t, text: n, dataUrl: r } = await Tr();
1110
- await Promise.resolve(P.value.userOptions.callbacks.svg({
1111
- blob: e,
1112
- url: t,
1113
- text: n,
1114
- dataUrl: r
1115
- }));
1116
- } else await Promise.resolve(wr());
1117
- } finally {
1118
- nn.value = !1;
1119
- }
1120
- }
1121
- function Dr(e) {
1122
- en.value = e;
1123
- }
1124
- function Or(e) {
1125
- or.value || cr.value || e !== K.value.start && (K.value.start = e, q.value.start = e, An());
1126
- }
1127
- function kr(e) {
1128
- if (or.value || cr.value) return;
1129
- let t = ur(e);
1130
- t !== K.value.end && (K.value.end = t, q.value.end = t, An());
1131
- }
1132
- function Ar({ seriesIndex: e, datapoint: t }) {
1133
- let n = K.value.start + e;
1134
- It("selectX", {
1135
- dataset: t,
1136
- index: n,
1137
- indexLabel: ""
1138
- });
1139
- }
1140
- function jr(e) {
1141
- if (e?.stage === "start") {
1142
- tn.value = !0;
1143
- return;
1144
- }
1145
- if (e?.stage === "end") {
1146
- tn.value = !1;
1147
- return;
1148
- }
1149
- xn();
1150
- }
1151
- async function Mr() {
1152
- if (It("copyAlt", {
1153
- config: P.value,
1154
- dataset: Z.value
1155
- }), !P.value.userOptions.callbacks.altCopy) {
1156
- console.warn("Vue Data UI - A callback must be set for `altCopy` in userOptions.");
1157
- return;
1158
- }
1159
- await Promise.resolve(P.value.userOptions.callbacks.altCopy({
1160
- config: P.value,
1161
- dataset: Z.value
1162
- }));
1163
- }
1164
- function Nr() {
1165
- N.value = null, on.value = !0;
1166
- }
1167
- function Pr() {
1168
- N.value = null, an.value = "pointer", zt.value = !1, j.value = void 0, on.value = !1;
1169
- }
1170
- function Fr(e) {
1171
- if (!L.value || gr.value || document.activeElement !== L.value || !Z.value.length) return;
1172
- let t = e.key === "ArrowLeft", n = e.key === "ArrowRight", r = e.key === "Enter" || e.key === " ", i = e.key === "Escape";
1173
- if (!t && !n && !r && !i) return;
1174
- if (e.preventDefault(), e.stopPropagation(), i) {
1175
- N.value = null, an.value = "pointer", zt.value = !1, j.value = void 0;
1176
- return;
1177
- }
1178
- if (r) {
1179
- if (N.value === null) return;
1180
- let e = Z.value[N.value];
1181
- if (!e) return;
1182
- er(N.value, e);
1183
- return;
1184
- }
1185
- let a = N.value, o = j.value, s = a !== null && a >= 0 && a < Z.value.length, c = o != null && o >= 0 && o < Z.value.length;
1186
- s ? n ? (a += 1, a >= Z.value.length && (a = 0)) : t && (--a, a < 0 && (a = Z.value.length - 1)) : c ? (a = n ? o + 1 : o - 1, a >= Z.value.length && (a = 0), a < 0 && (a = Z.value.length - 1)) : a = n ? 0 : Z.value.length - 1;
1187
- let l = Z.value[a];
1188
- l && (Ir(a), nr(a, l, "keyboard"));
1189
- }
1190
- function Ir(e) {
1191
- if (!Number.isFinite(e) || !L.value) return;
1192
- let t = W.value.left + Y.value * e + Y.value / 2, n = W.value.top + W.value.height / 2, r = L.value.getBoundingClientRect();
1193
- rn.value = {
1194
- x: r.left + t / R.value.width * r.width,
1195
- y: r.top + n / R.value.height * r.height
1196
- };
1197
- }
1198
- let Lr = f(() => ({
1199
- headers: fr.value?.colNames ?? [],
1200
- rows: fr.value?.bodyA11y ?? []
1201
- }));
1202
- return Ce({
1203
- getImage: vr,
1204
- generatePdf: bn,
1205
- generateCsv: dr,
1206
- generateImage: xn,
1207
- generateSvg: Er,
1208
- toggleTable: mr,
1209
- toggleTooltip: hr,
1210
- toggleAnnotator: _r,
1211
- toggleFullscreen: pr,
1212
- copyAlt: Mr
1213
- }), (e, t) => (x(), h("div", {
1214
- ref_key: "candlestickChart",
1215
- ref: M,
1216
- class: y(`vue-data-ui-component vue-ui-candlestick ${$.value ? "vue-data-ui-wrapper-fullscreen" : ""} ${P.value.useCssAnimation ? "" : "vue-ui-dna"}`),
1217
- style: Le(`position:relative;font-family:${P.value.style.fontFamily}; text-align:center;background:${P.value.style.backgroundColor}; ${P.value.responsive ? "height: 100%" : ""}`),
1218
- id: `vue-ui-candlestick_${A.value}`,
1219
- onMouseenter: mn,
1220
- onMouseleave: hn
1221
- }, [
1222
- g("div", {
1223
- id: `chart-instructions-${A.value}`,
1224
- class: "sr-only"
1225
- }, [g("p", null, T(P.value.a11y.translations.keyboardNavigation), 1)], 8, qe),
1226
- Lr.value?.rows?.length ? (x(), p(Oe, {
1227
- key: 0,
1228
- uid: A.value,
1229
- head: Lr.value.headers,
1230
- body: Lr.value.rows,
1231
- notice: P.value.a11y.translations.tableAvailable,
1232
- caption: P.value.a11y.translations.tableCaption
1233
- }, null, 8, [
1234
- "uid",
1235
- "head",
1236
- "body",
1237
- "notice",
1238
- "caption"
1239
- ])) : m("", !0),
1240
- P.value.userOptions.buttons.annotator ? (x(), p(E(kt), {
1241
- key: 1,
1242
- svgRef: E(L),
1243
- backgroundColor: P.value.style.backgroundColor,
1244
- color: P.value.style.color,
1245
- active: gr.value,
1246
- isCursorPointer: cn.value,
1247
- onClose: _r
1248
- }, {
1249
- "annotator-action-close": D(() => [w(e.$slots, "annotator-action-close", {}, void 0, !0)]),
1250
- "annotator-action-color": D(({ color: t }) => [w(e.$slots, "annotator-action-color", b(v({ color: t })), void 0, !0)]),
1251
- "annotator-action-draw": D(({ mode: t }) => [w(e.$slots, "annotator-action-draw", b(v({ mode: t })), void 0, !0)]),
1252
- "annotator-action-undo": D(({ disabled: t }) => [w(e.$slots, "annotator-action-undo", b(v({ disabled: t })), void 0, !0)]),
1253
- "annotator-action-redo": D(({ disabled: t }) => [w(e.$slots, "annotator-action-redo", b(v({ disabled: t })), void 0, !0)]),
1254
- "annotator-action-delete": D(({ disabled: t }) => [w(e.$slots, "annotator-action-delete", b(v({ disabled: t })), void 0, !0)]),
1255
- _: 3
1256
- }, 8, [
1257
- "svgRef",
1258
- "backgroundColor",
1259
- "color",
1260
- "active",
1261
- "isCursorPointer"
1262
- ])) : m("", !0),
1263
- Sn.value ? (x(), h("div", {
1264
- key: 2,
1265
- ref_key: "noTitle",
1266
- ref: Kt,
1267
- class: "vue-data-ui-no-title-space",
1268
- style: "height:36px; width: 100%;background:transparent"
1269
- }, null, 512)) : m("", !0),
1270
- P.value.style.title.text ? (x(), h("div", {
1271
- key: 3,
1272
- ref_key: "chartTitle",
1273
- ref: Ht,
1274
- style: "width:100%;background:transparent"
1275
- }, [(x(), p(Se, {
1276
- key: `title_${Yt.value}`,
1277
- config: {
1278
- title: {
1279
- cy: "candlestick-div-title",
1280
- ...P.value.style.title
1281
- },
1282
- subtitle: {
1283
- cy: "candlestick-div-subtitle",
1284
- ...P.value.style.title.subtitle
1285
- }
1286
- }
1287
- }, null, 8, ["config"]))], 512)) : m("", !0),
1288
- P.value.userOptions.show && Lt.value && (E(pn) || E(dn)) ? (x(), p(E(At), {
1289
- ref_key: "userOptionsRef",
1290
- ref: $t,
1291
- key: `user_options_${Vt.value}`,
1292
- backgroundColor: P.value.style.backgroundColor,
1293
- color: P.value.style.color,
1294
- isImaging: E(yn),
1295
- isPrinting: E(vn),
1296
- uid: A.value,
1297
- hasTooltip: P.value.userOptions.buttons.tooltip && P.value.style.tooltip.show,
1298
- hasPdf: P.value.userOptions.buttons.pdf,
1299
- hasImg: P.value.userOptions.buttons.img,
1300
- hasSvg: P.value.userOptions.buttons.svg,
1301
- hasXls: P.value.userOptions.buttons.csv,
1302
- hasTable: P.value.userOptions.buttons.table,
1303
- hasFullscreen: P.value.userOptions.buttons.fullscreen,
1304
- hasAltCopy: P.value.userOptions.buttons.altCopy,
1305
- isFullscreen: $.value,
1306
- isTooltip: H.value.showTooltip,
1307
- titles: { ...P.value.userOptions.buttonTitles },
1308
- chartElement: M.value,
1309
- position: P.value.userOptions.position,
1310
- hasAnnotator: P.value.userOptions.buttons.annotator,
1311
- isAnnotation: gr.value,
1312
- callbacks: P.value.userOptions.callbacks,
1313
- printScale: P.value.userOptions.print.scale,
1314
- tableDialog: P.value.table.useDialog,
1315
- isCursorPointer: cn.value,
1316
- onToggleFullscreen: pr,
1317
- onGeneratePdf: E(bn),
1318
- onGenerateCsv: dr,
1319
- onGenerateImage: jr,
1320
- onGenerateSvg: Er,
1321
- onToggleTable: mr,
1322
- onToggleTooltip: hr,
1323
- onToggleAnnotator: _r,
1324
- onCopyAlt: Mr,
1325
- style: Le({ visibility: E(pn) ? E(dn) ? "visible" : "hidden" : "visible" })
1326
- }, Me({ _: 2 }, [
1327
- e.$slots.menuIcon ? {
1328
- name: "menuIcon",
1329
- fn: D(({ isOpen: t, color: n }) => [w(e.$slots, "menuIcon", b(v({
1330
- isOpen: t,
1331
- color: n
1332
- })), void 0, !0)]),
1333
- key: "0"
1334
- } : void 0,
1335
- e.$slots.optionTooltip ? {
1336
- name: "optionTooltip",
1337
- fn: D(() => [w(e.$slots, "optionTooltip", {}, void 0, !0)]),
1338
- key: "1"
1339
- } : void 0,
1340
- e.$slots.optionPdf ? {
1341
- name: "optionPdf",
1342
- fn: D(() => [w(e.$slots, "optionPdf", {}, void 0, !0)]),
1343
- key: "2"
1344
- } : void 0,
1345
- e.$slots.optionCsv ? {
1346
- name: "optionCsv",
1347
- fn: D(() => [w(e.$slots, "optionCsv", {}, void 0, !0)]),
1348
- key: "3"
1349
- } : void 0,
1350
- e.$slots.optionImg ? {
1351
- name: "optionImg",
1352
- fn: D(() => [w(e.$slots, "optionImg", {}, void 0, !0)]),
1353
- key: "4"
1354
- } : void 0,
1355
- e.$slots.optionSvg ? {
1356
- name: "optionSvg",
1357
- fn: D(() => [w(e.$slots, "optionSvg", {}, void 0, !0)]),
1358
- key: "5"
1359
- } : void 0,
1360
- e.$slots.optionTable ? {
1361
- name: "optionTable",
1362
- fn: D(() => [w(e.$slots, "optionTable", {}, void 0, !0)]),
1363
- key: "6"
1364
- } : void 0,
1365
- e.$slots.optionFullscreen ? {
1366
- name: "optionFullscreen",
1367
- fn: D(({ toggleFullscreen: t, isFullscreen: n }) => [w(e.$slots, "optionFullscreen", b(v({
1368
- toggleFullscreen: t,
1369
- isFullscreen: n
1370
- })), void 0, !0)]),
1371
- key: "7"
1372
- } : void 0,
1373
- e.$slots.optionAnnotator ? {
1374
- name: "optionAnnotator",
1375
- fn: D(({ toggleAnnotator: t, isAnnotator: n }) => [w(e.$slots, "optionAnnotator", b(v({
1376
- toggleAnnotator: t,
1377
- isAnnotator: n
1378
- })), void 0, !0)]),
1379
- key: "8"
1380
- } : void 0,
1381
- e.$slots.optionAltCopy ? {
1382
- name: "optionAltCopy",
1383
- fn: D(({ altCopy: t }) => [w(e.$slots, "optionAltCopy", b(v({ altCopy: t })), void 0, !0)]),
1384
- key: "9"
1385
- } : void 0,
1386
- e.$slots["custom-menu-before"] ? {
1387
- name: "custom-menu-before",
1388
- fn: D(() => [w(e.$slots, "custom-menu-before", {}, void 0, !0)]),
1389
- key: "10"
1390
- } : void 0,
1391
- e.$slots["custom-menu-after"] ? {
1392
- name: "custom-menu-after",
1393
- fn: D(() => [w(e.$slots, "custom-menu-after", {}, void 0, !0)]),
1394
- key: "11"
1395
- } : void 0
1396
- ]), 1032, /* @__PURE__ */ "backgroundColor.color.isImaging.isPrinting.uid.hasTooltip.hasPdf.hasImg.hasSvg.hasXls.hasTable.hasFullscreen.hasAltCopy.isFullscreen.isTooltip.titles.chartElement.position.hasAnnotator.isAnnotation.callbacks.printScale.tableDialog.isCursorPointer.onGeneratePdf.style".split("."))) : m("", !0),
1397
- g("div", Je, [(x(), h("svg", {
1398
- ref_key: "svgRef",
1399
- ref: L,
1400
- xmlns: E(ae),
1401
- "aria-describedby": `chart-instructions-${A.value}`,
1402
- class: y({
1403
- "vue-data-ui-fullscreen--on": $.value,
1404
- "vue-data-ui-fulscreen--off": !$.value,
1405
- "vue-data-ui-no-transition": !E(sn)
1406
- }),
1407
- viewBox: `0 0 ${R.value.width <= 0 ? 10 : R.value.width} ${R.value.height <= 0 ? 10 : R.value.height}`,
1408
- style: Le(`max-width:100%;overflow:visible;background:transparent;color:${P.value.style.color}`),
1409
- tabindex: "0",
1410
- onFocus: Nr,
1411
- onBlur: Pr,
1412
- onKeydown: Fr
1413
- }, [
1414
- Pe(E(jt)),
1415
- e.$slots["chart-background"] ? (x(), h("foreignObject", {
1416
- key: 0,
1417
- x: W.value.left,
1418
- y: W.value.top,
1419
- width: Math.max(.1, W.value.width),
1420
- height: Math.max(.1, W.value.height),
1421
- style: { pointerEvents: "none" }
1422
- }, [w(e.$slots, "chart-background", {}, void 0, !0)], 8, Xe)) : m("", !0),
1423
- Z.value.length > 0 ? (x(), h("g", Ze, [
1424
- g("defs", null, [Pe(Ee, {
1425
- t: "linear",
1426
- id: `bearish_gradient_${A.value}`,
1427
- x2: "0%",
1428
- y2: "100%",
1429
- stops: [
1430
- [
1431
- "0%",
1432
- P.value.style.layout.candle.colors.bearish,
1433
- 1
1434
- ],
1435
- [
1436
- "50%",
1437
- E(a)(P.value.style.layout.candle.colors.bearish, .02),
1438
- .87
1439
- ],
1440
- [
1441
- "100%",
1442
- E(a)(P.value.style.layout.candle.colors.bearish, .05),
1443
- .4
1444
- ]
1445
- ]
1446
- }, null, 8, ["id", "stops"]), Pe(Ee, {
1447
- t: "linear",
1448
- id: `bullish_gradient_${A.value}`,
1449
- x2: "0%",
1450
- y2: "100%",
1451
- stops: [
1452
- [
1453
- "0%",
1454
- P.value.style.layout.candle.colors.bullish,
1455
- 1
1456
- ],
1457
- [
1458
- "50%",
1459
- E(a)(P.value.style.layout.candle.colors.bullish, .02),
1460
- .87
1461
- ],
1462
- [
1463
- "100%",
1464
- E(a)(P.value.style.layout.candle.colors.bullish, .05),
1465
- .4
1466
- ]
1467
- ]
1468
- }, null, 8, ["id", "stops"])]),
1469
- P.value.style.layout.grid.show ? (x(), h("g", Qe, [
1470
- g("line", {
1471
- x1: U.value ? W.value.right : W.value.left,
1472
- x2: U.value ? W.value.right : W.value.left,
1473
- y1: W.value.top,
1474
- y2: W.value.bottom,
1475
- stroke: P.value.style.layout.grid.stroke,
1476
- "stroke-width": P.value.style.layout.grid.strokeWidth,
1477
- "stroke-linecap": "round"
1478
- }, null, 8, $e),
1479
- g("line", {
1480
- x1: W.value.left,
1481
- x2: W.value.right,
1482
- y1: W.value.bottom,
1483
- y2: W.value.bottom,
1484
- stroke: P.value.style.layout.grid.stroke,
1485
- "stroke-width": P.value.style.layout.grid.strokeWidth,
1486
- "stroke-linecap": "round"
1487
- }, null, 8, et),
1488
- P.value.style.layout.grid.horizontalLines.show ? (x(!0), h(d, { key: 0 }, C(Bn.value, (e) => (x(), h("line", {
1489
- x1: W.value.left,
1490
- x2: W.value.right,
1491
- y1: e.y,
1492
- y2: e.y,
1493
- stroke: P.value.style.layout.grid.horizontalLines.stroke,
1494
- "stroke-width": P.value.style.layout.grid.horizontalLines.strokeWidth,
1495
- "stroke-dasharray": P.value.style.layout.grid.horizontalLines.strokeDasharray,
1496
- "stroke-linecap": "round"
1497
- }, null, 8, tt))), 256)) : m("", !0),
1498
- P.value.style.layout.grid.verticalLines.show ? (x(!0), h(d, { key: 1 }, C(Zn.value, (e, t) => (x(), h("g", null, [e.text ? (x(), h("line", {
1499
- key: 0,
1500
- x1: W.value.left + Y.value * t + Y.value / 2,
1501
- x2: W.value.left + Y.value * t + Y.value / 2,
1502
- y1: W.value.top,
1503
- y2: W.value.bottom,
1504
- stroke: P.value.style.layout.grid.verticalLines.stroke,
1505
- "stroke-width": P.value.style.layout.grid.verticalLines.strokeWidth,
1506
- "stroke-dasharray": P.value.style.layout.grid.verticalLines.strokeDasharray,
1507
- "stroke-linecap": "round"
1508
- }, null, 8, nt)) : m("", !0)]))), 256)) : m("", !0),
1509
- P.value.style.layout.grid.xAxis.ticks.show ? (x(!0), h(d, { key: 2 }, C(Zn.value, (e, t) => (x(), h("g", null, [e.text ? (x(), h("line", {
1510
- key: 0,
1511
- x1: W.value.left + Y.value * t + Y.value / 2,
1512
- x2: W.value.left + Y.value * t + Y.value / 2,
1513
- y1: W.value.bottom,
1514
- y2: W.value.bottom + 3,
1515
- stroke: P.value.style.layout.grid.stroke,
1516
- "stroke-width": P.value.style.layout.grid.strokeWidth,
1517
- "stroke-linecap": "round"
1518
- }, null, 8, rt)) : m("", !0)]))), 256)) : m("", !0)
1519
- ])) : m("", !0),
1520
- P.value.style.layout.grid.yAxis.dataLabels.show ? (x(), h("g", {
1521
- key: 1,
1522
- ref_key: "scaleLabels",
1523
- ref: Xt
1524
- }, [(x(!0), h(d, null, C(Bn.value, (e, t) => (x(), h("g", { key: `sl_${t}` }, [e.value >= X.value.min && e.value <= X.value.max ? (x(), h("line", {
1525
- key: 0,
1526
- x1: U.value ? W.value.right : W.value.left,
1527
- x2: U.value ? W.value.right + 5 : W.value.left - 5,
1528
- y1: e.y,
1529
- y2: e.y,
1530
- stroke: P.value.style.layout.grid.stroke,
1531
- "stroke-width": P.value.style.layout.grid.strokeWidth,
1532
- "stroke-linecap": "round"
1533
- }, null, 8, it)) : m("", !0), e.value >= X.value.min && e.value <= X.value.max ? (x(), h("text", {
1534
- key: 1,
1535
- class: y({ "vue-data-ui-transition": E(sn) }),
1536
- transform: `translate(${U.value ? W.value.right + 8 + P.value.style.layout.grid.yAxis.dataLabels.offsetX : W.value.left - 8 + P.value.style.layout.grid.yAxis.dataLabels.offsetX}, ${e.y + R.value.yAxisFontSize / 3})`,
1537
- "text-anchor": U.value ? "start" : "end",
1538
- "font-size": R.value.yAxisFontSize,
1539
- fill: P.value.style.layout.grid.yAxis.dataLabels.color,
1540
- "font-weight": P.value.style.layout.grid.yAxis.dataLabels.bold ? "bold" : "normal"
1541
- }, T(E(o)({
1542
- p: P.value.style.layout.grid.yAxis.dataLabels.prefix,
1543
- v: e.value,
1544
- s: P.value.style.layout.grid.yAxis.dataLabels.suffix,
1545
- r: P.value.style.layout.grid.yAxis.dataLabels.roundingValue
1546
- })), 11, at)) : m("", !0)]))), 128))], 512)) : m("", !0),
1547
- P.value.style.layout.grid.xAxis.dataLabels.show && !P.value.style.layout.grid.xAxis.dataLabels.datetimeFormatter.enable ? (x(), h("g", {
1548
- key: 2,
1549
- ref_key: "timeLabelsEls",
1550
- ref: Zt
1551
- }, [(x(!0), h(d, null, C(Vn.value, (e, t) => (x(), h("g", null, [g("text", {
1552
- class: "vue-data-ui-time-label",
1553
- transform: `translate(${W.value.left + Y.value * t + Y.value / 2}, ${W.value.bottom + R.value.xAxisFontSize * 1.5}), rotate(${P.value.style.layout.grid.xAxis.dataLabels.rotation})`,
1554
- "text-anchor": P.value.style.layout.grid.xAxis.dataLabels.rotation > 0 ? "start" : P.value.style.layout.grid.xAxis.dataLabels.rotation < 0 ? "end" : "middle",
1555
- "font-size": R.value.xAxisFontSize,
1556
- fill: P.value.style.layout.grid.xAxis.dataLabels.color,
1557
- "font-weight": P.value.style.layout.grid.xAxis.dataLabels.bold ? "bold" : "normal"
1558
- }, T(e), 9, ot)]))), 256))], 512)) : m("", !0),
1559
- P.value.style.layout.grid.xAxis.dataLabels.show && P.value.style.layout.grid.xAxis.dataLabels.datetimeFormatter.enable ? (x(), h("g", {
1560
- key: 3,
1561
- ref_key: "timeLabelsEls",
1562
- ref: Zt
1563
- }, [(x(!0), h(d, null, C(Zn.value, (e, t) => (x(), h("g", null, [g("text", {
1564
- class: "vue-data-ui-time-label",
1565
- transform: `translate(${W.value.left + Y.value * t + Y.value / 2}, ${W.value.bottom + R.value.xAxisFontSize * 1.5}), rotate(${P.value.style.layout.grid.xAxis.dataLabels.rotation})`,
1566
- "text-anchor": P.value.style.layout.grid.xAxis.dataLabels.rotation > 0 ? "start" : P.value.style.layout.grid.xAxis.dataLabels.rotation < 0 ? "end" : "middle",
1567
- "font-size": R.value.xAxisFontSize,
1568
- fill: P.value.style.layout.grid.xAxis.dataLabels.color,
1569
- "font-weight": P.value.style.layout.grid.xAxis.dataLabels.bold ? "bold" : "normal"
1570
- }, T(e?.text ?? ""), 9, st)]))), 256))], 512)) : m("", !0),
1571
- P.value.type === "candlestick" ? (x(), h(d, { key: 4 }, [g("g", null, [(x(!0), h(d, null, C(Z.value, (e, t) => (x(), h("g", null, [
1572
- g("rect", {
1573
- x: e.open.x - P.value.style.layout.wick.strokeWidth / 2,
1574
- y: e.high.y,
1575
- width: P.value.style.layout.wick.strokeWidth,
1576
- height: Math.abs(e.high.y - e.low.y),
1577
- fill: P.value.style.layout.wick.stroke,
1578
- stroke: "none",
1579
- rx: P.value.style.layout.wick.strokeWidth / 2,
1580
- class: y({ "vue-data-ui-transition": k.value && !E(F) })
1581
- }, null, 10, ct),
1582
- P.value.style.layout.wick.extremity.shape === "circle" ? (x(), h("g", lt, [g("circle", {
1583
- cx: e.high.x,
1584
- cy: e.high.y,
1585
- r: P.value.style.layout.wick.extremity.size === "auto" ? Y.value / 20 : P.value.style.layout.wick.extremity.size,
1586
- fill: P.value.style.layout.wick.extremity.color,
1587
- class: y({ "vue-data-ui-transition": k.value && !E(F) })
1588
- }, null, 10, ut), g("circle", {
1589
- cx: e.low.x,
1590
- cy: e.low.y,
1591
- r: P.value.style.layout.wick.extremity.size === "auto" ? Y.value / 20 : P.value.style.layout.wick.extremity.size,
1592
- fill: P.value.style.layout.wick.extremity.color,
1593
- class: y({ "vue-data-ui-transition": k.value && !E(F) })
1594
- }, null, 10, dt)])) : m("", !0),
1595
- P.value.style.layout.wick.extremity.shape === "line" ? (x(), h("g", ft, [g("rect", {
1596
- x: e.high.x - (P.value.style.layout.wick.extremity.size === "auto" ? Y.value * P.value.style.layout.candle.widthRatio : P.value.style.layout.wick.extremity.size) / 2,
1597
- y: e.high.y - P.value.style.layout.wick.strokeWidth / 2,
1598
- width: Math.abs(e.high.x - (P.value.style.layout.wick.extremity.size === "auto" ? Y.value * P.value.style.layout.candle.widthRatio : P.value.style.layout.wick.extremity.size) / 2 - (e.high.x + (P.value.style.layout.wick.extremity.size === "auto" ? Y.value * P.value.style.layout.candle.widthRatio : P.value.style.layout.wick.extremity.size) / 2)),
1599
- height: P.value.style.layout.wick.strokeWidth,
1600
- rx: P.value.style.layout.wick.strokeWidth / 2,
1601
- fill: P.value.style.layout.wick.extremity.color,
1602
- stroke: "none",
1603
- class: y({ "vue-data-ui-transition": k.value && !E(F) })
1604
- }, null, 10, pt), g("rect", {
1605
- x: e.low.x - (P.value.style.layout.wick.extremity.size === "auto" ? Y.value * P.value.style.layout.candle.widthRatio : P.value.style.layout.wick.extremity.size) / 2,
1606
- y: e.low.y - P.value.style.layout.wick.strokeWidth / 2,
1607
- width: Math.abs(e.low.x - (P.value.style.layout.wick.extremity.size === "auto" ? Y.value * P.value.style.layout.candle.widthRatio : P.value.style.layout.wick.extremity.size) / 2 - (e.low.x + (P.value.style.layout.wick.extremity.size === "auto" ? Y.value * P.value.style.layout.candle.widthRatio : P.value.style.layout.wick.extremity.size) / 2)),
1608
- height: P.value.style.layout.wick.strokeWidth,
1609
- fill: P.value.style.layout.wick.extremity.color,
1610
- stroke: "none",
1611
- rx: P.value.style.layout.wick.strokeWidth / 2,
1612
- class: y({ "vue-data-ui-transition": k.value && !E(F) })
1613
- }, null, 10, mt)])) : m("", !0)
1614
- ]))), 256))]), g("g", null, [(x(!0), h(d, null, C(Z.value, (e, t) => (x(), h("rect", {
1615
- x: e.open.x - Y.value / 2 + Y.value * (1 - P.value.style.layout.candle.widthRatio) / 2,
1616
- y: e.isBullish ? e.close.y : e.open.y,
1617
- height: Math.abs(e.close.y - e.open.y) <= 0 ? 1e-4 : Math.abs(e.close.y - e.open.y),
1618
- width: Y.value * P.value.style.layout.candle.widthRatio <= 0 ? 1e-4 : Y.value * P.value.style.layout.candle.widthRatio,
1619
- fill: P.value.style.layout.candle.gradient.underlayer,
1620
- rx: P.value.style.layout.candle.borderRadius,
1621
- stroke: "none",
1622
- class: y({ "vue-data-ui-transition": k.value && !E(F) })
1623
- }, null, 10, ht))), 256)), (x(!0), h(d, null, C(Z.value, (e, t) => (x(), h("rect", {
1624
- x: e.open.x - Y.value / 2 + Y.value * (1 - P.value.style.layout.candle.widthRatio) / 2,
1625
- y: e.isBullish ? e.close.y : e.open.y,
1626
- height: Math.abs(e.close.y - e.open.y) <= 0 ? 1e-4 : Math.abs(e.close.y - e.open.y),
1627
- width: Y.value * P.value.style.layout.candle.widthRatio <= 0 ? 1e-4 : Y.value * P.value.style.layout.candle.widthRatio,
1628
- fill: e.isBullish ? P.value.style.layout.candle.gradient.show ? `url(#bullish_gradient_${A.value})` : P.value.style.layout.candle.colors.bullish : P.value.style.layout.candle.gradient.show ? `url(#bearish_gradient_${A.value})` : P.value.style.layout.candle.colors.bearish,
1629
- rx: P.value.style.layout.candle.borderRadius,
1630
- stroke: P.value.style.layout.candle.stroke,
1631
- "stroke-width": P.value.style.layout.candle.strokeWidth,
1632
- "stroke-linecap": "round",
1633
- "stroke-linejoin": "round",
1634
- class: y({ "vue-data-ui-transition": k.value && !E(F) })
1635
- }, null, 10, gt))), 256))])], 64)) : m("", !0),
1636
- P.value.type === "ohlc" ? (x(!0), h(d, { key: 5 }, C(Z.value, (e, t) => (x(), h("g", { key: `ohlc_${e.absoluteIndex}` }, [g("path", {
1637
- d: `M ${e.high.x},${e.high.y} ${e.low.x},${e.low.y} M${e.open.x - Math.min(6, Y.value / 3)},${e.open.y} ${e.open.x},${e.open.y} M${e.close.x},${e.close.y} ${e.close.x + Math.min(6, Y.value / 3)},${e.close.y}`,
1638
- stroke: e.isBullish ? P.value.style.layout.candle.colors.bullish : P.value.style.layout.candle.colors.bearish,
1639
- "stroke-width": 1,
1640
- class: y({ "vue-data-ui-transition": E(sn) }),
1641
- "stroke-linecap": "round",
1642
- "stroke-linejoin": "round"
1643
- }, null, 10, _t)]))), 128)) : m("", !0),
1644
- g("g", null, [(x(!0), h(d, null, C(Z.value, (e, t) => (x(), h("rect", {
1645
- x: W.value.left + t * Y.value,
1646
- y: W.value.top,
1647
- height: W.value.height <= 0 ? 1e-4 : W.value.height,
1648
- width: Y.value <= 0 ? 1e-4 : Y.value,
1649
- fill: j.value === t || en.value === t ? E(n)(P.value.style.layout.selector.color, P.value.style.layout.selector.opacity) : "transparent",
1650
- onMouseover: () => nr(t, e, "pointer"),
1651
- onMouseleave: () => tr(t, e),
1652
- onClick: () => er(t, e)
1653
- }, null, 40, vt))), 256))])
1654
- ])) : m("", !0),
1655
- On.value ? (x(), h("rect", Fe({ key: 2 }, Dn.value, {
1656
- "data-start": K.value.start,
1657
- "data-end": K.value.end
1658
- }), null, 16, yt)) : m("", !0),
1659
- w(e.$slots, "svg", { svg: {
1660
- ...R.value,
1661
- data: Z.value,
1662
- drawingArea: W.value,
1663
- isPrintingImg: E(vn) || E(yn) || tn.value,
1664
- isPrintingSvg: nn.value
1665
- } }, void 0, !0)
1666
- ], 46, Ye)), e.$slots.hint ? (x(), h("div", bt, [w(e.$slots, "hint", b(v({
1667
- hint: P.value.a11y.translations.keyboardNavigation,
1668
- isVisible: on.value
1669
- })), void 0, !0)])) : m("", !0)]),
1670
- e.$slots.watermark ? (x(), h("div", xt, [w(e.$slots, "watermark", b(v({ isPrinting: E(vn) || E(yn) || tn.value || nn.value })), void 0, !0)])) : m("", !0),
1671
- P.value.style.zoom.show && G.value > 6 && Lt.value && sr.value ? (x(), p(De, {
1672
- key: 6,
1673
- ref_key: "chartSlicer",
1674
- ref: Wt,
1675
- "data-dom-to-png-ignore-layout": "",
1676
- allMinimaps: Rn.value,
1677
- background: P.value.style.zoom.color,
1678
- borderColor: P.value.style.backgroundColor,
1679
- customFormat: P.value.style.zoom.customFormat,
1680
- cutNullValues: !1,
1681
- enableRangeHandles: P.value.style.zoom.enableRangeHandles,
1682
- enableSelectionDrag: P.value.style.zoom.enableSelectionDrag,
1683
- end: K.value.end,
1684
- focusOnDrag: P.value.style.zoom.focusOnDrag,
1685
- focusRangeRatio: P.value.style.zoom.focusRangeRatio,
1686
- fontSize: P.value.style.zoom.fontSize,
1687
- immediate: !P.value.style.zoom.preview.enable,
1688
- inputColor: P.value.style.zoom.color,
1689
- isPreview: On.value,
1690
- labelLeft: Qn.value.start || "",
1691
- labelRight: Qn.value.end || "",
1692
- max: G.value,
1693
- min: 0,
1694
- minimap: P.value.style.zoom.minimap.show ? E(I).map((e) => e[2]) : [],
1695
- minimapCompact: P.value.style.zoom.minimap.compact,
1696
- minimapFrameColor: P.value.style.zoom.minimap.frameColor,
1697
- minimapIndicatorColor: P.value.style.zoom.minimap.indicatorColor,
1698
- minimapMerged: !1,
1699
- minimapSelectedColor: P.value.style.zoom.minimap.selectedColor,
1700
- minimapSelectedColorOpacity: P.value.style.zoom.minimap.selectedColorOpacity,
1701
- minimapSelectedIndex: j.value,
1702
- minimapSelectionRadius: 1,
1703
- preciseLabels: Xn.value,
1704
- refreshEndPoint: P.value.style.zoom.endIndex === null ? G.value : P.value.style.zoom.endIndex + 1,
1705
- refreshStartPoint: P.value.style.zoom.startIndex === null ? 0 : P.value.style.zoom.startIndex,
1706
- selectColor: P.value.style.zoom.highlightColor,
1707
- selectedSeries: E(I),
1708
- smoothMinimap: !1,
1709
- start: K.value.start,
1710
- textColor: P.value.style.color,
1711
- timeLabels: Hn.value,
1712
- usePreciseLabels: P.value.style.layout.grid.xAxis.dataLabels.datetimeFormatter.enable && !P.value.style.zoom.useDefaultFormat,
1713
- useResetSlot: P.value.style.zoom.useResetSlot,
1714
- valueEnd: K.value.end,
1715
- valueStart: K.value.start,
1716
- verticalHandles: P.value.style.zoom.minimap.verticalHandles,
1717
- minScale: P.value.style.layout.grid.yAxis.scale.min,
1718
- maxScale: P.value.style.layout.grid.yAxis.scale.max,
1719
- maxWidth: P.value.style.zoom.maxWidth,
1720
- additionalMinimapHeight: P.value.style.zoom.minimap.additionalHeight,
1721
- handleType: P.value.style.zoom.minimap.handleType,
1722
- handleIconColor: P.value.style.zoom.minimap.handleIconColor,
1723
- handleBorderWidth: P.value.style.zoom.minimap.handleBorderWidth,
1724
- handleBorderColor: P.value.style.zoom.minimap.handleBorderColor,
1725
- handleFill: P.value.style.zoom.minimap.handleFill,
1726
- handleWidth: P.value.style.zoom.minimap.handleWidth,
1727
- "onUpdate:end": kr,
1728
- "onUpdate:start": Or,
1729
- onTrapMouse: Dr,
1730
- onReset: ar,
1731
- onFutureEnd: t[0] ||= (e) => kn("end", e),
1732
- onFutureStart: t[1] ||= (e) => kn("start", e)
1733
- }, {
1734
- "reset-action": D(({ reset: t }) => [w(e.$slots, "reset-action", b(v({ reset: t })), void 0, !0)]),
1735
- slotMap: D(({ height: e, unitW: t }) => [(x(!0), h(d, null, C(Ln.value({
1736
- minimapH: e,
1737
- unitW: t
1738
- }), (e, n) => (x(), h("g", null, [g("path", {
1739
- d: `M ${e.high.x},${e.high.y} ${e.low.x},${e.low.y}`,
1740
- stroke: e.isBullish ? P.value.style.layout.candle.colors.bullish : P.value.style.layout.candle.colors.bearish,
1741
- "stroke-width": 1,
1742
- style: Le({ opacity: n >= q.value.start && n <= q.value.end ? 1 : .6 })
1743
- }, null, 12, St), g("path", {
1744
- d: `M ${e.open.x},${e.open.y} ${e.close.x},${e.close.y}`,
1745
- stroke: e.isBullish ? P.value.style.layout.candle.colors.bullish : P.value.style.layout.candle.colors.bearish,
1746
- "stroke-width": Math.min(6, t / 1.5),
1747
- style: Le({ opacity: n >= q.value.start && n <= q.value.end ? 1 : .6 })
1748
- }, null, 12, Ct)]))), 256))]),
1749
- _: 3
1750
- }, 8, /* @__PURE__ */ "allMinimaps.background.borderColor.customFormat.enableRangeHandles.enableSelectionDrag.end.focusOnDrag.focusRangeRatio.fontSize.immediate.inputColor.isPreview.labelLeft.labelRight.max.minimap.minimapCompact.minimapFrameColor.minimapIndicatorColor.minimapSelectedColor.minimapSelectedColorOpacity.minimapSelectedIndex.preciseLabels.refreshEndPoint.refreshStartPoint.selectColor.selectedSeries.start.textColor.timeLabels.usePreciseLabels.useResetSlot.valueEnd.valueStart.verticalHandles.minScale.maxScale.maxWidth.additionalMinimapHeight.handleType.handleIconColor.handleBorderWidth.handleBorderColor.handleFill.handleWidth".split("."))) : m("", !0),
1751
- g("div", {
1752
- ref_key: "chartLegend",
1753
- ref: Ut
1754
- }, [w(e.$slots, "legend", { legend: Z.value }, void 0, !0)], 512),
1755
- e.$slots.source ? (x(), h("div", {
1756
- key: 7,
1757
- ref_key: "source",
1758
- ref: Gt,
1759
- dir: "auto"
1760
- }, [w(e.$slots, "source", {}, void 0, !0)], 512)) : m("", !0),
1761
- Pe(E(Et), {
1762
- teleportTo: P.value.style.tooltip.teleportTo,
1763
- show: H.value.showTooltip && zt.value,
1764
- backgroundColor: P.value.style.tooltip.backgroundColor,
1765
- color: P.value.style.tooltip.color,
1766
- borderRadius: P.value.style.tooltip.borderRadius,
1767
- borderColor: P.value.style.tooltip.borderColor,
1768
- borderWidth: P.value.style.tooltip.borderWidth,
1769
- fontSize: P.value.style.tooltip.fontSize,
1770
- backgroundOpacity: P.value.style.tooltip.backgroundOpacity,
1771
- position: P.value.style.tooltip.position,
1772
- offsetX: P.value.style.tooltip.offsetX,
1773
- offsetY: P.value.style.tooltip.offsetY,
1774
- parent: M.value,
1775
- content: Bt.value,
1776
- isFullscreen: $.value,
1777
- isCustom: P.value.style.tooltip.customFormat && typeof P.value.style.tooltip.customFormat == "function",
1778
- smooth: P.value.style.tooltip.smooth,
1779
- backdropFilter: P.value.style.tooltip.backdropFilter,
1780
- smoothForce: P.value.style.tooltip.smoothForce,
1781
- smoothSnapThreshold: P.value.style.tooltip.smoothSnapThreshold,
1782
- isA11yMode: an.value === "keyboard",
1783
- a11yPosition: rn.value
1784
- }, {
1785
- "tooltip-before": D(() => [w(e.$slots, "tooltip-before", b(v({ ...$n.value })), void 0, !0)]),
1786
- tooltip: D(() => [w(e.$slots, "tooltip", b(v({ ...$n.value })), void 0, !0)]),
1787
- "tooltip-after": D(() => [w(e.$slots, "tooltip-after", b(v({ ...$n.value })), void 0, !0)]),
1788
- _: 3
1789
- }, 8, [
1790
- "teleportTo",
1791
- "show",
1792
- "backgroundColor",
1793
- "color",
1794
- "borderRadius",
1795
- "borderColor",
1796
- "borderWidth",
1797
- "fontSize",
1798
- "backgroundOpacity",
1799
- "position",
1800
- "offsetX",
1801
- "offsetY",
1802
- "parent",
1803
- "content",
1804
- "isFullscreen",
1805
- "isCustom",
1806
- "smooth",
1807
- "backdropFilter",
1808
- "smoothForce",
1809
- "smoothSnapThreshold",
1810
- "isA11yMode",
1811
- "a11yPosition"
1812
- ]),
1813
- Lt.value && P.value.userOptions.buttons.table ? (x(), p(Be(xr.value.component), Fe({ key: 8 }, xr.value.props, {
1814
- ref_key: "tableUnit",
1815
- ref: Qt,
1816
- onClose: Sr
1817
- }), Me({
1818
- content: D(() => [(x(), p(E(Ot), {
1819
- key: `table_${Jt.value}`,
1820
- colNames: fr.value.colNames,
1821
- head: fr.value.head,
1822
- body: fr.value.body,
1823
- config: fr.value.config,
1824
- title: P.value.table.useDialog ? "" : xr.value.title,
1825
- withCloseButton: !P.value.table.useDialog,
1826
- isCursorPointer: cn.value,
1827
- onClose: Sr
1828
- }, {
1829
- th: D(({ th: e }) => [Ne(T(e), 1)]),
1830
- td: D(({ td: e }) => [g("div", { innerHTML: e }, null, 8, wt)]),
1831
- _: 1
1832
- }, 8, [
1833
- "colNames",
1834
- "head",
1835
- "body",
1836
- "config",
1837
- "title",
1838
- "withCloseButton",
1839
- "isCursorPointer"
1840
- ]))]),
1841
- _: 2
1842
- }, [P.value.table.useDialog ? {
1843
- name: "title",
1844
- fn: D(() => [Ne(T(xr.value.title), 1)]),
1845
- key: "0"
1846
- } : void 0, P.value.table.useDialog ? {
1847
- name: "actions",
1848
- fn: D(() => [g("button", {
1849
- tabindex: "0",
1850
- class: "vue-ui-user-options-button",
1851
- onClick: t[2] ||= (e) => dr(P.value.userOptions.callbacks.csv),
1852
- style: Le({ cursor: cn.value ? "pointer" : "default" })
1853
- }, [Pe(E(Tt), {
1854
- name: "fileCsv",
1855
- stroke: xr.value.props.color
1856
- }, null, 8, ["stroke"])], 4)]),
1857
- key: "1"
1858
- } : void 0]), 1040)) : m("", !0),
1859
- w(e.$slots, "skeleton", {}, () => [E(F) ? (x(), p(he, { key: 0 })) : m("", !0)], !0)
1860
- ], 46, Ke));
1861
- }
1862
- }, [["__scopeId", "data-v-43e57b60"]]);
1863
- //#endregion
1864
- export { Ge as n, Tt as t };