nemesischart 2.0.6 → 2.0.8
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/dist/nemesischart.js +861 -835
- package/dist/nemesischart.umd.cjs +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/dist/nemesischart.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { ref as
|
|
2
|
-
import { Chart as
|
|
3
|
-
const
|
|
1
|
+
import { ref as ot, shallowRef as Mt, onMounted as jt, onBeforeUnmount as Ht, watch as At, openBlock as l, createElementBlock as s, normalizeStyle as x, createElementVNode as k, computed as M, unref as r, normalizeClass as lt, renderSlot as L, createTextVNode as Y, toDisplayString as A, createCommentVNode as g, createVNode as ft, Fragment as yt, renderList as mt, useCssVars as Vt } from "vue";
|
|
2
|
+
import { Chart as Rt, Title as Nt, Tooltip as Pt, Legend as Dt, Filler as It, LineController as Wt, LineElement as Ot, PointElement as Xt, BarController as Yt, BarElement as Jt, PieController as Qt, PolarAreaController as Ut, ArcElement as Gt, CategoryScale as Zt, LinearScale as Kt, RadialLinearScale as _t } from "chart.js";
|
|
3
|
+
const at = (t, y) => {
|
|
4
4
|
const e = t.__vccOpts || t;
|
|
5
|
-
for (const [
|
|
6
|
-
e[
|
|
5
|
+
for (const [d, o] of y)
|
|
6
|
+
e[d] = o;
|
|
7
7
|
return e;
|
|
8
|
-
},
|
|
8
|
+
}, te = {
|
|
9
9
|
__name: "ChartBase",
|
|
10
10
|
props: {
|
|
11
11
|
type: { type: String, required: !0 },
|
|
@@ -15,10 +15,8 @@ const ot = (t, g) => {
|
|
|
15
15
|
height: { type: [String, Number], default: 300 },
|
|
16
16
|
width: { type: [String, Number], default: null }
|
|
17
17
|
},
|
|
18
|
-
setup(t, { expose:
|
|
19
|
-
|
|
20
|
-
Ht,
|
|
21
|
-
Vt,
|
|
18
|
+
setup(t, { expose: y }) {
|
|
19
|
+
Rt.register(
|
|
22
20
|
Nt,
|
|
23
21
|
Pt,
|
|
24
22
|
Dt,
|
|
@@ -31,128 +29,130 @@ const ot = (t, g) => {
|
|
|
31
29
|
Qt,
|
|
32
30
|
Ut,
|
|
33
31
|
Gt,
|
|
34
|
-
Zt
|
|
32
|
+
Zt,
|
|
33
|
+
Kt,
|
|
34
|
+
_t
|
|
35
35
|
);
|
|
36
|
-
const e = t,
|
|
36
|
+
const e = t, d = ot(null), o = Mt(null), B = {
|
|
37
37
|
responsive: !0,
|
|
38
38
|
maintainAspectRatio: !1,
|
|
39
39
|
plugins: {
|
|
40
40
|
legend: { position: "top" }
|
|
41
41
|
}
|
|
42
42
|
};
|
|
43
|
-
function
|
|
44
|
-
return { ...
|
|
43
|
+
function $() {
|
|
44
|
+
return { ...B, ...e.options };
|
|
45
45
|
}
|
|
46
|
-
function
|
|
47
|
-
|
|
46
|
+
function R() {
|
|
47
|
+
d.value && (o.value = new Rt(d.value, {
|
|
48
48
|
type: e.type,
|
|
49
49
|
data: e.data,
|
|
50
|
-
options:
|
|
50
|
+
options: $(),
|
|
51
51
|
plugins: e.plugins
|
|
52
52
|
}));
|
|
53
53
|
}
|
|
54
|
-
function
|
|
54
|
+
function I() {
|
|
55
55
|
o.value && (o.value.destroy(), o.value = null);
|
|
56
56
|
}
|
|
57
|
-
return
|
|
57
|
+
return jt(R), Ht(I), At(
|
|
58
58
|
() => e.data,
|
|
59
59
|
(w) => {
|
|
60
60
|
if (!o.value) return;
|
|
61
61
|
o.value.data.labels = w.labels;
|
|
62
|
-
const
|
|
63
|
-
|
|
62
|
+
const F = o.value.data.datasets, z = w.datasets;
|
|
63
|
+
F.length !== z.length ? o.value.data.datasets = z : z.forEach((Q, X) => Object.assign(F[X], Q)), o.value.update();
|
|
64
64
|
},
|
|
65
65
|
{ deep: !0 }
|
|
66
66
|
), At(
|
|
67
67
|
() => e.options,
|
|
68
68
|
() => {
|
|
69
|
-
o.value && (o.value.options =
|
|
69
|
+
o.value && (o.value.options = $(), o.value.update());
|
|
70
70
|
},
|
|
71
71
|
{ deep: !0 }
|
|
72
|
-
),
|
|
72
|
+
), y({ chart: o }), (w, F) => (l(), s("div", {
|
|
73
73
|
class: "nc-chart-wrapper w-full",
|
|
74
|
-
style:
|
|
74
|
+
style: x({
|
|
75
75
|
height: typeof t.height == "number" ? `${t.height}px` : t.height,
|
|
76
76
|
width: t.width ? typeof t.width == "number" ? `${t.width}px` : t.width : "100%"
|
|
77
77
|
})
|
|
78
78
|
}, [
|
|
79
|
-
|
|
79
|
+
k("canvas", {
|
|
80
80
|
ref_key: "canvasRef",
|
|
81
|
-
ref:
|
|
81
|
+
ref: d
|
|
82
82
|
}, null, 512)
|
|
83
83
|
], 4));
|
|
84
84
|
}
|
|
85
|
-
},
|
|
86
|
-
function
|
|
87
|
-
const
|
|
88
|
-
if (
|
|
89
|
-
const w =
|
|
90
|
-
let
|
|
91
|
-
return
|
|
85
|
+
}, st = /* @__PURE__ */ at(te, [["__scopeId", "data-v-9828990e"]]);
|
|
86
|
+
function ee(t) {
|
|
87
|
+
const y = t.replace("#", ""), e = y.length === 3 ? y.split("").map((Q) => Q + Q).join("") : y, d = parseInt(e.slice(0, 2), 16) / 255, o = parseInt(e.slice(2, 4), 16) / 255, B = parseInt(e.slice(4, 6), 16) / 255, $ = Math.max(d, o, B), R = Math.min(d, o, B), I = ($ + R) / 2;
|
|
88
|
+
if ($ === R) return [0, 0, I * 100];
|
|
89
|
+
const w = $ - R, F = I > 0.5 ? w / (2 - $ - R) : w / ($ + R);
|
|
90
|
+
let z;
|
|
91
|
+
return $ === d ? z = ((o - B) / w + (o < B ? 6 : 0)) / 6 : $ === o ? z = ((B - d) / w + 2) / 6 : z = ((d - o) / w + 4) / 6, [z * 360, F * 100, I * 100];
|
|
92
92
|
}
|
|
93
|
-
function
|
|
94
|
-
t /= 360,
|
|
95
|
-
const
|
|
96
|
-
return "#" + [
|
|
93
|
+
function oe(t, y, e) {
|
|
94
|
+
t /= 360, y /= 100, e /= 100;
|
|
95
|
+
const d = e < 0.5 ? e * (1 + y) : e + y - e * y, o = 2 * e - d, B = (w) => (w < 0 && (w += 1), w > 1 && (w -= 1), w < 1 / 6 ? o + (d - o) * 6 * w : w < 1 / 2 ? d : w < 2 / 3 ? o + (d - o) * (2 / 3 - w) * 6 : o), $ = y === 0 ? e : B(t + 1 / 3), R = y === 0 ? e : B(t), I = y === 0 ? e : B(t - 1 / 3);
|
|
96
|
+
return "#" + [$, R, I].map((w) => Math.round(w * 255).toString(16).padStart(2, "0")).join("");
|
|
97
97
|
}
|
|
98
|
-
function
|
|
99
|
-
if (!(t != null && t.startsWith("#"))) return Array.from({ length:
|
|
100
|
-
const [e,
|
|
101
|
-
return Array.from({ length:
|
|
102
|
-
const
|
|
103
|
-
return
|
|
98
|
+
function bt(t, y = 7) {
|
|
99
|
+
if (!(t != null && t.startsWith("#"))) return Array.from({ length: y }, () => t ?? "#3B82F6");
|
|
100
|
+
const [e, d] = ee(t), o = 20, B = 72;
|
|
101
|
+
return Array.from({ length: y }, ($, R) => {
|
|
102
|
+
const I = y === 1 ? 0.5 : R / (y - 1), w = o + I * (B - o), F = Math.max(50, d - Math.max(0, w - 55) * 0.6);
|
|
103
|
+
return oe(e, F, w);
|
|
104
104
|
});
|
|
105
105
|
}
|
|
106
|
-
const
|
|
106
|
+
const ae = {
|
|
107
107
|
light: { bg: "#ffffff", text: "#000000", muted: "#64748B", grid: "rgba(15,23,42,0.06)" },
|
|
108
108
|
dark: { bg: "#000000", text: "#ffffff", muted: "#7b7b7b", grid: "rgba(255,255,255,0.08)" },
|
|
109
109
|
transparent: { bg: "transparent", text: "inherit", muted: "#7b7b7b", grid: "rgba(127,127,127,0.15)" }
|
|
110
110
|
};
|
|
111
|
-
function
|
|
112
|
-
if (!t) return `rgba(59,130,246,${
|
|
111
|
+
function D(t, y) {
|
|
112
|
+
if (!t) return `rgba(59,130,246,${y})`;
|
|
113
113
|
if (t.startsWith("#")) {
|
|
114
|
-
const e = t.replace("#", ""),
|
|
115
|
-
return `rgba(${o},${
|
|
114
|
+
const e = t.replace("#", ""), d = e.length === 3 ? e.split("").map((R) => R + R).join("") : e, o = parseInt(d.slice(0, 2), 16), B = parseInt(d.slice(2, 4), 16), $ = parseInt(d.slice(4, 6), 16);
|
|
115
|
+
return `rgba(${o},${B},${$},${y})`;
|
|
116
116
|
}
|
|
117
117
|
if (t.startsWith("rgb")) {
|
|
118
118
|
const e = t.match(/[\d.]+/g);
|
|
119
|
-
if (e && e.length >= 3) return `rgba(${e[0]},${e[1]},${e[2]},${
|
|
119
|
+
if (e && e.length >= 3) return `rgba(${e[0]},${e[1]},${e[2]},${y})`;
|
|
120
120
|
}
|
|
121
121
|
return t;
|
|
122
122
|
}
|
|
123
|
-
function
|
|
124
|
-
const
|
|
125
|
-
const
|
|
123
|
+
function it(t) {
|
|
124
|
+
const y = M(() => {
|
|
125
|
+
const d = ae[t.tema], o = d ? { ...d, bg: t.corFundo || d.bg } : { bg: t.corFundo || t.tema, text: "#F8FAFC", muted: "#7b7b7b", grid: "rgba(255,255,255,0.08)" };
|
|
126
126
|
return {
|
|
127
127
|
...o,
|
|
128
128
|
text: t.corTexto || o.text,
|
|
129
129
|
muted: t.corTexto || o.muted
|
|
130
130
|
};
|
|
131
|
-
}), e =
|
|
132
|
-
background:
|
|
133
|
-
color:
|
|
131
|
+
}), e = M(() => ({
|
|
132
|
+
background: y.value.bg,
|
|
133
|
+
color: y.value.text,
|
|
134
134
|
borderRadius: typeof t.borderRadius == "number" ? `${t.borderRadius}px` : t.borderRadius,
|
|
135
135
|
boxShadow: t.sombra,
|
|
136
136
|
border: t.corBorda ? `1px solid ${t.corBorda}` : "none"
|
|
137
137
|
}));
|
|
138
|
-
return { palette:
|
|
138
|
+
return { palette: y, cardStyle: e, toRgba: D };
|
|
139
139
|
}
|
|
140
|
-
function
|
|
141
|
-
const
|
|
142
|
-
function e(
|
|
143
|
-
if (
|
|
144
|
-
const o = Number(
|
|
145
|
-
return Number.isNaN(o) ? String(
|
|
140
|
+
function pt(t) {
|
|
141
|
+
const y = M(() => t.tipoValor === "moeda" ? new Intl.NumberFormat(t.locale, { style: "currency", currency: t.moeda }) : t.tipoValor === "percentual" ? new Intl.NumberFormat(t.locale, { style: "percent", maximumFractionDigits: 2 }) : new Intl.NumberFormat(t.locale, { maximumFractionDigits: 2 }));
|
|
142
|
+
function e(d) {
|
|
143
|
+
if (d == null) return "";
|
|
144
|
+
const o = Number(d);
|
|
145
|
+
return Number.isNaN(o) ? String(d) : t.tipoValor === "percentual" ? y.value.format(o / 100) : y.value.format(o);
|
|
146
146
|
}
|
|
147
|
-
return { formatador:
|
|
147
|
+
return { formatador: y, formatar: e };
|
|
148
148
|
}
|
|
149
|
-
function gt(t, { caretFlexivel:
|
|
149
|
+
function gt(t, { caretFlexivel: y = !1 } = {}) {
|
|
150
150
|
let e = t.querySelector(".nc-tt");
|
|
151
151
|
if (e) return e;
|
|
152
152
|
e = document.createElement("div"), e.className = "nc-tt", Object.assign(e.style, {
|
|
153
153
|
position: "absolute",
|
|
154
154
|
pointerEvents: "none",
|
|
155
|
-
transform:
|
|
155
|
+
transform: y ? "translateX(-50%)" : "translate(-50%, calc(-100% - 16px))",
|
|
156
156
|
transition: "opacity .18s ease, left .12s ease, top .12s ease",
|
|
157
157
|
opacity: "0",
|
|
158
158
|
background: "#ffffff",
|
|
@@ -166,8 +166,8 @@ function gt(t, { caretFlexivel: g = !1 } = {}) {
|
|
|
166
166
|
fontFamily: "inherit",
|
|
167
167
|
textAlign: "left"
|
|
168
168
|
});
|
|
169
|
-
const
|
|
170
|
-
|
|
169
|
+
const d = document.createElement("div");
|
|
170
|
+
d.className = "nc-tt__caret";
|
|
171
171
|
const o = {
|
|
172
172
|
position: "absolute",
|
|
173
173
|
left: "50%",
|
|
@@ -177,96 +177,96 @@ function gt(t, { caretFlexivel: g = !1 } = {}) {
|
|
|
177
177
|
transform: "translateX(-50%) rotate(45deg)",
|
|
178
178
|
borderRadius: "2px"
|
|
179
179
|
};
|
|
180
|
-
|
|
180
|
+
y ? Object.assign(d.style, o) : Object.assign(d.style, o, {
|
|
181
181
|
bottom: "-5px",
|
|
182
182
|
borderRight: "1px solid rgba(15,23,42,.06)",
|
|
183
183
|
borderBottom: "1px solid rgba(15,23,42,.06)"
|
|
184
|
-
}), e.appendChild(
|
|
185
|
-
const
|
|
186
|
-
return
|
|
184
|
+
}), e.appendChild(d);
|
|
185
|
+
const B = document.createElement("div");
|
|
186
|
+
return B.className = "nc-tt__content", Object.assign(B.style, { position: "relative", background: "#fff", borderRadius: "8px" }), e.appendChild(B), t.appendChild(e), e;
|
|
187
187
|
}
|
|
188
|
-
function
|
|
189
|
-
const
|
|
190
|
-
return
|
|
188
|
+
function rt(t) {
|
|
189
|
+
const y = t.canvas.parentNode;
|
|
190
|
+
return y ? (getComputedStyle(y).position === "static" && (y.style.position = "relative"), y) : null;
|
|
191
191
|
}
|
|
192
|
-
function
|
|
193
|
-
const o =
|
|
194
|
-
return t - o <
|
|
192
|
+
function nt(t, y, e, d = 4) {
|
|
193
|
+
const o = y / 2;
|
|
194
|
+
return t - o < d ? o + d : t + o > e - d ? e - o - d : t;
|
|
195
195
|
}
|
|
196
|
-
function wt(t,
|
|
196
|
+
function wt(t, y) {
|
|
197
197
|
const e = window.getComputedStyle(t);
|
|
198
|
-
let
|
|
198
|
+
let d = "";
|
|
199
199
|
for (let o = 0; o < e.length; o++) {
|
|
200
|
-
const
|
|
201
|
-
let
|
|
202
|
-
if (
|
|
203
|
-
if (
|
|
204
|
-
|
|
200
|
+
const B = e[o];
|
|
201
|
+
let $ = e.getPropertyValue(B);
|
|
202
|
+
if ($ && $.indexOf("url(") !== -1 && !/url\(["']?data:/.test($))
|
|
203
|
+
if (B === "background-image" || B === "background" || B === "mask-image" || B === "border-image" || B === "border-image-source")
|
|
204
|
+
$ = "none";
|
|
205
205
|
else
|
|
206
206
|
continue;
|
|
207
|
-
|
|
207
|
+
d += `${B}:${$};`;
|
|
208
208
|
}
|
|
209
|
-
|
|
209
|
+
y.setAttribute("style", d);
|
|
210
210
|
}
|
|
211
|
-
function
|
|
212
|
-
wt(t,
|
|
213
|
-
const e = t.querySelectorAll("*"),
|
|
211
|
+
function re(t, y) {
|
|
212
|
+
wt(t, y);
|
|
213
|
+
const e = t.querySelectorAll("*"), d = y.querySelectorAll("*");
|
|
214
214
|
for (let o = 0; o < e.length; o++)
|
|
215
|
-
|
|
215
|
+
d[o] && wt(e[o], d[o]);
|
|
216
216
|
}
|
|
217
|
-
function
|
|
218
|
-
const e = t.querySelectorAll("canvas"),
|
|
219
|
-
e.forEach((o,
|
|
220
|
-
if (!
|
|
221
|
-
const
|
|
217
|
+
function ne(t, y) {
|
|
218
|
+
const e = t.querySelectorAll("canvas"), d = y.querySelectorAll("canvas");
|
|
219
|
+
e.forEach((o, B) => {
|
|
220
|
+
if (!d[B]) return;
|
|
221
|
+
const $ = document.createElement("img");
|
|
222
222
|
try {
|
|
223
|
-
|
|
223
|
+
$.src = o.toDataURL("image/png");
|
|
224
224
|
} catch {
|
|
225
225
|
return;
|
|
226
226
|
}
|
|
227
|
-
const
|
|
228
|
-
|
|
227
|
+
const R = o.getBoundingClientRect();
|
|
228
|
+
$.setAttribute("style", `width:${R.width}px;height:${R.height}px;display:block;`), d[B].replaceWith($);
|
|
229
229
|
});
|
|
230
230
|
}
|
|
231
|
-
async function
|
|
231
|
+
async function ct(t, y = {}) {
|
|
232
232
|
if (!t) return;
|
|
233
233
|
const {
|
|
234
234
|
nomeArquivo: e = "componente.png",
|
|
235
|
-
escala:
|
|
235
|
+
escala: d = 2,
|
|
236
236
|
corFundo: o = null
|
|
237
|
-
} =
|
|
238
|
-
|
|
239
|
-
const w = new XMLSerializer().serializeToString(
|
|
240
|
-
await new Promise((
|
|
241
|
-
|
|
237
|
+
} = y, B = t.getBoundingClientRect(), $ = Math.ceil(B.width), R = Math.ceil(B.height), I = t.cloneNode(!0);
|
|
238
|
+
re(t, I), ne(t, I), I.style.margin = "0", I.style.transform = "none";
|
|
239
|
+
const w = new XMLSerializer().serializeToString(I), F = `<svg xmlns="http://www.w3.org/2000/svg" width="${$}" height="${R}"><foreignObject width="100%" height="100%"><div xmlns="http://www.w3.org/1999/xhtml" style="width:${$}px;height:${R}px;">` + w + "</div></foreignObject></svg>", Q = "data:image/svg+xml;base64," + (typeof window < "u" && window.btoa ? window.btoa(unescape(encodeURIComponent(F))) : ""), X = new Image();
|
|
240
|
+
await new Promise((j, G) => {
|
|
241
|
+
X.onload = j, X.onerror = G, X.src = Q;
|
|
242
242
|
});
|
|
243
|
-
const
|
|
244
|
-
|
|
245
|
-
const
|
|
246
|
-
|
|
247
|
-
let
|
|
243
|
+
const _ = document.createElement("canvas");
|
|
244
|
+
_.width = $ * d, _.height = R * d;
|
|
245
|
+
const K = _.getContext("2d");
|
|
246
|
+
K.scale(d, d), o && (K.fillStyle = o, K.fillRect(0, 0, $, R)), K.drawImage(X, 0, 0);
|
|
247
|
+
let p;
|
|
248
248
|
try {
|
|
249
|
-
|
|
250
|
-
} catch (
|
|
251
|
-
console.error("Falha ao exportar imagem: canvas contaminado.",
|
|
249
|
+
p = _.toDataURL("image/png");
|
|
250
|
+
} catch (j) {
|
|
251
|
+
console.error("Falha ao exportar imagem: canvas contaminado.", j);
|
|
252
252
|
return;
|
|
253
253
|
}
|
|
254
|
-
const
|
|
255
|
-
|
|
254
|
+
const E = document.createElement("a");
|
|
255
|
+
E.download = e, E.href = p, document.body.appendChild(E), E.click(), document.body.removeChild(E);
|
|
256
256
|
}
|
|
257
|
-
const
|
|
257
|
+
const dt = '<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></svg>', le = { class: "card-linhas__header flex flex-column" }, se = { class: "card-linhas__topo flex align-items-start justify-content-between gap-3" }, ie = {
|
|
258
258
|
key: 0,
|
|
259
259
|
class: "nc-legendas-flex flex flex-column"
|
|
260
|
-
},
|
|
260
|
+
}, ce = {
|
|
261
261
|
key: 1,
|
|
262
262
|
class: "nc-actions inline-flex align-items-center gap-2"
|
|
263
|
-
},
|
|
263
|
+
}, de = ["innerHTML"], ue = {
|
|
264
264
|
key: 0,
|
|
265
265
|
class: "card-linhas__titulos mt-3 mb-2 flex flex-column"
|
|
266
|
-
},
|
|
266
|
+
}, fe = { class: "card-linhas__chart flex-1" }, pe = {
|
|
267
267
|
key: 0,
|
|
268
268
|
class: "card-linhas__footer mt-3"
|
|
269
|
-
},
|
|
269
|
+
}, ge = {
|
|
270
270
|
__name: "CardLinhas",
|
|
271
271
|
props: {
|
|
272
272
|
legenda: { type: String, default: null },
|
|
@@ -317,76 +317,76 @@ const ct = '<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewB
|
|
|
317
317
|
nomeArquivoExport: { type: String, default: "card-linhas.png" }
|
|
318
318
|
},
|
|
319
319
|
emits: ["botaoAcao", "exportado"],
|
|
320
|
-
setup(t, { emit:
|
|
321
|
-
const e = t,
|
|
320
|
+
setup(t, { emit: y }) {
|
|
321
|
+
const e = t, d = y, { palette: o, cardStyle: B } = it(e), { formatar: $ } = pt(e), R = ot(null), I = dt;
|
|
322
322
|
async function w() {
|
|
323
|
-
await
|
|
323
|
+
await ct(R.value, {
|
|
324
324
|
nomeArquivo: e.nomeArquivoExport,
|
|
325
325
|
corFundo: o.value.bg !== "transparent" ? o.value.bg : null
|
|
326
|
-
}),
|
|
326
|
+
}), d("exportado");
|
|
327
327
|
}
|
|
328
|
-
const
|
|
329
|
-
valor:
|
|
330
|
-
rotulo:
|
|
331
|
-
cor:
|
|
332
|
-
corRotulo:
|
|
333
|
-
corTexto:
|
|
334
|
-
tracejado:
|
|
335
|
-
espessura:
|
|
336
|
-
}) : []),
|
|
337
|
-
let
|
|
338
|
-
const K = {
|
|
328
|
+
const F = M(() => `card-linhas--${e.direcao}`), z = M(() => e.linhasReferencia ? (Array.isArray(e.linhasReferencia) ? e.linhasReferencia : [e.linhasReferencia]).filter((c) => c && (typeof c == "number" || typeof c.valor == "number")).map((c) => typeof c == "number" ? { valor: c, rotulo: null, cor: "#0F172A", corRotulo: "#0F172A", corTexto: "#FFFFFF", tracejado: [6, 6], espessura: 1 } : {
|
|
329
|
+
valor: c.valor,
|
|
330
|
+
rotulo: c.rotulo ?? null,
|
|
331
|
+
cor: c.cor || "#0F172A",
|
|
332
|
+
corRotulo: c.corRotulo || c.cor || "#0F172A",
|
|
333
|
+
corTexto: c.corTexto || "#FFFFFF",
|
|
334
|
+
tracejado: c.tracejado || [6, 6],
|
|
335
|
+
espessura: c.espessura ?? 1
|
|
336
|
+
}) : []), Q = [];
|
|
337
|
+
let X = null;
|
|
338
|
+
const K = [{
|
|
339
339
|
id: "linhaReferencia",
|
|
340
340
|
afterDatasetsDraw(u) {
|
|
341
|
-
const
|
|
342
|
-
if (
|
|
343
|
-
const { ctx:
|
|
344
|
-
|
|
345
|
-
const
|
|
346
|
-
if (
|
|
347
|
-
|
|
341
|
+
const c = z.value;
|
|
342
|
+
if (Q.length = 0, !c.length) return;
|
|
343
|
+
const { ctx: a, chartArea: b, scales: v } = u, i = v.y;
|
|
344
|
+
i && c.forEach((f) => {
|
|
345
|
+
const n = i.getPixelForValue(f.valor);
|
|
346
|
+
if (Q.push({ linha: f, pos: n, chartArea: b }), a.save(), a.beginPath(), a.setLineDash(f.tracejado), a.lineWidth = f.espessura, a.strokeStyle = f.cor, n < b.top || n > b.bottom) {
|
|
347
|
+
a.restore();
|
|
348
348
|
return;
|
|
349
349
|
}
|
|
350
|
-
if (
|
|
351
|
-
|
|
352
|
-
const
|
|
353
|
-
let
|
|
354
|
-
|
|
350
|
+
if (a.moveTo(b.left, n), a.lineTo(b.right, n), a.stroke(), a.setLineDash([]), f.rotulo) {
|
|
351
|
+
a.font = "600 11px 'Inter', sans-serif";
|
|
352
|
+
const m = 8, h = 5, T = a.measureText(f.rotulo).width, q = 12, C = T + m * 2, V = q + h * 2, S = V / 2;
|
|
353
|
+
let P = b.left - C - 6, O = n - V / 2;
|
|
354
|
+
P < 0 && (P = b.left + 6), a.fillStyle = f.corRotulo, a.beginPath(), a.roundRect ? a.roundRect(P, O, C, V, S) : (a.moveTo(P + S, O), a.lineTo(P + C - S, O), a.quadraticCurveTo(P + C, O, P + C, O + S), a.lineTo(P + C, O + V - S), a.quadraticCurveTo(P + C, O + V, P + C - S, O + V), a.lineTo(P + S, O + V), a.quadraticCurveTo(P, O + V, P, O + V - S), a.lineTo(P, O + S), a.quadraticCurveTo(P, O, P + S, O)), a.fill(), a.fillStyle = f.corTexto, a.textBaseline = "middle", a.textAlign = "center", a.fillText(f.rotulo, P + C / 2, O + V / 2);
|
|
355
355
|
}
|
|
356
|
-
|
|
356
|
+
a.restore();
|
|
357
357
|
});
|
|
358
358
|
},
|
|
359
|
-
beforeEvent(u,
|
|
360
|
-
if (!
|
|
361
|
-
|
|
359
|
+
beforeEvent(u, c) {
|
|
360
|
+
if (!Q.length) {
|
|
361
|
+
X = null;
|
|
362
362
|
return;
|
|
363
363
|
}
|
|
364
|
-
const
|
|
365
|
-
if (!
|
|
366
|
-
|
|
364
|
+
const a = c.event;
|
|
365
|
+
if (!a || a.type === "mouseout" || a.x == null || a.y == null) {
|
|
366
|
+
X = null;
|
|
367
367
|
return;
|
|
368
368
|
}
|
|
369
|
-
const
|
|
370
|
-
let
|
|
371
|
-
for (const
|
|
372
|
-
const
|
|
373
|
-
|
|
369
|
+
const b = 8;
|
|
370
|
+
let v = null, i = 1 / 0;
|
|
371
|
+
for (const f of Q) {
|
|
372
|
+
const n = Math.abs(a.y - f.pos), m = a.x >= f.chartArea.left && a.x <= f.chartArea.right;
|
|
373
|
+
n <= b && m && n < i && (i = n, v = f);
|
|
374
374
|
}
|
|
375
|
-
|
|
375
|
+
X = v;
|
|
376
376
|
},
|
|
377
|
-
afterEvent(u,
|
|
378
|
-
if (!
|
|
379
|
-
const
|
|
380
|
-
if (!
|
|
381
|
-
const
|
|
382
|
-
if (!
|
|
383
|
-
let
|
|
384
|
-
if (!
|
|
385
|
-
|
|
377
|
+
afterEvent(u, c) {
|
|
378
|
+
if (!Q.length) return;
|
|
379
|
+
const a = c.event;
|
|
380
|
+
if (!a) return;
|
|
381
|
+
const b = rt(u);
|
|
382
|
+
if (!b) return;
|
|
383
|
+
let v = b.querySelector(".nc-tt-linhaRef");
|
|
384
|
+
if (!X) {
|
|
385
|
+
v && (v.style.opacity = "0");
|
|
386
386
|
return;
|
|
387
387
|
}
|
|
388
|
-
const
|
|
389
|
-
|
|
388
|
+
const i = X;
|
|
389
|
+
v || (v = document.createElement("div"), v.className = "nc-tt-linhaRef", Object.assign(v.style, {
|
|
390
390
|
position: "absolute",
|
|
391
391
|
pointerEvents: "none",
|
|
392
392
|
transform: "translate(-50%, calc(-100% - 12px))",
|
|
@@ -401,17 +401,17 @@ const ct = '<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewB
|
|
|
401
401
|
zIndex: "11",
|
|
402
402
|
fontFamily: "'Inter', sans-serif",
|
|
403
403
|
textAlign: "left"
|
|
404
|
-
}),
|
|
405
|
-
const
|
|
406
|
-
|
|
407
|
-
const
|
|
408
|
-
|
|
409
|
-
const
|
|
410
|
-
let
|
|
411
|
-
const
|
|
412
|
-
|
|
404
|
+
}), b.appendChild(v));
|
|
405
|
+
const f = i.linha.cor || "#0F172A", n = $(i.linha.valor), m = i.linha.rotulo;
|
|
406
|
+
v.innerHTML = (m ? `<div style="font-size:9px;font-weight:500;color:#94A3B8;letter-spacing:.04em;text-transform:uppercase;line-height:1;margin-bottom:4px;">${m}</div>` : "") + `<div style="display:flex;align-items:center;gap:6px;"><span style="width:6px;height:6px;border-radius:999px;background:${f};box-shadow:0 0 0 2px ${D(f, 0.15)};flex:0 0 auto;"></span><span style="font-size:12px;font-weight:700;color:#0F172A;letter-spacing:-.01em;line-height:1.1;">${n}</span></div>`;
|
|
407
|
+
const h = u.canvas;
|
|
408
|
+
v.style.opacity = "1", v.style.visibility = "hidden", v.style.left = "0px", v.style.top = "0px";
|
|
409
|
+
const H = v.offsetWidth, T = v.offsetHeight, q = 4, C = h.offsetLeft + a.x, V = h.offsetTop + i.pos, S = nt(C, H, b.clientWidth, q);
|
|
410
|
+
let P = V;
|
|
411
|
+
const O = T + 16 + q;
|
|
412
|
+
P < O && (P = O), v.style.left = S + "px", v.style.top = P + "px", v.style.visibility = "visible";
|
|
413
413
|
}
|
|
414
|
-
}
|
|
414
|
+
}], p = M(() => ({
|
|
415
415
|
labels: e.data.map((u) => u.rotulo),
|
|
416
416
|
datasets: [
|
|
417
417
|
{
|
|
@@ -421,10 +421,10 @@ const ct = '<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewB
|
|
|
421
421
|
borderJoinStyle: "round",
|
|
422
422
|
borderCapStyle: "round",
|
|
423
423
|
backgroundColor: (u) => {
|
|
424
|
-
const { chart:
|
|
425
|
-
if (!
|
|
426
|
-
const
|
|
427
|
-
return
|
|
424
|
+
const { chart: c } = u, { ctx: a, chartArea: b } = c;
|
|
425
|
+
if (!b) return "transparent";
|
|
426
|
+
const v = e.corDetalhes || "#0400FF", i = "#7C7C7C", f = a.createLinearGradient(0, b.top, 0, b.bottom);
|
|
427
|
+
return f.addColorStop(0.16, D(v, 0.2)), f.addColorStop(1, D(i, 0)), f;
|
|
428
428
|
},
|
|
429
429
|
fill: !0,
|
|
430
430
|
tension: 0.45,
|
|
@@ -437,46 +437,46 @@ const ct = '<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewB
|
|
|
437
437
|
}
|
|
438
438
|
]
|
|
439
439
|
}));
|
|
440
|
-
function
|
|
441
|
-
const { chart:
|
|
442
|
-
if (!
|
|
443
|
-
const
|
|
444
|
-
if (
|
|
445
|
-
|
|
440
|
+
function E(u) {
|
|
441
|
+
const { chart: c, tooltip: a } = u, b = rt(c);
|
|
442
|
+
if (!b) return;
|
|
443
|
+
const v = gt(b);
|
|
444
|
+
if (a.opacity === 0 || X) {
|
|
445
|
+
v.style.opacity = "0";
|
|
446
446
|
return;
|
|
447
447
|
}
|
|
448
|
-
const
|
|
449
|
-
|
|
450
|
-
const { offsetLeft:
|
|
451
|
-
|
|
452
|
-
const
|
|
453
|
-
let
|
|
454
|
-
|
|
455
|
-
const
|
|
456
|
-
if (
|
|
457
|
-
const
|
|
458
|
-
|
|
448
|
+
const i = a.title || [], f = (a.body || []).flatMap((Z) => Z.lines), n = v.querySelector(".nc-tt__content"), m = e.corDetalhes || "#3B82F6";
|
|
449
|
+
n.innerHTML = `<div style="font-size:9px;font-weight:500;color:#94A3B8;letter-spacing:.04em;text-transform:uppercase;line-height:1;margin-bottom:4px;">${i.join(" ")}</div><div style="display:flex;align-items:center;gap:6px;"><span style="width:6px;height:6px;border-radius:999px;background:${m};box-shadow:0 0 0 2px ${D(m, 0.15)};flex:0 0 auto;"></span><span style="font-size:12px;font-weight:700;color:#0F172A;letter-spacing:-.01em;line-height:1.1;">${f.join(" ")}</span></div>`;
|
|
450
|
+
const { offsetLeft: h, offsetTop: H } = c.canvas;
|
|
451
|
+
v.style.opacity = "1", v.style.visibility = "hidden", v.style.left = "0px", v.style.top = "0px";
|
|
452
|
+
const T = v.offsetWidth, q = v.offsetHeight, C = 4, V = h + a.caretX, S = H + a.caretY, P = nt(V, T, b.clientWidth, C), O = q + 16 + C, tt = S < O;
|
|
453
|
+
let U;
|
|
454
|
+
tt ? (v.style.transform = "translateX(-50%) translateY(16px)", U = S) : (v.style.transform = "translate(-50%, calc(-100% - 16px))", U = S), v.style.left = P + "px", v.style.top = U + "px";
|
|
455
|
+
const N = v.querySelector(".nc-tt__caret");
|
|
456
|
+
if (N) {
|
|
457
|
+
const Z = V - P, W = T / 2, J = Math.max(-W + 8, Math.min(W - 8, Z));
|
|
458
|
+
N.style.left = `calc(50% + ${J}px)`, tt ? (N.style.bottom = "", N.style.top = "-5px", N.style.borderRight = "", N.style.borderBottom = "", N.style.borderLeft = "1px solid rgba(15,23,42,.06)", N.style.borderTop = "1px solid rgba(15,23,42,.06)") : (N.style.top = "", N.style.bottom = "-5px", N.style.borderLeft = "", N.style.borderTop = "", N.style.borderRight = "1px solid rgba(15,23,42,.06)", N.style.borderBottom = "1px solid rgba(15,23,42,.06)");
|
|
459
459
|
}
|
|
460
|
-
|
|
460
|
+
v.style.visibility = "visible";
|
|
461
461
|
}
|
|
462
|
-
const
|
|
462
|
+
const j = M(() => ({
|
|
463
463
|
responsive: !0,
|
|
464
464
|
maintainAspectRatio: !1,
|
|
465
465
|
interaction: { intersect: !1, mode: "index" },
|
|
466
466
|
layout: {
|
|
467
|
-
padding: { top:
|
|
467
|
+
padding: { top: z.value.length ? 24 : 0, right: 0, bottom: 0, left: 0 }
|
|
468
468
|
},
|
|
469
469
|
plugins: {
|
|
470
470
|
legend: { display: !1 },
|
|
471
471
|
tooltip: {
|
|
472
472
|
enabled: !1,
|
|
473
|
-
external:
|
|
473
|
+
external: E,
|
|
474
474
|
callbacks: {
|
|
475
475
|
title: (u) => {
|
|
476
|
-
var
|
|
477
|
-
return ((
|
|
476
|
+
var c;
|
|
477
|
+
return ((c = u[0]) == null ? void 0 : c.label) ?? "";
|
|
478
478
|
},
|
|
479
|
-
label: (u) =>
|
|
479
|
+
label: (u) => $(u.parsed.y)
|
|
480
480
|
}
|
|
481
481
|
}
|
|
482
482
|
},
|
|
@@ -499,112 +499,112 @@ const ct = '<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewB
|
|
|
499
499
|
display: !1,
|
|
500
500
|
grid: { display: !1 },
|
|
501
501
|
beginAtZero: !0,
|
|
502
|
-
suggestedMax:
|
|
502
|
+
suggestedMax: z.value.length ? Math.max(...z.value.map((u) => u.valor)) : void 0
|
|
503
503
|
}
|
|
504
504
|
}
|
|
505
505
|
}));
|
|
506
|
-
function
|
|
507
|
-
|
|
506
|
+
function G() {
|
|
507
|
+
d("botaoAcao");
|
|
508
508
|
}
|
|
509
|
-
return (u,
|
|
509
|
+
return (u, c) => (l(), s("div", {
|
|
510
510
|
ref_key: "cardRef",
|
|
511
|
-
ref:
|
|
512
|
-
class:
|
|
513
|
-
style:
|
|
511
|
+
ref: R,
|
|
512
|
+
class: lt(["card-linhas p-4 flex", F.value]),
|
|
513
|
+
style: x(r(B))
|
|
514
514
|
}, [
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
u.$slots.legenda || t.legenda || u.$slots.sublegenda || t.sublegenda ? (
|
|
518
|
-
u.$slots.legenda || t.legenda ? (
|
|
515
|
+
k("div", le, [
|
|
516
|
+
k("div", se, [
|
|
517
|
+
u.$slots.legenda || t.legenda || u.$slots.sublegenda || t.sublegenda ? (l(), s("div", ie, [
|
|
518
|
+
u.$slots.legenda || t.legenda ? (l(), s("div", {
|
|
519
519
|
key: 0,
|
|
520
520
|
class: "text-xs font-medium",
|
|
521
|
-
style:
|
|
521
|
+
style: x({ color: r(o).text, opacity: 0.85 })
|
|
522
522
|
}, [
|
|
523
|
-
|
|
524
|
-
|
|
523
|
+
L(u.$slots, "legenda", {}, () => [
|
|
524
|
+
Y(A(t.legenda), 1)
|
|
525
525
|
], !0)
|
|
526
|
-
], 4)) :
|
|
527
|
-
u.$slots.sublegenda || t.sublegenda ? (
|
|
526
|
+
], 4)) : g("", !0),
|
|
527
|
+
u.$slots.sublegenda || t.sublegenda ? (l(), s("div", {
|
|
528
528
|
key: 1,
|
|
529
529
|
class: "text-xs",
|
|
530
|
-
style:
|
|
530
|
+
style: x({ color: r(o).muted })
|
|
531
531
|
}, [
|
|
532
|
-
|
|
533
|
-
|
|
532
|
+
L(u.$slots, "sublegenda", {}, () => [
|
|
533
|
+
Y(A(t.sublegenda), 1)
|
|
534
534
|
], !0)
|
|
535
|
-
], 4)) :
|
|
536
|
-
])) :
|
|
537
|
-
u.$slots.actions || t.botaoVisivel || t.exportar ? (
|
|
538
|
-
|
|
539
|
-
t.botaoVisivel ? (
|
|
535
|
+
], 4)) : g("", !0)
|
|
536
|
+
])) : g("", !0),
|
|
537
|
+
u.$slots.actions || t.botaoVisivel || t.exportar ? (l(), s("div", ce, [
|
|
538
|
+
L(u.$slots, "actions", {}, () => [
|
|
539
|
+
t.botaoVisivel ? (l(), s("button", {
|
|
540
540
|
key: 0,
|
|
541
541
|
class: "nc-btn inline-flex align-items-center",
|
|
542
|
-
style:
|
|
543
|
-
onClick:
|
|
542
|
+
style: x({ color: r(o).text, borderColor: r(D)(r(o).text, 0.18) }),
|
|
543
|
+
onClick: G
|
|
544
544
|
}, [
|
|
545
|
-
|
|
546
|
-
], 4)) :
|
|
545
|
+
k("span", null, A(t.textoBotao), 1)
|
|
546
|
+
], 4)) : g("", !0)
|
|
547
547
|
], !0),
|
|
548
|
-
t.exportar ? (
|
|
548
|
+
t.exportar ? (l(), s("button", {
|
|
549
549
|
key: 0,
|
|
550
550
|
type: "button",
|
|
551
551
|
class: "nc-exportar inline-flex align-items-center justify-content-center",
|
|
552
|
-
style:
|
|
552
|
+
style: x({ color: r(o).muted, borderColor: r(D)(r(o).text, 0.18) }),
|
|
553
553
|
title: "Exportar como imagem",
|
|
554
554
|
"aria-label": "Exportar como imagem",
|
|
555
555
|
onClick: w,
|
|
556
|
-
innerHTML: r(
|
|
557
|
-
}, null, 12,
|
|
558
|
-
])) :
|
|
556
|
+
innerHTML: r(I)
|
|
557
|
+
}, null, 12, de)) : g("", !0)
|
|
558
|
+
])) : g("", !0)
|
|
559
559
|
]),
|
|
560
|
-
u.$slots.titulo || t.titulo || u.$slots.descricao || t.descricao ? (
|
|
561
|
-
u.$slots.titulo || t.titulo ? (
|
|
560
|
+
u.$slots.titulo || t.titulo || u.$slots.descricao || t.descricao ? (l(), s("div", ue, [
|
|
561
|
+
u.$slots.titulo || t.titulo ? (l(), s("div", {
|
|
562
562
|
key: 0,
|
|
563
563
|
class: "m-0 text-3xl font-semibold",
|
|
564
|
-
style:
|
|
564
|
+
style: x({ color: r(o).text, lineHeight: "33px", letterSpacing: "-1px" })
|
|
565
565
|
}, [
|
|
566
|
-
|
|
567
|
-
|
|
566
|
+
L(u.$slots, "titulo", {}, () => [
|
|
567
|
+
Y(A(t.titulo), 1)
|
|
568
568
|
], !0)
|
|
569
|
-
], 4)) :
|
|
570
|
-
u.$slots.descricao || t.descricao ? (
|
|
569
|
+
], 4)) : g("", !0),
|
|
570
|
+
u.$slots.descricao || t.descricao ? (l(), s("div", {
|
|
571
571
|
key: 1,
|
|
572
572
|
class: "text-sm mt-1",
|
|
573
|
-
style:
|
|
573
|
+
style: x({ color: r(o).muted })
|
|
574
574
|
}, [
|
|
575
|
-
|
|
576
|
-
|
|
575
|
+
L(u.$slots, "descricao", {}, () => [
|
|
576
|
+
Y(A(t.descricao), 1)
|
|
577
577
|
], !0)
|
|
578
|
-
], 4)) :
|
|
579
|
-
])) :
|
|
578
|
+
], 4)) : g("", !0)
|
|
579
|
+
])) : g("", !0)
|
|
580
580
|
]),
|
|
581
|
-
|
|
582
|
-
|
|
581
|
+
k("div", fe, [
|
|
582
|
+
ft(st, {
|
|
583
583
|
type: "line",
|
|
584
|
-
data:
|
|
585
|
-
options:
|
|
586
|
-
plugins:
|
|
584
|
+
data: p.value,
|
|
585
|
+
options: j.value,
|
|
586
|
+
plugins: K,
|
|
587
587
|
height: t.height
|
|
588
|
-
}, null, 8, ["data", "options", "
|
|
588
|
+
}, null, 8, ["data", "options", "height"])
|
|
589
589
|
]),
|
|
590
|
-
u.$slots.footer ? (
|
|
591
|
-
|
|
592
|
-
])) :
|
|
590
|
+
u.$slots.footer ? (l(), s("div", pe, [
|
|
591
|
+
L(u.$slots, "footer", {}, void 0, !0)
|
|
592
|
+
])) : g("", !0)
|
|
593
593
|
], 6));
|
|
594
594
|
}
|
|
595
|
-
},
|
|
595
|
+
}, ye = /* @__PURE__ */ at(ge, [["__scopeId", "data-v-513bd6fe"]]), me = { class: "card-pizza__topo flex align-items-start justify-content-between gap-3" }, be = {
|
|
596
596
|
key: 0,
|
|
597
597
|
class: "nc-legendas-flex flex flex-column"
|
|
598
|
-
},
|
|
598
|
+
}, he = {
|
|
599
599
|
key: 1,
|
|
600
600
|
class: "nc-actions inline-flex align-items-center gap-2"
|
|
601
|
-
},
|
|
601
|
+
}, xe = ["innerHTML"], ve = { class: "card-pizza__corpo flex align-items-center" }, $e = { class: "nc-tabela flex flex-column" }, Se = { class: "nc-tabela-valor" }, ke = { class: "nc-tabela-rotulo inline-flex align-items-center gap-2" }, Ce = { class: "nc-tabela-valor" }, Be = { class: "card-pizza__chart-wrap flex align-items-center justify-content-center" }, Ae = { class: "card-pizza__chart" }, Re = {
|
|
602
602
|
key: 0,
|
|
603
603
|
class: "nc-centro flex flex-column align-items-center justify-content-center"
|
|
604
|
-
},
|
|
604
|
+
}, we = {
|
|
605
605
|
key: 0,
|
|
606
606
|
class: "card-pizza__footer mt-3"
|
|
607
|
-
},
|
|
607
|
+
}, Te = {
|
|
608
608
|
__name: "CardPizza",
|
|
609
609
|
props: {
|
|
610
610
|
legenda: { type: String, default: null },
|
|
@@ -653,23 +653,23 @@ const ct = '<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewB
|
|
|
653
653
|
nomeArquivoExport: { type: String, default: "card-pizza.png" }
|
|
654
654
|
},
|
|
655
655
|
emits: ["botaoAcao", "exportado"],
|
|
656
|
-
setup(t, { emit:
|
|
657
|
-
const e = t,
|
|
658
|
-
async function
|
|
659
|
-
await
|
|
656
|
+
setup(t, { emit: y }) {
|
|
657
|
+
const e = t, d = y, { palette: o, cardStyle: B } = it(e), { formatar: $ } = pt(e), R = ot(null);
|
|
658
|
+
async function I() {
|
|
659
|
+
await ct(R.value, {
|
|
660
660
|
nomeArquivo: e.nomeArquivoExport,
|
|
661
661
|
corFundo: o.value.bg !== "transparent" ? o.value.bg : null
|
|
662
|
-
}),
|
|
662
|
+
}), d("exportado");
|
|
663
663
|
}
|
|
664
|
-
const w =
|
|
665
|
-
const
|
|
666
|
-
return e.data.map((
|
|
667
|
-
}),
|
|
668
|
-
labels: e.data.map((
|
|
664
|
+
const w = M(() => `card-pizza--${e.direcao}`), F = M(() => {
|
|
665
|
+
const p = bt(e.corDetalhes, e.data.length);
|
|
666
|
+
return e.data.map((E, j) => E.cor ?? p[j]);
|
|
667
|
+
}), z = M(() => ({
|
|
668
|
+
labels: e.data.map((p) => p.rotulo),
|
|
669
669
|
datasets: [
|
|
670
670
|
{
|
|
671
|
-
data: e.data.map((
|
|
672
|
-
backgroundColor:
|
|
671
|
+
data: e.data.map((p) => p.quantidade),
|
|
672
|
+
backgroundColor: F.value,
|
|
673
673
|
borderWidth: 0,
|
|
674
674
|
borderColor: "transparent",
|
|
675
675
|
hoverOffset: 6,
|
|
@@ -678,24 +678,24 @@ const ct = '<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewB
|
|
|
678
678
|
}
|
|
679
679
|
]
|
|
680
680
|
}));
|
|
681
|
-
function
|
|
682
|
-
const { chart:
|
|
683
|
-
if (!
|
|
684
|
-
const u = gt(
|
|
685
|
-
if (
|
|
681
|
+
function Q(p) {
|
|
682
|
+
const { chart: E, tooltip: j } = p, G = rt(E);
|
|
683
|
+
if (!G) return;
|
|
684
|
+
const u = gt(G);
|
|
685
|
+
if (j.opacity === 0) {
|
|
686
686
|
u.style.opacity = "0";
|
|
687
687
|
return;
|
|
688
688
|
}
|
|
689
|
-
const
|
|
690
|
-
|
|
691
|
-
const { offsetLeft:
|
|
689
|
+
const c = j.title || [], a = j.dataPoints && j.dataPoints[0], b = a ? F.value[a.dataIndex] : "#3B82F6", v = a ? $(a.parsed) : "", i = u.querySelector(".nc-tt__content");
|
|
690
|
+
i.innerHTML = `<div style="font-size:9px;font-weight:500;color:#94A3B8;letter-spacing:.04em;text-transform:uppercase;line-height:1;margin-bottom:4px;">${c.join(" ")}</div><div style="display:flex;align-items:center;gap:6px;"><span style="width:6px;height:6px;border-radius:999px;background:${b};box-shadow:0 0 0 2px ${D(b, 0.15)};flex:0 0 auto;"></span><span style="font-size:12px;font-weight:700;color:#0F172A;letter-spacing:-.01em;line-height:1.1;">${v}</span></div>`;
|
|
691
|
+
const { offsetLeft: f, offsetTop: n } = E.canvas;
|
|
692
692
|
u.style.opacity = "1", u.style.visibility = "hidden", u.style.left = "0px", u.style.top = "0px";
|
|
693
|
-
const
|
|
694
|
-
|
|
695
|
-
const
|
|
696
|
-
|
|
693
|
+
const m = u.offsetWidth, h = u.offsetHeight, H = 4, T = f + j.caretX, q = n + j.caretY, C = nt(T, m, G.clientWidth, H), V = q < h + 16 + H;
|
|
694
|
+
u.style.transform = V ? "translate(-50%, 16px)" : "translate(-50%, calc(-100% - 16px))";
|
|
695
|
+
const S = u.querySelector(".nc-tt__caret");
|
|
696
|
+
S && (V ? (S.style.bottom = "", S.style.top = "-5px", S.style.borderRight = "", S.style.borderBottom = "", S.style.borderLeft = "1px solid rgba(15,23,42,.06)", S.style.borderTop = "1px solid rgba(15,23,42,.06)") : (S.style.top = "", S.style.bottom = "-5px", S.style.borderLeft = "", S.style.borderTop = "", S.style.borderRight = "1px solid rgba(15,23,42,.06)", S.style.borderBottom = "1px solid rgba(15,23,42,.06)")), u.style.left = C + "px", u.style.top = q + "px", u.style.visibility = "visible";
|
|
697
697
|
}
|
|
698
|
-
const
|
|
698
|
+
const X = M(() => ({
|
|
699
699
|
responsive: !0,
|
|
700
700
|
maintainAspectRatio: !1,
|
|
701
701
|
cutout: e.cutout,
|
|
@@ -704,145 +704,145 @@ const ct = '<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewB
|
|
|
704
704
|
legend: { display: !1 },
|
|
705
705
|
tooltip: {
|
|
706
706
|
enabled: !1,
|
|
707
|
-
external:
|
|
707
|
+
external: Q,
|
|
708
708
|
callbacks: {
|
|
709
|
-
title: (
|
|
710
|
-
var
|
|
711
|
-
return ((
|
|
709
|
+
title: (p) => {
|
|
710
|
+
var E;
|
|
711
|
+
return ((E = p[0]) == null ? void 0 : E.label) ?? "";
|
|
712
712
|
},
|
|
713
|
-
label: (
|
|
713
|
+
label: (p) => $(p.parsed)
|
|
714
714
|
}
|
|
715
715
|
}
|
|
716
716
|
}
|
|
717
717
|
}));
|
|
718
|
-
function
|
|
719
|
-
|
|
718
|
+
function _() {
|
|
719
|
+
d("botaoAcao");
|
|
720
720
|
}
|
|
721
|
-
const
|
|
722
|
-
return (
|
|
721
|
+
const K = dt;
|
|
722
|
+
return (p, E) => (l(), s("div", {
|
|
723
723
|
ref_key: "cardRef",
|
|
724
|
-
ref:
|
|
725
|
-
class:
|
|
726
|
-
style:
|
|
724
|
+
ref: R,
|
|
725
|
+
class: lt(["card-pizza p-4 flex flex-column", w.value]),
|
|
726
|
+
style: x(r(B))
|
|
727
727
|
}, [
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
728
|
+
k("div", me, [
|
|
729
|
+
p.$slots.legenda || t.legenda || p.$slots.sublegenda || t.sublegenda ? (l(), s("div", be, [
|
|
730
|
+
p.$slots.legenda || t.legenda ? (l(), s("div", {
|
|
731
731
|
key: 0,
|
|
732
732
|
class: "text-xs font-medium",
|
|
733
|
-
style:
|
|
733
|
+
style: x({ color: r(o).text, opacity: 0.95 })
|
|
734
734
|
}, [
|
|
735
|
-
|
|
736
|
-
|
|
735
|
+
L(p.$slots, "legenda", {}, () => [
|
|
736
|
+
Y(A(t.legenda), 1)
|
|
737
737
|
], !0)
|
|
738
|
-
], 4)) :
|
|
739
|
-
|
|
738
|
+
], 4)) : g("", !0),
|
|
739
|
+
p.$slots.sublegenda || t.sublegenda ? (l(), s("div", {
|
|
740
740
|
key: 1,
|
|
741
741
|
class: "text-xs",
|
|
742
|
-
style:
|
|
742
|
+
style: x({ color: r(o).muted })
|
|
743
743
|
}, [
|
|
744
|
-
|
|
745
|
-
|
|
744
|
+
L(p.$slots, "sublegenda", {}, () => [
|
|
745
|
+
Y(A(t.sublegenda), 1)
|
|
746
746
|
], !0)
|
|
747
|
-
], 4)) :
|
|
748
|
-
])) :
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
t.botaoVisivel ? (
|
|
747
|
+
], 4)) : g("", !0)
|
|
748
|
+
])) : g("", !0),
|
|
749
|
+
p.$slots.actions || t.botaoVisivel || t.exportar ? (l(), s("div", he, [
|
|
750
|
+
L(p.$slots, "actions", {}, () => [
|
|
751
|
+
t.botaoVisivel ? (l(), s("button", {
|
|
752
752
|
key: 0,
|
|
753
753
|
class: "nc-btn inline-flex align-items-center",
|
|
754
|
-
style:
|
|
755
|
-
onClick:
|
|
754
|
+
style: x({ color: r(o).text, borderColor: r(D)(r(o).text, 0.18) }),
|
|
755
|
+
onClick: _
|
|
756
756
|
}, [
|
|
757
|
-
|
|
758
|
-
], 4)) :
|
|
757
|
+
k("span", null, A(t.textoBotao), 1)
|
|
758
|
+
], 4)) : g("", !0)
|
|
759
759
|
], !0),
|
|
760
|
-
t.exportar ? (
|
|
760
|
+
t.exportar ? (l(), s("button", {
|
|
761
761
|
key: 0,
|
|
762
762
|
type: "button",
|
|
763
763
|
class: "nc-exportar inline-flex align-items-center justify-content-center",
|
|
764
|
-
style:
|
|
764
|
+
style: x({ color: r(o).muted, borderColor: r(D)(r(o).text, 0.18) }),
|
|
765
765
|
title: "Exportar como imagem",
|
|
766
766
|
"aria-label": "Exportar como imagem",
|
|
767
|
-
onClick:
|
|
768
|
-
innerHTML: r(
|
|
769
|
-
}, null, 12,
|
|
770
|
-
])) :
|
|
767
|
+
onClick: I,
|
|
768
|
+
innerHTML: r(K)
|
|
769
|
+
}, null, 12, xe)) : g("", !0)
|
|
770
|
+
])) : g("", !0)
|
|
771
771
|
]),
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
t.mostrarCabecalho ? (
|
|
772
|
+
k("div", ve, [
|
|
773
|
+
k("div", $e, [
|
|
774
|
+
t.mostrarCabecalho ? (l(), s("div", {
|
|
775
775
|
key: 0,
|
|
776
776
|
class: "nc-tabela-cab flex align-items-center justify-content-between",
|
|
777
|
-
style:
|
|
777
|
+
style: x({ color: r(o).muted, borderColor: r(D)(r(o).muted, 0.25) })
|
|
778
778
|
}, [
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
], 4)) :
|
|
782
|
-
(
|
|
783
|
-
key:
|
|
779
|
+
k("span", null, A(t.rotuloCategoria), 1),
|
|
780
|
+
k("span", Se, A(t.rotuloQuantidade), 1)
|
|
781
|
+
], 4)) : g("", !0),
|
|
782
|
+
(l(!0), s(yt, null, mt(t.data, (j, G) => (l(), s("div", {
|
|
783
|
+
key: G,
|
|
784
784
|
class: "nc-tabela-linha flex align-items-center justify-content-between",
|
|
785
|
-
style:
|
|
785
|
+
style: x({ color: r(o).text })
|
|
786
786
|
}, [
|
|
787
|
-
|
|
788
|
-
|
|
787
|
+
k("span", ke, [
|
|
788
|
+
k("span", {
|
|
789
789
|
class: "nc-bolinha",
|
|
790
|
-
style:
|
|
790
|
+
style: x({ background: F.value[G] })
|
|
791
791
|
}, null, 4),
|
|
792
|
-
|
|
792
|
+
k("span", null, A(j.rotulo), 1)
|
|
793
793
|
]),
|
|
794
|
-
|
|
794
|
+
k("span", Ce, A(r($)(j.quantidade)), 1)
|
|
795
795
|
], 4))), 128))
|
|
796
796
|
]),
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
797
|
+
k("div", Be, [
|
|
798
|
+
k("div", Ae, [
|
|
799
|
+
ft(st, {
|
|
800
800
|
type: "doughnut",
|
|
801
|
-
data:
|
|
802
|
-
options:
|
|
801
|
+
data: z.value,
|
|
802
|
+
options: X.value,
|
|
803
803
|
height: t.height
|
|
804
804
|
}, null, 8, ["data", "options", "height"]),
|
|
805
|
-
|
|
806
|
-
|
|
805
|
+
p.$slots.titulo || t.titulo || p.$slots.descricao || t.descricao ? (l(), s("div", Re, [
|
|
806
|
+
p.$slots.titulo || t.titulo ? (l(), s("div", {
|
|
807
807
|
key: 0,
|
|
808
808
|
class: "nc-centro-titulo m-0 font-semibold",
|
|
809
|
-
style:
|
|
809
|
+
style: x({ color: r(o).text })
|
|
810
810
|
}, [
|
|
811
|
-
|
|
812
|
-
|
|
811
|
+
L(p.$slots, "titulo", {}, () => [
|
|
812
|
+
Y(A(t.titulo), 1)
|
|
813
813
|
], !0)
|
|
814
|
-
], 4)) :
|
|
815
|
-
|
|
814
|
+
], 4)) : g("", !0),
|
|
815
|
+
p.$slots.descricao || t.descricao ? (l(), s("div", {
|
|
816
816
|
key: 1,
|
|
817
817
|
class: "nc-centro-desc",
|
|
818
|
-
style:
|
|
818
|
+
style: x({ color: r(o).muted })
|
|
819
819
|
}, [
|
|
820
|
-
|
|
821
|
-
|
|
820
|
+
L(p.$slots, "descricao", {}, () => [
|
|
821
|
+
Y(A(t.descricao), 1)
|
|
822
822
|
], !0)
|
|
823
|
-
], 4)) :
|
|
824
|
-
])) :
|
|
823
|
+
], 4)) : g("", !0)
|
|
824
|
+
])) : g("", !0)
|
|
825
825
|
])
|
|
826
826
|
])
|
|
827
827
|
]),
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
])) :
|
|
828
|
+
p.$slots.footer ? (l(), s("div", we, [
|
|
829
|
+
L(p.$slots, "footer", {}, void 0, !0)
|
|
830
|
+
])) : g("", !0)
|
|
831
831
|
], 6));
|
|
832
832
|
}
|
|
833
|
-
},
|
|
833
|
+
}, qe = /* @__PURE__ */ at(Te, [["__scopeId", "data-v-e0fe217f"]]), Ee = { class: "card-barra__header flex flex-column" }, Fe = { class: "card-barra__topo flex align-items-start justify-content-between gap-3" }, Le = {
|
|
834
834
|
key: 0,
|
|
835
835
|
class: "nc-legendas-flex flex flex-column"
|
|
836
|
-
},
|
|
836
|
+
}, ze = {
|
|
837
837
|
key: 1,
|
|
838
838
|
class: "nc-actions inline-flex align-items-center gap-2"
|
|
839
|
-
},
|
|
839
|
+
}, Me = ["innerHTML"], je = {
|
|
840
840
|
key: 0,
|
|
841
841
|
class: "card-barra__titulos mt-3 mb-2 flex flex-column"
|
|
842
|
-
},
|
|
842
|
+
}, He = { class: "card-barra__chart flex-1" }, Ve = {
|
|
843
843
|
key: 0,
|
|
844
844
|
class: "card-barra__footer mt-3"
|
|
845
|
-
},
|
|
845
|
+
}, Ne = {
|
|
846
846
|
__name: "CardBarra",
|
|
847
847
|
props: {
|
|
848
848
|
legenda: { type: String, default: null },
|
|
@@ -908,63 +908,68 @@ const ct = '<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewB
|
|
|
908
908
|
corHover: { type: String, default: null }
|
|
909
909
|
},
|
|
910
910
|
emits: ["botaoAcao", "exportado"],
|
|
911
|
-
setup(t, { emit:
|
|
912
|
-
|
|
911
|
+
setup(t, { emit: y }) {
|
|
912
|
+
Vt((i) => ({
|
|
913
|
+
c9bf3d56: z.value
|
|
914
|
+
}));
|
|
915
|
+
const e = t, d = y, { palette: o, cardStyle: B } = it(e), { formatar: $ } = pt(e), R = ot(null), I = dt;
|
|
913
916
|
async function w() {
|
|
914
|
-
await
|
|
917
|
+
await ct(R.value, {
|
|
915
918
|
nomeArquivo: e.nomeArquivoExport,
|
|
916
919
|
corFundo: o.value.bg !== "transparent" ? o.value.bg : null
|
|
917
|
-
}),
|
|
920
|
+
}), d("exportado");
|
|
918
921
|
}
|
|
919
|
-
const
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
922
|
+
const F = M(() => `card-barra--${e.direcao}`), z = M(
|
|
923
|
+
() => typeof e.height == "number" ? `${e.height}px` : e.height
|
|
924
|
+
), Q = M(() => e.orientacao === "horizontal"), X = M(() => Array.isArray(e.series) && e.series.length > 0 ? e.series.map((i, f) => ({
|
|
925
|
+
nome: i.nome ?? `Série ${f + 1}`,
|
|
926
|
+
cor: i.cor || e.cores[f % e.cores.length],
|
|
927
|
+
dados: Array.isArray(i.dados) ? i.dados : []
|
|
928
|
+
})) : [{ nome: e.legenda || "Valores", cor: e.corDetalhes, dados: e.data }]), _ = M(() => {
|
|
929
|
+
const i = X.value[0];
|
|
930
|
+
return i ? i.dados.map((f) => f.rotulo) : [];
|
|
931
|
+
}), K = M(() => {
|
|
932
|
+
const i = X.value, f = i.length - 1, n = typeof e.larguraBarra == "number" ? e.larguraBarra : Number(e.larguraBarra) || 0.6, m = e.raioBarra, h = Q.value;
|
|
933
|
+
function H(T) {
|
|
934
|
+
if (!e.empilhado || i.length === 1) return m;
|
|
935
|
+
const q = T === 0, C = T === f;
|
|
931
936
|
return h ? {
|
|
932
|
-
topLeft:
|
|
933
|
-
bottomLeft:
|
|
937
|
+
topLeft: q ? m : 0,
|
|
938
|
+
bottomLeft: q ? m : 0,
|
|
934
939
|
topRight: C ? m : 0,
|
|
935
940
|
bottomRight: C ? m : 0
|
|
936
941
|
} : {
|
|
937
|
-
bottomLeft:
|
|
938
|
-
bottomRight:
|
|
942
|
+
bottomLeft: q ? m : 0,
|
|
943
|
+
bottomRight: q ? m : 0,
|
|
939
944
|
topLeft: C ? m : 0,
|
|
940
945
|
topRight: C ? m : 0
|
|
941
946
|
};
|
|
942
947
|
}
|
|
943
948
|
return {
|
|
944
|
-
labels:
|
|
945
|
-
datasets:
|
|
946
|
-
label:
|
|
947
|
-
data:
|
|
948
|
-
previstos:
|
|
949
|
-
backgroundColor:
|
|
950
|
-
hoverBackgroundColor: e.corHover ||
|
|
949
|
+
labels: _.value,
|
|
950
|
+
datasets: i.map((T, q) => ({
|
|
951
|
+
label: T.nome,
|
|
952
|
+
data: T.dados.map((C) => C.quantidade),
|
|
953
|
+
previstos: T.dados.map((C) => C.previsto != null ? C.previsto : null),
|
|
954
|
+
backgroundColor: D(T.cor, 0.72),
|
|
955
|
+
hoverBackgroundColor: e.corHover || T.cor,
|
|
951
956
|
borderWidth: 0,
|
|
952
|
-
borderRadius:
|
|
957
|
+
borderRadius: H(q),
|
|
953
958
|
borderSkipped: !1,
|
|
954
959
|
categoryPercentage: 1,
|
|
955
960
|
barPercentage: n
|
|
956
961
|
}))
|
|
957
962
|
};
|
|
958
963
|
});
|
|
959
|
-
function
|
|
960
|
-
|
|
964
|
+
function p(i, f) {
|
|
965
|
+
f ? Object.assign(i.style, {
|
|
961
966
|
top: "-5px",
|
|
962
967
|
bottom: "auto",
|
|
963
968
|
borderTop: "1px solid rgba(15,23,42,.06)",
|
|
964
969
|
borderLeft: "1px solid rgba(15,23,42,.06)",
|
|
965
970
|
borderRight: "none",
|
|
966
971
|
borderBottom: "none"
|
|
967
|
-
}) : Object.assign(
|
|
972
|
+
}) : Object.assign(i.style, {
|
|
968
973
|
bottom: "-5px",
|
|
969
974
|
top: "auto",
|
|
970
975
|
borderRight: "1px solid rgba(15,23,42,.06)",
|
|
@@ -973,41 +978,41 @@ const ct = '<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewB
|
|
|
973
978
|
borderLeft: "none"
|
|
974
979
|
});
|
|
975
980
|
}
|
|
976
|
-
let
|
|
977
|
-
function
|
|
978
|
-
var
|
|
979
|
-
const { chart:
|
|
981
|
+
let E = null;
|
|
982
|
+
function j(i) {
|
|
983
|
+
var kt, Ct;
|
|
984
|
+
const { chart: f, tooltip: n } = i, m = rt(f);
|
|
980
985
|
if (!m) return;
|
|
981
986
|
const h = gt(m, { caretFlexivel: !0 });
|
|
982
|
-
if (n.opacity === 0 ||
|
|
987
|
+
if (n.opacity === 0 || E) {
|
|
983
988
|
h.style.opacity = "0";
|
|
984
989
|
return;
|
|
985
990
|
}
|
|
986
|
-
const
|
|
987
|
-
var
|
|
988
|
-
const
|
|
989
|
-
return `<div style="display:flex;align-items:center;gap:6px;margin-top:2px;"><span style="width:6px;height:6px;border-radius:999px;background:${
|
|
990
|
-
}).join(""), V = (
|
|
991
|
-
let
|
|
991
|
+
const H = n.title || [], T = n.dataPoints || [], q = h.querySelector(".nc-tt__content"), C = T.map((et) => {
|
|
992
|
+
var Bt;
|
|
993
|
+
const ut = ((Bt = X.value[et.datasetIndex]) == null ? void 0 : Bt.cor) || e.corDetalhes, Lt = $(Q.value ? et.parsed.x : et.parsed.y), zt = et.dataset.label && X.value.length > 1 ? `<span style="font-size:11px;color:#64748B;margin-right:6px;">${et.dataset.label}</span>` : "";
|
|
994
|
+
return `<div style="display:flex;align-items:center;gap:6px;margin-top:2px;"><span style="width:6px;height:6px;border-radius:999px;background:${ut};box-shadow:0 0 0 2px ${D(ut, 0.15)};flex:0 0 auto;"></span>` + zt + `<span style="font-size:12px;font-weight:700;color:#0F172A;letter-spacing:-.01em;line-height:1.1;margin-left:auto;">${Lt}</span></div>`;
|
|
995
|
+
}).join(""), V = (kt = T[0]) == null ? void 0 : kt.dataIndex;
|
|
996
|
+
let S = null;
|
|
992
997
|
if (V != null)
|
|
993
|
-
for (const
|
|
994
|
-
const
|
|
995
|
-
if (
|
|
996
|
-
|
|
998
|
+
for (const et of f.data.datasets) {
|
|
999
|
+
const ut = (Ct = et.previstos) == null ? void 0 : Ct[V];
|
|
1000
|
+
if (ut != null) {
|
|
1001
|
+
S = ut;
|
|
997
1002
|
break;
|
|
998
1003
|
}
|
|
999
1004
|
}
|
|
1000
|
-
const
|
|
1001
|
-
|
|
1002
|
-
const { offsetLeft:
|
|
1005
|
+
const P = S != null ? `<div style="display:flex;align-items:center;gap:6px;margin-top:6px;padding-top:4px;border-top:1px dashed rgba(15,23,42,.08);"><span style="font-size:11px;color:#64748B;margin-right:6px;">Previsto</span><span style="font-size:12px;font-weight:700;color:#0F172A;letter-spacing:-.01em;line-height:1.1;margin-left:auto;">${$(S)}</span></div>` : "";
|
|
1006
|
+
q.innerHTML = `<div style="font-size:9px;font-weight:500;color:#94A3B8;letter-spacing:.04em;text-transform:uppercase;line-height:1;margin-bottom:4px;">${H.join(" ")}</div>` + C + P;
|
|
1007
|
+
const { offsetLeft: O, offsetTop: tt } = f.canvas;
|
|
1003
1008
|
h.style.opacity = "1", h.style.visibility = "hidden", h.style.left = "0px", h.style.top = "0px";
|
|
1004
|
-
const
|
|
1005
|
-
|
|
1006
|
-
const Et =
|
|
1007
|
-
|
|
1009
|
+
const U = h.offsetWidth, N = h.offsetHeight, Z = 4, W = O + n.caretX, J = tt + n.caretY, ht = nt(W, U, m.clientWidth, Z), Tt = U / 2, xt = 14, vt = J - xt - N, $t = vt < Z, qt = $t ? J + xt : vt, St = h.querySelector(".nc-tt__caret");
|
|
1010
|
+
p(St, $t);
|
|
1011
|
+
const Et = W - (ht - Tt), Ft = Math.max(10, Math.min(U - 10, Et));
|
|
1012
|
+
St.style.left = Ft + "px", h.style.left = ht + "px", h.style.top = qt + "px", h.style.visibility = "visible";
|
|
1008
1013
|
}
|
|
1009
|
-
const
|
|
1010
|
-
const
|
|
1014
|
+
const G = M(() => {
|
|
1015
|
+
const i = Q.value, f = {
|
|
1011
1016
|
grid: { display: !1, drawBorder: !1 },
|
|
1012
1017
|
border: { display: !1 },
|
|
1013
1018
|
ticks: { color: o.value.muted, font: { size: 10, family: "'Inter', sans-serif" }, padding: 8 },
|
|
@@ -1017,19 +1022,19 @@ const ct = '<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewB
|
|
|
1017
1022
|
grid: { display: !1 },
|
|
1018
1023
|
beginAtZero: !0,
|
|
1019
1024
|
stacked: e.empilhado,
|
|
1020
|
-
suggestedMax:
|
|
1025
|
+
suggestedMax: c.value.length ? Math.max(...c.value.map((m) => m.valor)) : void 0
|
|
1021
1026
|
};
|
|
1022
1027
|
return {
|
|
1023
1028
|
responsive: !0,
|
|
1024
1029
|
maintainAspectRatio: !1,
|
|
1025
|
-
indexAxis:
|
|
1026
|
-
interaction: { intersect: !1, mode: "index", axis:
|
|
1030
|
+
indexAxis: i ? "y" : "x",
|
|
1031
|
+
interaction: { intersect: !1, mode: "index", axis: i ? "y" : "x" },
|
|
1027
1032
|
layout: {
|
|
1028
1033
|
padding: {
|
|
1029
|
-
top:
|
|
1030
|
-
right:
|
|
1034
|
+
top: c.value.length && !i ? 24 : 12,
|
|
1035
|
+
right: i ? 12 : 0,
|
|
1031
1036
|
bottom: 0,
|
|
1032
|
-
left:
|
|
1037
|
+
left: c.value.length && i ? 60 : 0
|
|
1033
1038
|
}
|
|
1034
1039
|
},
|
|
1035
1040
|
plugins: {
|
|
@@ -1049,42 +1054,42 @@ const ct = '<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewB
|
|
|
1049
1054
|
},
|
|
1050
1055
|
tooltip: {
|
|
1051
1056
|
enabled: !1,
|
|
1052
|
-
external:
|
|
1057
|
+
external: j,
|
|
1053
1058
|
callbacks: {
|
|
1054
1059
|
title: (m) => {
|
|
1055
1060
|
var h;
|
|
1056
1061
|
return ((h = m[0]) == null ? void 0 : h.label) ?? "";
|
|
1057
1062
|
},
|
|
1058
|
-
label: (m) =>
|
|
1063
|
+
label: (m) => $(i ? m.parsed.x : m.parsed.y)
|
|
1059
1064
|
}
|
|
1060
1065
|
}
|
|
1061
1066
|
},
|
|
1062
1067
|
scales: {
|
|
1063
|
-
x:
|
|
1064
|
-
y:
|
|
1068
|
+
x: i ? n : f,
|
|
1069
|
+
y: i ? f : n
|
|
1065
1070
|
}
|
|
1066
1071
|
};
|
|
1067
1072
|
});
|
|
1068
|
-
function
|
|
1069
|
-
|
|
1073
|
+
function u() {
|
|
1074
|
+
d("botaoAcao");
|
|
1070
1075
|
}
|
|
1071
|
-
const
|
|
1072
|
-
valor:
|
|
1073
|
-
rotulo:
|
|
1074
|
-
cor:
|
|
1075
|
-
corRotulo:
|
|
1076
|
-
corTexto:
|
|
1077
|
-
tracejado:
|
|
1078
|
-
espessura:
|
|
1079
|
-
}) : []),
|
|
1076
|
+
const c = M(() => e.linhasReferencia ? (Array.isArray(e.linhasReferencia) ? e.linhasReferencia : [e.linhasReferencia]).filter((f) => f && (typeof f == "number" || typeof f.valor == "number")).map((f) => typeof f == "number" ? { valor: f, rotulo: null, cor: "#0F172A", corRotulo: "#0F172A", corTexto: "#FFFFFF", tracejado: [6, 6], espessura: 1 } : {
|
|
1077
|
+
valor: f.valor,
|
|
1078
|
+
rotulo: f.rotulo ?? null,
|
|
1079
|
+
cor: f.cor || "#0F172A",
|
|
1080
|
+
corRotulo: f.corRotulo || f.cor || "#0F172A",
|
|
1081
|
+
corTexto: f.corTexto || "#FFFFFF",
|
|
1082
|
+
tracejado: f.tracejado || [6, 6],
|
|
1083
|
+
espessura: f.espessura ?? 1
|
|
1084
|
+
}) : []), a = [], b = {
|
|
1080
1085
|
id: "linhaReferencia",
|
|
1081
|
-
afterDatasetsDraw(
|
|
1082
|
-
const
|
|
1083
|
-
if (
|
|
1084
|
-
const { ctx: n, chartArea: m, scales: h } =
|
|
1085
|
-
|
|
1086
|
-
const C =
|
|
1087
|
-
if (
|
|
1086
|
+
afterDatasetsDraw(i) {
|
|
1087
|
+
const f = c.value;
|
|
1088
|
+
if (a.length = 0, !f.length) return;
|
|
1089
|
+
const { ctx: n, chartArea: m, scales: h } = i, H = Q.value, T = H ? h.x : h.y;
|
|
1090
|
+
T && f.forEach((q) => {
|
|
1091
|
+
const C = T.getPixelForValue(q.valor);
|
|
1092
|
+
if (a.push({ linha: q, pos: C, horizontal: H, chartArea: m }), n.save(), n.beginPath(), n.setLineDash(q.tracejado), n.lineWidth = q.espessura, n.strokeStyle = q.cor, H) {
|
|
1088
1093
|
if (C < m.left || C > m.right) {
|
|
1089
1094
|
n.restore();
|
|
1090
1095
|
return;
|
|
@@ -1097,45 +1102,45 @@ const ct = '<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewB
|
|
|
1097
1102
|
}
|
|
1098
1103
|
n.moveTo(m.left, C), n.lineTo(m.right, C);
|
|
1099
1104
|
}
|
|
1100
|
-
if (n.stroke(), n.setLineDash([]),
|
|
1105
|
+
if (n.stroke(), n.setLineDash([]), q.rotulo) {
|
|
1101
1106
|
n.font = "600 11px 'Inter', sans-serif";
|
|
1102
|
-
const V = 8,
|
|
1103
|
-
let
|
|
1104
|
-
|
|
1107
|
+
const V = 8, S = 5, O = n.measureText(q.rotulo).width, tt = 12, U = O + V * 2, N = tt + S * 2, Z = N / 2;
|
|
1108
|
+
let W, J;
|
|
1109
|
+
H ? (W = C - U / 2, J = m.top - N - 6, J < 0 && (J = m.top + 6)) : (W = m.left - U - 6, J = C - N / 2, W < 0 && (W = m.left + 6)), n.fillStyle = q.corRotulo, n.beginPath(), n.roundRect ? n.roundRect(W, J, U, N, Z) : (n.moveTo(W + Z, J), n.lineTo(W + U - Z, J), n.quadraticCurveTo(W + U, J, W + U, J + Z), n.lineTo(W + U, J + N - Z), n.quadraticCurveTo(W + U, J + N, W + U - Z, J + N), n.lineTo(W + Z, J + N), n.quadraticCurveTo(W, J + N, W, J + N - Z), n.lineTo(W, J + Z), n.quadraticCurveTo(W, J, W + Z, J)), n.fill(), n.fillStyle = q.corTexto, n.textBaseline = "middle", n.textAlign = "center", n.fillText(q.rotulo, W + U / 2, J + N / 2);
|
|
1105
1110
|
}
|
|
1106
1111
|
n.restore();
|
|
1107
1112
|
});
|
|
1108
1113
|
},
|
|
1109
|
-
beforeEvent(
|
|
1110
|
-
if (!
|
|
1111
|
-
|
|
1114
|
+
beforeEvent(i, f) {
|
|
1115
|
+
if (!a.length) {
|
|
1116
|
+
E = null;
|
|
1112
1117
|
return;
|
|
1113
1118
|
}
|
|
1114
|
-
const n =
|
|
1119
|
+
const n = f.event;
|
|
1115
1120
|
if (!n || n.type === "mouseout" || n.x == null || n.y == null) {
|
|
1116
|
-
|
|
1121
|
+
E = null;
|
|
1117
1122
|
return;
|
|
1118
1123
|
}
|
|
1119
1124
|
const m = 8;
|
|
1120
|
-
let h = null,
|
|
1121
|
-
for (const
|
|
1122
|
-
const
|
|
1123
|
-
|
|
1125
|
+
let h = null, H = 1 / 0;
|
|
1126
|
+
for (const T of a) {
|
|
1127
|
+
const q = T.horizontal ? Math.abs(n.x - T.pos) : Math.abs(n.y - T.pos), C = T.horizontal ? n.y >= T.chartArea.top && n.y <= T.chartArea.bottom : n.x >= T.chartArea.left && n.x <= T.chartArea.right;
|
|
1128
|
+
q <= m && C && q < H && (H = q, h = T);
|
|
1124
1129
|
}
|
|
1125
|
-
|
|
1130
|
+
E = h;
|
|
1126
1131
|
},
|
|
1127
|
-
afterEvent(
|
|
1128
|
-
if (!
|
|
1129
|
-
const n =
|
|
1132
|
+
afterEvent(i, f) {
|
|
1133
|
+
if (!a.length) return;
|
|
1134
|
+
const n = f.event;
|
|
1130
1135
|
if (!n) return;
|
|
1131
|
-
const m =
|
|
1136
|
+
const m = rt(i);
|
|
1132
1137
|
if (!m) return;
|
|
1133
1138
|
let h = m.querySelector(".nc-tt-linhaRef");
|
|
1134
|
-
if (!
|
|
1139
|
+
if (!E) {
|
|
1135
1140
|
h && (h.style.opacity = "0");
|
|
1136
1141
|
return;
|
|
1137
1142
|
}
|
|
1138
|
-
const
|
|
1143
|
+
const H = E;
|
|
1139
1144
|
h || (h = document.createElement("div"), h.className = "nc-tt-linhaRef", Object.assign(h.style, {
|
|
1140
1145
|
position: "absolute",
|
|
1141
1146
|
pointerEvents: "none",
|
|
@@ -1152,118 +1157,118 @@ const ct = '<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewB
|
|
|
1152
1157
|
fontFamily: "'Inter', sans-serif",
|
|
1153
1158
|
textAlign: "left"
|
|
1154
1159
|
}), m.appendChild(h));
|
|
1155
|
-
const
|
|
1156
|
-
h.innerHTML = (C ? `<div style="font-size:9px;font-weight:500;color:#94A3B8;letter-spacing:.04em;text-transform:uppercase;line-height:1;margin-bottom:4px;">${C}</div>` : "") + `<div style="display:flex;align-items:center;gap:6px;"><span style="width:6px;height:6px;border-radius:999px;background:${
|
|
1157
|
-
const V =
|
|
1160
|
+
const T = H.linha.cor || "#0F172A", q = $(H.linha.valor), C = H.linha.rotulo;
|
|
1161
|
+
h.innerHTML = (C ? `<div style="font-size:9px;font-weight:500;color:#94A3B8;letter-spacing:.04em;text-transform:uppercase;line-height:1;margin-bottom:4px;">${C}</div>` : "") + `<div style="display:flex;align-items:center;gap:6px;"><span style="width:6px;height:6px;border-radius:999px;background:${T};box-shadow:0 0 0 2px ${D(T, 0.15)};flex:0 0 auto;"></span><span style="font-size:12px;font-weight:700;color:#0F172A;letter-spacing:-.01em;line-height:1.1;">${q}</span></div>`;
|
|
1162
|
+
const V = i.canvas;
|
|
1158
1163
|
h.style.opacity = "1", h.style.visibility = "hidden", h.style.left = "0px", h.style.top = "0px";
|
|
1159
|
-
const
|
|
1160
|
-
let
|
|
1161
|
-
|
|
1162
|
-
const
|
|
1163
|
-
let
|
|
1164
|
-
const
|
|
1165
|
-
|
|
1164
|
+
const S = h.offsetWidth, P = h.offsetHeight, O = 4;
|
|
1165
|
+
let tt, U;
|
|
1166
|
+
H.horizontal ? (tt = V.offsetLeft + H.pos, U = V.offsetTop + n.y) : (tt = V.offsetLeft + n.x, U = V.offsetTop + H.pos);
|
|
1167
|
+
const N = nt(tt, S, m.clientWidth, O);
|
|
1168
|
+
let Z = U;
|
|
1169
|
+
const W = P + 16 + O;
|
|
1170
|
+
Z < W && (Z = W), h.style.left = N + "px", h.style.top = Z + "px", h.style.visibility = "visible";
|
|
1166
1171
|
}
|
|
1167
|
-
},
|
|
1168
|
-
return (
|
|
1172
|
+
}, v = M(() => c.value.length ? [b] : []);
|
|
1173
|
+
return (i, f) => (l(), s("div", {
|
|
1169
1174
|
ref_key: "cardRef",
|
|
1170
|
-
ref:
|
|
1171
|
-
class:
|
|
1172
|
-
style:
|
|
1175
|
+
ref: R,
|
|
1176
|
+
class: lt(["card-barra p-4 flex", F.value]),
|
|
1177
|
+
style: x(r(B))
|
|
1173
1178
|
}, [
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1179
|
+
k("div", Ee, [
|
|
1180
|
+
k("div", Fe, [
|
|
1181
|
+
i.$slots.legenda || t.legenda || i.$slots.sublegenda || t.sublegenda ? (l(), s("div", Le, [
|
|
1182
|
+
i.$slots.legenda || t.legenda ? (l(), s("div", {
|
|
1178
1183
|
key: 0,
|
|
1179
1184
|
class: "text-xs font-medium",
|
|
1180
|
-
style:
|
|
1185
|
+
style: x({ color: r(o).text, opacity: 0.85 })
|
|
1181
1186
|
}, [
|
|
1182
|
-
|
|
1183
|
-
|
|
1187
|
+
L(i.$slots, "legenda", {}, () => [
|
|
1188
|
+
Y(A(t.legenda), 1)
|
|
1184
1189
|
], !0)
|
|
1185
|
-
], 4)) :
|
|
1186
|
-
|
|
1190
|
+
], 4)) : g("", !0),
|
|
1191
|
+
i.$slots.sublegenda || t.sublegenda ? (l(), s("div", {
|
|
1187
1192
|
key: 1,
|
|
1188
1193
|
class: "text-xs",
|
|
1189
|
-
style:
|
|
1194
|
+
style: x({ color: r(o).muted })
|
|
1190
1195
|
}, [
|
|
1191
|
-
|
|
1192
|
-
|
|
1196
|
+
L(i.$slots, "sublegenda", {}, () => [
|
|
1197
|
+
Y(A(t.sublegenda), 1)
|
|
1193
1198
|
], !0)
|
|
1194
|
-
], 4)) :
|
|
1195
|
-
])) :
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
t.botaoVisivel ? (
|
|
1199
|
+
], 4)) : g("", !0)
|
|
1200
|
+
])) : g("", !0),
|
|
1201
|
+
i.$slots.actions || t.botaoVisivel || t.exportar ? (l(), s("div", ze, [
|
|
1202
|
+
L(i.$slots, "actions", {}, () => [
|
|
1203
|
+
t.botaoVisivel ? (l(), s("button", {
|
|
1199
1204
|
key: 0,
|
|
1200
1205
|
class: "nc-btn inline-flex align-items-center",
|
|
1201
|
-
style:
|
|
1202
|
-
onClick:
|
|
1206
|
+
style: x({ color: r(o).text, borderColor: r(D)(r(o).text, 0.18) }),
|
|
1207
|
+
onClick: u
|
|
1203
1208
|
}, [
|
|
1204
|
-
|
|
1205
|
-
], 4)) :
|
|
1209
|
+
k("span", null, A(t.textoBotao), 1)
|
|
1210
|
+
], 4)) : g("", !0)
|
|
1206
1211
|
], !0),
|
|
1207
|
-
t.exportar ? (
|
|
1212
|
+
t.exportar ? (l(), s("button", {
|
|
1208
1213
|
key: 0,
|
|
1209
1214
|
type: "button",
|
|
1210
1215
|
class: "nc-exportar inline-flex align-items-center justify-content-center",
|
|
1211
|
-
style:
|
|
1216
|
+
style: x({ color: r(o).muted, borderColor: r(D)(r(o).text, 0.18) }),
|
|
1212
1217
|
title: "Exportar como imagem",
|
|
1213
1218
|
"aria-label": "Exportar como imagem",
|
|
1214
1219
|
onClick: w,
|
|
1215
|
-
innerHTML: r(
|
|
1216
|
-
}, null, 12,
|
|
1217
|
-
])) :
|
|
1220
|
+
innerHTML: r(I)
|
|
1221
|
+
}, null, 12, Me)) : g("", !0)
|
|
1222
|
+
])) : g("", !0)
|
|
1218
1223
|
]),
|
|
1219
|
-
|
|
1220
|
-
|
|
1224
|
+
i.$slots.titulo || t.titulo || i.$slots.descricao || t.descricao ? (l(), s("div", je, [
|
|
1225
|
+
i.$slots.titulo || t.titulo ? (l(), s("div", {
|
|
1221
1226
|
key: 0,
|
|
1222
1227
|
class: "m-0 text-3xl font-semibold",
|
|
1223
|
-
style:
|
|
1228
|
+
style: x({ color: r(o).text, lineHeight: "33px", letterSpacing: "-1px" })
|
|
1224
1229
|
}, [
|
|
1225
|
-
|
|
1226
|
-
|
|
1230
|
+
L(i.$slots, "titulo", {}, () => [
|
|
1231
|
+
Y(A(t.titulo), 1)
|
|
1227
1232
|
], !0)
|
|
1228
|
-
], 4)) :
|
|
1229
|
-
|
|
1233
|
+
], 4)) : g("", !0),
|
|
1234
|
+
i.$slots.descricao || t.descricao ? (l(), s("div", {
|
|
1230
1235
|
key: 1,
|
|
1231
1236
|
class: "text-sm mt-1",
|
|
1232
|
-
style:
|
|
1237
|
+
style: x({ color: r(o).muted })
|
|
1233
1238
|
}, [
|
|
1234
|
-
|
|
1235
|
-
|
|
1239
|
+
L(i.$slots, "descricao", {}, () => [
|
|
1240
|
+
Y(A(t.descricao), 1)
|
|
1236
1241
|
], !0)
|
|
1237
|
-
], 4)) :
|
|
1238
|
-
])) :
|
|
1242
|
+
], 4)) : g("", !0)
|
|
1243
|
+
])) : g("", !0)
|
|
1239
1244
|
]),
|
|
1240
|
-
|
|
1241
|
-
|
|
1245
|
+
k("div", He, [
|
|
1246
|
+
ft(st, {
|
|
1242
1247
|
type: "bar",
|
|
1243
1248
|
data: K.value,
|
|
1244
|
-
options:
|
|
1245
|
-
plugins:
|
|
1246
|
-
height:
|
|
1247
|
-
}, null, 8, ["data", "options", "plugins"
|
|
1249
|
+
options: G.value,
|
|
1250
|
+
plugins: v.value,
|
|
1251
|
+
height: "100%"
|
|
1252
|
+
}, null, 8, ["data", "options", "plugins"])
|
|
1248
1253
|
]),
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
])) :
|
|
1254
|
+
i.$slots.footer ? (l(), s("div", Ve, [
|
|
1255
|
+
L(i.$slots, "footer", {}, void 0, !0)
|
|
1256
|
+
])) : g("", !0)
|
|
1252
1257
|
], 6));
|
|
1253
1258
|
}
|
|
1254
|
-
},
|
|
1259
|
+
}, Pe = /* @__PURE__ */ at(Ne, [["__scopeId", "data-v-474043e8"]]), De = { class: "card-polar__topo flex align-items-start justify-content-between gap-3" }, Ie = {
|
|
1255
1260
|
key: 0,
|
|
1256
1261
|
class: "nc-legendas-flex flex flex-column"
|
|
1257
|
-
},
|
|
1262
|
+
}, We = {
|
|
1258
1263
|
key: 1,
|
|
1259
1264
|
class: "nc-actions inline-flex align-items-center gap-2"
|
|
1260
|
-
},
|
|
1265
|
+
}, Oe = ["innerHTML"], Xe = { class: "card-polar__corpo flex align-items-center" }, Ye = { class: "nc-tabela flex flex-column" }, Je = { class: "nc-tabela-valor" }, Qe = { class: "nc-tabela-rotulo inline-flex align-items-center gap-2" }, Ue = { class: "nc-tabela-valor" }, Ge = { class: "card-polar__chart-wrap flex align-items-center justify-content-center" }, Ze = { class: "card-polar__chart" }, Ke = {
|
|
1261
1266
|
key: 0,
|
|
1262
1267
|
class: "card-polar__centro-bottom"
|
|
1263
|
-
},
|
|
1268
|
+
}, _e = {
|
|
1264
1269
|
key: 0,
|
|
1265
1270
|
class: "card-polar__footer mt-3"
|
|
1266
|
-
},
|
|
1271
|
+
}, to = {
|
|
1267
1272
|
__name: "CardPolar",
|
|
1268
1273
|
props: {
|
|
1269
1274
|
legenda: { type: String, default: null },
|
|
@@ -1312,47 +1317,47 @@ const ct = '<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewB
|
|
|
1312
1317
|
nomeArquivoExport: { type: String, default: "card-polar.png" }
|
|
1313
1318
|
},
|
|
1314
1319
|
emits: ["botaoAcao", "exportado"],
|
|
1315
|
-
setup(t, { emit:
|
|
1316
|
-
const e = t,
|
|
1320
|
+
setup(t, { emit: y }) {
|
|
1321
|
+
const e = t, d = y, { palette: o, cardStyle: B } = it(e), { formatar: $ } = pt(e), R = ot(null), I = dt;
|
|
1317
1322
|
async function w() {
|
|
1318
|
-
await
|
|
1323
|
+
await ct(R.value, {
|
|
1319
1324
|
nomeArquivo: e.nomeArquivoExport,
|
|
1320
1325
|
corFundo: o.value.bg !== "transparent" ? o.value.bg : null
|
|
1321
|
-
}),
|
|
1326
|
+
}), d("exportado");
|
|
1322
1327
|
}
|
|
1323
|
-
const
|
|
1324
|
-
const
|
|
1325
|
-
return e.data.map((
|
|
1326
|
-
}),
|
|
1327
|
-
labels: e.data.map((
|
|
1328
|
+
const F = M(() => `card-polar--${e.direcao}`), z = M(() => {
|
|
1329
|
+
const p = bt(e.corDetalhes, e.data.length);
|
|
1330
|
+
return e.data.map((E, j) => E.cor ?? p[j]);
|
|
1331
|
+
}), Q = M(() => ({
|
|
1332
|
+
labels: e.data.map((p) => p.rotulo),
|
|
1328
1333
|
datasets: [
|
|
1329
1334
|
{
|
|
1330
|
-
data: e.data.map((
|
|
1331
|
-
backgroundColor:
|
|
1332
|
-
borderColor:
|
|
1335
|
+
data: e.data.map((p) => p.quantidade),
|
|
1336
|
+
backgroundColor: z.value,
|
|
1337
|
+
borderColor: z.value,
|
|
1333
1338
|
borderWidth: 0,
|
|
1334
1339
|
hoverOffset: 6
|
|
1335
1340
|
}
|
|
1336
1341
|
]
|
|
1337
1342
|
}));
|
|
1338
|
-
function
|
|
1339
|
-
const { chart:
|
|
1340
|
-
if (!
|
|
1341
|
-
const u = gt(
|
|
1342
|
-
if (
|
|
1343
|
+
function X(p) {
|
|
1344
|
+
const { chart: E, tooltip: j } = p, G = rt(E);
|
|
1345
|
+
if (!G) return;
|
|
1346
|
+
const u = gt(G);
|
|
1347
|
+
if (j.opacity === 0) {
|
|
1343
1348
|
u.style.opacity = "0";
|
|
1344
1349
|
return;
|
|
1345
1350
|
}
|
|
1346
|
-
const
|
|
1347
|
-
|
|
1348
|
-
const { offsetLeft:
|
|
1351
|
+
const c = j.title || [], a = j.dataPoints && j.dataPoints[0], b = a ? z.value[a.dataIndex] : "#3B82F6", v = a ? $(a.parsed.r ?? a.parsed) : "", i = u.querySelector(".nc-tt__content");
|
|
1352
|
+
i.innerHTML = `<div style="font-size:9px;font-weight:500;color:#94A3B8;letter-spacing:.04em;text-transform:uppercase;line-height:1;margin-bottom:4px;">${c.join(" ")}</div><div style="display:flex;align-items:center;gap:6px;"><span style="width:6px;height:6px;border-radius:999px;background:${b};box-shadow:0 0 0 2px ${D(b, 0.15)};flex:0 0 auto;"></span><span style="font-size:12px;font-weight:700;color:#0F172A;letter-spacing:-.01em;line-height:1.1;">${v}</span></div>`;
|
|
1353
|
+
const { offsetLeft: f, offsetTop: n } = E.canvas;
|
|
1349
1354
|
u.style.opacity = "1", u.style.visibility = "hidden", u.style.left = "0px", u.style.top = "0px";
|
|
1350
|
-
const
|
|
1351
|
-
|
|
1352
|
-
const
|
|
1353
|
-
|
|
1355
|
+
const m = u.offsetWidth, h = u.offsetHeight, H = 4, T = f + j.caretX, q = n + j.caretY, C = nt(T, m, G.clientWidth, H), V = q < h + 16 + H;
|
|
1356
|
+
u.style.transform = V ? "translate(-50%, 16px)" : "translate(-50%, calc(-100% - 16px))";
|
|
1357
|
+
const S = u.querySelector(".nc-tt__caret");
|
|
1358
|
+
S && (V ? (S.style.bottom = "", S.style.top = "-5px", S.style.borderRight = "", S.style.borderBottom = "", S.style.borderLeft = "1px solid rgba(15,23,42,.06)", S.style.borderTop = "1px solid rgba(15,23,42,.06)") : (S.style.top = "", S.style.bottom = "-5px", S.style.borderLeft = "", S.style.borderTop = "", S.style.borderRight = "1px solid rgba(15,23,42,.06)", S.style.borderBottom = "1px solid rgba(15,23,42,.06)")), u.style.left = C + "px", u.style.top = q + "px", u.style.visibility = "visible";
|
|
1354
1359
|
}
|
|
1355
|
-
const
|
|
1360
|
+
const _ = M(() => ({
|
|
1356
1361
|
responsive: !0,
|
|
1357
1362
|
maintainAspectRatio: !1,
|
|
1358
1363
|
layout: { padding: 4 },
|
|
@@ -1362,11 +1367,11 @@ const ct = '<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewB
|
|
|
1362
1367
|
ticks: { display: !1, backdropColor: "transparent" },
|
|
1363
1368
|
grid: {
|
|
1364
1369
|
display: e.mostrarLinhasGrade,
|
|
1365
|
-
color:
|
|
1370
|
+
color: D(o.value.muted, 0.18)
|
|
1366
1371
|
},
|
|
1367
1372
|
angleLines: {
|
|
1368
1373
|
display: e.mostrarLinhasGrade,
|
|
1369
|
-
color:
|
|
1374
|
+
color: D(o.value.muted, 0.18)
|
|
1370
1375
|
},
|
|
1371
1376
|
pointLabels: { display: !1 }
|
|
1372
1377
|
}
|
|
@@ -1375,153 +1380,153 @@ const ct = '<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewB
|
|
|
1375
1380
|
legend: { display: !1 },
|
|
1376
1381
|
tooltip: {
|
|
1377
1382
|
enabled: !1,
|
|
1378
|
-
external:
|
|
1383
|
+
external: X,
|
|
1379
1384
|
callbacks: {
|
|
1380
|
-
title: (
|
|
1381
|
-
var
|
|
1382
|
-
return ((
|
|
1385
|
+
title: (p) => {
|
|
1386
|
+
var E;
|
|
1387
|
+
return ((E = p[0]) == null ? void 0 : E.label) ?? "";
|
|
1383
1388
|
},
|
|
1384
|
-
label: (
|
|
1385
|
-
var
|
|
1386
|
-
return
|
|
1389
|
+
label: (p) => {
|
|
1390
|
+
var E;
|
|
1391
|
+
return $(((E = p.parsed) == null ? void 0 : E.r) ?? p.parsed);
|
|
1387
1392
|
}
|
|
1388
1393
|
}
|
|
1389
1394
|
}
|
|
1390
1395
|
}
|
|
1391
1396
|
}));
|
|
1392
|
-
function
|
|
1393
|
-
|
|
1397
|
+
function K() {
|
|
1398
|
+
d("botaoAcao");
|
|
1394
1399
|
}
|
|
1395
|
-
return (
|
|
1400
|
+
return (p, E) => (l(), s("div", {
|
|
1396
1401
|
ref_key: "cardRef",
|
|
1397
|
-
ref:
|
|
1398
|
-
class:
|
|
1399
|
-
style:
|
|
1402
|
+
ref: R,
|
|
1403
|
+
class: lt(["card-polar p-4 flex flex-column", F.value]),
|
|
1404
|
+
style: x(r(B))
|
|
1400
1405
|
}, [
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1406
|
+
k("div", De, [
|
|
1407
|
+
p.$slots.legenda || t.legenda || p.$slots.sublegenda || t.sublegenda ? (l(), s("div", Ie, [
|
|
1408
|
+
p.$slots.legenda || t.legenda ? (l(), s("div", {
|
|
1404
1409
|
key: 0,
|
|
1405
1410
|
class: "text-xs font-medium",
|
|
1406
|
-
style:
|
|
1411
|
+
style: x({ color: r(o).text, opacity: 0.95 })
|
|
1407
1412
|
}, [
|
|
1408
|
-
|
|
1409
|
-
|
|
1413
|
+
L(p.$slots, "legenda", {}, () => [
|
|
1414
|
+
Y(A(t.legenda), 1)
|
|
1410
1415
|
], !0)
|
|
1411
|
-
], 4)) :
|
|
1412
|
-
|
|
1416
|
+
], 4)) : g("", !0),
|
|
1417
|
+
p.$slots.sublegenda || t.sublegenda ? (l(), s("div", {
|
|
1413
1418
|
key: 1,
|
|
1414
1419
|
class: "text-xs",
|
|
1415
|
-
style:
|
|
1420
|
+
style: x({ color: r(o).muted })
|
|
1416
1421
|
}, [
|
|
1417
|
-
|
|
1418
|
-
|
|
1422
|
+
L(p.$slots, "sublegenda", {}, () => [
|
|
1423
|
+
Y(A(t.sublegenda), 1)
|
|
1419
1424
|
], !0)
|
|
1420
|
-
], 4)) :
|
|
1421
|
-
])) :
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
t.botaoVisivel ? (
|
|
1425
|
+
], 4)) : g("", !0)
|
|
1426
|
+
])) : g("", !0),
|
|
1427
|
+
p.$slots.actions || t.botaoVisivel || t.exportar ? (l(), s("div", We, [
|
|
1428
|
+
L(p.$slots, "actions", {}, () => [
|
|
1429
|
+
t.botaoVisivel ? (l(), s("button", {
|
|
1425
1430
|
key: 0,
|
|
1426
1431
|
class: "nc-btn inline-flex align-items-center",
|
|
1427
|
-
style:
|
|
1428
|
-
onClick:
|
|
1432
|
+
style: x({ color: r(o).text, borderColor: r(D)(r(o).text, 0.18) }),
|
|
1433
|
+
onClick: K
|
|
1429
1434
|
}, [
|
|
1430
|
-
|
|
1431
|
-
], 4)) :
|
|
1435
|
+
k("span", null, A(t.textoBotao), 1)
|
|
1436
|
+
], 4)) : g("", !0)
|
|
1432
1437
|
], !0),
|
|
1433
|
-
t.exportar ? (
|
|
1438
|
+
t.exportar ? (l(), s("button", {
|
|
1434
1439
|
key: 0,
|
|
1435
1440
|
type: "button",
|
|
1436
1441
|
class: "nc-exportar inline-flex align-items-center justify-content-center",
|
|
1437
|
-
style:
|
|
1442
|
+
style: x({ color: r(o).muted, borderColor: r(D)(r(o).text, 0.18) }),
|
|
1438
1443
|
title: "Exportar como imagem",
|
|
1439
1444
|
"aria-label": "Exportar como imagem",
|
|
1440
1445
|
onClick: w,
|
|
1441
|
-
innerHTML: r(
|
|
1442
|
-
}, null, 12,
|
|
1443
|
-
])) :
|
|
1446
|
+
innerHTML: r(I)
|
|
1447
|
+
}, null, 12, Oe)) : g("", !0)
|
|
1448
|
+
])) : g("", !0)
|
|
1444
1449
|
]),
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
t.mostrarCabecalho ? (
|
|
1450
|
+
k("div", Xe, [
|
|
1451
|
+
k("div", Ye, [
|
|
1452
|
+
t.mostrarCabecalho ? (l(), s("div", {
|
|
1448
1453
|
key: 0,
|
|
1449
1454
|
class: "nc-tabela-cab flex align-items-center justify-content-between",
|
|
1450
|
-
style:
|
|
1455
|
+
style: x({ color: r(o).muted, borderColor: r(D)(r(o).muted, 0.25) })
|
|
1451
1456
|
}, [
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
], 4)) :
|
|
1455
|
-
(
|
|
1456
|
-
key:
|
|
1457
|
+
k("span", null, A(t.rotuloCategoria), 1),
|
|
1458
|
+
k("span", Je, A(t.rotuloQuantidade), 1)
|
|
1459
|
+
], 4)) : g("", !0),
|
|
1460
|
+
(l(!0), s(yt, null, mt(t.data, (j, G) => (l(), s("div", {
|
|
1461
|
+
key: G,
|
|
1457
1462
|
class: "nc-tabela-linha flex align-items-center justify-content-between",
|
|
1458
|
-
style:
|
|
1463
|
+
style: x({ color: r(o).text })
|
|
1459
1464
|
}, [
|
|
1460
|
-
|
|
1461
|
-
|
|
1465
|
+
k("span", Qe, [
|
|
1466
|
+
k("span", {
|
|
1462
1467
|
class: "nc-bolinha",
|
|
1463
|
-
style:
|
|
1468
|
+
style: x({ background: z.value[G] })
|
|
1464
1469
|
}, null, 4),
|
|
1465
|
-
|
|
1470
|
+
k("span", null, A(j.rotulo), 1)
|
|
1466
1471
|
]),
|
|
1467
|
-
|
|
1472
|
+
k("span", Ue, A(r($)(j.quantidade)), 1)
|
|
1468
1473
|
], 4))), 128))
|
|
1469
1474
|
]),
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1475
|
+
k("div", Ge, [
|
|
1476
|
+
k("div", Ze, [
|
|
1477
|
+
ft(st, {
|
|
1473
1478
|
type: "polarArea",
|
|
1474
|
-
data:
|
|
1475
|
-
options:
|
|
1479
|
+
data: Q.value,
|
|
1480
|
+
options: _.value,
|
|
1476
1481
|
height: t.height
|
|
1477
1482
|
}, null, 8, ["data", "options", "height"]),
|
|
1478
|
-
|
|
1479
|
-
|
|
1483
|
+
p.$slots.titulo || t.titulo || p.$slots.descricao || t.descricao ? (l(), s("div", Ke, [
|
|
1484
|
+
p.$slots.titulo || t.titulo ? (l(), s("div", {
|
|
1480
1485
|
key: 0,
|
|
1481
1486
|
class: "card-polar__centro-titulo m-0 text-3xl font-semibold",
|
|
1482
|
-
style:
|
|
1487
|
+
style: x({ color: r(o).text, lineHeight: "33px", letterSpacing: "-1px" })
|
|
1483
1488
|
}, [
|
|
1484
|
-
|
|
1485
|
-
|
|
1489
|
+
L(p.$slots, "titulo", {}, () => [
|
|
1490
|
+
Y(A(t.titulo), 1)
|
|
1486
1491
|
], !0)
|
|
1487
|
-
], 4)) :
|
|
1488
|
-
|
|
1492
|
+
], 4)) : g("", !0),
|
|
1493
|
+
p.$slots.descricao || t.descricao ? (l(), s("div", {
|
|
1489
1494
|
key: 1,
|
|
1490
1495
|
class: "card-polar__centro-desc",
|
|
1491
|
-
style:
|
|
1496
|
+
style: x({ color: r(o).muted })
|
|
1492
1497
|
}, [
|
|
1493
|
-
|
|
1494
|
-
|
|
1498
|
+
L(p.$slots, "descricao", {}, () => [
|
|
1499
|
+
Y(A(t.descricao), 1)
|
|
1495
1500
|
], !0)
|
|
1496
|
-
], 4)) :
|
|
1497
|
-
])) :
|
|
1501
|
+
], 4)) : g("", !0)
|
|
1502
|
+
])) : g("", !0)
|
|
1498
1503
|
])
|
|
1499
1504
|
])
|
|
1500
1505
|
]),
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
])) :
|
|
1506
|
+
p.$slots.footer ? (l(), s("div", _e, [
|
|
1507
|
+
L(p.$slots, "footer", {}, void 0, !0)
|
|
1508
|
+
])) : g("", !0)
|
|
1504
1509
|
], 6));
|
|
1505
1510
|
}
|
|
1506
|
-
},
|
|
1511
|
+
}, eo = /* @__PURE__ */ at(to, [["__scopeId", "data-v-352f2f67"]]), oo = { class: "card-progresso__topo flex align-items-start justify-content-between gap-3" }, ao = {
|
|
1507
1512
|
key: 0,
|
|
1508
1513
|
class: "nc-legendas-flex flex flex-column"
|
|
1509
|
-
},
|
|
1514
|
+
}, ro = {
|
|
1510
1515
|
key: 1,
|
|
1511
1516
|
class: "nc-actions inline-flex align-items-center gap-2"
|
|
1512
|
-
},
|
|
1517
|
+
}, no = ["innerHTML"], lo = {
|
|
1513
1518
|
key: 0,
|
|
1514
1519
|
class: "card-progresso__titulos mt-3 mb-2 flex flex-column"
|
|
1515
|
-
},
|
|
1520
|
+
}, so = { class: "card-progresso__corpo flex align-items-center flex-wrap" }, io = {
|
|
1516
1521
|
key: 0,
|
|
1517
1522
|
class: "card-progresso__chart-wrap flex align-items-center justify-content-center"
|
|
1518
|
-
},
|
|
1523
|
+
}, co = { class: "card-progresso__chart" }, uo = { class: "nc-centro flex flex-column align-items-center justify-content-center" }, fo = { class: "card-progresso__lista flex flex-column" }, po = { class: "card-progresso__item-cab flex align-items-center justify-content-between" }, go = {
|
|
1519
1524
|
key: 0,
|
|
1520
1525
|
class: "card-progresso__item-valor inline-flex align-items-center gap-2"
|
|
1521
|
-
},
|
|
1526
|
+
}, yo = { key: 0 }, mo = {
|
|
1522
1527
|
key: 1,
|
|
1523
1528
|
class: "card-progresso__footer mt-3"
|
|
1524
|
-
},
|
|
1529
|
+
}, bo = {
|
|
1525
1530
|
__name: "CardProgresso",
|
|
1526
1531
|
props: {
|
|
1527
1532
|
legenda: { type: String, default: null },
|
|
@@ -1575,42 +1580,40 @@ const ct = '<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewB
|
|
|
1575
1580
|
nomeArquivoExport: { type: String, default: "card-progresso.png" }
|
|
1576
1581
|
},
|
|
1577
1582
|
emits: ["botaoAcao", "exportado"],
|
|
1578
|
-
setup(t, { emit:
|
|
1579
|
-
const e = t,
|
|
1583
|
+
setup(t, { emit: y }) {
|
|
1584
|
+
const e = t, d = y, { palette: o, cardStyle: B } = it(e), { formatar: $ } = pt(e), R = ot(null), I = dt;
|
|
1580
1585
|
async function w() {
|
|
1581
|
-
await
|
|
1586
|
+
await ct(R.value, {
|
|
1582
1587
|
nomeArquivo: e.nomeArquivoExport,
|
|
1583
1588
|
corFundo: o.value.bg !== "transparent" ? o.value.bg : null
|
|
1584
|
-
}),
|
|
1589
|
+
}), d("exportado");
|
|
1585
1590
|
}
|
|
1586
|
-
const
|
|
1587
|
-
const
|
|
1588
|
-
return e.data.map((
|
|
1589
|
-
const
|
|
1590
|
-
let
|
|
1591
|
-
if (
|
|
1592
|
-
const
|
|
1593
|
-
|
|
1591
|
+
const F = M(() => `card-progresso--${e.direcao}`), z = M(() => {
|
|
1592
|
+
const c = bt(e.corDetalhes, e.data.length);
|
|
1593
|
+
return e.data.map((a, b) => {
|
|
1594
|
+
const v = Number(a.meta ?? e.metaPadrao) || 0, i = Number(a.quantidade) || 0, f = a.cor ?? c[b], n = a.modo === "reducao";
|
|
1595
|
+
let m;
|
|
1596
|
+
if (n) {
|
|
1597
|
+
const h = Number(a.valor_referencia) || 0, H = h - v;
|
|
1598
|
+
m = H > 0 ? Math.max(0, Math.min(100, (h - i) / H * 100)) : 0;
|
|
1594
1599
|
} else
|
|
1595
|
-
|
|
1596
|
-
return { rotulo:
|
|
1600
|
+
m = v > 0 ? Math.max(0, Math.min(100, i / v * 100)) : 0;
|
|
1601
|
+
return { rotulo: a.rotulo, quantidade: i, meta: v, valorReferencia: a.valor_referencia ?? null, cor: f, percentual: m, reducao: n };
|
|
1597
1602
|
});
|
|
1598
|
-
}),
|
|
1603
|
+
}), Q = M(
|
|
1599
1604
|
() => typeof e.alturaBarra == "number" ? `${e.alturaBarra}px` : e.alturaBarra
|
|
1600
|
-
),
|
|
1605
|
+
), X = M(
|
|
1601
1606
|
() => typeof e.raioBarra == "number" ? `${e.raioBarra}px` : e.raioBarra
|
|
1602
|
-
)
|
|
1603
|
-
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
}), L = F(() => R.value.every((f) => f.reducao)), z = F(() => {
|
|
1607
|
-
const f = Math.min(d.value, 100), l = Math.max(0, 100 - f), x = L.value ? e.corExcesso : e.corDetalhes;
|
|
1607
|
+
);
|
|
1608
|
+
M(() => z.value.reduce((c, a) => c + a.quantidade, 0)), M(() => z.value.reduce((c, a) => c + a.meta, 0));
|
|
1609
|
+
const _ = M(() => z.value.length ? z.value.reduce((c, a) => c + a.percentual, 0) / z.value.length : 0), K = M(() => z.value.every((c) => c.reducao)), p = M(() => {
|
|
1610
|
+
const c = Math.min(_.value, 100), a = Math.max(0, 100 - c), b = K.value ? e.corExcesso : e.corDetalhes;
|
|
1608
1611
|
return {
|
|
1609
1612
|
labels: ["Progresso", "Restante"],
|
|
1610
1613
|
datasets: [
|
|
1611
1614
|
{
|
|
1612
|
-
data: [
|
|
1613
|
-
backgroundColor: [
|
|
1615
|
+
data: [c, a],
|
|
1616
|
+
backgroundColor: [b, D(o.value.muted, 0.15)],
|
|
1614
1617
|
borderWidth: 0,
|
|
1615
1618
|
borderColor: "transparent",
|
|
1616
1619
|
hoverOffset: 0,
|
|
@@ -1618,7 +1621,7 @@ const ct = '<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewB
|
|
|
1618
1621
|
}
|
|
1619
1622
|
]
|
|
1620
1623
|
};
|
|
1621
|
-
}),
|
|
1624
|
+
}), E = M(() => ({
|
|
1622
1625
|
responsive: !0,
|
|
1623
1626
|
maintainAspectRatio: !1,
|
|
1624
1627
|
cutout: e.cutout,
|
|
@@ -1630,171 +1633,194 @@ const ct = '<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewB
|
|
|
1630
1633
|
tooltip: { enabled: !1 }
|
|
1631
1634
|
}
|
|
1632
1635
|
}));
|
|
1636
|
+
function j(c) {
|
|
1637
|
+
const a = R.value;
|
|
1638
|
+
if (!a) return;
|
|
1639
|
+
getComputedStyle(a).position === "static" && (a.style.position = "relative");
|
|
1640
|
+
const b = gt(a);
|
|
1641
|
+
b.style.whiteSpace = "normal";
|
|
1642
|
+
const v = b.querySelector(".nc-tt__content");
|
|
1643
|
+
v.innerHTML = '<span style="font-size:11px;color:#0F172A;display:block;max-width:140px;line-height:1.5;"><strong>Modo Redução</strong>: o progresso aumenta conforme o valor diminui</span>', b.style.opacity = "1", b.style.visibility = "hidden", b.style.left = "0px", b.style.top = "0px", b.offsetWidth;
|
|
1644
|
+
const i = c.currentTarget.getBoundingClientRect(), f = a.getBoundingClientRect(), n = i.left - f.left + i.width / 2, m = i.top - f.top;
|
|
1645
|
+
b.style.transform = "translate(-50%, calc(-100% - 8px))";
|
|
1646
|
+
const h = b.querySelector(".nc-tt__caret");
|
|
1647
|
+
h && Object.assign(h.style, {
|
|
1648
|
+
top: "",
|
|
1649
|
+
bottom: "-5px",
|
|
1650
|
+
borderLeft: "",
|
|
1651
|
+
borderTop: "",
|
|
1652
|
+
borderRight: "1px solid rgba(15,23,42,.06)",
|
|
1653
|
+
borderBottom: "1px solid rgba(15,23,42,.06)"
|
|
1654
|
+
}), b.style.left = n + "px", b.style.top = m + "px", b.style.visibility = "visible";
|
|
1655
|
+
}
|
|
1656
|
+
function G() {
|
|
1657
|
+
var a;
|
|
1658
|
+
const c = (a = R.value) == null ? void 0 : a.querySelector(".nc-tt");
|
|
1659
|
+
c && (c.style.opacity = "0");
|
|
1660
|
+
}
|
|
1633
1661
|
function u() {
|
|
1634
|
-
|
|
1662
|
+
d("botaoAcao");
|
|
1635
1663
|
}
|
|
1636
|
-
return (
|
|
1664
|
+
return (c, a) => (l(), s("div", {
|
|
1637
1665
|
ref_key: "cardRef",
|
|
1638
|
-
ref:
|
|
1639
|
-
class:
|
|
1640
|
-
style:
|
|
1666
|
+
ref: R,
|
|
1667
|
+
class: lt(["card-progresso p-4 flex flex-column", F.value]),
|
|
1668
|
+
style: x(r(B))
|
|
1641
1669
|
}, [
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
|
|
1670
|
+
k("div", oo, [
|
|
1671
|
+
c.$slots.legenda || t.legenda || c.$slots.sublegenda || t.sublegenda ? (l(), s("div", ao, [
|
|
1672
|
+
c.$slots.legenda || t.legenda ? (l(), s("div", {
|
|
1645
1673
|
key: 0,
|
|
1646
1674
|
class: "text-xs font-medium",
|
|
1647
|
-
style:
|
|
1675
|
+
style: x({ color: r(o).text, opacity: 0.95 })
|
|
1648
1676
|
}, [
|
|
1649
|
-
|
|
1650
|
-
|
|
1677
|
+
L(c.$slots, "legenda", {}, () => [
|
|
1678
|
+
Y(A(t.legenda), 1)
|
|
1651
1679
|
], !0)
|
|
1652
|
-
], 4)) :
|
|
1653
|
-
|
|
1680
|
+
], 4)) : g("", !0),
|
|
1681
|
+
c.$slots.sublegenda || t.sublegenda ? (l(), s("div", {
|
|
1654
1682
|
key: 1,
|
|
1655
1683
|
class: "text-xs",
|
|
1656
|
-
style:
|
|
1684
|
+
style: x({ color: r(o).muted })
|
|
1657
1685
|
}, [
|
|
1658
|
-
|
|
1659
|
-
|
|
1686
|
+
L(c.$slots, "sublegenda", {}, () => [
|
|
1687
|
+
Y(A(t.sublegenda), 1)
|
|
1660
1688
|
], !0)
|
|
1661
|
-
], 4)) :
|
|
1662
|
-
])) :
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
t.botaoVisivel ? (
|
|
1689
|
+
], 4)) : g("", !0)
|
|
1690
|
+
])) : g("", !0),
|
|
1691
|
+
c.$slots.actions || t.botaoVisivel || t.exportar ? (l(), s("div", ro, [
|
|
1692
|
+
L(c.$slots, "actions", {}, () => [
|
|
1693
|
+
t.botaoVisivel ? (l(), s("button", {
|
|
1666
1694
|
key: 0,
|
|
1667
1695
|
class: "nc-btn inline-flex align-items-center",
|
|
1668
|
-
style:
|
|
1696
|
+
style: x({ color: r(o).text, borderColor: r(D)(r(o).text, 0.18) }),
|
|
1669
1697
|
onClick: u
|
|
1670
1698
|
}, [
|
|
1671
|
-
|
|
1672
|
-
], 4)) :
|
|
1699
|
+
k("span", null, A(t.textoBotao), 1)
|
|
1700
|
+
], 4)) : g("", !0)
|
|
1673
1701
|
], !0),
|
|
1674
|
-
t.exportar ? (
|
|
1702
|
+
t.exportar ? (l(), s("button", {
|
|
1675
1703
|
key: 0,
|
|
1676
1704
|
type: "button",
|
|
1677
1705
|
class: "nc-exportar inline-flex align-items-center justify-content-center",
|
|
1678
|
-
style:
|
|
1706
|
+
style: x({ color: r(o).muted, borderColor: r(D)(r(o).text, 0.18) }),
|
|
1679
1707
|
title: "Exportar como imagem",
|
|
1680
1708
|
"aria-label": "Exportar como imagem",
|
|
1681
1709
|
onClick: w,
|
|
1682
|
-
innerHTML: r(
|
|
1683
|
-
}, null, 12,
|
|
1684
|
-
])) :
|
|
1710
|
+
innerHTML: r(I)
|
|
1711
|
+
}, null, 12, no)) : g("", !0)
|
|
1712
|
+
])) : g("", !0)
|
|
1685
1713
|
]),
|
|
1686
|
-
|
|
1687
|
-
|
|
1714
|
+
c.$slots.titulo || t.titulo || c.$slots.descricao || t.descricao ? (l(), s("div", lo, [
|
|
1715
|
+
c.$slots.titulo || t.titulo ? (l(), s("div", {
|
|
1688
1716
|
key: 0,
|
|
1689
1717
|
class: "m-0 text-3xl font-semibold",
|
|
1690
|
-
style:
|
|
1718
|
+
style: x({ color: r(o).text, lineHeight: "33px", letterSpacing: "-1px" })
|
|
1691
1719
|
}, [
|
|
1692
|
-
|
|
1693
|
-
|
|
1720
|
+
L(c.$slots, "titulo", {}, () => [
|
|
1721
|
+
Y(A(t.titulo), 1)
|
|
1694
1722
|
], !0)
|
|
1695
|
-
], 4)) :
|
|
1696
|
-
|
|
1723
|
+
], 4)) : g("", !0),
|
|
1724
|
+
c.$slots.descricao || t.descricao ? (l(), s("div", {
|
|
1697
1725
|
key: 1,
|
|
1698
1726
|
class: "text-sm mt-1",
|
|
1699
|
-
style:
|
|
1727
|
+
style: x({ color: r(o).muted })
|
|
1700
1728
|
}, [
|
|
1701
|
-
|
|
1702
|
-
|
|
1729
|
+
L(c.$slots, "descricao", {}, () => [
|
|
1730
|
+
Y(A(t.descricao), 1)
|
|
1703
1731
|
], !0)
|
|
1704
|
-
], 4)) :
|
|
1705
|
-
])) :
|
|
1706
|
-
|
|
1707
|
-
t.formato === "circular" ? (
|
|
1708
|
-
|
|
1709
|
-
|
|
1732
|
+
], 4)) : g("", !0)
|
|
1733
|
+
])) : g("", !0),
|
|
1734
|
+
k("div", so, [
|
|
1735
|
+
t.formato === "circular" ? (l(), s("div", io, [
|
|
1736
|
+
k("div", co, [
|
|
1737
|
+
ft(st, {
|
|
1710
1738
|
type: "doughnut",
|
|
1711
|
-
data:
|
|
1712
|
-
options:
|
|
1739
|
+
data: p.value,
|
|
1740
|
+
options: E.value,
|
|
1713
1741
|
height: t.height
|
|
1714
1742
|
}, null, 8, ["data", "options", "height"]),
|
|
1715
|
-
|
|
1716
|
-
|
|
1743
|
+
k("div", uo, [
|
|
1744
|
+
k("div", {
|
|
1717
1745
|
class: "nc-centro-titulo",
|
|
1718
|
-
style:
|
|
1719
|
-
},
|
|
1720
|
-
$("div", {
|
|
1721
|
-
class: "nc-centro-desc",
|
|
1722
|
-
style: b({ color: r(o).muted })
|
|
1723
|
-
}, k(r(v)(K.value)) + " / " + k(r(v)(_.value)), 5)
|
|
1746
|
+
style: x({ color: K.value ? e.corExcesso : r(o).text })
|
|
1747
|
+
}, A(Math.round(_.value)) + "% ", 5)
|
|
1724
1748
|
])
|
|
1725
1749
|
])
|
|
1726
|
-
])) :
|
|
1727
|
-
|
|
1728
|
-
(
|
|
1729
|
-
key:
|
|
1750
|
+
])) : g("", !0),
|
|
1751
|
+
k("div", fo, [
|
|
1752
|
+
(l(!0), s(yt, null, mt(z.value, (b, v) => (l(), s("div", {
|
|
1753
|
+
key: v,
|
|
1730
1754
|
class: "card-progresso__item flex flex-column"
|
|
1731
1755
|
}, [
|
|
1732
|
-
|
|
1733
|
-
|
|
1756
|
+
k("div", po, [
|
|
1757
|
+
k("span", {
|
|
1734
1758
|
class: "card-progresso__item-rotulo inline-flex align-items-center gap-2",
|
|
1735
|
-
style:
|
|
1759
|
+
style: x({ color: r(o).text })
|
|
1736
1760
|
}, [
|
|
1737
|
-
|
|
1761
|
+
k("span", {
|
|
1738
1762
|
class: "nc-bolinha",
|
|
1739
|
-
style:
|
|
1763
|
+
style: x({ background: b.cor })
|
|
1740
1764
|
}, null, 4),
|
|
1741
|
-
|
|
1742
|
-
|
|
1765
|
+
k("span", null, A(b.rotulo), 1),
|
|
1766
|
+
b.reducao ? (l(), s("span", {
|
|
1743
1767
|
key: 0,
|
|
1744
1768
|
class: "card-progresso__item-modo",
|
|
1745
|
-
style:
|
|
1746
|
-
|
|
1769
|
+
style: x({ color: r(o).muted }),
|
|
1770
|
+
onMouseenter: j,
|
|
1771
|
+
onMouseleave: G
|
|
1772
|
+
}, "↓", 36)) : g("", !0)
|
|
1747
1773
|
], 4),
|
|
1748
|
-
t.mostrarValor || t.mostrarPercentual ? (
|
|
1749
|
-
t.mostrarValor ? (
|
|
1774
|
+
t.mostrarValor || t.mostrarPercentual ? (l(), s("span", go, [
|
|
1775
|
+
t.mostrarValor ? (l(), s("span", {
|
|
1750
1776
|
key: 0,
|
|
1751
1777
|
class: "card-progresso__item-nums",
|
|
1752
|
-
style:
|
|
1778
|
+
style: x({ color: r(o).muted })
|
|
1753
1779
|
}, [
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
], 4)) :
|
|
1757
|
-
t.mostrarPercentual ? (
|
|
1780
|
+
Y(A(r($)(b.quantidade)), 1),
|
|
1781
|
+
b.meta ? (l(), s("span", yo, " / " + A(r($)(b.meta)), 1)) : g("", !0)
|
|
1782
|
+
], 4)) : g("", !0),
|
|
1783
|
+
t.mostrarPercentual ? (l(), s("span", {
|
|
1758
1784
|
key: 1,
|
|
1759
1785
|
class: "card-progresso__item-pct",
|
|
1760
|
-
style:
|
|
1761
|
-
},
|
|
1762
|
-
])) :
|
|
1786
|
+
style: x({ background: r(D)(b.cor, 0.12), color: b.cor })
|
|
1787
|
+
}, A(Math.round(b.percentual)) + "% ", 5)) : g("", !0)
|
|
1788
|
+
])) : g("", !0)
|
|
1763
1789
|
]),
|
|
1764
|
-
|
|
1790
|
+
k("div", {
|
|
1765
1791
|
class: "card-progresso__trilha w-full",
|
|
1766
|
-
style:
|
|
1767
|
-
height:
|
|
1768
|
-
borderRadius:
|
|
1769
|
-
background:
|
|
1792
|
+
style: x({
|
|
1793
|
+
height: Q.value,
|
|
1794
|
+
borderRadius: X.value,
|
|
1795
|
+
background: b.reducao ? r(D)(e.corExcesso, 0.18) : r(D)(r(o).muted, 0.15)
|
|
1770
1796
|
})
|
|
1771
1797
|
}, [
|
|
1772
|
-
|
|
1798
|
+
k("div", {
|
|
1773
1799
|
class: "card-progresso__preenchimento",
|
|
1774
|
-
style:
|
|
1800
|
+
style: x({ width: b.percentual + "%", background: b.cor, borderRadius: X.value })
|
|
1775
1801
|
}, null, 4)
|
|
1776
1802
|
], 4)
|
|
1777
1803
|
]))), 128))
|
|
1778
1804
|
])
|
|
1779
1805
|
]),
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
])) :
|
|
1806
|
+
c.$slots.footer ? (l(), s("div", mo, [
|
|
1807
|
+
L(c.$slots, "footer", {}, void 0, !0)
|
|
1808
|
+
])) : g("", !0)
|
|
1783
1809
|
], 6));
|
|
1784
1810
|
}
|
|
1785
|
-
},
|
|
1811
|
+
}, ho = /* @__PURE__ */ at(bo, [["__scopeId", "data-v-f738fbcc"]]), xo = {
|
|
1786
1812
|
key: 0,
|
|
1787
1813
|
class: "card-base__topo"
|
|
1788
|
-
},
|
|
1814
|
+
}, vo = ["innerHTML"], $o = { class: "card-base__legendas flex flex-column" }, So = {
|
|
1789
1815
|
key: 1,
|
|
1790
1816
|
class: "card-base__titulos flex flex-column"
|
|
1791
|
-
},
|
|
1817
|
+
}, ko = {
|
|
1792
1818
|
key: 2,
|
|
1793
1819
|
class: "card-base__acao flex"
|
|
1794
|
-
},
|
|
1820
|
+
}, Co = {
|
|
1795
1821
|
key: 3,
|
|
1796
1822
|
class: "card-base__footer"
|
|
1797
|
-
},
|
|
1823
|
+
}, Bo = {
|
|
1798
1824
|
__name: "CardBase",
|
|
1799
1825
|
props: {
|
|
1800
1826
|
legenda: { type: String, default: null },
|
|
@@ -1818,117 +1844,117 @@ const ct = '<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewB
|
|
|
1818
1844
|
nomeArquivoExport: { type: String, default: "card-base.png" }
|
|
1819
1845
|
},
|
|
1820
1846
|
emits: ["botaoAcao", "exportado"],
|
|
1821
|
-
setup(t, { emit:
|
|
1822
|
-
const e = t,
|
|
1823
|
-
function
|
|
1824
|
-
|
|
1847
|
+
setup(t, { emit: y }) {
|
|
1848
|
+
const e = t, d = y, { palette: o, cardStyle: B } = it(e), $ = ot(null), R = dt;
|
|
1849
|
+
function I() {
|
|
1850
|
+
d("botaoAcao");
|
|
1825
1851
|
}
|
|
1826
1852
|
async function w() {
|
|
1827
|
-
await
|
|
1853
|
+
await ct($.value, {
|
|
1828
1854
|
nomeArquivo: e.nomeArquivoExport,
|
|
1829
1855
|
corFundo: o.value.bg !== "transparent" ? o.value.bg : null
|
|
1830
|
-
}),
|
|
1856
|
+
}), d("exportado");
|
|
1831
1857
|
}
|
|
1832
|
-
return (
|
|
1858
|
+
return (F, z) => (l(), s("div", {
|
|
1833
1859
|
ref_key: "cardRef",
|
|
1834
|
-
ref:
|
|
1835
|
-
class:
|
|
1836
|
-
style:
|
|
1860
|
+
ref: $,
|
|
1861
|
+
class: lt(["card-base flex flex-column", `card-base--${t.alinhamento}`]),
|
|
1862
|
+
style: x(r(B))
|
|
1837
1863
|
}, [
|
|
1838
|
-
t.exportar ? (
|
|
1839
|
-
|
|
1864
|
+
t.exportar ? (l(), s("div", xo, [
|
|
1865
|
+
k("button", {
|
|
1840
1866
|
type: "button",
|
|
1841
1867
|
class: "nc-exportar card-base__exportar inline-flex align-items-center justify-content-center",
|
|
1842
|
-
style:
|
|
1868
|
+
style: x({ color: r(o).muted, borderColor: r(D)(r(o).text === "inherit" ? "#0F172A" : r(o).text, 0.18) }),
|
|
1843
1869
|
title: "Exportar como imagem",
|
|
1844
1870
|
"aria-label": "Exportar como imagem",
|
|
1845
1871
|
onClick: w,
|
|
1846
|
-
innerHTML: r(
|
|
1847
|
-
}, null, 12,
|
|
1848
|
-
])) :
|
|
1849
|
-
|
|
1850
|
-
|
|
1872
|
+
innerHTML: r(R)
|
|
1873
|
+
}, null, 12, vo)
|
|
1874
|
+
])) : g("", !0),
|
|
1875
|
+
k("div", $o, [
|
|
1876
|
+
F.$slots.legenda || t.legenda ? (l(), s("div", {
|
|
1851
1877
|
key: 0,
|
|
1852
1878
|
class: "card-base__legenda font-medium text-xs",
|
|
1853
|
-
style:
|
|
1879
|
+
style: x({ color: r(o).text })
|
|
1854
1880
|
}, [
|
|
1855
|
-
|
|
1856
|
-
|
|
1881
|
+
L(F.$slots, "legenda", {}, () => [
|
|
1882
|
+
Y(A(t.legenda), 1)
|
|
1857
1883
|
], !0)
|
|
1858
|
-
], 4)) :
|
|
1859
|
-
|
|
1884
|
+
], 4)) : g("", !0),
|
|
1885
|
+
F.$slots.sublegenda || t.sublegenda ? (l(), s("div", {
|
|
1860
1886
|
key: 1,
|
|
1861
1887
|
class: "card-base__sublegenda text-xs",
|
|
1862
|
-
style:
|
|
1888
|
+
style: x({ color: r(o).muted })
|
|
1863
1889
|
}, [
|
|
1864
|
-
|
|
1865
|
-
|
|
1890
|
+
L(F.$slots, "sublegenda", {}, () => [
|
|
1891
|
+
Y(A(t.sublegenda), 1)
|
|
1866
1892
|
], !0)
|
|
1867
|
-
], 4)) :
|
|
1893
|
+
], 4)) : g("", !0)
|
|
1868
1894
|
]),
|
|
1869
|
-
|
|
1870
|
-
|
|
1895
|
+
F.$slots.titulo || t.titulo || F.$slots.descricao || t.descricao ? (l(), s("div", So, [
|
|
1896
|
+
F.$slots.titulo || t.titulo ? (l(), s("div", {
|
|
1871
1897
|
key: 0,
|
|
1872
1898
|
class: "card-base__titulo m-0 text-3xl font-semibold",
|
|
1873
|
-
style:
|
|
1899
|
+
style: x({ color: r(o).text, lineHeight: "33px", letterSpacing: "-1px" })
|
|
1874
1900
|
}, [
|
|
1875
|
-
|
|
1876
|
-
|
|
1901
|
+
L(F.$slots, "titulo", {}, () => [
|
|
1902
|
+
Y(A(t.titulo), 1)
|
|
1877
1903
|
], !0)
|
|
1878
|
-
], 4)) :
|
|
1879
|
-
|
|
1904
|
+
], 4)) : g("", !0),
|
|
1905
|
+
F.$slots.descricao || t.descricao ? (l(), s("div", {
|
|
1880
1906
|
key: 1,
|
|
1881
1907
|
class: "text-sm",
|
|
1882
|
-
style:
|
|
1908
|
+
style: x({ color: r(o).muted })
|
|
1883
1909
|
}, [
|
|
1884
|
-
|
|
1885
|
-
|
|
1910
|
+
L(F.$slots, "descricao", {}, () => [
|
|
1911
|
+
Y(A(t.descricao), 1)
|
|
1886
1912
|
], !0)
|
|
1887
|
-
], 4)) :
|
|
1888
|
-
])) :
|
|
1889
|
-
|
|
1890
|
-
|
|
1891
|
-
t.botaoVisivel ? (
|
|
1913
|
+
], 4)) : g("", !0)
|
|
1914
|
+
])) : g("", !0),
|
|
1915
|
+
F.$slots.acao || t.botaoVisivel ? (l(), s("div", ko, [
|
|
1916
|
+
L(F.$slots, "acao", {}, () => [
|
|
1917
|
+
t.botaoVisivel ? (l(), s("button", {
|
|
1892
1918
|
key: 0,
|
|
1893
1919
|
type: "button",
|
|
1894
1920
|
class: "card-base__link text-xs inline-flex align-items-center",
|
|
1895
|
-
style:
|
|
1896
|
-
onClick:
|
|
1921
|
+
style: x({ color: r(o).text }),
|
|
1922
|
+
onClick: I
|
|
1897
1923
|
}, [
|
|
1898
|
-
|
|
1899
|
-
|
|
1924
|
+
k("span", null, A(t.textoBotao), 1),
|
|
1925
|
+
z[0] || (z[0] = k("span", {
|
|
1900
1926
|
class: "card-base__chevron",
|
|
1901
1927
|
"aria-hidden": "true"
|
|
1902
1928
|
}, "›", -1))
|
|
1903
|
-
], 4)) :
|
|
1929
|
+
], 4)) : g("", !0)
|
|
1904
1930
|
], !0)
|
|
1905
|
-
])) :
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
])) :
|
|
1931
|
+
])) : g("", !0),
|
|
1932
|
+
F.$slots.footer ? (l(), s("div", Co, [
|
|
1933
|
+
L(F.$slots, "footer", {}, void 0, !0)
|
|
1934
|
+
])) : g("", !0)
|
|
1909
1935
|
], 6));
|
|
1910
1936
|
}
|
|
1911
|
-
},
|
|
1937
|
+
}, Ao = /* @__PURE__ */ at(Bo, [["__scopeId", "data-v-d1b84008"]]), To = {
|
|
1912
1938
|
install(t) {
|
|
1913
|
-
t.component("ChartBase",
|
|
1939
|
+
t.component("ChartBase", st), t.component("CardBase", Ao), t.component("CardLinhas", ye), t.component("CardPizza", qe), t.component("CardBarra", Pe), t.component("CardPolar", eo), t.component("CardProgresso", ho);
|
|
1914
1940
|
}
|
|
1915
1941
|
};
|
|
1916
1942
|
export {
|
|
1917
|
-
|
|
1918
|
-
|
|
1919
|
-
|
|
1920
|
-
|
|
1921
|
-
|
|
1922
|
-
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
|
|
1943
|
+
Pe as CardBarra,
|
|
1944
|
+
Ao as CardBase,
|
|
1945
|
+
ye as CardLinhas,
|
|
1946
|
+
qe as CardPizza,
|
|
1947
|
+
eo as CardPolar,
|
|
1948
|
+
ho as CardProgresso,
|
|
1949
|
+
st as ChartBase,
|
|
1950
|
+
dt as ICONE_EXPORTAR_SVG,
|
|
1951
|
+
nt as clampHorizontal,
|
|
1926
1952
|
gt as criarTooltipEl,
|
|
1927
|
-
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
|
|
1931
|
-
|
|
1932
|
-
|
|
1933
|
-
|
|
1953
|
+
To as default,
|
|
1954
|
+
ct as exportarElementoComoImagem,
|
|
1955
|
+
bt as gerarPaleta,
|
|
1956
|
+
rt as prepararTooltipParent,
|
|
1957
|
+
D as toRgba,
|
|
1958
|
+
pt as useFormatadorValor,
|
|
1959
|
+
it as useTema
|
|
1934
1960
|
};
|