@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.
Files changed (131) hide show
  1. package/dist/BarChartDefaultHorizontalPro.js +5 -5
  2. package/dist/BarChartDefaultHorizontalPro.js.map +1 -1
  3. package/dist/BarChartDefaultPro.js +5 -5
  4. package/dist/BarChartDefaultPro.js.map +1 -1
  5. package/dist/BarChartGroupedHorizontalPro.js +4 -4
  6. package/dist/BarChartGroupedPro.js +4 -4
  7. package/dist/BarChartStackedHorizontalPro.js +4 -4
  8. package/dist/BarChartStackedPro.js +4 -4
  9. package/dist/{ChartCard-B3B1rFYh.js → ChartCard-BHPN4_tz.js} +22 -22
  10. package/dist/{ChartCard-B3B1rFYh.js.map → ChartCard-BHPN4_tz.js.map} +1 -1
  11. package/dist/{Color.type.emb-sebikYGW.js → Color.type.emb-DWdIUAm5.js} +2600 -2590
  12. package/dist/{Color.type.emb-sebikYGW.js.map → Color.type.emb-DWdIUAm5.js.map} +1 -1
  13. package/dist/ColorEditor.js +1 -1
  14. package/dist/ComparisonPeriodSelectFieldPro.js +3 -3
  15. package/dist/DateRangePickerCustomPro.js +10 -9
  16. package/dist/DateRangePickerCustomPro.js.map +1 -1
  17. package/dist/DateRangeSelectFieldPro.js +3 -3
  18. package/dist/DonutChartPro.js +4 -4
  19. package/dist/DonutLabelChartPro.js +4 -4
  20. package/dist/{EditorCard-DpSCsmZJ.js → EditorCard-ZXwl5-DV.js} +3 -3
  21. package/dist/{EditorCard-DpSCsmZJ.js.map → EditorCard-ZXwl5-DV.js.map} +1 -1
  22. package/dist/GranularitySelectFieldPro.js +20 -19
  23. package/dist/GranularitySelectFieldPro.js.map +1 -1
  24. package/dist/HeatMapPro.js +4 -4
  25. package/dist/{IconCalendarFilled-Bfm3jkzE.js → IconCalendarFilled-Bl7kPqxG.js} +2 -2
  26. package/dist/{IconCalendarFilled-Bfm3jkzE.js.map → IconCalendarFilled-Bl7kPqxG.js.map} +1 -1
  27. package/dist/KpiChartNumberComparisonPro.js +4 -4
  28. package/dist/KpiChartNumberPro.js +4 -4
  29. package/dist/LineChartComparisonDefaultPro.js +4 -4
  30. package/dist/LineChartDefaultPro.js +4 -4
  31. package/dist/LineChartGroupedPro.js +4 -4
  32. package/dist/MultiSelectFieldPro.js +4 -4
  33. package/dist/PieChartPro.js +4 -4
  34. package/dist/PivotTablePro.js +4 -4
  35. package/dist/SingleSelectFieldPro.js +4 -4
  36. package/dist/TableChartPaginated.js +4 -4
  37. package/dist/TableScrollable.js +17 -17
  38. package/dist/bars.utils-DLqiVSYV.js +154 -0
  39. package/dist/bars.utils-DLqiVSYV.js.map +1 -0
  40. package/dist/{charts.utils-udVhj9f6.js → charts.utils-lvlkFPJk.js} +4 -4
  41. package/dist/{charts.utils-udVhj9f6.js.map → charts.utils-lvlkFPJk.js.map} +1 -1
  42. package/dist/{component.inputs.constants-Ds7YpNhT.js → component.inputs.constants-DO_jX-yc.js} +43 -43
  43. package/dist/{component.inputs.constants-Ds7YpNhT.js.map → component.inputs.constants-DO_jX-yc.js.map} +1 -1
  44. package/dist/components/charts/bars/bars.utils.d.ts.map +1 -1
  45. package/dist/components/charts/lines/LineChartComparisonDefaultPro/LineChartComparisonDefaultPro.utils.d.ts.map +1 -1
  46. package/dist/components/charts/lines/LineChartDefaultPro/LineChartDefaultPro.utils.d.ts.map +1 -1
  47. package/dist/components/charts/lines/LineChartGroupedPro/LineChartGroupedPro.utils.d.ts.map +1 -1
  48. package/dist/components/charts/pies/pies.utils.d.ts.map +1 -1
  49. package/dist/components/charts/tables/tables.utils.d.ts.map +1 -1
  50. package/dist/components/editors/ComparisonPeriodSelectFieldPro/index.d.ts.map +1 -1
  51. package/dist/components/editors/GranularitySelectFieldPro/index.d.ts.map +1 -1
  52. package/dist/components/editors/MultiSelectFieldPro/index.d.ts.map +1 -1
  53. package/dist/components/editors/SingleSelectFieldPro/index.d.ts.map +1 -1
  54. package/dist/components/editors/dates/DateRangePickerCustomPro/index.d.ts.map +1 -1
  55. package/dist/components/editors/dates/DateRangePickerPresetsPro/index.d.ts.map +1 -1
  56. package/dist/embeddable-components.json +28 -28
  57. package/dist/{formatter.utils-tS15PLXn.js → formatter.utils-CBCUxVH8.js} +2 -2
  58. package/dist/{formatter.utils-tS15PLXn.js.map → formatter.utils-CBCUxVH8.js.map} +1 -1
  59. package/dist/{index--Dbq1zrZ.js → index-0eDJ_Ho5.js} +5 -5
  60. package/dist/{index--Dbq1zrZ.js.map → index-0eDJ_Ho5.js.map} +1 -1
  61. package/dist/index-BRX2mrGM.js +124 -0
  62. package/dist/index-BRX2mrGM.js.map +1 -0
  63. package/dist/{index-CbL0nET2.js → index-BRuc7lF2.js} +5 -5
  64. package/dist/{index-CbL0nET2.js.map → index-BRuc7lF2.js.map} +1 -1
  65. package/dist/{index-t7YCtFvf.js → index-BSK_5Rq3.js} +5 -5
  66. package/dist/{index-t7YCtFvf.js.map → index-BSK_5Rq3.js.map} +1 -1
  67. package/dist/{index-BWbZ-eYD.js → index-ByFoIwAq.js} +5 -5
  68. package/dist/{index-BWbZ-eYD.js.map → index-ByFoIwAq.js.map} +1 -1
  69. package/dist/{index-Bqp4yCd3.js → index-CRWWARnB.js} +5 -5
  70. package/dist/{index-Bqp4yCd3.js.map → index-CRWWARnB.js.map} +1 -1
  71. package/dist/{index-DzPftkGV.js → index-CVIirzal.js} +5 -5
  72. package/dist/{index-DzPftkGV.js.map → index-CVIirzal.js.map} +1 -1
  73. package/dist/index-Cj1Zuh74.js +165 -0
  74. package/dist/index-Cj1Zuh74.js.map +1 -0
  75. package/dist/{index-DxpfQVmG.js → index-Cn_Rs8nk.js} +5 -5
  76. package/dist/{index-DxpfQVmG.js.map → index-Cn_Rs8nk.js.map} +1 -1
  77. package/dist/{index-CCdQwMMN.js → index-CpUKjpYd.js} +11 -10
  78. package/dist/{index-CCdQwMMN.js.map → index-CpUKjpYd.js.map} +1 -1
  79. package/dist/{index-BUk63KEk.js → index-CzM9TqMe.js} +6 -6
  80. package/dist/{index-BUk63KEk.js.map → index-CzM9TqMe.js.map} +1 -1
  81. package/dist/{index-D9J4M9sd.js → index-D9LxkwlG.js} +5 -5
  82. package/dist/{index-D9J4M9sd.js.map → index-D9LxkwlG.js.map} +1 -1
  83. package/dist/index-DDeRZxp1.js +334 -0
  84. package/dist/index-DDeRZxp1.js.map +1 -0
  85. package/dist/index-DLT2A69c.js +47 -0
  86. package/dist/{index-CBgU-nlM.js.map → index-DLT2A69c.js.map} +1 -1
  87. package/dist/index-DMtpdR9I.js +170 -0
  88. package/dist/index-DMtpdR9I.js.map +1 -0
  89. package/dist/{index-DxpjYqqB.js → index-DZYPPNrI.js} +5 -5
  90. package/dist/{index-DxpjYqqB.js.map → index-DZYPPNrI.js.map} +1 -1
  91. package/dist/{index-BMiribI6.js → index-EOl5XOZN.js} +6 -6
  92. package/dist/{index-BMiribI6.js.map → index-EOl5XOZN.js.map} +1 -1
  93. package/dist/{index-DtGheuiZ.js → index-L5_Ts7FG.js} +5 -5
  94. package/dist/{index-DtGheuiZ.js.map → index-L5_Ts7FG.js.map} +1 -1
  95. package/dist/{index-CTC3YNmw.js → index-Rxsr4tZ-.js} +13 -12
  96. package/dist/{index-CTC3YNmw.js.map → index-Rxsr4tZ-.js.map} +1 -1
  97. package/dist/{index-D6h8s36F.js → index-Uhz2U4Dp.js} +5 -5
  98. package/dist/{index-D6h8s36F.js.map → index-Uhz2U4Dp.js.map} +1 -1
  99. package/dist/{index-CDtF3MO_.js → index-s4oA7Iyp.js} +8 -8
  100. package/dist/{index-CDtF3MO_.js.map → index-s4oA7Iyp.js.map} +1 -1
  101. package/dist/index.js +30 -30
  102. package/dist/pies.utils-BxCBtjpf.js +77 -0
  103. package/dist/pies.utils-BxCBtjpf.js.map +1 -0
  104. package/dist/{preview.data.constants-tDMYNi0n.js → preview.data.constants-CXMriS2F.js} +2 -2
  105. package/dist/{preview.data.constants-tDMYNi0n.js.map → preview.data.constants-CXMriS2F.js.map} +1 -1
  106. package/dist/styles.utils-u6uj51UE.js +59 -0
  107. package/dist/styles.utils-u6uj51UE.js.map +1 -0
  108. package/dist/{tables.utils-33eWJN_a.js → tables.utils-DMLGNJ4g.js} +5 -4
  109. package/dist/{tables.utils-33eWJN_a.js.map → tables.utils-DMLGNJ4g.js.map} +1 -1
  110. package/dist/theme/styles/styles.utils.d.ts +12 -0
  111. package/dist/theme/styles/styles.utils.d.ts.map +1 -1
  112. package/dist/theme/theme.types.d.ts +10 -0
  113. package/dist/theme/theme.types.d.ts.map +1 -1
  114. package/dist/{timeRange.utils-Dz0fdD_b.js → timeRange.utils-C_oRVExZ.js} +2 -2
  115. package/dist/{timeRange.utils-Dz0fdD_b.js.map → timeRange.utils-C_oRVExZ.js.map} +1 -1
  116. package/package.json +2 -2
  117. package/dist/bars.utils-DJnFf-V0.js +0 -146
  118. package/dist/bars.utils-DJnFf-V0.js.map +0 -1
  119. package/dist/index-APU1GD5M.js +0 -166
  120. package/dist/index-APU1GD5M.js.map +0 -1
  121. package/dist/index-BsWftigv.js +0 -123
  122. package/dist/index-BsWftigv.js.map +0 -1
  123. package/dist/index-CBgU-nlM.js +0 -46
  124. package/dist/index-Nj7bJ8tg.js +0 -161
  125. package/dist/index-Nj7bJ8tg.js.map +0 -1
  126. package/dist/index-h3GKi8po.js +0 -332
  127. package/dist/index-h3GKi8po.js.map +0 -1
  128. package/dist/object.utils-D_Zzon-H.js +0 -37
  129. package/dist/object.utils-D_Zzon-H.js.map +0 -1
  130. package/dist/pies.utils-Dgs6TAkX.js +0 -73
  131. 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;"}