@embeddable.com/remarkable-pro 0.3.0 → 0.3.1

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 (88) hide show
  1. package/dist/ComparisonPeriodSelectFieldPro.js +1 -1
  2. package/dist/DonutChartPro.js +1 -1
  3. package/dist/DonutLabelChartPro.js +1 -1
  4. package/dist/FilterBuilderPro.js +6 -599
  5. package/dist/FilterBuilderPro.js.map +1 -1
  6. package/dist/KpiChartNumberComparisonPro.js +1 -1
  7. package/dist/KpiChartNumberPro.js +1 -1
  8. package/dist/LineChartComparisonDefaultPro.js +1 -1
  9. package/dist/LineChartComparisonWithKpiTabsPro.js +1 -1
  10. package/dist/LineChartWithKpiTabsPro.js +1 -1
  11. package/dist/PieChartPro.js +1 -1
  12. package/dist/components/charts/kpis/KpiChartNumberComparisonPro/KpiChartNumberComparisonPro.emb.d.ts +3 -1
  13. package/dist/components/charts/kpis/KpiChartNumberComparisonPro/KpiChartNumberComparisonPro.emb.d.ts.map +1 -1
  14. package/dist/components/charts/kpis/KpiChartNumberComparisonPro/definition.d.ts +6 -2
  15. package/dist/components/charts/kpis/KpiChartNumberComparisonPro/definition.d.ts.map +1 -1
  16. package/dist/components/charts/kpis/KpiChartNumberPro/KpiChartNumberPro.emb.d.ts +2 -0
  17. package/dist/components/charts/kpis/KpiChartNumberPro/KpiChartNumberPro.emb.d.ts.map +1 -1
  18. package/dist/components/charts/kpis/KpiChartNumberPro/definition.d.ts +4 -0
  19. package/dist/components/charts/kpis/KpiChartNumberPro/definition.d.ts.map +1 -1
  20. package/dist/components/charts/lines/LineChartComparisonDefaultPro/LineChartComparisonDefaultPro.emb.d.ts +1 -1
  21. package/dist/components/charts/lines/LineChartComparisonDefaultPro/definition.d.ts +2 -2
  22. package/dist/components/charts/lines/LineChartComparisonDefaultPro/definition.d.ts.map +1 -1
  23. package/dist/components/charts/lines/LineChartComparisonWithKpiTabsPro/LineChartComparisonWithKpiTabsPro.emb.d.ts +3 -1
  24. package/dist/components/charts/lines/LineChartComparisonWithKpiTabsPro/LineChartComparisonWithKpiTabsPro.emb.d.ts.map +1 -1
  25. package/dist/components/charts/lines/LineChartComparisonWithKpiTabsPro/definition.d.ts +10 -6
  26. package/dist/components/charts/lines/LineChartComparisonWithKpiTabsPro/definition.d.ts.map +1 -1
  27. package/dist/components/charts/lines/LineChartWithKpiTabsPro/LineChartWithKpiTabsPro.emb.d.ts +2 -0
  28. package/dist/components/charts/lines/LineChartWithKpiTabsPro/LineChartWithKpiTabsPro.emb.d.ts.map +1 -1
  29. package/dist/components/charts/lines/LineChartWithKpiTabsPro/definition.d.ts +4 -0
  30. package/dist/components/charts/lines/LineChartWithKpiTabsPro/definition.d.ts.map +1 -1
  31. package/dist/components/charts/pies/DonutChartPro/DonutChartPro.emb.d.ts +2 -0
  32. package/dist/components/charts/pies/DonutChartPro/DonutChartPro.emb.d.ts.map +1 -1
  33. package/dist/components/charts/pies/DonutChartPro/definition.d.ts +4 -0
  34. package/dist/components/charts/pies/DonutChartPro/definition.d.ts.map +1 -1
  35. package/dist/components/charts/pies/DonutLabelChartPro/DonutLabelChartPro.emb.d.ts +2 -0
  36. package/dist/components/charts/pies/DonutLabelChartPro/DonutLabelChartPro.emb.d.ts.map +1 -1
  37. package/dist/components/charts/pies/DonutLabelChartPro/definition.d.ts +4 -0
  38. package/dist/components/charts/pies/DonutLabelChartPro/definition.d.ts.map +1 -1
  39. package/dist/components/charts/pies/PieChartPro/PieChartPro.emb.d.ts +2 -0
  40. package/dist/components/charts/pies/PieChartPro/PieChartPro.emb.d.ts.map +1 -1
  41. package/dist/components/charts/pies/PieChartPro/definition.d.ts +4 -0
  42. package/dist/components/charts/pies/PieChartPro/definition.d.ts.map +1 -1
  43. package/dist/components/editors/ComparisonPeriodSelectFieldPro/ComparisonPeriodSelectFieldPro.emb.d.ts +1 -1
  44. package/dist/components/editors/ComparisonPeriodSelectFieldPro/definition.d.ts +3 -3
  45. package/dist/{definition-BPveF-o0.js → definition-9Sm_nFEr.js} +27 -25
  46. package/dist/definition-9Sm_nFEr.js.map +1 -0
  47. package/dist/{definition-BR7yIGzM.js → definition-BdoMwDGX.js} +32 -30
  48. package/dist/definition-BdoMwDGX.js.map +1 -0
  49. package/dist/{definition-BVvy48Df.js → definition-BiIMsrRD.js} +31 -29
  50. package/dist/definition-BiIMsrRD.js.map +1 -0
  51. package/dist/{definition-DvjcMLKk.js → definition-CaY0LXUV.js} +45 -45
  52. package/dist/definition-CaY0LXUV.js.map +1 -0
  53. package/dist/{definition-C-9Q3Ivg.js → definition-CavPpbuT.js} +3 -1
  54. package/dist/definition-CavPpbuT.js.map +1 -0
  55. package/dist/{definition-BZ7Wtvg5.js → definition-CyVZRIeo.js} +14 -14
  56. package/dist/{definition-BZ7Wtvg5.js.map → definition-CyVZRIeo.js.map} +1 -1
  57. package/dist/{definition-CJuA3KVA.js → definition-FRpWLnQJ.js} +20 -18
  58. package/dist/definition-FRpWLnQJ.js.map +1 -0
  59. package/dist/{definition-Vo_CL9pX.js → definition-RwKqVDfv.js} +31 -29
  60. package/dist/definition-RwKqVDfv.js.map +1 -0
  61. package/dist/definition-es5n86g4.js +604 -0
  62. package/dist/definition-es5n86g4.js.map +1 -0
  63. package/dist/{definition-DQdIv_3r.js → definition-xgUWvTDV.js} +25 -23
  64. package/dist/definition-xgUWvTDV.js.map +1 -0
  65. package/dist/embeddable-components.json +54 -54
  66. package/dist/index.d.ts +3 -0
  67. package/dist/index.d.ts.map +1 -1
  68. package/dist/index.js +50 -47
  69. package/dist/index.js.map +1 -1
  70. package/dist/meta/ComparisonPeriodSelectFieldPro.meta.json +1 -1
  71. package/dist/meta/DonutChartPro.meta.json +2 -0
  72. package/dist/meta/DonutLabelChartPro.meta.json +2 -0
  73. package/dist/meta/KpiChartNumberComparisonPro.meta.json +3 -1
  74. package/dist/meta/KpiChartNumberPro.meta.json +2 -0
  75. package/dist/meta/LineChartComparisonDefaultPro.meta.json +1 -1
  76. package/dist/meta/LineChartComparisonWithKpiTabsPro.meta.json +4 -2
  77. package/dist/meta/LineChartWithKpiTabsPro.meta.json +3 -1
  78. package/dist/meta/PieChartPro.meta.json +2 -0
  79. package/dist/meta/index.json +1 -1
  80. package/package.json +1 -1
  81. package/dist/definition-BPveF-o0.js.map +0 -1
  82. package/dist/definition-BR7yIGzM.js.map +0 -1
  83. package/dist/definition-BVvy48Df.js.map +0 -1
  84. package/dist/definition-C-9Q3Ivg.js.map +0 -1
  85. package/dist/definition-CJuA3KVA.js.map +0 -1
  86. package/dist/definition-DQdIv_3r.js.map +0 -1
  87. package/dist/definition-DvjcMLKk.js.map +0 -1
  88. package/dist/definition-Vo_CL9pX.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,33 +1,33 @@
1
- import { g as C, a as f, b, i as x } from "./styles.utils-BfpH_m_W.js";
1
+ import { g as f, a as C, b, i as x } from "./styles.utils-BfpH_m_W.js";
2
2
  import { i as D, s as F } from "./color.utils-BSg_DFOh.js";
3
3
  import { c as y, g as k, a as L, b as R, i as G } from "./formatter.utils-Dm_mQlX1.js";
4
- import { g as E, a as M, b as B, c as A, l as H, d as v, u as w } from "./dates.utils-BS-h_mUI.js";
4
+ import { g as B, a as E, b as M, c as A, l as H, d as v, u as w } from "./dates.utils-BS-h_mUI.js";
5
5
  import { d as I, a as j, b as K, c as N, e as _, f as z, g as W, r as V, h as q, i as U } from "./theme.constants-DUEhFpuM.js";
6
6
  import { a as Y, i as Z, r as J, b as Q } from "./component.utils-oQMZT7TK.js";
7
7
  import { C as ae, G as re, d as te, a as oe, b as se, i as ie, s as ne, t as le, c as pe } from "./component.inputs.constants-BFlnzCwS.js";
8
8
  import { g as de, a as ce } from "./timeRange.utils-kK6r26ZO.js";
9
9
  import { p as ge } from "./preview.data.constants-HvHDcvh2.js";
10
- import { i as he, b as Ce } from "./definition-COv0u2Kk.js";
10
+ import { i as he, b as fe } from "./definition-COv0u2Kk.js";
11
11
  import { i as be, b as xe } from "./definition-Bi8lf1H-.js";
12
12
  import { i as De, b as Fe } from "./definition-CwQymrHa.js";
13
13
  import { i as ye, b as ke } from "./definition-hXPLrfc9.js";
14
14
  import { i as Re, b as Ge } from "./definition-Bh-Va9Aa.js";
15
- import { i as Ee, b as Me } from "./definition-zEiltTUR.js";
15
+ import { i as Be, b as Ee } from "./definition-zEiltTUR.js";
16
16
  import { g as Ae, a as He, b as ve, c as we } from "./bars.utils-D8yNEyOY.js";
17
- import { i as Ie, k as je } from "./definition-C-9Q3Ivg.js";
18
- import { i as Ne, k as _e } from "./definition-BVvy48Df.js";
17
+ import { i as Ie, k as je } from "./definition-CavPpbuT.js";
18
+ import { i as Ne, k as _e } from "./definition-BiIMsrRD.js";
19
19
  import { g as We } from "./kpis.utils-DsZ2GzuB.js";
20
20
  import { i as qe, g as Ue, a as Xe, l as Ye } from "./definition-Fqu3hJFW.js";
21
21
  import { i as Je, g as Qe, a as ea, l as aa } from "./definition-3x2Ji4jP.js";
22
- import { i as ta, c as oa, g as sa, a as ia, l as na } from "./definition-DvjcMLKk.js";
23
- import { i as pa, l as ma } from "./definition-BR7yIGzM.js";
24
- import { i as ca, l as ua } from "./definition-DQdIv_3r.js";
25
- import { i as Pa, b as ha, c as Ca, g as fa, a as ba } from "./definition-guumiEeC.js";
22
+ import { i as ta, c as oa, g as sa, a as ia, l as na } from "./definition-CaY0LXUV.js";
23
+ import { i as pa, l as ma } from "./definition-BdoMwDGX.js";
24
+ import { i as ca, l as ua } from "./definition-xgUWvTDV.js";
25
+ import { i as Pa, b as ha, c as fa, g as Ca, a as ba } from "./definition-guumiEeC.js";
26
26
  import { i as Sa, s as Da } from "./definition-JVacQ97-.js";
27
27
  import { i as Ta, b as ya } from "./definition-Cg6fSfVK.js";
28
- import { i as La, d as Ra } from "./definition-BPveF-o0.js";
29
- import { i as Oa, p as Ea } from "./definition-Vo_CL9pX.js";
30
- import { i as Ba, d as Aa } from "./definition-CJuA3KVA.js";
28
+ import { i as La, d as Ra } from "./definition-9Sm_nFEr.js";
29
+ import { i as Oa, p as Ba } from "./definition-RwKqVDfv.js";
30
+ import { i as Ma, d as Aa } from "./definition-FRpWLnQJ.js";
31
31
  import { c as va, g as wa, a as $a } from "./pies.utils-C50IfEz6.js";
32
32
  import { i as ja, h as Ka } from "./definition-BSbM8rbv.js";
33
33
  import { i as _a, g as za, a as Wa, b as Va, c as qa, p as Ua } from "./definition-D7OtKl-K.js";
@@ -37,12 +37,12 @@ import { g as sr, a as ir, b as nr, c as lr } from "./tables.utils-DdGuZcE0.js";
37
37
  import { g as mr, u as dr } from "./tables.hooks-fVC_4V5K.js";
38
38
  import { C as ur } from "./ChartCard-CZ0PnrNg.js";
39
39
  import { C as Pr, g as hr } from "./granularity.utils-DnAzYxES.js";
40
- import { i as fr, e as br } from "./definition-CZuJn-Re.js";
40
+ import { i as Cr, e as br } from "./definition-CZuJn-Re.js";
41
41
  import { i as Sr, h as Dr } from "./definition-CAwD0Puc.js";
42
42
  import { i as Tr, m as yr } from "./definition--kSyU8z2.js";
43
- import { c as Lr, a as Rr, g as Gr, b as Or, d as Er } from "./charts.utils-BoJ5LrTC.js";
44
- import { u as Br } from "./charts.fillGaps.hooks-CxXM5Ff3.js";
45
- import { i as Hr, c as vr, g as wr, a as $r } from "./definition-BZ7Wtvg5.js";
43
+ import { c as Lr, a as Rr, g as Gr, b as Or, d as Br } from "./charts.utils-BoJ5LrTC.js";
44
+ import { u as Mr } from "./charts.fillGaps.hooks-CxXM5Ff3.js";
45
+ import { i as Hr, c as vr, g as wr, a as $r } from "./definition-CyVZRIeo.js";
46
46
  import { i as jr, d as Kr, g as Nr } from "./definition-Bts5sDKG.js";
47
47
  import { i as zr, d as Wr } from "./definition-DGtAQtwL.js";
48
48
  import { i as qr, m as Ur } from "./definition-DfRvcWZc.js";
@@ -53,12 +53,13 @@ import { i as st, d as it } from "./definition-CbwusFc9.js";
53
53
  import { i as lt, m as pt } from "./definition-BSJSGQj9.js";
54
54
  import { i as dt, g as ct } from "./definition-D2btBhd5.js";
55
55
  import { i as gt, t as Pt } from "./definition-Cxq8rnHN.js";
