@embeddable.com/remarkable-pro 0.3.2 → 0.3.4

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 (559) 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/components/FilterBuilderItem.d.ts +1 -1
  200. package/dist/components/editors/FilterBuilderPro/components/FilterBuilderItem.d.ts.map +1 -1
  201. package/dist/components/editors/FilterBuilderPro/components/FilterBuilderItemNumberValueField.d.ts +2 -1
  202. package/dist/components/editors/FilterBuilderPro/components/FilterBuilderItemNumberValueField.d.ts.map +1 -1
  203. package/dist/components/editors/FilterBuilderPro/components/FilterBuilderItemOperatorValueFields.d.ts +1 -1
  204. package/dist/components/editors/FilterBuilderPro/components/FilterBuilderItemOperatorValueFields.d.ts.map +1 -1
  205. package/dist/components/editors/FilterBuilderPro/components/FilterBuilderItemValueField.d.ts +1 -1
  206. package/dist/components/editors/FilterBuilderPro/components/FilterBuilderItemValueField.d.ts.map +1 -1
  207. package/dist/components/editors/FilterBuilderPro/components/FilterBuilderTextValueField.d.ts +1 -1
  208. package/dist/components/editors/FilterBuilderPro/components/FilterBuilderTextValueField.d.ts.map +1 -1
  209. package/dist/components/editors/FilterBuilderPro/definition.d.ts +1 -1
  210. package/dist/components/editors/FilterBuilderPro/index.d.ts +2 -1
  211. package/dist/components/editors/FilterBuilderPro/index.d.ts.map +1 -1
  212. package/dist/components/editors/GranularitySelectFieldPro/definition.d.ts +1 -1
  213. package/dist/components/editors/GranularitySelectFieldPro/index.d.ts +1 -1
  214. package/dist/components/editors/GranularitySelectFieldPro/index.d.ts.map +1 -1
  215. package/dist/components/editors/MeasureMultiSelectFieldPro/definition.d.ts +1 -1
  216. package/dist/components/editors/MeasureMultiSelectFieldPro/index.d.ts +1 -1
  217. package/dist/components/editors/MeasureMultiSelectFieldPro/index.d.ts.map +1 -1
  218. package/dist/components/editors/MeasureSingleSelectFieldPro/definition.d.ts +1 -1
  219. package/dist/components/editors/MeasureSingleSelectFieldPro/index.d.ts +1 -1
  220. package/dist/components/editors/MeasureSingleSelectFieldPro/index.d.ts.map +1 -1
  221. package/dist/components/editors/MultiSelectFieldPro/definition.d.ts +1 -1
  222. package/dist/components/editors/MultiSelectFieldPro/index.d.ts +1 -1
  223. package/dist/components/editors/MultiSelectFieldPro/index.d.ts.map +1 -1
  224. package/dist/components/editors/SingleSelectFieldPro/definition.d.ts +1 -1
  225. package/dist/components/editors/SingleSelectFieldPro/index.d.ts +1 -1
  226. package/dist/components/editors/SingleSelectFieldPro/index.d.ts.map +1 -1
  227. package/dist/components/editors/TextFieldPro/definition.d.ts +1 -1
  228. package/dist/components/editors/TextFieldPro/index.d.ts +1 -1
  229. package/dist/components/editors/TextFieldPro/index.d.ts.map +1 -1
  230. package/dist/components/editors/dates/DateRangePickerCustomPro/definition.d.ts +1 -1
  231. package/dist/components/editors/dates/DateRangePickerCustomPro/index.d.ts +1 -1
  232. package/dist/components/editors/dates/DateRangePickerCustomPro/index.d.ts.map +1 -1
  233. package/dist/components/editors/dates/DateRangePickerPresetsPro/definition.d.ts +1 -1
  234. package/dist/components/editors/dates/DateRangePickerPresetsPro/index.d.ts +1 -1
  235. package/dist/components/editors/dates/DateRangePickerPresetsPro/index.d.ts.map +1 -1
  236. package/dist/components/editors/shared/DimensionAndMeasureSingleSelectField/DimensionAndMeasureSingleSelectField.d.ts +1 -1
  237. package/dist/components/editors/shared/DimensionAndMeasureSingleSelectField/DimensionAndMeasureSingleSelectField.d.ts.map +1 -1
  238. package/dist/components/editors/shared/GranularitySelectField/GranularitySelectField.d.ts +1 -1
  239. package/dist/components/editors/shared/GranularitySelectField/GranularitySelectField.d.ts.map +1 -1
  240. package/dist/components/editors/test-utils/multiSelectField.mock.d.ts +1 -1
  241. package/dist/components/editors/test-utils/multiSelectField.mock.d.ts.map +1 -1
  242. package/dist/components/shared/HorizontalDividerPro/definition.d.ts +1 -1
  243. package/dist/components/shared/HorizontalDividerPro/index.d.ts +1 -1
  244. package/dist/components/shared/HorizontalDividerPro/index.d.ts.map +1 -1
  245. package/dist/components/shared/MarkdownPro/definition.d.ts +1 -1
  246. package/dist/components/shared/MarkdownPro/index.d.ts +1 -1
  247. package/dist/components/shared/MarkdownPro/index.d.ts.map +1 -1
  248. package/dist/{cs-OPN2C0ef.js → cs-Dx5Ov9fp.js} +16 -16
  249. package/dist/{cs-OPN2C0ef.js.map → cs-Dx5Ov9fp.js.map} +1 -1
  250. package/dist/{cv-DMmlEzxH.js → cv-BkDAzcmE.js} +3 -3
  251. package/dist/{cv-DMmlEzxH.js.map → cv-BkDAzcmE.js.map} +1 -1
  252. package/dist/{cy-l_moggQe.js → cy-BIwudn52.js} +3 -3
  253. package/dist/{cy-l_moggQe.js.map → cy-BIwudn52.js.map} +1 -1
  254. package/dist/{da-W22SIFso.js → da-DMzGkzN0.js} +3 -3
  255. package/dist/{da-W22SIFso.js.map → da-DMzGkzN0.js.map} +1 -1
  256. package/dist/dates.utils-LPINyM3w.js +169 -0
  257. package/dist/{dates.utils-DFrGqcoZ.js.map → dates.utils-LPINyM3w.js.map} +1 -1
  258. package/dist/{de-YZTYEOmR.js → de-DN_srl9H.js} +3 -3
  259. package/dist/{de-YZTYEOmR.js.map → de-DN_srl9H.js.map} +1 -1
  260. package/dist/{definition-Bt4uNhtN.js → definition-ARaGqiPK.js} +16 -16
  261. package/dist/{definition-Bt4uNhtN.js.map → definition-ARaGqiPK.js.map} +1 -1
  262. package/dist/{definition-Bt9oWobV.js → definition-B42wB3V0.js} +14 -14
  263. package/dist/{definition-Bt9oWobV.js.map → definition-B42wB3V0.js.map} +1 -1
  264. package/dist/{definition-BtFGLZFg.js → definition-BBvfXzrC.js} +17 -17
  265. package/dist/{definition-BtFGLZFg.js.map → definition-BBvfXzrC.js.map} +1 -1
  266. package/dist/{definition-DCCcpo3n.js → definition-BCAbpJor.js} +13 -13
  267. package/dist/{definition-DCCcpo3n.js.map → definition-BCAbpJor.js.map} +1 -1
  268. package/dist/{definition-lIzJ2XJn.js → definition-BJxdz1Ob.js} +26 -26
  269. package/dist/{definition-lIzJ2XJn.js.map → definition-BJxdz1Ob.js.map} +1 -1
  270. package/dist/{definition-C4t0P1wz.js → definition-BbFyJKGT.js} +18 -18
  271. package/dist/{definition-C4t0P1wz.js.map → definition-BbFyJKGT.js.map} +1 -1
  272. package/dist/definition-BjOqcOqq.js +258 -0
  273. package/dist/definition-BjOqcOqq.js.map +1 -0
  274. package/dist/{definition-CtNshA5a.js → definition-Br4qIMwa.js} +8 -8
  275. package/dist/{definition-CtNshA5a.js.map → definition-Br4qIMwa.js.map} +1 -1
  276. package/dist/{definition-D_APsOo5.js → definition-BvkXg6sa.js} +5 -5
  277. package/dist/{definition-D_APsOo5.js.map → definition-BvkXg6sa.js.map} +1 -1
  278. package/dist/{definition-CBKE7nhm.js → definition-BvvALkSQ.js} +12 -12
  279. package/dist/{definition-CBKE7nhm.js.map → definition-BvvALkSQ.js.map} +1 -1
  280. package/dist/{definition-IhaHieBR.js → definition-C2QnSx4_.js} +27 -27
  281. package/dist/{definition-IhaHieBR.js.map → definition-C2QnSx4_.js.map} +1 -1
  282. package/dist/{definition-B4F0jx72.js → definition-CGLcObd0.js} +11 -11
  283. package/dist/{definition-B4F0jx72.js.map → definition-CGLcObd0.js.map} +1 -1
  284. package/dist/{definition-y2Sn7VTL.js → definition-CGSdiMgK.js} +20 -20
  285. package/dist/{definition-y2Sn7VTL.js.map → definition-CGSdiMgK.js.map} +1 -1
  286. package/dist/{definition-lic11MCV.js → definition-CPWqHdnm.js} +22 -22
  287. package/dist/{definition-lic11MCV.js.map → definition-CPWqHdnm.js.map} +1 -1
  288. package/dist/{definition-WLmmLQZs.js → definition-CRNAhkO1.js} +184 -178
  289. package/dist/definition-CRNAhkO1.js.map +1 -0
  290. package/dist/{definition-CoLPvc2U.js → definition-CRNmzeNB.js} +30 -30
  291. package/dist/{definition-CoLPvc2U.js.map → definition-CRNmzeNB.js.map} +1 -1
  292. package/dist/{definition-DHsYpa3_.js → definition-CUU7xEkm.js} +30 -30
  293. package/dist/{definition-DHsYpa3_.js.map → definition-CUU7xEkm.js.map} +1 -1
  294. package/dist/{definition-De2PxrhM.js → definition-CbuWm1Cr.js} +20 -20
  295. package/dist/{definition-De2PxrhM.js.map → definition-CbuWm1Cr.js.map} +1 -1
  296. package/dist/{definition-Bs8jlVww.js → definition-CgHnmzj0.js} +16 -16
  297. package/dist/{definition-Bs8jlVww.js.map → definition-CgHnmzj0.js.map} +1 -1
  298. package/dist/{definition-1VYzuMo9.js → definition-CoQqvrmk.js} +20 -20
  299. package/dist/{definition-1VYzuMo9.js.map → definition-CoQqvrmk.js.map} +1 -1
  300. package/dist/{definition-L3bdSclX.js → definition-CqWyAkfl.js} +131 -127
  301. package/dist/definition-CqWyAkfl.js.map +1 -0
  302. package/dist/{definition-DfgNZaSg.js → definition-Cr47HSkP.js} +6 -6
  303. package/dist/{definition-DfgNZaSg.js.map → definition-Cr47HSkP.js.map} +1 -1
  304. package/dist/{definition-CC9wLJNd.js → definition-CrKiGiWI.js} +6 -6
  305. package/dist/{definition-CC9wLJNd.js.map → definition-CrKiGiWI.js.map} +1 -1
  306. package/dist/{definition-CbYDh9Ub.js → definition-CsPv349D.js} +6 -6
  307. package/dist/{definition-CbYDh9Ub.js.map → definition-CsPv349D.js.map} +1 -1
  308. package/dist/{definition-DDRYN7S1.js → definition-CtJ4b-tU.js} +13 -13
  309. package/dist/{definition-DDRYN7S1.js.map → definition-CtJ4b-tU.js.map} +1 -1
  310. package/dist/{definition-bbEjabtO.js → definition-Cvsjgc9X.js} +20 -20
  311. package/dist/{definition-bbEjabtO.js.map → definition-Cvsjgc9X.js.map} +1 -1
  312. package/dist/definition-DA2tu_w2.js +137 -0
  313. package/dist/definition-DA2tu_w2.js.map +1 -0
  314. package/dist/{definition-ukcHRZZl.js → definition-DNemWu7r.js} +20 -20
  315. package/dist/{definition-ukcHRZZl.js.map → definition-DNemWu7r.js.map} +1 -1
  316. package/dist/{definition-DmskK6py.js → definition-DP17cDpI.js} +99 -100
  317. package/dist/definition-DP17cDpI.js.map +1 -0
  318. package/dist/{definition-DtPY1lz6.js → definition-DpoIUA3D.js} +16 -16
  319. package/dist/{definition-DtPY1lz6.js.map → definition-DpoIUA3D.js.map} +1 -1
  320. package/dist/{definition-DOIIIcT0.js → definition-GqlaJ5X1.js} +15 -15
  321. package/dist/{definition-DOIIIcT0.js.map → definition-GqlaJ5X1.js.map} +1 -1
  322. package/dist/{definition-BB01Tker.js → definition-J3ahAeKj.js} +56 -56
  323. package/dist/{definition-BB01Tker.js.map → definition-J3ahAeKj.js.map} +1 -1
  324. package/dist/{definition-CvUSTWbU.js → definition-Na_Pv1dO.js} +24 -24
  325. package/dist/{definition-CvUSTWbU.js.map → definition-Na_Pv1dO.js.map} +1 -1
  326. package/dist/{definition-DW9vcya9.js → definition-UOoBAs3K.js} +7 -7
  327. package/dist/{definition-DW9vcya9.js.map → definition-UOoBAs3K.js.map} +1 -1
  328. package/dist/{definition-eKuaU5xY.js → definition-b7m3sPDx.js} +20 -20
  329. package/dist/{definition-eKuaU5xY.js.map → definition-b7m3sPDx.js.map} +1 -1
  330. package/dist/{definition-CL0Y27Yz.js → definition-bFY2ZdpP.js} +16 -16
  331. package/dist/{definition-CL0Y27Yz.js.map → definition-bFY2ZdpP.js.map} +1 -1
  332. package/dist/{definition-CHjP0E6Q.js → definition-dPTP_SXO.js} +13 -13
  333. package/dist/{definition-CHjP0E6Q.js.map → definition-dPTP_SXO.js.map} +1 -1
  334. package/dist/definition-rAPgW-Dv.js +133 -0
  335. package/dist/definition-rAPgW-Dv.js.map +1 -0
  336. package/dist/{dimension.utils-lPl2Y1D4.js → dimension.utils-CB-LXCP5.js} +4 -4
  337. package/dist/{dimension.utils-lPl2Y1D4.js.map → dimension.utils-CB-LXCP5.js.map} +1 -1
  338. package/dist/{dimensionsAndMeasures.utils-BsJIn37r.js → dimensionsAndMeasures.utils-BolsWK6X.js} +2 -2
  339. package/dist/{dimensionsAndMeasures.utils-BsJIn37r.js.map → dimensionsAndMeasures.utils-BolsWK6X.js.map} +1 -1
  340. package/dist/{dv-CuSRqQ-u.js → dv-DqfOiAOa.js} +3 -3
  341. package/dist/{dv-CuSRqQ-u.js.map → dv-DqfOiAOa.js.map} +1 -1
  342. package/dist/{el-VhiL5PCz.js → el-DRazChj2.js} +3 -3
  343. package/dist/{el-VhiL5PCz.js.map → el-DRazChj2.js.map} +1 -1
  344. package/dist/embeddable-components.json +58 -58
  345. package/dist/embeddable-theme-0137e.js +25 -1
  346. package/dist/{en-CCK_d6yu.js → en-Cbvl6b7O.js} +2 -2
  347. package/dist/{en-CCK_d6yu.js.map → en-Cbvl6b7O.js.map} +1 -1
  348. package/dist/{eo-BjvzzUrR.js → eo-BHu_t0Eo.js} +3 -3
  349. package/dist/{eo-BjvzzUrR.js.map → eo-BHu_t0Eo.js.map} +1 -1
  350. package/dist/{es-BAGEQJX0.js → es-cYnm2Hrv.js} +3 -3
  351. package/dist/{es-BAGEQJX0.js.map → es-cYnm2Hrv.js.map} +1 -1
  352. package/dist/{et-Dug3-Htz.js → et-xxrOegSp.js} +3 -3
  353. package/dist/{et-Dug3-Htz.js.map → et-xxrOegSp.js.map} +1 -1
  354. package/dist/{eu-B69OX2YQ.js → eu-DhktYxVI.js} +3 -3
  355. package/dist/{eu-B69OX2YQ.js.map → eu-DhktYxVI.js.map} +1 -1
  356. package/dist/{fa-BZRr3jKK.js → fa-9WLmLDSh.js} +3 -3
  357. package/dist/{fa-BZRr3jKK.js.map → fa-9WLmLDSh.js.map} +1 -1
  358. package/dist/{fi-D4hv61ue.js → fi-BaOUwI2P.js} +3 -3
  359. package/dist/{fi-D4hv61ue.js.map → fi-BaOUwI2P.js.map} +1 -1
  360. package/dist/{fo-Ctq0i1aV.js → fo-AY850tyv.js} +3 -3
  361. package/dist/{fo-Ctq0i1aV.js.map → fo-AY850tyv.js.map} +1 -1
  362. package/dist/{formatter.utils-CueRuFiK.js → formatter.utils-DE-_ADag.js} +6 -6
  363. package/dist/{formatter.utils-CueRuFiK.js.map → formatter.utils-DE-_ADag.js.map} +1 -1
  364. package/dist/{fr-DhygZq8E.js → fr-DuGU2qV3.js} +3 -3
  365. package/dist/{fr-DhygZq8E.js.map → fr-DuGU2qV3.js.map} +1 -1
  366. package/dist/{fy-CSXKvn3r.js → fy-ByIsn3VC.js} +3 -3
  367. package/dist/{fy-CSXKvn3r.js.map → fy-ByIsn3VC.js.map} +1 -1
  368. package/dist/{ga-CJWkA_uc.js → ga-DO6N5UL5.js} +3 -3
  369. package/dist/{ga-CJWkA_uc.js.map → ga-DO6N5UL5.js.map} +1 -1
  370. package/dist/{gd-S_5eqzIU.js → gd-8Cpnoh3b.js} +3 -3
  371. package/dist/{gd-S_5eqzIU.js.map → gd-8Cpnoh3b.js.map} +1 -1
  372. package/dist/{gl-B4Dahb7f.js → gl-oWfq6hSQ.js} +3 -3
  373. package/dist/{gl-B4Dahb7f.js.map → gl-oWfq6hSQ.js.map} +1 -1
  374. package/dist/{granularity.utils-C1YICLik.js → granularity.utils-C_SX7zKB.js} +3 -3
  375. package/dist/{granularity.utils-C1YICLik.js.map → granularity.utils-C_SX7zKB.js.map} +1 -1
  376. package/dist/{gu-jc9pYff5.js → gu-BTm5Ap5A.js} +3 -3
  377. package/dist/{gu-jc9pYff5.js.map → gu-BTm5Ap5A.js.map} +1 -1
  378. package/dist/{he-Bil3JWh7.js → he-Cd038LtN.js} +3 -3
  379. package/dist/{he-Bil3JWh7.js.map → he-Cd038LtN.js.map} +1 -1
  380. package/dist/{hi-nzfVOkjP.js → hi-IFNUivAP.js} +3 -3
  381. package/dist/{hi-nzfVOkjP.js.map → hi-IFNUivAP.js.map} +1 -1
  382. package/dist/{hr-CjyugdeX.js → hr-CldUxejD.js} +3 -3
  383. package/dist/{hr-CjyugdeX.js.map → hr-CldUxejD.js.map} +1 -1
  384. package/dist/{ht-BQ0TlnC7.js → ht-ByUbblsT.js} +3 -3
  385. package/dist/{ht-BQ0TlnC7.js.map → ht-ByUbblsT.js.map} +1 -1
  386. package/dist/{hu-B_3y1c4Q.js → hu-CPiHhaLJ.js} +11 -11
  387. package/dist/{hu-B_3y1c4Q.js.map → hu-CPiHhaLJ.js.map} +1 -1
  388. package/dist/{id-BPuFW1CX.js → id-5gnT8jF0.js} +3 -3
  389. package/dist/{id-BPuFW1CX.js.map → id-5gnT8jF0.js.map} +1 -1
  390. package/dist/{index-DcPl9DUc.js → index-BDd5cXFC.js} +1836 -1818
  391. package/dist/{index-DcPl9DUc.js.map → index-BDd5cXFC.js.map} +1 -1
  392. package/dist/{index-D_k-7hF4.js → index-DeFORjMe.js} +2 -2
  393. package/dist/{index-D_k-7hF4.js.map → index-DeFORjMe.js.map} +1 -1
  394. package/dist/{index-DxL0Y4DQ.js → index-DxChWz_f.js} +4 -4
  395. package/dist/{index-DxL0Y4DQ.js.map → index-DxChWz_f.js.map} +1 -1
  396. package/dist/index.js +57 -57
  397. package/dist/{is-B4v_GCbt.js → is-6wYxGbHC.js} +5 -5
  398. package/dist/{is-B4v_GCbt.js.map → is-6wYxGbHC.js.map} +1 -1
  399. package/dist/{isoWeek-D6aAznv-.js → isoWeek-B5hq3zXR.js} +9 -9
  400. package/dist/{isoWeek-D6aAznv-.js.map → isoWeek-B5hq3zXR.js.map} +1 -1
  401. package/dist/{it-CxODYFsF.js → it-Bs7yFtoC.js} +3 -3
  402. package/dist/{it-CxODYFsF.js.map → it-Bs7yFtoC.js.map} +1 -1
  403. package/dist/{ja-BLMmIJfq.js → ja-KxYq1Keq.js} +3 -3
  404. package/dist/{ja-BLMmIJfq.js.map → ja-KxYq1Keq.js.map} +1 -1
  405. package/dist/{jv-ByiaGx2H.js → jv-Z59fnm9r.js} +13 -13
  406. package/dist/{jv-ByiaGx2H.js.map → jv-Z59fnm9r.js.map} +1 -1
  407. package/dist/{ka-C_2wD7LP.js → ka-C5stxZNq.js} +3 -3
  408. package/dist/{ka-C_2wD7LP.js.map → ka-C5stxZNq.js.map} +1 -1
  409. package/dist/{kk-DqcHSPuF.js → kk-Bjp2oS1M.js} +3 -3
  410. package/dist/{kk-DqcHSPuF.js.map → kk-Bjp2oS1M.js.map} +1 -1
  411. package/dist/{km-bI1Z3YSM.js → km-cCyErL-J.js} +8 -8
  412. package/dist/{km-bI1Z3YSM.js.map → km-cCyErL-J.js.map} +1 -1
  413. package/dist/{kn-DY4uzFfe.js → kn-Cn3e7R-p.js} +3 -3
  414. package/dist/{kn-DY4uzFfe.js.map → kn-Cn3e7R-p.js.map} +1 -1
  415. package/dist/{ko-Cu5cVg3m.js → ko-DwbRGcg_.js} +8 -8
  416. package/dist/{ko-Cu5cVg3m.js.map → ko-DwbRGcg_.js.map} +1 -1
  417. package/dist/{ku-B9wX44de.js → ku-D8V8DLkP.js} +3 -3
  418. package/dist/{ku-B9wX44de.js.map → ku-D8V8DLkP.js.map} +1 -1
  419. package/dist/{ky-mkjISmIi.js → ky-DgKCQpit.js} +3 -3
  420. package/dist/{ky-mkjISmIi.js.map → ky-DgKCQpit.js.map} +1 -1
  421. package/dist/{lb-s_88UK0j.js → lb-B1H3ev7O.js} +8 -8
  422. package/dist/{lb-s_88UK0j.js.map → lb-B1H3ev7O.js.map} +1 -1
  423. package/dist/{lo-CChg5V22.js → lo-BTLR-4Ua.js} +3 -3
  424. package/dist/{lo-CChg5V22.js.map → lo-BTLR-4Ua.js.map} +1 -1
  425. package/dist/{lt-jLA41Ben.js → lt-CpVBw6AZ.js} +3 -3
  426. package/dist/{lt-jLA41Ben.js.map → lt-CpVBw6AZ.js.map} +1 -1
  427. package/dist/{lv-hAoIKgX2.js → lv-CHWUynv0.js} +3 -3
  428. package/dist/{lv-hAoIKgX2.js.map → lv-CHWUynv0.js.map} +1 -1
  429. package/dist/{me-DNASGX9I.js → me-BPihshNS.js} +3 -3
  430. package/dist/{me-DNASGX9I.js.map → me-BPihshNS.js.map} +1 -1
  431. package/dist/meta/HeatMapPro.meta.json +28 -0
  432. package/dist/meta/LineChartComparisonDefaultPro.meta.json +5 -0
  433. package/dist/meta/LineChartComparisonWithKpiTabsPro.meta.json +5 -0
  434. package/dist/{mi-NkIEWm1k.js → mi-Cb-2ijwY.js} +3 -3
  435. package/dist/{mi-NkIEWm1k.js.map → mi-Cb-2ijwY.js.map} +1 -1
  436. package/dist/{mk-CJAU95yF.js → mk-BH7eZmqu.js} +3 -3
  437. package/dist/{mk-CJAU95yF.js.map → mk-BH7eZmqu.js.map} +1 -1
  438. package/dist/{ml-D91xWhJE.js → ml-CwYt0YaD.js} +3 -3
  439. package/dist/{ml-D91xWhJE.js.map → ml-CwYt0YaD.js.map} +1 -1
  440. package/dist/{mn-CSIv0h5B.js → mn-BQDV_tLC.js} +3 -3
  441. package/dist/{mn-CSIv0h5B.js.map → mn-BQDV_tLC.js.map} +1 -1
  442. package/dist/{mr-D4oIZ_jX.js → mr-Cz2meNaV.js} +3 -3
  443. package/dist/{mr-D4oIZ_jX.js.map → mr-Cz2meNaV.js.map} +1 -1
  444. package/dist/{ms-DyAE3TXR.js → ms-Drl8Gge6.js} +3 -3
  445. package/dist/{ms-DyAE3TXR.js.map → ms-Drl8Gge6.js.map} +1 -1
  446. package/dist/{mt-DjLJYXqW.js → mt-Biv_dLXp.js} +3 -3
  447. package/dist/{mt-DjLJYXqW.js.map → mt-Biv_dLXp.js.map} +1 -1
  448. package/dist/{my-QAbtttSY.js → my-BHy9cEF_.js} +3 -3
  449. package/dist/{my-QAbtttSY.js.map → my-BHy9cEF_.js.map} +1 -1
  450. package/dist/{nb-CyikWQNu.js → nb-BMrTF3LP.js} +3 -3
  451. package/dist/{nb-CyikWQNu.js.map → nb-BMrTF3LP.js.map} +1 -1
  452. package/dist/{ne-CYLhegnF.js → ne-B-gxqF-u.js} +3 -3
  453. package/dist/{ne-CYLhegnF.js.map → ne-B-gxqF-u.js.map} +1 -1
  454. package/dist/{nl-Ravjt8yv.js → nl-Cral7JEK.js} +3 -3
  455. package/dist/{nl-Ravjt8yv.js.map → nl-Cral7JEK.js.map} +1 -1
  456. package/dist/{nn-DaylgKbH.js → nn-C1_ylJFR.js} +3 -3
  457. package/dist/{nn-DaylgKbH.js.map → nn-C1_ylJFR.js.map} +1 -1
  458. package/dist/pies.utils-Drvky2f7.js +112 -0
  459. package/dist/pies.utils-Drvky2f7.js.map +1 -0
  460. package/dist/{pl-1TvAKJ2i.js → pl-D2pKy9F1.js} +10 -10
  461. package/dist/{pl-1TvAKJ2i.js.map → pl-D2pKy9F1.js.map} +1 -1
  462. package/dist/{preview.data.constants-B8B82ITM.js → preview.data.constants-B3oyUsaQ.js} +10 -10
  463. package/dist/{preview.data.constants-B8B82ITM.js.map → preview.data.constants-B3oyUsaQ.js.map} +1 -1
  464. package/dist/{pt-BdsacYg2.js → pt-3Uvt8G16.js} +3 -3
  465. package/dist/{pt-BdsacYg2.js.map → pt-3Uvt8G16.js.map} +1 -1
  466. package/dist/{quarterOfYear-Dixa0hmA.js → quarterOfYear-B_Fe3-YM.js} +7 -7
  467. package/dist/{quarterOfYear-Dixa0hmA.js.map → quarterOfYear-B_Fe3-YM.js.map} +1 -1
  468. package/dist/{ro-CgxzoPTb.js → ro-lXLM5wIH.js} +3 -3
  469. package/dist/{ro-CgxzoPTb.js.map → ro-lXLM5wIH.js.map} +1 -1
  470. package/dist/{ru-Dc-8D5WF.js → ru-CvRL7AkU.js} +3 -3
  471. package/dist/{ru-Dc-8D5WF.js.map → ru-CvRL7AkU.js.map} +1 -1
  472. package/dist/{rw-Qhhg8ROi.js → rw-BWaAHq7K.js} +3 -3
  473. package/dist/{rw-Qhhg8ROi.js.map → rw-BWaAHq7K.js.map} +1 -1
  474. package/dist/{sd-CGRy0d35.js → sd-DwN_Idzz.js} +8 -8
  475. package/dist/{sd-CGRy0d35.js.map → sd-DwN_Idzz.js.map} +1 -1
  476. package/dist/{se-C0u8D3V7.js → se-BnIu6dPe.js} +3 -3
  477. package/dist/{se-C0u8D3V7.js.map → se-BnIu6dPe.js.map} +1 -1
  478. package/dist/{si-D4VvlDtE.js → si-C7noOV3G.js} +3 -3
  479. package/dist/{si-D4VvlDtE.js.map → si-C7noOV3G.js.map} +1 -1
  480. package/dist/{sk-D1rCJy6c.js → sk-aGMXL0jT.js} +18 -18
  481. package/dist/{sk-D1rCJy6c.js.map → sk-aGMXL0jT.js.map} +1 -1
  482. package/dist/{sl-CDwxu8Jf.js → sl-CSDUQXp6.js} +3 -3
  483. package/dist/{sl-CDwxu8Jf.js.map → sl-CSDUQXp6.js.map} +1 -1
  484. package/dist/{sq-EG9Spqit.js → sq-BWIZHH0T.js} +9 -9
  485. package/dist/{sq-EG9Spqit.js.map → sq-BWIZHH0T.js.map} +1 -1
  486. package/dist/{sr-DEnvCtDe.js → sr-DWXLYUZl.js} +3 -3
  487. package/dist/{sr-DEnvCtDe.js.map → sr-DWXLYUZl.js.map} +1 -1
  488. package/dist/{ss-D2TA96JU.js → ss-DRoAfKgl.js} +3 -3
  489. package/dist/{ss-D2TA96JU.js.map → ss-DRoAfKgl.js.map} +1 -1
  490. package/dist/{styles.utils-BfpH_m_W.js → styles.utils-C8CnV0SB.js} +3 -3
  491. package/dist/{styles.utils-BfpH_m_W.js.map → styles.utils-C8CnV0SB.js.map} +1 -1
  492. package/dist/{sv-CVix37qq.js → sv-COvXHvfd.js} +3 -3
  493. package/dist/{sv-CVix37qq.js.map → sv-COvXHvfd.js.map} +1 -1
  494. package/dist/{sw-BPU86kCc.js → sw-DVBjWTn7.js} +3 -3
  495. package/dist/{sw-BPU86kCc.js.map → sw-DVBjWTn7.js.map} +1 -1
  496. package/dist/{ta-BOZUOxU0.js → ta-D_B2aKTU.js} +3 -3
  497. package/dist/{ta-BOZUOxU0.js.map → ta-D_B2aKTU.js.map} +1 -1
  498. package/dist/{tables.utils-BDvJMU1_.js → tables.utils-DqlM19s-.js} +11 -11
  499. package/dist/{tables.utils-BDvJMU1_.js.map → tables.utils-DqlM19s-.js.map} +1 -1
  500. package/dist/{te-Bamoj7pU.js → te-ZeV91eOU.js} +3 -3
  501. package/dist/{te-Bamoj7pU.js.map → te-ZeV91eOU.js.map} +1 -1
  502. package/dist/{tet-Dasd5QxW.js → tet-DVZKHkE5.js} +11 -11
  503. package/dist/{tet-Dasd5QxW.js.map → tet-DVZKHkE5.js.map} +1 -1
  504. package/dist/{tg-ChqdKEnG.js → tg-BzwSdhGO.js} +3 -3
  505. package/dist/{tg-ChqdKEnG.js.map → tg-BzwSdhGO.js.map} +1 -1
  506. package/dist/{th-Bk5x6TTv.js → th-Cjw35Sul.js} +3 -3
  507. package/dist/{th-Bk5x6TTv.js.map → th-Cjw35Sul.js.map} +1 -1
  508. package/dist/theme/styles/styles.constants.d.ts +24 -0
  509. package/dist/theme/styles/styles.constants.d.ts.map +1 -1
  510. package/dist/{theme.constants-DsrqrdS6.js → theme.constants-T0AFNuJR.js} +31 -7
  511. package/dist/theme.constants-T0AFNuJR.js.map +1 -0
  512. package/dist/{tk-CKTm9znn.js → tk-BJwa-YKB.js} +3 -3
  513. package/dist/{tk-CKTm9znn.js.map → tk-BJwa-YKB.js.map} +1 -1
  514. package/dist/{tlh-COX4xvnq.js → tlh-Bd8Hj-rX.js} +3 -3
  515. package/dist/{tlh-COX4xvnq.js.map → tlh-Bd8Hj-rX.js.map} +1 -1
  516. package/dist/{tr-B-yDJn5U.js → tr-__Yjprt-.js} +3 -3
  517. package/dist/{tr-B-yDJn5U.js.map → tr-__Yjprt-.js.map} +1 -1
  518. package/dist/{tzl-DsV3R-ms.js → tzl-DLj-cE5y.js} +3 -3
  519. package/dist/{tzl-DsV3R-ms.js.map → tzl-DLj-cE5y.js.map} +1 -1
  520. package/dist/{tzm-gPfBGwxP.js → tzm-BbgReqpM.js} +3 -3
  521. package/dist/{tzm-gPfBGwxP.js.map → tzm-BbgReqpM.js.map} +1 -1
  522. package/dist/{uk-Buc5wLz4.js → uk-CkEIyMZ2.js} +11 -11
  523. package/dist/{uk-Buc5wLz4.js.map → uk-CkEIyMZ2.js.map} +1 -1
  524. package/dist/{ur-DwcxoK_m.js → ur-CMRddQHy.js} +3 -3
  525. package/dist/{ur-DwcxoK_m.js.map → ur-CMRddQHy.js.map} +1 -1
  526. package/dist/{utc-BW09BhCl.js → utc-CiYVTKd5.js} +13 -13
  527. package/dist/{utc-BW09BhCl.js.map → utc-CiYVTKd5.js.map} +1 -1
  528. package/dist/{uz-QP2FHnf_.js → uz-CKEHZNva.js} +3 -3
  529. package/dist/{uz-QP2FHnf_.js.map → uz-CKEHZNva.js.map} +1 -1
  530. package/dist/{vi-D27F6exG.js → vi-DDguFMAp.js} +3 -3
  531. package/dist/{vi-D27F6exG.js.map → vi-DDguFMAp.js.map} +1 -1
  532. package/dist/{x-pseudo-BD9cDlId.js → x-pseudo-G09tNhGy.js} +3 -3
  533. package/dist/{x-pseudo-BD9cDlId.js.map → x-pseudo-G09tNhGy.js.map} +1 -1
  534. package/dist/{yo-BF789QLA.js → yo-C2uzXj00.js} +3 -3
  535. package/dist/{yo-BF789QLA.js.map → yo-C2uzXj00.js.map} +1 -1
  536. package/dist/{zh-cn-BtfweNvk.js → zh-cn-Cq0odDRx.js} +3 -3
  537. package/dist/{zh-cn-BtfweNvk.js.map → zh-cn-Cq0odDRx.js.map} +1 -1
  538. package/dist/{zh-hk-BnriNqMr.js → zh-hk-7tX7IidE.js} +3 -3
  539. package/dist/{zh-hk-BnriNqMr.js.map → zh-hk-7tX7IidE.js.map} +1 -1
  540. package/dist/{zh-tw-DEhWyVul.js → zh-tw-LFc2ke0C.js} +3 -3
  541. package/dist/{zh-tw-DEhWyVul.js.map → zh-tw-LFc2ke0C.js.map} +1 -1
  542. package/package.json +4 -4
  543. package/dist/bars.utils-lZnqwfM9.js +0 -167
  544. package/dist/bars.utils-lZnqwfM9.js.map +0 -1
  545. package/dist/charts.utils-LTooRxIg.js +0 -79
  546. package/dist/charts.utils-LTooRxIg.js.map +0 -1
  547. package/dist/dates.utils-DFrGqcoZ.js +0 -169
  548. package/dist/definition-CBuEfvdj.js +0 -124
  549. package/dist/definition-CBuEfvdj.js.map +0 -1
  550. package/dist/definition-DbRjzqsA.js +0 -120
  551. package/dist/definition-DbRjzqsA.js.map +0 -1
  552. package/dist/definition-DmskK6py.js.map +0 -1
  553. package/dist/definition-L3bdSclX.js.map +0 -1
  554. package/dist/definition-WLmmLQZs.js.map +0 -1
  555. package/dist/definition-uQa3OXxU.js +0 -202
  556. package/dist/definition-uQa3OXxU.js.map +0 -1
  557. package/dist/pies.utils-Rkvaq5Sj.js +0 -111
  558. package/dist/pies.utils-Rkvaq5Sj.js.map +0 -1
  559. package/dist/theme.constants-DsrqrdS6.js.map +0 -1
