@embeddable.com/remarkable-pro 0.3.3 → 0.3.5

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 (566) hide show
  1. package/dist/AreaChartPro.js +1 -1
  2. package/dist/BarChartDefaultHorizontalPro.js +1 -1
  3. package/dist/BarChartDefaultPro.js +1 -1
  4. package/dist/BarChartGroupedHorizontalPro.js +1 -1
  5. package/dist/BarChartGroupedPro.js +1 -1
  6. package/dist/BarChartStackedHorizontalPro.js +1 -1
  7. package/dist/BarChartStackedPro.js +1 -1
  8. package/dist/BarLineChartPro.js +1 -1
  9. package/dist/BubbleChartPro.js +1 -1
  10. package/dist/{ChartCard-HpSv5cY6.js → ChartCard-Zy5lPApV.js} +36 -36
  11. package/dist/{ChartCard-HpSv5cY6.js.map → ChartCard-Zy5lPApV.js.map} +1 -1
  12. package/dist/{Color.type.emb-DV4JdSJ1.js → Color.type.emb-DE4-dQUK.js} +2 -2
  13. package/dist/{Color.type.emb-DV4JdSJ1.js.map → Color.type.emb-DE4-dQUK.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-Cjvt8w1Q.js → DimensionAndMeasureSingleSelectField-C4qGcB0l.js} +13 -13
  19. package/dist/{DimensionAndMeasureSingleSelectField-Cjvt8w1Q.js.map → DimensionAndMeasureSingleSelectField-C4qGcB0l.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-G99fWjyz.js → EditorCard-DivoetAt.js} +10 -10
  25. package/dist/{EditorCard-G99fWjyz.js.map → EditorCard-DivoetAt.js.map} +1 -1
  26. package/dist/FilterBuilderPro.js +1 -1
  27. package/dist/{GranularitySelectField-DjBne_Oc.js → GranularitySelectField-CTdKK_wT.js} +5 -5
  28. package/dist/{GranularitySelectField-DjBne_Oc.js.map → GranularitySelectField-CTdKK_wT.js.map} +1 -1
  29. package/dist/GranularitySelectFieldPro.js +1 -1
  30. package/dist/HeatMapPro.js +1 -1
  31. package/dist/HorizontalDividerPro.js +1 -1
  32. package/dist/{IconAlertCircle-KfXTNipA.js → IconAlertCircle-cNY-BCjc.js} +2 -2
  33. package/dist/{IconAlertCircle-KfXTNipA.js.map → IconAlertCircle-cNY-BCjc.js.map} +1 -1
  34. package/dist/{IconCalendarFilled-D5PZLEXY.js → IconCalendarFilled-BO9AbeNW.js} +2 -2
  35. package/dist/{IconCalendarFilled-D5PZLEXY.js.map → IconCalendarFilled-BO9AbeNW.js.map} +1 -1
  36. package/dist/KpiChartNumberComparisonPro.js +1 -1
  37. package/dist/KpiChartNumberPro.js +1 -1
  38. package/dist/LineChartComparisonDefaultPro.js +1 -1
  39. package/dist/LineChartComparisonWithKpiTabsPro.js +1 -1
  40. package/dist/LineChartDefaultPro.js +1 -1
  41. package/dist/LineChartGroupedPro.js +1 -1
  42. package/dist/LineChartWithKpiTabsPro.js +1 -1
  43. package/dist/{Markdown.type.emb-Dk3zx_Z_.js → Markdown.type.emb-DdfstJa9.js} +2 -2
  44. package/dist/{Markdown.type.emb-Dk3zx_Z_.js.map → Markdown.type.emb-DdfstJa9.js.map} +1 -1
  45. package/dist/MarkdownEditor.js +3 -3
  46. package/dist/MarkdownPro.js +1 -1
  47. package/dist/MeasureMultiSelectFieldPro.js +1 -1
  48. package/dist/MeasureSingleSelectFieldPro.js +1 -1
  49. package/dist/MultiSelectFieldPro.js +1 -1
  50. package/dist/PieChartPro.js +1 -1
  51. package/dist/PivotTablePro.js +1 -1
  52. package/dist/ScatterChartPro.js +1 -1
  53. package/dist/SingleSelectFieldPro.js +1 -1
  54. package/dist/TableChartPaginated.js +1 -1
  55. package/dist/TableScrollable.js +1 -1
  56. package/dist/TextFieldPro.js +1 -1
  57. package/dist/{af-ZdqBoxvz.js → af-BnPGuyoZ.js} +3 -3
  58. package/dist/{af-ZdqBoxvz.js.map → af-BnPGuyoZ.js.map} +1 -1
  59. package/dist/{am-CXwRMatH.js → am-CTht91gI.js} +3 -3
  60. package/dist/{am-CXwRMatH.js.map → am-CTht91gI.js.map} +1 -1
  61. package/dist/{ar-BJFE7Sef.js → ar-D5oXffSK.js} +3 -3
  62. package/dist/{ar-BJFE7Sef.js.map → ar-D5oXffSK.js.map} +1 -1
  63. package/dist/{az-Dt4sn4aC.js → az-BuBcuMxD.js} +3 -3
  64. package/dist/{az-Dt4sn4aC.js.map → az-BuBcuMxD.js.map} +1 -1
  65. package/dist/{bars.loadData.utils-3UelaqzK.js → bars.loadData.utils--qcznJ8U.js} +4 -4
  66. package/dist/{bars.loadData.utils-3UelaqzK.js.map → bars.loadData.utils--qcznJ8U.js.map} +1 -1
  67. package/dist/bars.utils-EERAVU5z.js +171 -0
  68. package/dist/bars.utils-EERAVU5z.js.map +1 -0
  69. package/dist/{be-DGrUB3zO.js → be-6TDMuRI-.js} +3 -3
  70. package/dist/{be-DGrUB3zO.js.map → be-6TDMuRI-.js.map} +1 -1
  71. package/dist/{bg-COQN-gIK.js → bg-D7EFOpXU.js} +3 -3
  72. package/dist/{bg-COQN-gIK.js.map → bg-D7EFOpXU.js.map} +1 -1
  73. package/dist/{bi-BO2nWiL3.js → bi-DMAheplM.js} +3 -3
  74. package/dist/{bi-BO2nWiL3.js.map → bi-DMAheplM.js.map} +1 -1
  75. package/dist/{bm-CR4eF7bj.js → bm-BiviiOQo.js} +3 -3
  76. package/dist/{bm-CR4eF7bj.js.map → bm-BiviiOQo.js.map} +1 -1
  77. package/dist/{bn-C_fBN8Xp.js → bn-C7hG6XMF.js} +3 -3
  78. package/dist/{bn-C_fBN8Xp.js.map → bn-C7hG6XMF.js.map} +1 -1
  79. package/dist/{bo-BK9OEqED.js → bo-DrDTPraW.js} +3 -3
  80. package/dist/{bo-BK9OEqED.js.map → bo-DrDTPraW.js.map} +1 -1
  81. package/dist/{br-DQKSzpVY.js → br-Bah-lsa8.js} +3 -3
  82. package/dist/{br-DQKSzpVY.js.map → br-Bah-lsa8.js.map} +1 -1
  83. package/dist/{bs-Du7exlVK.js → bs-zyGkjpbD.js} +3 -3
  84. package/dist/{bs-Du7exlVK.js.map → bs-zyGkjpbD.js.map} +1 -1
  85. package/dist/{ca-B1GdPrYy.js → ca-DCjvA_6e.js} +3 -3
  86. package/dist/{ca-B1GdPrYy.js.map → ca-DCjvA_6e.js.map} +1 -1
  87. package/dist/{charts.fillGaps.hooks-CvS5tfFP.js → charts.fillGaps.hooks-BemPBhvC.js} +6 -6
  88. package/dist/{charts.fillGaps.hooks-CvS5tfFP.js.map → charts.fillGaps.hooks-BemPBhvC.js.map} +1 -1
  89. package/dist/charts.utils-DtGWPIVa.js +79 -0
  90. package/dist/charts.utils-DtGWPIVa.js.map +1 -0
  91. package/dist/{component.inputs.constants-DYl-U975.js → component.inputs.constants-DoBT8ykS.js} +16 -16
  92. package/dist/{component.inputs.constants-DYl-U975.js.map → component.inputs.constants-DoBT8ykS.js.map} +1 -1
  93. package/dist/components/charts/bars/BarChartDefaultHorizontalPro/definition.d.ts +1 -1
  94. package/dist/components/charts/bars/BarChartDefaultHorizontalPro/index.d.ts +1 -1
  95. package/dist/components/charts/bars/BarChartDefaultHorizontalPro/index.d.ts.map +1 -1
  96. package/dist/components/charts/bars/BarChartDefaultPro/definition.d.ts +1 -1
  97. package/dist/components/charts/bars/BarChartDefaultPro/index.d.ts +1 -1
  98. package/dist/components/charts/bars/BarChartDefaultPro/index.d.ts.map +1 -1
  99. package/dist/components/charts/bars/BarChartGroupedHorizontalPro/definition.d.ts +1 -1
  100. package/dist/components/charts/bars/BarChartGroupedHorizontalPro/index.d.ts +1 -1
  101. package/dist/components/charts/bars/BarChartGroupedHorizontalPro/index.d.ts.map +1 -1
  102. package/dist/components/charts/bars/BarChartGroupedPro/definition.d.ts +1 -1
  103. package/dist/components/charts/bars/BarChartGroupedPro/index.d.ts +1 -1
  104. package/dist/components/charts/bars/BarChartGroupedPro/index.d.ts.map +1 -1
  105. package/dist/components/charts/bars/BarChartStackedHorizontalPro/definition.d.ts +1 -1
  106. package/dist/components/charts/bars/BarChartStackedHorizontalPro/index.d.ts +1 -1
  107. package/dist/components/charts/bars/BarChartStackedHorizontalPro/index.d.ts.map +1 -1
  108. package/dist/components/charts/bars/BarChartStackedPro/definition.d.ts +1 -1
  109. package/dist/components/charts/bars/BarChartStackedPro/index.d.ts +1 -1
  110. package/dist/components/charts/bars/BarChartStackedPro/index.d.ts.map +1 -1
  111. package/dist/components/charts/bars/bars.utils.d.ts.map +1 -1
  112. package/dist/components/charts/charts.utils.d.ts +1 -1
  113. package/dist/components/charts/charts.utils.d.ts.map +1 -1
  114. package/dist/components/charts/combo/BarLineChartPro/BarLineChartPro.utils.d.ts.map +1 -1
  115. package/dist/components/charts/combo/BarLineChartPro/definition.d.ts +1 -1
  116. package/dist/components/charts/combo/BarLineChartPro/index.d.ts +1 -1
  117. package/dist/components/charts/combo/BarLineChartPro/index.d.ts.map +1 -1
  118. package/dist/components/charts/kpis/KpiChartNumberComparisonPro/definition.d.ts +1 -1
  119. package/dist/components/charts/kpis/KpiChartNumberComparisonPro/index.d.ts +1 -1
  120. package/dist/components/charts/kpis/KpiChartNumberComparisonPro/index.d.ts.map +1 -1
  121. package/dist/components/charts/kpis/KpiChartNumberPro/definition.d.ts +1 -1
  122. package/dist/components/charts/kpis/KpiChartNumberPro/index.d.ts +1 -1
  123. package/dist/components/charts/kpis/KpiChartNumberPro/index.d.ts.map +1 -1
  124. package/dist/components/charts/lines/AreaChartPro/definition.d.ts +1 -1
  125. package/dist/components/charts/lines/AreaChartPro/index.d.ts +1 -1
  126. package/dist/components/charts/lines/AreaChartPro/index.d.ts.map +1 -1
  127. package/dist/components/charts/lines/LineChartComparisonDefaultPro/LineChartComparisonDefaultPro.emb.d.ts +4 -0
  128. package/dist/components/charts/lines/LineChartComparisonDefaultPro/LineChartComparisonDefaultPro.emb.d.ts.map +1 -1
  129. package/dist/components/charts/lines/LineChartComparisonDefaultPro/LineChartComparisonDefaultPro.utils.d.ts.map +1 -1
  130. package/dist/components/charts/lines/LineChartComparisonDefaultPro/definition.d.ts +10 -1
  131. package/dist/components/charts/lines/LineChartComparisonDefaultPro/definition.d.ts.map +1 -1
  132. package/dist/components/charts/lines/LineChartComparisonDefaultPro/index.d.ts +1 -1
  133. package/dist/components/charts/lines/LineChartComparisonDefaultPro/index.d.ts.map +1 -1
  134. package/dist/components/charts/lines/LineChartComparisonWithKpiTabsPro/LineChartComparisonWithKpiTabsPro.emb.d.ts +4 -0
  135. package/dist/components/charts/lines/LineChartComparisonWithKpiTabsPro/LineChartComparisonWithKpiTabsPro.emb.d.ts.map +1 -1
  136. package/dist/components/charts/lines/LineChartComparisonWithKpiTabsPro/definition.d.ts +25 -1
  137. package/dist/components/charts/lines/LineChartComparisonWithKpiTabsPro/definition.d.ts.map +1 -1
  138. package/dist/components/charts/lines/LineChartComparisonWithKpiTabsPro/index.d.ts +1 -1
  139. package/dist/components/charts/lines/LineChartComparisonWithKpiTabsPro/index.d.ts.map +1 -1
  140. package/dist/components/charts/lines/LineChartDefaultPro/definition.d.ts +1 -1
  141. package/dist/components/charts/lines/LineChartDefaultPro/index.d.ts +1 -1
  142. package/dist/components/charts/lines/LineChartDefaultPro/index.d.ts.map +1 -1
  143. package/dist/components/charts/lines/LineChartGroupedPro/definition.d.ts +1 -1
  144. package/dist/components/charts/lines/LineChartGroupedPro/index.d.ts +1 -1
  145. package/dist/components/charts/lines/LineChartGroupedPro/index.d.ts.map +1 -1
  146. package/dist/components/charts/lines/LineChartWithKpiTabsPro/definition.d.ts +1 -1
  147. package/dist/components/charts/lines/LineChartWithKpiTabsPro/index.d.ts +1 -1
  148. package/dist/components/charts/lines/LineChartWithKpiTabsPro/index.d.ts.map +1 -1
  149. package/dist/components/charts/lines/lines.types.d.ts +1 -0
  150. package/dist/components/charts/lines/lines.types.d.ts.map +1 -1
  151. package/dist/components/charts/pies/DonutChartPro/definition.d.ts +1 -1
  152. package/dist/components/charts/pies/DonutChartPro/index.d.ts +1 -1
  153. package/dist/components/charts/pies/DonutChartPro/index.d.ts.map +1 -1
  154. package/dist/components/charts/pies/DonutLabelChartPro/definition.d.ts +1 -1
  155. package/dist/components/charts/pies/DonutLabelChartPro/index.d.ts +1 -1
  156. package/dist/components/charts/pies/DonutLabelChartPro/index.d.ts.map +1 -1
  157. package/dist/components/charts/pies/PieChartPro/definition.d.ts +1 -1
  158. package/dist/components/charts/pies/PieChartPro/index.d.ts +1 -1
  159. package/dist/components/charts/pies/PieChartPro/index.d.ts.map +1 -1
  160. package/dist/components/charts/pies/pies.utils.d.ts.map +1 -1
  161. package/dist/components/charts/scatter/BubbleChartPro/definition.d.ts +1 -1
  162. package/dist/components/charts/scatter/BubbleChartPro/index.d.ts +1 -1
  163. package/dist/components/charts/scatter/BubbleChartPro/index.d.ts.map +1 -1
  164. package/dist/components/charts/scatter/ScatterChartPro/definition.d.ts +1 -1
  165. package/dist/components/charts/scatter/ScatterChartPro/index.d.ts +1 -1
  166. package/dist/components/charts/scatter/ScatterChartPro/index.d.ts.map +1 -1
  167. package/dist/components/charts/shared/ChartCard/ChartCardLoading/ChartCardLoading.d.ts +1 -1
  168. package/dist/components/charts/shared/ChartCard/ChartCardLoading/ChartCardLoading.d.ts.map +1 -1
  169. package/dist/components/charts/shared/ChartCard/ChartCardMenuPro/ChartCardMenuPro.d.ts +1 -1
  170. package/dist/components/charts/shared/ChartCard/ChartCardMenuPro/ChartCardMenuPro.d.ts.map +1 -1
  171. package/dist/components/charts/shared/ChartGranularitySelectField/ChartGranularitySelectField.d.ts +1 -1
  172. package/dist/components/charts/shared/ChartGranularitySelectField/ChartGranularitySelectField.d.ts.map +1 -1
  173. package/dist/components/charts/tables/HeatMapPro/HeatMapPro.emb.d.ts +21 -0
  174. package/dist/components/charts/tables/HeatMapPro/HeatMapPro.emb.d.ts.map +1 -1
  175. package/dist/components/charts/tables/HeatMapPro/HeatMapPro.types.d.ts +22 -0
  176. package/dist/components/charts/tables/HeatMapPro/HeatMapPro.types.d.ts.map +1 -0
  177. package/dist/components/charts/tables/HeatMapPro/definition.d.ts +69 -1
  178. package/dist/components/charts/tables/HeatMapPro/definition.d.ts.map +1 -1
  179. package/dist/components/charts/tables/HeatMapPro/index.d.ts +3 -1
  180. package/dist/components/charts/tables/HeatMapPro/index.d.ts.map +1 -1
  181. package/dist/components/charts/tables/PivotTablePro/definition.d.ts +1 -1
  182. package/dist/components/charts/tables/PivotTablePro/index.d.ts +1 -1
  183. package/dist/components/charts/tables/PivotTablePro/index.d.ts.map +1 -1
  184. package/dist/components/charts/tables/TableChartPaginated/definition.d.ts +1 -1
  185. package/dist/components/charts/tables/TableChartPaginated/index.d.ts +1 -1
  186. package/dist/components/charts/tables/TableChartPaginated/index.d.ts.map +1 -1
  187. package/dist/components/charts/tables/TableScrollable/definition.d.ts +1 -1
  188. package/dist/components/charts/tables/TableScrollable/index.d.ts +1 -1
  189. package/dist/components/charts/tables/TableScrollable/index.d.ts.map +1 -1
  190. package/dist/components/editors/ComparisonPeriodSelectFieldPro/definition.d.ts +1 -1
  191. package/dist/components/editors/ComparisonPeriodSelectFieldPro/index.d.ts +1 -1
  192. package/dist/components/editors/ComparisonPeriodSelectFieldPro/index.d.ts.map +1 -1
  193. package/dist/components/editors/DimensionOrMeasureMultiSelectFieldPro/definition.d.ts +1 -1
  194. package/dist/components/editors/DimensionOrMeasureMultiSelectFieldPro/index.d.ts +1 -1
  195. package/dist/components/editors/DimensionOrMeasureMultiSelectFieldPro/index.d.ts.map +1 -1
  196. package/dist/components/editors/DimensionSingleSelectFieldPro/definition.d.ts +1 -1
  197. package/dist/components/editors/DimensionSingleSelectFieldPro/index.d.ts +1 -1
  198. package/dist/components/editors/DimensionSingleSelectFieldPro/index.d.ts.map +1 -1
  199. package/dist/components/editors/FilterBuilderPro/FilterBuilderPro.emb.d.ts +7 -0
  200. package/dist/components/editors/FilterBuilderPro/FilterBuilderPro.emb.d.ts.map +1 -1
  201. package/dist/components/editors/FilterBuilderPro/FilterBuilderPro.utils.d.ts +6 -0
  202. package/dist/components/editors/FilterBuilderPro/FilterBuilderPro.utils.d.ts.map +1 -1
  203. package/dist/components/editors/FilterBuilderPro/components/FilterBuilderItem.d.ts +1 -1
  204. package/dist/components/editors/FilterBuilderPro/components/FilterBuilderItem.d.ts.map +1 -1
  205. package/dist/components/editors/FilterBuilderPro/components/FilterBuilderItemNumberValueField.d.ts +2 -1
  206. package/dist/components/editors/FilterBuilderPro/components/FilterBuilderItemNumberValueField.d.ts.map +1 -1
  207. package/dist/components/editors/FilterBuilderPro/components/FilterBuilderItemOperatorValueFields.d.ts +1 -1
  208. package/dist/components/editors/FilterBuilderPro/components/FilterBuilderItemOperatorValueFields.d.ts.map +1 -1
  209. package/dist/components/editors/FilterBuilderPro/components/FilterBuilderItemValueField.d.ts +1 -1
  210. package/dist/components/editors/FilterBuilderPro/components/FilterBuilderItemValueField.d.ts.map +1 -1
  211. package/dist/components/editors/FilterBuilderPro/components/FilterBuilderTextValueField.d.ts +1 -1
  212. package/dist/components/editors/FilterBuilderPro/components/FilterBuilderTextValueField.d.ts.map +1 -1
  213. package/dist/components/editors/FilterBuilderPro/definition.d.ts +16 -1
  214. package/dist/components/editors/FilterBuilderPro/definition.d.ts.map +1 -1
  215. package/dist/components/editors/FilterBuilderPro/index.d.ts +2 -1
  216. package/dist/components/editors/FilterBuilderPro/index.d.ts.map +1 -1
  217. package/dist/components/editors/GranularitySelectFieldPro/definition.d.ts +1 -1
  218. package/dist/components/editors/GranularitySelectFieldPro/index.d.ts +1 -1
  219. package/dist/components/editors/GranularitySelectFieldPro/index.d.ts.map +1 -1
  220. package/dist/components/editors/MeasureMultiSelectFieldPro/definition.d.ts +1 -1
  221. package/dist/components/editors/MeasureMultiSelectFieldPro/index.d.ts +1 -1
  222. package/dist/components/editors/MeasureMultiSelectFieldPro/index.d.ts.map +1 -1
  223. package/dist/components/editors/MeasureSingleSelectFieldPro/definition.d.ts +1 -1
  224. package/dist/components/editors/MeasureSingleSelectFieldPro/index.d.ts +1 -1
  225. package/dist/components/editors/MeasureSingleSelectFieldPro/index.d.ts.map +1 -1
  226. package/dist/components/editors/MultiSelectFieldPro/definition.d.ts +1 -1
  227. package/dist/components/editors/MultiSelectFieldPro/index.d.ts +1 -1
  228. package/dist/components/editors/MultiSelectFieldPro/index.d.ts.map +1 -1
  229. package/dist/components/editors/SingleSelectFieldPro/definition.d.ts +1 -1
  230. package/dist/components/editors/SingleSelectFieldPro/index.d.ts +1 -1
  231. package/dist/components/editors/SingleSelectFieldPro/index.d.ts.map +1 -1
  232. package/dist/components/editors/TextFieldPro/definition.d.ts +1 -1
  233. package/dist/components/editors/TextFieldPro/index.d.ts +1 -1
  234. package/dist/components/editors/TextFieldPro/index.d.ts.map +1 -1
  235. package/dist/components/editors/dates/DateRangePickerCustomPro/definition.d.ts +1 -1
  236. package/dist/components/editors/dates/DateRangePickerCustomPro/index.d.ts +1 -1
  237. package/dist/components/editors/dates/DateRangePickerCustomPro/index.d.ts.map +1 -1
  238. package/dist/components/editors/dates/DateRangePickerPresetsPro/definition.d.ts +1 -1
  239. package/dist/components/editors/dates/DateRangePickerPresetsPro/index.d.ts +1 -1
  240. package/dist/components/editors/dates/DateRangePickerPresetsPro/index.d.ts.map +1 -1
  241. package/dist/components/editors/shared/DimensionAndMeasureSingleSelectField/DimensionAndMeasureSingleSelectField.d.ts +1 -1
  242. package/dist/components/editors/shared/DimensionAndMeasureSingleSelectField/DimensionAndMeasureSingleSelectField.d.ts.map +1 -1
  243. package/dist/components/editors/shared/GranularitySelectField/GranularitySelectField.d.ts +1 -1
  244. package/dist/components/editors/shared/GranularitySelectField/GranularitySelectField.d.ts.map +1 -1
  245. package/dist/components/editors/test-utils/multiSelectField.mock.d.ts +1 -1
  246. package/dist/components/editors/test-utils/multiSelectField.mock.d.ts.map +1 -1
  247. package/dist/components/shared/HorizontalDividerPro/definition.d.ts +1 -1
  248. package/dist/components/shared/HorizontalDividerPro/index.d.ts +1 -1
  249. package/dist/components/shared/HorizontalDividerPro/index.d.ts.map +1 -1
  250. package/dist/components/shared/MarkdownPro/definition.d.ts +1 -1
  251. package/dist/components/shared/MarkdownPro/index.d.ts +1 -1
  252. package/dist/components/shared/MarkdownPro/index.d.ts.map +1 -1
  253. package/dist/{cs-OPN2C0ef.js → cs-Dx5Ov9fp.js} +16 -16
  254. package/dist/{cs-OPN2C0ef.js.map → cs-Dx5Ov9fp.js.map} +1 -1
  255. package/dist/{cv-DMmlEzxH.js → cv-BkDAzcmE.js} +3 -3
  256. package/dist/{cv-DMmlEzxH.js.map → cv-BkDAzcmE.js.map} +1 -1
  257. package/dist/{cy-l_moggQe.js → cy-BIwudn52.js} +3 -3
  258. package/dist/{cy-l_moggQe.js.map → cy-BIwudn52.js.map} +1 -1
  259. package/dist/{da-W22SIFso.js → da-DMzGkzN0.js} +3 -3
  260. package/dist/{da-W22SIFso.js.map → da-DMzGkzN0.js.map} +1 -1
  261. package/dist/dates.utils-LPINyM3w.js +169 -0
  262. package/dist/{dates.utils-DFrGqcoZ.js.map → dates.utils-LPINyM3w.js.map} +1 -1
  263. package/dist/{de-YZTYEOmR.js → de-DN_srl9H.js} +3 -3
  264. package/dist/{de-YZTYEOmR.js.map → de-DN_srl9H.js.map} +1 -1
  265. package/dist/{definition-Bt4uNhtN.js → definition-ARaGqiPK.js} +16 -16
  266. package/dist/{definition-Bt4uNhtN.js.map → definition-ARaGqiPK.js.map} +1 -1
  267. package/dist/{definition-Bt9oWobV.js → definition-B42wB3V0.js} +14 -14
  268. package/dist/{definition-Bt9oWobV.js.map → definition-B42wB3V0.js.map} +1 -1
  269. package/dist/{definition-BtFGLZFg.js → definition-BBvfXzrC.js} +17 -17
  270. package/dist/{definition-BtFGLZFg.js.map → definition-BBvfXzrC.js.map} +1 -1
  271. package/dist/{definition-DCCcpo3n.js → definition-BCAbpJor.js} +13 -13
  272. package/dist/{definition-DCCcpo3n.js.map → definition-BCAbpJor.js.map} +1 -1
  273. package/dist/{definition-lIzJ2XJn.js → definition-BJxdz1Ob.js} +26 -26
  274. package/dist/{definition-lIzJ2XJn.js.map → definition-BJxdz1Ob.js.map} +1 -1
  275. package/dist/{definition-C4t0P1wz.js → definition-BbFyJKGT.js} +18 -18
  276. package/dist/{definition-C4t0P1wz.js.map → definition-BbFyJKGT.js.map} +1 -1
  277. package/dist/definition-BjOqcOqq.js +258 -0
  278. package/dist/definition-BjOqcOqq.js.map +1 -0
  279. package/dist/{definition-CtNshA5a.js → definition-Br4qIMwa.js} +8 -8
  280. package/dist/{definition-CtNshA5a.js.map → definition-Br4qIMwa.js.map} +1 -1
  281. package/dist/{definition-D_APsOo5.js → definition-BvkXg6sa.js} +5 -5
  282. package/dist/{definition-D_APsOo5.js.map → definition-BvkXg6sa.js.map} +1 -1
  283. package/dist/{definition-CBKE7nhm.js → definition-BvvALkSQ.js} +12 -12
  284. package/dist/{definition-CBKE7nhm.js.map → definition-BvvALkSQ.js.map} +1 -1
  285. package/dist/{definition-IhaHieBR.js → definition-C2QnSx4_.js} +27 -27
  286. package/dist/{definition-IhaHieBR.js.map → definition-C2QnSx4_.js.map} +1 -1
  287. package/dist/{definition-B4F0jx72.js → definition-CGLcObd0.js} +11 -11
  288. package/dist/{definition-B4F0jx72.js.map → definition-CGLcObd0.js.map} +1 -1
  289. package/dist/{definition-y2Sn7VTL.js → definition-CGSdiMgK.js} +20 -20
  290. package/dist/{definition-y2Sn7VTL.js.map → definition-CGSdiMgK.js.map} +1 -1
  291. package/dist/{definition-lic11MCV.js → definition-CPWqHdnm.js} +22 -22
  292. package/dist/{definition-lic11MCV.js.map → definition-CPWqHdnm.js.map} +1 -1
  293. package/dist/{definition-WLmmLQZs.js → definition-CRNAhkO1.js} +184 -178
  294. package/dist/definition-CRNAhkO1.js.map +1 -0
  295. package/dist/{definition-CoLPvc2U.js → definition-CRNmzeNB.js} +30 -30
  296. package/dist/{definition-CoLPvc2U.js.map → definition-CRNmzeNB.js.map} +1 -1
  297. package/dist/{definition-DHsYpa3_.js → definition-CUU7xEkm.js} +30 -30
  298. package/dist/{definition-DHsYpa3_.js.map → definition-CUU7xEkm.js.map} +1 -1
  299. package/dist/definition-CZyXOTWy.js +623 -0
  300. package/dist/definition-CZyXOTWy.js.map +1 -0
  301. package/dist/{definition-De2PxrhM.js → definition-CbuWm1Cr.js} +20 -20
  302. package/dist/{definition-De2PxrhM.js.map → definition-CbuWm1Cr.js.map} +1 -1
  303. package/dist/{definition-Bs8jlVww.js → definition-CgHnmzj0.js} +16 -16
  304. package/dist/{definition-Bs8jlVww.js.map → definition-CgHnmzj0.js.map} +1 -1
  305. package/dist/{definition-1VYzuMo9.js → definition-CoQqvrmk.js} +20 -20
  306. package/dist/{definition-1VYzuMo9.js.map → definition-CoQqvrmk.js.map} +1 -1
  307. package/dist/{definition-L3bdSclX.js → definition-CqWyAkfl.js} +131 -127
  308. package/dist/definition-CqWyAkfl.js.map +1 -0
  309. package/dist/{definition-DfgNZaSg.js → definition-Cr47HSkP.js} +6 -6
  310. package/dist/{definition-DfgNZaSg.js.map → definition-Cr47HSkP.js.map} +1 -1
  311. package/dist/{definition-CC9wLJNd.js → definition-CrKiGiWI.js} +6 -6
  312. package/dist/{definition-CC9wLJNd.js.map → definition-CrKiGiWI.js.map} +1 -1
  313. package/dist/{definition-CbYDh9Ub.js → definition-CsPv349D.js} +6 -6
  314. package/dist/{definition-CbYDh9Ub.js.map → definition-CsPv349D.js.map} +1 -1
  315. package/dist/{definition-DDRYN7S1.js → definition-CtJ4b-tU.js} +13 -13
  316. package/dist/{definition-DDRYN7S1.js.map → definition-CtJ4b-tU.js.map} +1 -1
  317. package/dist/{definition-bbEjabtO.js → definition-Cvsjgc9X.js} +20 -20
  318. package/dist/{definition-bbEjabtO.js.map → definition-Cvsjgc9X.js.map} +1 -1
  319. package/dist/definition-DA2tu_w2.js +137 -0
  320. package/dist/definition-DA2tu_w2.js.map +1 -0
  321. package/dist/{definition-ukcHRZZl.js → definition-DNemWu7r.js} +20 -20
  322. package/dist/{definition-ukcHRZZl.js.map → definition-DNemWu7r.js.map} +1 -1
  323. package/dist/{definition-DtPY1lz6.js → definition-DpoIUA3D.js} +16 -16
  324. package/dist/{definition-DtPY1lz6.js.map → definition-DpoIUA3D.js.map} +1 -1
  325. package/dist/{definition-DOIIIcT0.js → definition-GqlaJ5X1.js} +15 -15
  326. package/dist/{definition-DOIIIcT0.js.map → definition-GqlaJ5X1.js.map} +1 -1
  327. package/dist/{definition-BB01Tker.js → definition-J3ahAeKj.js} +56 -56
  328. package/dist/{definition-BB01Tker.js.map → definition-J3ahAeKj.js.map} +1 -1
  329. package/dist/{definition-CvUSTWbU.js → definition-Na_Pv1dO.js} +24 -24
  330. package/dist/{definition-CvUSTWbU.js.map → definition-Na_Pv1dO.js.map} +1 -1
  331. package/dist/{definition-DW9vcya9.js → definition-UOoBAs3K.js} +7 -7
  332. package/dist/{definition-DW9vcya9.js.map → definition-UOoBAs3K.js.map} +1 -1
  333. package/dist/{definition-eKuaU5xY.js → definition-b7m3sPDx.js} +20 -20
  334. package/dist/{definition-eKuaU5xY.js.map → definition-b7m3sPDx.js.map} +1 -1
  335. package/dist/{definition-CL0Y27Yz.js → definition-bFY2ZdpP.js} +16 -16
  336. package/dist/{definition-CL0Y27Yz.js.map → definition-bFY2ZdpP.js.map} +1 -1
  337. package/dist/{definition-CHjP0E6Q.js → definition-dPTP_SXO.js} +13 -13
  338. package/dist/{definition-CHjP0E6Q.js.map → definition-dPTP_SXO.js.map} +1 -1
  339. package/dist/definition-rAPgW-Dv.js +133 -0
  340. package/dist/definition-rAPgW-Dv.js.map +1 -0
  341. package/dist/{dimension.utils-lPl2Y1D4.js → dimension.utils-CB-LXCP5.js} +4 -4
  342. package/dist/{dimension.utils-lPl2Y1D4.js.map → dimension.utils-CB-LXCP5.js.map} +1 -1
  343. package/dist/{dimensionsAndMeasures.utils-BsJIn37r.js → dimensionsAndMeasures.utils-BolsWK6X.js} +2 -2
  344. package/dist/{dimensionsAndMeasures.utils-BsJIn37r.js.map → dimensionsAndMeasures.utils-BolsWK6X.js.map} +1 -1
  345. package/dist/{dv-CuSRqQ-u.js → dv-DqfOiAOa.js} +3 -3
  346. package/dist/{dv-CuSRqQ-u.js.map → dv-DqfOiAOa.js.map} +1 -1
  347. package/dist/{el-VhiL5PCz.js → el-DRazChj2.js} +3 -3
  348. package/dist/{el-VhiL5PCz.js.map → el-DRazChj2.js.map} +1 -1
  349. package/dist/embeddable-components.json +56 -56
  350. package/dist/embeddable-theme-0137e.js +25 -1
  351. package/dist/{en-CCK_d6yu.js → en-Cbvl6b7O.js} +2 -2
  352. package/dist/{en-CCK_d6yu.js.map → en-Cbvl6b7O.js.map} +1 -1
  353. package/dist/{eo-BjvzzUrR.js → eo-BHu_t0Eo.js} +3 -3
  354. package/dist/{eo-BjvzzUrR.js.map → eo-BHu_t0Eo.js.map} +1 -1
  355. package/dist/{es-BAGEQJX0.js → es-cYnm2Hrv.js} +3 -3
  356. package/dist/{es-BAGEQJX0.js.map → es-cYnm2Hrv.js.map} +1 -1
  357. package/dist/{et-Dug3-Htz.js → et-xxrOegSp.js} +3 -3
  358. package/dist/{et-Dug3-Htz.js.map → et-xxrOegSp.js.map} +1 -1
  359. package/dist/{eu-B69OX2YQ.js → eu-DhktYxVI.js} +3 -3
  360. package/dist/{eu-B69OX2YQ.js.map → eu-DhktYxVI.js.map} +1 -1
  361. package/dist/{fa-BZRr3jKK.js → fa-9WLmLDSh.js} +3 -3
  362. package/dist/{fa-BZRr3jKK.js.map → fa-9WLmLDSh.js.map} +1 -1
  363. package/dist/{fi-D4hv61ue.js → fi-BaOUwI2P.js} +3 -3
  364. package/dist/{fi-D4hv61ue.js.map → fi-BaOUwI2P.js.map} +1 -1
  365. package/dist/{fo-Ctq0i1aV.js → fo-AY850tyv.js} +3 -3
  366. package/dist/{fo-Ctq0i1aV.js.map → fo-AY850tyv.js.map} +1 -1
  367. package/dist/{formatter.utils-CueRuFiK.js → formatter.utils-DE-_ADag.js} +6 -6
  368. package/dist/{formatter.utils-CueRuFiK.js.map → formatter.utils-DE-_ADag.js.map} +1 -1
  369. package/dist/{fr-DhygZq8E.js → fr-DuGU2qV3.js} +3 -3
  370. package/dist/{fr-DhygZq8E.js.map → fr-DuGU2qV3.js.map} +1 -1
  371. package/dist/{fy-CSXKvn3r.js → fy-ByIsn3VC.js} +3 -3
  372. package/dist/{fy-CSXKvn3r.js.map → fy-ByIsn3VC.js.map} +1 -1
  373. package/dist/{ga-CJWkA_uc.js → ga-DO6N5UL5.js} +3 -3
  374. package/dist/{ga-CJWkA_uc.js.map → ga-DO6N5UL5.js.map} +1 -1
  375. package/dist/{gd-S_5eqzIU.js → gd-8Cpnoh3b.js} +3 -3
  376. package/dist/{gd-S_5eqzIU.js.map → gd-8Cpnoh3b.js.map} +1 -1
  377. package/dist/{gl-B4Dahb7f.js → gl-oWfq6hSQ.js} +3 -3
  378. package/dist/{gl-B4Dahb7f.js.map → gl-oWfq6hSQ.js.map} +1 -1
  379. package/dist/{granularity.utils-C1YICLik.js → granularity.utils-C_SX7zKB.js} +3 -3
  380. package/dist/{granularity.utils-C1YICLik.js.map → granularity.utils-C_SX7zKB.js.map} +1 -1
  381. package/dist/{gu-jc9pYff5.js → gu-BTm5Ap5A.js} +3 -3
  382. package/dist/{gu-jc9pYff5.js.map → gu-BTm5Ap5A.js.map} +1 -1
  383. package/dist/{he-Bil3JWh7.js → he-Cd038LtN.js} +3 -3
  384. package/dist/{he-Bil3JWh7.js.map → he-Cd038LtN.js.map} +1 -1
  385. package/dist/{hi-nzfVOkjP.js → hi-IFNUivAP.js} +3 -3
  386. package/dist/{hi-nzfVOkjP.js.map → hi-IFNUivAP.js.map} +1 -1
  387. package/dist/{hr-CjyugdeX.js → hr-CldUxejD.js} +3 -3
  388. package/dist/{hr-CjyugdeX.js.map → hr-CldUxejD.js.map} +1 -1
  389. package/dist/{ht-BQ0TlnC7.js → ht-ByUbblsT.js} +3 -3
  390. package/dist/{ht-BQ0TlnC7.js.map → ht-ByUbblsT.js.map} +1 -1
  391. package/dist/{hu-B_3y1c4Q.js → hu-CPiHhaLJ.js} +11 -11
  392. package/dist/{hu-B_3y1c4Q.js.map → hu-CPiHhaLJ.js.map} +1 -1
  393. package/dist/{id-BPuFW1CX.js → id-5gnT8jF0.js} +3 -3
  394. package/dist/{id-BPuFW1CX.js.map → id-5gnT8jF0.js.map} +1 -1
  395. package/dist/{index-DcPl9DUc.js → index-BDd5cXFC.js} +1836 -1818
  396. package/dist/{index-DcPl9DUc.js.map → index-BDd5cXFC.js.map} +1 -1
  397. package/dist/{index-D_k-7hF4.js → index-DeFORjMe.js} +2 -2
  398. package/dist/{index-D_k-7hF4.js.map → index-DeFORjMe.js.map} +1 -1
  399. package/dist/{index-DxL0Y4DQ.js → index-DxChWz_f.js} +4 -4
  400. package/dist/{index-DxL0Y4DQ.js.map → index-DxChWz_f.js.map} +1 -1
  401. package/dist/index.js +57 -57
  402. package/dist/{is-B4v_GCbt.js → is-6wYxGbHC.js} +5 -5
  403. package/dist/{is-B4v_GCbt.js.map → is-6wYxGbHC.js.map} +1 -1
  404. package/dist/{isoWeek-D6aAznv-.js → isoWeek-B5hq3zXR.js} +9 -9
  405. package/dist/{isoWeek-D6aAznv-.js.map → isoWeek-B5hq3zXR.js.map} +1 -1
  406. package/dist/{it-CxODYFsF.js → it-Bs7yFtoC.js} +3 -3
  407. package/dist/{it-CxODYFsF.js.map → it-Bs7yFtoC.js.map} +1 -1
  408. package/dist/{ja-BLMmIJfq.js → ja-KxYq1Keq.js} +3 -3
  409. package/dist/{ja-BLMmIJfq.js.map → ja-KxYq1Keq.js.map} +1 -1
  410. package/dist/{jv-ByiaGx2H.js → jv-Z59fnm9r.js} +13 -13
  411. package/dist/{jv-ByiaGx2H.js.map → jv-Z59fnm9r.js.map} +1 -1
  412. package/dist/{ka-C_2wD7LP.js → ka-C5stxZNq.js} +3 -3
  413. package/dist/{ka-C_2wD7LP.js.map → ka-C5stxZNq.js.map} +1 -1
  414. package/dist/{kk-DqcHSPuF.js → kk-Bjp2oS1M.js} +3 -3
  415. package/dist/{kk-DqcHSPuF.js.map → kk-Bjp2oS1M.js.map} +1 -1
  416. package/dist/{km-bI1Z3YSM.js → km-cCyErL-J.js} +8 -8
  417. package/dist/{km-bI1Z3YSM.js.map → km-cCyErL-J.js.map} +1 -1
  418. package/dist/{kn-DY4uzFfe.js → kn-Cn3e7R-p.js} +3 -3
  419. package/dist/{kn-DY4uzFfe.js.map → kn-Cn3e7R-p.js.map} +1 -1
  420. package/dist/{ko-Cu5cVg3m.js → ko-DwbRGcg_.js} +8 -8
  421. package/dist/{ko-Cu5cVg3m.js.map → ko-DwbRGcg_.js.map} +1 -1
  422. package/dist/{ku-B9wX44de.js → ku-D8V8DLkP.js} +3 -3
  423. package/dist/{ku-B9wX44de.js.map → ku-D8V8DLkP.js.map} +1 -1
  424. package/dist/{ky-mkjISmIi.js → ky-DgKCQpit.js} +3 -3
  425. package/dist/{ky-mkjISmIi.js.map → ky-DgKCQpit.js.map} +1 -1
  426. package/dist/{lb-s_88UK0j.js → lb-B1H3ev7O.js} +8 -8
  427. package/dist/{lb-s_88UK0j.js.map → lb-B1H3ev7O.js.map} +1 -1
  428. package/dist/{lo-CChg5V22.js → lo-BTLR-4Ua.js} +3 -3
  429. package/dist/{lo-CChg5V22.js.map → lo-BTLR-4Ua.js.map} +1 -1
  430. package/dist/{lt-jLA41Ben.js → lt-CpVBw6AZ.js} +3 -3
  431. package/dist/{lt-jLA41Ben.js.map → lt-CpVBw6AZ.js.map} +1 -1
  432. package/dist/{lv-hAoIKgX2.js → lv-CHWUynv0.js} +3 -3
  433. package/dist/{lv-hAoIKgX2.js.map → lv-CHWUynv0.js.map} +1 -1
  434. package/dist/{me-DNASGX9I.js → me-BPihshNS.js} +3 -3
  435. package/dist/{me-DNASGX9I.js.map → me-BPihshNS.js.map} +1 -1
  436. package/dist/meta/FilterBuilderPro.meta.json +8 -0
  437. package/dist/meta/HeatMapPro.meta.json +28 -0
  438. package/dist/meta/LineChartComparisonDefaultPro.meta.json +5 -0
  439. package/dist/meta/LineChartComparisonWithKpiTabsPro.meta.json +5 -0
  440. package/dist/{mi-NkIEWm1k.js → mi-Cb-2ijwY.js} +3 -3
  441. package/dist/{mi-NkIEWm1k.js.map → mi-Cb-2ijwY.js.map} +1 -1
  442. package/dist/{mk-CJAU95yF.js → mk-BH7eZmqu.js} +3 -3
  443. package/dist/{mk-CJAU95yF.js.map → mk-BH7eZmqu.js.map} +1 -1
  444. package/dist/{ml-D91xWhJE.js → ml-CwYt0YaD.js} +3 -3
  445. package/dist/{ml-D91xWhJE.js.map → ml-CwYt0YaD.js.map} +1 -1
  446. package/dist/{mn-CSIv0h5B.js → mn-BQDV_tLC.js} +3 -3
  447. package/dist/{mn-CSIv0h5B.js.map → mn-BQDV_tLC.js.map} +1 -1
  448. package/dist/{mr-D4oIZ_jX.js → mr-Cz2meNaV.js} +3 -3
  449. package/dist/{mr-D4oIZ_jX.js.map → mr-Cz2meNaV.js.map} +1 -1
  450. package/dist/{ms-DyAE3TXR.js → ms-Drl8Gge6.js} +3 -3
  451. package/dist/{ms-DyAE3TXR.js.map → ms-Drl8Gge6.js.map} +1 -1
  452. package/dist/{mt-DjLJYXqW.js → mt-Biv_dLXp.js} +3 -3
  453. package/dist/{mt-DjLJYXqW.js.map → mt-Biv_dLXp.js.map} +1 -1
  454. package/dist/{my-QAbtttSY.js → my-BHy9cEF_.js} +3 -3
  455. package/dist/{my-QAbtttSY.js.map → my-BHy9cEF_.js.map} +1 -1
  456. package/dist/{nb-CyikWQNu.js → nb-BMrTF3LP.js} +3 -3
  457. package/dist/{nb-CyikWQNu.js.map → nb-BMrTF3LP.js.map} +1 -1
  458. package/dist/{ne-CYLhegnF.js → ne-B-gxqF-u.js} +3 -3
  459. package/dist/{ne-CYLhegnF.js.map → ne-B-gxqF-u.js.map} +1 -1
  460. package/dist/{nl-Ravjt8yv.js → nl-Cral7JEK.js} +3 -3
  461. package/dist/{nl-Ravjt8yv.js.map → nl-Cral7JEK.js.map} +1 -1
  462. package/dist/{nn-DaylgKbH.js → nn-C1_ylJFR.js} +3 -3
  463. package/dist/{nn-DaylgKbH.js.map → nn-C1_ylJFR.js.map} +1 -1
  464. package/dist/pies.utils-Drvky2f7.js +112 -0
  465. package/dist/pies.utils-Drvky2f7.js.map +1 -0
  466. package/dist/{pl-1TvAKJ2i.js → pl-D2pKy9F1.js} +10 -10
  467. package/dist/{pl-1TvAKJ2i.js.map → pl-D2pKy9F1.js.map} +1 -1
  468. package/dist/{preview.data.constants-B8B82ITM.js → preview.data.constants-B3oyUsaQ.js} +10 -10
  469. package/dist/{preview.data.constants-B8B82ITM.js.map → preview.data.constants-B3oyUsaQ.js.map} +1 -1
  470. package/dist/{pt-BdsacYg2.js → pt-3Uvt8G16.js} +3 -3
  471. package/dist/{pt-BdsacYg2.js.map → pt-3Uvt8G16.js.map} +1 -1
  472. package/dist/{quarterOfYear-Dixa0hmA.js → quarterOfYear-B_Fe3-YM.js} +7 -7
  473. package/dist/{quarterOfYear-Dixa0hmA.js.map → quarterOfYear-B_Fe3-YM.js.map} +1 -1
  474. package/dist/{ro-CgxzoPTb.js → ro-lXLM5wIH.js} +3 -3
  475. package/dist/{ro-CgxzoPTb.js.map → ro-lXLM5wIH.js.map} +1 -1
  476. package/dist/{ru-Dc-8D5WF.js → ru-CvRL7AkU.js} +3 -3
  477. package/dist/{ru-Dc-8D5WF.js.map → ru-CvRL7AkU.js.map} +1 -1
  478. package/dist/{rw-Qhhg8ROi.js → rw-BWaAHq7K.js} +3 -3
  479. package/dist/{rw-Qhhg8ROi.js.map → rw-BWaAHq7K.js.map} +1 -1
  480. package/dist/{sd-CGRy0d35.js → sd-DwN_Idzz.js} +8 -8
  481. package/dist/{sd-CGRy0d35.js.map → sd-DwN_Idzz.js.map} +1 -1
  482. package/dist/{se-C0u8D3V7.js → se-BnIu6dPe.js} +3 -3
  483. package/dist/{se-C0u8D3V7.js.map → se-BnIu6dPe.js.map} +1 -1
  484. package/dist/{si-D4VvlDtE.js → si-C7noOV3G.js} +3 -3
  485. package/dist/{si-D4VvlDtE.js.map → si-C7noOV3G.js.map} +1 -1
  486. package/dist/{sk-D1rCJy6c.js → sk-aGMXL0jT.js} +18 -18
  487. package/dist/{sk-D1rCJy6c.js.map → sk-aGMXL0jT.js.map} +1 -1
  488. package/dist/{sl-CDwxu8Jf.js → sl-CSDUQXp6.js} +3 -3
  489. package/dist/{sl-CDwxu8Jf.js.map → sl-CSDUQXp6.js.map} +1 -1
  490. package/dist/{sq-EG9Spqit.js → sq-BWIZHH0T.js} +9 -9
  491. package/dist/{sq-EG9Spqit.js.map → sq-BWIZHH0T.js.map} +1 -1
  492. package/dist/{sr-DEnvCtDe.js → sr-DWXLYUZl.js} +3 -3
  493. package/dist/{sr-DEnvCtDe.js.map → sr-DWXLYUZl.js.map} +1 -1
  494. package/dist/{ss-D2TA96JU.js → ss-DRoAfKgl.js} +3 -3
  495. package/dist/{ss-D2TA96JU.js.map → ss-DRoAfKgl.js.map} +1 -1
  496. package/dist/{styles.utils-BfpH_m_W.js → styles.utils-C8CnV0SB.js} +3 -3
  497. package/dist/{styles.utils-BfpH_m_W.js.map → styles.utils-C8CnV0SB.js.map} +1 -1
  498. package/dist/{sv-CVix37qq.js → sv-COvXHvfd.js} +3 -3
  499. package/dist/{sv-CVix37qq.js.map → sv-COvXHvfd.js.map} +1 -1
  500. package/dist/{sw-BPU86kCc.js → sw-DVBjWTn7.js} +3 -3
  501. package/dist/{sw-BPU86kCc.js.map → sw-DVBjWTn7.js.map} +1 -1
  502. package/dist/{ta-BOZUOxU0.js → ta-D_B2aKTU.js} +3 -3
  503. package/dist/{ta-BOZUOxU0.js.map → ta-D_B2aKTU.js.map} +1 -1
  504. package/dist/{tables.utils-BDvJMU1_.js → tables.utils-DqlM19s-.js} +11 -11
  505. package/dist/{tables.utils-BDvJMU1_.js.map → tables.utils-DqlM19s-.js.map} +1 -1
  506. package/dist/{te-Bamoj7pU.js → te-ZeV91eOU.js} +3 -3
  507. package/dist/{te-Bamoj7pU.js.map → te-ZeV91eOU.js.map} +1 -1
  508. package/dist/{tet-Dasd5QxW.js → tet-DVZKHkE5.js} +11 -11
  509. package/dist/{tet-Dasd5QxW.js.map → tet-DVZKHkE5.js.map} +1 -1
  510. package/dist/{tg-ChqdKEnG.js → tg-BzwSdhGO.js} +3 -3
  511. package/dist/{tg-ChqdKEnG.js.map → tg-BzwSdhGO.js.map} +1 -1
  512. package/dist/{th-Bk5x6TTv.js → th-Cjw35Sul.js} +3 -3
  513. package/dist/{th-Bk5x6TTv.js.map → th-Cjw35Sul.js.map} +1 -1
  514. package/dist/theme/styles/styles.constants.d.ts +24 -0
  515. package/dist/theme/styles/styles.constants.d.ts.map +1 -1
  516. package/dist/{theme.constants-DsrqrdS6.js → theme.constants-T0AFNuJR.js} +31 -7
  517. package/dist/theme.constants-T0AFNuJR.js.map +1 -0
  518. package/dist/{tk-CKTm9znn.js → tk-BJwa-YKB.js} +3 -3
  519. package/dist/{tk-CKTm9znn.js.map → tk-BJwa-YKB.js.map} +1 -1
  520. package/dist/{tlh-COX4xvnq.js → tlh-Bd8Hj-rX.js} +3 -3
  521. package/dist/{tlh-COX4xvnq.js.map → tlh-Bd8Hj-rX.js.map} +1 -1
  522. package/dist/{tr-B-yDJn5U.js → tr-__Yjprt-.js} +3 -3
  523. package/dist/{tr-B-yDJn5U.js.map → tr-__Yjprt-.js.map} +1 -1
  524. package/dist/{tzl-DsV3R-ms.js → tzl-DLj-cE5y.js} +3 -3
  525. package/dist/{tzl-DsV3R-ms.js.map → tzl-DLj-cE5y.js.map} +1 -1
  526. package/dist/{tzm-gPfBGwxP.js → tzm-BbgReqpM.js} +3 -3
  527. package/dist/{tzm-gPfBGwxP.js.map → tzm-BbgReqpM.js.map} +1 -1
  528. package/dist/{uk-Buc5wLz4.js → uk-CkEIyMZ2.js} +11 -11
  529. package/dist/{uk-Buc5wLz4.js.map → uk-CkEIyMZ2.js.map} +1 -1
  530. package/dist/{ur-DwcxoK_m.js → ur-CMRddQHy.js} +3 -3
  531. package/dist/{ur-DwcxoK_m.js.map → ur-CMRddQHy.js.map} +1 -1
  532. package/dist/{utc-BW09BhCl.js → utc-CiYVTKd5.js} +13 -13
  533. package/dist/{utc-BW09BhCl.js.map → utc-CiYVTKd5.js.map} +1 -1
  534. package/dist/{uz-QP2FHnf_.js → uz-CKEHZNva.js} +3 -3
  535. package/dist/{uz-QP2FHnf_.js.map → uz-CKEHZNva.js.map} +1 -1
  536. package/dist/{vi-D27F6exG.js → vi-DDguFMAp.js} +3 -3
  537. package/dist/{vi-D27F6exG.js.map → vi-DDguFMAp.js.map} +1 -1
  538. package/dist/{x-pseudo-BD9cDlId.js → x-pseudo-G09tNhGy.js} +3 -3
  539. package/dist/{x-pseudo-BD9cDlId.js.map → x-pseudo-G09tNhGy.js.map} +1 -1
  540. package/dist/{yo-BF789QLA.js → yo-C2uzXj00.js} +3 -3
  541. package/dist/{yo-BF789QLA.js.map → yo-C2uzXj00.js.map} +1 -1
  542. package/dist/{zh-cn-BtfweNvk.js → zh-cn-Cq0odDRx.js} +3 -3
  543. package/dist/{zh-cn-BtfweNvk.js.map → zh-cn-Cq0odDRx.js.map} +1 -1
  544. package/dist/{zh-hk-BnriNqMr.js → zh-hk-7tX7IidE.js} +3 -3
  545. package/dist/{zh-hk-BnriNqMr.js.map → zh-hk-7tX7IidE.js.map} +1 -1
  546. package/dist/{zh-tw-DEhWyVul.js → zh-tw-LFc2ke0C.js} +3 -3
  547. package/dist/{zh-tw-DEhWyVul.js.map → zh-tw-LFc2ke0C.js.map} +1 -1
  548. package/package.json +4 -4
  549. package/dist/bars.utils-lZnqwfM9.js +0 -167
  550. package/dist/bars.utils-lZnqwfM9.js.map +0 -1
  551. package/dist/charts.utils-LTooRxIg.js +0 -79
  552. package/dist/charts.utils-LTooRxIg.js.map +0 -1
  553. package/dist/dates.utils-DFrGqcoZ.js +0 -169
  554. package/dist/definition-CBuEfvdj.js +0 -124
  555. package/dist/definition-CBuEfvdj.js.map +0 -1
  556. package/dist/definition-CkRgTDxG.js +0 -603
  557. package/dist/definition-CkRgTDxG.js.map +0 -1
  558. package/dist/definition-DbRjzqsA.js +0 -120
  559. package/dist/definition-DbRjzqsA.js.map +0 -1
  560. package/dist/definition-L3bdSclX.js.map +0 -1
  561. package/dist/definition-WLmmLQZs.js.map +0 -1
  562. package/dist/definition-uQa3OXxU.js +0 -202
  563. package/dist/definition-uQa3OXxU.js.map +0 -1
  564. package/dist/pies.utils-Rkvaq5Sj.js +0 -111
  565. package/dist/pies.utils-Rkvaq5Sj.js.map +0 -1
  566. package/dist/theme.constants-DsrqrdS6.js.map +0 -1