56
- import { E as Ct } from "./EditorCard-DOCprGOC.js";
57
- import { D as bt } from "./DimensionAndMeasureSingleSelectField-CtdvYxT1.js";
58
- import { G as St, g as Dt, a as Ft, b as Tt } from "./GranularitySelectField-Cohuw09B.js";
59
- import { g as kt } from "./dimensionsAndMeasures.utils-SAlbbzn4.js";
60
- import { i as Rt } from "./index-NsIiXrla.js";
61
- import { i as Ot } from "./index-BcjLDsez.js";
56
+ import { i as ft, f as Ct } from "./definition-es5n86g4.js";
57
+ import { E as xt } from "./EditorCard-DOCprGOC.js";
58
+ import { D as Dt } from "./DimensionAndMeasureSingleSelectField-CtdvYxT1.js";
59
+ import { G as Tt, g as yt, a as kt, b as Lt } from "./GranularitySelectField-Cohuw09B.js";
60
+ import { g as Gt } from "./dimensionsAndMeasures.utils-SAlbbzn4.js";
61
+ import { i as Bt } from "./index-NsIiXrla.js";
62
+ import { i as Mt } from "./index-BcjLDsez.js";
62
63
  const n = "remarkable-theme-fonts", i = "data-remarkable-preconnect", l = "data-remarkable-google-fonts", m = (e) => {
63
64
  if (document.querySelector(`link[${i}]`)) return;
64
65
  const a = document.createElement("link");
@@ -94,7 +95,7 @@ const n = "remarkable-theme-fonts", i = "data-remarkable-preconnect", l = "data-
94
95
  export {
95
96
  ye as BarChartDefaultHorizontalPro,
96
97
  he as BarChartDefaultPro,
97
- Ee as BarChartGroupedHorizontalPro,
98
+ Be as BarChartGroupedHorizontalPro,
98
99
  De as BarChartGroupedPro,
99
100
  Re as BarChartStackedHorizontalPro,
100
101
  be as BarChartStackedPro,
@@ -102,20 +103,21 @@ export {
102
103
  Ta as BubbleChartPro,
103
104
  ur as ChartCard,
104
105
  Pr as ChartGranularitySelectField,
105
- Rt as ColorEditorPro,
106
+ Bt as ColorEditorPro,
106
107
  Hr as ComparisonPeriodSelectFieldPro,
107
108
  ae as ComparisonPeriodType,
108
109
  zr as DateRangePickerCustomPro,
109
110
  jr as DateRangeSelectFieldPro,
110
- bt as DimensionAndMeasureSingleSelectField,
111
+ Dt as DimensionAndMeasureSingleSelectField,
111
112
  st as DimensionMeasureMultiSelectFieldPro,
112
113
  Qr as DimensionSingleSelectFieldPro,
113
114
  La as DonutChartPro,
114
- Ba as DonutLabelChartPro,
115
- Ct as EditorCard,
116
- fr as EmptyContainerPro,
115
+ Ma as DonutLabelChartPro,
116
+ xt as EditorCard,
117
+ Cr as EmptyContainerPro,
118
+ ft as FilterBuilderPro,
117
119
  re as Granularity,
118
- St as GranularitySelectField,
120
+ Tt as GranularitySelectField,
119
121
  dt as GranularitySelectFieldPro,
120
122
  ja as HeatMapPro,
121
123
  Sr as HorizontalDividerPro,
@@ -126,7 +128,7 @@ export {
126
128
  qe as LineChartDefaultPro,
127
129
  Je as LineChartGroupedPro,
128
130
  pa as LineChartTabbedPro,
129
- Ot as MarkdownEditorPro,
131
+ Mt as MarkdownEditorPro,
130
132
  Tr as MarkdownPro,
131
133
  lt as MeasureMultiSelectFieldPro,
132
134
  rt as MeasureSingleSelectFieldPro,
@@ -140,8 +142,8 @@ export {
140
142
  ar as TableScrollablePro,
141
143
  gt as TextFieldPro,
142
144
  ke as barChartDefaultHorizontalPro,
143
- Ce as barChartDefaultPro,
144
- Me as barChartGroupedHorizontalPro,
145
+ fe as barChartDefaultPro,
146
+ Ee as barChartGroupedHorizontalPro,
145
147
  Fe as barChartGroupedPro,
146
148
  Ge as barChartStackedHorizontalPro,
147
149
  xe as barChartStackedPro,
@@ -149,7 +151,7 @@ export {
149
151
  ya as bubbleChartPro,
150
152
  y as cache,
151
153
  vr as comparisonPeriodSelectFieldPro,
152
- Ca as createBarLineClickHandler,
154
+ fa as createBarLineClickHandler,
153
155
  oa as createComparisonClickHandler,
154
156
  Lr as createGroupedClickHandler,
155
157
  va as createPieClickHandler,
@@ -172,26 +174,27 @@ export {
172
174
  _ as exportCSV,
173
175
  z as exportPNG,
174
176
  W as exportXLSX,
175
- Dt as getAvailableGranularityOptionsFromTimeRange,
177
+ Ct as filterBuilderPro,
178
+ yt as getAvailableGranularityOptionsFromTimeRange,
176
179
  Ae as getBarChartProData,
177
180
  He as getBarChartProOptions,
178
- fa as getBarLineChartProData,
181
+ Ca as getBarLineChartProData,
179
182
  ba as getBarLineChartProOptions,
180
183
  ve as getBarStackedChartProData,
181
184
  we as getBarStackedChartProOptions,
182
- C as getColor,
185
+ f as getColor,
183
186
  de as getComparisonPeriodDateRange,
184
187
  ce as getComparisonPeriodLabel,
185
188
  wr as getComparisonPeriodSelectFieldProOptions,
186
189
  Gr as getDatalabelPercentage,
187
- E as getDateRangeFromTimeRange,
190
+ B as getDateRangeFromTimeRange,
188
191
  Nr as getDateRangeSelectFieldProOptions,
189
- kt as getDimensionAndMeasureOptions,
192
+ Gt as getDimensionAndMeasureOptions,
190
193
  k as getDimensionFieldName,
191
- f as getDimensionMeasureColor,
194
+ C as getDimensionMeasureColor,
192
195
  hr as getDimensionWithGranularity,
193
196
  Or as getDimensionWithoutTruncation,
194
- Ft as getGranularitySelectFieldOptions,
197
+ kt as getGranularitySelectFieldOptions,
195
198
  We as getKpiResults,
196
199
  sa as getLineChartComparisonProData,
197
200
  ia as getLineChartComparisonProOptions,
@@ -206,7 +209,7 @@ export {
206
209
  Wa as getPivotDimension,
207
210
  Va as getPivotMeasures,
208
211
  qa as getPivotRowTotalsFor,
209
- Tt as getSafeSelection,
212
+ Lt as getSafeSelection,
210
213
  L as getSubInputValue,
211
214
  sr as getTableHeaderAlign,
212
215
  ir as getTableHeaderMinWidth,
@@ -214,12 +217,12 @@ export {
214
217
  lr as getTableRows,
215
218
  mr as getTableSortedResults,
216
219
  R as getThemeFormatter,
217
- M as getTimeRangeFromDateRange,
218
- B as getTimeRangeFromPresets,
220
+ E as getTimeRangeFromDateRange,
221
+ M as getTimeRangeFromPresets,
219
222
  A as getTimeRangeLabel,
220
223
  se as granularities,
221
224
  ct as granularitySelectFieldPro,
222
- Er as groupTailAsOther,
225
+ Br as groupTailAsOther,
223
226
  Ka as heatMapPro,
224
227
  Dr as horizontalDividerPro,
225
228
  Y as i18n,
@@ -243,7 +246,7 @@ export {
243
246
  pt as measureMultiSelectFieldPro,
244
247
  tt as measureSingleSelectFieldPro,
245
248
  Ur as multiSelectFieldPro,
246
- Ea as pieChartPro,
249
+ Ba as pieChartPro,
247
250
  Ua as pivotTablePro,
248
251
  ge as previewData,
249
252
  V as remarkableTheme,
@@ -260,7 +263,7 @@ export {
260
263
  Pt as textFieldPro,
261
264
  le as timeDimensionSubInputs,
262
265
  pe as timeDimensionWithGranularitySelectFieldSubInputs,
263
- Br as useFillGaps,
266
+ Mr as useFillGaps,
264
267
  dr as useGetTableSortedResults,
265
268
  w as useLoadDayjsLocale
266
269
  };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/theme/fonts/fonts.utils.ts"],"sourcesContent":["import { ThemeFonts, ThemeFontCustom } from './fonts.types';\n\nconst REMARKABLE_FONTS_STYLE_ID = 'remarkable-theme-fonts';\nconst REMARKABLE_PRECONNECT_ATTR = 'data-remarkable-preconnect';\nconst REMARKABLE_GOOGLE_FONTS_ATTR = 'data-remarkable-google-fonts';\n\nconst injectGooglePreconnect = (head: HTMLHeadElement): void => {\n if (document.querySelector(`link[${REMARKABLE_PRECONNECT_ATTR}]`)) return;\n\n const pre1 = document.createElement('link');\n pre1.rel = 'preconnect';\n pre1.href = 'https://fonts.googleapis.com';\n pre1.setAttribute(REMARKABLE_PRECONNECT_ATTR, '1');\n head.appendChild(pre1);\n\n const pre2 = document.createElement('link');\n pre2.rel = 'preconnect';\n pre2.href = 'https://fonts.gstatic.com';\n pre2.crossOrigin = 'anonymous';\n pre2.setAttribute(REMARKABLE_PRECONNECT_ATTR, '1');\n head.appendChild(pre2);\n};\n\nconst injectGoogleFonts = (fonts: ThemeFonts['google']): void => {\n if (!fonts || fonts.length === 0) return;\n if (typeof document === 'undefined' || !document.head) return;\n if (document.querySelector(`link[${REMARKABLE_GOOGLE_FONTS_ATTR}]`)) return;\n\n const head = document.head;\n injectGooglePreconnect(head);\n\n const query = fonts\n .map((f) => {\n const encoded = encodeURIComponent(f.name.replace(/\\s+/g, ' '));\n const weights = f.weights ?? '100..900';\n return `family=${encoded}:wght@${weights}`;\n })\n .join('&');\n\n const link = document.createElement('link');\n link.rel = 'stylesheet';\n link.href = `https://fonts.googleapis.com/css2?${query}&display=swap`;\n link.setAttribute(REMARKABLE_GOOGLE_FONTS_ATTR, '1');\n head.appendChild(link);\n};\n\nconst fontFaceCss = (font: ThemeFontCustom): string => {\n const family = font.family.replace(/'/g, \"\\\\'\");\n\n const descriptorParts: string[] = [];\n if (font.descriptors) {\n const d = font.descriptors;\n if (d.style != null) descriptorParts.push(`font-style: ${d.style}`);\n if (d.weight != null) descriptorParts.push(`font-weight: ${d.weight}`);\n if (d.stretch != null) descriptorParts.push(`font-stretch: ${d.stretch}`);\n if (d.unicodeRange != null) descriptorParts.push(`unicode-range: ${d.unicodeRange}`);\n }\n\n const descriptors = descriptorParts.join('; ');\n const decl = descriptors ? `; ${descriptors}` : '';\n\n return `@font-face { font-family: '${family}'; src: url(${font.src})${decl}; }`;\n};\n\nconst injectCustomFonts = (custom: ThemeFonts['custom']): void => {\n if (!custom || custom.length === 0) return;\n if (typeof document === 'undefined' || !document.head || custom.length === 0) return;\n\n let styleEl = document.getElementById(REMARKABLE_FONTS_STYLE_ID) as HTMLStyleElement | null;\n const css = custom.map(fontFaceCss).join('\\n');\n\n if (styleEl) {\n styleEl.textContent = css;\n } else {\n styleEl = document.createElement('style');\n styleEl.id = REMARKABLE_FONTS_STYLE_ID;\n styleEl.textContent = css;\n document.head.appendChild(styleEl);\n }\n};\n\nexport const loadThemeFonts = (fonts?: ThemeFonts): void => {\n if (!fonts) return;\n\n injectGoogleFonts(fonts.google);\n injectCustomFonts(fonts.custom);\n};\n"],"names":["REMARKABLE_FONTS_STYLE_ID","REMARKABLE_PRECONNECT_ATTR","REMARKABLE_GOOGLE_FONTS_ATTR","injectGooglePreconnect","head","pre1","pre2","injectGoogleFonts","fonts","query","f","encoded","weights","link","fontFaceCss","font","family","descriptorParts","d","descriptors","decl","injectCustomFonts","custom","styleEl","css","loadThemeFonts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,MAAMA,IAA4B,0BAC5BC,IAA6B,8BAC7BC,IAA+B,gCAE/BC,IAAyB,CAACC,MAAgC;AAC9D,MAAI,SAAS,cAAc,QAAQH,CAA0B,GAAG,EAAG;AAEnE,QAAMI,IAAO,SAAS,cAAc,MAAM;AAC1C,EAAAA,EAAK,MAAM,cACXA,EAAK,OAAO,gCACZA,EAAK,aAAaJ,GAA4B,GAAG,GACjDG,EAAK,YAAYC,CAAI;AAErB,QAAMC,IAAO,SAAS,cAAc,MAAM;AAC1C,EAAAA,EAAK,MAAM,cACXA,EAAK,OAAO,6BACZA,EAAK,cAAc,aACnBA,EAAK,aAAaL,GAA4B,GAAG,GACjDG,EAAK,YAAYE,CAAI;AACvB,GAEMC,IAAoB,CAACC,MAAsC;AAG/D,MAFI,CAACA,KAASA,EAAM,WAAW,KAC3B,OAAO,WAAa,OAAe,CAAC,SAAS,QAC7C,SAAS,cAAc,QAAQN,CAA4B,GAAG,EAAG;AAErE,QAAME,IAAO,SAAS;AACtB,EAAAD,EAAuBC,CAAI;AAE3B,QAAMK,IAAQD,EACX,IAAI,CAACE,MAAM;AACV,UAAMC,IAAU,mBAAmBD,EAAE,KAAK,QAAQ,QAAQ,GAAG,CAAC,GACxDE,IAAUF,EAAE,WAAW;AAC7B,WAAO,UAAUC,CAAO,SAASC,CAAO;AAAA,EAC1C,CAAC,EACA,KAAK,GAAG,GAELC,IAAO,SAAS,cAAc,MAAM;AAC1C,EAAAA,EAAK,MAAM,cACXA,EAAK,OAAO,qCAAqCJ,CAAK,iBACtDI,EAAK,aAAaX,GAA8B,GAAG,GACnDE,EAAK,YAAYS,CAAI;AACvB,GAEMC,IAAc,CAACC,MAAkC;AACrD,QAAMC,IAASD,EAAK,OAAO,QAAQ,MAAM,KAAK,GAExCE,IAA4B,CAAA;AAClC,MAAIF,EAAK,aAAa;AACpB,UAAMG,IAAIH,EAAK;AACf,IAAIG,EAAE,SAAS,QAAMD,EAAgB,KAAK,eAAeC,EAAE,KAAK,EAAE,GAC9DA,EAAE,UAAU,QAAMD,EAAgB,KAAK,gBAAgBC,EAAE,MAAM,EAAE,GACjEA,EAAE,WAAW,QAAMD,EAAgB,KAAK,iBAAiBC,EAAE,OAAO,EAAE,GACpEA,EAAE,gBAAgB,QAAMD,EAAgB,KAAK,kBAAkBC,EAAE,YAAY,EAAE;AAAA,EACrF;AAEA,QAAMC,IAAcF,EAAgB,KAAK,IAAI,GACvCG,IAAOD,IAAc,KAAKA,CAAW,KAAK;AAEhD,SAAO,8BAA8BH,CAAM,eAAeD,EAAK,GAAG,IAAIK,CAAI;AAC5E,GAEMC,IAAoB,CAACC,MAAuC;AAEhE,MADI,CAACA,KAAUA,EAAO,WAAW,KAC7B,OAAO,WAAa,OAAe,CAAC,SAAS,QAAQA,EAAO,WAAW,EAAG;AAE9E,MAAIC,IAAU,SAAS,eAAevB,CAAyB;AAC/D,QAAMwB,IAAMF,EAAO,IAAIR,CAAW,EAAE,KAAK;AAAA,CAAI;AAE7C,EAAIS,IACFA,EAAQ,cAAcC,KAEtBD,IAAU,SAAS,cAAc,OAAO,GACxCA,EAAQ,KAAKvB,GACbuB,EAAQ,cAAcC,GACtB,SAAS,KAAK,YAAYD,CAAO;AAErC,GAEaE,IAAiB,CAACjB,MAA6B;AAC1D,EAAKA,MAELD,EAAkBC,EAAM,MAAM,GAC9Ba,EAAkBb,EAAM,MAAM;AAChC;"}
1
+ {"version":3,"file":"index.js","sources":["../src/theme/fonts/fonts.utils.ts"],"sourcesContent":["import { ThemeFonts, ThemeFontCustom } from './fonts.types';\n\nconst REMARKABLE_FONTS_STYLE_ID = 'remarkable-theme-fonts';\nconst REMARKABLE_PRECONNECT_ATTR = 'data-remarkable-preconnect';\nconst REMARKABLE_GOOGLE_FONTS_ATTR = 'data-remarkable-google-fonts';\n\nconst injectGooglePreconnect = (head: HTMLHeadElement): void => {\n if (document.querySelector(`link[${REMARKABLE_PRECONNECT_ATTR}]`)) return;\n\n const pre1 = document.createElement('link');\n pre1.rel = 'preconnect';\n pre1.href = 'https://fonts.googleapis.com';\n pre1.setAttribute(REMARKABLE_PRECONNECT_ATTR, '1');\n head.appendChild(pre1);\n\n const pre2 = document.createElement('link');\n pre2.rel = 'preconnect';\n pre2.href = 'https://fonts.gstatic.com';\n pre2.crossOrigin = 'anonymous';\n pre2.setAttribute(REMARKABLE_PRECONNECT_ATTR, '1');\n head.appendChild(pre2);\n};\n\nconst injectGoogleFonts = (fonts: ThemeFonts['google']): void => {\n if (!fonts || fonts.length === 0) return;\n if (typeof document === 'undefined' || !document.head) return;\n if (document.querySelector(`link[${REMARKABLE_GOOGLE_FONTS_ATTR}]`)) return;\n\n const head = document.head;\n injectGooglePreconnect(head);\n\n const query = fonts\n .map((f) => {\n const encoded = encodeURIComponent(f.name.replace(/\\s+/g, ' '));\n const weights = f.weights ?? '100..900';\n return `family=${encoded}:wght@${weights}`;\n })\n .join('&');\n\n const link = document.createElement('link');\n link.rel = 'stylesheet';\n link.href = `https://fonts.googleapis.com/css2?${query}&display=swap`;\n link.setAttribute(REMARKABLE_GOOGLE_FONTS_ATTR, '1');\n head.appendChild(link);\n};\n\nconst fontFaceCss = (font: ThemeFontCustom): string => {\n const family = font.family.replace(/'/g, \"\\\\'\");\n\n const descriptorParts: string[] = [];\n if (font.descriptors) {\n const d = font.descriptors;\n if (d.style != null) descriptorParts.push(`font-style: ${d.style}`);\n if (d.weight != null) descriptorParts.push(`font-weight: ${d.weight}`);\n if (d.stretch != null) descriptorParts.push(`font-stretch: ${d.stretch}`);\n if (d.unicodeRange != null) descriptorParts.push(`unicode-range: ${d.unicodeRange}`);\n }\n\n const descriptors = descriptorParts.join('; ');\n const decl = descriptors ? `; ${descriptors}` : '';\n\n return `@font-face { font-family: '${family}'; src: url(${font.src})${decl}; }`;\n};\n\nconst injectCustomFonts = (custom: ThemeFonts['custom']): void => {\n if (!custom || custom.length === 0) return;\n if (typeof document === 'undefined' || !document.head || custom.length === 0) return;\n\n let styleEl = document.getElementById(REMARKABLE_FONTS_STYLE_ID) as HTMLStyleElement | null;\n const css = custom.map(fontFaceCss).join('\\n');\n\n if (styleEl) {\n styleEl.textContent = css;\n } else {\n styleEl = document.createElement('style');\n styleEl.id = REMARKABLE_FONTS_STYLE_ID;\n styleEl.textContent = css;\n document.head.appendChild(styleEl);\n }\n};\n\nexport const loadThemeFonts = (fonts?: ThemeFonts): void => {\n if (!fonts) return;\n\n injectGoogleFonts(fonts.google);\n injectCustomFonts(fonts.custom);\n};\n"],"names":["REMARKABLE_FONTS_STYLE_ID","REMARKABLE_PRECONNECT_ATTR","REMARKABLE_GOOGLE_FONTS_ATTR","injectGooglePreconnect","head","pre1","pre2","injectGoogleFonts","fonts","query","f","encoded","weights","link","fontFaceCss","font","family","descriptorParts","d","descriptors","decl","injectCustomFonts","custom","styleEl","css","loadThemeFonts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,MAAMA,IAA4B,0BAC5BC,IAA6B,8BAC7BC,IAA+B,gCAE/BC,IAAyB,CAACC,MAAgC;AAC9D,MAAI,SAAS,cAAc,QAAQH,CAA0B,GAAG,EAAG;AAEnE,QAAMI,IAAO,SAAS,cAAc,MAAM;AAC1C,EAAAA,EAAK,MAAM,cACXA,EAAK,OAAO,gCACZA,EAAK,aAAaJ,GAA4B,GAAG,GACjDG,EAAK,YAAYC,CAAI;AAErB,QAAMC,IAAO,SAAS,cAAc,MAAM;AAC1C,EAAAA,EAAK,MAAM,cACXA,EAAK,OAAO,6BACZA,EAAK,cAAc,aACnBA,EAAK,aAAaL,GAA4B,GAAG,GACjDG,EAAK,YAAYE,CAAI;AACvB,GAEMC,IAAoB,CAACC,MAAsC;AAG/D,MAFI,CAACA,KAASA,EAAM,WAAW,KAC3B,OAAO,WAAa,OAAe,CAAC,SAAS,QAC7C,SAAS,cAAc,QAAQN,CAA4B,GAAG,EAAG;AAErE,QAAME,IAAO,SAAS;AACtB,EAAAD,EAAuBC,CAAI;AAE3B,QAAMK,IAAQD,EACX,IAAI,CAACE,MAAM;AACV,UAAMC,IAAU,mBAAmBD,EAAE,KAAK,QAAQ,QAAQ,GAAG,CAAC,GACxDE,IAAUF,EAAE,WAAW;AAC7B,WAAO,UAAUC,CAAO,SAASC,CAAO;AAAA,EAC1C,CAAC,EACA,KAAK,GAAG,GAELC,IAAO,SAAS,cAAc,MAAM;AAC1C,EAAAA,EAAK,MAAM,cACXA,EAAK,OAAO,qCAAqCJ,CAAK,iBACtDI,EAAK,aAAaX,GAA8B,GAAG,GACnDE,EAAK,YAAYS,CAAI;AACvB,GAEMC,IAAc,CAACC,MAAkC;AACrD,QAAMC,IAASD,EAAK,OAAO,QAAQ,MAAM,KAAK,GAExCE,IAA4B,CAAA;AAClC,MAAIF,EAAK,aAAa;AACpB,UAAMG,IAAIH,EAAK;AACf,IAAIG,EAAE,SAAS,QAAMD,EAAgB,KAAK,eAAeC,EAAE,KAAK,EAAE,GAC9DA,EAAE,UAAU,QAAMD,EAAgB,KAAK,gBAAgBC,EAAE,MAAM,EAAE,GACjEA,EAAE,WAAW,QAAMD,EAAgB,KAAK,iBAAiBC,EAAE,OAAO,EAAE,GACpEA,EAAE,gBAAgB,QAAMD,EAAgB,KAAK,kBAAkBC,EAAE,YAAY,EAAE;AAAA,EACrF;AAEA,QAAMC,IAAcF,EAAgB,KAAK,IAAI,GACvCG,IAAOD,IAAc,KAAKA,CAAW,KAAK;AAEhD,SAAO,8BAA8BH,CAAM,eAAeD,EAAK,GAAG,IAAIK,CAAI;AAC5E,GAEMC,IAAoB,CAACC,MAAuC;AAEhE,MADI,CAACA,KAAUA,EAAO,WAAW,KAC7B,OAAO,WAAa,OAAe,CAAC,SAAS,QAAQA,EAAO,WAAW,EAAG;AAE9E,MAAIC,IAAU,SAAS,eAAevB,CAAyB;AAC/D,QAAMwB,IAAMF,EAAO,IAAIR,CAAW,EAAE,KAAK;AAAA,CAAI;AAE7C,EAAIS,IACFA,EAAQ,cAAcC,KAEtBD,IAAU,SAAS,cAAc,OAAO,GACxCA,EAAQ,KAAKvB,GACbuB,EAAQ,cAAcC,GACtB,SAAS,KAAK,YAAYD,CAAO;AAErC,GAEaE,IAAiB,CAACjB,MAA6B;AAC1D,EAAKA,MAELD,EAAkBC,EAAM,MAAM,GAC9Ba,EAAkBb,EAAM,MAAM;AAChC;"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ComparisonPeriodSelectFieldPro",
3
3
  "label": "Comparison Period Select Field",
4
- "description": "Dropdown for picking a comparison period (Previous period, Previous year). Pairs with a comparisonPeriod variable; emits onChange.",
4
+ "description": "Dropdown for picking a comparison period (e.g. the previous period or previous year). Pairs with a comparisonPeriod variable; emits onChange.",
5
5
  "category": "Dropdowns - dates",
6
6
  "defaultWidth": 300,
7
7
  "defaultHeight": 120,
@@ -3,6 +3,8 @@
3
3
  "label": "Donut Chart",
4
4
  "description": "Donut chart for parts-of-whole over one dimension with one measure. Pick over PieChartPro when you want a center hole for a label or KPI.",
5
5
  "category": "Pie Charts",
6
+ "defaultHeight": 442,
7
+ "defaultWidth": 630,
6
8
  "inputs": [
7
9
  {
8
10
  "name": "dataset",
@@ -3,6 +3,8 @@
3
3
  "label": "Donut Label Chart",
4
4
  "description": "Same as DonutChartPro with a customizable center text label. Use when the center space can provide a useful summary (e.g. total, label).",
5
5
  "category": "Pie Charts",
6
+ "defaultHeight": 442,
7
+ "defaultWidth": 630,
6
8
  "inputs": [
7
9
  {
8
10
  "name": "dataset",
@@ -3,6 +3,8 @@
3
3
  "label": "Kpi Chart - Number Comparison",
4
4
  "description": "KPI with a delta versus a comparison period. Takes one measure and pairs with a comparison-period variable.",
5
5
  "category": "Kpi Charts",
6
+ "defaultHeight": 442,
7
+ "defaultWidth": 630,
6
8
  "inputs": [
7
9
  {
8
10
  "name": "dataset",
@@ -89,7 +91,7 @@
89
91
  "name": "primaryDateRange",
90
92
  "type": "timeRange",
91
93
  "label": "Primary date-range",
92
- "description": "You can also connect this to a date range selector using its variable",
94
+ "description": "The comparison period is derived internally using this date range — do not also apply a date filter on the underlying dataset",
93
95
  "category": "Component Data"
94
96
  },
95
97
  {
@@ -3,6 +3,8 @@
3
3
  "label": "Kpi Chart - Number",
4
4
  "description": "Single big-number KPI showing one measure. Use for headline metrics without comparison.",
5
5
  "category": "Kpi Charts",
6
+ "defaultHeight": 442,
7
+ "defaultWidth": 630,
6
8
  "inputs": [
7
9
  {
8
10
  "name": "dataset",
@@ -199,7 +199,7 @@
199
199
  "name": "primaryDateRange",
200
200
  "type": "timeRange",
201
201
  "label": "Primary date-range",
202
- "description": "You can also connect this to a date range selector using its variable",
202
+ "description": "The comparison period is derived internally using this date range — do not also apply a date filter on the underlying dataset",
203
203
  "category": "Component Data"
204
204
  },
205
205
  {
@@ -217,7 +217,7 @@
217
217
  "name": "primaryDateRange",
218
218
  "type": "timeRange",
219
219
  "label": "Primary date-range",
220
- "description": "You can also connect this to a date range selector using its variable",
220
+ "description": "The comparison period is derived internally using this date range — do not also apply a date filter on the underlying dataset",
221
221
  "category": "Component Data"
222
222
  },
223
223
  {
@@ -351,5 +351,7 @@
351
351
  }
352
352
  ]
353
353
  }
354
- ]
354
+ ],
355
+ "defaultHeight": 526,
356
+ "defaultWidth": 1280
355
357
  }
@@ -284,5 +284,7 @@
284
284
  }
285
285
  ]
286
286
  }
287
- ]
287
+ ],
288
+ "defaultHeight": 526,
289
+ "defaultWidth": 1280
288
290
  }
@@ -3,6 +3,8 @@
3
3
  "label": "Pie Chart",
4
4
  "description": "Pie chart for parts-of-whole over one dimension with one measure. Prefer DonutChartPro for a modern look.",
5
5
  "category": "Pie Charts",
6
+ "defaultHeight": 442,
7
+ "defaultWidth": 630,
6
8
  "inputs": [
7
9
  {
8
10
  "name": "dataset",
@@ -49,7 +49,7 @@
49
49
  "name": "ComparisonPeriodSelectFieldPro",
50
50
  "label": "Comparison Period Select Field",
51
51
  "category": "Dropdowns - dates",
52
- "description": "Dropdown for picking a comparison period (Previous period, Previous year). Pairs with a comparisonPeriod variable; emits onChange."
52
+ "description": "Dropdown for picking a comparison period (e.g. the previous period or previous year). Pairs with a comparisonPeriod variable; emits onChange."
53
53
  },
54
54
  {
55
55
  "name": "DateRangePickerCustomPro",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@embeddable.com/remarkable-pro",
3
3
  "author": "embeddable (https://embeddable.com)",
4
- "version": "0.3.0",
4
+ "version": "0.3.1",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/embeddable-hq/remarkable-pro"
@@ -1 +0,0 @@
1
- {"version":3,"file":"definition-BPveF-o0.js","sources":["../src/components/charts/pies/DonutChartPro/index.tsx","../src/components/charts/pies/DonutChartPro/definition.ts"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { getPieChartProOptions, getPieChartProData, createPieClickHandler } from '../pies.utils';\nimport { DefaultPieChartProps } from '../pies.types';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { ChartCard } from '../../shared/ChartCard/ChartCard';\nimport { DonutChart } from '@embeddable.com/remarkable-ui';\nimport { mergician } from 'mergician';\nimport { resolveI18nProps } from '../../../component.utils';\n\nexport type DonutChartProProps = DefaultPieChartProps;\n\nconst DonutChartPro = (props: DonutChartProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const {\n description,\n\n title,\n tooltip,\n } = resolveI18nProps(props);\n\n const {\n dimension,\n maxLegendItems,\n measure,\n results,\n showLegend,\n showTooltips,\n showValueLabels,\n hideMenu,\n onSegmentClick,\n } = props;\n\n const data = getPieChartProData(\n { data: results.data, dimension, measure, maxLegendItems },\n theme,\n );\n\n const options = mergician(\n getPieChartProOptions({ measure, dimension }, theme),\n theme.charts.donutChartPro?.options ?? {},\n );\n\n const handleClick = createPieClickHandler({ results, dimension, onClicked: onSegmentClick });\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[dimension, measure]}\n errorMessage={results.error}\n description={description}\n title={title}\n tooltip={tooltip}\n hideMenu={hideMenu}\n >\n <DonutChart\n data={data}\n options={options}\n showLegend={showLegend}\n showTooltips={showTooltips}\n showValueLabels={showValueLabels}\n onClick={handleClick}\n />\n </ChartCard>\n );\n};\n\nexport default DonutChartPro;\n","import { DataResponse, LoadDataRequest, Value, loadData } from '@embeddable.com/core';\nimport { PieChartClickArg } from '../pies.types';\nimport { definePreview, EmbeddedComponentMeta, Inputs } from '@embeddable.com/react';\nimport Component from './index';\nimport { inputs } from '../../../component.inputs.constants';\nimport { previewData } from '../../../preview.data.constants';\nimport { subInputs } from '../../../component.subinputs.constants';\n\nconst meta = {\n name: 'DonutChartPro',\n label: 'Donut Chart',\n description:\n 'Donut chart for parts-of-whole over one dimension with one measure. Pick over PieChartPro when you want a center hole for a label or KPI.',\n category: 'Pie Charts',\n inputs: [\n inputs.dataset,\n { ...inputs.measure, inputs: [...inputs.measure.inputs, subInputs.showValueAsPercentage] },\n inputs.dimension,\n inputs.title,\n inputs.description,\n inputs.tooltip,\n inputs.showLegend,\n inputs.maxLegendItems,\n inputs.showTooltips,\n inputs.showValueLabels,\n ],\n events: [\n {\n name: 'onSegmentClick',\n label: 'A segment is clicked',\n properties: [\n {\n name: 'dimensionValue',\n label: 'Clicked dimension',\n type: 'string',\n },\n {\n name: 'dimensionTimeRange',\n label: 'Clicked dimension time range',\n type: 'timeRange',\n },\n ],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nconst previewConfig = {\n dimension: previewData.dimension,\n measure: previewData.measure,\n results: previewData.results1Measure1Dimension,\n showValueLabels: false,\n hideMenu: true,\n};\n\nconst preview = definePreview(Component, previewConfig);\n\nconst loadDataResultsArgs = (inputs: Inputs<typeof meta>): LoadDataRequest => ({\n from: inputs.dataset,\n select: [inputs.measure, inputs.dimension],\n});\n\nconst loadDataResults = (inputs: Inputs<typeof meta>): DataResponse =>\n loadData(loadDataResultsArgs(inputs));\n\nconst events = {\n onSegmentClick: (value: PieChartClickArg) => ({\n dimensionValue: value.dimensionValue ?? Value.noFilter(),\n dimensionTimeRange: value.dimensionTimeRange ?? Value.noFilter(),\n }),\n};\n\nconst props = (inputs: Inputs<typeof meta>) => ({\n ...inputs,\n results: loadDataResults(inputs),\n});\n\nexport const donutChartPro = {\n Component,\n meta,\n preview,\n previewConfig,\n config: {\n props,\n events,\n },\n results: {\n loadDataArgs: loadDataResultsArgs,\n loadData: loadDataResults,\n },\n} as const;\n"],"names":["DonutChartPro","props","theme","useTheme","i18nSetup","description","title","tooltip","resolveI18nProps","dimension","maxLegendItems","measure","results","showLegend","showTooltips","showValueLabels","hideMenu","onSegmentClick","data","getPieChartProData","options","mergician","getPieChartProOptions","_a","handleClick","createPieClickHandler","jsx","ChartCard","DonutChart","meta","inputs","subInputs","previewConfig","previewData","preview","definePreview","Component","loadDataResultsArgs","loadDataResults","loadData","events","value","Value","donutChartPro"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"definition-BR7yIGzM.js","sources":["../src/components/charts/lines/LineChartWithKpiTabsPro/index.tsx","../src/components/charts/lines/LineChartWithKpiTabsPro/definition.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { DataResponse } from '@embeddable.com/core';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { ChartCard } from '../../shared/ChartCard/ChartCard';\nimport { useFillGaps } from '../../charts.fillGaps.hooks';\nimport { ChartTabs, ChartTabsProps, LineChart } from '@embeddable.com/remarkable-ui';\nimport { ChartGranularitySelectField } from '../../shared/ChartGranularitySelectField/ChartGranularitySelectField';\nimport {\n getLineChartProData,\n getLineChartProOptions,\n} from '../LineChartDefaultPro/LineChartDefaultPro.utils';\nimport { LineChartProProps } from '../LineChartDefaultPro';\nimport { getThemeFormatter } from '../../../../theme/formatter/formatter.utils';\nimport { createSimpleClickHandler } from '../../charts.utils';\n\nexport type LineChartWithKpiTabsProProps = LineChartProProps & {\n resultsKpis: DataResponse;\n};\n\nconst LineChartWithKpiTabsPro = (props: LineChartWithKpiTabsProProps) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { title, description, tooltip, xAxisLabel, yAxisLabel } = resolveI18nProps(props);\n const {\n hideMenu,\n measures,\n xAxis,\n reverseXAxis,\n showLegend,\n showLogarithmicScale,\n showTooltips,\n showValueLabels,\n yAxisRangeMax,\n yAxisRangeMin,\n granularity,\n setGranularity,\n onLineClicked,\n resultsKpis,\n } = props;\n\n const [activeMeasureName, setActiveMeasureName] = useState(measures[0]?.name ?? '');\n const activeMeasure = measures.find((m) => m.name === activeMeasureName);\n\n useEffect(() => {\n if (measures.length === 0) return;\n if (measures.some((m) => m.name === activeMeasureName)) return;\n setActiveMeasureName(measures[0]!.name);\n }, [measures, activeMeasureName]);\n\n const results = useFillGaps({\n results: props.results,\n dimension: xAxis,\n });\n\n const data = getLineChartProData(\n {\n data: results.data,\n dimension: xAxis,\n measures: activeMeasure ? [activeMeasure] : [],\n hasMinMaxYAxisRange: Boolean(yAxisRangeMin != null || yAxisRangeMax != null),\n },\n theme,\n );\n\n const options = getLineChartProOptions(\n { data, dimension: xAxis, measures: activeMeasure ? [activeMeasure] : [] },\n theme,\n );\n\n const granularitySelectorHasMarginTop = !title && !description && !tooltip;\n\n const handleClick = createSimpleClickHandler({\n data,\n dimension: xAxis,\n granularity,\n onClicked: onLineClicked,\n });\n\n const themeFormatter = getThemeFormatter(theme);\n\n const chartTabsItems: ChartTabsProps['items'] = measures.map((measure) => ({\n id: measure.name,\n label: themeFormatter.dimensionOrMeasureTitle(measure),\n value:\n resultsKpis?.data?.[0]?.[measure.name] == null\n ? '-'\n : themeFormatter.data(measure, resultsKpis.data[0][measure.name]),\n }));\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[...measures, xAxis]}\n errorMessage={results.error}\n description={description}\n title={title}\n tooltip={tooltip}\n hideMenu={hideMenu}\n >\n <ChartTabs items={chartTabsItems} value={activeMeasureName} onChange={setActiveMeasureName} />\n {setGranularity && (\n <ChartGranularitySelectField\n hasMarginTop={granularitySelectorHasMarginTop}\n dimension={xAxis}\n onChange={setGranularity}\n />\n )}\n <LineChart\n data={data}\n reverseXAxis={reverseXAxis}\n showLegend={showLegend}\n showLogarithmicScale={showLogarithmicScale}\n showTooltips={showTooltips}\n showValueLabels={showValueLabels}\n xAxisLabel={xAxisLabel}\n yAxisLabel={yAxisLabel}\n yAxisRangeMax={yAxisRangeMax}\n yAxisRangeMin={yAxisRangeMin}\n options={options}\n onClick={handleClick}\n />\n </ChartCard>\n );\n};\n\nexport default LineChartWithKpiTabsPro;\n","import { DataResponse, Granularity, LoadDataRequest, Value, loadData } from '@embeddable.com/core';\nimport { definePreview, EmbeddedComponentMeta, Inputs } from '@embeddable.com/react';\nimport Component from './index';\nimport { previewData } from '../../../preview.data.constants';\nimport { getDimensionWithGranularity } from '../../utils/granularity.utils';\nimport { lineChartDefaultPro, LineChartDefaultProState } from '../LineChartDefaultPro/definition';\nimport { getClientContextTimezone } from '../../../../theme/utils/clientContext.utils';\nimport { ThemeClientContext } from '../../../../theme/theme.types';\nimport { LineChartProOptionsClickArg } from '../lines.types';\n\nconst meta = {\n ...lineChartDefaultPro.meta,\n name: 'LineChartWithKpiTabsPro',\n label: 'Line Chart - With Kpi Tabs',\n description:\n 'Line chart with clickable KPI tabs above — each measure gets a tab showing its total. One time dimension and one or more measures.',\n} as const satisfies EmbeddedComponentMeta;\n\nconst previewConfig = {\n xAxis: previewData.dimension,\n measures: [previewData.measure, previewData.measureVariant],\n results: previewData.results1Measure1Dimension,\n resultsKpis: previewData.results2Measures,\n hideMenu: true,\n};\n\nconst preview = definePreview(Component, previewConfig);\n\n// Reuse loadData and loadDataArgs from LineChartDefaultPro for main results,\nconst loadDataResultsArgs = lineChartDefaultPro.results.loadDataArgs;\nconst loadDataResults = lineChartDefaultPro.results.loadData;\n\nconst loadDataResultsKpisArgs = (\n inputs: Inputs<typeof meta>,\n clientContext?: ThemeClientContext,\n): LoadDataRequest => ({\n from: inputs.dataset,\n select: [...inputs.measures],\n timezone: getClientContextTimezone(clientContext?.timezone),\n});\n\nconst loadDataResultsKpis = (\n inputs: Inputs<typeof meta>,\n clientContext: ThemeClientContext,\n): DataResponse => loadData(loadDataResultsKpisArgs(inputs, clientContext));\n\nconst events = {\n onLineClicked: (value: LineChartProOptionsClickArg) => ({\n axisDimensionValue: value.dimensionValue ?? Value.noFilter(),\n axisDimensionTimeRange: value.dimensionTimeRange ?? Value.noFilter(),\n }),\n};\n\nconst props = (\n inputs: Inputs<typeof meta>,\n [state, setState]: [LineChartDefaultProState, (state: LineChartDefaultProState) => void],\n clientContext: ThemeClientContext,\n) => {\n const xAxisWithGranularity = getDimensionWithGranularity(inputs.xAxis, state?.granularity);\n\n return {\n ...inputs,\n xAxis: xAxisWithGranularity,\n granularity: state?.granularity,\n setGranularity: (granularity: Granularity) => setState({ granularity }),\n results: loadDataResults(inputs, xAxisWithGranularity, clientContext),\n resultsKpis: loadDataResultsKpis(inputs, clientContext),\n };\n};\n\nexport const lineChartWithKpiTabsPro = {\n Component,\n meta,\n preview,\n previewConfig,\n config: {\n props,\n events,\n },\n results: {\n loadDataArgs: loadDataResultsArgs,\n loadData: loadDataResults,\n },\n resultsKpis: {\n loadDataArgs: loadDataResultsKpisArgs,\n loadData: loadDataResultsKpis,\n },\n} as const;\n"],"names":["LineChartWithKpiTabsPro","props","theme","useTheme","i18nSetup","title","description","tooltip","xAxisLabel","yAxisLabel","resolveI18nProps","hideMenu","measures","xAxis","reverseXAxis","showLegend","showLogarithmicScale","showTooltips","showValueLabels","yAxisRangeMax","yAxisRangeMin","granularity","setGranularity","onLineClicked","resultsKpis","activeMeasureName","setActiveMeasureName","useState","_a","activeMeasure","m","useEffect","results","useFillGaps","data","getLineChartProData","options","getLineChartProOptions","granularitySelectorHasMarginTop","handleClick","createSimpleClickHandler","themeFormatter","getThemeFormatter","chartTabsItems","measure","_b","jsxs","ChartCard","jsx","ChartTabs","ChartGranularitySelectField","LineChart","meta","lineChartDefaultPro","previewConfig","previewData","preview","definePreview","Component","loadDataResultsArgs","loadDataResults","loadDataResultsKpisArgs","inputs","clientContext","getClientContextTimezone","loadDataResultsKpis","loadData","events","value","Value","state","setState","xAxisWithGranularity","getDimensionWithGranularity","lineChartWithKpiTabsPro"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"definition-BVvy48Df.js","sources":["../src/components/charts/kpis/KpiChartNumberComparisonPro/index.tsx","../src/components/charts/kpis/KpiChartNumberComparisonPro/definition.ts"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { DataResponse, Measure, TimeRange } from '@embeddable.com/core';\nimport { i18n, i18nSetup } from '../../../../theme/i18n/i18n';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { ChartCard, ChartCardHeaderProps } from '../../shared/ChartCard/ChartCard';\nimport { KpiChart } from '@embeddable.com/remarkable-ui';\nimport { getThemeFormatter } from '../../../../theme/formatter/formatter.utils';\nimport { useEffect } from 'react';\nimport {\n getComparisonPeriodDateRange,\n getComparisonPeriodLabel,\n} from '../../../utils/timeRange.utils';\nimport { getKpiResults } from '../kpis.utils';\n\nexport type KpiChartNumberComparisonProProp = {\n changeFontSize?: number;\n comparisonPeriod?: string;\n displayChangeAsPercentage?: boolean;\n fontSize?: number;\n measure: Measure;\n primaryDateRange: TimeRange;\n results: DataResponse;\n resultsComparison: DataResponse | undefined;\n reversePositiveNegativeColors?: boolean;\n percentageDecimalPlaces?: number;\n comparisonDateRange: TimeRange;\n displayNullAs?: string;\n setComparisonDateRange?: (dateRange: TimeRange) => void;\n} & ChartCardHeaderProps;\n\nconst KpiChartNumberComparisonPro = (props: KpiChartNumberComparisonProProp) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { title, description, tooltip, displayNullAs } = resolveI18nProps(props);\n const {\n hideMenu,\n changeFontSize,\n comparisonPeriod,\n comparisonDateRange,\n displayChangeAsPercentage,\n fontSize,\n measure,\n primaryDateRange,\n results,\n resultsComparison,\n reversePositiveNegativeColors,\n percentageDecimalPlaces,\n setComparisonDateRange,\n } = props;\n\n useEffect(() => {\n if (!setComparisonDateRange) return;\n\n const newComparisonDateRange = getComparisonPeriodDateRange(\n primaryDateRange,\n comparisonPeriod,\n theme,\n );\n setComparisonDateRange(newComparisonDateRange);\n }, [comparisonPeriod, JSON.stringify(primaryDateRange), theme]);\n\n const value: number = results.data?.[0]?.[measure.name];\n const comparisonValue = comparisonDateRange\n ? resultsComparison?.data?.[0]?.[measure.name]\n : undefined;\n\n const themeFormatter = getThemeFormatter(theme);\n const valueFormatter = (valueToFormat: number) => themeFormatter.data(measure, valueToFormat);\n const comparisonLabel = `vs ${getComparisonPeriodLabel(comparisonPeriod, theme).toLowerCase()}`;\n\n const resultsCombined: DataResponse = {\n isLoading: Boolean(results.isLoading || resultsComparison?.isLoading),\n data:\n !results?.data && !resultsComparison?.data\n ? undefined\n : [\n ...(results.data?.length\n ? [{ label: i18n.t('charts.primaryPeriod'), ...results.data[0] }]\n : []),\n ...(resultsComparison?.data?.length\n ? [{ label: i18n.t('charts.comparisonPeriod'), ...resultsComparison.data[0] }]\n : []),\n ],\n };\n\n const resultsWithNullsHandled = getKpiResults(resultsCombined, measure, Boolean(displayNullAs));\n\n return (\n <ChartCard\n data={resultsWithNullsHandled}\n dimensionsAndMeasures={[\n // Add a label dimension to distinguish primary and comparison periods in exports\n {\n name: 'label',\n title: i18n.t('charts.label'),\n nativeType: 'string',\n __type__: 'dimension',\n },\n measure,\n ]}\n errorMessage={results.error}\n description={description}\n title={title}\n tooltip={tooltip}\n hideMenu={hideMenu}\n >\n <KpiChart\n displayNullAs={displayNullAs}\n value={value}\n comparisonValue={resultsCombined.isLoading ? undefined : comparisonValue}\n valueFormatter={valueFormatter}\n valueFontSize={fontSize}\n trendFontSize={changeFontSize}\n invertChangeColors={reversePositiveNegativeColors}\n showChangeAsPercentage={displayChangeAsPercentage}\n comparisonLabel={comparisonLabel}\n percentageDecimalPlaces={percentageDecimalPlaces}\n noPreviousDataLabel={i18n.t('charts.kpiChart.noPreviousData')}\n equalComparisonLabel={i18n.t('charts.kpiChart.equalComparison')}\n />\n </ChartCard>\n );\n};\n\nexport default KpiChartNumberComparisonPro;\n","import { DataResponse, loadData, LoadDataRequest, TimeRange } from '@embeddable.com/core';\nimport { definePreview, EmbeddedComponentMeta, Inputs } from '@embeddable.com/react';\nimport Component from './index';\nimport { inputs } from '../../../component.inputs.constants';\nimport { previewData } from '../../../preview.data.constants';\nimport { getClientContextTimezone } from '../../../../theme/utils/clientContext.utils';\nimport { ThemeClientContext } from '../../../../theme/theme.types';\n\nconst meta = {\n name: 'KpiChartNumberComparisonPro',\n label: 'Kpi Chart - Number Comparison',\n description:\n 'KPI with a delta versus a comparison period. Takes one measure and pairs with a comparison-period variable.',\n category: 'Kpi Charts',\n inputs: [\n inputs.dataset,\n inputs.measure,\n { ...inputs.dimensionTime, name: 'timeProperty', label: 'Time property' },\n {\n ...inputs.timeRange,\n name: 'primaryDateRange',\n label: 'Primary date-range',\n description: 'You can also connect this to a date range selector using its variable',\n category: 'Component Data',\n },\n {\n ...inputs.comparisonPeriod,\n description: 'You can also connect this to a comparison period selector using its variable',\n category: 'Component Data',\n },\n inputs.title,\n inputs.description,\n inputs.tooltip,\n inputs.displayNullAs,\n {\n ...inputs.boolean,\n name: 'displayChangeAsPercentage',\n label: 'Display change as %',\n defaultValue: false,\n category: 'Component Settings',\n },\n {\n ...inputs.number,\n name: 'percentageDecimalPlaces',\n label: 'Percentage decimal places',\n defaultValue: 1,\n category: 'Component Settings',\n },\n {\n ...inputs.boolean,\n name: 'reversePositiveNegativeColors',\n label: 'Reverse positive/negative colors',\n defaultValue: false,\n category: 'Component Settings',\n },\n inputs.fontSize,\n {\n ...inputs.fontSize,\n name: 'changeFontSize',\n label: 'Trend font-size',\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nexport type KpiChartNumberComparisonProState = {\n comparisonDateRange: TimeRange;\n};\n\nconst previewConfig = {\n measure: { ...previewData.measure },\n results: previewData.results1Measure,\n resultsComparison: previewData.results1MeasureVariant,\n primaryDateRange: undefined,\n comparisonPeriod: 'Previous period',\n comparisonDateRange: { relativeTimeString: 'Today', from: undefined, to: undefined },\n fontSize: 100,\n hideMenu: true,\n};\n\nconst preview = definePreview(Component, previewConfig);\n\nconst loadDataResultsArgs = (\n inputs: Inputs<typeof meta>,\n clientContext?: ThemeClientContext,\n): LoadDataRequest => ({\n from: inputs.dataset,\n select: [inputs.measure],\n limit: 1,\n timezone: getClientContextTimezone(clientContext?.timezone),\n filters:\n inputs.primaryDateRange && inputs.timeProperty\n ? [\n {\n property: inputs.timeProperty,\n operator: 'inDateRange',\n value: inputs.primaryDateRange,\n },\n ]\n : undefined,\n});\n\nconst loadDataResults = (\n inputs: Inputs<typeof meta>,\n clientContext: ThemeClientContext,\n): DataResponse => loadData(loadDataResultsArgs(inputs, clientContext));\n\nconst loadDataResultsComparisonArgs = (\n inputs: Inputs<typeof meta>,\n comparisonDateRange: TimeRange,\n clientContext?: ThemeClientContext,\n): LoadDataRequest => ({\n from: inputs.dataset,\n select: [inputs.measure],\n limit: 1,\n timezone: getClientContextTimezone(clientContext?.timezone),\n filters: [\n {\n property: inputs.timeProperty,\n operator: 'inDateRange',\n value: comparisonDateRange,\n },\n ],\n});\n\nconst loadDataResultsComparison = (\n inputs: Inputs<typeof meta>,\n state: KpiChartNumberComparisonProState,\n clientContext: ThemeClientContext,\n): DataResponse | undefined => {\n if (inputs.primaryDateRange && inputs.timeProperty && state?.comparisonDateRange) {\n return loadData(\n loadDataResultsComparisonArgs(inputs, state.comparisonDateRange, clientContext),\n );\n }\n return undefined;\n};\n\nconst props = (\n inputs: Inputs<typeof meta>,\n [state, setState]: [\n KpiChartNumberComparisonProState,\n (state: KpiChartNumberComparisonProState) => void,\n ],\n clientContext: ThemeClientContext,\n) => ({\n ...inputs,\n comparisonPeriod: inputs.comparisonPeriod as string | undefined,\n comparisonDateRange: state?.comparisonDateRange,\n setComparisonDateRange: (comparisonDateRange: TimeRange) => setState({ comparisonDateRange }),\n results: loadDataResults(inputs, clientContext),\n resultsComparison: loadDataResultsComparison(inputs, state, clientContext),\n});\n\nexport const kpiChartNumberComparisonPro = {\n Component,\n meta,\n preview,\n previewConfig,\n config: {\n props,\n },\n results: {\n loadDataArgs: loadDataResultsArgs,\n loadData: loadDataResults,\n },\n resultsComparison: {\n loadDataArgs: loadDataResultsComparisonArgs,\n loadData: loadDataResultsComparison,\n },\n} as const;\n"],"names":["KpiChartNumberComparisonPro","props","theme","useTheme","i18nSetup","title","description","tooltip","displayNullAs","resolveI18nProps","hideMenu","changeFontSize","comparisonPeriod","comparisonDateRange","displayChangeAsPercentage","fontSize","measure","primaryDateRange","results","resultsComparison","reversePositiveNegativeColors","percentageDecimalPlaces","setComparisonDateRange","useEffect","newComparisonDateRange","getComparisonPeriodDateRange","value","_b","_a","comparisonValue","_d","_c","themeFormatter","getThemeFormatter","valueFormatter","valueToFormat","comparisonLabel","getComparisonPeriodLabel","resultsCombined","_e","i18n","_f","resultsWithNullsHandled","getKpiResults","jsx","ChartCard","KpiChart","meta","inputs","previewConfig","previewData","preview","definePreview","Component","loadDataResultsArgs","clientContext","getClientContextTimezone","loadDataResults","loadData","loadDataResultsComparisonArgs","loadDataResultsComparison","state","setState","kpiChartNumberComparisonPro"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"definition-C-9Q3Ivg.js","sources":["../src/components/charts/kpis/KpiChartNumberPro/index.tsx","../src/components/charts/kpis/KpiChartNumberPro/definition.ts"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { DataResponse, Measure } from '@embeddable.com/core';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { ChartCard, ChartCardHeaderProps } from '../../shared/ChartCard/ChartCard';\nimport { KpiChart } from '@embeddable.com/remarkable-ui';\nimport { getThemeFormatter } from '../../../../theme/formatter/formatter.utils';\nimport { getKpiResults } from '../kpis.utils';\n\nexport type KpiChartNumberProProp = {\n results: DataResponse;\n measure: Measure;\n fontSize?: number;\n displayNullAs?: string;\n} & ChartCardHeaderProps;\n\nconst KpiChartNumberPro = (props: KpiChartNumberProProp) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { title, description, tooltip, displayNullAs } = resolveI18nProps(props);\n const { measure, fontSize, hideMenu, results } = props;\n\n const value = results.data?.[0]?.[measure.name];\n\n const themeFormatter = getThemeFormatter(theme);\n const valueFormatter = (valueToFormat: number) => themeFormatter.data(measure, valueToFormat);\n\n const resultsWithNullsHandled = getKpiResults(results, measure, Boolean(displayNullAs));\n\n return (\n <ChartCard\n data={resultsWithNullsHandled}\n dimensionsAndMeasures={[measure]}\n errorMessage={results.error}\n description={description}\n title={title}\n tooltip={tooltip}\n hideMenu={hideMenu}\n >\n <KpiChart\n displayNullAs={displayNullAs}\n value={value}\n valueFormatter={valueFormatter}\n valueFontSize={fontSize}\n />\n </ChartCard>\n );\n};\n\nexport default KpiChartNumberPro;\n","import { DataResponse, LoadDataRequest, loadData } from '@embeddable.com/core';\nimport { definePreview, EmbeddedComponentMeta, Inputs } from '@embeddable.com/react';\nimport Component from './index';\nimport { inputs } from '../../../component.inputs.constants';\nimport { previewData } from '../../../preview.data.constants';\n\nconst meta = {\n name: 'KpiChartNumberPro',\n label: 'Kpi Chart - Number',\n description:\n 'Single big-number KPI showing one measure. Use for headline metrics without comparison.',\n category: 'Kpi Charts',\n inputs: [\n inputs.dataset,\n inputs.measure,\n inputs.title,\n inputs.description,\n inputs.displayNullAs,\n inputs.tooltip,\n inputs.fontSize,\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nconst previewConfig = {\n measure: { ...previewData.measure },\n results: previewData.results1Measure,\n fontSize: 100,\n hideMenu: true,\n};\n\nconst preview = definePreview(Component, previewConfig);\n\nconst loadDataResultsArgs = (inputs: Inputs<typeof meta>): LoadDataRequest => ({\n from: inputs.dataset,\n select: [inputs.measure],\n});\n\nconst loadDataResults = (inputs: Inputs<typeof meta>): DataResponse =>\n loadData(loadDataResultsArgs(inputs));\n\nconst props = (inputs: Inputs<typeof meta>) => ({\n ...inputs,\n results: loadDataResults(inputs),\n});\n\nexport const kpiChartNumberPro = {\n Component,\n meta,\n preview,\n previewConfig,\n config: {\n props,\n },\n results: {\n loadDataArgs: loadDataResultsArgs,\n loadData: loadDataResults,\n },\n} as const;\n"],"names":["KpiChartNumberPro","props","theme","useTheme","i18nSetup","title","description","tooltip","displayNullAs","resolveI18nProps","measure","fontSize","hideMenu","results","value","_b","_a","themeFormatter","getThemeFormatter","valueFormatter","valueToFormat","resultsWithNullsHandled","getKpiResults","jsx","ChartCard","KpiChart","meta","inputs","previewConfig","previewData","preview","definePreview","Component","loadDataResultsArgs","loadDataResults","loadData","kpiChartNumberPro"],"mappings":";;;;;;;;AAiBA,MAAMA,IAAoB,CAACC,MAAiC;;AAC1D,QAAMC,IAAeC,EAAA;AACrB,EAAAC,EAAUF,CAAK;AAEf,QAAM,EAAE,OAAAG,GAAO,aAAAC,GAAa,SAAAC,GAAS,eAAAC,EAAA,IAAkBC,EAAiBR,CAAK,GACvE,EAAE,SAAAS,GAAS,UAAAC,GAAU,UAAAC,GAAU,SAAAC,MAAYZ,GAE3Ca,KAAQC,KAAAC,IAAAH,EAAQ,SAAR,gBAAAG,EAAe,OAAf,gBAAAD,EAAoBL,EAAQ,OAEpCO,IAAiBC,EAAkBhB,CAAK,GACxCiB,IAAiB,CAACC,MAA0BH,EAAe,KAAKP,GAASU,CAAa,GAEtFC,IAA0BC,EAAcT,GAASH,GAAS,EAAQF,CAAc;AAEtF,SACEe,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAMH;AAAA,MACN,uBAAuB,CAACX,CAAO;AAAA,MAC/B,cAAcG,EAAQ;AAAA,MACtB,aAAAP;AAAA,MACA,OAAAD;AAAA,MACA,SAAAE;AAAA,MACA,UAAAK;AAAA,MAEA,UAAAW,gBAAAA,EAAAA;AAAAA,QAACE;AAAA,QAAA;AAAA,UACC,eAAAjB;AAAA,UACA,OAAAM;AAAA,UACA,gBAAAK;AAAA,UACA,eAAeR;AAAA,QAAA;AAAA,MAAA;AAAA,IACjB;AAAA,EAAA;AAGN;;;8CC3CMe,IAAO;AAAA,EACX,MAAM;AAAA,EACN,OAAO;AAAA,EACP,aACE;AAAA,EACF,UAAU;AAAA,EACV,QAAQ;AAAA,IACNC,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,EAAA;AAEX,GAEMC,IAAgB;AAAA,EACpB,SAAS,EAAE,GAAGC,EAAY,QAAA;AAAA,EAC1B,SAASA,EAAY;AAAA,EACrB,UAAU;AAAA,EACV,UAAU;AACZ,GAEMC,IAAUC,EAAcC,GAAWJ,CAAa,GAEhDK,IAAsB,CAACN,OAAkD;AAAA,EAC7E,MAAMA,EAAO;AAAA,EACb,QAAQ,CAACA,EAAO,OAAO;AACzB,IAEMO,IAAkB,CAACP,MACvBQ,EAASF,EAAoBN,CAAM,CAAC,GAEhC1B,IAAQ,CAAC0B,OAAiC;AAAA,EAC9C,GAAGA;AAAAA,EACH,SAASO,EAAgBP,CAAM;AACjC,IAEaS,IAAoB;AAAA,EAAA,WAC/BJ;AAAAA,EACA,MAAAN;AAAA,EACA,SAAAI;AAAA,EACA,eAAAF;AAAA,EACA,QAAQ;AAAA,IACN,OAAA3B;AAAA,EAAA;AAAA,EAEF,SAAS;AAAA,IACP,cAAcgC;AAAA,IACd,UAAUC;AAAA,EAAA;AAEd;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"definition-CJuA3KVA.js","sources":["../src/components/charts/pies/DonutLabelChartPro/index.tsx","../src/components/charts/pies/DonutLabelChartPro/definition.ts"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { getPieChartProOptions, getPieChartProData, createPieClickHandler } from '../pies.utils';\nimport { DefaultPieChartProps } from '../pies.types';\nimport { DataResponse, Measure } from '@embeddable.com/core';\nimport { getThemeFormatter } from '../../../../theme/formatter/formatter.utils';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { ChartCard } from '../../shared/ChartCard/ChartCard';\nimport { DonutChart } from '@embeddable.com/remarkable-ui';\nimport { mergician } from 'mergician';\nimport { resolveI18nProps } from '../../../component.utils';\n\nexport type DonutLabelChartProProps = DefaultPieChartProps & {\n innerLabelMeasure: Measure;\n innerLabelText?: string;\n resultsInnerLabel: DataResponse;\n};\n\nconst DonutChartPro = (props: DonutLabelChartProProps) => {\n const theme = useTheme() as Theme;\n const themeFormatter = getThemeFormatter(theme);\n i18nSetup(theme);\n\n const {\n dimension,\n maxLegendItems,\n measure,\n results,\n showLegend,\n showTooltips,\n showValueLabels,\n resultsInnerLabel,\n innerLabelMeasure,\n } = props;\n\n const { description, title, tooltip, innerLabelText, onSegmentClick } = resolveI18nProps(props);\n\n const { hideMenu } = props;\n\n const data = getPieChartProData(\n { data: results.data, dimension, measure, maxLegendItems },\n theme,\n );\n\n const handleClick = createPieClickHandler({ results, dimension, onClicked: onSegmentClick });\n\n const label = themeFormatter.data(\n innerLabelMeasure,\n resultsInnerLabel?.data?.[0]?.[innerLabelMeasure.name],\n );\n\n const options = mergician(\n getPieChartProOptions({ measure, dimension }, theme),\n theme.charts.donutLabelChartPro?.options ?? {},\n );\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[dimension, measure]}\n errorMessage={results.error}\n description={description}\n title={title}\n tooltip={tooltip}\n hideMenu={hideMenu}\n >\n <DonutChart\n label={label}\n subLabel={innerLabelText}\n data={data}\n options={options}\n showLegend={showLegend}\n showTooltips={showTooltips}\n showValueLabels={showValueLabels}\n onClick={handleClick}\n />\n </ChartCard>\n );\n};\n\nexport default DonutChartPro;\n","import { DataResponse, LoadDataRequest, Measure, Value, loadData } from '@embeddable.com/core';\nimport { PieChartClickArg } from '../pies.types';\nimport { definePreview, EmbeddedComponentMeta, Inputs } from '@embeddable.com/react';\nimport Component from './index';\nimport { inputs } from '../../../component.inputs.constants';\nimport { previewData } from '../../../preview.data.constants';\nimport { subInputs } from '../../../component.subinputs.constants';\n\nconst meta = {\n name: 'DonutLabelChartPro',\n label: 'Donut Label Chart',\n description:\n 'Same as DonutChartPro with a customizable center text label. Use when the center space can provide a useful summary (e.g. total, label).',\n category: 'Pie Charts',\n inputs: [\n inputs.dataset,\n { ...inputs.measure, inputs: [...inputs.measure.inputs, subInputs.showValueAsPercentage] },\n inputs.dimension,\n { ...inputs.measure, name: 'innerLabelMeasure', label: 'Inner label measure' },\n {\n ...inputs.string,\n name: 'innerLabelText',\n label: 'Inner label text',\n description: 'Text to display inside the donut chart',\n category: 'Component Data',\n },\n inputs.title,\n inputs.description,\n inputs.tooltip,\n inputs.showLegend,\n inputs.maxLegendItems,\n inputs.showTooltips,\n inputs.showValueLabels,\n ],\n events: [\n {\n name: 'onSegmentClick',\n label: 'A segment is clicked',\n properties: [\n {\n name: 'dimensionValue',\n label: 'Clicked dimension',\n type: 'string',\n },\n {\n name: 'dimensionTimeRange',\n label: 'Clicked dimension time range',\n type: 'timeRange',\n },\n ],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nconst previewConfig = {\n dimension: previewData.dimension,\n measure: previewData.measure,\n results: previewData.results1Measure1Dimension,\n innerLabelText: 'Total',\n resultsInnerLabel: {\n isLoading: false,\n error: undefined,\n data: [{ users: 500 }],\n },\n innerLabelMeasure: {\n name: 'users',\n title: 'Users',\n nativeType: 'number',\n __type__: 'measure',\n } as Measure,\n showValueLabels: false,\n hideMenu: true,\n};\n\nconst preview = definePreview(Component, previewConfig);\n\nconst loadDataResultsArgs = (inputs: Inputs<typeof meta>): LoadDataRequest => ({\n from: inputs.dataset,\n select: [inputs.measure, inputs.dimension],\n});\n\nconst loadDataResults = (inputs: Inputs<typeof meta>): DataResponse =>\n loadData(loadDataResultsArgs(inputs));\n\nconst loadDataResultsInnerLabelArgs = (inputs: Inputs<typeof meta>): LoadDataRequest => ({\n from: inputs.dataset,\n select: [inputs.innerLabelMeasure],\n});\n\nconst loadDataResultsInnerLabel = (inputs: Inputs<typeof meta>): DataResponse =>\n loadData(loadDataResultsInnerLabelArgs(inputs));\n\nconst events = {\n onSegmentClick: (value: PieChartClickArg) => ({\n dimensionValue: value.dimensionValue ?? Value.noFilter(),\n dimensionTimeRange: value.dimensionTimeRange ?? Value.noFilter(),\n }),\n};\n\nconst props = (inputs: Inputs<typeof meta>) => ({\n ...inputs,\n results: loadDataResults(inputs),\n resultsInnerLabel: loadDataResultsInnerLabel(inputs),\n});\n\nexport const donutLabelChartPro = {\n Component,\n meta,\n preview,\n previewConfig,\n config: {\n props,\n events,\n },\n results: {\n loadDataArgs: loadDataResultsArgs,\n loadData: loadDataResults,\n },\n resultsInnerLabel: {\n loadDataArgs: loadDataResultsInnerLabelArgs,\n loadData: loadDataResultsInnerLabel,\n },\n} as const;\n"],"names":["DonutChartPro","props","theme","useTheme","themeFormatter","getThemeFormatter","i18nSetup","dimension","maxLegendItems","measure","results","showLegend","showTooltips","showValueLabels","resultsInnerLabel","innerLabelMeasure","description","title","tooltip","innerLabelText","onSegmentClick","resolveI18nProps","hideMenu","data","getPieChartProData","handleClick","createPieClickHandler","label","_b","_a","options","mergician","getPieChartProOptions","_c","jsx","ChartCard","DonutChart","meta","inputs","subInputs","previewConfig","previewData","preview","definePreview","Component","loadDataResultsArgs","loadDataResults","loadData","loadDataResultsInnerLabelArgs","loadDataResultsInnerLabel","events","value","Value","donutLabelChartPro"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"definition-DQdIv_3r.js","sources":["../src/components/charts/lines/LineChartComparisonWithKpiTabsPro/LineChartComparisonWithKpiTabsPro.utils.tsx","../src/components/charts/lines/LineChartComparisonWithKpiTabsPro/index.tsx","../src/components/charts/lines/LineChartComparisonWithKpiTabsPro/definition.ts"],"sourcesContent":["import { ReactNode } from 'react';\nimport { DataResponse, Measure } from '@embeddable.com/core';\nimport { ChartTabsProps, KpiTrend } from '@embeddable.com/remarkable-ui';\nimport { GetThemeFormatter } from '../../../../theme/formatter/formatter.utils';\n\ntype ComparisonKpiTabsParams = {\n measures: Measure[];\n resultsKpis: DataResponse | undefined;\n resultsKpisComparison: DataResponse | undefined;\n showDataComparison: boolean;\n themeFormatter: GetThemeFormatter;\n};\n\nexport const getComparisonKpiTabsItems = ({\n measures,\n resultsKpis,\n resultsKpisComparison,\n showDataComparison,\n themeFormatter,\n}: ComparisonKpiTabsParams): ChartTabsProps['items'] =>\n measures.map((measure) => {\n const kpiValue = resultsKpis?.data?.[0]?.[measure.name];\n const kpiComparisonValue = resultsKpisComparison?.data?.[0]?.[measure.name];\n const displayChangeAsPercentage = measure.inputs?.['displayChangeAsPercentage'] as\n | boolean\n | undefined;\n const percentageDecimalPlaces = measure.inputs?.['percentageDecimalPlaces'] as\n | number\n | undefined;\n return {\n id: measure.name,\n label: themeFormatter.dimensionOrMeasureTitle(measure),\n value: kpiValue == null ? '-' : themeFormatter.data(measure, kpiValue),\n slot: getKpiTrendSlot({\n measure,\n kpiValue,\n kpiComparisonValue,\n showDataComparison,\n displayChangeAsPercentage,\n percentageDecimalPlaces,\n themeFormatter,\n }),\n };\n });\n\nconst getKpiTrendSlot = ({\n measure,\n kpiValue,\n kpiComparisonValue,\n showDataComparison,\n displayChangeAsPercentage,\n percentageDecimalPlaces,\n themeFormatter,\n}: {\n measure: Measure;\n kpiValue: unknown;\n kpiComparisonValue: unknown;\n showDataComparison: boolean;\n displayChangeAsPercentage?: boolean;\n percentageDecimalPlaces?: number;\n themeFormatter: GetThemeFormatter;\n}): ReactNode => {\n if (!showDataComparison || kpiValue == null || kpiComparisonValue == null) return undefined;\n\n const diff = (kpiValue as number) - (kpiComparisonValue as number);\n const isPositive = diff > 0;\n const reverseTrend = measure.inputs?.['invertChangeColors'] ? isPositive : !isPositive;\n const trendText = getTrendText({\n diff,\n kpiComparisonValue: kpiComparisonValue as number,\n displayChangeAsPercentage,\n percentageDecimalPlaces,\n measure,\n themeFormatter,\n });\n\n return <KpiTrend value={trendText} reverseTrend={reverseTrend} />;\n};\n\nconst getTrendText = ({\n diff,\n kpiComparisonValue,\n displayChangeAsPercentage,\n percentageDecimalPlaces,\n measure,\n themeFormatter,\n}: {\n diff: number;\n kpiComparisonValue: number;\n displayChangeAsPercentage?: boolean;\n percentageDecimalPlaces?: number;\n measure: Measure;\n themeFormatter: GetThemeFormatter;\n}): string => {\n const isPositive = diff > 0;\n const sign = isPositive ? '+' : '';\n if (displayChangeAsPercentage && kpiComparisonValue !== 0) {\n const pct = (diff / kpiComparisonValue) * 100;\n return `${sign}${pct.toFixed(percentageDecimalPlaces ?? 1)}%`;\n }\n return `${sign}${themeFormatter.data(measure, diff)}`;\n};\n","import { useEffect, useState } from 'react';\nimport { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { DataResponse } from '@embeddable.com/core';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { ChartCard } from '../../shared/ChartCard/ChartCard';\nimport { useFillGaps } from '../../charts.fillGaps.hooks';\nimport { ChartTabs, LineChart } from '@embeddable.com/remarkable-ui';\nimport { ChartGranularitySelectField } from '../../shared/ChartGranularitySelectField/ChartGranularitySelectField';\nimport { getComparisonKpiTabsItems } from './LineChartComparisonWithKpiTabsPro.utils';\nimport {\n createComparisonClickHandler,\n getLineChartComparisonProData,\n getLineChartComparisonProOptions,\n} from '../LineChartComparisonDefaultPro/LineChartComparisonDefaultPro.utils';\nimport { LineChartComparisonDefaultProProps } from '../LineChartComparisonDefaultPro';\nimport { getThemeFormatter } from '../../../../theme/formatter/formatter.utils';\nimport { getComparisonPeriodDateRange } from '../../../utils/timeRange.utils';\n\nexport type LineChartComparisonWithKpiTabsProProps = LineChartComparisonDefaultProProps & {\n resultsKpis: DataResponse;\n resultsKpisComparison?: DataResponse;\n};\n\nconst LineChartComparisonWithKpiTabsPro = (props: LineChartComparisonWithKpiTabsProProps) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { title, description, tooltip, xAxisLabel, yAxisLabel } = resolveI18nProps(props);\n const {\n hideMenu,\n measures,\n xAxis,\n reverseXAxis,\n showLegend,\n showLogarithmicScale,\n showTooltips,\n showValueLabels,\n yAxisRangeMax,\n yAxisRangeMin,\n comparisonPeriod,\n comparisonDateRange,\n showComparisonAxis,\n primaryDateRange,\n setGranularity,\n setComparisonDateRange,\n onLineClicked,\n resultsKpis,\n resultsKpisComparison,\n } = props;\n\n const [activeMeasureName, setActiveMeasureName] = useState(measures[0]?.name ?? '');\n const activeMeasure = measures.find((m) => m.name === activeMeasureName);\n\n useEffect(() => {\n if (measures.length === 0) return;\n if (measures.some((m) => m.name === activeMeasureName)) return;\n setActiveMeasureName(measures[0]!.name);\n }, [measures, activeMeasureName]);\n\n useEffect(() => {\n const newComparisonDateRange = getComparisonPeriodDateRange(\n primaryDateRange,\n comparisonPeriod,\n theme,\n );\n setComparisonDateRange?.(newComparisonDateRange);\n }, [comparisonPeriod, JSON.stringify(primaryDateRange), theme]);\n\n const results = useFillGaps({\n results: props.results,\n dimension: xAxis,\n externalDateBounds: primaryDateRange,\n });\n\n const resultsComparison = useFillGaps({\n results: props.resultsComparison,\n dimension: xAxis,\n externalDateBounds: comparisonDateRange,\n });\n\n const showDataComparison = Boolean(primaryDateRange && comparisonPeriod);\n\n const data = getLineChartComparisonProData(\n {\n data: results.data,\n dataComparison: showDataComparison ? (resultsComparison?.data ?? []) : undefined,\n dimension: xAxis,\n measures: activeMeasure ? [activeMeasure] : [],\n hasMinMaxYAxisRange: Boolean(yAxisRangeMin != null || yAxisRangeMax != null),\n },\n theme,\n );\n\n const options = getLineChartComparisonProOptions(\n {\n data,\n dimension: xAxis,\n measures: activeMeasure ? [activeMeasure] : [],\n xAxisLabel,\n showComparisonAxis,\n showDataComparison,\n },\n theme,\n );\n\n const handleClick = createComparisonClickHandler({\n data,\n measures: activeMeasure ? [activeMeasure] : [],\n dimension: xAxis,\n onClicked: onLineClicked,\n });\n\n const resultsCombined: DataResponse = {\n isLoading: Boolean(results.isLoading || resultsComparison?.isLoading),\n data:\n !results?.data && !resultsComparison?.data\n ? undefined\n : [...(results.data ?? []), ...(resultsComparison?.data ?? [])],\n };\n\n const granularitySelectorHasMarginTop = !title && !description && !tooltip;\n const themeFormatter = getThemeFormatter(theme);\n\n const chartTabsItems = getComparisonKpiTabsItems({\n measures,\n resultsKpis,\n resultsKpisComparison,\n showDataComparison,\n themeFormatter,\n });\n\n return (\n <ChartCard\n data={resultsCombined}\n dimensionsAndMeasures={[...measures, xAxis]}\n errorMessage={results.error || resultsComparison?.error}\n description={description}\n title={title}\n tooltip={tooltip}\n hideMenu={hideMenu}\n >\n <ChartTabs items={chartTabsItems} value={activeMeasureName} onChange={setActiveMeasureName} />\n {setGranularity && (\n <ChartGranularitySelectField\n hasMarginTop={granularitySelectorHasMarginTop}\n dimension={xAxis}\n onChange={setGranularity}\n />\n )}\n <LineChart\n data={data}\n reverseXAxis={reverseXAxis}\n showLegend={showLegend}\n showLogarithmicScale={showLogarithmicScale}\n showTooltips={showTooltips}\n showValueLabels={showValueLabels}\n xAxisLabel={xAxisLabel}\n yAxisLabel={yAxisLabel}\n yAxisRangeMax={yAxisRangeMax}\n yAxisRangeMin={yAxisRangeMin}\n options={options}\n onClick={handleClick}\n />\n </ChartCard>\n );\n};\n\nexport { LineChartComparisonWithKpiTabsPro };\nexport default LineChartComparisonWithKpiTabsPro;\n","import {\n Dimension,\n Granularity,\n LoadDataRequest,\n TimeRange,\n Value,\n loadData,\n} from '@embeddable.com/core';\nimport { definePreview, EmbeddedComponentMeta, Inputs } from '@embeddable.com/react';\nimport Component from './index';\nimport { LineChartProOptionsClickArg } from '../lines.types';\nimport { subInputs } from '../../../component.subinputs.constants';\nimport { previewData } from '../../../preview.data.constants';\nimport { getDimensionWithGranularity } from '../../utils/granularity.utils';\nimport { getClientContextTimezone } from '../../../../theme/utils/clientContext.utils';\nimport { ThemeClientContext } from '../../../../theme/theme.types';\nimport {\n lineChartComparisonDefaultPro,\n LineChartComparisonDefaultProMeasuresInput,\n LineChartComparisonDefaultProState,\n} from '../LineChartComparisonDefaultPro/definition';\n\nconst meta = {\n ...lineChartComparisonDefaultPro.meta,\n name: 'LineChartComparisonWithKpiTabsPro',\n label: 'Line Chart Comparison - With KPI Tabs',\n description:\n 'Line chart with comparison overlay and KPI tabs. Takes one or more measures, a time dimension, a timeRange variable, and a comparison period.',\n inputs: [\n ...lineChartComparisonDefaultPro.meta.inputs.map((input) => {\n if (input.name === 'measures') {\n const measuresInput = input as LineChartComparisonDefaultProMeasuresInput;\n return {\n ...measuresInput,\n inputs: [\n ...measuresInput.inputs,\n {\n ...subInputs.boolean,\n name: 'invertChangeColors',\n label: 'Reverse positive/negative colors',\n defaultValue: false,\n },\n {\n ...subInputs.boolean,\n name: 'displayChangeAsPercentage',\n label: 'Display change as %',\n defaultValue: false,\n },\n {\n ...subInputs.number,\n name: 'percentageDecimalPlaces',\n label: 'Percentage decimal places',\n defaultValue: 1,\n },\n ],\n };\n }\n return input;\n }),\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nexport type LineChartComparisonWithKpiTabsProState = LineChartComparisonDefaultProState;\n\nconst previewConfig = {\n xAxis: previewData.dimension,\n measures: [previewData.measure, previewData.measureVariant],\n results: previewData.results2Measures1Dimension,\n resultsComparison: previewData.results2Measures1Dimension,\n resultsKpis: previewData.results2Measures,\n resultsKpisComparison: previewData.results2MeasuresVariant,\n comparisonPeriod: 'Previous period',\n comparisonDateRange: { relativeTimeString: 'Previous period', from: undefined, to: undefined },\n primaryDateRange: { relativeTimeString: 'This week', from: undefined, to: undefined },\n hideMenu: true,\n};\n\nconst preview = definePreview(Component, previewConfig);\n\nconst loadDataResults = lineChartComparisonDefaultPro.results.loadData;\nconst loadDataResultsComparison = lineChartComparisonDefaultPro.resultsComparison.loadData;\n\nconst loadDataResultsKpisArgs = (\n inputs: Inputs<typeof meta>,\n xAxis: Dimension,\n clientContext?: ThemeClientContext,\n): LoadDataRequest => {\n const timeProperty =\n xAxis.nativeType === 'time' ? xAxis : inputs.timePropertyForNonTimeDimensions;\n return {\n from: inputs.dataset,\n select: [...inputs.measures],\n filters:\n inputs.primaryDateRange && timeProperty\n ? [{ property: timeProperty, operator: 'inDateRange', value: inputs.primaryDateRange }]\n : undefined,\n timezone: getClientContextTimezone(clientContext?.timezone),\n };\n};\n\nconst loadDataResultsKpis = (\n inputs: Inputs<typeof meta>,\n xAxis: Dimension,\n clientContext: ThemeClientContext,\n) => loadData(loadDataResultsKpisArgs(inputs, xAxis, clientContext));\n\nconst loadDataResultsKpisComparisonArgs = (\n inputs: Inputs<typeof meta>,\n xAxis: Dimension,\n comparisonDateRange: TimeRange,\n clientContext: ThemeClientContext,\n): LoadDataRequest => {\n const timeProperty =\n xAxis.nativeType === 'time' ? xAxis : inputs.timePropertyForNonTimeDimensions;\n return {\n from: inputs.dataset,\n select: [...inputs.measures],\n filters: [{ property: timeProperty, operator: 'inDateRange', value: comparisonDateRange }],\n timezone: getClientContextTimezone(clientContext?.timezone),\n };\n};\n\nconst loadDataResultsKpisComparison = (\n inputs: Inputs<typeof meta>,\n xAxis: Dimension,\n state: LineChartComparisonWithKpiTabsProState,\n clientContext: ThemeClientContext,\n) => {\n const timeProperty =\n xAxis.nativeType === 'time' ? xAxis : inputs.timePropertyForNonTimeDimensions;\n if (inputs.primaryDateRange && timeProperty && state?.comparisonDateRange) {\n return loadData(\n loadDataResultsKpisComparisonArgs(inputs, xAxis, state.comparisonDateRange, clientContext),\n );\n }\n return undefined;\n};\n\nconst events = {\n onLineClicked: (value: LineChartProOptionsClickArg) => ({\n axisDimensionValue: value.dimensionValue ?? Value.noFilter(),\n axisDimensionTimeRange: value.dimensionTimeRange ?? Value.noFilter(),\n }),\n};\n\nconst props = (\n inputs: Inputs<typeof meta>,\n [state, setState]: [\n LineChartComparisonWithKpiTabsProState,\n (state: LineChartComparisonWithKpiTabsProState) => void,\n ],\n clientContext: ThemeClientContext,\n) => {\n const xAxisWithGranularity = getDimensionWithGranularity(inputs.xAxis, state?.granularity);\n\n return {\n ...inputs,\n xAxis: xAxisWithGranularity,\n setGranularity: (granularity: Granularity) => setState({ ...state, granularity }),\n comparisonDateRange: state?.comparisonDateRange,\n setComparisonDateRange: (comparisonDateRange: TimeRange) =>\n setState({ ...state, comparisonDateRange }),\n results: loadDataResults(inputs as never, xAxisWithGranularity, clientContext),\n resultsComparison: loadDataResultsComparison(\n inputs as never,\n xAxisWithGranularity,\n state,\n clientContext,\n ),\n resultsKpis: loadDataResultsKpis(inputs, xAxisWithGranularity, clientContext),\n resultsKpisComparison: loadDataResultsKpisComparison(\n inputs,\n xAxisWithGranularity,\n state,\n clientContext,\n ),\n };\n};\n\nexport const lineChartComparisonWithKpiTabsPro = {\n Component,\n meta,\n preview,\n previewConfig,\n config: { props, events },\n results: lineChartComparisonDefaultPro.results,\n resultsComparison: lineChartComparisonDefaultPro.resultsComparison,\n resultsKpis: {\n loadDataArgs: loadDataResultsKpisArgs,\n loadData: loadDataResultsKpis,\n },\n resultsKpisComparison: {\n loadDataArgs: loadDataResultsKpisComparisonArgs,\n loadData: loadDataResultsKpisComparison,\n },\n} as const;\n"],"names":["getComparisonKpiTabsItems","measures","resultsKpis","resultsKpisComparison","showDataComparison","themeFormatter","measure","kpiValue","_b","_a","kpiComparisonValue","_d","_c","displayChangeAsPercentage","_e","percentageDecimalPlaces","_f","getKpiTrendSlot","diff","isPositive","reverseTrend","trendText","getTrendText","jsx","KpiTrend","sign","pct","LineChartComparisonWithKpiTabsPro","props","theme","useTheme","i18nSetup","title","description","tooltip","xAxisLabel","yAxisLabel","resolveI18nProps","hideMenu","xAxis","reverseXAxis","showLegend","showLogarithmicScale","showTooltips","showValueLabels","yAxisRangeMax","yAxisRangeMin","comparisonPeriod","comparisonDateRange","showComparisonAxis","primaryDateRange","setGranularity","setComparisonDateRange","onLineClicked","activeMeasureName","setActiveMeasureName","useState","activeMeasure","m","useEffect","newComparisonDateRange","getComparisonPeriodDateRange","results","useFillGaps","resultsComparison","data","getLineChartComparisonProData","options","getLineChartComparisonProOptions","handleClick","createComparisonClickHandler","resultsCombined","granularitySelectorHasMarginTop","getThemeFormatter","chartTabsItems","jsxs","ChartCard","ChartTabs","ChartGranularitySelectField","LineChart","meta","lineChartComparisonDefaultPro","input","measuresInput","subInputs","previewConfig","previewData","preview","definePreview","Component","loadDataResults","loadDataResultsComparison","loadDataResultsKpisArgs","inputs","clientContext","timeProperty","getClientContextTimezone","loadDataResultsKpis","loadData","loadDataResultsKpisComparisonArgs","loadDataResultsKpisComparison","state","events","value","Value","setState","xAxisWithGranularity","getDimensionWithGranularity","granularity","lineChartComparisonWithKpiTabsPro"],"mappings":";;;;;;;;;;;;;AAaO,MAAMA,KAA4B,CAAC;AAAA,EACxC,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA,uBAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,gBAAAC;AACF,MACEJ,EAAS,IAAI,CAACK,MAAY;;AACxB,QAAMC,KAAWC,KAAAC,IAAAP,KAAA,gBAAAA,EAAa,SAAb,gBAAAO,EAAoB,OAApB,gBAAAD,EAAyBF,EAAQ,OAC5CI,KAAqBC,KAAAC,IAAAT,KAAA,gBAAAA,EAAuB,SAAvB,gBAAAS,EAA8B,OAA9B,gBAAAD,EAAmCL,EAAQ,OAChEO,KAA4BC,IAAAR,EAAQ,WAAR,gBAAAQ,EAAiB,2BAG7CC,KAA0BC,IAAAV,EAAQ,WAAR,gBAAAU,EAAiB;AAGjD,SAAO;AAAA,IACL,IAAIV,EAAQ;AAAA,IACZ,OAAOD,EAAe,wBAAwBC,CAAO;AAAA,IACrD,OAAOC,KAAY,OAAO,MAAMF,EAAe,KAAKC,GAASC,CAAQ;AAAA,IACrE,MAAMU,GAAgB;AAAA,MACpB,SAAAX;AAAA,MACA,UAAAC;AAAA,MACA,oBAAAG;AAAA,MACA,oBAAAN;AAAA,MACA,2BAAAS;AAAA,MACA,yBAAAE;AAAA,MACA,gBAAAV;AAAA,IAAA,CACD;AAAA,EAAA;AAEL,CAAC,GAEGY,KAAkB,CAAC;AAAA,EACvB,SAAAX;AAAA,EACA,UAAAC;AAAA,EACA,oBAAAG;AAAA,EACA,oBAAAN;AAAA,EACA,2BAAAS;AAAA,EACA,yBAAAE;AAAA,EACA,gBAAAV;AACF,MAQiB;;AACf,MAAI,CAACD,KAAsBG,KAAY,QAAQG,KAAsB,KAAM;AAE3E,QAAMQ,IAAQX,IAAuBG,GAC/BS,IAAaD,IAAO,GACpBE,KAAeX,IAAAH,EAAQ,WAAR,QAAAG,EAAiB,qBAAwBU,IAAa,CAACA,GACtEE,IAAYC,GAAa;AAAA,IAC7B,MAAAJ;AAAA,IACA,oBAAAR;AAAA,IACA,2BAAAG;AAAA,IACA,yBAAAE;AAAA,IACA,SAAAT;AAAA,IACA,gBAAAD;AAAA,EAAA,CACD;AAED,SAAOkB,gBAAAA,EAAAA,IAACC,IAAA,EAAS,OAAOH,GAAW,cAAAD,EAAA,CAA4B;AACjE,GAEME,KAAe,CAAC;AAAA,EACpB,MAAAJ;AAAA,EACA,oBAAAR;AAAA,EACA,2BAAAG;AAAA,EACA,yBAAAE;AAAA,EACA,SAAAT;AAAA,EACA,gBAAAD;AACF,MAOc;AAEZ,QAAMoB,IADaP,IAAO,IACA,MAAM;AAChC,MAAIL,KAA6BH,MAAuB,GAAG;AACzD,UAAMgB,IAAOR,IAAOR,IAAsB;AAC1C,WAAO,GAAGe,CAAI,GAAGC,EAAI,QAAQX,KAA2B,CAAC,CAAC;AAAA,EAC5D;AACA,SAAO,GAAGU,CAAI,GAAGpB,EAAe,KAAKC,GAASY,CAAI,CAAC;AACrD,GC5EMS,IAAoC,CAACC,MAAkD;;AAC3F,QAAMC,IAAeC,GAAA;AACrB,EAAAC,GAAUF,CAAK;AAEf,QAAM,EAAE,OAAAG,GAAO,aAAAC,GAAa,SAAAC,GAAS,YAAAC,GAAY,YAAAC,EAAA,IAAeC,GAAiBT,CAAK,GAChF;AAAA,IACJ,UAAAU;AAAA,IACA,UAAArC;AAAA,IACA,OAAAsC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,eAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,wBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,aAAAnD;AAAA,IACA,uBAAAC;AAAA,EAAA,IACEyB,GAEE,CAAC0B,GAAmBC,CAAoB,IAAIC,KAAS/C,IAAAR,EAAS,CAAC,MAAV,gBAAAQ,EAAa,SAAQ,EAAE,GAC5EgD,IAAgBxD,EAAS,KAAK,CAACyD,MAAMA,EAAE,SAASJ,CAAiB;AAEvE,EAAAK,EAAU,MAAM;AACd,IAAI1D,EAAS,WAAW,MACpBA,EAAS,KAAK,CAACyD,MAAMA,EAAE,SAASJ,CAAiB,KACrDC,EAAqBtD,EAAS,CAAC,EAAG,IAAI;AAAA,EACxC,GAAG,CAACA,GAAUqD,CAAiB,CAAC,GAEhCK,EAAU,MAAM;AACd,UAAMC,IAAyBC;AAAA,MAC7BX;AAAA,MACAH;AAAA,MACAlB;AAAA,IAAA;AAEF,IAAAuB,KAAA,QAAAA,EAAyBQ;AAAA,EAC3B,GAAG,CAACb,GAAkB,KAAK,UAAUG,CAAgB,GAAGrB,CAAK,CAAC;AAE9D,QAAMiC,IAAUC,EAAY;AAAA,IAC1B,SAASnC,EAAM;AAAA,IACf,WAAWW;AAAA,IACX,oBAAoBW;AAAA,EAAA,CACrB,GAEKc,IAAoBD,EAAY;AAAA,IACpC,SAASnC,EAAM;AAAA,IACf,WAAWW;AAAA,IACX,oBAAoBS;AAAA,EAAA,CACrB,GAEK5C,IAAqB,GAAQ8C,KAAoBH,IAEjDkB,IAAOC;AAAA,IACX;AAAA,MACE,MAAMJ,EAAQ;AAAA,MACd,gBAAgB1D,KAAsB4D,KAAA,gBAAAA,EAAmB,SAAQ,CAAA,IAAM;AAAA,MACvE,WAAWzB;AAAA,MACX,UAAUkB,IAAgB,CAACA,CAAa,IAAI,CAAA;AAAA,MAC5C,qBAA6BX,KAAiB,QAAQD,KAAiB;AAAA,IAAI;AAAA,IAE7EhB;AAAA,EAAA,GAGIsC,IAAUC;AAAA,IACd;AAAA,MACE,MAAAH;AAAA,MACA,WAAW1B;AAAA,MACX,UAAUkB,IAAgB,CAACA,CAAa,IAAI,CAAA;AAAA,MAC5C,YAAAtB;AAAA,MACA,oBAAAc;AAAA,MACA,oBAAA7C;AAAA,IAAA;AAAA,IAEFyB;AAAA,EAAA,GAGIwC,IAAcC,GAA6B;AAAA,IAC/C,MAAAL;AAAA,IACA,UAAUR,IAAgB,CAACA,CAAa,IAAI,CAAA;AAAA,IAC5C,WAAWlB;AAAA,IACX,WAAWc;AAAA,EAAA,CACZ,GAEKkB,IAAgC;AAAA,IACpC,WAAW,GAAQT,EAAQ,aAAaE,KAAA,QAAAA,EAAmB;AAAA,IAC3D,MACE,EAACF,KAAA,QAAAA,EAAS,SAAQ,EAACE,KAAA,QAAAA,EAAmB,QAClC,SACA,CAAC,GAAIF,EAAQ,QAAQ,CAAA,GAAK,IAAIE,KAAA,gBAAAA,EAAmB,SAAQ,CAAA,CAAG;AAAA,EAAA,GAG9DQ,IAAkC,CAACxC,KAAS,CAACC,KAAe,CAACC,GAC7D7B,KAAiBoE,GAAkB5C,CAAK,GAExC6C,KAAiB1E,GAA0B;AAAA,IAC/C,UAAAC;AAAA,IACA,aAAAC;AAAA,IACA,uBAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,gBAAAC;AAAA,EAAA,CACD;AAED,SACEsE,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAML;AAAA,MACN,uBAAuB,CAAC,GAAGtE,GAAUsC,CAAK;AAAA,MAC1C,cAAcuB,EAAQ,UAASE,KAAA,gBAAAA,EAAmB;AAAA,MAClD,aAAA/B;AAAA,MACA,OAAAD;AAAA,MACA,SAAAE;AAAA,MACA,UAAAI;AAAA,MAEA,UAAA;AAAA,QAAAf,gBAAAA,MAACsD,MAAU,OAAOH,IAAgB,OAAOpB,GAAmB,UAAUC,GAAsB;AAAA,QAC3FJ,KACC5B,gBAAAA,EAAAA;AAAAA,UAACuD;AAAA,UAAA;AAAA,YACC,cAAcN;AAAA,YACd,WAAWjC;AAAA,YACX,UAAUY;AAAA,UAAA;AAAA,QAAA;AAAA,QAGd5B,gBAAAA,EAAAA;AAAAA,UAACwD;AAAA,UAAA;AAAA,YACC,MAAAd;AAAA,YACA,cAAAzB;AAAA,YACA,YAAAC;AAAA,YACA,sBAAAC;AAAA,YACA,cAAAC;AAAA,YACA,iBAAAC;AAAA,YACA,YAAAT;AAAA,YACA,YAAAC;AAAA,YACA,eAAAS;AAAA,YACA,eAAAC;AAAA,YACA,SAAAqB;AAAA,YACA,SAASE;AAAA,UAAA;AAAA,QAAA;AAAA,MACX;AAAA,IAAA;AAAA,EAAA;AAGN;;;;8CCjJMW,KAAO;AAAA,EACX,GAAGC,EAA8B;AAAA,EACjC,MAAM;AAAA,EACN,OAAO;AAAA,EACP,aACE;AAAA,EACF,QAAQ;AAAA,IACN,GAAGA,EAA8B,KAAK,OAAO,IAAI,CAACC,MAAU;AAC1D,UAAIA,EAAM,SAAS,YAAY;AAC7B,cAAMC,IAAgBD;AACtB,eAAO;AAAA,UACL,GAAGC;AAAA,UACH,QAAQ;AAAA,YACN,GAAGA,EAAc;AAAA,YACjB;AAAA,cACE,GAAGC,EAAU;AAAA,cACb,MAAM;AAAA,cACN,OAAO;AAAA,cACP,cAAc;AAAA,YAAA;AAAA,YAEhB;AAAA,cACE,GAAGA,EAAU;AAAA,cACb,MAAM;AAAA,cACN,OAAO;AAAA,cACP,cAAc;AAAA,YAAA;AAAA,YAEhB;AAAA,cACE,GAAGA,EAAU;AAAA,cACb,MAAM;AAAA,cACN,OAAO;AAAA,cACP,cAAc;AAAA,YAAA;AAAA,UAChB;AAAA,QACF;AAAA,MAEJ;AACA,aAAOF;AAAA,IACT,CAAC;AAAA,EAAA;AAEL,GAIMG,IAAgB;AAAA,EACpB,OAAOC,EAAY;AAAA,EACnB,UAAU,CAACA,EAAY,SAASA,EAAY,cAAc;AAAA,EAC1D,SAASA,EAAY;AAAA,EACrB,mBAAmBA,EAAY;AAAA,EAC/B,aAAaA,EAAY;AAAA,EACzB,uBAAuBA,EAAY;AAAA,EACnC,kBAAkB;AAAA,EAClB,qBAAqB,EAAE,oBAAoB,mBAAmB,MAAM,QAAW,IAAI,OAAA;AAAA,EACnF,kBAAkB,EAAE,oBAAoB,aAAa,MAAM,QAAW,IAAI,OAAA;AAAA,EAC1E,UAAU;AACZ,GAEMC,KAAUC,GAAcC,GAAWJ,CAAa,GAEhDK,KAAkBT,EAA8B,QAAQ,UACxDU,KAA4BV,EAA8B,kBAAkB,UAE5EW,IAA0B,CAC9BC,GACAtD,GACAuD,MACoB;AACpB,QAAMC,IACJxD,EAAM,eAAe,SAASA,IAAQsD,EAAO;AAC/C,SAAO;AAAA,IACL,MAAMA,EAAO;AAAA,IACb,QAAQ,CAAC,GAAGA,EAAO,QAAQ;AAAA,IAC3B,SACEA,EAAO,oBAAoBE,IACvB,CAAC,EAAE,UAAUA,GAAc,UAAU,eAAe,OAAOF,EAAO,iBAAA,CAAkB,IACpF;AAAA,IACN,UAAUG,EAAyBF,KAAA,gBAAAA,EAAe,QAAQ;AAAA,EAAA;AAE9D,GAEMG,IAAsB,CAC1BJ,GACAtD,GACAuD,MACGI,EAASN,EAAwBC,GAAQtD,GAAOuD,CAAa,CAAC,GAE7DK,IAAoC,CACxCN,GACAtD,GACAS,GACA8C,MACoB;AACpB,QAAMC,IACJxD,EAAM,eAAe,SAASA,IAAQsD,EAAO;AAC/C,SAAO;AAAA,IACL,MAAMA,EAAO;AAAA,IACb,QAAQ,CAAC,GAAGA,EAAO,QAAQ;AAAA,IAC3B,SAAS,CAAC,EAAE,UAAUE,GAAc,UAAU,eAAe,OAAO/C,GAAqB;AAAA,IACzF,UAAUgD,EAAyBF,KAAA,gBAAAA,EAAe,QAAQ;AAAA,EAAA;AAE9D,GAEMM,IAAgC,CACpCP,GACAtD,GACA8D,GACAP,MACG;AACH,QAAMC,IACJxD,EAAM,eAAe,SAASA,IAAQsD,EAAO;AAC/C,MAAIA,EAAO,oBAAoBE,MAAgBM,KAAA,QAAAA,EAAO;AACpD,WAAOH;AAAA,MACLC,EAAkCN,GAAQtD,GAAO8D,EAAM,qBAAqBP,CAAa;AAAA,IAAA;AAI/F,GAEMQ,KAAS;AAAA,EACb,eAAe,CAACC,OAAwC;AAAA,IACtD,oBAAoBA,EAAM,kBAAkBC,EAAM,SAAA;AAAA,IAClD,wBAAwBD,EAAM,sBAAsBC,EAAM,SAAA;AAAA,EAAS;AAEvE,GAEM5E,KAAQ,CACZiE,GACA,CAACQ,GAAOI,CAAQ,GAIhBX,MACG;AACH,QAAMY,IAAuBC,GAA4Bd,EAAO,OAAOQ,KAAA,gBAAAA,EAAO,WAAW;AAEzF,SAAO;AAAA,IACL,GAAGR;AAAA,IACH,OAAOa;AAAA,IACP,gBAAgB,CAACE,MAA6BH,EAAS,EAAE,GAAGJ,GAAO,aAAAO,GAAa;AAAA,IAChF,qBAAqBP,KAAA,gBAAAA,EAAO;AAAA,IAC5B,wBAAwB,CAACrD,MACvByD,EAAS,EAAE,GAAGJ,GAAO,qBAAArD,GAAqB;AAAA,IAC5C,SAAS0C,GAAgBG,GAAiBa,GAAsBZ,CAAa;AAAA,IAC7E,mBAAmBH;AAAA,MACjBE;AAAA,MACAa;AAAA,MACAL;AAAA,MACAP;AAAA,IAAA;AAAA,IAEF,aAAaG,EAAoBJ,GAAQa,GAAsBZ,CAAa;AAAA,IAC5E,uBAAuBM;AAAA,MACrBP;AAAA,MACAa;AAAA,MACAL;AAAA,MACAP;AAAA,IAAA;AAAA,EACF;AAEJ,GAEae,KAAoC;AAAA,EAAA,WAC/CpB;AAAAA,EACA,MAAAT;AAAA,EACA,SAAAO;AAAA,EACA,eAAAF;AAAA,EACA,QAAQ,EAAE,OAAAzD,IAAO,QAAA0E,GAAA;AAAA,EACjB,SAASrB,EAA8B;AAAA,EACvC,mBAAmBA,EAA8B;AAAA,EACjD,aAAa;AAAA,IACX,cAAcW;AAAA,IACd,UAAUK;AAAA,EAAA;AAAA,EAEZ,uBAAuB;AAAA,IACrB,cAAcE;AAAA,IACd,UAAUC;AAAA,EAAA;AAEd;"}