@shtabapp/ui-kit 1.45.0 → 1.46.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/dist/{SChartBurnup-DhuCNXhU.cjs → SChartBurnup-BhCS06uF.cjs} +1 -1
- package/dist/SChartBurnup-CG239MJx.js +251 -0
- package/dist/SChartHorizontalBar-DnKbf_9E.cjs +1 -0
- package/dist/SChartHorizontalBar-DqTZ4H-9.js +175 -0
- package/dist/SChartLegend-DGtjd6zV.cjs +1 -0
- package/dist/SChartLegend-oZoF8XK7.js +42 -0
- package/dist/SChartLine-CEnRbnVo.cjs +1 -0
- package/dist/SChartLine-CQhbtAjJ.js +129 -0
- package/dist/SChartMultiLine-B6GldTYv.cjs +1 -0
- package/dist/SChartMultiLine-CPEglksk.js +198 -0
- package/dist/SChartPie-CQyENNM6.cjs +1 -0
- package/dist/SChartPie-DXHCXNEs.js +168 -0
- package/dist/{SChartProgress-Zdphet8I.js → SChartProgress-BwDuidgB.js} +54 -50
- package/dist/{SChartProgress-QsGTZ8kT.cjs → SChartProgress-CMcM6yvT.cjs} +1 -1
- package/dist/SChartSkeletonHost-BlIYGj-7.cjs +1 -0
- package/dist/{SChartSkeletonHost-CecfQ3Ye.js → SChartSkeletonHost-DSFyP_DN.js} +150 -89
- package/dist/SChartStackedArea-BR7W44h6.js +254 -0
- package/dist/SChartStackedArea-DHSamqau.cjs +1 -0
- package/dist/SChartStackedBar-B3HcO4UQ.cjs +1 -0
- package/dist/SChartStackedBar-BbYna5KB.js +245 -0
- package/dist/components/SChartBurnup/SChartBurnup.vue.d.ts +4 -1
- package/dist/components/SChartBurnup/SChartBurnup.vue.d.ts.map +1 -1
- package/dist/components/SChartHorizontalBar/SChartHorizontalBar.vue.d.ts +9 -2
- package/dist/components/SChartHorizontalBar/SChartHorizontalBar.vue.d.ts.map +1 -1
- package/dist/components/SChartHorizontalBar/utils/buildSChartHorizontalBarConfig.d.ts +1 -0
- package/dist/components/SChartHorizontalBar/utils/buildSChartHorizontalBarConfig.d.ts.map +1 -1
- package/dist/components/SChartLegend/SChartLegend.types.d.ts +2 -0
- package/dist/components/SChartLegend/SChartLegend.types.d.ts.map +1 -1
- package/dist/components/SChartLegend/SChartLegend.vue.d.ts +5 -1
- package/dist/components/SChartLegend/SChartLegend.vue.d.ts.map +1 -1
- package/dist/components/SChartLine/SChartLine.vue.d.ts +4 -1
- package/dist/components/SChartLine/SChartLine.vue.d.ts.map +1 -1
- package/dist/components/SChartMultiLine/SChartMultiLine.vue.d.ts +9 -2
- package/dist/components/SChartMultiLine/SChartMultiLine.vue.d.ts.map +1 -1
- package/dist/components/SChartMultiLine/utils/buildMultiLineChartConfig.d.ts +2 -1
- package/dist/components/SChartMultiLine/utils/buildMultiLineChartConfig.d.ts.map +1 -1
- package/dist/components/SChartPie/SChartPie.vue.d.ts +9 -2
- package/dist/components/SChartPie/SChartPie.vue.d.ts.map +1 -1
- package/dist/components/SChartPie/utils/buildPieChartConfig.d.ts +2 -1
- package/dist/components/SChartPie/utils/buildPieChartConfig.d.ts.map +1 -1
- package/dist/components/SChartProgress/SChartProgress.vue.d.ts +4 -1
- package/dist/components/SChartProgress/SChartProgress.vue.d.ts.map +1 -1
- package/dist/components/SChartSegmentedBar/SChartSegmentedBar.vue.d.ts +9 -2
- package/dist/components/SChartSegmentedBar/SChartSegmentedBar.vue.d.ts.map +1 -1
- package/dist/components/SChartSegmentedBar/utils/buildSegmentedBarChartConfig.d.ts +2 -1
- package/dist/components/SChartSegmentedBar/utils/buildSegmentedBarChartConfig.d.ts.map +1 -1
- package/dist/components/SChartStackedArea/SChartStackedArea.vue.d.ts +9 -2
- package/dist/components/SChartStackedArea/SChartStackedArea.vue.d.ts.map +1 -1
- package/dist/components/SChartStackedArea/utils/buildStackedAreaChartConfig.d.ts +2 -1
- package/dist/components/SChartStackedArea/utils/buildStackedAreaChartConfig.d.ts.map +1 -1
- package/dist/components/SChartStackedBar/SChartStackedBar.vue.d.ts +9 -2
- package/dist/components/SChartStackedBar/SChartStackedBar.vue.d.ts.map +1 -1
- package/dist/components/SChartStackedBar/utils/buildStackedBarChartConfig.d.ts +2 -1
- package/dist/components/SChartStackedBar/utils/buildStackedBarChartConfig.d.ts.map +1 -1
- package/dist/composables/useChartInteractivity.d.ts +14 -0
- package/dist/composables/useChartInteractivity.d.ts.map +1 -0
- package/dist/composables/useHasListener.d.ts +2 -0
- package/dist/composables/useHasListener.d.ts.map +1 -0
- package/dist/{createChartCrosshairPlugin-HfMMUP5O.cjs → createChartCrosshairPlugin-DdLyEWI0.cjs} +1 -1
- package/dist/{createChartCrosshairPlugin-BC0IDCn3.js → createChartCrosshairPlugin-q3U4ePnf.js} +2 -2
- package/dist/entries/chart-burnup.cjs +1 -1
- package/dist/entries/chart-burnup.js +1 -1
- package/dist/entries/chart-horizontal-bar.cjs +1 -1
- package/dist/entries/chart-horizontal-bar.js +1 -1
- package/dist/entries/chart-line.cjs +1 -1
- package/dist/entries/chart-line.js +1 -1
- package/dist/entries/chart-multi-line.cjs +1 -1
- package/dist/entries/chart-multi-line.js +1 -1
- package/dist/entries/chart-pie.cjs +1 -1
- package/dist/entries/chart-pie.js +1 -1
- package/dist/entries/chart-progress.cjs +1 -1
- package/dist/entries/chart-progress.js +1 -1
- package/dist/entries/chart-stacked-area.cjs +1 -1
- package/dist/entries/chart-stacked-area.js +1 -1
- package/dist/entries/chart-stacked-bar.cjs +1 -1
- package/dist/entries/chart-stacked-bar.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +181 -137
- package/dist/resolveSeriesPaletteColor-YACKW1NO.cjs +1 -0
- package/dist/{resolveSeriesPaletteColor-m8HQ9qwV.js → resolveSeriesPaletteColor-fuhGbjFO.js} +1 -1
- package/dist/{resolveStackedChartContext-DdraOueU.js → resolveStackedChartContext-BiIGZ2or.js} +5 -5
- package/dist/{resolveStackedChartContext-BywAnZUu.cjs → resolveStackedChartContext-Bp75eU_I.cjs} +1 -1
- package/dist/useHasListener-BPgtbbo6.cjs +1 -0
- package/dist/useHasListener-RSjlUyqH.js +8 -0
- package/dist/utils/chart/core/chartCssVariables.d.ts +2 -0
- package/dist/utils/chart/core/chartCssVariables.d.ts.map +1 -1
- package/dist/utils/chart/core/chartInteractivity.d.ts +41 -0
- package/dist/utils/chart/core/chartInteractivity.d.ts.map +1 -0
- package/dist/utils/chart/horizontalBar/buildHorizontalBarChartConfig.d.ts +2 -1
- package/dist/utils/chart/horizontalBar/buildHorizontalBarChartConfig.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/SChartBurnup-DYBnJMnm.js +0 -247
- package/dist/SChartHorizontalBar-DMBzyz9x.cjs +0 -1
- package/dist/SChartHorizontalBar-bm3Jexa3.js +0 -156
- package/dist/SChartLegend-Chr0IZWN.js +0 -30
- package/dist/SChartLegend-DXFXKXCm.cjs +0 -1
- package/dist/SChartLine-CiREb4H_.js +0 -125
- package/dist/SChartLine-P57XRR2o.cjs +0 -1
- package/dist/SChartMultiLine-3cdB0U12.js +0 -166
- package/dist/SChartMultiLine-BW1kITlR.cjs +0 -1
- package/dist/SChartPie-55wx2zRi.cjs +0 -1
- package/dist/SChartPie-Dc_gjzIl.js +0 -143
- package/dist/SChartSkeletonHost-CfM0zolj.cjs +0 -1
- package/dist/SChartStackedArea-BaJ963lU.cjs +0 -1
- package/dist/SChartStackedArea-cjN9gECV.js +0 -219
- package/dist/SChartStackedBar-0jGICBA0.js +0 -217
- package/dist/SChartStackedBar-j9WyOnsL.cjs +0 -1
- package/dist/resolveSeriesPaletteColor-BcFyrhh0.cjs +0 -1
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import { S as e, a as t, c as n, f as r, i, o as a, p as o, r as s, s as c, t as l, v as u, w as d, y as f } from "./SChartSkeletonHost-DSFyP_DN.js";
|
|
2
|
+
import { n as p, r as m, t as h } from "./buildChartSeriesPoints-D8Xpfwp7.js";
|
|
3
|
+
import { t as g } from "./createChartCrosshairPlugin-q3U4ePnf.js";
|
|
4
|
+
import { t as _ } from "./resolveSeriesPaletteColor-fuhGbjFO.js";
|
|
5
|
+
import { t as v } from "./buildMultiLineChartScales-CFZ8YVeJ.js";
|
|
6
|
+
import { t as y } from "./SChartLegend-oZoF8XK7.js";
|
|
7
|
+
import { t as b } from "./useHasListener-RSjlUyqH.js";
|
|
8
|
+
import { computed as x, createBlock as S, createCommentVNode as C, createElementBlock as w, createElementVNode as T, createVNode as E, defineComponent as D, normalizeClass as O, openBlock as k, unref as A, useTemplateRef as j, withCtx as M } from "vue";
|
|
9
|
+
//#region src/utils/chart/multiLine/resolveMultiLineSeriesColor.ts
|
|
10
|
+
var N = (t, n, r, i = !1) => _(t, n, r, i, {
|
|
11
|
+
palette: f,
|
|
12
|
+
paletteFallback: u.multiLinePalette1,
|
|
13
|
+
skeletonPalette: e,
|
|
14
|
+
skeletonFallback: u.skeletonPalette1
|
|
15
|
+
}), P = (e, t, n) => {
|
|
16
|
+
if (t) return t;
|
|
17
|
+
let r = e.reduce((e, t) => {
|
|
18
|
+
let n = t.points.reduce((e, t) => Math.max(e, t.value), 0);
|
|
19
|
+
return Math.max(e, n);
|
|
20
|
+
}, 0), i = Math.ceil(r / n) * n;
|
|
21
|
+
return i > 0 ? i : n * 5;
|
|
22
|
+
}, F = 4, I = 5, L = ({ seriesList: e, colorHostElement: i, yMax: s, yMin: l, yStep: f = I, mirrorYAxis: p = !0, skeleton: h = !1, onSeriesClick: _ }) => {
|
|
23
|
+
if (!m(e)) return null;
|
|
24
|
+
let y = d(u.axisLabel, i), b = d(u.grid, i), x = d(u.tooltipBackground, i), S = d(u.tooltipText, i), C = h && s ? s : P(e, s, f), w = h && l !== void 0 ? l : 0, T = e[0]?.points.map((e) => e.label) ?? [], E = t({
|
|
25
|
+
kind: "series",
|
|
26
|
+
skeleton: h,
|
|
27
|
+
colorHostElement: i,
|
|
28
|
+
onIndexClick: _
|
|
29
|
+
});
|
|
30
|
+
return {
|
|
31
|
+
type: "line",
|
|
32
|
+
data: {
|
|
33
|
+
labels: T,
|
|
34
|
+
datasets: e.map((e, t) => {
|
|
35
|
+
let n = N(t, i, e.fillColor, h);
|
|
36
|
+
return {
|
|
37
|
+
label: e.label,
|
|
38
|
+
data: e.points.map((e) => e.value),
|
|
39
|
+
borderColor: n,
|
|
40
|
+
backgroundColor: n,
|
|
41
|
+
...h ? {} : {
|
|
42
|
+
hoverBorderColor: n,
|
|
43
|
+
hoverBackgroundColor: n
|
|
44
|
+
},
|
|
45
|
+
borderWidth: F,
|
|
46
|
+
fill: !1,
|
|
47
|
+
pointRadius: 0,
|
|
48
|
+
pointHoverRadius: 4,
|
|
49
|
+
tension: .4
|
|
50
|
+
};
|
|
51
|
+
})
|
|
52
|
+
},
|
|
53
|
+
options: {
|
|
54
|
+
responsive: !0,
|
|
55
|
+
maintainAspectRatio: !1,
|
|
56
|
+
onHover: E.onHover,
|
|
57
|
+
onClick: E.onClick,
|
|
58
|
+
interaction: a(h, {
|
|
59
|
+
mode: "index",
|
|
60
|
+
intersect: !1
|
|
61
|
+
}),
|
|
62
|
+
hover: h ? void 0 : {
|
|
63
|
+
mode: "nearest",
|
|
64
|
+
intersect: !1
|
|
65
|
+
},
|
|
66
|
+
plugins: {
|
|
67
|
+
legend: { display: !1 },
|
|
68
|
+
tooltip: {
|
|
69
|
+
enabled: c(h),
|
|
70
|
+
backgroundColor: x,
|
|
71
|
+
titleColor: S,
|
|
72
|
+
bodyColor: S,
|
|
73
|
+
footerColor: S,
|
|
74
|
+
displayColors: !1,
|
|
75
|
+
position: r,
|
|
76
|
+
yAlign: "bottom",
|
|
77
|
+
xAlign: "center",
|
|
78
|
+
caretPadding: 8,
|
|
79
|
+
callbacks: o()
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
scales: v({
|
|
83
|
+
axisLabelColor: y,
|
|
84
|
+
gridColor: b,
|
|
85
|
+
yMin: w,
|
|
86
|
+
yMax: C,
|
|
87
|
+
yStep: f,
|
|
88
|
+
mirrorYAxis: p
|
|
89
|
+
})
|
|
90
|
+
},
|
|
91
|
+
plugins: n(h, [g(i), ...E.plugins])
|
|
92
|
+
};
|
|
93
|
+
}, R = [
|
|
94
|
+
"26.01",
|
|
95
|
+
"2.02",
|
|
96
|
+
"9.02",
|
|
97
|
+
"16.02",
|
|
98
|
+
"23.02",
|
|
99
|
+
"2.03",
|
|
100
|
+
"9.03",
|
|
101
|
+
"16.03",
|
|
102
|
+
"23.03",
|
|
103
|
+
"30.03",
|
|
104
|
+
"6.04"
|
|
105
|
+
], z = [{
|
|
106
|
+
label: "Series 1",
|
|
107
|
+
points: h(R, [
|
|
108
|
+
30,
|
|
109
|
+
34,
|
|
110
|
+
38,
|
|
111
|
+
44,
|
|
112
|
+
46,
|
|
113
|
+
50,
|
|
114
|
+
54,
|
|
115
|
+
56,
|
|
116
|
+
58,
|
|
117
|
+
60,
|
|
118
|
+
62
|
|
119
|
+
])
|
|
120
|
+
}, {
|
|
121
|
+
label: "Series 2",
|
|
122
|
+
points: h(R, [
|
|
123
|
+
22,
|
|
124
|
+
24,
|
|
125
|
+
26,
|
|
126
|
+
28,
|
|
127
|
+
30,
|
|
128
|
+
32,
|
|
129
|
+
33,
|
|
130
|
+
35,
|
|
131
|
+
36,
|
|
132
|
+
38,
|
|
133
|
+
40
|
|
134
|
+
])
|
|
135
|
+
}], B = { class: "s-ui-chart-multi-line__canvas-wrap" }, V = /* @__PURE__ */ D({
|
|
136
|
+
__name: "SChartMultiLine",
|
|
137
|
+
props: {
|
|
138
|
+
series: { default: () => [] },
|
|
139
|
+
loading: {
|
|
140
|
+
type: Boolean,
|
|
141
|
+
default: !1
|
|
142
|
+
},
|
|
143
|
+
yMax: {},
|
|
144
|
+
yStep: {},
|
|
145
|
+
mirrorYAxis: {
|
|
146
|
+
type: Boolean,
|
|
147
|
+
default: !0
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
emits: ["seriesClick"],
|
|
151
|
+
setup(e, { expose: t, emit: n }) {
|
|
152
|
+
let r = n, a = j("chartRootRef"), o = j("chartCanvasRef"), c = x(() => e.loading ? z : e.series), u = (t) => {
|
|
153
|
+
let n = e.series[t];
|
|
154
|
+
n && r("seriesClick", t, n);
|
|
155
|
+
}, d = b("onSeriesClick"), f = x(() => !e.loading && e.series.length === 0 ? null : L({
|
|
156
|
+
seriesList: c.value,
|
|
157
|
+
colorHostElement: a.value,
|
|
158
|
+
yMax: e.yMax,
|
|
159
|
+
yStep: e.yStep,
|
|
160
|
+
mirrorYAxis: e.mirrorYAxis,
|
|
161
|
+
skeleton: e.loading,
|
|
162
|
+
onSeriesClick: d() ? u : void 0
|
|
163
|
+
})), m = x(() => p(c.value, (t, n) => N(t, a.value, n, e.loading))), { chartInstance: h } = i({
|
|
164
|
+
canvasRef: o,
|
|
165
|
+
config: f,
|
|
166
|
+
enabled: x(() => e.loading || e.series.length > 0)
|
|
167
|
+
}), { exportImage: g, handleLegendItemHover: _ } = s({
|
|
168
|
+
chartInstance: h,
|
|
169
|
+
canvasRef: o,
|
|
170
|
+
colorHostElement: a
|
|
171
|
+
});
|
|
172
|
+
return t({ exportImage: g }), (t, n) => (k(), w("div", {
|
|
173
|
+
ref_key: "chartRootRef",
|
|
174
|
+
ref: a,
|
|
175
|
+
class: O(["s-ui-chart-multi-line", { "s-ui-chart-multi-line--skeleton": e.loading }])
|
|
176
|
+
}, [T("div", B, [E(A(l), { loading: e.loading }, {
|
|
177
|
+
default: M(() => [T("canvas", {
|
|
178
|
+
ref_key: "chartCanvasRef",
|
|
179
|
+
ref: o,
|
|
180
|
+
class: "s-ui-chart-multi-line__canvas"
|
|
181
|
+
}, null, 512)]),
|
|
182
|
+
_: 1
|
|
183
|
+
}, 8, ["loading"])]), m.value.length ? (k(), S(A(y), {
|
|
184
|
+
key: 0,
|
|
185
|
+
items: m.value,
|
|
186
|
+
disabled: e.loading,
|
|
187
|
+
interactive: !e.loading,
|
|
188
|
+
onItemHover: A(_)
|
|
189
|
+
}, null, 8, [
|
|
190
|
+
"items",
|
|
191
|
+
"disabled",
|
|
192
|
+
"interactive",
|
|
193
|
+
"onItemHover"
|
|
194
|
+
])) : C("", !0)], 2));
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
//#endregion
|
|
198
|
+
export { V as t };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require("./SChartSkeletonHost-BlIYGj-7.cjs"),t=require("./resolveSeriesPaletteColor-YACKW1NO.cjs"),n=require("./SChartLegend-DGtjd6zV.cjs"),r=require("./useHasListener-BPgtbbo6.cjs");let i=require("vue");var a=(n,r,i,a=!1)=>t.t(n,r,i,a,{palette:e.x,paletteFallback:e.v.piePalette1,skeletonPalette:e.b,skeletonFallback:e.v.pieSkeletonPalette1}),o=()=>({title:()=>``,label:e=>`${e.label??``} – ${e.parsed??0}`}),s=4,c=4,l=1,u=`400 12px var(--s-ui-font-family-label)`,d=(e,t,n,r,i,a)=>{let o=Math.min(a,r/2,i/2);e.beginPath(),e.moveTo(t+o,n),e.lineTo(t+r-o,n),e.arcTo(t+r,n,t+r,n+o,o),e.lineTo(t+r,n+i-o),e.arcTo(t+r,n+i,t+r-o,n+i,o),e.lineTo(t+o,n+i),e.arcTo(t,n+i,t,n+i-o,o),e.lineTo(t,n+o),e.arcTo(t,n,t+o,n,o),e.closePath()},f=e=>!(`getCenterPoint`in e)||typeof e.getCenterPoint!=`function`?null:e.getCenterPoint(!1),p=t=>({id:`pieSegmentBadge`,afterDatasetsDraw(n){let r=n.getDatasetMeta(0);if(!r)return;let i=e.w(e.v.pieBadgeBackground,t),a=e.w(e.v.pieBadgeBorder,t),o=e.w(e.v.pieBadgeText,t),{ctx:p}=n;p.save(),p.font=u,p.textAlign=`center`,p.textBaseline=`middle`;for(let e=0;e<r.data.length;e+=1){let t=r.data[e],u=n.data.datasets[0]?.data[e],m=t?f(t):null;if(t&&typeof u==`number`&&u>0&&m){let e=`${u}`,t=p.measureText(e).width+s*2;d(p,m.x-t/2,m.y-20/2,t,20,c),p.fillStyle=i,p.fill(),p.lineWidth=l,p.strokeStyle=a,p.stroke(),p.fillStyle=o,p.fillText(e,m.x,m.y)}}p.restore()}}),m=({sliceList:t,colorHostElement:n,skeleton:r=!1,onSliceClick:i})=>{if(t.length===0)return null;let s=e.w(e.v.pieSegmentBorder,n),c=e.w(e.v.tooltipBackground,n),l=e.w(e.v.tooltipText,n),u=t.map((e,t)=>a(t,n,e.fillColor,r)),d=e.a({kind:`element`,skeleton:r,colorHostElement:n,onIndexClick:i});return{type:`pie`,data:{labels:t.map(e=>e.label),datasets:[{data:t.map(e=>e.value),backgroundColor:u,hoverBackgroundColor:u,borderColor:s,hoverBorderColor:s,borderWidth:4,hoverBorderWidth:4,hoverOffset:26,spacing:0,borderRadius:8}]},options:{responsive:!0,maintainAspectRatio:!0,cutout:`58%`,rotation:115,layout:{padding:26},onHover:d.onHover,onClick:d.onClick,interaction:e.o(r,{mode:`nearest`,intersect:!0}),plugins:{legend:{display:!1},tooltip:{enabled:e.s(r),backgroundColor:c,titleColor:l,bodyColor:l,displayColors:!1,callbacks:o()}}},plugins:e.c(r,[p(n),...d.plugins])}},h=[`Series 1`,`Series 2`,`Series 3`,`Series 4`,`Series 5`,`Series 6`,`Series 7`,`Series 8`],g=[4,1,1,1,1,1,1,1],_=h.map((e,t)=>({label:e,value:g[t]??1})),v={class:`s-ui-chart-pie__canvas-wrap`},y=(0,i.defineComponent)({__name:`SChartPie`,props:{slices:{default:()=>[]},loading:{type:Boolean,default:!1}},emits:[`sliceClick`],setup(t,{expose:o,emit:s}){let c=s,l=e.n,u=(0,i.useTemplateRef)(`chartRootRef`),d=(0,i.useTemplateRef)(`chartCanvasRef`),f=(0,i.computed)(()=>t.loading?_:t.slices),p=e=>{let n=t.slices[e];n&&c(`sliceClick`,e,n)},h=r.t(`onSliceClick`),g=(0,i.computed)(()=>!t.loading&&t.slices.length===0?null:m({sliceList:f.value,colorHostElement:u.value,skeleton:t.loading,onSliceClick:h()?p:void 0})),y=(0,i.computed)(()=>f.value.map((e,n)=>({label:e.label,color:a(n,u.value,e.fillColor,t.loading)}))),{chartInstance:b}=e.i({canvasRef:d,config:g,enabled:(0,i.computed)(()=>t.loading||t.slices.length>0)}),{exportImage:x,handleLegendItemHover:S}=e.r({chartInstance:b,canvasRef:d,colorHostElement:u,legendDimKind:`element`});return o({exportImage:x}),(r,a)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{ref_key:`chartRootRef`,ref:u,class:(0,i.normalizeClass)([`s-ui-chart-pie`,{"s-ui-chart-pie--skeleton":t.loading}])},[(0,i.createElementVNode)(`div`,v,[(0,i.createVNode)((0,i.unref)(e.t),{loading:t.loading,type:(0,i.unref)(l).PIE},{default:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`canvas`,{ref_key:`chartCanvasRef`,ref:d,class:`s-ui-chart-pie__canvas`},null,512)]),_:1},8,[`loading`,`type`])]),y.value.length?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(n.t),{key:0,items:y.value,disabled:t.loading,interactive:!t.loading,direction:`column`,onItemHover:(0,i.unref)(S)},null,8,[`items`,`disabled`,`interactive`,`onItemHover`])):(0,i.createCommentVNode)(``,!0)],2))}});Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return y}});
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { a as e, b as t, c as n, i as r, n as i, o as a, r as o, s, t as c, v as l, w as u, x as d } from "./SChartSkeletonHost-DSFyP_DN.js";
|
|
2
|
+
import { t as f } from "./resolveSeriesPaletteColor-fuhGbjFO.js";
|
|
3
|
+
import { t as p } from "./SChartLegend-oZoF8XK7.js";
|
|
4
|
+
import { t as m } from "./useHasListener-RSjlUyqH.js";
|
|
5
|
+
import { computed as h, createBlock as g, createCommentVNode as _, createElementBlock as v, createElementVNode as y, createVNode as b, defineComponent as x, normalizeClass as S, openBlock as C, unref as w, useTemplateRef as T, withCtx as E } from "vue";
|
|
6
|
+
//#region src/utils/chart/pie/resolvePieSliceColor.ts
|
|
7
|
+
var D = (e, n, r, i = !1) => f(e, n, r, i, {
|
|
8
|
+
palette: d,
|
|
9
|
+
paletteFallback: l.piePalette1,
|
|
10
|
+
skeletonPalette: t,
|
|
11
|
+
skeletonFallback: l.pieSkeletonPalette1
|
|
12
|
+
}), O = () => ({
|
|
13
|
+
title: () => "",
|
|
14
|
+
label: (e) => `${e.label ?? ""} – ${e.parsed ?? 0}`
|
|
15
|
+
}), k = 4, A = 4, j = 1, M = "400 12px var(--s-ui-font-family-label)", N = (e, t, n, r, i, a) => {
|
|
16
|
+
let o = Math.min(a, r / 2, i / 2);
|
|
17
|
+
e.beginPath(), e.moveTo(t + o, n), e.lineTo(t + r - o, n), e.arcTo(t + r, n, t + r, n + o, o), e.lineTo(t + r, n + i - o), e.arcTo(t + r, n + i, t + r - o, n + i, o), e.lineTo(t + o, n + i), e.arcTo(t, n + i, t, n + i - o, o), e.lineTo(t, n + o), e.arcTo(t, n, t + o, n, o), e.closePath();
|
|
18
|
+
}, P = (e) => !("getCenterPoint" in e) || typeof e.getCenterPoint != "function" ? null : e.getCenterPoint(!1), F = (e) => ({
|
|
19
|
+
id: "pieSegmentBadge",
|
|
20
|
+
afterDatasetsDraw(t) {
|
|
21
|
+
let n = t.getDatasetMeta(0);
|
|
22
|
+
if (!n) return;
|
|
23
|
+
let r = u(l.pieBadgeBackground, e), i = u(l.pieBadgeBorder, e), a = u(l.pieBadgeText, e), { ctx: o } = t;
|
|
24
|
+
o.save(), o.font = M, o.textAlign = "center", o.textBaseline = "middle";
|
|
25
|
+
for (let e = 0; e < n.data.length; e += 1) {
|
|
26
|
+
let s = n.data[e], c = t.data.datasets[0]?.data[e], l = s ? P(s) : null;
|
|
27
|
+
if (s && typeof c == "number" && c > 0 && l) {
|
|
28
|
+
let e = `${c}`, t = o.measureText(e).width + k * 2;
|
|
29
|
+
N(o, l.x - t / 2, l.y - 20 / 2, t, 20, A), o.fillStyle = r, o.fill(), o.lineWidth = j, o.strokeStyle = i, o.stroke(), o.fillStyle = a, o.fillText(e, l.x, l.y);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
o.restore();
|
|
33
|
+
}
|
|
34
|
+
}), I = ({ sliceList: t, colorHostElement: r, skeleton: i = !1, onSliceClick: o }) => {
|
|
35
|
+
if (t.length === 0) return null;
|
|
36
|
+
let c = u(l.pieSegmentBorder, r), d = u(l.tooltipBackground, r), f = u(l.tooltipText, r), p = t.map((e, t) => D(t, r, e.fillColor, i)), m = e({
|
|
37
|
+
kind: "element",
|
|
38
|
+
skeleton: i,
|
|
39
|
+
colorHostElement: r,
|
|
40
|
+
onIndexClick: o
|
|
41
|
+
});
|
|
42
|
+
return {
|
|
43
|
+
type: "pie",
|
|
44
|
+
data: {
|
|
45
|
+
labels: t.map((e) => e.label),
|
|
46
|
+
datasets: [{
|
|
47
|
+
data: t.map((e) => e.value),
|
|
48
|
+
backgroundColor: p,
|
|
49
|
+
hoverBackgroundColor: p,
|
|
50
|
+
borderColor: c,
|
|
51
|
+
hoverBorderColor: c,
|
|
52
|
+
borderWidth: 4,
|
|
53
|
+
hoverBorderWidth: 4,
|
|
54
|
+
hoverOffset: 26,
|
|
55
|
+
spacing: 0,
|
|
56
|
+
borderRadius: 8
|
|
57
|
+
}]
|
|
58
|
+
},
|
|
59
|
+
options: {
|
|
60
|
+
responsive: !0,
|
|
61
|
+
maintainAspectRatio: !0,
|
|
62
|
+
cutout: "58%",
|
|
63
|
+
rotation: 115,
|
|
64
|
+
layout: { padding: 26 },
|
|
65
|
+
onHover: m.onHover,
|
|
66
|
+
onClick: m.onClick,
|
|
67
|
+
interaction: a(i, {
|
|
68
|
+
mode: "nearest",
|
|
69
|
+
intersect: !0
|
|
70
|
+
}),
|
|
71
|
+
plugins: {
|
|
72
|
+
legend: { display: !1 },
|
|
73
|
+
tooltip: {
|
|
74
|
+
enabled: s(i),
|
|
75
|
+
backgroundColor: d,
|
|
76
|
+
titleColor: f,
|
|
77
|
+
bodyColor: f,
|
|
78
|
+
displayColors: !1,
|
|
79
|
+
callbacks: O()
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
plugins: n(i, [F(r), ...m.plugins])
|
|
84
|
+
};
|
|
85
|
+
}, L = [
|
|
86
|
+
"Series 1",
|
|
87
|
+
"Series 2",
|
|
88
|
+
"Series 3",
|
|
89
|
+
"Series 4",
|
|
90
|
+
"Series 5",
|
|
91
|
+
"Series 6",
|
|
92
|
+
"Series 7",
|
|
93
|
+
"Series 8"
|
|
94
|
+
], R = [
|
|
95
|
+
4,
|
|
96
|
+
1,
|
|
97
|
+
1,
|
|
98
|
+
1,
|
|
99
|
+
1,
|
|
100
|
+
1,
|
|
101
|
+
1,
|
|
102
|
+
1
|
|
103
|
+
], z = L.map((e, t) => ({
|
|
104
|
+
label: e,
|
|
105
|
+
value: R[t] ?? 1
|
|
106
|
+
})), B = { class: "s-ui-chart-pie__canvas-wrap" }, V = /* @__PURE__ */ x({
|
|
107
|
+
__name: "SChartPie",
|
|
108
|
+
props: {
|
|
109
|
+
slices: { default: () => [] },
|
|
110
|
+
loading: {
|
|
111
|
+
type: Boolean,
|
|
112
|
+
default: !1
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
emits: ["sliceClick"],
|
|
116
|
+
setup(e, { expose: t, emit: n }) {
|
|
117
|
+
let a = n, s = i, l = T("chartRootRef"), u = T("chartCanvasRef"), d = h(() => e.loading ? z : e.slices), f = (t) => {
|
|
118
|
+
let n = e.slices[t];
|
|
119
|
+
n && a("sliceClick", t, n);
|
|
120
|
+
}, x = m("onSliceClick"), O = h(() => !e.loading && e.slices.length === 0 ? null : I({
|
|
121
|
+
sliceList: d.value,
|
|
122
|
+
colorHostElement: l.value,
|
|
123
|
+
skeleton: e.loading,
|
|
124
|
+
onSliceClick: x() ? f : void 0
|
|
125
|
+
})), k = h(() => d.value.map((t, n) => ({
|
|
126
|
+
label: t.label,
|
|
127
|
+
color: D(n, l.value, t.fillColor, e.loading)
|
|
128
|
+
}))), { chartInstance: A } = r({
|
|
129
|
+
canvasRef: u,
|
|
130
|
+
config: O,
|
|
131
|
+
enabled: h(() => e.loading || e.slices.length > 0)
|
|
132
|
+
}), { exportImage: j, handleLegendItemHover: M } = o({
|
|
133
|
+
chartInstance: A,
|
|
134
|
+
canvasRef: u,
|
|
135
|
+
colorHostElement: l,
|
|
136
|
+
legendDimKind: "element"
|
|
137
|
+
});
|
|
138
|
+
return t({ exportImage: j }), (t, n) => (C(), v("div", {
|
|
139
|
+
ref_key: "chartRootRef",
|
|
140
|
+
ref: l,
|
|
141
|
+
class: S(["s-ui-chart-pie", { "s-ui-chart-pie--skeleton": e.loading }])
|
|
142
|
+
}, [y("div", B, [b(w(c), {
|
|
143
|
+
loading: e.loading,
|
|
144
|
+
type: w(s).PIE
|
|
145
|
+
}, {
|
|
146
|
+
default: E(() => [y("canvas", {
|
|
147
|
+
ref_key: "chartCanvasRef",
|
|
148
|
+
ref: u,
|
|
149
|
+
class: "s-ui-chart-pie__canvas"
|
|
150
|
+
}, null, 512)]),
|
|
151
|
+
_: 1
|
|
152
|
+
}, 8, ["loading", "type"])]), k.value.length ? (C(), g(w(p), {
|
|
153
|
+
key: 0,
|
|
154
|
+
items: k.value,
|
|
155
|
+
disabled: e.loading,
|
|
156
|
+
interactive: !e.loading,
|
|
157
|
+
direction: "column",
|
|
158
|
+
onItemHover: w(M)
|
|
159
|
+
}, null, 8, [
|
|
160
|
+
"items",
|
|
161
|
+
"disabled",
|
|
162
|
+
"interactive",
|
|
163
|
+
"onItemHover"
|
|
164
|
+
])) : _("", !0)], 2));
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
//#endregion
|
|
168
|
+
export { V as t };
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { computed as
|
|
3
|
-
var
|
|
1
|
+
import { d as e, i as t, o as n, r, s as i, t as a, v as o, w as s } from "./SChartSkeletonHost-DSFyP_DN.js";
|
|
2
|
+
import { computed as c, createElementBlock as l, createElementVNode as u, createVNode as d, defineComponent as f, normalizeClass as p, openBlock as m, unref as h, useTemplateRef as g, withCtx as _ } from "vue";
|
|
3
|
+
var v = 4, y = 12, b = 24, x = (e) => {
|
|
4
4
|
let t = e <= 15;
|
|
5
5
|
return {
|
|
6
|
-
pointRadius: t ?
|
|
7
|
-
pointHoverRadius:
|
|
8
|
-
pointHitRadius: t ?
|
|
6
|
+
pointRadius: t ? v : 0,
|
|
7
|
+
pointHoverRadius: v,
|
|
8
|
+
pointHitRadius: t ? y : b
|
|
9
9
|
};
|
|
10
|
-
},
|
|
10
|
+
}, S = (e) => e <= 15 ? {
|
|
11
11
|
mode: "nearest",
|
|
12
12
|
intersect: !0
|
|
13
13
|
} : {
|
|
14
14
|
mode: "nearest",
|
|
15
15
|
axis: "x",
|
|
16
16
|
intersect: !1
|
|
17
|
-
},
|
|
18
|
-
let g =
|
|
17
|
+
}, C = .3, w = 1, T = ({ labels: t, progressValues: r, referenceValues: a, seriesLabel: c, valuePrefix: l, minValue: u, maxValue: d, stepSize: f, progressSnapshotCount: p, colorHostElement: m, skeleton: h = !1 }) => {
|
|
18
|
+
let g = s(o.axisLabel, m), _ = s(o.grid, m), v = s(h ? o.skeletonSeries : o.progressLine, m), y = s(h ? o.skeletonFillStart : o.referenceFill, m), b = s(o.tooltipBackground, m), T = s(o.tooltipText, m), E = C, D = x(p), O = S(p);
|
|
19
19
|
return {
|
|
20
20
|
type: "line",
|
|
21
21
|
data: {
|
|
22
|
-
labels:
|
|
22
|
+
labels: t,
|
|
23
23
|
datasets: [{
|
|
24
|
-
data:
|
|
24
|
+
data: a,
|
|
25
25
|
borderColor: "transparent",
|
|
26
26
|
backgroundColor: y,
|
|
27
27
|
pointRadius: 0,
|
|
@@ -31,7 +31,7 @@ var _ = 4, v = 12, y = 24, b = (e) => {
|
|
|
31
31
|
order: 0
|
|
32
32
|
}, {
|
|
33
33
|
label: c,
|
|
34
|
-
data:
|
|
34
|
+
data: r,
|
|
35
35
|
borderColor: v,
|
|
36
36
|
backgroundColor: v,
|
|
37
37
|
tension: E,
|
|
@@ -47,16 +47,16 @@ var _ = 4, v = 12, y = 24, b = (e) => {
|
|
|
47
47
|
options: {
|
|
48
48
|
responsive: !0,
|
|
49
49
|
maintainAspectRatio: !1,
|
|
50
|
-
interaction:
|
|
50
|
+
interaction: n(h, O),
|
|
51
51
|
plugins: {
|
|
52
52
|
legend: { display: !1 },
|
|
53
53
|
tooltip: {
|
|
54
|
-
enabled:
|
|
55
|
-
backgroundColor:
|
|
54
|
+
enabled: i(h),
|
|
55
|
+
backgroundColor: b,
|
|
56
56
|
titleColor: T,
|
|
57
57
|
bodyColor: T,
|
|
58
|
-
position:
|
|
59
|
-
filter: (e) => e.datasetIndex ===
|
|
58
|
+
position: e,
|
|
59
|
+
filter: (e) => e.datasetIndex === w,
|
|
60
60
|
callbacks: { label: (e) => {
|
|
61
61
|
let t = e.parsed.y;
|
|
62
62
|
return t === null ? "" : `${t}${l}`;
|
|
@@ -105,11 +105,11 @@ var _ = 4, v = 12, y = 24, b = (e) => {
|
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
107
|
};
|
|
108
|
-
},
|
|
108
|
+
}, E = (e) => {
|
|
109
109
|
let t = e.match(/^(\d{4})-(\d{2})-(\d{2})/);
|
|
110
110
|
return t ? `${t[3]}.${t[2]}.${t[1]}` : e;
|
|
111
|
-
},
|
|
112
|
-
let i = e.map((e) =>
|
|
111
|
+
}, D = (e) => Math.round(e * 10) / 10, O = ({ progressSnapshots: e, deadline: t = null, minValue: n = 0, maxValue: r = 100 }) => {
|
|
112
|
+
let i = e.map((e) => E(e.date)), a = e.map((e) => e.progress), o = t ? E(t) : null, s = a.length === 1 ? [
|
|
113
113
|
"",
|
|
114
114
|
i[0] ?? "",
|
|
115
115
|
""
|
|
@@ -121,13 +121,13 @@ var _ = 4, v = 12, y = 24, b = (e) => {
|
|
|
121
121
|
return {
|
|
122
122
|
labels: s,
|
|
123
123
|
progressValues: c,
|
|
124
|
-
referenceValues: l === 0 ? [] : l === 1 ? [n] : Array.from({ length: l }, (e, t) =>
|
|
124
|
+
referenceValues: l === 0 ? [] : l === 1 ? [n] : Array.from({ length: l }, (e, t) => D(n + t * ((r - n) / (l - 1)))),
|
|
125
125
|
minValue: n,
|
|
126
126
|
maxValue: r,
|
|
127
|
-
stepSize:
|
|
127
|
+
stepSize: D((r - n) / 4),
|
|
128
128
|
progressSnapshotCount: e.length
|
|
129
129
|
};
|
|
130
|
-
},
|
|
130
|
+
}, k = [
|
|
131
131
|
{
|
|
132
132
|
date: "2025-11-01",
|
|
133
133
|
progress: 20
|
|
@@ -152,7 +152,7 @@ var _ = 4, v = 12, y = 24, b = (e) => {
|
|
|
152
152
|
date: "2026-04-01",
|
|
153
153
|
progress: 84
|
|
154
154
|
}
|
|
155
|
-
],
|
|
155
|
+
], A = { class: "s-ui-chart-progress__canvas-wrap" }, j = /* @__PURE__ */ f({
|
|
156
156
|
__name: "SChartProgress",
|
|
157
157
|
props: {
|
|
158
158
|
progressSnapshots: { default: () => [] },
|
|
@@ -166,37 +166,41 @@ var _ = 4, v = 12, y = 24, b = (e) => {
|
|
|
166
166
|
default: !1
|
|
167
167
|
}
|
|
168
168
|
},
|
|
169
|
-
setup(e) {
|
|
170
|
-
let
|
|
171
|
-
progressSnapshots:
|
|
169
|
+
setup(e, { expose: n }) {
|
|
170
|
+
let i = g("chartRootRef"), o = g("chartCanvasRef"), s = c(() => e.minValue ?? 0), f = c(() => e.maxValue ?? 100), v = c(() => e.prefix ?? "%"), y = c(() => e.loading ? k : e.progressSnapshots), b = c(() => O({
|
|
171
|
+
progressSnapshots: y.value,
|
|
172
172
|
deadline: e.loading ? "2026-06-28" : e.deadline,
|
|
173
|
-
minValue: e.loading ? 0 :
|
|
174
|
-
maxValue: e.loading ? 100 :
|
|
175
|
-
}))
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
referenceValues: v.value.referenceValues,
|
|
173
|
+
minValue: e.loading ? 0 : s.value,
|
|
174
|
+
maxValue: e.loading ? 100 : f.value
|
|
175
|
+
})), { chartInstance: x } = t({
|
|
176
|
+
canvasRef: o,
|
|
177
|
+
config: c(() => !e.loading && e.progressSnapshots.length === 0 ? null : T({
|
|
178
|
+
labels: b.value.labels,
|
|
179
|
+
progressValues: b.value.progressValues,
|
|
180
|
+
referenceValues: b.value.referenceValues,
|
|
182
181
|
seriesLabel: e.seriesLabel,
|
|
183
|
-
valuePrefix:
|
|
184
|
-
minValue:
|
|
185
|
-
maxValue:
|
|
186
|
-
stepSize: e.loading ? 25 :
|
|
187
|
-
progressSnapshotCount:
|
|
188
|
-
colorHostElement:
|
|
182
|
+
valuePrefix: v.value,
|
|
183
|
+
minValue: b.value.minValue,
|
|
184
|
+
maxValue: b.value.maxValue,
|
|
185
|
+
stepSize: e.loading ? 25 : b.value.stepSize,
|
|
186
|
+
progressSnapshotCount: b.value.progressSnapshotCount,
|
|
187
|
+
colorHostElement: i.value,
|
|
189
188
|
skeleton: e.loading
|
|
190
189
|
})),
|
|
191
|
-
enabled:
|
|
192
|
-
}),
|
|
190
|
+
enabled: c(() => e.loading || e.progressSnapshots.length > 0)
|
|
191
|
+
}), { exportImage: S } = r({
|
|
192
|
+
chartInstance: x,
|
|
193
|
+
canvasRef: o,
|
|
194
|
+
colorHostElement: i
|
|
195
|
+
});
|
|
196
|
+
return n({ exportImage: S }), (t, n) => (m(), l("div", {
|
|
193
197
|
ref_key: "chartRootRef",
|
|
194
|
-
ref:
|
|
195
|
-
class:
|
|
196
|
-
}, [
|
|
197
|
-
default:
|
|
198
|
+
ref: i,
|
|
199
|
+
class: p(["s-ui-chart-progress", { "s-ui-chart-progress--skeleton": e.loading }])
|
|
200
|
+
}, [u("div", A, [d(h(a), { loading: e.loading }, {
|
|
201
|
+
default: _(() => [u("canvas", {
|
|
198
202
|
ref_key: "chartCanvasRef",
|
|
199
|
-
ref:
|
|
203
|
+
ref: o,
|
|
200
204
|
class: "s-ui-chart-progress__canvas"
|
|
201
205
|
}, null, 512)]),
|
|
202
206
|
_: 1
|
|
@@ -204,4 +208,4 @@ var _ = 4, v = 12, y = 24, b = (e) => {
|
|
|
204
208
|
}
|
|
205
209
|
});
|
|
206
210
|
//#endregion
|
|
207
|
-
export {
|
|
211
|
+
export { j as t };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("./SChartSkeletonHost-
|
|
1
|
+
const e=require("./SChartSkeletonHost-BlIYGj-7.cjs");let t=require("vue");var n=4,r=12,i=24,a=e=>{let t=e<=15;return{pointRadius:t?n:0,pointHoverRadius:n,pointHitRadius:t?r:i}},o=e=>e<=15?{mode:`nearest`,intersect:!0}:{mode:`nearest`,axis:`x`,intersect:!1},s=.3,c=1,l=({labels:t,progressValues:n,referenceValues:r,seriesLabel:i,valuePrefix:l,minValue:u,maxValue:d,stepSize:f,progressSnapshotCount:p,colorHostElement:m,skeleton:h=!1})=>{let g=e.w(e.v.axisLabel,m),_=e.w(e.v.grid,m),v=e.w(h?e.v.skeletonSeries:e.v.progressLine,m),y=e.w(h?e.v.skeletonFillStart:e.v.referenceFill,m),b=e.w(e.v.tooltipBackground,m),x=e.w(e.v.tooltipText,m),S=s,C=a(p),w=o(p);return{type:`line`,data:{labels:t,datasets:[{data:r,borderColor:`transparent`,backgroundColor:y,pointRadius:0,pointHoverRadius:0,pointHitRadius:0,fill:`start`,order:0},{label:i,data:n,borderColor:v,backgroundColor:v,tension:S,pointRadius:C.pointRadius,pointHoverRadius:C.pointHoverRadius,pointHitRadius:C.pointHitRadius,pointBackgroundColor:v,pointBorderColor:v,fill:!1,order:1}]},options:{responsive:!0,maintainAspectRatio:!1,interaction:e.o(h,w),plugins:{legend:{display:!1},tooltip:{enabled:e.s(h),backgroundColor:b,titleColor:x,bodyColor:x,position:e.d,filter:e=>e.datasetIndex===c,callbacks:{label:e=>{let t=e.parsed.y;return t===null?``:`${t}${l}`}}}},scales:{x:{type:`category`,border:{display:!1},grid:{color:_,drawTicks:!0},ticks:{color:g,font:{family:`var(--s-ui-font-family-label)`,size:10,weight:500},padding:8}},y:{type:`linear`,min:u,max:d,border:{display:!1},grid:{color:_,drawTicks:!0},ticks:{color:g,stepSize:f,callback:e=>`${e}${l}`,font:{family:`var(--s-ui-font-family-label)`,size:10,weight:500},padding:8}}}}}},u=e=>{let t=e.match(/^(\d{4})-(\d{2})-(\d{2})/);return t?`${t[3]}.${t[2]}.${t[1]}`:e},d=e=>Math.round(e*10)/10,f=({progressSnapshots:e,deadline:t=null,minValue:n=0,maxValue:r=100})=>{let i=e.map(e=>u(e.date)),a=e.map(e=>e.progress),o=t?u(t):null,s=a.length===1?[``,i[0]??``,``]:o?[...i,o]:i,c=a.length===1?[null,a[0]??null,null]:o?[...a,null]:a,l=s.length;return{labels:s,progressValues:c,referenceValues:l===0?[]:l===1?[n]:Array.from({length:l},(e,t)=>d(n+t*((r-n)/(l-1)))),minValue:n,maxValue:r,stepSize:d((r-n)/4),progressSnapshotCount:e.length}},p=[{date:`2025-11-01`,progress:20},{date:`2025-12-01`,progress:35},{date:`2026-01-01`,progress:42},{date:`2026-02-01`,progress:58},{date:`2026-03-01`,progress:71},{date:`2026-04-01`,progress:84}],m={class:`s-ui-chart-progress__canvas-wrap`},h=(0,t.defineComponent)({__name:`SChartProgress`,props:{progressSnapshots:{default:()=>[]},deadline:{default:null},minValue:{},maxValue:{},prefix:{},seriesLabel:{default:`Progress`},loading:{type:Boolean,default:!1}},setup(n,{expose:r}){let i=(0,t.useTemplateRef)(`chartRootRef`),a=(0,t.useTemplateRef)(`chartCanvasRef`),o=(0,t.computed)(()=>n.minValue??0),s=(0,t.computed)(()=>n.maxValue??100),c=(0,t.computed)(()=>n.prefix??`%`),u=(0,t.computed)(()=>n.loading?p:n.progressSnapshots),d=(0,t.computed)(()=>f({progressSnapshots:u.value,deadline:n.loading?`2026-06-28`:n.deadline,minValue:n.loading?0:o.value,maxValue:n.loading?100:s.value})),{chartInstance:h}=e.i({canvasRef:a,config:(0,t.computed)(()=>!n.loading&&n.progressSnapshots.length===0?null:l({labels:d.value.labels,progressValues:d.value.progressValues,referenceValues:d.value.referenceValues,seriesLabel:n.seriesLabel,valuePrefix:c.value,minValue:d.value.minValue,maxValue:d.value.maxValue,stepSize:n.loading?25:d.value.stepSize,progressSnapshotCount:d.value.progressSnapshotCount,colorHostElement:i.value,skeleton:n.loading})),enabled:(0,t.computed)(()=>n.loading||n.progressSnapshots.length>0)}),{exportImage:g}=e.r({chartInstance:h,canvasRef:a,colorHostElement:i});return r({exportImage:g}),(r,o)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`chartRootRef`,ref:i,class:(0,t.normalizeClass)([`s-ui-chart-progress`,{"s-ui-chart-progress--skeleton":n.loading}])},[(0,t.createElementVNode)(`div`,m,[(0,t.createVNode)((0,t.unref)(e.t),{loading:n.loading},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`canvas`,{ref_key:`chartCanvasRef`,ref:a,class:`s-ui-chart-progress__canvas`},null,512)]),_:1},8,[`loading`])])],2))}});Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return h}});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
let e=require("vue"),t=require("@shtabapp/ui-kit-primitives"),n=require("@vueuse/core"),r=require("chart.js");var i=(e,t)=>{if(typeof window>`u`)return``;let n=t??document.documentElement;return getComputedStyle(n).getPropertyValue(e).trim()},a={axisLabel:`--s-ui-chart-axis-label`,grid:`--s-ui-chart-grid`,crosshair:`--s-ui-chart-crosshair`,legendLabel:`--s-ui-chart-legend-label`,seriesPrimary:`--s-ui-chart-series-primary`,seriesFillStart:`--s-ui-chart-series-fill-start`,seriesFillEnd:`--s-ui-chart-series-fill-end`,seriesFillOpacity:`--s-ui-chart-series-fill-opacity`,skeletonSeries:`--s-ui-chart-skeleton-series`,skeletonPalette1:`--s-ui-chart-skeleton-palette-1`,skeletonPalette2:`--s-ui-chart-skeleton-palette-2`,skeletonPalette3:`--s-ui-chart-skeleton-palette-3`,skeletonPalette4:`--s-ui-chart-skeleton-palette-4`,skeletonPalette5:`--s-ui-chart-skeleton-palette-5`,skeletonPalette6:`--s-ui-chart-skeleton-palette-6`,skeletonFillStart:`--s-ui-chart-skeleton-fill-start`,skeletonFillEnd:`--s-ui-chart-skeleton-fill-end`,skeletonFillOpacity:`--s-ui-chart-skeleton-fill-opacity`,fillMuted:`--s-ui-chart-fill-muted`,exportBackground:`--s-ui-chart-export-background`,tooltipBackground:`--s-ui-chart-tooltip-background`,tooltipText:`--s-ui-chart-tooltip-text`,stackedPalette1:`--s-ui-chart-stacked-palette-1`,stackedPalette2:`--s-ui-chart-stacked-palette-2`,stackedPalette3:`--s-ui-chart-stacked-palette-3`,stackedPalette4:`--s-ui-chart-stacked-palette-4`,stackedPalette5:`--s-ui-chart-stacked-palette-5`,stackedPalette6:`--s-ui-chart-stacked-palette-6`,barStackedPalette1:`--s-ui-chart-bar-stacked-palette-1`,barStackedPalette2:`--s-ui-chart-bar-stacked-palette-2`,barStackedPalette3:`--s-ui-chart-bar-stacked-palette-3`,barStackedPalette4:`--s-ui-chart-bar-stacked-palette-4`,barStackedPalette5:`--s-ui-chart-bar-stacked-palette-5`,barStackedPalette6:`--s-ui-chart-bar-stacked-palette-6`,barHoverOutline:`--s-ui-chart-bar-hover-outline`,barSkeletonPalette1:`--s-ui-chart-bar-skeleton-palette-1`,barSkeletonPalette2:`--s-ui-chart-bar-skeleton-palette-2`,barSkeletonPalette3:`--s-ui-chart-bar-skeleton-palette-3`,barSkeletonPalette4:`--s-ui-chart-bar-skeleton-palette-4`,barSkeletonPalette5:`--s-ui-chart-bar-skeleton-palette-5`,barSkeletonPalette6:`--s-ui-chart-bar-skeleton-palette-6`,piePalette1:`--s-ui-chart-pie-palette-1`,piePalette2:`--s-ui-chart-pie-palette-2`,piePalette3:`--s-ui-chart-pie-palette-3`,piePalette4:`--s-ui-chart-pie-palette-4`,piePalette5:`--s-ui-chart-pie-palette-5`,piePalette6:`--s-ui-chart-pie-palette-6`,piePalette7:`--s-ui-chart-pie-palette-7`,piePalette8:`--s-ui-chart-pie-palette-8`,pieSegmentBorder:`--s-ui-chart-pie-segment-border`,pieBadgeBackground:`--s-ui-chart-pie-badge-background`,pieBadgeBorder:`--s-ui-chart-pie-badge-border`,pieBadgeText:`--s-ui-chart-pie-badge-text`,pieHoverShadow:`--s-ui-chart-pie-hover-shadow`,pieSkeletonPalette1:`--s-ui-chart-pie-skeleton-palette-1`,pieSkeletonPalette2:`--s-ui-chart-pie-skeleton-palette-2`,pieSkeletonPalette3:`--s-ui-chart-pie-skeleton-palette-3`,pieSkeletonPalette4:`--s-ui-chart-pie-skeleton-palette-4`,pieSkeletonPalette5:`--s-ui-chart-pie-skeleton-palette-5`,pieSkeletonPalette6:`--s-ui-chart-pie-skeleton-palette-6`,pieSkeletonPalette7:`--s-ui-chart-pie-skeleton-palette-7`,pieSkeletonPalette8:`--s-ui-chart-pie-skeleton-palette-8`,barHorizontalFillDefault:`--s-ui-chart-bar-horizontal-fill-default`,barHorizontalSkeletonFill:`--s-ui-chart-bar-horizontal-skeleton-fill`,barHorizontalCategoryLabel:`--s-ui-chart-bar-horizontal-category-label`,barHorizontalCategoryLabelSkeleton:`--s-ui-chart-bar-horizontal-category-label-skeleton`,progressLine:`--s-ui-chart-progress-line`,referenceFill:`--s-ui-chart-reference-fill`,multiLinePalette1:`--s-ui-chart-multi-line-palette-1`,multiLinePalette2:`--s-ui-chart-multi-line-palette-2`,multiLinePalette3:`--s-ui-chart-multi-line-palette-3`,burnupGoal:`--s-ui-chart-burnup-goal`,burnupPlan:`--s-ui-chart-burnup-plan`,burnupFact:`--s-ui-chart-burnup-fact`,burnupFactFillStart:`--s-ui-chart-burnup-fact-fill-start`,burnupFactFillEnd:`--s-ui-chart-burnup-fact-fill-end`,burnupToday:`--s-ui-chart-burnup-today`,burnupTagBackground:`--s-ui-chart-burnup-tag-background`},o=[a.stackedPalette1,a.stackedPalette2,a.stackedPalette3,a.stackedPalette4,a.stackedPalette5,a.stackedPalette6],s=[a.skeletonPalette1,a.skeletonPalette2,a.skeletonPalette3,a.skeletonPalette4,a.skeletonPalette5,a.skeletonPalette6],c=[a.barStackedPalette1,a.barStackedPalette2,a.barStackedPalette3,a.barStackedPalette4,a.barStackedPalette5,a.barStackedPalette6],l=[a.barSkeletonPalette1,a.barSkeletonPalette2,a.barSkeletonPalette3,a.barSkeletonPalette4,a.barSkeletonPalette5,a.barSkeletonPalette6],u=[a.piePalette1,a.piePalette2,a.piePalette3,a.piePalette4,a.piePalette5,a.piePalette6,a.piePalette7,a.piePalette8],d=[a.pieSkeletonPalette1,a.pieSkeletonPalette2,a.pieSkeletonPalette3,a.pieSkeletonPalette4,a.pieSkeletonPalette5,a.pieSkeletonPalette6,a.pieSkeletonPalette7,a.pieSkeletonPalette8],f=[a.multiLinePalette1,a.multiLinePalette2,a.multiLinePalette3],p=e=>`captions`in e,m=(e,t)=>{let n=e.data.datasets[0];if(!n||!p(n))return;let r=n.captions?.[t];if(r)return r},h=()=>({title:e=>{let t=e[0];if(!t)return``;let n=m(t.chart,t.dataIndex),r=[`${t.label}`];return n&&r.push(n),r},label:e=>`${e.dataset.label??``} – ${e.parsed.y??0}`}),g=`stackedBarTop`,_=function(e,t){if(e.length===0)return{x:t.x,y:t.y};let n=1/0,r=1/0,i=-1/0;for(let t of e){let{x:e,y:a,width:o}=t.element.getProps([`x`,`y`,`width`]);n=Math.min(n,a),r=Math.min(r,e-o/2),i=Math.max(i,e+o/2)}return{x:(r+i)/2,y:n}},v=()=>({title:e=>{let t=e[0];return t?`${t.label}`:``},label:e=>`${e.dataset.label??``}: ${e.parsed.y??0}`}),y=`multiLineTop`,b=function(e,t){let n=this.chart.chartArea;return!n||e.length===0?{x:t.x,y:t.y}:{x:t.x,y:n.top}},x=`progressChartPoint`,S=1,C=(e,t)=>{let n=e.data.datasets[S]?.data[t];return typeof n==`number`?n:null},w=function(e){let t=e.find(e=>e.datasetIndex===S)??e[0];if(!t)return!1;let n=this.chart.scales.y;if(!n)return!1;let r=C(this.chart,t.index);return r===null?!1:{x:t.element.x,y:n.getPixelForValue(r),xAlign:`center`,yAlign:`bottom`}},T=({total:e}={})=>({title:e=>{let t=e[0];return t?`${t.label}`:``},label:e=>`${e.dataset.label??``} – ${e.parsed.y??0}`,footer:t=>{let n=t.reduce((e,t)=>e+(t.parsed.y??0),0);return e?`${e} – ${n}`:`${n}`}}),E=`stackedAreaTop`,D=function(e,t){let n=this.chart.chartArea;return!n||e.length===0?{x:t.x,y:t.y}:{x:t.x,y:n.top}},O=!1,k=!1,A=!1,j=!1,M=!1,N=()=>{k||=(r.Tooltip.positioners.stackedAreaTop=D,!0)},P=()=>{A||=(r.Tooltip.positioners.stackedBarTop=_,!0)},F=()=>{j||=(r.Tooltip.positioners.progressChartPoint=w,!0)},I=()=>{M||=(r.Tooltip.positioners.multiLineTop=b,!0)},L=()=>{O||=(r.Chart.register(r.LineController,r.LineElement,r.PointElement,r.BarController,r.BarElement,r.PieController,r.ArcElement,r.LinearScale,r.CategoryScale,r.Tooltip,r.Filler),N(),P(),F(),I(),!0)},R=(e,t)=>e?{mode:`nearest`,intersect:!1}:t,z=e=>!e,B=(e,t)=>e?[]:t,V=new WeakMap,H={element:(e,t,n)=>{let r=e.data.datasets[0],i=r?.hoverBackgroundColor;!r||!Array.isArray(i)||(r.backgroundColor=t===null?[...i]:i.map((e,r)=>r===t?e:n))},series:(e,t,n)=>{e.data.datasets.forEach((e,r)=>{let i=t===null||r===t,{hoverBackgroundColor:a,hoverBorderColor:o}=e;a!==void 0&&!Array.isArray(a)&&(e.backgroundColor=i?a:n),o!==void 0&&!Array.isArray(o)&&(e.borderColor=i?o:n)})}},U=(e,t,n,r,i=!1)=>{(V.get(e)?.index??null)!==n&&(V.set(e,{index:n,kind:t,mutedColor:r}),H[t](e,n,r),e.canvas.style.cursor=n!==null&&i?`pointer`:``,e.update())},W=e=>{let t=V.get(e);!t||t.index===null||(V.set(e,{...t,index:null}),H[t.kind](e,null,t.mutedColor),e.canvas.style.cursor=``,e.update())},G={id:`sChartHoverDimReset`,afterEvent:(e,t)=>{t.event.type===`mouseout`&&W(e)}},K=(e,t)=>{let n=e[0];return n?t===`element`?n.index:n.datasetIndex:null},q=({kind:e,skeleton:t,colorHostElement:n,onIndexClick:r})=>{if(t)return{plugins:[]};let i=J(n),a=!!r,o={onHover:(t,n,r)=>{U(r,e,K(n,e),i,a)},plugins:[G]};return r&&(o.onClick=(t,n)=>{let i=K(n,e);i!==null&&r(i)}),o},J=e=>i(a.fillMuted,e),Y=(e,t)=>{if(!e.canvas.width||!e.canvas.height)return;let n=document.createElement(`canvas`);n.width=e.canvas.width,n.height=e.canvas.height;let r=n.getContext(`2d`);if(r)return r.fillStyle=i(a.exportBackground,t)||`#ffffff`,r.fillRect(0,0,n.width,n.height),r.drawImage(e.canvas,0,0),n.toDataURL(`image/png`)},X=({canvasRef:t,config:i,enabled:a})=>{let o=(0,e.shallowRef)(),s=()=>{o.value&&=(o.value.destroy(),void 0)},c=()=>{if(!(0,e.toValue)(a)){s();return}let n=(0,e.toValue)(t),c=(0,e.toValue)(i);if(!n||!c){s();return}L(),o.value&&=(o.value.destroy(),void 0),o.value=new r.Chart(n,c)};return(0,e.onMounted)(()=>{c()}),(0,e.watch)(()=>[(0,e.toValue)(a),(0,e.toValue)(t),(0,e.toValue)(i)],()=>{c()},{deep:!0}),(0,n.useResizeObserver)(t,()=>{o.value?.resize()}),(0,e.onBeforeUnmount)(()=>{s()}),{chartInstance:o}},Z=({chartInstance:t,canvasRef:n,colorHostElement:r,legendDimKind:i=`series`})=>((0,e.watch)(t,()=>{let t=(0,e.toValue)(n);t?.style.cursor&&(t.style.cursor=``)}),{exportImage:()=>{if(t.value)return Y(t.value,(0,e.toValue)(r))},handleLegendItemHover:n=>{t.value&&U(t.value,i,n,J((0,e.toValue)(r)))}}),Q=function(e){return e.CARTESIAN=`cartesian`,e.PIE=`pie`,e}({}),$=(0,e.defineComponent)({__name:`SChartSkeletonHost`,props:{loading:{type:Boolean,default:!1},type:{default:()=>Q.CARTESIAN}},setup(n){let r=(0,e.computed)(()=>n.type===Q.PIE?t.ESSkeletonType.CHART_PIE:t.ESSkeletonType.CHART_CARTESIAN);return(i,a)=>n.loading?((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(t.SSkeleton),{key:0,type:r.value,class:`s-ui-chart-skeleton-host`},{default:(0,e.withCtx)(()=>[(0,e.renderSlot)(i.$slots,`default`)]),_:3},8,[`type`])):(0,e.renderSlot)(i.$slots,`default`,{key:1})}});Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"w",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return f}});
|