@@ -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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"}
@@ -1,9 +1,9 @@
1
1
  import { useTheme as y, definePreview as f } from "@embeddable.com/react";
2
- import { a7 as i, V as b } from "./index-DcPl9DUc.js";
3
- import { G as e, i as a } from "./component.inputs.constants-DYl-U975.js";
2
+ import { j as i, V as b } from "./index-BDd5cXFC.js";
3
+ import { G as e, i as a } from "./component.inputs.constants-DoBT8ykS.js";
4
4
  import { i as v, r as h } from "./component.utils-oQMZT7TK.js";
5
- import { E as S } from "./EditorCard-G99fWjyz.js";
6
- import { G as P } from "./GranularitySelectField-DjBne_Oc.js";
5
+ import { E as S } from "./EditorCard-DivoetAt.js";
6
+ import { G as P } from "./GranularitySelectField-CTdKK_wT.js";
7
7
  const t = (r) => {
8
8
  const n = y();
9
9
  v(n);
@@ -89,7 +89,7 @@ const t = (r) => {
89
89
  onChange: () => null
90
90
  }), G = (r) => ({
91
91
  ...r
92
- }), x = {
92
+ }), j = {
93
93
  onChange: (r) => ({
94
94
  value: r ?? b.noFilter()
95
95
  })
@@ -99,11 +99,11 @@ const t = (r) => {
99
99
  preview: w,
100
100
  config: {
101
101
  props: G,
102
- events: x
102
+ events: j
103
103
  }
104
104
  };
105
105
  export {
106
106
  E as g,
107
107
  k as i
108
108
  };
109
- //# sourceMappingURL=definition-DW9vcya9.js.map
109
+ //# sourceMappingURL=definition-UOoBAs3K.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"definition-DW9vcya9.js","sources":["../src/components/editors/GranularitySelectFieldPro/index.tsx","../src/components/editors/GranularitySelectFieldPro/definition.ts"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { TimeRange } from '@embeddable.com/core';\nimport { Theme } from '../../../theme/theme.types';\nimport { i18nSetup } from '../../../theme/i18n/i18n';\nimport { resolveI18nProps } from '../../component.utils';\nimport { EditorCard, EditorCardHeaderProps } from '../shared/EditorCard/EditorCard';\nimport { TGranularityValue } from '../../../theme/defaults/defaults.GranularityOptions.constants';\nimport { GranularitySelectField } from '../shared/GranularitySelectField/GranularitySelectField';\n\nexport type GranularitySelectFieldProProps = {\n onChange: (newGranularity: string) => void;\n placeholder?: string;\n primaryTimeRange?: TimeRange;\n granularity?: TGranularityValue;\n granularities?: TGranularityValue[];\n clearable?: boolean;\n} & EditorCardHeaderProps;\n\nconst GranularitySelectFieldPro = (props: GranularitySelectFieldProProps) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { granularity, granularities, clearable, primaryTimeRange, onChange } = props;\n const { description, tooltip, placeholder, title } = resolveI18nProps(props);\n\n return (\n <EditorCard title={title} description={description} tooltip={tooltip}>\n <GranularitySelectField\n clearable={clearable}\n placeholder={placeholder}\n granularity={granularity}\n granularities={granularities}\n primaryTimeRange={primaryTimeRange}\n onChange={onChange}\n />\n </EditorCard>\n );\n};\n\nexport default GranularitySelectFieldPro;\n","import { EmbeddedComponentMeta, Inputs, definePreview } from '@embeddable.com/react';\nimport { Value } from '@embeddable.com/core';\nimport { inputs } from '../../component.inputs.constants';\nimport { Granularity } from '../../../theme/defaults/defaults.GranularityOptions.constants';\nimport Component from './index';\n\nconst meta = {\n name: 'GranularitySelectFieldPro',\n label: 'Granularity Select Field',\n description:\n 'Dropdown for picking time granularity (day, week, month, …). Pairs with a granularity variable used as a sub-input on a time dimension.',\n category: 'Dropdowns - dates',\n defaultWidth: 300,\n defaultHeight: 120,\n inputs: [\n inputs.title,\n inputs.description,\n inputs.tooltip,\n { ...inputs.placeholder, defaultValue: 'Select a granularity' },\n {\n ...inputs.granularities,\n label: 'Available granularities',\n category: 'Pre-configured variables',\n },\n {\n ...inputs.granularity,\n label: 'Selected granularity',\n category: 'Pre-configured variables',\n },\n {\n ...inputs.timeRange,\n name: 'primaryTimeRange',\n label: 'Primary date-range',\n description:\n 'Connect your primary date-range variable to enable automatic selection of the most appropriate granularity',\n category: 'Pre-configured variables',\n },\n { ...inputs.clearable, defaultValue: false },\n ],\n events: [\n {\n name: 'onChange',\n label: 'Selected granularity updated',\n properties: [\n {\n name: 'value',\n label: 'Selected granularity',\n type: 'granularity',\n },\n ],\n },\n ],\n variables: [\n {\n name: 'granularity value',\n type: 'granularity',\n defaultValue: 'day',\n inputs: ['granularity'],\n events: [{ name: 'onChange', property: 'value' }],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nconst preview = definePreview(Component, {\n granularities: [\n Granularity.second,\n Granularity.minute,\n Granularity.hour,\n Granularity.day,\n Granularity.week,\n Granularity.month,\n Granularity.quarter,\n Granularity.year,\n ],\n onChange: () => null,\n});\n\nconst props = (inputs: Inputs<typeof meta>) => {\n return {\n ...inputs,\n };\n};\n\nconst events = {\n onChange: (granularity: unknown) => ({\n value: granularity ?? Value.noFilter(),\n }),\n};\n\nexport const granularitySelectFieldPro = {\n Component,\n meta,\n preview,\n config: {\n props,\n events,\n },\n} as const;\n"],"names":["GranularitySelectFieldPro","props","theme","useTheme","i18nSetup","granularity","granularities","clearable","primaryTimeRange","onChange","description","tooltip","placeholder","title","resolveI18nProps","jsx","EditorCard","GranularitySelectField","meta","inputs","preview","definePreview","Component","Granularity","events","Value","granularitySelectFieldPro"],"mappings":";;;;;;AAkBA,MAAMA,IAA4B,CAACC,MAA0C;AAC3E,QAAMC,IAAeC,EAAA;AACrB,EAAAC,EAAUF,CAAK;AAEf,QAAM,EAAE,aAAAG,GAAa,eAAAC,GAAe,WAAAC,GAAW,kBAAAC,GAAkB,UAAAC,MAAaR,GACxE,EAAE,aAAAS,GAAa,SAAAC,GAAS,aAAAC,GAAa,OAAAC,EAAA,IAAUC,EAAiBb,CAAK;AAE3E,SACEc,gBAAAA,EAAAA,IAACC,GAAA,EAAW,OAAAH,GAAc,aAAAH,GAA0B,SAAAC,GAClD,UAAAI,gBAAAA,EAAAA;AAAAA,IAACE;AAAA,IAAA;AAAA,MACC,WAAAV;AAAA,MACA,aAAAK;AAAA,MACA,aAAAP;AAAA,MACA,eAAAC;AAAA,MACA,kBAAAE;AAAA,MACA,UAAAC;AAAA,IAAA;AAAA,EAAA,GAEJ;AAEJ;;;8CC/BMS,IAAO;AAAA,EACX,MAAM;AAAA,EACN,OAAO;AAAA,EACP,aACE;AAAA,EACF,UAAU;AAAA,EACV,cAAc;AAAA,EACd,eAAe;AAAA,EACf,QAAQ;AAAA,IACNC,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACP,EAAE,GAAGA,EAAO,aAAa,cAAc,uBAAA;AAAA,IACvC;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,OAAO;AAAA,MACP,UAAU;AAAA,IAAA;AAAA,IAEZ;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,OAAO;AAAA,MACP,UAAU;AAAA,IAAA;AAAA,IAEZ;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,MAAM;AAAA,MACN,OAAO;AAAA,MACP,aACE;AAAA,MACF,UAAU;AAAA,IAAA;AAAA,IAEZ,EAAE,GAAGA,EAAO,WAAW,cAAc,GAAA;AAAA,EAAM;AAAA,EAE7C,QAAQ;AAAA,IACN;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,MACP,YAAY;AAAA,QACV;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QAAA;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAAA,EAEF,WAAW;AAAA,IACT;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,cAAc;AAAA,MACd,QAAQ,CAAC,aAAa;AAAA,MACtB,QAAQ,CAAC,EAAE,MAAM,YAAY,UAAU,SAAS;AAAA,IAAA;AAAA,EAClD;AAEJ,GAEMC,IAAUC,EAAcC,GAAW;AAAA,EACvC,eAAe;AAAA,IACbC,EAAY;AAAA,IACZA,EAAY;AAAA,IACZA,EAAY;AAAA,IACZA,EAAY;AAAA,IACZA,EAAY;AAAA,IACZA,EAAY;AAAA,IACZA,EAAY;AAAA,IACZA,EAAY;AAAA,EAAA;AAAA,EAEd,UAAU,MAAM;AAClB,CAAC,GAEKtB,IAAQ,CAACkB,OACN;AAAA,EACL,GAAGA;AAAA,IAIDK,IAAS;AAAA,EACb,UAAU,CAACnB,OAA0B;AAAA,IACnC,OAAOA,KAAeoB,EAAM,SAAA;AAAA,EAAS;AAEzC,GAEaC,IAA4B;AAAA,EAAA,WACvCJ;AAAAA,EACA,MAAAJ;AAAA,EACA,SAAAE;AAAA,EACA,QAAQ;AAAA,IACN,OAAAnB;AAAA,IACA,QAAAuB;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"definition-UOoBAs3K.js","sources":["../src/components/editors/GranularitySelectFieldPro/index.tsx","../src/components/editors/GranularitySelectFieldPro/definition.ts"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { TimeRange } from '@embeddable.com/core';\nimport { Theme } from '../../../theme/theme.types';\nimport { i18nSetup } from '../../../theme/i18n/i18n';\nimport { resolveI18nProps } from '../../component.utils';\nimport { EditorCard, EditorCardHeaderProps } from '../shared/EditorCard/EditorCard';\nimport { TGranularityValue } from '../../../theme/defaults/defaults.GranularityOptions.constants';\nimport { GranularitySelectField } from '../shared/GranularitySelectField/GranularitySelectField';\n\nexport type GranularitySelectFieldProProps = {\n onChange: (newGranularity: string) => void;\n placeholder?: string;\n primaryTimeRange?: TimeRange;\n granularity?: TGranularityValue;\n granularities?: TGranularityValue[];\n clearable?: boolean;\n} & EditorCardHeaderProps;\n\nconst GranularitySelectFieldPro = (props: GranularitySelectFieldProProps) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { granularity, granularities, clearable, primaryTimeRange, onChange } = props;\n const { description, tooltip, placeholder, title } = resolveI18nProps(props);\n\n return (\n <EditorCard title={title} description={description} tooltip={tooltip}>\n <GranularitySelectField\n clearable={clearable}\n placeholder={placeholder}\n granularity={granularity}\n granularities={granularities}\n primaryTimeRange={primaryTimeRange}\n onChange={onChange}\n />\n </EditorCard>\n );\n};\n\nexport default GranularitySelectFieldPro;\n","import { EmbeddedComponentMeta, Inputs, definePreview } from '@embeddable.com/react';\nimport { Value } from '@embeddable.com/core';\nimport { inputs } from '../../component.inputs.constants';\nimport { Granularity } from '../../../theme/defaults/defaults.GranularityOptions.constants';\nimport Component from './index';\n\nconst meta = {\n name: 'GranularitySelectFieldPro',\n label: 'Granularity Select Field',\n description:\n 'Dropdown for picking time granularity (day, week, month, …). Pairs with a granularity variable used as a sub-input on a time dimension.',\n category: 'Dropdowns - dates',\n defaultWidth: 300,\n defaultHeight: 120,\n inputs: [\n inputs.title,\n inputs.description,\n inputs.tooltip,\n { ...inputs.placeholder, defaultValue: 'Select a granularity' },\n {\n ...inputs.granularities,\n label: 'Available granularities',\n category: 'Pre-configured variables',\n },\n {\n ...inputs.granularity,\n label: 'Selected granularity',\n category: 'Pre-configured variables',\n },\n {\n ...inputs.timeRange,\n name: 'primaryTimeRange',\n label: 'Primary date-range',\n description:\n 'Connect your primary date-range variable to enable automatic selection of the most appropriate granularity',\n category: 'Pre-configured variables',\n },\n { ...inputs.clearable, defaultValue: false },\n ],\n events: [\n {\n name: 'onChange',\n label: 'Selected granularity updated',\n properties: [\n {\n name: 'value',\n label: 'Selected granularity',\n type: 'granularity',\n },\n ],\n },\n ],\n variables: [\n {\n name: 'granularity value',\n type: 'granularity',\n defaultValue: 'day',\n inputs: ['granularity'],\n events: [{ name: 'onChange', property: 'value' }],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nconst preview = definePreview(Component, {\n granularities: [\n Granularity.second,\n Granularity.minute,\n Granularity.hour,\n Granularity.day,\n Granularity.week,\n Granularity.month,\n Granularity.quarter,\n Granularity.year,\n ],\n onChange: () => null,\n});\n\nconst props = (inputs: Inputs<typeof meta>) => {\n return {\n ...inputs,\n };\n};\n\nconst events = {\n onChange: (granularity: unknown) => ({\n value: granularity ?? Value.noFilter(),\n }),\n};\n\nexport const granularitySelectFieldPro = {\n Component,\n meta,\n preview,\n config: {\n props,\n events,\n },\n} as const;\n"],"names":["GranularitySelectFieldPro","props","theme","useTheme","i18nSetup","granularity","granularities","clearable","primaryTimeRange","onChange","description","tooltip","placeholder","title","resolveI18nProps","jsx","EditorCard","GranularitySelectField","meta","inputs","preview","definePreview","Component","Granularity","events","Value","granularitySelectFieldPro"],"mappings":";;;;;;AAkBA,MAAMA,IAA4B,CAACC,MAA0C;AAC3E,QAAMC,IAAeC,EAAA;AACrB,EAAAC,EAAUF,CAAK;AAEf,QAAM,EAAE,aAAAG,GAAa,eAAAC,GAAe,WAAAC,GAAW,kBAAAC,GAAkB,UAAAC,MAAaR,GACxE,EAAE,aAAAS,GAAa,SAAAC,GAAS,aAAAC,GAAa,OAAAC,EAAA,IAAUC,EAAiBb,CAAK;AAE3E,SACEc,gBAAAA,EAAAA,IAACC,GAAA,EAAW,OAAAH,GAAc,aAAAH,GAA0B,SAAAC,GAClD,UAAAI,gBAAAA,EAAAA;AAAAA,IAACE;AAAA,IAAA;AAAA,MACC,WAAAV;AAAA,MACA,aAAAK;AAAA,MACA,aAAAP;AAAA,MACA,eAAAC;AAAA,MACA,kBAAAE;AAAA,MACA,UAAAC;AAAA,IAAA;AAAA,EAAA,GAEJ;AAEJ;;;8CC/BMS,IAAO;AAAA,EACX,MAAM;AAAA,EACN,OAAO;AAAA,EACP,aACE;AAAA,EACF,UAAU;AAAA,EACV,cAAc;AAAA,EACd,eAAe;AAAA,EACf,QAAQ;AAAA,IACNC,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACP,EAAE,GAAGA,EAAO,aAAa,cAAc,uBAAA;AAAA,IACvC;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,OAAO;AAAA,MACP,UAAU;AAAA,IAAA;AAAA,IAEZ;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,OAAO;AAAA,MACP,UAAU;AAAA,IAAA;AAAA,IAEZ;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,MAAM;AAAA,MACN,OAAO;AAAA,MACP,aACE;AAAA,MACF,UAAU;AAAA,IAAA;AAAA,IAEZ,EAAE,GAAGA,EAAO,WAAW,cAAc,GAAA;AAAA,EAAM;AAAA,EAE7C,QAAQ;AAAA,IACN;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,MACP,YAAY;AAAA,QACV;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QAAA;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAAA,EAEF,WAAW;AAAA,IACT;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,cAAc;AAAA,MACd,QAAQ,CAAC,aAAa;AAAA,MACtB,QAAQ,CAAC,EAAE,MAAM,YAAY,UAAU,SAAS;AAAA,IAAA;AAAA,EAClD;AAEJ,GAEMC,IAAUC,EAAcC,GAAW;AAAA,EACvC,eAAe;AAAA,IACbC,EAAY;AAAA,IACZA,EAAY;AAAA,IACZA,EAAY;AAAA,IACZA,EAAY;AAAA,IACZA,EAAY;AAAA,IACZA,EAAY;AAAA,IACZA,EAAY;AAAA,IACZA,EAAY;AAAA,EAAA;AAAA,EAEd,UAAU,MAAM;AAClB,CAAC,GAEKtB,IAAQ,CAACkB,OACN;AAAA,EACL,GAAGA;AAAA,IAIDK,IAAS;AAAA,EACb,UAAU,CAACnB,OAA0B;AAAA,IACnC,OAAOA,KAAeoB,EAAM,SAAA;AAAA,EAAS;AAEzC,GAEaC,IAA4B;AAAA,EAAA,WACvCJ;AAAAA,EACA,MAAAJ;AAAA,EACA,SAAAE;AAAA,EACA,QAAQ;AAAA,IACN,OAAAnB;AAAA,IACA,QAAAuB;AAAA,EAAA;AAEJ;"}
@@ -1,25 +1,25 @@
1
- import { useTheme as P, definePreview as b } from "@embeddable.com/react";
2
- import { X as y, a7 as d, E as C, V as c } from "./index-DcPl9DUc.js";
3
- import { c as S, u as F, b as R } from "./dates.utils-DFrGqcoZ.js";
4
- import { b as M, i as k, r as O, a as j } from "./component.utils-oQMZT7TK.js";
5
- import { E as x } from "./EditorCard-G99fWjyz.js";
1
+ import { useTheme as P, definePreview as y } from "@embeddable.com/react";
2
+ import { g as b, j as d, t as C, V as c } from "./index-BDd5cXFC.js";
3
+ import { g as S, u as F, a as R } from "./dates.utils-LPINyM3w.js";
4
+ import { b as M, i as j, r as k, a as O } from "./component.utils-oQMZT7TK.js";
5
+ import { E as x } from "./EditorCard-DivoetAt.js";
6
6
  import { useMemo as D, useEffect as T } from "react";
7
- import { C as p, i as t } from "./component.inputs.constants-DYl-U975.js";
7
+ import { C as p, i as t } from "./component.inputs.constants-DoBT8ykS.js";
8
8
  /**
9
9
  * @license @tabler/icons-react v3.44.0 - MIT
10
10
  *
11
11
  * This source code is licensed under the MIT license.
12
12
  * See the LICENSE file in the root directory of this source tree.
13
13
  */
14
- const _ = [["path", { d: "M11.795 21h-6.795a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v4", key: "svg-0" }], ["path", { d: "M14 18a4 4 0 1 0 8 0a4 4 0 1 0 -8 0", key: "svg-1" }], ["path", { d: "M15 3v4", key: "svg-2" }], ["path", { d: "M7 3v4", key: "svg-3" }], ["path", { d: "M3 11h16", key: "svg-4" }], ["path", { d: "M18 16.496v1.504l1 1", key: "svg-5" }]], w = y("outline", "calendar-time", "CalendarTime", _), E = (e, o) => !e || o.some((a) => a.value === e), L = (e, o) => e.map((a) => ({
14
+ const _ = [["path", { d: "M11.795 21h-6.795a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v4", key: "svg-0" }], ["path", { d: "M14 18a4 4 0 1 0 8 0a4 4 0 1 0 -8 0", key: "svg-1" }], ["path", { d: "M15 3v4", key: "svg-2" }], ["path", { d: "M7 3v4", key: "svg-3" }], ["path", { d: "M3 11h16", key: "svg-4" }], ["path", { d: "M18 16.496v1.504l1 1", key: "svg-5" }]], w = b("outline", "calendar-time", "CalendarTime", _), L = (e, o) => !e || o.some((a) => a.value === e), E = (e, o) => e.map((a) => ({
15
15
  rightLabel: o ? S(a.getRange(o), a.dateFormat) : "",
16
16
  value: a.value,
17
17
  label: M(a.label)
18
18
  })), l = (e) => {
19
19
  const o = P();
20
- k(o);
21
- const { description: a, placeholder: m, title: u, tooltip: g } = O(e), { comparisonPeriod: i, onChange: r } = e, n = o.defaults.comparisonPeriodsOptions, s = D(
22
- () => E(i, n),
20
+ j(o);
21
+ const { description: a, placeholder: m, title: u, tooltip: g } = k(e), { comparisonPeriod: i, onChange: r } = e, n = o.defaults.comparisonPeriodsOptions, s = D(
22
+ () => L(i, n),
23
23
  [i, n]
24
24
  );
25
25
  T(() => {
@@ -32,7 +32,7 @@ const _ = [["path", { d: "M11.795 21h-6.795a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h1
32
32
  );
33
33
  if (!v)
34
34
  return null;
35
- const f = L(
35
+ const f = E(
36
36
  n,
37
37
  h
38
38
  );
@@ -45,11 +45,11 @@ const _ = [["path", { d: "M11.795 21h-6.795a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h1
45
45
  value: s ? i : void 0,
46
46
  onChange: r,
47
47
  options: f,
48
- noOptionsMessage: j.t("common.noOptionsAvailable"),
48
+ noOptionsMessage: O.t("common.noOptionsAvailable"),
49
49
  avoidCollisions: !1
50
50
  }
51
51
  ) });
52
- }, J = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
52
+ }, K = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
53
53
  __proto__: null,
54
54
  default: l
55
55
  }, Symbol.toStringTag, { value: "Module" })), I = {
@@ -99,13 +99,13 @@ const _ = [["path", { d: "M11.795 21h-6.795a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h1
99
99
  events: [{ name: "onChange", property: "value" }]
100
100
  }
101
101
  ]
102
- }, V = b(l, {
102
+ }, V = y(l, {
103
103
  onChange: () => null
104
104
  }), A = (e) => e, z = {
105
105
  onChange: (e) => ({
106
106
  value: e || c.noFilter()
107
107
  })
108
- }, K = {
108
+ }, Q = {
109
109
  Component: l,
110
110
  meta: I,
111
111
  preview: V,
@@ -115,9 +115,9 @@ const _ = [["path", { d: "M11.795 21h-6.795a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h1
115
115
  }
116
116
  };
117
117
  export {
118
- E as a,
119
- K as c,
120
- L as g,
121
- J as i
118
+ L as a,
119
+ Q as c,
120
+ E as g,
121
+ K as i
122
122
  };
123
- //# sourceMappingURL=definition-eKuaU5xY.js.map
123
+ //# sourceMappingURL=definition-b7m3sPDx.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"definition-eKuaU5xY.js","sources":["../node_modules/@tabler/icons-react/dist/esm/icons/IconCalendarTime.mjs","../src/components/editors/ComparisonPeriodSelectFieldPro/ComparisonPeriodSelectFieldPro.utils.ts","../src/components/editors/ComparisonPeriodSelectFieldPro/index.tsx","../src/components/editors/ComparisonPeriodSelectFieldPro/definition.ts"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.44.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M11.795 21h-6.795a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v4\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M14 18a4 4 0 1 0 8 0a4 4 0 1 0 -8 0\", \"key\": \"svg-1\" }], [\"path\", { \"d\": \"M15 3v4\", \"key\": \"svg-2\" }], [\"path\", { \"d\": \"M7 3v4\", \"key\": \"svg-3\" }], [\"path\", { \"d\": \"M3 11h16\", \"key\": \"svg-4\" }], [\"path\", { \"d\": \"M18 16.496v1.504l1 1\", \"key\": \"svg-5\" }]];\nconst IconCalendarTime = createReactComponent(\"outline\", \"calendar-time\", \"CalendarTime\", __iconNode);\n\nexport { __iconNode, IconCalendarTime as default };\n//# sourceMappingURL=IconCalendarTime.mjs.map\n","import { SelectListOptionProps } from '@embeddable.com/remarkable-ui';\nimport { TimeRange } from '@embeddable.com/core';\nimport { ComparisonPeriodSelectFieldProOption } from './ComparisonPeriodSelectFieldPro.types';\nimport { resolveI18nString } from '../../component.utils';\nimport { getTimeRangeLabel } from '../dates/dates.utils';\n\n// Checks if the comparison period type is available in the embeddable types\nexport const isComparisonPeriodAvailable = (\n option: string | undefined,\n comparisonPeriodSelectFieldProOptions: ComparisonPeriodSelectFieldProOption[],\n): boolean => {\n return !option || comparisonPeriodSelectFieldProOptions.some((opt) => opt.value === option);\n};\n\nexport const getComparisonPeriodSelectFieldProOptions = (\n comparisonPeriodSelectFieldProOptions: ComparisonPeriodSelectFieldProOption[],\n toCompareTimeRange: TimeRange,\n): SelectListOptionProps[] => {\n return comparisonPeriodSelectFieldProOptions.map((option) => {\n return {\n rightLabel: toCompareTimeRange\n ? getTimeRangeLabel(option.getRange(toCompareTimeRange), option.dateFormat)\n : '',\n value: option.value,\n label: resolveI18nString(option.label),\n };\n });\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { SingleSelectField } from '@embeddable.com/remarkable-ui';\nimport { Theme } from '../../../theme/theme.types';\nimport { useLoadDayjsLocale } from '../../../utils/date.utils';\nimport { TimeRange } from '@embeddable.com/core';\nimport { resolveI18nProps } from '../../component.utils';\nimport { EditorCard, EditorCardHeaderProps } from '../shared/EditorCard/EditorCard';\nimport { IconCalendarTime } from '@tabler/icons-react';\nimport { i18n, i18nSetup } from '../../../theme/i18n/i18n';\nimport {\n getComparisonPeriodSelectFieldProOptions,\n isComparisonPeriodAvailable,\n} from './ComparisonPeriodSelectFieldPro.utils';\nimport { useEffect, useMemo } from 'react';\nimport { getTimeRangeFromPresets } from '../dates/dates.utils';\n\nexport type DateComparisonSelectFieldPro = {\n placeholder?: string;\n primaryDateRange?: TimeRange;\n comparisonPeriod?: string;\n onChange: (newComparisonPeriod?: string | null) => void;\n} & EditorCardHeaderProps;\n\nconst DateComparisonSelectFieldPro = (props: DateComparisonSelectFieldPro) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { description, placeholder, title, tooltip } = resolveI18nProps(props);\n const { comparisonPeriod, onChange } = props;\n\n const comparisonPeriodOptions = theme.defaults.comparisonPeriodsOptions;\n\n const comparisonPeriodAvailable = useMemo(\n () => isComparisonPeriodAvailable(comparisonPeriod, comparisonPeriodOptions),\n [comparisonPeriod, comparisonPeriodOptions],\n );\n\n // If the current comparison period is not available, reset the field\n useEffect(() => {\n if (!comparisonPeriodAvailable) {\n onChange(undefined);\n }\n }, [comparisonPeriodAvailable, onChange]);\n\n const { dayjsLocaleReady } = useLoadDayjsLocale();\n\n // Obtain the actual range for the selected primaryDateRange\n const primaryDateRange = getTimeRangeFromPresets(\n props.primaryDateRange,\n theme.defaults.dateRangesOptions,\n theme.clientContext.timezone,\n );\n\n if (!dayjsLocaleReady) {\n return null;\n }\n\n const options = getComparisonPeriodSelectFieldProOptions(\n comparisonPeriodOptions,\n primaryDateRange,\n );\n\n return (\n <EditorCard title={title} description={description} tooltip={tooltip}>\n <SingleSelectField\n startIcon={IconCalendarTime}\n clearable\n placeholder={placeholder}\n value={comparisonPeriodAvailable ? comparisonPeriod : undefined}\n onChange={onChange}\n options={options}\n noOptionsMessage={i18n.t('common.noOptionsAvailable')}\n avoidCollisions={false}\n />\n </EditorCard>\n );\n};\n\nexport default DateComparisonSelectFieldPro;\n","import { EmbeddedComponentMeta, Inputs, definePreview } from '@embeddable.com/react';\nimport { Value } from '@embeddable.com/core';\nimport Component from './index';\nimport ComparisonPeriodType from '../../types/ComparisonPeriod.type.emb';\nimport { inputs } from '../../component.inputs.constants';\n\nconst meta = {\n name: 'ComparisonPeriodSelectFieldPro',\n label: 'Comparison Period Select Field',\n description:\n 'Dropdown for picking a comparison period (e.g. the previous period or previous year). Pairs with a comparisonPeriod variable; emits onChange.',\n category: 'Dropdowns - dates',\n defaultWidth: 300,\n defaultHeight: 120,\n inputs: [\n inputs.title,\n inputs.description,\n inputs.tooltip,\n { ...inputs.placeholder, defaultValue: 'Select a date-comparison' },\n {\n ...inputs.timeRange,\n name: 'primaryDateRange',\n label: 'Primary date-range',\n category: 'Pre-configured variables',\n description: 'Pick the main time period. The comparison range is based on this selection.',\n },\n {\n ...inputs.comparisonPeriod,\n label: 'Selected comparison period',\n category: 'Pre-configured variables',\n },\n ],\n events: [\n {\n name: 'onChange',\n label: 'Selected comparison-period updated',\n properties: [\n {\n name: 'value',\n label: 'Selected comparison-period',\n type: ComparisonPeriodType,\n },\n ],\n },\n ],\n variables: [\n {\n name: 'comparison-period value',\n type: ComparisonPeriodType,\n defaultValue: Value.noFilter(),\n inputs: ['comparisonPeriod'],\n events: [{ name: 'onChange', property: 'value' }],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nconst preview = definePreview(Component, {\n onChange: () => null,\n});\n\nconst props = (inputs: Inputs<typeof meta>) => inputs;\n\nconst events = {\n onChange: (value: unknown) => {\n return {\n value: value || Value.noFilter(),\n };\n },\n};\n\nexport const comparisonPeriodSelectFieldPro = {\n Component,\n meta,\n preview,\n config: {\n props,\n events,\n },\n} as const;\n"],"names":["__iconNode","IconCalendarTime","createReactComponent","isComparisonPeriodAvailable","option","comparisonPeriodSelectFieldProOptions","opt","getComparisonPeriodSelectFieldProOptions","toCompareTimeRange","getTimeRangeLabel","resolveI18nString","DateComparisonSelectFieldPro","props","theme","useTheme","i18nSetup","description","placeholder","title","tooltip","resolveI18nProps","comparisonPeriod","onChange","comparisonPeriodOptions","comparisonPeriodAvailable","useMemo","useEffect","dayjsLocaleReady","useLoadDayjsLocale","primaryDateRange","getTimeRangeFromPresets","options","jsx","EditorCard","SingleSelectField","i18n","meta","inputs","ComparisonPeriodType","Value","preview","definePreview","Component","events","value","comparisonPeriodSelectFieldPro"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"definition-b7m3sPDx.js","sources":["../node_modules/@tabler/icons-react/dist/esm/icons/IconCalendarTime.mjs","../src/components/editors/ComparisonPeriodSelectFieldPro/ComparisonPeriodSelectFieldPro.utils.ts","../src/components/editors/ComparisonPeriodSelectFieldPro/index.tsx","../src/components/editors/ComparisonPeriodSelectFieldPro/definition.ts"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.44.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M11.795 21h-6.795a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v4\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M14 18a4 4 0 1 0 8 0a4 4 0 1 0 -8 0\", \"key\": \"svg-1\" }], [\"path\", { \"d\": \"M15 3v4\", \"key\": \"svg-2\" }], [\"path\", { \"d\": \"M7 3v4\", \"key\": \"svg-3\" }], [\"path\", { \"d\": \"M3 11h16\", \"key\": \"svg-4\" }], [\"path\", { \"d\": \"M18 16.496v1.504l1 1\", \"key\": \"svg-5\" }]];\nconst IconCalendarTime = createReactComponent(\"outline\", \"calendar-time\", \"CalendarTime\", __iconNode);\n\nexport { __iconNode, IconCalendarTime as default };\n//# sourceMappingURL=IconCalendarTime.mjs.map\n","import { SelectListOptionProps } from '@embeddable.com/remarkable-ui';\nimport { TimeRange } from '@embeddable.com/core';\nimport { ComparisonPeriodSelectFieldProOption } from './ComparisonPeriodSelectFieldPro.types';\nimport { resolveI18nString } from '../../component.utils';\nimport { getTimeRangeLabel } from '../dates/dates.utils';\n\n// Checks if the comparison period type is available in the embeddable types\nexport const isComparisonPeriodAvailable = (\n option: string | undefined,\n comparisonPeriodSelectFieldProOptions: ComparisonPeriodSelectFieldProOption[],\n): boolean => {\n return !option || comparisonPeriodSelectFieldProOptions.some((opt) => opt.value === option);\n};\n\nexport const getComparisonPeriodSelectFieldProOptions = (\n comparisonPeriodSelectFieldProOptions: ComparisonPeriodSelectFieldProOption[],\n toCompareTimeRange: TimeRange,\n): SelectListOptionProps[] => {\n return comparisonPeriodSelectFieldProOptions.map((option) => {\n return {\n rightLabel: toCompareTimeRange\n ? getTimeRangeLabel(option.getRange(toCompareTimeRange), option.dateFormat)\n : '',\n value: option.value,\n label: resolveI18nString(option.label),\n };\n });\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { SingleSelectField } from '@embeddable.com/remarkable-ui';\nimport { Theme } from '../../../theme/theme.types';\nimport { useLoadDayjsLocale } from '../../../utils/date.utils';\nimport { TimeRange } from '@embeddable.com/core';\nimport { resolveI18nProps } from '../../component.utils';\nimport { EditorCard, EditorCardHeaderProps } from '../shared/EditorCard/EditorCard';\nimport { IconCalendarTime } from '@tabler/icons-react';\nimport { i18n, i18nSetup } from '../../../theme/i18n/i18n';\nimport {\n getComparisonPeriodSelectFieldProOptions,\n isComparisonPeriodAvailable,\n} from './ComparisonPeriodSelectFieldPro.utils';\nimport { useEffect, useMemo } from 'react';\nimport { getTimeRangeFromPresets } from '../dates/dates.utils';\n\nexport type DateComparisonSelectFieldPro = {\n placeholder?: string;\n primaryDateRange?: TimeRange;\n comparisonPeriod?: string;\n onChange: (newComparisonPeriod?: string | null) => void;\n} & EditorCardHeaderProps;\n\nconst DateComparisonSelectFieldPro = (props: DateComparisonSelectFieldPro) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { description, placeholder, title, tooltip } = resolveI18nProps(props);\n const { comparisonPeriod, onChange } = props;\n\n const comparisonPeriodOptions = theme.defaults.comparisonPeriodsOptions;\n\n const comparisonPeriodAvailable = useMemo(\n () => isComparisonPeriodAvailable(comparisonPeriod, comparisonPeriodOptions),\n [comparisonPeriod, comparisonPeriodOptions],\n );\n\n // If the current comparison period is not available, reset the field\n useEffect(() => {\n if (!comparisonPeriodAvailable) {\n onChange(undefined);\n }\n }, [comparisonPeriodAvailable, onChange]);\n\n const { dayjsLocaleReady } = useLoadDayjsLocale();\n\n // Obtain the actual range for the selected primaryDateRange\n const primaryDateRange = getTimeRangeFromPresets(\n props.primaryDateRange,\n theme.defaults.dateRangesOptions,\n theme.clientContext.timezone,\n );\n\n if (!dayjsLocaleReady) {\n return null;\n }\n\n const options = getComparisonPeriodSelectFieldProOptions(\n comparisonPeriodOptions,\n primaryDateRange,\n );\n\n return (\n <EditorCard title={title} description={description} tooltip={tooltip}>\n <SingleSelectField\n startIcon={IconCalendarTime}\n clearable\n placeholder={placeholder}\n value={comparisonPeriodAvailable ? comparisonPeriod : undefined}\n onChange={onChange}\n options={options}\n noOptionsMessage={i18n.t('common.noOptionsAvailable')}\n avoidCollisions={false}\n />\n </EditorCard>\n );\n};\n\nexport default DateComparisonSelectFieldPro;\n","import { EmbeddedComponentMeta, Inputs, definePreview } from '@embeddable.com/react';\nimport { Value } from '@embeddable.com/core';\nimport Component from './index';\nimport ComparisonPeriodType from '../../types/ComparisonPeriod.type.emb';\nimport { inputs } from '../../component.inputs.constants';\n\nconst meta = {\n name: 'ComparisonPeriodSelectFieldPro',\n label: 'Comparison Period Select Field',\n description:\n 'Dropdown for picking a comparison period (e.g. the previous period or previous year). Pairs with a comparisonPeriod variable; emits onChange.',\n category: 'Dropdowns - dates',\n defaultWidth: 300,\n defaultHeight: 120,\n inputs: [\n inputs.title,\n inputs.description,\n inputs.tooltip,\n { ...inputs.placeholder, defaultValue: 'Select a date-comparison' },\n {\n ...inputs.timeRange,\n name: 'primaryDateRange',\n label: 'Primary date-range',\n category: 'Pre-configured variables',\n description: 'Pick the main time period. The comparison range is based on this selection.',\n },\n {\n ...inputs.comparisonPeriod,\n label: 'Selected comparison period',\n category: 'Pre-configured variables',\n },\n ],\n events: [\n {\n name: 'onChange',\n label: 'Selected comparison-period updated',\n properties: [\n {\n name: 'value',\n label: 'Selected comparison-period',\n type: ComparisonPeriodType,\n },\n ],\n },\n ],\n variables: [\n {\n name: 'comparison-period value',\n type: ComparisonPeriodType,\n defaultValue: Value.noFilter(),\n inputs: ['comparisonPeriod'],\n events: [{ name: 'onChange', property: 'value' }],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nconst preview = definePreview(Component, {\n onChange: () => null,\n});\n\nconst props = (inputs: Inputs<typeof meta>) => inputs;\n\nconst events = {\n onChange: (value: unknown) => {\n return {\n value: value || Value.noFilter(),\n };\n },\n};\n\nexport const comparisonPeriodSelectFieldPro = {\n Component,\n meta,\n preview,\n config: {\n props,\n events,\n },\n} as const;\n"],"names":["__iconNode","IconCalendarTime","createReactComponent","isComparisonPeriodAvailable","option","comparisonPeriodSelectFieldProOptions","opt","getComparisonPeriodSelectFieldProOptions","toCompareTimeRange","getTimeRangeLabel","resolveI18nString","DateComparisonSelectFieldPro","props","theme","useTheme","i18nSetup","description","placeholder","title","tooltip","resolveI18nProps","comparisonPeriod","onChange","comparisonPeriodOptions","comparisonPeriodAvailable","useMemo","useEffect","dayjsLocaleReady","useLoadDayjsLocale","primaryDateRange","getTimeRangeFromPresets","options","jsx","EditorCard","SingleSelectField","i18n","meta","inputs","ComparisonPeriodType","Value","preview","definePreview","Component","events","value","comparisonPeriodSelectFieldPro"],"mappings":"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","x_google_ignoreList":[0]}