@embeddable.com/remarkable-pro 0.1.7 → 0.1.9

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 (238) hide show
  1. package/dist/BarChartDefaultHorizontalPro.js +8 -8
  2. package/dist/BarChartDefaultPro.js +5 -5
  3. package/dist/BarChartGroupedHorizontalPro.js +5 -5
  4. package/dist/BarChartGroupedPro.js +9 -9
  5. package/dist/BarChartStackedHorizontalPro.js +5 -5
  6. package/dist/BarChartStackedPro.js +5 -5
  7. package/dist/ChartCard-Bu-80NJh.js +117 -0
  8. package/dist/{ChartCard-lY9ll4LQ.js.map → ChartCard-Bu-80NJh.js.map} +1 -1
  9. package/dist/{Color.type.emb-DyMeb06O.js → Color.type.emb-JBTB4VAn.js} +12869 -12753
  10. package/dist/Color.type.emb-JBTB4VAn.js.map +1 -0
  11. package/dist/ColorEditor.js +10 -29
  12. package/dist/ColorEditor.js.map +1 -1
  13. package/dist/ComparisonPeriodSelectFieldPro.js +3 -3
  14. package/dist/DateRangePickerCustomPro.js +12 -39
  15. package/dist/DateRangePickerCustomPro.js.map +1 -1
  16. package/dist/DateRangeSelectFieldPro.js +3 -3
  17. package/dist/{DimensionAndMeasureSingleSelectField-CauMjY7c.js → DimensionAndMeasureSingleSelectField-C5B9m3hv.js} +8 -7
  18. package/dist/DimensionAndMeasureSingleSelectField-C5B9m3hv.js.map +1 -0
  19. package/dist/DimensionSingleSelectFieldPro.js +12 -27
  20. package/dist/DimensionSingleSelectFieldPro.js.map +1 -1
  21. package/dist/DonutChartPro.js +4 -4
  22. package/dist/DonutLabelChartPro.js +4 -4
  23. package/dist/{EditorCard-BT_swxOl.js → EditorCard-DlwWVuY3.js} +11 -11
  24. package/dist/EditorCard-DlwWVuY3.js.map +1 -0
  25. package/dist/EmptyBlockPro.js +7 -6
  26. package/dist/EmptyBlockPro.js.map +1 -1
  27. package/dist/{GranularitySelectField-BxO_3Xt9.js → GranularitySelectField-DpCZ47f8.js} +28 -25
  28. package/dist/{GranularitySelectField-BxO_3Xt9.js.map → GranularitySelectField-DpCZ47f8.js.map} +1 -1
  29. package/dist/GranularitySelectFieldPro.js +11 -27
  30. package/dist/GranularitySelectFieldPro.js.map +1 -1
  31. package/dist/HeatMapPro.js +4 -4
  32. package/dist/{IconCalendarFilled-CnWTSJdY.js → IconCalendarFilled-DPibPYqC.js} +2 -2
  33. package/dist/{IconCalendarFilled-CnWTSJdY.js.map → IconCalendarFilled-DPibPYqC.js.map} +1 -1
  34. package/dist/KpiChartNumberComparisonPro.js +4 -4
  35. package/dist/KpiChartNumberPro.js +6 -6
  36. package/dist/LineChartComparisonDefaultPro.js +5 -5
  37. package/dist/LineChartDefaultPro.js +5 -5
  38. package/dist/LineChartGroupedPro.js +5 -5
  39. package/dist/MeasureSingleSelectFieldPro.js +14 -29
  40. package/dist/MeasureSingleSelectFieldPro.js.map +1 -1
  41. package/dist/MultiSelectFieldPro.js +4 -4
  42. package/dist/PieChartPro.js +4 -4
  43. package/dist/PivotTablePro.js +77 -43
  44. package/dist/PivotTablePro.js.map +1 -1
  45. package/dist/SingleSelectFieldPro.js +4 -4
  46. package/dist/TableChartPaginated.js +8 -8
  47. package/dist/TableScrollable.js +58 -480
  48. package/dist/TableScrollable.js.map +1 -1
  49. package/dist/{bars.utils-D67ef4lU.js → bars.utils-DZf4BZCu.js} +7 -7
  50. package/dist/{bars.utils-D67ef4lU.js.map → bars.utils-DZf4BZCu.js.map} +1 -1
  51. package/dist/{charts.utils-B3C8A2Nv.js → charts.utils-MNXWiXfk.js} +1165 -1104
  52. package/dist/charts.utils-MNXWiXfk.js.map +1 -0
  53. package/dist/{component.inputs.constants-DIuvtpIr.js → component.inputs.constants-Cj-atN8w.js} +11 -10
  54. package/dist/{component.inputs.constants-DIuvtpIr.js.map → component.inputs.constants-Cj-atN8w.js.map} +1 -1
  55. package/dist/components/charts/bars/BarChartDefaultHorizontalPro/index.d.ts +1 -1
  56. package/dist/components/charts/bars/BarChartDefaultHorizontalPro/index.d.ts.map +1 -1
  57. package/dist/components/charts/bars/BarChartDefaultPro/index.d.ts +1 -1
  58. package/dist/components/charts/bars/BarChartDefaultPro/index.d.ts.map +1 -1
  59. package/dist/components/charts/bars/BarChartGroupedHorizontalPro/index.d.ts +1 -1
  60. package/dist/components/charts/bars/BarChartGroupedHorizontalPro/index.d.ts.map +1 -1
  61. package/dist/components/charts/bars/BarChartGroupedPro/index.d.ts +1 -1
  62. package/dist/components/charts/bars/BarChartGroupedPro/index.d.ts.map +1 -1
  63. package/dist/components/charts/bars/BarChartStackedHorizontalPro/index.d.ts +1 -1
  64. package/dist/components/charts/bars/BarChartStackedHorizontalPro/index.d.ts.map +1 -1
  65. package/dist/components/charts/bars/BarChartStackedPro/index.d.ts +1 -1
  66. package/dist/components/charts/bars/BarChartStackedPro/index.d.ts.map +1 -1
  67. package/dist/components/charts/kpis/KpiChartNumberComparisonPro/index.d.ts +1 -1
  68. package/dist/components/charts/kpis/KpiChartNumberComparisonPro/index.d.ts.map +1 -1
  69. package/dist/components/charts/kpis/KpiChartNumberPro/index.d.ts +1 -1
  70. package/dist/components/charts/kpis/KpiChartNumberPro/index.d.ts.map +1 -1
  71. package/dist/components/charts/lines/LineChartComparisonDefaultPro/LineChartComparisonDefaultPro.utils.d.ts.map +1 -1
  72. package/dist/components/charts/lines/LineChartComparisonDefaultPro/index.d.ts +1 -1
  73. package/dist/components/charts/lines/LineChartComparisonDefaultPro/index.d.ts.map +1 -1
  74. package/dist/components/charts/lines/LineChartDefaultPro/index.d.ts +1 -1
  75. package/dist/components/charts/lines/LineChartDefaultPro/index.d.ts.map +1 -1
  76. package/dist/components/charts/lines/LineChartGroupedPro/LineChartGroupedPro.utils.d.ts.map +1 -1
  77. package/dist/components/charts/lines/LineChartGroupedPro/index.d.ts +1 -1
  78. package/dist/components/charts/lines/LineChartGroupedPro/index.d.ts.map +1 -1
  79. package/dist/components/charts/lines/lines.utils.d.ts +1 -1
  80. package/dist/components/charts/lines/lines.utils.d.ts.map +1 -1
  81. package/dist/components/charts/pies/DonutChartPro/index.d.ts +1 -1
  82. package/dist/components/charts/pies/DonutChartPro/index.d.ts.map +1 -1
  83. package/dist/components/charts/pies/DonutLabelChartPro/index.d.ts +1 -1
  84. package/dist/components/charts/pies/DonutLabelChartPro/index.d.ts.map +1 -1
  85. package/dist/components/charts/pies/PieChartPro/index.d.ts +1 -1
  86. package/dist/components/charts/pies/PieChartPro/index.d.ts.map +1 -1
  87. package/dist/components/charts/shared/ChartGranularitySelectField/ChartGranularitySelectField.d.ts +1 -2
  88. package/dist/components/charts/shared/ChartGranularitySelectField/ChartGranularitySelectField.d.ts.map +1 -1
  89. package/dist/components/charts/tables/HeatMapPro/index.d.ts +1 -1
  90. package/dist/components/charts/tables/HeatMapPro/index.d.ts.map +1 -1
  91. package/dist/components/charts/tables/PivotTablePro/index.d.ts +5 -1
  92. package/dist/components/charts/tables/PivotTablePro/index.d.ts.map +1 -1
  93. package/dist/components/charts/tables/TableChartPaginated/index.d.ts +1 -1
  94. package/dist/components/charts/tables/TableChartPaginated/index.d.ts.map +1 -1
  95. package/dist/components/charts/tables/TableScrollable/index.d.ts +1 -1
  96. package/dist/components/charts/tables/TableScrollable/index.d.ts.map +1 -1
  97. package/dist/components/charts/tables/tables.hooks.d.ts +2 -2
  98. package/dist/components/charts/tables/tables.hooks.d.ts.map +1 -1
  99. package/dist/components/editors/ComparisonPeriodSelectFieldPro/index.d.ts +1 -1
  100. package/dist/components/editors/ComparisonPeriodSelectFieldPro/index.d.ts.map +1 -1
  101. package/dist/components/editors/DimensionSingleSelectFieldPro/index.d.ts +1 -1
  102. package/dist/components/editors/DimensionSingleSelectFieldPro/index.d.ts.map +1 -1
  103. package/dist/components/editors/GranularitySelectFieldPro/index.d.ts +1 -1
  104. package/dist/components/editors/GranularitySelectFieldPro/index.d.ts.map +1 -1
  105. package/dist/components/editors/MeasureSingleSelectFieldPro/index.d.ts +1 -1
  106. package/dist/components/editors/MeasureSingleSelectFieldPro/index.d.ts.map +1 -1
  107. package/dist/components/editors/MultiSelectFieldPro/index.d.ts +1 -1
  108. package/dist/components/editors/MultiSelectFieldPro/index.d.ts.map +1 -1
  109. package/dist/components/editors/SingleSelectFieldPro/index.d.ts +1 -1
  110. package/dist/components/editors/SingleSelectFieldPro/index.d.ts.map +1 -1
  111. package/dist/components/editors/dates/DateRangePickerCustomPro/index.d.ts +1 -1
  112. package/dist/components/editors/dates/DateRangePickerCustomPro/index.d.ts.map +1 -1
  113. package/dist/components/editors/dates/DateRangePickerPresetsPro/index.d.ts +1 -1
  114. package/dist/components/editors/dates/DateRangePickerPresetsPro/index.d.ts.map +1 -1
  115. package/dist/components/editors/shared/DimensionAndMeasureSingleSelectField/DimensionAndMeasureSingleSelectField.d.ts +1 -2
  116. package/dist/components/editors/shared/DimensionAndMeasureSingleSelectField/DimensionAndMeasureSingleSelectField.d.ts.map +1 -1
  117. package/dist/components/editors/shared/EditorCard/EditorCard.d.ts +1 -2
  118. package/dist/components/editors/shared/EditorCard/EditorCard.d.ts.map +1 -1
  119. package/dist/{dates.utils-BF32dTLi.js → dates.utils-D13NY0HZ.js} +32 -27
  120. package/dist/{dates.utils-BF32dTLi.js.map → dates.utils-D13NY0HZ.js.map} +1 -1
  121. package/dist/embeddable-components.json +26 -26
  122. package/dist/embeddable-theme-0137e.js +485 -433
  123. package/dist/{granularity.utils-DOE6WosF.js → granularity.utils-COYhEZ3f.js} +5 -5
  124. package/dist/granularity.utils-COYhEZ3f.js.map +1 -0
  125. package/dist/index-1LMAV7gp.js +131 -0
  126. package/dist/index-1LMAV7gp.js.map +1 -0
  127. package/dist/index-5qsLc5gK.js +28 -0
  128. package/dist/index-5qsLc5gK.js.map +1 -0
  129. package/dist/{index-CjHAwVRf.js → index-77C7AtLU.js} +5 -5
  130. package/dist/index-77C7AtLU.js.map +1 -0
  131. package/dist/{index-CUSduRHI.js → index-B0Z1wHFa.js} +5 -5
  132. package/dist/index-B0Z1wHFa.js.map +1 -0
  133. package/dist/{index-C-nvYCGs.js → index-BIYe6Mxp.js} +16 -16
  134. package/dist/index-BIYe6Mxp.js.map +1 -0
  135. package/dist/index-BLtSOe_I.js +28 -0
  136. package/dist/index-BLtSOe_I.js.map +1 -0
  137. package/dist/index-BfrhwVwQ.js +30 -0
  138. package/dist/index-BfrhwVwQ.js.map +1 -0
  139. package/dist/{index-GErBkwin.js → index-BownhTSN.js} +10 -10
  140. package/dist/index-BownhTSN.js.map +1 -0
  141. package/dist/{index-xEBUfTFG.js → index-BwwtBJde.js} +18 -18
  142. package/dist/index-BwwtBJde.js.map +1 -0
  143. package/dist/{index-Dqg161tJ.js → index-C6YdlImA.js} +10 -10
  144. package/dist/index-C6YdlImA.js.map +1 -0
  145. package/dist/{index-lRdvXdHc.js → index-CDfc3oko.js} +60 -60
  146. package/dist/index-CDfc3oko.js.map +1 -0
  147. package/dist/index-CKM7Eu4P.js +29 -0
  148. package/dist/index-CKM7Eu4P.js.map +1 -0
  149. package/dist/{index-CF3L0Llr.js → index-CWAfLnlR.js} +11 -11
  150. package/dist/index-CWAfLnlR.js.map +1 -0
  151. package/dist/index-CWoNbj8I.js +40 -0
  152. package/dist/index-CWoNbj8I.js.map +1 -0
  153. package/dist/index-CfSyZuh4.js +436 -0
  154. package/dist/index-CfSyZuh4.js.map +1 -0
  155. package/dist/{index-BurrZuJv.js → index-ChBjG9Oi.js} +12 -12
  156. package/dist/index-ChBjG9Oi.js.map +1 -0
  157. package/dist/{index-DE1v51rj.js → index-Ci4fIfj8.js} +8 -8
  158. package/dist/index-Ci4fIfj8.js.map +1 -0
  159. package/dist/{index-Cqijl93L.js → index-CwEdsnOz.js} +10 -10
  160. package/dist/index-CwEdsnOz.js.map +1 -0
  161. package/dist/index-CzKKN6Om.js +9 -0
  162. package/dist/index-CzKKN6Om.js.map +1 -0
  163. package/dist/{index-CWbF9C-q.js → index-D65Rq3k-.js} +6 -6
  164. package/dist/index-D65Rq3k-.js.map +1 -0
  165. package/dist/{index-D6MGD_eg.js → index-DA8SRHFS.js} +16 -16
  166. package/dist/index-DA8SRHFS.js.map +1 -0
  167. package/dist/{index-Ddl-xnlO.js → index-DILo_r4-.js} +8 -8
  168. package/dist/index-DILo_r4-.js.map +1 -0
  169. package/dist/{index-DUbT-KRk.js → index-DK0M5jbC.js} +10 -10
  170. package/dist/index-DK0M5jbC.js.map +1 -0
  171. package/dist/{index-CFrNEzVs.js → index-DKN0VZXM.js} +13 -13
  172. package/dist/index-DKN0VZXM.js.map +1 -0
  173. package/dist/{index-LXoveu2D.js → index-DN5C1NTk.js} +5 -5
  174. package/dist/index-DN5C1NTk.js.map +1 -0
  175. package/dist/{index-CMQ1TgyS.js → index-d6y81S-C.js} +23 -23
  176. package/dist/index-d6y81S-C.js.map +1 -0
  177. package/dist/{index-DY_fdpVZ.js → index-r9MBmJ_q.js} +5 -5
  178. package/dist/index-r9MBmJ_q.js.map +1 -0
  179. package/dist/{index-RClH7rnf.js → index-s6HzicAx.js} +20 -20
  180. package/dist/index-s6HzicAx.js.map +1 -0
  181. package/dist/index.d.ts +67 -8
  182. package/dist/index.d.ts.map +1 -1
  183. package/dist/index.js +152 -91
  184. package/dist/index.js.map +1 -1
  185. package/dist/{lines.utils-COGf_F0b.js → lines.utils-CEGfmIHB.js} +5 -5
  186. package/dist/lines.utils-CEGfmIHB.js.map +1 -0
  187. package/dist/{pies.utils-JJQ8gWX5.js → pies.utils-CxJtBPWG.js} +5 -5
  188. package/dist/{pies.utils-JJQ8gWX5.js.map → pies.utils-CxJtBPWG.js.map} +1 -1
  189. package/dist/preview.data.constants-DWqfMVjy.js +123 -0
  190. package/dist/preview.data.constants-DWqfMVjy.js.map +1 -0
  191. package/dist/remarkable-pro.css +1 -1
  192. package/dist/styles.utils-BfpH_m_W.js.map +1 -1
  193. package/dist/tables.hooks-fVC_4V5K.js +47 -0
  194. package/dist/tables.hooks-fVC_4V5K.js.map +1 -0
  195. package/dist/{tables.utils-Tmh4h7ni.js → tables.utils-D4RGHDWw.js} +4 -4
  196. package/dist/{tables.utils-Tmh4h7ni.js.map → tables.utils-D4RGHDWw.js.map} +1 -1
  197. package/dist/theme/styles/styles.utils.d.ts +1 -2
  198. package/dist/theme/styles/styles.utils.d.ts.map +1 -1
  199. package/dist/{timeRange.utils-BkBVvgvj.js → timeRange.utils-D8kYnjqp.js} +5 -5
  200. package/dist/{timeRange.utils-BkBVvgvj.js.map → timeRange.utils-D8kYnjqp.js.map} +1 -1
  201. package/dist/utils/array.utils.d.ts +2 -0
  202. package/dist/utils/array.utils.d.ts.map +1 -0
  203. package/package.json +2 -2
  204. package/dist/ChartCard-lY9ll4LQ.js +0 -117
  205. package/dist/Color.type.emb-DyMeb06O.js.map +0 -1
  206. package/dist/DimensionAndMeasureSingleSelectField-CauMjY7c.js.map +0 -1
  207. package/dist/EditorCard-BT_swxOl.js.map +0 -1
  208. package/dist/charts.utils-B3C8A2Nv.js.map +0 -1
  209. package/dist/formatter.utils-7mfdOwJE.js +0 -54
  210. package/dist/formatter.utils-7mfdOwJE.js.map +0 -1
  211. package/dist/granularity.utils-DOE6WosF.js.map +0 -1
  212. package/dist/index-BurrZuJv.js.map +0 -1
  213. package/dist/index-C-nvYCGs.js.map +0 -1
  214. package/dist/index-CF3L0Llr.js.map +0 -1
  215. package/dist/index-CFrNEzVs.js.map +0 -1
  216. package/dist/index-CMQ1TgyS.js.map +0 -1
  217. package/dist/index-CUSduRHI.js.map +0 -1
  218. package/dist/index-CWbF9C-q.js.map +0 -1
  219. package/dist/index-CjHAwVRf.js.map +0 -1
  220. package/dist/index-Cqijl93L.js.map +0 -1
  221. package/dist/index-D6MGD_eg.js.map +0 -1
  222. package/dist/index-DE1v51rj.js.map +0 -1
  223. package/dist/index-DUbT-KRk.js.map +0 -1
  224. package/dist/index-DY_fdpVZ.js.map +0 -1
  225. package/dist/index-Ddl-xnlO.js.map +0 -1
  226. package/dist/index-Dqg161tJ.js.map +0 -1
  227. package/dist/index-GErBkwin.js.map +0 -1
  228. package/dist/index-LXoveu2D.js.map +0 -1
  229. package/dist/index-QipF64Oq.js +0 -99
  230. package/dist/index-QipF64Oq.js.map +0 -1
  231. package/dist/index-RClH7rnf.js.map +0 -1
  232. package/dist/index-lRdvXdHc.js.map +0 -1
  233. package/dist/index-xEBUfTFG.js.map +0 -1
  234. package/dist/lines.utils-COGf_F0b.js.map +0 -1
  235. package/dist/preview.data.constants-BsS2fJxn.js +0 -72
  236. package/dist/preview.data.constants-BsS2fJxn.js.map +0 -1
  237. package/dist/tables.hooks-BQdyUxau.js +0 -45
  238. package/dist/tables.hooks-BQdyUxau.js.map +0 -1
