@embeddable.com/remarkable-pro 0.1.31 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/dist/BarChartDefaultHorizontalPro.js +1 -1
  2. package/dist/BarChartDefaultPro.js +1 -1
  3. package/dist/BarChartGroupedHorizontalPro.js +1 -1
  4. package/dist/BarChartGroupedPro.js +1 -1
  5. package/dist/BarChartStackedHorizontalPro.js +1 -1
  6. package/dist/BarChartStackedPro.js +1 -1
  7. package/dist/ComparisonPeriodSelectFieldPro.js +1 -1
  8. package/dist/DateRangePickerCustomPro.js +1 -1
  9. package/dist/DateRangeSelectFieldPro.js +1 -1
  10. package/dist/{DimensionAndMeasureSingleSelectField-ClbFwtXO.js → DimensionAndMeasureSingleSelectField-BsBSTKKc.js} +2 -2
  11. package/dist/{DimensionAndMeasureSingleSelectField-ClbFwtXO.js.map → DimensionAndMeasureSingleSelectField-BsBSTKKc.js.map} +1 -1
  12. package/dist/DimensionMeasureMultiSelectFieldPro.js +1 -1
  13. package/dist/DimensionSingleSelectFieldPro.js +1 -1
  14. package/dist/DonutChartPro.js +1 -1
  15. package/dist/DonutLabelChartPro.js +1 -1
  16. package/dist/FilterBuilderPro.js +3 -3
  17. package/dist/{GranularitySelectField-Di0ay_uj.js → GranularitySelectField-DBaZn-Me.js} +2 -2
  18. package/dist/{GranularitySelectField-Di0ay_uj.js.map → GranularitySelectField-DBaZn-Me.js.map} +1 -1
  19. package/dist/GranularitySelectFieldPro.js +1 -1
  20. package/dist/HeatMapPro.js +1 -1
  21. package/dist/HorizontalDividerPro.js +1 -1
  22. package/dist/KpiChartNumberComparisonPro.js +1 -1
  23. package/dist/KpiChartNumberPro.js +1 -1
  24. package/dist/LineChartComparisonDefaultPro.js +1 -1
  25. package/dist/LineChartDefaultPro.js +1 -1
  26. package/dist/LineChartGroupedPro.js +1 -1
  27. package/dist/MarkdownPro.js +1 -1
  28. package/dist/MeasureMultiSelectFieldPro.js +1 -1
  29. package/dist/MeasureSingleSelectFieldPro.js +1 -1
  30. package/dist/MultiSelectFieldPro.js +1 -1
  31. package/dist/PieChartPro.js +1 -1
  32. package/dist/PivotTablePro.js +1 -1
  33. package/dist/SingleSelectFieldPro.js +1 -1
  34. package/dist/TableChartPaginated.js +1 -1
  35. package/dist/TableScrollable.js +1 -1
  36. package/dist/TextFieldPro.js +1 -1
  37. package/dist/bars.loadData.utils-3BlUREY3.js +126 -0
  38. package/dist/bars.loadData.utils-3BlUREY3.js.map +1 -0
  39. package/dist/bars.utils-CG7i6UTJ.js +159 -0
  40. package/dist/bars.utils-CG7i6UTJ.js.map +1 -0
  41. package/dist/charts.fillGaps.hooks-B6T9882L.js +70 -0
  42. package/dist/charts.fillGaps.hooks-B6T9882L.js.map +1 -0
  43. package/dist/{charts.utils-ZAdb7oJ-.js → charts.utils-BMX0edl3.js} +3480 -3511
  44. package/dist/charts.utils-BMX0edl3.js.map +1 -0
  45. package/dist/clientContext.utils-DpB5KsfX.js +15 -0
  46. package/dist/clientContext.utils-DpB5KsfX.js.map +1 -0
  47. package/dist/{component.inputs.constants-C-vfrygQ.js → component.inputs.constants-C7tJAhsQ.js} +236 -193
  48. package/dist/component.inputs.constants-C7tJAhsQ.js.map +1 -0
  49. package/dist/components/charts/bars/BarChartDefaultHorizontalPro/definition.d.ts +4 -3
  50. package/dist/components/charts/bars/BarChartDefaultHorizontalPro/definition.d.ts.map +1 -1
  51. package/dist/components/charts/bars/BarChartDefaultPro/definition.d.ts +4 -3
  52. package/dist/components/charts/bars/BarChartDefaultPro/definition.d.ts.map +1 -1
  53. package/dist/components/charts/bars/BarChartGroupedHorizontalPro/BarChartGroupedHorizontalPro.emb.d.ts +11 -0
  54. package/dist/components/charts/bars/BarChartGroupedHorizontalPro/BarChartGroupedHorizontalPro.emb.d.ts.map +1 -1
  55. package/dist/components/charts/bars/BarChartGroupedHorizontalPro/definition.d.ts +39 -12
  56. package/dist/components/charts/bars/BarChartGroupedHorizontalPro/definition.d.ts.map +1 -1
  57. package/dist/components/charts/bars/BarChartGroupedHorizontalPro/index.d.ts +5 -1
  58. package/dist/components/charts/bars/BarChartGroupedHorizontalPro/index.d.ts.map +1 -1
  59. package/dist/components/charts/bars/BarChartGroupedPro/BarChartGroupedPro.emb.d.ts +11 -0
  60. package/dist/components/charts/bars/BarChartGroupedPro/BarChartGroupedPro.emb.d.ts.map +1 -1
  61. package/dist/components/charts/bars/BarChartGroupedPro/definition.d.ts +39 -12
  62. package/dist/components/charts/bars/BarChartGroupedPro/definition.d.ts.map +1 -1
  63. package/dist/components/charts/bars/BarChartGroupedPro/index.d.ts +5 -1
  64. package/dist/components/charts/bars/BarChartGroupedPro/index.d.ts.map +1 -1
  65. package/dist/components/charts/bars/BarChartStackedHorizontalPro/BarChartStackedHorizontalPro.emb.d.ts +11 -0
  66. package/dist/components/charts/bars/BarChartStackedHorizontalPro/BarChartStackedHorizontalPro.emb.d.ts.map +1 -1
  67. package/dist/components/charts/bars/BarChartStackedHorizontalPro/definition.d.ts +39 -12
  68. package/dist/components/charts/bars/BarChartStackedHorizontalPro/definition.d.ts.map +1 -1
  69. package/dist/components/charts/bars/BarChartStackedHorizontalPro/index.d.ts +5 -1
  70. package/dist/components/charts/bars/BarChartStackedHorizontalPro/index.d.ts.map +1 -1
  71. package/dist/components/charts/bars/BarChartStackedPro/BarChartStackedPro.emb.d.ts +11 -0
  72. package/dist/components/charts/bars/BarChartStackedPro/BarChartStackedPro.emb.d.ts.map +1 -1
  73. package/dist/components/charts/bars/BarChartStackedPro/definition.d.ts +39 -12
  74. package/dist/components/charts/bars/BarChartStackedPro/definition.d.ts.map +1 -1
  75. package/dist/components/charts/bars/BarChartStackedPro/index.d.ts +5 -1
  76. package/dist/components/charts/bars/BarChartStackedPro/index.d.ts.map +1 -1
  77. package/dist/components/charts/bars/bars.hooks.d.ts +8 -0
  78. package/dist/components/charts/bars/bars.hooks.d.ts.map +1 -0
  79. package/dist/components/charts/bars/bars.hooks.test.d.ts +2 -0
  80. package/dist/components/charts/bars/bars.hooks.test.d.ts.map +1 -0
  81. package/dist/components/charts/bars/bars.loadData.utils.d.ts +51 -0
  82. package/dist/components/charts/bars/bars.loadData.utils.d.ts.map +1 -0
  83. package/dist/components/charts/bars/bars.loadData.utils.test.d.ts +2 -0
  84. package/dist/components/charts/bars/bars.loadData.utils.test.d.ts.map +1 -0
  85. package/dist/components/charts/bars/bars.utils.d.ts +1 -0
  86. package/dist/components/charts/bars/bars.utils.d.ts.map +1 -1
  87. package/dist/components/charts/kpis/KpiChartNumberComparisonPro/definition.d.ts +6 -5
  88. package/dist/components/charts/kpis/KpiChartNumberComparisonPro/definition.d.ts.map +1 -1
  89. package/dist/components/charts/lines/LineChartComparisonDefaultPro/definition.d.ts +6 -5
  90. package/dist/components/charts/lines/LineChartComparisonDefaultPro/definition.d.ts.map +1 -1
  91. package/dist/components/charts/lines/LineChartDefaultPro/definition.d.ts +4 -3
  92. package/dist/components/charts/lines/LineChartDefaultPro/definition.d.ts.map +1 -1
  93. package/dist/components/charts/lines/LineChartGroupedPro/definition.d.ts +4 -3
  94. package/dist/components/charts/lines/LineChartGroupedPro/definition.d.ts.map +1 -1
  95. package/dist/components/charts/tables/HeatMapPro/definition.d.ts +4 -3
  96. package/dist/components/charts/tables/HeatMapPro/definition.d.ts.map +1 -1
  97. package/dist/components/charts/tables/PivotTablePro/definition.d.ts +6 -5
  98. package/dist/components/charts/tables/PivotTablePro/definition.d.ts.map +1 -1
  99. package/dist/components/component.inputs.constants.d.ts +26 -0
  100. package/dist/components/component.inputs.constants.d.ts.map +1 -1
  101. package/dist/components/editors/ComparisonPeriodSelectFieldPro/index.d.ts.map +1 -1
  102. package/dist/components/editors/dates/DateRangePickerCustomPro/index.d.ts.map +1 -1
  103. package/dist/components/editors/dates/DateRangePickerPresetsPro/DateRangePickerPresetsPro.types.d.ts +1 -1
  104. package/dist/components/editors/dates/DateRangePickerPresetsPro/DateRangePickerPresetsPro.types.d.ts.map +1 -1
  105. package/dist/components/editors/dates/DateRangePickerPresetsPro/DateRangePickerPresetsPro.utils.d.ts +1 -1
  106. package/dist/components/editors/dates/DateRangePickerPresetsPro/DateRangePickerPresetsPro.utils.d.ts.map +1 -1
  107. package/dist/components/editors/dates/DateRangePickerPresetsPro/index.d.ts.map +1 -1
  108. package/dist/components/editors/dates/dates.utils.d.ts +3 -3
  109. package/dist/components/editors/dates/dates.utils.d.ts.map +1 -1
  110. package/dist/components/types/SortDirection.type.emb.d.ts +9 -0
  111. package/dist/components/types/SortDirection.type.emb.d.ts.map +1 -0
  112. package/dist/{dates.utils-C3LPV893.js → dates.utils-D44sdrNs.js} +36 -36
  113. package/dist/{dates.utils-C3LPV893.js.map → dates.utils-D44sdrNs.js.map} +1 -1
  114. package/dist/definition-B1B71Q9P.js +164 -0
  115. package/dist/definition-B1B71Q9P.js.map +1 -0
  116. package/dist/{definition-5a__Y0lx.js → definition-B1t6-ToS.js} +89 -86
  117. package/dist/definition-B1t6-ToS.js.map +1 -0
  118. package/dist/{definition-ChFv8Vq8.js → definition-B6Jm5skX.js} +2 -2
  119. package/dist/{definition-ChFv8Vq8.js.map → definition-B6Jm5skX.js.map} +1 -1
  120. package/dist/{definition-DRFMnEQh.js → definition-BCbRycZt.js} +3 -3
  121. package/dist/{definition-DRFMnEQh.js.map → definition-BCbRycZt.js.map} +1 -1
  122. package/dist/{definition-B9E-HZdm.js → definition-BIk4lZdI.js} +3 -3
  123. package/dist/{definition-B9E-HZdm.js.map → definition-BIk4lZdI.js.map} +1 -1
  124. package/dist/{definition-D1wwcuOy.js → definition-BKcHxtMp.js} +3 -3
  125. package/dist/{definition-D1wwcuOy.js.map → definition-BKcHxtMp.js.map} +1 -1
  126. package/dist/definition-BejgCcXe.js +279 -0
  127. package/dist/{definition-xGVDcBlW.js.map → definition-BejgCcXe.js.map} +1 -1
  128. package/dist/definition-Bg3R-QHm.js +206 -0
  129. package/dist/definition-Bg3R-QHm.js.map +1 -0
  130. package/dist/{definition-Bhvd22lu.js → definition-BomoMNHu.js} +19 -18
  131. package/dist/definition-BomoMNHu.js.map +1 -0
  132. package/dist/{definition-CzAzy1Hk.js → definition-BqIza8Nx.js} +3 -3
  133. package/dist/{definition-CzAzy1Hk.js.map → definition-BqIza8Nx.js.map} +1 -1
  134. package/dist/{definition-Di3x_6Rh.js → definition-BxDRujfc.js} +68 -66
  135. package/dist/{definition-Di3x_6Rh.js.map → definition-BxDRujfc.js.map} +1 -1
  136. package/dist/definition-Bx_a3I-X.js +208 -0
  137. package/dist/definition-Bx_a3I-X.js.map +1 -0
  138. package/dist/{definition-DxkipQYz.js → definition-CLDcybuA.js} +56 -51
  139. package/dist/definition-CLDcybuA.js.map +1 -0
  140. package/dist/{definition-DSAR_Bsa.js → definition-C_wdRHYX.js} +3 -3
  141. package/dist/{definition-DSAR_Bsa.js.map → definition-C_wdRHYX.js.map} +1 -1
  142. package/dist/{definition-DsDQF6Da.js → definition-CbkzLjXK.js} +3 -3
  143. package/dist/{definition-DsDQF6Da.js.map → definition-CbkzLjXK.js.map} +1 -1
  144. package/dist/{definition-wDuSjm3O.js → definition-Cgq79V22.js} +3 -3
  145. package/dist/{definition-wDuSjm3O.js.map → definition-Cgq79V22.js.map} +1 -1
  146. package/dist/{definition-FEz36Zkx.js → definition-Cx1UPIho.js} +3 -3
  147. package/dist/{definition-FEz36Zkx.js.map → definition-Cx1UPIho.js.map} +1 -1
  148. package/dist/{definition-Cl_4hkGI.js → definition-D4-0-tXB.js} +3 -3
  149. package/dist/{definition-Cl_4hkGI.js.map → definition-D4-0-tXB.js.map} +1 -1
  150. package/dist/{definition-DM13nXMm.js → definition-DFEQMSrJ.js} +3 -3
  151. package/dist/{definition-DM13nXMm.js.map → definition-DFEQMSrJ.js.map} +1 -1
  152. package/dist/{definition-CV2xoi69.js → definition-DFoesKHP.js} +2 -2
  153. package/dist/{definition-CV2xoi69.js.map → definition-DFoesKHP.js.map} +1 -1
  154. package/dist/{definition-CBevT5lk.js → definition-DqtPYFiz.js} +39 -30
  155. package/dist/definition-DqtPYFiz.js.map +1 -0
  156. package/dist/{definition-CWVSN9UB.js → definition-MdprJNc9.js} +4 -4
  157. package/dist/{definition-CWVSN9UB.js.map → definition-MdprJNc9.js.map} +1 -1
  158. package/dist/definition-NQQg5mwf.js +207 -0
  159. package/dist/definition-NQQg5mwf.js.map +1 -0
  160. package/dist/{definition-DpFvucVl.js → definition-OA_X18FK.js} +48 -46
  161. package/dist/definition-OA_X18FK.js.map +1 -0
  162. package/dist/definition-nSxl9weT.js +525 -0
  163. package/dist/definition-nSxl9weT.js.map +1 -0
  164. package/dist/{definition-Bdcy082b.js → definition-ngOUqoDo.js} +3 -3
  165. package/dist/{definition-Bdcy082b.js.map → definition-ngOUqoDo.js.map} +1 -1
  166. package/dist/{definition-C8CAdqhV.js → definition-oe6halnQ.js} +2 -2
  167. package/dist/{definition-C8CAdqhV.js.map → definition-oe6halnQ.js.map} +1 -1
  168. package/dist/definition-poLEt7kb.js +210 -0
  169. package/dist/definition-poLEt7kb.js.map +1 -0
  170. package/dist/definition-uj4b0NtW.js +209 -0
  171. package/dist/definition-uj4b0NtW.js.map +1 -0
  172. package/dist/{definition-Cxji761B.js → definition-v66e9pZV.js} +3 -3
  173. package/dist/{definition-Cxji761B.js.map → definition-v66e9pZV.js.map} +1 -1
  174. package/dist/definition-xkAbcSB6.js +166 -0
  175. package/dist/definition-xkAbcSB6.js.map +1 -0
  176. package/dist/{dimensionsAndMeasures.utils-x51eIYbW.js → dimensionsAndMeasures.utils-DtUfSnpA.js} +2 -2
  177. package/dist/{dimensionsAndMeasures.utils-x51eIYbW.js.map → dimensionsAndMeasures.utils-DtUfSnpA.js.map} +1 -1
  178. package/dist/embeddable-components.json +36 -36
  179. package/dist/embeddable-theme-0137e.js +4437 -4455
  180. package/dist/{embeddable-types-671f4.js → embeddable-types-4089f.js} +55 -43
  181. package/dist/embeddable-types.js.map +1 -1
  182. package/dist/{formatter.utils-DXI8s5Y5.js → formatter.utils-BLaKKpAa.js} +2 -2
  183. package/dist/{formatter.utils-DXI8s5Y5.js.map → formatter.utils-BLaKKpAa.js.map} +1 -1
  184. package/dist/{granularity.utils-DYOJiFaK.js → granularity.utils-Hj10GihD.js} +2 -2
  185. package/dist/{granularity.utils-DYOJiFaK.js.map → granularity.utils-Hj10GihD.js.map} +1 -1
  186. package/dist/index.js +44 -44
  187. package/dist/{pies.utils-4osQ9x_J.js → pies.utils-DvbvSz5H.js} +3 -3
  188. package/dist/{pies.utils-4osQ9x_J.js.map → pies.utils-DvbvSz5H.js.map} +1 -1
  189. package/dist/{tables.utils-BpqebRcu.js → tables.utils-BF3qUwBS.js} +3 -3
  190. package/dist/{tables.utils-BpqebRcu.js.map → tables.utils-BF3qUwBS.js.map} +1 -1
  191. package/dist/theme/defaults/defaults.ComparisonPeriods.constants.d.ts.map +1 -1
  192. package/dist/theme/defaults/defaults.DateRanges.constants.d.ts +1 -1
  193. package/dist/theme/defaults/defaults.DateRanges.constants.d.ts.map +1 -1
  194. package/dist/theme/theme.constants.d.ts.map +1 -1
  195. package/dist/theme/theme.types.d.ts +4 -0
  196. package/dist/theme/theme.types.d.ts.map +1 -1
  197. package/dist/theme/utils/clientContext.utils.d.ts +2 -0
  198. package/dist/theme/utils/clientContext.utils.d.ts.map +1 -0
  199. package/dist/timeRange.utils-CcP33PfM.js +20 -0
  200. package/dist/timeRange.utils-CcP33PfM.js.map +1 -0
  201. package/package.json +1 -1
  202. package/dist/bars.utils-B8_oDn4j.js +0 -157
  203. package/dist/bars.utils-B8_oDn4j.js.map +0 -1
  204. package/dist/charts.fillGaps.hooks-DDOGO5JR.js +0 -70
  205. package/dist/charts.fillGaps.hooks-DDOGO5JR.js.map +0 -1
  206. package/dist/charts.utils-ZAdb7oJ-.js.map +0 -1
  207. package/dist/component.inputs.constants-C-vfrygQ.js.map +0 -1
  208. package/dist/definition-5T5HRGnj.js +0 -162
  209. package/dist/definition-5T5HRGnj.js.map +0 -1
  210. package/dist/definition-5a__Y0lx.js.map +0 -1
  211. package/dist/definition-BKX3li26.js +0 -201
  212. package/dist/definition-BKX3li26.js.map +0 -1
  213. package/dist/definition-Bhvd22lu.js.map +0 -1
  214. package/dist/definition-BtJ2IsdK.js +0 -174
  215. package/dist/definition-BtJ2IsdK.js.map +0 -1
  216. package/dist/definition-Bxj6nf61.js +0 -170
  217. package/dist/definition-Bxj6nf61.js.map +0 -1
  218. package/dist/definition-C4aPFAKq.js +0 -164
  219. package/dist/definition-C4aPFAKq.js.map +0 -1
  220. package/dist/definition-CBevT5lk.js.map +0 -1
  221. package/dist/definition-DETLn9Wn.js +0 -172
  222. package/dist/definition-DETLn9Wn.js.map +0 -1
  223. package/dist/definition-DpFvucVl.js.map +0 -1
  224. package/dist/definition-DxkipQYz.js.map +0 -1
  225. package/dist/definition-j7sh3jCh.js +0 -172
  226. package/dist/definition-j7sh3jCh.js.map +0 -1
  227. package/dist/definition-mtzDmBoh.js +0 -515
  228. package/dist/definition-mtzDmBoh.js.map +0 -1
  229. package/dist/definition-xGVDcBlW.js +0 -277
  230. package/dist/timeRange.utils-D1hjtzlU.js +0 -20
  231. package/dist/timeRange.utils-D1hjtzlU.js.map +0 -1
