@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.
Files changed (188) hide show
  1. package/dist/BarChartDefaultHorizontalPro.js +1 -1
  2. package/dist/BarChartDefaultPro.js +1 -1
  3. package/dist/BarChartGroupedHorizontalPro.js +1 -1
  4. package/dist/BarChartGroupedPro.js +1 -1
  5. package/dist/BarChartStackedHorizontalPro.js +1 -1
  6. package/dist/BarChartStackedPro.js +1 -1
  7. package/dist/ComparisonPeriodSelectFieldPro.js +1 -1
  8. package/dist/DateRangePickerCustomPro.js +1 -1
  9. package/dist/DateRangeSelectFieldPro.js +1 -1
  10. package/dist/{DimensionAndMeasureSingleSelectField-HJcwoxiQ.js → DimensionAndMeasureSingleSelectField-B-HiSZ1m.js} +2 -2
  11. package/dist/{DimensionAndMeasureSingleSelectField-HJcwoxiQ.js.map → DimensionAndMeasureSingleSelectField-B-HiSZ1m.js.map} +1 -1
  12. package/dist/DimensionMeasureMultiSelectFieldPro.js +1 -1
  13. package/dist/DimensionSingleSelectFieldPro.js +1 -1
  14. package/dist/DonutChartPro.js +1 -1
  15. package/dist/DonutLabelChartPro.js +1 -1
  16. package/dist/FilterBuilderPro.js +3 -3
  17. package/dist/{GranularitySelectField-l18OwBvC.js → GranularitySelectField-DpQLHVFc.js} +2 -2
  18. package/dist/{GranularitySelectField-l18OwBvC.js.map → GranularitySelectField-DpQLHVFc.js.map} +1 -1
  19. package/dist/GranularitySelectFieldPro.js +1 -1
  20. package/dist/HeatMapPro.js +1 -1
  21. package/dist/HorizontalDividerPro.js +1 -1
  22. package/dist/KpiChartNumberComparisonPro.js +1 -1
  23. package/dist/KpiChartNumberPro.js +1 -1
  24. package/dist/LineChartComparisonDefaultPro.js +1 -1
  25. package/dist/LineChartDefaultPro.js +1 -1
  26. package/dist/LineChartGroupedPro.js +1 -1
  27. package/dist/LineChartWithKpiTabsPro.js +1 -1
  28. package/dist/MarkdownPro.js +1 -1
  29. package/dist/MeasureMultiSelectFieldPro.js +1 -1
  30. package/dist/MeasureSingleSelectFieldPro.js +1 -1
  31. package/dist/MultiSelectFieldPro.js +1 -1
  32. package/dist/PieChartPro.js +1 -1
  33. package/dist/PivotTablePro.js +1 -1
  34. package/dist/ScatterChartPro.js +1 -1
  35. package/dist/SingleSelectFieldPro.js +1 -1
  36. package/dist/TableChartPaginated.js +1 -1
  37. package/dist/TableScrollable.js +1 -1
  38. package/dist/TextFieldPro.js +1 -1
  39. package/dist/{bars.loadData.utils-DpaXxzT5.js → bars.loadData.utils-C3w-0agD.js} +3 -3
  40. package/dist/{bars.loadData.utils-DpaXxzT5.js.map → bars.loadData.utils-C3w-0agD.js.map} +1 -1
  41. package/dist/bars.utils-DR-ga7ps.js +176 -0
  42. package/dist/bars.utils-DR-ga7ps.js.map +1 -0
  43. package/dist/{charts.fillGaps.hooks-CPpTEo01.js → charts.fillGaps.hooks-DgH30vXI.js} +2 -2
  44. package/dist/{charts.fillGaps.hooks-CPpTEo01.js.map → charts.fillGaps.hooks-DgH30vXI.js.map} +1 -1
  45. package/dist/charts.utils-BEwWG4s2.js +25 -0
  46. package/dist/charts.utils-BEwWG4s2.js.map +1 -0
  47. package/dist/{component.inputs.constants-Bf2Ty2En.js → component.inputs.constants-DnFrZzR7.js} +206 -191
  48. package/dist/component.inputs.constants-DnFrZzR7.js.map +1 -0
  49. package/dist/components/charts/bars/BarChartGroupedHorizontalPro/BarChartGroupedHorizontalPro.emb.d.ts +1 -1
  50. package/dist/components/charts/bars/BarChartGroupedHorizontalPro/definition.d.ts +2 -2
  51. package/dist/components/charts/bars/BarChartGroupedHorizontalPro/index.d.ts.map +1 -1
  52. package/dist/components/charts/bars/BarChartGroupedPro/BarChartGroupedPro.emb.d.ts +1 -1
  53. package/dist/components/charts/bars/BarChartGroupedPro/definition.d.ts +2 -2
  54. package/dist/components/charts/bars/BarChartGroupedPro/index.d.ts.map +1 -1
  55. package/dist/components/charts/bars/BarChartStackedHorizontalPro/BarChartStackedHorizontalPro.emb.d.ts +1 -1
  56. package/dist/components/charts/bars/BarChartStackedHorizontalPro/definition.d.ts +2 -2
  57. package/dist/components/charts/bars/BarChartStackedHorizontalPro/index.d.ts.map +1 -1
  58. package/dist/components/charts/bars/BarChartStackedPro/BarChartStackedPro.emb.d.ts +1 -1
  59. package/dist/components/charts/bars/BarChartStackedPro/definition.d.ts +2 -2
  60. package/dist/components/charts/bars/BarChartStackedPro/index.d.ts.map +1 -1
  61. package/dist/components/charts/bars/bars.utils.d.ts +11 -0
  62. package/dist/components/charts/bars/bars.utils.d.ts.map +1 -1
  63. package/dist/components/charts/charts.utils.d.ts +1 -0
  64. package/dist/components/charts/charts.utils.d.ts.map +1 -1
  65. package/dist/components/charts/lines/LineChartComparisonDefaultPro/LineChartComparisonDefaultPro.utils.d.ts.map +1 -1
  66. package/dist/components/charts/lines/LineChartDefaultPro/LineChartDefaultPro.utils.d.ts.map +1 -1
  67. package/dist/components/charts/lines/LineChartGroupedPro/LineChartGroupedPro.utils.d.ts +1 -0
  68. package/dist/components/charts/lines/LineChartGroupedPro/LineChartGroupedPro.utils.d.ts.map +1 -1
  69. package/dist/components/charts/lines/LineChartGroupedPro/LineChartGroupedPro.utils.test.d.ts +2 -0
  70. package/dist/components/charts/lines/LineChartGroupedPro/LineChartGroupedPro.utils.test.d.ts.map +1 -0
  71. package/dist/components/charts/lines/lines.utils.d.ts +4 -1
  72. package/dist/components/charts/lines/lines.utils.d.ts.map +1 -1
  73. package/dist/components/charts/pies/pies.utils.d.ts +4 -1
  74. package/dist/components/charts/pies/pies.utils.d.ts.map +1 -1
  75. package/dist/components/charts/tables/TableChartPaginated/TableChartPaginated.emb.d.ts +17 -0
  76. package/dist/components/charts/tables/TableChartPaginated/TableChartPaginated.emb.d.ts.map +1 -1
  77. package/dist/components/charts/tables/TableChartPaginated/definition.d.ts +39 -3
  78. package/dist/components/charts/tables/TableChartPaginated/definition.d.ts.map +1 -1
  79. package/dist/components/charts/tables/TableScrollable/TableScrollable.emb.d.ts +17 -0
  80. package/dist/components/charts/tables/TableScrollable/TableScrollable.emb.d.ts.map +1 -1
  81. package/dist/components/charts/tables/TableScrollable/definition.d.ts +39 -4
  82. package/dist/components/charts/tables/TableScrollable/definition.d.ts.map +1 -1
  83. package/dist/components/component.inputs.constants.d.ts +18 -2
  84. package/dist/components/component.inputs.constants.d.ts.map +1 -1
  85. package/dist/{definition-DOQkt6mp.js → definition-5MQbWUXL.js} +12 -12
  86. package/dist/definition-5MQbWUXL.js.map +1 -0
  87. package/dist/{definition-CS4RuL8e.js → definition-B66i_lHu.js} +3 -3
  88. package/dist/{definition-CS4RuL8e.js.map → definition-B66i_lHu.js.map} +1 -1
  89. package/dist/{definition-eDsz1LSa.js → definition-BNOhKWNT.js} +3 -3
  90. package/dist/{definition-eDsz1LSa.js.map → definition-BNOhKWNT.js.map} +1 -1
  91. package/dist/{definition-CGptoEwG.js → definition-BNffWCqm.js} +46 -39
  92. package/dist/definition-BNffWCqm.js.map +1 -0
  93. package/dist/{definition-B0EoSD5U.js → definition-BZVoO8bb.js} +3 -3
  94. package/dist/{definition-B0EoSD5U.js.map → definition-BZVoO8bb.js.map} +1 -1
  95. package/dist/{definition-B_WnKkA9.js → definition-Ba7J1LGI.js} +2 -2
  96. package/dist/{definition-B_WnKkA9.js.map → definition-Ba7J1LGI.js.map} +1 -1
  97. package/dist/{definition-B5pATGjj.js → definition-Bm1ec3cN.js} +3 -3
  98. package/dist/{definition-B5pATGjj.js.map → definition-Bm1ec3cN.js.map} +1 -1
  99. package/dist/{definition-D9ZlqgLF.js → definition-BpHv0bRb.js} +2 -2
  100. package/dist/{definition-D9ZlqgLF.js.map → definition-BpHv0bRb.js.map} +1 -1
  101. package/dist/{definition-CdcpkNRA.js → definition-CJR0UaGt.js} +3 -3
  102. package/dist/{definition-CdcpkNRA.js.map → definition-CJR0UaGt.js.map} +1 -1
  103. package/dist/{definition-CnRhPW66.js → definition-CMvwdXRu.js} +55 -48
  104. package/dist/definition-CMvwdXRu.js.map +1 -0
  105. package/dist/{definition-DWIyItYm.js → definition-Ce2VcCyv.js} +5 -5
  106. package/dist/{definition-DWIyItYm.js.map → definition-Ce2VcCyv.js.map} +1 -1
  107. package/dist/{definition-D6fsmeL7.js → definition-CfCvupyD.js} +3 -3
  108. package/dist/{definition-D6fsmeL7.js.map → definition-CfCvupyD.js.map} +1 -1
  109. package/dist/{definition-b_Q1K06P.js → definition-D1YtBczb.js} +44 -37
  110. package/dist/definition-D1YtBczb.js.map +1 -0
  111. package/dist/{definition-YVbooAf6.js → definition-D2bJQDNh.js} +33 -26
  112. package/dist/definition-D2bJQDNh.js.map +1 -0
  113. package/dist/{definition-hgg6kcIq.js → definition-D30Z62sw.js} +4 -4
  114. package/dist/{definition-hgg6kcIq.js.map → definition-D30Z62sw.js.map} +1 -1
  115. package/dist/{definition-DEqyuC5t.js → definition-D59NL3vt.js} +3 -3
  116. package/dist/{definition-DEqyuC5t.js.map → definition-D59NL3vt.js.map} +1 -1
  117. package/dist/{definition-D6c43j2_.js → definition-DIH0gF4I.js} +5 -5
  118. package/dist/{definition-D6c43j2_.js.map → definition-DIH0gF4I.js.map} +1 -1
  119. package/dist/{definition-CUA9oFdm.js → definition-DISg7Yca.js} +3 -3
  120. package/dist/{definition-CUA9oFdm.js.map → definition-DISg7Yca.js.map} +1 -1
  121. package/dist/definition-DIkjRBmH.js +260 -0
  122. package/dist/definition-DIkjRBmH.js.map +1 -0
  123. package/dist/{definition-mP5KhZwN.js → definition-DMI3MDQJ.js} +2 -2
  124. package/dist/{definition-mP5KhZwN.js.map → definition-DMI3MDQJ.js.map} +1 -1
  125. package/dist/definition-DOaQylZq.js +281 -0
  126. package/dist/definition-DOaQylZq.js.map +1 -0
  127. package/dist/{definition-uwrGYsP0.js → definition-DQP0JMyo.js} +115 -101
  128. package/dist/definition-DQP0JMyo.js.map +1 -0
  129. package/dist/{definition-DxTb-MOm.js → definition-Dd4MdyW4.js} +2 -2
  130. package/dist/{definition-DxTb-MOm.js.map → definition-Dd4MdyW4.js.map} +1 -1
  131. package/dist/{definition-CJHymHtY.js → definition-DvM-bBHc.js} +4 -4
  132. package/dist/{definition-CJHymHtY.js.map → definition-DvM-bBHc.js.map} +1 -1
  133. package/dist/{definition-Dpo-1FJs.js → definition-DwouHcfu.js} +11 -11
  134. package/dist/definition-DwouHcfu.js.map +1 -0
  135. package/dist/{definition-DfHOG4Fd.js → definition-HByuRICY.js} +80 -79
  136. package/dist/definition-HByuRICY.js.map +1 -0
  137. package/dist/{definition-Bf2gheY1.js → definition-HLAKpAEj.js} +2 -2
  138. package/dist/{definition-Bf2gheY1.js.map → definition-HLAKpAEj.js.map} +1 -1
  139. package/dist/{definition-DbspoO9C.js → definition-NZLRzHFa.js} +2 -2
  140. package/dist/{definition-DbspoO9C.js.map → definition-NZLRzHFa.js.map} +1 -1
  141. package/dist/{definition-B2TigGb3.js → definition-_hl_uvEW.js} +11 -11
  142. package/dist/definition-_hl_uvEW.js.map +1 -0
  143. package/dist/{definition-CQaZAYag.js → definition-luwVk1GE.js} +3 -3
  144. package/dist/{definition-CQaZAYag.js.map → definition-luwVk1GE.js.map} +1 -1
  145. package/dist/{definition-DCNv1r9i.js → definition-mz09xu8Q.js} +5 -5
  146. package/dist/{definition-DCNv1r9i.js.map → definition-mz09xu8Q.js.map} +1 -1
  147. package/dist/definition-nEosVAA3.js +564 -0
  148. package/dist/{definition-DLsqkPjT.js.map → definition-nEosVAA3.js.map} +1 -1
  149. package/dist/{definition-JPgTRMBs.js → definition-vdBo_sz-.js} +3 -3
  150. package/dist/{definition-JPgTRMBs.js.map → definition-vdBo_sz-.js.map} +1 -1
  151. package/dist/{dimensionsAndMeasures.utils-z1Fh_wO2.js → dimensionsAndMeasures.utils-DsVzuJ1x.js} +2 -2
  152. package/dist/{dimensionsAndMeasures.utils-z1Fh_wO2.js.map → dimensionsAndMeasures.utils-DsVzuJ1x.js.map} +1 -1
  153. package/dist/embeddable-components.json +46 -46
  154. package/dist/embeddable-theme-0137e.js +1 -1
  155. package/dist/{formatter.utils-ClBgeuH1.js → formatter.utils-BZMmas2O.js} +2 -2
  156. package/dist/{formatter.utils-ClBgeuH1.js.map → formatter.utils-BZMmas2O.js.map} +1 -1
  157. package/dist/{granularity.utils-DqPJsdYT.js → granularity.utils-B2u5dfRk.js} +2 -2
  158. package/dist/{granularity.utils-DqPJsdYT.js.map → granularity.utils-B2u5dfRk.js.map} +1 -1
  159. package/dist/index.js +203 -200
  160. package/dist/index.js.map +1 -1
  161. package/dist/lines.utils-CEGfmIHB.js.map +1 -1
  162. package/dist/pies.utils-Bb2EFei6.js +99 -0
  163. package/dist/pies.utils-Bb2EFei6.js.map +1 -0
  164. package/dist/{tables.utils-D0oPxjdp.js → tables.utils-CigVmDOc.js} +3 -3
  165. package/dist/{tables.utils-D0oPxjdp.js.map → tables.utils-CigVmDOc.js.map} +1 -1
  166. package/dist/{charts.utils-CJLmr9Q8.js → theme.constants-Cl6fOHv-.js} +639 -655
  167. package/dist/theme.constants-Cl6fOHv-.js.map +1 -0
  168. package/package.json +1 -2
  169. package/dist/bars.utils-DG6iNy-i.js +0 -158
  170. package/dist/bars.utils-DG6iNy-i.js.map +0 -1
  171. package/dist/charts.utils-CJLmr9Q8.js.map +0 -1
  172. package/dist/component.inputs.constants-Bf2Ty2En.js.map +0 -1
  173. package/dist/definition-B2TigGb3.js.map +0 -1
  174. package/dist/definition-C7um17eU.js +0 -242
  175. package/dist/definition-C7um17eU.js.map +0 -1
  176. package/dist/definition-CGptoEwG.js.map +0 -1
  177. package/dist/definition-CnRhPW66.js.map +0 -1
  178. package/dist/definition-DLsqkPjT.js +0 -560
  179. package/dist/definition-DOQkt6mp.js.map +0 -1
  180. package/dist/definition-DfHOG4Fd.js.map +0 -1
  181. package/dist/definition-Dpo-1FJs.js.map +0 -1
  182. package/dist/definition-RYVGlC6K.js +0 -277
  183. package/dist/definition-RYVGlC6K.js.map +0 -1
  184. package/dist/definition-YVbooAf6.js.map +0 -1
  185. package/dist/definition-b_Q1K06P.js.map +0 -1
  186. package/dist/definition-uwrGYsP0.js.map +0 -1
  187. package/dist/pies.utils-DyBQ0LjG.js +0 -76
  188. package/dist/pies.utils-DyBQ0LjG.js.map +0 -1
