vue-data-ui 3.5.0 → 3.5.1

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 (144) hide show
  1. package/README.md +26 -0
  2. package/dist/{ColorPicker-J5wOPCeB.js → ColorPicker-ChuwChMo.js} +58 -56
  3. package/dist/{NonSvgPenAndPaper-C7TRn0_3.js → NonSvgPenAndPaper-DVgKKLIf.js} +1 -1
  4. package/dist/{PackageVersion-Cyx_s25h.js → PackageVersion-DQvyATVa.js} +1 -1
  5. package/dist/PenAndPaper-SZQIAgkg.js +388 -0
  6. package/dist/{Title-l36lOBMx.js → Title-isbiM8i8.js} +1 -1
  7. package/dist/components/vue-ui-3d-bar.js +1 -1
  8. package/dist/components/vue-ui-accordion.js +1 -1
  9. package/dist/components/vue-ui-age-pyramid.js +1 -1
  10. package/dist/components/vue-ui-annotator.js +1 -1
  11. package/dist/components/vue-ui-bullet.js +1 -1
  12. package/dist/components/vue-ui-candlestick.js +1 -1
  13. package/dist/components/vue-ui-carousel-table.js +1 -1
  14. package/dist/components/vue-ui-chestnut.js +1 -1
  15. package/dist/components/vue-ui-chord.js +1 -1
  16. package/dist/components/vue-ui-circle-pack.js +1 -1
  17. package/dist/components/vue-ui-cursor.js +1 -1
  18. package/dist/components/vue-ui-dashboard.js +1 -1
  19. package/dist/components/vue-ui-digits.js +1 -1
  20. package/dist/components/vue-ui-donut-evolution.js +1 -1
  21. package/dist/components/vue-ui-donut.js +1 -1
  22. package/dist/components/vue-ui-dumbbell.js +1 -1
  23. package/dist/components/vue-ui-flow.js +1 -1
  24. package/dist/components/vue-ui-funnel.js +1 -1
  25. package/dist/components/vue-ui-galaxy.js +1 -1
  26. package/dist/components/vue-ui-gauge.js +1 -1
  27. package/dist/components/vue-ui-gizmo.js +1 -1
  28. package/dist/components/vue-ui-heatmap.js +1 -1
  29. package/dist/components/vue-ui-history-plot.js +1 -1
  30. package/dist/components/vue-ui-horizontal-bar.js +1 -1
  31. package/dist/components/vue-ui-kpi.js +1 -1
  32. package/dist/components/vue-ui-mini-loader.js +1 -1
  33. package/dist/components/vue-ui-molecule.js +1 -1
  34. package/dist/components/vue-ui-mood-radar.js +1 -1
  35. package/dist/components/vue-ui-nested-donuts.js +1 -1
  36. package/dist/components/vue-ui-onion.js +1 -1
  37. package/dist/components/vue-ui-parallel-coordinate-plot.js +1 -1
  38. package/dist/components/vue-ui-quadrant.js +1 -1
  39. package/dist/components/vue-ui-quick-chart.js +1 -1
  40. package/dist/components/vue-ui-radar.js +1 -1
  41. package/dist/components/vue-ui-rating.js +1 -1
  42. package/dist/components/vue-ui-relation-circle.js +1 -1
  43. package/dist/components/vue-ui-ridgeline.js +1 -1
  44. package/dist/components/vue-ui-rings.js +1 -1
  45. package/dist/components/vue-ui-scatter.js +1 -1
  46. package/dist/components/vue-ui-skeleton.js +1 -1
  47. package/dist/components/vue-ui-smiley.js +1 -1
  48. package/dist/components/vue-ui-spark-trend.js +1 -1
  49. package/dist/components/vue-ui-sparkbar.js +1 -1
  50. package/dist/components/vue-ui-sparkgauge.js +1 -1
  51. package/dist/components/vue-ui-sparkhistogram.js +1 -1
  52. package/dist/components/vue-ui-sparkline.js +1 -1
  53. package/dist/components/vue-ui-sparkstackbar.js +1 -1
  54. package/dist/components/vue-ui-stackbar.js +1 -1
  55. package/dist/components/vue-ui-strip-plot.js +1 -1
  56. package/dist/components/vue-ui-table-heatmap.js +1 -1
  57. package/dist/components/vue-ui-table-sparkline.js +1 -1
  58. package/dist/components/vue-ui-table.js +1 -1
  59. package/dist/components/vue-ui-thermometer.js +1 -1
  60. package/dist/components/vue-ui-timer.js +1 -1
  61. package/dist/components/vue-ui-tiremarks.js +1 -1
  62. package/dist/components/vue-ui-treemap.js +1 -1
  63. package/dist/components/vue-ui-vertical-bar.js +1 -1
  64. package/dist/components/vue-ui-waffle.js +1 -1
  65. package/dist/components/vue-ui-wheel.js +1 -1
  66. package/dist/components/vue-ui-word-cloud.js +1 -1
  67. package/dist/components/vue-ui-world.js +1 -1
  68. package/dist/components/vue-ui-xy-canvas.js +1 -1
  69. package/dist/components/vue-ui-xy.js +1 -1
  70. package/dist/style.css +1 -1
  71. package/dist/types/vue-data-ui.d.ts +17 -8
  72. package/dist/{useNestedProp-BjZe1Y85.js → useNestedProp-DjGXw6S9.js} +22 -8
  73. package/dist/{vue-data-ui-DxgRqCAo.js → vue-data-ui-B_RxfmEm.js} +63 -63
  74. package/dist/vue-data-ui.js +64 -64
  75. package/dist/{vue-ui-3d-bar-DmNJp8SY.js → vue-ui-3d-bar-CMNYyVa2.js} +454 -434
  76. package/dist/{vue-ui-accordion-CZ0thhxa.js → vue-ui-accordion-CqhVCfc2.js} +1 -1
  77. package/dist/{vue-ui-age-pyramid-CPAP3sNY.js → vue-ui-age-pyramid-Vqa9iYXE.js} +180 -160
  78. package/dist/{vue-ui-annotator-BylDgUVb.js → vue-ui-annotator-nNv10fBm.js} +3 -3
  79. package/dist/{vue-ui-bullet-Ce6uvCQJ.js → vue-ui-bullet-BWEBeYV5.js} +190 -170
  80. package/dist/{vue-ui-candlestick-DewevWV_.js → vue-ui-candlestick-BoLzL0g1.js} +201 -181
  81. package/dist/{vue-ui-carousel-table-Dv1CDfE5.js → vue-ui-carousel-table-Bi6wvUUU.js} +2 -2
  82. package/dist/{vue-ui-chestnut-D9sdFZ4E.js → vue-ui-chestnut-BGz1TLXG.js} +375 -355
  83. package/dist/vue-ui-chord-CebhS7ln.js +1153 -0
  84. package/dist/{vue-ui-circle-pack-Be74QB_0.js → vue-ui-circle-pack-7PJVyKjp.js} +289 -269
  85. package/dist/{vue-ui-cursor-ik59bfC4.js → vue-ui-cursor-qYLAwvzn.js} +1 -1
  86. package/dist/vue-ui-dashboard-DcmMvhgM.js +432 -0
  87. package/dist/{vue-ui-digits-ByNNcWXi.js → vue-ui-digits-DyE8eU1m.js} +1 -1
  88. package/dist/{vue-ui-donut-BRGFcgxS.js → vue-ui-donut-CxZcJFTo.js} +462 -442
  89. package/dist/{vue-ui-donut-evolution-DJ0C-7jH.js → vue-ui-donut-evolution-BVYL-BUJ.js} +293 -273
  90. package/dist/{vue-ui-dumbbell-iQJ0BUhm.js → vue-ui-dumbbell-QxZn86A3.js} +210 -190
  91. package/dist/{vue-ui-flow-CTYFoib3.js → vue-ui-flow-DEI5LRch.js} +339 -319
  92. package/dist/{vue-ui-funnel-CG55Xcdy.js → vue-ui-funnel-B_A5orFg.js} +218 -198
  93. package/dist/{vue-ui-galaxy-BQrxjKZJ.js → vue-ui-galaxy-CUoDRr-O.js} +201 -181
  94. package/dist/{vue-ui-gauge-Tc-0NI0Y.js → vue-ui-gauge-46tSRZN5.js} +311 -291
  95. package/dist/{vue-ui-gizmo-P8h-gnLd.js → vue-ui-gizmo-BOgbsXao.js} +2 -2
  96. package/dist/{vue-ui-heatmap-BZimPzsL.js → vue-ui-heatmap-DKKjl1A2.js} +303 -283
  97. package/dist/{vue-ui-history-plot-BVzbuqYY.js → vue-ui-history-plot-C6p_aThr.js} +229 -209
  98. package/dist/{vue-ui-kpi-BGGff8LM.js → vue-ui-kpi-B1yJ83aF.js} +2 -2
  99. package/dist/{vue-ui-mini-loader-CSF-7TJL.js → vue-ui-mini-loader-BudcNBg-.js} +1 -1
  100. package/dist/{vue-ui-molecule-BALqwB8c.js → vue-ui-molecule-L90GnHee.js} +156 -136
  101. package/dist/{vue-ui-mood-radar-QJ5nlZby.js → vue-ui-mood-radar-Dhigm5rw.js} +266 -246
  102. package/dist/{vue-ui-nested-donuts-CmUabkkQ.js → vue-ui-nested-donuts-D0MCLs5n.js} +506 -486
  103. package/dist/{vue-ui-onion-DAOCf3f8.js → vue-ui-onion-B7yPJ3gL.js} +220 -200
  104. package/dist/{vue-ui-parallel-coordinate-plot-D8jTuFjq.js → vue-ui-parallel-coordinate-plot-DY21ivNe.js} +235 -215
  105. package/dist/{vue-ui-quadrant-CO52mSRY.js → vue-ui-quadrant-b0vMRaq-.js} +463 -443
  106. package/dist/{vue-ui-quick-chart-DEaVSldE.js → vue-ui-quick-chart-VK2EN7sh.js} +288 -268
  107. package/dist/{vue-ui-radar-C5V4hhbW.js → vue-ui-radar-B5Vkoz9M.js} +331 -311
  108. package/dist/{vue-ui-rating-CiMoFM_c.js → vue-ui-rating-BH4DW1ZY.js} +1 -1
  109. package/dist/{vue-ui-relation-circle-CbMM0Jka.js → vue-ui-relation-circle-XHbE-ZUX.js} +228 -208
  110. package/dist/{vue-ui-ridgeline-CXCIRDq6.js → vue-ui-ridgeline-CAMNq-p_.js} +242 -222
  111. package/dist/{vue-ui-rings-BpUcyqo7.js → vue-ui-rings-ImGOqm_J.js} +189 -169
  112. package/dist/{vue-ui-scatter--Dxe-hfO.js → vue-ui-scatter-CterNJYe.js} +275 -255
  113. package/dist/{vue-ui-skeleton-BWq-VDzg.js → vue-ui-skeleton-CykXHWj-.js} +2 -2
  114. package/dist/{vue-ui-smiley-sGFRbn31.js → vue-ui-smiley-DnGm6qrK.js} +1 -1
  115. package/dist/{vue-ui-spark-trend-T4J_YOa_.js → vue-ui-spark-trend-N1AsNQJA.js} +2 -2
  116. package/dist/{vue-ui-sparkbar-DnKP55Vu.js → vue-ui-sparkbar-Bvsi5DTT.js} +2 -2
  117. package/dist/{vue-ui-sparkgauge-BDQLP-zi.js → vue-ui-sparkgauge-DyJmWCWT.js} +2 -2
  118. package/dist/{vue-ui-sparkhistogram-Dm7QXrA-.js → vue-ui-sparkhistogram-5eKrkmSb.js} +143 -140
  119. package/dist/{vue-ui-sparkline-tXGDLHRy.js → vue-ui-sparkline-ChKAzlVq.js} +2 -2
  120. package/dist/{vue-ui-sparkstackbar-M53Nt07M.js → vue-ui-sparkstackbar-BXNy6nuw.js} +2 -2
  121. package/dist/vue-ui-stackbar-1IwvUYBO.js +1827 -0
  122. package/dist/{vue-ui-strip-plot-BX9i3wMn.js → vue-ui-strip-plot-B1wGxP8-.js} +245 -225
  123. package/dist/{vue-ui-table-7r02N9R9.js → vue-ui-table-DSsIrT4L.js} +3 -3
  124. package/dist/{vue-ui-table-heatmap-BqCEBoUf.js → vue-ui-table-heatmap-DXFHy7-E.js} +1 -1
  125. package/dist/{vue-ui-table-sparkline-DZaAh10E.js → vue-ui-table-sparkline-DpqY_4ay.js} +2 -2
  126. package/dist/vue-ui-thermometer-CMKvSA8p.js +584 -0
  127. package/dist/{vue-ui-timer-Ds-MJoW2.js → vue-ui-timer-BpdCY_wg.js} +3 -3
  128. package/dist/vue-ui-tiremarks-CNipzVli.js +450 -0
  129. package/dist/{vue-ui-treemap-BEvl8hiw.js → vue-ui-treemap-DPE8SY0_.js} +453 -433
  130. package/dist/{vue-ui-vertical-bar-D8dtM8sw.js → vue-ui-vertical-bar-ZU1GCbX0.js} +323 -303
  131. package/dist/{vue-ui-waffle-B3q-2SCR.js → vue-ui-waffle-z7nuSuSV.js} +219 -199
  132. package/dist/vue-ui-wheel-DLRoRjeM.js +663 -0
  133. package/dist/{vue-ui-word-cloud-ChT7uLbN.js → vue-ui-word-cloud-D2r5E3pP.js} +248 -228
  134. package/dist/{vue-ui-world-CdP4g_3_.js → vue-ui-world-goXYnTyM.js} +287 -267
  135. package/dist/{vue-ui-xy-B68qQ-gX.js → vue-ui-xy-NDDbNbds.js} +389 -369
  136. package/dist/{vue-ui-xy-canvas-DDngEA1s.js → vue-ui-xy-canvas-2a6NlQe3.js} +4 -4
  137. package/package.json +4 -4
  138. package/dist/PenAndPaper-DSvu9dwa.js +0 -373
  139. package/dist/vue-ui-chord-BG4dxKNA.js +0 -1133
  140. package/dist/vue-ui-dashboard-C4BLwHey.js +0 -412
  141. package/dist/vue-ui-stackbar-CkBOjryQ.js +0 -1724
  142. package/dist/vue-ui-thermometer-CFPt3MOv.js +0 -564
  143. package/dist/vue-ui-tiremarks-2eIQ6vxu.js +0 -430
  144. package/dist/vue-ui-wheel-BpirIgAG.js +0 -643
