@embeddable.com/remarkable-pro 0.1.6 → 0.1.8

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 (159) hide show
  1. package/dist/BarChartDefaultHorizontalPro.js +5 -5
  2. package/dist/BarChartDefaultPro.js +5 -5
  3. package/dist/BarChartGroupedHorizontalPro.js +5 -5
  4. package/dist/BarChartGroupedPro.js +5 -5
  5. package/dist/BarChartStackedHorizontalPro.js +5 -5
  6. package/dist/BarChartStackedPro.js +5 -5
  7. package/dist/ChartCard-BmBTN11g.js +117 -0
  8. package/dist/{ChartCard-BE_Kz3jK.js.map → ChartCard-BmBTN11g.js.map} +1 -1
  9. package/dist/{Color.type.emb-DIW_7wKP.js → Color.type.emb-tRPNtuPs.js} +12868 -12752
  10. package/dist/Color.type.emb-tRPNtuPs.js.map +1 -0
  11. package/dist/ColorEditor.js +1 -1
  12. package/dist/ComparisonPeriodSelectFieldPro.js +3 -3
  13. package/dist/DateRangePickerCustomPro.js +4 -4
  14. package/dist/DateRangePickerCustomPro.js.map +1 -1
  15. package/dist/DateRangeSelectFieldPro.js +3 -3
  16. package/dist/{DimensionAndMeasureSingleSelectField-Brm3ckSN.js → DimensionAndMeasureSingleSelectField-Bap43crU.js} +3 -3
  17. package/dist/{DimensionAndMeasureSingleSelectField-Brm3ckSN.js.map → DimensionAndMeasureSingleSelectField-Bap43crU.js.map} +1 -1
  18. package/dist/DimensionSingleSelectFieldPro.js +5 -5
  19. package/dist/DonutChartPro.js +4 -4
  20. package/dist/DonutLabelChartPro.js +4 -4
  21. package/dist/{EditorCard-bUK0G4W-.js → EditorCard-BEOWlY3S.js} +5 -5
  22. package/dist/{EditorCard-bUK0G4W-.js.map → EditorCard-BEOWlY3S.js.map} +1 -1
  23. package/dist/EmptyBlockPro.js +16 -0
  24. package/dist/EmptyBlockPro.js.map +1 -0
  25. package/dist/{GranularitySelectField-CSeNBHaM.js → GranularitySelectField-D0AUovNu.js} +3 -3
  26. package/dist/{GranularitySelectField-CSeNBHaM.js.map → GranularitySelectField-D0AUovNu.js.map} +1 -1
  27. package/dist/GranularitySelectFieldPro.js +4 -4
  28. package/dist/HeatMapPro.js +4 -4
  29. package/dist/{IconCalendarFilled-DOfzKqWp.js → IconCalendarFilled-Dlxre0eW.js} +2 -2
  30. package/dist/{IconCalendarFilled-DOfzKqWp.js.map → IconCalendarFilled-Dlxre0eW.js.map} +1 -1
  31. package/dist/KpiChartNumberComparisonPro.js +4 -4
  32. package/dist/KpiChartNumberPro.js +4 -4
  33. package/dist/LineChartComparisonDefaultPro.js +5 -5
  34. package/dist/LineChartDefaultPro.js +5 -5
  35. package/dist/LineChartGroupedPro.js +5 -5
  36. package/dist/MeasureSingleSelectFieldPro.js +5 -5
  37. package/dist/MultiSelectFieldPro.js +4 -4
  38. package/dist/PieChartPro.js +4 -4
  39. package/dist/PivotTablePro.js +77 -43
  40. package/dist/PivotTablePro.js.map +1 -1
  41. package/dist/SingleSelectFieldPro.js +4 -4
  42. package/dist/TableChartPaginated.js +4 -4
  43. package/dist/TableScrollable.js +5 -5
  44. package/dist/{bars.utils-BkjTtlIv.js → bars.utils-C6w2ekZW.js} +5 -5
  45. package/dist/{bars.utils-BkjTtlIv.js.map → bars.utils-C6w2ekZW.js.map} +1 -1
  46. package/dist/{charts.utils-B4kq1sTA.js → charts.utils-5taHDsqH.js} +1155 -1103
  47. package/dist/charts.utils-5taHDsqH.js.map +1 -0
  48. package/dist/color.utils-BSg_DFOh.js.map +1 -1
  49. package/dist/{component.inputs.constants-C-pP69Lh.js → component.inputs.constants-DIZMtQw0.js} +4 -4
  50. package/dist/{component.inputs.constants-C-pP69Lh.js.map → component.inputs.constants-DIZMtQw0.js.map} +1 -1
  51. package/dist/components/charts/tables/PivotTablePro/index.d.ts +4 -0
  52. package/dist/components/charts/tables/PivotTablePro/index.d.ts.map +1 -1
  53. package/dist/components/charts/tables/tables.hooks.d.ts +2 -2
  54. package/dist/components/charts/tables/tables.hooks.d.ts.map +1 -1
  55. package/dist/components/shared/EmptyContainerPro/index.d.ts +3 -0
  56. package/dist/components/shared/EmptyContainerPro/index.d.ts.map +1 -0
  57. package/dist/dates.utils-BF32dTLi.js.map +1 -1
  58. package/dist/embeddable-components.json +30 -28
  59. package/dist/embeddable-theme-0137e.js +485 -433
  60. package/dist/{formatter.utils-C9mQTOD-.js → formatter.utils-BuiHCNHH.js} +8 -8
  61. package/dist/formatter.utils-BuiHCNHH.js.map +1 -0
  62. package/dist/granularity.utils-DAAi-602.js +51 -0
  63. package/dist/granularity.utils-DAAi-602.js.map +1 -0
  64. package/dist/{index-ip8hWzE9.js → index-B3L4DXwu.js} +6 -6
  65. package/dist/{index-ip8hWzE9.js.map → index-B3L4DXwu.js.map} +1 -1
  66. package/dist/{index-DXKn9iJW.js → index-B5__yodm.js} +5 -5
  67. package/dist/{index-DXKn9iJW.js.map → index-B5__yodm.js.map} +1 -1
  68. package/dist/{index-N-gqdjk3.js → index-B8IHON3t.js} +5 -5
  69. package/dist/{index-N-gqdjk3.js.map → index-B8IHON3t.js.map} +1 -1
  70. package/dist/{index-DGeDkRqz.js → index-BDpQF_cG.js} +5 -5
  71. package/dist/index-BDpQF_cG.js.map +1 -0
  72. package/dist/{index-CNJWgFBo.js → index-BKikv8mC.js} +6 -6
  73. package/dist/{index-CNJWgFBo.js.map → index-BKikv8mC.js.map} +1 -1
  74. package/dist/index-BL76s-yZ.js +127 -0
  75. package/dist/index-BL76s-yZ.js.map +1 -0
  76. package/dist/{index-BbQatMvx.js → index-BRywHn8j.js} +4 -4
  77. package/dist/index-BRywHn8j.js.map +1 -0
  78. package/dist/{index-Bgwr2wTg.js → index-BSXcd7SN.js} +5 -5
  79. package/dist/{index-Bgwr2wTg.js.map → index-BSXcd7SN.js.map} +1 -1
  80. package/dist/{index-DsWAqQ07.js → index-C3QKhnf_.js} +6 -6
  81. package/dist/{index-DsWAqQ07.js.map → index-C3QKhnf_.js.map} +1 -1
  82. package/dist/{index-Dvl51Whs.js → index-C4C09WJe.js} +6 -6
  83. package/dist/{index-Dvl51Whs.js.map → index-C4C09WJe.js.map} +1 -1
  84. package/dist/{index-DpyP7BhA.js → index-CGmgAyAB.js} +5 -5
  85. package/dist/{index-DpyP7BhA.js.map → index-CGmgAyAB.js.map} +1 -1
  86. package/dist/{index-QExGNX-O.js → index-CfscOxbu.js} +6 -6
  87. package/dist/{index-QExGNX-O.js.map → index-CfscOxbu.js.map} +1 -1
  88. package/dist/{index-CfUcEenL.js → index-CvQFVQLU.js} +5 -5
  89. package/dist/{index-CfUcEenL.js.map → index-CvQFVQLU.js.map} +1 -1
  90. package/dist/{index-CjKyNYo-.js → index-D4nH7Tfx.js} +5 -5
  91. package/dist/{index-CjKyNYo-.js.map → index-D4nH7Tfx.js.map} +1 -1
  92. package/dist/{index-DObNJhT7.js → index-DJeAhPf-.js} +6 -6
  93. package/dist/{index-DObNJhT7.js.map → index-DJeAhPf-.js.map} +1 -1
  94. package/dist/{index-DJ_AKb9m.js → index-DQDBupb0.js} +8 -8
  95. package/dist/index-DQDBupb0.js.map +1 -0
  96. package/dist/{index-D9q70zqJ.js → index-De7NmChy.js} +6 -6
  97. package/dist/{index-D9q70zqJ.js.map → index-De7NmChy.js.map} +1 -1
  98. package/dist/{index-CgSYpdx0.js → index-DhA_rNUY.js} +6 -6
  99. package/dist/{index-CgSYpdx0.js.map → index-DhA_rNUY.js.map} +1 -1
  100. package/dist/{index-tEOuqC2k.js → index-GK0v6bfO.js} +7 -7
  101. package/dist/index-GK0v6bfO.js.map +1 -0
  102. package/dist/{index-Bymbf9B1.js → index-SfB11gF_.js} +7 -7
  103. package/dist/index-SfB11gF_.js.map +1 -0
  104. package/dist/{index-DIAGQuHl.js → index-miobE3AH.js} +6 -6
  105. package/dist/{index-DIAGQuHl.js.map → index-miobE3AH.js.map} +1 -1
  106. package/dist/index.d.ts +13 -9
  107. package/dist/index.d.ts.map +1 -1
  108. package/dist/index.js +95 -86
  109. package/dist/index.js.map +1 -1
  110. package/dist/{pies.utils-BuoF2iP8.js → pies.utils-FfqwwwDi.js} +6 -6
  111. package/dist/{pies.utils-BuoF2iP8.js.map → pies.utils-FfqwwwDi.js.map} +1 -1
  112. package/dist/{preview.data.constants-C-K-9fN3.js → preview.data.constants-DDnGcvzL.js} +2 -2
  113. package/dist/{preview.data.constants-C-K-9fN3.js.map → preview.data.constants-DDnGcvzL.js.map} +1 -1
  114. package/dist/remarkable-pro.css +1 -1
  115. package/dist/styles.utils-BfpH_m_W.js +73 -0
  116. package/dist/styles.utils-BfpH_m_W.js.map +1 -0
  117. package/dist/tables.hooks-DFEu8kZn.js +46 -0
  118. package/dist/tables.hooks-DFEu8kZn.js.map +1 -0
  119. package/dist/{tables.utils-CiiwEo1e.js → tables.utils-CBn15nfE.js} +4 -4
  120. package/dist/{tables.utils-CiiwEo1e.js.map → tables.utils-CBn15nfE.js.map} +1 -1
  121. package/dist/{timeRange.utils-DZL3BrUv.js → timeRange.utils-B4CCk0Na.js} +5 -5
  122. package/dist/{timeRange.utils-DZL3BrUv.js.map → timeRange.utils-B4CCk0Na.js.map} +1 -1
  123. package/dist/utils/array.utils.d.ts +2 -0
  124. package/dist/utils/array.utils.d.ts.map +1 -0
  125. package/dist/utils/cache.utils.d.ts.map +1 -0
  126. package/dist/utils/color.utils.d.ts.map +1 -0
  127. package/dist/utils/data.utils.d.ts.map +1 -0
  128. package/dist/utils/date.utils.d.ts.map +1 -0
  129. package/dist/utils/object.utils.d.ts.map +1 -0
  130. package/package.json +2 -2
  131. package/dist/ChartCard-BE_Kz3jK.js +0 -117
  132. package/dist/ChartGranularitySelectField-C4oTWMDg.js +0 -40
  133. package/dist/ChartGranularitySelectField-C4oTWMDg.js.map +0 -1
  134. package/dist/Color.type.emb-DIW_7wKP.js.map +0 -1
  135. package/dist/charts.utils-B4kq1sTA.js.map +0 -1
  136. package/dist/formatter.utils-C9mQTOD-.js.map +0 -1
  137. package/dist/granularity.utils-CA504xa0.js +0 -15
  138. package/dist/granularity.utils-CA504xa0.js.map +0 -1
  139. package/dist/index-BbQatMvx.js.map +0 -1
  140. package/dist/index-Bymbf9B1.js.map +0 -1
  141. package/dist/index-DGeDkRqz.js.map +0 -1
  142. package/dist/index-DJ_AKb9m.js.map +0 -1
  143. package/dist/index-DfiG6Fph.js +0 -99
  144. package/dist/index-DfiG6Fph.js.map +0 -1
  145. package/dist/index-tEOuqC2k.js.map +0 -1
  146. package/dist/styles.utils-u6uj51UE.js +0 -59
  147. package/dist/styles.utils-u6uj51UE.js.map +0 -1
  148. package/dist/tables.hooks-BQdyUxau.js +0 -45
  149. package/dist/tables.hooks-BQdyUxau.js.map +0 -1
  150. package/dist/utils.ts/cache.utils.d.ts.map +0 -1
  151. package/dist/utils.ts/color.utils.d.ts.map +0 -1
  152. package/dist/utils.ts/data.utils.d.ts.map +0 -1
  153. package/dist/utils.ts/date.utils.d.ts.map +0 -1
  154. package/dist/utils.ts/object.utils.d.ts.map +0 -1
  155. /package/dist/{utils.ts → utils}/cache.utils.d.ts +0 -0
  156. /package/dist/{utils.ts → utils}/color.utils.d.ts +0 -0
  157. /package/dist/{utils.ts → utils}/data.utils.d.ts +0 -0
  158. /package/dist/{utils.ts → utils}/date.utils.d.ts +0 -0
  159. /package/dist/{utils.ts → utils}/object.utils.d.ts +0 -0