@@ -1,31 +1,31 @@
1
- import { _ as U, a3 as k, a9 as X, a7 as F, S as H, V as S, a8 as Y } from "./index-DcPl9DUc.js";
1
+ import { p as U, u as k, m as X, j as F, M as H, V as w, l as Y } from "./index-BDd5cXFC.js";
2
2
  import { useTheme as q, definePreview as J } from "@embeddable.com/react";
3
3
  import { i as Q, r as W, a as Z } from "./component.utils-oQMZT7TK.js";
4
- import { C as ee } from "./ChartCard-HpSv5cY6.js";
5
- import { g as I } from "./dimension.utils-lPl2Y1D4.js";
6
- import { g as R, b as $ } from "./formatter.utils-CueRuFiK.js";
7
- import { a as ae } from "./styles.utils-BfpH_m_W.js";
8
- import { N as C, g as te, m as _, r as w } from "./scatter.utils-DV4Kp2Lb.js";
9
- import { i as n, s as oe } from "./component.inputs.constants-DYl-U975.js";
10
- import { p as D } from "./preview.data.constants-B8B82ITM.js";
4
+ import { C as ee } from "./ChartCard-Zy5lPApV.js";
5
+ import { g as I } from "./dimension.utils-CB-LXCP5.js";
6
+ import { a as R, g as $ } from "./formatter.utils-DE-_ADag.js";
7
+ import { g as te } from "./styles.utils-C8CnV0SB.js";
8
+ import { N as C, g as ae, m as _, r as S } from "./scatter.utils-DV4Kp2Lb.js";
9
+ import { i as n, s as oe } from "./component.inputs.constants-DoBT8ykS.js";
10
+ import { p as D } from "./preview.data.constants-B3oyUsaQ.js";
11
11
  import { g as ne } from "./clientContext.utils-DpB5KsfX.js";