@@ -0,0 +1,1153 @@
1
+ import { useCssVars as ea, defineAsyncComponent as H, ref as v, shallowRef as ut, toRefs as ta, watch as xe, computed as y, onMounted as it, onBeforeUnmount as ct, createElementBlock as i, openBlock as r, unref as d, normalizeStyle as R, normalizeClass as F, createBlock as G, createCommentVNode as h, renderSlot as g, createElementVNode as I, withCtx as b, normalizeProps as z, guardReactiveProps as U, createSlots as Ie, withModifiers as vt, createVNode as fe, Fragment as X, renderList as Q, mergeProps as dt, toDisplayString as Z, Teleport as aa, resolveDynamicComponent as oa, createTextVNode as ht, nextTick as ft } from "vue";
2
+ import { c as Pe, t as la, b as na, p as ge, o as sa, f as gt, g as ra, e as ua, h as ia, X as ca, J as va, d as _e, $ as da, al as ha, P as fa, Q as ga, a as pa } from "./lib-C_mNZmhD.js";
3
+ import { t as ba, u as ma } from "./useResponsive-DfdjqQps.js";
4
+ import { u as ya, a as pt } from "./useNestedProp-DjGXw6S9.js";
5
+ import { u as ka, B as $a } from "./BaseScanner-BgWxam9d.js";
6
+ import { u as wa } from "./usePrinter-DTzqpYKF.js";
7
+ import { u as Ca } from "./useSvgExport-DrjCWun4.js";
8
+ import { u as Ma } from "./useUserOptionState-BIvW1Kz7.js";
9
+ import { u as Aa } from "./useChartAccessibility-9icAAmYg.js";
10
+ import xa from "./img-BecE5qXd.js";
11
+ import { _ as Ia } from "./Shape-CNXKB8O0.js";
12
+ import Pa from "./Title-isbiM8i8.js";
13
+ import { t as _a } from "./themes-AUNCOb2G.js";
14
+ import Sa from "./Legend-G6GMcdAc.js";
15
+ import { _ as Ta } from "./_plugin-vue_export-helper-CHgC5LLL.js";
16
+ const Ba = ["id"], Oa = ["id"], La = ["xmlns", "viewBox"], Da = ["width", "height"], Ea = { key: 1 }, Na = ["id", "d"], Ra = { key: 2 }, Fa = ["transform"], za = ["d", "fill", "stroke", "stroke-width", "onMouseenter", "onMouseleave", "onClick"], Ua = ["d", "fill", "stroke", "stroke-width"], Xa = ["d", "fill"], Va = ["d", "fill", "stroke", "stroke-width", "onMouseenter", "onClick", "onMouseleave"], ja = ["d", "fill", "stroke", "stroke-width"], Ga = ["d", "fill", "stroke", "stroke-width"], Ya = ["d", "fill", "stroke", "stroke-width"], Wa = { key: 0 }, qa = ["x1", "y1", "x2", "y2", "stroke", "stroke-width"], Ha = ["x1", "y1", "x2", "y2", "stroke", "stroke-width"], Qa = ["cx", "cy", "r", "stroke", "stroke-width", "fill"], Za = ["transform", "fill", "text-anchor", "font-size", "font-weight"], Ja = { key: 1 }, Ka = ["font-size", "font-weight", "fill"], eo = ["href"], to = ["transform", "text-anchor", "font-size", "font-weight", "fill", "innerHTML"], ao = {
17
+ key: 4,
18
+ class: "vue-data-ui-watermark"
19
+ }, oo = ["id"], lo = ["onClick"], no = {
20
+ key: 7,
21
+ "data-dom-to-png-ignore": "",
22
+ class: "reset-wrapper"
23
+ }, so = { style: { "text-align": "right", width: "100%" } }, ro = {
24
+ __name: "vue-ui-chord",
25
+ props: {
26
+ dataset: {
27
+ type: Object,
28
+ default() {
29
+ return {};
30
+ }
31
+ },
32
+ config: {
33
+ type: Object,
34
+ default() {
35
+ return {};
36
+ }
37
+ }
38
+ },
39
+ emits: ["selectLegend", "selectGroup", "selectRibbon"],
40
+ setup(bt, { expose: mt, emit: yt }) {
41
+ ea((e) => ({
42
+ v5e82de81: e.slicerColor
43
+ }));
44
+ const kt = H(() => import("./vue-ui-accordion-CqhVCfc2.js")), Se = H(() => import("./BaseIcon-BmMbm4d0.js")), $t = H(() => import("./DataTable-BT7VF2ua.js")), wt = H(() => import("./PackageVersion-DQvyATVa.js")), Ct = H(() => import("./PenAndPaper-SZQIAgkg.js")), Mt = H(() => import("./UserOptions-CGnQt6Fd.js")), At = H(() => import("./BaseDraggableDialog-ymf2sfB8.js")), { vue_ui_chord: xt } = ya(), B = bt, re = yt, E = v(!!B.dataset && Object.hasOwn(B.dataset, "matrix")), C = v(Pe()), M = v(null), k = v(null), p = v(null), Te = v(0), O = v(null), Be = v(null), Oe = v(null), Le = v(null), De = v(null), pe = v(0), be = v(0), me = v(0), J = v(!1), V = ut(null), K = ut(null), Ee = v(!1), te = v(null), ye = v(null), t = v($e()), { loading: Ne, FINAL_DATASET: A, manualLoading: ae } = ka({
45
+ ...ta(B),
46
+ FINAL_CONFIG: t,
47
+ prepareConfig: $e,
48
+ callback: () => {
49
+ Promise.resolve().then(async () => {
50
+ await ft(), Y.value.showTable = t.value.table.show;
51
+ });
52
+ },
53
+ skeletonDataset: {
54
+ matrix: [
55
+ [12e3, 6e3, 9e3, 3e3],
56
+ [2e3, 1e4, 2e3, 6001],
57
+ [8e3, 1600, 8e3, 8001],
58
+ [1e3, 1e3, 1e3, 7001]
59
+ ],
60
+ labels: [],
61
+ colors: ["#DBDBDB", "#C4C4C4", "#ADADAD", "#969696"]
62
+ },
63
+ skeletonConfig: la({
64
+ defaultConfig: t.value,
65
+ userConfig: {
66
+ useCssAnimation: !1,
67
+ userOptions: { show: !1 },
68
+ table: { show: !1 },
69
+ style: {
70
+ chart: {
71
+ backgroundColor: "#99999930",
72
+ legend: {
73
+ backgroundColor: "transparent"
74
+ },
75
+ arcs: {
76
+ stroke: "#6A6A6A",
77
+ labels: {
78
+ show: !1
79
+ }
80
+ },
81
+ ribbons: {
82
+ stroke: "#6A6A6A",
83
+ underlayerOpacity: 0,
84
+ labels: {
85
+ show: !1
86
+ }
87
+ }
88
+ }
89
+ }
90
+ }
91
+ })
92
+ }), { userOptionsVisible: ke, setUserOptionsVisibility: Re, keepUserOptionState: Fe } = Ma({ config: t.value }), { svgRef: ee } = Aa({ config: t.value.style.chart.title }), { isPrinting: ze, isImaging: Ue, generatePdf: Xe, generateImage: Ve } = wa({
93
+ elementId: `chord_${C.value}`,
94
+ fileName: t.value.style.chart.title.text || "vue-ui-chord",
95
+ options: t.value.userOptions.print
96
+ }), Y = v({
97
+ showTable: t.value.table.show
98
+ });
99
+ function $e() {
100
+ const e = pt({
101
+ userConfig: B.config,
102
+ defaultConfig: xt
103
+ });
104
+ return e.theme ? {
105
+ ...pt({
106
+ userConfig: _a.vue_ui_chord[e.theme] || B.config,
107
+ defaultConfig: e
108
+ }),
109
+ customPalette: na[e.theme] || ge
110
+ } : e;
111
+ }
112
+ xe(() => B.config, (e) => {
113
+ Ne.value || (t.value = $e()), ke.value = !t.value.userOptions.showOnChartHover, we(), pe.value += 1, be.value += 1, me.value += 1, P.value = t.value.initialRotation, Y.value.showTable = t.value.table.show;
114
+ }, { deep: !0 });
115
+ const je = y(() => t.value.debug);
116
+ xe(() => B.dataset, () => {
117
+ Ge(), we(), pe.value += 1, be.value += 1, me.value += 1;
118
+ });
119
+ function Ge() {
120
+ if (sa(B.dataset)) {
121
+ gt({
122
+ componentName: "VueUiChord",
123
+ type: "dataset",
124
+ debug: je.value
125
+ }), E.value = !1, ae.value = !0;
126
+ return;
127
+ }
128
+ const e = ra({
129
+ datasetObject: B.dataset,
130
+ requiredAttributes: ["matrix"]
131
+ });
132
+ if (e.length) {
133
+ e.forEach((s) => {
134
+ gt({
135
+ componentName: "VueUiChord",
136
+ type: "datasetAttribute",
137
+ property: s,
138
+ debug: je.value
139
+ });
140
+ }), E.value = !1, ae.value = !0;
141
+ return;
142
+ }
143
+ const o = B.dataset.matrix;
144
+ if (!Array.isArray(o) || o.length < 2) {
145
+ console.warn(`VueUiChord: dataset.matrix requires a minimum of 2 datapoints, for example:
146
+
147
+ matrix:[
148
+ [1, 1],
149
+ [1, 1]
150
+ ]`), E.value = !1, ae.value = !0;
151
+ return;
152
+ }
153
+ const a = o.length, l = o.findIndex((s) => !Array.isArray(s) || s.length !== a);
154
+ if (l !== -1) {
155
+ console.warn(
156
+ `VueUiChord - Invalid matrix: dataset.matrix at index ${l} has ${Array.isArray(o[l]) ? o[l].length : "NaN"} elements instead of the required ${a}
157
+
158
+ dataset.matrix[${l}] = [${Array.isArray(o[l]) ? o[l].toString() : "invalid"}]`
159
+ ), E.value = !1, ae.value = !0;
160
+ return;
161
+ }
162
+ E.value = !0, ae.value = !1;
163
+ }
164
+ function we() {
165
+ if (Ge(), t.value.responsive) {
166
+ const e = ba(() => {
167
+ const { width: o, height: a, heightNoTitle: l, heightSource: s, heightTitle: n, heightLegend: u } = ma({
168
+ chart: O.value,
169
+ title: t.value.style.chart.title.text ? Be.value : null,
170
+ legend: t.value.style.chart.legend.show ? Oe.value : null,
171
+ source: Le.value,
172
+ noTitle: De.value
173
+ }), f = n + u + s + l;
174
+ o < a ? O.value.style.width = "100%" : (O.value.style.height = "100%", ee.value.style.height = `calc(100% - ${f}px)`);
175
+ }, 100);
176
+ V.value && (K.value && V.value.unobserve(K.value), V.value.disconnect()), V.value = new ResizeObserver(e), K.value = O.value.parentNode, V.value.observe(K.value), e();
177
+ }
178
+ Ye.value = setTimeout(() => {
179
+ J.value = !0;
180
+ }, 500);
181
+ }
182
+ function It() {
183
+ if (!A.value || !Object.hasOwn(A.value, "matrix") || A.value.matrix.length < 2) {
184
+ console.warn(`VueUiChord: dataset.matrix requires a minimum of 2 datapoints, for example:
185
+
186
+ matrix:[
187
+ [1, 1],
188
+ [1, 1]
189
+ ]`), E.value = !1;
190
+ return;
191
+ }
192
+ A.value.matrix.forEach((e, o) => {
193
+ e.length !== A.value.matrix.length && (console.warn(`VueUiChord - Invalid matrix: dataset.matrix at index ${o} has ${e.length} elements instead of the required ${A.value.matrix.length}
194
+
195
+ dataset.matrix[${o}] = [${e.toString()}] has a length of ${e.length} but should have the same length as the matrix itself (${A.value.matrix.length})`), E.value = !1);
196
+ });
197
+ }
198
+ const Ye = v(null);
199
+ it(() => {
200
+ Ee.value = !0, we();
201
+ });
202
+ const L = v({
203
+ height: 600,
204
+ width: 600
205
+ }), Pt = y(() => t.value.userOptions.show && !t.value.style.chart.title.text), _t = y(() => ua(t.value.customPalette)), m = y(() => ({
206
+ inner: L.value.width * 0.3 * t.value.style.chart.arcs.innerRadiusRatio,
207
+ outer: L.value.width * 0.34 * t.value.style.chart.arcs.outerRadiusRatio
208
+ })), St = y(() => t.value.style.chart.arcs.padAngle / 100), $ = y(() => ({
209
+ matrix: A.value.matrix ?? [[0]],
210
+ labels: A.value.labels ?? [""],
211
+ colors: A.value.colors && Array.isArray(A.value.colors) && A.value.colors.length ? A.value.colors.map((e) => ia(e)) : A.value.matrix.map((e, o) => _t.value[o] || ge[o] || ge[o % ge.length])
212
+ }));
213
+ function Tt(e, o) {
214
+ const a = e.length, l = m.value.inner, s = new Array(a).fill(0);
215
+ let n = 0;
216
+ for (let c = 0; c < a; c += 1)
217
+ for (let w = 0; w < a; w += 1)
218
+ s[c] += e[c][w], n += e[c][w];
219
+ const u = (2 * Math.PI - o * a) / n, f = [];
220
+ let _ = 0;
221
+ for (let c = 0; c < a; c += 1) {
222
+ const w = _, T = w + s[c] * u;
223
+ f.push({
224
+ index: c,
225
+ pattern: `pattern_${C.value}_${c}`,
226
+ startAngle: w,
227
+ endAngle: T,
228
+ name: $.value.labels[c],
229
+ id: Pe(),
230
+ color: $.value.colors[c],
231
+ proportion: s[c] / n
232
+ }), _ = T + o;
233
+ }
234
+ const S = [];
235
+ for (let c = 0; c < a; c += 1) {
236
+ const w = e[c].map((D, j) => ({ j, v: D }));
237
+ w.sort((D, j) => j.v - D.v);
238
+ let T = f[c].startAngle;
239
+ for (const { j: D, v: j } of w) {
240
+ const q = T, se = q + j * u;
241
+ S.push({
242
+ index: c,
243
+ subIndex: D,
244
+ pattern: `pattern_${C.value}_${c}`,
245
+ startAngle: q,
246
+ endAngle: se,
247
+ value: j,
248
+ groupName: $.value.labels[c],
249
+ groupId: f[c].id,
250
+ groupColor: $.value.colors[c],
251
+ midAngle: (q + se) / 2,
252
+ midBaseX: Math.cos((q + se) / 2 - Math.PI / 2) * l,
253
+ midBaseY: Math.sin((q + se) / 2 - Math.PI / 2) * l
254
+ }), T = se;
255
+ }
256
+ }
257
+ const N = [];
258
+ for (const c of S) {
259
+ const w = S.find(
260
+ (T) => T.index === c.subIndex && T.subIndex === c.index
261
+ );
262
+ N.push({ source: c, target: w, id: Pe() });
263
+ }
264
+ return { groups: f, chords: N };
265
+ }
266
+ const x = y(() => {
267
+ const e = Tt($.value.matrix, St.value);
268
+ return It(), e.chords.sort(
269
+ (o, a) => Math.max(a.source.value, a.target.value) - Math.max(o.source.value, o.target.value)
270
+ ), e;
271
+ }), Bt = y(() => {
272
+ const e = m.value.outer + t.value.style.chart.ribbons.labels.offset + 12, a = t.value.style.chart.ribbons.labels.fontSize * 0.6, l = [];
273
+ if (k.value) {
274
+ const n = k.value;
275
+ if (n.source.value) {
276
+ const u = String(n.source.value);
277
+ l.push({
278
+ id: n.id + "-src",
279
+ theta: n.source.midAngle,
280
+ w: u.length * a / e,
281
+ midBaseX: n.source.midBaseX,
282
+ midBaseY: n.source.midBaseY,
283
+ groupColor: n.source.groupColor,
284
+ value: n.source.value
285
+ });
286
+ }
287
+ if (n.target && n.target.value && n.target.value !== n.source.value) {
288
+ const u = String(n.target.value);
289
+ l.push({
290
+ id: n.id + "-tgt",
291
+ theta: n.target.midAngle,
292
+ w: u.length * a / e,
293
+ midBaseX: n.target.midBaseX,
294
+ midBaseY: n.target.midBaseY,
295
+ groupColor: n.target.groupColor,
296
+ value: n.target.value
297
+ });
298
+ }
299
+ return l;
300
+ }
301
+ function s(n) {
302
+ x.value.chords.filter((u) => u.source.groupId === n && u.source.value).forEach((u) => {
303
+ {
304
+ const f = String(u.source.value);
305
+ l.push({
306
+ id: u.id + "-src",
307
+ theta: u.source.midAngle,
308
+ w: f.length * a / e,
309
+ midBaseX: u.source.midBaseX,
310
+ midBaseY: u.source.midBaseY,
311
+ groupColor: u.source.groupColor,
312
+ value: u.source.value
313
+ });
314
+ }
315
+ if (u.target && u.target.value && u.target.value !== u.source.value) {
316
+ const f = String(u.target.value);
317
+ l.push({
318
+ id: u.id + "-tgt",
319
+ theta: u.target.midAngle,
320
+ w: f.length * a / e,
321
+ midBaseX: u.target.midBaseX,
322
+ midBaseY: u.target.midBaseY,
323
+ groupColor: u.target.groupColor,
324
+ value: u.target.value
325
+ });
326
+ }
327
+ });
328
+ }
329
+ return p.value && s(p.value), M.value && s(M.value.id), l;
330
+ }), Ot = y(() => {
331
+ const e = Bt.value.map((s) => ({ ...s })).sort((s, n) => s.theta - n.theta), o = t.value.style.chart.ribbons.labels.minSeparationDeg * Math.PI / 180;
332
+ let a = !0, l = 0;
333
+ for (; a && l++ < 10; ) {
334
+ a = !1;
335
+ for (let f = 1; f < e.length; f += 1) {
336
+ const _ = e[f - 1], S = e[f], N = _.theta + _.w + o;
337
+ S.theta < N && (S.theta = N, a = !0);
338
+ }
339
+ const s = e[0], n = e[e.length - 1], u = n.theta + n.w + o - 2 * Math.PI;
340
+ s.theta < u && (s.theta = u, a = !0);
341
+ }
342
+ return e;
343
+ });
344
+ function We(e, o, a, l) {
345
+ const s = e - Math.PI / 2, n = o - Math.PI / 2, u = Math.cos(s) * a, f = Math.sin(s) * a, _ = Math.cos(n) * a, S = Math.sin(n) * a, N = Math.cos(n) * l, c = Math.sin(n) * l, w = Math.cos(s) * l, T = Math.sin(s) * l, D = o - e > Math.PI ? 1 : 0;
346
+ return `M${u},${f} A${a},${a} 0 ${D} 1 ${_},${S} L${N},${c} A${l},${l} 0 ${D} 0 ${w},${T} Z`;
347
+ }
348
+ function ue(e, o) {
349
+ const a = m.value.inner, l = e.startAngle - Math.PI / 2, s = e.endAngle - Math.PI / 2, n = o.startAngle - Math.PI / 2, u = o.endAngle - Math.PI / 2, f = Math.cos(l) * a, _ = Math.sin(l) * a, S = Math.cos(s) * a, N = Math.sin(s) * a, c = Math.cos(n) * a, w = Math.sin(n) * a, T = Math.cos(u) * a, D = Math.sin(u) * a, j = e.endAngle - e.startAngle > Math.PI ? 1 : 0, q = o.endAngle - o.startAngle > Math.PI ? 1 : 0;
350
+ return `M${f},${_}A${a},${a} 0 ${j} 1 ${S},${N}Q0,0 ${c},${w}A${a},${a} 0 ${q} 1 ${T},${D}Q0,0 ${f},${_}Z`;
351
+ }
352
+ const qe = y(() => P.value * Math.PI / 180);
353
+ function Lt(e) {
354
+ return (e.startAngle + e.endAngle) / 2;
355
+ }
356
+ function Dt(e) {
357
+ return ((Lt(e) + qe.value) % (2 * Math.PI) + 2 * Math.PI) % (2 * Math.PI);
358
+ }
359
+ function Et(e) {
360
+ let o = e + qe.value;
361
+ return o = (o % (2 * Math.PI) + 2 * Math.PI) % (2 * Math.PI), o > Math.PI ? "end" : "start";
362
+ }
363
+ function Nt(e) {
364
+ const o = e - Math.PI / 2, a = Math.cos(o) * (m.value.outer + t.value.style.chart.arcs.labels.offset + 24), l = Math.sin(o) * (m.value.outer + t.value.style.chart.arcs.labels.offset + 24);
365
+ return `translate(${a},${l})`;
366
+ }
367
+ function Rt(e, o, a) {
368
+ const l = e - Math.PI / 2, s = o - Math.PI / 2, n = Math.cos(l) * a, u = Math.sin(l) * a, f = Math.cos(s) * a, _ = Math.sin(s) * a, S = o - e > Math.PI ? 1 : 0;
369
+ return `M${n},${u} A${a},${a} 0 ${S} 1 ${f},${_}`;
370
+ }
371
+ const P = v(t.value.initialRotation), oe = v(!1);
372
+ let He = 0, Qe = 0;
373
+ function Ze(e) {
374
+ const o = ee.value.getBoundingClientRect(), a = o.left + o.width / 2, l = o.top + o.height / 2, s = e.clientX ?? e.touches[0].clientX, n = e.clientY ?? e.touches[0].clientY;
375
+ return Math.atan2(n - l, s - a);
376
+ }
377
+ function Je(e) {
378
+ !t.value.enableRotation || le.value || (e.preventDefault(), oe.value = !0, He = P.value, Qe = Ze(e));
379
+ }
380
+ function ie(e) {
381
+ if (!oe.value) return;
382
+ const o = Ze(e);
383
+ P.value = He + (o - Qe) * 180 / Math.PI;
384
+ }
385
+ function ce() {
386
+ oe.value = !1;
387
+ }
388
+ function Ke(e) {
389
+ return pa(
390
+ t.value.style.chart.ribbons.labels.formatter,
391
+ e,
392
+ _e({
393
+ p: t.value.style.chart.ribbons.labels.prefix,
394
+ v: e,
395
+ s: t.value.style.chart.ribbons.labels.suffix,
396
+ r: t.value.style.chart.ribbons.labels.rounding
397
+ })
398
+ );
399
+ }
400
+ it(() => {
401
+ window.addEventListener("mousemove", ie), window.addEventListener("mouseup", ce), window.addEventListener("touchmove", ie, { passive: !1 }), window.addEventListener("touchend", ce);
402
+ }), ct(() => {
403
+ window.removeEventListener("mousemove", ie), window.removeEventListener("mouseup", ce), window.removeEventListener("touchmove", ie), window.removeEventListener("touchend", ce), clearTimeout(Ye.value), V.value && (K.value && V.value.unobserve(K.value), V.value.disconnect());
404
+ });
405
+ const ve = v(!1);
406
+ function et(e) {
407
+ ve.value = e, Te.value += 1;
408
+ }
409
+ function Ft(e, o) {
410
+ t.value.events.datapointEnter && t.value.events.datapointEnter({ datapoint: e, seriesIndex: o }), !p.value && (M.value = e);
411
+ }
412
+ function zt(e, o) {
413
+ M.value = null, t.value.events.datapointLeave && t.value.events.datapointLeave({ datapoint: e, seriesIndex: o });
414
+ }
415
+ function Ut(e, o) {
416
+ re("selectGroup", e), t.value.events.datapointClick && t.value.events.datapointClick({ datapoint: e, seriesIndex: o });
417
+ }
418
+ function Xt(e, o) {
419
+ t.value.events.datapointEnter && t.value.events.datapointEnter({ datapoint: e, seriesIndex: o }), !p.value && (k.value = e);
420
+ }
421
+ function Vt(e, o) {
422
+ k.value = null, t.value.events.datapointLeave && t.value.events.datapointLeave({ datapoint: e, seriesIndex: o });
423
+ }
424
+ function jt(e, o) {
425
+ re("selectRibbon", e), t.value.events.datapointClick && t.value.events.datapointClick({ datapoint: e, seriesIndex: o });
426
+ }
427
+ function tt(e) {
428
+ return !p.value && !M.value && !k.value ? 0.8 : (p.value ? p.value === e.source.groupId : M.value ? M.value.id === e.source.groupId : k.value?.id === e.id) ? 1 : 0.1;
429
+ }
430
+ function at(e) {
431
+ return !p.value && !M.value && !k.value || (p.value ? p.value === e.id : M.value ? M.value.id === e.id : [k.value?.source.groupId, k.value?.target.groupId].includes(e.id)) ? 1 : 0.3;
432
+ }
433
+ const le = v(!1);
434
+ function Ce() {
435
+ le.value = !le.value;
436
+ }
437
+ function ot() {
438
+ Y.value.showTable = !Y.value.showTable;
439
+ }
440
+ function Gt() {
441
+ return x.value;
442
+ }
443
+ const W = v(null);
444
+ function lt() {
445
+ const e = t.value.initialRotation;
446
+ W.value !== null && cancelAnimationFrame(W.value);
447
+ const o = () => {
448
+ P.value += (e - P.value) * 0.05, Math.abs(P.value - e) < 0.1 ? (P.value = e, W.value = null) : W.value = requestAnimationFrame(o);
449
+ };
450
+ W.value = requestAnimationFrame(o);
451
+ }
452
+ ct(() => {
453
+ W.value !== null && cancelAnimationFrame(W.value);
454
+ });
455
+ function nt(e) {
456
+ e === p.value ? (p.value = null, re("selectLegend", null)) : (p.value = e, re("selectLegend", x.value.groups.find((o) => o.id === e)));
457
+ }
458
+ const Me = y(() => x.value.groups.map((e, o) => ({
459
+ name: e.name,
460
+ color: e.color,
461
+ shape: "circle",
462
+ patternIndex: o,
463
+ pattern: `pattern_${C.value}_${o}`,
464
+ id: e.id,
465
+ select: () => nt(e.id),
466
+ opacity: p.value ? p.value === e.id ? 1 : 0.3 : 1
467
+ }))), Yt = y(() => ({
468
+ cy: "chord-div-legend",
469
+ backgroundColor: t.value.style.chart.legend.backgroundColor,
470
+ color: t.value.style.chart.legend.color,
471
+ fontSize: t.value.style.chart.legend.fontSize,
472
+ paddingBottom: 12,
473
+ fontWeight: t.value.style.chart.legend.bold ? "bold" : ""
474
+ })), de = y(() => {
475
+ const e = x.value.groups.map((a, l) => ({
476
+ name: a.name || l,
477
+ color: a.color
478
+ })), o = $.value.matrix;
479
+ return { head: e, body: o };
480
+ }), he = y(() => {
481
+ const e = [{ name: "", color: null }, ...de.value.head], o = de.value.body.map((s, n) => [
482
+ de.value.head[n],
483
+ ...de.value.body[n]
484
+ ]), a = {
485
+ th: {
486
+ backgroundColor: t.value.table.th.backgroundColor,
487
+ color: t.value.table.th.color,
488
+ outline: t.value.table.th.outline
489
+ },
490
+ td: {
491
+ backgroundColor: t.value.table.td.backgroundColor,
492
+ color: t.value.table.td.color,
493
+ outline: t.value.table.td.outline
494
+ },
495
+ breakpoint: t.value.table.responsiveBreakpoint
496
+ };
497
+ return {
498
+ colNames: e,
499
+ head: e,
500
+ body: o,
501
+ config: a
502
+ };
503
+ });
504
+ function Ae(e = null) {
505
+ ft(() => {
506
+ const o = $.value.matrix.map((s, n) => [
507
+ [$.value.labels[n] || n],
508
+ s
509
+ ]), a = [
510
+ [t.value.style.chart.title.text],
511
+ [t.value.style.chart.title.subtitle.text],
512
+ [
513
+ [""],
514
+ ...$.value.labels.map((s, n) => [s || n])
515
+ ]
516
+ ].concat(o), l = fa(a);
517
+ e ? e(l) : ga({ csvContent: l, title: t.value.style.chart.title.text || "vue-ui-chord" });
518
+ });
519
+ }
520
+ async function Wt({ scale: e = 2 } = {}) {
521
+ if (!O.value) return;
522
+ const { width: o, height: a } = O.value.getBoundingClientRect(), l = o / a, { imageUri: s, base64: n } = await xa({ domElement: O.value, base64: !0, img: !0, scale: e });
523
+ return {
524
+ imageUri: s,
525
+ base64: n,
526
+ title: t.value.style.chart.title.text,
527
+ width: o,
528
+ height: a,
529
+ aspectRatio: l
530
+ };
531
+ }
532
+ function qt(e, o) {
533
+ return `${$.value.labels[o]}${t.value.style.chart.arcs.labels.showPercentage ? _e({
534
+ p: " (",
535
+ v: isNaN(e.proportion) ? 0 : e.proportion * 100,
536
+ s: "%)",
537
+ r: t.value.style.chart.arcs.labels.roundingPercentage
538
+ }) : ""}`;
539
+ }
540
+ const ne = y(() => {
541
+ const e = t.value.table.useDialog && !t.value.table.show, o = Y.value.showTable;
542
+ return {
543
+ component: e ? At : kt,
544
+ title: `${t.value.style.chart.title.text}${t.value.style.chart.title.subtitle.text ? `: ${t.value.style.chart.title.subtitle.text}` : ""}`,
545
+ props: e ? {
546
+ backgroundColor: t.value.table.th.backgroundColor,
547
+ color: t.value.table.th.color,
548
+ headerColor: t.value.table.th.color,
549
+ headerBg: t.value.table.th.backgroundColor,
550
+ isFullscreen: ve.value,
551
+ fullscreenParent: O.value,
552
+ forcedWidth: Math.min(800, window.innerWidth * 0.8)
553
+ } : {
554
+ hideDetails: !0,
555
+ config: {
556
+ open: o,
557
+ maxHeight: 1e4,
558
+ body: {
559
+ backgroundColor: t.value.style.chart.backgroundColor,
560
+ color: t.value.style.chart.color
561
+ },
562
+ head: {
563
+ backgroundColor: t.value.style.chart.backgroundColor,
564
+ color: t.value.style.chart.color
565
+ }
566
+ }
567
+ }
568
+ };
569
+ });
570
+ xe(() => Y.value.showTable, (e) => {
571
+ t.value.table.show || (e && t.value.table.useDialog && te.value ? te.value.open() : "close" in te.value && te.value.close());
572
+ });
573
+ function st() {
574
+ Y.value.showTable = !1, ye.value && ye.value.setTableIconState(!1);
575
+ }
576
+ const Ht = y(() => t.value.style.chart.backgroundColor), Qt = y(() => t.value.style.chart.legend), Zt = y(() => t.value.style.chart.title), { exportSvg: Jt, getSvg: Kt } = Ca({
577
+ svg: ee,
578
+ title: Zt,
579
+ legend: Qt,
580
+ legendItems: Me,
581
+ backgroundColor: Ht
582
+ });
583
+ async function rt({ isCb: e }) {
584
+ if (e) {
585
+ const { blob: o, url: a, text: l, dataUrl: s } = await Kt();
586
+ t.value.userOptions.callbacks.svg({ blob: o, url: a, text: l, dataUrl: s });
587
+ } else
588
+ Jt();
589
+ }
590
+ return mt({
591
+ getData: Gt,
592
+ getImage: Wt,
593
+ generateCsv: Ae,
594
+ generateImage: Ve,
595
+ generateSvg: rt,
596
+ generatePdf: Xe,
597
+ toggleAnnotator: Ce,
598
+ toggleTable: ot,
599
+ toggleFullscreen: et
600
+ }), (e, o) => (r(), i("div", {
601
+ ref_key: "chordChart",
602
+ ref: O,
603
+ class: F({
604
+ "vue-data-ui-component": !0,
605
+ "vue-ui-chord": !0,
606
+ "vue-data-ui-wrapper-fullscreen": ve.value,
607
+ "vue-data-ui-responsive": t.value.responsive
608
+ }),
609
+ style: R(`font-family:${t.value.style.fontFamily};width:100%; text-align:center;background:${t.value.style.chart.backgroundColor}`),
610
+ id: `chord_${C.value}`,
611
+ onMouseenter: o[2] || (o[2] = () => d(Re)(!0)),
612
+ onMouseleave: o[3] || (o[3] = () => d(Re)(!1))
613
+ }, [
614
+ t.value.userOptions.buttons.annotator && d(ee) ? (r(), G(d(Ct), {
615
+ key: 0,
616
+ color: t.value.style.chart.color,
617
+ backgroundColor: t.value.style.chart.backgroundColor,
618
+ active: le.value,
619
+ svgRef: d(ee),
620
+ onClose: Ce
621
+ }, {
622
+ "annotator-action-close": b(() => [
623
+ g(e.$slots, "annotator-action-close", {}, void 0, !0)
624
+ ]),
625
+ "annotator-action-color": b(({ color: a }) => [
626
+ g(e.$slots, "annotator-action-color", z(U({ color: a })), void 0, !0)
627
+ ]),
628
+ "annotator-action-draw": b(({ mode: a }) => [
629
+ g(e.$slots, "annotator-action-draw", z(U({ mode: a })), void 0, !0)
630
+ ]),
631
+ "annotator-action-undo": b(({ disabled: a }) => [
632
+ g(e.$slots, "annotator-action-undo", z(U({ disabled: a })), void 0, !0)
633
+ ]),
634
+ "annotator-action-redo": b(({ disabled: a }) => [
635
+ g(e.$slots, "annotator-action-redo", z(U({ disabled: a })), void 0, !0)
636
+ ]),
637
+ "annotator-action-delete": b(({ disabled: a }) => [
638
+ g(e.$slots, "annotator-action-delete", z(U({ disabled: a })), void 0, !0)
639
+ ]),
640
+ _: 3
641
+ }, 8, ["color", "backgroundColor", "active", "svgRef"])) : h("", !0),
642
+ g(e.$slots, "userConfig", {}, void 0, !0),
643
+ Pt.value ? (r(), i("div", {
644
+ key: 1,
645
+ ref_key: "noTitle",
646
+ ref: De,
647
+ class: "vue-data-ui-no-title-space",
648
+ style: "height:36px; width: 100%;background:transparent"
649
+ }, null, 512)) : h("", !0),
650
+ t.value.style.chart.title.text ? (r(), i("div", {
651
+ key: 2,
652
+ ref_key: "chartTitle",
653
+ ref: Be,
654
+ style: "width:100%;background:transparent;padding-bottom:24px"
655
+ }, [
656
+ (r(), G(Pa, {
657
+ key: `title_${pe.value}`,
658
+ config: {
659
+ title: {
660
+ cy: "chord-div-title",
661
+ ...t.value.style.chart.title
662
+ },
663
+ subtitle: {
664
+ cy: "chord-div-subtitle",
665
+ ...t.value.style.chart.title.subtitle
666
+ }
667
+ }
668
+ }, null, 8, ["config"]))
669
+ ], 512)) : h("", !0),
670
+ I("div", {
671
+ id: `legend-top-${C.value}`
672
+ }, null, 8, Oa),
673
+ t.value.userOptions.show && E.value && (d(Fe) || d(ke)) ? (r(), G(d(Mt), {
674
+ ref_key: "userOptionsRef",
675
+ ref: ye,
676
+ key: `user_option_${Te.value}`,
677
+ backgroundColor: t.value.style.chart.backgroundColor,
678
+ color: t.value.style.chart.color,
679
+ isPrinting: d(ze),
680
+ isImaging: d(Ue),
681
+ uid: C.value,
682
+ hasTooltip: !1,
683
+ hasPdf: t.value.userOptions.buttons.pdf,
684
+ hasImg: t.value.userOptions.buttons.img,
685
+ hasSvg: t.value.userOptions.buttons.svg,
686
+ hasXls: t.value.userOptions.buttons.csv,
687
+ hasTable: t.value.userOptions.buttons.table,
688
+ hasLabel: !1,
689
+ hasFullscreen: t.value.userOptions.buttons.fullscreen,
690
+ isFullscreen: ve.value,
691
+ chartElement: O.value,
692
+ position: t.value.userOptions.position,
693
+ titles: { ...t.value.userOptions.buttonTitles },
694
+ hasAnnotator: t.value.userOptions.buttons.annotator,
695
+ isAnnotation: le.value,
696
+ callbacks: t.value.userOptions.callbacks,
697
+ printScale: t.value.userOptions.print.scale,
698
+ tableDialog: t.value.table.useDialog,
699
+ onToggleFullscreen: et,
700
+ onGeneratePdf: d(Xe),
701
+ onGenerateCsv: Ae,
702
+ onGenerateImage: d(Ve),
703
+ onGenerateSvg: rt,
704
+ onToggleTable: ot,
705
+ onToggleAnnotator: Ce,
706
+ style: R({
707
+ visibility: d(Fe) ? d(ke) ? "visible" : "hidden" : "visible"
708
+ })
709
+ }, Ie({ _: 2 }, [
710
+ e.$slots.menuIcon ? {
711
+ name: "menuIcon",
712
+ fn: b(({ isOpen: a, color: l }) => [
713
+ g(e.$slots, "menuIcon", z(U({ isOpen: a, color: l })), void 0, !0)
714
+ ]),
715
+ key: "0"
716
+ } : void 0,
717
+ e.$slots.optionPdf ? {
718
+ name: "optionPdf",
719
+ fn: b(() => [
720
+ g(e.$slots, "optionPdf", {}, void 0, !0)
721
+ ]),
722
+ key: "1"
723
+ } : void 0,
724
+ e.$slots.optionCsv ? {
725
+ name: "optionCsv",
726
+ fn: b(() => [
727
+ g(e.$slots, "optionCsv", {}, void 0, !0)
728
+ ]),
729
+ key: "2"
730
+ } : void 0,
731
+ e.$slots.optionImg ? {
732
+ name: "optionImg",
733
+ fn: b(() => [
734
+ g(e.$slots, "optionImg", {}, void 0, !0)
735
+ ]),
736
+ key: "3"
737
+ } : void 0,
738
+ e.$slots.optionSvg ? {
739
+ name: "optionSvg",
740
+ fn: b(() => [
741
+ g(e.$slots, "optionSvg", {}, void 0, !0)
742
+ ]),
743
+ key: "4"
744
+ } : void 0,
745
+ e.$slots.optionTable ? {
746
+ name: "optionTable",
747
+ fn: b(() => [
748
+ g(e.$slots, "optionTable", {}, void 0, !0)
749
+ ]),
750
+ key: "5"
751
+ } : void 0,
752
+ e.$slots.optionFullscreen ? {
753
+ name: "optionFullscreen",
754
+ fn: b(({ toggleFullscreen: a, isFullscreen: l }) => [
755
+ g(e.$slots, "optionFullscreen", z(U({ toggleFullscreen: a, isFullscreen: l })), void 0, !0)
756
+ ]),
757
+ key: "6"
758
+ } : void 0,
759
+ e.$slots.optionAnnotator ? {
760
+ name: "optionAnnotator",
761
+ fn: b(({ toggleAnnotator: a, isAnnotator: l }) => [
762
+ g(e.$slots, "optionAnnotator", z(U({ toggleAnnotator: a, isAnnotator: l })), void 0, !0)
763
+ ]),
764
+ key: "7"
765
+ } : void 0
766
+ ]), 1032, ["backgroundColor", "color", "isPrinting", "isImaging", "uid", "hasPdf", "hasImg", "hasSvg", "hasXls", "hasTable", "hasFullscreen", "isFullscreen", "chartElement", "position", "titles", "hasAnnotator", "isAnnotation", "callbacks", "printScale", "tableDialog", "onGeneratePdf", "onGenerateImage", "style"])) : h("", !0),
767
+ (r(), i("svg", {
768
+ xmlns: d(ca),
769
+ ref_key: "svgRef",
770
+ ref: ee,
771
+ viewBox: `0 0 ${L.value.width} ${L.value.height}`,
772
+ preserveAspectRatio: "xMidYMid meet",
773
+ style: {
774
+ overflow: "visible"
775
+ },
776
+ class: F({ "vue-ui-chord-rotating": oe.value, "vue-ui-chord-idle": !oe.value }),
777
+ onMousedown: vt(Je, ["prevent"]),
778
+ onTouchstart: vt(Je, ["prevent"])
779
+ }, [
780
+ fe(d(wt)),
781
+ e.$slots["chart-background"] ? (r(), i("foreignObject", {
782
+ key: 0,
783
+ x: 0,
784
+ y: 0,
785
+ width: L.value.width <= 0 ? 10 : L.value.width,
786
+ height: L.value.height <= 0 ? 10 : L.value.height,
787
+ style: {
788
+ pointerEvents: "none"
789
+ }
790
+ }, [
791
+ g(e.$slots, "chart-background", {}, void 0, !0)
792
+ ], 8, Da)) : h("", !0),
793
+ t.value.style.chart.arcs.labels.curved ? (r(), i("defs", Ea, [
794
+ (r(!0), i(X, null, Q(x.value.groups, (a, l) => (r(), i("path", {
795
+ key: `labelPath-${l}`,
796
+ id: `labelPath-${l}_${C.value}`,
797
+ d: Rt(
798
+ a.startAngle,
799
+ a.endAngle,
800
+ (m.value.inner + m.value.outer) / 2 + t.value.style.chart.arcs.labels.offset
801
+ ),
802
+ fill: "none"
803
+ }, null, 8, Na))), 128))
804
+ ])) : h("", !0),
805
+ e.$slots.pattern ? (r(), i("g", Ra, [
806
+ (r(!0), i(X, null, Q(x.value.groups, (a, l) => (r(), i("defs", null, [
807
+ g(e.$slots, "pattern", dt({ ref_for: !0 }, { seriesIndex: a.index, patternId: `pattern_${C.value}_${l}` }), void 0, !0)
808
+ ]))), 256))
809
+ ])) : h("", !0),
810
+ I("g", {
811
+ transform: `translate(${L.value.width / 2}, ${L.value.height / 2}) rotate(${P.value})`
812
+ }, [
813
+ (r(!0), i(X, null, Q(x.value.groups, (a, l) => (r(), i("g", null, [
814
+ (r(), i("path", {
815
+ class: F({ "vue-ui-chord-arc": !0, "vue-ui-chord-arc-animated": t.value.useCssAnimation && !J.value }),
816
+ key: `arc-${l}`,
817
+ d: We(
818
+ a.startAngle,
819
+ a.endAngle,
820
+ m.value.outer,
821
+ m.value.inner
822
+ ),
823
+ fill: $.value.colors[l],
824
+ stroke: t.value.style.chart.arcs.stroke,
825
+ "stroke-width": t.value.style.chart.arcs.strokeWidth,
826
+ "stroke-linecap": "round",
827
+ "stroke-linejoin": "round",
828
+ style: R({
829
+ opacity: at(a)
830
+ }),
831
+ onMouseenter: (s) => Ft(a, l),
832
+ onMouseleave: (s) => zt(a, l),
833
+ onClick: (s) => Ut(a, l)
834
+ }, null, 46, za)),
835
+ e.$slots.pattern ? (r(), i("path", {
836
+ class: F({ "vue-ui-chord-arc": !0, "vue-ui-chord-arc-animated": t.value.useCssAnimation && !J.value }),
837
+ key: `arc-${l}`,
838
+ d: We(
839
+ a.startAngle,
840
+ a.endAngle,
841
+ m.value.outer,
842
+ m.value.inner
843
+ ),
844
+ fill: `url(#${a.pattern})`,
845
+ stroke: t.value.style.chart.arcs.stroke,
846
+ "stroke-width": t.value.style.chart.arcs.strokeWidth,
847
+ "stroke-linecap": "round",
848
+ "stroke-linejoin": "round",
849
+ style: R({
850
+ opacity: at(a),
851
+ pointerEvents: "none"
852
+ })
853
+ }, null, 14, Ua)) : h("", !0)
854
+ ]))), 256)),
855
+ I("g", null, [
856
+ (r(!0), i(X, null, Q(M.value ? x.value.chords.filter((a) => a.source.groupId === M.value.id) : p.value ? x.value.chords.filter((a) => a.source.groupId === p.value) : x.value.chords, (a, l) => (r(), i(X, {
857
+ key: `ribbon-${a.id}`
858
+ }, [
859
+ a.source.value ? (r(), i("path", {
860
+ key: 0,
861
+ class: F({ "vue-ui-chord-ribbon": !0, "vue-ui-chord-ribbon-animated": t.value.useCssAnimation && !J.value }),
862
+ d: ue(a.source, a.target),
863
+ fill: t.value.style.chart.backgroundColor,
864
+ style: R({ opacity: t.value.style.chart.ribbons.underlayerOpacity })
865
+ }, null, 14, Xa)) : h("", !0),
866
+ a.source.value ? (r(), i("path", {
867
+ key: 1,
868
+ class: F({ "vue-ui-chord-ribbon": !0, "vue-ui-chord-ribbon-animated": t.value.useCssAnimation && !J.value }),
869
+ d: ue(a.source, a.target),
870
+ fill: $.value.colors[a.source.index],
871
+ stroke: t.value.style.chart.ribbons.stroke,
872
+ "stroke-width": t.value.style.chart.ribbons.strokeWidth,
873
+ "stroke-linecap": "round",
874
+ "stroke-linejoin": "round",
875
+ style: R({ opacity: tt(a) }),
876
+ onMouseenter: (s) => Xt({
877
+ ...a,
878
+ path: ue(a.source, a.target),
879
+ color: $.value.colors[a.source.index]
880
+ }, l),
881
+ onClick: (s) => jt({
882
+ ...a,
883
+ color: $.value.colors[a.source.index]
884
+ }, l),
885
+ onMouseleave: (s) => Vt({
886
+ ...a,
887
+ color: $.value.colors[a.source.index]
888
+ }, l)
889
+ }, null, 46, Va)) : h("", !0),
890
+ a.source.value && e.$slots.pattern ? (r(), i("path", {
891
+ key: 2,
892
+ class: F({ "vue-ui-chord-ribbon": !0, "vue-ui-chord-ribbon-animated": t.value.useCssAnimation && !J.value }),
893
+ d: ue(a.source, a.target),
894
+ fill: `url(#pattern_${C.value}_${a.source.index})`,
895
+ stroke: t.value.style.chart.ribbons.stroke,
896
+ "stroke-width": t.value.style.chart.ribbons.strokeWidth,
897
+ "stroke-linecap": "round",
898
+ "stroke-linejoin": "round",
899
+ style: R({
900
+ opacity: tt(a),
901
+ pointerEvents: "none"
902
+ })
903
+ }, null, 14, ja)) : h("", !0)
904
+ ], 64))), 128)),
905
+ k.value ? (r(), i("path", {
906
+ key: 0,
907
+ d: k.value.path,
908
+ fill: k.value.color,
909
+ stroke: t.value.style.chart.ribbons.stroke,
910
+ "stroke-width": t.value.style.chart.ribbons.strokeWidth,
911
+ "stroke-linecap": "round",
912
+ "stroke-linejoin": "round",
913
+ class: F({ "vue-ui-chord-ribbon": !0 }),
914
+ style: {
915
+ pointerEvents: "none"
916
+ }
917
+ }, null, 8, Ga)) : h("", !0),
918
+ k.value && e.$slots.pattern ? (r(), i("path", {
919
+ key: 1,
920
+ d: k.value.path,
921
+ fill: `url(#${k.value.source.pattern})`,
922
+ stroke: t.value.style.chart.ribbons.stroke,
923
+ "stroke-width": t.value.style.chart.ribbons.strokeWidth,
924
+ "stroke-linecap": "round",
925
+ "stroke-linejoin": "round",
926
+ class: F({ "vue-ui-chord-ribbon": !0 }),
927
+ style: {
928
+ pointerEvents: "none"
929
+ }
930
+ }, null, 8, Ya)) : h("", !0)
931
+ ]),
932
+ (M.value || k.value || p.value) && t.value.style.chart.ribbons.labels.show ? (r(), i("g", Wa, [
933
+ (r(!0), i(X, null, Q(Ot.value, (a) => (r(), i(X, {
934
+ key: a.id
935
+ }, [
936
+ I("line", {
937
+ x1: a.midBaseX,
938
+ y1: a.midBaseY,
939
+ x2: Math.cos(a.theta - Math.PI / 2) * (m.value.outer + t.value.style.chart.ribbons.labels.offset + 12),
940
+ y2: Math.sin(a.theta - Math.PI / 2) * (m.value.outer + t.value.style.chart.ribbons.labels.offset + 12),
941
+ stroke: t.value.style.chart.backgroundColor,
942
+ "stroke-width": t.value.style.chart.ribbons.labels.connector.strokeWidth * 3,
943
+ "pointer-events": "none"
944
+ }, null, 8, qa),
945
+ I("line", {
946
+ x1: a.midBaseX,
947
+ y1: a.midBaseY,
948
+ x2: Math.cos(a.theta - Math.PI / 2) * (m.value.outer + t.value.style.chart.ribbons.labels.offset + 12),
949
+ y2: Math.sin(a.theta - Math.PI / 2) * (m.value.outer + t.value.style.chart.ribbons.labels.offset + 12),
950
+ stroke: t.value.style.chart.ribbons.labels.connector.stroke,
951
+ "stroke-width": t.value.style.chart.ribbons.labels.connector.strokeWidth,
952
+ "pointer-events": "none"
953
+ }, null, 8, Ha),
954
+ t.value.style.chart.ribbons.labels.marker.show ? (r(), i("circle", {
955
+ key: 0,
956
+ cx: Math.cos(a.theta - Math.PI / 2) * (m.value.outer + t.value.style.chart.ribbons.labels.offset + 12),
957
+ cy: Math.sin(a.theta - Math.PI / 2) * (m.value.outer + t.value.style.chart.ribbons.labels.offset + 12),
958
+ r: t.value.style.chart.ribbons.labels.marker.radius,
959
+ stroke: t.value.style.chart.ribbons.labels.marker.stroke,
960
+ "stroke-width": t.value.style.chart.ribbons.labels.marker.strokeWidth,
961
+ fill: a.groupColor,
962
+ "pointer-events": "none"
963
+ }, null, 8, Qa)) : h("", !0),
964
+ I("text", {
965
+ transform: `
966
+ translate(
967
+ ${Math.cos(a.theta - Math.PI / 2) * (m.value.outer + t.value.style.chart.ribbons.labels.offset + 24)},
968
+ ${Math.sin(a.theta - Math.PI / 2) * (m.value.outer + t.value.style.chart.ribbons.labels.offset + 24)}
969
+ ) rotate(${-P.value})
970
+ `,
971
+ fill: t.value.style.chart.ribbons.labels.useSerieColor ? a.groupColor : t.value.style.chart.ribbons.labels.color,
972
+ "text-anchor": Et(a.theta),
973
+ "font-size": t.value.style.chart.ribbons.labels.fontSize,
974
+ "font-weight": t.value.style.chart.ribbons.labels.bold ? "bold" : "normal",
975
+ dy: ".35em",
976
+ "pointer-events": "none"
977
+ }, Z(Ke(a.value)), 9, Za)
978
+ ], 64))), 128))
979
+ ])) : h("", !0),
980
+ t.value.style.chart.arcs.labels.show ? (r(), i("g", Ja, [
981
+ t.value.style.chart.arcs.labels.curved ? (r(!0), i(X, { key: 0 }, Q(x.value.groups, (a, l) => (r(), i("text", {
982
+ class: "vue-ui-chord-label-curved",
983
+ key: `curved-label-${l}`,
984
+ "font-size": t.value.style.chart.arcs.labels.fontSize,
985
+ "font-weight": t.value.style.chart.arcs.labels.bold ? "bold" : "normal",
986
+ fill: t.value.style.chart.arcs.labels.adaptColorToBackground ? d(va)($.value.colors[l]) : t.value.style.chart.arcs.labels.color
987
+ }, [
988
+ I("textPath", {
989
+ href: `#labelPath-${l}_${C.value}`,
990
+ startOffset: "50%",
991
+ "text-anchor": "middle"
992
+ }, Z($.value.labels[l]) + Z(t.value.style.chart.arcs.labels.showPercentage ? d(_e)({
993
+ p: " (",
994
+ v: isNaN(a.proportion) ? 0 : a.proportion * 100,
995
+ s: "%)",
996
+ r: t.value.style.chart.arcs.labels.roundingPercentage
997
+ }) : ""), 9, eo)
998
+ ], 8, Ka))), 128)) : !M.value && !k.value && !p.value ? (r(!0), i(X, { key: 1 }, Q(x.value.groups, (a, l) => (r(), i("text", {
999
+ class: "vue-ui-chord-label-straight",
1000
+ key: `label-${l}`,
1001
+ transform: `
1002
+ ${Nt((a.startAngle + a.endAngle) / 2)}
1003
+ rotate(${-P.value})
1004
+ `,
1005
+ dy: ".35em",
1006
+ "text-anchor": Dt(a) > Math.PI ? "end" : "start",
1007
+ "font-size": t.value.style.chart.arcs.labels.fontSize,
1008
+ "font-weight": t.value.style.chart.arcs.labels.bold ? "bold" : "normal",
1009
+ fill: t.value.style.chart.arcs.labels.color,
1010
+ innerHTML: d(da)({
1011
+ content: d(ha)(qt(a, l)),
1012
+ fontSize: t.value.style.chart.arcs.labels.fontSize,
1013
+ fill: t.value.style.chart.arcs.labels.color,
1014
+ x: 0,
1015
+ y: 0
1016
+ })
1017
+ }, null, 8, to))), 128)) : h("", !0)
1018
+ ])) : h("", !0)
1019
+ ], 8, Fa),
1020
+ g(e.$slots, "svg", { svg: { height: 600, width: 600 } }, void 0, !0)
1021
+ ], 42, La)),
1022
+ e.$slots.watermark ? (r(), i("div", ao, [
1023
+ g(e.$slots, "watermark", z(U({ isPrinting: d(ze) || d(Ue) })), void 0, !0)
1024
+ ])) : h("", !0),
1025
+ I("div", {
1026
+ id: `legend-bottom-${C.value}`
1027
+ }, null, 8, oo),
1028
+ Ee.value ? (r(), G(aa, {
1029
+ key: 5,
1030
+ to: t.value.style.chart.legend.position === "top" ? `#legend-top-${C.value}` : `#legend-bottom-${C.value}`
1031
+ }, [
1032
+ I("div", {
1033
+ ref_key: "chartLegend",
1034
+ ref: Oe
1035
+ }, [
1036
+ t.value.style.chart.legend.show ? (r(), G(Sa, {
1037
+ key: `legend_${me.value}`,
1038
+ legendSet: Me.value,
1039
+ config: Yt.value,
1040
+ onClickMarker: o[0] || (o[0] = ({ legend: a }) => nt(a.id))
1041
+ }, Ie({
1042
+ item: b(({ legend: a }) => [
1043
+ I("div", {
1044
+ style: R({
1045
+ opacity: p.value ? p.value === a.id ? 1 : 0.3 : 1
1046
+ }),
1047
+ onClick: (l) => a.select()
1048
+ }, Z(a.name), 13, lo)
1049
+ ]),
1050
+ _: 2
1051
+ }, [
1052
+ e.$slots.pattern ? {
1053
+ name: "legend-pattern",
1054
+ fn: b(({ legend: a, index: l }) => [
1055
+ fe(Ia, {
1056
+ shape: a.shape,
1057
+ radius: 30,
1058
+ stroke: "none",
1059
+ plot: { x: 30, y: 30 },
1060
+ fill: `url(#pattern_${C.value}_${l})`
1061
+ }, null, 8, ["shape", "fill"])
1062
+ ]),
1063
+ key: "0"
1064
+ } : void 0
1065
+ ]), 1032, ["legendSet", "config"])) : h("", !0),
1066
+ g(e.$slots, "legend", { legend: Me.value }, void 0, !0)
1067
+ ], 512)
1068
+ ], 8, ["to"])) : h("", !0),
1069
+ e.$slots.source ? (r(), i("div", {
1070
+ key: 6,
1071
+ ref_key: "source",
1072
+ ref: Le,
1073
+ dir: "auto"
1074
+ }, [
1075
+ g(e.$slots, "source", {}, void 0, !0)
1076
+ ], 512)) : h("", !0),
1077
+ P.value !== t.value.initialRotation ? (r(), i("div", no, [
1078
+ g(e.$slots, "reset-action", { reset: lt }, () => [
1079
+ I("button", {
1080
+ "data-cy-reset": "",
1081
+ tabindex: "0",
1082
+ role: "button",
1083
+ class: "vue-data-ui-refresh-button",
1084
+ style: R({
1085
+ background: t.value.style.chart.backgroundColor
1086
+ }),
1087
+ onClick: lt
1088
+ }, [
1089
+ fe(d(Se), {
1090
+ name: "refresh",
1091
+ stroke: t.value.style.chart.color
1092
+ }, null, 8, ["stroke"])
1093
+ ], 4)
1094
+ ], !0)
1095
+ ])) : h("", !0),
1096
+ E.value && t.value.userOptions.buttons.table ? (r(), G(oa(ne.value.component), dt({ key: 8 }, ne.value.props, {
1097
+ ref_key: "tableUnit",
1098
+ ref: te,
1099
+ onClose: st
1100
+ }), Ie({
1101
+ content: b(() => [
1102
+ (r(), G(d($t), {
1103
+ key: `table_${be.value}`,
1104
+ colNames: he.value.colNames,
1105
+ head: he.value.head,
1106
+ body: he.value.body,
1107
+ config: he.value.config,
1108
+ title: t.value.table.useDialog ? "" : ne.value.title,
1109
+ withCloseButton: !t.value.table.useDialog,
1110
+ onClose: st
1111
+ }, {
1112
+ th: b(({ th: a }) => [
1113
+ ht(Z(a.name), 1)
1114
+ ]),
1115
+ td: b(({ td: a }) => [
1116
+ I("div", so, Z(a.name ? a.name : Ke(a)), 1)
1117
+ ]),
1118
+ _: 1
1119
+ }, 8, ["colNames", "head", "body", "config", "title", "withCloseButton"]))
1120
+ ]),
1121
+ _: 2
1122
+ }, [
1123
+ t.value.table.useDialog ? {
1124
+ name: "title",
1125
+ fn: b(() => [
1126
+ ht(Z(ne.value.title), 1)
1127
+ ]),
1128
+ key: "0"
1129
+ } : void 0,
1130
+ t.value.table.useDialog ? {
1131
+ name: "actions",
1132
+ fn: b(() => [
1133
+ I("button", {
1134
+ tabindex: "0",
1135
+ class: "vue-ui-user-options-button",
1136
+ onClick: o[1] || (o[1] = (a) => Ae(t.value.userOptions.callbacks.csv))
1137
+ }, [
1138
+ fe(d(Se), {
1139
+ name: "excel",
1140
+ stroke: ne.value.props.color
1141
+ }, null, 8, ["stroke"])
1142
+ ])
1143
+ ]),
1144
+ key: "1"
1145
+ } : void 0
1146
+ ]), 1040)) : h("", !0),
1147
+ d(Ne) ? (r(), G($a, { key: 9 })) : h("", !0)
1148
+ ], 46, Ba));
1149
+ }
1150
+ }, Mo = /* @__PURE__ */ Ta(ro, [["__scopeId", "data-v-eb5ffe21"]]);
1151
+ export {
1152
+ Mo as default
1153
+ };