@@ -6,49 +6,49 @@ const p = "en-US", s = (t, o = {}) => ({
6
6
  optionLabel: () => t,
7
7
  ...o
8
8
  }
9
- }), m = () => globalThis.__EMBEDDABLE_BUNDLE_HASH__ ?? null, a = (t, o) => {
10
- if (U.includes(t))
9
+ }), S = () => globalThis.__EMBEDDABLE_BUNDLE_HASH__ ?? null, a = (t, o) => {
10
+ if (w.includes(t))
11
11
  throw new Error(`Type ${t} is part of the nativeTypes and cannot be defined`, { cause: "sdk" });
12
12
  const r = {
13
13
  __embeddableType: "custom",
14
14
  toString: () => t,
15
15
  typeConfig: o
16
- }, n = m();
16
+ }, n = S();
17
17
  globalThis.__EMBEDDABLE__ = globalThis.__EMBEDDABLE__ || {};
18
- const i = n ? globalThis.__EMBEDDABLE__[n] = globalThis.__EMBEDDABLE__[n] || {} : globalThis.__EMBEDDABLE__;
19
- return i.types = i.types || {}, i.types = {
20
- ...i.types,
18
+ const e = n ? globalThis.__EMBEDDABLE__[n] = globalThis.__EMBEDDABLE__[n] || {} : globalThis.__EMBEDDABLE__;
19
+ return e.types = e.types || {}, e.types = {
20
+ ...e.types,
21
21
  [t]: {
22
22
  name: t,
23
23
  ...o
24
24
  }
25
25
  }, r;
26
- }, L = "string", A = "number", f = "boolean", S = "time", y = "timeRange", B = "granularity", M = "dataset", h = "measure", I = "dimension", N = "dimensionOrMeasure", O = "filters", R = [
27
- L,
26
+ }, A = "string", y = "number", f = "boolean", B = "time", M = "timeRange", h = "granularity", I = "dataset", N = "measure", O = "dimension", R = "dimensionOrMeasure", U = "filters", P = [
28
27
  A,
29
- f,
30
- S,
31
28
  y,
29
+ f,
32
30
  B,
33
- O
34
- ], U = [
35
- ...R,
36
31
  M,
37
32
  h,
33
+ U
34
+ ], w = [
35
+ ...P,
38
36
  I,
39
- N
40
- ], P = () => globalThis.__EMBEDDABLE_BUNDLE_HASH__ ?? null, e = (t, o) => {
41
- var i, T, b, D;
42
- const r = P();
37
+ N,
38
+ O,
39
+ R
40
+ ], C = () => globalThis.__EMBEDDABLE_BUNDLE_HASH__ ?? null, i = (t, o) => {
41
+ var e, D, b, l;
42
+ const r = C();
43
43
  globalThis.__EMBEDDABLE__ ?? (globalThis.__EMBEDDABLE__ = {});
44
- const n = r ? (i = globalThis.__EMBEDDABLE__)[r] ?? (i[r] = {}) : globalThis.__EMBEDDABLE__;
44
+ const n = r ? (e = globalThis.__EMBEDDABLE__)[r] ?? (e[r] = {}) : globalThis.__EMBEDDABLE__;
45
45
  if (typeof t == "string")
46
- n.nativeTypes = n.nativeTypes || {}, n.nativeTypes[t] = n.nativeTypes[t] || {}, (T = n.nativeTypes[t]).options ?? (T.options = []), n.nativeTypes[t].options.push(o);
46
+ n.nativeTypes = n.nativeTypes || {}, n.nativeTypes[t] = n.nativeTypes[t] || {}, (D = n.nativeTypes[t]).options ?? (D.options = []), n.nativeTypes[t].options.push(o);
47
47
  else {
48
- const E = t.toString();
49
- if (!((b = n == null ? void 0 : n.types) != null && b[E]))
48
+ const _ = t.toString();
49
+ if (!((b = n == null ? void 0 : n.types) != null && b[_]))
50
50
  return;
51
- (D = n.types[E]).options ?? (D.options = []), n.types[E].options.push(o);
51
+ (l = n.types[_]).options ?? (l.options = []), n.types[_].options.push(o);
52
52
  }
53
53
  };
