@actionexec/dashboards 0.19.0 → 0.19.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
- import { jsxs as g, jsx as a, Fragment as V } from "react/jsx-runtime";
2
- import { useState as T, useRef as R, useEffect as F, useCallback as x, useMemo as O, memo as Oe } from "react";
3
- import { M as B, f as Fe, a as Ie, c as ae, b as se, d as We, e as be, i as le, g as D, p as ze, h as J, j as ve, k as we, l as Y, m as De, r as He, D as ie, n as Ve, o as je, S as ye, C as Ge, q as Ke, s as Ne, t as Ye, u as Ue, v as Be, G as qe, w as oe, x as Xe, y as Qe, z as Ze, A as Je, B as et } from "./ColorPaletteSelector-nBO_fbbj.js";
4
- import { E as Wr } from "./ColorPaletteSelector-nBO_fbbj.js";
5
- import { LineChart as tt, Line as rt, AreaChart as nt, Area as at, BarChart as Se, Bar as q, CartesianGrid as ke, XAxis as Ce, YAxis as Re, Tooltip as X, Legend as st, Cell as ce, PieChart as lt, Pie as it } from "recharts";
1
+ import { jsxs as _, jsx as a, Fragment as V } from "react/jsx-runtime";
2
+ import { useState as E, useRef as R, useEffect as O, useCallback as P, useMemo as F, memo as Fe } from "react";
3
+ import { M as B, f as Oe, a as Ie, c as ae, b as se, d as We, e as be, i as le, g as D, p as ze, h as J, j as ve, k as we, l as Y, m as De, r as He, D as ie, n as Ve, o as je, S as ye, C as Ge, q as Ke, s as Ne, t as Ye, u as Ue, v as Be, G as Xe, w as oe, x as qe, y as Qe, z as Ze, A as Je, B as et } from "./ColorPaletteSelector-nBO_fbbj.js";
4
+ import { E as Vr } from "./ColorPaletteSelector-nBO_fbbj.js";
5
+ import { LineChart as tt, Line as rt, AreaChart as nt, Area as at, BarChart as Se, Bar as X, CartesianGrid as ke, XAxis as Ce, YAxis as Re, Tooltip as q, Legend as st, Cell as ce, PieChart as lt, Pie as it } from "recharts";
6
6
  function H(e, t = {}) {
7
7
  const n = {};
8
8
  for (const [r, s] of Object.entries(e))
@@ -33,58 +33,58 @@ function xe(e) {
33
33
  }
34
34
  const ot = 300;
35
35
  function ct(e) {
36
- const [t, n] = T(null), [r, s] = T(null), [l, i] = T({}), [o, m] = T({}), [c, u] = T(null), [d, f] = T(!0), [p, h] = T(null), v = R(), k = R(!1), w = R(null), y = R(!1);
37
- F(() => {
38
- let b = !1;
39
- return k.current = !1, w.current = null, y.current = !1, Fe(e).then((_) => {
40
- b || n(_);
41
- }).catch((_) => {
42
- b || h(_.message);
36
+ const [t, n] = E(null), [r, s] = E(null), [l, i] = E({}), [o, u] = E({}), [c, d] = E(null), [m, h] = E(!0), [p, v] = E(null), f = R(), N = R(!1), w = R(null), y = R(!1);
37
+ O(() => {
38
+ let g = !1;
39
+ return N.current = !1, w.current = null, y.current = !1, Oe(e).then((b) => {
40
+ g || n(b);
41
+ }).catch((b) => {
42
+ g || v(b.message);
43
43
  }), () => {
44
- b = !0;
44
+ g = !0;
45
45
  };
46
- }, [e]), F(() => {
46
+ }, [e]), O(() => {
47
47
  if (!t) return;
48
48
  if (t.widgets.length === 0) {
49
- f(!1);
49
+ h(!1);
50
50
  return;
51
51
  }
52
- const b = H(l, o), _ = j(b);
53
- if (_ === w.current) return;
54
- v.current && clearTimeout(v.current);
55
- const N = y.current ? ot : 0;
56
- return v.current = setTimeout(() => {
57
- f(!0), Ie(e, b).then((A) => {
58
- w.current = _, y.current = !0, s(A), !k.current && A.applied && (k.current = !0, i((M) => {
59
- const S = { ...xe(A.applied), ...M };
60
- return $e(S, M) ? M : (w.current = j(H(S, o)), S);
61
- })), h(null);
62
- }).catch((A) => h(A.message)).finally(() => f(!1));
63
- }, N), () => {
64
- v.current && clearTimeout(v.current);
52
+ const g = H(l, o), b = j(g);
53
+ if (b === w.current) return;
54
+ f.current && clearTimeout(f.current);
55
+ const S = y.current ? ot : 0;
56
+ return f.current = setTimeout(() => {
57
+ h(!0), Ie(e, g).then((x) => {
58
+ w.current = b, y.current = !0, s(x), !N.current && x.applied && (N.current = !0, i((C) => {
59
+ const k = { ...xe(x.applied), ...C };
60
+ return $e(k, C) ? C : (w.current = j(H(k, o)), k);
61
+ })), v(null);
62
+ }).catch((x) => v(x.message)).finally(() => h(!1));
63
+ }, S), () => {
64
+ f.current && clearTimeout(f.current);
65
65
  };
66
66
  }, [e, t, l, o]);
67
- const C = x((b, _) => {
68
- i((N) => ({ ...N, [b]: _ }));
69
- }, []), $ = x((b, _) => {
70
- m((N) => ({ ...N, [b]: _ }));
71
- }, []), P = x((b) => {
72
- u(b);
73
- }, []), E = O(
67
+ const T = P((g, b) => {
68
+ i((S) => ({ ...S, [g]: b }));
69
+ }, []), A = P((g, b) => {
70
+ u((S) => ({ ...S, [g]: b }));
71
+ }, []), M = P((g) => {
72
+ d(g);
73
+ }, []), $ = F(
74
74
  () => c ?? (t == null ? void 0 : t.palette) ?? [],
75
75
  [c, t]
76
76
  );
77
77
  return {
78
78
  layout: t,
79
79
  renderData: r,
80
- loading: d,
80
+ loading: m,
81
81
  error: p,
82
82
  filters: l,
83
83
  variables: o,
84
- palette: E,
85
- setFilter: C,
86
- setVariable: $,
87
- setPalette: P
84
+ palette: $,
85
+ setFilter: T,
86
+ setVariable: A,
87
+ setPalette: M
88
88
  };
89
89
  }
90
90
  const dt = (e) => {
@@ -110,64 +110,64 @@ function ht(e) {
110
110
  function ft(e) {
111
111
  const t = R(e);
112
112
  t.current = e;
113
- const n = R(null), r = R(null), s = R(null), l = R(null), i = R(null), o = R(0), m = R(0), c = R(!1), u = R(!1), d = R(-1), [f, p] = T(!1), h = x((b) => {
114
- const _ = r.current;
115
- if (u.current || t.current.silenceWarnings || !_) return;
116
- const N = ht(_);
117
- !N || N.clientHeight >= b.gridHeight || (u.current = !0, console.warn(
118
- `[@actionexec/dashboards] O dashboard esta sendo cortado: o container precisa de ${Math.ceil(b.gridHeight)}px de altura, mas o ancestral com overflow oculto tem ${N.clientHeight}px. A altura do dashboard varia com a largura — use a prop onGeometryChange para dimensionar o container, ou troque o overflow para auto. Passe silenceWarnings para desligar este aviso.`
113
+ const n = R(null), r = R(null), s = R(null), l = R(null), i = R(null), o = R(0), u = R(0), c = R(!1), d = R(!1), m = R(-1), [h, p] = E(!1), v = P((g) => {
114
+ const b = r.current;
115
+ if (d.current || t.current.silenceWarnings || !b) return;
116
+ const S = ht(b);
117
+ !S || S.clientHeight >= g.gridHeight || (d.current = !0, console.warn(
118
+ `[@actionexec/dashboards] O dashboard esta sendo cortado: o container precisa de ${Math.ceil(g.gridHeight)}px de altura, mas o ancestral com overflow oculto tem ${S.clientHeight}px. A altura do dashboard varia com a largura — use a prop onGeometryChange para dimensionar o container, ou troque o overflow para auto. Passe silenceWarnings para desligar este aviso.`
119
119
  ));
120
- }, []), v = x(() => {
120
+ }, []), f = P(() => {
121
121
  var L, I;
122
122
  if (!n.current) return;
123
- const { columns: b, cellAspect: _ } = t.current, N = o.current, A = se(N, b), M = {
124
- containerWidth: N,
125
- cellWidth: A,
126
- cellHeight: ae(A, _),
127
- gridHeight: m.current,
123
+ const { columns: g, cellAspect: b } = t.current, S = o.current, x = se(S, g), C = {
124
+ containerWidth: S,
125
+ cellWidth: x,
126
+ cellHeight: ae(x, b),
127
+ gridHeight: u.current,
128
128
  stacked: c.current
129
- }, S = i.current;
130
- S && S.containerWidth === M.containerWidth && S.cellWidth === M.cellWidth && S.cellHeight === M.cellHeight && S.gridHeight === M.gridHeight && S.stacked === M.stacked || (i.current = M, (I = (L = t.current).onGeometryChange) == null || I.call(L, M), h(M));
131
- }, [h]), k = x((b = !1) => {
132
- const _ = n.current;
133
- if (!_) return;
134
- const N = o.current;
135
- if (!b && N === d.current) return;
136
- d.current = N;
137
- const { columns: A, cellAspect: M, stackBelow: S } = t.current, z = se(N, A);
138
- _.style.setProperty("--dash-cell-h", `${ae(z, M)}px`);
139
- const L = mt(S, A, M), I = L > 0 && N > 0 && N < L;
129
+ }, k = i.current;
130
+ k && k.containerWidth === C.containerWidth && k.cellWidth === C.cellWidth && k.cellHeight === C.cellHeight && k.gridHeight === C.gridHeight && k.stacked === C.stacked || (i.current = C, (I = (L = t.current).onGeometryChange) == null || I.call(L, C), v(C));
131
+ }, [v]), N = P((g = !1) => {
132
+ const b = n.current;
133
+ if (!b) return;
134
+ const S = o.current;
135
+ if (!g && S === m.current) return;
136
+ m.current = S;
137
+ const { columns: x, cellAspect: C, stackBelow: k } = t.current, z = se(S, x);
138
+ b.style.setProperty("--dash-cell-h", `${ae(z, C)}px`);
139
+ const L = mt(k, x, C), I = L > 0 && S > 0 && S < L;
140
140
  I !== c.current && (c.current = I, p(I));
141
- }, []), w = x(() => {
141
+ }, []), w = P(() => {
142
142
  l.current !== null && (cancelAnimationFrame(l.current), l.current = null);
143
- }, []), y = x(() => {
143
+ }, []), y = P(() => {
144
144
  l.current === null && (l.current = requestAnimationFrame(() => {
145
- l.current = null, k(), v();
145
+ l.current = null, N(), f();
146
146
  }));
147
- }, [k, v]), C = x((b) => {
148
- for (const _ of b)
149
- _.target === n.current ? o.current = Math.round(dt(_)) : _.target === r.current && (m.current = ut(_));
147
+ }, [N, f]), T = P((g) => {
148
+ for (const b of g)
149
+ b.target === n.current ? o.current = Math.round(dt(b)) : b.target === r.current && (u.current = ut(b));
150
150
  y();
151
- }, [y]), $ = x(() => s.current ? s.current : typeof ResizeObserver > "u" ? null : (s.current = new ResizeObserver(C), s.current), [C]), P = x((b) => {
152
- const _ = $();
153
- n.current && (_ == null || _.unobserve(n.current)), n.current = b, b && (_ == null || _.observe(b), o.current = Math.round(b.getBoundingClientRect().width), k(!0), y());
154
- }, [k, $, y]), E = x((b) => {
155
- const _ = $();
156
- if (r.current && (_ == null || _.unobserve(r.current)), r.current = b, !b) {
157
- m.current = 0;
151
+ }, [y]), A = P(() => s.current ? s.current : typeof ResizeObserver > "u" ? null : (s.current = new ResizeObserver(T), s.current), [T]), M = P((g) => {
152
+ const b = A();
153
+ n.current && (b == null || b.unobserve(n.current)), n.current = g, g && (b == null || b.observe(g), o.current = Math.round(g.getBoundingClientRect().width), N(!0), y());
154
+ }, [N, A, y]), $ = P((g) => {
155
+ const b = A();
156
+ if (r.current && (b == null || b.unobserve(r.current)), r.current = g, !g) {
157
+ u.current = 0;
158
158
  return;
159
159
  }
160
- _ == null || _.observe(b), m.current = b.getBoundingClientRect().height, y();
161
- }, [$, y]);
162
- return F(() => {
163
- const b = $();
164
- return n.current && (b == null || b.observe(n.current)), r.current && (b == null || b.observe(r.current)), () => {
165
- var _;
166
- (_ = s.current) == null || _.disconnect(), s.current = null, w();
160
+ b == null || b.observe(g), u.current = g.getBoundingClientRect().height, y();
161
+ }, [A, y]);
162
+ return O(() => {
163
+ const g = A();
164
+ return n.current && (g == null || g.observe(n.current)), r.current && (g == null || g.observe(r.current)), () => {
165
+ var b;
166
+ (b = s.current) == null || b.disconnect(), s.current = null, w();
167
167
  };
168
- }, [$, w]), F(() => {
169
- n.current && (k(!0), y());
170
- }, [e.columns, e.cellAspect, e.stackBelow, k, y]), { rootRef: P, gridRef: E, stacked: f };
168
+ }, [A, w]), O(() => {
169
+ n.current && (N(!0), y());
170
+ }, [e.columns, e.cellAspect, e.stackBelow, N, y]), { rootRef: M, gridRef: $, stacked: h };
171
171
  }
172
172
  const pt = {
173
173
  empty: "Sem dados",
@@ -179,7 +179,7 @@ function ee({ kind: e, message: t }) {
179
179
  return /* @__PURE__ */ a("div", { className: `widget__state widget__state--${e}`, role: e === "error" ? "alert" : void 0, children: t || pt[e] });
180
180
  }
181
181
  function W({ name: e, title: t, state: n, stateMessage: r, toolbar: s, children: l }) {
182
- return /* @__PURE__ */ g("div", { className: `widget widget-${e}`, children: [
182
+ return /* @__PURE__ */ _("div", { className: `widget widget-${e}`, children: [
183
183
  t && /* @__PURE__ */ a("span", { className: "widget__title", children: t }),
184
184
  s,
185
185
  n ? /* @__PURE__ */ a(ee, { kind: n, message: r }) : l
@@ -193,8 +193,8 @@ function Te(e) {
193
193
  }
194
194
  function gt({ comparison: e, primary: t }) {
195
195
  const n = e.sentiment ?? "neutral", r = _t[e.trend ?? ""] ?? "";
196
- return /* @__PURE__ */ g("div", { className: `widget-kpi__trend widget-kpi__trend--${n}${t ? "" : " widget-kpi__trend--muted"}`, children: [
197
- /* @__PURE__ */ g("span", { className: "widget-kpi__variance", children: [
196
+ return /* @__PURE__ */ _("div", { className: `widget-kpi__trend widget-kpi__trend--${n}${t ? "" : " widget-kpi__trend--muted"}`, children: [
197
+ /* @__PURE__ */ _("span", { className: "widget-kpi__variance", children: [
198
198
  r,
199
199
  " ",
200
200
  e.formatted
@@ -204,7 +204,7 @@ function gt({ comparison: e, primary: t }) {
204
204
  }
205
205
  function bt({ data: e, label: t }) {
206
206
  const n = t || String(e.label || ""), r = String(e.formatted || "-"), s = Te(e.comparisons);
207
- return /* @__PURE__ */ g(W, { name: "kpi", title: n, children: [
207
+ return /* @__PURE__ */ _(W, { name: "kpi", title: n, children: [
208
208
  /* @__PURE__ */ a("span", { className: "widget-kpi__value", children: r }),
209
209
  s.map((l, i) => /* @__PURE__ */ a(gt, { comparison: l, primary: i === 0 }, l.id || i))
210
210
  ] });
@@ -224,38 +224,38 @@ function de(e, t, n, r) {
224
224
  return `M ${e - n} ${t} A ${n} ${n} 0 0 1 ${e - n * Math.cos(s)} ${t - n * Math.sin(s)}`;
225
225
  }
226
226
  function yt({ data: e, palette: t, label: n }) {
227
- const r = n || String(e.label || ""), s = typeof e.ratio == "number" ? e.ratio : 0, l = typeof e.format == "string" ? e.format : void 0, i = String(e.value_formatted || be(e.value, l)), o = String(e.formatted || "-"), m = Te(e.comparisons), [c, ...u] = m, d = String((c == null ? void 0 : c.baseline_formatted) || "-"), f = (c == null ? void 0 : c.label) ?? null, p = s >= 1, h = Math.min(Math.max(s, 0), 1), v = wt.find(([P]) => s >= P), k = (v == null ? void 0 : v[1]) || t[0] || "var(--color-info)", w = 50, y = 50, C = 44, $ = 10;
228
- return /* @__PURE__ */ a(W, { name: "gauge", title: r, children: /* @__PURE__ */ g("div", { className: "widget-gauge__chart", children: [
229
- /* @__PURE__ */ g("svg", { viewBox: "0 0 100 56", preserveAspectRatio: "xMidYMax meet", role: "img", "aria-label": `${o} da meta`, children: [
230
- /* @__PURE__ */ a("path", { d: de(w, y, C, 1), fill: "none", stroke: vt, strokeWidth: $, strokeLinecap: "butt" }),
231
- h > 0 && /* @__PURE__ */ a("path", { d: de(w, y, C, h), fill: "none", stroke: k, strokeWidth: $, strokeLinecap: "butt" })
227
+ const r = n || String(e.label || ""), s = typeof e.ratio == "number" ? e.ratio : 0, l = typeof e.format == "string" ? e.format : void 0, i = String(e.value_formatted || be(e.value, l)), o = String(e.formatted || "-"), u = Te(e.comparisons), [c, ...d] = u, m = String((c == null ? void 0 : c.baseline_formatted) || "-"), h = (c == null ? void 0 : c.label) ?? null, p = s >= 1, v = Math.min(Math.max(s, 0), 1), f = wt.find(([M]) => s >= M), N = (f == null ? void 0 : f[1]) || t[0] || "var(--color-info)", w = 50, y = 50, T = 44, A = 10;
228
+ return /* @__PURE__ */ a(W, { name: "gauge", title: r, children: /* @__PURE__ */ _("div", { className: "widget-gauge__chart", children: [
229
+ /* @__PURE__ */ _("svg", { viewBox: "0 0 100 56", preserveAspectRatio: "xMidYMax meet", role: "img", "aria-label": `${o} da meta`, children: [
230
+ /* @__PURE__ */ a("path", { d: de(w, y, T, 1), fill: "none", stroke: vt, strokeWidth: A, strokeLinecap: "butt" }),
231
+ v > 0 && /* @__PURE__ */ a("path", { d: de(w, y, T, v), fill: "none", stroke: N, strokeWidth: A, strokeLinecap: "butt" })
232
232
  ] }),
233
- /* @__PURE__ */ g("div", { className: "widget-gauge__center", children: [
233
+ /* @__PURE__ */ _("div", { className: "widget-gauge__center", children: [
234
234
  /* @__PURE__ */ a("span", { className: "widget-gauge__percent", children: o }),
235
- /* @__PURE__ */ g("span", { className: "widget-gauge__comparison", children: [
235
+ /* @__PURE__ */ _("span", { className: "widget-gauge__comparison", children: [
236
236
  i,
237
237
  " / ",
238
- d
238
+ m
239
239
  ] }),
240
- p && /* @__PURE__ */ a("span", { className: "widget-gauge__badge", children: f || "Meta batida" }),
241
- !p && f && /* @__PURE__ */ a("span", { className: "widget-gauge__comparison", children: f }),
242
- u.map((P, E) => /* @__PURE__ */ g("span", { className: "widget-gauge__comparison", children: [
243
- P.formatted,
240
+ p && /* @__PURE__ */ a("span", { className: "widget-gauge__badge", children: h || "Meta batida" }),
241
+ !p && h && /* @__PURE__ */ a("span", { className: "widget-gauge__comparison", children: h }),
242
+ d.map((M, $) => /* @__PURE__ */ _("span", { className: "widget-gauge__comparison", children: [
243
+ M.formatted,
244
244
  " ",
245
- P.label
246
- ] }, P.id || E))
245
+ M.label
246
+ ] }, M.id || $))
247
247
  ] })
248
248
  ] }) });
249
249
  }
250
250
  function te(e) {
251
- const [t, n] = T({ width: 0, height: 0 });
252
- return F(() => {
251
+ const [t, n] = E({ width: 0, height: 0 });
252
+ return O(() => {
253
253
  const r = e.current;
254
254
  if (!r) return;
255
255
  const s = new ResizeObserver(([l]) => {
256
256
  const { width: i, height: o } = l.contentRect;
257
257
  n(
258
- (m) => m.width !== Math.floor(i) || m.height !== Math.floor(o) ? { width: Math.floor(i), height: Math.floor(o) } : m
258
+ (u) => u.width !== Math.floor(i) || u.height !== Math.floor(o) ? { width: Math.floor(i), height: Math.floor(o) } : u
259
259
  );
260
260
  });
261
261
  return s.observe(r), () => s.disconnect();
@@ -276,12 +276,12 @@ function Ct(e, t) {
276
276
  return typeof r == "string" && r ? r : String(e ?? "");
277
277
  }
278
278
  function U({ Chart: e, chartData: t, xKey: n, series: r, palette: s, renderSeries: l, width: i, height: o }) {
279
- return /* @__PURE__ */ g(e, { data: t, width: i, height: o, children: [
279
+ return /* @__PURE__ */ _(e, { data: t, width: i, height: o, children: [
280
280
  /* @__PURE__ */ a(ke, { strokeDasharray: "3 3", stroke: Nt }),
281
281
  /* @__PURE__ */ a(Ce, { dataKey: n, tick: ue }),
282
282
  /* @__PURE__ */ a(Re, { tick: ue }),
283
283
  /* @__PURE__ */ a(
284
- X,
284
+ q,
285
285
  {
286
286
  contentStyle: St,
287
287
  labelStyle: kt,
@@ -290,47 +290,47 @@ function U({ Chart: e, chartData: t, xKey: n, series: r, palette: s, renderSerie
290
290
  }
291
291
  ),
292
292
  r.length > 1 && /* @__PURE__ */ a(st, {}),
293
- r.map((m, c) => l(m, s[c % s.length], c))
293
+ r.map((u, c) => l(u, s[c % s.length], c))
294
294
  ] });
295
295
  }
296
296
  function Rt({ data: e, palette: t, label: n }) {
297
- const r = String(e.chartType || "bar"), s = n || String(e.label || ""), l = String(e.xKey || "label"), i = e.series || [], o = e.data || [], m = R(null), { width: c, height: u } = te(m), d = () => {
298
- if (c <= 0 || u <= 0) return null;
299
- const f = { chartData: o, xKey: l, series: i, palette: t, width: c, height: u };
300
- return r === "line" ? /* @__PURE__ */ a(U, { ...f, Chart: tt, renderSeries: (p, h) => /* @__PURE__ */ a(
297
+ const r = String(e.chartType || "bar"), s = n || String(e.label || ""), l = String(e.xKey || "label"), i = e.series || [], o = e.data || [], u = R(null), { width: c, height: d } = te(u), m = () => {
298
+ if (c <= 0 || d <= 0) return null;
299
+ const h = { chartData: o, xKey: l, series: i, palette: t, width: c, height: d };
300
+ return r === "line" ? /* @__PURE__ */ a(U, { ...h, Chart: tt, renderSeries: (p, v) => /* @__PURE__ */ a(
301
301
  rt,
302
302
  {
303
303
  type: "monotone",
304
304
  dataKey: p.key,
305
305
  name: p.label,
306
- stroke: h,
306
+ stroke: v,
307
307
  strokeWidth: 2,
308
308
  dot: o.length <= 31
309
309
  },
310
310
  p.key
311
- ) }) : r === "area" ? /* @__PURE__ */ a(U, { ...f, Chart: nt, renderSeries: (p, h) => /* @__PURE__ */ a(
311
+ ) }) : r === "area" ? /* @__PURE__ */ a(U, { ...h, Chart: nt, renderSeries: (p, v) => /* @__PURE__ */ a(
312
312
  at,
313
313
  {
314
314
  type: "monotone",
315
315
  dataKey: p.key,
316
316
  name: p.label,
317
- fill: h,
318
- stroke: h,
317
+ fill: v,
318
+ stroke: v,
319
319
  fillOpacity: 0.3
320
320
  },
321
321
  p.key
322
- ) }) : /* @__PURE__ */ a(U, { ...f, Chart: Se, renderSeries: (p, h) => /* @__PURE__ */ a(
323
- q,
322
+ ) }) : /* @__PURE__ */ a(U, { ...h, Chart: Se, renderSeries: (p, v) => /* @__PURE__ */ a(
323
+ X,
324
324
  {
325
325
  dataKey: p.key,
326
326
  name: p.label,
327
- fill: h,
327
+ fill: v,
328
328
  radius: [3, 3, 0, 0]
329
329
  },
330
330
  p.key
331
331
  ) });
332
332
  };
333
- return /* @__PURE__ */ a(W, { name: "chart", title: s, children: /* @__PURE__ */ a("div", { ref: m, className: "widget-chart__container", children: o.length === 0 ? /* @__PURE__ */ a(ee, { kind: "empty" }) : d() }) });
333
+ return /* @__PURE__ */ a(W, { name: "chart", title: s, children: /* @__PURE__ */ a("div", { ref: u, className: "widget-chart__container", children: o.length === 0 ? /* @__PURE__ */ a(ee, { kind: "empty" }) : m() }) });
334
334
  }
335
335
  const me = { fontSize: 10, fill: "var(--text-muted)" }, $t = "var(--bg-elevated)", xt = { fill: "var(--bg-paper)", opacity: 0.3 };
336
336
  function Tt(e) {
@@ -339,20 +339,20 @@ function Tt(e) {
339
339
  function he({ active: e, payload: t }) {
340
340
  var r;
341
341
  const n = e ? (r = t == null ? void 0 : t[0]) == null ? void 0 : r.payload : void 0;
342
- return n ? /* @__PURE__ */ g("div", { className: "widget-composition__tooltip", children: [
342
+ return n ? /* @__PURE__ */ _("div", { className: "widget-composition__tooltip", children: [
343
343
  /* @__PURE__ */ a("span", { className: "widget-composition__tooltip-label", children: n.label }),
344
344
  /* @__PURE__ */ a("span", { className: "widget-composition__tooltip-value", children: n.formatted })
345
345
  ] }) : null;
346
346
  }
347
347
  function Pt({ data: e, palette: t, label: n }) {
348
- const r = n || String(e.label || ""), s = String(e.display || "pie"), l = e.data || [], i = typeof e.format == "string" ? e.format : void 0, o = R(null), { width: m, height: c } = te(o), u = () => /* @__PURE__ */ g(Se, { data: l, width: m, height: c, children: [
348
+ const r = n || String(e.label || ""), s = String(e.display || "pie"), l = e.data || [], i = typeof e.format == "string" ? e.format : void 0, o = R(null), { width: u, height: c } = te(o), d = () => /* @__PURE__ */ _(Se, { data: l, width: u, height: c, children: [
349
349
  /* @__PURE__ */ a(ke, { strokeDasharray: "3 3", stroke: $t }),
350
350
  /* @__PURE__ */ a(Ce, { dataKey: "label", tick: me, interval: 0 }),
351
- /* @__PURE__ */ a(Re, { tick: me, tickFormatter: (f) => be(f, i) }),
352
- /* @__PURE__ */ a(X, { content: /* @__PURE__ */ a(he, {}), cursor: xt }),
353
- /* @__PURE__ */ a(q, { dataKey: "base", stackId: "bridge", fill: "none", fillOpacity: 0, isAnimationActive: !1 }),
354
- /* @__PURE__ */ a(q, { dataKey: "span", stackId: "bridge", radius: [3, 3, 0, 0], children: l.map((f, p) => /* @__PURE__ */ a(ce, { fill: Tt(f) }, p)) })
355
- ] }), d = () => /* @__PURE__ */ g(lt, { width: m, height: c, children: [
351
+ /* @__PURE__ */ a(Re, { tick: me, tickFormatter: (h) => be(h, i) }),
352
+ /* @__PURE__ */ a(q, { content: /* @__PURE__ */ a(he, {}), cursor: xt }),
353
+ /* @__PURE__ */ a(X, { dataKey: "base", stackId: "bridge", fill: "none", fillOpacity: 0, isAnimationActive: !1 }),
354
+ /* @__PURE__ */ a(X, { dataKey: "span", stackId: "bridge", radius: [3, 3, 0, 0], children: l.map((h, p) => /* @__PURE__ */ a(ce, { fill: Tt(h) }, p)) })
355
+ ] }), m = () => /* @__PURE__ */ _(lt, { width: u, height: c, children: [
356
356
  /* @__PURE__ */ a(
357
357
  it,
358
358
  {
@@ -362,33 +362,33 @@ function Pt({ data: e, palette: t, label: n }) {
362
362
  cx: "50%",
363
363
  cy: "50%",
364
364
  outerRadius: "75%",
365
- label: ({ name: f, percent: p }) => `${f}: ${(p * 100).toFixed(0)}%`,
365
+ label: ({ name: h, percent: p }) => `${h}: ${(p * 100).toFixed(0)}%`,
366
366
  labelLine: !1,
367
- children: l.map((f, p) => /* @__PURE__ */ a(ce, { fill: t[p % t.length] }, p))
367
+ children: l.map((h, p) => /* @__PURE__ */ a(ce, { fill: t[p % t.length] }, p))
368
368
  }
369
369
  ),
370
- /* @__PURE__ */ a(X, { content: /* @__PURE__ */ a(he, {}) })
370
+ /* @__PURE__ */ a(q, { content: /* @__PURE__ */ a(he, {}) })
371
371
  ] });
372
- return /* @__PURE__ */ a(W, { name: "composition", title: r, children: /* @__PURE__ */ a("div", { ref: o, className: "widget-composition__container", children: l.length === 0 || m <= 0 || c <= 0 ? /* @__PURE__ */ a(ee, { kind: "empty" }) : s === "bridge" ? u() : d() }) });
372
+ return /* @__PURE__ */ a(W, { name: "composition", title: r, children: /* @__PURE__ */ a("div", { ref: o, className: "widget-composition__container", children: l.length === 0 || u <= 0 || c <= 0 ? /* @__PURE__ */ a(ee, { kind: "empty" }) : s === "bridge" ? d() : m() }) });
373
373
  }
374
374
  function At(e, t) {
375
375
  if (t !== "percentage") return "";
376
376
  const n = Number(e);
377
377
  return Number.isNaN(n) || n === 0 ? "" : n > 0 ? " widget-table__td--up" : " widget-table__td--down";
378
378
  }
379
- function Mt(e, t, n, r) {
379
+ function Et(e, t, n, r) {
380
380
  const s = (r == null ? void 0 : r.offsetHeight) ?? 0;
381
381
  if (e === 0 || t <= 0 || s <= 0) return e;
382
382
  const l = Math.floor((t - ((n == null ? void 0 : n.offsetHeight) ?? 0)) / s);
383
383
  return Math.max(0, Math.min(e, l));
384
384
  }
385
- function Et({ data: e, label: t }) {
386
- var f;
387
- const n = e.columns || [], r = e.rows || [], s = e.overflow === "clip", l = e.indexColumn === !0, i = t || String(e.label || ""), o = R(null), m = R(null), c = R(null), { height: u } = te(o), d = s ? r.slice(0, Mt(
385
+ function Mt({ data: e, label: t }) {
386
+ var h;
387
+ const n = e.columns || [], r = e.rows || [], s = e.overflow === "clip", l = e.indexColumn === !0, i = t || String(e.label || ""), o = R(null), u = R(null), c = R(null), { height: d } = te(o), m = s ? r.slice(0, Et(
388
388
  r.length,
389
- u,
390
- m.current,
391
- ((f = c.current) == null ? void 0 : f.firstElementChild) ?? null
389
+ d,
390
+ u.current,
391
+ ((h = c.current) == null ? void 0 : h.firstElementChild) ?? null
392
392
  )) : r;
393
393
  return n.length === 0 ? /* @__PURE__ */ a(
394
394
  W,
@@ -403,12 +403,12 @@ function Et({ data: e, label: t }) {
403
403
  {
404
404
  ref: o,
405
405
  className: `widget-table__scroll${s ? " widget-table__scroll--clip" : ""}`,
406
- children: /* @__PURE__ */ g(
406
+ children: /* @__PURE__ */ _(
407
407
  "table",
408
408
  {
409
- className: `widget-table__table${s && d.length < r.length ? "" : " widget-table__table--fill"}`,
409
+ className: `widget-table__table${s && m.length < r.length ? "" : " widget-table__table--fill"}`,
410
410
  children: [
411
- /* @__PURE__ */ a("thead", { ref: m, children: /* @__PURE__ */ g("tr", { children: [
411
+ /* @__PURE__ */ a("thead", { ref: u, children: /* @__PURE__ */ _("tr", { children: [
412
412
  l && /* @__PURE__ */ a("th", { className: "widget-table__th widget-table__th--index", children: "#" }),
413
413
  n.map((p) => /* @__PURE__ */ a(
414
414
  "th",
@@ -419,20 +419,20 @@ function Et({ data: e, label: t }) {
419
419
  p.key
420
420
  ))
421
421
  ] }) }),
422
- /* @__PURE__ */ a("tbody", { ref: c, children: d.length === 0 ? /* @__PURE__ */ a("tr", { children: /* @__PURE__ */ a(
422
+ /* @__PURE__ */ a("tbody", { ref: c, children: m.length === 0 ? /* @__PURE__ */ a("tr", { children: /* @__PURE__ */ a(
423
423
  "td",
424
424
  {
425
425
  className: "widget-table__td widget-table__td--placeholder",
426
426
  colSpan: n.length + (l ? 1 : 0),
427
427
  children: "Sem dados"
428
428
  }
429
- ) }) : d.map((p, h) => /* @__PURE__ */ g("tr", { children: [
430
- l && /* @__PURE__ */ a("td", { className: "widget-table__td widget-table__td--index", children: h + 1 }),
431
- n.map((v) => {
432
- const k = p[v.key], w = le(v.format) ? " widget-table__td--num" : "";
433
- return /* @__PURE__ */ a("td", { className: `widget-table__td${w}${At(k, v.format)}`, children: D(k, v.format) }, v.key);
429
+ ) }) : m.map((p, v) => /* @__PURE__ */ _("tr", { children: [
430
+ l && /* @__PURE__ */ a("td", { className: "widget-table__td widget-table__td--index", children: v + 1 }),
431
+ n.map((f) => {
432
+ const N = p[f.key], w = le(f.format) ? " widget-table__td--num" : "";
433
+ return /* @__PURE__ */ a("td", { className: `widget-table__td${w}${At(N, f.format)}`, children: D(N, f.format) }, f.key);
434
434
  })
435
- ] }, h)) })
435
+ ] }, v)) })
436
436
  ]
437
437
  }
438
438
  )
@@ -440,7 +440,7 @@ function Et({ data: e, label: t }) {
440
440
  ) });
441
441
  }
442
442
  function Pe({ mode: e, value: t, dateBounds: n, rangeUnit: r, onChange: s }) {
443
- return e === "yearly" ? /* @__PURE__ */ a(Ft, { value: t, dateBounds: n, onChange: s }) : e === "monthly" ? /* @__PURE__ */ a(It, { value: t, dateBounds: n, onChange: s }) : e === "weekly" ? /* @__PURE__ */ a(Wt, { value: t, dateBounds: n, onChange: s }) : r && r !== "day" ? /* @__PURE__ */ a(
443
+ return e === "yearly" ? /* @__PURE__ */ a(Ot, { value: t, dateBounds: n, onChange: s }) : e === "monthly" ? /* @__PURE__ */ a(It, { value: t, dateBounds: n, onChange: s }) : e === "weekly" ? /* @__PURE__ */ a(Wt, { value: t, dateBounds: n, onChange: s }) : r && r !== "day" ? /* @__PURE__ */ a(
444
444
  Lt,
445
445
  {
446
446
  value: t,
@@ -448,37 +448,37 @@ function Pe({ mode: e, value: t, dateBounds: n, rangeUnit: r, onChange: s }) {
448
448
  unit: r,
449
449
  onChange: s
450
450
  }
451
- ) : /* @__PURE__ */ a(Ot, { value: t, dateBounds: n, onChange: s });
451
+ ) : /* @__PURE__ */ a(Ft, { value: t, dateBounds: n, onChange: s });
452
452
  }
453
453
  function Lt({ value: e, dateBounds: t, unit: n, onChange: r }) {
454
454
  const [s, l] = e ? e.split("|") : ["", ""], i = He(n, t), o = (c) => {
455
- var u;
456
- return ((u = i.find((d) => c >= d.start && c <= d.end)) == null ? void 0 : u.key) ?? "";
457
- }, m = (c, u) => {
458
- const d = i.find((f) => f.key === u);
459
- d && r(c === "start" ? `${d.start}|${!l || l < d.end ? d.end : l}` : `${!s || s > d.start ? d.start : s}|${d.end}`);
455
+ var d;
456
+ return ((d = i.find((m) => c >= m.start && c <= m.end)) == null ? void 0 : d.key) ?? "";
457
+ }, u = (c, d) => {
458
+ const m = i.find((h) => h.key === d);
459
+ m && r(c === "start" ? `${m.start}|${!l || l < m.end ? m.end : l}` : `${!s || s > m.start ? m.start : s}|${m.end}`);
460
460
  };
461
- return /* @__PURE__ */ g("div", { className: "widget-filter__date-range widget-filter__date-range--period", children: [
462
- /* @__PURE__ */ g(
461
+ return /* @__PURE__ */ _("div", { className: "widget-filter__date-range widget-filter__date-range--period", children: [
462
+ /* @__PURE__ */ _(
463
463
  "select",
464
464
  {
465
465
  className: "widget-filter__select",
466
466
  "aria-label": "Período inicial",
467
467
  value: o(s),
468
- onChange: (c) => m("start", c.target.value),
468
+ onChange: (c) => u("start", c.target.value),
469
469
  children: [
470
470
  !o(s) && /* @__PURE__ */ a("option", { value: "", children: "De..." }),
471
471
  i.map((c) => /* @__PURE__ */ a("option", { value: c.key, children: c.label }, c.key))
472
472
  ]
473
473
  }
474
474
  ),
475
- /* @__PURE__ */ g(
475
+ /* @__PURE__ */ _(
476
476
  "select",
477
477
  {
478
478
  className: "widget-filter__select",
479
479
  "aria-label": "Período final",
480
480
  value: o(l),
481
- onChange: (c) => m("end", c.target.value),
481
+ onChange: (c) => u("end", c.target.value),
482
482
  children: [
483
483
  !o(l) && /* @__PURE__ */ a("option", { value: "", children: "Até..." }),
484
484
  i.map((c) => /* @__PURE__ */ a("option", { value: c.key, children: c.label }, c.key))
@@ -487,9 +487,9 @@ function Lt({ value: e, dateBounds: t, unit: n, onChange: r }) {
487
487
  )
488
488
  ] });
489
489
  }
490
- function Ot({ value: e, dateBounds: t, onChange: n }) {
490
+ function Ft({ value: e, dateBounds: t, onChange: n }) {
491
491
  const [r, s] = e ? e.split("|") : ["", ""];
492
- return /* @__PURE__ */ g("div", { className: "widget-filter__date-range widget-filter__date-range--stacked", children: [
492
+ return /* @__PURE__ */ _("div", { className: "widget-filter__date-range widget-filter__date-range--stacked", children: [
493
493
  /* @__PURE__ */ a(
494
494
  ie,
495
495
  {
@@ -518,34 +518,34 @@ function Ot({ value: e, dateBounds: t, onChange: n }) {
518
518
  )
519
519
  ] });
520
520
  }
521
- function Ft({ value: e, dateBounds: t, onChange: n }) {
522
- const [r] = e ? e.split("|") : [""], s = ze(r), l = /* @__PURE__ */ new Date(), i = (s == null ? void 0 : s.year) ?? l.getFullYear(), o = J(t), m = (c) => {
523
- const u = je(c);
524
- n(`${u.start}|${u.end}`);
521
+ function Ot({ value: e, dateBounds: t, onChange: n }) {
522
+ const [r] = e ? e.split("|") : [""], s = ze(r), l = /* @__PURE__ */ new Date(), i = (s == null ? void 0 : s.year) ?? l.getFullYear(), o = J(t), u = (c) => {
523
+ const d = je(c);
524
+ n(`${d.start}|${d.end}`);
525
525
  };
526
526
  return /* @__PURE__ */ a("div", { className: "widget-filter__date-range widget-filter__date-range--year", children: /* @__PURE__ */ a(
527
527
  "select",
528
528
  {
529
529
  className: "widget-filter__select",
530
530
  value: i,
531
- onChange: (c) => m(parseInt(c.target.value)),
531
+ onChange: (c) => u(parseInt(c.target.value)),
532
532
  children: o.map((c) => /* @__PURE__ */ a("option", { value: c, children: c }, c))
533
533
  }
534
534
  ) });
535
535
  }
536
536
  function It({ value: e, dateBounds: t, onChange: n }) {
537
- const [r] = e ? e.split("|") : [""], s = ve(r), l = /* @__PURE__ */ new Date(), i = (s == null ? void 0 : s.year) ?? l.getFullYear(), o = (s == null ? void 0 : s.month) ?? l.getMonth() + 1, m = J(t), c = (u, d) => {
538
- const f = Ve(u, d);
539
- n(`${f.start}|${f.end}`);
537
+ const [r] = e ? e.split("|") : [""], s = ve(r), l = /* @__PURE__ */ new Date(), i = (s == null ? void 0 : s.year) ?? l.getFullYear(), o = (s == null ? void 0 : s.month) ?? l.getMonth() + 1, u = J(t), c = (d, m) => {
538
+ const h = Ve(d, m);
539
+ n(`${h.start}|${h.end}`);
540
540
  };
541
- return /* @__PURE__ */ g("div", { className: "widget-filter__date-range widget-filter__date-range--month", children: [
541
+ return /* @__PURE__ */ _("div", { className: "widget-filter__date-range widget-filter__date-range--month", children: [
542
542
  /* @__PURE__ */ a(
543
543
  "select",
544
544
  {
545
545
  className: "widget-filter__select",
546
546
  value: o,
547
- onChange: (u) => c(i, parseInt(u.target.value)),
548
- children: we.map((u, d) => /* @__PURE__ */ a("option", { value: d + 1, children: u }, d + 1))
547
+ onChange: (d) => c(i, parseInt(d.target.value)),
548
+ children: we.map((d, m) => /* @__PURE__ */ a("option", { value: m + 1, children: d }, m + 1))
549
549
  }
550
550
  ),
551
551
  /* @__PURE__ */ a(
@@ -553,25 +553,25 @@ function It({ value: e, dateBounds: t, onChange: n }) {
553
553
  {
554
554
  className: "widget-filter__select",
555
555
  value: i,
556
- onChange: (u) => c(parseInt(u.target.value), o),
557
- children: m.map((u) => /* @__PURE__ */ a("option", { value: u, children: u }, u))
556
+ onChange: (d) => c(parseInt(d.target.value), o),
557
+ children: u.map((d) => /* @__PURE__ */ a("option", { value: d, children: d }, d))
558
558
  }
559
559
  )
560
560
  ] });
561
561
  }
562
562
  function Wt({ value: e, dateBounds: t, onChange: n }) {
563
- const [r] = e ? e.split("|") : [""], s = ve(r), l = /* @__PURE__ */ new Date(), i = (s == null ? void 0 : s.year) ?? l.getFullYear(), o = (s == null ? void 0 : s.month) ?? l.getMonth() + 1, m = J(t), c = Y(i, o), u = De(r, i, o) || 1;
564
- return /* @__PURE__ */ g("div", { className: "widget-filter__date-range widget-filter__date-range--week", children: [
563
+ const [r] = e ? e.split("|") : [""], s = ve(r), l = /* @__PURE__ */ new Date(), i = (s == null ? void 0 : s.year) ?? l.getFullYear(), o = (s == null ? void 0 : s.month) ?? l.getMonth() + 1, u = J(t), c = Y(i, o), d = De(r, i, o) || 1;
564
+ return /* @__PURE__ */ _("div", { className: "widget-filter__date-range widget-filter__date-range--week", children: [
565
565
  /* @__PURE__ */ a(
566
566
  "select",
567
567
  {
568
568
  className: "widget-filter__select",
569
569
  value: i,
570
- onChange: (d) => {
571
- const f = parseInt(d.target.value), h = Y(f, o)[0];
572
- h && n(`${h.start}|${h.end}`);
570
+ onChange: (m) => {
571
+ const h = parseInt(m.target.value), v = Y(h, o)[0];
572
+ v && n(`${v.start}|${v.end}`);
573
573
  },
574
- children: m.map((d) => /* @__PURE__ */ a("option", { value: d, children: d }, d))
574
+ children: u.map((m) => /* @__PURE__ */ a("option", { value: m, children: m }, m))
575
575
  }
576
576
  ),
577
577
  /* @__PURE__ */ a(
@@ -579,30 +579,30 @@ function Wt({ value: e, dateBounds: t, onChange: n }) {
579
579
  {
580
580
  className: "widget-filter__select",
581
581
  value: o,
582
- onChange: (d) => {
583
- const f = parseInt(d.target.value), h = Y(i, f)[0];
584
- h && n(`${h.start}|${h.end}`);
582
+ onChange: (m) => {
583
+ const h = parseInt(m.target.value), v = Y(i, h)[0];
584
+ v && n(`${v.start}|${v.end}`);
585
585
  },
586
- children: we.map((d, f) => /* @__PURE__ */ a("option", { value: f + 1, children: d }, f + 1))
586
+ children: we.map((m, h) => /* @__PURE__ */ a("option", { value: h + 1, children: m }, h + 1))
587
587
  }
588
588
  ),
589
589
  /* @__PURE__ */ a(
590
590
  "select",
591
591
  {
592
592
  className: "widget-filter__select",
593
- value: u,
594
- onChange: (d) => {
595
- const f = c[parseInt(d.target.value) - 1];
596
- f && n(`${f.start}|${f.end}`);
593
+ value: d,
594
+ onChange: (m) => {
595
+ const h = c[parseInt(m.target.value) - 1];
596
+ h && n(`${h.start}|${h.end}`);
597
597
  },
598
- children: c.map((d) => /* @__PURE__ */ a("option", { value: d.index, children: d.label }, d.index))
598
+ children: c.map((m) => /* @__PURE__ */ a("option", { value: m.index, children: m.label }, m.index))
599
599
  }
600
600
  )
601
601
  ] });
602
602
  }
603
603
  function zt({ config: e, value: t, options: n = [], dateBounds: r, onChange: s }) {
604
604
  const l = e.filterType || "select", i = e.label || "Filtro", o = e.dateFilterMode || "range";
605
- return /* @__PURE__ */ g("div", { className: "widget-filter", children: [
605
+ return /* @__PURE__ */ _("div", { className: "widget-filter", children: [
606
606
  /* @__PURE__ */ a("label", { className: "widget-filter__label", children: i }),
607
607
  l === "date_range" ? /* @__PURE__ */ a(
608
608
  Pe,
@@ -637,10 +637,10 @@ function Dt({ value: e, options: t, multi: n, searchable: r, onChange: s }) {
637
637
  );
638
638
  if (n) {
639
639
  const l = e ? e.split(B) : [], i = (o) => {
640
- const m = l.includes(o) ? l.filter((c) => c !== o) : [...l, o];
641
- s(m.join(B));
640
+ const u = l.includes(o) ? l.filter((c) => c !== o) : [...l, o];
641
+ s(u.join(B));
642
642
  };
643
- return /* @__PURE__ */ g("div", { className: "widget-filter__multi", children: [
643
+ return /* @__PURE__ */ _("div", { className: "widget-filter__multi", children: [
644
644
  l.length > 0 && /* @__PURE__ */ a(
645
645
  "button",
646
646
  {
@@ -650,7 +650,7 @@ function Dt({ value: e, options: t, multi: n, searchable: r, onChange: s }) {
650
650
  children: "Limpar filtro"
651
651
  }
652
652
  ),
653
- t.map((o) => /* @__PURE__ */ g("label", { className: "widget-filter__multi-option", children: [
653
+ t.map((o) => /* @__PURE__ */ _("label", { className: "widget-filter__multi-option", children: [
654
654
  /* @__PURE__ */ a(
655
655
  "input",
656
656
  {
@@ -663,7 +663,7 @@ function Dt({ value: e, options: t, multi: n, searchable: r, onChange: s }) {
663
663
  ] }, o))
664
664
  ] });
665
665
  }
666
- return /* @__PURE__ */ g(
666
+ return /* @__PURE__ */ _(
667
667
  "select",
668
668
  {
669
669
  className: "widget-filter__select",
@@ -682,9 +682,9 @@ const Ht = {
682
682
  };
683
683
  function Vt({ config: e, value: t, onChange: n }) {
684
684
  const r = e.label || "Variavel", s = e.locked || !1, l = e.variableFormat || "number", i = Ht[l] || "";
685
- return /* @__PURE__ */ g("div", { className: `widget-variable ${s ? "widget-variable--locked" : ""}`, children: [
685
+ return /* @__PURE__ */ _("div", { className: `widget-variable ${s ? "widget-variable--locked" : ""}`, children: [
686
686
  /* @__PURE__ */ a("label", { className: "widget-variable__label", children: r }),
687
- /* @__PURE__ */ g("div", { className: "widget-variable__input-wrapper", children: [
687
+ /* @__PURE__ */ _("div", { className: "widget-variable__input-wrapper", children: [
688
688
  /* @__PURE__ */ a(
689
689
  "input",
690
690
  {
@@ -703,7 +703,7 @@ function Vt({ config: e, value: t, onChange: n }) {
703
703
  }
704
704
  function jt({ config: e, palette: t, onChange: n }) {
705
705
  const r = e.label || "Cores", s = e.locked || !1;
706
- return /* @__PURE__ */ g("div", { className: `widget-palette ${s ? "widget-palette--locked" : ""}`, children: [
706
+ return /* @__PURE__ */ _("div", { className: `widget-palette ${s ? "widget-palette--locked" : ""}`, children: [
707
707
  /* @__PURE__ */ a("label", { className: "widget-palette__label", children: r }),
708
708
  /* @__PURE__ */ a(Ge, { selected: t, onSelect: n, customMode: !0, disabled: s }),
709
709
  s && /* @__PURE__ */ a("span", { className: "widget-palette__lock-icon", title: "Bloqueado", children: "🔒" })
@@ -721,9 +721,9 @@ function Kt({
721
721
  filterOptions: l,
722
722
  dateBounds: i,
723
723
  onFilterChange: o,
724
- variableValue: m,
724
+ variableValue: u,
725
725
  onVariableChange: c,
726
- onPaletteChange: u
726
+ onPaletteChange: d
727
727
  }) {
728
728
  if (t.error)
729
729
  return /* @__PURE__ */ a(
@@ -735,18 +735,18 @@ function Kt({
735
735
  stateMessage: Gt[String(t.error)]
736
736
  }
737
737
  );
738
- const d = Ke(n);
738
+ const m = Ke(n);
739
739
  switch (e) {
740
740
  case "kpi_card":
741
741
  return /* @__PURE__ */ a(bt, { data: t, label: r == null ? void 0 : r.label });
742
742
  case "gauge":
743
- return /* @__PURE__ */ a(yt, { data: t, palette: d, label: r == null ? void 0 : r.label });
743
+ return /* @__PURE__ */ a(yt, { data: t, palette: m, label: r == null ? void 0 : r.label });
744
744
  case "chart":
745
- return /* @__PURE__ */ a(Rt, { data: t, palette: d, label: r == null ? void 0 : r.label });
745
+ return /* @__PURE__ */ a(Rt, { data: t, palette: m, label: r == null ? void 0 : r.label });
746
746
  case "composition":
747
- return /* @__PURE__ */ a(Pt, { data: t, palette: d, label: r == null ? void 0 : r.label });
747
+ return /* @__PURE__ */ a(Pt, { data: t, palette: m, label: r == null ? void 0 : r.label });
748
748
  case "table":
749
- return /* @__PURE__ */ a(Et, { data: t, label: r == null ? void 0 : r.label });
749
+ return /* @__PURE__ */ a(Mt, { data: t, label: r == null ? void 0 : r.label });
750
750
  case "filter":
751
751
  return r && o ? /* @__PURE__ */ a(
752
752
  zt,
@@ -759,33 +759,33 @@ function Kt({
759
759
  }
760
760
  ) : null;
761
761
  case "variable": {
762
- const f = r;
763
- return f && c ? /* @__PURE__ */ a(
762
+ const h = r;
763
+ return h && c ? /* @__PURE__ */ a(
764
764
  Vt,
765
765
  {
766
- config: f,
767
- value: m ?? f.variableValue ?? 0,
766
+ config: h,
767
+ value: u ?? h.variableValue ?? 0,
768
768
  onChange: c
769
769
  }
770
770
  ) : null;
771
771
  }
772
772
  case "color_palette":
773
- return r && u ? /* @__PURE__ */ a(
773
+ return r && d ? /* @__PURE__ */ a(
774
774
  jt,
775
775
  {
776
776
  config: r,
777
777
  palette: n,
778
- onChange: u
778
+ onChange: d
779
779
  }
780
780
  ) : null;
781
781
  default:
782
782
  return /* @__PURE__ */ a(W, { name: "unknown", state: "unconfigured" });
783
783
  }
784
784
  }
785
- const Yt = Oe(Kt), Ut = (e, t) => e.grid.y - t.grid.y || e.grid.x - t.grid.x, Bt = {}, fe = [];
786
- function Lr({
785
+ const Yt = Fe(Kt), Ut = (e, t) => e.grid.y - t.grid.y || e.grid.x - t.grid.x, Bt = {}, fe = [];
786
+ function Wr({
787
787
  token: e,
788
- cellAspect: t = Xe,
788
+ cellAspect: t = qe,
789
789
  stackBelow: n,
790
790
  onGeometryChange: r,
791
791
  silenceWarnings: s,
@@ -794,60 +794,60 @@ function Lr({
794
794
  const {
795
795
  layout: i,
796
796
  renderData: o,
797
- loading: m,
797
+ loading: u,
798
798
  error: c,
799
- filters: u,
800
- variables: d,
801
- palette: f,
799
+ filters: d,
800
+ variables: m,
801
+ palette: h,
802
802
  setFilter: p,
803
- setVariable: h,
804
- setPalette: v
805
- } = ct(e), { rootRef: k, gridRef: w, stacked: y } = ft({
803
+ setVariable: v,
804
+ setPalette: f
805
+ } = ct(e), { rootRef: N, gridRef: w, stacked: y } = ft({
806
806
  columns: (i == null ? void 0 : i.gridColumns) ?? 0,
807
807
  cellAspect: t,
808
808
  stackBelow: n,
809
809
  onGeometryChange: r,
810
810
  silenceWarnings: s
811
- }), C = O(() => {
812
- const _ = (i == null ? void 0 : i.widgets) ?? [];
813
- return y ? [..._].sort(Ut) : _;
814
- }, [i == null ? void 0 : i.widgets, y]), $ = O(() => {
815
- const _ = {};
816
- for (const N of C)
817
- _[N.id] = {
818
- onFilter: (A) => p(N.id, A),
819
- onVariable: (A) => h(N.id, A)
811
+ }), T = F(() => {
812
+ const b = (i == null ? void 0 : i.widgets) ?? [];
813
+ return y ? [...b].sort(Ut) : b;
814
+ }, [i == null ? void 0 : i.widgets, y]), A = F(() => {
815
+ const b = {};
816
+ for (const S of T)
817
+ b[S.id] = {
818
+ onFilter: (x) => p(S.id, x),
819
+ onVariable: (x) => v(S.id, x)
820
820
  };
821
- return _;
822
- }, [C, p, h]), P = {
821
+ return b;
822
+ }, [T, p, v]), M = {
823
823
  "--dash-gap": `${oe}px`,
824
- "--dash-pad": `${qe}px`
825
- }, E = ["preview-tab", l].filter(Boolean).join(" ");
826
- let b;
824
+ "--dash-pad": `${Xe}px`
825
+ }, $ = ["preview-tab", l].filter(Boolean).join(" ");
826
+ let g;
827
827
  if (c && !i)
828
- b = /* @__PURE__ */ a("div", { className: "preview-tab__error", children: c });
828
+ g = /* @__PURE__ */ a("div", { className: "preview-tab__error", children: c });
829
829
  else if (!i)
830
- b = /* @__PURE__ */ a("div", { className: "preview-tab__loading", children: "Carregando dashboard..." });
830
+ g = /* @__PURE__ */ a("div", { className: "preview-tab__loading", children: "Carregando dashboard..." });
831
831
  else if (i.widgets.length === 0)
832
- b = /* @__PURE__ */ a("div", { className: "preview-tab__empty", children: "Este dashboard nao possui widgets." });
832
+ g = /* @__PURE__ */ a("div", { className: "preview-tab__empty", children: "Este dashboard nao possui widgets." });
833
833
  else {
834
- const _ = (o == null ? void 0 : o.widgets) ?? {}, N = (o == null ? void 0 : o.date_bounds) ?? null, A = {
834
+ const b = (o == null ? void 0 : o.widgets) ?? {}, S = (o == null ? void 0 : o.date_bounds) ?? null, x = {
835
835
  "--dash-cols": i.gridColumns,
836
836
  "--dash-rows": i.gridRows,
837
- ...Ne(f)
838
- }, M = ["preview-tab__grid", y && "preview-tab__grid--stacked"].filter(Boolean).join(" ");
839
- b = /* @__PURE__ */ g(V, { children: [
837
+ ...Ne(h)
838
+ }, C = ["preview-tab__grid", y && "preview-tab__grid--stacked"].filter(Boolean).join(" ");
839
+ g = /* @__PURE__ */ _(V, { children: [
840
840
  c && !o && /* @__PURE__ */ a("div", { className: "preview-tab__error", children: c }),
841
- o && /* @__PURE__ */ a("div", { className: M, style: A, ref: w, children: C.map((S) => {
841
+ o && /* @__PURE__ */ a("div", { className: C, style: x, ref: w, children: T.map((k) => {
842
842
  var re, ne;
843
- const z = Ye.has(S.type), L = _[S.id], I = y ? {
843
+ const z = Ye.has(k.type), L = b[k.id], I = y ? {
844
844
  gridColumn: 1,
845
- aspectRatio: `${Be(S.grid.w, S.grid.h, t)}`,
846
- minHeight: `${Ue(S.grid.h, Qe, oe, 0)}px`
845
+ aspectRatio: `${Be(k.grid.w, k.grid.h, t)}`,
846
+ minHeight: `${Ue(k.grid.h, Qe, oe, 0)}px`
847
847
  } : {
848
- gridColumn: `${S.grid.x + 1} / span ${S.grid.w}`,
849
- gridRow: `${S.grid.y + 1} / span ${S.grid.h}`
850
- }, Le = S.type === "variable" ? d[S.id] ?? (L == null ? void 0 : L.value) ?? S.config.variableValue ?? 0 : void 0;
848
+ gridColumn: `${k.grid.x + 1} / span ${k.grid.w}`,
849
+ gridRow: `${k.grid.y + 1} / span ${k.grid.h}`
850
+ }, Le = k.type === "variable" ? m[k.id] ?? (L == null ? void 0 : L.value) ?? k.config.variableValue ?? 0 : void 0;
851
851
  return /* @__PURE__ */ a(
852
852
  "div",
853
853
  {
@@ -856,41 +856,41 @@ function Lr({
856
856
  children: z || L ? /* @__PURE__ */ a(
857
857
  Yt,
858
858
  {
859
- type: S.type,
859
+ type: k.type,
860
860
  computed: L || Bt,
861
- palette: f,
862
- config: S.config,
863
- filterValue: u[S.id] || "",
861
+ palette: h,
862
+ config: k.config,
863
+ filterValue: d[k.id] || "",
864
864
  filterOptions: (
865
865
  // Estruturais: vem do /layout (cacheavel), nao do /render —
866
866
  // recalcula-los a cada render custaria um DISTINCT por filtro.
867
- S.type === "filter" ? S.config.availableValues ?? fe : fe
867
+ k.type === "filter" ? k.config.availableValues ?? fe : fe
868
868
  ),
869
- dateBounds: N,
870
- onFilterChange: (re = $[S.id]) == null ? void 0 : re.onFilter,
869
+ dateBounds: S,
870
+ onFilterChange: (re = A[k.id]) == null ? void 0 : re.onFilter,
871
871
  variableValue: Le,
872
- onVariableChange: (ne = $[S.id]) == null ? void 0 : ne.onVariable,
873
- onPaletteChange: v
872
+ onVariableChange: (ne = A[k.id]) == null ? void 0 : ne.onVariable,
873
+ onPaletteChange: f
874
874
  }
875
- ) : /* @__PURE__ */ a("div", { className: "preview-tab__widget-loading", children: m ? "Carregando..." : "Sem dados" })
875
+ ) : /* @__PURE__ */ a("div", { className: "preview-tab__widget-loading", children: u ? "Carregando..." : "Sem dados" })
876
876
  },
877
- S.id
877
+ k.id
878
878
  );
879
879
  }) }),
880
- m && o && /* @__PURE__ */ a("div", { className: "preview-tab__recalculating", children: "Atualizando..." })
880
+ u && o && /* @__PURE__ */ a("div", { className: "preview-tab__recalculating", children: "Atualizando..." })
881
881
  ] });
882
882
  }
883
- return /* @__PURE__ */ a("div", { className: E, style: P, ref: k, children: b });
883
+ return /* @__PURE__ */ a("div", { className: $, style: M, ref: N, children: g });
884
884
  }
885
- function qt(e, t) {
885
+ function Xt(e, t) {
886
886
  const n = URL.createObjectURL(e), r = document.createElement("a");
887
887
  r.href = n, r.download = t, document.body.appendChild(r), r.click(), r.remove(), setTimeout(() => URL.revokeObjectURL(n), 0);
888
888
  }
889
- const Xt = 768, Qt = 879;
889
+ const qt = 768, Qt = 879;
890
890
  function Zt(e) {
891
891
  return Array.from(e.normalize("NFD")).filter((t) => {
892
892
  const n = t.codePointAt(0) ?? 0;
893
- return n < Xt || n > Qt;
893
+ return n < qt || n > Qt;
894
894
  }).join("");
895
895
  }
896
896
  function Jt(e, t) {
@@ -898,53 +898,74 @@ function Jt(e, t) {
898
898
  }
899
899
  const er = 300;
900
900
  function tr(e) {
901
- const [t, n] = T(null), [r, s] = T(null), [l, i] = T({}), [o, m] = T(!0), [c, u] = T(null), [d, f] = T(!1), p = R(), h = R(!1), v = R(null), k = R(!1);
902
- F(() => {
903
- let C = !1;
904
- return h.current = !1, v.current = null, k.current = !1, Ze(e).then(($) => {
905
- C || n($);
906
- }).catch(($) => {
907
- C || u($.message);
901
+ return !!e && typeof e == "object" && "start" in e;
902
+ }
903
+ function rr(e, t, n) {
904
+ const r = xe(t), s = { ...e };
905
+ for (const [l, i] of Object.entries(r)) {
906
+ const o = e[l];
907
+ (n ? o == null : o === "" && tr(t[l])) && (s[l] = i);
908
+ }
909
+ return s;
910
+ }
911
+ function nr(e) {
912
+ const [t, n] = E(null), [r, s] = E(null), [l, i] = E({}), [o, u] = E({}), [c, d] = E(!0), [m, h] = E(null), [p, v] = E(!1), f = R(), N = R(!1), w = R(null), y = R(!1);
913
+ O(() => {
914
+ let $ = !1;
915
+ return N.current = !1, w.current = null, y.current = !1, Ze(e).then((g) => {
916
+ $ || n(g);
917
+ }).catch((g) => {
918
+ $ || h(g.message);
908
919
  }), () => {
909
- C = !0;
920
+ $ = !0;
910
921
  };
911
- }, [e]), F(() => {
922
+ }, [e]), O(() => {
912
923
  if (!t) return;
913
- const C = H(l), $ = j(C);
914
- if ($ === v.current) return;
915
- p.current && clearTimeout(p.current);
916
- const P = k.current ? er : 0;
917
- return p.current = setTimeout(() => {
918
- m(!0), Je(e, C).then((E) => {
919
- v.current = $, k.current = !0, s(E), !h.current && E.applied && (h.current = !0, i((b) => {
920
- const _ = { ...xe(E.applied), ...b };
921
- return $e(_, b) ? b : (v.current = j(H(_)), _);
922
- })), u(null);
923
- }).catch((E) => u(E.message)).finally(() => m(!1));
924
- }, P), () => {
925
- p.current && clearTimeout(p.current);
924
+ const $ = H(l), g = j($);
925
+ if (g === w.current) return;
926
+ f.current && clearTimeout(f.current);
927
+ const b = y.current ? er : 0;
928
+ return f.current = setTimeout(() => {
929
+ d(!0), Je(e, $).then((S) => {
930
+ if (w.current = g, y.current = !0, s(S), S.applied) {
931
+ const x = !N.current;
932
+ N.current = !0, i((C) => {
933
+ const k = rr(C, S.applied, x);
934
+ return $e(k, C) ? C : (w.current = j(H(k)), k);
935
+ });
936
+ }
937
+ h(null);
938
+ }).catch((S) => h(S.message)).finally(() => d(!1));
939
+ }, b), () => {
940
+ f.current && clearTimeout(f.current);
926
941
  };
927
942
  }, [e, t, l]);
928
- const w = x((C, $) => {
929
- i((P) => ({ ...P, [C]: $ }));
930
- }, []), y = x(() => {
931
- f(!0), et(e, H(l)).then((C) => {
932
- qt(C, Jt((t == null ? void 0 : t.name) ?? "demonstrativo", "pdf")), u(null);
933
- }).catch((C) => u(C.message)).finally(() => f(!1));
943
+ const T = P(($, g) => {
944
+ i((S) => ({ ...S, [$]: g }));
945
+ const b = g !== "";
946
+ u((S) => S[$] === b ? S : { ...S, [$]: b });
947
+ }, []), A = P(($) => {
948
+ T($, "");
949
+ }, [T]), M = P(() => {
950
+ v(!0), et(e, H(l)).then(($) => {
951
+ Xt($, Jt((t == null ? void 0 : t.name) ?? "demonstrativo", "pdf")), h(null);
952
+ }).catch(($) => h($.message)).finally(() => v(!1));
934
953
  }, [e, l, t == null ? void 0 : t.name]);
935
954
  return {
936
955
  layout: t,
937
956
  renderData: r,
938
- loading: o,
939
- error: c,
957
+ loading: c,
958
+ error: m,
940
959
  filters: l,
941
- setFilter: w,
942
- downloadPdf: y,
943
- downloading: d
960
+ setFilter: T,
961
+ touched: o,
962
+ clearFilter: A,
963
+ downloadPdf: M,
964
+ downloading: p
944
965
  };
945
966
  }
946
- const rr = [0, 0.25, 0.5, 0.75, 1];
947
- function nr(e, t, n) {
967
+ const ar = [0, 0.25, 0.5, 0.75, 1], sr = 150, lr = 1;
968
+ function ir(e, t, n) {
948
969
  let r = null, s = 0;
949
970
  for (const [l, i] of e) {
950
971
  if (i <= 0) continue;
@@ -953,35 +974,63 @@ function nr(e, t, n) {
953
974
  continue;
954
975
  }
955
976
  if (i < s) continue;
956
- const o = l === n, m = r !== n && (t.get(l) ?? 1 / 0) < (t.get(r) ?? 1 / 0);
957
- (o || m) && (r = l);
977
+ const o = l === n, u = r !== n && (t.get(l) ?? 1 / 0) < (t.get(r) ?? 1 / 0);
978
+ (o || u) && (r = l);
958
979
  }
959
980
  return r;
960
981
  }
961
- function ar(e, t) {
962
- const [n, r] = T(null);
963
- return F(() => {
964
- const s = e.current;
965
- if (!s || t.length === 0 || typeof IntersectionObserver > "u") {
982
+ function or(e, t) {
983
+ const [n, r] = E(null), [s, l] = E(null), i = R(null), o = R({ timer: null, left: null }), u = P(() => {
984
+ const d = o.current;
985
+ d.timer !== null && clearTimeout(d.timer), d.left = null, d.timer = setTimeout(() => {
986
+ var m;
987
+ d.timer = null, d.left = ((m = e.current) == null ? void 0 : m.scrollLeft) ?? null;
988
+ }, sr);
989
+ }, [e]), c = P((d) => {
990
+ i.current = d, l(d), u();
991
+ }, [u]);
992
+ return O(() => {
993
+ i.current !== null && !t.includes(i.current) && (i.current = null, l(null));
994
+ const d = e.current;
995
+ if (!d || t.length === 0) {
966
996
  r(null);
967
997
  return;
968
998
  }
969
- const l = Array.from(s.querySelectorAll("th[data-period]"));
970
- if (l.length === 0) {
999
+ const m = () => {
1000
+ i.current = null, l(null);
1001
+ }, h = () => {
1002
+ if (i.current === null) return;
1003
+ const f = o.current;
1004
+ if (f.timer !== null) {
1005
+ u();
1006
+ return;
1007
+ }
1008
+ f.left !== null && Math.abs(d.scrollLeft - f.left) > lr && m();
1009
+ };
1010
+ d.addEventListener("scroll", h, { passive: !0 });
1011
+ let p = null;
1012
+ const v = typeof IntersectionObserver > "u" ? [] : Array.from(d.querySelectorAll("th[data-period]"));
1013
+ if (v.length === 0)
971
1014
  r(null);
972
- return;
1015
+ else {
1016
+ const f = /* @__PURE__ */ new Map(), N = new Map(t.map((w, y) => [w, y]));
1017
+ p = new IntersectionObserver((w) => {
1018
+ for (const y of w) {
1019
+ const T = y.target.dataset.period;
1020
+ T != null && f.set(T, y.isIntersecting ? y.intersectionRatio : 0);
1021
+ }
1022
+ r((y) => ir(f, N, i.current ?? y));
1023
+ }, { root: d, threshold: ar }), v.forEach((w) => p.observe(w));
973
1024
  }
974
- const i = /* @__PURE__ */ new Map(), o = new Map(t.map((c, u) => [c, u])), m = new IntersectionObserver((c) => {
975
- for (const u of c) {
976
- const d = u.target.dataset.period;
977
- d != null && i.set(d, u.isIntersecting ? u.intersectionRatio : 0);
978
- }
979
- r((u) => nr(i, o, u));
980
- }, { root: s, threshold: rr });
981
- return l.forEach((c) => m.observe(c)), () => m.disconnect();
982
- }, [e, t]), n;
1025
+ return () => {
1026
+ d.removeEventListener("scroll", h), p == null || p.disconnect();
1027
+ };
1028
+ }, [e, t, u]), O(() => () => {
1029
+ const d = o.current;
1030
+ d.timer !== null && clearTimeout(d.timer);
1031
+ }, []), { current: s ?? n, pin: c };
983
1032
  }
984
- function sr(e) {
1033
+ function cr(e) {
985
1034
  var n;
986
1035
  const t = /* @__PURE__ */ new Map();
987
1036
  for (const r of e) {
@@ -990,60 +1039,60 @@ function sr(e) {
990
1039
  }
991
1040
  return t;
992
1041
  }
993
- function lr(e) {
1042
+ function dr(e) {
994
1043
  const t = /* @__PURE__ */ new Set();
995
1044
  for (const [n, r] of e)
996
1045
  [...r].some((s) => e.has(s)) || t.add(n);
997
1046
  return t;
998
1047
  }
999
- function ir(e, t) {
1048
+ function ur(e, t) {
1000
1049
  const n = /* @__PURE__ */ new Set();
1001
1050
  for (const r of t)
1002
1051
  for (const s of e.get(r) ?? []) n.add(s);
1003
1052
  return n;
1004
1053
  }
1005
- function or(e) {
1006
- const t = O(() => sr(e), [e]), n = O(() => new Set(t.keys()), [t]), r = O(() => lr(t), [t]), [s, l] = T(null), i = s ?? r, o = O(() => ir(t, i), [t, i]), m = x((d) => {
1007
- l((f) => {
1008
- const p = new Set(f ?? r);
1009
- return p.has(d) ? p.delete(d) : p.add(d), p;
1054
+ function mr(e) {
1055
+ const t = F(() => cr(e), [e]), n = F(() => new Set(t.keys()), [t]), r = F(() => dr(t), [t]), [s, l] = E(null), i = s ?? r, o = F(() => ur(t, i), [t, i]), u = P((m) => {
1056
+ l((h) => {
1057
+ const p = new Set(h ?? r);
1058
+ return p.has(m) ? p.delete(m) : p.add(m), p;
1010
1059
  });
1011
- }, [r]), c = x(() => l(r), [r]), u = x(() => l(/* @__PURE__ */ new Set()), []);
1012
- return O(() => ({
1060
+ }, [r]), c = P(() => l(r), [r]), d = P(() => l(/* @__PURE__ */ new Set()), []);
1061
+ return F(() => ({
1013
1062
  collapsible: n,
1014
1063
  collapsed: i,
1015
1064
  hidden: o,
1016
1065
  hasSections: n.size > 0,
1017
- toggle: m,
1066
+ toggle: u,
1018
1067
  collapseToSummary: c,
1019
- expandAll: u
1020
- }), [n, i, o, m, c, u]);
1068
+ expandAll: d
1069
+ }), [n, i, o, u, c, d]);
1021
1070
  }
1022
- const cr = 600, dr = (e) => {
1071
+ const hr = 600, fr = (e) => {
1023
1072
  var t, n;
1024
1073
  return ((n = (t = e.contentBoxSize) == null ? void 0 : t[0]) == null ? void 0 : n.inlineSize) ?? e.contentRect.width;
1025
1074
  };
1026
- function ur(e, t = cr) {
1027
- const [n, r] = T(!1), s = R(null), l = x((o) => {
1075
+ function pr(e, t = hr) {
1076
+ const [n, r] = E(!1), s = R(null), l = P((o) => {
1028
1077
  r(o > 0 && o < t);
1029
- }, [t]), i = x((o) => {
1078
+ }, [t]), i = P((o) => {
1030
1079
  s.current = o, o && e && l(o.getBoundingClientRect().width);
1031
1080
  }, [e, l]);
1032
- return F(() => {
1081
+ return O(() => {
1033
1082
  const o = s.current;
1034
1083
  if (!e || !o || typeof ResizeObserver > "u") return;
1035
- const m = new ResizeObserver((c) => {
1036
- for (const u of c)
1037
- u.target === o && l(dr(u));
1084
+ const u = new ResizeObserver((c) => {
1085
+ for (const d of c)
1086
+ d.target === o && l(fr(d));
1038
1087
  });
1039
- return m.observe(o), () => m.disconnect();
1088
+ return u.observe(o), () => u.disconnect();
1040
1089
  }, [e, l]), { ref: i, narrow: e && n };
1041
1090
  }
1042
- const mr = 8, hr = 14, pe = 10;
1043
- function fr(e, t = hr) {
1044
- return { paddingLeft: `${mr + e * t}px` };
1091
+ const _r = 8, gr = 14, pe = 10;
1092
+ function br(e, t = gr) {
1093
+ return { paddingLeft: `${_r + e * t}px` };
1045
1094
  }
1046
- function pr(e) {
1095
+ function vr(e) {
1047
1096
  const t = {};
1048
1097
  return e != null && e.accent && (t["--stmt-accent"] = e.accent), e != null && e.positive && (t["--stmt-positive"] = e.positive), e != null && e.negative && (t["--stmt-negative"] = e.negative), t;
1049
1098
  }
@@ -1053,7 +1102,7 @@ function Q(e) {
1053
1102
  function _e(e) {
1054
1103
  return e == null || e === 0 ? "stmt__aux" : `stmt__aux stmt__aux--${e > 0 ? "up" : "down"}`;
1055
1104
  }
1056
- const _r = {
1105
+ const wr = {
1057
1106
  day: "day",
1058
1107
  week: "week",
1059
1108
  month: "month",
@@ -1061,24 +1110,45 @@ const _r = {
1061
1110
  year: "year",
1062
1111
  total: "month"
1063
1112
  };
1064
- function gr({ definition: e, value: t, options: n, bounds: r, rangeUnit: s, onChange: l }) {
1113
+ function yr({
1114
+ definition: e,
1115
+ value: t,
1116
+ options: n,
1117
+ bounds: r,
1118
+ rangeUnit: s,
1119
+ touched: l,
1120
+ onChange: i,
1121
+ onClear: o
1122
+ }) {
1065
1123
  if (e.type === "date_range") {
1066
- const i = e.dateFilterMode ?? "range";
1067
- return /* @__PURE__ */ g("div", { className: `stmt__filter stmt__filter--date stmt__filter--${i}`, children: [
1068
- /* @__PURE__ */ a("span", { className: "stmt__filter-label", children: e.label }),
1124
+ const u = e.dateFilterMode ?? "range";
1125
+ return /* @__PURE__ */ _("div", { className: `stmt__filter stmt__filter--date stmt__filter--${u}`, children: [
1126
+ /* @__PURE__ */ _("span", { className: "stmt__filter-label", children: [
1127
+ e.label,
1128
+ l && /* @__PURE__ */ a(
1129
+ "button",
1130
+ {
1131
+ type: "button",
1132
+ className: "stmt__filter-clear",
1133
+ title: "Voltar ao período padrão",
1134
+ onClick: o,
1135
+ children: "Limpar"
1136
+ }
1137
+ )
1138
+ ] }),
1069
1139
  /* @__PURE__ */ a(
1070
1140
  Pe,
1071
1141
  {
1072
- mode: i,
1142
+ mode: u,
1073
1143
  value: t,
1074
1144
  dateBounds: r,
1075
1145
  rangeUnit: s,
1076
- onChange: l
1146
+ onChange: i
1077
1147
  }
1078
1148
  )
1079
1149
  ] });
1080
1150
  }
1081
- return /* @__PURE__ */ g("div", { className: "stmt__filter", children: [
1151
+ return /* @__PURE__ */ _("div", { className: "stmt__filter", children: [
1082
1152
  /* @__PURE__ */ a("span", { className: "stmt__filter-label", children: e.label }),
1083
1153
  /* @__PURE__ */ a(
1084
1154
  ye,
@@ -1086,12 +1156,12 @@ function gr({ definition: e, value: t, options: n, bounds: r, rangeUnit: s, onCh
1086
1156
  value: t,
1087
1157
  options: n,
1088
1158
  multi: e.type === "multi_select",
1089
- onChange: l
1159
+ onChange: i
1090
1160
  }
1091
1161
  )
1092
1162
  ] });
1093
1163
  }
1094
- const br = 13, vr = [], wr = [], ge = {
1164
+ const Nr = 13, Sr = [], kr = [], ge = {
1095
1165
  day: ["dia", "dias"],
1096
1166
  week: ["semana", "semanas"],
1097
1167
  month: ["mês", "meses"],
@@ -1099,11 +1169,11 @@ const br = 13, vr = [], wr = [], ge = {
1099
1169
  year: ["ano", "anos"],
1100
1170
  total: ["período", "períodos"]
1101
1171
  };
1102
- function yr(e, t) {
1172
+ function Cr(e, t) {
1103
1173
  const [n, r] = ge[t] ?? ge.total;
1104
1174
  return `Variação sobre ${e} ${e === 1 ? n : r} atrás`;
1105
1175
  }
1106
- function Nr({
1176
+ function Rr({
1107
1177
  label: e,
1108
1178
  collapsed: t,
1109
1179
  onToggle: n
@@ -1131,14 +1201,14 @@ function Ae(e, t) {
1131
1201
  }
1132
1202
  function G({ line: e, section: t, indentStep: n }) {
1133
1203
  const { collapsible: r, collapsed: s, onToggle: l } = t;
1134
- return /* @__PURE__ */ g(
1204
+ return /* @__PURE__ */ _(
1135
1205
  "th",
1136
1206
  {
1137
1207
  scope: "row",
1138
- style: fr(e.style.indent, n),
1208
+ style: br(e.style.indent, n),
1139
1209
  onClick: r ? l : void 0,
1140
1210
  children: [
1141
- r && /* @__PURE__ */ a(Nr, { label: e.label, collapsed: s, onToggle: l }),
1211
+ r && /* @__PURE__ */ a(Rr, { label: e.label, collapsed: s, onToggle: l }),
1142
1212
  e.label
1143
1213
  ]
1144
1214
  }
@@ -1153,10 +1223,10 @@ function K(e, t, n = { bold: !0 }) {
1153
1223
  t.collapsed && "stmt__row--collapsed"
1154
1224
  ].filter(Boolean).join(" ");
1155
1225
  }
1156
- function Me(e) {
1226
+ function Ee(e) {
1157
1227
  return e.type === "header" && e.formatted.length === 0;
1158
1228
  }
1159
- function Sr({
1229
+ function $r({
1160
1230
  line: e,
1161
1231
  columnCount: t,
1162
1232
  showTotal: n,
@@ -1165,17 +1235,17 @@ function Sr({
1165
1235
  comparisonLabel: l,
1166
1236
  section: i
1167
1237
  }) {
1168
- return e.type === "separator" ? /* @__PURE__ */ a("tr", { className: "stmt__row stmt__row--separator", children: /* @__PURE__ */ a("td", { colSpan: t }) }) : Me(e) ? /* @__PURE__ */ g("tr", { className: K(e, i, { bold: !1 }), children: [
1238
+ return e.type === "separator" ? /* @__PURE__ */ a("tr", { className: "stmt__row stmt__row--separator", children: /* @__PURE__ */ a("td", { colSpan: t }) }) : Ee(e) ? /* @__PURE__ */ _("tr", { className: K(e, i, { bold: !1 }), children: [
1169
1239
  /* @__PURE__ */ a(G, { line: e, section: i }),
1170
1240
  /* @__PURE__ */ a("td", { colSpan: t - 1 })
1171
- ] }) : /* @__PURE__ */ g("tr", { className: K(e, i), children: [
1241
+ ] }) : /* @__PURE__ */ _("tr", { className: K(e, i), children: [
1172
1242
  /* @__PURE__ */ a(G, { line: e, section: i }),
1173
- e.formatted.map((o, m) => {
1174
- var d;
1175
- const c = e.horizontalAnalysis[m], u = (d = e.comparison) == null ? void 0 : d[m];
1176
- return /* @__PURE__ */ g("td", { className: "stmt__value", children: [
1177
- /* @__PURE__ */ a("span", { className: Q(e.values[m]), children: o }),
1178
- r && e.verticalAnalysis[m] != null && /* @__PURE__ */ a("span", { className: "stmt__aux", title: "Análise vertical", children: D(e.verticalAnalysis[m], "percentage") }),
1243
+ e.formatted.map((o, u) => {
1244
+ var m;
1245
+ const c = e.horizontalAnalysis[u], d = (m = e.comparison) == null ? void 0 : m[u];
1246
+ return /* @__PURE__ */ _("td", { className: "stmt__value", children: [
1247
+ /* @__PURE__ */ a("span", { className: Q(e.values[u]), children: o }),
1248
+ r && e.verticalAnalysis[u] != null && /* @__PURE__ */ a("span", { className: "stmt__aux", title: "Análise vertical", children: D(e.verticalAnalysis[u], "percentage") }),
1179
1249
  s && c != null && /* @__PURE__ */ a(
1180
1250
  "span",
1181
1251
  {
@@ -1184,23 +1254,23 @@ function Sr({
1184
1254
  children: D(c, "percentage")
1185
1255
  }
1186
1256
  ),
1187
- l && u != null && /* @__PURE__ */ g(
1257
+ l && d != null && /* @__PURE__ */ _(
1188
1258
  "span",
1189
1259
  {
1190
- className: `stmt__aux stmt__aux--${u < 0 ? "down" : "up"}`,
1260
+ className: `stmt__aux stmt__aux--${d < 0 ? "down" : "up"}`,
1191
1261
  title: l,
1192
1262
  children: [
1193
1263
  "vs ",
1194
- D(u, "percentage")
1264
+ D(d, "percentage")
1195
1265
  ]
1196
1266
  }
1197
1267
  )
1198
- ] }, m);
1268
+ ] }, u);
1199
1269
  }),
1200
1270
  n && /* @__PURE__ */ a("td", { className: "stmt__value stmt__value--total", children: /* @__PURE__ */ a("span", { className: Q(e.total), children: e.totalFormatted ?? "-" }) })
1201
1271
  ] });
1202
1272
  }
1203
- function kr({
1273
+ function xr({
1204
1274
  name: e,
1205
1275
  columns: t,
1206
1276
  lines: n,
@@ -1209,57 +1279,58 @@ function kr({
1209
1279
  showVertical: l,
1210
1280
  showHorizontal: i,
1211
1281
  comparisonLabel: o,
1212
- collapse: m
1282
+ collapse: u
1213
1283
  }) {
1214
- const c = R(null), u = O(() => t.map((h) => h.key), [t]), d = ar(c, u), f = x((h) => {
1215
- const v = c.current;
1216
- if (!v) return;
1217
- const k = v.querySelector(`[data-period="${CSS.escape(h)}"]`);
1218
- k == null || k.scrollIntoView({ inline: "center", block: "nearest", behavior: "smooth" });
1219
- }, []), p = 1 + t.length + (r ? 1 : 0);
1220
- return /* @__PURE__ */ g(V, { children: [
1221
- t.length > 1 && /* @__PURE__ */ a("nav", { className: "stmt__periods", "aria-label": "Períodos", children: t.map((h) => {
1222
- const v = h.key === d;
1284
+ const c = R(null), d = F(() => t.map((f) => f.key), [t]), { current: m, pin: h } = or(c, d), p = P((f) => {
1285
+ h(f);
1286
+ const N = c.current;
1287
+ if (!N) return;
1288
+ const w = N.querySelector(`[data-period="${CSS.escape(f)}"]`);
1289
+ w == null || w.scrollIntoView({ inline: "center", block: "nearest", behavior: "smooth" });
1290
+ }, [h]), v = 1 + t.length + (r ? 1 : 0);
1291
+ return /* @__PURE__ */ _(V, { children: [
1292
+ t.length > 1 && /* @__PURE__ */ a("nav", { className: "stmt__periods", "aria-label": "Períodos", children: t.map((f) => {
1293
+ const N = f.key === m;
1223
1294
  return /* @__PURE__ */ a(
1224
1295
  "button",
1225
1296
  {
1226
1297
  type: "button",
1227
- className: v ? "stmt__period stmt__period--current" : "stmt__period",
1228
- "aria-current": v ? "true" : void 0,
1229
- title: `${h.start} a ${h.end}`,
1230
- onClick: () => f(h.key),
1231
- children: h.label
1298
+ className: N ? "stmt__period stmt__period--current" : "stmt__period",
1299
+ "aria-current": N ? "true" : void 0,
1300
+ title: `${f.start} a ${f.end}`,
1301
+ onClick: () => p(f.key),
1302
+ children: f.label
1232
1303
  },
1233
- h.key
1304
+ f.key
1234
1305
  );
1235
1306
  }) }),
1236
- /* @__PURE__ */ a("div", { className: "stmt__scroll", ref: c, children: /* @__PURE__ */ g("table", { className: "stmt__table", children: [
1237
- /* @__PURE__ */ a("thead", { children: /* @__PURE__ */ g("tr", { children: [
1307
+ /* @__PURE__ */ a("div", { className: "stmt__scroll", ref: c, children: /* @__PURE__ */ _("table", { className: "stmt__table", children: [
1308
+ /* @__PURE__ */ a("thead", { children: /* @__PURE__ */ _("tr", { children: [
1238
1309
  /* @__PURE__ */ a("th", { className: "stmt__corner", scope: "col", children: e }),
1239
- t.map((h) => /* @__PURE__ */ a(
1310
+ t.map((f) => /* @__PURE__ */ a(
1240
1311
  "th",
1241
1312
  {
1242
1313
  scope: "col",
1243
- "data-period": h.key,
1244
- title: `${h.start} a ${h.end}`,
1245
- children: h.label
1314
+ "data-period": f.key,
1315
+ title: `${f.start} a ${f.end}`,
1316
+ children: f.label
1246
1317
  },
1247
- h.key
1318
+ f.key
1248
1319
  )),
1249
1320
  r && /* @__PURE__ */ a("th", { scope: "col", className: "stmt__total-head", children: s })
1250
1321
  ] }) }),
1251
- /* @__PURE__ */ a("tbody", { children: n.map((h) => m.hidden.has(h.id) ? null : /* @__PURE__ */ a(
1252
- Sr,
1322
+ /* @__PURE__ */ a("tbody", { children: n.map((f) => u.hidden.has(f.id) ? null : /* @__PURE__ */ a(
1323
+ $r,
1253
1324
  {
1254
- line: h,
1255
- columnCount: p,
1325
+ line: f,
1326
+ columnCount: v,
1256
1327
  showTotal: r,
1257
1328
  showVertical: l,
1258
1329
  showHorizontal: i,
1259
1330
  comparisonLabel: o,
1260
- section: Ae(h, m)
1331
+ section: Ae(f, u)
1261
1332
  },
1262
- h.id
1333
+ f.id
1263
1334
  )) })
1264
1335
  ] }) })
1265
1336
  ] });
@@ -1267,12 +1338,12 @@ function kr({
1267
1338
  function Z(e) {
1268
1339
  return e.kind === "total" ? "total" : `period:${e.column.key}`;
1269
1340
  }
1270
- function Ee(e) {
1341
+ function Me(e) {
1271
1342
  return e.kind === "total" ? e.label : e.column.label;
1272
1343
  }
1273
- function Cr({ slots: e, selected: t, onSelect: n }) {
1344
+ function Tr({ slots: e, selected: t, onSelect: n }) {
1274
1345
  const r = () => n(Math.max(0, t - 1)), s = () => n(Math.min(e.length - 1, t + 1));
1275
- return /* @__PURE__ */ g("div", { className: "stmt__picker", role: "group", "aria-label": "Seleção de período", onKeyDown: (i) => {
1346
+ return /* @__PURE__ */ _("div", { className: "stmt__picker", role: "group", "aria-label": "Seleção de período", onKeyDown: (i) => {
1276
1347
  i.key === "ArrowLeft" ? (i.preventDefault(), r()) : i.key === "ArrowRight" && (i.preventDefault(), s());
1277
1348
  }, children: [
1278
1349
  /* @__PURE__ */ a(
@@ -1293,7 +1364,7 @@ function Cr({ slots: e, selected: t, onSelect: n }) {
1293
1364
  "aria-label": "Período",
1294
1365
  value: String(t),
1295
1366
  onChange: (i) => n(Number(i.target.value)),
1296
- children: e.map((i, o) => /* @__PURE__ */ a("option", { value: String(o), children: Ee(i) }, Z(i)))
1367
+ children: e.map((i, o) => /* @__PURE__ */ a("option", { value: String(o), children: Me(i) }, Z(i)))
1297
1368
  }
1298
1369
  ),
1299
1370
  /* @__PURE__ */ a(
@@ -1309,20 +1380,20 @@ function Cr({ slots: e, selected: t, onSelect: n }) {
1309
1380
  )
1310
1381
  ] });
1311
1382
  }
1312
- function Rr({ line: e, index: t, previous: n }) {
1383
+ function Pr({ line: e, index: t, previous: n }) {
1313
1384
  const r = e.horizontalAnalysis[t];
1314
1385
  if (r != null)
1315
- return /* @__PURE__ */ g("span", { className: _e(r), title: `Variação sobre ${n.label}`, children: [
1386
+ return /* @__PURE__ */ _("span", { className: _e(r), title: `Variação sobre ${n.label}`, children: [
1316
1387
  /* @__PURE__ */ a("span", { className: "stmt__aux-number", children: D(r, "percentage") }),
1317
1388
  " ",
1318
- /* @__PURE__ */ g("span", { className: "stmt__aux-label", children: [
1389
+ /* @__PURE__ */ _("span", { className: "stmt__aux-label", children: [
1319
1390
  "vs ",
1320
1391
  n.label
1321
1392
  ] })
1322
1393
  ] });
1323
1394
  const s = e.formatted[t - 1];
1324
- return s == null ? null : /* @__PURE__ */ g("span", { className: _e(e.values[t - 1]), title: `Valor em ${n.label}`, children: [
1325
- /* @__PURE__ */ g("span", { className: "stmt__aux-label", children: [
1395
+ return s == null ? null : /* @__PURE__ */ _("span", { className: _e(e.values[t - 1]), title: `Valor em ${n.label}`, children: [
1396
+ /* @__PURE__ */ _("span", { className: "stmt__aux-label", children: [
1326
1397
  n.label,
1327
1398
  ":"
1328
1399
  ] }),
@@ -1330,55 +1401,55 @@ function Rr({ line: e, index: t, previous: n }) {
1330
1401
  /* @__PURE__ */ a("span", { className: "stmt__aux-number", children: s })
1331
1402
  ] });
1332
1403
  }
1333
- function $r({ line: e, slot: t, previous: n, compare: r, section: s }) {
1404
+ function Ar({ line: e, slot: t, previous: n, compare: r, section: s }) {
1334
1405
  if (e.type === "separator")
1335
1406
  return /* @__PURE__ */ a("tr", { className: "stmt__row stmt__row--separator", children: /* @__PURE__ */ a("td", { colSpan: 2 }) });
1336
- if (Me(e))
1337
- return /* @__PURE__ */ g("tr", { className: K(e, s, { bold: !1 }), children: [
1407
+ if (Ee(e))
1408
+ return /* @__PURE__ */ _("tr", { className: K(e, s, { bold: !1 }), children: [
1338
1409
  /* @__PURE__ */ a(G, { line: e, section: s, indentStep: pe }),
1339
1410
  /* @__PURE__ */ a("td", {})
1340
1411
  ] });
1341
1412
  const l = t.kind === "total", i = l ? e.total : e.values[t.index], o = l ? e.totalFormatted ?? "-" : e.formatted[t.index];
1342
- return /* @__PURE__ */ g("tr", { className: K(e, s), children: [
1413
+ return /* @__PURE__ */ _("tr", { className: K(e, s), children: [
1343
1414
  /* @__PURE__ */ a(G, { line: e, section: s, indentStep: pe }),
1344
- /* @__PURE__ */ g("td", { className: l ? "stmt__value stmt__value--total" : "stmt__value", children: [
1415
+ /* @__PURE__ */ _("td", { className: l ? "stmt__value stmt__value--total" : "stmt__value", children: [
1345
1416
  /* @__PURE__ */ a("span", { className: Q(i), children: o }),
1346
- r && t.kind === "period" && n && /* @__PURE__ */ a(Rr, { line: e, index: t.index, previous: n })
1417
+ r && t.kind === "period" && n && /* @__PURE__ */ a(Pr, { line: e, index: t.index, previous: n })
1347
1418
  ] })
1348
1419
  ] });
1349
1420
  }
1350
- function xr({ name: e, columns: t, lines: n, showTotal: r, totalLabel: s, collapse: l }) {
1351
- const i = O(() => {
1352
- const w = t.map((y, C) => ({ kind: "period", index: C, column: y }));
1421
+ function Er({ name: e, columns: t, lines: n, showTotal: r, totalLabel: s, collapse: l }) {
1422
+ const i = F(() => {
1423
+ const w = t.map((y, T) => ({ kind: "period", index: T, column: y }));
1353
1424
  return r && w.push({ kind: "total", label: s }), w;
1354
- }, [t, r, s]), [o, m] = T(null), [c, u] = T(!0), d = t.length - 1, f = o == null ? -1 : i.findIndex((w) => Z(w) === o), p = f >= 0 ? f : d, h = i[p], v = h.kind === "period" && h.index > 0 ? t[h.index - 1] : null, k = x((w) => {
1425
+ }, [t, r, s]), [o, u] = E(null), [c, d] = E(!0), m = t.length - 1, h = o == null ? -1 : i.findIndex((w) => Z(w) === o), p = h >= 0 ? h : m, v = i[p], f = v.kind === "period" && v.index > 0 ? t[v.index - 1] : null, N = P((w) => {
1355
1426
  const y = i[w];
1356
- y && m(Z(y));
1427
+ y && u(Z(y));
1357
1428
  }, [i]);
1358
- return /* @__PURE__ */ g(V, { children: [
1359
- /* @__PURE__ */ a(Cr, { slots: i, selected: p, onSelect: k }),
1360
- /* @__PURE__ */ g("label", { className: "stmt__compare", children: [
1429
+ return /* @__PURE__ */ _(V, { children: [
1430
+ /* @__PURE__ */ a(Tr, { slots: i, selected: p, onSelect: N }),
1431
+ /* @__PURE__ */ _("label", { className: "stmt__compare", children: [
1361
1432
  /* @__PURE__ */ a(
1362
1433
  "input",
1363
1434
  {
1364
1435
  type: "checkbox",
1365
1436
  checked: c,
1366
- onChange: (w) => u(w.target.checked)
1437
+ onChange: (w) => d(w.target.checked)
1367
1438
  }
1368
1439
  ),
1369
1440
  "Comparar com o anterior"
1370
1441
  ] }),
1371
- /* @__PURE__ */ a("div", { className: "stmt__scroll", children: /* @__PURE__ */ g("table", { className: "stmt__list", children: [
1372
- /* @__PURE__ */ a("thead", { children: /* @__PURE__ */ g("tr", { children: [
1442
+ /* @__PURE__ */ a("div", { className: "stmt__scroll", children: /* @__PURE__ */ _("table", { className: "stmt__list", children: [
1443
+ /* @__PURE__ */ a("thead", { children: /* @__PURE__ */ _("tr", { children: [
1373
1444
  /* @__PURE__ */ a("th", { scope: "col", className: "stmt__list-name", children: e }),
1374
- /* @__PURE__ */ a("th", { scope: "col", className: "stmt__list-period", "aria-live": "polite", "aria-atomic": "true", children: Ee(h) })
1445
+ /* @__PURE__ */ a("th", { scope: "col", className: "stmt__list-period", "aria-live": "polite", "aria-atomic": "true", children: Me(v) })
1375
1446
  ] }) }),
1376
1447
  /* @__PURE__ */ a("tbody", { children: n.map((w) => l.hidden.has(w.id) ? null : /* @__PURE__ */ a(
1377
- $r,
1448
+ Ar,
1378
1449
  {
1379
1450
  line: w,
1380
- slot: h,
1381
- previous: v,
1451
+ slot: v,
1452
+ previous: f,
1382
1453
  compare: c,
1383
1454
  section: Ae(w, l)
1384
1455
  },
@@ -1387,71 +1458,75 @@ function xr({ name: e, columns: t, lines: n, showTotal: r, totalLabel: s, collap
1387
1458
  ] }) })
1388
1459
  ] });
1389
1460
  }
1390
- function Tr({
1461
+ function Mr({
1391
1462
  layout: e,
1392
1463
  renderData: t,
1393
1464
  loading: n,
1394
1465
  error: r,
1395
1466
  filters: s,
1396
1467
  setFilter: l,
1397
- downloadPdf: i,
1398
- downloading: o,
1399
- showDownload: m,
1400
- mode: c
1468
+ touched: i,
1469
+ clearFilter: o,
1470
+ downloadPdf: u,
1471
+ downloading: c,
1472
+ showDownload: d,
1473
+ mode: m
1401
1474
  }) {
1402
- const u = (t == null ? void 0 : t.dateBounds) ?? e.dateBounds, d = e.periods.showTotal, f = (t == null ? void 0 : t.columns) ?? vr, p = (t == null ? void 0 : t.lines) ?? wr, h = or(p), [v, k] = T(!1), w = p.some((N) => N.verticalAnalysis.length > 0), y = p.some((N) => N.horizontalAnalysis.length > 0), C = e.periods.comparisonOffset, $ = C ? yr(C, e.periods.granularity) : void 0, P = br - (d ? 1 : 0), E = Math.max(0, f.length - P), b = /* @__PURE__ */ g("span", { className: "stmt__meta stmt__bounds", children: [
1475
+ const h = (t == null ? void 0 : t.dateBounds) ?? e.dateBounds, p = e.periods.showTotal, v = (t == null ? void 0 : t.columns) ?? Sr, f = (t == null ? void 0 : t.lines) ?? kr, N = mr(f), [w, y] = E(!1), T = f.some((C) => C.verticalAnalysis.length > 0), A = f.some((C) => C.horizontalAnalysis.length > 0), M = e.periods.comparisonOffset, $ = M ? Cr(M, e.periods.granularity) : void 0, g = Nr - (p ? 1 : 0), b = Math.max(0, v.length - g), S = /* @__PURE__ */ _("span", { className: "stmt__meta stmt__bounds", children: [
1403
1476
  "Base: ",
1404
- u.min,
1477
+ h.min,
1405
1478
  " a ",
1406
- u.max
1479
+ h.max
1407
1480
  ] });
1408
- let _;
1409
- return t ? f.length === 0 ? _ = /* @__PURE__ */ a("div", { className: "stmt__state", children: "Nenhum período na janela selecionada." }) : p.length === 0 ? _ = /* @__PURE__ */ a("div", { className: "stmt__state", children: "Este demonstrativo não possui linhas." }) : c === "periods" ? _ = /* @__PURE__ */ a(
1410
- xr,
1481
+ let x;
1482
+ return t ? v.length === 0 ? x = /* @__PURE__ */ a("div", { className: "stmt__state", children: "Nenhum período na janela selecionada." }) : f.length === 0 ? x = /* @__PURE__ */ a("div", { className: "stmt__state", children: "Este demonstrativo não possui linhas." }) : m === "periods" ? x = /* @__PURE__ */ a(
1483
+ Er,
1411
1484
  {
1412
1485
  name: t.name,
1413
- columns: f,
1414
- lines: p,
1415
- showTotal: d,
1486
+ columns: v,
1487
+ lines: f,
1488
+ showTotal: p,
1416
1489
  totalLabel: e.periods.totalLabel,
1417
- collapse: h
1490
+ collapse: N
1418
1491
  }
1419
- ) : _ = /* @__PURE__ */ a(
1420
- kr,
1492
+ ) : x = /* @__PURE__ */ a(
1493
+ xr,
1421
1494
  {
1422
1495
  name: t.name,
1423
- columns: f,
1424
- lines: p,
1425
- showTotal: d,
1496
+ columns: v,
1497
+ lines: f,
1498
+ showTotal: p,
1426
1499
  totalLabel: e.periods.totalLabel,
1427
- showVertical: w,
1428
- showHorizontal: y,
1500
+ showVertical: T,
1501
+ showHorizontal: A,
1429
1502
  comparisonLabel: $,
1430
- collapse: h
1503
+ collapse: N
1431
1504
  }
1432
- ) : _ = /* @__PURE__ */ a("div", { className: "stmt__state", children: "Calculando..." }), /* @__PURE__ */ g(V, { children: [
1433
- /* @__PURE__ */ g("div", { className: "stmt__toolbar", children: [
1434
- e.filters.map((N) => /* @__PURE__ */ a(
1435
- gr,
1505
+ ) : x = /* @__PURE__ */ a("div", { className: "stmt__state", children: "Calculando..." }), /* @__PURE__ */ _(V, { children: [
1506
+ /* @__PURE__ */ _("div", { className: "stmt__toolbar", children: [
1507
+ e.filters.map((C) => /* @__PURE__ */ a(
1508
+ yr,
1436
1509
  {
1437
- definition: N,
1438
- value: s[N.id] ?? "",
1439
- options: e.filterOptions[N.id] ?? [],
1440
- bounds: u,
1441
- rangeUnit: _r[e.periods.granularity] ?? "day",
1442
- onChange: (A) => l(N.id, A)
1510
+ definition: C,
1511
+ value: s[C.id] ?? "",
1512
+ options: e.filterOptions[C.id] ?? [],
1513
+ bounds: h,
1514
+ rangeUnit: wr[e.periods.granularity] ?? "day",
1515
+ touched: i[C.id] ?? !1,
1516
+ onChange: (k) => l(C.id, k),
1517
+ onClear: () => o(C.id)
1443
1518
  },
1444
- N.id
1519
+ C.id
1445
1520
  )),
1446
- /* @__PURE__ */ g("div", { className: "stmt__toolbar-end", children: [
1447
- c === "table" && b,
1448
- h.hasSections && /* @__PURE__ */ g(V, { children: [
1521
+ /* @__PURE__ */ _("div", { className: "stmt__toolbar-end", children: [
1522
+ m === "table" && S,
1523
+ N.hasSections && /* @__PURE__ */ _(V, { children: [
1449
1524
  /* @__PURE__ */ a(
1450
1525
  "button",
1451
1526
  {
1452
1527
  type: "button",
1453
1528
  className: "stmt__outline",
1454
- onClick: h.collapseToSummary,
1529
+ onClick: N.collapseToSummary,
1455
1530
  children: "Recolher seções"
1456
1531
  }
1457
1532
  ),
@@ -1460,53 +1535,53 @@ function Tr({
1460
1535
  {
1461
1536
  type: "button",
1462
1537
  className: "stmt__outline",
1463
- onClick: h.expandAll,
1538
+ onClick: N.expandAll,
1464
1539
  children: "Expandir tudo"
1465
1540
  }
1466
1541
  )
1467
1542
  ] }),
1468
- m && /* @__PURE__ */ a(
1543
+ d && /* @__PURE__ */ a(
1469
1544
  "button",
1470
1545
  {
1471
1546
  type: "button",
1472
1547
  className: "stmt__download",
1473
1548
  onClick: () => {
1474
- if (E > 0 && !v) {
1475
- k(!0);
1549
+ if (b > 0 && !w) {
1550
+ y(!0);
1476
1551
  return;
1477
1552
  }
1478
- k(!1), i();
1553
+ y(!1), u();
1479
1554
  },
1480
- disabled: o || !t,
1555
+ disabled: c || !t,
1481
1556
  title: "Baixar o documento em PDF",
1482
- children: o ? "Gerando..." : "Baixar PDF"
1557
+ children: c ? "Gerando..." : "Baixar PDF"
1483
1558
  }
1484
1559
  )
1485
1560
  ] })
1486
1561
  ] }),
1487
1562
  r && /* @__PURE__ */ a("div", { className: "stmt__error", children: r }),
1488
- v && E > 0 && /* @__PURE__ */ g("div", { className: "stmt__warning", children: [
1563
+ w && b > 0 && /* @__PURE__ */ _("div", { className: "stmt__warning", children: [
1489
1564
  "O PDF cabe ",
1490
- P,
1565
+ g,
1491
1566
  " períodos e este documento tem ",
1492
- f.length,
1567
+ v.length,
1493
1568
  ": o arquivo sairá com os ",
1494
- P,
1569
+ g,
1495
1570
  " mais recentes",
1496
- d && ", e a coluna de total seguirá cobrindo a janela inteira",
1571
+ p && ", e a coluna de total seguirá cobrindo a janela inteira",
1497
1572
  '. Clique em "Baixar PDF" de novo para gerar assim, ou reduza o período.'
1498
1573
  ] }),
1499
- (t == null ? void 0 : t.truncated) && /* @__PURE__ */ g("div", { className: "stmt__warning", children: [
1574
+ (t == null ? void 0 : t.truncated) && /* @__PURE__ */ _("div", { className: "stmt__warning", children: [
1500
1575
  "A janela pedida excede o limite de colunas: o documento mostra as primeiras ",
1501
- f.length,
1576
+ v.length,
1502
1577
  ". Escolha um período menor ou uma coluna mais larga."
1503
1578
  ] }),
1504
- _,
1505
- c === "periods" && b,
1579
+ x,
1580
+ m === "periods" && S,
1506
1581
  n && t && /* @__PURE__ */ a("div", { className: "stmt__recalculating", children: "Atualizando..." })
1507
1582
  ] });
1508
1583
  }
1509
- function Or({
1584
+ function zr({
1510
1585
  token: e,
1511
1586
  palette: t,
1512
1587
  showDownload: n = !0,
@@ -1517,35 +1592,39 @@ function Or({
1517
1592
  layout: l,
1518
1593
  renderData: i,
1519
1594
  loading: o,
1520
- error: m,
1595
+ error: u,
1521
1596
  filters: c,
1522
- setFilter: u,
1523
- downloadPdf: d,
1524
- downloading: f
1525
- } = tr(e), { ref: p, narrow: h } = ur(r === "auto"), v = r === "auto" ? h ? "periods" : "table" : r, k = ["stmt", `stmt--${v}`, s].filter(Boolean).join(" "), w = {
1597
+ setFilter: d,
1598
+ touched: m,
1599
+ clearFilter: h,
1600
+ downloadPdf: p,
1601
+ downloading: v
1602
+ } = nr(e), { ref: f, narrow: N } = pr(r === "auto"), w = r === "auto" ? N ? "periods" : "table" : r, y = ["stmt", `stmt--${w}`, s].filter(Boolean).join(" "), T = {
1526
1603
  ...t ? Ne(t) : {},
1527
- ...pr(l == null ? void 0 : l.colors)
1604
+ ...vr(l == null ? void 0 : l.colors)
1528
1605
  };
1529
- let y;
1530
- return m && !l ? y = /* @__PURE__ */ a("div", { className: "stmt__error", children: m }) : l ? y = /* @__PURE__ */ a(
1531
- Tr,
1606
+ let A;
1607
+ return u && !l ? A = /* @__PURE__ */ a("div", { className: "stmt__error", children: u }) : l ? A = /* @__PURE__ */ a(
1608
+ Mr,
1532
1609
  {
1533
1610
  layout: l,
1534
1611
  renderData: i,
1535
1612
  loading: o,
1536
- error: m,
1613
+ error: u,
1537
1614
  filters: c,
1538
- setFilter: u,
1539
- downloadPdf: d,
1540
- downloading: f,
1615
+ setFilter: d,
1616
+ touched: m,
1617
+ clearFilter: h,
1618
+ downloadPdf: p,
1619
+ downloading: v,
1541
1620
  showDownload: n,
1542
- mode: v
1621
+ mode: w
1543
1622
  }
1544
- ) : y = /* @__PURE__ */ a("div", { className: "stmt__state", children: "Carregando demonstrativo..." }), /* @__PURE__ */ a("div", { ref: p, className: k, style: w, children: y });
1623
+ ) : A = /* @__PURE__ */ a("div", { className: "stmt__state", children: "Carregando demonstrativo..." }), /* @__PURE__ */ a("div", { ref: f, className: y, style: T, children: A });
1545
1624
  }
1546
1625
  export {
1547
- Wr as ApiError,
1548
- Lr as Dashboard,
1549
- Or as Statement
1626
+ Vr as ApiError,
1627
+ Wr as Dashboard,
1628
+ zr as Statement
1550
1629
  };
1551
1630
  //# sourceMappingURL=index.js.map