@embeddable.com/remarkable-pro 0.1.31 → 0.2.0

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 (231) 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-ClbFwtXO.js → DimensionAndMeasureSingleSelectField-BsBSTKKc.js} +2 -2
  11. package/dist/{DimensionAndMeasureSingleSelectField-ClbFwtXO.js.map → DimensionAndMeasureSingleSelectField-BsBSTKKc.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-Di0ay_uj.js → GranularitySelectField-DBaZn-Me.js} +2 -2
  18. package/dist/{GranularitySelectField-Di0ay_uj.js.map → GranularitySelectField-DBaZn-Me.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/MarkdownPro.js +1 -1
  28. package/dist/MeasureMultiSelectFieldPro.js +1 -1
  29. package/dist/MeasureSingleSelectFieldPro.js +1 -1
  30. package/dist/MultiSelectFieldPro.js +1 -1
  31. package/dist/PieChartPro.js +1 -1
  32. package/dist/PivotTablePro.js +1 -1
  33. package/dist/SingleSelectFieldPro.js +1 -1
  34. package/dist/TableChartPaginated.js +1 -1
  35. package/dist/TableScrollable.js +1 -1
  36. package/dist/TextFieldPro.js +1 -1
  37. package/dist/bars.loadData.utils-3BlUREY3.js +126 -0
  38. package/dist/bars.loadData.utils-3BlUREY3.js.map +1 -0
  39. package/dist/bars.utils-CG7i6UTJ.js +159 -0
  40. package/dist/bars.utils-CG7i6UTJ.js.map +1 -0
  41. package/dist/charts.fillGaps.hooks-B6T9882L.js +70 -0
  42. package/dist/charts.fillGaps.hooks-B6T9882L.js.map +1 -0
  43. package/dist/{charts.utils-ZAdb7oJ-.js → charts.utils-BMX0edl3.js} +3480 -3511
  44. package/dist/charts.utils-BMX0edl3.js.map +1 -0
  45. package/dist/clientContext.utils-DpB5KsfX.js +15 -0
  46. package/dist/clientContext.utils-DpB5KsfX.js.map +1 -0
  47. package/dist/{component.inputs.constants-C-vfrygQ.js → component.inputs.constants-C7tJAhsQ.js} +236 -193
  48. package/dist/component.inputs.constants-C7tJAhsQ.js.map +1 -0
  49. package/dist/components/charts/bars/BarChartDefaultHorizontalPro/definition.d.ts +4 -3
  50. package/dist/components/charts/bars/BarChartDefaultHorizontalPro/definition.d.ts.map +1 -1
  51. package/dist/components/charts/bars/BarChartDefaultPro/definition.d.ts +4 -3
  52. package/dist/components/charts/bars/BarChartDefaultPro/definition.d.ts.map +1 -1
  53. package/dist/components/charts/bars/BarChartGroupedHorizontalPro/BarChartGroupedHorizontalPro.emb.d.ts +11 -0
  54. package/dist/components/charts/bars/BarChartGroupedHorizontalPro/BarChartGroupedHorizontalPro.emb.d.ts.map +1 -1
  55. package/dist/components/charts/bars/BarChartGroupedHorizontalPro/definition.d.ts +39 -12
  56. package/dist/components/charts/bars/BarChartGroupedHorizontalPro/definition.d.ts.map +1 -1
  57. package/dist/components/charts/bars/BarChartGroupedHorizontalPro/index.d.ts +5 -1
  58. package/dist/components/charts/bars/BarChartGroupedHorizontalPro/index.d.ts.map +1 -1
  59. package/dist/components/charts/bars/BarChartGroupedPro/BarChartGroupedPro.emb.d.ts +11 -0
  60. package/dist/components/charts/bars/BarChartGroupedPro/BarChartGroupedPro.emb.d.ts.map +1 -1
  61. package/dist/components/charts/bars/BarChartGroupedPro/definition.d.ts +39 -12
  62. package/dist/components/charts/bars/BarChartGroupedPro/definition.d.ts.map +1 -1
  63. package/dist/components/charts/bars/BarChartGroupedPro/index.d.ts +5 -1
  64. package/dist/components/charts/bars/BarChartGroupedPro/index.d.ts.map +1 -1
  65. package/dist/components/charts/bars/BarChartStackedHorizontalPro/BarChartStackedHorizontalPro.emb.d.ts +11 -0
  66. package/dist/components/charts/bars/BarChartStackedHorizontalPro/BarChartStackedHorizontalPro.emb.d.ts.map +1 -1
  67. package/dist/components/charts/bars/BarChartStackedHorizontalPro/definition.d.ts +39 -12
  68. package/dist/components/charts/bars/BarChartStackedHorizontalPro/definition.d.ts.map +1 -1
  69. package/dist/components/charts/bars/BarChartStackedHorizontalPro/index.d.ts +5 -1
  70. package/dist/components/charts/bars/BarChartStackedHorizontalPro/index.d.ts.map +1 -1
  71. package/dist/components/charts/bars/BarChartStackedPro/BarChartStackedPro.emb.d.ts +11 -0
  72. package/dist/components/charts/bars/BarChartStackedPro/BarChartStackedPro.emb.d.ts.map +1 -1
  73. package/dist/components/charts/bars/BarChartStackedPro/definition.d.ts +39 -12
  74. package/dist/components/charts/bars/BarChartStackedPro/definition.d.ts.map +1 -1
  75. package/dist/components/charts/bars/BarChartStackedPro/index.d.ts +5 -1
  76. package/dist/components/charts/bars/BarChartStackedPro/index.d.ts.map +1 -1
  77. package/dist/components/charts/bars/bars.hooks.d.ts +8 -0
  78. package/dist/components/charts/bars/bars.hooks.d.ts.map +1 -0
  79. package/dist/components/charts/bars/bars.hooks.test.d.ts +2 -0
  80. package/dist/components/charts/bars/bars.hooks.test.d.ts.map +1 -0
  81. package/dist/components/charts/bars/bars.loadData.utils.d.ts +51 -0
  82. package/dist/components/charts/bars/bars.loadData.utils.d.ts.map +1 -0
  83. package/dist/components/charts/bars/bars.loadData.utils.test.d.ts +2 -0
  84. package/dist/components/charts/bars/bars.loadData.utils.test.d.ts.map +1 -0
  85. package/dist/components/charts/bars/bars.utils.d.ts +1 -0
  86. package/dist/components/charts/bars/bars.utils.d.ts.map +1 -1
  87. package/dist/components/charts/kpis/KpiChartNumberComparisonPro/definition.d.ts +6 -5
  88. package/dist/components/charts/kpis/KpiChartNumberComparisonPro/definition.d.ts.map +1 -1
  89. package/dist/components/charts/lines/LineChartComparisonDefaultPro/definition.d.ts +6 -5
  90. package/dist/components/charts/lines/LineChartComparisonDefaultPro/definition.d.ts.map +1 -1
  91. package/dist/components/charts/lines/LineChartDefaultPro/definition.d.ts +4 -3
  92. package/dist/components/charts/lines/LineChartDefaultPro/definition.d.ts.map +1 -1
  93. package/dist/components/charts/lines/LineChartGroupedPro/definition.d.ts +4 -3
  94. package/dist/components/charts/lines/LineChartGroupedPro/definition.d.ts.map +1 -1
  95. package/dist/components/charts/tables/HeatMapPro/definition.d.ts +4 -3
  96. package/dist/components/charts/tables/HeatMapPro/definition.d.ts.map +1 -1
  97. package/dist/components/charts/tables/PivotTablePro/definition.d.ts +6 -5
  98. package/dist/components/charts/tables/PivotTablePro/definition.d.ts.map +1 -1
  99. package/dist/components/component.inputs.constants.d.ts +26 -0
  100. package/dist/components/component.inputs.constants.d.ts.map +1 -1
  101. package/dist/components/editors/ComparisonPeriodSelectFieldPro/index.d.ts.map +1 -1
  102. package/dist/components/editors/dates/DateRangePickerCustomPro/index.d.ts.map +1 -1
  103. package/dist/components/editors/dates/DateRangePickerPresetsPro/DateRangePickerPresetsPro.types.d.ts +1 -1
  104. package/dist/components/editors/dates/DateRangePickerPresetsPro/DateRangePickerPresetsPro.types.d.ts.map +1 -1
  105. package/dist/components/editors/dates/DateRangePickerPresetsPro/DateRangePickerPresetsPro.utils.d.ts +1 -1
  106. package/dist/components/editors/dates/DateRangePickerPresetsPro/DateRangePickerPresetsPro.utils.d.ts.map +1 -1
  107. package/dist/components/editors/dates/DateRangePickerPresetsPro/index.d.ts.map +1 -1
  108. package/dist/components/editors/dates/dates.utils.d.ts +3 -3
  109. package/dist/components/editors/dates/dates.utils.d.ts.map +1 -1
  110. package/dist/components/types/SortDirection.type.emb.d.ts +9 -0
  111. package/dist/components/types/SortDirection.type.emb.d.ts.map +1 -0
  112. package/dist/{dates.utils-C3LPV893.js → dates.utils-D44sdrNs.js} +36 -36
  113. package/dist/{dates.utils-C3LPV893.js.map → dates.utils-D44sdrNs.js.map} +1 -1
  114. package/dist/definition-B1B71Q9P.js +164 -0
  115. package/dist/definition-B1B71Q9P.js.map +1 -0
  116. package/dist/{definition-5a__Y0lx.js → definition-B1t6-ToS.js} +89 -86
  117. package/dist/definition-B1t6-ToS.js.map +1 -0
  118. package/dist/{definition-ChFv8Vq8.js → definition-B6Jm5skX.js} +2 -2
  119. package/dist/{definition-ChFv8Vq8.js.map → definition-B6Jm5skX.js.map} +1 -1
  120. package/dist/{definition-DRFMnEQh.js → definition-BCbRycZt.js} +3 -3
  121. package/dist/{definition-DRFMnEQh.js.map → definition-BCbRycZt.js.map} +1 -1
  122. package/dist/{definition-B9E-HZdm.js → definition-BIk4lZdI.js} +3 -3
  123. package/dist/{definition-B9E-HZdm.js.map → definition-BIk4lZdI.js.map} +1 -1
  124. package/dist/{definition-D1wwcuOy.js → definition-BKcHxtMp.js} +3 -3
  125. package/dist/{definition-D1wwcuOy.js.map → definition-BKcHxtMp.js.map} +1 -1
  126. package/dist/definition-BejgCcXe.js +279 -0
  127. package/dist/{definition-xGVDcBlW.js.map → definition-BejgCcXe.js.map} +1 -1
  128. package/dist/definition-Bg3R-QHm.js +206 -0
  129. package/dist/definition-Bg3R-QHm.js.map +1 -0
  130. package/dist/{definition-Bhvd22lu.js → definition-BomoMNHu.js} +19 -18
  131. package/dist/definition-BomoMNHu.js.map +1 -0
  132. package/dist/{definition-CzAzy1Hk.js → definition-BqIza8Nx.js} +3 -3
  133. package/dist/{definition-CzAzy1Hk.js.map → definition-BqIza8Nx.js.map} +1 -1
  134. package/dist/{definition-Di3x_6Rh.js → definition-BxDRujfc.js} +68 -66
  135. package/dist/{definition-Di3x_6Rh.js.map → definition-BxDRujfc.js.map} +1 -1
  136. package/dist/definition-Bx_a3I-X.js +208 -0
  137. package/dist/definition-Bx_a3I-X.js.map +1 -0
  138. package/dist/{definition-DxkipQYz.js → definition-CLDcybuA.js} +56 -51
  139. package/dist/definition-CLDcybuA.js.map +1 -0
  140. package/dist/{definition-DSAR_Bsa.js → definition-C_wdRHYX.js} +3 -3
  141. package/dist/{definition-DSAR_Bsa.js.map → definition-C_wdRHYX.js.map} +1 -1
  142. package/dist/{definition-DsDQF6Da.js → definition-CbkzLjXK.js} +3 -3
  143. package/dist/{definition-DsDQF6Da.js.map → definition-CbkzLjXK.js.map} +1 -1
  144. package/dist/{definition-wDuSjm3O.js → definition-Cgq79V22.js} +3 -3
  145. package/dist/{definition-wDuSjm3O.js.map → definition-Cgq79V22.js.map} +1 -1
  146. package/dist/{definition-FEz36Zkx.js → definition-Cx1UPIho.js} +3 -3
  147. package/dist/{definition-FEz36Zkx.js.map → definition-Cx1UPIho.js.map} +1 -1
  148. package/dist/{definition-Cl_4hkGI.js → definition-D4-0-tXB.js} +3 -3
  149. package/dist/{definition-Cl_4hkGI.js.map → definition-D4-0-tXB.js.map} +1 -1
  150. package/dist/{definition-DM13nXMm.js → definition-DFEQMSrJ.js} +3 -3
  151. package/dist/{definition-DM13nXMm.js.map → definition-DFEQMSrJ.js.map} +1 -1
  152. package/dist/{definition-CV2xoi69.js → definition-DFoesKHP.js} +2 -2
  153. package/dist/{definition-CV2xoi69.js.map → definition-DFoesKHP.js.map} +1 -1
  154. package/dist/{definition-CBevT5lk.js → definition-DqtPYFiz.js} +39 -30
  155. package/dist/definition-DqtPYFiz.js.map +1 -0
  156. package/dist/{definition-CWVSN9UB.js → definition-MdprJNc9.js} +4 -4
  157. package/dist/{definition-CWVSN9UB.js.map → definition-MdprJNc9.js.map} +1 -1
  158. package/dist/definition-NQQg5mwf.js +207 -0
  159. package/dist/definition-NQQg5mwf.js.map +1 -0
  160. package/dist/{definition-DpFvucVl.js → definition-OA_X18FK.js} +48 -46
  161. package/dist/definition-OA_X18FK.js.map +1 -0
  162. package/dist/definition-nSxl9weT.js +525 -0
  163. package/dist/definition-nSxl9weT.js.map +1 -0
  164. package/dist/{definition-Bdcy082b.js → definition-ngOUqoDo.js} +3 -3
  165. package/dist/{definition-Bdcy082b.js.map → definition-ngOUqoDo.js.map} +1 -1
  166. package/dist/{definition-C8CAdqhV.js → definition-oe6halnQ.js} +2 -2
  167. package/dist/{definition-C8CAdqhV.js.map → definition-oe6halnQ.js.map} +1 -1
  168. package/dist/definition-poLEt7kb.js +210 -0
  169. package/dist/definition-poLEt7kb.js.map +1 -0
  170. package/dist/definition-uj4b0NtW.js +209 -0
  171. package/dist/definition-uj4b0NtW.js.map +1 -0
  172. package/dist/{definition-Cxji761B.js → definition-v66e9pZV.js} +3 -3
  173. package/dist/{definition-Cxji761B.js.map → definition-v66e9pZV.js.map} +1 -1
  174. package/dist/definition-xkAbcSB6.js +166 -0
  175. package/dist/definition-xkAbcSB6.js.map +1 -0
  176. package/dist/{dimensionsAndMeasures.utils-x51eIYbW.js → dimensionsAndMeasures.utils-DtUfSnpA.js} +2 -2
  177. package/dist/{dimensionsAndMeasures.utils-x51eIYbW.js.map → dimensionsAndMeasures.utils-DtUfSnpA.js.map} +1 -1
  178. package/dist/embeddable-components.json +36 -36
  179. package/dist/embeddable-theme-0137e.js +4437 -4455
  180. package/dist/{embeddable-types-671f4.js → embeddable-types-4089f.js} +55 -43
  181. package/dist/embeddable-types.js.map +1 -1
  182. package/dist/{formatter.utils-DXI8s5Y5.js → formatter.utils-BLaKKpAa.js} +2 -2
  183. package/dist/{formatter.utils-DXI8s5Y5.js.map → formatter.utils-BLaKKpAa.js.map} +1 -1
  184. package/dist/{granularity.utils-DYOJiFaK.js → granularity.utils-Hj10GihD.js} +2 -2
  185. package/dist/{granularity.utils-DYOJiFaK.js.map → granularity.utils-Hj10GihD.js.map} +1 -1
  186. package/dist/index.js +44 -44
  187. package/dist/{pies.utils-4osQ9x_J.js → pies.utils-DvbvSz5H.js} +3 -3
  188. package/dist/{pies.utils-4osQ9x_J.js.map → pies.utils-DvbvSz5H.js.map} +1 -1
  189. package/dist/{tables.utils-BpqebRcu.js → tables.utils-BF3qUwBS.js} +3 -3
  190. package/dist/{tables.utils-BpqebRcu.js.map → tables.utils-BF3qUwBS.js.map} +1 -1
  191. package/dist/theme/defaults/defaults.ComparisonPeriods.constants.d.ts.map +1 -1
  192. package/dist/theme/defaults/defaults.DateRanges.constants.d.ts +1 -1
  193. package/dist/theme/defaults/defaults.DateRanges.constants.d.ts.map +1 -1
  194. package/dist/theme/theme.constants.d.ts.map +1 -1
  195. package/dist/theme/theme.types.d.ts +4 -0
  196. package/dist/theme/theme.types.d.ts.map +1 -1
  197. package/dist/theme/utils/clientContext.utils.d.ts +2 -0
  198. package/dist/theme/utils/clientContext.utils.d.ts.map +1 -0
  199. package/dist/timeRange.utils-CcP33PfM.js +20 -0
  200. package/dist/timeRange.utils-CcP33PfM.js.map +1 -0
  201. package/package.json +1 -1
  202. package/dist/bars.utils-B8_oDn4j.js +0 -157
  203. package/dist/bars.utils-B8_oDn4j.js.map +0 -1
  204. package/dist/charts.fillGaps.hooks-DDOGO5JR.js +0 -70
  205. package/dist/charts.fillGaps.hooks-DDOGO5JR.js.map +0 -1
  206. package/dist/charts.utils-ZAdb7oJ-.js.map +0 -1
  207. package/dist/component.inputs.constants-C-vfrygQ.js.map +0 -1
  208. package/dist/definition-5T5HRGnj.js +0 -162
  209. package/dist/definition-5T5HRGnj.js.map +0 -1
  210. package/dist/definition-5a__Y0lx.js.map +0 -1
  211. package/dist/definition-BKX3li26.js +0 -201
  212. package/dist/definition-BKX3li26.js.map +0 -1
  213. package/dist/definition-Bhvd22lu.js.map +0 -1
  214. package/dist/definition-BtJ2IsdK.js +0 -174
  215. package/dist/definition-BtJ2IsdK.js.map +0 -1
  216. package/dist/definition-Bxj6nf61.js +0 -170
  217. package/dist/definition-Bxj6nf61.js.map +0 -1
  218. package/dist/definition-C4aPFAKq.js +0 -164
  219. package/dist/definition-C4aPFAKq.js.map +0 -1
  220. package/dist/definition-CBevT5lk.js.map +0 -1
  221. package/dist/definition-DETLn9Wn.js +0 -172
  222. package/dist/definition-DETLn9Wn.js.map +0 -1
  223. package/dist/definition-DpFvucVl.js.map +0 -1
  224. package/dist/definition-DxkipQYz.js.map +0 -1
  225. package/dist/definition-j7sh3jCh.js +0 -172
  226. package/dist/definition-j7sh3jCh.js.map +0 -1
  227. package/dist/definition-mtzDmBoh.js +0 -515
  228. package/dist/definition-mtzDmBoh.js.map +0 -1
  229. package/dist/definition-xGVDcBlW.js +0 -277
  230. package/dist/timeRange.utils-D1hjtzlU.js +0 -20
  231. package/dist/timeRange.utils-D1hjtzlU.js.map +0 -1
@@ -0,0 +1,159 @@
1
+ import { t as O, v as w } from "./index-CJYh9LRs.js";
2
+ import { r as M, g as T, a as $ } from "./charts.utils-BMX0edl3.js";
3
+ import { g as C } from "./formatter.utils-BLaKKpAa.js";
4
+ import { g as f } from "./styles.utils-C8CnV0SB.js";
5
+ const A = (s, d) => {
6
+ var b;
7
+ const m = C(d), { data: o = [], dimension: c, groupDimension: a, measure: i } = s, n = [...new Set(o.map((t) => t[c.name]).filter((t) => t != null))];
8
+ n.sort();
9
+ const e = s.axisOrder ? s.axisOrder.filter((t) => n.includes(t)) : n, r = `${a.name}${a.nativeType === w && ((b = a.inputs) != null && b.granularity) ? `.${a.inputs.granularity}` : ""}`, l = [...new Set(o.map((t) => t[r]))].filter((t) => t != null), u = O(), g = l.map((t, h) => {
10
+ const v = f({
11
+ dimensionOrMeasure: a,
12
+ theme: d,
13
+ color: "background",
14
+ value: `${a.name}.${t}`,
15
+ index: h,
16
+ chartColors: u
17
+ }), P = f({
18
+ dimensionOrMeasure: a,
19
+ theme: d,
20
+ color: "border",
21
+ value: `${a.name}.${t}`,
22
+ index: h,
23
+ chartColors: u
24
+ });
25
+ return {
26
+ label: m.data(a, t),
27
+ rawLabel: t,
28
+ backgroundColor: v,
29
+ borderColor: P,
30
+ data: e.map((p) => {
31
+ const k = o.find(
32
+ (D) => D[r] === t && D[c.name] === p
33
+ );
34
+ return k ? Number(k[i.name]) : 0;
35
+ })
36
+ };
37
+ });
38
+ return {
39
+ labels: e,
40
+ datasets: g
41
+ };
42
+ }, E = (s, d = M) => {
43
+ if (!s.data)
44
+ return {
45
+ labels: [],
46
+ datasets: [{ data: [] }]
47
+ };
48
+ const m = C(d), o = T(s.data, s.dimension, s.measures, s.maxItems), c = O();
49
+ return {
50
+ labels: o.map((a) => a[s.dimension.name]),
51
+ datasets: s.measures.map((a, i) => {
52
+ const n = f({
53
+ dimensionOrMeasure: a,
54
+ theme: d,
55
+ color: "background",
56
+ value: a.name,
57
+ index: i,
58
+ chartColors: c
59
+ }), e = f({
60
+ dimensionOrMeasure: a,
61
+ theme: d,
62
+ color: "border",
63
+ value: a.name,
64
+ index: i,
65
+ chartColors: c
66
+ });
67
+ return {
68
+ label: m.dimensionOrMeasureTitle(a),
69
+ data: o.map((r) => r[a.name] ?? 0),
70
+ backgroundColor: n,
71
+ borderColor: e
72
+ };
73
+ })
74
+ };
75
+ }, N = (s, d) => {
76
+ const { datasets: m } = s.chart.data, o = s.dataIndex, c = m.reduce((a, i) => {
77
+ const n = i.data[o];
78
+ return a + (n || 0);
79
+ }, 0);
80
+ return d(c);
81
+ }, I = (s, d) => {
82
+ const { onBarClicked: m, measures: o, dimension: c, horizontal: a, data: i } = s, n = C(d);
83
+ return {
84
+ plugins: {
85
+ legend: { position: d.charts.legendPosition ?? "bottom" },
86
+ datalabels: {
87
+ labels: {
88
+ total: {
89
+ formatter: (e, r) => N(
90
+ r,
91
+ (l) => n.data(o[0], l)
92
+ )
93
+ },
94
+ value: {
95
+ formatter: (e, r) => {
96
+ var u;
97
+ const l = o[r.datasetIndex % o.length];
98
+ return (u = l.inputs) != null && u.showValueAsPercentage ? $(Number(e), r.dataset.data) : n.data(l, e);
99
+ }
100
+ }
101
+ }
102
+ },
103
+ tooltip: {
104
+ callbacks: {
105
+ title: (e) => {
106
+ var l;
107
+ const r = (l = e[0]) == null ? void 0 : l.label;
108
+ return n.data(c, r);
109
+ },
110
+ label: (e) => {
111
+ var t;
112
+ const r = o[e.datasetIndex % o.length], l = e.raw, u = n.data(c, e.dataset.label) || "", g = n.data(r, l);
113
+ let b = "";
114
+ return (t = r.inputs) != null && t.showValueAsPercentage && (b = `(${$(l, e.dataset.data)})`), `${u}: ${g} ${b}`;
115
+ }
116
+ }
117
+ }
118
+ },
119
+ scales: {
120
+ x: {
121
+ ticks: {
122
+ callback: (e) => {
123
+ if (a)
124
+ return n.data(o[0], e);
125
+ if (!i || !i.labels) return;
126
+ const r = i.labels[Number(e)];
127
+ return n.data(c, r);
128
+ }
129
+ }
130
+ },
131
+ y: {
132
+ ticks: {
133
+ callback: (e) => {
134
+ if (!a)
135
+ return n.data(o[0], e);
136
+ if (!i || !i.labels) return;
137
+ const r = i.labels[Number(e)];
138
+ return n.data(c, r);
139
+ }
140
+ }
141
+ }
142
+ },
143
+ onClick: (e, r, l) => {
144
+ var t;
145
+ if (!m) return;
146
+ const u = r[0], g = u ? l.data.labels[u.index] : null, b = u ? (t = l.data.datasets[u.datasetIndex]) == null ? void 0 : t.rawLabel : null;
147
+ m({
148
+ axisDimensionValue: g,
149
+ groupingDimensionValue: b
150
+ });
151
+ }
152
+ };
153
+ };
154
+ export {
155
+ I as a,
156
+ A as b,
157
+ E as g
158
+ };
159
+ //# sourceMappingURL=bars.utils-CG7i6UTJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bars.utils-CG7i6UTJ.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 { getDatalabelPercentage, 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 axisOrder?: string[];\n },\n theme: Theme,\n): ChartData<'bar'> => {\n const themeFormatter = getThemeFormatter(theme);\n const { data = [], dimension, groupDimension, measure } = props;\n\n const uniqueAxis = [...new Set(data.map((d) => d[dimension.name]).filter((d) => d != null))];\n uniqueAxis.sort();\n\n const axis = props.axisOrder ? props.axisOrder.filter((v) => uniqueAxis.includes(v)) : uniqueAxis;\n const groupDimensionName = `${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\n if (measure.inputs?.showValueAsPercentage) {\n return getDatalabelPercentage(Number(value), context.dataset.data);\n }\n return themeFormatter.data(measure, value);\n },\n },\n },\n },\n tooltip: {\n callbacks: {\n title: (context) => {\n const label = context[0]?.label;\n return themeFormatter.data(dimension, label);\n },\n\n label: (context) => {\n const measure = measures[context.datasetIndex % measures.length]!;\n const raw = context.raw as number;\n\n const dimensionLabel = themeFormatter.data(dimension, context.dataset.label) || '';\n const measureValue = themeFormatter.data(measure, raw);\n\n let percentage = '';\n if (measure.inputs?.showValueAsPercentage) {\n percentage = `(${getDatalabelPercentage(raw, context.dataset.data)})`;\n }\n return `${dimensionLabel}: ${measureValue} ${percentage}`;\n },\n },\n },\n },\n scales: {\n x: {\n ticks: {\n callback: (value) => {\n if (horizontal) {\n return themeFormatter.data(measures[0]!, value);\n }\n\n if (!data || !data.labels) return undefined;\n\n const label = data.labels[Number(value)] as string;\n\n return themeFormatter.data(dimension, label);\n },\n },\n },\n y: {\n ticks: {\n callback: (value) => {\n if (!horizontal) {\n return themeFormatter.data(measures[0]!, value);\n }\n if (!data || !data.labels) return undefined;\n const label = data.labels[Number(value)] as string;\n return themeFormatter.data(dimension, label);\n },\n },\n },\n },\n onClick: (_event, elements, chart) => {\n if (!onBarClicked) return;\n\n const element = elements[0];\n const axisDimensionValue = (element ? chart.data.labels![element.index] : null) as\n | string\n | null;\n const groupingDimensionValue = (\n element\n ? (chart.data.datasets[element.datasetIndex] as { rawLabel?: string | null })?.rawLabel\n : null\n ) as string | null;\n\n onBarClicked({\n axisDimensionValue,\n groupingDimensionValue,\n });\n },\n };\n};\n"],"names":["getBarStackedChartProData","props","theme","themeFormatter","getThemeFormatter","data","dimension","groupDimension","measure","uniqueAxis","d","axis","v","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","getDatalabelPercentage","label","raw","dimensionLabel","measureValue","percentage","_event","elements","chart","element","axisDimensionValue","groupingDimensionValue"],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import { d as s, u as j } from "./utc-CeNUjiDo.js";
2
+ import { i as B, q as C } from "./quarterOfYear-DG6zAl_Q.js";
3
+ import { w as E } from "./index-CJYh9LRs.js";
4
+ import { useTheme as M } from "@embeddable.com/react";
5
+ import { useMemo as W } from "react";
6
+ import { d as Z } from "./component.inputs.constants-C7tJAhsQ.js";
7
+ var O = { exports: {} }, b = O.exports, G;
8
+ function z() {
9
+ return G || (G = 1, (function(h, d) {
10
+ (function(r, t) {
11
+ h.exports = t();
12
+ })(b, (function() {
13
+ return function(r, t) {
14
+ t.prototype.isSameOrBefore = function(u, o) {
15
+ return this.isSame(u, o) || this.isBefore(u, o);
16
+ };
17
+ };
18
+ }));
19
+ })(O)), O.exports;
20
+ }
21
+ var L = z();
22
+ const N = /* @__PURE__ */ E(L);
23
+ s.extend(j);
24
+ s.extend(B);
25
+ s.extend(N);
26
+ s.extend(C);
27
+ function P(h) {
28
+ const d = M(), { results: r, dimension: t, orderDirection: u = "asc", externalDateBounds: o } = h;
29
+ return W(() => {
30
+ var k, w, q, I, R, V, F;
31
+ const f = (k = t.inputs) == null ? void 0 : k.granularity, n = t.name, a = (w = t.inputs) == null ? void 0 : w.dateBounds, $ = Z.map(
32
+ (e) => e.value
33
+ );
34
+ if (!f || !$.includes(f) || !n || !r || r.isLoading || ((q = r.data) == null ? void 0 : q.length) === 0)
35
+ return r;
36
+ const c = a != null && a.relativeTimeString ? (I = d.defaults.dateRangesOptions.find((e) => e.value === (a == null ? void 0 : a.relativeTimeString))) == null ? void 0 : I.getRange(d.clientContext.timezone) : a;
37
+ if (t.nativeType !== "time") return r;
38
+ const l = [...(r == null ? void 0 : r.data) ?? []].sort((e, i) => {
39
+ const m = e[n], p = i[n];
40
+ return m == null ? 1 : p == null ? -1 : s.utc(m).diff(s.utc(p));
41
+ }), x = s.utc(
42
+ (o == null ? void 0 : o.from) ?? (c == null ? void 0 : c.from) ?? ((R = l[0]) == null ? void 0 : R[n])
43
+ ), y = s.utc(
44
+ (o == null ? void 0 : o.to) ?? (c == null ? void 0 : c.to) ?? ((V = l[l.length - 1]) == null ? void 0 : V[n]) ?? ((F = [...l].reverse().find((e) => (e == null ? void 0 : e[n]) != null)) == null ? void 0 : F[n])
45
+ );
46
+ if (!x.isValid() || !y.isValid())
47
+ return { ...r, data: [] };
48
+ const v = /* @__PURE__ */ new Map();
49
+ for (const e of l) {
50
+ const i = e[n];
51
+ if (i == null) continue;
52
+ const m = s.utc(i).toISOString().split("Z")[0], p = v.get(m) ?? [];
53
+ p.push(e), v.set(m, p);
54
+ }
55
+ const g = [];
56
+ let S = x.startOf(f === "week" ? "isoWeek" : f);
57
+ for (; S.isSameOrBefore(y); ) {
58
+ const e = S.toISOString().split("Z")[0], i = v.get(e);
59
+ i && i.length > 0 ? g.push(...i) : g.push({ [n]: e }), S = S.add(1, f);
60
+ }
61
+ return u === "desc" && g.reverse(), {
62
+ ...r,
63
+ data: g
64
+ };
65
+ }, [r, t, u, d]);
66
+ }
67
+ export {
68
+ P as u
69
+ };
70
+ //# sourceMappingURL=charts.fillGaps.hooks-B6T9882L.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"charts.fillGaps.hooks-B6T9882L.js","sources":["../node_modules/dayjs/plugin/isSameOrBefore.js","../src/components/charts/charts.fillGaps.hooks.ts"],"sourcesContent":["!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isSameOrBefore=i()}(this,(function(){\"use strict\";return function(e,i){i.prototype.isSameOrBefore=function(e,i){return this.isSame(e,i)||this.isBefore(e,i)}}}));","import { DataResponse, Dimension, TimeRange } from '@embeddable.com/core';\nimport dayjs, { QUnitType } from 'dayjs';\nimport isoWeek from 'dayjs/plugin/isoWeek.js';\nimport utc from 'dayjs/plugin/utc.js';\nimport isSameOrBefore from 'dayjs/plugin/isSameOrBefore.js';\nimport { Theme } from '../../theme/theme.types';\nimport { useTheme } from '@embeddable.com/react';\nimport { useMemo } from 'react';\nimport quarterOfYear from 'dayjs/plugin/quarterOfYear.js';\nimport { defaultGranularitySelectFieldOptions } from '../../theme/defaults/defaults.GranularityOptions.constants';\n\ndayjs.extend(utc);\ndayjs.extend(isoWeek);\ndayjs.extend(isSameOrBefore);\ndayjs.extend(quarterOfYear);\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype DataRecord = { [key: string]: any };\n\ntype UseFillGapsProps = {\n results: DataResponse | undefined;\n dimension: Dimension;\n orderDirection?: 'asc' | 'desc';\n externalDateBounds?: TimeRange;\n};\n\nexport function useFillGaps(props: UseFillGapsProps): DataResponse {\n const theme = useTheme() as Theme;\n const { results, dimension, orderDirection = 'asc', externalDateBounds } = props;\n\n const processed = useMemo(() => {\n const granularity = dimension.inputs?.granularity;\n const dimensionName = dimension.name;\n const dateBoundsTmp: TimeRange = dimension.inputs?.dateBounds;\n\n const knownGranularities = defaultGranularitySelectFieldOptions.map(\n (opt) => opt.value as string,\n );\n\n if (\n !granularity ||\n !knownGranularities.includes(granularity) ||\n !dimensionName ||\n !results ||\n results.isLoading ||\n results.data?.length === 0\n ) {\n return results;\n }\n\n const dateBounds = dateBoundsTmp?.relativeTimeString\n ? theme.defaults.dateRangesOptions\n .find((option) => option.value === dateBoundsTmp?.relativeTimeString)\n ?.getRange(theme.clientContext.timezone)\n : dateBoundsTmp;\n\n if (dimension.nativeType !== 'time') return results;\n\n const sortedResults = [...(results?.data ?? [])].sort((a, b) => {\n const aVal = a[dimensionName];\n const bVal = b[dimensionName];\n if (aVal == null) return 1;\n if (bVal == null) return -1;\n return dayjs.utc(aVal).diff(dayjs.utc(bVal));\n });\n\n // Determine the full date range even if data is empty\n const from = dayjs.utc(\n externalDateBounds?.from ?? dateBounds?.from ?? sortedResults[0]?.[dimensionName],\n );\n\n const to = dayjs.utc(\n externalDateBounds?.to ??\n dateBounds?.to ??\n sortedResults[sortedResults.length - 1]?.[dimensionName] ??\n [...sortedResults].reverse().find((item) => item?.[dimensionName] != null)?.[dimensionName],\n );\n\n // If we *still* don’t have valid date bounds, bail out safely\n if (!from.isValid() || !to.isValid()) {\n return { ...results, data: [] };\n }\n\n const recordsByDate = new Map<string, DataRecord[]>();\n for (const record of sortedResults) {\n const value = record[dimensionName];\n if (value == null) continue;\n const key = dayjs.utc(value).toISOString().split('Z')[0]!;\n const arr = recordsByDate.get(key) ?? [];\n arr.push(record);\n recordsByDate.set(key, arr);\n }\n\n const filled: DataRecord[] = [];\n let current = from.startOf((granularity === 'week' ? 'isoWeek' : granularity) as QUnitType);\n\n while (current.isSameOrBefore(to)) {\n const key = current.toISOString().split('Z')[0]!;\n const records = recordsByDate.get(key);\n\n if (records && records.length > 0) {\n filled.push(...records);\n } else {\n filled.push({ [dimensionName]: key });\n }\n\n current = current.add(1, granularity as QUnitType);\n }\n\n if (orderDirection === 'desc') {\n filled.reverse();\n }\n\n return {\n ...results,\n data: filled,\n };\n }, [results, dimension, orderDirection, theme]);\n\n return processed as DataResponse;\n}\n"],"names":["e","i","module","this","dayjs","utc","isoWeek","isSameOrBefore","quarterOfYear","useFillGaps","props","theme","useTheme","results","dimension","orderDirection","externalDateBounds","useMemo","granularity","_a","dimensionName","dateBoundsTmp","_b","knownGranularities","defaultGranularitySelectFieldOptions","opt","_c","dateBounds","_d","option","sortedResults","a","b","aVal","bVal","from","_e","to","_f","_g","item","recordsByDate","record","value","key","arr","filled","current","records"],"mappings":"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","x_google_ignoreList":[0]}