54
54
  s("string", {
@@ -80,16 +80,16 @@ s("timeRange", {
80
80
  transform: (t) => {
81
81
  if (!t)
82
82
  return;
83
- const [o, r] = [t == null ? void 0 : t.from, t == null ? void 0 : t.to], n = new Date(o), i = new Date(r);
83
+ const [o, r] = [t == null ? void 0 : t.from, t == null ? void 0 : t.to], n = new Date(o), e = new Date(r);
84
84
  return {
85
85
  from: n.toString() !== "Invalid Date" ? n : void 0,
86
- to: i.toString() !== "Invalid Date" ? i : void 0,
86
+ to: e.toString() !== "Invalid Date" ? e : void 0,
87
87
  relativeTimeString: t == null ? void 0 : t.relativeTimeString
88
88
  };
89
89
  },
90
90
  optionLabel: (t) => {
91
- var o, r, n, i;
92
- return t ? t != null && t.from && (t != null && t.to) ? `${((o = t.from) == null ? void 0 : o.toLocaleDateString(p)) ?? ((r = t.from) == null ? void 0 : r.toLocaleString())},${((n = t.to) == null ? void 0 : n.toLocaleDateString(p)) ?? ((i = t.to) == null ? void 0 : i.toLocaleString())}` : t == null ? void 0 : t.relativeTimeString : "";
91
+ var o, r, n, e;
92
+ return t ? t != null && t.from && (t != null && t.to) ? `${((o = t.from) == null ? void 0 : o.toLocaleDateString(p)) ?? ((r = t.from) == null ? void 0 : r.toLocaleString())},${((n = t.to) == null ? void 0 : n.toLocaleDateString(p)) ?? ((e = t.to) == null ? void 0 : e.toLocaleString())}` : t == null ? void 0 : t.relativeTimeString : "";
93
93
  }
94
94
  });
95
95
  s("granularity", {
@@ -100,38 +100,50 @@ s("dataset");
100
100
  s("measure");
101
101
  s("dimension");
102
102
  s("dimensionOrMeasure");
103
- const c = a("align", {
103
+ const E = a("align", {
104
104
  label: "Alignment",
105
105
  optionLabel: (t) => t
106
106
  });
107
- e(c, "left");
108
- e(c, "center");
109
- e(c, "right");
110
- const _ = a("comparisonPeriod", {
107
+ i(E, "left");
108
+ i(E, "center");
109
+ i(E, "right");
110
+ const c = a("comparisonPeriod", {
111
111
  label: "Comparison period",
112
112
  optionLabel: (t) => t
113
113
  });
114
- e(_, "Previous period");
115
- e(_, "Previous week");
116
- e(_, "Previous month");
117
- e(_, "Previous quarter");
118
- e(_, "Previous year");
114
+ i(c, "Previous period");
115
+ i(c, "Previous week");
116
+ i(c, "Previous month");
117
+ i(c, "Previous quarter");
118
+ i(c, "Previous year");
119
119
  const g = {
120
120
  MARKDOWN: "Markdown",
121
121
  JSON: "Json"
122
- }, l = a("DisplayFormat", {
122
+ }, L = a("DisplayFormat", {
123
123
  label: "Display format",
124
124
  optionLabel: (t) => t
125
125
  });
126
- e(l, g.MARKDOWN);
127
- e(l, g.JSON);
128
- const d = a("tableCellStyle", {
126
+ i(L, g.MARKDOWN);
127
+ i(L, g.JSON);
128
+ const d = {
129
+ asc: "asc",
130
+ desc: "desc"
131
+ }, $ = {
132
+ [d.asc]: "Ascending",
133
+ [d.desc]: "Descending"
134
+ }, m = a("sortDirection", {
135
+ label: "Sort direction",
136
+ optionLabel: (t) => $[t]
137
+ });
138
+ i(m, d.asc);
139
+ i(m, d.desc);
140
+ const T = a("tableCellStyle", {
129
141
  label: "Table cell style",
130
142
  optionLabel: (t) => t
131
143
  });
132
- e(d, "Bold");
133
- e(d, "Italic");
134
- e(d, "Positive vs Negative");
144
+ i(T, "Bold");
145
+ i(T, "Italic");
146
+ i(T, "Positive vs Negative");
135
147
  a("color", {
136
148
  label: "Color",
137
149
  optionLabel: (t) => t.toUpperCase()
@@ -1 +1 @@
1
- {"version":3,"file":"embeddable-types.js","sources":["../node_modules/@embeddable.com/core/lib/index.esm.js","../src/components/types/Align.type.emb.ts","../src/components/types/ComparisonPeriod.type.emb.ts","../src/components/types/DisplayFormat.type.emb.ts","../src/components/types/TableCellStyle.type.emb.ts","../src/editors/ColorEditor/Color.type.emb.ts","../src/editors/MarkdownEditor/Markdown.type.emb.ts"],"sourcesContent":["import { mergician } from 'mergician';\n\nconst DEFAULT_LOCALE = \"en-US\";\nconst normalizeEntities = (entities, { mapFn = (x) => x, filterFn = Boolean, }) => {\n if (!entities)\n return undefined;\n const filtered = entities.filter(filterFn);\n if (filtered.length === 0)\n return undefined;\n return filtered.map(mapFn);\n};\nconst getName = (x) => x.name;\nconst checkTimeDimension = (timeDimension) => Boolean(timeDimension &&\n timeDimension.dimension &&\n (timeDimension.granularity || timeDimension.dateRange));\nconst validateOrderBy = (orderByParam, dimensions, measures, timeDimensions) => {\n const unknownDimensionsOrMeasures = [];\n const dimensionAndMeasureNames = [\n ...[...measures, ...dimensions].filter(Boolean).map((x) => x.name),\n ...timeDimensions\n .filter(Boolean)\n .map((x) => x.dimension)\n .filter(Boolean),\n ];\n for (const orderBy of orderByParam) {\n const { name } = orderBy.property;\n if (dimensionAndMeasureNames.includes(name))\n continue;\n unknownDimensionsOrMeasures.push(name);\n }\n return unknownDimensionsOrMeasures;\n};\nconst createBuiltInType = (name, typeConfig = {}) => ({\n __embeddableType: \"built-in\",\n toString: () => name,\n typeConfig: {\n label: name,\n optionLabel: () => name,\n ...typeConfig,\n },\n});\nconst validateFilter = (filter) => {\n if (!filter.property)\n return \"filter property must be set\";\n if (!filter.operator)\n return \"filter operator must be set\";\n};\nconst convertFilterValue = (value) => {\n // no need to convert these values\n if (value == null ||\n typeof value === \"string\" ||\n typeof value === \"boolean\" ||\n typeof value === \"number\" ||\n value instanceof Date ||\n Array.isArray(value)) {\n return value;\n }\n if (Object.hasOwn(value, \"date\"))\n return value?.date;\n const timeRange = value;\n if (timeRange?.from && timeRange?.to) {\n return [timeRange.from, timeRange.to];\n }\n // time or timeRange must be converted\n if (timeRange?.relativeTimeString)\n return timeRange.relativeTimeString;\n};\nfunction deduplicateEntitiesByName(entities) {\n if (!entities || entities.length === 0)\n return [];\n const seen = new Set();\n return entities.filter((entity) => {\n if (seen.has(entity.name)) {\n return false;\n }\n seen.add(entity.name);\n return true;\n });\n}\n\nconst DIMENSION_TYPE = \"dimension\";\nconst MEASURE_TYPE = \"measure\";\nconst deepFlattenSelect = (input) => {\n if (Array.isArray(input)) {\n return input.flatMap(deepFlattenSelect);\n }\n return [input];\n};\nconst processSelectParam = (selectParam) => {\n const result = {\n dimensions: [],\n measures: [],\n timeDimensions: [],\n };\n if (!selectParam) {\n return result;\n }\n const flat = deepFlattenSelect(selectParam).filter(Boolean);\n if (!flat.length) {\n result.error = \"select must not be empty\";\n return result;\n }\n for (const ent of flat) {\n const isValidEntity = typeof ent === \"object\" &&\n (isDimensionOrMeasure(ent) || isTimeDimension(ent));\n if (!isValidEntity) {\n result.error =\n \"select must only contain Dimension, Measure or TimeDimension objects\";\n return result;\n }\n if (isTimeDimension(ent)) {\n result.timeDimensions.push(ent);\n }\n else if (isDimension(ent)) {\n const dimension = ent;\n const granularity = dimension.inputs?.granularity;\n if (dimension.nativeType === \"time\" && granularity) {\n result.timeDimensions.push({\n dimension: dimension.name,\n granularity,\n title: dimension.title,\n });\n }\n else {\n result.dimensions.push(dimension);\n }\n }\n else if (isMeasure(ent)) {\n result.measures.push(ent);\n }\n else {\n const type = \"__type__\" in ent ? ent.__type__ : typeof ent;\n result.error = `Unknown __type__ in select: ${type}`;\n return result;\n }\n }\n return result;\n};\nfunction validateLegacyFields(request) {\n if (request.measures?.length > 0 &&\n request.measures.some((m) => m?.__type__ !== MEASURE_TYPE)) {\n return \"Unexpected type passed to `measures` in loadData function. Expected an array of type Measure.\";\n }\n if (request.dimensions?.length > 0 &&\n request.dimensions.some((m) => m?.__type__ !== DIMENSION_TYPE)) {\n return \"Unexpected type passed to `dimensions` in loadData function. Expected an array of type Dimension.\";\n }\n return null;\n}\nfunction processApiSelection(request) {\n const result = {\n dimensions: [],\n measures: [],\n timeDimensions: [],\n usingSelect: false,\n };\n if (request.select) {\n result.usingSelect = true;\n const selectResult = processSelectParam(request.select);\n if (selectResult.error) {\n result.error = selectResult.error;\n return result;\n }\n result.dimensions = selectResult.dimensions;\n result.measures = selectResult.measures;\n result.timeDimensions = selectResult.timeDimensions;\n }\n else {\n const legacyError = validateLegacyFields(request);\n if (legacyError) {\n result.error = legacyError;\n return result;\n }\n result.dimensions =\n normalizeEntities(request.dimensions, { mapFn: (x) => x }) ?? [];\n result.measures =\n normalizeEntities(request.measures, { mapFn: (x) => x }) ?? [];\n result.timeDimensions =\n normalizeEntities(request.timeDimensions, { filterFn: Boolean }) ?? [];\n }\n result.dimensions = deduplicateEntitiesByName(result.dimensions);\n result.measures = deduplicateEntitiesByName(result.measures);\n return result;\n}\nfunction validateOrderByLogic(orderBy, dimensions, measures, timeDimensions) {\n const unknownDimensionsOrMeasures = validateOrderBy(orderBy ?? [], dimensions, measures, timeDimensions);\n if (unknownDimensionsOrMeasures.length > 0) {\n return `Cannot order by ${unknownDimensionsOrMeasures.join(\", \")} as no such ${unknownDimensionsOrMeasures.length === 1 ? \"property\" : \"properties\"} has been loaded.`;\n }\n return null;\n}\nfunction validateFiltersLogic(filters) {\n if (filters) {\n const errors = filters\n .map((f, index) => ({\n index,\n message: validateFilter(f),\n }))\n .filter((e) => !!e.message);\n if (errors.length) {\n return errors\n .map((e) => `filter[${e.index}] is not valid: ${e.message}`)\n .join(\"\\n\");\n }\n }\n return null;\n}\nfunction buildQueryObject(request, dimensions, measures, timeDimensions, order) {\n return {\n inputName: request.from.inputName,\n datasetId: request.from.datasetId,\n embeddableId: request.from.embeddableId,\n dimensions: normalizeEntities(dimensions, { mapFn: getName }) ?? [],\n measures: normalizeEntities(measures, { mapFn: getName }) ?? [],\n order,\n timeDimensions: normalizeEntities(timeDimensions, { filterFn: checkTimeDimension }) ?? [],\n offset: request.offset,\n limit: request.limit,\n variableValues: request.from.variableValues,\n filters: request.filters?.map((f) => ({\n member: f.property.name,\n operator: f.operator,\n values: convertFilterValue(f.value),\n })),\n timezone: request.timezone,\n countRows: request.countRows,\n };\n}\n\nconst LOAD_DATA_EVENT = \"embeddable-event:load-data\";\nconst CUBE_MEASURE_TYPE_STRING = \"string\";\nconst CUBE_MEASURE_TYPE_TIME = \"time\";\nconst CUBE_MEASURE_TYPE_BOOLEAN = \"boolean\";\nconst CUBE_MEASURE_TYPE_NUMBER = \"number\";\nconst CUBE_MEASURE_TYPE_COUNT = \"count\";\nconst CUBE_MEASURE_TYPE_COUNT_DISTINCT = \"count_distinct\";\nconst CUBE_MEASURE_TYPE_COUNT_DISTINCT_APPROX = \"count_distinct_approx\";\nconst CUBE_MEASURE_TYPE_SUM = \"sum\";\nconst CUBE_MEASURE_TYPE_AVG = \"avg\";\nconst CUBE_MEASURE_TYPE_MIN = \"min\";\nconst CUBE_MEASURE_TYPE_MAX = \"max\";\nconst CUBE_DIMENSION_TYPE_STRING = \"string\";\nconst CUBE_DIMENSION_TYPE_NUMBER = \"number\";\nconst CUBE_DIMENSION_TYPE_BOOLEAN = \"boolean\";\nconst CUBE_DIMENSION_TYPE_GEO = \"geo\";\nconst CUBE_DIMENSION_TYPE_TIME = \"time\";\nconst NativeDataType = {\n string: \"string\",\n number: \"number\",\n time: \"time\",\n boolean: \"boolean\",\n};\nconst FilterOperator = {\n equals: \"equals\",\n notEquals: \"notEquals\",\n contains: \"contains\",\n notContains: \"notContains\",\n startsWith: \"startsWith\",\n endsWith: \"endsWith\",\n gt: \"gt\",\n gte: \"gte\",\n lt: \"lt\",\n lte: \"lte\",\n notNull: \"set\",\n isNull: \"notSet\",\n inDateRange: \"inDateRange\",\n notInDateRange: \"notInDateRange\",\n beforeDate: \"beforeDate\",\n afterDate: \"afterDate\",\n measureFilter: \"measureFilter\",\n};\nconst isLoadDataParams = (ldp) => typeof ldp === \"object\" &&\n ldp &&\n \"requestParams\" in ldp &&\n \"dataLoader\" in ldp;\nconst executeDataRequest = (triggerElement, request, componentId, propertyName) => {\n if (!request.from)\n return \"No dataset selected\";\n // Mutually exclusive API check\n if (request.select &&\n (request.dimensions || request.measures || request.timeDimensions)) {\n return \"loadData expects you to use either dimensions, timeDimensions and measures, or select. You cannot use both together.\";\n }\n // Process select or legacy fields\n const apiResult = processApiSelection(request);\n if (apiResult.error) {\n return apiResult.error;\n }\n const { dimensions, measures, timeDimensions } = apiResult;\n // Validate required fields\n const dimensionsOrMeasuresDefined = dimensions.length || measures.length || timeDimensions.length;\n if (!dimensionsOrMeasuresDefined) {\n return \"At least a dimension or a measure should be selected.\";\n }\n // Order By Validation\n const orderByError = validateOrderByLogic(request.orderBy, dimensions, measures, timeDimensions);\n if (orderByError) {\n return orderByError;\n }\n // Filter Validation\n const filterError = validateFiltersLogic(request.filters);\n if (filterError) {\n return filterError;\n }\n // Prepare OrderBy for query\n const order = normalizeEntities(request.orderBy, {\n mapFn: (o) => [o.property.name, o.direction],\n });\n // Build Query Object\n const query = buildQueryObject(request, dimensions, measures, timeDimensions, order);\n // Dispatch Event\n triggerElement.dispatchEvent(new CustomEvent(LOAD_DATA_EVENT, {\n bubbles: true,\n composed: true,\n detail: {\n query,\n componentId,\n propertyName,\n },\n }));\n};\nconst loadData = (requestParams) => ({\n requestParams,\n dataLoader: executeDataRequest,\n});\nconst isDimension = (dimensionOrMeasure) => dimensionOrMeasure?.__type__ === DIMENSION_TYPE;\nconst isMeasure = (dimensionOrMeasure) => dimensionOrMeasure?.__type__ === MEASURE_TYPE;\nconst isTimeDimension = (dimensionOrMeasure) => \"dimension\" in (dimensionOrMeasure ?? {}) &&\n !(\"__type__\" in dimensionOrMeasure);\nconst isDimensionOrMeasure = (dimensionOrMeasure) => isDimension(dimensionOrMeasure) || isMeasure(dimensionOrMeasure);\n\nconst getOperationObject = (operation, value) => ({\n operation,\n value: value ?? null,\n __embeddableVariableMeta: true,\n});\nconst Value = {\n noFilter: () => getOperationObject(\"NO_FILTER\"),\n of: (value) => getOperationObject(\"VALUE\", value),\n};\n\nconst UPDATE_VALUE_EVENT = \"embeddable:value:changed\";\nconst setValue = (triggerElement, value, componentId, eventName) => {\n const event = new CustomEvent(UPDATE_VALUE_EVENT, {\n bubbles: true,\n composed: true,\n detail: {\n componentId,\n value,\n eventName,\n },\n });\n triggerElement.dispatchEvent(event);\n};\n\n// Helper to get the bundleHash from window if available\nconst getBundleHash$1 = () => globalThis.__EMBEDDABLE_BUNDLE_HASH__ ?? null;\nconst defineType = (typeName, typeConfig) => {\n if (ALL_NATIVE_TYPES.includes(typeName)) {\n throw new Error(`Type ${typeName} is part of the nativeTypes and cannot be defined`, { cause: \"sdk\" });\n }\n const type = {\n __embeddableType: \"custom\",\n toString: () => typeName,\n typeConfig,\n };\n // Get the bundleHash from stored value or window\n const bundleHash = getBundleHash$1();\n globalThis.__EMBEDDABLE__ = globalThis.__EMBEDDABLE__ || {};\n const embeddable = bundleHash\n ? (globalThis.__EMBEDDABLE__[bundleHash] =\n globalThis.__EMBEDDABLE__[bundleHash] || {})\n : globalThis.__EMBEDDABLE__;\n embeddable.types = embeddable.types || {};\n // Preserve existing types by merging with new type\n embeddable.types = {\n ...embeddable.types,\n [typeName]: {\n name: typeName,\n ...typeConfig,\n },\n };\n return type;\n};\nconst STRING = \"string\";\nconst NUMBER = \"number\";\nconst BOOLEAN = \"boolean\";\nconst TIME = \"time\";\nconst TIME_RANGE = \"timeRange\";\nconst GRANULARITY = \"granularity\";\nconst DATASET = \"dataset\";\nconst MEASURE = \"measure\";\nconst DIMENSION = \"dimension\";\nconst DIMENSION_OR_MEASURE = \"dimensionOrMeasure\";\nconst FILTERS = \"filters\";\nconst DEFAULT_NATIVE_TYPES = [\n STRING,\n NUMBER,\n BOOLEAN,\n TIME,\n TIME_RANGE,\n GRANULARITY,\n FILTERS,\n];\nconst ALL_NATIVE_TYPES = [\n ...DEFAULT_NATIVE_TYPES,\n DATASET,\n MEASURE,\n DIMENSION,\n DIMENSION_OR_MEASURE,\n];\nconst MEASURE_TYPE_STRING = \"string\";\nconst MEASURE_TYPE_TIME = \"time\";\nconst MEASURE_TYPE_BOOLEAN = \"boolean\";\nconst MEASURE_TYPE_NUMBER = \"number\";\nconst MEASURE_TYPE_COUNT = \"count\";\nconst MEASURE_TYPE_COUNT_DISTINCT = \"count_distinct\";\nconst MEASURE_TYPE_COUNT_DISTINCT_APPROX = \"count_distinct_approx\";\nconst MEASURE_TYPE_SUM = \"sum\";\nconst MEASURE_TYPE_AVG = \"avg\";\nconst MEASURE_TYPE_MIN = \"min\";\nconst MEASURE_TYPE_MAX = \"max\";\nconst MEASURE_TYPES = [\n MEASURE_TYPE_STRING,\n MEASURE_TYPE_TIME,\n MEASURE_TYPE_BOOLEAN,\n MEASURE_TYPE_NUMBER,\n MEASURE_TYPE_COUNT,\n MEASURE_TYPE_COUNT_DISTINCT,\n MEASURE_TYPE_COUNT_DISTINCT_APPROX,\n MEASURE_TYPE_SUM,\n MEASURE_TYPE_AVG,\n MEASURE_TYPE_MIN,\n MEASURE_TYPE_MAX,\n];\nconst DIMENSION_TYPE_STRING = \"string\";\nconst DIMENSION_TYPE_NUMBER = \"number\";\nconst DIMENSION_TYPE_BOOLEAN = \"boolean\";\nconst DIMENSION_TYPE_GEO = \"geo\";\nconst DIMENSION_TYPE_TIME = \"time\";\nconst DIMENSION_TYPES = [\n DIMENSION_TYPE_STRING,\n DIMENSION_TYPE_NUMBER,\n DIMENSION_TYPE_BOOLEAN,\n DIMENSION_TYPE_GEO,\n DIMENSION_TYPE_TIME,\n];\nconst DIMENSION_OR_MEASURE_TYPES = [\n ...DIMENSION_TYPES,\n ...MEASURE_TYPES,\n];\n\n// Helper to get the bundleHash from window if available\n// Check if we have a bundleHash in the window\nconst getBundleHash = () => globalThis.__EMBEDDABLE_BUNDLE_HASH__ ?? null;\nconst defineOption = (type, option) => {\n // Get the bundleHash from stored value or window\n const bundleHash = getBundleHash();\n globalThis.__EMBEDDABLE__ ??= {};\n const embeddable = bundleHash\n ? (globalThis.__EMBEDDABLE__[bundleHash] ??= {})\n : globalThis.__EMBEDDABLE__;\n if (typeof type === \"string\") {\n // Handle native types\n embeddable.nativeTypes = embeddable.nativeTypes || {};\n embeddable.nativeTypes[type] = embeddable.nativeTypes[type] || {};\n embeddable.nativeTypes[type].options ??= [];\n embeddable.nativeTypes[type].options.push(option);\n }\n else {\n // Handle custom types\n const typeName = type.toString();\n if (!embeddable?.types?.[typeName])\n return;\n embeddable.types[typeName].options ??= [];\n embeddable.types[typeName].options.push(option);\n }\n};\n\nconst StringType = createBuiltInType(\"string\", {\n transform: (value) => value,\n optionLabel: (value) => Array.isArray(value)\n ? `[${value.map((v) => `\"${v}\"`).join(\",\")}]`\n : `\"${value}\"`,\n});\nconst NumberType = createBuiltInType(\"number\", {\n transform: (value) => Array.isArray(value) ? value : value ? Number(value) : value,\n optionLabel: (value) => Array.isArray(value)\n ? `[${value.join(\",\")}]`\n : (value?.toLocaleString(DEFAULT_LOCALE) ?? \"\"),\n});\nconst BooleanType = createBuiltInType(\"boolean\", {\n transform: (value) => value === \"true\" || value === true,\n optionLabel: (value) => (value ? \"true\" : \"false\"),\n});\nconst TimeType = createBuiltInType(\"time\", {\n transform: (value) => {\n const date = value?.date ? new Date(value.date) : undefined;\n const isValid = date && date.toString() !== \"Invalid Date\";\n return {\n date: isValid ? date : undefined,\n relativeTimeString: value?.relativeTimeString,\n };\n },\n optionLabel: (value) => {\n if (!value)\n return \"\";\n if (value?.date) {\n return (value.date?.toLocaleDateString(DEFAULT_LOCALE) ??\n value.date.toLocaleString());\n }\n return value.relativeTimeString;\n },\n});\nconst TimeRangeType = createBuiltInType(\"timeRange\", {\n transform: (value) => {\n // Return undefined instead of a null populated object\n if (!value)\n return undefined;\n const [from, to] = [value?.from, value?.to];\n const fromDate = new Date(from);\n const toDate = new Date(to);\n return {\n from: fromDate.toString() !== \"Invalid Date\" ? fromDate : undefined,\n to: toDate.toString() !== \"Invalid Date\" ? toDate : undefined,\n relativeTimeString: value?.relativeTimeString,\n };\n },\n optionLabel: (value) => {\n if (!value)\n return \"\";\n if (value?.from && value?.to) {\n return `${value.from?.toLocaleDateString(DEFAULT_LOCALE) ??\n value.from?.toLocaleString()},${value.to?.toLocaleDateString(DEFAULT_LOCALE) ??\n value.to?.toLocaleString()}`;\n }\n return value?.relativeTimeString;\n },\n});\nconst GranularityType = createBuiltInType(\"granularity\", {\n transform: (value) => value,\n optionLabel: (value) => value,\n});\nconst DatasetType = createBuiltInType(\"dataset\");\nconst MeasureType = createBuiltInType(\"measure\");\nconst DimensionType = createBuiltInType(\"dimension\");\nconst DimensionOrMeasureType = createBuiltInType(\"dimensionOrMeasure\");\n\nvar nativeTypes = /*#__PURE__*/Object.freeze({\n __proto__: null,\n BooleanType: BooleanType,\n DatasetType: DatasetType,\n DimensionOrMeasureType: DimensionOrMeasureType,\n DimensionType: DimensionType,\n GranularityType: GranularityType,\n MeasureType: MeasureType,\n NumberType: NumberType,\n StringType: StringType,\n TimeRangeType: TimeRangeType,\n TimeType: TimeType\n});\n\nconst defineTheme = (parentTheme, childTheme) => {\n return mergician(parentTheme, childTheme);\n};\n\nconst mockDataResponse = (columnNames, values) => {\n const data = values.map((row) => {\n const obj = {};\n columnNames.forEach((col, index) => {\n obj[col] = row[index];\n });\n return obj;\n });\n return {\n isLoading: false,\n data,\n };\n};\nconst mockDimension = (name, type, extraOptions) => ({\n ...mockModelMember(name, extraOptions),\n __type__: \"dimension\",\n nativeType: type,\n});\nconst mockMeasure = (name, type, extraOptions) => ({\n ...mockModelMember(name, extraOptions),\n __type__: \"measure\",\n nativeType: type,\n});\nconst mockModelMember = (name, extraOptions) => ({\n name,\n title: extraOptions?.title || capitalize(name),\n modelTitle: extraOptions?.modelTitle || capitalize(name),\n description: extraOptions?.description || \"\",\n ...extraOptions,\n});\nconst capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1);\n\nexport { ALL_NATIVE_TYPES, CUBE_DIMENSION_TYPE_BOOLEAN, CUBE_DIMENSION_TYPE_GEO, CUBE_DIMENSION_TYPE_NUMBER, CUBE_DIMENSION_TYPE_STRING, CUBE_DIMENSION_TYPE_TIME, CUBE_MEASURE_TYPE_AVG, CUBE_MEASURE_TYPE_BOOLEAN, CUBE_MEASURE_TYPE_COUNT, CUBE_MEASURE_TYPE_COUNT_DISTINCT, CUBE_MEASURE_TYPE_COUNT_DISTINCT_APPROX, CUBE_MEASURE_TYPE_MAX, CUBE_MEASURE_TYPE_MIN, CUBE_MEASURE_TYPE_NUMBER, CUBE_MEASURE_TYPE_STRING, CUBE_MEASURE_TYPE_SUM, CUBE_MEASURE_TYPE_TIME, DEFAULT_NATIVE_TYPES, DIMENSION_OR_MEASURE_TYPES, DIMENSION_TYPES, FilterOperator, MEASURE_TYPES, NativeDataType, Value, defineOption, defineTheme, defineType, isDimension, isDimensionOrMeasure, isLoadDataParams, isMeasure, isTimeDimension, loadData, mockDataResponse, mockDimension, mockMeasure, nativeTypes, setValue };\n","import { defineOption, defineType } from '@embeddable.com/core';\n\nconst AlignType = defineType('align', {\n label: 'Alignment',\n optionLabel: (value: string) => value,\n});\n\ndefineOption(AlignType, 'left');\ndefineOption(AlignType, 'center');\ndefineOption(AlignType, 'right');\n\nexport default AlignType;\n","import { defineOption, defineType } from '@embeddable.com/core';\n\nconst ComparisonPeriodType = defineType('comparisonPeriod', {\n label: 'Comparison period',\n optionLabel: (value: string) => value,\n});\n\ndefineOption(ComparisonPeriodType, 'Previous period');\ndefineOption(ComparisonPeriodType, 'Previous week');\ndefineOption(ComparisonPeriodType, 'Previous month');\ndefineOption(ComparisonPeriodType, 'Previous quarter');\ndefineOption(ComparisonPeriodType, 'Previous year');\n\nexport default ComparisonPeriodType;\n","import { defineOption, defineType } from '@embeddable.com/core';\n\nexport const DisplayFormatTypeOptions = {\n MARKDOWN: 'Markdown',\n JSON: 'Json',\n} as const;\n\nconst DisplayFormatType = defineType('DisplayFormat', {\n label: 'Display format',\n optionLabel: (value: string) => value,\n});\n\ndefineOption(DisplayFormatType, DisplayFormatTypeOptions.MARKDOWN);\ndefineOption(DisplayFormatType, DisplayFormatTypeOptions.JSON);\n\nexport default DisplayFormatType;\n","import { defineOption, defineType } from '@embeddable.com/core';\n\nconst TableCellStyleType = defineType('tableCellStyle', {\n label: 'Table cell style',\n optionLabel: (value: string) => value,\n});\n\ndefineOption(TableCellStyleType, 'Bold');\ndefineOption(TableCellStyleType, 'Italic');\ndefineOption(TableCellStyleType, 'Positive vs Negative');\n\nexport default TableCellStyleType;\n","import { defineType } from '@embeddable.com/core';\n\nconst ColorType = defineType('color', {\n label: 'Color',\n optionLabel: (value: string) => value.toUpperCase(),\n});\n\nexport default ColorType;\n","import { defineType } from '@embeddable.com/core';\n\nconst MarkdownType = defineType('markdown', {\n label: 'Markdown',\n optionLabel: (value: string) => value.toUpperCase(),\n});\n\nexport default MarkdownType;\n"],"names":["DEFAULT_LOCALE","createBuiltInType","name","typeConfig","getBundleHash$1","defineType","typeName","ALL_NATIVE_TYPES","type","bundleHash","embeddable","STRING","NUMBER","BOOLEAN","TIME","TIME_RANGE","GRANULARITY","DATASET","MEASURE","DIMENSION","DIMENSION_OR_MEASURE","FILTERS","DEFAULT_NATIVE_TYPES","getBundleHash","defineOption","option","_a","_b","_c","_d","value","v","date","from","to","fromDate","toDate","AlignType","ComparisonPeriodType","DisplayFormatTypeOptions","DisplayFormatType","TableCellStyleType"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"embeddable-types.js","sources":["../node_modules/@embeddable.com/core/lib/index.esm.js","../src/components/types/Align.type.emb.ts","../src/components/types/ComparisonPeriod.type.emb.ts","../src/components/types/DisplayFormat.type.emb.ts","../src/components/types/SortDirection.type.emb.ts","../src/components/types/TableCellStyle.type.emb.ts","../src/editors/ColorEditor/Color.type.emb.ts","../src/editors/MarkdownEditor/Markdown.type.emb.ts"],"sourcesContent":["import { mergician } from 'mergician';\n\nconst DEFAULT_LOCALE = \"en-US\";\nconst normalizeEntities = (entities, { mapFn = (x) => x, filterFn = Boolean, }) => {\n if (!entities)\n return undefined;\n const filtered = entities.filter(filterFn);\n if (filtered.length === 0)\n return undefined;\n return filtered.map(mapFn);\n};\nconst getName = (x) => x.name;\nconst checkTimeDimension = (timeDimension) => Boolean(timeDimension &&\n timeDimension.dimension &&\n (timeDimension.granularity || timeDimension.dateRange));\nconst validateOrderBy = (orderByParam, dimensions, measures, timeDimensions) => {\n const unknownDimensionsOrMeasures = [];\n const dimensionAndMeasureNames = [\n ...[...measures, ...dimensions].filter(Boolean).map((x) => x.name),\n ...timeDimensions\n .filter(Boolean)\n .map((x) => x.dimension)\n .filter(Boolean),\n ];\n for (const orderBy of orderByParam) {\n const { name } = orderBy.property;\n if (dimensionAndMeasureNames.includes(name))\n continue;\n unknownDimensionsOrMeasures.push(name);\n }\n return unknownDimensionsOrMeasures;\n};\nconst createBuiltInType = (name, typeConfig = {}) => ({\n __embeddableType: \"built-in\",\n toString: () => name,\n typeConfig: {\n label: name,\n optionLabel: () => name,\n ...typeConfig,\n },\n});\nconst validateFilter = (filter) => {\n if (!filter.property)\n return \"filter property must be set\";\n if (!filter.operator)\n return \"filter operator must be set\";\n};\nconst convertFilterValue = (value) => {\n // no need to convert these values\n if (value == null ||\n typeof value === \"string\" ||\n typeof value === \"boolean\" ||\n typeof value === \"number\" ||\n value instanceof Date ||\n Array.isArray(value)) {\n return value;\n }\n if (Object.hasOwn(value, \"date\"))\n return value?.date;\n const timeRange = value;\n if (timeRange?.from && timeRange?.to) {\n return [timeRange.from, timeRange.to];\n }\n // time or timeRange must be converted\n if (timeRange?.relativeTimeString)\n return timeRange.relativeTimeString;\n};\nfunction deduplicateEntitiesByName(entities) {\n if (!entities || entities.length === 0)\n return [];\n const seen = new Set();\n return entities.filter((entity) => {\n if (seen.has(entity.name)) {\n return false;\n }\n seen.add(entity.name);\n return true;\n });\n}\n\nconst DIMENSION_TYPE = \"dimension\";\nconst MEASURE_TYPE = \"measure\";\nconst deepFlattenSelect = (input) => {\n if (Array.isArray(input)) {\n return input.flatMap(deepFlattenSelect);\n }\n return [input];\n};\nconst processSelectParam = (selectParam) => {\n const result = {\n dimensions: [],\n measures: [],\n timeDimensions: [],\n };\n if (!selectParam) {\n return result;\n }\n const flat = deepFlattenSelect(selectParam).filter(Boolean);\n if (!flat.length) {\n result.error = \"select must not be empty\";\n return result;\n }\n for (const ent of flat) {\n const isValidEntity = typeof ent === \"object\" &&\n (isDimensionOrMeasure(ent) || isTimeDimension(ent));\n if (!isValidEntity) {\n result.error =\n \"select must only contain Dimension, Measure or TimeDimension objects\";\n return result;\n }\n if (isTimeDimension(ent)) {\n result.timeDimensions.push(ent);\n }\n else if (isDimension(ent)) {\n const dimension = ent;\n const granularity = dimension.inputs?.granularity;\n if (dimension.nativeType === \"time\" && granularity) {\n result.timeDimensions.push({\n dimension: dimension.name,\n granularity,\n title: dimension.title,\n });\n }\n else {\n result.dimensions.push(dimension);\n }\n }\n else if (isMeasure(ent)) {\n result.measures.push(ent);\n }\n else {\n const type = \"__type__\" in ent ? ent.__type__ : typeof ent;\n result.error = `Unknown __type__ in select: ${type}`;\n return result;\n }\n }\n return result;\n};\nfunction validateLegacyFields(request) {\n if (request.measures?.length > 0 &&\n request.measures.some((m) => m?.__type__ !== MEASURE_TYPE)) {\n return \"Unexpected type passed to `measures` in loadData function. Expected an array of type Measure.\";\n }\n if (request.dimensions?.length > 0 &&\n request.dimensions.some((m) => m?.__type__ !== DIMENSION_TYPE)) {\n return \"Unexpected type passed to `dimensions` in loadData function. Expected an array of type Dimension.\";\n }\n return null;\n}\nfunction processApiSelection(request) {\n const result = {\n dimensions: [],\n measures: [],\n timeDimensions: [],\n usingSelect: false,\n };\n if (request.select) {\n result.usingSelect = true;\n const selectResult = processSelectParam(request.select);\n if (selectResult.error) {\n result.error = selectResult.error;\n return result;\n }\n result.dimensions = selectResult.dimensions;\n result.measures = selectResult.measures;\n result.timeDimensions = selectResult.timeDimensions;\n }\n else {\n const legacyError = validateLegacyFields(request);\n if (legacyError) {\n result.error = legacyError;\n return result;\n }\n result.dimensions =\n normalizeEntities(request.dimensions, { mapFn: (x) => x }) ?? [];\n result.measures =\n normalizeEntities(request.measures, { mapFn: (x) => x }) ?? [];\n result.timeDimensions =\n normalizeEntities(request.timeDimensions, { filterFn: Boolean }) ?? [];\n }\n result.dimensions = deduplicateEntitiesByName(result.dimensions);\n result.measures = deduplicateEntitiesByName(result.measures);\n return result;\n}\nfunction validateOrderByLogic(orderBy, dimensions, measures, timeDimensions) {\n const unknownDimensionsOrMeasures = validateOrderBy(orderBy ?? [], dimensions, measures, timeDimensions);\n if (unknownDimensionsOrMeasures.length > 0) {\n return `Cannot order by ${unknownDimensionsOrMeasures.join(\", \")} as no such ${unknownDimensionsOrMeasures.length === 1 ? \"property\" : \"properties\"} has been loaded.`;\n }\n return null;\n}\nfunction validateFiltersLogic(filters) {\n if (filters) {\n const errors = filters\n .map((f, index) => ({\n index,\n message: validateFilter(f),\n }))\n .filter((e) => !!e.message);\n if (errors.length) {\n return errors\n .map((e) => `filter[${e.index}] is not valid: ${e.message}`)\n .join(\"\\n\");\n }\n }\n return null;\n}\nfunction buildQueryObject(request, dimensions, measures, timeDimensions, order) {\n return {\n inputName: request.from.inputName,\n datasetId: request.from.datasetId,\n embeddableId: request.from.embeddableId,\n dimensions: normalizeEntities(dimensions, { mapFn: getName }) ?? [],\n measures: normalizeEntities(measures, { mapFn: getName }) ?? [],\n order,\n timeDimensions: normalizeEntities(timeDimensions, { filterFn: checkTimeDimension }) ?? [],\n offset: request.offset,\n limit: request.limit,\n variableValues: request.from.variableValues,\n filters: request.filters?.map((f) => ({\n member: f.property.name,\n operator: f.operator,\n values: convertFilterValue(f.value),\n })),\n timezone: request.timezone,\n countRows: request.countRows,\n };\n}\n\nconst LOAD_DATA_EVENT = \"embeddable-event:load-data\";\nconst CUBE_MEASURE_TYPE_STRING = \"string\";\nconst CUBE_MEASURE_TYPE_TIME = \"time\";\nconst CUBE_MEASURE_TYPE_BOOLEAN = \"boolean\";\nconst CUBE_MEASURE_TYPE_NUMBER = \"number\";\nconst CUBE_MEASURE_TYPE_COUNT = \"count\";\nconst CUBE_MEASURE_TYPE_COUNT_DISTINCT = \"count_distinct\";\nconst CUBE_MEASURE_TYPE_COUNT_DISTINCT_APPROX = \"count_distinct_approx\";\nconst CUBE_MEASURE_TYPE_SUM = \"sum\";\nconst CUBE_MEASURE_TYPE_AVG = \"avg\";\nconst CUBE_MEASURE_TYPE_MIN = \"min\";\nconst CUBE_MEASURE_TYPE_MAX = \"max\";\nconst CUBE_DIMENSION_TYPE_STRING = \"string\";\nconst CUBE_DIMENSION_TYPE_NUMBER = \"number\";\nconst CUBE_DIMENSION_TYPE_BOOLEAN = \"boolean\";\nconst CUBE_DIMENSION_TYPE_GEO = \"geo\";\nconst CUBE_DIMENSION_TYPE_TIME = \"time\";\nconst NativeDataType = {\n string: \"string\",\n number: \"number\",\n time: \"time\",\n boolean: \"boolean\",\n};\nconst FilterOperator = {\n equals: \"equals\",\n notEquals: \"notEquals\",\n contains: \"contains\",\n notContains: \"notContains\",\n startsWith: \"startsWith\",\n endsWith: \"endsWith\",\n gt: \"gt\",\n gte: \"gte\",\n lt: \"lt\",\n lte: \"lte\",\n notNull: \"set\",\n isNull: \"notSet\",\n inDateRange: \"inDateRange\",\n notInDateRange: \"notInDateRange\",\n beforeDate: \"beforeDate\",\n afterDate: \"afterDate\",\n measureFilter: \"measureFilter\",\n};\nconst isLoadDataParams = (ldp) => typeof ldp === \"object\" &&\n ldp &&\n \"requestParams\" in ldp &&\n \"dataLoader\" in ldp;\nconst executeDataRequest = (triggerElement, request, componentId, propertyName) => {\n if (!request.from)\n return \"No dataset selected\";\n // Mutually exclusive API check\n if (request.select &&\n (request.dimensions || request.measures || request.timeDimensions)) {\n return \"loadData expects you to use either dimensions, timeDimensions and measures, or select. You cannot use both together.\";\n }\n // Process select or legacy fields\n const apiResult = processApiSelection(request);\n if (apiResult.error) {\n return apiResult.error;\n }\n const { dimensions, measures, timeDimensions } = apiResult;\n // Validate required fields\n const dimensionsOrMeasuresDefined = dimensions.length || measures.length || timeDimensions.length;\n if (!dimensionsOrMeasuresDefined) {\n return \"At least a dimension or a measure should be selected.\";\n }\n // Order By Validation\n const orderByError = validateOrderByLogic(request.orderBy, dimensions, measures, timeDimensions);\n if (orderByError) {\n return orderByError;\n }\n // Filter Validation\n const filterError = validateFiltersLogic(request.filters);\n if (filterError) {\n return filterError;\n }\n // Prepare OrderBy for query\n const order = normalizeEntities(request.orderBy, {\n mapFn: (o) => [o.property.name, o.direction],\n });\n // Build Query Object\n const query = buildQueryObject(request, dimensions, measures, timeDimensions, order);\n // Dispatch Event\n triggerElement.dispatchEvent(new CustomEvent(LOAD_DATA_EVENT, {\n bubbles: true,\n composed: true,\n detail: {\n query,\n componentId,\n propertyName,\n },\n }));\n};\nconst loadData = (requestParams) => ({\n requestParams,\n dataLoader: executeDataRequest,\n});\nconst isDimension = (dimensionOrMeasure) => dimensionOrMeasure?.__type__ === DIMENSION_TYPE;\nconst isMeasure = (dimensionOrMeasure) => dimensionOrMeasure?.__type__ === MEASURE_TYPE;\nconst isTimeDimension = (dimensionOrMeasure) => \"dimension\" in (dimensionOrMeasure ?? {}) &&\n !(\"__type__\" in dimensionOrMeasure);\nconst isDimensionOrMeasure = (dimensionOrMeasure) => isDimension(dimensionOrMeasure) || isMeasure(dimensionOrMeasure);\n\nconst getOperationObject = (operation, value) => ({\n operation,\n value: value ?? null,\n __embeddableVariableMeta: true,\n});\nconst Value = {\n noFilter: () => getOperationObject(\"NO_FILTER\"),\n of: (value) => getOperationObject(\"VALUE\", value),\n};\n\nconst UPDATE_VALUE_EVENT = \"embeddable:value:changed\";\nconst setValue = (triggerElement, value, componentId, eventName) => {\n const event = new CustomEvent(UPDATE_VALUE_EVENT, {\n bubbles: true,\n composed: true,\n detail: {\n componentId,\n value,\n eventName,\n },\n });\n triggerElement.dispatchEvent(event);\n};\n\n// Helper to get the bundleHash from window if available\nconst getBundleHash$1 = () => globalThis.__EMBEDDABLE_BUNDLE_HASH__ ?? null;\nconst defineType = (typeName, typeConfig) => {\n if (ALL_NATIVE_TYPES.includes(typeName)) {\n throw new Error(`Type ${typeName} is part of the nativeTypes and cannot be defined`, { cause: \"sdk\" });\n }\n const type = {\n __embeddableType: \"custom\",\n toString: () => typeName,\n typeConfig,\n };\n // Get the bundleHash from stored value or window\n const bundleHash = getBundleHash$1();\n globalThis.__EMBEDDABLE__ = globalThis.__EMBEDDABLE__ || {};\n const embeddable = bundleHash\n ? (globalThis.__EMBEDDABLE__[bundleHash] =\n globalThis.__EMBEDDABLE__[bundleHash] || {})\n : globalThis.__EMBEDDABLE__;\n embeddable.types = embeddable.types || {};\n // Preserve existing types by merging with new type\n embeddable.types = {\n ...embeddable.types,\n [typeName]: {\n name: typeName,\n ...typeConfig,\n },\n };\n return type;\n};\nconst STRING = \"string\";\nconst NUMBER = \"number\";\nconst BOOLEAN = \"boolean\";\nconst TIME = \"time\";\nconst TIME_RANGE = \"timeRange\";\nconst GRANULARITY = \"granularity\";\nconst DATASET = \"dataset\";\nconst MEASURE = \"measure\";\nconst DIMENSION = \"dimension\";\nconst DIMENSION_OR_MEASURE = \"dimensionOrMeasure\";\nconst FILTERS = \"filters\";\nconst DEFAULT_NATIVE_TYPES = [\n STRING,\n NUMBER,\n BOOLEAN,\n TIME,\n TIME_RANGE,\n GRANULARITY,\n FILTERS,\n];\nconst ALL_NATIVE_TYPES = [\n ...DEFAULT_NATIVE_TYPES,\n DATASET,\n MEASURE,\n DIMENSION,\n DIMENSION_OR_MEASURE,\n];\nconst MEASURE_TYPE_STRING = \"string\";\nconst MEASURE_TYPE_TIME = \"time\";\nconst MEASURE_TYPE_BOOLEAN = \"boolean\";\nconst MEASURE_TYPE_NUMBER = \"number\";\nconst MEASURE_TYPE_COUNT = \"count\";\nconst MEASURE_TYPE_COUNT_DISTINCT = \"count_distinct\";\nconst MEASURE_TYPE_COUNT_DISTINCT_APPROX = \"count_distinct_approx\";\nconst MEASURE_TYPE_SUM = \"sum\";\nconst MEASURE_TYPE_AVG = \"avg\";\nconst MEASURE_TYPE_MIN = \"min\";\nconst MEASURE_TYPE_MAX = \"max\";\nconst MEASURE_TYPES = [\n MEASURE_TYPE_STRING,\n MEASURE_TYPE_TIME,\n MEASURE_TYPE_BOOLEAN,\n MEASURE_TYPE_NUMBER,\n MEASURE_TYPE_COUNT,\n MEASURE_TYPE_COUNT_DISTINCT,\n MEASURE_TYPE_COUNT_DISTINCT_APPROX,\n MEASURE_TYPE_SUM,\n MEASURE_TYPE_AVG,\n MEASURE_TYPE_MIN,\n MEASURE_TYPE_MAX,\n];\nconst DIMENSION_TYPE_STRING = \"string\";\nconst DIMENSION_TYPE_NUMBER = \"number\";\nconst DIMENSION_TYPE_BOOLEAN = \"boolean\";\nconst DIMENSION_TYPE_GEO = \"geo\";\nconst DIMENSION_TYPE_TIME = \"time\";\nconst DIMENSION_TYPES = [\n DIMENSION_TYPE_STRING,\n DIMENSION_TYPE_NUMBER,\n DIMENSION_TYPE_BOOLEAN,\n DIMENSION_TYPE_GEO,\n DIMENSION_TYPE_TIME,\n];\nconst DIMENSION_OR_MEASURE_TYPES = [\n ...DIMENSION_TYPES,\n ...MEASURE_TYPES,\n];\n\n// Helper to get the bundleHash from window if available\n// Check if we have a bundleHash in the window\nconst getBundleHash = () => globalThis.__EMBEDDABLE_BUNDLE_HASH__ ?? null;\nconst defineOption = (type, option) => {\n // Get the bundleHash from stored value or window\n const bundleHash = getBundleHash();\n globalThis.__EMBEDDABLE__ ??= {};\n const embeddable = bundleHash\n ? (globalThis.__EMBEDDABLE__[bundleHash] ??= {})\n : globalThis.__EMBEDDABLE__;\n if (typeof type === \"string\") {\n // Handle native types\n embeddable.nativeTypes = embeddable.nativeTypes || {};\n embeddable.nativeTypes[type] = embeddable.nativeTypes[type] || {};\n embeddable.nativeTypes[type].options ??= [];\n embeddable.nativeTypes[type].options.push(option);\n }\n else {\n // Handle custom types\n const typeName = type.toString();\n if (!embeddable?.types?.[typeName])\n return;\n embeddable.types[typeName].options ??= [];\n embeddable.types[typeName].options.push(option);\n }\n};\n\nconst StringType = createBuiltInType(\"string\", {\n transform: (value) => value,\n optionLabel: (value) => Array.isArray(value)\n ? `[${value.map((v) => `\"${v}\"`).join(\",\")}]`\n : `\"${value}\"`,\n});\nconst NumberType = createBuiltInType(\"number\", {\n transform: (value) => Array.isArray(value) ? value : value ? Number(value) : value,\n optionLabel: (value) => Array.isArray(value)\n ? `[${value.join(\",\")}]`\n : (value?.toLocaleString(DEFAULT_LOCALE) ?? \"\"),\n});\nconst BooleanType = createBuiltInType(\"boolean\", {\n transform: (value) => value === \"true\" || value === true,\n optionLabel: (value) => (value ? \"true\" : \"false\"),\n});\nconst TimeType = createBuiltInType(\"time\", {\n transform: (value) => {\n const date = value?.date ? new Date(value.date) : undefined;\n const isValid = date && date.toString() !== \"Invalid Date\";\n return {\n date: isValid ? date : undefined,\n relativeTimeString: value?.relativeTimeString,\n };\n },\n optionLabel: (value) => {\n if (!value)\n return \"\";\n if (value?.date) {\n return (value.date?.toLocaleDateString(DEFAULT_LOCALE) ??\n value.date.toLocaleString());\n }\n return value.relativeTimeString;\n },\n});\nconst TimeRangeType = createBuiltInType(\"timeRange\", {\n transform: (value) => {\n // Return undefined instead of a null populated object\n if (!value)\n return undefined;\n const [from, to] = [value?.from, value?.to];\n const fromDate = new Date(from);\n const toDate = new Date(to);\n return {\n from: fromDate.toString() !== \"Invalid Date\" ? fromDate : undefined,\n to: toDate.toString() !== \"Invalid Date\" ? toDate : undefined,\n relativeTimeString: value?.relativeTimeString,\n };\n },\n optionLabel: (value) => {\n if (!value)\n return \"\";\n if (value?.from && value?.to) {\n return `${value.from?.toLocaleDateString(DEFAULT_LOCALE) ??\n value.from?.toLocaleString()},${value.to?.toLocaleDateString(DEFAULT_LOCALE) ??\n value.to?.toLocaleString()}`;\n }\n return value?.relativeTimeString;\n },\n});\nconst GranularityType = createBuiltInType(\"granularity\", {\n transform: (value) => value,\n optionLabel: (value) => value,\n});\nconst DatasetType = createBuiltInType(\"dataset\");\nconst MeasureType = createBuiltInType(\"measure\");\nconst DimensionType = createBuiltInType(\"dimension\");\nconst DimensionOrMeasureType = createBuiltInType(\"dimensionOrMeasure\");\n\nvar nativeTypes = /*#__PURE__*/Object.freeze({\n __proto__: null,\n BooleanType: BooleanType,\n DatasetType: DatasetType,\n DimensionOrMeasureType: DimensionOrMeasureType,\n DimensionType: DimensionType,\n GranularityType: GranularityType,\n MeasureType: MeasureType,\n NumberType: NumberType,\n StringType: StringType,\n TimeRangeType: TimeRangeType,\n TimeType: TimeType\n});\n\nconst defineTheme = (parentTheme, childTheme) => {\n return mergician(parentTheme, childTheme);\n};\n\nconst mockDataResponse = (columnNames, values) => {\n const data = values.map((row) => {\n const obj = {};\n columnNames.forEach((col, index) => {\n obj[col] = row[index];\n });\n return obj;\n });\n return {\n isLoading: false,\n data,\n };\n};\nconst mockDimension = (name, type, extraOptions) => ({\n ...mockModelMember(name, extraOptions),\n __type__: \"dimension\",\n nativeType: type,\n});\nconst mockMeasure = (name, type, extraOptions) => ({\n ...mockModelMember(name, extraOptions),\n __type__: \"measure\",\n nativeType: type,\n});\nconst mockModelMember = (name, extraOptions) => ({\n name,\n title: extraOptions?.title || capitalize(name),\n modelTitle: extraOptions?.modelTitle || capitalize(name),\n description: extraOptions?.description || \"\",\n ...extraOptions,\n});\nconst capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1);\n\nexport { ALL_NATIVE_TYPES, CUBE_DIMENSION_TYPE_BOOLEAN, CUBE_DIMENSION_TYPE_GEO, CUBE_DIMENSION_TYPE_NUMBER, CUBE_DIMENSION_TYPE_STRING, CUBE_DIMENSION_TYPE_TIME, CUBE_MEASURE_TYPE_AVG, CUBE_MEASURE_TYPE_BOOLEAN, CUBE_MEASURE_TYPE_COUNT, CUBE_MEASURE_TYPE_COUNT_DISTINCT, CUBE_MEASURE_TYPE_COUNT_DISTINCT_APPROX, CUBE_MEASURE_TYPE_MAX, CUBE_MEASURE_TYPE_MIN, CUBE_MEASURE_TYPE_NUMBER, CUBE_MEASURE_TYPE_STRING, CUBE_MEASURE_TYPE_SUM, CUBE_MEASURE_TYPE_TIME, DEFAULT_NATIVE_TYPES, DIMENSION_OR_MEASURE_TYPES, DIMENSION_TYPES, FilterOperator, MEASURE_TYPES, NativeDataType, Value, defineOption, defineTheme, defineType, isDimension, isDimensionOrMeasure, isLoadDataParams, isMeasure, isTimeDimension, loadData, mockDataResponse, mockDimension, mockMeasure, nativeTypes, setValue };\n","import { defineOption, defineType } from '@embeddable.com/core';\n\nconst AlignType = defineType('align', {\n label: 'Alignment',\n optionLabel: (value: string) => value,\n});\n\ndefineOption(AlignType, 'left');\ndefineOption(AlignType, 'center');\ndefineOption(AlignType, 'right');\n\nexport default AlignType;\n","import { defineOption, defineType } from '@embeddable.com/core';\n\nconst ComparisonPeriodType = defineType('comparisonPeriod', {\n label: 'Comparison period',\n optionLabel: (value: string) => value,\n});\n\ndefineOption(ComparisonPeriodType, 'Previous period');\ndefineOption(ComparisonPeriodType, 'Previous week');\ndefineOption(ComparisonPeriodType, 'Previous month');\ndefineOption(ComparisonPeriodType, 'Previous quarter');\ndefineOption(ComparisonPeriodType, 'Previous year');\n\nexport default ComparisonPeriodType;\n","import { defineOption, defineType } from '@embeddable.com/core';\n\nexport const DisplayFormatTypeOptions = {\n MARKDOWN: 'Markdown',\n JSON: 'Json',\n} as const;\n\nconst DisplayFormatType = defineType('DisplayFormat', {\n label: 'Display format',\n optionLabel: (value: string) => value,\n});\n\ndefineOption(DisplayFormatType, DisplayFormatTypeOptions.MARKDOWN);\ndefineOption(DisplayFormatType, DisplayFormatTypeOptions.JSON);\n\nexport default DisplayFormatType;\n","import { defineOption, defineType, OrderDirection } from '@embeddable.com/core';\n\nexport const SortDirectionTypeOptions = {\n asc: 'asc',\n desc: 'desc',\n} as const;\n\nexport const getSortDirectionValue = (\n sortDirection?: OrderDirection,\n): OrderDirection | undefined => {\n if (!sortDirection) return undefined;\n return SortDirectionTypeOptions[sortDirection];\n};\n\nconst sortDirectionLabelMap: Record<OrderDirection, string> = {\n [SortDirectionTypeOptions.asc]: 'Ascending',\n [SortDirectionTypeOptions.desc]: 'Descending',\n};\n\nconst SortDirectionType = defineType('sortDirection', {\n label: 'Sort direction',\n optionLabel: (value: OrderDirection) => sortDirectionLabelMap[value],\n});\n\ndefineOption(SortDirectionType, SortDirectionTypeOptions.asc);\ndefineOption(SortDirectionType, SortDirectionTypeOptions.desc);\n\nexport default SortDirectionType;\n","import { defineOption, defineType } from '@embeddable.com/core';\n\nconst TableCellStyleType = defineType('tableCellStyle', {\n label: 'Table cell style',\n optionLabel: (value: string) => value,\n});\n\ndefineOption(TableCellStyleType, 'Bold');\ndefineOption(TableCellStyleType, 'Italic');\ndefineOption(TableCellStyleType, 'Positive vs Negative');\n\nexport default TableCellStyleType;\n","import { defineType } from '@embeddable.com/core';\n\nconst ColorType = defineType('color', {\n label: 'Color',\n optionLabel: (value: string) => value.toUpperCase(),\n});\n\nexport default ColorType;\n","import { defineType } from '@embeddable.com/core';\n\nconst MarkdownType = defineType('markdown', {\n label: 'Markdown',\n optionLabel: (value: string) => value.toUpperCase(),\n});\n\nexport default MarkdownType;\n"],"names":["DEFAULT_LOCALE","createBuiltInType","name","typeConfig","getBundleHash$1","defineType","typeName","ALL_NATIVE_TYPES","type","bundleHash","embeddable","STRING","NUMBER","BOOLEAN","TIME","TIME_RANGE","GRANULARITY","DATASET","MEASURE","DIMENSION","DIMENSION_OR_MEASURE","FILTERS","DEFAULT_NATIVE_TYPES","getBundleHash","defineOption","option","_a","_b","_c","_d","value","v","date","from","to","fromDate","toDate","AlignType","ComparisonPeriodType","DisplayFormatTypeOptions","DisplayFormatType","SortDirectionTypeOptions","sortDirectionLabelMap","SortDirectionType","TableCellStyleType"],"mappings":"AAEA,MAAMA,IAAiB,SA8BjBC,IAAoB,CAACC,GAAMC,IAAa,QAAQ;AAAA,EAClD,kBAAkB;AAAA,EAClB,UAAU,MAAMD;AAAA,EAChB,YAAY;AAAA,IACR,OAAOA;AAAA,IACP,aAAa,MAAMA;AAAA,IACnB,GAAGC;AAAA,EACX;AACA,IA4TMC,IAAkB,MAAM,WAAW,8BAA8B,MACjEC,IAAa,CAACC,GAAUH,MAAe;AACzC,MAAII,EAAiB,SAASD,CAAQ;AAClC,UAAM,IAAI,MAAM,QAAQA,CAAQ,qDAAqD,EAAE,OAAO,OAAO;AAEzG,QAAME,IAAO;AAAA,IACT,kBAAkB;AAAA,IAClB,UAAU,MAAMF;AAAA,IAChB,YAAAH;AAAA,EACR,GAEUM,IAAaL,EAAe;AAClC,aAAW,iBAAiB,WAAW,kBAAkB,CAAA;AACzD,QAAMM,IAAaD,IACZ,WAAW,eAAeA,CAAU,IACnC,WAAW,eAAeA,CAAU,KAAK,CAAA,IAC3C,WAAW;AACjB,SAAAC,EAAW,QAAQA,EAAW,SAAS,CAAA,GAEvCA,EAAW,QAAQ;AAAA,IACf,GAAGA,EAAW;AAAA,IACd,CAACJ,CAAQ,GAAG;AAAA,MACR,MAAMA;AAAA,MACN,GAAGH;AAAA,IACf;AAAA,EACA,GACWK;AACX,GACMG,IAAS,UACTC,IAAS,UACTC,IAAU,WACVC,IAAO,QACPC,IAAa,aACbC,IAAc,eACdC,IAAU,WACVC,IAAU,WACVC,IAAY,aACZC,IAAuB,sBACvBC,IAAU,WACVC,IAAuB;AAAA,EACzBX;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAK;AACJ,GACMd,IAAmB;AAAA,EACrB,GAAGe;AAAA,EACHL;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AACJ,GA4CMG,IAAgB,MAAM,WAAW,8BAA8B,MAC/DC,IAAe,CAAChB,GAAMiB,MAAW;AArcvC,MAAAC,GAAAC,GAAAC,GAAAC;AAucI,QAAMpB,IAAac,EAAa;AAChC,aAAW,mBAAX,WAAW,iBAAmB,CAAA;AAC9B,QAAMb,IAAaD,KACZiB,IAAA,WAAW,gBAAXjB,OAAAiB,EAAAjB,KAA0C,CAAA,KAC3C,WAAW;AACjB,MAAI,OAAOD,KAAS;AAEhB,IAAAE,EAAW,cAAcA,EAAW,eAAe,CAAA,GACnDA,EAAW,YAAYF,CAAI,IAAIE,EAAW,YAAYF,CAAI,KAAK,CAAA,IAC/DmB,IAAAjB,EAAW,YAAYF,CAAI,GAAE,YAA7BmB,EAA6B,UAAY,CAAA,IACzCjB,EAAW,YAAYF,CAAI,EAAE,QAAQ,KAAKiB,CAAM;AAAA,OAE/C;AAED,UAAMnB,IAAWE,EAAK,SAAQ;AAC9B,QAAI,GAACoB,IAAAlB,KAAA,gBAAAA,EAAY,UAAZ,QAAAkB,EAAoBtB;AACrB;AACJ,KAAAuB,IAAAnB,EAAW,MAAMJ,CAAQ,GAAE,YAA3BuB,EAA2B,UAAY,CAAA,IACvCnB,EAAW,MAAMJ,CAAQ,EAAE,QAAQ,KAAKmB,CAAM;AAAA,EAClD;AACJ;AAEmBxB,EAAkB,UAAU;AAAA,EAC3C,WAAW,CAAC6B,MAAUA;AAAA,EACtB,aAAa,CAACA,MAAU,MAAM,QAAQA,CAAK,IACrC,IAAIA,EAAM,IAAI,CAACC,MAAM,IAAIA,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,MACxC,IAAID,CAAK;AACnB,CAAC;AACkB7B,EAAkB,UAAU;AAAA,EAC3C,WAAW,CAAC6B,MAAU,MAAM,QAAQA,CAAK,IAAIA,IAAQA,KAAQ,OAAOA,CAAK;AAAA,EACzE,aAAa,CAACA,MAAU,MAAM,QAAQA,CAAK,IACrC,IAAIA,EAAM,KAAK,GAAG,CAAC,OAClBA,KAAA,gBAAAA,EAAO,eAAe9B,OAAmB;AACpD,CAAC;AACmBC,EAAkB,WAAW;AAAA,EAC7C,WAAW,CAAC6B,MAAUA,MAAU,UAAUA,MAAU;AAAA,EACpD,aAAa,CAACA,MAAWA,IAAQ,SAAS;AAC9C,CAAC;AACgB7B,EAAkB,QAAQ;AAAA,EACvC,WAAW,CAAC6B,MAAU;AAClB,UAAME,IAAOF,KAAA,QAAAA,EAAO,OAAO,IAAI,KAAKA,EAAM,IAAI,IAAI;AAElD,WAAO;AAAA,MACH,MAFYE,KAAQA,EAAK,SAAQ,MAAO,iBAExBA,IAAO;AAAA,MACvB,oBAAoBF,KAAA,gBAAAA,EAAO;AAAA,IACvC;AAAA,EACI;AAAA,EACA,aAAa,CAACA,MAAU;AAtf5B,QAAAJ;AAufQ,WAAKI,IAEDA,KAAA,QAAAA,EAAO,SACCJ,IAAAI,EAAM,SAAN,gBAAAJ,EAAY,mBAAmB1B,OACnC8B,EAAM,KAAK,eAAc,IAE1BA,EAAM,qBALF;AAAA,EAMf;AACJ,CAAC;AACqB7B,EAAkB,aAAa;AAAA,EACjD,WAAW,CAAC6B,MAAU;AAElB,QAAI,CAACA;AACD;AACJ,UAAM,CAACG,GAAMC,CAAE,IAAI,CAACJ,KAAA,gBAAAA,EAAO,MAAMA,KAAA,gBAAAA,EAAO,EAAE,GACpCK,IAAW,IAAI,KAAKF,CAAI,GACxBG,IAAS,IAAI,KAAKF,CAAE;AAC1B,WAAO;AAAA,MACH,MAAMC,EAAS,SAAQ,MAAO,iBAAiBA,IAAW;AAAA,MAC1D,IAAIC,EAAO,SAAQ,MAAO,iBAAiBA,IAAS;AAAA,MACpD,oBAAoBN,KAAA,gBAAAA,EAAO;AAAA,IACvC;AAAA,EACI;AAAA,EACA,aAAa,CAACA,MAAU;AA9gB5B,QAAAJ,GAAAC,GAAAC,GAAAC;AA+gBQ,WAAKC,IAEDA,KAAA,QAAAA,EAAO,SAAQA,KAAA,QAAAA,EAAO,MACf,KAAGJ,IAAAI,EAAM,SAAN,gBAAAJ,EAAY,mBAAmB1B,SACrC2B,IAAAG,EAAM,SAAN,gBAAAH,EAAY,iBAAgB,MAAIC,IAAAE,EAAM,OAAN,gBAAAF,EAAU,mBAAmB5B,SAC7D6B,IAAAC,EAAM,OAAN,gBAAAD,EAAU,iBAAgB,KAE3BC,KAAA,gBAAAA,EAAO,qBANH;AAAA,EAOf;AACJ,CAAC;AACuB7B,EAAkB,eAAe;AAAA,EACrD,WAAW,CAAC6B,MAAUA;AAAA,EACtB,aAAa,CAACA,MAAUA;AAC5B,CAAC;AACmB7B,EAAkB,SAAS;AAC3BA,EAAkB,SAAS;AACzBA,EAAkB,WAAW;AACpBA,EAAkB,oBAAoB;AChiBrE,MAAMoC,IAAYhC,EAAW,SAAS;AAAA,EACpC,OAAO;AAAA,EACP,aAAa,CAACyB,MAAkBA;AAClC,CAAC;AAEDN,EAAaa,GAAW,MAAM;AAC9Bb,EAAaa,GAAW,QAAQ;AAChCb,EAAaa,GAAW,OAAO;ACP/B,MAAMC,IAAuBjC,EAAW,oBAAoB;AAAA,EAC1D,OAAO;AAAA,EACP,aAAa,CAACyB,MAAkBA;AAClC,CAAC;AAEDN,EAAac,GAAsB,iBAAiB;AACpDd,EAAac,GAAsB,eAAe;AAClDd,EAAac,GAAsB,gBAAgB;AACnDd,EAAac,GAAsB,kBAAkB;AACrDd,EAAac,GAAsB,eAAe;ACT3C,MAAMC,IAA2B;AAAA,EACtC,UAAU;AAAA,EACV,MAAM;AACR,GAEMC,IAAoBnC,EAAW,iBAAiB;AAAA,EACpD,OAAO;AAAA,EACP,aAAa,CAACyB,MAAkBA;AAClC,CAAC;AAEDN,EAAagB,GAAmBD,EAAyB,QAAQ;AACjEf,EAAagB,GAAmBD,EAAyB,IAAI;ACXtD,MAAME,IAA2B;AAAA,EACtC,KAAK;AAAA,EACL,MAAM;AACR,GASMC,IAAwD;AAAA,EAC5D,CAACD,EAAyB,GAAG,GAAG;AAAA,EAChC,CAACA,EAAyB,IAAI,GAAG;AACnC,GAEME,IAAoBtC,EAAW,iBAAiB;AAAA,EACpD,OAAO;AAAA,EACP,aAAa,CAACyB,MAA0BY,EAAsBZ,CAAK;AACrE,CAAC;AAEDN,EAAamB,GAAmBF,EAAyB,GAAG;AAC5DjB,EAAamB,GAAmBF,EAAyB,IAAI;ACvB7D,MAAMG,IAAqBvC,EAAW,kBAAkB;AAAA,EACtD,OAAO;AAAA,EACP,aAAa,CAACyB,MAAkBA;AAClC,CAAC;AAEDN,EAAaoB,GAAoB,MAAM;AACvCpB,EAAaoB,GAAoB,QAAQ;AACzCpB,EAAaoB,GAAoB,sBAAsB;ACPrCvC,EAAW,SAAS;AAAA,EACpC,OAAO;AAAA,EACP,aAAa,CAACyB,MAAkBA,EAAM,YAAA;AACxC,CAAC;ACHoBzB,EAAW,YAAY;AAAA,EAC1C,OAAO;AAAA,EACP,aAAa,CAACyB,MAAkBA,EAAM,YAAA;AACxC,CAAC;","x_google_ignoreList":[0]}
@@ -1,5 +1,5 @@
1
1
  import { b as g } from "./component.utils-Dua9clQJ.js";
2
- import { D as l } from "./component.inputs.constants-C-vfrygQ.js";
2
+ import { D as l } from "./component.inputs.constants-C7tJAhsQ.js";
3
3
  const c = (r) => {
4
4
  const e = {};
5
5
  return (o) => {
@@ -56,4 +56,4 @@ export {
56
56
  x as g,
57
57
  b as i
58
58
  };
59
- //# sourceMappingURL=formatter.utils-DXI8s5Y5.js.map
59
+ //# sourceMappingURL=formatter.utils-BLaKKpAa.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatter.utils-DXI8s5Y5.js","sources":["../src/utils/cache.utils.ts","../src/utils/data.utils.ts","../src/theme/formatter/formatter.utils.ts"],"sourcesContent":["/**\n * Creates a formatter cache.\n * Cache used to prevent unnecessary (expensive) creation of formatter objects\n */\nexport const cache = <Params, Formatter>(factory: (params?: Params) => Formatter) => {\n const internalCache: { [key: string]: Formatter } = {};\n const get = (params?: Params) => {\n const key = JSON.stringify(params);\n let formatter = internalCache[key];\n if (formatter) {\n return formatter;\n }\n formatter = factory(params);\n internalCache[key] = formatter;\n return formatter;\n };\n return get;\n};\n","const ISO_DATE_TIME_REGEX = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}$/;\n\nexport const isValidISODate = (value: string): boolean => {\n return Boolean(value && ISO_DATE_TIME_REGEX.test(value));\n};\n","import { DimensionOrMeasure } from '@embeddable.com/core';\nimport { DateTimeFormatter, NumberFormatter, StringFormatter } from './formatter.types';\nimport { Theme } from '../theme.types';\nimport { cache } from '../../utils/cache.utils';\nimport { isValidISODate } from '../../utils/data.utils';\nimport { resolveI18nString } from '../../components/component.utils';\nimport { DisplayFormatTypeOptions } from '../../components/types/DisplayFormat.type.emb';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport const getSubInputValue = (key: DimensionOrMeasure, inputKey: string, metaKey?: string) =>\n key.inputs?.[inputKey] ?? (key.meta as any)?.[metaKey ?? inputKey];\n\nexport type GetThemeFormatter = {\n string: (key: string) => string;\n number: (value: number | bigint, options?: Intl.NumberFormatOptions) => string;\n dateTime: (value: Date, options?: Intl.DateTimeFormatOptions) => string;\n dimensionOrMeasureTitle: (key: DimensionOrMeasure) => string;\n data: (key: DimensionOrMeasure, value: any) => string;\n};\n\nexport const getThemeFormatter = (theme: Theme): GetThemeFormatter => {\n const cachedNumberFormatter = cache<Intl.NumberFormatOptions, NumberFormatter>((options) =>\n theme.formatter.numberFormatter(theme, options),\n );\n\n const cachedDataNumberFormatter = cache<DimensionOrMeasure, NumberFormatter>((key) =>\n theme.formatter.dataNumberFormatter(theme, key!),\n );\n\n const cachedDateTimeFormatter = cache<Intl.DateTimeFormatOptions, DateTimeFormatter>((options) =>\n theme.formatter.dateTimeFormatter(theme, options),\n );\n\n const cachedDataDateTimeFormatter = cache<DimensionOrMeasure, DateTimeFormatter>((key) =>\n theme.formatter.dataDateTimeFormatter(theme, key!),\n );\n\n const cachedDataOthersFormatter = cache<DimensionOrMeasure, StringFormatter>((key) =>\n theme.formatter.dataOthersFormatter(theme, key!),\n );\n\n return {\n string: (key: string) => theme.formatter.stringFormatter().format(key),\n number: (value: number | bigint, options?: Intl.NumberFormatOptions): string => {\n return cachedNumberFormatter(options).format(value);\n },\n dateTime: (value: Date, options?: Intl.DateTimeFormatOptions): string => {\n return cachedDateTimeFormatter(options).format(value);\n },\n dimensionOrMeasureTitle: (key: DimensionOrMeasure): string => {\n const displayName = getSubInputValue(key, 'displayName');\n if (displayName) {\n if (displayName.includes('|')) {\n return resolveI18nString(displayName);\n }\n return displayName;\n }\n\n const resolved = cachedDataOthersFormatter(key).format(key.name);\n return resolved === key.name ? (key.title ?? key.name) : resolved;\n },\n data: (key: DimensionOrMeasure, value: any): string => {\n let newValue = value;\n\n // Nulls (inputs override meta)\n if (value == null) {\n return getSubInputValue(key, 'displayNullAs') ?? '';\n }\n\n // JSON and Markdown (inputs override meta)\n const displayFormat = getSubInputValue(key, 'displayFormat');\n if (displayFormat === DisplayFormatTypeOptions.JSON) {\n return JSON.stringify(value, null, 2);\n }\n if (displayFormat === DisplayFormatTypeOptions.MARKDOWN) {\n return value;\n }\n // Objects\n if (typeof value === 'object') {\n return JSON.stringify(value);\n }\n\n // Number\n if (key.nativeType === 'number') {\n newValue = cachedDataNumberFormatter(key).format(value);\n }\n\n // Time\n if (key.nativeType === 'time' && isValidISODate(value)) {\n newValue = cachedDataDateTimeFormatter(key).format(new Date(value));\n }\n\n // Others (boolean and string)\n if (key.nativeType === 'boolean' || key.nativeType === 'string') {\n newValue = cachedDataOthersFormatter(key).format(value);\n }\n\n // Prefix and suffix (inputs override meta; meta uses pretext/posttext)\n const prefix = getSubInputValue(key, 'prefix', 'pretext') || '';\n const suffix = getSubInputValue(key, 'suffix', 'posttext') || '';\n const appended = `${prefix}${newValue}${suffix}`;\n\n // Max characters (inputs override meta)\n const maxCharacters = getSubInputValue(key, 'maxCharacters');\n if (maxCharacters != null) {\n if (appended.length <= maxCharacters) {\n return appended;\n }\n return appended.substring(0, maxCharacters) + '...';\n }\n\n return appended;\n },\n };\n};\n"],"names":["cache","factory","internalCache","params","key","formatter","ISO_DATE_TIME_REGEX","isValidISODate","value","getSubInputValue","inputKey","metaKey","_a","_b","getThemeFormatter","theme","cachedNumberFormatter","options","cachedDataNumberFormatter","cachedDateTimeFormatter","cachedDataDateTimeFormatter","cachedDataOthersFormatter","displayName","resolveI18nString","resolved","newValue","displayFormat","DisplayFormatTypeOptions","prefix","suffix","appended","maxCharacters"],"mappings":"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"}
1
+ {"version":3,"file":"formatter.utils-BLaKKpAa.js","sources":["../src/utils/cache.utils.ts","../src/utils/data.utils.ts","../src/theme/formatter/formatter.utils.ts"],"sourcesContent":["/**\n * Creates a formatter cache.\n * Cache used to prevent unnecessary (expensive) creation of formatter objects\n */\nexport const cache = <Params, Formatter>(factory: (params?: Params) => Formatter) => {\n const internalCache: { [key: string]: Formatter } = {};\n const get = (params?: Params) => {\n const key = JSON.stringify(params);\n let formatter = internalCache[key];\n if (formatter) {\n return formatter;\n }\n formatter = factory(params);\n internalCache[key] = formatter;\n return formatter;\n };\n return get;\n};\n","const ISO_DATE_TIME_REGEX = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}$/;\n\nexport const isValidISODate = (value: string): boolean => {\n return Boolean(value && ISO_DATE_TIME_REGEX.test(value));\n};\n","import { DimensionOrMeasure } from '@embeddable.com/core';\nimport { DateTimeFormatter, NumberFormatter, StringFormatter } from './formatter.types';\nimport { Theme } from '../theme.types';\nimport { cache } from '../../utils/cache.utils';\nimport { isValidISODate } from '../../utils/data.utils';\nimport { resolveI18nString } from '../../components/component.utils';\nimport { DisplayFormatTypeOptions } from '../../components/types/DisplayFormat.type.emb';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport const getSubInputValue = (key: DimensionOrMeasure, inputKey: string, metaKey?: string) =>\n key.inputs?.[inputKey] ?? (key.meta as any)?.[metaKey ?? inputKey];\n\nexport type GetThemeFormatter = {\n string: (key: string) => string;\n number: (value: number | bigint, options?: Intl.NumberFormatOptions) => string;\n dateTime: (value: Date, options?: Intl.DateTimeFormatOptions) => string;\n dimensionOrMeasureTitle: (key: DimensionOrMeasure) => string;\n data: (key: DimensionOrMeasure, value: any) => string;\n};\n\nexport const getThemeFormatter = (theme: Theme): GetThemeFormatter => {\n const cachedNumberFormatter = cache<Intl.NumberFormatOptions, NumberFormatter>((options) =>\n theme.formatter.numberFormatter(theme, options),\n );\n\n const cachedDataNumberFormatter = cache<DimensionOrMeasure, NumberFormatter>((key) =>\n theme.formatter.dataNumberFormatter(theme, key!),\n );\n\n const cachedDateTimeFormatter = cache<Intl.DateTimeFormatOptions, DateTimeFormatter>((options) =>\n theme.formatter.dateTimeFormatter(theme, options),\n );\n\n const cachedDataDateTimeFormatter = cache<DimensionOrMeasure, DateTimeFormatter>((key) =>\n theme.formatter.dataDateTimeFormatter(theme, key!),\n );\n\n const cachedDataOthersFormatter = cache<DimensionOrMeasure, StringFormatter>((key) =>\n theme.formatter.dataOthersFormatter(theme, key!),\n );\n\n return {\n string: (key: string) => theme.formatter.stringFormatter().format(key),\n number: (value: number | bigint, options?: Intl.NumberFormatOptions): string => {\n return cachedNumberFormatter(options).format(value);\n },\n dateTime: (value: Date, options?: Intl.DateTimeFormatOptions): string => {\n return cachedDateTimeFormatter(options).format(value);\n },\n dimensionOrMeasureTitle: (key: DimensionOrMeasure): string => {\n const displayName = getSubInputValue(key, 'displayName');\n if (displayName) {\n if (displayName.includes('|')) {\n return resolveI18nString(displayName);\n }\n return displayName;\n }\n\n const resolved = cachedDataOthersFormatter(key).format(key.name);\n return resolved === key.name ? (key.title ?? key.name) : resolved;\n },\n data: (key: DimensionOrMeasure, value: any): string => {\n let newValue = value;\n\n // Nulls (inputs override meta)\n if (value == null) {\n return getSubInputValue(key, 'displayNullAs') ?? '';\n }\n\n // JSON and Markdown (inputs override meta)\n const displayFormat = getSubInputValue(key, 'displayFormat');\n if (displayFormat === DisplayFormatTypeOptions.JSON) {\n return JSON.stringify(value, null, 2);\n }\n if (displayFormat === DisplayFormatTypeOptions.MARKDOWN) {\n return value;\n }\n // Objects\n if (typeof value === 'object') {\n return JSON.stringify(value);\n }\n\n // Number\n if (key.nativeType === 'number') {\n newValue = cachedDataNumberFormatter(key).format(value);\n }\n\n // Time\n if (key.nativeType === 'time' && isValidISODate(value)) {\n newValue = cachedDataDateTimeFormatter(key).format(new Date(value));\n }\n\n // Others (boolean and string)\n if (key.nativeType === 'boolean' || key.nativeType === 'string') {\n newValue = cachedDataOthersFormatter(key).format(value);\n }\n\n // Prefix and suffix (inputs override meta; meta uses pretext/posttext)\n const prefix = getSubInputValue(key, 'prefix', 'pretext') || '';\n const suffix = getSubInputValue(key, 'suffix', 'posttext') || '';\n const appended = `${prefix}${newValue}${suffix}`;\n\n // Max characters (inputs override meta)\n const maxCharacters = getSubInputValue(key, 'maxCharacters');\n if (maxCharacters != null) {\n if (appended.length <= maxCharacters) {\n return appended;\n }\n return appended.substring(0, maxCharacters) + '...';\n }\n\n return appended;\n },\n };\n};\n"],"names":["cache","factory","internalCache","params","key","formatter","ISO_DATE_TIME_REGEX","isValidISODate","value","getSubInputValue","inputKey","metaKey","_a","_b","getThemeFormatter","theme","cachedNumberFormatter","options","cachedDataNumberFormatter","cachedDateTimeFormatter","cachedDataDateTimeFormatter","cachedDataOthersFormatter","displayName","resolveI18nString","resolved","newValue","displayFormat","DisplayFormatTypeOptions","prefix","suffix","appended","maxCharacters"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { j as s, b as y } from "./index-CJYh9LRs.js";
2
- import { G as p } from "./GranularitySelectField-Di0ay_uj.js";
2
+ import { G as p } from "./GranularitySelectField-DBaZn-Me.js";
3
3
  const g = "_chartGranularitySelectFieldContainer_m26zn_1", G = "_marginTop_m26zn_7", o = {
4
4
  chartGranularitySelectFieldContainer: g,
5
5
  marginTop: G
@@ -48,4 +48,4 @@ export {
48
48
  S as C,
49
49
  x as g
50
50
  };
51
- //# sourceMappingURL=granularity.utils-DYOJiFaK.js.map
51
+ //# sourceMappingURL=granularity.utils-Hj10GihD.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"granularity.utils-DYOJiFaK.js","sources":["../src/components/charts/shared/ChartGranularitySelectField/ChartGranularitySelectField.tsx","../src/components/charts/utils/granularity.utils.ts"],"sourcesContent":["import { Dimension, Granularity } from '@embeddable.com/core';\nimport {\n GranularitySelectField,\n GranularitySelectFieldProps,\n} from '../../../editors/shared/GranularitySelectField/GranularitySelectField';\nimport styles from './ChartGranularitySelectField.module.css';\nimport clsx from 'clsx';\n\nexport type ChartGranularitySelectFieldProps = Pick<GranularitySelectFieldProps, 'onChange'> & {\n dimension: Dimension;\n hasMarginTop?: boolean;\n};\n\nconst dimensionGranularities: Granularity[] = ['day', 'week', 'month', 'quarter', 'year'];\n\nexport const ChartGranularitySelectField = ({\n dimension,\n hasMarginTop,\n ...props\n}: ChartGranularitySelectFieldProps) => {\n const showGranularitySelector = dimension?.inputs?.showGranularityDropdown;\n\n if (!showGranularitySelector) {\n return null;\n }\n\n const dimensionTimeRange = dimension.inputs?.dateBounds;\n const dimensionGranularity = dimension.inputs?.granularity;\n\n return (\n <div\n className={clsx(\n styles.chartGranularitySelectFieldContainer,\n hasMarginTop && styles.marginTop,\n )}\n >\n <GranularitySelectField\n {...props}\n primaryTimeRange={dimensionTimeRange}\n granularity={dimensionGranularity}\n granularities={dimensionGranularities}\n variant=\"ghost\"\n side=\"bottom\"\n align=\"end\"\n />\n </div>\n );\n};\n","import { Dimension, Granularity } from '@embeddable.com/core';\n\nexport const getDimensionWithGranularity = (\n dimension: Dimension,\n granularity?: Granularity,\n): Dimension => {\n const currentGranularity = granularity ?? dimension.inputs?.granularity;\n\n return {\n ...dimension,\n inputs: {\n ...dimension.inputs,\n granularity: currentGranularity,\n },\n };\n};\n"],"names":["dimensionGranularities","ChartGranularitySelectField","dimension","hasMarginTop","props","_a","dimensionTimeRange","_b","dimensionGranularity","_c","jsx","clsx","styles","GranularitySelectField","getDimensionWithGranularity","granularity","currentGranularity"],"mappings":";;;;;GAaMA,IAAwC,CAAC,OAAO,QAAQ,SAAS,WAAW,MAAM,GAE3EC,IAA8B,CAAC;AAAA,EAC1C,WAAAC;AAAA,EACA,cAAAC;AAAA,EACA,GAAGC;AACL,MAAwC;;AAGtC,MAAI,GAF4BC,IAAAH,KAAA,gBAAAA,EAAW,WAAX,gBAAAG,EAAmB;AAGjD,WAAO;AAGT,QAAMC,KAAqBC,IAAAL,EAAU,WAAV,gBAAAK,EAAkB,YACvCC,KAAuBC,IAAAP,EAAU,WAAV,gBAAAO,EAAkB;AAE/C,SACEC,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACTC,EAAO;AAAA,QACPT,KAAgBS,EAAO;AAAA,MAAA;AAAA,MAGzB,UAAAF,gBAAAA,EAAAA;AAAAA,QAACG;AAAA,QAAA;AAAA,UACE,GAAGT;AAAA,UACJ,kBAAkBE;AAAA,UAClB,aAAaE;AAAA,UACb,eAAeR;AAAA,UACf,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,OAAM;AAAA,QAAA;AAAA,MAAA;AAAA,IACR;AAAA,EAAA;AAGN,GC7Cac,IAA8B,CACzCZ,GACAa,MACc;;AACd,QAAMC,IAAqBD,OAAeV,IAAAH,EAAU,WAAV,gBAAAG,EAAkB;AAE5D,SAAO;AAAA,IACL,GAAGH;AAAA,IACH,QAAQ;AAAA,MACN,GAAGA,EAAU;AAAA,MACb,aAAac;AAAA,IAAA;AAAA,EACf;AAEJ;"}
1
+ {"version":3,"file":"granularity.utils-Hj10GihD.js","sources":["../src/components/charts/shared/ChartGranularitySelectField/ChartGranularitySelectField.tsx","../src/components/charts/utils/granularity.utils.ts"],"sourcesContent":["import { Dimension, Granularity } from '@embeddable.com/core';\nimport {\n GranularitySelectField,\n GranularitySelectFieldProps,\n} from '../../../editors/shared/GranularitySelectField/GranularitySelectField';\nimport styles from './ChartGranularitySelectField.module.css';\nimport clsx from 'clsx';\n\nexport type ChartGranularitySelectFieldProps = Pick<GranularitySelectFieldProps, 'onChange'> & {\n dimension: Dimension;\n hasMarginTop?: boolean;\n};\n\nconst dimensionGranularities: Granularity[] = ['day', 'week', 'month', 'quarter', 'year'];\n\nexport const ChartGranularitySelectField = ({\n dimension,\n hasMarginTop,\n ...props\n}: ChartGranularitySelectFieldProps) => {\n const showGranularitySelector = dimension?.inputs?.showGranularityDropdown;\n\n if (!showGranularitySelector) {\n return null;\n }\n\n const dimensionTimeRange = dimension.inputs?.dateBounds;\n const dimensionGranularity = dimension.inputs?.granularity;\n\n return (\n <div\n className={clsx(\n styles.chartGranularitySelectFieldContainer,\n hasMarginTop && styles.marginTop,\n )}\n >\n <GranularitySelectField\n {...props}\n primaryTimeRange={dimensionTimeRange}\n granularity={dimensionGranularity}\n granularities={dimensionGranularities}\n variant=\"ghost\"\n side=\"bottom\"\n align=\"end\"\n />\n </div>\n );\n};\n","import { Dimension, Granularity } from '@embeddable.com/core';\n\nexport const getDimensionWithGranularity = (\n dimension: Dimension,\n granularity?: Granularity,\n): Dimension => {\n const currentGranularity = granularity ?? dimension.inputs?.granularity;\n\n return {\n ...dimension,\n inputs: {\n ...dimension.inputs,\n granularity: currentGranularity,\n },\n };\n};\n"],"names":["dimensionGranularities","ChartGranularitySelectField","dimension","hasMarginTop","props","_a","dimensionTimeRange","_b","dimensionGranularity","_c","jsx","clsx","styles","GranularitySelectField","getDimensionWithGranularity","granularity","currentGranularity"],"mappings":";;;;;GAaMA,IAAwC,CAAC,OAAO,QAAQ,SAAS,WAAW,MAAM,GAE3EC,IAA8B,CAAC;AAAA,EAC1C,WAAAC;AAAA,EACA,cAAAC;AAAA,EACA,GAAGC;AACL,MAAwC;;AAGtC,MAAI,GAF4BC,IAAAH,KAAA,gBAAAA,EAAW,WAAX,gBAAAG,EAAmB;AAGjD,WAAO;AAGT,QAAMC,KAAqBC,IAAAL,EAAU,WAAV,gBAAAK,EAAkB,YACvCC,KAAuBC,IAAAP,EAAU,WAAV,gBAAAO,EAAkB;AAE/C,SACEC,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACTC,EAAO;AAAA,QACPT,KAAgBS,EAAO;AAAA,MAAA;AAAA,MAGzB,UAAAF,gBAAAA,EAAAA;AAAAA,QAACG;AAAA,QAAA;AAAA,UACE,GAAGT;AAAA,UACJ,kBAAkBE;AAAA,UAClB,aAAaE;AAAA,UACb,eAAeR;AAAA,UACf,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,OAAM;AAAA,QAAA;AAAA,MAAA;AAAA,IACR;AAAA,EAAA;AAGN,GC7Cac,IAA8B,CACzCZ,GACAa,MACc;;AACd,QAAMC,IAAqBD,OAAeV,IAAAH,EAAU,WAAV,gBAAAG,EAAkB;AAE5D,SAAO;AAAA,IACL,GAAGH;AAAA,IACH,QAAQ;AAAA,MACN,GAAGA,EAAU;AAAA,MACb,aAAac;AAAA,IAAA;AAAA,EACf;AAEJ;"}
package/dist/index.js CHANGED
@@ -1,57 +1,57 @@
1
1
  import { a as h, g as C, b, i as S } from "./styles.utils-C8CnV0SB.js";
2
2
  import { i as F, s as D } from "./color.utils-BSg_DFOh.js";
3
- import { c as y, a as R, g as k, i as L } from "./formatter.utils-DXI8s5Y5.js";
4
- import { b as G, c as E, a as M, g as A, l as B, d as v, u as w } from "./dates.utils-C3LPV893.js";
5
- import { d as I, b as j, c as H, e as _, f as N, h as z, i as K, a as V, g as q, r as W, j as U, k as X } from "./charts.utils-ZAdb7oJ-.js";
3
+ import { c as y, a as R, g as k, i as L } from "./formatter.utils-BLaKKpAa.js";
4
+ import { b as G, c as E, a as M, g as A, l as B, d as v, u as w } from "./dates.utils-D44sdrNs.js";
5
+ import { d as I, b as j, c as H, e as _, f as N, h as z, i as K, a as V, g as q, r as W, j as U, k as X } from "./charts.utils-BMX0edl3.js";
6
6
  import { i as Z, a as J, r as Q, b as ee } from "./component.utils-Dua9clQJ.js";
7
- import { C as te, G as re, d as oe, a as se, g as ie, i as ne, s as le, t as pe, b as me } from "./component.inputs.constants-C-vfrygQ.js";
8
- import { g as ce, a as ue } from "./timeRange.utils-D1hjtzlU.js";
7
+ import { C as te, G as re, d as oe, a as se, b as ie, i as ne, s as le, t as pe, c as me } from "./component.inputs.constants-C7tJAhsQ.js";
8
+ import { g as ce, a as ue } from "./timeRange.utils-CcP33PfM.js";
9
9
  import { p as Pe } from "./preview.data.constants--FLtEcg5.js";
10
- import { i as he, b as Ce } from "./definition-C4aPFAKq.js";
11
- import { i as Se, b as xe } from "./definition-DETLn9Wn.js";
12
- import { i as De, b as Te } from "./definition-Bxj6nf61.js";
13
- import { i as Re, b as ke } from "./definition-5T5HRGnj.js";
14
- import { i as Oe, b as Ge } from "./definition-BtJ2IsdK.js";
15
- import { i as Me, b as Ae } from "./definition-j7sh3jCh.js";
16
- import { g as ve, a as we, b as $e } from "./bars.utils-B8_oDn4j.js";
17
- import { i as je, k as He } from "./definition-DsDQF6Da.js";
18
- import { i as Ne, k as ze } from "./definition-BKX3li26.js";
10
+ import { i as he, b as Ce } from "./definition-xkAbcSB6.js";
11
+ import { i as Se, b as xe } from "./definition-uj4b0NtW.js";
12
+ import { i as De, b as Te } from "./definition-NQQg5mwf.js";
13
+ import { i as Re, b as ke } from "./definition-B1B71Q9P.js";
14
+ import { i as Oe, b as Ge } from "./definition-poLEt7kb.js";
15
+ import { i as Me, b as Ae } from "./definition-Bx_a3I-X.js";
16
+ import { g as ve, a as we, b as $e } from "./bars.utils-CG7i6UTJ.js";
17
+ import { i as je, k as He } from "./definition-CbkzLjXK.js";
18
+ import { i as Ne, k as ze } from "./definition-Bg3R-QHm.js";
19
19
  import { g as Ve } from "./kpis.utils-DsZ2GzuB.js";
20
- import { i as We, g as Ue, a as Xe, l as Ye } from "./definition-xGVDcBlW.js";
21
- import { i as Je, g as Qe, a as ea, l as aa } from "./definition-Di3x_6Rh.js";
22
- import { i as ra, g as oa, a as sa, l as ia } from "./definition-mtzDmBoh.js";
20
+ import { i as We, g as Ue, a as Xe, l as Ye } from "./definition-BejgCcXe.js";
21
+ import { i as Je, g as Qe, a as ea, l as aa } from "./definition-BxDRujfc.js";
22
+ import { i as ra, g as oa, a as sa, l as ia } from "./definition-nSxl9weT.js";
23
23
  import { g as la } from "./lines.utils-CEGfmIHB.js";
24
- import { i as ma, d as da } from "./definition-DM13nXMm.js";
25
- import { i as ua, p as ga } from "./definition-DSAR_Bsa.js";
26
- import { i as fa, d as ha } from "./definition-CWVSN9UB.js";
27
- import { g as ba, a as Sa } from "./pies.utils-4osQ9x_J.js";
28
- import { i as Fa, h as Da } from "./definition-DpFvucVl.js";
29
- import { i as ya, g as Ra, a as ka, b as La, c as Oa, p as Ga } from "./definition-5a__Y0lx.js";
30
- import { i as Ma, d as Aa, t as Ba } from "./definition-FEz36Zkx.js";
31
- import { T as wa, i as $a, d as Ia, t as ja } from "./definition-wDuSjm3O.js";
32
- import { b as _a, c as Na, g as za, a as Ka } from "./tables.utils-BpqebRcu.js";
24
+ import { i as ma, d as da } from "./definition-DFEQMSrJ.js";
25
+ import { i as ua, p as ga } from "./definition-C_wdRHYX.js";
26
+ import { i as fa, d as ha } from "./definition-MdprJNc9.js";
27
+ import { g as ba, a as Sa } from "./pies.utils-DvbvSz5H.js";
28
+ import { i as Fa, h as Da } from "./definition-OA_X18FK.js";
29
+ import { i as ya, g as Ra, a as ka, b as La, c as Oa, p as Ga } from "./definition-B1t6-ToS.js";
30
+ import { i as Ma, d as Aa, t as Ba } from "./definition-Cx1UPIho.js";
31
+ import { T as wa, i as $a, d as Ia, t as ja } from "./definition-Cgq79V22.js";
32
+ import { b as _a, c as Na, g as za, a as Ka } from "./tables.utils-BF3qUwBS.js";
33
33
  import { g as qa, u as Wa } from "./tables.hooks-fVC_4V5K.js";
34
34
  import { C as Xa } from "./ChartCard-Cqhxv7xl.js";
35
- import { C as Za, g as Ja } from "./granularity.utils-DYOJiFaK.js";
35
+ import { C as Za, g as Ja } from "./granularity.utils-Hj10GihD.js";
36
36
  import { i as et, e as at } from "./definition-B4ALO0PD.js";
37
- import { i as rt, h as ot } from "./definition-CV2xoi69.js";
38
- import { i as it, m as nt } from "./definition-C8CAdqhV.js";
39
- import { u as pt } from "./charts.fillGaps.hooks-DDOGO5JR.js";
40
- import { i as dt, c as ct, g as ut, a as gt } from "./definition-Bhvd22lu.js";
41
- import { i as ft, d as ht, g as Ct } from "./definition-DxkipQYz.js";
42
- import { i as St, d as xt } from "./definition-CBevT5lk.js";
43
- import { i as Dt, m as Tt } from "./definition-Cl_4hkGI.js";
44
- import { i as Rt, s as kt } from "./definition-DRFMnEQh.js";
45
- import { i as Ot, d as Gt } from "./definition-Bdcy082b.js";
46
- import { i as Mt, m as At } from "./definition-B9E-HZdm.js";
47
- import { i as vt, d as wt } from "./definition-CzAzy1Hk.js";
48
- import { i as It, m as jt } from "./definition-D1wwcuOy.js";
49
- import { i as _t, g as Nt } from "./definition-Cxji761B.js";
50
- import { i as Kt, t as Vt } from "./definition-ChFv8Vq8.js";
37
+ import { i as rt, h as ot } from "./definition-DFoesKHP.js";
38
+ import { i as it, m as nt } from "./definition-oe6halnQ.js";
39
+ import { u as pt } from "./charts.fillGaps.hooks-B6T9882L.js";
40
+ import { i as dt, c as ct, g as ut, a as gt } from "./definition-BomoMNHu.js";
41
+ import { i as ft, d as ht, g as Ct } from "./definition-CLDcybuA.js";
42
+ import { i as St, d as xt } from "./definition-DqtPYFiz.js";
43
+ import { i as Dt, m as Tt } from "./definition-D4-0-tXB.js";
44
+ import { i as Rt, s as kt } from "./definition-BCbRycZt.js";
45
+ import { i as Ot, d as Gt } from "./definition-ngOUqoDo.js";
46
+ import { i as Mt, m as At } from "./definition-BIk4lZdI.js";
47
+ import { i as vt, d as wt } from "./definition-BqIza8Nx.js";
48
+ import { i as It, m as jt } from "./definition-BKcHxtMp.js";
49
+ import { i as _t, g as Nt } from "./definition-v66e9pZV.js";
50
+ import { i as Kt, t as Vt } from "./definition-B6Jm5skX.js";
51
51
  import { E as Wt } from "./EditorCard-BABTQLwW.js";
52
- import { D as Xt } from "./DimensionAndMeasureSingleSelectField-ClbFwtXO.js";
53
- import { G as Zt, g as Jt, a as Qt, b as er } from "./GranularitySelectField-Di0ay_uj.js";
54
- import { g as tr } from "./dimensionsAndMeasures.utils-x51eIYbW.js";
52
+ import { D as Xt } from "./DimensionAndMeasureSingleSelectField-BsBSTKKc.js";
53
+ import { G as Zt, g as Jt, a as Qt, b as er } from "./GranularitySelectField-DBaZn-Me.js";
54
+ import { g as tr } from "./dimensionsAndMeasures.utils-DtUfSnpA.js";
55
55
  import { i as or } from "./index-Bo7tyDqZ.js";
56
56
  import { i as ir } from "./index-DMsxz8Oj.js";
57
57
  const n = "remarkable-theme-fonts", i = "data-remarkable-preconnect", l = "data-remarkable-google-fonts", m = (e) => {
@@ -1,5 +1,5 @@
1
- import { r as u, g as b, a as d } from "./charts.utils-ZAdb7oJ-.js";
2
- import { g as c } from "./formatter.utils-DXI8s5Y5.js";
1
+ import { r as u, g as b, a as d } from "./charts.utils-BMX0edl3.js";
2
+ import { g as c } from "./formatter.utils-BLaKKpAa.js";
3
3
  import { g as l } from "./styles.utils-C8CnV0SB.js";
4
4
  import { t as f } from "./index-CJYh9LRs.js";
5
5
  import { i as h } from "./component.utils-Dua9clQJ.js";
@@ -73,4 +73,4 @@ export {
73
73
  w as a,
74
74
  O as g
75
75
  };
76
- //# sourceMappingURL=pies.utils-4osQ9x_J.js.map
76
+ //# sourceMappingURL=pies.utils-DvbvSz5H.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pies.utils-4osQ9x_J.js","sources":["../src/components/charts/pies/pies.utils.ts"],"sourcesContent":["import { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { ChartData, ChartOptions } from 'chart.js';\nimport { getDatalabelPercentage, groupTailAsOther } from '../charts.utils';\nimport { Theme } from '../../../theme/theme.types';\nimport { remarkableTheme } from '../../../theme/theme.constants';\nimport { getThemeFormatter } from '../../../theme/formatter/formatter.utils';\nimport { getDimensionMeasureColor } from '../../../theme/styles/styles.utils';\nimport { getChartColors } from '@embeddable.com/remarkable-ui';\nimport { i18n } from '../../../theme/i18n/i18n';\n\nexport const getPieChartProData = (\n props: {\n data: DataResponse['data'];\n dimension: Dimension;\n measure: Measure;\n maxLegendItems?: number;\n },\n theme: Theme = remarkableTheme,\n): ChartData<'pie'> => {\n const themeFormatter = getThemeFormatter(theme);\n\n if (!props.data)\n return {\n labels: [],\n datasets: [{ data: [] }],\n };\n\n const groupedData = groupTailAsOther(\n props.data,\n props.dimension,\n [props.measure],\n props.maxLegendItems,\n );\n\n const chartColors = getChartColors();\n const backgroundColor = groupedData.map((item, index) =>\n getDimensionMeasureColor({\n dimensionOrMeasure: props.dimension,\n theme,\n color: 'background',\n value: `${props.dimension.name}.${item[props.dimension.name]}`,\n chartColors,\n index,\n }),\n );\n\n const borderColor = groupedData.map((item, index) =>\n getDimensionMeasureColor({\n dimensionOrMeasure: props.dimension,\n theme,\n color: 'border',\n value: `${props.dimension.name}.${item[props.dimension.name]}`,\n chartColors,\n index,\n }),\n );\n\n return {\n labels: groupedData.map((item) => {\n const value = item[props.dimension.name];\n const formattedValue = themeFormatter.data(props.dimension, value);\n\n // If formatter did not work, try i18n translation\n if (value === formattedValue) {\n return i18n.t(value);\n }\n return formattedValue;\n }),\n datasets: [\n {\n data: groupedData.map((item) => item[props.measure.name]),\n backgroundColor,\n borderColor,\n },\n ],\n };\n};\n\nexport const getPieChartProOptions = (\n measure: Measure,\n theme: Theme = remarkableTheme,\n): Partial<ChartOptions<'pie'>> => {\n const themeFormatter = getThemeFormatter(theme);\n\n return {\n plugins: {\n legend: { position: theme.charts.legendPosition ?? 'bottom' },\n datalabels: {\n formatter: (value: string | number, context) => {\n if (measure.inputs?.showValueAsPercentage) {\n return getDatalabelPercentage(Number(value), context.dataset.data);\n }\n return themeFormatter.data(measure, value);\n },\n },\n tooltip: {\n callbacks: {\n label(context) {\n const raw = context.raw as number;\n return `${themeFormatter.data(measure, raw)} (${getDatalabelPercentage(raw, context.dataset.data)})`;\n },\n },\n },\n },\n };\n};\n"],"names":["getPieChartProData","props","theme","remarkableTheme","themeFormatter","getThemeFormatter","groupedData","groupTailAsOther","chartColors","getChartColors","backgroundColor","item","index","getDimensionMeasureColor","borderColor","value","formattedValue","i18n","getPieChartProOptions","measure","context","_a","getDatalabelPercentage","raw"],"mappings":";;;;;AAUO,MAAMA,IAAqB,CAChCC,GAMAC,IAAeC,MACM;AACrB,QAAMC,IAAiBC,EAAkBH,CAAK;AAE9C,MAAI,CAACD,EAAM;AACT,WAAO;AAAA,MACL,QAAQ,CAAA;AAAA,MACR,UAAU,CAAC,EAAE,MAAM,IAAI;AAAA,IAAA;AAG3B,QAAMK,IAAcC;AAAA,IAClBN,EAAM;AAAA,IACNA,EAAM;AAAA,IACN,CAACA,EAAM,OAAO;AAAA,IACdA,EAAM;AAAA,EAAA,GAGFO,IAAcC,EAAA,GACdC,IAAkBJ,EAAY;AAAA,IAAI,CAACK,GAAMC,MAC7CC,EAAyB;AAAA,MACvB,oBAAoBZ,EAAM;AAAA,MAC1B,OAAAC;AAAA,MACA,OAAO;AAAA,MACP,OAAO,GAAGD,EAAM,UAAU,IAAI,IAAIU,EAAKV,EAAM,UAAU,IAAI,CAAC;AAAA,MAC5D,aAAAO;AAAA,MACA,OAAAI;AAAA,IAAA,CACD;AAAA,EAAA,GAGGE,IAAcR,EAAY;AAAA,IAAI,CAACK,GAAMC,MACzCC,EAAyB;AAAA,MACvB,oBAAoBZ,EAAM;AAAA,MAC1B,OAAAC;AAAA,MACA,OAAO;AAAA,MACP,OAAO,GAAGD,EAAM,UAAU,IAAI,IAAIU,EAAKV,EAAM,UAAU,IAAI,CAAC;AAAA,MAC5D,aAAAO;AAAA,MACA,OAAAI;AAAA,IAAA,CACD;AAAA,EAAA;AAGH,SAAO;AAAA,IACL,QAAQN,EAAY,IAAI,CAACK,MAAS;AAChC,YAAMI,IAAQJ,EAAKV,EAAM,UAAU,IAAI,GACjCe,IAAiBZ,EAAe,KAAKH,EAAM,WAAWc,CAAK;AAGjE,aAAIA,MAAUC,IACLC,EAAK,EAAEF,CAAK,IAEdC;AAAA,IACT,CAAC;AAAA,IACD,UAAU;AAAA,MACR;AAAA,QACE,MAAMV,EAAY,IAAI,CAACK,MAASA,EAAKV,EAAM,QAAQ,IAAI,CAAC;AAAA,QACxD,iBAAAS;AAAA,QACA,aAAAI;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ,GAEaI,IAAwB,CACnCC,GACAjB,IAAeC,MACkB;AACjC,QAAMC,IAAiBC,EAAkBH,CAAK;AAE9C,SAAO;AAAA,IACL,SAAS;AAAA,MACP,QAAQ,EAAE,UAAUA,EAAM,OAAO,kBAAkB,SAAA;AAAA,MACnD,YAAY;AAAA,QACV,WAAW,CAACa,GAAwBK,MAAY;;AAC9C,kBAAIC,IAAAF,EAAQ,WAAR,QAAAE,EAAgB,wBACXC,EAAuB,OAAOP,CAAK,GAAGK,EAAQ,QAAQ,IAAI,IAE5DhB,EAAe,KAAKe,GAASJ,CAAK;AAAA,QAC3C;AAAA,MAAA;AAAA,MAEF,SAAS;AAAA,QACP,WAAW;AAAA,UACT,MAAMK,GAAS;AACb,kBAAMG,IAAMH,EAAQ;AACpB,mBAAO,GAAGhB,EAAe,KAAKe,GAASI,CAAG,CAAC,KAAKD,EAAuBC,GAAKH,EAAQ,QAAQ,IAAI,CAAC;AAAA,UACnG;AAAA,QAAA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEJ;"}
1
+ {"version":3,"file":"pies.utils-DvbvSz5H.js","sources":["../src/components/charts/pies/pies.utils.ts"],"sourcesContent":["import { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { ChartData, ChartOptions } from 'chart.js';\nimport { getDatalabelPercentage, groupTailAsOther } from '../charts.utils';\nimport { Theme } from '../../../theme/theme.types';\nimport { remarkableTheme } from '../../../theme/theme.constants';\nimport { getThemeFormatter } from '../../../theme/formatter/formatter.utils';\nimport { getDimensionMeasureColor } from '../../../theme/styles/styles.utils';\nimport { getChartColors } from '@embeddable.com/remarkable-ui';\nimport { i18n } from '../../../theme/i18n/i18n';\n\nexport const getPieChartProData = (\n props: {\n data: DataResponse['data'];\n dimension: Dimension;\n measure: Measure;\n maxLegendItems?: number;\n },\n theme: Theme = remarkableTheme,\n): ChartData<'pie'> => {\n const themeFormatter = getThemeFormatter(theme);\n\n if (!props.data)\n return {\n labels: [],\n datasets: [{ data: [] }],\n };\n\n const groupedData = groupTailAsOther(\n props.data,\n props.dimension,\n [props.measure],\n props.maxLegendItems,\n );\n\n const chartColors = getChartColors();\n const backgroundColor = groupedData.map((item, index) =>\n getDimensionMeasureColor({\n dimensionOrMeasure: props.dimension,\n theme,\n color: 'background',\n value: `${props.dimension.name}.${item[props.dimension.name]}`,\n chartColors,\n index,\n }),\n );\n\n const borderColor = groupedData.map((item, index) =>\n getDimensionMeasureColor({\n dimensionOrMeasure: props.dimension,\n theme,\n color: 'border',\n value: `${props.dimension.name}.${item[props.dimension.name]}`,\n chartColors,\n index,\n }),\n );\n\n return {\n labels: groupedData.map((item) => {\n const value = item[props.dimension.name];\n const formattedValue = themeFormatter.data(props.dimension, value);\n\n // If formatter did not work, try i18n translation\n if (value === formattedValue) {\n return i18n.t(value);\n }\n return formattedValue;\n }),\n datasets: [\n {\n data: groupedData.map((item) => item[props.measure.name]),\n backgroundColor,\n borderColor,\n },\n ],\n };\n};\n\nexport const getPieChartProOptions = (\n measure: Measure,\n theme: Theme = remarkableTheme,\n): Partial<ChartOptions<'pie'>> => {\n const themeFormatter = getThemeFormatter(theme);\n\n return {\n plugins: {\n legend: { position: theme.charts.legendPosition ?? 'bottom' },\n datalabels: {\n formatter: (value: string | number, context) => {\n if (measure.inputs?.showValueAsPercentage) {\n return getDatalabelPercentage(Number(value), context.dataset.data);\n }\n return themeFormatter.data(measure, value);\n },\n },\n tooltip: {\n callbacks: {\n label(context) {\n const raw = context.raw as number;\n return `${themeFormatter.data(measure, raw)} (${getDatalabelPercentage(raw, context.dataset.data)})`;\n },\n },\n },\n },\n };\n};\n"],"names":["getPieChartProData","props","theme","remarkableTheme","themeFormatter","getThemeFormatter","groupedData","groupTailAsOther","chartColors","getChartColors","backgroundColor","item","index","getDimensionMeasureColor","borderColor","value","formattedValue","i18n","getPieChartProOptions","measure","context","_a","getDatalabelPercentage","raw"],"mappings":";;;;;AAUO,MAAMA,IAAqB,CAChCC,GAMAC,IAAeC,MACM;AACrB,QAAMC,IAAiBC,EAAkBH,CAAK;AAE9C,MAAI,CAACD,EAAM;AACT,WAAO;AAAA,MACL,QAAQ,CAAA;AAAA,MACR,UAAU,CAAC,EAAE,MAAM,IAAI;AAAA,IAAA;AAG3B,QAAMK,IAAcC;AAAA,IAClBN,EAAM;AAAA,IACNA,EAAM;AAAA,IACN,CAACA,EAAM,OAAO;AAAA,IACdA,EAAM;AAAA,EAAA,GAGFO,IAAcC,EAAA,GACdC,IAAkBJ,EAAY;AAAA,IAAI,CAACK,GAAMC,MAC7CC,EAAyB;AAAA,MACvB,oBAAoBZ,EAAM;AAAA,MAC1B,OAAAC;AAAA,MACA,OAAO;AAAA,MACP,OAAO,GAAGD,EAAM,UAAU,IAAI,IAAIU,EAAKV,EAAM,UAAU,IAAI,CAAC;AAAA,MAC5D,aAAAO;AAAA,MACA,OAAAI;AAAA,IAAA,CACD;AAAA,EAAA,GAGGE,IAAcR,EAAY;AAAA,IAAI,CAACK,GAAMC,MACzCC,EAAyB;AAAA,MACvB,oBAAoBZ,EAAM;AAAA,MAC1B,OAAAC;AAAA,MACA,OAAO;AAAA,MACP,OAAO,GAAGD,EAAM,UAAU,IAAI,IAAIU,EAAKV,EAAM,UAAU,IAAI,CAAC;AAAA,MAC5D,aAAAO;AAAA,MACA,OAAAI;AAAA,IAAA,CACD;AAAA,EAAA;AAGH,SAAO;AAAA,IACL,QAAQN,EAAY,IAAI,CAACK,MAAS;AAChC,YAAMI,IAAQJ,EAAKV,EAAM,UAAU,IAAI,GACjCe,IAAiBZ,EAAe,KAAKH,EAAM,WAAWc,CAAK;AAGjE,aAAIA,MAAUC,IACLC,EAAK,EAAEF,CAAK,IAEdC;AAAA,IACT,CAAC;AAAA,IACD,UAAU;AAAA,MACR;AAAA,QACE,MAAMV,EAAY,IAAI,CAACK,MAASA,EAAKV,EAAM,QAAQ,IAAI,CAAC;AAAA,QACxD,iBAAAS;AAAA,QACA,aAAAI;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ,GAEaI,IAAwB,CACnCC,GACAjB,IAAeC,MACkB;AACjC,QAAMC,IAAiBC,EAAkBH,CAAK;AAE9C,SAAO;AAAA,IACL,SAAS;AAAA,MACP,QAAQ,EAAE,UAAUA,EAAM,OAAO,kBAAkB,SAAA;AAAA,MACnD,YAAY;AAAA,QACV,WAAW,CAACa,GAAwBK,MAAY;;AAC9C,kBAAIC,IAAAF,EAAQ,WAAR,QAAAE,EAAgB,wBACXC,EAAuB,OAAOP,CAAK,GAAGK,EAAQ,QAAQ,IAAI,IAE5DhB,EAAe,KAAKe,GAASJ,CAAK;AAAA,QAC3C;AAAA,MAAA;AAAA,MAEF,SAAS;AAAA,QACP,WAAW;AAAA,UACT,MAAMK,GAAS;AACb,kBAAMG,IAAMH,EAAQ;AACpB,mBAAO,GAAGhB,EAAe,KAAKe,GAASI,CAAG,CAAC,KAAKD,EAAuBC,GAAKH,EAAQ,QAAQ,IAAI,CAAC;AAAA,UACnG;AAAA,QAAA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEJ;"}
@@ -1,6 +1,6 @@
1
1
  import { j as o, W as p, X as f, Y as h, y as a } from "./index-CJYh9LRs.js";
2
- import { g as w } from "./formatter.utils-DXI8s5Y5.js";
3
- import { D as c } from "./component.inputs.constants-C-vfrygQ.js";
2
+ import { g as w } from "./formatter.utils-BLaKKpAa.js";
3
+ import { D as c } from "./component.inputs.constants-C7tJAhsQ.js";
4
4
  const T = (e) => {
5
5
  var n;
6
6
  const t = (n = e.inputs) == null ? void 0 : n.align;
@@ -83,4 +83,4 @@ export {
83
83
  A as c,
84
84
  F as g
85
85
  };
86
- //# sourceMappingURL=tables.utils-BpqebRcu.js.map
86
+ //# sourceMappingURL=tables.utils-BF3qUwBS.js.map