@embeddable.com/remarkable-pro 0.2.10 → 0.2.12

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 (440) 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/BarLineChartPro.js +9 -0
  8. package/dist/BarLineChartPro.js.map +1 -0
  9. package/dist/BubbleChartPro.js +1 -1
  10. package/dist/{ChartCard-CatiYbl-.js → ChartCard-DXg1i7Y2.js} +4 -4
  11. package/dist/{ChartCard-CatiYbl-.js.map → ChartCard-DXg1i7Y2.js.map} +1 -1
  12. package/dist/{Color.type.emb-BS-55GUE.js → Color.type.emb-C48X9XZ3.js} +2 -2
  13. package/dist/{Color.type.emb-BS-55GUE.js.map → Color.type.emb-C48X9XZ3.js.map} +1 -1
  14. package/dist/ColorEditor.js +3 -3
  15. package/dist/ComparisonPeriodSelectFieldPro.js +1 -1
  16. package/dist/DateRangePickerCustomPro.js +1 -1
  17. package/dist/DateRangeSelectFieldPro.js +1 -1
  18. package/dist/{DimensionAndMeasureSingleSelectField-BLjcB7Bi.js → DimensionAndMeasureSingleSelectField-BS3fYMIJ.js} +3 -3
  19. package/dist/{DimensionAndMeasureSingleSelectField-BLjcB7Bi.js.map → DimensionAndMeasureSingleSelectField-BS3fYMIJ.js.map} +1 -1
  20. package/dist/DimensionMeasureMultiSelectFieldPro.js +1 -1
  21. package/dist/DimensionSingleSelectFieldPro.js +1 -1
  22. package/dist/DonutChartPro.js +1 -1
  23. package/dist/DonutLabelChartPro.js +1 -1
  24. package/dist/{EditorCard-BTieCUGT.js → EditorCard-BcrwRhSA.js} +3 -3
  25. package/dist/{EditorCard-BTieCUGT.js.map → EditorCard-BcrwRhSA.js.map} +1 -1
  26. package/dist/FilterBuilderPro.js +6 -6
  27. package/dist/FilterBuilderPro.js.map +1 -1
  28. package/dist/{GranularitySelectField-CGsBYf4h.js → GranularitySelectField-ClAB7oCR.js} +3 -3
  29. package/dist/{GranularitySelectField-CGsBYf4h.js.map → GranularitySelectField-ClAB7oCR.js.map} +1 -1
  30. package/dist/GranularitySelectFieldPro.js +1 -1
  31. package/dist/HeatMapPro.js +1 -1
  32. package/dist/HorizontalDividerPro.js +1 -1
  33. package/dist/{IconAlertCircle-DGuTo5fd.js → IconAlertCircle-CDtLzTIb.js} +3 -3
  34. package/dist/{IconAlertCircle-DGuTo5fd.js.map → IconAlertCircle-CDtLzTIb.js.map} +1 -1
  35. package/dist/{IconCalendarFilled-S6JFULws.js → IconCalendarFilled-4k_3y3GP.js} +3 -3
  36. package/dist/{IconCalendarFilled-S6JFULws.js.map → IconCalendarFilled-4k_3y3GP.js.map} +1 -1
  37. package/dist/KpiChartNumberComparisonPro.js +1 -1
  38. package/dist/KpiChartNumberPro.js +1 -1
  39. package/dist/LineChartComparisonDefaultPro.js +1 -1
  40. package/dist/LineChartComparisonWithKpiTabsPro.js +1 -1
  41. package/dist/LineChartDefaultPro.js +1 -1
  42. package/dist/LineChartGroupedPro.js +1 -1
  43. package/dist/LineChartWithKpiTabsPro.js +1 -1
  44. package/dist/{Markdown.type.emb-CUa6Xa26.js → Markdown.type.emb-Clye3RVm.js} +2 -2
  45. package/dist/{Markdown.type.emb-CUa6Xa26.js.map → Markdown.type.emb-Clye3RVm.js.map} +1 -1
  46. package/dist/MarkdownEditor.js +3 -3
  47. package/dist/MarkdownPro.js +1 -1
  48. package/dist/MeasureMultiSelectFieldPro.js +1 -1
  49. package/dist/MeasureSingleSelectFieldPro.js +1 -1
  50. package/dist/MultiSelectFieldPro.js +1 -1
  51. package/dist/PieChartPro.js +1 -1
  52. package/dist/PivotTablePro.js +1 -1
  53. package/dist/ScatterChartPro.js +1 -1
  54. package/dist/SingleSelectFieldPro.js +1 -1
  55. package/dist/TableChartPaginated.js +1 -1
  56. package/dist/TableScrollable.js +1 -1
  57. package/dist/TextFieldPro.js +1 -1
  58. package/dist/{af-CCdGr-PG.js → af-PE95hAml.js} +3 -3
  59. package/dist/{af-CCdGr-PG.js.map → af-PE95hAml.js.map} +1 -1
  60. package/dist/{am-BcjBHTya.js → am-De7OFh0B.js} +3 -3
  61. package/dist/{am-BcjBHTya.js.map → am-De7OFh0B.js.map} +1 -1
  62. package/dist/{ar-0Yx4b8cc.js → ar-Sm20MWHS.js} +3 -3
  63. package/dist/{ar-0Yx4b8cc.js.map → ar-Sm20MWHS.js.map} +1 -1
  64. package/dist/{az-D6jQ3xBE.js → az-ByspvXkC.js} +3 -3
  65. package/dist/{az-D6jQ3xBE.js.map → az-ByspvXkC.js.map} +1 -1
  66. package/dist/{bars.loadData.utils-Do6Hqrrm.js → bars.loadData.utils-C5E5B2FR.js} +4 -4
  67. package/dist/{bars.loadData.utils-Do6Hqrrm.js.map → bars.loadData.utils-C5E5B2FR.js.map} +1 -1
  68. package/dist/{bars.utils-CL2mYAdO.js → bars.utils-BRcrvn99.js} +5 -5
  69. package/dist/{bars.utils-CL2mYAdO.js.map → bars.utils-BRcrvn99.js.map} +1 -1
  70. package/dist/{be-ByG07ZJB.js → be-DWEwI0qo.js} +3 -3
  71. package/dist/{be-ByG07ZJB.js.map → be-DWEwI0qo.js.map} +1 -1
  72. package/dist/{bg-DMxdxDal.js → bg-CGjr5Xq_.js} +3 -3
  73. package/dist/{bg-DMxdxDal.js.map → bg-CGjr5Xq_.js.map} +1 -1
  74. package/dist/{bi-Bs7vLeRf.js → bi-DZ4MLC96.js} +3 -3
  75. package/dist/{bi-Bs7vLeRf.js.map → bi-DZ4MLC96.js.map} +1 -1
  76. package/dist/{bm-DKqtUyso.js → bm-Ccdr-8PK.js} +3 -3
  77. package/dist/{bm-DKqtUyso.js.map → bm-Ccdr-8PK.js.map} +1 -1
  78. package/dist/{bn--zx3B8eB.js → bn-BoRfKA5m.js} +3 -3
  79. package/dist/{bn--zx3B8eB.js.map → bn-BoRfKA5m.js.map} +1 -1
  80. package/dist/{bo-C-Mo2tVa.js → bo-CUEC4ZFk.js} +3 -3
  81. package/dist/{bo-C-Mo2tVa.js.map → bo-CUEC4ZFk.js.map} +1 -1
  82. package/dist/{br-bJTDs0ol.js → br-BjjIpmS6.js} +3 -3
  83. package/dist/{br-bJTDs0ol.js.map → br-BjjIpmS6.js.map} +1 -1
  84. package/dist/{bs-1MO06Z8E.js → bs-Bz_Tk-6h.js} +3 -3
  85. package/dist/{bs-1MO06Z8E.js.map → bs-Bz_Tk-6h.js.map} +1 -1
  86. package/dist/{ca-CESpc4NU.js → ca-CjIbF5UP.js} +3 -3
  87. package/dist/{ca-CESpc4NU.js.map → ca-CjIbF5UP.js.map} +1 -1
  88. package/dist/{charts.fillGaps.hooks-DJ2h9dko.js → charts.fillGaps.hooks-DwMWViua.js} +6 -6
  89. package/dist/{charts.fillGaps.hooks-DJ2h9dko.js.map → charts.fillGaps.hooks-DwMWViua.js.map} +1 -1
  90. package/dist/charts.utils-DOtSJB7u.js +67 -0
  91. package/dist/charts.utils-DOtSJB7u.js.map +1 -0
  92. package/dist/{component.inputs.constants-CIEx8GcX.js → component.inputs.constants-ByMVK7Vv.js} +4 -4
  93. package/dist/{component.inputs.constants-CIEx8GcX.js.map → component.inputs.constants-ByMVK7Vv.js.map} +1 -1
  94. package/dist/components/charts/charts.utils.d.ts.map +1 -1
  95. package/dist/components/charts/combo/BarLineChartPro/BarLineChartPro.emb.d.ts +212 -0
  96. package/dist/components/charts/combo/BarLineChartPro/BarLineChartPro.emb.d.ts.map +1 -0
  97. package/dist/components/charts/combo/BarLineChartPro/BarLineChartPro.utils.d.ts +34 -0
  98. package/dist/components/charts/combo/BarLineChartPro/BarLineChartPro.utils.d.ts.map +1 -0
  99. package/dist/components/charts/combo/BarLineChartPro/BarLineChartPro.utils.test.d.ts +2 -0
  100. package/dist/components/charts/combo/BarLineChartPro/BarLineChartPro.utils.test.d.ts.map +1 -0
  101. package/dist/components/charts/combo/BarLineChartPro/definition.d.ts +486 -0
  102. package/dist/components/charts/combo/BarLineChartPro/definition.d.ts.map +1 -0
  103. package/dist/components/charts/combo/BarLineChartPro/index.d.ts +5 -0
  104. package/dist/components/charts/combo/BarLineChartPro/index.d.ts.map +1 -0
  105. package/dist/components/charts/combo/BarLineChartPro/index.test.d.ts +2 -0
  106. package/dist/components/charts/combo/BarLineChartPro/index.test.d.ts.map +1 -0
  107. package/dist/components/charts/combo/combo.types.d.ts +31 -0
  108. package/dist/components/charts/combo/combo.types.d.ts.map +1 -0
  109. package/dist/components/charts/tables/TableScrollable/definition.d.ts +1 -0
  110. package/dist/components/charts/tables/TableScrollable/definition.d.ts.map +1 -1
  111. package/dist/{cs-D8VrUgB1.js → cs-NyUThtum.js} +3 -3
  112. package/dist/{cs-D8VrUgB1.js.map → cs-NyUThtum.js.map} +1 -1
  113. package/dist/{cv-BI40TjhM.js → cv-DICMkYe1.js} +3 -3
  114. package/dist/{cv-BI40TjhM.js.map → cv-DICMkYe1.js.map} +1 -1
  115. package/dist/{cy-BtTp6CZU.js → cy-BRGrvgg2.js} +3 -3
  116. package/dist/{cy-BtTp6CZU.js.map → cy-BRGrvgg2.js.map} +1 -1
  117. package/dist/{da-Ddz06LQJ.js → da-Bfb51zSO.js} +3 -3
  118. package/dist/{da-Ddz06LQJ.js.map → da-Bfb51zSO.js.map} +1 -1
  119. package/dist/dates.utils-pvbqdBFY.js +169 -0
  120. package/dist/{dates.utils-D8ZJoQxc.js.map → dates.utils-pvbqdBFY.js.map} +1 -1
  121. package/dist/{de-BeD9UR04.js → de-Cok2csPt.js} +3 -3
  122. package/dist/{de-BeD9UR04.js.map → de-Cok2csPt.js.map} +1 -1
  123. package/dist/{definition-1sIuX_RS.js → definition-3cfu-o4C.js} +12 -12
  124. package/dist/{definition-1sIuX_RS.js.map → definition-3cfu-o4C.js.map} +1 -1
  125. package/dist/definition-BAAazBwk.js +423 -0
  126. package/dist/definition-BAAazBwk.js.map +1 -0
  127. package/dist/{definition-PMS0Zy7M.js → definition-BBXOARfQ.js} +6 -6
  128. package/dist/{definition-PMS0Zy7M.js.map → definition-BBXOARfQ.js.map} +1 -1
  129. package/dist/{definition-DfkX2-sf.js → definition-BDBY3RKi.js} +6 -6
  130. package/dist/{definition-DfkX2-sf.js.map → definition-BDBY3RKi.js.map} +1 -1
  131. package/dist/{definition-DbJm1ZtX.js → definition-BHWtQ59c.js} +32 -32
  132. package/dist/{definition-DbJm1ZtX.js.map → definition-BHWtQ59c.js.map} +1 -1
  133. package/dist/{definition-Do8J2457.js → definition-BU2B8qHx.js} +6 -6
  134. package/dist/{definition-Do8J2457.js.map → definition-BU2B8qHx.js.map} +1 -1
  135. package/dist/{definition-DI27PK_0.js → definition-BXFVkwmO.js} +6 -6
  136. package/dist/{definition-DI27PK_0.js.map → definition-BXFVkwmO.js.map} +1 -1
  137. package/dist/{definition-D38kIOtQ.js → definition-Bb2wTO-c.js} +6 -6
  138. package/dist/{definition-D38kIOtQ.js.map → definition-Bb2wTO-c.js.map} +1 -1
  139. package/dist/{definition-CPhscnZB.js → definition-BbmILx0y.js} +5 -5
  140. package/dist/{definition-CPhscnZB.js.map → definition-BbmILx0y.js.map} +1 -1
  141. package/dist/{definition-6n187XS3.js → definition-Bs4gASYO.js} +6 -6
  142. package/dist/{definition-6n187XS3.js.map → definition-Bs4gASYO.js.map} +1 -1
  143. package/dist/{definition-D0UDgs9O.js → definition-BtMxPnXl.js} +19 -19
  144. package/dist/{definition-D0UDgs9O.js.map → definition-BtMxPnXl.js.map} +1 -1
  145. package/dist/{definition-BSaeb-8G.js → definition-C436XcND.js} +10 -10
  146. package/dist/{definition-BSaeb-8G.js.map → definition-C436XcND.js.map} +1 -1
  147. package/dist/{definition-B7BBKe7O.js → definition-C8gq-4XK.js} +10 -10
  148. package/dist/{definition-B7BBKe7O.js.map → definition-C8gq-4XK.js.map} +1 -1
  149. package/dist/{definition-D_aFQnX_.js → definition-C8wEhvFe.js} +118 -118
  150. package/dist/{definition-D_aFQnX_.js.map → definition-C8wEhvFe.js.map} +1 -1
  151. package/dist/{definition-C9ErCnmn.js → definition-CCTIw2u2.js} +11 -11
  152. package/dist/{definition-C9ErCnmn.js.map → definition-CCTIw2u2.js.map} +1 -1
  153. package/dist/{definition-D0g7Pazt.js → definition-CiAN8_P3.js} +39 -39
  154. package/dist/{definition-D0g7Pazt.js.map → definition-CiAN8_P3.js.map} +1 -1
  155. package/dist/{definition-qLvZHWiF.js → definition-CwUZ7Ef9.js} +12 -12
  156. package/dist/{definition-qLvZHWiF.js.map → definition-CwUZ7Ef9.js.map} +1 -1
  157. package/dist/{definition-muIAAuOS.js → definition-D3A4-Rhr.js} +15 -15
  158. package/dist/{definition-muIAAuOS.js.map → definition-D3A4-Rhr.js.map} +1 -1
  159. package/dist/{definition-B-ZwQgyf.js → definition-DA0ccOK9.js} +11 -11
  160. package/dist/{definition-B-ZwQgyf.js.map → definition-DA0ccOK9.js.map} +1 -1
  161. package/dist/{definition-CdXHVzxe.js → definition-DF06zMmI.js} +6 -6
  162. package/dist/{definition-CdXHVzxe.js.map → definition-DF06zMmI.js.map} +1 -1
  163. package/dist/{definition-ByBRb8r_.js → definition-DWU2AABE.js} +9 -9
  164. package/dist/{definition-ByBRb8r_.js.map → definition-DWU2AABE.js.map} +1 -1
  165. package/dist/{definition-_MNEtEy7.js → definition-Dc4uLUUw.js} +5 -5
  166. package/dist/{definition-_MNEtEy7.js.map → definition-Dc4uLUUw.js.map} +1 -1
  167. package/dist/{definition-rmG59Brv.js → definition-Dcol7y_F.js} +25 -25
  168. package/dist/{definition-rmG59Brv.js.map → definition-Dcol7y_F.js.map} +1 -1
  169. package/dist/{definition-cBjkkasN.js → definition-DezdImTv.js} +6 -6
  170. package/dist/{definition-cBjkkasN.js.map → definition-DezdImTv.js.map} +1 -1
  171. package/dist/{definition-0nqHbjry.js → definition-Dio9hM3U.js} +13 -13
  172. package/dist/{definition-0nqHbjry.js.map → definition-Dio9hM3U.js.map} +1 -1
  173. package/dist/{definition-tWKcWrEG.js → definition-DmMDhcVV.js} +6 -6
  174. package/dist/{definition-tWKcWrEG.js.map → definition-DmMDhcVV.js.map} +1 -1
  175. package/dist/{definition-BQGwKbTz.js → definition-Dm_lEl9O.js} +4 -4
  176. package/dist/{definition-BQGwKbTz.js.map → definition-Dm_lEl9O.js.map} +1 -1
  177. package/dist/{definition-BHH8dj7a.js → definition-DnMMrWyz.js} +10 -10
  178. package/dist/{definition-BHH8dj7a.js.map → definition-DnMMrWyz.js.map} +1 -1
  179. package/dist/{definition-B70MJmBM.js → definition-DoSn_GaJ.js} +9 -9
  180. package/dist/{definition-B70MJmBM.js.map → definition-DoSn_GaJ.js.map} +1 -1
  181. package/dist/{definition-mCpuRoVG.js → definition-Ds-a0Gat.js} +11 -11
  182. package/dist/{definition-mCpuRoVG.js.map → definition-Ds-a0Gat.js.map} +1 -1
  183. package/dist/{definition-a7s685l9.js → definition-PDaAOTSz.js} +11 -11
  184. package/dist/{definition-a7s685l9.js.map → definition-PDaAOTSz.js.map} +1 -1
  185. package/dist/{definition-Ddlk9Qnc.js → definition-XKTgYs0c.js} +3 -3
  186. package/dist/{definition-Ddlk9Qnc.js.map → definition-XKTgYs0c.js.map} +1 -1
  187. package/dist/{definition-DwnteodG.js → definition-p5xsyRmK.js} +13 -13
  188. package/dist/{definition-DwnteodG.js.map → definition-p5xsyRmK.js.map} +1 -1
  189. package/dist/{definition-B27fLC1x.js → definition-pF0N3U_N.js} +23 -23
  190. package/dist/{definition-B27fLC1x.js.map → definition-pF0N3U_N.js.map} +1 -1
  191. package/dist/{definition-DvEU_VPT.js → definition-yi0BqwCz.js} +6 -6
  192. package/dist/{definition-DvEU_VPT.js.map → definition-yi0BqwCz.js.map} +1 -1
  193. package/dist/{definition-COnRI1oJ.js → definition-yjP09erg.js} +10 -10
  194. package/dist/{definition-COnRI1oJ.js.map → definition-yjP09erg.js.map} +1 -1
  195. package/dist/{dimension.utils-BRQVdJX8.js → dimension.utils-DlzeRFgr.js} +4 -4
  196. package/dist/{dimension.utils-BRQVdJX8.js.map → dimension.utils-DlzeRFgr.js.map} +1 -1
  197. package/dist/{dimensionsAndMeasures.utils-ffVh3hbf.js → dimensionsAndMeasures.utils-QrsgOdpr.js} +2 -2
  198. package/dist/{dimensionsAndMeasures.utils-ffVh3hbf.js.map → dimensionsAndMeasures.utils-QrsgOdpr.js.map} +1 -1
  199. package/dist/{dv-B_CktpS2.js → dv-CIilgvyz.js} +3 -3
  200. package/dist/{dv-B_CktpS2.js.map → dv-CIilgvyz.js.map} +1 -1
  201. package/dist/{el-DIN3ITN4.js → el-C-T3KtVQ.js} +3 -3
  202. package/dist/{el-DIN3ITN4.js.map → el-C-T3KtVQ.js.map} +1 -1
  203. package/dist/embeddable-components.json +54 -52
  204. package/dist/{en-CkkRz0_n.js → en-wuXs26QS.js} +2 -2
  205. package/dist/{en-CkkRz0_n.js.map → en-wuXs26QS.js.map} +1 -1
  206. package/dist/{eo-IrgFuHLs.js → eo-B-tKnVgT.js} +3 -3
  207. package/dist/{eo-IrgFuHLs.js.map → eo-B-tKnVgT.js.map} +1 -1
  208. package/dist/{es-CGBTJxaI.js → es-D3KaFq7V.js} +3 -3
  209. package/dist/{es-CGBTJxaI.js.map → es-D3KaFq7V.js.map} +1 -1
  210. package/dist/{et-MoIbWV9O.js → et-D8LJG-wB.js} +3 -3
  211. package/dist/{et-MoIbWV9O.js.map → et-D8LJG-wB.js.map} +1 -1
  212. package/dist/{eu-hmle6Y21.js → eu-Cli6CJv1.js} +3 -3
  213. package/dist/{eu-hmle6Y21.js.map → eu-Cli6CJv1.js.map} +1 -1
  214. package/dist/{fa-B8QXF5G5.js → fa-BxofvAht.js} +3 -3
  215. package/dist/{fa-B8QXF5G5.js.map → fa-BxofvAht.js.map} +1 -1
  216. package/dist/{fi-BJXF2XsX.js → fi-EWfkyPNi.js} +3 -3
  217. package/dist/{fi-BJXF2XsX.js.map → fi-EWfkyPNi.js.map} +1 -1
  218. package/dist/{fo-DaR3pzgd.js → fo-CgZWNF9A.js} +3 -3
  219. package/dist/{fo-DaR3pzgd.js.map → fo-CgZWNF9A.js.map} +1 -1
  220. package/dist/{formatter.utils-DMnYcJuA.js → formatter.utils-Y14po21h.js} +3 -3
  221. package/dist/{formatter.utils-DMnYcJuA.js.map → formatter.utils-Y14po21h.js.map} +1 -1
  222. package/dist/{fr-twa5Pocv.js → fr-C05s28pd.js} +3 -3
  223. package/dist/{fr-twa5Pocv.js.map → fr-C05s28pd.js.map} +1 -1
  224. package/dist/{fy-BaB0rA3a.js → fy-sxOXjPCo.js} +3 -3
  225. package/dist/{fy-BaB0rA3a.js.map → fy-sxOXjPCo.js.map} +1 -1
  226. package/dist/{ga-DZilhmJg.js → ga-Bs38CKw5.js} +3 -3
  227. package/dist/{ga-DZilhmJg.js.map → ga-Bs38CKw5.js.map} +1 -1
  228. package/dist/{gd-CnGf7izL.js → gd-BKb8zZtL.js} +3 -3
  229. package/dist/{gd-CnGf7izL.js.map → gd-BKb8zZtL.js.map} +1 -1
  230. package/dist/{gl-CHwaTlWs.js → gl-6u216j5r.js} +3 -3
  231. package/dist/{gl-CHwaTlWs.js.map → gl-6u216j5r.js.map} +1 -1
  232. package/dist/{granularity.utils-DvG93xi4.js → granularity.utils-DwARRSja.js} +3 -3
  233. package/dist/{granularity.utils-DvG93xi4.js.map → granularity.utils-DwARRSja.js.map} +1 -1
  234. package/dist/{gu-CQftkoEv.js → gu-DHoY8FS-.js} +3 -3
  235. package/dist/{gu-CQftkoEv.js.map → gu-DHoY8FS-.js.map} +1 -1
  236. package/dist/{he-BkELaRWz.js → he-BOt4LbA0.js} +3 -3
  237. package/dist/{he-BkELaRWz.js.map → he-BOt4LbA0.js.map} +1 -1
  238. package/dist/{hi-DhHC_3Hj.js → hi-DELDsJsQ.js} +3 -3
  239. package/dist/{hi-DhHC_3Hj.js.map → hi-DELDsJsQ.js.map} +1 -1
  240. package/dist/{hr-DO5L4wc7.js → hr-Cz-1YMNw.js} +3 -3
  241. package/dist/{hr-DO5L4wc7.js.map → hr-Cz-1YMNw.js.map} +1 -1
  242. package/dist/{ht-aNxqEx4N.js → ht-CYJjQOsn.js} +3 -3
  243. package/dist/{ht-aNxqEx4N.js.map → ht-CYJjQOsn.js.map} +1 -1
  244. package/dist/{hu-CHDOwPKK.js → hu-C9hbx7eP.js} +3 -3
  245. package/dist/{hu-CHDOwPKK.js.map → hu-C9hbx7eP.js.map} +1 -1
  246. package/dist/{id-7-T5aCtX.js → id-CzXROsks.js} +3 -3
  247. package/dist/{id-7-T5aCtX.js.map → id-CzXROsks.js.map} +1 -1
  248. package/dist/{index-8hrCrGw9.js → index-7D6uMJ-C.js} +67 -63
  249. package/dist/{index-8hrCrGw9.js.map → index-7D6uMJ-C.js.map} +1 -1
  250. package/dist/{index-DXmW1QS5.js → index-CsHwdlzx.js} +4 -4
  251. package/dist/{index-DXmW1QS5.js.map → index-CsHwdlzx.js.map} +1 -1
  252. package/dist/{index-C6X9ikcG.js → index-UmHAnJ7O.js} +2 -2
  253. package/dist/{index-C6X9ikcG.js.map → index-UmHAnJ7O.js.map} +1 -1
  254. package/dist/index.d.ts +4 -0
  255. package/dist/index.d.ts.map +1 -1
  256. package/dist/index.js +154 -148
  257. package/dist/index.js.map +1 -1
  258. package/dist/{is-CRmXMShd.js → is-DAMvHJ62.js} +3 -3
  259. package/dist/{is-CRmXMShd.js.map → is-DAMvHJ62.js.map} +1 -1
  260. package/dist/{isoWeek-CRwPN2kc.js → isoWeek-Xf2JxuQf.js} +2 -2
  261. package/dist/{isoWeek-CRwPN2kc.js.map → isoWeek-Xf2JxuQf.js.map} +1 -1
  262. package/dist/{it-DhMNJT-J.js → it-B9gFfC1w.js} +3 -3
  263. package/dist/{it-DhMNJT-J.js.map → it-B9gFfC1w.js.map} +1 -1
  264. package/dist/{ja-CSpsKqc7.js → ja-DVc99nWb.js} +3 -3
  265. package/dist/{ja-CSpsKqc7.js.map → ja-DVc99nWb.js.map} +1 -1
  266. package/dist/{jv-Cp3uVAj-.js → jv-C9zd3feI.js} +3 -3
  267. package/dist/{jv-Cp3uVAj-.js.map → jv-C9zd3feI.js.map} +1 -1
  268. package/dist/{ka-C0Sy6UwK.js → ka-Dls_SvKO.js} +3 -3
  269. package/dist/{ka-C0Sy6UwK.js.map → ka-Dls_SvKO.js.map} +1 -1
  270. package/dist/{kk-IqjoEKPb.js → kk-Bi3d53AA.js} +3 -3
  271. package/dist/{kk-IqjoEKPb.js.map → kk-Bi3d53AA.js.map} +1 -1
  272. package/dist/{km-D8F3ZsCH.js → km-CZFrfwuT.js} +3 -3
  273. package/dist/{km-D8F3ZsCH.js.map → km-CZFrfwuT.js.map} +1 -1
  274. package/dist/{kn-CvfC3fK7.js → kn-DwJYxoal.js} +3 -3
  275. package/dist/{kn-CvfC3fK7.js.map → kn-DwJYxoal.js.map} +1 -1
  276. package/dist/{ko-BV9HqaCn.js → ko-CXtj8ASN.js} +3 -3
  277. package/dist/{ko-BV9HqaCn.js.map → ko-CXtj8ASN.js.map} +1 -1
  278. package/dist/{ku-BWcMmNz3.js → ku-Ds_e7JR3.js} +3 -3
  279. package/dist/{ku-BWcMmNz3.js.map → ku-Ds_e7JR3.js.map} +1 -1
  280. package/dist/{ky-DFkI2vEa.js → ky-CMgsEZtu.js} +3 -3
  281. package/dist/{ky-DFkI2vEa.js.map → ky-CMgsEZtu.js.map} +1 -1
  282. package/dist/{lb-DHc-epOE.js → lb-Dy_jPl5C.js} +3 -3
  283. package/dist/{lb-DHc-epOE.js.map → lb-Dy_jPl5C.js.map} +1 -1
  284. package/dist/{lo-BxcxInvh.js → lo-ivypcTmJ.js} +3 -3
  285. package/dist/{lo-BxcxInvh.js.map → lo-ivypcTmJ.js.map} +1 -1
  286. package/dist/{lt-Cg4jT0Np.js → lt-Cy8qiGle.js} +3 -3
  287. package/dist/{lt-Cg4jT0Np.js.map → lt-Cy8qiGle.js.map} +1 -1
  288. package/dist/{lv-DNDkf-zb.js → lv-xH787shF.js} +3 -3
  289. package/dist/{lv-DNDkf-zb.js.map → lv-xH787shF.js.map} +1 -1
  290. package/dist/{me-C87CeVPA.js → me-Ld4-YRHW.js} +3 -3
  291. package/dist/{me-C87CeVPA.js.map → me-Ld4-YRHW.js.map} +1 -1
  292. package/dist/meta/BarChartDefaultHorizontalPro.meta.json +282 -0
  293. package/dist/meta/BarChartDefaultPro.meta.json +282 -0
  294. package/dist/meta/BarChartGroupedHorizontalPro.meta.json +347 -0
  295. package/dist/meta/BarChartGroupedPro.meta.json +347 -0
  296. package/dist/meta/BarChartStackedHorizontalPro.meta.json +354 -0
  297. package/dist/meta/BarChartStackedPro.meta.json +354 -0
  298. package/dist/meta/BarLineChartPro.meta.json +414 -0
  299. package/dist/meta/BubbleChartPro.meta.json +480 -0
  300. package/dist/meta/ComparisonPeriodSelectFieldPro.meta.json +80 -0
  301. package/dist/meta/DateRangePickerCustomPro.meta.json +97 -0
  302. package/dist/meta/DateRangeSelectFieldPro.meta.json +104 -0
  303. package/dist/meta/DimensionMeasureMultiSelectFieldPro.meta.json +205 -0
  304. package/dist/meta/DimensionSingleSelectFieldPro.meta.json +202 -0
  305. package/dist/meta/DonutChartPro.meta.json +204 -0
  306. package/dist/meta/DonutLabelChartPro.meta.json +271 -0
  307. package/dist/meta/EmptyBlockPro.meta.json +7 -0
  308. package/dist/meta/FilterBuilderPro.meta.json +135 -0
  309. package/dist/meta/GranularitySelectFieldPro.meta.json +98 -0
  310. package/dist/meta/HeatMapPro.meta.json +314 -0
  311. package/dist/meta/HorizontalDividerPro.meta.json +23 -0
  312. package/dist/meta/KpiChartNumberComparisonPro.meta.json +159 -0
  313. package/dist/meta/KpiChartNumberPro.meta.json +104 -0
  314. package/dist/meta/LineChartComparisonDefaultPro.meta.json +336 -0
  315. package/dist/meta/LineChartComparisonWithKpiTabsPro.meta.json +354 -0
  316. package/dist/meta/LineChartDefaultPro.meta.json +287 -0
  317. package/dist/meta/LineChartGroupedPro.meta.json +347 -0
  318. package/dist/meta/LineChartWithKpiTabsPro.meta.json +287 -0
  319. package/dist/meta/MarkdownPro.meta.json +16 -0
  320. package/dist/meta/MeasureMultiSelectFieldPro.meta.json +205 -0
  321. package/dist/meta/MeasureSingleSelectFieldPro.meta.json +202 -0
  322. package/dist/meta/MultiSelectFieldPro.meta.json +211 -0
  323. package/dist/meta/PieChartPro.meta.json +204 -0
  324. package/dist/meta/PivotTablePro.meta.json +354 -0
  325. package/dist/meta/ScatterChartPro.meta.json +401 -0
  326. package/dist/meta/SingleSelectFieldPro.meta.json +208 -0
  327. package/dist/meta/TableChartPaginated.meta.json +176 -0
  328. package/dist/meta/TableScrollable.meta.json +181 -0
  329. package/dist/meta/TextFieldPro.meta.json +72 -0
  330. package/dist/meta/index.json +192 -0
  331. package/dist/{mi-BxqM2qJk.js → mi-CJYpBpOr.js} +3 -3
  332. package/dist/{mi-BxqM2qJk.js.map → mi-CJYpBpOr.js.map} +1 -1
  333. package/dist/{mk-BIiDrMAt.js → mk-0ceUrulM.js} +3 -3
  334. package/dist/{mk-BIiDrMAt.js.map → mk-0ceUrulM.js.map} +1 -1
  335. package/dist/{ml-43ejzuG1.js → ml-DjAJ7j8l.js} +3 -3
  336. package/dist/{ml-43ejzuG1.js.map → ml-DjAJ7j8l.js.map} +1 -1
  337. package/dist/{mn-DwaDo2b5.js → mn-DqYglang.js} +3 -3
  338. package/dist/{mn-DwaDo2b5.js.map → mn-DqYglang.js.map} +1 -1
  339. package/dist/{mr-B912wfBu.js → mr-DqzXeHdH.js} +3 -3
  340. package/dist/{mr-B912wfBu.js.map → mr-DqzXeHdH.js.map} +1 -1
  341. package/dist/{ms-EAElgspQ.js → ms-DN2Wq8S6.js} +3 -3
  342. package/dist/{ms-EAElgspQ.js.map → ms-DN2Wq8S6.js.map} +1 -1
  343. package/dist/{mt-DKlqMnqs.js → mt-zugZMSkV.js} +3 -3
  344. package/dist/{mt-DKlqMnqs.js.map → mt-zugZMSkV.js.map} +1 -1
  345. package/dist/{my-DrGttQM9.js → my-O4ysKAxh.js} +3 -3
  346. package/dist/{my-DrGttQM9.js.map → my-O4ysKAxh.js.map} +1 -1
  347. package/dist/{nb-U8rovHb2.js → nb-BCsdm4vI.js} +3 -3
  348. package/dist/{nb-U8rovHb2.js.map → nb-BCsdm4vI.js.map} +1 -1
  349. package/dist/{ne-GUyvxfjT.js → ne-DXxAtyJ8.js} +3 -3
  350. package/dist/{ne-GUyvxfjT.js.map → ne-DXxAtyJ8.js.map} +1 -1
  351. package/dist/{nl-vSFjNB2l.js → nl-CH8eh073.js} +3 -3
  352. package/dist/{nl-vSFjNB2l.js.map → nl-CH8eh073.js.map} +1 -1
  353. package/dist/{nn-rhCcd6To.js → nn-DoH9xw_d.js} +3 -3
  354. package/dist/{nn-rhCcd6To.js.map → nn-DoH9xw_d.js.map} +1 -1
  355. package/dist/{pies.utils-DaFUcVtu.js → pies.utils-CCu6j_sX.js} +6 -6
  356. package/dist/{pies.utils-DaFUcVtu.js.map → pies.utils-CCu6j_sX.js.map} +1 -1
  357. package/dist/{pl-2LBmcbeC.js → pl-BQxDnhiT.js} +3 -3
  358. package/dist/{pl-2LBmcbeC.js.map → pl-BQxDnhiT.js.map} +1 -1
  359. package/dist/{preview.data.constants-CyGLsdjH.js → preview.data.constants-BSjhK_tx.js} +2 -2
  360. package/dist/{preview.data.constants-CyGLsdjH.js.map → preview.data.constants-BSjhK_tx.js.map} +1 -1
  361. package/dist/{pt-izPJESEU.js → pt-C23uffr4.js} +3 -3
  362. package/dist/{pt-izPJESEU.js.map → pt-C23uffr4.js.map} +1 -1
  363. package/dist/{quarterOfYear-CiZ6-npb.js → quarterOfYear-QNl0XCjD.js} +2 -2
  364. package/dist/{quarterOfYear-CiZ6-npb.js.map → quarterOfYear-QNl0XCjD.js.map} +1 -1
  365. package/dist/{ro-BDxooVEn.js → ro-DSWUdXSb.js} +3 -3
  366. package/dist/{ro-BDxooVEn.js.map → ro-DSWUdXSb.js.map} +1 -1
  367. package/dist/{ru-BGll9VwF.js → ru-D6F46gnq.js} +3 -3
  368. package/dist/{ru-BGll9VwF.js.map → ru-D6F46gnq.js.map} +1 -1
  369. package/dist/{rw-D84aohNM.js → rw-DmjkOLrE.js} +3 -3
  370. package/dist/{rw-D84aohNM.js.map → rw-DmjkOLrE.js.map} +1 -1
  371. package/dist/{sd-DPRg9jcu.js → sd-i-nfZH3D.js} +3 -3
  372. package/dist/{sd-DPRg9jcu.js.map → sd-i-nfZH3D.js.map} +1 -1
  373. package/dist/{se-Cpnpde5A.js → se-CO3WL4E-.js} +3 -3
  374. package/dist/{se-Cpnpde5A.js.map → se-CO3WL4E-.js.map} +1 -1
  375. package/dist/{si-BBdzs0Jl.js → si-VwqJdazt.js} +3 -3
  376. package/dist/{si-BBdzs0Jl.js.map → si-VwqJdazt.js.map} +1 -1
  377. package/dist/{sk-CLnJe5O-.js → sk-DfRR_Hyy.js} +3 -3
  378. package/dist/{sk-CLnJe5O-.js.map → sk-DfRR_Hyy.js.map} +1 -1
  379. package/dist/{sl-VRWBz-ma.js → sl-B2aCfe1O.js} +3 -3
  380. package/dist/{sl-VRWBz-ma.js.map → sl-B2aCfe1O.js.map} +1 -1
  381. package/dist/{sq-Din01fsv.js → sq-DeEloGwA.js} +3 -3
  382. package/dist/{sq-Din01fsv.js.map → sq-DeEloGwA.js.map} +1 -1
  383. package/dist/{sr-D2cBsHsn.js → sr-CobUJ7zL.js} +3 -3
  384. package/dist/{sr-D2cBsHsn.js.map → sr-CobUJ7zL.js.map} +1 -1
  385. package/dist/{ss-5Ect3LxK.js → ss-cc45Oi3p.js} +3 -3
  386. package/dist/{ss-5Ect3LxK.js.map → ss-cc45Oi3p.js.map} +1 -1
  387. package/dist/{sv-DpvVSwYf.js → sv-BGYyKOJY.js} +3 -3
  388. package/dist/{sv-DpvVSwYf.js.map → sv-BGYyKOJY.js.map} +1 -1
  389. package/dist/{sw-BgnVAKv-.js → sw-CUzOffK-.js} +3 -3
  390. package/dist/{sw-BgnVAKv-.js.map → sw-CUzOffK-.js.map} +1 -1
  391. package/dist/{ta-Ddt2xMp7.js → ta-C2N89izA.js} +3 -3
  392. package/dist/{ta-Ddt2xMp7.js.map → ta-C2N89izA.js.map} +1 -1
  393. package/dist/{tables.utils-BCO7ztkc.js → tables.utils-FQtNWonG.js} +20 -20
  394. package/dist/{tables.utils-BCO7ztkc.js.map → tables.utils-FQtNWonG.js.map} +1 -1
  395. package/dist/{te-asJ6qJKJ.js → te-DtA1SmSp.js} +3 -3
  396. package/dist/{te-asJ6qJKJ.js.map → te-DtA1SmSp.js.map} +1 -1
  397. package/dist/{tet-CIfk6vzy.js → tet-DQgtqiR6.js} +3 -3
  398. package/dist/{tet-CIfk6vzy.js.map → tet-DQgtqiR6.js.map} +1 -1
  399. package/dist/{tg-BESX7j0W.js → tg-SUmo5dp6.js} +3 -3
  400. package/dist/{tg-BESX7j0W.js.map → tg-SUmo5dp6.js.map} +1 -1
  401. package/dist/{th-B4vojPLU.js → th-J5iMmQ2A.js} +3 -3
  402. package/dist/{th-B4vojPLU.js.map → th-J5iMmQ2A.js.map} +1 -1
  403. package/dist/theme/theme.types.d.ts +3 -0
  404. package/dist/theme/theme.types.d.ts.map +1 -1
  405. package/dist/{theme.constants-B1a2Ohs3.js → theme.constants-Bi0ueFF6.js} +6 -6
  406. package/dist/{theme.constants-B1a2Ohs3.js.map → theme.constants-Bi0ueFF6.js.map} +1 -1
  407. package/dist/{tk-YApgDN3G.js → tk-B4TwHhV0.js} +3 -3
  408. package/dist/{tk-YApgDN3G.js.map → tk-B4TwHhV0.js.map} +1 -1
  409. package/dist/{tlh-BHoLdIku.js → tlh-Ct7-qGrG.js} +3 -3
  410. package/dist/{tlh-BHoLdIku.js.map → tlh-Ct7-qGrG.js.map} +1 -1
  411. package/dist/{tr-DWqjQWuK.js → tr-cwddFxmJ.js} +3 -3
  412. package/dist/{tr-DWqjQWuK.js.map → tr-cwddFxmJ.js.map} +1 -1
  413. package/dist/{tzl-BwagDVXF.js → tzl-C-AYZ16v.js} +3 -3
  414. package/dist/{tzl-BwagDVXF.js.map → tzl-C-AYZ16v.js.map} +1 -1
  415. package/dist/{tzm-DqrBve3Q.js → tzm-CvI4-oTr.js} +3 -3
  416. package/dist/{tzm-DqrBve3Q.js.map → tzm-CvI4-oTr.js.map} +1 -1
  417. package/dist/{uk-CAth7pOp.js → uk-CMMCUouK.js} +3 -3
  418. package/dist/{uk-CAth7pOp.js.map → uk-CMMCUouK.js.map} +1 -1
  419. package/dist/{ur-DKyQtlto.js → ur-9TMUvLza.js} +3 -3
  420. package/dist/{ur-DKyQtlto.js.map → ur-9TMUvLza.js.map} +1 -1
  421. package/dist/{utc-9Lf3EBDh.js → utc-DO1HZsAu.js} +2 -2
  422. package/dist/{utc-9Lf3EBDh.js.map → utc-DO1HZsAu.js.map} +1 -1
  423. package/dist/{uz-C0QhZPYa.js → uz-CP6pAs0o.js} +3 -3
  424. package/dist/{uz-C0QhZPYa.js.map → uz-CP6pAs0o.js.map} +1 -1
  425. package/dist/{vi-1HL3gjnQ.js → vi-D36-l4r5.js} +3 -3
  426. package/dist/{vi-1HL3gjnQ.js.map → vi-D36-l4r5.js.map} +1 -1
  427. package/dist/{x-pseudo-CEA4Pf_M.js → x-pseudo-C5lVL1CR.js} +3 -3
  428. package/dist/{x-pseudo-CEA4Pf_M.js.map → x-pseudo-C5lVL1CR.js.map} +1 -1
  429. package/dist/{yo-BH3RxNPE.js → yo-bqKa4s2p.js} +3 -3
  430. package/dist/{yo-BH3RxNPE.js.map → yo-bqKa4s2p.js.map} +1 -1
  431. package/dist/{zh-cn-6HQZnQ6e.js → zh-cn-Bknggrj3.js} +3 -3
  432. package/dist/{zh-cn-6HQZnQ6e.js.map → zh-cn-Bknggrj3.js.map} +1 -1
  433. package/dist/{zh-hk-CB_VjUvO.js → zh-hk-C-e7ovuB.js} +3 -3
  434. package/dist/{zh-hk-CB_VjUvO.js.map → zh-hk-C-e7ovuB.js.map} +1 -1
  435. package/dist/{zh-tw-Dseygk7R.js → zh-tw-Dmjeji3Q.js} +3 -3
  436. package/dist/{zh-tw-Dseygk7R.js.map → zh-tw-Dmjeji3Q.js.map} +1 -1
  437. package/package.json +5 -5
  438. package/dist/charts.utils-CdKlmjQg.js +0 -63
  439. package/dist/charts.utils-CdKlmjQg.js.map +0 -1
  440. package/dist/dates.utils-D8ZJoQxc.js +0 -169
