vue-data-ui 3.4.5 → 3.4.7

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 (137) hide show
  1. package/dist/{PackageVersion-C-wnwkC4.js → PackageVersion-QNVkHOgG.js} +1 -1
  2. package/dist/{Title-BWp-37K_.js → Title-l36lOBMx.js} +1 -1
  3. package/dist/Tooltip-oWCO1HKy.js +205 -0
  4. package/dist/{UserOptions-1OZ3jcm6.js → UserOptions-CnzumGJj.js} +113 -113
  5. package/dist/components/vue-ui-3d-bar.js +1 -1
  6. package/dist/components/vue-ui-accordion.js +1 -1
  7. package/dist/components/vue-ui-age-pyramid.js +1 -1
  8. package/dist/components/vue-ui-annotator.js +1 -1
  9. package/dist/components/vue-ui-bullet.js +1 -1
  10. package/dist/components/vue-ui-candlestick.js +1 -1
  11. package/dist/components/vue-ui-carousel-table.js +1 -1
  12. package/dist/components/vue-ui-chestnut.js +1 -1
  13. package/dist/components/vue-ui-chord.js +1 -1
  14. package/dist/components/vue-ui-circle-pack.js +1 -1
  15. package/dist/components/vue-ui-cursor.js +1 -1
  16. package/dist/components/vue-ui-dashboard.js +1 -1
  17. package/dist/components/vue-ui-digits.js +1 -1
  18. package/dist/components/vue-ui-donut-evolution.js +1 -1
  19. package/dist/components/vue-ui-donut.js +1 -1
  20. package/dist/components/vue-ui-dumbbell.js +1 -1
  21. package/dist/components/vue-ui-flow.js +1 -1
  22. package/dist/components/vue-ui-funnel.js +1 -1
  23. package/dist/components/vue-ui-galaxy.js +1 -1
  24. package/dist/components/vue-ui-gauge.js +1 -1
  25. package/dist/components/vue-ui-gizmo.js +1 -1
  26. package/dist/components/vue-ui-heatmap.js +1 -1
  27. package/dist/components/vue-ui-history-plot.js +1 -1
  28. package/dist/components/vue-ui-horizontal-bar.js +1 -1
  29. package/dist/components/vue-ui-kpi.js +1 -1
  30. package/dist/components/vue-ui-mini-loader.js +1 -1
  31. package/dist/components/vue-ui-molecule.js +1 -1
  32. package/dist/components/vue-ui-mood-radar.js +1 -1
  33. package/dist/components/vue-ui-nested-donuts.js +1 -1
  34. package/dist/components/vue-ui-onion.js +1 -1
  35. package/dist/components/vue-ui-parallel-coordinate-plot.js +1 -1
  36. package/dist/components/vue-ui-quadrant.js +1 -1
  37. package/dist/components/vue-ui-quick-chart.js +1 -1
  38. package/dist/components/vue-ui-radar.js +1 -1
  39. package/dist/components/vue-ui-rating.js +1 -1
  40. package/dist/components/vue-ui-relation-circle.js +1 -1
  41. package/dist/components/vue-ui-ridgeline.js +1 -1
  42. package/dist/components/vue-ui-rings.js +1 -1
  43. package/dist/components/vue-ui-scatter.js +1 -1
  44. package/dist/components/vue-ui-skeleton.js +1 -1
  45. package/dist/components/vue-ui-smiley.js +1 -1
  46. package/dist/components/vue-ui-spark-trend.js +1 -1
  47. package/dist/components/vue-ui-sparkbar.js +1 -1
  48. package/dist/components/vue-ui-sparkgauge.js +1 -1
  49. package/dist/components/vue-ui-sparkhistogram.js +1 -1
  50. package/dist/components/vue-ui-sparkline.js +1 -1
  51. package/dist/components/vue-ui-sparkstackbar.js +1 -1
  52. package/dist/components/vue-ui-stackbar.js +1 -1
  53. package/dist/components/vue-ui-strip-plot.js +1 -1
  54. package/dist/components/vue-ui-table-heatmap.js +1 -1
  55. package/dist/components/vue-ui-table-sparkline.js +1 -1
  56. package/dist/components/vue-ui-table.js +1 -1
  57. package/dist/components/vue-ui-thermometer.js +1 -1
  58. package/dist/components/vue-ui-timer.js +1 -1
  59. package/dist/components/vue-ui-tiremarks.js +1 -1
  60. package/dist/components/vue-ui-treemap.js +1 -1
  61. package/dist/components/vue-ui-vertical-bar.js +1 -1
  62. package/dist/components/vue-ui-waffle.js +1 -1
  63. package/dist/components/vue-ui-wheel.js +1 -1
  64. package/dist/components/vue-ui-word-cloud.js +1 -1
  65. package/dist/components/vue-ui-world.js +1 -1
  66. package/dist/components/vue-ui-xy-canvas.js +1 -1
  67. package/dist/components/vue-ui-xy.js +1 -1
  68. package/dist/style.css +1 -1
  69. package/dist/types/vue-data-ui.d.ts +1 -0
  70. package/dist/{useNestedProp-dJX_8vvZ.js → useNestedProp-BjZe1Y85.js} +2 -1
  71. package/dist/{vue-data-ui-BMm1cH_7.js → vue-data-ui-BFwmY6si.js} +63 -63
  72. package/dist/vue-data-ui.js +64 -64
  73. package/dist/{vue-ui-3d-bar-KbXMgsD4.js → vue-ui-3d-bar-D1GoJWeg.js} +3 -3
  74. package/dist/{vue-ui-accordion-UpZ765hd.js → vue-ui-accordion-CZ0thhxa.js} +1 -1
  75. package/dist/{vue-ui-age-pyramid-CAnvJqVu.js → vue-ui-age-pyramid-BDGFSsA5.js} +3 -3
  76. package/dist/{vue-ui-annotator--8upDtTs.js → vue-ui-annotator-BylDgUVb.js} +2 -2
  77. package/dist/{vue-ui-bullet-vEsqg-Wk.js → vue-ui-bullet-C3GtE3bF.js} +3 -3
  78. package/dist/{vue-ui-candlestick-C2q8lhDv.js → vue-ui-candlestick-BlzmB2vM.js} +3 -3
  79. package/dist/{vue-ui-carousel-table-7ZDbJPdA.js → vue-ui-carousel-table-TKa7KYZ0.js} +2 -2
  80. package/dist/{vue-ui-chestnut-jHiG8RhC.js → vue-ui-chestnut-DNxARRsx.js} +2 -2
  81. package/dist/{vue-ui-chord-Br7aGEQ3.js → vue-ui-chord-BM7tZig3.js} +3 -3
  82. package/dist/{vue-ui-circle-pack-CkDTsG3R.js → vue-ui-circle-pack-BZU75WUb.js} +3 -3
  83. package/dist/{vue-ui-cursor-BqWDtj2I.js → vue-ui-cursor-ik59bfC4.js} +1 -1
  84. package/dist/{vue-ui-dashboard-r8kE5hha.js → vue-ui-dashboard-pNXFzQu4.js} +64 -64
  85. package/dist/{vue-ui-digits-Cdn6EcYe.js → vue-ui-digits-ByNNcWXi.js} +1 -1
  86. package/dist/{vue-ui-donut-SyV7u3Fk.js → vue-ui-donut-CRvfqCUO.js} +3 -3
  87. package/dist/{vue-ui-donut-evolution-DiUVj1kD.js → vue-ui-donut-evolution-CCdIWlyZ.js} +3 -3
  88. package/dist/{vue-ui-dumbbell-Dy0L7H8E.js → vue-ui-dumbbell-CLmwZyrf.js} +3 -3
  89. package/dist/vue-ui-flow-BY8XQXKF.js +964 -0
  90. package/dist/{vue-ui-funnel-CI6hxhV_.js → vue-ui-funnel-BmxhWoVW.js} +3 -3
  91. package/dist/{vue-ui-galaxy-EzuozsBr.js → vue-ui-galaxy-BgtKffX5.js} +3 -3
  92. package/dist/{vue-ui-gauge-fB0yh37Y.js → vue-ui-gauge-DLpK4-Cd.js} +3 -3
  93. package/dist/{vue-ui-gizmo-Bdgj1nqN.js → vue-ui-gizmo-CCNboEnL.js} +2 -2
  94. package/dist/{vue-ui-heatmap-BmVWhxg-.js → vue-ui-heatmap-BSDmuvq8.js} +4 -4
  95. package/dist/{vue-ui-history-plot-C2glM-Ch.js → vue-ui-history-plot-s8wYm7fn.js} +3 -3
  96. package/dist/{vue-ui-kpi-CVpJH51G.js → vue-ui-kpi-BGGff8LM.js} +2 -2
  97. package/dist/{vue-ui-mini-loader-b4D0tPsD.js → vue-ui-mini-loader-CSF-7TJL.js} +1 -1
  98. package/dist/{vue-ui-molecule-D4SUfwjo.js → vue-ui-molecule-BYWE2ONy.js} +2 -2
  99. package/dist/{vue-ui-mood-radar-CJt19tCD.js → vue-ui-mood-radar-BOvaA1Jq.js} +3 -3
  100. package/dist/{vue-ui-nested-donuts-vpUAKVVs.js → vue-ui-nested-donuts-BUGkuN56.js} +3 -3
  101. package/dist/{vue-ui-onion-DhgSgY5m.js → vue-ui-onion-CPshjlgf.js} +3 -3
  102. package/dist/{vue-ui-parallel-coordinate-plot-B6SLr7sn.js → vue-ui-parallel-coordinate-plot-orQotxDr.js} +3 -3
  103. package/dist/{vue-ui-quadrant-Ctik4Ah_.js → vue-ui-quadrant-CM3iH31f.js} +3 -3
  104. package/dist/{vue-ui-quick-chart-BM5eEuC7.js → vue-ui-quick-chart-BhO2YQn0.js} +2 -2
  105. package/dist/{vue-ui-radar-D8SgJ4tK.js → vue-ui-radar-CNZVFG-v.js} +3 -3
  106. package/dist/{vue-ui-rating-CvJlfRvs.js → vue-ui-rating-CiMoFM_c.js} +1 -1
  107. package/dist/{vue-ui-relation-circle-s1sWs_WI.js → vue-ui-relation-circle-BX48Cgx3.js} +3 -3
  108. package/dist/{vue-ui-ridgeline-DjAxHRqR.js → vue-ui-ridgeline-MQAF9nvq.js} +3 -3
  109. package/dist/{vue-ui-rings-vO1AGupU.js → vue-ui-rings-BPhLSCUX.js} +3 -3
  110. package/dist/{vue-ui-scatter-DN_7iGgB.js → vue-ui-scatter-C3dD6T6q.js} +3 -3
  111. package/dist/{vue-ui-skeleton-DGSWEtd8.js → vue-ui-skeleton-Be8xm0gy.js} +2 -2
  112. package/dist/{vue-ui-smiley-D3k4b6h1.js → vue-ui-smiley-sGFRbn31.js} +1 -1
  113. package/dist/{vue-ui-spark-trend-D9ZTHsa9.js → vue-ui-spark-trend-suNsujGP.js} +2 -2
  114. package/dist/{vue-ui-sparkbar-DZpkkEtB.js → vue-ui-sparkbar-BjD2kUth.js} +2 -2
  115. package/dist/{vue-ui-sparkgauge-DGtUfL_p.js → vue-ui-sparkgauge-C816ocz6.js} +2 -2
  116. package/dist/{vue-ui-sparkhistogram-BFTP4gTI.js → vue-ui-sparkhistogram-CAgfueUq.js} +2 -2
  117. package/dist/{vue-ui-sparkline-CU8Va2AD.js → vue-ui-sparkline-BmVwG9vw.js} +2 -2
  118. package/dist/{vue-ui-sparkstackbar-UVkUOUYB.js → vue-ui-sparkstackbar-DoFTW_u_.js} +2 -2
  119. package/dist/{vue-ui-stackbar-ksABSPMl.js → vue-ui-stackbar-C1qHHSuI.js} +3 -3
  120. package/dist/{vue-ui-strip-plot-CtnEtJKi.js → vue-ui-strip-plot-Ccz9BiSl.js} +3 -3
  121. package/dist/{vue-ui-table-D_r5Yi-t.js → vue-ui-table-IKsrsEUh.js} +3 -3
  122. package/dist/{vue-ui-table-heatmap-zbRs5HKh.js → vue-ui-table-heatmap-B4rjR34n.js} +2 -2
  123. package/dist/{vue-ui-table-sparkline-g3zovGbg.js → vue-ui-table-sparkline-B71QVMkq.js} +2 -2
  124. package/dist/{vue-ui-thermometer-ChGRvASK.js → vue-ui-thermometer-fY5WxAbX.js} +3 -3
  125. package/dist/{vue-ui-timer-ClBUDPDN.js → vue-ui-timer-BBdNJ0fK.js} +3 -3
  126. package/dist/{vue-ui-tiremarks-Drrj3Zrx.js → vue-ui-tiremarks-Co0t61HH.js} +3 -3
  127. package/dist/{vue-ui-treemap-B9iT80T5.js → vue-ui-treemap-ujTn_36A.js} +3 -3
  128. package/dist/{vue-ui-vertical-bar-DtNL4lAc.js → vue-ui-vertical-bar-BNp-Vl0q.js} +4 -4
  129. package/dist/{vue-ui-waffle-DtotUBJA.js → vue-ui-waffle-CRPYb9mZ.js} +3 -3
  130. package/dist/{vue-ui-wheel-D6F9i5SF.js → vue-ui-wheel-BvycoQ3Z.js} +3 -3
  131. package/dist/{vue-ui-word-cloud-B0T-B3Oa.js → vue-ui-word-cloud-Cjs46-dC.js} +3 -3
  132. package/dist/{vue-ui-world-Bwvp67h5.js → vue-ui-world-BTLAdJeD.js} +2 -2
  133. package/dist/{vue-ui-xy-BDCmrr2a.js → vue-ui-xy-CBRHUbAn.js} +4 -4
  134. package/dist/{vue-ui-xy-canvas-Dm-LZ-LP.js → vue-ui-xy-canvas-BGl_2pHw.js} +4 -4
  135. package/package.json +1 -1
  136. package/dist/Tooltip-68Yi_FFl.js +0 -200
  137. package/dist/vue-ui-flow-_6RQ-gmk.js +0 -931