@@ -1,37 +1,18 @@
1
- import { defineEditor as l } from "@embeddable.com/react";
2
- import { j as r, A as a, I as i, v as p, V as u } from "./Color.type.emb-DyMeb06O.js";
3
- import { useState as m, useEffect as C } from "react";
4
- const I = "_colorInputContainer_1o1qe_1", d = "_colorInput_1o1qe_1", s = {
5
- colorInputContainer: I,
6
- colorInput: d
7
- }, f = ({ value: o, onChange: t }) => {
8
- const [n, e] = m(o);
9
- return C(() => {
10
- e(o);
11
- }, [o, e]), /* @__PURE__ */ r.jsxs("div", { className: s.colorInputContainer, children: [
12
- /* @__PURE__ */ r.jsx(
13
- "input",
14
- {
15
- type: "color",
16
- className: s.colorInput,
17
- value: n ?? "#FFFFFF",
18
- onChange: (c) => t(c.target.value)
19
- }
20
- ),
21
- n && /* @__PURE__ */ r.jsx(a, { icon: i, onClick: () => t(void 0) })
22
- ] });
23
- }, _ = {
1
+ import { defineEditor as e } from "@embeddable.com/react";
2
+ import { C as a, V as i } from "./Color.type.emb-JBTB4VAn.js";
3
+ import { C as l } from "./index-BfrhwVwQ.js";
4
+ const m = {
24
5
  name: "ColorEditor",
25
6
  label: "Color editor",
26
- type: p
27
- }, E = l(f, _, {
28
- inputs: (o, t) => ({
7
+ type: a
8
+ }, s = e(l, m, {
9
+ inputs: (o, r) => ({
29
10
  value: o,
30
- onChange: (n) => t(u.of(n))
11
+ onChange: (t) => r(i.of(t))
31
12
  })
32
13
  });
33
14
  export {
34
- E as default,
35
- _ as meta
15
+ s as default,
16
+ m as meta
36
17
  };
37
18
  //# sourceMappingURL=ColorEditor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ColorEditor.js","sources":["../src/editors/ColorEditor/index.tsx","../src/editors/ColorEditor/ColorEditor.emb.ts"],"sourcesContent":["import { useState, useEffect, FC } from 'react';\nimport styles from './ColorEditor.module.css';\nimport { ActionIcon } from '@embeddable.com/remarkable-ui';\nimport { IconX } from '@tabler/icons-react';\n\ntype ColorInputProps = {\n value: string;\n onChange: (color?: string) => void;\n};\n\nconst ColorInput: FC<ColorInputProps> = ({ value, onChange }) => {\n const [color, setColor] = useState<string>(value);\n\n useEffect(() => {\n setColor(value);\n }, [value, setColor]);\n\n return (\n <div className={styles.colorInputContainer}>\n <input\n type=\"color\"\n className={styles.colorInput}\n value={color ?? '#FFFFFF'}\n onChange={(e) => onChange(e.target.value)}\n />\n {color && <ActionIcon icon={IconX} onClick={() => onChange(undefined)} />}\n </div>\n );\n};\n\nexport default ColorInput;\n","import { defineEditor } from '@embeddable.com/react';\nimport ColorType from './Color.type.emb';\nimport { Value } from '@embeddable.com/core';\n\nimport Component from './index';\n\nexport const meta = {\n name: 'ColorEditor',\n label: 'Color editor',\n type: ColorType,\n};\n\n/* @ts-expect-error - to be fixed in @embeddable.com/react */\nexport default defineEditor(Component, meta, {\n inputs: (value, setter) => {\n return {\n value,\n onChange: (val: string) => setter(Value.of(val)),\n };\n },\n});\n"],"names":["ColorInput","value","onChange","color","setColor","useState","useEffect","jsxs","styles","jsx","e","ActionIcon","IconX","meta","ColorType","ColorEditor_emb","defineEditor","Component","setter","val","Value"],"mappings":";;;;;;GAUMA,IAAkC,CAAC,EAAE,OAAAC,GAAO,UAAAC,QAAe;AAC/D,QAAM,CAACC,GAAOC,CAAQ,IAAIC,EAAiBJ,CAAK;AAEhD,SAAAK,EAAU,MAAM;AACd,IAAAF,EAASH,CAAK;AAAA,EAChB,GAAG,CAACA,GAAOG,CAAQ,CAAC,GAGlBG,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAWC,EAAO,qBACrB,UAAA;AAAA,IAAAC,gBAAAA,EAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAWD,EAAO;AAAA,QAClB,OAAOL,KAAS;AAAA,QAChB,UAAU,CAACO,MAAMR,EAASQ,EAAE,OAAO,KAAK;AAAA,MAAA;AAAA,IAAA;AAAA,IAEzCP,2BAAUQ,GAAA,EAAW,MAAMC,GAAO,SAAS,MAAMV,EAAS,MAAS,EAAA,CAAG;AAAA,EAAA,GACzE;AAEJ,GCtBaW,IAAO;AAAA,EAClB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAMC;AACR,GAGAC,IAAeC,EAAaC,GAAWJ,GAAM;AAAA,EAC3C,QAAQ,CAACZ,GAAOiB,OACP;AAAA,IACL,OAAAjB;AAAA,IACA,UAAU,CAACkB,MAAgBD,EAAOE,EAAM,GAAGD,CAAG,CAAC;AAAA,EAAA;AAGrD,CAAC;"}
1
+ {"version":3,"file":"ColorEditor.js","sources":["../src/editors/ColorEditor/ColorEditor.emb.ts"],"sourcesContent":["import { defineEditor } from '@embeddable.com/react';\nimport ColorType from './Color.type.emb';\nimport { Value } from '@embeddable.com/core';\n\nimport Component from './index';\n\nexport const meta = {\n name: 'ColorEditor',\n label: 'Color editor',\n type: ColorType,\n};\n\n/* @ts-expect-error - to be fixed in @embeddable.com/react */\nexport default defineEditor(Component, meta, {\n inputs: (value, setter) => {\n return {\n value,\n onChange: (val: string) => setter(Value.of(val)),\n };\n },\n});\n"],"names":["meta","ColorType","ColorEditor_emb","defineEditor","Component","value","setter","val","Value"],"mappings":";;;AAMO,MAAMA,IAAO;AAAA,EAClB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAMC;AACR,GAGAC,IAAeC,EAAaC,GAAWJ,GAAM;AAAA,EAC3C,QAAQ,CAACK,GAAOC,OACP;AAAA,IACL,OAAAD;AAAA,IACA,UAAU,CAACE,MAAgBD,EAAOE,EAAM,GAAGD,CAAG,CAAC;AAAA,EAAA;AAGrD,CAAC;"}
@@ -1,7 +1,7 @@
1
1
  import { definePreview as t, defineComponent as n } from "@embeddable.com/react";
2
- import { V as r } from "./Color.type.emb-DyMeb06O.js";
3
- import { D as i } from "./index-DE1v51rj.js";
4
- import { C as a, b as e } from "./component.inputs.constants-DIuvtpIr.js";
2
+ import { V as r } from "./Color.type.emb-JBTB4VAn.js";
3
+ import { D as i } from "./index-Ci4fIfj8.js";
4
+ import { C as a, c as e } from "./component.inputs.constants-Cj-atN8w.js";
5
5
  const l = {
6
6
  name: "ComparisonPeriodSelectFieldPro",
7
7
  label: "Comparison Period Select Field",
@@ -1,35 +1,8 @@
1
- import { useTheme as P, definePreview as y, defineComponent as D } from "@embeddable.com/react";
2
- import { j as l, k as w, V as s } from "./Color.type.emb-DyMeb06O.js";
3
- import { u as V, g as k, a as S, b as j } from "./dates.utils-BF32dTLi.js";
4
- import { a as F, r as M, i as T, b as e } from "./component.inputs.constants-DIuvtpIr.js";
5
- import { E as x } from "./EditorCard-BT_swxOl.js";
6
- import { I as L } from "./IconCalendarFilled-CnWTSJdY.js";
7
- const r = (a) => {
8
- const t = P();
9
- F(t);
10
- const { dayjsLocaleReady: i } = V();
11
- if (!i)
12
- return null;
13
- const { description: c, placeholder: d, title: m, tooltip: u } = M(a), { onChange: g, clearable: p, selectedValue: n, showTwoMonths: h } = a, f = (v) => {
14
- const C = j(v);
15
- g(C);
16
- }, o = t.defaults.dateRangesOptions, R = k(n, "MMM DD", o), b = t.i18n.language ?? t.formatter.locale;
17
- return /* @__PURE__ */ l.jsx(x, { title: m, description: c, tooltip: u, children: /* @__PURE__ */ l.jsx(
18
- w,
19
- {
20
- startIcon: L,
21
- locale: b,
22
- clearable: p,
23
- placeholder: d,
24
- displayValue: R,
25
- numberOfMonths: h ? 2 : 1,
26
- value: S(n, o),
27
- onChange: f,
28
- submitLabel: T.t("editors.dateRangePicker.apply"),
29
- avoidCollisions: !1
30
- }
31
- ) });
32
- }, I = {
1
+ import { definePreview as o, defineComponent as l } from "@embeddable.com/react";
2
+ import { V as t } from "./Color.type.emb-JBTB4VAn.js";
3
+ import { D as n } from "./index-CWoNbj8I.js";
4
+ import { c as e } from "./component.inputs.constants-Cj-atN8w.js";
5
+ const r = {
33
6
  name: "DateRangePickerCustomPro",
34
7
  label: "Date-Range Picker - Custom",
35
8
  category: "Dropdowns",
@@ -72,26 +45,26 @@ const r = (a) => {
72
45
  {
73
46
  name: "date-range value",
74
47
  type: "timeRange",
75
- defaultValue: s.noFilter(),
48
+ defaultValue: t.noFilter(),
76
49
  inputs: ["selectedValue"],
77
50
  events: [{ name: "onChange", property: "value" }]
78
51
  }
79
52
  ]
80
- }, z = y(r, {
53
+ }, d = o(n, {
81
54
  onChange: () => null
82
- }), A = D(r, I, {
55
+ }), p = l(n, r, {
83
56
  props: (a) => ({
84
57
  ...a
85
58
  }),
86
59
  events: {
87
60
  onChange: (a) => ({
88
- value: a ?? s.noFilter()
61
+ value: a ?? t.noFilter()
89
62
  })
90
63
  }
91
64
  });
92
65
  export {
93
- A as default,
94
- I as meta,
95
- z as preview
66
+ p as default,
67
+ r as meta,
68
+ d as preview
96
69
  };
97
70
  //# sourceMappingURL=DateRangePickerCustomPro.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DateRangePickerCustomPro.js","sources":["../src/components/editors/dates/DateRangePickerCustomPro/index.tsx","../src/components/editors/dates/DateRangePickerCustomPro/DateRangePickerCustomPro.emb.ts"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { DateRange, DateRangePickerField } 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 { i18n, i18nSetup } from '../../../../theme/i18n/i18n';\nimport {\n getDateRangeFromTimeRange,\n getTimeRangeFromDateRange,\n getTimeRangeLabel,\n} from '../dates.utils';\nimport { IconCalendarFilled } from '@tabler/icons-react';\n\ntype DateRangePickerPresetsProps = {\n onChange: (newDateRange: TimeRange) => void;\n placeholder?: string;\n selectedValue?: TimeRange;\n clearable?: boolean;\n showTwoMonths?: boolean;\n} & EditorCardHeaderProps;\n\nconst DateRangePickerPresets = (props: DateRangePickerPresetsProps) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { dayjsLocaleReady } = useLoadDayjsLocale();\n\n if (!dayjsLocaleReady) {\n return null;\n }\n\n const { description, placeholder, title, tooltip } = resolveI18nProps(props);\n const { onChange, clearable, selectedValue, showTwoMonths } = props;\n\n const handleChange = (newDateRange: DateRange | undefined) => {\n const timeRange: TimeRange = getTimeRangeFromDateRange(newDateRange);\n onChange(timeRange);\n };\n\n const dateRangeOptions = theme.defaults.dateRangesOptions;\n const displayValue = getTimeRangeLabel(selectedValue, 'MMM DD', dateRangeOptions);\n\n const locale = theme.i18n.language ?? theme.formatter.locale;\n\n return (\n <EditorCard title={title} description={description} tooltip={tooltip}>\n <DateRangePickerField\n startIcon={IconCalendarFilled}\n locale={locale}\n clearable={clearable}\n placeholder={placeholder}\n displayValue={displayValue}\n numberOfMonths={showTwoMonths ? 2 : 1}\n value={getDateRangeFromTimeRange(selectedValue, dateRangeOptions)}\n onChange={handleChange}\n submitLabel={i18n.t('editors.dateRangePicker.apply')}\n avoidCollisions={false}\n />\n </EditorCard>\n );\n};\n\nexport default DateRangePickerPresets;\n","import {\n defineComponent,\n definePreview,\n EmbeddedComponentMeta,\n Inputs,\n} from '@embeddable.com/react';\nimport { Value } from '@embeddable.com/core';\nimport DateTimeSelectFieldPro from './index';\nimport { inputs } from '../../../component.inputs.constants';\n\nexport const meta = {\n name: 'DateRangePickerCustomPro',\n label: 'Date-Range Picker - Custom',\n category: 'Dropdowns',\n defaultWidth: 300,\n defaultHeight: 120,\n inputs: [\n inputs.title,\n inputs.description,\n inputs.tooltip,\n { ...inputs.placeholder, defaultValue: 'Select a date-range' },\n inputs.clearable,\n {\n ...inputs.timeRange,\n name: 'selectedValue',\n label: 'Selected value',\n category: 'Pre-configured variables',\n },\n {\n ...inputs.boolean,\n name: 'showTwoMonths',\n label: 'Show two months',\n defaultValue: false,\n category: 'Component Settings',\n },\n ],\n events: [\n {\n name: 'onChange',\n label: 'Selected date-range updated',\n properties: [\n {\n name: 'value',\n label: 'Selected date-range',\n type: 'timeRange',\n },\n ],\n },\n ],\n variables: [\n {\n name: 'date-range value',\n type: 'timeRange',\n defaultValue: Value.noFilter(),\n inputs: ['selectedValue'],\n events: [{ name: 'onChange', property: 'value' }],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nexport const preview = definePreview(DateTimeSelectFieldPro, {\n onChange: () => null,\n});\n\nexport default defineComponent(DateTimeSelectFieldPro, meta, {\n props: (inputs: Inputs<typeof meta>) => {\n return {\n ...inputs,\n };\n },\n events: {\n onChange: (range) => ({\n value: range ?? Value.noFilter(),\n }),\n },\n});\n"],"names":["DateRangePickerPresets","props","theme","useTheme","i18nSetup","dayjsLocaleReady","useLoadDayjsLocale","description","placeholder","title","tooltip","resolveI18nProps","onChange","clearable","selectedValue","showTwoMonths","handleChange","newDateRange","timeRange","getTimeRangeFromDateRange","dateRangeOptions","displayValue","getTimeRangeLabel","locale","jsx","EditorCard","DateRangePickerField","IconCalendarFilled","getDateRangeFromTimeRange","i18n","meta","inputs","Value","preview","definePreview","DateTimeSelectFieldPro","DateRangePickerCustomPro_emb","defineComponent","range"],"mappings":";;;;;;AAuBA,MAAMA,IAAyB,CAACC,MAAuC;AACrE,QAAMC,IAAeC,EAAA;AACrB,EAAAC,EAAUF,CAAK;AAEf,QAAM,EAAE,kBAAAG,EAAA,IAAqBC,EAAA;AAE7B,MAAI,CAACD;AACH,WAAO;AAGT,QAAM,EAAE,aAAAE,GAAa,aAAAC,GAAa,OAAAC,GAAO,SAAAC,EAAA,IAAYC,EAAiBV,CAAK,GACrE,EAAE,UAAAW,GAAU,WAAAC,GAAW,eAAAC,GAAe,eAAAC,MAAkBd,GAExDe,IAAe,CAACC,MAAwC;AAC5D,UAAMC,IAAuBC,EAA0BF,CAAY;AACnE,IAAAL,EAASM,CAAS;AAAA,EACpB,GAEME,IAAmBlB,EAAM,SAAS,mBAClCmB,IAAeC,EAAkBR,GAAe,UAAUM,CAAgB,GAE1EG,IAASrB,EAAM,KAAK,YAAYA,EAAM,UAAU;AAEtD,SACEsB,gBAAAA,EAAAA,IAACC,GAAA,EAAW,OAAAhB,GAAc,aAAAF,GAA0B,SAAAG,GAClD,UAAAc,gBAAAA,EAAAA;AAAAA,IAACE;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,MACX,QAAAJ;AAAA,MACA,WAAAV;AAAA,MACA,aAAAL;AAAA,MACA,cAAAa;AAAA,MACA,gBAAgBN,IAAgB,IAAI;AAAA,MACpC,OAAOa,EAA0Bd,GAAeM,CAAgB;AAAA,MAChE,UAAUJ;AAAA,MACV,aAAaa,EAAK,EAAE,+BAA+B;AAAA,MACnD,iBAAiB;AAAA,IAAA;AAAA,EAAA,GAErB;AAEJ,GCpDaC,IAAO;AAAA,EAClB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,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,sBAAA;AAAA,IACvCA,EAAO;AAAA,IACP;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU;AAAA,IAAA;AAAA,IAEZ;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,MAAM;AAAA,MACN,OAAO;AAAA,MACP,cAAc;AAAA,MACd,UAAU;AAAA,IAAA;AAAA,EACZ;AAAA,EAEF,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,cAAcC,EAAM,SAAA;AAAA,MACpB,QAAQ,CAAC,eAAe;AAAA,MACxB,QAAQ,CAAC,EAAE,MAAM,YAAY,UAAU,SAAS;AAAA,IAAA;AAAA,EAClD;AAEJ,GAEaC,IAAUC,EAAcC,GAAwB;AAAA,EAC3D,UAAU,MAAM;AAClB,CAAC,GAEDC,IAAeC,EAAgBF,GAAwBL,GAAM;AAAA,EAC3D,OAAO,CAACC,OACC;AAAA,IACL,GAAGA;AAAAA,EAAA;AAAA,EAGP,QAAQ;AAAA,IACN,UAAU,CAACO,OAAW;AAAA,MACpB,OAAOA,KAASN,EAAM,SAAA;AAAA,IAAS;AAAA,EACjC;AAEJ,CAAC;"}
1
+ {"version":3,"file":"DateRangePickerCustomPro.js","sources":["../src/components/editors/dates/DateRangePickerCustomPro/DateRangePickerCustomPro.emb.ts"],"sourcesContent":["import {\n defineComponent,\n definePreview,\n EmbeddedComponentMeta,\n Inputs,\n} from '@embeddable.com/react';\nimport { Value } from '@embeddable.com/core';\nimport DateTimeSelectFieldPro from './index';\nimport { inputs } from '../../../component.inputs.constants';\n\nexport const meta = {\n name: 'DateRangePickerCustomPro',\n label: 'Date-Range Picker - Custom',\n category: 'Dropdowns',\n defaultWidth: 300,\n defaultHeight: 120,\n inputs: [\n inputs.title,\n inputs.description,\n inputs.tooltip,\n { ...inputs.placeholder, defaultValue: 'Select a date-range' },\n inputs.clearable,\n {\n ...inputs.timeRange,\n name: 'selectedValue',\n label: 'Selected value',\n category: 'Pre-configured variables',\n },\n {\n ...inputs.boolean,\n name: 'showTwoMonths',\n label: 'Show two months',\n defaultValue: false,\n category: 'Component Settings',\n },\n ],\n events: [\n {\n name: 'onChange',\n label: 'Selected date-range updated',\n properties: [\n {\n name: 'value',\n label: 'Selected date-range',\n type: 'timeRange',\n },\n ],\n },\n ],\n variables: [\n {\n name: 'date-range value',\n type: 'timeRange',\n defaultValue: Value.noFilter(),\n inputs: ['selectedValue'],\n events: [{ name: 'onChange', property: 'value' }],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nexport const preview = definePreview(DateTimeSelectFieldPro, {\n onChange: () => null,\n});\n\nexport default defineComponent(DateTimeSelectFieldPro, meta, {\n props: (inputs: Inputs<typeof meta>) => {\n return {\n ...inputs,\n };\n },\n events: {\n onChange: (range) => ({\n value: range ?? Value.noFilter(),\n }),\n },\n});\n"],"names":["meta","inputs","Value","preview","definePreview","DateTimeSelectFieldPro","DateRangePickerCustomPro_emb","defineComponent","range"],"mappings":";;;;AAUO,MAAMA,IAAO;AAAA,EAClB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,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,sBAAA;AAAA,IACvCA,EAAO;AAAA,IACP;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU;AAAA,IAAA;AAAA,IAEZ;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,MAAM;AAAA,MACN,OAAO;AAAA,MACP,cAAc;AAAA,MACd,UAAU;AAAA,IAAA;AAAA,EACZ;AAAA,EAEF,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,cAAcC,EAAM,SAAA;AAAA,MACpB,QAAQ,CAAC,eAAe;AAAA,MACxB,QAAQ,CAAC,EAAE,MAAM,YAAY,UAAU,SAAS;AAAA,IAAA;AAAA,EAClD;AAEJ,GAEaC,IAAUC,EAAcC,GAAwB;AAAA,EAC3D,UAAU,MAAM;AAClB,CAAC,GAEDC,IAAeC,EAAgBF,GAAwBL,GAAM;AAAA,EAC3D,OAAO,CAACC,OACC;AAAA,IACL,GAAGA;AAAAA,EAAA;AAAA,EAGP,QAAQ;AAAA,IACN,UAAU,CAACO,OAAW;AAAA,MACpB,OAAOA,KAASN,EAAM,SAAA;AAAA,IAAS;AAAA,EACjC;AAEJ,CAAC;"}
@@ -1,7 +1,7 @@
1
1
  import { definePreview as o, defineComponent as l } from "@embeddable.com/react";
2
- import { V as t } from "./Color.type.emb-DyMeb06O.js";
3
- import { D as n } from "./index-xEBUfTFG.js";
4
- import { b as e } from "./component.inputs.constants-DIuvtpIr.js";
2
+ import { V as t } from "./Color.type.emb-JBTB4VAn.js";
3
+ import { D as n } from "./index-BwwtBJde.js";
4
+ import { c as e } from "./component.inputs.constants-Cj-atN8w.js";
5
5
  const r = {
6
6
  name: "DateRangeSelectFieldPro",
7
7
  label: "Date-Range Picker - Presets",
@@ -1,7 +1,7 @@
1
- import { j as f, S as d } from "./Color.type.emb-DyMeb06O.js";
1
+ import { j as f, S as d } from "./Color.type.emb-JBTB4VAn.js";
2
2
  import { useTheme as S } from "@embeddable.com/react";
3
- import { useState as p, useEffect as g } from "react";
4
- import { g as C } from "./formatter.utils-7mfdOwJE.js";
3
+ import { useState as g, useEffect as p } from "react";
4
+ import { g as C } from "./preview.data.constants-DWqfMVjy.js";
5
5
  const v = ({
6
6
  dimensionsAndMeasures: s,
7
7
  searchValue: r,
@@ -13,11 +13,11 @@ const v = ({
13
13
  label: n.dimensionOrMeasureTitle(e)
14
14
  }));
15
15
  }, M = (s) => {
16
- const r = S(), [a, n] = p(""), { selectedValue: e, options: t, clearable: i, placeholder: m, onChange: l } = s, u = (c) => {
16
+ const r = S(), [a, n] = g(""), { selectedValue: e, options: t, clearable: i, placeholder: m, onChange: l } = s, u = (c) => {
17
17
  const o = t.find((h) => h.name === c);
18
18
  l(o);
19
19
  };
20
- return g(() => {
20
+ return p(() => {
21
21
  if (!(!i && !e)) return;
22
22
  const o = t == null ? void 0 : t[0];
23
23
  o && l(o);
@@ -40,6 +40,7 @@ const v = ({
40
40
  );
41
41
  };
42
42
  export {
43
- M as D
43
+ M as D,
44
+ v as g
44
45
  };
45
- //# sourceMappingURL=DimensionAndMeasureSingleSelectField-CauMjY7c.js.map
46
+ //# sourceMappingURL=DimensionAndMeasureSingleSelectField-C5B9m3hv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DimensionAndMeasureSingleSelectField-C5B9m3hv.js","sources":["../src/components/editors/utils/dimensionsAndMeasures.utils.ts","../src/components/editors/shared/DimensionAndMeasureSingleSelectField/DimensionAndMeasureSingleSelectField.tsx"],"sourcesContent":["import { DimensionOrMeasure } from '@embeddable.com/core';\nimport { Theme } from '../../../theme/theme.types';\nimport { SelectListOptionProps } from '@embeddable.com/remarkable-ui';\nimport { getThemeFormatter } from '../../../theme/formatter/formatter.utils';\n\nexport const getDimensionAndMeasureOptions = ({\n dimensionsAndMeasures,\n searchValue,\n theme,\n}: {\n dimensionsAndMeasures: DimensionOrMeasure[];\n searchValue: string;\n theme: Theme;\n}): SelectListOptionProps[] => {\n const themeFormatter = getThemeFormatter(theme);\n\n return dimensionsAndMeasures\n .filter((dimensionOrMeasure) => {\n return themeFormatter\n .dimensionOrMeasureTitle(dimensionOrMeasure)\n .toLowerCase()\n .includes(searchValue.toLowerCase());\n })\n .map((dimensionOrMeasure) => {\n return {\n value: dimensionOrMeasure.name,\n label: themeFormatter.dimensionOrMeasureTitle(dimensionOrMeasure),\n };\n });\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { useEffect, useState } from 'react';\nimport { SingleSelectField } from '@embeddable.com/remarkable-ui';\nimport { getDimensionAndMeasureOptions } from '../../utils/dimensionsAndMeasures.utils';\nimport { Dimension, Measure } from '@embeddable.com/core';\n\nexport type DimensionAndMeasureSingleSelectFieldProps<T> = {\n selectedValue?: T;\n options: T[];\n placeholder?: string;\n clearable?: boolean;\n onChange: (value: T | undefined) => void;\n};\n\nexport const DimensionAndMeasureSingleSelectField = <T extends Dimension | Measure>(\n props: DimensionAndMeasureSingleSelectFieldProps<T>,\n) => {\n const theme = useTheme() as Theme;\n\n const [searchValue, setSearchValue] = useState<string>('');\n\n const { selectedValue, options, clearable, placeholder, onChange } = props;\n\n const handleChange = (newValue: string) => {\n const newSelection = options.find((option) => option.name === newValue);\n onChange(newSelection);\n };\n\n // Auto-select first dimensionOrMeasure when is not clearable and there is no selection\n useEffect(() => {\n const autoSelectActive = !clearable && !selectedValue;\n\n if (!autoSelectActive) return;\n\n const firstDimension = options?.[0];\n\n if (firstDimension) {\n onChange(firstDimension);\n }\n }, [clearable, selectedValue, options, onChange]);\n\n return (\n <SingleSelectField\n searchable\n clearable={clearable}\n placeholder={placeholder}\n value={selectedValue?.name}\n onChange={handleChange}\n onSearch={setSearchValue}\n options={getDimensionAndMeasureOptions({\n dimensionsAndMeasures: options,\n searchValue,\n theme,\n })}\n avoidCollisions={false}\n />\n );\n};\n"],"names":["getDimensionAndMeasureOptions","dimensionsAndMeasures","searchValue","theme","themeFormatter","getThemeFormatter","dimensionOrMeasure","DimensionAndMeasureSingleSelectField","props","useTheme","setSearchValue","useState","selectedValue","options","clearable","placeholder","onChange","handleChange","newValue","newSelection","option","useEffect","firstDimension","jsx","SingleSelectField"],"mappings":";;;;AAKO,MAAMA,IAAgC,CAAC;AAAA,EAC5C,uBAAAC;AAAA,EACA,aAAAC;AAAA,EACA,OAAAC;AACF,MAI+B;AAC7B,QAAMC,IAAiBC,EAAkBF,CAAK;AAE9C,SAAOF,EACJ,OAAO,CAACK,MACAF,EACJ,wBAAwBE,CAAkB,EAC1C,cACA,SAASJ,EAAY,aAAa,CACtC,EACA,IAAI,CAACI,OACG;AAAA,IACL,OAAOA,EAAmB;AAAA,IAC1B,OAAOF,EAAe,wBAAwBE,CAAkB;AAAA,EAAA,EAEnE;AACL,GCdaC,IAAuC,CAClDC,MACG;AACH,QAAML,IAAQM,EAAA,GAER,CAACP,GAAaQ,CAAc,IAAIC,EAAiB,EAAE,GAEnD,EAAE,eAAAC,GAAe,SAAAC,GAAS,WAAAC,GAAW,aAAAC,GAAa,UAAAC,MAAaR,GAE/DS,IAAe,CAACC,MAAqB;AACzC,UAAMC,IAAeN,EAAQ,KAAK,CAACO,MAAWA,EAAO,SAASF,CAAQ;AACtE,IAAAF,EAASG,CAAY;AAAA,EACvB;AAGA,SAAAE,EAAU,MAAM;AAGd,QAAI,EAFqB,CAACP,KAAa,CAACF,GAEjB;AAEvB,UAAMU,IAAiBT,KAAA,gBAAAA,EAAU;AAEjC,IAAIS,KACFN,EAASM,CAAc;AAAA,EAE3B,GAAG,CAACR,GAAWF,GAAeC,GAASG,CAAQ,CAAC,GAG9CO,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,YAAU;AAAA,MACV,WAAAV;AAAA,MACA,aAAAC;AAAA,MACA,OAAOH,KAAA,gBAAAA,EAAe;AAAA,MACtB,UAAUK;AAAA,MACV,UAAUP;AAAA,MACV,SAASV,EAA8B;AAAA,QACrC,uBAAuBa;AAAA,QACvB,aAAAX;AAAA,QACA,OAAAC;AAAA,MAAA,CACD;AAAA,MACD,iBAAiB;AAAA,IAAA;AAAA,EAAA;AAGvB;"}
@@ -1,24 +1,9 @@
1
- import { j as i, V as o } from "./Color.type.emb-DyMeb06O.js";
2
- import { useTheme as g, definePreview as S, defineComponent as v } from "@embeddable.com/react";
3
- import { E as h } from "./EditorCard-BT_swxOl.js";
4
- import { a as D, r as b, b as e } from "./component.inputs.constants-DIuvtpIr.js";
5
- import { D as C } from "./DimensionAndMeasureSingleSelectField-CauMjY7c.js";
6
- import { p as t } from "./preview.data.constants-BsS2fJxn.js";
7
- const s = (n) => {
8
- const l = g();
9
- D(l);
10
- const { selectedDimension: a, dimensionOptions: r, clearable: d, onChange: m } = n, { title: p, description: c, tooltip: u, placeholder: f } = b(n);
11
- return /* @__PURE__ */ i.jsx(h, { title: p, description: c, tooltip: u, children: /* @__PURE__ */ i.jsx(
12
- C,
13
- {
14
- selectedValue: a,
15
- options: r,
16
- placeholder: f,
17
- clearable: d,
18
- onChange: m
19
- }
20
- ) });
21
- }, F = {
1
+ import { V as o } from "./Color.type.emb-JBTB4VAn.js";
2
+ import { definePreview as l, defineComponent as a } from "@embeddable.com/react";
3
+ import { D as t } from "./index-BLtSOe_I.js";
4
+ import { c as e } from "./component.inputs.constants-Cj-atN8w.js";
5
+ import { p as i } from "./preview.data.constants-DWqfMVjy.js";
6
+ const s = {
22
7
  name: "DimensionSingleSelectFieldPro",
23
8
  label: "Dimension Single Select Field",
24
9
  category: "Dropdowns",
@@ -65,10 +50,10 @@ const s = (n) => {
65
50
  events: [{ name: "onChange", property: "value" }]
66
51
  }
67
52
  ]
68
- }, w = S(s, {
69
- dimensionOptions: [t.dimension, t.dimensionGroup],
53
+ }, c = l(t, {
54
+ dimensionOptions: [i.dimension, i.dimensionGroup],
70
55
  onChange: () => null
71
- }), E = v(s, F, {
56
+ }), f = a(t, s, {
72
57
  props: (n) => ({
73
58
  ...n,
74
59
  dimensionOptions: n.dimensionOptions ?? []
@@ -80,8 +65,8 @@ const s = (n) => {
80
65
  }
81
66
  });
82
67
  export {
83
- E as default,
84
- F as meta,
85
- w as preview
68
+ f as default,
69
+ s as meta,
70
+ c as preview
86
71
  };
87
72
  //# sourceMappingURL=DimensionSingleSelectFieldPro.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DimensionSingleSelectFieldPro.js","sources":["../src/components/editors/DimensionSingleSelectFieldPro/index.tsx","../src/components/editors/DimensionSingleSelectFieldPro/DimensionSingleSelectFieldPro.emb.ts"],"sourcesContent":["import { Dimension } from '@embeddable.com/core';\nimport { EditorCard } from '../shared/EditorCard/EditorCard';\nimport { resolveI18nProps } from '../../component.utils';\nimport { ChartCardHeaderProps } from '../../charts/shared/ChartCard/ChartCard';\nimport { Theme } from '../../../theme/theme.types';\nimport { useTheme } from '@embeddable.com/react';\nimport { i18nSetup } from '../../../theme/i18n/i18n';\nimport { DimensionAndMeasureSingleSelectField } from '../shared/DimensionAndMeasureSingleSelectField/DimensionAndMeasureSingleSelectField';\n\ntype DimensionSingleSelectFieldProProps = {\n selectedDimension?: Dimension;\n dimensionOptions: Dimension[];\n placeholder?: string;\n clearable?: boolean;\n onChange: (value: Dimension | undefined) => void;\n} & ChartCardHeaderProps;\n\nconst DimensionSingleSelectFieldPro = (props: DimensionSingleSelectFieldProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { selectedDimension, dimensionOptions, clearable, onChange } = props;\n const { title, description, tooltip, placeholder } = resolveI18nProps(props);\n\n return (\n <EditorCard title={title} description={description} tooltip={tooltip}>\n <DimensionAndMeasureSingleSelectField<Dimension>\n selectedValue={selectedDimension}\n options={dimensionOptions}\n placeholder={placeholder}\n clearable={clearable}\n onChange={onChange}\n />\n </EditorCard>\n );\n};\n\nexport default DimensionSingleSelectFieldPro;\n","import { Value } from '@embeddable.com/core';\nimport {\n EmbeddedComponentMeta,\n Inputs,\n defineComponent,\n definePreview,\n} from '@embeddable.com/react';\nimport DimensionSingleSelectFieldPro from './index';\nimport { inputs } from '../../component.inputs.constants';\nimport { previewData } from '../../preview.data.constants';\n\nexport const meta = {\n name: 'DimensionSingleSelectFieldPro',\n label: 'Dimension Single Select Field',\n category: 'Dropdowns',\n defaultWidth: 300,\n defaultHeight: 120,\n inputs: [\n inputs.dataset,\n inputs.title,\n inputs.description,\n inputs.tooltip,\n { ...inputs.placeholder, defaultValue: 'Select value...' },\n inputs.dimensionOptions,\n {\n ...inputs.dimension,\n name: 'selectedDimension',\n label: 'Selected dimension',\n category: 'Pre-configured variables',\n required: false,\n config: {\n dataset: 'dataset',\n },\n },\n { ...inputs.clearable, defaultValue: false },\n ],\n events: [\n {\n name: 'onChange',\n label: 'Selected dimension updated',\n properties: [\n {\n name: 'value',\n label: 'Selected dimension',\n type: 'dimension',\n },\n ],\n },\n ],\n variables: [\n {\n name: 'dimension single-select value',\n type: 'dimension',\n defaultValue: Value.noFilter(),\n inputs: ['selectedDimension'],\n events: [{ name: 'onChange', property: 'value' }],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nexport const preview = definePreview(DimensionSingleSelectFieldPro, {\n dimensionOptions: [previewData.dimension, previewData.dimensionGroup],\n onChange: () => null,\n});\n\nexport default defineComponent(DimensionSingleSelectFieldPro, meta, {\n props: (inputs: Inputs<typeof meta>) => {\n return {\n ...inputs,\n dimensionOptions: inputs.dimensionOptions ?? [],\n };\n },\n events: {\n onChange: (value) => {\n return {\n value: value ?? Value.noFilter(),\n };\n },\n },\n});\n"],"names":["DimensionSingleSelectFieldPro","props","theme","useTheme","i18nSetup","selectedDimension","dimensionOptions","clearable","onChange","title","description","tooltip","placeholder","resolveI18nProps","jsx","EditorCard","DimensionAndMeasureSingleSelectField","meta","inputs","Value","preview","definePreview","previewData","DimensionSingleSelectFieldPro_emb","defineComponent","value"],"mappings":";;;;;;AAiBA,MAAMA,IAAgC,CAACC,MAA8C;AACnF,QAAMC,IAAQC,EAAA;AACd,EAAAC,EAAUF,CAAK;AAEf,QAAM,EAAE,mBAAAG,GAAmB,kBAAAC,GAAkB,WAAAC,GAAW,UAAAC,MAAaP,GAC/D,EAAE,OAAAQ,GAAO,aAAAC,GAAa,SAAAC,GAAS,aAAAC,EAAA,IAAgBC,EAAiBZ,CAAK;AAE3E,SACEa,gBAAAA,EAAAA,IAACC,GAAA,EAAW,OAAAN,GAAc,aAAAC,GAA0B,SAAAC,GAClD,UAAAG,gBAAAA,EAAAA;AAAAA,IAACE;AAAA,IAAA;AAAA,MACC,eAAeX;AAAA,MACf,SAASC;AAAA,MACT,aAAAM;AAAA,MACA,WAAAL;AAAA,MACA,UAAAC;AAAA,IAAA;AAAA,EAAA,GAEJ;AAEJ,GCxBaS,IAAO;AAAA,EAClB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV,cAAc;AAAA,EACd,eAAe;AAAA,EACf,QAAQ;AAAA,IACNC,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACP,EAAE,GAAGA,EAAO,aAAa,cAAc,kBAAA;AAAA,IACvCA,EAAO;AAAA,IACP;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU;AAAA,MACV,UAAU;AAAA,MACV,QAAQ;AAAA,QACN,SAAS;AAAA,MAAA;AAAA,IACX;AAAA,IAEF,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,cAAcC,EAAM,SAAA;AAAA,MACpB,QAAQ,CAAC,mBAAmB;AAAA,MAC5B,QAAQ,CAAC,EAAE,MAAM,YAAY,UAAU,SAAS;AAAA,IAAA;AAAA,EAClD;AAEJ,GAEaC,IAAUC,EAAcrB,GAA+B;AAAA,EAClE,kBAAkB,CAACsB,EAAY,WAAWA,EAAY,cAAc;AAAA,EACpE,UAAU,MAAM;AAClB,CAAC,GAEDC,IAAeC,EAAgBxB,GAA+BiB,GAAM;AAAA,EAClE,OAAO,CAACC,OACC;AAAA,IACL,GAAGA;AAAAA,IACH,kBAAkBA,EAAO,oBAAoB,CAAA;AAAA,EAAC;AAAA,EAGlD,QAAQ;AAAA,IACN,UAAU,CAACO,OACF;AAAA,MACL,OAAOA,KAASN,EAAM,SAAA;AAAA,IAAS;AAAA,EAEnC;AAEJ,CAAC;"}
1
+ {"version":3,"file":"DimensionSingleSelectFieldPro.js","sources":["../src/components/editors/DimensionSingleSelectFieldPro/DimensionSingleSelectFieldPro.emb.ts"],"sourcesContent":["import { Value } from '@embeddable.com/core';\nimport {\n EmbeddedComponentMeta,\n Inputs,\n defineComponent,\n definePreview,\n} from '@embeddable.com/react';\nimport DimensionSingleSelectFieldPro from './index';\nimport { inputs } from '../../component.inputs.constants';\nimport { previewData } from '../../preview.data.constants';\n\nexport const meta = {\n name: 'DimensionSingleSelectFieldPro',\n label: 'Dimension Single Select Field',\n category: 'Dropdowns',\n defaultWidth: 300,\n defaultHeight: 120,\n inputs: [\n inputs.dataset,\n inputs.title,\n inputs.description,\n inputs.tooltip,\n { ...inputs.placeholder, defaultValue: 'Select value...' },\n inputs.dimensionOptions,\n {\n ...inputs.dimension,\n name: 'selectedDimension',\n label: 'Selected dimension',\n category: 'Pre-configured variables',\n required: false,\n config: {\n dataset: 'dataset',\n },\n },\n { ...inputs.clearable, defaultValue: false },\n ],\n events: [\n {\n name: 'onChange',\n label: 'Selected dimension updated',\n properties: [\n {\n name: 'value',\n label: 'Selected dimension',\n type: 'dimension',\n },\n ],\n },\n ],\n variables: [\n {\n name: 'dimension single-select value',\n type: 'dimension',\n defaultValue: Value.noFilter(),\n inputs: ['selectedDimension'],\n events: [{ name: 'onChange', property: 'value' }],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nexport const preview = definePreview(DimensionSingleSelectFieldPro, {\n dimensionOptions: [previewData.dimension, previewData.dimensionGroup],\n onChange: () => null,\n});\n\nexport default defineComponent(DimensionSingleSelectFieldPro, meta, {\n props: (inputs: Inputs<typeof meta>) => {\n return {\n ...inputs,\n dimensionOptions: inputs.dimensionOptions ?? [],\n };\n },\n events: {\n onChange: (value) => {\n return {\n value: value ?? Value.noFilter(),\n };\n },\n },\n});\n"],"names":["meta","inputs","Value","preview","definePreview","DimensionSingleSelectFieldPro","previewData","DimensionSingleSelectFieldPro_emb","defineComponent","value"],"mappings":";;;;;AAWO,MAAMA,IAAO;AAAA,EAClB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV,cAAc;AAAA,EACd,eAAe;AAAA,EACf,QAAQ;AAAA,IACNC,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACP,EAAE,GAAGA,EAAO,aAAa,cAAc,kBAAA;AAAA,IACvCA,EAAO;AAAA,IACP;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU;AAAA,MACV,UAAU;AAAA,MACV,QAAQ;AAAA,QACN,SAAS;AAAA,MAAA;AAAA,IACX;AAAA,IAEF,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,cAAcC,EAAM,SAAA;AAAA,MACpB,QAAQ,CAAC,mBAAmB;AAAA,MAC5B,QAAQ,CAAC,EAAE,MAAM,YAAY,UAAU,SAAS;AAAA,IAAA;AAAA,EAClD;AAEJ,GAEaC,IAAUC,EAAcC,GAA+B;AAAA,EAClE,kBAAkB,CAACC,EAAY,WAAWA,EAAY,cAAc;AAAA,EACpE,UAAU,MAAM;AAClB,CAAC,GAEDC,IAAeC,EAAgBH,GAA+BL,GAAM;AAAA,EAClE,OAAO,CAACC,OACC;AAAA,IACL,GAAGA;AAAAA,IACH,kBAAkBA,EAAO,oBAAoB,CAAA;AAAA,EAAC;AAAA,EAGlD,QAAQ;AAAA,IACN,UAAU,CAACQ,OACF;AAAA,MACL,OAAOA,KAASP,EAAM,SAAA;AAAA,IAAS;AAAA,EAEnC;AAEJ,CAAC;"}
@@ -1,8 +1,8 @@
1
- import { V as n, l as a } from "./Color.type.emb-DyMeb06O.js";
1
+ import { V as n, l as a } from "./Color.type.emb-JBTB4VAn.js";
2
2
  import { definePreview as r, defineComponent as i } from "@embeddable.com/react";
3
- import { D as s } from "./index-Ddl-xnlO.js";
4
- import { b as e } from "./component.inputs.constants-DIuvtpIr.js";
5
- import { p as o } from "./preview.data.constants-BsS2fJxn.js";
3
+ import { D as s } from "./index-DILo_r4-.js";
4
+ import { c as e } from "./component.inputs.constants-Cj-atN8w.js";
5
+ import { p as o } from "./preview.data.constants-DWqfMVjy.js";
6
6
  const m = {
7
7
  name: "DonutChartPro",
8
8
  label: "Donut Chart",
@@ -1,8 +1,8 @@
1
- import { D as r } from "./index-DUbT-KRk.js";
2
- import { V as s, l as t } from "./Color.type.emb-DyMeb06O.js";
1
+ import { D as r } from "./index-DK0M5jbC.js";
2
+ import { V as s, l as t } from "./Color.type.emb-JBTB4VAn.js";
3
3
  import { definePreview as o, defineComponent as i } from "@embeddable.com/react";
4
- import { b as e } from "./component.inputs.constants-DIuvtpIr.js";
5
- import { p as n } from "./preview.data.constants-BsS2fJxn.js";
4
+ import { c as e } from "./component.inputs.constants-Cj-atN8w.js";
5
+ import { p as n } from "./preview.data.constants-DWqfMVjy.js";
6
6
  const l = {
7
7
  name: "DonutLabelChartPro",
8
8
  label: "Donut Label Chart",
@@ -1,19 +1,19 @@
1
- import { j as r, q as c, r as m, s as C, t as l } from "./Color.type.emb-DyMeb06O.js";
1
+ import { j as r, n as c, o as m, p as C, q as l } from "./Color.type.emb-JBTB4VAn.js";
2
2
  import { useTheme as p } from "@embeddable.com/react";
3
- import { a as u, I as x, i as j } from "./component.inputs.constants-DIuvtpIr.js";
3
+ import { b as u, I as x, i as j } from "./component.inputs.constants-Cj-atN8w.js";
4
4
  const f = "_editorCard_1q85m_1", h = {
5
5
  editorCard: f
6
6
  }, q = ({
7
7
  title: e,
8
8
  description: s,
9
9
  tooltip: a,
10
- children: i,
10
+ children: o,
11
11
  errorMessage: t,
12
- ...o
12
+ ...i
13
13
  }) => {
14
- const d = p();
15
- u(d);
16
- const n = () => t ? /* @__PURE__ */ r.jsx(
14
+ const n = p();
15
+ u(n);
16
+ const d = () => t ? /* @__PURE__ */ r.jsx(
17
17
  l,
18
18
  {
19
19
  variant: "error",
@@ -21,13 +21,13 @@ const f = "_editorCard_1q85m_1", h = {
21
21
  title: j.t("editors.errorTitle"),
22
22
  message: t
23
23
  }
24
- ) : i;
25
- return /* @__PURE__ */ r.jsxs(c, { className: h.editorCard, ...o, children: [
24
+ ) : o;
25
+ return /* @__PURE__ */ r.jsxs(c, { className: h.editorCard, ...i, children: [
26
26
  /* @__PURE__ */ r.jsx(m, { title: e, subtitle: s, tooltip: a }),
27
- /* @__PURE__ */ r.jsx(C, { children: n() })
27
+ /* @__PURE__ */ r.jsx(C, { children: d() })
28
28
  ] });
29
29
  };
30
30
  export {
31
31
  q as E
32
32
  };
33
- //# sourceMappingURL=EditorCard-BT_swxOl.js.map
33
+ //# sourceMappingURL=EditorCard-DlwWVuY3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EditorCard-DlwWVuY3.js","sources":["../src/components/editors/shared/EditorCard/EditorCard.tsx"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { i18n, i18nSetup } from '../../../../theme/i18n/i18n';\nimport styles from './EditorCard.module.css';\nimport { FC } from 'react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { Card, CardContent, CardFeedback, CardHeader } from '@embeddable.com/remarkable-ui';\nimport { IconAlertCircle } from '@tabler/icons-react';\n\nexport type EditorCardHeaderProps = {\n title?: string;\n description?: string;\n tooltip?: string;\n};\n\nexport type EditorCardProps = {\n children: React.ReactNode;\n errorMessage?: string;\n} & EditorCardHeaderProps;\n\nexport const EditorCard: FC<EditorCardProps> = ({\n title,\n description,\n tooltip,\n children,\n errorMessage,\n ...props\n}) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const getDisplay = () => {\n if (errorMessage) {\n return (\n <CardFeedback\n variant=\"error\"\n icon={IconAlertCircle}\n title={i18n.t('editors.errorTitle')}\n message={errorMessage}\n />\n );\n }\n\n return children;\n };\n\n return (\n <Card className={styles.editorCard} {...props}>\n <CardHeader title={title} subtitle={description} tooltip={tooltip} />\n <CardContent>{getDisplay()}</CardContent>\n </Card>\n );\n};\n"],"names":["EditorCard","title","description","tooltip","children","errorMessage","props","theme","useTheme","i18nSetup","getDisplay","jsx","CardFeedback","IconAlertCircle","i18n","Card","styles","CardHeader","CardContent"],"mappings":";;;;;GAmBaA,IAAkC,CAAC;AAAA,EAC9C,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,cAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACJ,QAAMC,IAAeC,EAAA;AACrB,EAAAC,EAAUF,CAAK;AAEf,QAAMG,IAAa,MACbL,IAEAM,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,SAAQ;AAAA,MACR,MAAMC;AAAA,MACN,OAAOC,EAAK,EAAE,oBAAoB;AAAA,MAClC,SAAST;AAAA,IAAA;AAAA,EAAA,IAKRD;AAGT,gCACGW,GAAA,EAAK,WAAWC,EAAO,YAAa,GAAGV,GACtC,UAAA;AAAA,IAAAK,gBAAAA,EAAAA,IAACM,GAAA,EAAW,OAAAhB,GAAc,UAAUC,GAAa,SAAAC,GAAkB;AAAA,IACnEQ,gBAAAA,EAAAA,IAACO,GAAA,EAAa,UAAAR,EAAA,EAAW,CAAE;AAAA,EAAA,GAC7B;AAEJ;"}
@@ -1,16 +1,17 @@
1
- import { definePreview as t, defineComponent as o } from "@embeddable.com/react";
2
- const e = () => null, r = {
1
+ import { definePreview as e, defineComponent as t } from "@embeddable.com/react";
2
+ import { E as o } from "./index-CzKKN6Om.js";
3
+ const m = {
3
4
  name: "EmptyBlockPro",
4
5
  label: "Empty Block",
5
6
  category: "Layout",
6
7
  defaultWidth: 450,
7
8
  defaultHeight: 120
8
- }, n = t(e, {}), m = o(e, r, {
9
+ }, a = e(o, {}), l = t(o, m, {
9
10
  props: () => ({})
10
11
  });
11
12
  export {
12
- m as default,
13
- r as meta,
14
- n as preview
13
+ l as default,
14
+ m as meta,
15
+ a as preview
15
16
  };
16
17
  //# sourceMappingURL=EmptyBlockPro.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EmptyBlockPro.js","sources":["../src/components/shared/EmptyContainerPro/index.tsx","../src/components/shared/EmptyContainerPro/EmptyBlockPro.emb.ts"],"sourcesContent":["const EmptyBlockPro = () => {\n return null;\n};\n\nexport default EmptyBlockPro;\n","import { defineComponent, definePreview, EmbeddedComponentMeta } from '@embeddable.com/react';\nimport EmptyBlockPro from './index';\n\nexport const meta = {\n name: 'EmptyBlockPro',\n label: 'Empty Block',\n category: 'Layout',\n defaultWidth: 450,\n defaultHeight: 120,\n} as const satisfies EmbeddedComponentMeta;\n\nexport const preview = definePreview(EmptyBlockPro, {});\n\nexport default defineComponent(EmptyBlockPro, meta, {\n props: () => ({}),\n});\n"],"names":["EmptyBlockPro","meta","preview","definePreview","EmptyBlockPro_emb","defineComponent"],"mappings":";AAAA,MAAMA,IAAgB,MACb,MCEIC,IAAO;AAAA,EAClB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV,cAAc;AAAA,EACd,eAAe;AACjB,GAEaC,IAAUC,EAAcH,GAAe,CAAA,CAAE,GAEtDI,IAAeC,EAAgBL,GAAeC,GAAM;AAAA,EAClD,OAAO,OAAO,CAAA;AAChB,CAAC;"}
1
+ {"version":3,"file":"EmptyBlockPro.js","sources":["../src/components/shared/EmptyContainerPro/EmptyBlockPro.emb.ts"],"sourcesContent":["import { defineComponent, definePreview, EmbeddedComponentMeta } from '@embeddable.com/react';\nimport EmptyBlockPro from './index';\n\nexport const meta = {\n name: 'EmptyBlockPro',\n label: 'Empty Block',\n category: 'Layout',\n defaultWidth: 450,\n defaultHeight: 120,\n} as const satisfies EmbeddedComponentMeta;\n\nexport const preview = definePreview(EmptyBlockPro, {});\n\nexport default defineComponent(EmptyBlockPro, meta, {\n props: () => ({}),\n});\n"],"names":["meta","preview","definePreview","EmptyBlockPro","EmptyBlockPro_emb","defineComponent"],"mappings":";;AAGO,MAAMA,IAAO;AAAA,EAClB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV,cAAc;AAAA,EACd,eAAe;AACjB,GAEaC,IAAUC,EAAcC,GAAe,CAAA,CAAE,GAEtDC,IAAeC,EAAgBF,GAAeH,GAAM;AAAA,EAClD,OAAO,OAAO,CAAA;AAChB,CAAC;"}
@@ -1,10 +1,10 @@
1
- import { j as E, S as F } from "./Color.type.emb-DyMeb06O.js";
2
- import { useMemo as g, useEffect as C } from "react";
3
- import { useTheme as G } from "@embeddable.com/react";
4
- import { f as N, c as d, a as w } from "./component.inputs.constants-DIuvtpIr.js";
5
- const D = 1, v = 100, x = () => N.map((e) => ({
1
+ import { j as g, S as E } from "./Color.type.emb-JBTB4VAn.js";
2
+ import { useMemo as F, useEffect as d } from "react";
3
+ import { useTheme as C } from "@embeddable.com/react";
4
+ import { d as G, e as N, b as w } from "./component.inputs.constants-Cj-atN8w.js";
5
+ const D = 1, v = 100, x = () => G.map((e) => ({
6
6
  ...e,
7
- label: d(e.label)
7
+ label: N(e.label)
8
8
  })), m = (e) => {
9
9
  if (e instanceof Date) return Number.isNaN(e.getTime()) ? null : e;
10
10
  if (typeof e == "string" || typeof e == "number") {
@@ -12,28 +12,28 @@ const D = 1, v = 100, x = () => N.map((e) => ({
12
12
  return Number.isNaN(t.getTime()) ? null : t;
13
13
  }
14
14
  return null;
15
- }, u = (e) => new Date(e.getTime() + 1), s = (e, t, r) => (t.getTime() - e.getTime()) / r;
15
+ }, s = (e) => new Date(e.getTime() + 1), u = (e, t, r) => (t.getTime() - e.getTime()) / r;
16
16
  function U(e, t, r) {
17
17
  if (e > t) return 0;
18
18
  switch (r) {
19
19
  case "second":
20
- return s(e, u(t), 1e3);
20
+ return u(e, s(t), 1e3);
21
21
  case "minute":
22
- return s(e, u(t), 60 * 1e3);
22
+ return u(e, s(t), 60 * 1e3);
23
23
  case "hour":
24
- return s(e, u(t), 3600 * 1e3);
24
+ return u(e, s(t), 3600 * 1e3);
25
25
  case "day":
26
- return s(e, u(t), 1440 * 60 * 1e3);
26
+ return u(e, s(t), 1440 * 60 * 1e3);
27
27
  case "week":
28
- return s(e, u(t), 10080 * 60 * 1e3);
28
+ return u(e, s(t), 10080 * 60 * 1e3);
29
29
  case "month":
30
- return s(e, u(t), 672 * 60 * 60 * 1e3);
30
+ return u(e, s(t), 672 * 60 * 60 * 1e3);
31
31
  // shortest month
32
32
  case "quarter":
33
- return s(e, u(t), 2160 * 60 * 60 * 1e3);
33
+ return u(e, s(t), 2160 * 60 * 60 * 1e3);
34
34
  // shortest quarter
35
35
  case "year":
36
- return s(e, u(t), 365 * 24 * 60 * 60 * 1e3);
36
+ return u(e, s(t), 365 * 24 * 60 * 60 * 1e3);
37
37
  }
38
38
  }
39
39
  const k = (e, t, r) => {
@@ -58,7 +58,7 @@ const k = (e, t, r) => {
58
58
  const r = e.length > 2 ? 1 : 0;
59
59
  return (o = e[r]) == null ? void 0 : o.value;
60
60
  }, K = (e) => {
61
- const t = G();
61
+ const t = C();
62
62
  w(t);
63
63
  const {
64
64
  granularity: r,
@@ -70,26 +70,26 @@ const k = (e, t, r) => {
70
70
  side: T,
71
71
  align: y,
72
72
  onChange: f
73
- } = e, h = x(), l = g(() => A(
73
+ } = e, b = x(), l = F(() => A(
74
74
  i,
75
- h.filter(
75
+ b.filter(
76
76
  (n) => o == null ? void 0 : o.includes(n.value)
77
77
  )
78
78
  ), [i, o]);
79
- C(() => {
79
+ d(() => {
80
80
  if (r && !l.some((n) => n.value === r)) {
81
81
  const n = S(l, r);
82
82
  n && f(n);
83
83
  }
84
84
  }, [l, r, f]);
85
- const b = S(l, r);
86
- return /* @__PURE__ */ E.jsx(
87
- F,
85
+ const h = S(l, r);
86
+ return /* @__PURE__ */ g.jsx(
87
+ E,
88
88
  {
89
89
  variant: p,
90
90
  clearable: a,
91
91
  placeholder: c,
92
- value: b,
92
+ value: h,
93
93
  options: l,
94
94
  onChange: (n) => f(n),
95
95
  avoidCollisions: !1,
@@ -99,6 +99,9 @@ const k = (e, t, r) => {
99
99
  );
100
100
  };
101
101
  export {
102
- K as G
102
+ K as G,
103
+ x as a,
104
+ S as b,
105
+ A as g
103
106
  };
104
- //# sourceMappingURL=GranularitySelectField-BxO_3Xt9.js.map
107
+ //# sourceMappingURL=GranularitySelectField-DpCZ47f8.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GranularitySelectField-BxO_3Xt9.js","sources":["../src/components/editors/shared/GranularitySelectField/GranularitySelectField.utils.ts","../src/components/editors/shared/GranularitySelectField/GranularitySelectField.tsx"],"sourcesContent":["import { SelectListOptionProps } from '@embeddable.com/remarkable-ui';\nimport { Granularity, TimeRange } from '@embeddable.com/core';\nimport {\n defaultGranularitySelectFieldOptions,\n TGranularityValue,\n} from '../../../../theme/defaults/defaults.GranularityOptions.constants';\nimport { resolveI18nString } from '../../../component.utils';\n\nconst DEFAULT_MIN_BUCKETS = 1;\nconst DEFAULT_MAX_BUCKETS = 100;\n\nexport const getGranularitySelectFieldOptions = (): SelectListOptionProps[] => {\n return defaultGranularitySelectFieldOptions.map((opt) => ({\n ...opt,\n label: resolveI18nString(opt.label),\n }));\n};\n\n// Convert possibly-string timestamps to Date safely.\nconst toDate = (d: unknown): Date | null => {\n if (d instanceof Date) return Number.isNaN(d.getTime()) ? null : d;\n if (typeof d === 'string' || typeof d === 'number') {\n const parsed = new Date(d);\n return Number.isNaN(parsed.getTime()) ? null : parsed;\n }\n return null;\n};\n\n// Inclusive end -> Exclusive end helper (only used for sub-day diffs)\nconst toExclusiveEnd = (endInclusive: Date): Date => new Date(endInclusive.getTime() + 1);\n\nconst bucketCountByUnit = (start: Date, endExclusive: Date, unitMs: number): number => {\n return (endExclusive.getTime() - start.getTime()) / unitMs;\n};\n\n// Bucket counting (treat end as INCLUSIVE)\nfunction bucketCount(start: Date, endInclusive: Date, granularity: Granularity): number {\n if (start > endInclusive) return 0;\n\n switch (granularity) {\n case 'second':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 1000);\n\n case 'minute':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 60 * 1000);\n\n case 'hour':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 60 * 60 * 1000);\n\n case 'day':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 24 * 60 * 60 * 1000);\n\n case 'week':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 7 * 24 * 60 * 60 * 1000);\n\n case 'month':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 28 * 24 * 60 * 60 * 1000); // shortest month\n\n case 'quarter':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 90 * 24 * 60 * 60 * 1000); // shortest quarter\n\n case 'year':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 365 * 24 * 60 * 60 * 1000); // shortest year\n }\n}\n\nconst isGranularityValid = (\n start: Date,\n endInclusive: Date,\n granularity: TGranularityValue,\n): boolean => {\n const buckets = bucketCount(start, endInclusive, granularity);\n return buckets >= DEFAULT_MIN_BUCKETS && buckets <= DEFAULT_MAX_BUCKETS;\n};\n\nexport const getAvailableGranularityOptionsFromTimeRange = (\n timeRange: TimeRange,\n allOptions: SelectListOptionProps[],\n): SelectListOptionProps[] => {\n if (!timeRange) return allOptions;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const from = toDate((timeRange as any)?.from);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const to = toDate((timeRange as any)?.to);\n\n // If we can’t parse range, don’t hide anything (fail open)\n if (!from || !to) return allOptions;\n\n const validSet = new Set<TGranularityValue>();\n\n for (const opt of allOptions) {\n const g = opt.value as TGranularityValue;\n if (isGranularityValid(from, to, g)) {\n validSet.add(g);\n }\n }\n\n // preserve original UI ordering\n return allOptions.filter((opt) => validSet.has(opt.value as TGranularityValue));\n};\n\nexport const getSafeSelection = (\n availableOptions: SelectListOptionProps[],\n granularity?: Granularity,\n): Granularity | undefined => {\n if (!granularity) {\n return undefined;\n }\n\n if (availableOptions.some((opt) => opt.value === granularity)) {\n return granularity;\n }\n\n const optionToSelect = availableOptions.length > 2 ? 1 : 0;\n\n return availableOptions[optionToSelect]?.value as Granularity;\n};\n","import { useEffect, useMemo } from 'react';\nimport { useTheme } from '@embeddable.com/react';\nimport { SingleSelectField, SingleSelectFieldProps } from '@embeddable.com/remarkable-ui';\nimport { Granularity, TimeRange } from '@embeddable.com/core';\nimport { Theme } from '../../../../theme/theme.types';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport {\n getAvailableGranularityOptionsFromTimeRange,\n getGranularitySelectFieldOptions,\n getSafeSelection,\n} from './GranularitySelectField.utils';\nimport { TGranularityValue } from '../../../../theme/defaults/defaults.GranularityOptions.constants';\nimport { ChartCardHeaderProps } from '../../../charts/shared/ChartCard/ChartCard';\n\nexport type GranularitySelectFieldProps = {\n onChange: (newGranularity: Granularity) => void;\n primaryTimeRange?: TimeRange;\n granularity?: TGranularityValue;\n granularities?: TGranularityValue[];\n} & ChartCardHeaderProps &\n Pick<SingleSelectFieldProps, 'variant' | 'side' | 'align' | 'clearable' | 'placeholder'>;\n\nexport const GranularitySelectField = (props: GranularitySelectFieldProps) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const {\n granularity,\n granularities,\n clearable,\n placeholder,\n primaryTimeRange,\n variant,\n side,\n align,\n onChange,\n } = props;\n\n const granularitySelectFieldOptions = getGranularitySelectFieldOptions();\n\n const availableOptions = useMemo(() => {\n return getAvailableGranularityOptionsFromTimeRange(\n primaryTimeRange,\n granularitySelectFieldOptions.filter((opt) =>\n granularities?.includes(opt.value as TGranularityValue),\n ),\n );\n }, [primaryTimeRange, granularities]);\n\n useEffect(() => {\n if (granularity) {\n // Selected granularity is not available\n // Select 1st available option when number of options is =< 2\n // Select 2nd option to avoid when number of options > 2\n if (!availableOptions.some((opt) => opt.value === granularity)) {\n const newGranularity = getSafeSelection(availableOptions, granularity);\n if (newGranularity) {\n onChange(newGranularity as Granularity);\n }\n }\n }\n }, [availableOptions, granularity, onChange]);\n\n const safeValue = getSafeSelection(availableOptions, granularity);\n\n return (\n <SingleSelectField\n variant={variant}\n clearable={clearable}\n placeholder={placeholder}\n value={safeValue}\n options={availableOptions}\n onChange={(newValue) => onChange(newValue as Granularity)}\n avoidCollisions={false}\n side={side}\n align={align}\n />\n );\n};\n"],"names":["DEFAULT_MIN_BUCKETS","DEFAULT_MAX_BUCKETS","getGranularitySelectFieldOptions","defaultGranularitySelectFieldOptions","opt","resolveI18nString","toDate","d","parsed","toExclusiveEnd","endInclusive","bucketCountByUnit","start","endExclusive","unitMs","bucketCount","granularity","isGranularityValid","buckets","getAvailableGranularityOptionsFromTimeRange","timeRange","allOptions","from","to","validSet","g","getSafeSelection","availableOptions","optionToSelect","_a","GranularitySelectField","props","theme","useTheme","i18nSetup","granularities","clearable","placeholder","primaryTimeRange","variant","side","align","onChange","granularitySelectFieldOptions","useMemo","useEffect","newGranularity","safeValue","jsx","SingleSelectField","newValue"],"mappings":"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"}
1
+ {"version":3,"file":"GranularitySelectField-DpCZ47f8.js","sources":["../src/components/editors/shared/GranularitySelectField/GranularitySelectField.utils.ts","../src/components/editors/shared/GranularitySelectField/GranularitySelectField.tsx"],"sourcesContent":["import { SelectListOptionProps } from '@embeddable.com/remarkable-ui';\nimport { Granularity, TimeRange } from '@embeddable.com/core';\nimport {\n defaultGranularitySelectFieldOptions,\n TGranularityValue,\n} from '../../../../theme/defaults/defaults.GranularityOptions.constants';\nimport { resolveI18nString } from '../../../component.utils';\n\nconst DEFAULT_MIN_BUCKETS = 1;\nconst DEFAULT_MAX_BUCKETS = 100;\n\nexport const getGranularitySelectFieldOptions = (): SelectListOptionProps[] => {\n return defaultGranularitySelectFieldOptions.map((opt) => ({\n ...opt,\n label: resolveI18nString(opt.label),\n }));\n};\n\n// Convert possibly-string timestamps to Date safely.\nconst toDate = (d: unknown): Date | null => {\n if (d instanceof Date) return Number.isNaN(d.getTime()) ? null : d;\n if (typeof d === 'string' || typeof d === 'number') {\n const parsed = new Date(d);\n return Number.isNaN(parsed.getTime()) ? null : parsed;\n }\n return null;\n};\n\n// Inclusive end -> Exclusive end helper (only used for sub-day diffs)\nconst toExclusiveEnd = (endInclusive: Date): Date => new Date(endInclusive.getTime() + 1);\n\nconst bucketCountByUnit = (start: Date, endExclusive: Date, unitMs: number): number => {\n return (endExclusive.getTime() - start.getTime()) / unitMs;\n};\n\n// Bucket counting (treat end as INCLUSIVE)\nfunction bucketCount(start: Date, endInclusive: Date, granularity: Granularity): number {\n if (start > endInclusive) return 0;\n\n switch (granularity) {\n case 'second':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 1000);\n\n case 'minute':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 60 * 1000);\n\n case 'hour':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 60 * 60 * 1000);\n\n case 'day':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 24 * 60 * 60 * 1000);\n\n case 'week':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 7 * 24 * 60 * 60 * 1000);\n\n case 'month':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 28 * 24 * 60 * 60 * 1000); // shortest month\n\n case 'quarter':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 90 * 24 * 60 * 60 * 1000); // shortest quarter\n\n case 'year':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 365 * 24 * 60 * 60 * 1000); // shortest year\n }\n}\n\nconst isGranularityValid = (\n start: Date,\n endInclusive: Date,\n granularity: TGranularityValue,\n): boolean => {\n const buckets = bucketCount(start, endInclusive, granularity);\n return buckets >= DEFAULT_MIN_BUCKETS && buckets <= DEFAULT_MAX_BUCKETS;\n};\n\nexport const getAvailableGranularityOptionsFromTimeRange = (\n timeRange: TimeRange,\n allOptions: SelectListOptionProps[],\n): SelectListOptionProps[] => {\n if (!timeRange) return allOptions;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const from = toDate((timeRange as any)?.from);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const to = toDate((timeRange as any)?.to);\n\n // If we can’t parse range, don’t hide anything (fail open)\n if (!from || !to) return allOptions;\n\n const validSet = new Set<TGranularityValue>();\n\n for (const opt of allOptions) {\n const g = opt.value as TGranularityValue;\n if (isGranularityValid(from, to, g)) {\n validSet.add(g);\n }\n }\n\n // preserve original UI ordering\n return allOptions.filter((opt) => validSet.has(opt.value as TGranularityValue));\n};\n\nexport const getSafeSelection = (\n availableOptions: SelectListOptionProps[],\n granularity?: Granularity,\n): Granularity | undefined => {\n if (!granularity) {\n return undefined;\n }\n\n if (availableOptions.some((opt) => opt.value === granularity)) {\n return granularity;\n }\n\n const optionToSelect = availableOptions.length > 2 ? 1 : 0;\n\n return availableOptions[optionToSelect]?.value as Granularity;\n};\n","import { useEffect, useMemo } from 'react';\nimport { useTheme } from '@embeddable.com/react';\nimport { SingleSelectField, SingleSelectFieldProps } from '@embeddable.com/remarkable-ui';\nimport { Granularity, TimeRange } from '@embeddable.com/core';\nimport { Theme } from '../../../../theme/theme.types';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport {\n getAvailableGranularityOptionsFromTimeRange,\n getGranularitySelectFieldOptions,\n getSafeSelection,\n} from './GranularitySelectField.utils';\nimport { TGranularityValue } from '../../../../theme/defaults/defaults.GranularityOptions.constants';\nimport { ChartCardHeaderProps } from '../../../charts/shared/ChartCard/ChartCard';\n\nexport type GranularitySelectFieldProps = {\n onChange: (newGranularity: Granularity) => void;\n primaryTimeRange?: TimeRange;\n granularity?: TGranularityValue;\n granularities?: TGranularityValue[];\n} & ChartCardHeaderProps &\n Pick<SingleSelectFieldProps, 'variant' | 'side' | 'align' | 'clearable' | 'placeholder'>;\n\nexport const GranularitySelectField = (props: GranularitySelectFieldProps) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const {\n granularity,\n granularities,\n clearable,\n placeholder,\n primaryTimeRange,\n variant,\n side,\n align,\n onChange,\n } = props;\n\n const granularitySelectFieldOptions = getGranularitySelectFieldOptions();\n\n const availableOptions = useMemo(() => {\n return getAvailableGranularityOptionsFromTimeRange(\n primaryTimeRange,\n granularitySelectFieldOptions.filter((opt) =>\n granularities?.includes(opt.value as TGranularityValue),\n ),\n );\n }, [primaryTimeRange, granularities]);\n\n useEffect(() => {\n if (granularity) {\n // Selected granularity is not available\n // Select 1st available option when number of options is =< 2\n // Select 2nd option to avoid when number of options > 2\n if (!availableOptions.some((opt) => opt.value === granularity)) {\n const newGranularity = getSafeSelection(availableOptions, granularity);\n if (newGranularity) {\n onChange(newGranularity as Granularity);\n }\n }\n }\n }, [availableOptions, granularity, onChange]);\n\n const safeValue = getSafeSelection(availableOptions, granularity);\n\n return (\n <SingleSelectField\n variant={variant}\n clearable={clearable}\n placeholder={placeholder}\n value={safeValue}\n options={availableOptions}\n onChange={(newValue) => onChange(newValue as Granularity)}\n avoidCollisions={false}\n side={side}\n align={align}\n />\n );\n};\n"],"names":["DEFAULT_MIN_BUCKETS","DEFAULT_MAX_BUCKETS","getGranularitySelectFieldOptions","defaultGranularitySelectFieldOptions","opt","resolveI18nString","toDate","d","parsed","toExclusiveEnd","endInclusive","bucketCountByUnit","start","endExclusive","unitMs","bucketCount","granularity","isGranularityValid","buckets","getAvailableGranularityOptionsFromTimeRange","timeRange","allOptions","from","to","validSet","g","getSafeSelection","availableOptions","optionToSelect","_a","GranularitySelectField","props","theme","useTheme","i18nSetup","granularities","clearable","placeholder","primaryTimeRange","variant","side","align","onChange","granularitySelectFieldOptions","useMemo","useEffect","newGranularity","safeValue","jsx","SingleSelectField","newValue"],"mappings":"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"}