@@ -1 +1 @@
1
- {"version":3,"file":"definition-a7s685l9.js","sources":["../src/components/charts/lines/LineChartDefaultPro/LineChartDefaultPro.utils.ts","../src/components/charts/lines/LineChartDefaultPro/index.tsx","../src/components/charts/lines/LineChartDefaultPro/definition.ts"],"sourcesContent":["import { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { Theme } from '../../../../theme/theme.types';\nimport { ChartData, ChartOptions } from 'chart.js';\nimport { getThemeFormatter } from '../../../../theme/formatter/formatter.utils';\nimport { getChartColors, getStyleNumber } from '@embeddable.com/remarkable-ui';\nimport { getDimensionMeasureColor } from '../../../../theme/styles/styles.utils';\nimport { mergician } from 'mergician';\nimport { isColorValid, setColorAlpha } from '../../../../utils/color.utils';\nimport { getDimensionWithoutTruncation } from '../../charts.utils';\n\nexport const getLineChartProData = (\n props: {\n data: DataResponse['data'];\n dimension: Dimension;\n measures: Measure[];\n hasMinMaxYAxisRange: boolean;\n },\n theme: Theme,\n): ChartData<'line'> => {\n if (!props.data) {\n return {\n labels: [],\n datasets: [{ data: [] }],\n };\n }\n\n const themeFormatter = getThemeFormatter(theme);\n\n const groupedData = props.data;\n\n return {\n labels: groupedData.map((item) => {\n return item[props.dimension.name];\n }),\n datasets: props.measures.map((measure, index) => {\n const zeroFill = Boolean(measure.inputs?.['connectGaps']);\n const values = groupedData.map((item) => item[measure.name] ?? (zeroFill ? 0 : null));\n\n const lineColor = measure.inputs?.['lineColor'];\n const chartColors = getChartColors();\n const backgroundColor = isColorValid(lineColor)\n ? lineColor\n : getDimensionMeasureColor({\n dimensionOrMeasure: measure,\n theme,\n color: 'background',\n value: measure.name,\n chartColors,\n index,\n });\n\n const borderColor = isColorValid(lineColor)\n ? lineColor\n : getDimensionMeasureColor({\n dimensionOrMeasure: measure,\n theme,\n color: 'border',\n value: measure.name,\n chartColors,\n index,\n });\n\n return {\n clip: props.hasMinMaxYAxisRange,\n label: themeFormatter.dimensionOrMeasureTitle(measure),\n data: values,\n backgroundColor: setColorAlpha(backgroundColor, 0.5),\n pointBackgroundColor: backgroundColor,\n borderDash: measure.inputs?.dashedLine\n ? [\n getStyleNumber('--em-linechart-line-dash', '0.25rem'),\n getStyleNumber('--em-linechart-line-gap', '0.25rem'),\n ]\n : undefined,\n borderColor,\n fill: Boolean(measure.inputs?.fillUnderLine),\n } as ChartData<'line'>['datasets'][number];\n }),\n };\n};\n\nexport const getLineChartProOptions = (\n options: {\n dimension: Dimension;\n measures: Measure[];\n data: ChartData<'line'>;\n },\n theme: Theme,\n): ChartOptions<'line'> => {\n const { dimension, data, measures } = options;\n const themeFormatter = getThemeFormatter(theme);\n\n const lineChartOptions: ChartOptions<'line'> = {\n plugins: {\n datalabels: {\n labels: {\n value: {\n formatter: (value: string | number, context) => {\n const measure = measures[context.datasetIndex]!;\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(getDimensionWithoutTruncation(dimension), label);\n },\n label: (context) => {\n const measure = measures[context.datasetIndex]!;\n const raw = context.raw as number;\n return `${context.dataset.label}: ${themeFormatter.data(measure, raw)}`;\n },\n },\n },\n },\n scales: {\n x: {\n ticks: {\n callback: (value) => {\n if (!data || !data.labels) return undefined;\n\n const label = data.labels[Number(value)] as string;\n return themeFormatter.data(dimension, label);\n },\n },\n },\n y: {\n ticks: {\n callback: (value) => {\n return themeFormatter.data(measures[0]!, value);\n },\n },\n },\n },\n };\n\n return mergician(lineChartOptions, theme.charts?.lineChartDefaultPro?.options || {});\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { DataResponse, Dimension, Granularity, Measure } from '@embeddable.com/core';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { ChartCard, ChartCardHeaderProps } from '../../shared/ChartCard/ChartCard';\nimport { getLineChartProData, getLineChartProOptions } from './LineChartDefaultPro.utils';\nimport { useFillGaps } from '../../charts.fillGaps.hooks';\nimport { LineChartProOptionsClick } from '../lines.types';\nimport { LineChart } from '@embeddable.com/remarkable-ui';\nimport { ChartGranularitySelectField } from '../../shared/ChartGranularitySelectField/ChartGranularitySelectField';\nimport { createSimpleClickHandler } from '../../charts.utils';\n\nexport type LineChartProPropsOnLineClicked = { axisDimensionValue: string | null };\n\nexport type LineChartProProps = {\n xAxis: Dimension;\n measures: Measure[];\n results: DataResponse;\n reverseXAxis?: boolean;\n showLegend?: boolean;\n showLogarithmicScale?: boolean;\n showTooltips?: boolean;\n showValueLabels?: boolean;\n xAxisLabel?: string;\n yAxisLabel?: string;\n yAxisRangeMax?: number;\n yAxisRangeMin?: number;\n granularity?: Granularity;\n setGranularity?: (granularity: Granularity) => void;\n onLineClicked?: LineChartProOptionsClick;\n} & ChartCardHeaderProps;\n\nconst LineChartPro = (props: LineChartProProps) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { title, description, tooltip, xAxisLabel, yAxisLabel } = resolveI18nProps(props);\n const {\n hideMenu,\n measures,\n granularity,\n xAxis,\n reverseXAxis,\n showLegend,\n showLogarithmicScale,\n showTooltips,\n showValueLabels,\n yAxisRangeMax,\n yAxisRangeMin,\n setGranularity,\n onLineClicked,\n } = props;\n\n const results = useFillGaps({\n results: props.results,\n dimension: xAxis,\n });\n\n const data = getLineChartProData(\n {\n data: results.data,\n dimension: xAxis,\n measures,\n hasMinMaxYAxisRange: Boolean(yAxisRangeMin != null || yAxisRangeMax != null),\n },\n theme,\n );\n const options = getLineChartProOptions({ data, dimension: xAxis, measures }, theme);\n\n const granularitySelectorHasMarginTop = !title && !description && !tooltip;\n\n const handleClick = createSimpleClickHandler({\n data,\n dimension: xAxis,\n granularity,\n onClicked: onLineClicked,\n });\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[...measures, xAxis]}\n errorMessage={results.error}\n description={description}\n title={title}\n tooltip={tooltip}\n hideMenu={hideMenu}\n >\n {setGranularity && (\n <ChartGranularitySelectField\n hasMarginTop={granularitySelectorHasMarginTop}\n dimension={xAxis}\n onChange={setGranularity}\n />\n )}\n <LineChart\n data={data}\n reverseXAxis={reverseXAxis}\n showLegend={showLegend}\n showLogarithmicScale={showLogarithmicScale}\n showTooltips={showTooltips}\n showValueLabels={showValueLabels}\n xAxisLabel={xAxisLabel}\n yAxisLabel={yAxisLabel}\n yAxisRangeMax={yAxisRangeMax}\n yAxisRangeMin={yAxisRangeMin}\n options={options}\n onClick={handleClick}\n />\n </ChartCard>\n );\n};\n\nexport default LineChartPro;\n","import {\n DataResponse,\n Dimension,\n Granularity,\n LoadDataRequest,\n Value,\n loadData,\n} from '@embeddable.com/core';\nimport { definePreview, EmbeddedComponentMeta, Inputs } from '@embeddable.com/react';\nimport Component from './index';\nimport { LineChartProOptionsClickArg } from '../lines.types';\nimport { inputs } from '../../../component.inputs.constants';\nimport { subInputs } from '../../../component.subinputs.constants';\nimport { previewData } from '../../../preview.data.constants';\nimport { getDimensionWithGranularity } from '../../utils/granularity.utils';\nimport { getClientContextTimezone } from '../../../../theme/utils/clientContext.utils';\nimport { ThemeClientContext } from '../../../../theme/theme.types';\n\nconst meta = {\n name: 'LineChartDefaultPro',\n label: 'Line Chart - Default',\n category: 'Line Charts',\n inputs: [\n inputs.dataset,\n {\n ...inputs.measures,\n inputs: [\n ...inputs.measures.inputs,\n { ...subInputs.boolean, name: 'fillUnderLine', label: 'Fill under line' },\n {\n ...subInputs.color,\n name: 'lineColor',\n label: 'Line color',\n },\n {\n ...subInputs.boolean,\n name: 'connectGaps',\n label: 'Connect gaps',\n defaultValue: true,\n },\n {\n ...subInputs.boolean,\n name: 'dashedLine',\n label: 'Dashed line',\n defaultValue: false,\n },\n ],\n },\n { ...inputs.dimensionWithGranularitySelectField, label: 'X-axis', name: 'xAxis' },\n inputs.title,\n inputs.description,\n inputs.tooltip,\n inputs.showLegend,\n inputs.showTooltips,\n inputs.showValueLabels,\n inputs.showLogarithmicScale,\n inputs.xAxisLabel,\n inputs.yAxisLabel,\n inputs.reverseXAxis,\n inputs.yAxisRangeMin,\n inputs.yAxisRangeMax,\n inputs.maxResults,\n ],\n events: [\n {\n name: 'onLineClicked',\n label: 'A line is clicked',\n properties: [\n {\n name: 'axisDimensionValue',\n label: 'Clicked axis dimension value',\n type: 'string',\n },\n {\n name: 'axisDimensionTimeRange',\n label: 'Clicked axis dimension time range',\n type: 'timeRange',\n },\n ],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nexport type LineChartDefaultProState = {\n granularity?: Granularity;\n};\n\nconst previewConfig = {\n xAxis: previewData.dimension,\n measures: [previewData.measure],\n results: previewData.results1Measure1Dimension,\n hideMenu: true,\n};\n\nconst preview = definePreview(Component, previewConfig);\n\nconst loadDataResultsArgs = (\n inputs: Inputs<typeof meta>,\n xAxis?: Dimension,\n clientContext?: ThemeClientContext,\n): LoadDataRequest => ({\n limit: inputs.maxResults,\n from: inputs.dataset,\n select: [...inputs.measures, xAxis ?? inputs.xAxis],\n timezone: getClientContextTimezone(clientContext?.timezone),\n});\n\nconst loadDataResults = (\n inputs: Inputs<typeof meta>,\n xAxis: Dimension,\n clientContext: ThemeClientContext,\n): DataResponse => loadData(loadDataResultsArgs(inputs, xAxis, clientContext));\n\nconst events = {\n onLineClicked: (value: LineChartProOptionsClickArg) => {\n return {\n axisDimensionValue: value.dimensionValue ?? Value.noFilter(),\n axisDimensionTimeRange: value.dimensionTimeRange ?? Value.noFilter(),\n };\n },\n};\n\nconst props = (\n inputs: Inputs<typeof meta>,\n [state, setState]: [LineChartDefaultProState, (state: LineChartDefaultProState) => void],\n clientContext: ThemeClientContext,\n) => {\n const xAxisWithGranularity = getDimensionWithGranularity(inputs.xAxis, state?.granularity);\n\n return {\n ...inputs,\n xAxis: xAxisWithGranularity,\n setGranularity: (granularity: Granularity) => setState({ granularity }),\n results: loadDataResults(inputs, xAxisWithGranularity, clientContext),\n };\n};\n\nexport const lineChartDefaultPro = {\n Component,\n meta,\n preview,\n previewConfig,\n config: {\n props,\n events,\n },\n results: {\n loadDataArgs: loadDataResultsArgs,\n loadData: loadDataResults,\n },\n} as const;\n"],"names":["getLineChartProData","props","theme","themeFormatter","getThemeFormatter","groupedData","item","measure","index","zeroFill","_a","values","lineColor","_b","chartColors","getChartColors","backgroundColor","isColorValid","getDimensionMeasureColor","borderColor","setColorAlpha","_c","getStyleNumber","_d","getLineChartProOptions","options","dimension","data","measures","mergician","value","context","label","getDimensionWithoutTruncation","raw","LineChartPro","useTheme","i18nSetup","title","description","tooltip","xAxisLabel","yAxisLabel","resolveI18nProps","hideMenu","granularity","xAxis","reverseXAxis","showLegend","showLogarithmicScale","showTooltips","showValueLabels","yAxisRangeMax","yAxisRangeMin","setGranularity","onLineClicked","results","useFillGaps","granularitySelectorHasMarginTop","handleClick","createSimpleClickHandler","jsxs","ChartCard","jsx","ChartGranularitySelectField","LineChart","meta","inputs","subInputs","previewConfig","previewData","preview","definePreview","Component","loadDataResultsArgs","clientContext","getClientContextTimezone","loadDataResults","loadData","events","Value","state","setState","xAxisWithGranularity","getDimensionWithGranularity","lineChartDefaultPro"],"mappings":";;;;;;;;;;;;;AAUO,MAAMA,KAAsB,CACjCC,GAMAC,MACsB;AACtB,MAAI,CAACD,EAAM;AACT,WAAO;AAAA,MACL,QAAQ,CAAA;AAAA,MACR,UAAU,CAAC,EAAE,MAAM,IAAI;AAAA,IAAA;AAI3B,QAAME,IAAiBC,EAAkBF,CAAK,GAExCG,IAAcJ,EAAM;AAE1B,SAAO;AAAA,IACL,QAAQI,EAAY,IAAI,CAACC,MAChBA,EAAKL,EAAM,UAAU,IAAI,CACjC;AAAA,IACD,UAAUA,EAAM,SAAS,IAAI,CAACM,GAASC,MAAU;;AAC/C,YAAMC,IAAW,IAAQC,IAAAH,EAAQ,WAAR,QAAAG,EAAiB,cACpCC,IAASN,EAAY,IAAI,CAACC,MAASA,EAAKC,EAAQ,IAAI,MAAME,IAAW,IAAI,KAAK,GAE9EG,KAAYC,IAAAN,EAAQ,WAAR,gBAAAM,EAAiB,WAC7BC,IAAcC,EAAA,GACdC,IAAkBC,EAAaL,CAAS,IAC1CA,IACAM,EAAyB;AAAA,QACvB,oBAAoBX;AAAA,QACpB,OAAAL;AAAA,QACA,OAAO;AAAA,QACP,OAAOK,EAAQ;AAAA,QACf,aAAAO;AAAA,QACA,OAAAN;AAAA,MAAA,CACD,GAECW,IAAcF,EAAaL,CAAS,IACtCA,IACAM,EAAyB;AAAA,QACvB,oBAAoBX;AAAA,QACpB,OAAAL;AAAA,QACA,OAAO;AAAA,QACP,OAAOK,EAAQ;AAAA,QACf,aAAAO;AAAA,QACA,OAAAN;AAAA,MAAA,CACD;AAEL,aAAO;AAAA,QACL,MAAMP,EAAM;AAAA,QACZ,OAAOE,EAAe,wBAAwBI,CAAO;AAAA,QACrD,MAAMI;AAAA,QACN,iBAAiBS,EAAcJ,GAAiB,GAAG;AAAA,QACnD,sBAAsBA;AAAA,QACtB,aAAYK,IAAAd,EAAQ,WAAR,QAAAc,EAAgB,aACxB;AAAA,UACEC,EAAe,4BAA4B,SAAS;AAAA,UACpDA,EAAe,2BAA2B,SAAS;AAAA,QAAA,IAErD;AAAA,QACJ,aAAAH;AAAA,QACA,MAAM,IAAQI,IAAAhB,EAAQ,WAAR,QAAAgB,EAAgB;AAAA,MAAa;AAAA,IAE/C,CAAC;AAAA,EAAA;AAEL,GAEaC,KAAyB,CACpCC,GAKAvB,MACyB;;AACzB,QAAM,EAAE,WAAAwB,GAAW,MAAAC,GAAM,UAAAC,EAAA,IAAaH,GAChCtB,IAAiBC,EAAkBF,CAAK;AAiD9C,SAAO2B,EA/CwC;AAAA,IAC7C,SAAS;AAAA,MACP,YAAY;AAAA,QACV,QAAQ;AAAA,UACN,OAAO;AAAA,YACL,WAAW,CAACC,GAAwBC,MAAY;AAC9C,oBAAMxB,IAAUqB,EAASG,EAAQ,YAAY;AAC7C,qBAAO5B,EAAe,KAAKI,GAASuB,CAAK;AAAA,YAC3C;AAAA,UAAA;AAAA,QACF;AAAA,MACF;AAAA,MAEF,SAAS;AAAA,QACP,WAAW;AAAA,UACT,OAAO,CAACC,MAAY;;AAClB,kBAAMC,KAAQtB,IAAAqB,EAAQ,CAAC,MAAT,gBAAArB,EAAY;AAC1B,mBAAOP,EAAe,KAAK8B,EAA8BP,CAAS,GAAGM,CAAK;AAAA,UAC5E;AAAA,UACA,OAAO,CAACD,MAAY;AAClB,kBAAMxB,IAAUqB,EAASG,EAAQ,YAAY,GACvCG,IAAMH,EAAQ;AACpB,mBAAO,GAAGA,EAAQ,QAAQ,KAAK,KAAK5B,EAAe,KAAKI,GAAS2B,CAAG,CAAC;AAAA,UACvE;AAAA,QAAA;AAAA,MACF;AAAA,IACF;AAAA,IAEF,QAAQ;AAAA,MACN,GAAG;AAAA,QACD,OAAO;AAAA,UACL,UAAU,CAACJ,MAAU;AACnB,gBAAI,CAACH,KAAQ,CAACA,EAAK,OAAQ;AAE3B,kBAAMK,IAAQL,EAAK,OAAO,OAAOG,CAAK,CAAC;AACvC,mBAAO3B,EAAe,KAAKuB,GAAWM,CAAK;AAAA,UAC7C;AAAA,QAAA;AAAA,MACF;AAAA,MAEF,GAAG;AAAA,QACD,OAAO;AAAA,UACL,UAAU,CAACF,MACF3B,EAAe,KAAKyB,EAAS,CAAC,GAAIE,CAAK;AAAA,QAChD;AAAA,MACF;AAAA,IACF;AAAA,EACF,KAGiCjB,KAAAH,IAAAR,EAAM,WAAN,gBAAAQ,EAAc,wBAAd,gBAAAG,EAAmC,YAAW,EAAE;AACrF,GC3GMsB,IAAe,CAAClC,MAA6B;AACjD,QAAMC,IAAekC,EAAA;AACrB,EAAAC,EAAUnC,CAAK;AAEf,QAAM,EAAE,OAAAoC,GAAO,aAAAC,GAAa,SAAAC,GAAS,YAAAC,GAAY,YAAAC,EAAA,IAAeC,EAAiB1C,CAAK,GAChF;AAAA,IACJ,UAAA2C;AAAA,IACA,UAAAhB;AAAA,IACA,aAAAiB;AAAA,IACA,OAAAC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,eAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,eAAAC;AAAA,EAAA,IACEtD,GAEEuD,IAAUC,EAAY;AAAA,IAC1B,SAASxD,EAAM;AAAA,IACf,WAAW6C;AAAA,EAAA,CACZ,GAEKnB,IAAO3B;AAAA,IACX;AAAA,MACE,MAAMwD,EAAQ;AAAA,MACd,WAAWV;AAAA,MACX,UAAAlB;AAAA,MACA,qBAA6ByB,KAAiB,QAAQD,KAAiB;AAAA,IAAI;AAAA,IAE7ElD;AAAA,EAAA,GAEIuB,IAAUD,GAAuB,EAAE,MAAAG,GAAM,WAAWmB,GAAO,UAAAlB,EAAA,GAAY1B,CAAK,GAE5EwD,IAAkC,CAACpB,KAAS,CAACC,KAAe,CAACC,GAE7DmB,IAAcC,EAAyB;AAAA,IAC3C,MAAAjC;AAAA,IACA,WAAWmB;AAAA,IACX,aAAAD;AAAA,IACA,WAAWU;AAAA,EAAA,CACZ;AAED,SACEM,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAMN;AAAA,MACN,uBAAuB,CAAC,GAAG5B,GAAUkB,CAAK;AAAA,MAC1C,cAAcU,EAAQ;AAAA,MACtB,aAAAjB;AAAA,MACA,OAAAD;AAAA,MACA,SAAAE;AAAA,MACA,UAAAI;AAAA,MAEC,UAAA;AAAA,QAAAU,KACCS,gBAAAA,EAAAA;AAAAA,UAACC;AAAA,UAAA;AAAA,YACC,cAAcN;AAAA,YACd,WAAWZ;AAAA,YACX,UAAUQ;AAAA,UAAA;AAAA,QAAA;AAAA,QAGdS,gBAAAA,EAAAA;AAAAA,UAACE;AAAA,UAAA;AAAA,YACC,MAAAtC;AAAA,YACA,cAAAoB;AAAA,YACA,YAAAC;AAAA,YACA,sBAAAC;AAAA,YACA,cAAAC;AAAA,YACA,iBAAAC;AAAA,YACA,YAAAV;AAAA,YACA,YAAAC;AAAA,YACA,eAAAU;AAAA,YACA,eAAAC;AAAA,YACA,SAAA5B;AAAA,YACA,SAASkC;AAAA,UAAA;AAAA,QAAA;AAAA,MACX;AAAA,IAAA;AAAA,EAAA;AAGN;;;8CC9FMO,KAAO;AAAA,EACX,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV,QAAQ;AAAA,IACNC,EAAO;AAAA,IACP;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,QAAQ;AAAA,QACN,GAAGA,EAAO,SAAS;AAAA,QACnB,EAAE,GAAGC,EAAU,SAAS,MAAM,iBAAiB,OAAO,kBAAA;AAAA,QACtD;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,cAAc;AAAA,QAAA;AAAA,QAEhB;AAAA,UACE,GAAGA,EAAU;AAAA,UACb,MAAM;AAAA,UACN,OAAO;AAAA,UACP,cAAc;AAAA,QAAA;AAAA,MAChB;AAAA,IACF;AAAA,IAEF,EAAE,GAAGD,EAAO,qCAAqC,OAAO,UAAU,MAAM,QAAA;AAAA,IACxEA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,MACP,YAAY;AAAA,QACV;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QAAA;AAAA,QAER;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QAAA;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEJ,GAMME,IAAgB;AAAA,EACpB,OAAOC,EAAY;AAAA,EACnB,UAAU,CAACA,EAAY,OAAO;AAAA,EAC9B,SAASA,EAAY;AAAA,EACrB,UAAU;AACZ,GAEMC,KAAUC,EAAcC,GAAWJ,CAAa,GAEhDK,IAAsB,CAC1BP,GACArB,GACA6B,OACqB;AAAA,EACrB,OAAOR,EAAO;AAAA,EACd,MAAMA,EAAO;AAAA,EACb,QAAQ,CAAC,GAAGA,EAAO,UAAUrB,KAASqB,EAAO,KAAK;AAAA,EAClD,UAAUS,EAAyBD,KAAA,gBAAAA,EAAe,QAAQ;AAC5D,IAEME,IAAkB,CACtBV,GACArB,GACA6B,MACiBG,EAASJ,EAAoBP,GAAQrB,GAAO6B,CAAa,CAAC,GAEvEI,KAAS;AAAA,EACb,eAAe,CAACjD,OACP;AAAA,IACL,oBAAoBA,EAAM,kBAAkBkD,EAAM,SAAA;AAAA,IAClD,wBAAwBlD,EAAM,sBAAsBkD,EAAM,SAAA;AAAA,EAAS;AAGzE,GAEM/E,KAAQ,CACZkE,GACA,CAACc,GAAOC,CAAQ,GAChBP,MACG;AACH,QAAMQ,IAAuBC,EAA4BjB,EAAO,OAAOc,KAAA,gBAAAA,EAAO,WAAW;AAEzF,SAAO;AAAA,IACL,GAAGd;AAAAA,IACH,OAAOgB;AAAA,IACP,gBAAgB,CAACtC,MAA6BqC,EAAS,EAAE,aAAArC,GAAa;AAAA,IACtE,SAASgC,EAAgBV,GAAQgB,GAAsBR,CAAa;AAAA,EAAA;AAExE,GAEaU,KAAsB;AAAA,EAAA,WACjCZ;AAAAA,EACA,MAAAP;AAAA,EACA,SAAAK;AAAA,EACA,eAAAF;AAAA,EACA,QAAQ;AAAA,IACN,OAAApE;AAAA,IACA,QAAA8E;AAAA,EAAA;AAAA,EAEF,SAAS;AAAA,IACP,cAAcL;AAAA,IACd,UAAUG;AAAA,EAAA;AAEd;"}
1
+ {"version":3,"file":"definition-PDaAOTSz.js","sources":["../src/components/charts/lines/LineChartDefaultPro/LineChartDefaultPro.utils.ts","../src/components/charts/lines/LineChartDefaultPro/index.tsx","../src/components/charts/lines/LineChartDefaultPro/definition.ts"],"sourcesContent":["import { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { Theme } from '../../../../theme/theme.types';\nimport { ChartData, ChartOptions } from 'chart.js';\nimport { getThemeFormatter } from '../../../../theme/formatter/formatter.utils';\nimport { getChartColors, getStyleNumber } from '@embeddable.com/remarkable-ui';\nimport { getDimensionMeasureColor } from '../../../../theme/styles/styles.utils';\nimport { mergician } from 'mergician';\nimport { isColorValid, setColorAlpha } from '../../../../utils/color.utils';\nimport { getDimensionWithoutTruncation } from '../../charts.utils';\n\nexport const getLineChartProData = (\n props: {\n data: DataResponse['data'];\n dimension: Dimension;\n measures: Measure[];\n hasMinMaxYAxisRange: boolean;\n },\n theme: Theme,\n): ChartData<'line'> => {\n if (!props.data) {\n return {\n labels: [],\n datasets: [{ data: [] }],\n };\n }\n\n const themeFormatter = getThemeFormatter(theme);\n\n const groupedData = props.data;\n\n return {\n labels: groupedData.map((item) => {\n return item[props.dimension.name];\n }),\n datasets: props.measures.map((measure, index) => {\n const zeroFill = Boolean(measure.inputs?.['connectGaps']);\n const values = groupedData.map((item) => item[measure.name] ?? (zeroFill ? 0 : null));\n\n const lineColor = measure.inputs?.['lineColor'];\n const chartColors = getChartColors();\n const backgroundColor = isColorValid(lineColor)\n ? lineColor\n : getDimensionMeasureColor({\n dimensionOrMeasure: measure,\n theme,\n color: 'background',\n value: measure.name,\n chartColors,\n index,\n });\n\n const borderColor = isColorValid(lineColor)\n ? lineColor\n : getDimensionMeasureColor({\n dimensionOrMeasure: measure,\n theme,\n color: 'border',\n value: measure.name,\n chartColors,\n index,\n });\n\n return {\n clip: props.hasMinMaxYAxisRange,\n label: themeFormatter.dimensionOrMeasureTitle(measure),\n data: values,\n backgroundColor: setColorAlpha(backgroundColor, 0.5),\n pointBackgroundColor: backgroundColor,\n borderDash: measure.inputs?.dashedLine\n ? [\n getStyleNumber('--em-linechart-line-dash', '0.25rem'),\n getStyleNumber('--em-linechart-line-gap', '0.25rem'),\n ]\n : undefined,\n borderColor,\n fill: Boolean(measure.inputs?.fillUnderLine),\n } as ChartData<'line'>['datasets'][number];\n }),\n };\n};\n\nexport const getLineChartProOptions = (\n options: {\n dimension: Dimension;\n measures: Measure[];\n data: ChartData<'line'>;\n },\n theme: Theme,\n): ChartOptions<'line'> => {\n const { dimension, data, measures } = options;\n const themeFormatter = getThemeFormatter(theme);\n\n const lineChartOptions: ChartOptions<'line'> = {\n plugins: {\n datalabels: {\n labels: {\n value: {\n formatter: (value: string | number, context) => {\n const measure = measures[context.datasetIndex]!;\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(getDimensionWithoutTruncation(dimension), label);\n },\n label: (context) => {\n const measure = measures[context.datasetIndex]!;\n const raw = context.raw as number;\n return `${context.dataset.label}: ${themeFormatter.data(measure, raw)}`;\n },\n },\n },\n },\n scales: {\n x: {\n ticks: {\n callback: (value) => {\n if (!data || !data.labels) return undefined;\n\n const label = data.labels[Number(value)] as string;\n return themeFormatter.data(dimension, label);\n },\n },\n },\n y: {\n ticks: {\n callback: (value) => {\n return themeFormatter.data(measures[0]!, value);\n },\n },\n },\n },\n };\n\n return mergician(lineChartOptions, theme.charts?.lineChartDefaultPro?.options || {});\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { DataResponse, Dimension, Granularity, Measure } from '@embeddable.com/core';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { ChartCard, ChartCardHeaderProps } from '../../shared/ChartCard/ChartCard';\nimport { getLineChartProData, getLineChartProOptions } from './LineChartDefaultPro.utils';\nimport { useFillGaps } from '../../charts.fillGaps.hooks';\nimport { LineChartProOptionsClick } from '../lines.types';\nimport { LineChart } from '@embeddable.com/remarkable-ui';\nimport { ChartGranularitySelectField } from '../../shared/ChartGranularitySelectField/ChartGranularitySelectField';\nimport { createSimpleClickHandler } from '../../charts.utils';\n\nexport type LineChartProPropsOnLineClicked = { axisDimensionValue: string | null };\n\nexport type LineChartProProps = {\n xAxis: Dimension;\n measures: Measure[];\n results: DataResponse;\n reverseXAxis?: boolean;\n showLegend?: boolean;\n showLogarithmicScale?: boolean;\n showTooltips?: boolean;\n showValueLabels?: boolean;\n xAxisLabel?: string;\n yAxisLabel?: string;\n yAxisRangeMax?: number;\n yAxisRangeMin?: number;\n granularity?: Granularity;\n setGranularity?: (granularity: Granularity) => void;\n onLineClicked?: LineChartProOptionsClick;\n} & ChartCardHeaderProps;\n\nconst LineChartPro = (props: LineChartProProps) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { title, description, tooltip, xAxisLabel, yAxisLabel } = resolveI18nProps(props);\n const {\n hideMenu,\n measures,\n granularity,\n xAxis,\n reverseXAxis,\n showLegend,\n showLogarithmicScale,\n showTooltips,\n showValueLabels,\n yAxisRangeMax,\n yAxisRangeMin,\n setGranularity,\n onLineClicked,\n } = props;\n\n const results = useFillGaps({\n results: props.results,\n dimension: xAxis,\n });\n\n const data = getLineChartProData(\n {\n data: results.data,\n dimension: xAxis,\n measures,\n hasMinMaxYAxisRange: Boolean(yAxisRangeMin != null || yAxisRangeMax != null),\n },\n theme,\n );\n const options = getLineChartProOptions({ data, dimension: xAxis, measures }, theme);\n\n const granularitySelectorHasMarginTop = !title && !description && !tooltip;\n\n const handleClick = createSimpleClickHandler({\n data,\n dimension: xAxis,\n granularity,\n onClicked: onLineClicked,\n });\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[...measures, xAxis]}\n errorMessage={results.error}\n description={description}\n title={title}\n tooltip={tooltip}\n hideMenu={hideMenu}\n >\n {setGranularity && (\n <ChartGranularitySelectField\n hasMarginTop={granularitySelectorHasMarginTop}\n dimension={xAxis}\n onChange={setGranularity}\n />\n )}\n <LineChart\n data={data}\n reverseXAxis={reverseXAxis}\n showLegend={showLegend}\n showLogarithmicScale={showLogarithmicScale}\n showTooltips={showTooltips}\n showValueLabels={showValueLabels}\n xAxisLabel={xAxisLabel}\n yAxisLabel={yAxisLabel}\n yAxisRangeMax={yAxisRangeMax}\n yAxisRangeMin={yAxisRangeMin}\n options={options}\n onClick={handleClick}\n />\n </ChartCard>\n );\n};\n\nexport default LineChartPro;\n","import {\n DataResponse,\n Dimension,\n Granularity,\n LoadDataRequest,\n Value,\n loadData,\n} from '@embeddable.com/core';\nimport { definePreview, EmbeddedComponentMeta, Inputs } from '@embeddable.com/react';\nimport Component from './index';\nimport { LineChartProOptionsClickArg } from '../lines.types';\nimport { inputs } from '../../../component.inputs.constants';\nimport { subInputs } from '../../../component.subinputs.constants';\nimport { previewData } from '../../../preview.data.constants';\nimport { getDimensionWithGranularity } from '../../utils/granularity.utils';\nimport { getClientContextTimezone } from '../../../../theme/utils/clientContext.utils';\nimport { ThemeClientContext } from '../../../../theme/theme.types';\n\nconst meta = {\n name: 'LineChartDefaultPro',\n label: 'Line Chart - Default',\n category: 'Line Charts',\n inputs: [\n inputs.dataset,\n {\n ...inputs.measures,\n inputs: [\n ...inputs.measures.inputs,\n { ...subInputs.boolean, name: 'fillUnderLine', label: 'Fill under line' },\n {\n ...subInputs.color,\n name: 'lineColor',\n label: 'Line color',\n },\n {\n ...subInputs.boolean,\n name: 'connectGaps',\n label: 'Connect gaps',\n defaultValue: true,\n },\n {\n ...subInputs.boolean,\n name: 'dashedLine',\n label: 'Dashed line',\n defaultValue: false,\n },\n ],\n },\n { ...inputs.dimensionWithGranularitySelectField, label: 'X-axis', name: 'xAxis' },\n inputs.title,\n inputs.description,\n inputs.tooltip,\n inputs.showLegend,\n inputs.showTooltips,\n inputs.showValueLabels,\n inputs.showLogarithmicScale,\n inputs.xAxisLabel,\n inputs.yAxisLabel,\n inputs.reverseXAxis,\n inputs.yAxisRangeMin,\n inputs.yAxisRangeMax,\n inputs.maxResults,\n ],\n events: [\n {\n name: 'onLineClicked',\n label: 'A line is clicked',\n properties: [\n {\n name: 'axisDimensionValue',\n label: 'Clicked axis dimension value',\n type: 'string',\n },\n {\n name: 'axisDimensionTimeRange',\n label: 'Clicked axis dimension time range',\n type: 'timeRange',\n },\n ],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nexport type LineChartDefaultProState = {\n granularity?: Granularity;\n};\n\nconst previewConfig = {\n xAxis: previewData.dimension,\n measures: [previewData.measure],\n results: previewData.results1Measure1Dimension,\n hideMenu: true,\n};\n\nconst preview = definePreview(Component, previewConfig);\n\nconst loadDataResultsArgs = (\n inputs: Inputs<typeof meta>,\n xAxis?: Dimension,\n clientContext?: ThemeClientContext,\n): LoadDataRequest => ({\n limit: inputs.maxResults,\n from: inputs.dataset,\n select: [...inputs.measures, xAxis ?? inputs.xAxis],\n timezone: getClientContextTimezone(clientContext?.timezone),\n});\n\nconst loadDataResults = (\n inputs: Inputs<typeof meta>,\n xAxis: Dimension,\n clientContext: ThemeClientContext,\n): DataResponse => loadData(loadDataResultsArgs(inputs, xAxis, clientContext));\n\nconst events = {\n onLineClicked: (value: LineChartProOptionsClickArg) => {\n return {\n axisDimensionValue: value.dimensionValue ?? Value.noFilter(),\n axisDimensionTimeRange: value.dimensionTimeRange ?? Value.noFilter(),\n };\n },\n};\n\nconst props = (\n inputs: Inputs<typeof meta>,\n [state, setState]: [LineChartDefaultProState, (state: LineChartDefaultProState) => void],\n clientContext: ThemeClientContext,\n) => {\n const xAxisWithGranularity = getDimensionWithGranularity(inputs.xAxis, state?.granularity);\n\n return {\n ...inputs,\n xAxis: xAxisWithGranularity,\n setGranularity: (granularity: Granularity) => setState({ granularity }),\n results: loadDataResults(inputs, xAxisWithGranularity, clientContext),\n };\n};\n\nexport const lineChartDefaultPro = {\n Component,\n meta,\n preview,\n previewConfig,\n config: {\n props,\n events,\n },\n results: {\n loadDataArgs: loadDataResultsArgs,\n loadData: loadDataResults,\n },\n} as const;\n"],"names":["getLineChartProData","props","theme","themeFormatter","getThemeFormatter","groupedData","item","measure","index","zeroFill","_a","values","lineColor","_b","chartColors","getChartColors","backgroundColor","isColorValid","getDimensionMeasureColor","borderColor","setColorAlpha","_c","getStyleNumber","_d","getLineChartProOptions","options","dimension","data","measures","mergician","value","context","label","getDimensionWithoutTruncation","raw","LineChartPro","useTheme","i18nSetup","title","description","tooltip","xAxisLabel","yAxisLabel","resolveI18nProps","hideMenu","granularity","xAxis","reverseXAxis","showLegend","showLogarithmicScale","showTooltips","showValueLabels","yAxisRangeMax","yAxisRangeMin","setGranularity","onLineClicked","results","useFillGaps","granularitySelectorHasMarginTop","handleClick","createSimpleClickHandler","jsxs","ChartCard","jsx","ChartGranularitySelectField","LineChart","meta","inputs","subInputs","previewConfig","previewData","preview","definePreview","Component","loadDataResultsArgs","clientContext","getClientContextTimezone","loadDataResults","loadData","events","Value","state","setState","xAxisWithGranularity","getDimensionWithGranularity","lineChartDefaultPro"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { definePreview as a } from "@embeddable.com/react";
2
- import { j as i, aa as s, T as l } from "./index-8hrCrGw9.js";
3
- import { i as t } from "./component.inputs.constants-CIEx8GcX.js";
2
+ import { j as i, ae as s, Y as l } from "./index-7D6uMJ-C.js";
3
+ import { i as t } from "./component.inputs.constants-ByMVK7Vv.js";
4
4
  const c = "_horizontalDividerContainer_y6kms_1", d = {
5
5
  horizontalDividerContainer: c
6
6
  }, o = (e) => {
@@ -40,4 +40,4 @@ export {
40
40
  D as h,
41
41
  z as i
42
42
  };
43
- //# sourceMappingURL=definition-Ddlk9Qnc.js.map
43
+ //# sourceMappingURL=definition-XKTgYs0c.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"definition-Ddlk9Qnc.js","sources":["../src/components/shared/HorizontalDividerPro/index.tsx","../src/components/shared/HorizontalDividerPro/definition.ts"],"sourcesContent":["import { Divider } from '@embeddable.com/remarkable-ui';\nimport styles from './HorizontalDividerPro.module.css';\n\ntype HorizontalDividerProProps = {\n color?: string;\n thickness?: number;\n};\n\nconst HorizontalDividerPro = (props: HorizontalDividerProProps) => {\n const { color, thickness } = props;\n\n return (\n <div className={styles.horizontalDividerContainer}>\n <Divider color={color} thickness={thickness} />\n </div>\n );\n};\n\nexport default HorizontalDividerPro;\n","import { EmbeddedComponentMeta, Inputs, definePreview } from '@embeddable.com/react';\nimport Component from './index';\nimport { inputs } from '../../component.inputs.constants';\nimport { getStyle } from '@embeddable.com/remarkable-ui';\n\nconst meta = {\n name: 'HorizontalDividerPro',\n label: 'Horizontal Divider',\n category: 'Layout',\n defaultWidth: 450,\n defaultHeight: 120,\n inputs: [\n {\n ...inputs.number,\n name: 'thickness',\n label: 'Thickness',\n category: 'Component Settings',\n description: 'Thickness of the divider in pixels',\n },\n { ...inputs.color, defaultValue: getStyle('--em-divider-color', '#e4e4ea') },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nconst preview = definePreview(Component, {});\n\nconst props = (inputs: Inputs<typeof meta>) => ({\n ...inputs,\n color: inputs.color as string | undefined,\n});\n\nexport const horizontalDividerPro = {\n Component,\n meta,\n preview,\n config: {\n props,\n },\n} as const;\n"],"names":["HorizontalDividerPro","props","color","thickness","jsx","styles","Divider","meta","inputs","getStyle","preview","definePreview","Component","horizontalDividerPro"],"mappings":";;;;;GAQMA,IAAuB,CAACC,MAAqC;AACjE,QAAM,EAAE,OAAAC,GAAO,WAAAC,EAAA,IAAcF;AAE7B,SACEG,gBAAAA,EAAAA,IAAC,SAAI,WAAWC,EAAO,4BACrB,UAAAD,gBAAAA,EAAAA,IAACE,GAAA,EAAQ,OAAAJ,GAAc,WAAAC,EAAA,CAAsB,EAAA,CAC/C;AAEJ;;;8CCXMI,IAAO;AAAA,EACX,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV,cAAc;AAAA,EACd,eAAe;AAAA,EACf,QAAQ;AAAA,IACN;AAAA,MACE,GAAGC,EAAO;AAAA,MACV,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU;AAAA,MACV,aAAa;AAAA,IAAA;AAAA,IAEf,EAAE,GAAGA,EAAO,OAAO,cAAcC,EAAS,sBAAsB,SAAS,EAAA;AAAA,EAAE;AAE/E,GAEMC,IAAUC,EAAcC,GAAW,EAAE,GAErCX,IAAQ,CAACO,OAAiC;AAAA,EAC9C,GAAGA;AAAAA,EACH,OAAOA,EAAO;AAChB,IAEaK,IAAuB;AAAA,EAAA,WAClCD;AAAAA,EACA,MAAAL;AAAA,EACA,SAAAG;AAAA,EACA,QAAQ;AAAA,IACN,OAAAT;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"definition-XKTgYs0c.js","sources":["../src/components/shared/HorizontalDividerPro/index.tsx","../src/components/shared/HorizontalDividerPro/definition.ts"],"sourcesContent":["import { Divider } from '@embeddable.com/remarkable-ui';\nimport styles from './HorizontalDividerPro.module.css';\n\ntype HorizontalDividerProProps = {\n color?: string;\n thickness?: number;\n};\n\nconst HorizontalDividerPro = (props: HorizontalDividerProProps) => {\n const { color, thickness } = props;\n\n return (\n <div className={styles.horizontalDividerContainer}>\n <Divider color={color} thickness={thickness} />\n </div>\n );\n};\n\nexport default HorizontalDividerPro;\n","import { EmbeddedComponentMeta, Inputs, definePreview } from '@embeddable.com/react';\nimport Component from './index';\nimport { inputs } from '../../component.inputs.constants';\nimport { getStyle } from '@embeddable.com/remarkable-ui';\n\nconst meta = {\n name: 'HorizontalDividerPro',\n label: 'Horizontal Divider',\n category: 'Layout',\n defaultWidth: 450,\n defaultHeight: 120,\n inputs: [\n {\n ...inputs.number,\n name: 'thickness',\n label: 'Thickness',\n category: 'Component Settings',\n description: 'Thickness of the divider in pixels',\n },\n { ...inputs.color, defaultValue: getStyle('--em-divider-color', '#e4e4ea') },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nconst preview = definePreview(Component, {});\n\nconst props = (inputs: Inputs<typeof meta>) => ({\n ...inputs,\n color: inputs.color as string | undefined,\n});\n\nexport const horizontalDividerPro = {\n Component,\n meta,\n preview,\n config: {\n props,\n },\n} as const;\n"],"names":["HorizontalDividerPro","props","color","thickness","jsx","styles","Divider","meta","inputs","getStyle","preview","definePreview","Component","horizontalDividerPro"],"mappings":";;;;;GAQMA,IAAuB,CAACC,MAAqC;AACjE,QAAM,EAAE,OAAAC,GAAO,WAAAC,EAAA,IAAcF;AAE7B,SACEG,gBAAAA,EAAAA,IAAC,SAAI,WAAWC,EAAO,4BACrB,UAAAD,gBAAAA,EAAAA,IAACE,GAAA,EAAQ,OAAAJ,GAAc,WAAAC,EAAA,CAAsB,EAAA,CAC/C;AAEJ;;;8CCXMI,IAAO;AAAA,EACX,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV,cAAc;AAAA,EACd,eAAe;AAAA,EACf,QAAQ;AAAA,IACN;AAAA,MACE,GAAGC,EAAO;AAAA,MACV,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU;AAAA,MACV,aAAa;AAAA,IAAA;AAAA,IAEf,EAAE,GAAGA,EAAO,OAAO,cAAcC,EAAS,sBAAsB,SAAS,EAAA;AAAA,EAAE;AAE/E,GAEMC,IAAUC,EAAcC,GAAW,EAAE,GAErCX,IAAQ,CAACO,OAAiC;AAAA,EAC9C,GAAGA;AAAAA,EACH,OAAOA,EAAO;AAChB,IAEaK,IAAuB;AAAA,EAAA,WAClCD;AAAAA,EACA,MAAAL;AAAA,EACA,SAAAG;AAAA,EACA,QAAQ;AAAA,IACN,OAAAT;AAAA,EAAA;AAEJ;"}
@@ -1,13 +1,13 @@
1
- import { t as Y, y as P, m as q, j as F, O as J, V, l as Q } from "./index-8hrCrGw9.js";
1
+ import { t as Y, y as P, m as q, j as F, U as J, V, l as Q } from "./index-7D6uMJ-C.js";
2
2
  import { useTheme as W, definePreview as Z } from "@embeddable.com/react";
3
3
  import { a as ee, r as ae, i as te } from "./component.utils-Dua9clQJ.js";
4
- import { C as ne } from "./ChartCard-CatiYbl-.js";
5
- import { g as O } from "./dimension.utils-BRQVdJX8.js";
6
- import { a as v, g as I } from "./formatter.utils-DMnYcJuA.js";
4
+ import { C as ne } from "./ChartCard-DXg1i7Y2.js";
5
+ import { g as O } from "./dimension.utils-DlzeRFgr.js";
6
+ import { a as v, g as I } from "./formatter.utils-Y14po21h.js";
7
7
  import { g as se } from "./styles.utils-C8CnV0SB.js";
8
8
  import { N as C, g as oe, m as k, r as R } from "./scatter.utils-DV4Kp2Lb.js";
9
- import { i as n, s as ie } from "./component.inputs.constants-CIEx8GcX.js";
10
- import { p as D } from "./preview.data.constants-CyGLsdjH.js";
9
+ import { i as n, s as ie } from "./component.inputs.constants-ByMVK7Vv.js";
10
+ import { p as D } from "./preview.data.constants-BSjhK_tx.js";
11
11
  import { g as re } from "./clientContext.utils-DpB5KsfX.js";
12
12
  const le = ({
13
13
  xMeasure: e,
@@ -174,7 +174,7 @@ const le = ({
174
174
  bubbleRadiusMax: B,
175
175
  onPointClick: L,
176
176
  hideMenu: S
177
- } = e, { title: N, description: K, tooltip: E, xAxisLabel: G, yAxisLabel: X } = ae(e), w = te.t("charts.scatterChart.noValue"), A = be(
177
+ } = e, { title: N, description: K, tooltip: E, xAxisLabel: G, yAxisLabel: U } = ae(e), w = te.t("charts.scatterChart.noValue"), A = be(
178
178
  {
179
179
  data: s.data,
180
180
  xMeasure: r,
@@ -186,7 +186,7 @@ const le = ({
186
186
  pointColor: g
187
187
  },
188
188
  o
189
- ), H = me({
189
+ ), X = me({
190
190
  datasets: A.datasets,
191
191
  results: s,
192
192
  xMeasure: r,
@@ -195,7 +195,7 @@ const le = ({
195
195
  pointDimension: x,
196
196
  groupByDimension: c,
197
197
  onPointClick: L
198
- }), U = q(
198
+ }), H = q(
199
199
  le(
200
200
  {
201
201
  xMeasure: r,
@@ -229,7 +229,7 @@ const le = ({
229
229
  J,
230
230
  {
231
231
  data: A,
232
- options: U,
232
+ options: H,
233
233
  nullBandLabel: w,
234
234
  showLegend: i && !!c,
235
235
  showTooltips: b,
@@ -237,7 +237,7 @@ const le = ({
237
237
  showValueLabels: h,
238
238
  showLogarithmicScale: f,
239
239
  xAxisLabel: G,
240
- yAxisLabel: X,
240
+ yAxisLabel: U,
241
241
  xAxisRangeMin: M,
242
242
  xAxisRangeMax: a,
243
243
  yAxisRangeMin: t,
@@ -245,7 +245,7 @@ const le = ({
245
245
  reverseXAxis: u,
246
246
  bubbleRadiusMin: y,
247
247
  bubbleRadiusMax: B,
248
- onClick: H
248
+ onClick: X
249
249
  }
250
250
  )
251
251
  }
@@ -387,4 +387,4 @@ export {
387
387
  ve as b,
388
388
  Se as i
389
389
  };
390
- //# sourceMappingURL=definition-DwnteodG.js.map
390
+ //# sourceMappingURL=definition-p5xsyRmK.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"definition-DwnteodG.js","sources":["../src/components/charts/scatter/BubbleChartPro/BubbleChartPro.utils.ts","../src/components/charts/scatter/BubbleChartPro/index.tsx","../src/components/charts/scatter/BubbleChartPro/definition.ts"],"sourcesContent":["import { BubbleDataPoint, ChartData, type ChartOptions } from 'chart.js';\nimport { Context } from 'chartjs-plugin-datalabels';\nimport { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { getTimeRangeFromDimensionValue } from '../../../utils/dimension.utils';\nimport { Theme } from '../../../../theme/theme.types';\nimport { getThemeFormatter } from '../../../../theme/formatter/formatter.utils';\nimport { getChartColors, getStyleNumber } from '@embeddable.com/remarkable-ui';\nimport type { ChartClickArgs, BubbleDatasetExtended } from '@embeddable.com/remarkable-ui';\nimport { getDimensionMeasureColor } from '../../../../theme/styles/styles.utils';\nimport type { BubbleChartProOptionsClickArg, BubblePoint } from './BubbleChartPro.types';\nimport { getDimensionFieldName } from '../../../../utils/data.utils';\nimport {\n measureToNullableNumber,\n rawValueToString,\n NULL_GROUP_KEY,\n getScatterScales,\n type RawValue,\n} from '../scatter.utils';\n\nexport const getBubbleChartProOptions = (\n {\n xMeasure,\n yMeasure,\n sizeMeasure,\n noValueLabel,\n bubbleRadiusMax,\n showPointLabels,\n }: {\n xMeasure: Measure;\n yMeasure: Measure;\n sizeMeasure: Measure;\n noValueLabel: string;\n bubbleRadiusMax?: number;\n showPointLabels?: boolean;\n },\n theme: Theme,\n): Partial<ChartOptions<'bubble'>> => {\n const themeFormatter = getThemeFormatter(theme);\n\n const formatValue = (measure: Measure, value: number | null | undefined): string => {\n if (value === null || value === undefined) return noValueLabel;\n return themeFormatter.data(measure, value);\n };\n\n const radiusMax = bubbleRadiusMax ?? 20;\n const labelGap = getStyleNumber('--em-scatterchart-label-stack-gap', '0.25rem');\n const labelLineHeight = getStyleNumber('--em-scatterchart-label-stack-height', '1.25rem');\n\n const getBubbleRadius = (context: Context): number => {\n const ds = context.dataset as BubbleDatasetExtended;\n return ds.bubbleSizes[context.dataIndex] ?? radiusMax;\n };\n\n const captionOffset = (context: Context): number => getBubbleRadius(context) + labelGap;\n\n const valueOffset = (context: Context): number => {\n const r = getBubbleRadius(context);\n if (showPointLabels) return r + labelGap + labelLineHeight + labelGap;\n return r + labelGap;\n };\n\n return {\n scales: getScatterScales(xMeasure, yMeasure, (measure: Measure, value: number) =>\n themeFormatter.data(measure, value),\n ),\n plugins: {\n tooltip: {\n callbacks: {\n label: (ctx) => {\n const ds = ctx.dataset as BubbleDatasetExtended;\n const orig = ds.originalData?.[ctx.dataIndex];\n if (!orig) return '';\n return [\n `${themeFormatter.dimensionOrMeasureTitle(xMeasure)}: ${formatValue(xMeasure, orig.x)}`,\n `${themeFormatter.dimensionOrMeasureTitle(yMeasure)}: ${formatValue(yMeasure, orig.y)}`,\n `${themeFormatter.dimensionOrMeasureTitle(sizeMeasure)}: ${formatValue(sizeMeasure, orig.size)}`,\n ];\n },\n },\n },\n datalabels: {\n labels: {\n value: {\n formatter: (_value: BubbleDataPoint, context: Context) => {\n const ds = context.dataset as BubbleDatasetExtended;\n const orig = ds.originalData?.[context.dataIndex];\n if (!orig) return '';\n return formatValue(sizeMeasure, orig.size);\n },\n anchor: 'center',\n align: 'bottom',\n offset: valueOffset,\n },\n caption: {\n anchor: 'center',\n align: 'bottom',\n offset: captionOffset,\n },\n },\n },\n },\n };\n};\n\nexport const getBubblePointClickData = (\n point: { datasetIndex: number; index: number },\n datasets: ChartData<'bubble', BubblePoint[]>['datasets'],\n data: DataResponse['data'],\n xMeasure: Measure,\n yMeasure: Measure,\n sizeMeasure: Measure,\n pointDimension: Dimension,\n groupByDimension?: Dimension,\n): BubbleChartProOptionsClickArg | null => {\n const rowIdx = datasets[point.datasetIndex]?.data[point.index]?.rowIndex;\n if (rowIdx === undefined) return null;\n const row = data?.[rowIdx] as Record<string, RawValue> | undefined;\n if (!row) return null;\n\n const pointField = getDimensionFieldName(pointDimension);\n const groupField = groupByDimension ? getDimensionFieldName(groupByDimension) : undefined;\n\n const pointDimensionValue = rawValueToString(row[pointField]);\n const groupByDimensionValue = groupField ? rawValueToString(row[groupField]) : null;\n\n return {\n xMeasureValue: rawValueToString(row[xMeasure.name]),\n yMeasureValue: rawValueToString(row[yMeasure.name]),\n sizeMeasureValue: rawValueToString(row[sizeMeasure.name]),\n pointDimensionValue,\n groupByDimensionValue,\n pointDimensionTimeRange: getTimeRangeFromDimensionValue({\n value: pointDimensionValue,\n dimension: pointDimension,\n }),\n groupByDimensionTimeRange: getTimeRangeFromDimensionValue({\n value: groupByDimensionValue ?? undefined,\n dimension: groupByDimension,\n }),\n };\n};\n\nexport const createBubbleClickHandler = ({\n datasets,\n results,\n xMeasure,\n yMeasure,\n sizeMeasure,\n pointDimension,\n groupByDimension,\n onPointClick,\n}: {\n datasets: ChartData<'bubble', BubblePoint[]>['datasets'];\n results: DataResponse;\n xMeasure: Measure;\n yMeasure: Measure;\n sizeMeasure: Measure;\n pointDimension: Dimension;\n groupByDimension?: Dimension;\n onPointClick?: (payload: BubbleChartProOptionsClickArg) => void;\n}): ((args: ChartClickArgs) => void) => {\n return ({ elementAtEvent }) => {\n const element = elementAtEvent[0];\n if (!element) return;\n const clickData = getBubblePointClickData(\n element,\n datasets,\n results.data,\n xMeasure,\n yMeasure,\n sizeMeasure,\n pointDimension,\n groupByDimension,\n );\n if (clickData) onPointClick?.(clickData);\n };\n};\n\nexport const getBubbleChartProData = (\n props: {\n data: DataResponse['data'];\n xMeasure: Measure;\n yMeasure: Measure;\n sizeMeasure: Measure;\n pointDimension: Dimension;\n groupByDimension?: Dimension | null;\n noValueLabel: string;\n pointColor?: string;\n },\n theme: Theme,\n): ChartData<'bubble', BubblePoint[]> => {\n const themeFormatter = getThemeFormatter(theme);\n const chartColors = getChartColors();\n const data = (props.data ?? []) as Record<string, unknown>[];\n const pointField = getDimensionFieldName(props.pointDimension);\n const overrideColor = props.groupByDimension ? undefined : props.pointColor?.trim() || undefined;\n\n if (!data.length) {\n return { datasets: [{ label: '', data: [] }] };\n }\n\n const getColor = (\n color: 'background' | 'border',\n dimensionOrMeasure: Dimension | Measure,\n value: string,\n index: number,\n ) =>\n overrideColor ??\n getDimensionMeasureColor({ dimensionOrMeasure, theme, color, value, index, chartColors });\n\n const buildPoint = (row: Record<string, unknown>, rowIndex: number): BubblePoint => {\n const rawPoint = row[pointField];\n const pointLabel =\n rawPoint == null\n ? props.noValueLabel\n : String(themeFormatter.data(props.pointDimension, rawPoint as string | number | boolean));\n return {\n x: measureToNullableNumber(row[props.xMeasure.name]),\n y: measureToNullableNumber(row[props.yMeasure.name]),\n size: measureToNullableNumber(row[props.sizeMeasure.name]),\n pointLabel,\n label: pointLabel,\n rowIndex,\n };\n };\n\n if (!props.groupByDimension) {\n return {\n datasets: [\n {\n label: themeFormatter.dimensionOrMeasureTitle(props.yMeasure),\n data: data.map((row, i) => buildPoint(row, i)),\n backgroundColor: getColor('background', props.xMeasure, props.xMeasure.name, 0),\n borderColor: getColor('border', props.xMeasure, props.xMeasure.name, 0),\n },\n ],\n };\n }\n\n const groupDim = props.groupByDimension;\n const groupField = getDimensionFieldName(groupDim);\n const bucket = new Map<string, BubblePoint[]>();\n\n data.forEach((row, rowIndex) => {\n const key = row[groupField] == null ? NULL_GROUP_KEY : String(row[groupField]);\n const points = bucket.get(key) ?? [];\n points.push(buildPoint(row, rowIndex));\n bucket.set(key, points);\n });\n\n const sortedKeys = [...bucket.keys()].sort((a, b) => {\n if (a === NULL_GROUP_KEY) return 1;\n if (b === NULL_GROUP_KEY) return -1;\n return a.localeCompare(b);\n });\n\n const datasets = sortedKeys.map((key, index) => {\n const points = bucket.get(key)!;\n const firstRowIndex = points[0]!.rowIndex;\n const groupValue = key === NULL_GROUP_KEY ? null : data[firstRowIndex]?.[groupField];\n const seriesLabel =\n key === NULL_GROUP_KEY\n ? props.noValueLabel\n : themeFormatter.data(groupDim, groupValue as string | number | boolean);\n const colorKey = key === NULL_GROUP_KEY ? `${groupDim.name}.null` : `${groupDim.name}.${key}`;\n\n return {\n label: seriesLabel,\n data: points,\n backgroundColor: getColor('background', groupDim, colorKey, index),\n borderColor: getColor('border', groupDim, colorKey, index),\n };\n });\n\n return { datasets };\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { BubbleChart } from '@embeddable.com/remarkable-ui';\nimport { mergician } from 'mergician';\nimport { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { Theme } from '../../../../theme/theme.types';\nimport { i18nSetup, i18n } from '../../../../theme/i18n/i18n';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { ChartCard, ChartCardHeaderProps } from '../../shared/ChartCard/ChartCard';\nimport {\n createBubbleClickHandler,\n getBubbleChartProData,\n getBubbleChartProOptions,\n} from './BubbleChartPro.utils';\n\nimport type { BubbleChartProOptionsClickArg } from './BubbleChartPro.types';\n\nexport type BubbleChartProProps = {\n xMeasure: Measure;\n yMeasure: Measure;\n bubbleSizeMeasure: Measure;\n pointDimension: Dimension;\n groupByDimension?: Dimension;\n results: DataResponse;\n pointColor?: string;\n showLegend?: boolean;\n showTooltips?: boolean;\n showPointLabels?: boolean;\n showValueLabels?: boolean;\n showLogarithmicScale?: boolean;\n xAxisLabel?: string;\n yAxisLabel?: string;\n xAxisRangeMin?: number;\n xAxisRangeMax?: number;\n yAxisRangeMin?: number;\n yAxisRangeMax?: number;\n reverseXAxis?: boolean;\n bubbleRadiusMin?: number;\n bubbleRadiusMax?: number;\n onPointClick?: (payload: BubbleChartProOptionsClickArg) => void;\n} & ChartCardHeaderProps;\n\nconst BubbleChartPro = (props: BubbleChartProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const {\n xMeasure,\n yMeasure,\n bubbleSizeMeasure: sizeMeasure,\n pointDimension,\n groupByDimension,\n results,\n pointColor,\n showLegend,\n showTooltips,\n showPointLabels,\n showValueLabels,\n showLogarithmicScale,\n xAxisRangeMin,\n xAxisRangeMax,\n yAxisRangeMin,\n yAxisRangeMax,\n reverseXAxis,\n bubbleRadiusMin,\n bubbleRadiusMax,\n onPointClick,\n hideMenu,\n } = props;\n\n const { title, description, tooltip, xAxisLabel, yAxisLabel } = resolveI18nProps(props);\n\n const noValueLabel = i18n.t('charts.scatterChart.noValue');\n\n const chartData = getBubbleChartProData(\n {\n data: results.data,\n xMeasure,\n yMeasure,\n sizeMeasure,\n pointDimension,\n groupByDimension,\n noValueLabel,\n pointColor,\n },\n theme,\n );\n\n const handleClick = createBubbleClickHandler({\n datasets: chartData.datasets,\n results,\n xMeasure,\n yMeasure,\n sizeMeasure,\n pointDimension,\n groupByDimension,\n onPointClick,\n });\n\n const chartOptions = mergician(\n getBubbleChartProOptions(\n {\n xMeasure,\n yMeasure,\n sizeMeasure,\n noValueLabel,\n bubbleRadiusMax,\n showPointLabels,\n },\n theme,\n ),\n theme.charts.bubbleChartPro?.options ?? {},\n );\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[\n pointDimension,\n xMeasure,\n yMeasure,\n sizeMeasure,\n ...(groupByDimension ? [groupByDimension] : []),\n ]}\n errorMessage={results.error}\n description={description}\n title={title}\n tooltip={tooltip}\n hideMenu={hideMenu}\n >\n <BubbleChart\n data={chartData}\n options={chartOptions}\n nullBandLabel={noValueLabel}\n showLegend={showLegend && !!groupByDimension}\n showTooltips={showTooltips}\n showPointLabels={showPointLabels}\n showValueLabels={showValueLabels}\n showLogarithmicScale={showLogarithmicScale}\n xAxisLabel={xAxisLabel}\n yAxisLabel={yAxisLabel}\n xAxisRangeMin={xAxisRangeMin}\n xAxisRangeMax={xAxisRangeMax}\n yAxisRangeMin={yAxisRangeMin}\n yAxisRangeMax={yAxisRangeMax}\n reverseXAxis={reverseXAxis}\n bubbleRadiusMin={bubbleRadiusMin}\n bubbleRadiusMax={bubbleRadiusMax}\n onClick={handleClick}\n />\n </ChartCard>\n );\n};\n\nexport default BubbleChartPro;\n","import { DataResponse, LoadDataRequest, Value, loadData } from '@embeddable.com/core';\nimport type { BubbleChartProOptionsClickArg } from './BubbleChartPro.types';\nimport { definePreview, EmbeddedComponentMeta, Inputs } from '@embeddable.com/react';\nimport Component from './index';\nimport { inputs } from '../../../component.inputs.constants';\nimport { subInputs } from '../../../component.subinputs.constants';\nimport { previewData } from '../../../preview.data.constants';\nimport { getClientContextTimezone } from '../../../../theme/utils/clientContext.utils';\nimport { ThemeClientContext } from '../../../../theme/theme.types';\n\nconst meta = {\n name: 'BubbleChartPro',\n label: 'Bubble Chart',\n category: 'Scatter Charts',\n inputs: [\n inputs.dataset,\n inputs.xMeasure,\n inputs.yMeasure,\n { ...inputs.measure, name: 'bubbleSizeMeasure', label: 'Bubble size measure' },\n { ...inputs.dimension, name: 'pointDimension', label: 'Point dimension' },\n {\n ...inputs.dimension,\n name: 'groupByDimension',\n label: 'Group by (optional)',\n required: false,\n },\n {\n ...subInputs.color,\n name: 'pointColor',\n label: 'Point color',\n category: 'Component Settings',\n },\n {\n ...inputs.number,\n name: 'bubbleRadiusMin',\n label: 'Bubble min radius (px)',\n defaultValue: 3,\n category: 'Component Settings',\n },\n {\n ...inputs.number,\n name: 'bubbleRadiusMax',\n label: 'Bubble max radius (px)',\n defaultValue: 20,\n category: 'Component Settings',\n },\n inputs.title,\n inputs.description,\n inputs.tooltip,\n inputs.showLegend,\n inputs.showTooltips,\n {\n ...inputs.boolean,\n name: 'showPointLabels',\n label: 'Show point labels',\n defaultValue: false,\n category: 'Component Settings',\n },\n inputs.showValueLabels,\n inputs.showLogarithmicScale,\n inputs.xAxisLabel,\n inputs.yAxisLabel,\n inputs.reverseXAxis,\n inputs.xAxisRangeMin,\n inputs.xAxisRangeMax,\n inputs.yAxisRangeMin,\n inputs.yAxisRangeMax,\n inputs.maxResults,\n ],\n events: [\n {\n name: 'onPointClick',\n label: 'A point is clicked',\n properties: [\n { name: 'xMeasureValue', label: 'Clicked X measure value', type: 'string' },\n { name: 'yMeasureValue', label: 'Clicked Y measure value', type: 'string' },\n { name: 'pointDimensionValue', label: 'Clicked point dimension value', type: 'string' },\n { name: 'groupByDimensionValue', label: 'Clicked group by value', type: 'string' },\n {\n name: 'pointDimensionTimeRange',\n label: 'Clicked point dimension time range',\n type: 'timeRange',\n },\n {\n name: 'groupByDimensionTimeRange',\n label: 'Clicked group by time range',\n type: 'timeRange',\n },\n { name: 'sizeMeasureValue', label: 'Clicked bubble size value', type: 'string' },\n ],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nexport type BubbleChartProState = Record<string, never>;\n\nconst previewConfig = {\n dataset: previewData.dataset,\n xMeasure: previewData.measure,\n yMeasure: previewData.measureVariant,\n bubbleSizeMeasure: previewData.measure,\n pointDimension: previewData.dimension,\n results: previewData.results2Measures1Dimension,\n bubbleRadiusMin: 3,\n bubbleRadiusMax: 10,\n showLegend: true,\n hideMenu: true,\n};\n\nconst preview = definePreview(Component, previewConfig);\n\nconst loadDataResultsArgs = (\n inputs: Inputs<typeof meta>,\n clientContext?: ThemeClientContext,\n): LoadDataRequest => ({\n limit: inputs.maxResults,\n from: inputs.dataset,\n select: [\n inputs.xMeasure,\n inputs.yMeasure,\n inputs.bubbleSizeMeasure,\n inputs.pointDimension,\n ...(inputs.groupByDimension ? [inputs.groupByDimension] : []),\n ],\n timezone: getClientContextTimezone(clientContext?.timezone),\n});\n\nconst loadDataResults = (\n inputs: Inputs<typeof meta>,\n clientContext: ThemeClientContext,\n): DataResponse => loadData(loadDataResultsArgs(inputs, clientContext));\n\nconst events = {\n onPointClick: (value: BubbleChartProOptionsClickArg) => ({\n xMeasureValue: value.xMeasureValue ?? Value.noFilter(),\n yMeasureValue: value.yMeasureValue ?? Value.noFilter(),\n sizeMeasureValue: value.sizeMeasureValue ?? Value.noFilter(),\n pointDimensionValue: value.pointDimensionValue ?? Value.noFilter(),\n groupByDimensionValue: value.groupByDimensionValue ?? Value.noFilter(),\n }),\n};\n\nconst props = (\n inputs: Inputs<typeof meta>,\n [_state, _setState]: [BubbleChartProState, (state: BubbleChartProState) => void],\n clientContext: ThemeClientContext,\n) => ({\n ...inputs,\n pointColor: inputs.pointColor as string | undefined,\n results: loadDataResults(inputs, clientContext),\n});\n\nexport const bubbleChartPro = {\n Component,\n meta,\n preview,\n previewConfig,\n config: {\n props,\n events,\n },\n results: {\n loadDataArgs: loadDataResultsArgs,\n loadData: loadDataResults,\n },\n} as const;\n"],"names":["getBubbleChartProOptions","xMeasure","yMeasure","sizeMeasure","noValueLabel","bubbleRadiusMax","showPointLabels","theme","themeFormatter","getThemeFormatter","formatValue","measure","value","radiusMax","labelGap","getStyleNumber","labelLineHeight","getBubbleRadius","context","captionOffset","valueOffset","r","getScatterScales","ctx","orig","_a","_value","getBubblePointClickData","point","datasets","data","pointDimension","groupByDimension","rowIdx","_b","row","pointField","getDimensionFieldName","groupField","pointDimensionValue","rawValueToString","groupByDimensionValue","getTimeRangeFromDimensionValue","createBubbleClickHandler","results","onPointClick","elementAtEvent","element","clickData","getBubbleChartProData","props","chartColors","getChartColors","overrideColor","getColor","color","dimensionOrMeasure","index","getDimensionMeasureColor","buildPoint","rowIndex","rawPoint","pointLabel","measureToNullableNumber","i","groupDim","bucket","key","NULL_GROUP_KEY","points","b","firstRowIndex","groupValue","seriesLabel","colorKey","BubbleChartPro","useTheme","i18nSetup","pointColor","showLegend","showTooltips","showValueLabels","showLogarithmicScale","xAxisRangeMin","xAxisRangeMax","yAxisRangeMin","yAxisRangeMax","reverseXAxis","bubbleRadiusMin","hideMenu","title","description","tooltip","xAxisLabel","yAxisLabel","resolveI18nProps","i18n","chartData","handleClick","chartOptions","mergician","jsx","ChartCard","BubbleChart","meta","inputs","subInputs","previewConfig","previewData","preview","definePreview","Component","loadDataResultsArgs","clientContext","getClientContextTimezone","loadDataResults","loadData","events","Value","_state","_setState","bubbleChartPro"],"mappings":"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"}
1
+ {"version":3,"file":"definition-p5xsyRmK.js","sources":["../src/components/charts/scatter/BubbleChartPro/BubbleChartPro.utils.ts","../src/components/charts/scatter/BubbleChartPro/index.tsx","../src/components/charts/scatter/BubbleChartPro/definition.ts"],"sourcesContent":["import { BubbleDataPoint, ChartData, type ChartOptions } from 'chart.js';\nimport { Context } from 'chartjs-plugin-datalabels';\nimport { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { getTimeRangeFromDimensionValue } from '../../../utils/dimension.utils';\nimport { Theme } from '../../../../theme/theme.types';\nimport { getThemeFormatter } from '../../../../theme/formatter/formatter.utils';\nimport { getChartColors, getStyleNumber } from '@embeddable.com/remarkable-ui';\nimport type { ChartClickArgs, BubbleDatasetExtended } from '@embeddable.com/remarkable-ui';\nimport { getDimensionMeasureColor } from '../../../../theme/styles/styles.utils';\nimport type { BubbleChartProOptionsClickArg, BubblePoint } from './BubbleChartPro.types';\nimport { getDimensionFieldName } from '../../../../utils/data.utils';\nimport {\n measureToNullableNumber,\n rawValueToString,\n NULL_GROUP_KEY,\n getScatterScales,\n type RawValue,\n} from '../scatter.utils';\n\nexport const getBubbleChartProOptions = (\n {\n xMeasure,\n yMeasure,\n sizeMeasure,\n noValueLabel,\n bubbleRadiusMax,\n showPointLabels,\n }: {\n xMeasure: Measure;\n yMeasure: Measure;\n sizeMeasure: Measure;\n noValueLabel: string;\n bubbleRadiusMax?: number;\n showPointLabels?: boolean;\n },\n theme: Theme,\n): Partial<ChartOptions<'bubble'>> => {\n const themeFormatter = getThemeFormatter(theme);\n\n const formatValue = (measure: Measure, value: number | null | undefined): string => {\n if (value === null || value === undefined) return noValueLabel;\n return themeFormatter.data(measure, value);\n };\n\n const radiusMax = bubbleRadiusMax ?? 20;\n const labelGap = getStyleNumber('--em-scatterchart-label-stack-gap', '0.25rem');\n const labelLineHeight = getStyleNumber('--em-scatterchart-label-stack-height', '1.25rem');\n\n const getBubbleRadius = (context: Context): number => {\n const ds = context.dataset as BubbleDatasetExtended;\n return ds.bubbleSizes[context.dataIndex] ?? radiusMax;\n };\n\n const captionOffset = (context: Context): number => getBubbleRadius(context) + labelGap;\n\n const valueOffset = (context: Context): number => {\n const r = getBubbleRadius(context);\n if (showPointLabels) return r + labelGap + labelLineHeight + labelGap;\n return r + labelGap;\n };\n\n return {\n scales: getScatterScales(xMeasure, yMeasure, (measure: Measure, value: number) =>\n themeFormatter.data(measure, value),\n ),\n plugins: {\n tooltip: {\n callbacks: {\n label: (ctx) => {\n const ds = ctx.dataset as BubbleDatasetExtended;\n const orig = ds.originalData?.[ctx.dataIndex];\n if (!orig) return '';\n return [\n `${themeFormatter.dimensionOrMeasureTitle(xMeasure)}: ${formatValue(xMeasure, orig.x)}`,\n `${themeFormatter.dimensionOrMeasureTitle(yMeasure)}: ${formatValue(yMeasure, orig.y)}`,\n `${themeFormatter.dimensionOrMeasureTitle(sizeMeasure)}: ${formatValue(sizeMeasure, orig.size)}`,\n ];\n },\n },\n },\n datalabels: {\n labels: {\n value: {\n formatter: (_value: BubbleDataPoint, context: Context) => {\n const ds = context.dataset as BubbleDatasetExtended;\n const orig = ds.originalData?.[context.dataIndex];\n if (!orig) return '';\n return formatValue(sizeMeasure, orig.size);\n },\n anchor: 'center',\n align: 'bottom',\n offset: valueOffset,\n },\n caption: {\n anchor: 'center',\n align: 'bottom',\n offset: captionOffset,\n },\n },\n },\n },\n };\n};\n\nexport const getBubblePointClickData = (\n point: { datasetIndex: number; index: number },\n datasets: ChartData<'bubble', BubblePoint[]>['datasets'],\n data: DataResponse['data'],\n xMeasure: Measure,\n yMeasure: Measure,\n sizeMeasure: Measure,\n pointDimension: Dimension,\n groupByDimension?: Dimension,\n): BubbleChartProOptionsClickArg | null => {\n const rowIdx = datasets[point.datasetIndex]?.data[point.index]?.rowIndex;\n if (rowIdx === undefined) return null;\n const row = data?.[rowIdx] as Record<string, RawValue> | undefined;\n if (!row) return null;\n\n const pointField = getDimensionFieldName(pointDimension);\n const groupField = groupByDimension ? getDimensionFieldName(groupByDimension) : undefined;\n\n const pointDimensionValue = rawValueToString(row[pointField]);\n const groupByDimensionValue = groupField ? rawValueToString(row[groupField]) : null;\n\n return {\n xMeasureValue: rawValueToString(row[xMeasure.name]),\n yMeasureValue: rawValueToString(row[yMeasure.name]),\n sizeMeasureValue: rawValueToString(row[sizeMeasure.name]),\n pointDimensionValue,\n groupByDimensionValue,\n pointDimensionTimeRange: getTimeRangeFromDimensionValue({\n value: pointDimensionValue,\n dimension: pointDimension,\n }),\n groupByDimensionTimeRange: getTimeRangeFromDimensionValue({\n value: groupByDimensionValue ?? undefined,\n dimension: groupByDimension,\n }),\n };\n};\n\nexport const createBubbleClickHandler = ({\n datasets,\n results,\n xMeasure,\n yMeasure,\n sizeMeasure,\n pointDimension,\n groupByDimension,\n onPointClick,\n}: {\n datasets: ChartData<'bubble', BubblePoint[]>['datasets'];\n results: DataResponse;\n xMeasure: Measure;\n yMeasure: Measure;\n sizeMeasure: Measure;\n pointDimension: Dimension;\n groupByDimension?: Dimension;\n onPointClick?: (payload: BubbleChartProOptionsClickArg) => void;\n}): ((args: ChartClickArgs) => void) => {\n return ({ elementAtEvent }) => {\n const element = elementAtEvent[0];\n if (!element) return;\n const clickData = getBubblePointClickData(\n element,\n datasets,\n results.data,\n xMeasure,\n yMeasure,\n sizeMeasure,\n pointDimension,\n groupByDimension,\n );\n if (clickData) onPointClick?.(clickData);\n };\n};\n\nexport const getBubbleChartProData = (\n props: {\n data: DataResponse['data'];\n xMeasure: Measure;\n yMeasure: Measure;\n sizeMeasure: Measure;\n pointDimension: Dimension;\n groupByDimension?: Dimension | null;\n noValueLabel: string;\n pointColor?: string;\n },\n theme: Theme,\n): ChartData<'bubble', BubblePoint[]> => {\n const themeFormatter = getThemeFormatter(theme);\n const chartColors = getChartColors();\n const data = (props.data ?? []) as Record<string, unknown>[];\n const pointField = getDimensionFieldName(props.pointDimension);\n const overrideColor = props.groupByDimension ? undefined : props.pointColor?.trim() || undefined;\n\n if (!data.length) {\n return { datasets: [{ label: '', data: [] }] };\n }\n\n const getColor = (\n color: 'background' | 'border',\n dimensionOrMeasure: Dimension | Measure,\n value: string,\n index: number,\n ) =>\n overrideColor ??\n getDimensionMeasureColor({ dimensionOrMeasure, theme, color, value, index, chartColors });\n\n const buildPoint = (row: Record<string, unknown>, rowIndex: number): BubblePoint => {\n const rawPoint = row[pointField];\n const pointLabel =\n rawPoint == null\n ? props.noValueLabel\n : String(themeFormatter.data(props.pointDimension, rawPoint as string | number | boolean));\n return {\n x: measureToNullableNumber(row[props.xMeasure.name]),\n y: measureToNullableNumber(row[props.yMeasure.name]),\n size: measureToNullableNumber(row[props.sizeMeasure.name]),\n pointLabel,\n label: pointLabel,\n rowIndex,\n };\n };\n\n if (!props.groupByDimension) {\n return {\n datasets: [\n {\n label: themeFormatter.dimensionOrMeasureTitle(props.yMeasure),\n data: data.map((row, i) => buildPoint(row, i)),\n backgroundColor: getColor('background', props.xMeasure, props.xMeasure.name, 0),\n borderColor: getColor('border', props.xMeasure, props.xMeasure.name, 0),\n },\n ],\n };\n }\n\n const groupDim = props.groupByDimension;\n const groupField = getDimensionFieldName(groupDim);\n const bucket = new Map<string, BubblePoint[]>();\n\n data.forEach((row, rowIndex) => {\n const key = row[groupField] == null ? NULL_GROUP_KEY : String(row[groupField]);\n const points = bucket.get(key) ?? [];\n points.push(buildPoint(row, rowIndex));\n bucket.set(key, points);\n });\n\n const sortedKeys = [...bucket.keys()].sort((a, b) => {\n if (a === NULL_GROUP_KEY) return 1;\n if (b === NULL_GROUP_KEY) return -1;\n return a.localeCompare(b);\n });\n\n const datasets = sortedKeys.map((key, index) => {\n const points = bucket.get(key)!;\n const firstRowIndex = points[0]!.rowIndex;\n const groupValue = key === NULL_GROUP_KEY ? null : data[firstRowIndex]?.[groupField];\n const seriesLabel =\n key === NULL_GROUP_KEY\n ? props.noValueLabel\n : themeFormatter.data(groupDim, groupValue as string | number | boolean);\n const colorKey = key === NULL_GROUP_KEY ? `${groupDim.name}.null` : `${groupDim.name}.${key}`;\n\n return {\n label: seriesLabel,\n data: points,\n backgroundColor: getColor('background', groupDim, colorKey, index),\n borderColor: getColor('border', groupDim, colorKey, index),\n };\n });\n\n return { datasets };\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { BubbleChart } from '@embeddable.com/remarkable-ui';\nimport { mergician } from 'mergician';\nimport { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { Theme } from '../../../../theme/theme.types';\nimport { i18nSetup, i18n } from '../../../../theme/i18n/i18n';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { ChartCard, ChartCardHeaderProps } from '../../shared/ChartCard/ChartCard';\nimport {\n createBubbleClickHandler,\n getBubbleChartProData,\n getBubbleChartProOptions,\n} from './BubbleChartPro.utils';\n\nimport type { BubbleChartProOptionsClickArg } from './BubbleChartPro.types';\n\nexport type BubbleChartProProps = {\n xMeasure: Measure;\n yMeasure: Measure;\n bubbleSizeMeasure: Measure;\n pointDimension: Dimension;\n groupByDimension?: Dimension;\n results: DataResponse;\n pointColor?: string;\n showLegend?: boolean;\n showTooltips?: boolean;\n showPointLabels?: boolean;\n showValueLabels?: boolean;\n showLogarithmicScale?: boolean;\n xAxisLabel?: string;\n yAxisLabel?: string;\n xAxisRangeMin?: number;\n xAxisRangeMax?: number;\n yAxisRangeMin?: number;\n yAxisRangeMax?: number;\n reverseXAxis?: boolean;\n bubbleRadiusMin?: number;\n bubbleRadiusMax?: number;\n onPointClick?: (payload: BubbleChartProOptionsClickArg) => void;\n} & ChartCardHeaderProps;\n\nconst BubbleChartPro = (props: BubbleChartProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const {\n xMeasure,\n yMeasure,\n bubbleSizeMeasure: sizeMeasure,\n pointDimension,\n groupByDimension,\n results,\n pointColor,\n showLegend,\n showTooltips,\n showPointLabels,\n showValueLabels,\n showLogarithmicScale,\n xAxisRangeMin,\n xAxisRangeMax,\n yAxisRangeMin,\n yAxisRangeMax,\n reverseXAxis,\n bubbleRadiusMin,\n bubbleRadiusMax,\n onPointClick,\n hideMenu,\n } = props;\n\n const { title, description, tooltip, xAxisLabel, yAxisLabel } = resolveI18nProps(props);\n\n const noValueLabel = i18n.t('charts.scatterChart.noValue');\n\n const chartData = getBubbleChartProData(\n {\n data: results.data,\n xMeasure,\n yMeasure,\n sizeMeasure,\n pointDimension,\n groupByDimension,\n noValueLabel,\n pointColor,\n },\n theme,\n );\n\n const handleClick = createBubbleClickHandler({\n datasets: chartData.datasets,\n results,\n xMeasure,\n yMeasure,\n sizeMeasure,\n pointDimension,\n groupByDimension,\n onPointClick,\n });\n\n const chartOptions = mergician(\n getBubbleChartProOptions(\n {\n xMeasure,\n yMeasure,\n sizeMeasure,\n noValueLabel,\n bubbleRadiusMax,\n showPointLabels,\n },\n theme,\n ),\n theme.charts.bubbleChartPro?.options ?? {},\n );\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[\n pointDimension,\n xMeasure,\n yMeasure,\n sizeMeasure,\n ...(groupByDimension ? [groupByDimension] : []),\n ]}\n errorMessage={results.error}\n description={description}\n title={title}\n tooltip={tooltip}\n hideMenu={hideMenu}\n >\n <BubbleChart\n data={chartData}\n options={chartOptions}\n nullBandLabel={noValueLabel}\n showLegend={showLegend && !!groupByDimension}\n showTooltips={showTooltips}\n showPointLabels={showPointLabels}\n showValueLabels={showValueLabels}\n showLogarithmicScale={showLogarithmicScale}\n xAxisLabel={xAxisLabel}\n yAxisLabel={yAxisLabel}\n xAxisRangeMin={xAxisRangeMin}\n xAxisRangeMax={xAxisRangeMax}\n yAxisRangeMin={yAxisRangeMin}\n yAxisRangeMax={yAxisRangeMax}\n reverseXAxis={reverseXAxis}\n bubbleRadiusMin={bubbleRadiusMin}\n bubbleRadiusMax={bubbleRadiusMax}\n onClick={handleClick}\n />\n </ChartCard>\n );\n};\n\nexport default BubbleChartPro;\n","import { DataResponse, LoadDataRequest, Value, loadData } from '@embeddable.com/core';\nimport type { BubbleChartProOptionsClickArg } from './BubbleChartPro.types';\nimport { definePreview, EmbeddedComponentMeta, Inputs } from '@embeddable.com/react';\nimport Component from './index';\nimport { inputs } from '../../../component.inputs.constants';\nimport { subInputs } from '../../../component.subinputs.constants';\nimport { previewData } from '../../../preview.data.constants';\nimport { getClientContextTimezone } from '../../../../theme/utils/clientContext.utils';\nimport { ThemeClientContext } from '../../../../theme/theme.types';\n\nconst meta = {\n name: 'BubbleChartPro',\n label: 'Bubble Chart',\n category: 'Scatter Charts',\n inputs: [\n inputs.dataset,\n inputs.xMeasure,\n inputs.yMeasure,\n { ...inputs.measure, name: 'bubbleSizeMeasure', label: 'Bubble size measure' },\n { ...inputs.dimension, name: 'pointDimension', label: 'Point dimension' },\n {\n ...inputs.dimension,\n name: 'groupByDimension',\n label: 'Group by (optional)',\n required: false,\n },\n {\n ...subInputs.color,\n name: 'pointColor',\n label: 'Point color',\n category: 'Component Settings',\n },\n {\n ...inputs.number,\n name: 'bubbleRadiusMin',\n label: 'Bubble min radius (px)',\n defaultValue: 3,\n category: 'Component Settings',\n },\n {\n ...inputs.number,\n name: 'bubbleRadiusMax',\n label: 'Bubble max radius (px)',\n defaultValue: 20,\n category: 'Component Settings',\n },\n inputs.title,\n inputs.description,\n inputs.tooltip,\n inputs.showLegend,\n inputs.showTooltips,\n {\n ...inputs.boolean,\n name: 'showPointLabels',\n label: 'Show point labels',\n defaultValue: false,\n category: 'Component Settings',\n },\n inputs.showValueLabels,\n inputs.showLogarithmicScale,\n inputs.xAxisLabel,\n inputs.yAxisLabel,\n inputs.reverseXAxis,\n inputs.xAxisRangeMin,\n inputs.xAxisRangeMax,\n inputs.yAxisRangeMin,\n inputs.yAxisRangeMax,\n inputs.maxResults,\n ],\n events: [\n {\n name: 'onPointClick',\n label: 'A point is clicked',\n properties: [\n { name: 'xMeasureValue', label: 'Clicked X measure value', type: 'string' },\n { name: 'yMeasureValue', label: 'Clicked Y measure value', type: 'string' },\n { name: 'pointDimensionValue', label: 'Clicked point dimension value', type: 'string' },\n { name: 'groupByDimensionValue', label: 'Clicked group by value', type: 'string' },\n {\n name: 'pointDimensionTimeRange',\n label: 'Clicked point dimension time range',\n type: 'timeRange',\n },\n {\n name: 'groupByDimensionTimeRange',\n label: 'Clicked group by time range',\n type: 'timeRange',\n },\n { name: 'sizeMeasureValue', label: 'Clicked bubble size value', type: 'string' },\n ],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nexport type BubbleChartProState = Record<string, never>;\n\nconst previewConfig = {\n dataset: previewData.dataset,\n xMeasure: previewData.measure,\n yMeasure: previewData.measureVariant,\n bubbleSizeMeasure: previewData.measure,\n pointDimension: previewData.dimension,\n results: previewData.results2Measures1Dimension,\n bubbleRadiusMin: 3,\n bubbleRadiusMax: 10,\n showLegend: true,\n hideMenu: true,\n};\n\nconst preview = definePreview(Component, previewConfig);\n\nconst loadDataResultsArgs = (\n inputs: Inputs<typeof meta>,\n clientContext?: ThemeClientContext,\n): LoadDataRequest => ({\n limit: inputs.maxResults,\n from: inputs.dataset,\n select: [\n inputs.xMeasure,\n inputs.yMeasure,\n inputs.bubbleSizeMeasure,\n inputs.pointDimension,\n ...(inputs.groupByDimension ? [inputs.groupByDimension] : []),\n ],\n timezone: getClientContextTimezone(clientContext?.timezone),\n});\n\nconst loadDataResults = (\n inputs: Inputs<typeof meta>,\n clientContext: ThemeClientContext,\n): DataResponse => loadData(loadDataResultsArgs(inputs, clientContext));\n\nconst events = {\n onPointClick: (value: BubbleChartProOptionsClickArg) => ({\n xMeasureValue: value.xMeasureValue ?? Value.noFilter(),\n yMeasureValue: value.yMeasureValue ?? Value.noFilter(),\n sizeMeasureValue: value.sizeMeasureValue ?? Value.noFilter(),\n pointDimensionValue: value.pointDimensionValue ?? Value.noFilter(),\n groupByDimensionValue: value.groupByDimensionValue ?? Value.noFilter(),\n }),\n};\n\nconst props = (\n inputs: Inputs<typeof meta>,\n [_state, _setState]: [BubbleChartProState, (state: BubbleChartProState) => void],\n clientContext: ThemeClientContext,\n) => ({\n ...inputs,\n pointColor: inputs.pointColor as string | undefined,\n results: loadDataResults(inputs, clientContext),\n});\n\nexport const bubbleChartPro = {\n Component,\n meta,\n preview,\n previewConfig,\n config: {\n props,\n events,\n },\n results: {\n loadDataArgs: loadDataResultsArgs,\n loadData: loadDataResults,\n },\n} as const;\n"],"names":["getBubbleChartProOptions","xMeasure","yMeasure","sizeMeasure","noValueLabel","bubbleRadiusMax","showPointLabels","theme","themeFormatter","getThemeFormatter","formatValue","measure","value","radiusMax","labelGap","getStyleNumber","labelLineHeight","getBubbleRadius","context","captionOffset","valueOffset","r","getScatterScales","ctx","orig","_a","_value","getBubblePointClickData","point","datasets","data","pointDimension","groupByDimension","rowIdx","_b","row","pointField","getDimensionFieldName","groupField","pointDimensionValue","rawValueToString","groupByDimensionValue","getTimeRangeFromDimensionValue","createBubbleClickHandler","results","onPointClick","elementAtEvent","element","clickData","getBubbleChartProData","props","chartColors","getChartColors","overrideColor","getColor","color","dimensionOrMeasure","index","getDimensionMeasureColor","buildPoint","rowIndex","rawPoint","pointLabel","measureToNullableNumber","i","groupDim","bucket","key","NULL_GROUP_KEY","points","b","firstRowIndex","groupValue","seriesLabel","colorKey","BubbleChartPro","useTheme","i18nSetup","pointColor","showLegend","showTooltips","showValueLabels","showLogarithmicScale","xAxisRangeMin","xAxisRangeMax","yAxisRangeMin","yAxisRangeMax","reverseXAxis","bubbleRadiusMin","hideMenu","title","description","tooltip","xAxisLabel","yAxisLabel","resolveI18nProps","i18n","chartData","handleClick","chartOptions","mergician","jsx","ChartCard","BubbleChart","meta","inputs","subInputs","previewConfig","previewData","preview","definePreview","Component","loadDataResultsArgs","clientContext","getClientContextTimezone","loadDataResults","loadData","events","Value","_state","_setState","bubbleChartPro"],"mappings":"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"}
@@ -1,12 +1,12 @@
1
- import { y as A, W as Q, X as $, j as L, Y as ee, Z as ae, V, l as M } from "./index-8hrCrGw9.js";
1
+ import { y as A, _ as Y, $ as Z, j as L, a0 as ee, a1 as ae, V, l as M } from "./index-7D6uMJ-C.js";
2
2
  import { useTheme as oe, definePreview as te } from "@embeddable.com/react";
3
3
  import { a as se, r as ne, i as ie } from "./component.utils-Dua9clQJ.js";
4
- import { C as le } from "./ChartCard-CatiYbl-.js";
5
- import { g as re } from "./dimension.utils-BRQVdJX8.js";
4
+ import { C as le } from "./ChartCard-DXg1i7Y2.js";
5
+ import { g as re } from "./dimension.utils-DlzeRFgr.js";
6
6
  import { useState as de, useRef as me, useCallback as ce, useEffect as I } from "react";
7
- import { g as ge, a as ue } from "./tables.utils-BCO7ztkc.js";
8
- import { i as t, s as S, g as De } from "./component.inputs.constants-CIEx8GcX.js";
9
- import { p as f } from "./preview.data.constants-CyGLsdjH.js";
7
+ import { g as ge, a as ue } from "./tables.utils-FQtNWonG.js";
8
+ import { i as t, s as S, g as De } from "./component.inputs.constants-ByMVK7Vv.js";
9
+ import { p as f } from "./preview.data.constants-BSjhK_tx.js";
10
10
  const fe = A("--em-tablechart-cell-height", "2.5rem"), he = A("--em-tablechart-cell-height", "2.5rem"), pe = A("--em-tablechart-pagination-height", "3rem");
11
11
  let j;
12
12
  const v = (e) => {
@@ -24,8 +24,8 @@ const v = (e) => {
24
24
  state: g,
25
25
  setState: w,
26
26
  onRowClicked: P
27
- } = e, U = ge({ dimensionsAndMeasures: r, displayNullAs: q }, a), k = (s == null ? void 0 : s.data) || [], W = ue({ rows: k, clickDimension: b }), R = me(null), { height: X } = Q(R), D = $({
28
- availableHeight: X,
27
+ } = e, U = ge({ dimensionsAndMeasures: r, displayNullAs: q }, a), k = (s == null ? void 0 : s.data) || [], $ = ue({ rows: k, clickDimension: b }), R = me(null), { height: J } = Y(R), D = Z({
28
+ availableHeight: J,
29
29
  headerHeight: fe,
30
30
  rowHeight: he,
31
31
  footerHeight: pe
@@ -37,7 +37,7 @@ const v = (e) => {
37
37
  }));
38
38
  },
39
39
  [w]
40
- ), Y = (d) => {
40
+ ), K = (d) => {
41
41
  o(!0), c({ isLoadingDownloadData: !0 }), j = (u) => d({
42
42
  title: i,
43
43
  data: u,
@@ -45,14 +45,14 @@ const v = (e) => {
45
45
  containerRef: R,
46
46
  theme: a
47
47
  });
48
- }, Z = (d) => {
48
+ }, Q = (d) => {
49
49
  var x;
50
50
  if (!P || !b) return;
51
- const u = (x = k[d]) == null ? void 0 : x[b.name], K = re({
51
+ const u = (x = k[d]) == null ? void 0 : x[b.name], X = re({
52
52
  value: u ?? void 0,
53
53
  dimension: b
54
54
  });
55
- P({ dimensionValue: u, dimensionTimeRange: K });
55
+ P({ dimensionValue: u, dimensionTimeRange: X });
56
56
  };
57
57
  I(() => {
58
58
  D && c({ pageSize: D });
@@ -63,7 +63,7 @@ const v = (e) => {
63
63
  j(m.data), o(!1), c({ isLoadingDownloadData: !1 });
64
64
  }
65
65
  }, [n, m, c]);
66
- const J = (d) => {
66
+ const W = (d) => {
67
67
  c({ sort: d });
68
68
  }, y = (g == null ? void 0 : g.page) ?? 0;
69
69
  return /* @__PURE__ */ L.jsx(
@@ -76,14 +76,14 @@ const v = (e) => {
76
76
  data: s,
77
77
  dimensionsAndMeasures: r,
78
78
  errorMessage: s == null ? void 0 : s.error,
79
- onCustomDownload: Y,
79
+ onCustomDownload: K,
80
80
  hideMenu: p,
81
81
  children: /* @__PURE__ */ L.jsx(
82
82
  ee,
83
83
  {
84
- onRowIndexClick: Z,
84
+ onRowIndexClick: Q,
85
85
  headers: U,
86
- rows: W,
86
+ rows: $,
87
87
  showIndex: B,
88
88
  page: y,
89
89
  pageSize: D,
@@ -93,7 +93,7 @@ const v = (e) => {
93
93
  }),
94
94
  total: l == null ? void 0 : l.total,
95
95
  sort: g == null ? void 0 : g.sort,
96
- onSortChange: J,
96
+ onSortChange: W,
97
97
  onPageChange: (d) => c({ page: d })
98
98
  }
99
99
  )
@@ -187,13 +187,13 @@ const H = {
187
187
  direction: De(e.sortDirection) ?? "asc"
188
188
  } : void 0,
189
189
  isLoadingDownloadData: !1
190
- }), O = (e, a, n, o, i) => ({
190
+ }), _ = (e, a, n, o, i) => ({
191
191
  from: e.dataset,
192
192
  select: i,
193
193
  offset: a * n,
194
194
  limit: n,
195
195
  orderBy: o
196
- }), _ = (e, a, n, o, i) => M(O(e, a, n, o, i)), E = (e, a) => ({
196
+ }), O = (e, a, n, o, i) => M(_(e, a, n, o, i)), E = (e, a) => ({
197
197
  from: e.dataset,
198
198
  select: a,
199
199
  offset: 0,
@@ -230,7 +230,7 @@ const H = {
230
230
  ...e,
231
231
  state: o,
232
232
  setState: n,
233
- results: o.pageSize ? _(
233
+ results: o.pageSize ? O(
234
234
  e,
235
235
  o.page,
236
236
  o.pageSize,
@@ -250,8 +250,8 @@ const H = {
250
250
  events: Re
251
251
  },
252
252
  results: {
253
- loadDataArgs: O,
254
- loadData: _
253
+ loadDataArgs: _,
254
+ loadData: O
255
255
  },
256
256
  totalResults: {
257
257
  loadDataArgs: E,
@@ -267,4 +267,4 @@ export {
267
267
  Ve as i,
268
268
  Ie as t
269
269
  };
270
- //# sourceMappingURL=definition-B27fLC1x.js.map
270
+ //# sourceMappingURL=definition-pF0N3U_N.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"definition-B27fLC1x.js","sources":["../src/components/charts/tables/TableChartPaginated/index.tsx","../src/components/charts/tables/TableChartPaginated/definition.ts"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { i18n, i18nSetup } from '../../../../theme/i18n/i18n';\nimport { ChartCard, ChartCardHeaderProps } from '../../shared/ChartCard/ChartCard';\nimport { resolveI18nProps } from '../../../component.utils';\nimport {\n DataResponse,\n Dimension,\n DimensionOrMeasure,\n OrderDirection,\n TimeRange,\n} from '@embeddable.com/core';\nimport { getTimeRangeFromDimensionValue } from '../../../utils/dimension.utils';\nimport {\n getStyleNumber,\n getTableTotalPages,\n TablePaginated,\n useTableGetRowsPerPage,\n useResizeObserver,\n TableSort,\n} from '@embeddable.com/remarkable-ui';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { getTableHeaders, getTableRows } from '../tables.utils';\nimport { ChartCardMenuOptionOnClickProps } from '../../../../theme/defaults/defaults.ChartCardMenu.constants';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nconst headerHeight = getStyleNumber('--em-tablechart-cell-height', '2.5rem') as number;\nconst rowHeight = getStyleNumber('--em-tablechart-cell-height', '2.5rem') as number;\nconst footerHeight = getStyleNumber('--em-tablechart-pagination-height', '3rem') as number;\n\nlet downloadData: (data: DataResponse['data']) => void;\n\nexport type TableChartPaginatedProOnRowClickArg = {\n dimensionValue: string | null;\n dimensionTimeRange: TimeRange | undefined;\n};\nexport type TableChartPaginatedProState = {\n page: number;\n pageSize?: number;\n sort?: { id: string; direction: OrderDirection } | undefined;\n isLoadingDownloadData: boolean;\n};\n\nexport type TableChartPaginatedProProps = {\n allResults?: DataResponse;\n clickDimension?: Dimension;\n\n dimensionsAndMeasures: DimensionOrMeasure[];\n displayNullAs?: string;\n results: DataResponse;\n showIndex?: boolean;\n state?: TableChartPaginatedProState;\n\n totalResults?: DataResponse;\n onRowClicked?: (rowDimensionValue: TableChartPaginatedProOnRowClickArg) => void;\n setState?: React.Dispatch<React.SetStateAction<TableChartPaginatedProState>>;\n} & ChartCardHeaderProps;\n\nconst TableChartPaginatedPro = (props: TableChartPaginatedProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const [isDownloadingData, setIsDownloadingData] = useState(false);\n\n const { title, description, tooltip } = resolveI18nProps(props);\n const {\n hideMenu,\n totalResults,\n results,\n allResults,\n dimensionsAndMeasures,\n displayNullAs,\n showIndex,\n clickDimension,\n state,\n setState,\n onRowClicked,\n } = props;\n\n const headers = getTableHeaders({ dimensionsAndMeasures, displayNullAs }, theme);\n const rows = results?.data || [];\n const tableRows = getTableRows({ rows, clickDimension });\n const cardContentRef = useRef<HTMLDivElement>(null);\n const { height } = useResizeObserver(cardContentRef);\n const pageSize = useTableGetRowsPerPage({\n availableHeight: height,\n headerHeight,\n rowHeight,\n footerHeight,\n });\n\n // Stable updater for embeddable state\n const handleUpdateEmbeddableState = useCallback(\n (newState: Partial<TableChartPaginatedProState>) => {\n setState?.((prevState) => ({\n ...prevState,\n ...newState,\n }));\n },\n [setState],\n );\n\n const handleCustomDownload = (onDownload: (props: ChartCardMenuOptionOnClickProps) => void) => {\n setIsDownloadingData(true);\n handleUpdateEmbeddableState({ isLoadingDownloadData: true });\n\n downloadData = (data: DataResponse['data']) =>\n onDownload({\n title,\n data,\n dimensionsAndMeasures,\n containerRef: cardContentRef,\n theme,\n });\n };\n\n const handleRowIndexClick = (rowIndex: number) => {\n if (!onRowClicked || !clickDimension) return;\n\n const dimensionValue = rows[rowIndex]?.[clickDimension.name];\n const dimensionTimeRange = getTimeRangeFromDimensionValue({\n value: dimensionValue ?? undefined,\n dimension: clickDimension,\n });\n\n onRowClicked({ dimensionValue, dimensionTimeRange });\n };\n\n // Sync page size changes to embeddable state\n useEffect(() => {\n if (pageSize) {\n handleUpdateEmbeddableState({ pageSize });\n }\n }, [pageSize, handleUpdateEmbeddableState]);\n\n // Handle data download when allResults is ready\n useEffect(() => {\n if (isDownloadingData) {\n if (!allResults || allResults.isLoading) {\n // Loading data to download\n return;\n }\n\n downloadData(allResults.data);\n setIsDownloadingData(false);\n handleUpdateEmbeddableState({ isLoadingDownloadData: false });\n }\n }, [isDownloadingData, allResults, handleUpdateEmbeddableState]);\n\n const handleSortChange = (newSort: TableSort<any> | undefined) => {\n handleUpdateEmbeddableState({ sort: newSort as TableChartPaginatedProState['sort'] });\n };\n\n const currentPage = state?.page ?? 0;\n return (\n <ChartCard\n ref={cardContentRef}\n title={title}\n description={description}\n tooltip={tooltip}\n data={results}\n dimensionsAndMeasures={dimensionsAndMeasures}\n errorMessage={results?.error}\n onCustomDownload={handleCustomDownload}\n hideMenu={hideMenu}\n >\n <TablePaginated\n onRowIndexClick={handleRowIndexClick}\n headers={headers}\n rows={tableRows}\n showIndex={showIndex}\n page={currentPage}\n pageSize={pageSize}\n paginationLabel={i18n.t('charts.tablePaginated.pagination', {\n page: currentPage + 1,\n totalPages: getTableTotalPages(totalResults?.total, pageSize) ?? '?',\n })}\n total={totalResults?.total}\n sort={state?.sort}\n onSortChange={handleSortChange}\n onPageChange={(newPage) => handleUpdateEmbeddableState({ page: newPage })}\n />\n </ChartCard>\n );\n};\n\nexport default TableChartPaginatedPro;\n","import {\n DataResponse,\n LoadDataRequest,\n OrderBy,\n OrderDirection,\n Value,\n loadData,\n} from '@embeddable.com/core';\nimport { definePreview, EmbeddedComponentMeta, Inputs } from '@embeddable.com/react';\nimport TablePaginatedChart, {\n TableChartPaginatedProOnRowClickArg,\n TableChartPaginatedProState,\n} from './index';\nimport { inputs } from '../../../component.inputs.constants';\nimport { getSortDirectionValue } from '../../../types/SortDirection.type.emb';\nimport { subInputs } from '../../../component.subinputs.constants';\nimport { previewData } from '../../../preview.data.constants';\n\nconst meta = {\n name: 'TableChartPaginated',\n label: 'Table Chart - Paginated',\n category: 'Table Charts',\n inputs: [\n { ...inputs.dataset, config: { hideSort: true } },\n {\n ...inputs.dimensionsAndMeasures,\n label: 'Columns',\n inputs: [\n ...inputs.dimensionsAndMeasures.inputs,\n subInputs.width,\n subInputs.align,\n subInputs.tableCellStyle,\n ],\n },\n inputs.title,\n inputs.description,\n inputs.tooltip,\n {\n ...inputs.boolean,\n name: 'showIndex',\n label: 'Show index column',\n defaultValue: true,\n category: 'Component Settings',\n },\n inputs.displayNullAs,\n { ...inputs.maxResults, label: 'Max results to download' },\n {\n ...inputs.dimensionSimple,\n label: 'Dimension to set on click',\n name: 'clickDimension',\n category: 'Data Mapping for Interactions',\n required: false,\n },\n {\n ...inputs.sortDimensionOrMeasure,\n name: 'sortColumn',\n label: 'Default sort column',\n category: 'Component Settings',\n },\n { ...inputs.sortDirection, label: 'Default sort direction', category: 'Component Settings' },\n ],\n events: [\n {\n name: 'onRowClicked',\n label: 'A row is clicked',\n properties: [\n {\n name: 'rowDimensionValue',\n label: 'Clicked row dimension value',\n type: 'string',\n },\n {\n name: 'rowDimensionTimeRange',\n label: 'Clicked row dimension time range',\n type: 'timeRange',\n },\n ],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nconst previewMaxResults = 3;\n\nconst previewConfig = {\n dimensionsAndMeasures: [previewData.dimension, previewData.dimensionGroup, previewData.measure],\n results: {\n ...previewData.results1Measure2Dimensions,\n data: previewData.results1Measure2Dimensions.data?.slice(0, previewMaxResults),\n },\n totalResults: { data: [], total: previewMaxResults, isLoading: false },\n state: {\n page: 0,\n pageSize: previewMaxResults,\n isLoadingDownloadData: false,\n hideMenu: true,\n },\n hideMenu: true,\n};\n\nconst preview = definePreview(TablePaginatedChart, previewConfig);\n\nexport const defaultTableChartPaginatedState = (\n inputs?: Inputs<typeof meta>,\n): TableChartPaginatedProState => ({\n page: 0,\n pageSize: undefined,\n sort: inputs?.sortColumn\n ? {\n id: inputs.sortColumn.name,\n direction: getSortDirectionValue(inputs.sortDirection as OrderDirection) ?? 'asc',\n }\n : undefined,\n isLoadingDownloadData: false,\n});\n\nconst loadDataResultsArgs = (\n inputs: Inputs<typeof meta>,\n page: number,\n pageSize: number,\n orderBy: OrderBy[],\n dimensionsAndMeasuresToLoad: Parameters<typeof loadData>[0]['select'],\n): LoadDataRequest => ({\n from: inputs.dataset,\n select: dimensionsAndMeasuresToLoad,\n offset: page * pageSize,\n limit: pageSize,\n orderBy,\n});\n\nconst loadDataResults = (\n inputs: Inputs<typeof meta>,\n page: number,\n pageSize: number,\n orderBy: OrderBy[],\n dimensionsAndMeasuresToLoad: Parameters<typeof loadData>[0]['select'],\n): DataResponse =>\n loadData(loadDataResultsArgs(inputs, page, pageSize, orderBy, dimensionsAndMeasuresToLoad));\n\nconst loadDataTotalResultsArgs = (\n inputs: Inputs<typeof meta>,\n dimensionsAndMeasuresToLoad: Parameters<typeof loadData>[0]['select'],\n): LoadDataRequest => ({\n from: inputs.dataset,\n select: dimensionsAndMeasuresToLoad,\n offset: 0,\n limit: 0,\n countRows: true,\n});\n\nconst loadDataTotalResults = (\n inputs: Inputs<typeof meta>,\n dimensionsAndMeasuresToLoad: Parameters<typeof loadData>[0]['select'],\n): DataResponse => loadData(loadDataTotalResultsArgs(inputs, dimensionsAndMeasuresToLoad));\n\nconst loadDataAllResultsArgs = (\n inputs: Inputs<typeof meta>,\n orderBy: OrderBy[],\n): LoadDataRequest => ({\n from: inputs.dataset,\n select: inputs.dimensionsAndMeasures,\n orderBy,\n limit: inputs.maxResults,\n});\n\nconst loadDataAllResults = (inputs: Inputs<typeof meta>, orderBy: OrderBy[]): DataResponse =>\n loadData(loadDataAllResultsArgs(inputs, orderBy));\n\nconst events = {\n onRowClicked: (value: TableChartPaginatedProOnRowClickArg) => ({\n rowDimensionValue: value.dimensionValue ?? Value.noFilter(),\n rowDimensionTimeRange: value.dimensionTimeRange ?? Value.noFilter(),\n }),\n};\n\nconst props = (\n inputs: Inputs<typeof meta>,\n [state, setState]: [TableChartPaginatedProState, (state: TableChartPaginatedProState) => void],\n) => {\n const mergedState: TableChartPaginatedProState = {\n ...defaultTableChartPaginatedState(inputs),\n ...state,\n };\n\n const sortColumn =\n inputs.dimensionsAndMeasures.find((x) => x.name === mergedState.sort?.id) ??\n (inputs.sortColumn?.name === mergedState.sort?.id ? inputs.sortColumn : undefined);\n const orderBy: OrderBy[] =\n sortColumn && mergedState.sort\n ? [{ property: sortColumn, direction: mergedState.sort.direction }]\n : [];\n\n const hasClickDimension = inputs.dimensionsAndMeasures.some(\n (col) => col.name === inputs.clickDimension?.name,\n );\n\n const dimensionsAndMeasuresToLoad = [\n ...inputs.dimensionsAndMeasures,\n ...(inputs.clickDimension && !hasClickDimension ? [inputs.clickDimension] : []),\n ];\n\n return {\n ...inputs,\n state: mergedState,\n setState,\n results: mergedState.pageSize\n ? loadDataResults(\n inputs,\n mergedState.page,\n mergedState.pageSize,\n orderBy,\n dimensionsAndMeasuresToLoad,\n )\n : undefined,\n totalResults: loadDataTotalResults(inputs, dimensionsAndMeasuresToLoad),\n allResults: mergedState.isLoadingDownloadData ? loadDataAllResults(inputs, orderBy) : undefined,\n };\n};\n\nexport const tableChartPaginated = {\n Component: TablePaginatedChart,\n meta,\n preview,\n previewConfig,\n config: {\n props,\n events,\n },\n results: {\n loadDataArgs: loadDataResultsArgs,\n loadData: loadDataResults,\n },\n totalResults: {\n loadDataArgs: loadDataTotalResultsArgs,\n loadData: loadDataTotalResults,\n },\n allResults: {\n loadDataArgs: loadDataAllResultsArgs,\n loadData: loadDataAllResults,\n },\n} as const;\n"],"names":["headerHeight","getStyleNumber","rowHeight","footerHeight","downloadData","TableChartPaginatedPro","props","theme","useTheme","i18nSetup","isDownloadingData","setIsDownloadingData","useState","title","description","tooltip","resolveI18nProps","hideMenu","totalResults","results","allResults","dimensionsAndMeasures","displayNullAs","showIndex","clickDimension","state","setState","onRowClicked","headers","getTableHeaders","rows","tableRows","getTableRows","cardContentRef","useRef","height","useResizeObserver","pageSize","useTableGetRowsPerPage","handleUpdateEmbeddableState","useCallback","newState","prevState","handleCustomDownload","onDownload","data","handleRowIndexClick","rowIndex","dimensionValue","_a","dimensionTimeRange","getTimeRangeFromDimensionValue","useEffect","handleSortChange","newSort","currentPage","jsx","ChartCard","TablePaginated","i18n","getTableTotalPages","newPage","meta","inputs","subInputs","previewMaxResults","previewConfig","previewData","preview","definePreview","TablePaginatedChart","defaultTableChartPaginatedState","getSortDirectionValue","loadDataResultsArgs","page","orderBy","dimensionsAndMeasuresToLoad","loadDataResults","loadData","loadDataTotalResultsArgs","loadDataTotalResults","loadDataAllResultsArgs","loadDataAllResults","events","value","Value","mergedState","sortColumn","x","_b","hasClickDimension","col","tableChartPaginated"],"mappings":"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"}
1
+ {"version":3,"file":"definition-pF0N3U_N.js","sources":["../src/components/charts/tables/TableChartPaginated/index.tsx","../src/components/charts/tables/TableChartPaginated/definition.ts"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { i18n, i18nSetup } from '../../../../theme/i18n/i18n';\nimport { ChartCard, ChartCardHeaderProps } from '../../shared/ChartCard/ChartCard';\nimport { resolveI18nProps } from '../../../component.utils';\nimport {\n DataResponse,\n Dimension,\n DimensionOrMeasure,\n OrderDirection,\n TimeRange,\n} from '@embeddable.com/core';\nimport { getTimeRangeFromDimensionValue } from '../../../utils/dimension.utils';\nimport {\n getStyleNumber,\n getTableTotalPages,\n TablePaginated,\n useTableGetRowsPerPage,\n useResizeObserver,\n TableSort,\n} from '@embeddable.com/remarkable-ui';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { getTableHeaders, getTableRows } from '../tables.utils';\nimport { ChartCardMenuOptionOnClickProps } from '../../../../theme/defaults/defaults.ChartCardMenu.constants';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nconst headerHeight = getStyleNumber('--em-tablechart-cell-height', '2.5rem') as number;\nconst rowHeight = getStyleNumber('--em-tablechart-cell-height', '2.5rem') as number;\nconst footerHeight = getStyleNumber('--em-tablechart-pagination-height', '3rem') as number;\n\nlet downloadData: (data: DataResponse['data']) => void;\n\nexport type TableChartPaginatedProOnRowClickArg = {\n dimensionValue: string | null;\n dimensionTimeRange: TimeRange | undefined;\n};\nexport type TableChartPaginatedProState = {\n page: number;\n pageSize?: number;\n sort?: { id: string; direction: OrderDirection } | undefined;\n isLoadingDownloadData: boolean;\n};\n\nexport type TableChartPaginatedProProps = {\n allResults?: DataResponse;\n clickDimension?: Dimension;\n\n dimensionsAndMeasures: DimensionOrMeasure[];\n displayNullAs?: string;\n results: DataResponse;\n showIndex?: boolean;\n state?: TableChartPaginatedProState;\n\n totalResults?: DataResponse;\n onRowClicked?: (rowDimensionValue: TableChartPaginatedProOnRowClickArg) => void;\n setState?: React.Dispatch<React.SetStateAction<TableChartPaginatedProState>>;\n} & ChartCardHeaderProps;\n\nconst TableChartPaginatedPro = (props: TableChartPaginatedProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const [isDownloadingData, setIsDownloadingData] = useState(false);\n\n const { title, description, tooltip } = resolveI18nProps(props);\n const {\n hideMenu,\n totalResults,\n results,\n allResults,\n dimensionsAndMeasures,\n displayNullAs,\n showIndex,\n clickDimension,\n state,\n setState,\n onRowClicked,\n } = props;\n\n const headers = getTableHeaders({ dimensionsAndMeasures, displayNullAs }, theme);\n const rows = results?.data || [];\n const tableRows = getTableRows({ rows, clickDimension });\n const cardContentRef = useRef<HTMLDivElement>(null);\n const { height } = useResizeObserver(cardContentRef);\n const pageSize = useTableGetRowsPerPage({\n availableHeight: height,\n headerHeight,\n rowHeight,\n footerHeight,\n });\n\n // Stable updater for embeddable state\n const handleUpdateEmbeddableState = useCallback(\n (newState: Partial<TableChartPaginatedProState>) => {\n setState?.((prevState) => ({\n ...prevState,\n ...newState,\n }));\n },\n [setState],\n );\n\n const handleCustomDownload = (onDownload: (props: ChartCardMenuOptionOnClickProps) => void) => {\n setIsDownloadingData(true);\n handleUpdateEmbeddableState({ isLoadingDownloadData: true });\n\n downloadData = (data: DataResponse['data']) =>\n onDownload({\n title,\n data,\n dimensionsAndMeasures,\n containerRef: cardContentRef,\n theme,\n });\n };\n\n const handleRowIndexClick = (rowIndex: number) => {\n if (!onRowClicked || !clickDimension) return;\n\n const dimensionValue = rows[rowIndex]?.[clickDimension.name];\n const dimensionTimeRange = getTimeRangeFromDimensionValue({\n value: dimensionValue ?? undefined,\n dimension: clickDimension,\n });\n\n onRowClicked({ dimensionValue, dimensionTimeRange });\n };\n\n // Sync page size changes to embeddable state\n useEffect(() => {\n if (pageSize) {\n handleUpdateEmbeddableState({ pageSize });\n }\n }, [pageSize, handleUpdateEmbeddableState]);\n\n // Handle data download when allResults is ready\n useEffect(() => {\n if (isDownloadingData) {\n if (!allResults || allResults.isLoading) {\n // Loading data to download\n return;\n }\n\n downloadData(allResults.data);\n setIsDownloadingData(false);\n handleUpdateEmbeddableState({ isLoadingDownloadData: false });\n }\n }, [isDownloadingData, allResults, handleUpdateEmbeddableState]);\n\n const handleSortChange = (newSort: TableSort<any> | undefined) => {\n handleUpdateEmbeddableState({ sort: newSort as TableChartPaginatedProState['sort'] });\n };\n\n const currentPage = state?.page ?? 0;\n return (\n <ChartCard\n ref={cardContentRef}\n title={title}\n description={description}\n tooltip={tooltip}\n data={results}\n dimensionsAndMeasures={dimensionsAndMeasures}\n errorMessage={results?.error}\n onCustomDownload={handleCustomDownload}\n hideMenu={hideMenu}\n >\n <TablePaginated\n onRowIndexClick={handleRowIndexClick}\n headers={headers}\n rows={tableRows}\n showIndex={showIndex}\n page={currentPage}\n pageSize={pageSize}\n paginationLabel={i18n.t('charts.tablePaginated.pagination', {\n page: currentPage + 1,\n totalPages: getTableTotalPages(totalResults?.total, pageSize) ?? '?',\n })}\n total={totalResults?.total}\n sort={state?.sort}\n onSortChange={handleSortChange}\n onPageChange={(newPage) => handleUpdateEmbeddableState({ page: newPage })}\n />\n </ChartCard>\n );\n};\n\nexport default TableChartPaginatedPro;\n","import {\n DataResponse,\n LoadDataRequest,\n OrderBy,\n OrderDirection,\n Value,\n loadData,\n} from '@embeddable.com/core';\nimport { definePreview, EmbeddedComponentMeta, Inputs } from '@embeddable.com/react';\nimport TablePaginatedChart, {\n TableChartPaginatedProOnRowClickArg,\n TableChartPaginatedProState,\n} from './index';\nimport { inputs } from '../../../component.inputs.constants';\nimport { getSortDirectionValue } from '../../../types/SortDirection.type.emb';\nimport { subInputs } from '../../../component.subinputs.constants';\nimport { previewData } from '../../../preview.data.constants';\n\nconst meta = {\n name: 'TableChartPaginated',\n label: 'Table Chart - Paginated',\n category: 'Table Charts',\n inputs: [\n { ...inputs.dataset, config: { hideSort: true } },\n {\n ...inputs.dimensionsAndMeasures,\n label: 'Columns',\n inputs: [\n ...inputs.dimensionsAndMeasures.inputs,\n subInputs.width,\n subInputs.align,\n subInputs.tableCellStyle,\n ],\n },\n inputs.title,\n inputs.description,\n inputs.tooltip,\n {\n ...inputs.boolean,\n name: 'showIndex',\n label: 'Show index column',\n defaultValue: true,\n category: 'Component Settings',\n },\n inputs.displayNullAs,\n { ...inputs.maxResults, label: 'Max results to download' },\n {\n ...inputs.dimensionSimple,\n label: 'Dimension to set on click',\n name: 'clickDimension',\n category: 'Data Mapping for Interactions',\n required: false,\n },\n {\n ...inputs.sortDimensionOrMeasure,\n name: 'sortColumn',\n label: 'Default sort column',\n category: 'Component Settings',\n },\n { ...inputs.sortDirection, label: 'Default sort direction', category: 'Component Settings' },\n ],\n events: [\n {\n name: 'onRowClicked',\n label: 'A row is clicked',\n properties: [\n {\n name: 'rowDimensionValue',\n label: 'Clicked row dimension value',\n type: 'string',\n },\n {\n name: 'rowDimensionTimeRange',\n label: 'Clicked row dimension time range',\n type: 'timeRange',\n },\n ],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nconst previewMaxResults = 3;\n\nconst previewConfig = {\n dimensionsAndMeasures: [previewData.dimension, previewData.dimensionGroup, previewData.measure],\n results: {\n ...previewData.results1Measure2Dimensions,\n data: previewData.results1Measure2Dimensions.data?.slice(0, previewMaxResults),\n },\n totalResults: { data: [], total: previewMaxResults, isLoading: false },\n state: {\n page: 0,\n pageSize: previewMaxResults,\n isLoadingDownloadData: false,\n hideMenu: true,\n },\n hideMenu: true,\n};\n\nconst preview = definePreview(TablePaginatedChart, previewConfig);\n\nexport const defaultTableChartPaginatedState = (\n inputs?: Inputs<typeof meta>,\n): TableChartPaginatedProState => ({\n page: 0,\n pageSize: undefined,\n sort: inputs?.sortColumn\n ? {\n id: inputs.sortColumn.name,\n direction: getSortDirectionValue(inputs.sortDirection as OrderDirection) ?? 'asc',\n }\n : undefined,\n isLoadingDownloadData: false,\n});\n\nconst loadDataResultsArgs = (\n inputs: Inputs<typeof meta>,\n page: number,\n pageSize: number,\n orderBy: OrderBy[],\n dimensionsAndMeasuresToLoad: Parameters<typeof loadData>[0]['select'],\n): LoadDataRequest => ({\n from: inputs.dataset,\n select: dimensionsAndMeasuresToLoad,\n offset: page * pageSize,\n limit: pageSize,\n orderBy,\n});\n\nconst loadDataResults = (\n inputs: Inputs<typeof meta>,\n page: number,\n pageSize: number,\n orderBy: OrderBy[],\n dimensionsAndMeasuresToLoad: Parameters<typeof loadData>[0]['select'],\n): DataResponse =>\n loadData(loadDataResultsArgs(inputs, page, pageSize, orderBy, dimensionsAndMeasuresToLoad));\n\nconst loadDataTotalResultsArgs = (\n inputs: Inputs<typeof meta>,\n dimensionsAndMeasuresToLoad: Parameters<typeof loadData>[0]['select'],\n): LoadDataRequest => ({\n from: inputs.dataset,\n select: dimensionsAndMeasuresToLoad,\n offset: 0,\n limit: 0,\n countRows: true,\n});\n\nconst loadDataTotalResults = (\n inputs: Inputs<typeof meta>,\n dimensionsAndMeasuresToLoad: Parameters<typeof loadData>[0]['select'],\n): DataResponse => loadData(loadDataTotalResultsArgs(inputs, dimensionsAndMeasuresToLoad));\n\nconst loadDataAllResultsArgs = (\n inputs: Inputs<typeof meta>,\n orderBy: OrderBy[],\n): LoadDataRequest => ({\n from: inputs.dataset,\n select: inputs.dimensionsAndMeasures,\n orderBy,\n limit: inputs.maxResults,\n});\n\nconst loadDataAllResults = (inputs: Inputs<typeof meta>, orderBy: OrderBy[]): DataResponse =>\n loadData(loadDataAllResultsArgs(inputs, orderBy));\n\nconst events = {\n onRowClicked: (value: TableChartPaginatedProOnRowClickArg) => ({\n rowDimensionValue: value.dimensionValue ?? Value.noFilter(),\n rowDimensionTimeRange: value.dimensionTimeRange ?? Value.noFilter(),\n }),\n};\n\nconst props = (\n inputs: Inputs<typeof meta>,\n [state, setState]: [TableChartPaginatedProState, (state: TableChartPaginatedProState) => void],\n) => {\n const mergedState: TableChartPaginatedProState = {\n ...defaultTableChartPaginatedState(inputs),\n ...state,\n };\n\n const sortColumn =\n inputs.dimensionsAndMeasures.find((x) => x.name === mergedState.sort?.id) ??\n (inputs.sortColumn?.name === mergedState.sort?.id ? inputs.sortColumn : undefined);\n const orderBy: OrderBy[] =\n sortColumn && mergedState.sort\n ? [{ property: sortColumn, direction: mergedState.sort.direction }]\n : [];\n\n const hasClickDimension = inputs.dimensionsAndMeasures.some(\n (col) => col.name === inputs.clickDimension?.name,\n );\n\n const dimensionsAndMeasuresToLoad = [\n ...inputs.dimensionsAndMeasures,\n ...(inputs.clickDimension && !hasClickDimension ? [inputs.clickDimension] : []),\n ];\n\n return {\n ...inputs,\n state: mergedState,\n setState,\n results: mergedState.pageSize\n ? loadDataResults(\n inputs,\n mergedState.page,\n mergedState.pageSize,\n orderBy,\n dimensionsAndMeasuresToLoad,\n )\n : undefined,\n totalResults: loadDataTotalResults(inputs, dimensionsAndMeasuresToLoad),\n allResults: mergedState.isLoadingDownloadData ? loadDataAllResults(inputs, orderBy) : undefined,\n };\n};\n\nexport const tableChartPaginated = {\n Component: TablePaginatedChart,\n meta,\n preview,\n previewConfig,\n config: {\n props,\n events,\n },\n results: {\n loadDataArgs: loadDataResultsArgs,\n loadData: loadDataResults,\n },\n totalResults: {\n loadDataArgs: loadDataTotalResultsArgs,\n loadData: loadDataTotalResults,\n },\n allResults: {\n loadDataArgs: loadDataAllResultsArgs,\n loadData: loadDataAllResults,\n },\n} as const;\n"],"names":["headerHeight","getStyleNumber","rowHeight","footerHeight","downloadData","TableChartPaginatedPro","props","theme","useTheme","i18nSetup","isDownloadingData","setIsDownloadingData","useState","title","description","tooltip","resolveI18nProps","hideMenu","totalResults","results","allResults","dimensionsAndMeasures","displayNullAs","showIndex","clickDimension","state","setState","onRowClicked","headers","getTableHeaders","rows","tableRows","getTableRows","cardContentRef","useRef","height","useResizeObserver","pageSize","useTableGetRowsPerPage","handleUpdateEmbeddableState","useCallback","newState","prevState","handleCustomDownload","onDownload","data","handleRowIndexClick","rowIndex","dimensionValue","_a","dimensionTimeRange","getTimeRangeFromDimensionValue","useEffect","handleSortChange","newSort","currentPage","jsx","ChartCard","TablePaginated","i18n","getTableTotalPages","newPage","meta","inputs","subInputs","previewMaxResults","previewConfig","previewData","preview","definePreview","TablePaginatedChart","defaultTableChartPaginatedState","getSortDirectionValue","loadDataResultsArgs","page","orderBy","dimensionsAndMeasuresToLoad","loadDataResults","loadData","loadDataTotalResultsArgs","loadDataTotalResults","loadDataAllResultsArgs","loadDataAllResults","events","value","Value","mergedState","sortColumn","x","_b","hasClickDimension","col","tableChartPaginated"],"mappings":"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"}