@embeddable.com/remarkable-pro 0.1.32 → 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 (142) 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/DonutChartPro.js +1 -1
  11. package/dist/DonutLabelChartPro.js +1 -1
  12. package/dist/HeatMapPro.js +1 -1
  13. package/dist/KpiChartNumberComparisonPro.js +1 -1
  14. package/dist/LineChartComparisonDefaultPro.js +1 -1
  15. package/dist/LineChartDefaultPro.js +1 -1
  16. package/dist/LineChartGroupedPro.js +1 -1
  17. package/dist/PieChartPro.js +1 -1
  18. package/dist/PivotTablePro.js +1 -1
  19. package/dist/bars.loadData.utils-3BlUREY3.js +126 -0
  20. package/dist/bars.loadData.utils-3BlUREY3.js.map +1 -0
  21. package/dist/{bars.utils-jD7h2lii.js → bars.utils-CG7i6UTJ.js} +2 -2
  22. package/dist/{bars.utils-jD7h2lii.js.map → bars.utils-CG7i6UTJ.js.map} +1 -1
  23. package/dist/charts.fillGaps.hooks-B6T9882L.js +70 -0
  24. package/dist/charts.fillGaps.hooks-B6T9882L.js.map +1 -0
  25. package/dist/{charts.utils-N3kN-XFw.js → charts.utils-BMX0edl3.js} +3480 -3511
  26. package/dist/charts.utils-BMX0edl3.js.map +1 -0
  27. package/dist/clientContext.utils-DpB5KsfX.js +15 -0
  28. package/dist/clientContext.utils-DpB5KsfX.js.map +1 -0
  29. package/dist/components/charts/bars/BarChartDefaultHorizontalPro/definition.d.ts +4 -3
  30. package/dist/components/charts/bars/BarChartDefaultHorizontalPro/definition.d.ts.map +1 -1
  31. package/dist/components/charts/bars/BarChartDefaultPro/definition.d.ts +4 -3
  32. package/dist/components/charts/bars/BarChartDefaultPro/definition.d.ts.map +1 -1
  33. package/dist/components/charts/bars/BarChartGroupedHorizontalPro/definition.d.ts +2 -1
  34. package/dist/components/charts/bars/BarChartGroupedHorizontalPro/definition.d.ts.map +1 -1
  35. package/dist/components/charts/bars/BarChartGroupedPro/definition.d.ts +2 -1
  36. package/dist/components/charts/bars/BarChartGroupedPro/definition.d.ts.map +1 -1
  37. package/dist/components/charts/bars/BarChartStackedHorizontalPro/definition.d.ts +2 -1
  38. package/dist/components/charts/bars/BarChartStackedHorizontalPro/definition.d.ts.map +1 -1
  39. package/dist/components/charts/bars/BarChartStackedPro/definition.d.ts +2 -1
  40. package/dist/components/charts/bars/BarChartStackedPro/definition.d.ts.map +1 -1
  41. package/dist/components/charts/bars/bars.loadData.utils.d.ts +9 -5
  42. package/dist/components/charts/bars/bars.loadData.utils.d.ts.map +1 -1
  43. package/dist/components/charts/kpis/KpiChartNumberComparisonPro/definition.d.ts +6 -5
  44. package/dist/components/charts/kpis/KpiChartNumberComparisonPro/definition.d.ts.map +1 -1
  45. package/dist/components/charts/lines/LineChartComparisonDefaultPro/definition.d.ts +6 -5
  46. package/dist/components/charts/lines/LineChartComparisonDefaultPro/definition.d.ts.map +1 -1
  47. package/dist/components/charts/lines/LineChartDefaultPro/definition.d.ts +4 -3
  48. package/dist/components/charts/lines/LineChartDefaultPro/definition.d.ts.map +1 -1
  49. package/dist/components/charts/lines/LineChartGroupedPro/definition.d.ts +4 -3
  50. package/dist/components/charts/lines/LineChartGroupedPro/definition.d.ts.map +1 -1
  51. package/dist/components/charts/tables/HeatMapPro/definition.d.ts +4 -3
  52. package/dist/components/charts/tables/HeatMapPro/definition.d.ts.map +1 -1
  53. package/dist/components/charts/tables/PivotTablePro/definition.d.ts +6 -5
  54. package/dist/components/charts/tables/PivotTablePro/definition.d.ts.map +1 -1
  55. package/dist/components/editors/ComparisonPeriodSelectFieldPro/index.d.ts.map +1 -1
  56. package/dist/components/editors/dates/DateRangePickerCustomPro/index.d.ts.map +1 -1
  57. package/dist/components/editors/dates/DateRangePickerPresetsPro/DateRangePickerPresetsPro.types.d.ts +1 -1
  58. package/dist/components/editors/dates/DateRangePickerPresetsPro/DateRangePickerPresetsPro.types.d.ts.map +1 -1
  59. package/dist/components/editors/dates/DateRangePickerPresetsPro/DateRangePickerPresetsPro.utils.d.ts +1 -1
  60. package/dist/components/editors/dates/DateRangePickerPresetsPro/DateRangePickerPresetsPro.utils.d.ts.map +1 -1
  61. package/dist/components/editors/dates/DateRangePickerPresetsPro/index.d.ts.map +1 -1
  62. package/dist/components/editors/dates/dates.utils.d.ts +3 -3
  63. package/dist/components/editors/dates/dates.utils.d.ts.map +1 -1
  64. package/dist/{dates.utils-C3LPV893.js → dates.utils-D44sdrNs.js} +36 -36
  65. package/dist/{dates.utils-C3LPV893.js.map → dates.utils-D44sdrNs.js.map} +1 -1
  66. package/dist/definition-B1B71Q9P.js +164 -0
  67. package/dist/definition-B1B71Q9P.js.map +1 -0
  68. package/dist/{definition-B2mKjUhy.js → definition-B1t6-ToS.js} +87 -84
  69. package/dist/definition-B1t6-ToS.js.map +1 -0
  70. package/dist/{definition-Dizabfqb.js → definition-BejgCcXe.js} +94 -92
  71. package/dist/{definition-Dizabfqb.js.map → definition-BejgCcXe.js.map} +1 -1
  72. package/dist/definition-Bg3R-QHm.js +206 -0
  73. package/dist/definition-Bg3R-QHm.js.map +1 -0
  74. package/dist/{definition-Bdwvh471.js → definition-BomoMNHu.js} +19 -18
  75. package/dist/definition-BomoMNHu.js.map +1 -0
  76. package/dist/{definition-CN6Ieeer.js → definition-BxDRujfc.js} +65 -63
  77. package/dist/{definition-CN6Ieeer.js.map → definition-BxDRujfc.js.map} +1 -1
  78. package/dist/{definition-B5l2-yZu.js → definition-Bx_a3I-X.js} +66 -62
  79. package/dist/definition-Bx_a3I-X.js.map +1 -0
  80. package/dist/{definition-bvWr0LdF.js → definition-CLDcybuA.js} +56 -51
  81. package/dist/definition-CLDcybuA.js.map +1 -0
  82. package/dist/{definition-C8DCZNOR.js → definition-C_wdRHYX.js} +2 -2
  83. package/dist/{definition-C8DCZNOR.js.map → definition-C_wdRHYX.js.map} +1 -1
  84. package/dist/{definition-B9bfDi7Q.js → definition-DFEQMSrJ.js} +2 -2
  85. package/dist/{definition-B9bfDi7Q.js.map → definition-DFEQMSrJ.js.map} +1 -1
  86. package/dist/{definition-Dh9UNSfZ.js → definition-DqtPYFiz.js} +39 -30
  87. package/dist/definition-DqtPYFiz.js.map +1 -0
  88. package/dist/{definition-CkVv7VMQ.js → definition-MdprJNc9.js} +2 -2
  89. package/dist/{definition-CkVv7VMQ.js.map → definition-MdprJNc9.js.map} +1 -1
  90. package/dist/{definition-DnWIyPun.js → definition-NQQg5mwf.js} +80 -76
  91. package/dist/definition-NQQg5mwf.js.map +1 -0
  92. package/dist/{definition-SCQMKDEM.js → definition-OA_X18FK.js} +46 -44
  93. package/dist/definition-OA_X18FK.js.map +1 -0
  94. package/dist/definition-nSxl9weT.js +525 -0
  95. package/dist/definition-nSxl9weT.js.map +1 -0
  96. package/dist/definition-poLEt7kb.js +210 -0
  97. package/dist/definition-poLEt7kb.js.map +1 -0
  98. package/dist/{definition-DynupxEC.js → definition-uj4b0NtW.js} +82 -78
  99. package/dist/definition-uj4b0NtW.js.map +1 -0
  100. package/dist/definition-xkAbcSB6.js +166 -0
  101. package/dist/definition-xkAbcSB6.js.map +1 -0
  102. package/dist/embeddable-components.json +42 -42
  103. package/dist/embeddable-theme-0137e.js +4437 -4455
  104. package/dist/index.js +24 -24
  105. package/dist/{pies.utils-BlPQ76Jf.js → pies.utils-DvbvSz5H.js} +2 -2
  106. package/dist/{pies.utils-BlPQ76Jf.js.map → pies.utils-DvbvSz5H.js.map} +1 -1
  107. package/dist/theme/defaults/defaults.ComparisonPeriods.constants.d.ts.map +1 -1
  108. package/dist/theme/defaults/defaults.DateRanges.constants.d.ts +1 -1
  109. package/dist/theme/defaults/defaults.DateRanges.constants.d.ts.map +1 -1
  110. package/dist/theme/theme.constants.d.ts.map +1 -1
  111. package/dist/theme/theme.types.d.ts +4 -0
  112. package/dist/theme/theme.types.d.ts.map +1 -1
  113. package/dist/theme/utils/clientContext.utils.d.ts +2 -0
  114. package/dist/theme/utils/clientContext.utils.d.ts.map +1 -0
  115. package/dist/timeRange.utils-CcP33PfM.js +20 -0
  116. package/dist/timeRange.utils-CcP33PfM.js.map +1 -0
  117. package/package.json +1 -1
  118. package/dist/bars.loadData.utils-FxKnljYM.js +0 -116
  119. package/dist/bars.loadData.utils-FxKnljYM.js.map +0 -1
  120. package/dist/charts.fillGaps.hooks-CvKhAwUj.js +0 -70
  121. package/dist/charts.fillGaps.hooks-CvKhAwUj.js.map +0 -1
  122. package/dist/charts.utils-N3kN-XFw.js.map +0 -1
  123. package/dist/definition-2JaSZCXp.js +0 -206
  124. package/dist/definition-2JaSZCXp.js.map +0 -1
  125. package/dist/definition-B2mKjUhy.js.map +0 -1
  126. package/dist/definition-B5l2-yZu.js.map +0 -1
  127. package/dist/definition-Bdwvh471.js.map +0 -1
  128. package/dist/definition-Bn3Fi9C4.js +0 -515
  129. package/dist/definition-Bn3Fi9C4.js.map +0 -1
  130. package/dist/definition-BrVG5pTw.js +0 -162
  131. package/dist/definition-BrVG5pTw.js.map +0 -1
  132. package/dist/definition-Dh9UNSfZ.js.map +0 -1
  133. package/dist/definition-DnWIyPun.js.map +0 -1
  134. package/dist/definition-DynupxEC.js.map +0 -1
  135. package/dist/definition-EqCeNipq.js +0 -201
  136. package/dist/definition-EqCeNipq.js.map +0 -1
  137. package/dist/definition-SCQMKDEM.js.map +0 -1
  138. package/dist/definition-bvWr0LdF.js.map +0 -1
  139. package/dist/definition-pNCrIBqW.js +0 -164
  140. package/dist/definition-pNCrIBqW.js.map +0 -1
  141. package/dist/timeRange.utils-D1hjtzlU.js +0 -20
  142. package/dist/timeRange.utils-D1hjtzlU.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,32 +1,32 @@