@@ -0,0 +1,964 @@
1
+ import { defineAsyncComponent as H, ref as u, computed as d, onMounted as vo, toRefs as ho, watch as Se, createElementBlock as g, openBlock as c, unref as r, normalizeStyle as W, normalizeClass as _t, createBlock as q, createCommentVNode as T, createElementVNode as G, createVNode as _e, createSlots as Ot, withCtx as b, renderSlot as k, normalizeProps as Z, guardReactiveProps as ee, Fragment as de, renderList as he, withKeys as qe, withModifiers as Ke, toDisplayString as fe, Teleport as fo, resolveDynamicComponent as po, mergeProps as go, createTextVNode as Nt, nextTick as Ft } from "vue";
2
+ import { c as Oe, t as mo, o as Et, f as yo, b as bo, p as D, e as Co, x, h as ko, d as te, X as wo, a as Ne, J as It, I as $o, P as Ao, Q as To, G as xo } from "./lib-C_mNZmhD.js";
3
+ import { t as So, u as _o } from "./useResponsive-DfdjqQps.js";
4
+ import { u as Oo, a as Pt } from "./useNestedProp-BjZe1Y85.js";
5
+ import { u as No } from "./usePrinter-DTzqpYKF.js";
6
+ import { u as Fo, B as Eo } from "./BaseScanner-BgWxam9d.js";
7
+ import { u as Io } from "./useSvgExport-DrjCWun4.js";
8
+ import { u as Po } from "./useUserOptionState-BIvW1Kz7.js";
9
+ import { u as Mo } from "./useChartAccessibility-9icAAmYg.js";
10
+ import { t as Bo } from "./themes-AUNCOb2G.js";
11
+ import Do from "./Legend-G6GMcdAc.js";
12
+ import Lo from "./Title-l36lOBMx.js";
13
+ import zo from "./img-BecE5qXd.js";
14
+ import { _ as Ro } from "./_plugin-vue_export-helper-CHgC5LLL.js";
15
+ const Ho = ["id"], Wo = {
16
+ key: 1,
17
+ ref: "noTitle",
18
+ class: "vue-data-ui-no-title-space",
19
+ style: "height:36px; width: 100%;background:transparent"
20
+ }, Go = ["id"], Uo = ["xmlns", "viewBox"], Yo = ["width", "height"], jo = ["id"], Vo = ["stop-color"], Xo = ["stop-color"], qo = ["d", "fill", "stroke", "stroke-width"], Ko = ["x", "y", "height", "width", "fill", "stroke", "stroke-width", "rx", "aria-label", "onMouseenter", "onMouseleave", "onClick", "onKeydown", "onFocus", "onBlur"], Jo = { key: 1 }, Qo = ["x", "y", "font-size", "fill"], Zo = ["x", "y", "font-size", "fill"], el = {
21
+ key: 4,
22
+ class: "vue-data-ui-watermark"
23
+ }, tl = ["id"], ol = ["onClick"], ll = ["innerHTML"], al = {
24
+ __name: "vue-ui-flow",
25
+ props: {
26
+ config: {
27
+ type: Object,
28
+ default() {
29
+ return {};
30
+ }
31
+ },
32
+ dataset: {
33
+ type: Array,
34
+ default() {
35
+ return [];
36
+ }
37
+ }
38
+ },
39
+ setup(Mt, { expose: Bt }) {
40
+ const Dt = H(() => import("./Tooltip-oWCO1HKy.js")), Lt = H(() => import("./BaseIcon-BmMbm4d0.js")), zt = H(() => import("./vue-ui-accordion-CZ0thhxa.js")), Rt = H(() => import("./DataTable-BT7VF2ua.js")), Ht = H(() => import("./PenAndPaper-DSvu9dwa.js")), Wt = H(() => import("./UserOptions-CnzumGJj.js")), Gt = H(() => import("./PackageVersion-QNVkHOgG.js")), Ut = H(() => import("./BaseDraggableDialog-ymf2sfB8.js")), { vue_ui_flow: Yt } = Oo(), E = Mt, U = u(Oe()), I = u(null), Je = u(0), Qe = u(0), Fe = u(!1), Ee = u(""), Ze = u(null), et = u(null), tt = u(null), oe = u(null), pe = u(null), ot = u(!1), le = u(null), Ie = u(null), Pe = u(null), lt = d(() => !!E.dataset && E.dataset.length);
41
+ vo(() => {
42
+ ot.value = !0, nt();
43
+ });
44
+ const Y = u(!1);
45
+ function at(o) {
46
+ Y.value = o, Je.value += 1;
47
+ }
48
+ const e = u(ze()), { loading: Me, FINAL_DATASET: ge, manualLoading: Be } = Fo({
49
+ ...ho(E),
50
+ FINAL_CONFIG: e,
51
+ prepareConfig: ze,
52
+ skeletonDataset: [
53
+ ["A", "B", 2, "#CACACA"],
54
+ ["B", "C", 1, "#CACACA"],
55
+ ["C", "D", 0.5, "#CACACA"],
56
+ ["E", "F", 1, "#AAAAAA"],
57
+ ["F", "G", 0.5, "#AAAAAA"],
58
+ ["G", "H", 0.25, "#AAAAAA"]
59
+ ],
60
+ skeletonConfig: mo({
61
+ defaultConfig: e.value,
62
+ userConfig: {
63
+ userOptions: { show: !1 },
64
+ nodeCategories: {
65
+ B: "A",
66
+ C: "B"
67
+ },
68
+ nodeCategoryColors: {
69
+ A: "#CACACA",
70
+ B: "#AAAAAA"
71
+ },
72
+ table: { show: !1 },
73
+ style: {
74
+ chart: {
75
+ backgroundColor: "#99999930",
76
+ legend: {
77
+ backgroundColor: "transparent"
78
+ },
79
+ nodes: {
80
+ labels: {
81
+ show: !1
82
+ },
83
+ stroke: "#666666"
84
+ },
85
+ links: {
86
+ stroke: "#666666"
87
+ }
88
+ }
89
+ }
90
+ }
91
+ })
92
+ }), jt = d(() => !!e.value.debug);
93
+ function nt() {
94
+ if (Et(E.dataset) && (yo({
95
+ componentName: "VueUiFlow",
96
+ type: "dataset",
97
+ debug: jt.value
98
+ }), Be.value = !0), Et(E.dataset) || (Be.value = e.value.loading), e.value.responsive) {
99
+ const o = So(() => {
100
+ const { width: l, height: t } = _o({
101
+ chart: I.value,
102
+ title: e.value.style.chart.title.text ? et.value : null,
103
+ legend: e.value.style.chart.legend.show ? Ze.value : null,
104
+ source: tt.value
105
+ });
106
+ requestAnimationFrame(() => {
107
+ ut.value = l, it.value = t;
108
+ });
109
+ });
110
+ oe.value && (pe.value && oe.value.unobserve(pe.value), oe.value.disconnect()), oe.value = new ResizeObserver(o), pe.value = I.value.parentNode, oe.value.observe(pe.value);
111
+ }
112
+ }
113
+ const { userOptionsVisible: De, setUserOptionsVisibility: st, keepUserOptionState: rt } = Po({ config: e.value }), { svgRef: Le } = Mo({
114
+ config: e.value.style.chart.title
115
+ });
116
+ function ze() {
117
+ const o = Pt({
118
+ userConfig: E.config,
119
+ defaultConfig: Yt
120
+ });
121
+ let l = o;
122
+ return o.theme ? l = {
123
+ ...Pt({
124
+ userConfig: Bo.vue_ui_flow[o.theme] || E.config,
125
+ defaultConfig: o
126
+ }),
127
+ customPalette: bo[o.theme] || D
128
+ } : l = o, l.nodeCategories = E.config.nodeCategories || {}, l.nodeCategoryColors = E.config.nodeCategoryColors || {}, l;
129
+ }
130
+ const ut = u(e.value.style.chart.width), it = u(e.value.style.chart.height);
131
+ Se(
132
+ () => E.config,
133
+ (o) => {
134
+ Me.value || (e.value = ze()), De.value = !e.value.userOptions.showOnChartHover, nt(), Qe.value += 1, S.value.showTable = e.value.table.show;
135
+ },
136
+ { deep: !0 }
137
+ ), Se(() => E.dataset, (o) => {
138
+ Array.isArray(o) && o.length > 0 && (Be.value = !1);
139
+ }, { deep: !0 });
140
+ const { isPrinting: ct, isImaging: vt, generatePdf: dt, generateImage: ht } = No({
141
+ elementId: `flow_${U.value}`,
142
+ fileName: e.value.style.chart.title.text || "vue-ui-flow",
143
+ options: e.value.userOptions.print
144
+ }), Vt = d(() => e.value.userOptions.show && !e.value.style.chart.title.text), me = d(() => Co(e.value.customPalette)), ye = d(() => e.value.style.chart.nodes.width), S = u({
145
+ showTable: e.value.table.show,
146
+ showTooltip: e.value.style.chart.tooltip.show
147
+ });
148
+ Se(e, () => {
149
+ S.value = {
150
+ showTable: e.value.table.show,
151
+ showTooltip: e.value.style.chart.tooltip.show
152
+ };
153
+ }, { immediate: !0 });
154
+ const ft = d(() => !ge.value || !ge.value.length ? [] : ge.value.map((o, l) => [
155
+ o[0],
156
+ o[1],
157
+ x(o[2]),
158
+ o[3] ? ko(o[3]) : me.value[l] || me.value[l % me.value.length] || D[l] || D[l % D.length]
159
+ ]));
160
+ function Xt(o) {
161
+ const l = {}, t = {};
162
+ function a(n, i) {
163
+ l[n] || (l[n] = {
164
+ level: null,
165
+ inflow: 0,
166
+ outflow: 0,
167
+ children: [],
168
+ color: null,
169
+ uid: Oe()
170
+ }), l[n].level === null && (l[n].level = i), t[i] || (t[i] = []), t[i].includes(n) || t[i].push(n);
171
+ }
172
+ o.forEach(([n, i, h]) => {
173
+ const f = l[n]?.level ?? 0, O = f + 1;
174
+ a(n, f), a(i, O), l[n].children.push({ target: i, value: h }), l[n].outflow += h, l[i].inflow += h;
175
+ });
176
+ const s = new Set(o.map(([n]) => n)), $ = new Set(o.map(([, n]) => n)), J = Array.from(s).filter((n) => !$.has(n)), ue = {};
177
+ J.forEach((n, i) => {
178
+ ue[n] = me.value[i] || D[i % D.length];
179
+ });
180
+ const ie = {};
181
+ o.forEach(([n, i, h, f]) => {
182
+ f && (ie[n] = f, ie[i] = f);
183
+ }), Object.keys(l).forEach((n, i) => {
184
+ const h = e.value.nodeCategories?.[n], f = h ? e.value.nodeCategoryColors?.[h] : null;
185
+ l[n].color = ie[n] || f || (J.includes(n) ? ue[n] : null) || D[i % D.length];
186
+ }), Object.keys(l).forEach((n) => {
187
+ l[n].value = Math.max(l[n].inflow, l[n].outflow);
188
+ });
189
+ const Ae = ae.value, Ye = mt.value.width, Q = mt.value.height, B = Object.keys(t).map(Number).sort((n, i) => n - i), Te = B.length || 1, je = Te > 1 ? Ye / (Te - 1) : 0, A = Number(ye.value), M = Number(
190
+ e.value.style.chart.nodes.gapPx ?? e.value.style.chart.nodes.gap ?? 8
191
+ ), ce = Number(e.value.style.chart.nodes.minHeight || 0);
192
+ function v(n) {
193
+ const i = t[n], h = i.length;
194
+ if (!h) return 1 / 0;
195
+ const f = Math.max(0, (h - 1) * M), O = Math.max(0, Q - f), L = Math.min(ce, h ? O / h : 0);
196
+ let C = 0, N = i.map((p) => l[p].value || 0), y = N.reduce((p, F) => p + F, 0);
197
+ for (let p = 0; p < 12; p += 1) {
198
+ const F = y > 0 ? (O - C) / y : 0, z = [];
199
+ for (let P = 0; P < N.length; P += 1) {
200
+ const R = N[P];
201
+ R < 0 || R * F < L && z.push(P);
202
+ }
203
+ if (!z.length) return Math.max(0, F);
204
+ for (const P of z)
205
+ C += L, y -= N[P], N[P] = -1;
206
+ if (y <= 0) return 0;
207
+ }
208
+ return y > 0 ? Math.max(0, (O - C) / y) : 0;
209
+ }
210
+ const m = B.map(v), V = m.length ? Math.min(...m) : 0, X = {};
211
+ B.forEach((n) => {
212
+ const i = t[n], h = i.length, f = Math.max(0, (h - 1) * M), O = Math.max(0, Q - f), L = Math.min(ce, h ? O / h : 0), C = i.map(
213
+ (p) => Math.max(L, (l[p].value || 0) * V)
214
+ ), N = C.reduce((p, F) => p + F, 0) + f;
215
+ let y = Math.max(0, (Q - N) / 2);
216
+ i.forEach((p, F) => {
217
+ const z = C[F], P = Ae.left + n * je, R = y;
218
+ X[p] = {
219
+ x: P,
220
+ y: R,
221
+ absoluteY: R,
222
+ height: z,
223
+ i: F,
224
+ color: l[p].color,
225
+ value: l[p].value,
226
+ id: Oe()
227
+ }, y += z, F < h - 1 && (y += M);
228
+ });
229
+ });
230
+ const Tt = [], ve = Ae.top, Ve = {}, Xe = {};
231
+ Object.keys(l).forEach((n) => {
232
+ Ve[n] = X[n]?.y ?? 0, Xe[n] = 0;
233
+ });
234
+ const so = 1e-6, ro = 0.25;
235
+ return B.forEach((n) => {
236
+ t[n].forEach((h) => {
237
+ const f = l[h], O = X[h];
238
+ if (!f.children || !f.children.length) return;
239
+ let L = O.y;
240
+ f.children.forEach(({ target: C, value: N }) => {
241
+ const y = X[C], p = l[C], F = f.outflow > 0 ? N / f.outflow : 0, z = p.inflow > 0 ? N / p.inflow : 0, P = x(L + ve), R = x(L + F * O.height + ve), xt = Ve[C];
242
+ let xe = xt + z * y.height;
243
+ Xe[C] += N;
244
+ const uo = p.inflow > 0 && Xe[C] >= p.inflow - so, St = y.y + y.height;
245
+ (uo || xe > St - ro) && (xe = St);
246
+ const io = x(xt + ve), co = x(xe + ve);
247
+ Tt.push({
248
+ id: Oe(),
249
+ source: h,
250
+ target: C,
251
+ path: `M ${x(O.x + A)} ${P} L ${x(O.x + A)} ${R} L ${x(y.x)} ${co} L ${x(y.x)} ${io} Z`,
252
+ value: N,
253
+ sourceColor: f.color,
254
+ targetColor: l[C].color
255
+ }), L = R - ve, Ve[C] = xe;
256
+ });
257
+ });
258
+ }), { nodeCoordinates: X, links: Tt };
259
+ }
260
+ const _ = d(() => {
261
+ const o = Xt(ge.value);
262
+ return {
263
+ nodes: Object.keys(o.nodeCoordinates).map((l, t) => ({
264
+ ...o.nodeCoordinates[l],
265
+ name: l
266
+ })),
267
+ links: o.links
268
+ };
269
+ }), pt = d(() => ut.value), gt = d(() => it.value), ae = d(() => e.value.style.chart.padding), mt = d(() => ({
270
+ width: Math.max(0, pt.value - 40 - ae.value.right - ae.value.left),
271
+ height: Math.max(0, gt.value - ae.value.top - ae.value.bottom)
272
+ })), ne = d(() => ({
273
+ width: pt.value,
274
+ height: gt.value
275
+ }));
276
+ function qt(o) {
277
+ const l = {}, t = {}, a = /* @__PURE__ */ new Set();
278
+ return ft.value.forEach(([s, $, J]) => {
279
+ l[s] || (l[s] = []), t[$] || (t[$] = []), l[s].push($), t[$].push(s);
280
+ }), l[o] && l[o].forEach((s) => a.add(s)), t[o] && t[o].forEach((s) => a.add(s)), Array.from(a).concat(o);
281
+ }
282
+ const w = u(null), K = u(null), se = u(null), be = u(!1), Ce = u(null);
283
+ function yt(o, l) {
284
+ j.value = [], w.value = qt(o.name), K.value = o.name, Ce.value = o.id;
285
+ const t = o.name, a = ft.value;
286
+ let s = 0, $ = 0, J = [], ue = [];
287
+ const ie = new Set(a.map(([v]) => v)), Ae = new Set(a.map(([, v]) => v)), Ye = Array.from(ie).filter((v) => !Ae.has(v)), Q = a.filter(([v]) => Ye.includes(v)).reduce((v, [m, V, X]) => v + X, 0), B = {};
288
+ _.value.nodes.forEach((v) => {
289
+ B[v.name] = v.color;
290
+ }), a.forEach(([v, m, V]) => {
291
+ m === t && (s += V, J.push({ source: v, value: V, color: B[v] })), v === t && ($ += V, ue.push({ target: m, value: V, color: B[m] }));
292
+ });
293
+ const Te = Math.max(s, $), je = Q > 0 ? Te / Q * 100 : 0, A = {
294
+ name: t,
295
+ inflow: s,
296
+ outflow: $,
297
+ from: J,
298
+ to: ue,
299
+ percentOfTotal: je,
300
+ color: B[t] || "#000000"
301
+ };
302
+ e.value.events.datapointEnter && e.value.events.datapointEnter({ datapoint: A, seriesIndex: l }), se.value = { datapoint: A }, Fe.value = !0;
303
+ let M = "";
304
+ const ce = e.value.style.chart.tooltip.customFormat;
305
+ if (be.value = !1, xo(ce))
306
+ try {
307
+ const v = ce({
308
+ datapoint: A,
309
+ series: _.value,
310
+ config: e.value
311
+ });
312
+ typeof v == "string" && (Ee.value = v, be.value = !0);
313
+ } catch {
314
+ console.warn("Custom format cannot be applied.");
315
+ }
316
+ if (!be.value) {
317
+ const v = e.value.style.chart.tooltip.showPercentage ? `<div>${te({
318
+ p: e.value.style.chart.tooltip.translations.percentOfTotal,
319
+ v: A.percentOfTotal,
320
+ s: "%",
321
+ r: e.value.style.chart.tooltip.roundingPercentage
322
+ })}</div>` : "";
323
+ M += `<div style="width:100%;text-align:center;border-bottom:1px solid ${e.value.style.chart.tooltip.borderColor};padding-bottom:6px;margin-bottom:3px;"><span style="margin-right:4px; color:${A.color}">⏹</span>${A.name}${v}</div>`, A.from.length && (M += `<div>${e.value.style.chart.tooltip.translations.from}</div>`, A.from.forEach((m) => {
324
+ M += `<div><span style="color:${m.color}">⏹←</span> ${m.source}: ${Ne(
325
+ e.value.style.chart.nodes.labels.formatter,
326
+ m.value,
327
+ te({
328
+ p: e.value.style.chart.nodes.labels.prefix,
329
+ v: m.value,
330
+ s: e.value.style.chart.nodes.labels.suffix,
331
+ r: e.value.style.chart.nodes.labels.rounding
332
+ })
333
+ )}</div>`;
334
+ })), A.to.length && (M += `<div style="margin-top:6px;">${e.value.style.chart.tooltip.translations.to}</div>`, A.to.forEach((m) => {
335
+ M += `<div><span style="color:${m.color}">⏹→</span> ${m.target}: ${Ne(
336
+ e.value.style.chart.nodes.labels.formatter,
337
+ m.value,
338
+ te({
339
+ p: e.value.style.chart.nodes.labels.prefix,
340
+ v: m.value,
341
+ s: e.value.style.chart.nodes.labels.suffix,
342
+ r: e.value.style.chart.nodes.labels.rounding
343
+ })
344
+ )}</div>`;
345
+ })), Ee.value = M;
346
+ }
347
+ }
348
+ function ke(o) {
349
+ Ce.value = null;
350
+ const l = se.value;
351
+ e.value.events.datapointLeave && e.value.events.datapointLeave({ datapoint: l, seriesIndex: o }), w.value = null, K.value = null, Fe.value = !1;
352
+ }
353
+ function Re(o) {
354
+ const l = se.value;
355
+ e.value.events.datapointClick && e.value.events.datapointClick({ datapoint: l, seriesIndex: o });
356
+ }
357
+ const bt = d(() => _.value.links.map(
358
+ ({ source: o, target: l, sourceColor: t, targetColor: a, value: s }) => ({
359
+ source: o,
360
+ target: l,
361
+ sourceColor: t,
362
+ targetColor: a,
363
+ value: s
364
+ })
365
+ ));
366
+ function He(o = null) {
367
+ Ft(() => {
368
+ const l = bt.value.map((s, $) => [[s.source], [s.target], [s.value]]), t = [
369
+ [e.value.style.chart.title.text],
370
+ [e.value.style.chart.title.subtitle.text],
371
+ [
372
+ [e.value.table.columnNames.source],
373
+ [e.value.table.columnNames.target],
374
+ [e.value.table.columnNames.value]
375
+ ]
376
+ ].concat(l), a = Ao(t);
377
+ o ? o(a) : To({
378
+ csvContent: a,
379
+ title: e.value.style.chart.title.text || "vue-ui-flow"
380
+ });
381
+ });
382
+ }
383
+ const we = d(() => {
384
+ const o = [
385
+ e.value.table.columnNames.source,
386
+ e.value.table.columnNames.target,
387
+ e.value.table.columnNames.value
388
+ ], l = bt.value.map((s, $) => [
389
+ {
390
+ color: s.sourceColor,
391
+ name: s.source,
392
+ shape: "square"
393
+ },
394
+ {
395
+ color: s.targetColor,
396
+ name: s.target,
397
+ shape: "square"
398
+ },
399
+ te({
400
+ p: e.value.style.chart.nodes.labels.prefix,
401
+ v: s.value,
402
+ s: e.value.style.chart.nodes.labels.suffix,
403
+ r: e.value.style.chart.nodes.labels.rounding
404
+ })
405
+ ]), t = {
406
+ th: {
407
+ backgroundColor: e.value.table.th.backgroundColor,
408
+ color: e.value.table.th.color,
409
+ outline: e.value.table.th.outline
410
+ },
411
+ td: {
412
+ backgroundColor: e.value.table.td.backgroundColor,
413
+ color: e.value.table.td.color,
414
+ outline: e.value.table.td.outline
415
+ },
416
+ breakpoint: e.value.table.responsiveBreakpoint
417
+ };
418
+ return {
419
+ colNames: [
420
+ e.value.table.columnNames.source,
421
+ e.value.table.columnNames.target,
422
+ e.value.table.columnNames.value
423
+ ],
424
+ head: o,
425
+ body: l,
426
+ config: t
427
+ };
428
+ });
429
+ function Kt() {
430
+ return _.value;
431
+ }
432
+ function Ct() {
433
+ S.value.showTable = !S.value.showTable;
434
+ }
435
+ const $e = u(!1);
436
+ function We() {
437
+ $e.value = !$e.value;
438
+ }
439
+ function kt() {
440
+ S.value.showTooltip = !S.value.showTooltip;
441
+ }
442
+ const wt = d(() => {
443
+ const o = new Set(
444
+ _.value.nodes.map(
445
+ (l) => e.value.nodeCategories[l.name] || "__uncategorized__"
446
+ )
447
+ );
448
+ return Array.from(o).map((l) => ({
449
+ name: l,
450
+ color: e.value.nodeCategoryColors[l] || D[0],
451
+ shape: "square",
452
+ count: _.value.nodes.filter(
453
+ (t) => (e.value.nodeCategories[t.name] || "__uncategorized__") === l
454
+ ).length
455
+ })).map((l, t) => ({
456
+ ...l,
457
+ segregate: () => Ue({ legend: l, i: t }),
458
+ opacity: j.value.length ? j.value.includes(t) ? 1 : 0.5 : 1,
459
+ display: `${l.name} (${l.count})`
460
+ }));
461
+ }), Ge = d(
462
+ () => wt.value.filter((o) => o.name !== "__uncategorized__")
463
+ ), j = u([]);
464
+ function Ue({ legend: o, i: l }) {
465
+ const t = o.name;
466
+ if (w.value?.every(
467
+ (a) => e.value.nodeCategories[a] === t
468
+ )) {
469
+ w.value = null, K.value = null, j.value = [];
470
+ return;
471
+ }
472
+ j.value = [l], w.value = _.value.nodes.filter((a) => e.value.nodeCategories[a.name] === t).map((a) => a.name), K.value = null;
473
+ }
474
+ const Jt = d(() => ({
475
+ cy: "flow-legend",
476
+ backgroundColor: e.value.style.chart.legend.backgroundColor,
477
+ color: e.value.style.chart.legend.color,
478
+ fontSize: e.value.style.chart.legend.fontSize,
479
+ paddingBottom: e.value.style.chart.legend.paddingBottom,
480
+ fontWeight: e.value.style.chart.legend.bold ? "bold" : "normal"
481
+ }));
482
+ async function Qt({ scale: o = 2 } = {}) {
483
+ if (!I.value) return;
484
+ const { width: l, height: t } = I.value.getBoundingClientRect(), a = l / t, { imageUri: s, base64: $ } = await zo({ domElement: I.value, base64: !0, img: !0, scale: o });
485
+ return {
486
+ imageUri: s,
487
+ base64: $,
488
+ title: e.value.style.chart.title.text,
489
+ width: l,
490
+ height: t,
491
+ aspectRatio: a
492
+ };
493
+ }
494
+ const re = d(() => {
495
+ const o = e.value.table.useDialog && !e.value.table.show, l = S.value.showTable;
496
+ return {
497
+ component: o ? Ut : zt,
498
+ title: `${e.value.style.chart.title.text}${e.value.style.chart.title.subtitle.text ? `: ${e.value.style.chart.title.subtitle.text}` : ""}`,
499
+ props: o ? {
500
+ backgroundColor: e.value.table.th.backgroundColor,
501
+ color: e.value.table.th.color,
502
+ headerColor: e.value.table.th.color,
503
+ headerBg: e.value.table.th.backgroundColor,
504
+ isFullscreen: Y.value,
505
+ fullscreenParent: I.value,
506
+ forcedWidth: Math.min(800, window.innerWidth * 0.8)
507
+ } : {
508
+ hideDetails: !0,
509
+ config: {
510
+ open: l,
511
+ maxHeight: 1e4,
512
+ body: {
513
+ backgroundColor: e.value.style.chart.backgroundColor,
514
+ color: e.value.style.chart.color
515
+ },
516
+ head: {
517
+ backgroundColor: e.value.style.chart.backgroundColor,
518
+ color: e.value.style.chart.color
519
+ }
520
+ }
521
+ }
522
+ };
523
+ });
524
+ Se(() => S.value.showTable, (o) => {
525
+ e.value.table.show || (o && e.value.table.useDialog && le.value ? le.value.open() : "close" in le.value && le.value.close());
526
+ });
527
+ function $t() {
528
+ S.value.showTable = !1, Ie.value && Ie.value.setTableIconState(!1);
529
+ }
530
+ const Zt = d(() => Ge.value.map((o) => ({
531
+ ...o,
532
+ name: o.display
533
+ }))), eo = d(() => e.value.style.chart.backgroundColor), to = d(() => e.value.style.chart.legend), oo = d(() => e.value.style.chart.title), { exportSvg: lo, getSvg: ao } = Io({
534
+ svg: Le,
535
+ title: oo,
536
+ legend: to,
537
+ legendItems: Zt,
538
+ backgroundColor: eo
539
+ });
540
+ async function At({ isCb: o }) {
541
+ if (o) {
542
+ const { blob: l, url: t, text: a, dataUrl: s } = await ao();
543
+ e.value.userOptions.callbacks.svg({ blob: l, url: t, text: a, dataUrl: s });
544
+ } else
545
+ lo();
546
+ }
547
+ async function no(o, l) {
548
+ if (yt(o, l), S.value.showTooltip && (await Ft(), I.value && Pe.value)) {
549
+ const { left: t, top: a } = I.value.getBoundingClientRect();
550
+ Pe.value.placeTooltip({ x: (t ?? 0) + 12, y: (a ?? 0) + 12 });
551
+ }
552
+ }
553
+ return Bt({
554
+ getData: Kt,
555
+ getImage: Qt,
556
+ generateCsv: He,
557
+ generateImage: ht,
558
+ generateSvg: At,
559
+ generatePdf: dt,
560
+ toggleTable: Ct,
561
+ toggleAnnotator: We,
562
+ toggleTooltip: kt,
563
+ drillCategory: Ue,
564
+ unselectNode: ke,
565
+ toggleFullscreen: at
566
+ }), (o, l) => (c(), g("div", {
567
+ ref_key: "flowChart",
568
+ ref: I,
569
+ class: _t(`vue-data-ui-component vue-ui-flow ${Y.value ? "vue-data-ui-wrapper-fullscreen" : ""}`),
570
+ style: W(`font-family:${e.value.style.fontFamily};width:100%; text-align:center;background:${e.value.style.chart.backgroundColor}`),
571
+ id: `flow_${U.value}`,
572
+ onMouseenter: l[2] || (l[2] = () => r(st)(!0)),
573
+ onMouseleave: l[3] || (l[3] = () => r(st)(!1))
574
+ }, [
575
+ e.value.userOptions.buttons.annotator ? (c(), q(r(Ht), {
576
+ key: 0,
577
+ svgRef: r(Le),
578
+ backgroundColor: e.value.style.chart.backgroundColor,
579
+ color: e.value.style.chart.color,
580
+ active: $e.value,
581
+ onClose: We
582
+ }, null, 8, ["svgRef", "backgroundColor", "color", "active"])) : T("", !0),
583
+ Vt.value ? (c(), g("div", Wo, null, 512)) : T("", !0),
584
+ e.value.style.chart.title.text ? (c(), g("div", {
585
+ key: 2,
586
+ ref_key: "chartTitle",
587
+ ref: et,
588
+ style: "width:100%;background:transparent;padding-bottom:24px"
589
+ }, [
590
+ (c(), q(Lo, {
591
+ key: `title_${Qe.value}`,
592
+ config: {
593
+ title: {
594
+ cy: "flow-title",
595
+ ...e.value.style.chart.title
596
+ },
597
+ subtitle: {
598
+ cy: "flow-subtitle",
599
+ ...e.value.style.chart.title.subtitle
600
+ }
601
+ }
602
+ }, null, 8, ["config"]))
603
+ ], 512)) : T("", !0),
604
+ G("div", {
605
+ id: `legend-top-${U.value}`
606
+ }, null, 8, Go),
607
+ e.value.userOptions.show && lt.value && (r(rt) || r(De)) ? (c(), q(r(Wt), {
608
+ ref_key: "userOptionsRef",
609
+ ref: Ie,
610
+ key: `user_option_${Je.value}`,
611
+ backgroundColor: e.value.style.chart.backgroundColor,
612
+ color: e.value.style.chart.color,
613
+ isPrinting: r(ct),
614
+ isImaging: r(vt),
615
+ uid: U.value,
616
+ hasPdf: e.value.userOptions.buttons.pdf,
617
+ hasXls: e.value.userOptions.buttons.csv,
618
+ hasImg: e.value.userOptions.buttons.img,
619
+ hasSvg: e.value.userOptions.buttons.svg,
620
+ hasTable: e.value.userOptions.buttons.table,
621
+ callbacks: e.value.userOptions.callbacks,
622
+ hasFullscreen: e.value.userOptions.buttons.fullscreen,
623
+ isFullscreen: Y.value,
624
+ titles: { ...e.value.userOptions.buttonTitles },
625
+ chartElement: I.value,
626
+ position: e.value.userOptions.position,
627
+ hasAnnotator: e.value.userOptions.buttons.annotator,
628
+ printScale: e.value.userOptions.print.scale,
629
+ isAnnotation: $e.value,
630
+ hasTooltip: e.value.style.chart.tooltip.show && e.value.userOptions.buttons.tooltip,
631
+ isTooltip: S.value.showTooltip,
632
+ tableDialog: e.value.table.useDialog,
633
+ onToggleTooltip: kt,
634
+ onToggleFullscreen: at,
635
+ onGeneratePdf: r(dt),
636
+ onGenerateCsv: He,
637
+ onGenerateImage: r(ht),
638
+ onGenerateSvg: At,
639
+ onToggleTable: Ct,
640
+ onToggleAnnotator: We,
641
+ style: W({
642
+ visibility: r(rt) ? r(De) ? "visible" : "hidden" : "visible"
643
+ })
644
+ }, Ot({ _: 2 }, [
645
+ o.$slots.menuIcon ? {
646
+ name: "menuIcon",
647
+ fn: b(({ isOpen: t, color: a }) => [
648
+ k(o.$slots, "menuIcon", Z(ee({ isOpen: t, color: a })), void 0, !0)
649
+ ]),
650
+ key: "0"
651
+ } : void 0,
652
+ o.$slots.optionTooltip ? {
653
+ name: "optionTooltip",
654
+ fn: b(() => [
655
+ k(o.$slots, "optionTooltip", {}, void 0, !0)
656
+ ]),
657
+ key: "1"
658
+ } : void 0,
659
+ o.$slots.optionPdf ? {
660
+ name: "optionPdf",
661
+ fn: b(() => [
662
+ k(o.$slots, "optionPdf", {}, void 0, !0)
663
+ ]),
664
+ key: "2"
665
+ } : void 0,
666
+ o.$slots.optionCsv ? {
667
+ name: "optionCsv",
668
+ fn: b(() => [
669
+ k(o.$slots, "optionCsv", {}, void 0, !0)
670
+ ]),
671
+ key: "3"
672
+ } : void 0,
673
+ o.$slots.optionImg ? {
674
+ name: "optionImg",
675
+ fn: b(() => [
676
+ k(o.$slots, "optionImg", {}, void 0, !0)
677
+ ]),
678
+ key: "4"
679
+ } : void 0,
680
+ o.$slots.optionTable ? {
681
+ name: "optionTable",
682
+ fn: b(() => [
683
+ k(o.$slots, "optionTable", {}, void 0, !0)
684
+ ]),
685
+ key: "5"
686
+ } : void 0,
687
+ o.$slots.optionFullscreen ? {
688
+ name: "optionFullscreen",
689
+ fn: b(({ toggleFullscreen: t, isFullscreen: a }) => [
690
+ k(o.$slots, "optionFullscreen", Z(ee({ toggleFullscreen: t, isFullscreen: a })), void 0, !0)
691
+ ]),
692
+ key: "6"
693
+ } : void 0,
694
+ o.$slots.optionAnnotator ? {
695
+ name: "optionAnnotator",
696
+ fn: b(({ toggleAnnotator: t, isAnnotator: a }) => [
697
+ k(o.$slots, "optionAnnotator", Z(ee({ toggleAnnotator: t, isAnnotator: a })), void 0, !0)
698
+ ]),
699
+ key: "7"
700
+ } : void 0
701
+ ]), 1032, ["backgroundColor", "color", "isPrinting", "isImaging", "uid", "hasPdf", "hasXls", "hasImg", "hasSvg", "hasTable", "callbacks", "hasFullscreen", "isFullscreen", "titles", "chartElement", "position", "hasAnnotator", "printScale", "isAnnotation", "hasTooltip", "isTooltip", "tableDialog", "onGeneratePdf", "onGenerateImage", "style"])) : T("", !0),
702
+ (c(), g("svg", {
703
+ ref_key: "svgRef",
704
+ ref: Le,
705
+ xmlns: r(wo),
706
+ viewBox: `0 0 ${ne.value.width} ${ne.value.height}`,
707
+ class: _t({
708
+ "vue-data-ui-fullscreen--on": Y.value,
709
+ "vue-data-ui-fulscreen--off": !Y.value
710
+ }),
711
+ style: W({
712
+ maxWidth: "100%",
713
+ overflow: "visible",
714
+ background: "transparent",
715
+ color: e.value.style.chart.color
716
+ })
717
+ }, [
718
+ _e(r(Gt)),
719
+ o.$slots["chart-background"] ? (c(), g("foreignObject", {
720
+ key: 0,
721
+ x: 0,
722
+ y: 0,
723
+ width: ne.value.width,
724
+ height: ne.value.height,
725
+ style: {
726
+ pointerEvents: "none"
727
+ }
728
+ }, [
729
+ k(o.$slots, "chart-background", {}, void 0, !0)
730
+ ], 8, Yo)) : T("", !0),
731
+ G("defs", null, [
732
+ (c(!0), g(de, null, he(_.value.links, (t, a) => (c(), g("linearGradient", {
733
+ id: t.id,
734
+ x1: "0%",
735
+ y1: "0%",
736
+ x2: "100%",
737
+ y2: "0%"
738
+ }, [
739
+ G("stop", {
740
+ offset: "0%",
741
+ "stop-color": t.sourceColor
742
+ }, null, 8, Vo),
743
+ G("stop", {
744
+ offset: "100%",
745
+ "stop-color": t.targetColor
746
+ }, null, 8, Xo)
747
+ ], 8, jo))), 256))
748
+ ]),
749
+ (c(!0), g(de, null, he(_.value.links, (t) => (c(), g("path", {
750
+ class: "vue-ui-flow-link",
751
+ d: t.path,
752
+ "stroke-linejoin": "round",
753
+ "stroke-miterlimit": "1",
754
+ fill: `url(#${t.id})`,
755
+ stroke: e.value.style.chart.links.stroke,
756
+ "stroke-width": e.value.style.chart.links.strokeWidth,
757
+ style: W(`
758
+ opacity:${w.value ? w.value.includes(t.source) && w.value.includes(t.target) ? 1 : 0.3 : K.value ? [t.target, t.source].includes(K.value) ? 1 : 0.3 : e.value.style.chart.links.opacity}
759
+ `)
760
+ }, null, 12, qo))), 256)),
761
+ (c(!0), g(de, null, he(_.value.nodes, (t, a) => (c(), g("rect", {
762
+ class: "vue-ui-flow-node",
763
+ x: t.x,
764
+ y: r(x)(t.absoluteY) + e.value.style.chart.padding.top,
765
+ height: r(x)(t.height),
766
+ width: ye.value,
767
+ fill: t.color,
768
+ stroke: e.value.style.chart.nodes.stroke,
769
+ "stroke-width": e.value.style.chart.nodes.strokeWidth,
770
+ rx: e.value.style.chart.nodes.borderRadius,
771
+ style: W({
772
+ opacity: w.value ? w.value.includes(t.name) ? 1 : 0.3 : 1,
773
+ outline: Ce.value !== null && Ce.value === t.id ? "2px solid currentColor" : void 0
774
+ }),
775
+ role: "button",
776
+ tabindex: "0",
777
+ "aria-label": `${t.name}: ${r(Ne)(
778
+ e.value.style.chart.nodes.labels.formatter,
779
+ t.value,
780
+ r(te)({
781
+ p: e.value.style.chart.nodes.labels.prefix,
782
+ v: t.value,
783
+ s: e.value.style.chart.nodes.labels.suffix,
784
+ r: e.value.style.chart.nodes.labels.rounding
785
+ })
786
+ )}`,
787
+ onMouseenter: (s) => yt(t, a),
788
+ onMouseleave: (s) => ke(a),
789
+ onClick: (s) => Re(a),
790
+ onKeydown: [
791
+ qe(Ke((s) => Re(a), ["prevent"]), ["enter"]),
792
+ qe(Ke((s) => Re(a), ["prevent"]), ["space"]),
793
+ qe(Ke((s) => ke(a), ["prevent"]), ["esc"])
794
+ ],
795
+ onFocus: (s) => no(t, a),
796
+ onBlur: (s) => ke(a)
797
+ }, null, 44, Ko))), 256)),
798
+ e.value.style.chart.nodes.labels.show ? (c(), g("g", Jo, [
799
+ (c(!0), g(de, null, he(_.value.nodes, (t, a) => (c(), g("text", {
800
+ x: t.x + ye.value / 2,
801
+ y: r(x)(
802
+ t.absoluteY + t.height / 2 - e.value.style.chart.nodes.labels.fontSize / 4
803
+ ) + e.value.style.chart.padding.top,
804
+ "font-size": e.value.style.chart.nodes.labels.fontSize,
805
+ fill: r(It)(t.color),
806
+ "text-anchor": "middle",
807
+ style: W(`pointer-events: none; opacity:${w.value ? w.value.includes(t.name) ? 1 : 0 : 1}`)
808
+ }, fe(e.value.style.chart.nodes.labels.abbreviation.use ? r($o)({
809
+ source: t.name,
810
+ length: e.value.style.chart.nodes.labels.abbreviation.length
811
+ }) : t.name), 13, Qo))), 256)),
812
+ (c(!0), g(de, null, he(_.value.nodes, (t, a) => (c(), g("text", {
813
+ x: t.x + ye.value / 2,
814
+ y: r(x)(
815
+ t.absoluteY + t.height / 2 + e.value.style.chart.nodes.labels.fontSize
816
+ ) + e.value.style.chart.padding.top,
817
+ "font-size": e.value.style.chart.nodes.labels.fontSize,
818
+ fill: r(It)(t.color),
819
+ "text-anchor": "middle",
820
+ style: W(`pointer-events: none; opacity:${w.value ? w.value.includes(t.name) ? 1 : 0 : 1}`)
821
+ }, fe(r(Ne)(
822
+ e.value.style.chart.nodes.labels.formatter,
823
+ t.value,
824
+ r(te)({
825
+ p: e.value.style.chart.nodes.labels.prefix,
826
+ v: t.value,
827
+ s: e.value.style.chart.nodes.labels.suffix,
828
+ r: e.value.style.chart.nodes.labels.rounding
829
+ }),
830
+ { datapoint: t, seriesIndex: a }
831
+ )), 13, Zo))), 256))
832
+ ])) : T("", !0),
833
+ k(o.$slots, "svg", { svg: ne.value }, void 0, !0)
834
+ ], 14, Uo)),
835
+ o.$slots.watermark ? (c(), g("div", el, [
836
+ k(o.$slots, "watermark", Z(ee({ isPrinting: r(ct) || r(vt) })), void 0, !0)
837
+ ])) : T("", !0),
838
+ G("div", {
839
+ id: `legend-bottom-${U.value}`
840
+ }, null, 8, tl),
841
+ ot.value ? (c(), q(fo, {
842
+ key: 5,
843
+ to: e.value.style.chart.legend.position === "top" ? `#legend-top-${U.value}` : `#legend-bottom-${U.value}`
844
+ }, [
845
+ G("div", {
846
+ ref_key: "chartLegend",
847
+ ref: Ze
848
+ }, [
849
+ e.value.style.chart.legend.show && Ge.value.length ? (c(), q(Do, {
850
+ key: 0,
851
+ legendSet: Ge.value,
852
+ config: Jt.value,
853
+ onClickMarker: l[0] || (l[0] = (t) => Ue(t))
854
+ }, {
855
+ item: b(({ legend: t, index: a }) => [
856
+ r(Me) ? T("", !0) : (c(), g("div", {
857
+ key: 0,
858
+ onClick: (s) => t.segregate(),
859
+ style: W(`opacity:${j.value.length ? j.value.includes(a) ? 1 : 0.5 : 1}`)
860
+ }, fe(t.display), 13, ol))
861
+ ]),
862
+ _: 1
863
+ }, 8, ["legendSet", "config"])) : T("", !0),
864
+ k(o.$slots, "legend", { legend: wt.value }, void 0, !0)
865
+ ], 512)
866
+ ], 8, ["to"])) : T("", !0),
867
+ o.$slots.source ? (c(), g("div", {
868
+ key: 6,
869
+ ref_key: "source",
870
+ ref: tt,
871
+ dir: "auto"
872
+ }, [
873
+ k(o.$slots, "source", {}, void 0, !0)
874
+ ], 512)) : T("", !0),
875
+ _e(r(Dt), {
876
+ ref_key: "tooltip",
877
+ ref: Pe,
878
+ show: S.value.showTooltip && Fe.value,
879
+ backgroundColor: e.value.style.chart.tooltip.backgroundColor,
880
+ color: e.value.style.chart.tooltip.color,
881
+ fontSize: e.value.style.chart.tooltip.fontSize,
882
+ borderRadius: e.value.style.chart.tooltip.borderRadius,
883
+ borderColor: e.value.style.chart.tooltip.borderColor,
884
+ borderWidth: e.value.style.chart.tooltip.borderWidth,
885
+ backgroundOpacity: e.value.style.chart.tooltip.backgroundOpacity,
886
+ position: e.value.style.chart.tooltip.position,
887
+ offsetY: e.value.style.chart.tooltip.offsetY,
888
+ parent: I.value,
889
+ content: Ee.value,
890
+ isCustom: be.value,
891
+ isFullscreen: Y.value,
892
+ smooth: e.value.style.chart.tooltip.smooth,
893
+ backdropFilter: e.value.style.chart.tooltip.backdropFilter,
894
+ smoothForce: e.value.style.chart.tooltip.smoothForce,
895
+ smoothSnapThreshold: e.value.style.chart.tooltip.smoothSnapThreshold
896
+ }, {
897
+ "tooltip-before": b(() => [
898
+ k(o.$slots, "tooltip-before", Z(ee({ ...se.value })), void 0, !0)
899
+ ]),
900
+ "tooltip-after": b(() => [
901
+ k(o.$slots, "tooltip-after", Z(ee({ ...se.value })), void 0, !0)
902
+ ]),
903
+ _: 3
904
+ }, 8, ["show", "backgroundColor", "color", "fontSize", "borderRadius", "borderColor", "borderWidth", "backgroundOpacity", "position", "offsetY", "parent", "content", "isCustom", "isFullscreen", "smooth", "backdropFilter", "smoothForce", "smoothSnapThreshold"]),
905
+ lt.value && e.value.userOptions.buttons.table ? (c(), q(po(re.value.component), go({ key: 7 }, re.value.props, {
906
+ ref_key: "tableUnit",
907
+ ref: le,
908
+ onClose: $t
909
+ }), Ot({
910
+ content: b(() => [
911
+ _e(r(Rt), {
912
+ colNames: we.value.colNames,
913
+ head: we.value.head,
914
+ body: we.value.body,
915
+ config: we.value.config,
916
+ title: e.value.table.useDialog ? "" : re.value.title,
917
+ withCloseButton: !e.value.table.useDialog,
918
+ onClose: $t
919
+ }, {
920
+ th: b(({ th: t }) => [
921
+ G("div", {
922
+ innerHTML: t,
923
+ style: { display: "flex", "align-items": "center" }
924
+ }, null, 8, ll)
925
+ ]),
926
+ td: b(({ td: t }) => [
927
+ Nt(fe(t.name || t), 1)
928
+ ]),
929
+ _: 1
930
+ }, 8, ["colNames", "head", "body", "config", "title", "withCloseButton"])
931
+ ]),
932
+ _: 2
933
+ }, [
934
+ e.value.table.useDialog ? {
935
+ name: "title",
936
+ fn: b(() => [
937
+ Nt(fe(re.value.title), 1)
938
+ ]),
939
+ key: "0"
940
+ } : void 0,
941
+ e.value.table.useDialog ? {
942
+ name: "actions",
943
+ fn: b(() => [
944
+ G("button", {
945
+ tabindex: "0",
946
+ class: "vue-ui-user-options-button",
947
+ onClick: l[1] || (l[1] = (t) => He(e.value.userOptions.callbacks.csv))
948
+ }, [
949
+ _e(r(Lt), {
950
+ name: "excel",
951
+ stroke: re.value.props.color
952
+ }, null, 8, ["stroke"])
953
+ ])
954
+ ]),
955
+ key: "1"
956
+ } : void 0
957
+ ]), 1040)) : T("", !0),
958
+ r(Me) ? (c(), q(Eo, { key: 8 })) : T("", !0)
959
+ ], 46, Ho));
960
+ }
961
+ }, bl = /* @__PURE__ */ Ro(al, [["__scopeId", "data-v-26b39a0e"]]);
962
+ export {
963
+ bl as default
964
+ };