@@ -0,0 +1,99 @@
1
+ import { g as h, b as g, a as u } from "./charts.utils-BEwWG4s2.js";
2
+ import { r as b } from "./theme.constants-Cl6fOHv-.js";
3
+ import { g as f } from "./formatter.utils-BZMmas2O.js";
4
+ import { g as c } from "./styles.utils-C8CnV0SB.js";
5
+ import { t as C } from "./index-B9eYAQkT.js";
6
+ import { i as D } from "./component.utils-Dua9clQJ.js";
7
+ const T = (e, s = b) => {
8
+ if (!e.data)
9
+ return {
10
+ labels: [],
11
+ datasets: [{ data: [] }]
12
+ };
13
+ const o = h(
14
+ e.data,
15
+ e.dimension,
16
+ [e.measure],
17
+ e.maxLegendItems
18
+ ), i = C(), l = o.map(
19
+ (a, n) => c({
20
+ dimensionOrMeasure: e.dimension,
21
+ theme: s,
22
+ color: "background",
23
+ value: `${e.dimension.name}.${a[e.dimension.name]}`,
24
+ chartColors: i,
25
+ index: n
26
+ })
27
+ ), t = o.map(
28
+ (a, n) => c({
29
+ dimensionOrMeasure: e.dimension,
30
+ theme: s,
31
+ color: "border",
32
+ value: `${e.dimension.name}.${a[e.dimension.name]}`,
33
+ chartColors: i,
34
+ index: n
35
+ })
36
+ ), r = f(s);
37
+ return {
38
+ labels: o.map((a) => {
39
+ const n = a[e.dimension.name], m = r.data(
40
+ g(e.dimension),
41
+ n
42
+ );
43
+ return n === m ? D.t(n) : m;
44
+ }),
45
+ datasets: [
46
+ {
47
+ data: o.map((a) => a[e.measure.name]),
48
+ backgroundColor: l,
49
+ borderColor: t
50
+ }
51
+ ]
52
+ };
53
+ }, w = (e, s = b) => {
54
+ const { dimension: o, measure: i } = e, l = f(s);
55
+ return {
56
+ plugins: {
57
+ legend: {
58
+ position: s.charts.legendPosition ?? "bottom",
59
+ labels: {
60
+ generateLabels: (t) => (t.data.labels ?? []).map((a, n) => {
61
+ const d = t.getDatasetMeta(0).controller.getStyle(n, !1);
62
+ return {
63
+ text: l.data(o, a),
64
+ fillStyle: d.backgroundColor,
65
+ strokeStyle: d.borderColor,
66
+ lineWidth: d.borderWidth,
67
+ hidden: !t.getDataVisibility(n),
68
+ index: n
69
+ };
70
+ })
71
+ }
72
+ },
73
+ datalabels: {
74
+ formatter: (t, r) => {
75
+ var a;
76
+ return (a = i.inputs) != null && a.showValueAsPercentage ? u(Number(t), r.dataset.data) : l.data(i, t);
77
+ }
78
+ },
79
+ tooltip: {
80
+ callbacks: {
81
+ title: (t) => {
82
+ var a;
83
+ const r = (a = t[0]) == null ? void 0 : a.label;
84
+ return l.data(g(o), r);
85
+ },
86
+ label(t) {
87
+ const r = t.raw;
88
+ return `${l.data(i, r)} (${u(r, t.dataset.data)})`;
89
+ }
90
+ }
91
+ }
92
+ }
93
+ };
94
+ };
95
+ export {
96
+ w as a,
97
+ T as g
98
+ };
99
+ //# sourceMappingURL=pies.utils-Bb2EFei6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pies.utils-Bb2EFei6.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 {\n getDatalabelPercentage,\n getDimensionWithoutTruncation,\n groupTailAsOther,\n} from '../charts.utils';\nimport { Theme } from '../../../theme/theme.types';\nimport { remarkableTheme } from '../../../theme/theme.constants';\nimport { getThemeFormatter } from '../../../theme/formatter/formatter.utils';\nimport { getDimensionMeasureColor } from '../../../theme/styles/styles.utils';\nimport { getChartColors } from '@embeddable.com/remarkable-ui';\nimport { i18n } from '../../../theme/i18n/i18n';\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 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 chartColors = getChartColors();\n const backgroundColor = groupedData.map((item, index) =>\n getDimensionMeasureColor({\n dimensionOrMeasure: props.dimension,\n theme,\n color: 'background',\n value: `${props.dimension.name}.${item[props.dimension.name]}`,\n chartColors,\n index,\n }),\n );\n\n const borderColor = groupedData.map((item, index) =>\n getDimensionMeasureColor({\n dimensionOrMeasure: props.dimension,\n theme,\n color: 'border',\n value: `${props.dimension.name}.${item[props.dimension.name]}`,\n chartColors,\n index,\n }),\n );\n\n const themeFormatter = getThemeFormatter(theme);\n\n return {\n labels: groupedData.map((item) => {\n const value = item[props.dimension.name];\n const formattedValue = themeFormatter.data(\n getDimensionWithoutTruncation(props.dimension),\n value,\n );\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 props: { measure: Measure; dimension: Dimension },\n theme: Theme = remarkableTheme,\n): Partial<ChartOptions<'pie'>> => {\n const { dimension, measure } = props;\n const themeFormatter = getThemeFormatter(theme);\n\n return {\n plugins: {\n legend: {\n position: theme.charts.legendPosition ?? 'bottom',\n labels: {\n generateLabels: (chart) => {\n const labels = chart.data.labels ?? [];\n return labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i, false);\n return {\n text: themeFormatter.data(dimension, label as string),\n fillStyle: style.backgroundColor as string,\n strokeStyle: style.borderColor as string,\n lineWidth: style.borderWidth,\n hidden: !chart.getDataVisibility(i),\n index: i,\n };\n });\n },\n },\n },\n datalabels: {\n formatter: (value: string | number, context) => {\n if (measure.inputs?.showValueAsPercentage) {\n return getDatalabelPercentage(Number(value), context.dataset.data);\n }\n return themeFormatter.data(measure, value);\n },\n },\n tooltip: {\n callbacks: {\n title: (context) => {\n const label = context[0]?.label;\n return themeFormatter.data(getDimensionWithoutTruncation(dimension), label);\n },\n label(context) {\n const raw = context.raw as number;\n return `${themeFormatter.data(measure, raw)} (${getDatalabelPercentage(raw, context.dataset.data)})`;\n },\n },\n },\n },\n };\n};\n"],"names":["getPieChartProData","props","theme","remarkableTheme","groupedData","groupTailAsOther","chartColors","getChartColors","backgroundColor","item","index","getDimensionMeasureColor","borderColor","themeFormatter","getThemeFormatter","value","formattedValue","getDimensionWithoutTruncation","i18n","getPieChartProOptions","dimension","measure","chart","label","i","style","context","_a","getDatalabelPercentage","raw"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { j as i, Y as p, Z as w, _ as h, y as o } from "./index-B9eYAQkT.js";
2
- import { g as f } from "./formatter.utils-ClBgeuH1.js";
3
- import { D as c } from "./component.inputs.constants-Bf2Ty2En.js";
2
+ import { g as f } from "./formatter.utils-BZMmas2O.js";
3
+ import { D as c } from "./component.inputs.constants-DnFrZzR7.js";
4
4
  const T = "_markdownCell_15al7_1", C = {
5
5
  markdownCell: T
6
6
  }, A = (e) => {
@@ -85,4 +85,4 @@ export {
85
85
  N as c,
86
86
  D as g
87
87
  };
88
- //# sourceMappingURL=tables.utils-D0oPxjdp.js.map
88
+ //# sourceMappingURL=tables.utils-CigVmDOc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tables.utils-D0oPxjdp.js","sources":["../src/components/charts/tables/tables.utils.tsx"],"sourcesContent":["import { DataResponse, Dimension, DimensionOrMeasure } from '@embeddable.com/core';\nimport { getThemeFormatter } from '../../../theme/formatter/formatter.utils';\nimport { CssSize, Markdown, TableBodyCellWithCopy } from '@embeddable.com/remarkable-ui';\nimport { Theme } from '../../../theme/theme.types';\nimport {\n getStyleNumber,\n TableHeaderAlign,\n TableHeaderItem,\n TableHeaderItemAlign,\n} from '@embeddable.com/remarkable-ui';\nimport { DisplayFormatTypeOptions } from '../../types/DisplayFormat.type.emb';\nimport styles from './tables.module.css';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport const getTableHeaderAlign = (dimOrMeas: DimensionOrMeasure): TableHeaderItemAlign => {\n const subInputAlign = dimOrMeas.inputs?.align;\n\n if (subInputAlign) return subInputAlign;\n\n // Get width by native type\n switch (dimOrMeas.nativeType) {\n case 'boolean':\n case 'time':\n case 'number':\n return TableHeaderAlign.RIGHT;\n default:\n return TableHeaderAlign.LEFT;\n }\n};\n\nexport const getTableHeaderMinWidth = (dimOrMeas: DimensionOrMeasure): CssSize => {\n const subInputWidth = dimOrMeas.inputs?.width;\n\n if (subInputWidth) return subInputWidth;\n\n // Get width by native type\n switch (dimOrMeas.nativeType) {\n case 'string':\n return getStyleNumber('--em-tablechart-min-width--string' as any, '8.75rem') as number;\n case 'number':\n return getStyleNumber('--em-tablechart-min-width--number' as any, '5.625rem') as number;\n case 'time':\n return getStyleNumber('--em-tablechart-min-width--time' as any, '8.75rem') as number;\n case 'boolean':\n default:\n return getStyleNumber('--em-tablechart-min-width--boolean' as any, '5.625rem') as number;\n }\n};\n\nexport const getTableHeaders = (\n props: {\n dimensionsAndMeasures: DimensionOrMeasure[];\n displayNullAs?: string;\n },\n theme: Theme,\n): TableHeaderItem<any>[] => {\n const themeFormatter = getThemeFormatter(theme);\n return props.dimensionsAndMeasures.map((dimOrMeas) => {\n const displayFormat: string = dimOrMeas.inputs?.displayFormat;\n const hasCustomCellFormatter =\n displayFormat &&\n (displayFormat === DisplayFormatTypeOptions.JSON ||\n displayFormat === DisplayFormatTypeOptions.MARKDOWN);\n\n return {\n id: dimOrMeas.name,\n title: themeFormatter.dimensionOrMeasureTitle(dimOrMeas),\n minWidth: getTableHeaderMinWidth(dimOrMeas),\n align: getTableHeaderAlign(dimOrMeas),\n accessor: (row) => {\n const updatedDimOrMeas = {\n ...dimOrMeas,\n inputs: { ...dimOrMeas.inputs, displayNullAs: props.displayNullAs },\n };\n return themeFormatter.data(updatedDimOrMeas, row[dimOrMeas.name]);\n },\n cellStyle: (value) => {\n const tableCellStyle = dimOrMeas.inputs?.tableCellStyle;\n if (tableCellStyle) {\n const activeTableCellStyle = theme.defaults.tableCellStyleOptions?.find(\n (style) => style.value === tableCellStyle,\n );\n if (activeTableCellStyle) {\n return activeTableCellStyle.styles(value);\n }\n }\n return undefined;\n },\n cell: hasCustomCellFormatter\n ? ({ value }) => {\n let currentValue: string | undefined;\n if (typeof value === 'string') {\n currentValue = value;\n } else if (value !== undefined && value !== null) {\n currentValue = String(value);\n } else {\n currentValue = undefined;\n }\n\n return (\n <TableBodyCellWithCopy value={value}>\n {displayFormat === DisplayFormatTypeOptions.MARKDOWN ? (\n // Markdown\n <span className={styles.markdownCell}>\n <Markdown content={currentValue} />\n </span>\n ) : (\n // JSON\n <pre>{currentValue}</pre>\n )}\n </TableBodyCellWithCopy>\n );\n }\n : undefined,\n };\n });\n};\n\nexport const getTableRows = (props: { clickDimension?: Dimension; rows: DataResponse['data'] }) => {\n if (!props.rows || props.rows.length === 0) {\n return [];\n }\n\n const clickDimensionName = props.clickDimension?.name;\n\n if (!clickDimensionName || props.rows.some((row) => clickDimensionName in row)) {\n return props.rows;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return props.rows.map(({ [clickDimensionName]: _, ...row }) => ({\n ...row,\n }));\n};\n"],"names":["getTableHeaderAlign","dimOrMeas","subInputAlign","_a","TableHeaderAlign","getTableHeaderMinWidth","subInputWidth","getStyleNumber","getTableHeaders","props","theme","themeFormatter","getThemeFormatter","displayFormat","hasCustomCellFormatter","DisplayFormatTypeOptions","row","updatedDimOrMeas","value","tableCellStyle","activeTableCellStyle","_b","style","currentValue","jsx","TableBodyCellWithCopy","styles","Markdown","getTableRows","clickDimensionName","_"],"mappings":"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"}
1
+ {"version":3,"file":"tables.utils-CigVmDOc.js","sources":["../src/components/charts/tables/tables.utils.tsx"],"sourcesContent":["import { DataResponse, Dimension, DimensionOrMeasure } from '@embeddable.com/core';\nimport { getThemeFormatter } from '../../../theme/formatter/formatter.utils';\nimport { CssSize, Markdown, TableBodyCellWithCopy } from '@embeddable.com/remarkable-ui';\nimport { Theme } from '../../../theme/theme.types';\nimport {\n getStyleNumber,\n TableHeaderAlign,\n TableHeaderItem,\n TableHeaderItemAlign,\n} from '@embeddable.com/remarkable-ui';\nimport { DisplayFormatTypeOptions } from '../../types/DisplayFormat.type.emb';\nimport styles from './tables.module.css';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport const getTableHeaderAlign = (dimOrMeas: DimensionOrMeasure): TableHeaderItemAlign => {\n const subInputAlign = dimOrMeas.inputs?.align;\n\n if (subInputAlign) return subInputAlign;\n\n // Get width by native type\n switch (dimOrMeas.nativeType) {\n case 'boolean':\n case 'time':\n case 'number':\n return TableHeaderAlign.RIGHT;\n default:\n return TableHeaderAlign.LEFT;\n }\n};\n\nexport const getTableHeaderMinWidth = (dimOrMeas: DimensionOrMeasure): CssSize => {\n const subInputWidth = dimOrMeas.inputs?.width;\n\n if (subInputWidth) return subInputWidth;\n\n // Get width by native type\n switch (dimOrMeas.nativeType) {\n case 'string':\n return getStyleNumber('--em-tablechart-min-width--string' as any, '8.75rem') as number;\n case 'number':\n return getStyleNumber('--em-tablechart-min-width--number' as any, '5.625rem') as number;\n case 'time':\n return getStyleNumber('--em-tablechart-min-width--time' as any, '8.75rem') as number;\n case 'boolean':\n default:\n return getStyleNumber('--em-tablechart-min-width--boolean' as any, '5.625rem') as number;\n }\n};\n\nexport const getTableHeaders = (\n props: {\n dimensionsAndMeasures: DimensionOrMeasure[];\n displayNullAs?: string;\n },\n theme: Theme,\n): TableHeaderItem<any>[] => {\n const themeFormatter = getThemeFormatter(theme);\n return props.dimensionsAndMeasures.map((dimOrMeas) => {\n const displayFormat: string = dimOrMeas.inputs?.displayFormat;\n const hasCustomCellFormatter =\n displayFormat &&\n (displayFormat === DisplayFormatTypeOptions.JSON ||\n displayFormat === DisplayFormatTypeOptions.MARKDOWN);\n\n return {\n id: dimOrMeas.name,\n title: themeFormatter.dimensionOrMeasureTitle(dimOrMeas),\n minWidth: getTableHeaderMinWidth(dimOrMeas),\n align: getTableHeaderAlign(dimOrMeas),\n accessor: (row) => {\n const updatedDimOrMeas = {\n ...dimOrMeas,\n inputs: { ...dimOrMeas.inputs, displayNullAs: props.displayNullAs },\n };\n return themeFormatter.data(updatedDimOrMeas, row[dimOrMeas.name]);\n },\n cellStyle: (value) => {\n const tableCellStyle = dimOrMeas.inputs?.tableCellStyle;\n if (tableCellStyle) {\n const activeTableCellStyle = theme.defaults.tableCellStyleOptions?.find(\n (style) => style.value === tableCellStyle,\n );\n if (activeTableCellStyle) {\n return activeTableCellStyle.styles(value);\n }\n }\n return undefined;\n },\n cell: hasCustomCellFormatter\n ? ({ value }) => {\n let currentValue: string | undefined;\n if (typeof value === 'string') {\n currentValue = value;\n } else if (value !== undefined && value !== null) {\n currentValue = String(value);\n } else {\n currentValue = undefined;\n }\n\n return (\n <TableBodyCellWithCopy value={value}>\n {displayFormat === DisplayFormatTypeOptions.MARKDOWN ? (\n // Markdown\n <span className={styles.markdownCell}>\n <Markdown content={currentValue} />\n </span>\n ) : (\n // JSON\n <pre>{currentValue}</pre>\n )}\n </TableBodyCellWithCopy>\n );\n }\n : undefined,\n };\n });\n};\n\nexport const getTableRows = (props: { clickDimension?: Dimension; rows: DataResponse['data'] }) => {\n if (!props.rows || props.rows.length === 0) {\n return [];\n }\n\n const clickDimensionName = props.clickDimension?.name;\n\n if (!clickDimensionName || props.rows.some((row) => clickDimensionName in row)) {\n return props.rows;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return props.rows.map(({ [clickDimensionName]: _, ...row }) => ({\n ...row,\n }));\n};\n"],"names":["getTableHeaderAlign","dimOrMeas","subInputAlign","_a","TableHeaderAlign","getTableHeaderMinWidth","subInputWidth","getStyleNumber","getTableHeaders","props","theme","themeFormatter","getThemeFormatter","displayFormat","hasCustomCellFormatter","DisplayFormatTypeOptions","row","updatedDimOrMeas","value","tableCellStyle","activeTableCellStyle","_b","style","currentValue","jsx","TableBodyCellWithCopy","styles","Markdown","getTableRows","clickDimensionName","_"],"mappings":"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"}