1
1
  import { a as h, g as C, b, i as S } from "./styles.utils-C8CnV0SB.js";
2
2
  import { i as F, s as D } from "./color.utils-BSg_DFOh.js";
3
3
  import { c as y, a as R, g as k, i as L } from "./formatter.utils-BLaKKpAa.js";
4
- import { b as G, c as E, a as M, g as A, l as B, d as v, u as w } from "./dates.utils-C3LPV893.js";
5
- import { d as I, b as j, c as H, e as _, f as N, h as z, i as K, a as V, g as q, r as W, j as U, k as X } from "./charts.utils-N3kN-XFw.js";
4
+ import { b as G, c as E, a as M, g as A, l as B, d as v, u as w } from "./dates.utils-D44sdrNs.js";
5
+ import { d as I, b as j, c as H, e as _, f as N, h as z, i as K, a as V, g as q, r as W, j as U, k as X } from "./charts.utils-BMX0edl3.js";
6
6
  import { i as Z, a as J, r as Q, b as ee } from "./component.utils-Dua9clQJ.js";
7
7
  import { C as te, G as re, d as oe, a as se, b as ie, i as ne, s as le, t as pe, c as me } from "./component.inputs.constants-C7tJAhsQ.js";
8
- import { g as ce, a as ue } from "./timeRange.utils-D1hjtzlU.js";
8
+ import { g as ce, a as ue } from "./timeRange.utils-CcP33PfM.js";
9
9
  import { p as Pe } from "./preview.data.constants--FLtEcg5.js";
