@embeddable.com/remarkable-pro 0.2.5 → 0.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/BarChartDefaultHorizontalPro.js +1 -1
- package/dist/BarChartDefaultPro.js +1 -1
- package/dist/BarChartGroupedHorizontalPro.js +1 -1
- package/dist/BarChartGroupedPro.js +1 -1
- package/dist/BarChartStackedHorizontalPro.js +1 -1
- package/dist/BarChartStackedPro.js +1 -1
- package/dist/ComparisonPeriodSelectFieldPro.js +1 -1
- package/dist/DateRangePickerCustomPro.js +1 -1
- package/dist/DateRangeSelectFieldPro.js +1 -1
- package/dist/{DimensionAndMeasureSingleSelectField-HJcwoxiQ.js → DimensionAndMeasureSingleSelectField-B-HiSZ1m.js} +2 -2
- package/dist/{DimensionAndMeasureSingleSelectField-HJcwoxiQ.js.map → DimensionAndMeasureSingleSelectField-B-HiSZ1m.js.map} +1 -1
- package/dist/DimensionMeasureMultiSelectFieldPro.js +1 -1
- package/dist/DimensionSingleSelectFieldPro.js +1 -1
- package/dist/DonutChartPro.js +1 -1
- package/dist/DonutLabelChartPro.js +1 -1
- package/dist/FilterBuilderPro.js +3 -3
- package/dist/{GranularitySelectField-l18OwBvC.js → GranularitySelectField-DpQLHVFc.js} +2 -2
- package/dist/{GranularitySelectField-l18OwBvC.js.map → GranularitySelectField-DpQLHVFc.js.map} +1 -1
- package/dist/GranularitySelectFieldPro.js +1 -1
- package/dist/HeatMapPro.js +1 -1
- package/dist/HorizontalDividerPro.js +1 -1
- package/dist/KpiChartNumberComparisonPro.js +1 -1
- package/dist/KpiChartNumberPro.js +1 -1
- package/dist/LineChartComparisonDefaultPro.js +1 -1
- package/dist/LineChartDefaultPro.js +1 -1
- package/dist/LineChartGroupedPro.js +1 -1
- package/dist/LineChartWithKpiTabsPro.js +1 -1
- package/dist/MarkdownPro.js +1 -1
- package/dist/MeasureMultiSelectFieldPro.js +1 -1
- package/dist/MeasureSingleSelectFieldPro.js +1 -1
- package/dist/MultiSelectFieldPro.js +1 -1
- package/dist/PieChartPro.js +1 -1
- package/dist/PivotTablePro.js +1 -1
- package/dist/ScatterChartPro.js +1 -1
- package/dist/SingleSelectFieldPro.js +1 -1
- package/dist/TableChartPaginated.js +1 -1
- package/dist/TableScrollable.js +1 -1
- package/dist/TextFieldPro.js +1 -1
- package/dist/{bars.loadData.utils-DpaXxzT5.js → bars.loadData.utils-C3w-0agD.js} +3 -3
- package/dist/{bars.loadData.utils-DpaXxzT5.js.map → bars.loadData.utils-C3w-0agD.js.map} +1 -1
- package/dist/bars.utils-DR-ga7ps.js +176 -0
- package/dist/bars.utils-DR-ga7ps.js.map +1 -0
- package/dist/{charts.fillGaps.hooks-CPpTEo01.js → charts.fillGaps.hooks-DgH30vXI.js} +2 -2
- package/dist/{charts.fillGaps.hooks-CPpTEo01.js.map → charts.fillGaps.hooks-DgH30vXI.js.map} +1 -1
- package/dist/charts.utils-BEwWG4s2.js +25 -0
- package/dist/charts.utils-BEwWG4s2.js.map +1 -0
- package/dist/{component.inputs.constants-Bf2Ty2En.js → component.inputs.constants-DnFrZzR7.js} +206 -191
- package/dist/component.inputs.constants-DnFrZzR7.js.map +1 -0
- package/dist/components/charts/bars/BarChartGroupedHorizontalPro/BarChartGroupedHorizontalPro.emb.d.ts +1 -1
- package/dist/components/charts/bars/BarChartGroupedHorizontalPro/definition.d.ts +2 -2
- package/dist/components/charts/bars/BarChartGroupedHorizontalPro/index.d.ts.map +1 -1
- package/dist/components/charts/bars/BarChartGroupedPro/BarChartGroupedPro.emb.d.ts +1 -1
- package/dist/components/charts/bars/BarChartGroupedPro/definition.d.ts +2 -2
- package/dist/components/charts/bars/BarChartGroupedPro/index.d.ts.map +1 -1
- package/dist/components/charts/bars/BarChartStackedHorizontalPro/BarChartStackedHorizontalPro.emb.d.ts +1 -1
- package/dist/components/charts/bars/BarChartStackedHorizontalPro/definition.d.ts +2 -2
- package/dist/components/charts/bars/BarChartStackedHorizontalPro/index.d.ts.map +1 -1
- package/dist/components/charts/bars/BarChartStackedPro/BarChartStackedPro.emb.d.ts +1 -1
- package/dist/components/charts/bars/BarChartStackedPro/definition.d.ts +2 -2
- package/dist/components/charts/bars/BarChartStackedPro/index.d.ts.map +1 -1
- package/dist/components/charts/bars/bars.utils.d.ts +11 -0
- package/dist/components/charts/bars/bars.utils.d.ts.map +1 -1
- package/dist/components/charts/charts.utils.d.ts +1 -0
- package/dist/components/charts/charts.utils.d.ts.map +1 -1
- package/dist/components/charts/lines/LineChartComparisonDefaultPro/LineChartComparisonDefaultPro.utils.d.ts.map +1 -1
- package/dist/components/charts/lines/LineChartDefaultPro/LineChartDefaultPro.utils.d.ts.map +1 -1
- package/dist/components/charts/lines/LineChartGroupedPro/LineChartGroupedPro.utils.d.ts +1 -0
- package/dist/components/charts/lines/LineChartGroupedPro/LineChartGroupedPro.utils.d.ts.map +1 -1
- package/dist/components/charts/lines/LineChartGroupedPro/LineChartGroupedPro.utils.test.d.ts +2 -0
- package/dist/components/charts/lines/LineChartGroupedPro/LineChartGroupedPro.utils.test.d.ts.map +1 -0
- package/dist/components/charts/lines/lines.utils.d.ts +4 -1
- package/dist/components/charts/lines/lines.utils.d.ts.map +1 -1
- package/dist/components/charts/pies/pies.utils.d.ts +4 -1
- package/dist/components/charts/pies/pies.utils.d.ts.map +1 -1
- package/dist/components/charts/tables/TableChartPaginated/TableChartPaginated.emb.d.ts +17 -0
- package/dist/components/charts/tables/TableChartPaginated/TableChartPaginated.emb.d.ts.map +1 -1
- package/dist/components/charts/tables/TableChartPaginated/definition.d.ts +39 -3
- package/dist/components/charts/tables/TableChartPaginated/definition.d.ts.map +1 -1
- package/dist/components/charts/tables/TableScrollable/TableScrollable.emb.d.ts +17 -0
- package/dist/components/charts/tables/TableScrollable/TableScrollable.emb.d.ts.map +1 -1
- package/dist/components/charts/tables/TableScrollable/definition.d.ts +39 -4
- package/dist/components/charts/tables/TableScrollable/definition.d.ts.map +1 -1
- package/dist/components/component.inputs.constants.d.ts +18 -2
- package/dist/components/component.inputs.constants.d.ts.map +1 -1
- package/dist/{definition-DOQkt6mp.js → definition-5MQbWUXL.js} +12 -12
- package/dist/definition-5MQbWUXL.js.map +1 -0
- package/dist/{definition-CS4RuL8e.js → definition-B66i_lHu.js} +3 -3
- package/dist/{definition-CS4RuL8e.js.map → definition-B66i_lHu.js.map} +1 -1
- package/dist/{definition-eDsz1LSa.js → definition-BNOhKWNT.js} +3 -3
- package/dist/{definition-eDsz1LSa.js.map → definition-BNOhKWNT.js.map} +1 -1
- package/dist/{definition-CGptoEwG.js → definition-BNffWCqm.js} +46 -39
- package/dist/definition-BNffWCqm.js.map +1 -0
- package/dist/{definition-B0EoSD5U.js → definition-BZVoO8bb.js} +3 -3
- package/dist/{definition-B0EoSD5U.js.map → definition-BZVoO8bb.js.map} +1 -1
- package/dist/{definition-B_WnKkA9.js → definition-Ba7J1LGI.js} +2 -2
- package/dist/{definition-B_WnKkA9.js.map → definition-Ba7J1LGI.js.map} +1 -1
- package/dist/{definition-B5pATGjj.js → definition-Bm1ec3cN.js} +3 -3
- package/dist/{definition-B5pATGjj.js.map → definition-Bm1ec3cN.js.map} +1 -1
- package/dist/{definition-D9ZlqgLF.js → definition-BpHv0bRb.js} +2 -2
- package/dist/{definition-D9ZlqgLF.js.map → definition-BpHv0bRb.js.map} +1 -1
- package/dist/{definition-CdcpkNRA.js → definition-CJR0UaGt.js} +3 -3
- package/dist/{definition-CdcpkNRA.js.map → definition-CJR0UaGt.js.map} +1 -1
- package/dist/{definition-CnRhPW66.js → definition-CMvwdXRu.js} +55 -48
- package/dist/definition-CMvwdXRu.js.map +1 -0
- package/dist/{definition-DWIyItYm.js → definition-Ce2VcCyv.js} +5 -5
- package/dist/{definition-DWIyItYm.js.map → definition-Ce2VcCyv.js.map} +1 -1
- package/dist/{definition-D6fsmeL7.js → definition-CfCvupyD.js} +3 -3
- package/dist/{definition-D6fsmeL7.js.map → definition-CfCvupyD.js.map} +1 -1
- package/dist/{definition-b_Q1K06P.js → definition-D1YtBczb.js} +44 -37
- package/dist/definition-D1YtBczb.js.map +1 -0
- package/dist/{definition-YVbooAf6.js → definition-D2bJQDNh.js} +33 -26
- package/dist/definition-D2bJQDNh.js.map +1 -0
- package/dist/{definition-hgg6kcIq.js → definition-D30Z62sw.js} +4 -4
- package/dist/{definition-hgg6kcIq.js.map → definition-D30Z62sw.js.map} +1 -1
- package/dist/{definition-DEqyuC5t.js → definition-D59NL3vt.js} +3 -3
- package/dist/{definition-DEqyuC5t.js.map → definition-D59NL3vt.js.map} +1 -1
- package/dist/{definition-D6c43j2_.js → definition-DIH0gF4I.js} +5 -5
- package/dist/{definition-D6c43j2_.js.map → definition-DIH0gF4I.js.map} +1 -1
- package/dist/{definition-CUA9oFdm.js → definition-DISg7Yca.js} +3 -3
- package/dist/{definition-CUA9oFdm.js.map → definition-DISg7Yca.js.map} +1 -1
- package/dist/definition-DIkjRBmH.js +260 -0
- package/dist/definition-DIkjRBmH.js.map +1 -0
- package/dist/{definition-mP5KhZwN.js → definition-DMI3MDQJ.js} +2 -2
- package/dist/{definition-mP5KhZwN.js.map → definition-DMI3MDQJ.js.map} +1 -1
- package/dist/definition-DOaQylZq.js +281 -0
- package/dist/definition-DOaQylZq.js.map +1 -0
- package/dist/{definition-uwrGYsP0.js → definition-DQP0JMyo.js} +115 -101
- package/dist/definition-DQP0JMyo.js.map +1 -0
- package/dist/{definition-DxTb-MOm.js → definition-Dd4MdyW4.js} +2 -2
- package/dist/{definition-DxTb-MOm.js.map → definition-Dd4MdyW4.js.map} +1 -1
- package/dist/{definition-CJHymHtY.js → definition-DvM-bBHc.js} +4 -4
- package/dist/{definition-CJHymHtY.js.map → definition-DvM-bBHc.js.map} +1 -1
- package/dist/{definition-Dpo-1FJs.js → definition-DwouHcfu.js} +11 -11
- package/dist/definition-DwouHcfu.js.map +1 -0
- package/dist/{definition-DfHOG4Fd.js → definition-HByuRICY.js} +80 -79
- package/dist/definition-HByuRICY.js.map +1 -0
- package/dist/{definition-Bf2gheY1.js → definition-HLAKpAEj.js} +2 -2
- package/dist/{definition-Bf2gheY1.js.map → definition-HLAKpAEj.js.map} +1 -1
- package/dist/{definition-DbspoO9C.js → definition-NZLRzHFa.js} +2 -2
- package/dist/{definition-DbspoO9C.js.map → definition-NZLRzHFa.js.map} +1 -1
- package/dist/{definition-B2TigGb3.js → definition-_hl_uvEW.js} +11 -11
- package/dist/definition-_hl_uvEW.js.map +1 -0
- package/dist/{definition-CQaZAYag.js → definition-luwVk1GE.js} +3 -3
- package/dist/{definition-CQaZAYag.js.map → definition-luwVk1GE.js.map} +1 -1
- package/dist/{definition-DCNv1r9i.js → definition-mz09xu8Q.js} +5 -5
- package/dist/{definition-DCNv1r9i.js.map → definition-mz09xu8Q.js.map} +1 -1
- package/dist/definition-nEosVAA3.js +564 -0
- package/dist/{definition-DLsqkPjT.js.map → definition-nEosVAA3.js.map} +1 -1
- package/dist/{definition-JPgTRMBs.js → definition-vdBo_sz-.js} +3 -3
- package/dist/{definition-JPgTRMBs.js.map → definition-vdBo_sz-.js.map} +1 -1
- package/dist/{dimensionsAndMeasures.utils-z1Fh_wO2.js → dimensionsAndMeasures.utils-DsVzuJ1x.js} +2 -2
- package/dist/{dimensionsAndMeasures.utils-z1Fh_wO2.js.map → dimensionsAndMeasures.utils-DsVzuJ1x.js.map} +1 -1
- package/dist/embeddable-components.json +46 -46
- package/dist/embeddable-theme-0137e.js +1 -1
- package/dist/{formatter.utils-ClBgeuH1.js → formatter.utils-BZMmas2O.js} +2 -2
- package/dist/{formatter.utils-ClBgeuH1.js.map → formatter.utils-BZMmas2O.js.map} +1 -1
- package/dist/{granularity.utils-DqPJsdYT.js → granularity.utils-B2u5dfRk.js} +2 -2
- package/dist/{granularity.utils-DqPJsdYT.js.map → granularity.utils-B2u5dfRk.js.map} +1 -1
- package/dist/index.js +203 -200
- package/dist/index.js.map +1 -1
- package/dist/lines.utils-CEGfmIHB.js.map +1 -1
- package/dist/pies.utils-Bb2EFei6.js +99 -0
- package/dist/pies.utils-Bb2EFei6.js.map +1 -0
- package/dist/{tables.utils-D0oPxjdp.js → tables.utils-CigVmDOc.js} +3 -3
- package/dist/{tables.utils-D0oPxjdp.js.map → tables.utils-CigVmDOc.js.map} +1 -1
- package/dist/{charts.utils-CJLmr9Q8.js → theme.constants-Cl6fOHv-.js} +639 -655
- package/dist/theme.constants-Cl6fOHv-.js.map +1 -0
- package/package.json +1 -2
- package/dist/bars.utils-DG6iNy-i.js +0 -158
- package/dist/bars.utils-DG6iNy-i.js.map +0 -1
- package/dist/charts.utils-CJLmr9Q8.js.map +0 -1
- package/dist/component.inputs.constants-Bf2Ty2En.js.map +0 -1
- package/dist/definition-B2TigGb3.js.map +0 -1
- package/dist/definition-C7um17eU.js +0 -242
- package/dist/definition-C7um17eU.js.map +0 -1
- package/dist/definition-CGptoEwG.js.map +0 -1
- package/dist/definition-CnRhPW66.js.map +0 -1
- package/dist/definition-DLsqkPjT.js +0 -560
- package/dist/definition-DOQkt6mp.js.map +0 -1
- package/dist/definition-DfHOG4Fd.js.map +0 -1
- package/dist/definition-Dpo-1FJs.js.map +0 -1
- package/dist/definition-RYVGlC6K.js +0 -277
- package/dist/definition-RYVGlC6K.js.map +0 -1
- package/dist/definition-YVbooAf6.js.map +0 -1
- package/dist/definition-b_Q1K06P.js.map +0 -1
- package/dist/definition-uwrGYsP0.js.map +0 -1
- package/dist/pies.utils-DyBQ0LjG.js +0 -76
- package/dist/pies.utils-DyBQ0LjG.js.map +0 -1
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { r as v } from "./theme.constants-Cl6fOHv-.js";
|
|
2
|
+
import { g as h, a as F } from "./formatter.utils-BZMmas2O.js";
|
|
3
|
+
import { g as V, a as k, b as D } from "./charts.utils-BEwWG4s2.js";
|
|
4
|
+
import { g as f } from "./styles.utils-C8CnV0SB.js";
|
|
5
|
+
import { t as w } from "./index-B9eYAQkT.js";
|
|
6
|
+
const L = (n, d) => {
|
|
7
|
+
const m = h(d), { data: o = [], dimension: c, groupDimension: e, measure: l } = n, s = [...new Set(o.map((r) => r[c.name]).filter((r) => r != null))];
|
|
8
|
+
s.sort();
|
|
9
|
+
const a = n.axisOrder ? n.axisOrder.filter((r) => s.includes(r)) : s, t = F(e), i = [...new Set(o.map((r) => r[t]))].filter((r) => r != null), u = w(), b = i.map((r, g) => {
|
|
10
|
+
const $ = f({
|
|
11
|
+
dimensionOrMeasure: e,
|
|
12
|
+
theme: d,
|
|
13
|
+
color: "background",
|
|
14
|
+
value: `${e.name}.${r}`,
|
|
15
|
+
index: g,
|
|
16
|
+
chartColors: u
|
|
17
|
+
}), O = f({
|
|
18
|
+
dimensionOrMeasure: e,
|
|
19
|
+
theme: d,
|
|
20
|
+
color: "border",
|
|
21
|
+
value: `${e.name}.${r}`,
|
|
22
|
+
index: g,
|
|
23
|
+
chartColors: u
|
|
24
|
+
});
|
|
25
|
+
return {
|
|
26
|
+
label: m.data(e, r),
|
|
27
|
+
rawLabel: r,
|
|
28
|
+
backgroundColor: $,
|
|
29
|
+
borderColor: O,
|
|
30
|
+
data: a.map((P) => {
|
|
31
|
+
const C = o.find(
|
|
32
|
+
(p) => p[t] === r && p[c.name] === P
|
|
33
|
+
);
|
|
34
|
+
return C ? Number(C[l.name]) : 0;
|
|
35
|
+
})
|
|
36
|
+
};
|
|
37
|
+
});
|
|
38
|
+
return {
|
|
39
|
+
labels: a,
|
|
40
|
+
datasets: b
|
|
41
|
+
};
|
|
42
|
+
}, I = (n, d = v) => {
|
|
43
|
+
if (!n.data)
|
|
44
|
+
return {
|
|
45
|
+
labels: [],
|
|
46
|
+
datasets: [{ data: [] }]
|
|
47
|
+
};
|
|
48
|
+
const m = h(d), o = V(n.data, n.dimension, n.measures, n.maxItems), c = w();
|
|
49
|
+
return {
|
|
50
|
+
labels: o.map((e) => e[n.dimension.name]),
|
|
51
|
+
datasets: n.measures.map((e, l) => {
|
|
52
|
+
const s = f({
|
|
53
|
+
dimensionOrMeasure: e,
|
|
54
|
+
theme: d,
|
|
55
|
+
color: "background",
|
|
56
|
+
value: e.name,
|
|
57
|
+
index: l,
|
|
58
|
+
chartColors: c
|
|
59
|
+
}), a = f({
|
|
60
|
+
dimensionOrMeasure: e,
|
|
61
|
+
theme: d,
|
|
62
|
+
color: "border",
|
|
63
|
+
value: e.name,
|
|
64
|
+
index: l,
|
|
65
|
+
chartColors: c
|
|
66
|
+
});
|
|
67
|
+
return {
|
|
68
|
+
label: m.dimensionOrMeasureTitle(e),
|
|
69
|
+
data: o.map((t) => t[e.name] ?? 0),
|
|
70
|
+
backgroundColor: s,
|
|
71
|
+
borderColor: a
|
|
72
|
+
};
|
|
73
|
+
})
|
|
74
|
+
};
|
|
75
|
+
}, M = (n, d) => {
|
|
76
|
+
const { datasets: m } = n.chart.data, o = n.dataIndex, c = m.reduce((e, l) => {
|
|
77
|
+
const s = l.data[o];
|
|
78
|
+
return e + (s || 0);
|
|
79
|
+
}, 0);
|
|
80
|
+
return d(c);
|
|
81
|
+
}, N = (n, d) => {
|
|
82
|
+
const { onBarClicked: m, measures: o, dimension: c, horizontal: e, data: l } = n, s = h(d);
|
|
83
|
+
return {
|
|
84
|
+
plugins: {
|
|
85
|
+
legend: { position: d.charts.legendPosition ?? "bottom" },
|
|
86
|
+
datalabels: {
|
|
87
|
+
labels: {
|
|
88
|
+
total: {
|
|
89
|
+
formatter: (a, t) => M(
|
|
90
|
+
t,
|
|
91
|
+
(i) => s.data(o[0], i)
|
|
92
|
+
)
|
|
93
|
+
},
|
|
94
|
+
value: {
|
|
95
|
+
formatter: (a, t) => {
|
|
96
|
+
var u;
|
|
97
|
+
const i = o[t.datasetIndex % o.length];
|
|
98
|
+
return (u = i.inputs) != null && u.showValueAsPercentage ? k(Number(a), t.dataset.data) : s.data(i, a);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
tooltip: {
|
|
104
|
+
callbacks: {
|
|
105
|
+
title: (a) => {
|
|
106
|
+
var i;
|
|
107
|
+
const t = (i = a[0]) == null ? void 0 : i.label;
|
|
108
|
+
return s.data(D(c), t);
|
|
109
|
+
},
|
|
110
|
+
label: (a) => {
|
|
111
|
+
var r;
|
|
112
|
+
const t = o[a.datasetIndex % o.length], i = a.raw, u = s.data(t, i);
|
|
113
|
+
let b = "";
|
|
114
|
+
return (r = t.inputs) != null && r.showValueAsPercentage && (b = `(${k(i, a.dataset.data)})`), `${a.dataset.label}: ${u} ${b}`;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
scales: {
|
|
120
|
+
x: {
|
|
121
|
+
ticks: {
|
|
122
|
+
callback: (a) => {
|
|
123
|
+
if (e)
|
|
124
|
+
return s.data(o[0], a);
|
|
125
|
+
if (!l || !l.labels) return;
|
|
126
|
+
const t = l.labels[Number(a)];
|
|
127
|
+
return s.data(c, t);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
y: {
|
|
132
|
+
ticks: {
|
|
133
|
+
callback: (a) => {
|
|
134
|
+
if (!e)
|
|
135
|
+
return s.data(o[0], a);
|
|
136
|
+
if (!l || !l.labels) return;
|
|
137
|
+
const t = l.labels[Number(a)];
|
|
138
|
+
return s.data(c, t);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
onClick: (a, t, i) => {
|
|
144
|
+
var g;
|
|
145
|
+
if (!m) return;
|
|
146
|
+
const u = t[0], b = u ? i.data.labels[u.index] : null, r = u ? (g = i.data.datasets[u.datasetIndex]) == null ? void 0 : g.rawLabel : null;
|
|
147
|
+
m({
|
|
148
|
+
axisDimensionValue: b,
|
|
149
|
+
groupingDimensionValue: r
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
}, _ = (n, d) => {
|
|
154
|
+
const { measures: m, groupDimension: o } = n, c = h(d), e = N(n, d);
|
|
155
|
+
return e.plugins.tooltip = {
|
|
156
|
+
callbacks: {
|
|
157
|
+
...e.plugins.tooltip.callbacks,
|
|
158
|
+
label: (l) => {
|
|
159
|
+
var b;
|
|
160
|
+
const s = m[l.datasetIndex % m.length], a = l.raw, t = c.data(s, a);
|
|
161
|
+
let i = "";
|
|
162
|
+
return (b = s.inputs) != null && b.showValueAsPercentage && (i = `(${k(a, l.dataset.data)})`), `${c.data(
|
|
163
|
+
D(o),
|
|
164
|
+
l.dataset.rawLabel
|
|
165
|
+
)}: ${t} ${i}`;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}, e;
|
|
169
|
+
};
|
|
170
|
+
export {
|
|
171
|
+
N as a,
|
|
172
|
+
L as b,
|
|
173
|
+
_ as c,
|
|
174
|
+
I as g
|
|
175
|
+
};
|
|
176
|
+
//# sourceMappingURL=bars.utils-DR-ga7ps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bars.utils-DR-ga7ps.js","sources":["../src/components/charts/bars/bars.utils.ts"],"sourcesContent":["import { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { Theme } from '../../../theme/theme.types';\nimport { remarkableTheme } from '../../../theme/theme.constants';\nimport { ChartData, ChartOptions } from 'chart.js';\nimport { getThemeFormatter } from '../../../theme/formatter/formatter.utils';\nimport {\n getDatalabelPercentage,\n getDimensionWithoutTruncation,\n groupTailAsOther,\n} from '../charts.utils';\nimport { getDimensionFieldName } from '../../../utils/data.utils';\nimport { getDimensionMeasureColor } from '../../../theme/styles/styles.utils';\nimport { getChartColors } from '@embeddable.com/remarkable-ui';\nimport { Context } from 'chartjs-plugin-datalabels';\n\nexport const getBarStackedChartProData = (\n props: {\n data: DataResponse['data'];\n dimension: Dimension;\n groupDimension: Dimension;\n measure: Measure;\n axisOrder?: string[];\n },\n theme: Theme,\n): ChartData<'bar'> => {\n const themeFormatter = getThemeFormatter(theme);\n const { data = [], dimension, groupDimension, measure } = props;\n\n const uniqueAxis = [...new Set(data.map((d) => d[dimension.name]).filter((d) => d != null))];\n uniqueAxis.sort();\n\n const axis = props.axisOrder ? props.axisOrder.filter((v) => uniqueAxis.includes(v)) : uniqueAxis;\n const groupDimensionName = getDimensionFieldName(groupDimension);\n const groupBy = [...new Set(data.map((d) => d[groupDimensionName]))].filter((d) => d != null);\n\n const chartColors = getChartColors();\n const datasets = groupBy.map((groupByItem, index) => {\n const backgroundColor = getDimensionMeasureColor({\n dimensionOrMeasure: groupDimension,\n theme,\n color: 'background',\n value: `${groupDimension.name}.${groupByItem}`,\n index,\n chartColors,\n });\n\n const borderColor = getDimensionMeasureColor({\n dimensionOrMeasure: groupDimension,\n theme,\n color: 'border',\n value: `${groupDimension.name}.${groupByItem}`,\n index,\n chartColors,\n });\n\n return {\n label: themeFormatter.data(groupDimension, groupByItem),\n rawLabel: groupByItem,\n backgroundColor,\n borderColor,\n data: axis.map((axisItem) => {\n const record = data.find(\n (d) => d[groupDimensionName] === groupByItem && d[dimension.name] === axisItem,\n );\n return record ? Number(record[measure.name]) : 0;\n }),\n };\n });\n\n return {\n labels: axis,\n datasets,\n };\n};\n\nexport const getBarChartProData = (\n props: {\n data: DataResponse['data'];\n dimension: Dimension;\n measures: Measure[];\n maxItems?: number;\n },\n theme: Theme = remarkableTheme,\n): ChartData<'bar'> => {\n if (!props.data) {\n return {\n labels: [],\n datasets: [{ data: [] }],\n };\n }\n\n const themeFormatter = getThemeFormatter(theme);\n const groupedData = groupTailAsOther(props.data, props.dimension, props.measures, props.maxItems);\n const chartColors = getChartColors();\n\n return {\n labels: groupedData.map((item) => {\n return item[props.dimension.name];\n }),\n datasets: props.measures.map((measure, index) => {\n const backgroundColor = getDimensionMeasureColor({\n dimensionOrMeasure: measure,\n theme,\n color: 'background',\n value: measure.name,\n index,\n chartColors,\n });\n\n const borderColor = getDimensionMeasureColor({\n dimensionOrMeasure: measure,\n theme,\n color: 'border',\n value: measure.name,\n index,\n chartColors,\n });\n\n return {\n label: themeFormatter.dimensionOrMeasureTitle(measure),\n data: groupedData.map((item) => item[measure.name] ?? 0),\n backgroundColor,\n borderColor,\n };\n }),\n };\n};\n\nconst getBarChartProDatalabelTotalFormatter = (\n context: Context,\n formatter: (value: number) => string,\n) => {\n const { datasets } = context.chart.data;\n const i = context.dataIndex;\n\n const total = datasets.reduce((sum, ds) => {\n const val = ds.data[i] as number;\n return sum + (val || 0);\n }, 0);\n\n return formatter(total);\n};\n\nexport const getBarChartProOptions = (\n options: {\n onBarClicked?: (args: {\n axisDimensionValue: string | null;\n groupingDimensionValue: string | null;\n }) => void;\n measures: Measure[];\n dimension: Dimension;\n horizontal: boolean;\n data: ChartData<'bar'>;\n },\n theme: Theme,\n): Partial<ChartOptions<'bar'>> => {\n const { onBarClicked, measures, dimension, horizontal, data } = options;\n\n const themeFormatter = getThemeFormatter(theme);\n return {\n plugins: {\n legend: { position: theme.charts.legendPosition ?? 'bottom' },\n datalabels: {\n labels: {\n total: {\n formatter: (_value: string | number, context: Context) =>\n getBarChartProDatalabelTotalFormatter(context, (value: number) =>\n themeFormatter.data(measures[0]!, value),\n ),\n },\n value: {\n formatter: (value: string | number, context) => {\n const measure = measures[context.datasetIndex % measures.length]!;\n\n if (measure.inputs?.showValueAsPercentage) {\n return getDatalabelPercentage(Number(value), context.dataset.data);\n }\n return themeFormatter.data(measure, value);\n },\n },\n },\n },\n tooltip: {\n callbacks: {\n title: (context) => {\n const label = context[0]?.label;\n return themeFormatter.data(getDimensionWithoutTruncation(dimension), label);\n },\n\n label: (context) => {\n const measure = measures[context.datasetIndex % measures.length]!;\n const raw = context.raw as number;\n\n const measureValue = themeFormatter.data(measure, raw);\n\n let percentage = '';\n if (measure.inputs?.showValueAsPercentage) {\n percentage = `(${getDatalabelPercentage(raw, context.dataset.data)})`;\n }\n\n return `${context.dataset.label}: ${measureValue} ${percentage}`;\n },\n },\n },\n },\n scales: {\n x: {\n ticks: {\n callback: (value) => {\n if (horizontal) {\n return themeFormatter.data(measures[0]!, value);\n }\n\n if (!data || !data.labels) return undefined;\n\n const label = data.labels[Number(value)] as string;\n\n return themeFormatter.data(dimension, label);\n },\n },\n },\n y: {\n ticks: {\n callback: (value) => {\n if (!horizontal) {\n return themeFormatter.data(measures[0]!, value);\n }\n if (!data || !data.labels) return undefined;\n const label = data.labels[Number(value)] as string;\n return themeFormatter.data(dimension, label);\n },\n },\n },\n },\n onClick: (_event, elements, chart) => {\n if (!onBarClicked) return;\n\n const element = elements[0];\n const axisDimensionValue = (element ? chart.data.labels![element.index] : null) as\n | string\n | null;\n const groupingDimensionValue = (\n element\n ? (chart.data.datasets[element.datasetIndex] as { rawLabel?: string | null })?.rawLabel\n : null\n ) as string | null;\n\n onBarClicked({\n axisDimensionValue,\n groupingDimensionValue,\n });\n },\n };\n};\n\nexport const getBarStackedChartProOptions = (\n options: {\n onBarClicked?: (args: {\n axisDimensionValue: string | null;\n groupingDimensionValue: string | null;\n }) => void;\n measures: Measure[];\n dimension: Dimension;\n groupDimension: Dimension;\n horizontal: boolean;\n data: ChartData<'bar'>;\n },\n theme: Theme,\n): Partial<ChartOptions<'bar'>> => {\n const { measures, groupDimension } = options;\n const themeFormatter = getThemeFormatter(theme);\n const base = getBarChartProOptions(options, theme);\n\n base.plugins!.tooltip = {\n callbacks: {\n ...base.plugins!.tooltip!.callbacks,\n label: (context) => {\n const measure = measures[context.datasetIndex % measures.length]!;\n const raw = context.raw as number;\n const measureValue = themeFormatter.data(measure, raw);\n\n let percentage = '';\n if (measure.inputs?.showValueAsPercentage) {\n percentage = `(${getDatalabelPercentage(raw, context.dataset.data)})`;\n }\n\n const label = themeFormatter.data(\n getDimensionWithoutTruncation(groupDimension),\n (context.dataset as { rawLabel?: string }).rawLabel,\n );\n return `${label}: ${measureValue} ${percentage}`;\n },\n },\n };\n\n return base;\n};\n"],"names":["getBarStackedChartProData","props","theme","themeFormatter","getThemeFormatter","data","dimension","groupDimension","measure","uniqueAxis","d","axis","v","groupDimensionName","getDimensionFieldName","groupBy","chartColors","getChartColors","datasets","groupByItem","index","backgroundColor","getDimensionMeasureColor","borderColor","axisItem","record","getBarChartProData","remarkableTheme","groupedData","groupTailAsOther","item","getBarChartProDatalabelTotalFormatter","context","formatter","i","total","sum","ds","val","getBarChartProOptions","options","onBarClicked","measures","horizontal","_value","value","_a","getDatalabelPercentage","label","getDimensionWithoutTruncation","raw","measureValue","percentage","_event","elements","chart","element","axisDimensionValue","groupingDimensionValue","getBarStackedChartProOptions","base"],"mappings":";;;;;AAeO,MAAMA,IAA4B,CACvCC,GAOAC,MACqB;AACrB,QAAMC,IAAiBC,EAAkBF,CAAK,GACxC,EAAE,MAAAG,IAAO,CAAA,GAAI,WAAAC,GAAW,gBAAAC,GAAgB,SAAAC,MAAYP,GAEpDQ,IAAa,CAAC,GAAG,IAAI,IAAIJ,EAAK,IAAI,CAACK,MAAMA,EAAEJ,EAAU,IAAI,CAAC,EAAE,OAAO,CAACI,MAAMA,KAAK,IAAI,CAAC,CAAC;AAC3F,EAAAD,EAAW,KAAA;AAEX,QAAME,IAAOV,EAAM,YAAYA,EAAM,UAAU,OAAO,CAACW,MAAMH,EAAW,SAASG,CAAC,CAAC,IAAIH,GACjFI,IAAqBC,EAAsBP,CAAc,GACzDQ,IAAU,CAAC,GAAG,IAAI,IAAIV,EAAK,IAAI,CAACK,MAAMA,EAAEG,CAAkB,CAAC,CAAC,CAAC,EAAE,OAAO,CAACH,MAAMA,KAAK,IAAI,GAEtFM,IAAcC,EAAA,GACdC,IAAWH,EAAQ,IAAI,CAACI,GAAaC,MAAU;AACnD,UAAMC,IAAkBC,EAAyB;AAAA,MAC/C,oBAAoBf;AAAA,MACpB,OAAAL;AAAA,MACA,OAAO;AAAA,MACP,OAAO,GAAGK,EAAe,IAAI,IAAIY,CAAW;AAAA,MAC5C,OAAAC;AAAA,MACA,aAAAJ;AAAA,IAAA,CACD,GAEKO,IAAcD,EAAyB;AAAA,MAC3C,oBAAoBf;AAAA,MACpB,OAAAL;AAAA,MACA,OAAO;AAAA,MACP,OAAO,GAAGK,EAAe,IAAI,IAAIY,CAAW;AAAA,MAC5C,OAAAC;AAAA,MACA,aAAAJ;AAAA,IAAA,CACD;AAED,WAAO;AAAA,MACL,OAAOb,EAAe,KAAKI,GAAgBY,CAAW;AAAA,MACtD,UAAUA;AAAA,MACV,iBAAAE;AAAA,MACA,aAAAE;AAAA,MACA,MAAMZ,EAAK,IAAI,CAACa,MAAa;AAC3B,cAAMC,IAASpB,EAAK;AAAA,UAClB,CAACK,MAAMA,EAAEG,CAAkB,MAAMM,KAAeT,EAAEJ,EAAU,IAAI,MAAMkB;AAAA,QAAA;AAExE,eAAOC,IAAS,OAAOA,EAAOjB,EAAQ,IAAI,CAAC,IAAI;AAAA,MACjD,CAAC;AAAA,IAAA;AAAA,EAEL,CAAC;AAED,SAAO;AAAA,IACL,QAAQG;AAAA,IACR,UAAAO;AAAA,EAAA;AAEJ,GAEaQ,IAAqB,CAChCzB,GAMAC,IAAeyB,MACM;AACrB,MAAI,CAAC1B,EAAM;AACT,WAAO;AAAA,MACL,QAAQ,CAAA;AAAA,MACR,UAAU,CAAC,EAAE,MAAM,IAAI;AAAA,IAAA;AAI3B,QAAME,IAAiBC,EAAkBF,CAAK,GACxC0B,IAAcC,EAAiB5B,EAAM,MAAMA,EAAM,WAAWA,EAAM,UAAUA,EAAM,QAAQ,GAC1Fe,IAAcC,EAAA;AAEpB,SAAO;AAAA,IACL,QAAQW,EAAY,IAAI,CAACE,MAChBA,EAAK7B,EAAM,UAAU,IAAI,CACjC;AAAA,IACD,UAAUA,EAAM,SAAS,IAAI,CAACO,GAASY,MAAU;AAC/C,YAAMC,IAAkBC,EAAyB;AAAA,QAC/C,oBAAoBd;AAAA,QACpB,OAAAN;AAAA,QACA,OAAO;AAAA,QACP,OAAOM,EAAQ;AAAA,QACf,OAAAY;AAAA,QACA,aAAAJ;AAAA,MAAA,CACD,GAEKO,IAAcD,EAAyB;AAAA,QAC3C,oBAAoBd;AAAA,QACpB,OAAAN;AAAA,QACA,OAAO;AAAA,QACP,OAAOM,EAAQ;AAAA,QACf,OAAAY;AAAA,QACA,aAAAJ;AAAA,MAAA,CACD;AAED,aAAO;AAAA,QACL,OAAOb,EAAe,wBAAwBK,CAAO;AAAA,QACrD,MAAMoB,EAAY,IAAI,CAACE,MAASA,EAAKtB,EAAQ,IAAI,KAAK,CAAC;AAAA,QACvD,iBAAAa;AAAA,QACA,aAAAE;AAAA,MAAA;AAAA,IAEJ,CAAC;AAAA,EAAA;AAEL,GAEMQ,IAAwC,CAC5CC,GACAC,MACG;AACH,QAAM,EAAE,UAAAf,EAAA,IAAac,EAAQ,MAAM,MAC7BE,IAAIF,EAAQ,WAEZG,IAAQjB,EAAS,OAAO,CAACkB,GAAKC,MAAO;AACzC,UAAMC,IAAMD,EAAG,KAAKH,CAAC;AACrB,WAAOE,KAAOE,KAAO;AAAA,EACvB,GAAG,CAAC;AAEJ,SAAOL,EAAUE,CAAK;AACxB,GAEaI,IAAwB,CACnCC,GAUAtC,MACiC;AACjC,QAAM,EAAE,cAAAuC,GAAc,UAAAC,GAAU,WAAApC,GAAW,YAAAqC,GAAY,MAAAtC,MAASmC,GAE1DrC,IAAiBC,EAAkBF,CAAK;AAC9C,SAAO;AAAA,IACL,SAAS;AAAA,MACP,QAAQ,EAAE,UAAUA,EAAM,OAAO,kBAAkB,SAAA;AAAA,MACnD,YAAY;AAAA,QACV,QAAQ;AAAA,UACN,OAAO;AAAA,YACL,WAAW,CAAC0C,GAAyBZ,MACnCD;AAAA,cAAsCC;AAAA,cAAS,CAACa,MAC9C1C,EAAe,KAAKuC,EAAS,CAAC,GAAIG,CAAK;AAAA,YAAA;AAAA,UACzC;AAAA,UAEJ,OAAO;AAAA,YACL,WAAW,CAACA,GAAwBb,MAAY;;AAC9C,oBAAMxB,IAAUkC,EAASV,EAAQ,eAAeU,EAAS,MAAM;AAE/D,sBAAII,IAAAtC,EAAQ,WAAR,QAAAsC,EAAgB,wBACXC,EAAuB,OAAOF,CAAK,GAAGb,EAAQ,QAAQ,IAAI,IAE5D7B,EAAe,KAAKK,GAASqC,CAAK;AAAA,YAC3C;AAAA,UAAA;AAAA,QACF;AAAA,MACF;AAAA,MAEF,SAAS;AAAA,QACP,WAAW;AAAA,UACT,OAAO,CAACb,MAAY;;AAClB,kBAAMgB,KAAQF,IAAAd,EAAQ,CAAC,MAAT,gBAAAc,EAAY;AAC1B,mBAAO3C,EAAe,KAAK8C,EAA8B3C,CAAS,GAAG0C,CAAK;AAAA,UAC5E;AAAA,UAEA,OAAO,CAAChB,MAAY;;AAClB,kBAAMxB,IAAUkC,EAASV,EAAQ,eAAeU,EAAS,MAAM,GACzDQ,IAAMlB,EAAQ,KAEdmB,IAAehD,EAAe,KAAKK,GAAS0C,CAAG;AAErD,gBAAIE,IAAa;AACjB,oBAAIN,IAAAtC,EAAQ,WAAR,QAAAsC,EAAgB,0BAClBM,IAAa,IAAIL,EAAuBG,GAAKlB,EAAQ,QAAQ,IAAI,CAAC,MAG7D,GAAGA,EAAQ,QAAQ,KAAK,KAAKmB,CAAY,IAAIC,CAAU;AAAA,UAChE;AAAA,QAAA;AAAA,MACF;AAAA,IACF;AAAA,IAEF,QAAQ;AAAA,MACN,GAAG;AAAA,QACD,OAAO;AAAA,UACL,UAAU,CAACP,MAAU;AACnB,gBAAIF;AACF,qBAAOxC,EAAe,KAAKuC,EAAS,CAAC,GAAIG,CAAK;AAGhD,gBAAI,CAACxC,KAAQ,CAACA,EAAK,OAAQ;AAE3B,kBAAM2C,IAAQ3C,EAAK,OAAO,OAAOwC,CAAK,CAAC;AAEvC,mBAAO1C,EAAe,KAAKG,GAAW0C,CAAK;AAAA,UAC7C;AAAA,QAAA;AAAA,MACF;AAAA,MAEF,GAAG;AAAA,QACD,OAAO;AAAA,UACL,UAAU,CAACH,MAAU;AACnB,gBAAI,CAACF;AACH,qBAAOxC,EAAe,KAAKuC,EAAS,CAAC,GAAIG,CAAK;AAEhD,gBAAI,CAACxC,KAAQ,CAACA,EAAK,OAAQ;AAC3B,kBAAM2C,IAAQ3C,EAAK,OAAO,OAAOwC,CAAK,CAAC;AACvC,mBAAO1C,EAAe,KAAKG,GAAW0C,CAAK;AAAA,UAC7C;AAAA,QAAA;AAAA,MACF;AAAA,IACF;AAAA,IAEF,SAAS,CAACK,GAAQC,GAAUC,MAAU;;AACpC,UAAI,CAACd,EAAc;AAEnB,YAAMe,IAAUF,EAAS,CAAC,GACpBG,IAAsBD,IAAUD,EAAM,KAAK,OAAQC,EAAQ,KAAK,IAAI,MAGpEE,IACJF,KACKV,IAAAS,EAAM,KAAK,SAASC,EAAQ,YAAY,MAAxC,gBAAAV,EAA4E,WAC7E;AAGN,MAAAL,EAAa;AAAA,QACX,oBAAAgB;AAAA,QACA,wBAAAC;AAAA,MAAA,CACD;AAAA,IACH;AAAA,EAAA;AAEJ,GAEaC,IAA+B,CAC1CnB,GAWAtC,MACiC;AACjC,QAAM,EAAE,UAAAwC,GAAU,gBAAAnC,EAAA,IAAmBiC,GAC/BrC,IAAiBC,EAAkBF,CAAK,GACxC0D,IAAOrB,EAAsBC,GAAStC,CAAK;AAEjD,SAAA0D,EAAK,QAAS,UAAU;AAAA,IACtB,WAAW;AAAA,MACT,GAAGA,EAAK,QAAS,QAAS;AAAA,MAC1B,OAAO,CAAC5B,MAAY;;AAClB,cAAMxB,IAAUkC,EAASV,EAAQ,eAAeU,EAAS,MAAM,GACzDQ,IAAMlB,EAAQ,KACdmB,IAAehD,EAAe,KAAKK,GAAS0C,CAAG;AAErD,YAAIE,IAAa;AACjB,gBAAIN,IAAAtC,EAAQ,WAAR,QAAAsC,EAAgB,0BAClBM,IAAa,IAAIL,EAAuBG,GAAKlB,EAAQ,QAAQ,IAAI,CAAC,MAO7D,GAJO7B,EAAe;AAAA,UAC3B8C,EAA8B1C,CAAc;AAAA,UAC3CyB,EAAQ,QAAkC;AAAA,QAAA,CAE9B,KAAKmB,CAAY,IAAIC,CAAU;AAAA,MAChD;AAAA,IAAA;AAAA,EACF,GAGKQ;AACT;"}
|
|
@@ -3,7 +3,7 @@ import { i as B, q as C } from "./quarterOfYear-d8ZftuS6.js";
|
|
|
3
3
|
import { v as E } from "./index-B9eYAQkT.js";
|
|
4
4
|
import { useTheme as M } from "@embeddable.com/react";
|
|
5
5
|
import { useMemo as W } from "react";
|
|
6
|
-
import { d as Z } from "./component.inputs.constants-
|
|
6
|
+
import { d as Z } from "./component.inputs.constants-DnFrZzR7.js";
|
|
7
7
|
var O = { exports: {} }, b = O.exports, G;
|
|
8
8
|
function z() {
|
|
9
9
|
return G || (G = 1, (function(v, d) {
|
|
@@ -67,4 +67,4 @@ function P(v) {
|
|
|
67
67
|
export {
|
|
68
68
|
P as u
|
|
69
69
|
};
|
|
70
|
-
//# sourceMappingURL=charts.fillGaps.hooks-
|
|
70
|
+
//# sourceMappingURL=charts.fillGaps.hooks-DgH30vXI.js.map
|
package/dist/{charts.fillGaps.hooks-CPpTEo01.js.map → charts.fillGaps.hooks-DgH30vXI.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"charts.fillGaps.hooks-
|
|
1
|
+
{"version":3,"file":"charts.fillGaps.hooks-DgH30vXI.js","sources":["../node_modules/dayjs/plugin/isSameOrBefore.js","../src/components/charts/charts.fillGaps.hooks.ts"],"sourcesContent":["!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isSameOrBefore=i()}(this,(function(){\"use strict\";return function(e,i){i.prototype.isSameOrBefore=function(e,i){return this.isSame(e,i)||this.isBefore(e,i)}}}));","import { DataResponse, Dimension, TimeRange } from '@embeddable.com/core';\nimport dayjs, { QUnitType } from 'dayjs';\nimport isoWeek from 'dayjs/plugin/isoWeek.js';\nimport utc from 'dayjs/plugin/utc.js';\nimport isSameOrBefore from 'dayjs/plugin/isSameOrBefore.js';\nimport { Theme } from '../../theme/theme.types';\nimport { useTheme } from '@embeddable.com/react';\nimport { useMemo } from 'react';\nimport quarterOfYear from 'dayjs/plugin/quarterOfYear.js';\nimport { defaultGranularitySelectFieldOptions } from '../../theme/defaults/defaults.GranularityOptions.constants';\n\ndayjs.extend(utc);\ndayjs.extend(isoWeek);\ndayjs.extend(isSameOrBefore);\ndayjs.extend(quarterOfYear);\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype DataRecord = { [key: string]: any };\n\ntype UseFillGapsProps = {\n results: DataResponse | undefined;\n dimension: Dimension;\n orderDirection?: 'asc' | 'desc';\n externalDateBounds?: TimeRange;\n};\n\nexport function useFillGaps(props: UseFillGapsProps): DataResponse {\n const theme = useTheme() as Theme;\n const { results, dimension, orderDirection = 'asc', externalDateBounds } = props;\n\n const processed = useMemo(() => {\n const granularity = dimension.inputs?.granularity;\n const dimensionName = dimension.name;\n const dateBoundsTmp: TimeRange = dimension.inputs?.dateBounds;\n\n const knownGranularities = defaultGranularitySelectFieldOptions.map(\n (opt) => opt.value as string,\n );\n\n if (\n !granularity ||\n !knownGranularities.includes(granularity) ||\n !dimensionName ||\n !results ||\n results.isLoading ||\n results.data?.length === 0\n ) {\n return results;\n }\n\n const dateBounds = dateBoundsTmp?.relativeTimeString\n ? theme.defaults.dateRangesOptions\n .find((option) => option.value === dateBoundsTmp?.relativeTimeString)\n ?.getRange(theme.clientContext.timezone)\n : dateBoundsTmp;\n\n if (dimension.nativeType !== 'time') return results;\n\n const sortedResults = [...(results?.data ?? [])].sort((a, b) => {\n const aVal = a[dimensionName];\n const bVal = b[dimensionName];\n if (aVal == null) return 1;\n if (bVal == null) return -1;\n return dayjs.utc(aVal).diff(dayjs.utc(bVal));\n });\n\n // Determine the full date range even if data is empty\n const from = dayjs.utc(\n externalDateBounds?.from ?? dateBounds?.from ?? sortedResults[0]?.[dimensionName],\n );\n\n const to = dayjs.utc(\n externalDateBounds?.to ??\n dateBounds?.to ??\n sortedResults[sortedResults.length - 1]?.[dimensionName] ??\n [...sortedResults].reverse().find((item) => item?.[dimensionName] != null)?.[dimensionName],\n );\n\n // If we *still* don’t have valid date bounds, bail out safely\n if (!from.isValid() || !to.isValid()) {\n return { ...results, data: [] };\n }\n\n const recordsByDate = new Map<string, DataRecord[]>();\n for (const record of sortedResults) {\n const value = record[dimensionName];\n if (value == null) continue;\n const key = dayjs.utc(value).toISOString().split('Z')[0]!;\n const arr = recordsByDate.get(key) ?? [];\n arr.push(record);\n recordsByDate.set(key, arr);\n }\n\n const filled: DataRecord[] = [];\n let current = from.startOf((granularity === 'week' ? 'isoWeek' : granularity) as QUnitType);\n\n while (current.isSameOrBefore(to)) {\n const key = current.toISOString().split('Z')[0]!;\n const records = recordsByDate.get(key);\n\n if (records && records.length > 0) {\n filled.push(...records);\n } else {\n filled.push({ [dimensionName]: key });\n }\n\n current = current.add(1, granularity as QUnitType);\n }\n\n if (orderDirection === 'desc') {\n filled.reverse();\n }\n\n return {\n ...results,\n data: filled,\n };\n }, [results, dimension, orderDirection, theme]);\n\n return processed as DataResponse;\n}\n"],"names":["e","i","module","this","dayjs","utc","isoWeek","isSameOrBefore","quarterOfYear","useFillGaps","props","theme","useTheme","results","dimension","orderDirection","externalDateBounds","useMemo","granularity","_a","dimensionName","dateBoundsTmp","_b","knownGranularities","defaultGranularitySelectFieldOptions","opt","_c","dateBounds","_d","option","sortedResults","a","b","aVal","bVal","from","_e","to","_f","_g","item","recordsByDate","record","value","key","arr","filled","current","records"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { i as l } from "./component.utils-Dua9clQJ.js";
|
|
2
|
+
const p = (e) => ({
|
|
3
|
+
...e,
|
|
4
|
+
inputs: { ...e.inputs, maxCharacters: null }
|
|
5
|
+
}), h = (e = [], n, r, t) => {
|
|
6
|
+
if (!t || e.length <= t) return e;
|
|
7
|
+
const o = e.slice(0, t - 1), c = e.slice(t - 1), a = {
|
|
8
|
+
[n.name]: l.t("common.other")
|
|
9
|
+
};
|
|
10
|
+
for (const s of r)
|
|
11
|
+
a[s.name] = c.reduce(
|
|
12
|
+
(u, i) => u + parseFloat(i[s.name] ?? "0"),
|
|
13
|
+
0
|
|
14
|
+
);
|
|
15
|
+
return [...o, a];
|
|
16
|
+
}, f = (e, n) => {
|
|
17
|
+
const r = n.reduce((t, o) => t + Number.parseFloat(o), 0);
|
|
18
|
+
return r === 0 ? "0%" : `${Number.parseFloat((e / r * 100).toFixed(2))}%`;
|
|
19
|
+
};
|
|
20
|
+
export {
|
|
21
|
+
f as a,
|
|
22
|
+
p as b,
|
|
23
|
+
h as g
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=charts.utils-BEwWG4s2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"charts.utils-BEwWG4s2.js","sources":["../src/components/charts/charts.utils.ts"],"sourcesContent":["import { DataResponse, Dimension, Measure } from '@embeddable.com/core';\n\nimport { i18n } from '../../theme/i18n/i18n';\n\nexport const getDimensionWithoutTruncation = (dimension: Dimension): Dimension => ({\n ...dimension,\n inputs: { ...dimension.inputs, maxCharacters: null },\n});\n\nexport const groupTailAsOther = (\n data: DataResponse['data'] = [],\n dimension: Dimension,\n measures: Measure[],\n maxItems?: number,\n) => {\n if (!maxItems || data.length <= maxItems) return data;\n\n const head = data.slice(0, maxItems - 1);\n const tail = data.slice(maxItems - 1);\n\n const aggregatedRow: Record<string, unknown> = {\n [dimension.name]: i18n.t('common.other'),\n };\n\n for (const measure of measures) {\n aggregatedRow[measure.name] = tail.reduce(\n (sum, row) => sum + parseFloat(row[measure.name] ?? '0'),\n 0,\n );\n }\n\n return [...head, aggregatedRow];\n};\n\nexport const getDatalabelPercentage = (value: number, data: unknown[]): string => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const total = data.reduce((sum: number, v: any) => sum + Number.parseFloat(v), 0);\n if (total === 0) return '0%';\n return `${Number.parseFloat(((value / total) * 100).toFixed(2))}%`;\n};\n"],"names":["getDimensionWithoutTruncation","dimension","groupTailAsOther","data","measures","maxItems","head","tail","aggregatedRow","i18n","measure","sum","row","getDatalabelPercentage","value","total","v"],"mappings":";AAIO,MAAMA,IAAgC,CAACC,OAAqC;AAAA,EACjF,GAAGA;AAAA,EACH,QAAQ,EAAE,GAAGA,EAAU,QAAQ,eAAe,KAAA;AAChD,IAEaC,IAAmB,CAC9BC,IAA6B,CAAA,GAC7BF,GACAG,GACAC,MACG;AACH,MAAI,CAACA,KAAYF,EAAK,UAAUE,EAAU,QAAOF;AAEjD,QAAMG,IAAOH,EAAK,MAAM,GAAGE,IAAW,CAAC,GACjCE,IAAOJ,EAAK,MAAME,IAAW,CAAC,GAE9BG,IAAyC;AAAA,IAC7C,CAACP,EAAU,IAAI,GAAGQ,EAAK,EAAE,cAAc;AAAA,EAAA;AAGzC,aAAWC,KAAWN;AACpB,IAAAI,EAAcE,EAAQ,IAAI,IAAIH,EAAK;AAAA,MACjC,CAACI,GAAKC,MAAQD,IAAM,WAAWC,EAAIF,EAAQ,IAAI,KAAK,GAAG;AAAA,MACvD;AAAA,IAAA;AAIJ,SAAO,CAAC,GAAGJ,GAAME,CAAa;AAChC,GAEaK,IAAyB,CAACC,GAAeX,MAA4B;AAEhF,QAAMY,IAAQZ,EAAK,OAAO,CAACQ,GAAaK,MAAWL,IAAM,OAAO,WAAWK,CAAC,GAAG,CAAC;AAChF,SAAID,MAAU,IAAU,OACjB,GAAG,OAAO,YAAaD,IAAQC,IAAS,KAAK,QAAQ,CAAC,CAAC,CAAC;AACjE;"}
|