@embeddable.com/remarkable-pro 0.0.23 → 0.0.25
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 +5 -5
- package/dist/BarChartDefaultHorizontalPro.js.map +1 -1
- package/dist/BarChartDefaultPro.js +5 -5
- package/dist/BarChartDefaultPro.js.map +1 -1
- package/dist/BarChartGroupedHorizontalPro.js +4 -4
- package/dist/BarChartGroupedPro.js +4 -4
- package/dist/BarChartStackedHorizontalPro.js +4 -4
- package/dist/BarChartStackedPro.js +4 -4
- package/dist/{ChartCard-B3B1rFYh.js → ChartCard-BHPN4_tz.js} +22 -22
- package/dist/{ChartCard-B3B1rFYh.js.map → ChartCard-BHPN4_tz.js.map} +1 -1
- package/dist/{Color.type.emb-sebikYGW.js → Color.type.emb-DWdIUAm5.js} +2600 -2590
- package/dist/{Color.type.emb-sebikYGW.js.map → Color.type.emb-DWdIUAm5.js.map} +1 -1
- package/dist/ColorEditor.js +1 -1
- package/dist/ComparisonPeriodSelectFieldPro.js +3 -3
- package/dist/DateRangePickerCustomPro.js +10 -9
- package/dist/DateRangePickerCustomPro.js.map +1 -1
- package/dist/DateRangeSelectFieldPro.js +3 -3
- package/dist/DonutChartPro.js +4 -4
- package/dist/DonutLabelChartPro.js +4 -4
- package/dist/{EditorCard-DpSCsmZJ.js → EditorCard-ZXwl5-DV.js} +3 -3
- package/dist/{EditorCard-DpSCsmZJ.js.map → EditorCard-ZXwl5-DV.js.map} +1 -1
- package/dist/GranularitySelectFieldPro.js +20 -19
- package/dist/GranularitySelectFieldPro.js.map +1 -1
- package/dist/HeatMapPro.js +4 -4
- package/dist/{IconCalendarFilled-Bfm3jkzE.js → IconCalendarFilled-Bl7kPqxG.js} +2 -2
- package/dist/{IconCalendarFilled-Bfm3jkzE.js.map → IconCalendarFilled-Bl7kPqxG.js.map} +1 -1
- package/dist/KpiChartNumberComparisonPro.js +4 -4
- package/dist/KpiChartNumberPro.js +4 -4
- package/dist/LineChartComparisonDefaultPro.js +4 -4
- package/dist/LineChartDefaultPro.js +4 -4
- package/dist/LineChartGroupedPro.js +4 -4
- package/dist/MultiSelectFieldPro.js +4 -4
- package/dist/PieChartPro.js +4 -4
- package/dist/PivotTablePro.js +4 -4
- package/dist/SingleSelectFieldPro.js +4 -4
- package/dist/TableChartPaginated.js +4 -4
- package/dist/TableScrollable.js +17 -17
- package/dist/bars.utils-DLqiVSYV.js +154 -0
- package/dist/bars.utils-DLqiVSYV.js.map +1 -0
- package/dist/{charts.utils-udVhj9f6.js → charts.utils-lvlkFPJk.js} +4 -4
- package/dist/{charts.utils-udVhj9f6.js.map → charts.utils-lvlkFPJk.js.map} +1 -1
- package/dist/{component.inputs.constants-Ds7YpNhT.js → component.inputs.constants-DO_jX-yc.js} +43 -43
- package/dist/{component.inputs.constants-Ds7YpNhT.js.map → component.inputs.constants-DO_jX-yc.js.map} +1 -1
- package/dist/components/charts/bars/bars.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.map +1 -1
- package/dist/components/charts/pies/pies.utils.d.ts.map +1 -1
- package/dist/components/charts/tables/tables.utils.d.ts.map +1 -1
- package/dist/components/editors/ComparisonPeriodSelectFieldPro/index.d.ts.map +1 -1
- package/dist/components/editors/GranularitySelectFieldPro/index.d.ts.map +1 -1
- package/dist/components/editors/MultiSelectFieldPro/index.d.ts.map +1 -1
- package/dist/components/editors/SingleSelectFieldPro/index.d.ts.map +1 -1
- package/dist/components/editors/dates/DateRangePickerCustomPro/index.d.ts.map +1 -1
- package/dist/components/editors/dates/DateRangePickerPresetsPro/index.d.ts.map +1 -1
- package/dist/embeddable-components.json +28 -28
- package/dist/{formatter.utils-tS15PLXn.js → formatter.utils-CBCUxVH8.js} +2 -2
- package/dist/{formatter.utils-tS15PLXn.js.map → formatter.utils-CBCUxVH8.js.map} +1 -1
- package/dist/{index--Dbq1zrZ.js → index-0eDJ_Ho5.js} +5 -5
- package/dist/{index--Dbq1zrZ.js.map → index-0eDJ_Ho5.js.map} +1 -1
- package/dist/index-BRX2mrGM.js +124 -0
- package/dist/index-BRX2mrGM.js.map +1 -0
- package/dist/{index-CbL0nET2.js → index-BRuc7lF2.js} +5 -5
- package/dist/{index-CbL0nET2.js.map → index-BRuc7lF2.js.map} +1 -1
- package/dist/{index-t7YCtFvf.js → index-BSK_5Rq3.js} +5 -5
- package/dist/{index-t7YCtFvf.js.map → index-BSK_5Rq3.js.map} +1 -1
- package/dist/{index-BWbZ-eYD.js → index-ByFoIwAq.js} +5 -5
- package/dist/{index-BWbZ-eYD.js.map → index-ByFoIwAq.js.map} +1 -1
- package/dist/{index-Bqp4yCd3.js → index-CRWWARnB.js} +5 -5
- package/dist/{index-Bqp4yCd3.js.map → index-CRWWARnB.js.map} +1 -1
- package/dist/{index-DzPftkGV.js → index-CVIirzal.js} +5 -5
- package/dist/{index-DzPftkGV.js.map → index-CVIirzal.js.map} +1 -1
- package/dist/index-Cj1Zuh74.js +165 -0
- package/dist/index-Cj1Zuh74.js.map +1 -0
- package/dist/{index-DxpfQVmG.js → index-Cn_Rs8nk.js} +5 -5
- package/dist/{index-DxpfQVmG.js.map → index-Cn_Rs8nk.js.map} +1 -1
- package/dist/{index-CCdQwMMN.js → index-CpUKjpYd.js} +11 -10
- package/dist/{index-CCdQwMMN.js.map → index-CpUKjpYd.js.map} +1 -1
- package/dist/{index-BUk63KEk.js → index-CzM9TqMe.js} +6 -6
- package/dist/{index-BUk63KEk.js.map → index-CzM9TqMe.js.map} +1 -1
- package/dist/{index-D9J4M9sd.js → index-D9LxkwlG.js} +5 -5
- package/dist/{index-D9J4M9sd.js.map → index-D9LxkwlG.js.map} +1 -1
- package/dist/index-DDeRZxp1.js +334 -0
- package/dist/index-DDeRZxp1.js.map +1 -0
- package/dist/index-DLT2A69c.js +47 -0
- package/dist/{index-CBgU-nlM.js.map → index-DLT2A69c.js.map} +1 -1
- package/dist/index-DMtpdR9I.js +170 -0
- package/dist/index-DMtpdR9I.js.map +1 -0
- package/dist/{index-DxpjYqqB.js → index-DZYPPNrI.js} +5 -5
- package/dist/{index-DxpjYqqB.js.map → index-DZYPPNrI.js.map} +1 -1
- package/dist/{index-BMiribI6.js → index-EOl5XOZN.js} +6 -6
- package/dist/{index-BMiribI6.js.map → index-EOl5XOZN.js.map} +1 -1
- package/dist/{index-DtGheuiZ.js → index-L5_Ts7FG.js} +5 -5
- package/dist/{index-DtGheuiZ.js.map → index-L5_Ts7FG.js.map} +1 -1
- package/dist/{index-CTC3YNmw.js → index-Rxsr4tZ-.js} +13 -12
- package/dist/{index-CTC3YNmw.js.map → index-Rxsr4tZ-.js.map} +1 -1
- package/dist/{index-D6h8s36F.js → index-Uhz2U4Dp.js} +5 -5
- package/dist/{index-D6h8s36F.js.map → index-Uhz2U4Dp.js.map} +1 -1
- package/dist/{index-CDtF3MO_.js → index-s4oA7Iyp.js} +8 -8
- package/dist/{index-CDtF3MO_.js.map → index-s4oA7Iyp.js.map} +1 -1
- package/dist/index.js +30 -30
- package/dist/pies.utils-BxCBtjpf.js +77 -0
- package/dist/pies.utils-BxCBtjpf.js.map +1 -0
- package/dist/{preview.data.constants-tDMYNi0n.js → preview.data.constants-CXMriS2F.js} +2 -2
- package/dist/{preview.data.constants-tDMYNi0n.js.map → preview.data.constants-CXMriS2F.js.map} +1 -1
- package/dist/styles.utils-u6uj51UE.js +59 -0
- package/dist/styles.utils-u6uj51UE.js.map +1 -0
- package/dist/{tables.utils-33eWJN_a.js → tables.utils-DMLGNJ4g.js} +5 -4
- package/dist/{tables.utils-33eWJN_a.js.map → tables.utils-DMLGNJ4g.js.map} +1 -1
- package/dist/theme/styles/styles.utils.d.ts +12 -0
- package/dist/theme/styles/styles.utils.d.ts.map +1 -1
- package/dist/theme/theme.types.d.ts +10 -0
- package/dist/theme/theme.types.d.ts.map +1 -1
- package/dist/{timeRange.utils-Dz0fdD_b.js → timeRange.utils-C_oRVExZ.js} +2 -2
- package/dist/{timeRange.utils-Dz0fdD_b.js.map → timeRange.utils-C_oRVExZ.js.map} +1 -1
- package/package.json +2 -2
- package/dist/bars.utils-DJnFf-V0.js +0 -146
- package/dist/bars.utils-DJnFf-V0.js.map +0 -1
- package/dist/index-APU1GD5M.js +0 -166
- package/dist/index-APU1GD5M.js.map +0 -1
- package/dist/index-BsWftigv.js +0 -123
- package/dist/index-BsWftigv.js.map +0 -1
- package/dist/index-CBgU-nlM.js +0 -46
- package/dist/index-Nj7bJ8tg.js +0 -161
- package/dist/index-Nj7bJ8tg.js.map +0 -1
- package/dist/index-h3GKi8po.js +0 -332
- package/dist/index-h3GKi8po.js.map +0 -1
- package/dist/object.utils-D_Zzon-H.js +0 -37
- package/dist/object.utils-D_Zzon-H.js.map +0 -1
- package/dist/pies.utils-Dgs6TAkX.js +0 -73
- package/dist/pies.utils-Dgs6TAkX.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"object.utils-D_Zzon-H.js","sources":["../src/theme/styles/styles.utils.ts","../src/utils.ts/object.utils.ts"],"sourcesContent":["const generateCssVariables = (variables: Record<string, string>) => {\n let textContent = '';\n Object.keys(variables).forEach((key) => {\n const value = variables[key];\n textContent += `${key}: ${value};\\n`;\n });\n return textContent;\n};\n\n// TODO: check the possibility of injecting via CSS (future)\nexport const injectCssVariables = (styles: Record<string, string>) => {\n const css = `:root {\\n${generateCssVariables(styles)}}`;\n const styleId = 'remarkable-ui-embeddable-style';\n let styleEl = document.getElementById(styleId) as HTMLStyleElement | null;\n\n if (styleEl) {\n // Overwrite the old vars\n styleEl.textContent = css;\n } else {\n styleEl = document.createElement('style');\n styleEl.id = styleId;\n styleEl.textContent = css;\n document.head.appendChild(styleEl);\n }\n\n return () => styleEl?.remove();\n};\n\nconst colorsMap = new Map<string, Map<string, string>>();\nconst colorsInUse = new Map<string, Set<string>>();\n\n/* \nWe save the colors to session storage so that they are persistent across refreshes. \nThis is important, for example, if the user is looking at multiple tabs, or if the user refreshes the page.\n*/\nconst STORAGE_KEY = 'embeddable';\n\nconst saveColorsMap = () => {\n const obj: Record<string, Record<string, string>> = {};\n for (const [cat, m] of colorsMap) {\n obj[cat] = Object.fromEntries(m);\n }\n sessionStorage.setItem(STORAGE_KEY, JSON.stringify(obj));\n};\n\nconst loadColorMap = () => {\n if (typeof window === 'undefined' || typeof document === 'undefined') return;\n\n const data = sessionStorage.getItem(STORAGE_KEY);\n if (!data) return;\n const obj: Record<string, Record<string, string>> = JSON.parse(data);\n for (const cat in obj) {\n const m = new Map(Object.entries(obj[cat] ?? {}));\n colorsMap.set(cat, m);\n colorsInUse.set(cat, new Set(m.values()));\n }\n};\n\nloadColorMap();\n\nexport const getColor = (key: string, value: string, palette: string[], idx: number): string => {\n if (typeof window === 'undefined' || typeof document === 'undefined') return '';\n\n // Initialize structures if needed\n if (!colorsMap.has(key)) {\n colorsMap.set(key, new Map());\n colorsInUse.set(key, new Set());\n }\n\n const catMap = colorsMap.get(key)!;\n\n // Return existing color if already assigned\n if (catMap.has(value)) return catMap.get(value)!;\n\n // Find first colorsInUse color, fallback to indexed one\n const color = palette[idx % palette.length];\n\n if (typeof color !== 'string') {\n throw new Error('No valid color found in palette');\n }\n\n // Save mapping and mark as colorsInUse\n catMap.set(value, color);\n saveColorsMap();\n\n return color;\n};\n","export const getObjectStableKey = (obj: unknown): string => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const stableStringify = (o: any): string => {\n if (o && typeof o === 'object' && !Array.isArray(o)) {\n return (\n '{' +\n Object.keys(o)\n .sort()\n .map((k) => `\"${k}\":${stableStringify(o[k])}`)\n .join(',') +\n '}'\n );\n } else if (Array.isArray(o)) {\n return '[' + o.map(stableStringify).join(',') + ']';\n }\n return JSON.stringify(o);\n };\n\n const json = stableStringify(obj);\n\n // FNV-1a 32-bit hash\n let hash = 0x811c9dc5;\n for (let i = 0; i < json.length; i++) {\n hash ^= json.charCodeAt(i);\n hash += (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24);\n }\n\n return (hash >>> 0).toString(16);\n};\n"],"names":["colorsMap","colorsInUse","STORAGE_KEY","saveColorsMap","obj","cat","m","loadColorMap","data","getColor","key","value","palette","idx","catMap","color","getObjectStableKey","stableStringify","o","k","json","hash","i"],"mappings":"AA4BA,MAAMA,wBAAgB,IAAA,GAChBC,wBAAkB,IAAA,GAMlBC,IAAc,cAEdC,IAAgB,MAAM;AAC1B,QAAMC,IAA8C,CAAA;AACpD,aAAW,CAACC,GAAKC,CAAC,KAAKN;AACrB,IAAAI,EAAIC,CAAG,IAAI,OAAO,YAAYC,CAAC;AAEjC,iBAAe,QAAQJ,GAAa,KAAK,UAAUE,CAAG,CAAC;AACzD,GAEMG,IAAe,MAAM;AACzB,MAAI,OAAO,SAAW,OAAe,OAAO,WAAa,IAAa;AAEtE,QAAMC,IAAO,eAAe,QAAQN,CAAW;AAC/C,MAAI,CAACM,EAAM;AACX,QAAMJ,IAA8C,KAAK,MAAMI,CAAI;AACnE,aAAWH,KAAOD,GAAK;AACrB,UAAME,IAAI,IAAI,IAAI,OAAO,QAAQF,EAAIC,CAAG,KAAK,CAAA,CAAE,CAAC;AAChD,IAAAL,EAAU,IAAIK,GAAKC,CAAC,GACpBL,EAAY,IAAII,GAAK,IAAI,IAAIC,EAAE,OAAA,CAAQ,CAAC;AAAA,EAC1C;AACF;AAEAC,EAAA;AAEO,MAAME,IAAW,CAACC,GAAaC,GAAeC,GAAmBC,MAAwB;AAC9F,MAAI,OAAO,SAAW,OAAe,OAAO,WAAa,IAAa,QAAO;AAG7E,EAAKb,EAAU,IAAIU,CAAG,MACpBV,EAAU,IAAIU,GAAK,oBAAI,IAAA,CAAK,GAC5BT,EAAY,IAAIS,GAAK,oBAAI,IAAA,CAAK;AAGhC,QAAMI,IAASd,EAAU,IAAIU,CAAG;AAGhC,MAAII,EAAO,IAAIH,CAAK,EAAG,QAAOG,EAAO,IAAIH,CAAK;AAG9C,QAAMI,IAAQH,EAAQC,IAAMD,EAAQ,MAAM;AAE1C,MAAI,OAAOG,KAAU;AACnB,UAAM,IAAI,MAAM,iCAAiC;AAInD,SAAAD,EAAO,IAAIH,GAAOI,CAAK,GACvBZ,EAAA,GAEOY;AACT,GCtFaC,IAAqB,CAACZ,MAAyB;AAE1D,QAAMa,IAAkB,CAACC,MACnBA,KAAK,OAAOA,KAAM,YAAY,CAAC,MAAM,QAAQA,CAAC,IAE9C,MACA,OAAO,KAAKA,CAAC,EACV,OACA,IAAI,CAACC,MAAM,IAAIA,CAAC,KAAKF,EAAgBC,EAAEC,CAAC,CAAC,CAAC,EAAE,EAC5C,KAAK,GAAG,IACX,MAEO,MAAM,QAAQD,CAAC,IACjB,MAAMA,EAAE,IAAID,CAAe,EAAE,KAAK,GAAG,IAAI,MAE3C,KAAK,UAAUC,CAAC,GAGnBE,IAAOH,EAAgBb,CAAG;AAGhC,MAAIiB,IAAO;AACX,WAASC,IAAI,GAAGA,IAAIF,EAAK,QAAQE;AAC/B,IAAAD,KAAQD,EAAK,WAAWE,CAAC,GACzBD,MAASA,KAAQ,MAAMA,KAAQ,MAAMA,KAAQ,MAAMA,KAAQ,MAAMA,KAAQ;AAG3E,UAAQA,MAAS,GAAG,SAAS,EAAE;AACjC;"}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { r as g, g as b } from "./charts.utils-udVhj9f6.js";
|
|
2
|
-
import { g as u } from "./formatter.utils-tS15PLXn.js";
|
|
3
|
-
import { g as h, a as c } from "./object.utils-D_Zzon-H.js";
|
|
4
|
-
import { d as C } from "./Color.type.emb-sebikYGW.js";
|
|
5
|
-
import { i as f } from "./component.inputs.constants-Ds7YpNhT.js";
|
|
6
|
-
const T = (a, o = g) => {
|
|
7
|
-
const s = u(o);
|
|
8
|
-
if (!a.data)
|
|
9
|
-
return {
|
|
10
|
-
labels: [],
|
|
11
|
-
datasets: [{ data: [] }]
|
|
12
|
-
};
|
|
13
|
-
const t = b(
|
|
14
|
-
a.data,
|
|
15
|
-
a.dimension,
|
|
16
|
-
[a.measure],
|
|
17
|
-
a.maxLegendItems
|
|
18
|
-
), n = h(o), m = C(), d = t.map(
|
|
19
|
-
(e, r) => c(
|
|
20
|
-
`${n}.charts.backgroundColors`,
|
|
21
|
-
`${a.dimension.name}.${e[a.dimension.name]}`,
|
|
22
|
-
o.charts.backgroundColors ?? m,
|
|
23
|
-
r
|
|
24
|
-
)
|
|
25
|
-
), i = t.map(
|
|
26
|
-
(e, r) => c(
|
|
27
|
-
`${n}.charts.borderColors`,
|
|
28
|
-
`${a.dimension.name}.${e[a.dimension.name]}`,
|
|
29
|
-
o.charts.borderColors ?? m,
|
|
30
|
-
r
|
|
31
|
-
)
|
|
32
|
-
);
|
|
33
|
-
return {
|
|
34
|
-
labels: t.map((e) => {
|
|
35
|
-
const r = e[a.dimension.name], l = s.data(a.dimension, r);
|
|
36
|
-
return r === l ? f.t(r) : l;
|
|
37
|
-
}),
|
|
38
|
-
datasets: [
|
|
39
|
-
{
|
|
40
|
-
data: t.map((e) => e[a.measure.name]),
|
|
41
|
-
backgroundColor: d,
|
|
42
|
-
borderColor: i
|
|
43
|
-
}
|
|
44
|
-
]
|
|
45
|
-
};
|
|
46
|
-
}, w = (a, o = g) => {
|
|
47
|
-
const s = u(o);
|
|
48
|
-
return {
|
|
49
|
-
plugins: {
|
|
50
|
-
legend: { position: o.charts.legendPosition ?? "bottom" },
|
|
51
|
-
datalabels: {
|
|
52
|
-
formatter: (t) => s.data(a, t)
|
|
53
|
-
},
|
|
54
|
-
tooltip: {
|
|
55
|
-
callbacks: {
|
|
56
|
-
label(t) {
|
|
57
|
-
const n = t.raw, m = t.dataset.data.reduce(
|
|
58
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
59
|
-
(i, e) => i + parseFloat(e),
|
|
60
|
-
0
|
|
61
|
-
), d = Math.round(n / m * 100);
|
|
62
|
-
return `${s.data(a, n)} (${d}%)`;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
};
|
|
69
|
-
export {
|
|
70
|
-
w as a,
|
|
71
|
-
T as g
|
|
72
|
-
};
|
|
73
|
-
//# sourceMappingURL=pies.utils-Dgs6TAkX.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pies.utils-Dgs6TAkX.js","sources":["../src/components/charts/pies/pies.utils.ts"],"sourcesContent":["import { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { ChartData, ChartOptions } from 'chart.js';\nimport { groupTailAsOther } from '../charts.utils';\nimport { Theme } from '../../../theme/theme.types';\nimport { remarkableTheme } from '../../../theme/theme.constants';\nimport { getThemeFormatter } from '../../../theme/formatter/formatter.utils';\nimport { getColor } from '../../../theme/styles/styles.utils';\nimport { getChartColors } from '@embeddable.com/remarkable-ui';\nimport { i18n } from '../../../theme/i18n/i18n';\nimport { getObjectStableKey } from '../../../utils.ts/object.utils';\n\nexport const getPieChartProData = (\n props: {\n data: DataResponse['data'];\n dimension: Dimension;\n measure: Measure;\n maxLegendItems?: number;\n },\n theme: Theme = remarkableTheme,\n): ChartData<'pie'> => {\n const themeFormatter = getThemeFormatter(theme);\n\n if (!props.data)\n return {\n labels: [],\n datasets: [{ data: [] }],\n };\n\n const groupedData = groupTailAsOther(\n props.data,\n props.dimension,\n [props.measure],\n props.maxLegendItems,\n );\n\n const themeKey = getObjectStableKey(theme);\n const chartColors = getChartColors();\n const backgroundColor = groupedData.map((item, i) =>\n getColor(\n `${themeKey}.charts.backgroundColors`,\n `${props.dimension.name}.${item[props.dimension.name]}`,\n theme.charts.backgroundColors ?? chartColors,\n i,\n ),\n );\n\n const borderColor = groupedData.map((item, i) =>\n getColor(\n `${themeKey}.charts.borderColors`,\n `${props.dimension.name}.${item[props.dimension.name]}`,\n theme.charts.borderColors ?? chartColors,\n i,\n ),\n );\n\n return {\n labels: groupedData.map((item) => {\n const value = item[props.dimension.name];\n const formattedValue = themeFormatter.data(props.dimension, value);\n\n // If formatter did not work, try i18n translation\n if (value === formattedValue) {\n return i18n.t(value);\n }\n return formattedValue;\n }),\n datasets: [\n {\n data: groupedData.map((item) => item[props.measure.name]),\n backgroundColor,\n borderColor,\n },\n ],\n };\n};\n\nexport const getPieChartProOptions = (\n measure: Measure,\n theme: Theme = remarkableTheme,\n): Partial<ChartOptions<'pie'>> => {\n const themeFormatter = getThemeFormatter(theme);\n\n return {\n plugins: {\n legend: { position: theme.charts.legendPosition ?? 'bottom' },\n datalabels: {\n formatter: (value: string | number) => themeFormatter.data(measure, value),\n },\n tooltip: {\n callbacks: {\n label(context) {\n const raw = context.raw as number;\n const total = context.dataset.data.reduce(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (sum: number, v: any) => sum + parseFloat(v),\n 0,\n );\n const pct = Math.round((raw / total) * 100);\n return `${themeFormatter.data(measure, raw)} (${pct}%)`;\n },\n },\n },\n },\n };\n};\n"],"names":["getPieChartProData","props","theme","remarkableTheme","themeFormatter","getThemeFormatter","groupedData","groupTailAsOther","themeKey","getObjectStableKey","chartColors","getChartColors","backgroundColor","item","i","getColor","borderColor","value","formattedValue","i18n","getPieChartProOptions","measure","context","raw","total","sum","v","pct"],"mappings":";;;;;AAWO,MAAMA,IAAqB,CAChCC,GAMAC,IAAeC,MACM;AACrB,QAAMC,IAAiBC,EAAkBH,CAAK;AAE9C,MAAI,CAACD,EAAM;AACT,WAAO;AAAA,MACL,QAAQ,CAAA;AAAA,MACR,UAAU,CAAC,EAAE,MAAM,IAAI;AAAA,IAAA;AAG3B,QAAMK,IAAcC;AAAA,IAClBN,EAAM;AAAA,IACNA,EAAM;AAAA,IACN,CAACA,EAAM,OAAO;AAAA,IACdA,EAAM;AAAA,EAAA,GAGFO,IAAWC,EAAmBP,CAAK,GACnCQ,IAAcC,EAAA,GACdC,IAAkBN,EAAY;AAAA,IAAI,CAACO,GAAMC,MAC7CC;AAAA,MACE,GAAGP,CAAQ;AAAA,MACX,GAAGP,EAAM,UAAU,IAAI,IAAIY,EAAKZ,EAAM,UAAU,IAAI,CAAC;AAAA,MACrDC,EAAM,OAAO,oBAAoBQ;AAAA,MACjCI;AAAA,IAAA;AAAA,EACF,GAGIE,IAAcV,EAAY;AAAA,IAAI,CAACO,GAAMC,MACzCC;AAAA,MACE,GAAGP,CAAQ;AAAA,MACX,GAAGP,EAAM,UAAU,IAAI,IAAIY,EAAKZ,EAAM,UAAU,IAAI,CAAC;AAAA,MACrDC,EAAM,OAAO,gBAAgBQ;AAAA,MAC7BI;AAAA,IAAA;AAAA,EACF;AAGF,SAAO;AAAA,IACL,QAAQR,EAAY,IAAI,CAACO,MAAS;AAChC,YAAMI,IAAQJ,EAAKZ,EAAM,UAAU,IAAI,GACjCiB,IAAiBd,EAAe,KAAKH,EAAM,WAAWgB,CAAK;AAGjE,aAAIA,MAAUC,IACLC,EAAK,EAAEF,CAAK,IAEdC;AAAA,IACT,CAAC;AAAA,IACD,UAAU;AAAA,MACR;AAAA,QACE,MAAMZ,EAAY,IAAI,CAACO,MAASA,EAAKZ,EAAM,QAAQ,IAAI,CAAC;AAAA,QACxD,iBAAAW;AAAA,QACA,aAAAI;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ,GAEaI,IAAwB,CACnCC,GACAnB,IAAeC,MACkB;AACjC,QAAMC,IAAiBC,EAAkBH,CAAK;AAE9C,SAAO;AAAA,IACL,SAAS;AAAA,MACP,QAAQ,EAAE,UAAUA,EAAM,OAAO,kBAAkB,SAAA;AAAA,MACnD,YAAY;AAAA,QACV,WAAW,CAACe,MAA2Bb,EAAe,KAAKiB,GAASJ,CAAK;AAAA,MAAA;AAAA,MAE3E,SAAS;AAAA,QACP,WAAW;AAAA,UACT,MAAMK,GAAS;AACb,kBAAMC,IAAMD,EAAQ,KACdE,IAAQF,EAAQ,QAAQ,KAAK;AAAA;AAAA,cAEjC,CAACG,GAAaC,MAAWD,IAAM,WAAWC,CAAC;AAAA,cAC3C;AAAA,YAAA,GAEIC,IAAM,KAAK,MAAOJ,IAAMC,IAAS,GAAG;AAC1C,mBAAO,GAAGpB,EAAe,KAAKiB,GAASE,CAAG,CAAC,KAAKI,CAAG;AAAA,UACrD;AAAA,QAAA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEJ;"}
|