10
- import { i as he, b as Ce } from "./definition-pNCrIBqW.js";
11
- import { i as Se, b as xe } from "./definition-DynupxEC.js";
12
- import { i as De, b as Te } from "./definition-DnWIyPun.js";
13
- import { i as Re, b as ke } from "./definition-BrVG5pTw.js";
14
- import { i as Oe, b as Ge } from "./definition-2JaSZCXp.js";
15
- import { i as Me, b as Ae } from "./definition-B5l2-yZu.js";
16
- import { g as ve, a as we, b as $e } from "./bars.utils-jD7h2lii.js";
10
+ import { i as he, b as Ce } from "./definition-xkAbcSB6.js";
11
+ import { i as Se, b as xe } from "./definition-uj4b0NtW.js";
12
+ import { i as De, b as Te } from "./definition-NQQg5mwf.js";
13
+ import { i as Re, b as ke } from "./definition-B1B71Q9P.js";
14
+ import { i as Oe, b as Ge } from "./definition-poLEt7kb.js";
15
+ import { i as Me, b as Ae } from "./definition-Bx_a3I-X.js";
16
+ import { g as ve, a as we, b as $e } from "./bars.utils-CG7i6UTJ.js";
17
17
  import { i as je, k as He } from "./definition-CbkzLjXK.js";
18
- import { i as Ne, k as ze } from "./definition-EqCeNipq.js";
18
+ import { i as Ne, k as ze } from "./definition-Bg3R-QHm.js";
19
19
  import { g as Ve } from "./kpis.utils-DsZ2GzuB.js";
20
- import { i as We, g as Ue, a as Xe, l as Ye } from "./definition-Dizabfqb.js";
21
- import { i as Je, g as Qe, a as ea, l as aa } from "./definition-CN6Ieeer.js";
22
- import { i as ra, g as oa, a as sa, l as ia } from "./definition-Bn3Fi9C4.js";
20
+ import { i as We, g as Ue, a as Xe, l as Ye } from "./definition-BejgCcXe.js";
21
+ import { i as Je, g as Qe, a as ea, l as aa } from "./definition-BxDRujfc.js";
22
+ import { i as ra, g as oa, a as sa, l as ia } from "./definition-nSxl9weT.js";
23
23
  import { g as la } from "./lines.utils-CEGfmIHB.js";
24
- import { i as ma, d as da } from "./definition-B9bfDi7Q.js";
25
- import { i as ua, p as ga } from "./definition-C8DCZNOR.js";
26
- import { i as fa, d as ha } from "./definition-CkVv7VMQ.js";
27
- import { g as ba, a as Sa } from "./pies.utils-BlPQ76Jf.js";
28
- import { i as Fa, h as Da } from "./definition-SCQMKDEM.js";
29
- import { i as ya, g as Ra, a as ka, b as La, c as Oa, p as Ga } from "./definition-B2mKjUhy.js";
24
+ import { i as ma, d as da } from "./definition-DFEQMSrJ.js";
25
+ import { i as ua, p as ga } from "./definition-C_wdRHYX.js";
26
+ import { i as fa, d as ha } from "./definition-MdprJNc9.js";
27
+ import { g as ba, a as Sa } from "./pies.utils-DvbvSz5H.js";
28
+ import { i as Fa, h as Da } from "./definition-OA_X18FK.js";
29
+ import { i as ya, g as Ra, a as ka, b as La, c as Oa, p as Ga } from "./definition-B1t6-ToS.js";
30
30
  import { i as Ma, d as Aa, t as Ba } from "./definition-Cx1UPIho.js";
31
31
  import { T as wa, i as $a, d as Ia, t as ja } from "./definition-Cgq79V22.js";
32
32
  import { b as _a, c as Na, g as za, a as Ka } from "./tables.utils-BF3qUwBS.js";
@@ -36,10 +36,10 @@ import { C as Za, g as Ja } from "./granularity.utils-Hj10GihD.js";
36
36
  import { i as et, e as at } from "./definition-B4ALO0PD.js";
37
37
  import { i as rt, h as ot } from "./definition-DFoesKHP.js";
38
38
  import { i as it, m as nt } from "./definition-oe6halnQ.js";
39
- import { u as pt } from "./charts.fillGaps.hooks-CvKhAwUj.js";
40
- import { i as dt, c as ct, g as ut, a as gt } from "./definition-Bdwvh471.js";
41
- import { i as ft, d as ht, g as Ct } from "./definition-bvWr0LdF.js";
42
- import { i as St, d as xt } from "./definition-Dh9UNSfZ.js";
39
+ import { u as pt } from "./charts.fillGaps.hooks-B6T9882L.js";
40
+ import { i as dt, c as ct, g as ut, a as gt } from "./definition-BomoMNHu.js";
41
+ import { i as ft, d as ht, g as Ct } from "./definition-CLDcybuA.js";
42
+ import { i as St, d as xt } from "./definition-DqtPYFiz.js";
43
43
  import { i as Dt, m as Tt } from "./definition-D4-0-tXB.js";
44
44
  import { i as Rt, s as kt } from "./definition-BCbRycZt.js";
45
45
  import { i as Ot, d as Gt } from "./definition-ngOUqoDo.js";
@@ -1,4 +1,4 @@
1
- import { r as u, g as b, a as d } from "./charts.utils-N3kN-XFw.js";
1
+ import { r as u, g as b, a as d } from "./charts.utils-BMX0edl3.js";
2
2
  import { g as c } from "./formatter.utils-BLaKKpAa.js";
3
3
  import { g as l } from "./styles.utils-C8CnV0SB.js";
4
4
  import { t as f } from "./index-CJYh9LRs.js";
@@ -73,4 +73,4 @@ export {
73
73
  w as a,
74
74
  O as g
75
75
  };