@@ -1,31 +1,31 @@
1
- import { l as a } from "./Color.type.emb-DIW_7wKP.js";
2
- import { definePreview as i, defineComponent as l } from "@embeddable.com/react";
3
- import { P as s } from "./index-DfiG6Fph.js";
4
- import { b as e, s as n } from "./component.inputs.constants-C-pP69Lh.js";
5
- import { p as t } from "./preview.data.constants-C-K-9fN3.js";
6
- const m = {
1
+ import { l as t } from "./Color.type.emb-tRPNtuPs.js";
2
+ import { definePreview as d, defineComponent as u } from "@embeddable.com/react";
3
+ import { P as r } from "./index-BL76s-yZ.js";
4
+ import { b as o, s as i } from "./component.inputs.constants-DIZMtQw0.js";
5
+ import { p as a } from "./preview.data.constants-DDnGcvzL.js";
6
+ const w = {
7
7
  name: "PivotTablePro",
8
8
  label: "Pivot Table",
9
9
  category: "Table Charts",
10
10
  inputs: [
11
- e.dataset,
11
+ o.dataset,
12
12
  {
13
- ...e.measures,
13
+ ...o.measures,
14
14
  label: "Measures to display",
15
15
  inputs: [
16
- ...e.measures.inputs,
16
+ ...o.measures.inputs,
17
17
  {
18
- ...n.boolean,
18
+ ...i.boolean,
19
19
  name: "showColumnTotal",
20
20
  label: "Show column total"
21
21
  },
22
22
  {
23
- ...n.boolean,
23
+ ...i.boolean,
24
24
  name: "showRowTotal",
25
25
  label: "Show row total"
26
26
  },
27
27
  {
28
- ...n.boolean,
28
+ ...i.boolean,
29
29
  name: "showAsPercentage",
30
30
  label: "Show as percentage",
31
31
  description: "If turned on, other measures may be ignored",
@@ -34,55 +34,89 @@ const m = {
34
34
  ]
35
35
  },
36
36
  {
37
- ...e.dimensionWithDateBounds,
38
- label: "Row dimension",
37
+ ...o.dimensionWithDateBounds,
38
+ label: "Column dimension",
39
+ name: "columnDimension"
40
+ },
41
+ {
42
+ ...o.dimensionWithDateBounds,
43
+ label: "Primary row dimension",
39
44
  name: "rowDimension"
40
45
  },
41
46
  {
42
- ...e.dimensionWithDateBounds,
43
- label: "Column dimension",
44
- name: "columnDimension"
47
+ ...o.dimension,
48
+ label: "Secondary row dimension (optional)",
49
+ name: "subRowDimension",
50
+ required: !1,
51
+ description: "When set, each primary row becomes expandable. Clicking a row loads a breakdown by the second dimension."
45
52
  },
46
- e.title,
47
- e.description,
48
- e.tooltip,
49
- e.displayNullAs,
53
+ o.title,
54
+ o.description,
55
+ o.tooltip,
56
+ o.displayNullAs,
50
57
  {
51
- ...e.number,
58
+ ...o.number,
52
59
  name: "firstColumnWidth",
53
60
  label: "First column width",
54
61
  description: "Set the width in px (e.g. 200)",
55
62
  category: "Component Settings"
56
63
  },
57
64
  {
58
- ...e.number,
65
+ ...o.number,
59
66
  name: "columnWidth",
60
67
  label: "Column width",
61
68
  description: "Set the width in px (e.g. 200)",
62
69
  category: "Component Settings"
63
70
  },
64
- e.maxResults
71
+ o.maxResults
65
72
  ]
66
- }, w = i(s, {
67
- measures: [{ ...t.measure, inputs: { showRowTotal: !0, showColumnTotal: !0 } }],
68
- rowDimension: t.dimension,
69
- columnDimension: t.dimensionGroup,
70
- results: t.results1Measure2Dimensions,
71
- hideMenu: !0
72
- }), h = l(s, m, {
73
- props: (o) => ({
74
- ...o,
75
- results: a({
76
- from: o.dataset,
77
- select: [o.rowDimension, o.columnDimension, ...o.measures],
78
- limit: o.maxResults,
79
- countRows: !0
80
- })
81
- })
73
+ }, f = d(r, {
74
+ measures: [{ ...a.measure, inputs: { showRowTotal: !0, showColumnTotal: !0 } }],
75
+ rowDimension: a.dimension,
76
+ columnDimension: a.dimensionGroup,
77
+ results: a.results1Measure2Dimensions,
78
+ hideMenu: !0,
79
+ expandedRowKeys: [],
80
+ setExpandedRowKey: () => {
81
+ }
82
+ }), D = u(r, w, {
83
+ props: (e, [n, l]) => {
84
+ const s = (n == null ? void 0 : n.expandedRowKeys) ?? [];
85
+ return {
86
+ ...e,
87
+ state: n,
88
+ expandedRowKeys: s,
89
+ setExpandedRowKey: (m) => l({ expandedRowKeys: [...s, m] }),
90
+ results: t({
91
+ from: e.dataset,
92
+ select: [e.rowDimension, e.columnDimension, ...e.measures],
93
+ limit: e.maxResults,
94
+ countRows: !0
95
+ }),
96
+ resultsSubRows: s.length > 0 ? t({
97
+ from: e.dataset,
98
+ select: [
99
+ e.rowDimension,
100
+ e.subRowDimension,
101
+ e.columnDimension,
102
+ ...e.measures
103
+ ],
104
+ limit: e.maxResults,
105
+ countRows: !0,
106
+ filters: [
107
+ {
108
+ property: e.rowDimension,
109
+ operator: "equals",
110
+ value: s
111
+ }
112
+ ]
113
+ }) : void 0
114
+ };
115
+ }
82
116
  });
83
117
  export {
84
- h as default,
85
- m as meta,
86
- w as preview
118
+ D as default,
119
+ w as meta,
120
+ f as preview
87
121
  };
88
122
  //# sourceMappingURL=PivotTablePro.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PivotTablePro.js","sources":["../src/components/charts/tables/PivotTablePro/PivotTablePro.emb.ts"],"sourcesContent":["import { loadData } from '@embeddable.com/core';\nimport {\n defineComponent,\n definePreview,\n EmbeddedComponentMeta,\n Inputs,\n} from '@embeddable.com/react';\nimport PivotTablePro from './index';\nimport { inputs } from '../../../component.inputs.constants';\nimport { subInputs } from '../../../component.subinputs.constants';\nimport { previewData } from '../../../preview.data.constants';\n\nexport const meta = {\n name: 'PivotTablePro',\n label: 'Pivot Table',\n category: 'Table Charts',\n inputs: [\n inputs.dataset,\n {\n ...inputs.measures,\n label: 'Measures to display',\n inputs: [\n ...inputs.measures.inputs,\n {\n ...subInputs.boolean,\n name: 'showColumnTotal',\n label: 'Show column total',\n },\n {\n ...subInputs.boolean,\n name: 'showRowTotal',\n label: 'Show row total',\n },\n {\n ...subInputs.boolean,\n name: 'showAsPercentage',\n label: 'Show as percentage',\n description: 'If turned on, other measures may be ignored',\n defaultValue: false,\n },\n ],\n },\n {\n ...inputs.dimensionWithDateBounds,\n label: 'Row dimension',\n name: 'rowDimension',\n },\n {\n ...inputs.dimensionWithDateBounds,\n label: 'Column dimension',\n name: 'columnDimension',\n },\n inputs.title,\n inputs.description,\n inputs.tooltip,\n inputs.displayNullAs,\n {\n ...inputs.number,\n name: 'firstColumnWidth',\n label: 'First column width',\n description: 'Set the width in px (e.g. 200)',\n category: 'Component Settings',\n },\n {\n ...inputs.number,\n name: 'columnWidth',\n label: 'Column width',\n description: 'Set the width in px (e.g. 200)',\n category: 'Component Settings',\n },\n inputs.maxResults,\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nexport const preview = definePreview(PivotTablePro, {\n measures: [{ ...previewData.measure, inputs: { showRowTotal: true, showColumnTotal: true } }],\n rowDimension: previewData.dimension,\n columnDimension: previewData.dimensionGroup,\n results: previewData.results1Measure2Dimensions,\n hideMenu: true,\n});\n\nexport default defineComponent(PivotTablePro, meta, {\n props: (inputs: Inputs<typeof meta>) => {\n return {\n ...inputs,\n\n results: loadData({\n from: inputs.dataset,\n select: [inputs.rowDimension, inputs.columnDimension, ...inputs.measures],\n limit: inputs.maxResults,\n countRows: true,\n }),\n };\n },\n});\n"],"names":["meta","inputs","subInputs","preview","definePreview","PivotTablePro","previewData","PivotTablePro_emb","defineComponent","loadData"],"mappings":";;;;;AAYO,MAAMA,IAAO;AAAA,EAClB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV,QAAQ;AAAA,IACNC,EAAO;AAAA,IACP;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,OAAO;AAAA,MACP,QAAQ;AAAA,QACN,GAAGA,EAAO,SAAS;AAAA,QACnB;AAAA,UACE,GAAGC,EAAU;AAAA,UACb,MAAM;AAAA,UACN,OAAO;AAAA,QAAA;AAAA,QAET;AAAA,UACE,GAAGA,EAAU;AAAA,UACb,MAAM;AAAA,UACN,OAAO;AAAA,QAAA;AAAA,QAET;AAAA,UACE,GAAGA,EAAU;AAAA,UACb,MAAM;AAAA,UACN,OAAO;AAAA,UACP,aAAa;AAAA,UACb,cAAc;AAAA,QAAA;AAAA,MAChB;AAAA,IACF;AAAA,IAEF;AAAA,MACE,GAAGD,EAAO;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,IAAA;AAAA,IAER;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,IAAA;AAAA,IAERA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACP;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,MAAM;AAAA,MACN,OAAO;AAAA,MACP,aAAa;AAAA,MACb,UAAU;AAAA,IAAA;AAAA,IAEZ;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,MAAM;AAAA,MACN,OAAO;AAAA,MACP,aAAa;AAAA,MACb,UAAU;AAAA,IAAA;AAAA,IAEZA,EAAO;AAAA,EAAA;AAEX,GAEaE,IAAUC,EAAcC,GAAe;AAAA,EAClD,UAAU,CAAC,EAAE,GAAGC,EAAY,SAAS,QAAQ,EAAE,cAAc,IAAM,iBAAiB,GAAA,GAAQ;AAAA,EAC5F,cAAcA,EAAY;AAAA,EAC1B,iBAAiBA,EAAY;AAAA,EAC7B,SAASA,EAAY;AAAA,EACrB,UAAU;AACZ,CAAC,GAEDC,IAAeC,EAAgBH,GAAeL,GAAM;AAAA,EAClD,OAAO,CAACC,OACC;AAAA,IACL,GAAGA;AAAAA,IAEH,SAASQ,EAAS;AAAA,MAChB,MAAMR,EAAO;AAAA,MACb,QAAQ,CAACA,EAAO,cAAcA,EAAO,iBAAiB,GAAGA,EAAO,QAAQ;AAAA,MACxE,OAAOA,EAAO;AAAA,MACd,WAAW;AAAA,IAAA,CACZ;AAAA,EAAA;AAGP,CAAC;"}
1
+ {"version":3,"file":"PivotTablePro.js","sources":["../src/components/charts/tables/PivotTablePro/PivotTablePro.emb.ts"],"sourcesContent":["import { loadData } from '@embeddable.com/core';\nimport {\n defineComponent,\n definePreview,\n EmbeddedComponentMeta,\n Inputs,\n} from '@embeddable.com/react';\nimport PivotTablePro from './index';\nimport { inputs } from '../../../component.inputs.constants';\nimport { subInputs } from '../../../component.subinputs.constants';\nimport { previewData } from '../../../preview.data.constants';\n\nexport const meta = {\n name: 'PivotTablePro',\n label: 'Pivot Table',\n category: 'Table Charts',\n inputs: [\n inputs.dataset,\n {\n ...inputs.measures,\n label: 'Measures to display',\n inputs: [\n ...inputs.measures.inputs,\n {\n ...subInputs.boolean,\n name: 'showColumnTotal',\n label: 'Show column total',\n },\n {\n ...subInputs.boolean,\n name: 'showRowTotal',\n label: 'Show row total',\n },\n {\n ...subInputs.boolean,\n name: 'showAsPercentage',\n label: 'Show as percentage',\n description: 'If turned on, other measures may be ignored',\n defaultValue: false,\n },\n ],\n },\n {\n ...inputs.dimensionWithDateBounds,\n label: 'Column dimension',\n name: 'columnDimension',\n },\n {\n ...inputs.dimensionWithDateBounds,\n label: 'Primary row dimension',\n name: 'rowDimension',\n },\n {\n ...inputs.dimension,\n label: 'Secondary row dimension (optional)',\n name: 'subRowDimension',\n required: false,\n description:\n 'When set, each primary row becomes expandable. Clicking a row loads a breakdown by the second dimension.',\n },\n inputs.title,\n inputs.description,\n inputs.tooltip,\n inputs.displayNullAs,\n {\n ...inputs.number,\n name: 'firstColumnWidth',\n label: 'First column width',\n description: 'Set the width in px (e.g. 200)',\n category: 'Component Settings',\n },\n {\n ...inputs.number,\n name: 'columnWidth',\n label: 'Column width',\n description: 'Set the width in px (e.g. 200)',\n category: 'Component Settings',\n },\n inputs.maxResults,\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nexport const preview = definePreview(PivotTablePro, {\n measures: [{ ...previewData.measure, inputs: { showRowTotal: true, showColumnTotal: true } }],\n rowDimension: previewData.dimension,\n columnDimension: previewData.dimensionGroup,\n results: previewData.results1Measure2Dimensions,\n hideMenu: true,\n expandedRowKeys: [],\n setExpandedRowKey: () => {},\n});\n\nexport type PivotTableProState = {\n expandedRowKeys?: string[];\n};\n\nexport default defineComponent(PivotTablePro, meta, {\n props: (\n inputs: Inputs<typeof meta>,\n [state, setState]: [PivotTableProState, (state: PivotTableProState) => void],\n ) => {\n const expandedRowKeys = state?.expandedRowKeys ?? [];\n\n return {\n ...inputs,\n state,\n expandedRowKeys,\n setExpandedRowKey: (rowKey: string) =>\n setState({ expandedRowKeys: [...expandedRowKeys, rowKey] }),\n results: loadData({\n from: inputs.dataset,\n select: [inputs.rowDimension, inputs.columnDimension, ...inputs.measures],\n limit: inputs.maxResults,\n countRows: true,\n }),\n resultsSubRows:\n expandedRowKeys.length > 0\n ? loadData({\n from: inputs.dataset,\n select: [\n inputs.rowDimension,\n inputs.subRowDimension,\n inputs.columnDimension,\n ...inputs.measures,\n ],\n limit: inputs.maxResults,\n countRows: true,\n filters: [\n {\n property: inputs.rowDimension,\n operator: 'equals',\n value: expandedRowKeys,\n },\n ],\n })\n : undefined,\n };\n },\n});\n"],"names":["meta","inputs","subInputs","preview","definePreview","PivotTablePro","previewData","PivotTablePro_emb","defineComponent","state","setState","expandedRowKeys","rowKey","loadData"],"mappings":";;;;;AAYO,MAAMA,IAAO;AAAA,EAClB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV,QAAQ;AAAA,IACNC,EAAO;AAAA,IACP;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,OAAO;AAAA,MACP,QAAQ;AAAA,QACN,GAAGA,EAAO,SAAS;AAAA,QACnB;AAAA,UACE,GAAGC,EAAU;AAAA,UACb,MAAM;AAAA,UACN,OAAO;AAAA,QAAA;AAAA,QAET;AAAA,UACE,GAAGA,EAAU;AAAA,UACb,MAAM;AAAA,UACN,OAAO;AAAA,QAAA;AAAA,QAET;AAAA,UACE,GAAGA,EAAU;AAAA,UACb,MAAM;AAAA,UACN,OAAO;AAAA,UACP,aAAa;AAAA,UACb,cAAc;AAAA,QAAA;AAAA,MAChB;AAAA,IACF;AAAA,IAEF;AAAA,MACE,GAAGD,EAAO;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,IAAA;AAAA,IAER;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,IAAA;AAAA,IAER;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,MACN,UAAU;AAAA,MACV,aACE;AAAA,IAAA;AAAA,IAEJA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACP;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,MAAM;AAAA,MACN,OAAO;AAAA,MACP,aAAa;AAAA,MACb,UAAU;AAAA,IAAA;AAAA,IAEZ;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,MAAM;AAAA,MACN,OAAO;AAAA,MACP,aAAa;AAAA,MACb,UAAU;AAAA,IAAA;AAAA,IAEZA,EAAO;AAAA,EAAA;AAEX,GAEaE,IAAUC,EAAcC,GAAe;AAAA,EAClD,UAAU,CAAC,EAAE,GAAGC,EAAY,SAAS,QAAQ,EAAE,cAAc,IAAM,iBAAiB,GAAA,GAAQ;AAAA,EAC5F,cAAcA,EAAY;AAAA,EAC1B,iBAAiBA,EAAY;AAAA,EAC7B,SAASA,EAAY;AAAA,EACrB,UAAU;AAAA,EACV,iBAAiB,CAAA;AAAA,EACjB,mBAAmB,MAAM;AAAA,EAAC;AAC5B,CAAC,GAMDC,IAAeC,EAAgBH,GAAeL,GAAM;AAAA,EAClD,OAAO,CACLC,GACA,CAACQ,GAAOC,CAAQ,MACb;AACH,UAAMC,KAAkBF,KAAA,gBAAAA,EAAO,oBAAmB,CAAA;AAElD,WAAO;AAAA,MACL,GAAGR;AAAAA,MACH,OAAAQ;AAAA,MACA,iBAAAE;AAAA,MACA,mBAAmB,CAACC,MAClBF,EAAS,EAAE,iBAAiB,CAAC,GAAGC,GAAiBC,CAAM,GAAG;AAAA,MAC5D,SAASC,EAAS;AAAA,QAChB,MAAMZ,EAAO;AAAA,QACb,QAAQ,CAACA,EAAO,cAAcA,EAAO,iBAAiB,GAAGA,EAAO,QAAQ;AAAA,QACxE,OAAOA,EAAO;AAAA,QACd,WAAW;AAAA,MAAA,CACZ;AAAA,MACD,gBACEU,EAAgB,SAAS,IACrBE,EAAS;AAAA,QACP,MAAMZ,EAAO;AAAA,QACb,QAAQ;AAAA,UACNA,EAAO;AAAA,UACPA,EAAO;AAAA,UACPA,EAAO;AAAA,UACP,GAAGA,EAAO;AAAA,QAAA;AAAA,QAEZ,OAAOA,EAAO;AAAA,QACd,WAAW;AAAA,QACX,SAAS;AAAA,UACP;AAAA,YACE,UAAUA,EAAO;AAAA,YACjB,UAAU;AAAA,YACV,OAAOU;AAAA,UAAA;AAAA,QACT;AAAA,MACF,CACD,IACD;AAAA,IAAA;AAAA,EAEV;AACF,CAAC;"}
@@ -1,8 +1,8 @@
1
1
  import { definePreview as d, defineComponent as m } from "@embeddable.com/react";
2
- import { V as o, l as u } from "./Color.type.emb-DIW_7wKP.js";
3
- import { M as p, S as i } from "./index-DpyP7BhA.js";
4
- import { b as n } from "./component.inputs.constants-C-pP69Lh.js";
5
- import { p as l } from "./preview.data.constants-C-K-9fN3.js";
2
+ import { V as o, l as u } from "./Color.type.emb-tRPNtuPs.js";
3
+ import { M as p, S as i } from "./index-CGmgAyAB.js";
4
+ import { b as n } from "./component.inputs.constants-DIZMtQw0.js";
5
+ import { p as l } from "./preview.data.constants-DDnGcvzL.js";
6
6
  const c = {
7
7
  name: "SingleSelectFieldPro",
8
8
  label: "Single Select Field",
@@ -1,8 +1,8 @@
1
- import { V as D, l, m as b } from "./Color.type.emb-DIW_7wKP.js";
1
+ import { V as D, l, m as b } from "./Color.type.emb-tRPNtuPs.js";
2
2
  import { definePreview as w, defineComponent as M } from "@embeddable.com/react";
3
- import { T as p } from "./index-Bgwr2wTg.js";
4
- import { b as i, s as r } from "./component.inputs.constants-C-pP69Lh.js";
5
- import { p as s } from "./preview.data.constants-C-K-9fN3.js";
3
+ import { T as p } from "./index-BSXcd7SN.js";
4
+ import { b as i, s as r } from "./component.inputs.constants-DIZMtQw0.js";
5
+ import { p as s } from "./preview.data.constants-DDnGcvzL.js";
6
6
  const h = {
7
7
  name: "TableChartPaginated",
8
8
  label: "Table Chart - Paginated",
@@ -1,10 +1,10 @@
1
- import { j as N, U as se, V as ue, l as F, m as le } from "./Color.type.emb-DIW_7wKP.js";
1
+ import { j as N, U as se, V as ue, l as F, m as le } from "./Color.type.emb-tRPNtuPs.js";
2
2
  import { useTheme as ce, definePreview as fe, defineComponent as de } from "@embeddable.com/react";
3
- import { a as me, r as pe, i as ge, b as w, s as M } from "./component.inputs.constants-C-pP69Lh.js";
4
- import { C as he } from "./ChartCard-BE_Kz3jK.js";
3
+ import { a as me, r as pe, i as ge, b as w, s as M } from "./component.inputs.constants-DIZMtQw0.js";
4
+ import { C as he } from "./ChartCard-BmBTN11g.js";
5
5
  import { useState as z, useRef as R, useEffect as k, useCallback as be } from "react";
6
- import { b as Ee, c as we } from "./tables.utils-CiiwEo1e.js";
7
- import { p as O } from "./preview.data.constants-C-K-9fN3.js";
6
+ import { b as Ee, c as we } from "./tables.utils-CBn15nfE.js";
7
+ import { p as O } from "./preview.data.constants-DDnGcvzL.js";
8
8
  const P = 50, { getOwnPropertyNames: ye, getOwnPropertySymbols: je } = Object, { hasOwnProperty: Ce } = Object.prototype;
9
9
  function U(n, e) {
10
10
  return function(r, a, u) {
@@ -1,7 +1,7 @@
1
- import { d as D, C as M } from "./Color.type.emb-DIW_7wKP.js";
2
- import { r as O, g as T } from "./charts.utils-B4kq1sTA.js";
3
- import { g as f } from "./formatter.utils-C9mQTOD-.js";
4
- import { a as C } from "./styles.utils-u6uj51UE.js";
1
+ import { d as D, C as M } from "./Color.type.emb-tRPNtuPs.js";
2
+ import { r as O, g as T } from "./charts.utils-5taHDsqH.js";
3
+ import { g as f } from "./formatter.utils-BuiHCNHH.js";
4
+ import { a as C } from "./styles.utils-BfpH_m_W.js";
5
5
  const _ = (s, d) => {
6
6
  var g;
7
7
  const m = f(d), { data: r = [], dimension: c, groupDimension: a, measure: i } = s, n = [...new Set(r.map((o) => o[c.name]).filter((o) => o != null))].sort(), t = `${a.name}${a.nativeType === M && ((g = a.inputs) != null && g.granularity) ? `.${a.inputs.granularity}` : ""}`, e = [...new Set(r.map((o) => o[t]))].filter((o) => o != null), l = D(), u = e.map((o, b) => {
@@ -151,4 +151,4 @@ export {
151
151
  _ as b,
152
152
  E as g
153
153
  };
154
- //# sourceMappingURL=bars.utils-BkjTtlIv.js.map
154
+ //# sourceMappingURL=bars.utils-C6w2ekZW.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bars.utils-BkjTtlIv.js","sources":["../src/components/charts/bars/bars.utils.ts"],"sourcesContent":["import { CUBE_DIMENSION_TYPE_TIME, 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 { groupTailAsOther } from '../charts.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 },\n theme: Theme,\n): ChartData<'bar'> => {\n const themeFormatter = getThemeFormatter(theme);\n const { data = [], dimension, groupDimension, measure } = props;\n\n const axis = [...new Set(data.map((d) => d[dimension.name]).filter((d) => d != null))].sort();\n const groupDimensionName = `${groupDimension.name}${groupDimension.nativeType === CUBE_DIMENSION_TYPE_TIME && groupDimension.inputs?.granularity ? `.${groupDimension.inputs.granularity}` : ''}`;\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 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(dimension, label);\n },\n label: (context) => {\n const measure = measures[context.datasetIndex % measures.length]!;\n const raw = context.raw as number;\n return `${themeFormatter.data(dimension, context.dataset.label) || ''}: ${themeFormatter.data(measure, raw)}`;\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"],"names":["getBarStackedChartProData","props","theme","themeFormatter","getThemeFormatter","data","dimension","groupDimension","measure","axis","d","groupDimensionName","CUBE_DIMENSION_TYPE_TIME","_a","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","label","raw","_event","elements","chart","element","axisDimensionValue","groupingDimensionValue"],"mappings":"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"}
1
+ {"version":3,"file":"bars.utils-C6w2ekZW.js","sources":["../src/components/charts/bars/bars.utils.ts"],"sourcesContent":["import { CUBE_DIMENSION_TYPE_TIME, 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 { groupTailAsOther } from '../charts.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 },\n theme: Theme,\n): ChartData<'bar'> => {\n const themeFormatter = getThemeFormatter(theme);\n const { data = [], dimension, groupDimension, measure } = props;\n\n const axis = [...new Set(data.map((d) => d[dimension.name]).filter((d) => d != null))].sort();\n const groupDimensionName = `${groupDimension.name}${groupDimension.nativeType === CUBE_DIMENSION_TYPE_TIME && groupDimension.inputs?.granularity ? `.${groupDimension.inputs.granularity}` : ''}`;\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 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(dimension, label);\n },\n label: (context) => {\n const measure = measures[context.datasetIndex % measures.length]!;\n const raw = context.raw as number;\n return `${themeFormatter.data(dimension, context.dataset.label) || ''}: ${themeFormatter.data(measure, raw)}`;\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"],"names":["getBarStackedChartProData","props","theme","themeFormatter","getThemeFormatter","data","dimension","groupDimension","measure","axis","d","groupDimensionName","CUBE_DIMENSION_TYPE_TIME","_a","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","label","raw","_event","elements","chart","element","axisDimensionValue","groupingDimensionValue"],"mappings":"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"}