12
- const se = (e, t, s) => ({
12
+ const se = (e, a, s) => ({
13
13
  formatter: (m, u) => {
14
14
  var r;
15
15
  const o = (r = u.dataset.originalData) == null ? void 0 : r[u.dataIndex];
16
- return o ? `${s(e, o.x)}, ${s(t, o.y)}` : "";
16
+ return o ? `${s(e, o.x)}, ${s(a, o.y)}` : "";
17
17
  }
18
18
  }), re = ({
19
19
  xMeasure: e,
20
- yMeasure: t,
20
+ yMeasure: a,
21
21
  noValueLabel: s,
22
22
  showPointLabels: m
23
23
  }, u) => {
24
24
  const c = $(u), o = (p, g) => g == null ? s : c.data(p, g), r = k("--em-scatterchart-point-radius", "0.375rem"), i = k("--em-scatterchart-label-stack-gap", "0.25rem"), d = k("--em-scatterchart-label-stack-height", "1.25rem"), h = r + i, x = m ? r + i + d + i : r + i;
25
25
  return {
26
- scales: te(
26
+ scales: ae(
27
27
  e,
28
- t,
28
+ a,
29
29
  (p, g) => c.data(p, g)
30
30
  ),
31
31
  plugins: {
@@ -33,8 +33,8 @@ const se = (e, t, s) => ({
33
33
  callbacks: {
34
34
  label: (p) => {
35
35
  var l;
36
- const g = p.dataset, y = ((l = g.originalData) == null ? void 0 : l[p.dataIndex]) ?? p.dataset.data[p.dataIndex], a = g.label ? `${g.label}: ` : "";
37
- return y ? `${a}(${o(e, y.x)}, ${o(t, y.y)})` : a;
36
+ const g = p.dataset, y = ((l = g.originalData) == null ? void 0 : l[p.dataIndex]) ?? p.dataset.data[p.dataIndex], t = g.label ? `${g.label}: ` : "";
37
+ return y ? `${t}(${o(e, y.x)}, ${o(a, y.y)})` : t;
38
38
  }
39
39
  }
40
40
  },
@@ -42,7 +42,7 @@ const se = (e, t, s) => ({
42
42
  labels: {
43
43
  value: {
44
44
  display: "auto",
45
- ...se(e, t, o),
45
+ ...se(e, a, o),
46
46
  anchor: "center",
47
47
  align: "bottom",
48
48
  offset: x
@@ -57,16 +57,16 @@ const se = (e, t, s) => ({
57
57
  }
58
58
  }
59
59
  };
60
- }, ie = (e, t, s, m, u, c, o) => {
60
+ }, ie = (e, a, s, m, u, c, o) => {
61
61
  var g, y;
62
- const r = (y = (g = t[e.datasetIndex]) == null ? void 0 : g.data[e.index]) == null ? void 0 : y.rowIndex;
62
+ const r = (y = (g = a[e.datasetIndex]) == null ? void 0 : g.data[e.index]) == null ? void 0 : y.rowIndex;
63
63
  if (r === void 0) return null;
64
64
  const i = s == null ? void 0 : s[r];
65
65
  if (!i) return null;
66
- const d = R(c), h = o ? R(o) : void 0, x = w(i[d]), p = h ? w(i[h]) : null;
66
+ const d = R(c), h = o ? R(o) : void 0, x = S(i[d]), p = h ? S(i[h]) : null;
67
67
  return {
68
- xMeasureValue: w(i[m.name]),
69
- yMeasureValue: w(i[u.name]),
68
+ xMeasureValue: S(i[m.name]),
69
+ yMeasureValue: S(i[u.name]),
70
70
  pointDimensionValue: x,
71
71
  groupByDimensionValue: p,
72
72
  pointDimensionTimeRange: I({
@@ -80,7 +80,7 @@ const se = (e, t, s) => ({
80
80
  };
81
81
  }, le = ({
82
82
  datasets: e,
83
- results: t,
83
+ results: a,
84
84
  xMeasure: s,
85
85
  yMeasure: m,
86
86
  pointDimension: u,
@@ -92,23 +92,23 @@ const se = (e, t, s) => ({
92
92
  const d = ie(
93
93
  i,
94
94
  e,
95
- t.data,
95
+ a.data,
96
96
  s,
97
97
  m,
98
98
  u,
99
99
  c
100
100
  );
101
101
  d && (o == null || o(d));
102
- }, ue = (e, t) => {
102
+ }, ue = (e, a) => {
103
103
  var y;
104
- const s = $(t), m = U(), u = e.data ?? [], c = R(e.pointDimension), o = ((y = e.pointColor) == null ? void 0 : y.trim()) || void 0;
104
+ const s = $(a), m = U(), u = e.data ?? [], c = R(e.pointDimension), o = ((y = e.pointColor) == null ? void 0 : y.trim()) || void 0;
105
105
  if (!u.length)
106
106
  return { datasets: [{ label: "", data: [] }] };
107
- const r = (a, l, b, f) => o ?? ae({ dimensionOrMeasure: l, theme: t, color: a, value: b, index: f, chartColors: m }), i = (a, l) => {
108
- const b = a[c], f = b == null ? e.noValueLabel : String(s.data(e.pointDimension, b));
107
+ const r = (t, l, b, f) => o ?? te({ dimensionOrMeasure: l, theme: a, color: t, value: b, index: f, chartColors: m }), i = (t, l) => {
108
+ const b = t[c], f = b == null ? e.noValueLabel : String(s.data(e.pointDimension, b));
109
109
  return {
110
- x: _(a[e.xMeasure.name]),
111
- y: _(a[e.yMeasure.name]),
110
+ x: _(t[e.xMeasure.name]),
111
+ y: _(t[e.yMeasure.name]),
112
112
  pointLabel: f,
113
113
  label: f,
114
114
  rowIndex: l
@@ -119,19 +119,19 @@ const se = (e, t, s) => ({
119
119
  datasets: [
120
120
  {
121
121
  label: s.dimensionOrMeasureTitle(e.yMeasure),
122
- data: u.map((a, l) => i(a, l)),
122
+ data: u.map((t, l) => i(t, l)),
123
123
  pointBackgroundColor: r("background", e.xMeasure, e.xMeasure.name, 0),
124
124
  pointBorderColor: r("border", e.xMeasure, e.xMeasure.name, 0)
125
125
  }
126
126
  ]
127
127
  };
128
128
  const d = e.groupByDimension, h = R(d), x = /* @__PURE__ */ new Map();
129
- return u.forEach((a, l) => {
130
- const b = a[h] == null ? C : String(a[h]), f = x.get(b) ?? [];
131
- f.push(i(a, l)), x.set(b, f);
132
- }), { datasets: [...x.keys()].sort((a, l) => a === C ? 1 : l === C ? -1 : a.localeCompare(l)).map((a, l) => {
129
+ return u.forEach((t, l) => {
130
+ const b = t[h] == null ? C : String(t[h]), f = x.get(b) ?? [];
131
+ f.push(i(t, l)), x.set(b, f);
132
+ }), { datasets: [...x.keys()].sort((t, l) => t === C ? 1 : l === C ? -1 : t.localeCompare(l)).map((t, l) => {
133
133
  var V;
134
- const b = x.get(a), f = b[0].rowIndex, L = a === C ? null : (V = u[f]) == null ? void 0 : V[h], v = a === C ? e.noValueLabel : s.data(d, L), M = a === C ? `${d.name}.null` : `${d.name}.${a}`;
134
+ const b = x.get(t), f = b[0].rowIndex, L = t === C ? null : (V = u[f]) == null ? void 0 : V[h], v = t === C ? e.noValueLabel : s.data(d, L), M = t === C ? `${d.name}.null` : `${d.name}.${t}`;
135
135
  return {
136
136
  label: v,
137
137
  data: b,
@@ -141,8 +141,8 @@ const se = (e, t, s) => ({
141
141
  }) };
142
142
  }, P = (e) => {
143
143
  var T;
144
- const t = q();
145
- Q(t);
144
+ const a = q();
145
+ Q(a);
146
146
  const {
147
147
  xMeasure: s,
148
148
  yMeasure: m,
@@ -157,7 +157,7 @@ const se = (e, t, s) => ({
157
157
  showLogarithmicScale: p,
158
158
  xAxisRangeMin: g,
159
159
  xAxisRangeMax: y,
160
- yAxisRangeMin: a,
160
+ yAxisRangeMin: t,
161
161
  yAxisRangeMax: l,
162
162
  reverseXAxis: b,
163
163
  onPointClick: f,
@@ -172,7 +172,7 @@ const se = (e, t, s) => ({
172
172
  noValueLabel: A,
173
173
  pointColor: r
174
174
  },
175
- t
175
+ a
176
176
  ), E = le({
177
177
  datasets: B.datasets,
178
178
  results: o,
@@ -182,8 +182,8 @@ const se = (e, t, s) => ({
182
182
  groupByDimension: c,
183
183
  onPointClick: f
184
184
  }), G = X(
185
- re({ xMeasure: s, yMeasure: m, noValueLabel: A, showPointLabels: h }, t),
186
- ((T = t.charts.scatterChartPro) == null ? void 0 : T.options) ?? {}
185
+ re({ xMeasure: s, yMeasure: m, noValueLabel: A, showPointLabels: h }, a),
186
+ ((T = a.charts.scatterChartPro) == null ? void 0 : T.options) ?? {}
187
187
  );
188
188
  return /* @__PURE__ */ F.jsx(
189
189
  ee,
@@ -215,7 +215,7 @@ const se = (e, t, s) => ({
215
215
  yAxisLabel: K,
216
216
  xAxisRangeMin: g,
217
217
  xAxisRangeMax: y,
218
- yAxisRangeMin: a,
218
+ yAxisRangeMin: t,
219
219
  yAxisRangeMax: l,
220
220
  reverseXAxis: b,
221
221
  onClick: E
@@ -223,7 +223,7 @@ const se = (e, t, s) => ({
223
223
  )
224
224
  }
225
225
  );
226
- }, we = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
226
+ }, Se = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
227
227
  __proto__: null,
228
228
  default: P
229
229
  }, Symbol.toStringTag, { value: "Module" })), me = {
@@ -301,7 +301,7 @@ const se = (e, t, s) => ({
301
301
  results: D.results2Measures1Dimension,
302
302
  showLegend: !0,
303
303
  hideMenu: !0
304
- }, ce = J(P, O), N = (e, t) => ({
304
+ }, ce = J(P, O), j = (e, a) => ({
305
305
  limit: e.maxResults,
306
306
  from: e.dataset,
307
307
  select: [
@@ -310,18 +310,18 @@ const se = (e, t, s) => ({
310
310
  e.pointDimension,
311
311
  ...e.groupByDimension ? [e.groupByDimension] : []
312
312
  ],
313
- timezone: ne(t == null ? void 0 : t.timezone)
314
- }), j = (e, t) => Y(N(e, t)), de = {
313
+ timezone: ne(a == null ? void 0 : a.timezone)
314
+ }), N = (e, a) => Y(j(e, a)), de = {
315
315
  onPointClick: (e) => ({
316
- xMeasureValue: e.xMeasureValue ?? S.noFilter(),
317
- yMeasureValue: e.yMeasureValue ?? S.noFilter(),
318
- pointDimensionValue: e.pointDimensionValue ?? S.noFilter(),
319
- groupByDimensionValue: e.groupByDimensionValue ?? S.noFilter()
316
+ xMeasureValue: e.xMeasureValue ?? w.noFilter(),
317
+ yMeasureValue: e.yMeasureValue ?? w.noFilter(),
318
+ pointDimensionValue: e.pointDimensionValue ?? w.noFilter(),
319
+ groupByDimensionValue: e.groupByDimensionValue ?? w.noFilter()
320
320
  })
321
- }, ge = (e, [t, s], m) => ({
321
+ }, ge = (e, [a, s], m) => ({
322
322
  ...e,
323
323
  pointColor: e.pointColor,
324
- results: j(e, m)
324
+ results: N(e, m)
325
325
  }), Re = {
326
326
  Component: P,
327
327
  meta: me,
@@ -332,12 +332,12 @@ const se = (e, t, s) => ({
332
332
  events: de
333
333
  },
334
334
  results: {
335
- loadDataArgs: N,
336
- loadData: j
335
+ loadDataArgs: j,
336
+ loadData: N
337
337
  }
338
338
  };
339
339
  export {
340
- we as i,
340
+ Se as i,
341
341
  Re as s
342
342
  };
343
- //# sourceMappingURL=definition-BB01Tker.js.map
343
+ //# sourceMappingURL=definition-J3ahAeKj.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"definition-BB01Tker.js","sources":["../src/components/charts/scatter/ScatterChartPro/ScatterChartPro.utils.ts","../src/components/charts/scatter/ScatterChartPro/index.tsx","../src/components/charts/scatter/ScatterChartPro/definition.ts"],"sourcesContent":["import { ChartData, type ChartOptions, ScatterDataPoint } 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 {\n ChartClickArgs,\n ScatterChartInputPoint,\n ScatterDatasetExtended,\n} from '@embeddable.com/remarkable-ui';\nimport { getDimensionMeasureColor } from '../../../../theme/styles/styles.utils';\nimport type { ScatterChartProOptionsClickArg } from './ScatterChartPro.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\nconst buildDatalabelsValue = (\n xMeasure: Measure,\n yMeasure: Measure,\n formatValue: (measure: Measure, value: number | null | undefined) => string,\n) => ({\n formatter: (_value: ScatterDataPoint | number | null, context: Context) => {\n const ds = context.dataset as ScatterDatasetExtended;\n const raw = ds.originalData?.[context.dataIndex];\n if (!raw) return '';\n return `${formatValue(xMeasure, raw.x)}, ${formatValue(yMeasure, raw.y)}`;\n },\n});\n\nexport const getScatterChartProOptions = (\n {\n xMeasure,\n yMeasure,\n noValueLabel,\n showPointLabels,\n }: {\n xMeasure: Measure;\n yMeasure: Measure;\n noValueLabel: string;\n showPointLabels?: boolean;\n },\n theme: Theme,\n): Partial<ChartOptions<'scatter'>> => {\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 pointRadius = getStyleNumber('--em-scatterchart-point-radius', '0.375rem');\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 captionOffset = pointRadius + labelGap;\n const valueOffset = showPointLabels\n ? pointRadius + labelGap + labelLineHeight + labelGap\n : pointRadius + labelGap;\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 ScatterDatasetExtended;\n const orig =\n ds.originalData?.[ctx.dataIndex] ??\n (ctx.dataset.data[ctx.dataIndex] as\n | { x: number | null; y: number | null }\n | undefined);\n const prefix = ds.label ? `${ds.label}: ` : '';\n if (!orig) return prefix;\n return `${prefix}(${formatValue(xMeasure, orig.x)}, ${formatValue(yMeasure, orig.y)})`;\n },\n },\n },\n datalabels: {\n labels: {\n value: {\n display: 'auto',\n ...buildDatalabelsValue(xMeasure, yMeasure, formatValue),\n anchor: 'center',\n align: 'bottom',\n offset: valueOffset,\n },\n caption: {\n display: 'auto',\n anchor: 'center',\n align: 'bottom',\n offset: captionOffset,\n },\n },\n },\n },\n };\n};\n\nexport type ScatterPoint = ScatterChartInputPoint & { rowIndex: number };\n\nexport const getPointClickData = (\n point: { datasetIndex: number; index: number },\n datasets: ChartData<'scatter', ScatterPoint[]>['datasets'],\n data: DataResponse['data'],\n xMeasure: Measure,\n yMeasure: Measure,\n pointDimension: Dimension,\n groupByDimension?: Dimension,\n): ScatterChartProOptionsClickArg | 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 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 createScatterClickHandler = ({\n datasets,\n results,\n xMeasure,\n yMeasure,\n pointDimension,\n groupByDimension,\n onPointClick,\n}: {\n datasets: ChartData<'scatter', ScatterPoint[]>['datasets'];\n results: DataResponse;\n xMeasure: Measure;\n yMeasure: Measure;\n pointDimension: Dimension;\n groupByDimension?: Dimension;\n onPointClick?: (payload: ScatterChartProOptionsClickArg) => void;\n}): ((args: ChartClickArgs) => void) => {\n return ({ elementAtEvent }) => {\n const element = elementAtEvent[0];\n if (!element) return;\n const clickData = getPointClickData(\n element,\n datasets,\n results.data,\n xMeasure,\n yMeasure,\n pointDimension,\n groupByDimension,\n );\n if (clickData) onPointClick?.(clickData);\n };\n};\n\nexport const getScatterChartProData = (\n props: {\n data: DataResponse['data'];\n xMeasure: Measure;\n yMeasure: Measure;\n pointDimension: Dimension;\n groupByDimension?: Dimension | null;\n noValueLabel: string;\n pointColor?: string;\n },\n theme: Theme,\n): ChartData<'scatter', ScatterPoint[]> => {\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.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): ScatterPoint => {\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 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 pointBackgroundColor: getColor('background', props.xMeasure, props.xMeasure.name, 0),\n pointBorderColor: 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, ScatterPoint[]>();\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 pointBackgroundColor: getColor('background', groupDim, colorKey, index),\n pointBorderColor: getColor('border', groupDim, colorKey, index),\n };\n });\n\n return { datasets };\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { ScatterChart } 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 createScatterClickHandler,\n getScatterChartProData,\n getScatterChartProOptions,\n} from './ScatterChartPro.utils';\n\nimport type { ScatterChartProOptionsClickArg } from './ScatterChartPro.types';\n\nexport type ScatterChartProProps = {\n xMeasure: Measure;\n yMeasure: 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 onPointClick?: (payload: ScatterChartProOptionsClickArg) => void;\n} & ChartCardHeaderProps;\n\nconst ScatterChartPro = (props: ScatterChartProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const {\n xMeasure,\n yMeasure,\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 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 = getScatterChartProData(\n {\n data: results.data,\n xMeasure,\n yMeasure,\n pointDimension,\n groupByDimension,\n noValueLabel,\n pointColor,\n },\n theme,\n );\n\n const handleClick = createScatterClickHandler({\n datasets: chartData.datasets,\n results,\n xMeasure,\n yMeasure,\n pointDimension,\n groupByDimension,\n onPointClick,\n });\n\n const chartOptions = mergician(\n getScatterChartProOptions({ xMeasure, yMeasure, noValueLabel, showPointLabels }, theme),\n theme.charts.scatterChartPro?.options ?? {},\n );\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[\n pointDimension,\n xMeasure,\n yMeasure,\n ...(groupByDimension ? [groupByDimension] : []),\n ]}\n errorMessage={results.error}\n description={description}\n title={title}\n tooltip={tooltip}\n hideMenu={hideMenu}\n >\n <ScatterChart\n data={chartData}\n options={chartOptions}\n nullBandLabel={noValueLabel}\n showLegend={showLegend}\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 onClick={handleClick}\n />\n </ChartCard>\n );\n};\n\nexport default ScatterChartPro;\n","import { DataResponse, LoadDataRequest, Value, loadData } from '@embeddable.com/core';\nimport type { ScatterChartProOptionsClickArg } from './ScatterChartPro.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: 'ScatterChartPro',\n label: 'Scatter Chart',\n description:\n 'Scatter plot showing the relationship between two measures across a grouping dimension. Use to spot correlations.',\n category: 'Scatter Charts',\n inputs: [\n inputs.dataset,\n inputs.xMeasure,\n inputs.yMeasure,\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 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 ],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nexport type ScatterChartProState = Record<string, never>;\n\nconst previewConfig = {\n dataset: previewData.dataset,\n xMeasure: previewData.measure,\n yMeasure: previewData.measureVariant,\n pointDimension: previewData.dimension,\n results: previewData.results2Measures1Dimension,\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.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: ScatterChartProOptionsClickArg) => ({\n xMeasureValue: value.xMeasureValue ?? Value.noFilter(),\n yMeasureValue: value.yMeasureValue ?? 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]: [ScatterChartProState, (state: ScatterChartProState) => void],\n clientContext: ThemeClientContext,\n) => ({\n ...inputs,\n pointColor: inputs.pointColor as string | undefined,\n results: loadDataResults(inputs, clientContext),\n});\n\nexport const scatterChartPro = {\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":["buildDatalabelsValue","xMeasure","yMeasure","formatValue","_value","context","raw","_a","getScatterChartProOptions","noValueLabel","showPointLabels","theme","themeFormatter","getThemeFormatter","measure","value","pointRadius","getStyleNumber","labelGap","labelLineHeight","captionOffset","valueOffset","getScatterScales","ctx","ds","orig","prefix","getPointClickData","point","datasets","data","pointDimension","groupByDimension","rowIdx","_b","row","pointField","getDimensionFieldName","groupField","pointDimensionValue","rawValueToString","groupByDimensionValue","getTimeRangeFromDimensionValue","createScatterClickHandler","results","onPointClick","elementAtEvent","element","clickData","getScatterChartProData","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","ScatterChartPro","useTheme","i18nSetup","pointColor","showLegend","showTooltips","showValueLabels","showLogarithmicScale","xAxisRangeMin","xAxisRangeMax","yAxisRangeMin","yAxisRangeMax","reverseXAxis","hideMenu","title","description","tooltip","xAxisLabel","yAxisLabel","resolveI18nProps","i18n","chartData","handleClick","chartOptions","mergician","jsx","ChartCard","ScatterChart","meta","inputs","subInputs","previewConfig","previewData","preview","definePreview","Component","loadDataResultsArgs","clientContext","getClientContextTimezone","loadDataResults","loadData","events","Value","_state","_setState","scatterChartPro"],"mappings":"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"}
1
+ {"version":3,"file":"definition-J3ahAeKj.js","sources":["../src/components/charts/scatter/ScatterChartPro/ScatterChartPro.utils.ts","../src/components/charts/scatter/ScatterChartPro/index.tsx","../src/components/charts/scatter/ScatterChartPro/definition.ts"],"sourcesContent":["import { ChartData, type ChartOptions, ScatterDataPoint } 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 {\n ChartClickArgs,\n ScatterChartInputPoint,\n ScatterDatasetExtended,\n} from '@embeddable.com/remarkable-ui';\nimport { getDimensionMeasureColor } from '../../../../theme/styles/styles.utils';\nimport type { ScatterChartProOptionsClickArg } from './ScatterChartPro.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\nconst buildDatalabelsValue = (\n xMeasure: Measure,\n yMeasure: Measure,\n formatValue: (measure: Measure, value: number | null | undefined) => string,\n) => ({\n formatter: (_value: ScatterDataPoint | number | null, context: Context) => {\n const ds = context.dataset as ScatterDatasetExtended;\n const raw = ds.originalData?.[context.dataIndex];\n if (!raw) return '';\n return `${formatValue(xMeasure, raw.x)}, ${formatValue(yMeasure, raw.y)}`;\n },\n});\n\nexport const getScatterChartProOptions = (\n {\n xMeasure,\n yMeasure,\n noValueLabel,\n showPointLabels,\n }: {\n xMeasure: Measure;\n yMeasure: Measure;\n noValueLabel: string;\n showPointLabels?: boolean;\n },\n theme: Theme,\n): Partial<ChartOptions<'scatter'>> => {\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 pointRadius = getStyleNumber('--em-scatterchart-point-radius', '0.375rem');\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 captionOffset = pointRadius + labelGap;\n const valueOffset = showPointLabels\n ? pointRadius + labelGap + labelLineHeight + labelGap\n : pointRadius + labelGap;\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 ScatterDatasetExtended;\n const orig =\n ds.originalData?.[ctx.dataIndex] ??\n (ctx.dataset.data[ctx.dataIndex] as\n | { x: number | null; y: number | null }\n | undefined);\n const prefix = ds.label ? `${ds.label}: ` : '';\n if (!orig) return prefix;\n return `${prefix}(${formatValue(xMeasure, orig.x)}, ${formatValue(yMeasure, orig.y)})`;\n },\n },\n },\n datalabels: {\n labels: {\n value: {\n display: 'auto',\n ...buildDatalabelsValue(xMeasure, yMeasure, formatValue),\n anchor: 'center',\n align: 'bottom',\n offset: valueOffset,\n },\n caption: {\n display: 'auto',\n anchor: 'center',\n align: 'bottom',\n offset: captionOffset,\n },\n },\n },\n },\n };\n};\n\nexport type ScatterPoint = ScatterChartInputPoint & { rowIndex: number };\n\nexport const getPointClickData = (\n point: { datasetIndex: number; index: number },\n datasets: ChartData<'scatter', ScatterPoint[]>['datasets'],\n data: DataResponse['data'],\n xMeasure: Measure,\n yMeasure: Measure,\n pointDimension: Dimension,\n groupByDimension?: Dimension,\n): ScatterChartProOptionsClickArg | 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 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 createScatterClickHandler = ({\n datasets,\n results,\n xMeasure,\n yMeasure,\n pointDimension,\n groupByDimension,\n onPointClick,\n}: {\n datasets: ChartData<'scatter', ScatterPoint[]>['datasets'];\n results: DataResponse;\n xMeasure: Measure;\n yMeasure: Measure;\n pointDimension: Dimension;\n groupByDimension?: Dimension;\n onPointClick?: (payload: ScatterChartProOptionsClickArg) => void;\n}): ((args: ChartClickArgs) => void) => {\n return ({ elementAtEvent }) => {\n const element = elementAtEvent[0];\n if (!element) return;\n const clickData = getPointClickData(\n element,\n datasets,\n results.data,\n xMeasure,\n yMeasure,\n pointDimension,\n groupByDimension,\n );\n if (clickData) onPointClick?.(clickData);\n };\n};\n\nexport const getScatterChartProData = (\n props: {\n data: DataResponse['data'];\n xMeasure: Measure;\n yMeasure: Measure;\n pointDimension: Dimension;\n groupByDimension?: Dimension | null;\n noValueLabel: string;\n pointColor?: string;\n },\n theme: Theme,\n): ChartData<'scatter', ScatterPoint[]> => {\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.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): ScatterPoint => {\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 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 pointBackgroundColor: getColor('background', props.xMeasure, props.xMeasure.name, 0),\n pointBorderColor: 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, ScatterPoint[]>();\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 pointBackgroundColor: getColor('background', groupDim, colorKey, index),\n pointBorderColor: getColor('border', groupDim, colorKey, index),\n };\n });\n\n return { datasets };\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { ScatterChart } 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 createScatterClickHandler,\n getScatterChartProData,\n getScatterChartProOptions,\n} from './ScatterChartPro.utils';\n\nimport type { ScatterChartProOptionsClickArg } from './ScatterChartPro.types';\n\nexport type ScatterChartProProps = {\n xMeasure: Measure;\n yMeasure: 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 onPointClick?: (payload: ScatterChartProOptionsClickArg) => void;\n} & ChartCardHeaderProps;\n\nconst ScatterChartPro = (props: ScatterChartProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const {\n xMeasure,\n yMeasure,\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 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 = getScatterChartProData(\n {\n data: results.data,\n xMeasure,\n yMeasure,\n pointDimension,\n groupByDimension,\n noValueLabel,\n pointColor,\n },\n theme,\n );\n\n const handleClick = createScatterClickHandler({\n datasets: chartData.datasets,\n results,\n xMeasure,\n yMeasure,\n pointDimension,\n groupByDimension,\n onPointClick,\n });\n\n const chartOptions = mergician(\n getScatterChartProOptions({ xMeasure, yMeasure, noValueLabel, showPointLabels }, theme),\n theme.charts.scatterChartPro?.options ?? {},\n );\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[\n pointDimension,\n xMeasure,\n yMeasure,\n ...(groupByDimension ? [groupByDimension] : []),\n ]}\n errorMessage={results.error}\n description={description}\n title={title}\n tooltip={tooltip}\n hideMenu={hideMenu}\n >\n <ScatterChart\n data={chartData}\n options={chartOptions}\n nullBandLabel={noValueLabel}\n showLegend={showLegend}\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 onClick={handleClick}\n />\n </ChartCard>\n );\n};\n\nexport default ScatterChartPro;\n","import { DataResponse, LoadDataRequest, Value, loadData } from '@embeddable.com/core';\nimport type { ScatterChartProOptionsClickArg } from './ScatterChartPro.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: 'ScatterChartPro',\n label: 'Scatter Chart',\n description:\n 'Scatter plot showing the relationship between two measures across a grouping dimension. Use to spot correlations.',\n category: 'Scatter Charts',\n inputs: [\n inputs.dataset,\n inputs.xMeasure,\n inputs.yMeasure,\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 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 ],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nexport type ScatterChartProState = Record<string, never>;\n\nconst previewConfig = {\n dataset: previewData.dataset,\n xMeasure: previewData.measure,\n yMeasure: previewData.measureVariant,\n pointDimension: previewData.dimension,\n results: previewData.results2Measures1Dimension,\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.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: ScatterChartProOptionsClickArg) => ({\n xMeasureValue: value.xMeasureValue ?? Value.noFilter(),\n yMeasureValue: value.yMeasureValue ?? 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]: [ScatterChartProState, (state: ScatterChartProState) => void],\n clientContext: ThemeClientContext,\n) => ({\n ...inputs,\n pointColor: inputs.pointColor as string | undefined,\n results: loadDataResults(inputs, clientContext),\n});\n\nexport const scatterChartPro = {\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":["buildDatalabelsValue","xMeasure","yMeasure","formatValue","_value","context","raw","_a","getScatterChartProOptions","noValueLabel","showPointLabels","theme","themeFormatter","getThemeFormatter","measure","value","pointRadius","getStyleNumber","labelGap","labelLineHeight","captionOffset","valueOffset","getScatterScales","ctx","ds","orig","prefix","getPointClickData","point","datasets","data","pointDimension","groupByDimension","rowIdx","_b","row","pointField","getDimensionFieldName","groupField","pointDimensionValue","rawValueToString","groupByDimensionValue","getTimeRangeFromDimensionValue","createScatterClickHandler","results","onPointClick","elementAtEvent","element","clickData","getScatterChartProData","props","chartColors","getChartColors","overrideColor","getColor","color","dimensionOrMeasure","index","getDimensionMeasureColor","buildPoint","rowIndex","rawPoint","pointLabel","measureToNullableNumber","i","groupDim","bucket","key","NULL_GROUP_KEY","points","a","b","firstRowIndex","groupValue","seriesLabel","colorKey","ScatterChartPro","useTheme","i18nSetup","pointColor","showLegend","showTooltips","showValueLabels","showLogarithmicScale","xAxisRangeMin","xAxisRangeMax","yAxisRangeMin","yAxisRangeMax","reverseXAxis","hideMenu","title","description","tooltip","xAxisLabel","yAxisLabel","resolveI18nProps","i18n","chartData","handleClick","chartOptions","mergician","jsx","ChartCard","ScatterChart","meta","inputs","subInputs","previewConfig","previewData","preview","definePreview","Component","loadDataResultsArgs","clientContext","getClientContextTimezone","loadDataResults","loadData","events","Value","_state","_setState","scatterChartPro"],"mappings":"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"}
@@ -1,13 +1,13 @@
1
- import { a7 as C, u as ie, a8 as F } from "./index-DcPl9DUc.js";
1
+ import { j as C, Q as ie, l as F } from "./index-BDd5cXFC.js";
2
2
  import { useTheme as re, definePreview as le } from "@embeddable.com/react";
3
3
  import { i as me, r as ue, a as de } from "./component.utils-oQMZT7TK.js";
4
- import { C as ce } from "./ChartCard-HpSv5cY6.js";
4
+ import { C as ce } from "./ChartCard-Zy5lPApV.js";
5
5
  import { useRef as we, useState as x, useEffect as be } from "react";
6
- import { u as A } from "./charts.fillGaps.hooks-CvS5tfFP.js";
7
- import { b as M } from "./formatter.utils-CueRuFiK.js";
6
+ import { u as A } from "./charts.fillGaps.hooks-BemPBhvC.js";
7
+ import { g as M } from "./formatter.utils-DE-_ADag.js";
8
8
  import { u as pe } from "./tables.hooks-fVC_4V5K.js";
9
- import { i as a, s as f } from "./component.inputs.constants-DYl-U975.js";
10
- import { p as b } from "./preview.data.constants-B8B82ITM.js";
9
+ import { i as a, s as f } from "./component.inputs.constants-DoBT8ykS.js";
10
+ import { p as b } from "./preview.data.constants-B3oyUsaQ.js";
11
11
  import { g as B } from "./clientContext.utils-DpB5KsfX.js";
12
12
  const Re = (e, o) => {
13
13
  const s = M(o);
@@ -60,14 +60,14 @@ const Re = (e, o) => {
60
60
  }), V = A({
61
61
  results: q,
62
62
  dimension: r
63
- }), H = pe({
63
+ }), Q = pe({
64
64
  results: V,
65
65
  columnOrder: K,
66
66
  rowOrder: N,
67
67
  columnDimension: c,
68
68
  rowDimension: r,
69
69
  measures: m
70
- }), J = we(null), Q = Re({ measures: m, displayNullAs: G }, o), U = h({ dimension: r }, o), X = u ? h({ dimension: u }, o) : void 0, Y = h({ dimension: c }, o), Z = fe(m), $ = he(m), [ee, D] = x(/* @__PURE__ */ new Set()), [oe, se] = x(/* @__PURE__ */ new Map()), ne = (l) => {
70
+ }), H = we(null), J = Re({ measures: m, displayNullAs: G }, o), U = h({ dimension: r }, o), X = u ? h({ dimension: u }, o) : void 0, Y = h({ dimension: c }, o), Z = fe(m), $ = he(m), [ee, D] = x(/* @__PURE__ */ new Set()), [oe, se] = x(/* @__PURE__ */ new Map()), ne = (l) => {
71
71
  D((d) => new Set(d).add(l)), I(l);
72
72
  };
73
73
  be(() => {
@@ -94,7 +94,7 @@ const Re = (e, o) => {
94
94
  return /* @__PURE__ */ C.jsx(
95
95
  ce,
96
96
  {
97
- ref: J,
97
+ ref: H,
98
98
  title: s,
99
99
  description: n,
100
100
  tooltip: i,
@@ -108,8 +108,8 @@ const Re = (e, o) => {
108
108
  firstColumnWidth: k,
109
109
  columnWidth: L,
110
110
  totalLabel: de.t("charts.pivotTable.total"),
111
- data: H,
112
- measures: Q,
111
+ data: Q,
112
+ measures: J,
113
113
  rowDimension: U,
114
114
  columnDimension: Y,
115
115
  columnTotalsFor: Z,
@@ -123,7 +123,7 @@ const Re = (e, o) => {
123
123
  )
124
124
  }
125
125
  );
126
- }, Oe = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
126
+ }, ze = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
127
127
  __proto__: null,
128
128
  default: g
129
129
  }, Symbol.toStringTag, { value: "Module" })), De = {
@@ -209,7 +209,7 @@ const Re = (e, o) => {
209
209
  limit: e.maxResults,
210
210
  countRows: !0,
211
211
  timezone: B(o == null ? void 0 : o.timezone)
212
- }), z = (e, o) => F(W(e, o)), O = (e, o, s) => ({
212
+ }), j = (e, o) => F(W(e, o)), z = (e, o, s) => ({
213
213
  from: e.dataset,
214
214
  select: [e.rowDimension, e.subRowDimension, e.columnDimension, ...e.measures],
215
215
  limit: e.maxResults,
@@ -222,9 +222,9 @@ const Re = (e, o) => {
222
222
  value: o
223
223
  }
224
224
  ]
225
- }), j = (e, o, s) => {
225
+ }), O = (e, o, s) => {
226
226
  if (o.length > 0)
227
- return F(O(e, o, s));
227
+ return F(z(e, o, s));
228
228
  }, ve = (e, [o, s], n) => {
229
229
  const i = (o == null ? void 0 : o.expandedRowKeys) ?? [];
230
230
  return {
@@ -232,10 +232,10 @@ const Re = (e, o) => {
232
232
  state: o,
233
233
  expandedRowKeys: i,
234
234
  setExpandedRowKey: (t) => s({ expandedRowKeys: [...i, t] }),
235
- results: z(e, n),
236
- resultsSubRows: j(e, i, n)
235
+ results: j(e, n),
236
+ resultsSubRows: O(e, i, n)
237
237
  };
238
- }, je = {
238
+ }, Oe = {
239
239
  Component: g,
240
240
  meta: De,
241
241
  preview: ye,
@@ -245,11 +245,11 @@ const Re = (e, o) => {
245
245
  },
246
246
  results: {
247
247
  loadDataArgs: W,
248
- loadData: z
248
+ loadData: j
249
249
  },
250
250
  resultsSubRows: {
251
- loadDataArgs: O,
252
- loadData: j
251
+ loadDataArgs: z,
252
+ loadData: O
253
253
  }
254
254
  };
255
255
  export {
@@ -257,7 +257,7 @@ export {
257
257
  Re as b,
258
258
  he as c,
259
259
  fe as g,
260
- Oe as i,
261
- je as p
260
+ ze as i,
261
+ Oe as p
262
262
  };
263
- //# sourceMappingURL=definition-CvUSTWbU.js.map
263
+ //# sourceMappingURL=definition-Na_Pv1dO.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"definition-CvUSTWbU.js","sources":["../src/components/charts/tables/PivotTablePro/PivotPro.utils.ts","../src/utils/array.utils.ts","../src/components/charts/tables/PivotTablePro/index.tsx","../src/components/charts/tables/PivotTablePro/definition.ts"],"sourcesContent":["import { Dimension, Measure } from '@embeddable.com/core';\nimport { Theme } from '../../../../theme/theme.types';\nimport { PivotTableProps } from '@embeddable.com/remarkable-ui';\nimport { getThemeFormatter } from '../../../../theme/formatter/formatter.utils';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport const getPivotMeasures = (\n props: { measures: Measure[]; displayNullAs?: string },\n theme: Theme,\n): PivotTableProps<any>['measures'] => {\n const themeFormatter = getThemeFormatter(theme);\n\n return props.measures.map((measure) => {\n return {\n key: measure.name,\n label: themeFormatter.dimensionOrMeasureTitle(measure),\n showAsPercentage: Boolean(measure.inputs?.showAsPercentage),\n percentageDecimalPlaces: measure.inputs?.decimalPlaces ?? 1,\n accessor: (row) => {\n const value = row[measure.name];\n\n return value == null\n ? props.displayNullAs\n : themeFormatter.data(measure, row[measure.name]);\n },\n };\n });\n};\n\nexport const getPivotDimension = (\n props: { dimension: Dimension },\n theme: Theme,\n): PivotTableProps<any>['rowDimension' | 'columnDimension'] => {\n const themeFormatter = getThemeFormatter(theme);\n\n return {\n key: props.dimension.name,\n label: themeFormatter.dimensionOrMeasureTitle(props.dimension),\n formatValue: (value: string) => themeFormatter.data(props.dimension, value),\n };\n};\n\nexport const getPivotColumnTotalsFor = (\n measures: Measure[],\n): PivotTableProps<any>['columnTotalsFor'] | undefined => {\n return measures.filter((m) => m.inputs?.showColumnTotal).map((m) => m.name);\n};\n\nexport const getPivotRowTotalsFor = (\n measures: Measure[],\n): PivotTableProps<any>['rowTotalsFor'] | undefined => {\n return measures.filter((m) => m.inputs?.showRowTotal).map((m) => m.name);\n};\n","export const sortArrayByProp = <T, K extends keyof T>(\n arr: T[],\n prop: K,\n order: 'asc' | 'desc' = 'asc',\n): T[] => {\n return [...arr].sort((a, b) => {\n if (a[prop] < b[prop]) return order === 'asc' ? -1 : 1;\n if (a[prop] > b[prop]) return order === 'asc' ? 1 : -1;\n return 0;\n });\n};\n","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 { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { PivotTable } from '@embeddable.com/remarkable-ui';\nimport { useEffect, useRef, useState } from 'react';\nimport { useFillGaps } from '../../charts.fillGaps.hooks';\nimport {\n getPivotColumnTotalsFor,\n getPivotDimension,\n getPivotMeasures,\n getPivotRowTotalsFor,\n} from './PivotPro.utils';\nimport { useGetTableSortedResults } from '../tables.hooks';\nimport { sortArrayByProp } from '../../../../utils/array.utils';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport type PivotTableProProps = {\n results: DataResponse;\n resultsSubRows?: DataResponse;\n measures: Measure[];\n rowDimension: Dimension;\n subRowDimension?: Dimension;\n columnDimension: Dimension;\n displayNullAs?: string;\n columnWidth?: number;\n firstColumnWidth?: number;\n expandedRowKeys: string[];\n setExpandedRowKey: (expandedRowKeys: string) => void;\n} & ChartCardHeaderProps;\n\nconst PivotTablePro = (props: PivotTableProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { title, description, tooltip } = resolveI18nProps(props);\n const {\n resultsSubRows,\n measures,\n rowDimension,\n subRowDimension,\n columnDimension,\n displayNullAs,\n columnWidth,\n firstColumnWidth,\n hideMenu,\n expandedRowKeys,\n setExpandedRowKey,\n } = props;\n\n const columnOrder = Array.from(\n new Set((props.results.data ?? []).filter(Boolean).map((d) => d[columnDimension.name])),\n );\n\n const rowOrder = Array.from(\n new Set((props.results.data ?? []).filter(Boolean).map((d) => d[rowDimension.name])),\n );\n\n // Fill gaps for the column dimension\n const resultsColumnDimensionFillGaps = useFillGaps({\n results: props.results,\n dimension: columnDimension,\n });\n\n // Fill gaps for the row dimension\n const resultsRowColumnDimensionFillGaps = useFillGaps({\n results: resultsColumnDimensionFillGaps,\n dimension: rowDimension,\n });\n\n const results = useGetTableSortedResults({\n results: resultsRowColumnDimensionFillGaps,\n columnOrder,\n rowOrder,\n columnDimension,\n rowDimension,\n measures,\n });\n\n const cardContentRef = useRef<HTMLDivElement>(null);\n\n const pivotMeasures = getPivotMeasures({ measures, displayNullAs }, theme);\n const pivotRowDimension = getPivotDimension({ dimension: rowDimension }, theme);\n const pivotSubRowDimension = subRowDimension\n ? getPivotDimension({ dimension: subRowDimension }, theme)\n : undefined;\n const pivotColumnDimension = getPivotDimension({ dimension: columnDimension }, theme);\n const pivotColumnTotalsFor = getPivotColumnTotalsFor(measures);\n const pivotRowTotalsFor = getPivotRowTotalsFor(measures);\n\n const [loadingRows, setLoadingRows] = useState(new Set<string>());\n const [subRowsByRow, setSubRowsByRow] = useState(new Map<string, any[]>());\n\n const handleRowExpand = (rowKey: string) => {\n setLoadingRows((prev) => new Set(prev).add(rowKey));\n setExpandedRowKey(rowKey);\n };\n\n useEffect(() => {\n // No results or no expandedRowKeys, nothing to load\n if (!resultsSubRows || !resultsSubRows?.data || expandedRowKeys.length === 0) {\n return;\n }\n\n const subRowsByRowData = new Map<string, any[]>();\n expandedRowKeys.forEach((rowKey) => {\n const containsSubRow = resultsSubRows.data?.some(\n (row) => String(row[rowDimension.name]) === rowKey,\n );\n\n if (containsSubRow) {\n const subRows =\n resultsSubRows.data?.filter((row) => String(row[rowDimension.name]) === rowKey) ?? [];\n const subRowsSorted = subRowDimension\n ? sortArrayByProp(subRows, subRowDimension.name, 'asc')\n : subRows;\n\n subRowsByRowData.set(rowKey, subRowsSorted);\n setLoadingRows((prev) => {\n const next = new Set(prev);\n next.delete(rowKey);\n return next;\n });\n }\n });\n setSubRowsByRow(subRowsByRowData);\n }, [resultsSubRows, expandedRowKeys, rowDimension, subRowDimension]);\n\n const data: DataResponse = {\n ...props.results,\n isLoading: Boolean(props.results?.isLoading || resultsSubRows?.isLoading),\n };\n\n return (\n <ChartCard\n ref={cardContentRef}\n title={title}\n description={description}\n tooltip={tooltip}\n data={data}\n dimensionsAndMeasures={[rowDimension, columnDimension, ...measures]}\n errorMessage={props.results?.error}\n hideMenu={hideMenu}\n >\n <PivotTable\n firstColumnWidth={firstColumnWidth}\n columnWidth={columnWidth}\n totalLabel={i18n.t('charts.pivotTable.total')}\n data={results}\n measures={pivotMeasures}\n rowDimension={pivotRowDimension}\n columnDimension={pivotColumnDimension}\n columnTotalsFor={pivotColumnTotalsFor}\n rowTotalsFor={pivotRowTotalsFor}\n expandableRows={Boolean(subRowDimension)}\n subRowsByRow={subRowsByRow}\n loadingRows={loadingRows}\n onRowExpand={handleRowExpand}\n subRowDimension={pivotSubRowDimension}\n />\n </ChartCard>\n );\n};\n\nexport default PivotTablePro;\n","import { DataResponse, LoadDataRequest, loadData } from '@embeddable.com/core';\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: 'PivotTablePro',\n label: 'Pivot Table',\n description:\n 'Cross-tabulated table — row and column dimensions intersected by one or more measures.',\n category: 'Table Charts',\n inputs: [\n inputs.dataset,\n {\n ...inputs.measures,\n label: 'Measures to display',\n inputs: [\n ...inputs.measures.inputs,\n {\n ...subInputs.boolean,\n name: 'showColumnTotal',\n label: 'Show column total',\n },\n {\n ...subInputs.boolean,\n name: 'showRowTotal',\n label: 'Show row total',\n },\n {\n ...subInputs.boolean,\n name: 'showAsPercentage',\n label: 'Show as percentage',\n description: 'If turned on, other measures may be ignored',\n defaultValue: false,\n },\n ],\n },\n {\n ...inputs.dimensionWithDateBounds,\n label: 'Column dimension',\n name: 'columnDimension',\n },\n {\n ...inputs.dimensionWithDateBounds,\n label: 'Primary row dimension',\n name: 'rowDimension',\n },\n {\n ...inputs.dimension,\n label: 'Secondary row dimension (optional)',\n name: 'subRowDimension',\n required: false,\n description:\n 'When set, each primary row becomes expandable. Clicking a row loads a breakdown by the second dimension.',\n },\n inputs.title,\n inputs.description,\n inputs.tooltip,\n inputs.displayNullAs,\n {\n ...inputs.number,\n name: 'firstColumnWidth',\n label: 'First column width',\n description: 'Set the width in px (e.g. 200)',\n category: 'Component Settings',\n },\n {\n ...inputs.number,\n name: 'columnWidth',\n label: 'Column width',\n description: 'Set the width in px (e.g. 200)',\n category: 'Component Settings',\n },\n inputs.maxResults,\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nexport type PivotTableProState = {\n expandedRowKeys?: string[];\n};\n\nconst previewConfig = {\n measures: [{ ...previewData.measure, inputs: { showRowTotal: true, showColumnTotal: true } }],\n rowDimension: previewData.dimension,\n columnDimension: previewData.dimensionGroup,\n results: previewData.results1Measure2Dimensions,\n hideMenu: true,\n expandedRowKeys: [],\n setExpandedRowKey: () => {},\n};\n\nconst preview = definePreview(Component, previewConfig);\n\nconst loadDataResultsArgs = (\n inputs: Inputs<typeof meta>,\n clientContext?: ThemeClientContext,\n): LoadDataRequest => ({\n from: inputs.dataset,\n select: [inputs.rowDimension, inputs.columnDimension, ...inputs.measures],\n limit: inputs.maxResults,\n countRows: true,\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 loadDataResultsSubRowsArgs = (\n inputs: Inputs<typeof meta>,\n expandedRowKeys: string[],\n clientContext?: ThemeClientContext,\n): LoadDataRequest => ({\n from: inputs.dataset,\n select: [inputs.rowDimension, inputs.subRowDimension, inputs.columnDimension, ...inputs.measures],\n limit: inputs.maxResults,\n countRows: true,\n timezone: getClientContextTimezone(clientContext?.timezone),\n filters: [\n {\n property: inputs.rowDimension,\n operator: 'equals',\n value: expandedRowKeys,\n },\n ],\n});\n\nconst loadDataResultsSubRows = (\n inputs: Inputs<typeof meta>,\n expandedRowKeys: string[],\n clientContext?: ThemeClientContext,\n): DataResponse | undefined => {\n if (expandedRowKeys.length > 0) {\n return loadData(loadDataResultsSubRowsArgs(inputs, expandedRowKeys, clientContext));\n }\n return undefined;\n};\n\nconst props = (\n inputs: Inputs<typeof meta>,\n [state, setState]: [PivotTableProState, (state: PivotTableProState) => void],\n clientContext: ThemeClientContext,\n) => {\n const expandedRowKeys = state?.expandedRowKeys ?? [];\n\n return {\n ...inputs,\n state,\n expandedRowKeys,\n setExpandedRowKey: (rowKey: string) =>\n setState({ expandedRowKeys: [...expandedRowKeys, rowKey] }),\n results: loadDataResults(inputs, clientContext),\n resultsSubRows: loadDataResultsSubRows(inputs, expandedRowKeys, clientContext),\n };\n};\n\nexport const pivotTablePro = {\n Component,\n meta,\n preview,\n previewConfig,\n config: {\n props,\n },\n results: {\n loadDataArgs: loadDataResultsArgs,\n loadData: loadDataResults,\n },\n resultsSubRows: {\n loadDataArgs: loadDataResultsSubRowsArgs,\n loadData: loadDataResultsSubRows,\n },\n} as const;\n"],"names":["getPivotMeasures","props","theme","themeFormatter","getThemeFormatter","measure","_a","_b","row","getPivotDimension","value","getPivotColumnTotalsFor","measures","m","getPivotRowTotalsFor","sortArrayByProp","arr","prop","order","a","b","PivotTablePro","useTheme","i18nSetup","title","description","tooltip","resolveI18nProps","resultsSubRows","rowDimension","subRowDimension","columnDimension","displayNullAs","columnWidth","firstColumnWidth","hideMenu","expandedRowKeys","setExpandedRowKey","columnOrder","d","rowOrder","resultsColumnDimensionFillGaps","useFillGaps","resultsRowColumnDimensionFillGaps","results","useGetTableSortedResults","cardContentRef","useRef","pivotMeasures","pivotRowDimension","pivotSubRowDimension","pivotColumnDimension","pivotColumnTotalsFor","pivotRowTotalsFor","loadingRows","setLoadingRows","useState","subRowsByRow","setSubRowsByRow","handleRowExpand","rowKey","prev","useEffect","subRowsByRowData","subRows","subRowsSorted","next","data","jsx","ChartCard","PivotTable","i18n","meta","inputs","subInputs","previewConfig","previewData","preview","definePreview","Component","loadDataResultsArgs","clientContext","getClientContextTimezone","loadDataResults","loadData","loadDataResultsSubRowsArgs","loadDataResultsSubRows","state","setState","pivotTablePro"],"mappings":"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"}
1
+ {"version":3,"file":"definition-Na_Pv1dO.js","sources":["../src/components/charts/tables/PivotTablePro/PivotPro.utils.ts","../src/utils/array.utils.ts","../src/components/charts/tables/PivotTablePro/index.tsx","../src/components/charts/tables/PivotTablePro/definition.ts"],"sourcesContent":["import { Dimension, Measure } from '@embeddable.com/core';\nimport { Theme } from '../../../../theme/theme.types';\nimport { PivotTableProps } from '@embeddable.com/remarkable-ui';\nimport { getThemeFormatter } from '../../../../theme/formatter/formatter.utils';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport const getPivotMeasures = (\n props: { measures: Measure[]; displayNullAs?: string },\n theme: Theme,\n): PivotTableProps<any>['measures'] => {\n const themeFormatter = getThemeFormatter(theme);\n\n return props.measures.map((measure) => {\n return {\n key: measure.name,\n label: themeFormatter.dimensionOrMeasureTitle(measure),\n showAsPercentage: Boolean(measure.inputs?.showAsPercentage),\n percentageDecimalPlaces: measure.inputs?.decimalPlaces ?? 1,\n accessor: (row) => {\n const value = row[measure.name];\n\n return value == null\n ? props.displayNullAs\n : themeFormatter.data(measure, row[measure.name]);\n },\n };\n });\n};\n\nexport const getPivotDimension = (\n props: { dimension: Dimension },\n theme: Theme,\n): PivotTableProps<any>['rowDimension' | 'columnDimension'] => {\n const themeFormatter = getThemeFormatter(theme);\n\n return {\n key: props.dimension.name,\n label: themeFormatter.dimensionOrMeasureTitle(props.dimension),\n formatValue: (value: string) => themeFormatter.data(props.dimension, value),\n };\n};\n\nexport const getPivotColumnTotalsFor = (\n measures: Measure[],\n): PivotTableProps<any>['columnTotalsFor'] | undefined => {\n return measures.filter((m) => m.inputs?.showColumnTotal).map((m) => m.name);\n};\n\nexport const getPivotRowTotalsFor = (\n measures: Measure[],\n): PivotTableProps<any>['rowTotalsFor'] | undefined => {\n return measures.filter((m) => m.inputs?.showRowTotal).map((m) => m.name);\n};\n","export const sortArrayByProp = <T, K extends keyof T>(\n arr: T[],\n prop: K,\n order: 'asc' | 'desc' = 'asc',\n): T[] => {\n return [...arr].sort((a, b) => {\n if (a[prop] < b[prop]) return order === 'asc' ? -1 : 1;\n if (a[prop] > b[prop]) return order === 'asc' ? 1 : -1;\n return 0;\n });\n};\n","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 { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { PivotTable } from '@embeddable.com/remarkable-ui';\nimport { useEffect, useRef, useState } from 'react';\nimport { useFillGaps } from '../../charts.fillGaps.hooks';\nimport {\n getPivotColumnTotalsFor,\n getPivotDimension,\n getPivotMeasures,\n getPivotRowTotalsFor,\n} from './PivotPro.utils';\nimport { useGetTableSortedResults } from '../tables.hooks';\nimport { sortArrayByProp } from '../../../../utils/array.utils';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport type PivotTableProProps = {\n results: DataResponse;\n resultsSubRows?: DataResponse;\n measures: Measure[];\n rowDimension: Dimension;\n subRowDimension?: Dimension;\n columnDimension: Dimension;\n displayNullAs?: string;\n columnWidth?: number;\n firstColumnWidth?: number;\n expandedRowKeys: string[];\n setExpandedRowKey: (expandedRowKeys: string) => void;\n} & ChartCardHeaderProps;\n\nconst PivotTablePro = (props: PivotTableProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { title, description, tooltip } = resolveI18nProps(props);\n const {\n resultsSubRows,\n measures,\n rowDimension,\n subRowDimension,\n columnDimension,\n displayNullAs,\n columnWidth,\n firstColumnWidth,\n hideMenu,\n expandedRowKeys,\n setExpandedRowKey,\n } = props;\n\n const columnOrder = Array.from(\n new Set((props.results.data ?? []).filter(Boolean).map((d) => d[columnDimension.name])),\n );\n\n const rowOrder = Array.from(\n new Set((props.results.data ?? []).filter(Boolean).map((d) => d[rowDimension.name])),\n );\n\n // Fill gaps for the column dimension\n const resultsColumnDimensionFillGaps = useFillGaps({\n results: props.results,\n dimension: columnDimension,\n });\n\n // Fill gaps for the row dimension\n const resultsRowColumnDimensionFillGaps = useFillGaps({\n results: resultsColumnDimensionFillGaps,\n dimension: rowDimension,\n });\n\n const results = useGetTableSortedResults({\n results: resultsRowColumnDimensionFillGaps,\n columnOrder,\n rowOrder,\n columnDimension,\n rowDimension,\n measures,\n });\n\n const cardContentRef = useRef<HTMLDivElement>(null);\n\n const pivotMeasures = getPivotMeasures({ measures, displayNullAs }, theme);\n const pivotRowDimension = getPivotDimension({ dimension: rowDimension }, theme);\n const pivotSubRowDimension = subRowDimension\n ? getPivotDimension({ dimension: subRowDimension }, theme)\n : undefined;\n const pivotColumnDimension = getPivotDimension({ dimension: columnDimension }, theme);\n const pivotColumnTotalsFor = getPivotColumnTotalsFor(measures);\n const pivotRowTotalsFor = getPivotRowTotalsFor(measures);\n\n const [loadingRows, setLoadingRows] = useState(new Set<string>());\n const [subRowsByRow, setSubRowsByRow] = useState(new Map<string, any[]>());\n\n const handleRowExpand = (rowKey: string) => {\n setLoadingRows((prev) => new Set(prev).add(rowKey));\n setExpandedRowKey(rowKey);\n };\n\n useEffect(() => {\n // No results or no expandedRowKeys, nothing to load\n if (!resultsSubRows || !resultsSubRows?.data || expandedRowKeys.length === 0) {\n return;\n }\n\n const subRowsByRowData = new Map<string, any[]>();\n expandedRowKeys.forEach((rowKey) => {\n const containsSubRow = resultsSubRows.data?.some(\n (row) => String(row[rowDimension.name]) === rowKey,\n );\n\n if (containsSubRow) {\n const subRows =\n resultsSubRows.data?.filter((row) => String(row[rowDimension.name]) === rowKey) ?? [];\n const subRowsSorted = subRowDimension\n ? sortArrayByProp(subRows, subRowDimension.name, 'asc')\n : subRows;\n\n subRowsByRowData.set(rowKey, subRowsSorted);\n setLoadingRows((prev) => {\n const next = new Set(prev);\n next.delete(rowKey);\n return next;\n });\n }\n });\n setSubRowsByRow(subRowsByRowData);\n }, [resultsSubRows, expandedRowKeys, rowDimension, subRowDimension]);\n\n const data: DataResponse = {\n ...props.results,\n isLoading: Boolean(props.results?.isLoading || resultsSubRows?.isLoading),\n };\n\n return (\n <ChartCard\n ref={cardContentRef}\n title={title}\n description={description}\n tooltip={tooltip}\n data={data}\n dimensionsAndMeasures={[rowDimension, columnDimension, ...measures]}\n errorMessage={props.results?.error}\n hideMenu={hideMenu}\n >\n <PivotTable\n firstColumnWidth={firstColumnWidth}\n columnWidth={columnWidth}\n totalLabel={i18n.t('charts.pivotTable.total')}\n data={results}\n measures={pivotMeasures}\n rowDimension={pivotRowDimension}\n columnDimension={pivotColumnDimension}\n columnTotalsFor={pivotColumnTotalsFor}\n rowTotalsFor={pivotRowTotalsFor}\n expandableRows={Boolean(subRowDimension)}\n subRowsByRow={subRowsByRow}\n loadingRows={loadingRows}\n onRowExpand={handleRowExpand}\n subRowDimension={pivotSubRowDimension}\n />\n </ChartCard>\n );\n};\n\nexport default PivotTablePro;\n","import { DataResponse, LoadDataRequest, loadData } from '@embeddable.com/core';\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: 'PivotTablePro',\n label: 'Pivot Table',\n description:\n 'Cross-tabulated table — row and column dimensions intersected by one or more measures.',\n category: 'Table Charts',\n inputs: [\n inputs.dataset,\n {\n ...inputs.measures,\n label: 'Measures to display',\n inputs: [\n ...inputs.measures.inputs,\n {\n ...subInputs.boolean,\n name: 'showColumnTotal',\n label: 'Show column total',\n },\n {\n ...subInputs.boolean,\n name: 'showRowTotal',\n label: 'Show row total',\n },\n {\n ...subInputs.boolean,\n name: 'showAsPercentage',\n label: 'Show as percentage',\n description: 'If turned on, other measures may be ignored',\n defaultValue: false,\n },\n ],\n },\n {\n ...inputs.dimensionWithDateBounds,\n label: 'Column dimension',\n name: 'columnDimension',\n },\n {\n ...inputs.dimensionWithDateBounds,\n label: 'Primary row dimension',\n name: 'rowDimension',\n },\n {\n ...inputs.dimension,\n label: 'Secondary row dimension (optional)',\n name: 'subRowDimension',\n required: false,\n description:\n 'When set, each primary row becomes expandable. Clicking a row loads a breakdown by the second dimension.',\n },\n inputs.title,\n inputs.description,\n inputs.tooltip,\n inputs.displayNullAs,\n {\n ...inputs.number,\n name: 'firstColumnWidth',\n label: 'First column width',\n description: 'Set the width in px (e.g. 200)',\n category: 'Component Settings',\n },\n {\n ...inputs.number,\n name: 'columnWidth',\n label: 'Column width',\n description: 'Set the width in px (e.g. 200)',\n category: 'Component Settings',\n },\n inputs.maxResults,\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nexport type PivotTableProState = {\n expandedRowKeys?: string[];\n};\n\nconst previewConfig = {\n measures: [{ ...previewData.measure, inputs: { showRowTotal: true, showColumnTotal: true } }],\n rowDimension: previewData.dimension,\n columnDimension: previewData.dimensionGroup,\n results: previewData.results1Measure2Dimensions,\n hideMenu: true,\n expandedRowKeys: [],\n setExpandedRowKey: () => {},\n};\n\nconst preview = definePreview(Component, previewConfig);\n\nconst loadDataResultsArgs = (\n inputs: Inputs<typeof meta>,\n clientContext?: ThemeClientContext,\n): LoadDataRequest => ({\n from: inputs.dataset,\n select: [inputs.rowDimension, inputs.columnDimension, ...inputs.measures],\n limit: inputs.maxResults,\n countRows: true,\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 loadDataResultsSubRowsArgs = (\n inputs: Inputs<typeof meta>,\n expandedRowKeys: string[],\n clientContext?: ThemeClientContext,\n): LoadDataRequest => ({\n from: inputs.dataset,\n select: [inputs.rowDimension, inputs.subRowDimension, inputs.columnDimension, ...inputs.measures],\n limit: inputs.maxResults,\n countRows: true,\n timezone: getClientContextTimezone(clientContext?.timezone),\n filters: [\n {\n property: inputs.rowDimension,\n operator: 'equals',\n value: expandedRowKeys,\n },\n ],\n});\n\nconst loadDataResultsSubRows = (\n inputs: Inputs<typeof meta>,\n expandedRowKeys: string[],\n clientContext?: ThemeClientContext,\n): DataResponse | undefined => {\n if (expandedRowKeys.length > 0) {\n return loadData(loadDataResultsSubRowsArgs(inputs, expandedRowKeys, clientContext));\n }\n return undefined;\n};\n\nconst props = (\n inputs: Inputs<typeof meta>,\n [state, setState]: [PivotTableProState, (state: PivotTableProState) => void],\n clientContext: ThemeClientContext,\n) => {\n const expandedRowKeys = state?.expandedRowKeys ?? [];\n\n return {\n ...inputs,\n state,\n expandedRowKeys,\n setExpandedRowKey: (rowKey: string) =>\n setState({ expandedRowKeys: [...expandedRowKeys, rowKey] }),\n results: loadDataResults(inputs, clientContext),\n resultsSubRows: loadDataResultsSubRows(inputs, expandedRowKeys, clientContext),\n };\n};\n\nexport const pivotTablePro = {\n Component,\n meta,\n preview,\n previewConfig,\n config: {\n props,\n },\n results: {\n loadDataArgs: loadDataResultsArgs,\n loadData: loadDataResults,\n },\n resultsSubRows: {\n loadDataArgs: loadDataResultsSubRowsArgs,\n loadData: loadDataResultsSubRows,\n },\n} as const;\n"],"names":["getPivotMeasures","props","theme","themeFormatter","getThemeFormatter","measure","_a","_b","row","getPivotDimension","value","getPivotColumnTotalsFor","measures","m","getPivotRowTotalsFor","sortArrayByProp","arr","prop","order","a","b","PivotTablePro","useTheme","i18nSetup","title","description","tooltip","resolveI18nProps","resultsSubRows","rowDimension","subRowDimension","columnDimension","displayNullAs","columnWidth","firstColumnWidth","hideMenu","expandedRowKeys","setExpandedRowKey","columnOrder","d","rowOrder","resultsColumnDimensionFillGaps","useFillGaps","resultsRowColumnDimensionFillGaps","results","useGetTableSortedResults","cardContentRef","useRef","pivotMeasures","pivotRowDimension","pivotSubRowDimension","pivotColumnDimension","pivotColumnTotalsFor","pivotRowTotalsFor","loadingRows","setLoadingRows","useState","subRowsByRow","setSubRowsByRow","handleRowExpand","rowKey","prev","useEffect","subRowsByRowData","subRows","subRowsSorted","next","data","jsx","ChartCard","PivotTable","i18n","meta","inputs","subInputs","previewConfig","previewData","preview","definePreview","Component","loadDataResultsArgs","clientContext","getClientContextTimezone","loadDataResults","loadData","loadDataResultsSubRowsArgs","loadDataResultsSubRows","state","setState","pivotTablePro"],"mappings":"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"}