76
- //# sourceMappingURL=pies.utils-BlPQ76Jf.js.map
76
+ //# sourceMappingURL=pies.utils-DvbvSz5H.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pies.utils-BlPQ76Jf.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 { getDatalabelPercentage, groupTailAsOther } 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 const themeFormatter = getThemeFormatter(theme);\n\n if (!props.data)\n return {\n labels: [],\n datasets: [{ data: [] }],\n };\n\n const groupedData = groupTailAsOther(\n props.data,\n props.dimension,\n [props.measure],\n props.maxLegendItems,\n );\n\n const 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 return {\n labels: groupedData.map((item) => {\n const value = item[props.dimension.name];\n const formattedValue = themeFormatter.data(props.dimension, value);\n\n // If formatter did not work, try i18n translation\n if (value === formattedValue) {\n return i18n.t(value);\n }\n return formattedValue;\n }),\n datasets: [\n {\n data: groupedData.map((item) => item[props.measure.name]),\n backgroundColor,\n borderColor,\n },\n ],\n };\n};\n\nexport const getPieChartProOptions = (\n measure: Measure,\n theme: Theme = remarkableTheme,\n): Partial<ChartOptions<'pie'>> => {\n const themeFormatter = getThemeFormatter(theme);\n\n return {\n plugins: {\n legend: { position: theme.charts.legendPosition ?? 'bottom' },\n datalabels: {\n formatter: (value: string | number, 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 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","themeFormatter","getThemeFormatter","groupedData","groupTailAsOther","chartColors","getChartColors","backgroundColor","item","index","getDimensionMeasureColor","borderColor","value","formattedValue","i18n","getPieChartProOptions","measure","context","_a","getDatalabelPercentage","raw"],"mappings":";;;;;AAUO,MAAMA,IAAqB,CAChCC,GAMAC,IAAeC,MACM;AACrB,QAAMC,IAAiBC,EAAkBH,CAAK;AAE9C,MAAI,CAACD,EAAM;AACT,WAAO;AAAA,MACL,QAAQ,CAAA;AAAA,MACR,UAAU,CAAC,EAAE,MAAM,IAAI;AAAA,IAAA;AAG3B,QAAMK,IAAcC;AAAA,IAClBN,EAAM;AAAA,IACNA,EAAM;AAAA,IACN,CAACA,EAAM,OAAO;AAAA,IACdA,EAAM;AAAA,EAAA,GAGFO,IAAcC,EAAA,GACdC,IAAkBJ,EAAY;AAAA,IAAI,CAACK,GAAMC,MAC7CC,EAAyB;AAAA,MACvB,oBAAoBZ,EAAM;AAAA,MAC1B,OAAAC;AAAA,MACA,OAAO;AAAA,MACP,OAAO,GAAGD,EAAM,UAAU,IAAI,IAAIU,EAAKV,EAAM,UAAU,IAAI,CAAC;AAAA,MAC5D,aAAAO;AAAA,MACA,OAAAI;AAAA,IAAA,CACD;AAAA,EAAA,GAGGE,IAAcR,EAAY;AAAA,IAAI,CAACK,GAAMC,MACzCC,EAAyB;AAAA,MACvB,oBAAoBZ,EAAM;AAAA,MAC1B,OAAAC;AAAA,MACA,OAAO;AAAA,MACP,OAAO,GAAGD,EAAM,UAAU,IAAI,IAAIU,EAAKV,EAAM,UAAU,IAAI,CAAC;AAAA,MAC5D,aAAAO;AAAA,MACA,OAAAI;AAAA,IAAA,CACD;AAAA,EAAA;AAGH,SAAO;AAAA,IACL,QAAQN,EAAY,IAAI,CAACK,MAAS;AAChC,YAAMI,IAAQJ,EAAKV,EAAM,UAAU,IAAI,GACjCe,IAAiBZ,EAAe,KAAKH,EAAM,WAAWc,CAAK;AAGjE,aAAIA,MAAUC,IACLC,EAAK,EAAEF,CAAK,IAEdC;AAAA,IACT,CAAC;AAAA,IACD,UAAU;AAAA,MACR;AAAA,QACE,MAAMV,EAAY,IAAI,CAACK,MAASA,EAAKV,EAAM,QAAQ,IAAI,CAAC;AAAA,QACxD,iBAAAS;AAAA,QACA,aAAAI;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ,GAEaI,IAAwB,CACnCC,GACAjB,IAAeC,MACkB;AACjC,QAAMC,IAAiBC,EAAkBH,CAAK;AAE9C,SAAO;AAAA,IACL,SAAS;AAAA,MACP,QAAQ,EAAE,UAAUA,EAAM,OAAO,kBAAkB,SAAA;AAAA,MACnD,YAAY;AAAA,QACV,WAAW,CAACa,GAAwBK,MAAY;;AAC9C,kBAAIC,IAAAF,EAAQ,WAAR,QAAAE,EAAgB,wBACXC,EAAuB,OAAOP,CAAK,GAAGK,EAAQ,QAAQ,IAAI,IAE5DhB,EAAe,KAAKe,GAASJ,CAAK;AAAA,QAC3C;AAAA,MAAA;AAAA,MAEF,SAAS;AAAA,QACP,WAAW;AAAA,UACT,MAAMK,GAAS;AACb,kBAAMG,IAAMH,EAAQ;AACpB,mBAAO,GAAGhB,EAAe,KAAKe,GAASI,CAAG,CAAC,KAAKD,EAAuBC,GAAKH,EAAQ,QAAQ,IAAI,CAAC;AAAA,UACnG;AAAA,QAAA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEJ;"}
1
+ {"version":3,"file":"pies.utils-DvbvSz5H.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 { getDatalabelPercentage, groupTailAsOther } 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 const themeFormatter = getThemeFormatter(theme);\n\n if (!props.data)\n return {\n labels: [],\n datasets: [{ data: [] }],\n };\n\n const groupedData = groupTailAsOther(\n props.data,\n props.dimension,\n [props.measure],\n props.maxLegendItems,\n );\n\n const 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 return {\n labels: groupedData.map((item) => {\n const value = item[props.dimension.name];\n const formattedValue = themeFormatter.data(props.dimension, value);\n\n // If formatter did not work, try i18n translation\n if (value === formattedValue) {\n return i18n.t(value);\n }\n return formattedValue;\n }),\n datasets: [\n {\n data: groupedData.map((item) => item[props.measure.name]),\n backgroundColor,\n borderColor,\n },\n ],\n };\n};\n\nexport const getPieChartProOptions = (\n measure: Measure,\n theme: Theme = remarkableTheme,\n): Partial<ChartOptions<'pie'>> => {\n const themeFormatter = getThemeFormatter(theme);\n\n return {\n plugins: {\n legend: { position: theme.charts.legendPosition ?? 'bottom' },\n datalabels: {\n formatter: (value: string | number, 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 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","themeFormatter","getThemeFormatter","groupedData","groupTailAsOther","chartColors","getChartColors","backgroundColor","item","index","getDimensionMeasureColor","borderColor","value","formattedValue","i18n","getPieChartProOptions","measure","context","_a","getDatalabelPercentage","raw"],"mappings":";;;;;AAUO,MAAMA,IAAqB,CAChCC,GAMAC,IAAeC,MACM;AACrB,QAAMC,IAAiBC,EAAkBH,CAAK;AAE9C,MAAI,CAACD,EAAM;AACT,WAAO;AAAA,MACL,QAAQ,CAAA;AAAA,MACR,UAAU,CAAC,EAAE,MAAM,IAAI;AAAA,IAAA;AAG3B,QAAMK,IAAcC;AAAA,IAClBN,EAAM;AAAA,IACNA,EAAM;AAAA,IACN,CAACA,EAAM,OAAO;AAAA,IACdA,EAAM;AAAA,EAAA,GAGFO,IAAcC,EAAA,GACdC,IAAkBJ,EAAY;AAAA,IAAI,CAACK,GAAMC,MAC7CC,EAAyB;AAAA,MACvB,oBAAoBZ,EAAM;AAAA,MAC1B,OAAAC;AAAA,MACA,OAAO;AAAA,MACP,OAAO,GAAGD,EAAM,UAAU,IAAI,IAAIU,EAAKV,EAAM,UAAU,IAAI,CAAC;AAAA,MAC5D,aAAAO;AAAA,MACA,OAAAI;AAAA,IAAA,CACD;AAAA,EAAA,GAGGE,IAAcR,EAAY;AAAA,IAAI,CAACK,GAAMC,MACzCC,EAAyB;AAAA,MACvB,oBAAoBZ,EAAM;AAAA,MAC1B,OAAAC;AAAA,MACA,OAAO;AAAA,MACP,OAAO,GAAGD,EAAM,UAAU,IAAI,IAAIU,EAAKV,EAAM,UAAU,IAAI,CAAC;AAAA,MAC5D,aAAAO;AAAA,MACA,OAAAI;AAAA,IAAA,CACD;AAAA,EAAA;AAGH,SAAO;AAAA,IACL,QAAQN,EAAY,IAAI,CAACK,MAAS;AAChC,YAAMI,IAAQJ,EAAKV,EAAM,UAAU,IAAI,GACjCe,IAAiBZ,EAAe,KAAKH,EAAM,WAAWc,CAAK;AAGjE,aAAIA,MAAUC,IACLC,EAAK,EAAEF,CAAK,IAEdC;AAAA,IACT,CAAC;AAAA,IACD,UAAU;AAAA,MACR;AAAA,QACE,MAAMV,EAAY,IAAI,CAACK,MAASA,EAAKV,EAAM,QAAQ,IAAI,CAAC;AAAA,QACxD,iBAAAS;AAAA,QACA,aAAAI;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ,GAEaI,IAAwB,CACnCC,GACAjB,IAAeC,MACkB;AACjC,QAAMC,IAAiBC,EAAkBH,CAAK;AAE9C,SAAO;AAAA,IACL,SAAS;AAAA,MACP,QAAQ,EAAE,UAAUA,EAAM,OAAO,kBAAkB,SAAA;AAAA,MACnD,YAAY;AAAA,QACV,WAAW,CAACa,GAAwBK,MAAY;;AAC9C,kBAAIC,IAAAF,EAAQ,WAAR,QAAAE,EAAgB,wBACXC,EAAuB,OAAOP,CAAK,GAAGK,EAAQ,QAAQ,IAAI,IAE5DhB,EAAe,KAAKe,GAASJ,CAAK;AAAA,QAC3C;AAAA,MAAA;AAAA,MAEF,SAAS;AAAA,QACP,WAAW;AAAA,UACT,MAAMK,GAAS;AACb,kBAAMG,IAAMH,EAAQ;AACpB,mBAAO,GAAGhB,EAAe,KAAKe,GAASI,CAAG,CAAC,KAAKD,EAAuBC,GAAKH,EAAQ,QAAQ,IAAI,CAAC;AAAA,UACnG;AAAA,QAAA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.ComparisonPeriods.constants.d.ts","sourceRoot":"","sources":["../../../src/theme/defaults/defaults.ComparisonPeriods.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA8B,MAAM,sBAAsB,CAAC;AAU7E,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,SAAS,GAAG,SAAS,CAAC;CAC3D,CAAC;AAyKF,eAAO,MAAM,8BAA8B,EAAE,sBAAsB,EA0DlE,CAAC"}
1
+ {"version":3,"file":"defaults.ComparisonPeriods.constants.d.ts","sourceRoot":"","sources":["../../../src/theme/defaults/defaults.ComparisonPeriods.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA8B,MAAM,sBAAsB,CAAC;AAY7E,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,SAAS,GAAG,SAAS,CAAC;CAC3D,CAAC;AA6KF,eAAO,MAAM,8BAA8B,EAAE,sBAAsB,EA0DlE,CAAC"}
@@ -3,7 +3,7 @@ export type DateRangeOption = {
3
3
  value: string;
4
4
  label: string;
5
5
  dateFormat: string;
6
- getRange: () => TimeRange;
6
+ getRange: (timezone?: string) => TimeRange;
7
7
  };
8
8
  export declare const defaultDateRangeOptions: DateRangeOption[];
9
9
  //# sourceMappingURL=defaults.DateRanges.constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.DateRanges.constants.d.ts","sourceRoot":"","sources":["../../../src/theme/defaults/defaults.DateRanges.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAkCjD,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,SAAS,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,eAAe,EA+SpD,CAAC"}
1
+ {"version":3,"file":"defaults.DateRanges.constants.d.ts","sourceRoot":"","sources":["../../../src/theme/defaults/defaults.DateRanges.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AA6EjD,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,SAAS,CAAC;CAC5C,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,eAAe,EAqIpD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"theme.constants.d.ts","sourceRoot":"","sources":["../../src/theme/theme.constants.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,EAA8B,MAAM,eAAe,CAAC;AA6BlE,eAAO,MAAM,eAAe,EAAE,KAOpB,CAAC"}
1
+ {"version":3,"file":"theme.constants.d.ts","sourceRoot":"","sources":["../../src/theme/theme.constants.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,EAAkD,MAAM,eAAe,CAAC;AA+BtF,eAAO,MAAM,eAAe,EAAE,KAQpB,CAAC"}
@@ -69,6 +69,9 @@ export type ThemeDefaults = {
69
69
  chartMenuOptions: ChartCardMenuOption[];
70
70
  tableCellStyleOptions?: TableCellStyleOption[];
71
71
  };
72
+ export type ThemeClientContext = Record<string, any> & {
73
+ timezone?: string;
74
+ };
72
75
  export type Theme = {
73
76
  i18n: ThemeI18n;
74
77
  charts: ThemeCharts;
@@ -76,5 +79,6 @@ export type Theme = {
76
79
  formatter: ThemeFormatter;
77
80
  defaults: ThemeDefaults;
78
81
  fonts?: ThemeFonts;
82
+ clientContext: ThemeClientContext;
79
83
  };
80
84
  //# sourceMappingURL=theme.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"theme.types.d.ts","sourceRoot":"","sources":["../../src/theme/theme.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theme.types.d.ts","sourceRoot":"","sources":["../../src/theme/theme.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const getClientContextTimezone: (tz?: string) => string | undefined;
2
+ //# sourceMappingURL=clientContext.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clientContext.utils.d.ts","sourceRoot":"","sources":["../../../src/theme/utils/clientContext.utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wBAAwB,GAAI,KAAK,MAAM,KAAG,MAAM,GAAG,SAa/D,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { b as u } from "./component.utils-Dua9clQJ.js";
2
+ const v = (o, t, s) => {
3
+ var i, d;
4
+ if (!o || !t)
5
+ return;
6
+ const n = o != null && o.relativeTimeString ? (d = s.defaults.dateRangesOptions.find((l) => l.value === (o == null ? void 0 : o.relativeTimeString))) == null ? void 0 : d.getRange((i = s.clientContext) == null ? void 0 : i.timezone) : o, e = s.defaults.comparisonPeriodsOptions.find(
7
+ (l) => l.value === t
8
+ );
9
+ return e == null ? void 0 : e.getRange(n);
10
+ }, c = (o, t) => {
11
+ const s = t.defaults.comparisonPeriodsOptions.find(
12
+ (n) => n.value === o
13
+ );
14
+ return s ? u(s.label) : "";
15
+ };
16
+ export {
17
+ c as a,
18
+ v as g
19
+ };
20
+ //# sourceMappingURL=timeRange.utils-CcP33PfM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeRange.utils-CcP33PfM.js","sources":["../src/components/utils/timeRange.utils.ts"],"sourcesContent":["import { TimeRange } from '@embeddable.com/core';\nimport { Theme } from '../../theme/theme.types';\nimport { resolveI18nString } from '../component.utils';\n\nexport const getComparisonPeriodDateRange = (\n primaryDateRange: TimeRange,\n comparisonPeriod: string | undefined,\n theme: Theme,\n): TimeRange => {\n if (!primaryDateRange || !comparisonPeriod) {\n return undefined;\n }\n\n const primaryDateRangeRange = primaryDateRange?.relativeTimeString\n ? theme.defaults.dateRangesOptions\n .find((option) => option.value === primaryDateRange?.relativeTimeString)\n ?.getRange(theme.clientContext?.timezone)\n : primaryDateRange;\n\n const comparisonPeriodOption = theme.defaults.comparisonPeriodsOptions.find(\n (option) => option.value === comparisonPeriod,\n );\n\n return comparisonPeriodOption?.getRange(primaryDateRangeRange);\n};\n\nexport const getComparisonPeriodLabel = (\n comparisonPeriod: string | undefined,\n theme: Theme,\n): string => {\n const option = theme.defaults.comparisonPeriodsOptions.find(\n (option) => option.value === comparisonPeriod,\n );\n return option ? resolveI18nString(option.label) : '';\n};\n"],"names":["getComparisonPeriodDateRange","primaryDateRange","comparisonPeriod","theme","primaryDateRangeRange","_b","option","_a","comparisonPeriodOption","getComparisonPeriodLabel","resolveI18nString"],"mappings":";AAIO,MAAMA,IAA+B,CAC1CC,GACAC,GACAC,MACc;;AACd,MAAI,CAACF,KAAoB,CAACC;AACxB;AAGF,QAAME,IAAwBH,KAAA,QAAAA,EAAkB,sBAC5CI,IAAAF,EAAM,SAAS,kBACZ,KAAK,CAACG,MAAWA,EAAO,WAAUL,KAAA,gBAAAA,EAAkB,mBAAkB,MADzE,gBAAAI,EAEI,UAASE,IAAAJ,EAAM,kBAAN,gBAAAI,EAAqB,YAClCN,GAEEO,IAAyBL,EAAM,SAAS,yBAAyB;AAAA,IACrE,CAACG,MAAWA,EAAO,UAAUJ;AAAA,EAAA;AAG/B,SAAOM,KAAA,gBAAAA,EAAwB,SAASJ;AAC1C,GAEaK,IAA2B,CACtCP,GACAC,MACW;AACX,QAAMG,IAASH,EAAM,SAAS,yBAAyB;AAAA,IACrD,CAACG,MAAWA,EAAO,UAAUJ;AAAA,EAAA;AAE/B,SAAOI,IAASI,EAAkBJ,EAAO,KAAK,IAAI;AACpD;"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@embeddable.com/remarkable-pro",
3
3
  "author": "embeddable (https://embeddable.com)",
4
- "version": "0.1.32",
4
+ "version": "0.2.0",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/embeddable-hq/remarkable-pro"
@@ -1,116 +0,0 @@
1
- import { useEffect as h } from "react";
2
- import { l } from "./index-CJYh9LRs.js";
3
- import { g as A } from "./granularity.utils-Hj10GihD.js";
4
- import { g as p, S as v } from "./component.inputs.constants-C7tJAhsQ.js";
5
- function K(t) {
6
- const { resultsAxisOrder: e, axisDimension: r, setAxisOrderAndCacheKey: n, axisOrderCacheKey: o } = t;
7
- h(() => {
8
- if (!n || !(e != null && e.data) || e.isLoading || !o)
9
- return;
10
- const s = e.data.map((i) => i[r.name]).filter((i) => i != null);
11
- n(s, o);
12
- }, [e]);
13
- }
14
- const u = (t) => typeof t == "number" && Number.isInteger(t) && t > 0 ? t : void 0, c = (t, e) => !!(p(t) || u(e)), D = { data: [], isLoading: !1 }, g = ({
15
- dataset: t,
16
- axis: e,
17
- measure: r,
18
- sortDirection: n,
19
- limit: o
20
- }) => ({
21
- from: t,
22
- select: [e, r],
23
- orderBy: [
24
- {
25
- property: r,
26
- direction: p(n) ?? v.desc
27
- }
28
- ],
29
- limit: u(o)
30
- }), L = ({
31
- dataset: t,
32
- axis: e,
33
- measure: r,
34
- limitTopAxis: n,
35
- sortDirection: o
36
- }) => {
37
- if (c(o, n))
38
- return l(
39
- g({
40
- dataset: t,
41
- axis: e,
42
- measure: r,
43
- sortDirection: o,
44
- limit: n
45
- })
46
- );
47
- }, R = ({
48
- dataset: t,
49
- axis: e,
50
- measure: r,
51
- sortDirection: n,
52
- limit: o
53
- }) => {
54
- if (c(n, o))
55
- return JSON.stringify(
56
- g({ dataset: t, axis: e, measure: r, sortDirection: n, limit: o })
57
- );
58
- }, b = (t, e) => {
59
- if (!(t == null || t !== (e == null ? void 0 : e.axisOrderCacheKey)))
60
- return e == null ? void 0 : e.axisOrder;
61
- }, m = ({
62
- dataset: t,
63
- axis: e,
64
- groupBy: r,
65
- measure: n,
66
- limit: o,
67
- axisOrder: s
68
- }) => {
69
- const i = {
70
- from: t,
71
- select: [e, r, n],
72
- limit: u(o)
73
- };
74
- return s != null && s.length && (i.filters = [{ property: e, operator: "equals", value: s }]), i;
75
- }, E = ({
76
- dataset: t,
77
- axis: e,
78
- groupBy: r,
79
- measure: n,
80
- granularity: o,
81
- sortDirection: s,
82
- limitTopAxis: i,
83
- maxResults: f,
84
- axisOrder: a
85
- }) => {
86
- const y = c(s, i), d = A(e, o);
87
- if (!y)
88
- return l(
89
- m({
90
- dataset: t,
91
- axis: d,
92
- groupBy: r,
93
- measure: n,
94
- limit: f
95
- })
96
- );
97
- if (a != null)
98
- return a != null && a.length ? l(
99
- m({
100
- dataset: t,
101
- axis: d,
102
- groupBy: r,
103
- measure: n,
104
- limit: f,
105
- axisOrder: a
106
- })
107
- ) : D;
108
- };
109
- export {
110
- b as a,
111
- L as b,
112
- R as g,
113
- E as l,
114
- K as u
115
- };
116
- //# sourceMappingURL=bars.loadData.utils-FxKnljYM.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bars.loadData.utils-FxKnljYM.js","sources":["../src/components/charts/bars/bars.hooks.ts","../src/components/charts/bars/bars.loadData.utils.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport { DataResponse, Dimension } from '@embeddable.com/core';\n\nexport function useUpdateAxisOrderAndCacheKey(opts: {\n resultsAxisOrder?: DataResponse;\n axisDimension: Dimension;\n setAxisOrderAndCacheKey?: (values: string[], cacheKey: string) => void;\n axisOrderCacheKey?: string;\n}): void {\n const { resultsAxisOrder, axisDimension, setAxisOrderAndCacheKey, axisOrderCacheKey } = opts;\n\n useEffect(() => {\n if (\n !setAxisOrderAndCacheKey ||\n !resultsAxisOrder?.data ||\n resultsAxisOrder.isLoading ||\n !axisOrderCacheKey\n )\n return;\n\n const values = resultsAxisOrder.data\n .map((d) => d[axisDimension.name])\n .filter((v): v is string => v != null);\n\n setAxisOrderAndCacheKey(values, axisOrderCacheKey);\n // eslint-disable-next-line react-hooks/exhaustive-deps -- setAxisOrderAndCacheKey is recreated each render; other deps always change together with resultsAxisOrder\n }, [resultsAxisOrder]);\n}\n","import {\n DataResponse,\n Dataset,\n Dimension,\n Granularity,\n loadData,\n LoadDataRequest,\n Measure,\n OrderDirection,\n} from '@embeddable.com/core';\nimport { getDimensionWithGranularity } from '../utils/granularity.utils';\nimport {\n getSortDirectionValue,\n SortDirectionTypeOptions,\n} from '../../types/SortDirection.type.emb';\n\nexport const getLimit = (limit?: number): number | undefined =>\n typeof limit === 'number' && Number.isInteger(limit) && limit > 0 ? limit : undefined;\n\nexport const shouldGetTopItems = (sortDirection?: OrderDirection, limit?: number): boolean =>\n Boolean(getSortDirectionValue(sortDirection) || getLimit(limit));\n\nconst EMPTY_RESULTS = { data: [], isLoading: false } as DataResponse;\n\n// ---- Axis Order ----\n\ntype LoadDataResultsAxisOrderArgs = {\n dataset: Dataset;\n axis: Dimension;\n measure: Measure;\n sortDirection?: OrderDirection;\n limit?: number;\n};\n\nexport const loadDataResultsAxisOrderArgs = ({\n dataset,\n axis,\n measure,\n sortDirection,\n limit,\n}: LoadDataResultsAxisOrderArgs): LoadDataRequest => {\n return {\n from: dataset,\n select: [axis, measure],\n orderBy: [\n {\n property: measure,\n direction: getSortDirectionValue(sortDirection) ?? SortDirectionTypeOptions.desc,\n },\n ],\n limit: getLimit(limit),\n };\n};\n\ntype LoadDataResultsAxisOrder = {\n dataset: Dataset;\n axis: Dimension;\n measure: Measure;\n limitTopAxis?: number;\n sortDirection?: OrderDirection;\n};\n\nexport const loadDataResultsAxisOrder = ({\n dataset,\n axis,\n measure,\n limitTopAxis,\n sortDirection,\n}: LoadDataResultsAxisOrder): DataResponse | undefined => {\n const needsTopItems = shouldGetTopItems(sortDirection, limitTopAxis);\n\n if (!needsTopItems) return undefined;\n\n return loadData(\n loadDataResultsAxisOrderArgs({\n dataset,\n axis,\n measure,\n sortDirection,\n limit: limitTopAxis,\n }),\n );\n};\n\nexport const getAxisOrderCacheKey = ({\n dataset,\n axis,\n measure,\n sortDirection,\n limit,\n}: LoadDataResultsAxisOrderArgs): string | undefined => {\n if (!shouldGetTopItems(sortDirection, limit)) return undefined;\n return JSON.stringify(\n loadDataResultsAxisOrderArgs({ dataset, axis, measure, sortDirection, limit }),\n );\n};\n\nexport const getCachedAxisOrder = (\n axisOrderCacheKey: string | undefined,\n state: { axisOrderCacheKey?: string; axisOrder?: string[] } | undefined,\n): string[] | undefined => {\n if (axisOrderCacheKey == null || axisOrderCacheKey !== state?.axisOrderCacheKey) return undefined;\n return state?.axisOrder;\n};\n\n// ---- Results ----\n\ntype LoadDataResultsArgs = {\n dataset: Dataset;\n axis: Dimension;\n groupBy: Dimension;\n measure: Measure;\n limit?: number;\n axisOrder?: string[];\n};\n\nexport const loadDataResultsArgs = ({\n dataset,\n axis,\n groupBy,\n measure,\n limit,\n axisOrder,\n}: LoadDataResultsArgs): LoadDataRequest => {\n const request: LoadDataRequest = {\n from: dataset,\n select: [axis, groupBy, measure],\n limit: getLimit(limit),\n };\n if (axisOrder?.length) {\n request['filters'] = [{ property: axis, operator: 'equals', value: axisOrder }];\n }\n return request;\n};\n\ntype LoadDataResults = {\n dataset: Dataset;\n axis: Dimension;\n groupBy: Dimension;\n measure: Measure;\n granularity?: Granularity;\n sortDirection?: OrderDirection;\n limitTopAxis?: number;\n maxResults?: number;\n axisOrder?: string[];\n};\n\nexport const loadDataResults = ({\n dataset,\n axis,\n groupBy,\n measure,\n granularity,\n sortDirection,\n limitTopAxis,\n maxResults,\n axisOrder,\n}: LoadDataResults): DataResponse | undefined => {\n const needsTopItems = shouldGetTopItems(sortDirection, limitTopAxis);\n const axisWithGranularity = getDimensionWithGranularity(axis, granularity);\n if (!needsTopItems) {\n return loadData(\n loadDataResultsArgs({\n dataset,\n axis: axisWithGranularity,\n groupBy,\n measure,\n limit: maxResults,\n }),\n );\n }\n if (axisOrder == null) return undefined;\n if (!axisOrder?.length) return EMPTY_RESULTS;\n return loadData(\n loadDataResultsArgs({\n dataset,\n axis: axisWithGranularity,\n groupBy,\n measure,\n limit: maxResults,\n axisOrder,\n }),\n );\n};\n"],"names":["useUpdateAxisOrderAndCacheKey","opts","resultsAxisOrder","axisDimension","setAxisOrderAndCacheKey","axisOrderCacheKey","useEffect","values","d","v","getLimit","limit","shouldGetTopItems","sortDirection","getSortDirectionValue","EMPTY_RESULTS","loadDataResultsAxisOrderArgs","dataset","axis","measure","SortDirectionTypeOptions","loadDataResultsAxisOrder","limitTopAxis","loadData","getAxisOrderCacheKey","getCachedAxisOrder","state","loadDataResultsArgs","groupBy","axisOrder","request","loadDataResults","granularity","maxResults","needsTopItems","axisWithGranularity","getDimensionWithGranularity"],"mappings":"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"}
@@ -1,70 +0,0 @@
1
- import { d as n, u as j } from "./utc-CeNUjiDo.js";
2
- import { i as B, q as E } from "./quarterOfYear-DG6zAl_Q.js";
3
- import { w as M } from "./index-CJYh9LRs.js";
4
- import { useTheme as W } from "@embeddable.com/react";
5
- import { useMemo as Z } from "react";
6
- import { d as b } from "./component.inputs.constants-C7tJAhsQ.js";
7
- var S = { exports: {} }, C = S.exports, G;
8
- function L() {
9
- return G || (G = 1, (function(O, h) {
10
- (function(r, t) {
11
- O.exports = t();
12
- })(C, (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
- })(S)), S.exports;
20
- }
21
- var N = L();
22
- const T = /* @__PURE__ */ M(N);
23
- n.extend(j);
24
- n.extend(B);
25
- n.extend(T);
26
- n.extend(E);
27
- function P(O) {
28
- const h = W(), { results: r, dimension: t, orderDirection: u = "asc", externalDateBounds: o } = O;
29
- return Z(() => {
30
- var k, w, q, I, R, V, F;
31
- const f = (k = t.inputs) == null ? void 0 : k.granularity, s = t.name, a = (w = t.inputs) == null ? void 0 : w.dateBounds, $ = b.map(
32
- (e) => e.value
33
- );
34
- if (!f || !$.includes(f) || !s || !r || r.isLoading || ((q = r.data) == null ? void 0 : q.length) === 0)
35
- return r;
36
- const c = a != null && a.relativeTimeString ? (I = h.defaults.dateRangesOptions.find((e) => e.value === (a == null ? void 0 : a.relativeTimeString))) == null ? void 0 : I.getRange() : a;
37
- if (t.nativeType !== "time") return r;
38
- const l = [...(r == null ? void 0 : r.data) ?? []].sort((e, i) => {
39
- const m = e[s], p = i[s];
40
- return m == null ? 1 : p == null ? -1 : n.utc(m).diff(n.utc(p));
41
- }), x = n.utc(
42
- (o == null ? void 0 : o.from) ?? (c == null ? void 0 : c.from) ?? ((R = l[0]) == null ? void 0 : R[s])
43
- ), y = n.utc(
44
- (o == null ? void 0 : o.to) ?? (c == null ? void 0 : c.to) ?? ((V = l[l.length - 1]) == null ? void 0 : V[s]) ?? ((F = [...l].reverse().find((e) => (e == null ? void 0 : e[s]) != null)) == null ? void 0 : F[s])
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[s];
51
- if (i == null) continue;
52
- const m = n.utc(i).toISOString().split("Z")[0], p = v.get(m) ?? [];
53
- p.push(e), v.set(m, p);
54
- }
55
- const d = [];
56
- let g = x.startOf(f === "week" ? "isoWeek" : f);
57
- for (; g.isSameOrBefore(y); ) {
58
- const e = g.toISOString().split("Z")[0], i = v.get(e);
59
- i && i.length > 0 ? d.push(...i) : d.push({ [s]: e }), g = g.add(1, f);
60
- }
61
- return u === "desc" && d.reverse(), {
62
- ...r,
63
- data: d
64
- };
65
- }, [r, t, u, h]);
66
- }
67
- export {
68
- P as u
69
- };
70
- //# sourceMappingURL=charts.fillGaps.hooks-CvKhAwUj.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"charts.fillGaps.hooks-CvKhAwUj.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()\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]}