@embeddable.com/remarkable-ui 0.1.15 → 0.1.16

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 (47) hide show
  1. package/dist/BarChartDefaultHorizontalPro.js +1 -1
  2. package/dist/BarChartDefaultPro.js +1 -1
  3. package/dist/BarChartGroupedHorizontalPro.js +1 -1
  4. package/dist/BarChartGroupedPro.js +1 -1
  5. package/dist/BarChartStackedHorizontalPro.js +1 -1
  6. package/dist/BarChartStackedPro.js +1 -1
  7. package/dist/ComparisonPeriod.type.emb-BHz2X91i.js +14 -0
  8. package/dist/ComparisonPeriod.type.emb-BHz2X91i.js.map +1 -0
  9. package/dist/ComparisonPeriodSelectFieldPro.js +1 -1
  10. package/dist/DonutChartPro.js +1 -1
  11. package/dist/DonutLabelChartPro.js +1 -1
  12. package/dist/KpiChart-B2OqbXRg.js +79 -0
  13. package/dist/KpiChart-B2OqbXRg.js.map +1 -0
  14. package/dist/KpiChartNumberComparisonPro.js +58 -50
  15. package/dist/KpiChartNumberComparisonPro.js.map +1 -1
  16. package/dist/KpiChartNumberPro.js +1 -1
  17. package/dist/PieChartPro.js +1 -1
  18. package/dist/{charts.fillGaps.hooks-BFmuMVNT.js → charts.fillGaps.hooks-C5Gy3QoW.js} +146 -130
  19. package/dist/charts.fillGaps.hooks-C5Gy3QoW.js.map +1 -0
  20. package/dist/embeddable-components.json +6 -6
  21. package/dist/embeddable-theme-2b917.js +1 -1
  22. package/dist/embeddable-types-4ace4.js +4 -5
  23. package/dist/embeddable-types.js.map +1 -1
  24. package/dist/{index-DEzAFKmN.js → index-BOzeG3mG.js} +2 -2
  25. package/dist/{index-DEzAFKmN.js.map → index-BOzeG3mG.js.map} +1 -1
  26. package/dist/{index-Dwb4Z6Hd.js → index-Chlmh1dF.js} +2 -2
  27. package/dist/{index-Dwb4Z6Hd.js.map → index-Chlmh1dF.js.map} +1 -1
  28. package/dist/{index-BhW48cz5.js → index-CjS39lkd.js} +2 -2
  29. package/dist/{index-BhW48cz5.js.map → index-CjS39lkd.js.map} +1 -1
  30. package/dist/index.js +6 -6
  31. package/dist/{object.utils-C6JIOYmv.js → object.utils-9RGrU0vr.js} +2 -2
  32. package/dist/object.utils-9RGrU0vr.js.map +1 -0
  33. package/dist/{pies.utils-CSx7w1mv.js → pies.utils-BecIV2nV.js} +2 -2
  34. package/dist/{pies.utils-CSx7w1mv.js.map → pies.utils-BecIV2nV.js.map} +1 -1
  35. package/dist/remarkable-pro/components/charts/bars/bars.utils.d.ts.map +1 -1
  36. package/dist/remarkable-pro/components/charts/kpis/KpiChartNumberComparisonPro/index.d.ts +1 -0
  37. package/dist/remarkable-pro/components/charts/kpis/KpiChartNumberComparisonPro/index.d.ts.map +1 -1
  38. package/dist/remarkable-ui/charts/kpis/KpiChart.d.ts.map +1 -1
  39. package/dist/remarkable-ui/charts/kpis/KpiChart.types.d.ts +1 -0
  40. package/dist/remarkable-ui/charts/kpis/KpiChart.types.d.ts.map +1 -1
  41. package/package.json +1 -1
  42. package/dist/ComparisonPeriod.type.emb-61HEPz26.js +0 -15
  43. package/dist/ComparisonPeriod.type.emb-61HEPz26.js.map +0 -1
  44. package/dist/KpiChart-CzUK0Dgw.js +0 -77
  45. package/dist/KpiChart-CzUK0Dgw.js.map +0 -1
  46. package/dist/charts.fillGaps.hooks-BFmuMVNT.js.map +0 -1
  47. package/dist/object.utils-C6JIOYmv.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import { i as L, r as w, m as M, j as n, d as V, a as y, b as z, t as P, c as k, s as v, e as H, f as R, g as j, x as I, y as S, h as T, k as F, l as W, n as Y, V as E, o as G } from "./component.constants-Bn9l4N1t.js";
2
2
  import { useTheme as O, defineComponent as _ } from "@embeddable.com/react";
3
3
  import { C as q } from "./ChartCard-Cb0QE9kP.js";
4
- import { u as J, g as K, a as N, B as Q } from "./charts.fillGaps.hooks-BFmuMVNT.js";
4
+ import { u as J, g as K, a as N, B as Q } from "./charts.fillGaps.hooks-C5Gy3QoW.js";
5
5
  const U = (a) => {
6
6
  var o, i;
7
7
  const e = O();
@@ -1,7 +1,7 @@
1
1
  import { i as L, r as y, m as w, j as n, d as M, a as V, b as P, t as v, c as k, s as R, e as j, f as I, g as S, x as T, y as F, p as W, q as X, u as q, v as z, V as E, o as G } from "./component.constants-Bn9l4N1t.js";
2
2
  import { useTheme as O, defineComponent as _ } from "@embeddable.com/react";
3
3
  import { C as H } from "./ChartCard-Cb0QE9kP.js";
4
- import { u as J, g as K, a as N, B as Q } from "./charts.fillGaps.hooks-BFmuMVNT.js";
4
+ import { u as J, g as K, a as N, B as Q } from "./charts.fillGaps.hooks-C5Gy3QoW.js";
5
5
  const U = (a) => {
6
6
  var i, o;
7
7
  const s = O();
@@ -1,7 +1,7 @@
1
1
  import { i as f, r as w, m as k, j as l, d as z, w as G, b as P, z as M, t as H, c as R, s as j, e as v, f as S, g as T, x as F, y as Y, h as W, k as E, l as I, V as u, o as O } from "./component.constants-Bn9l4N1t.js";
2
2
  import { useTheme as _, defineComponent as q } from "@embeddable.com/react";
3
3
  import { C as J } from "./ChartCard-Cb0QE9kP.js";
4
- import { u as K, b as N, a as Q, B as U } from "./charts.fillGaps.hooks-BFmuMVNT.js";
4
+ import { u as K, b as N, a as Q, B as U } from "./charts.fillGaps.hooks-C5Gy3QoW.js";
5
5
  const X = (a) => {
6
6
  var t, n;
7
7
  const e = _();
@@ -1,7 +1,7 @@
1
1
  import { i as L, r as w, m as G, j as l, d as k, w as P, b as M, z as R, t as j, c as v, s as S, e as T, f as F, g as X, x as z, y as W, p as q, q as E, u as I, V as u, o as O } from "./component.constants-Bn9l4N1t.js";
2
2
  import { useTheme as _, defineComponent as H } from "@embeddable.com/react";
3
3
  import { C as J } from "./ChartCard-Cb0QE9kP.js";
4
- import { u as K, b as N, a as Q, B as U } from "./charts.fillGaps.hooks-BFmuMVNT.js";
4
+ import { u as K, b as N, a as Q, B as U } from "./charts.fillGaps.hooks-C5Gy3QoW.js";
5
5
  const Y = (e) => {
6
6
  var t, n;
7
7
  const a = _();
@@ -1,7 +1,7 @@
1
1
  import { i as L, r as w, m as f, j as l, d as S, w as z, b as P, z as M, t as H, c as R, s as T, e as j, f as v, g as F, x as G, y as Y, h as W, k as E, l as I, A as O, V as m, o as _ } from "./component.constants-Bn9l4N1t.js";
2
2
  import { useTheme as q, defineComponent as J } from "@embeddable.com/react";
3
3
  import { C as K } from "./ChartCard-Cb0QE9kP.js";
4
- import { u as N, b as Q, a as U, B as X } from "./charts.fillGaps.hooks-BFmuMVNT.js";
4
+ import { u as N, b as Q, a as U, B as X } from "./charts.fillGaps.hooks-C5Gy3QoW.js";
5
5
  const Z = (a) => {
6
6
  var i, n;
7
7
  const e = q();
@@ -1,7 +1,7 @@
1
1
  import { i as L, r as f, m as w, j as l, d as S, w as P, b as M, z as R, t as T, c as j, s as v, e as F, f as G, g as X, x as z, y as W, p as q, q as E, u as I, A as O, V as m, o as _ } from "./component.constants-Bn9l4N1t.js";
2
2
  import { useTheme as H, defineComponent as J } from "@embeddable.com/react";
3
3
  import { C as K } from "./ChartCard-Cb0QE9kP.js";
4
- import { u as N, b as Q, a as U, B as Y } from "./charts.fillGaps.hooks-BFmuMVNT.js";
4
+ import { u as N, b as Q, a as U, B as Y } from "./charts.fillGaps.hooks-C5Gy3QoW.js";
5
5
  const Z = (a) => {
6
6
  var o, n;
7
7
  const e = H();
@@ -0,0 +1,14 @@
1
+ import { $ as i, a0 as o } from "./component.constants-Bn9l4N1t.js";
2
+ const e = i("comparisonPeriod", {
3
+ label: "Comparison Period",
4
+ optionLabel: (r) => r
5
+ });
6
+ o(e, "Previous period");
7
+ o(e, "Previous week");
8
+ o(e, "Previous month");
9
+ o(e, "Previous quarter");
10
+ o(e, "Previous year");
11
+ export {
12
+ e as C
13
+ };
14
+ //# sourceMappingURL=ComparisonPeriod.type.emb-BHz2X91i.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComparisonPeriod.type.emb-BHz2X91i.js","sources":["../src/remarkable-pro/components/types/ComparisonPeriod.type.emb.ts"],"sourcesContent":["import { defineOption, defineType } from '@embeddable.com/core';\n\nconst ComparisonPeriodType = defineType('comparisonPeriod', {\n label: 'Comparison Period',\n optionLabel: (value: string) => value,\n});\n\ndefineOption(ComparisonPeriodType, 'Previous period');\ndefineOption(ComparisonPeriodType, 'Previous week');\ndefineOption(ComparisonPeriodType, 'Previous month');\ndefineOption(ComparisonPeriodType, 'Previous quarter');\ndefineOption(ComparisonPeriodType, 'Previous year');\n\nexport default ComparisonPeriodType;\n"],"names":["ComparisonPeriodType","defineType","value","defineOption"],"mappings":";AAEA,MAAMA,IAAuBC,EAAW,oBAAoB;AAAA,EAC1D,OAAO;AAAA,EACP,aAAa,CAACC,MAAkBA;AAClC,CAAC;AAEDC,EAAaH,GAAsB,iBAAiB;AACpDG,EAAaH,GAAsB,eAAe;AAClDG,EAAaH,GAAsB,gBAAgB;AACnDG,EAAaH,GAAsB,kBAAkB;AACrDG,EAAaH,GAAsB,eAAe;"}
@@ -4,7 +4,7 @@ import { useMemo as M, useEffect as k } from "react";
4
4
  import { S as D } from "./SingleSelectField-BJnoOYrw.js";
5
5
  import { g as T, u as j, a as x } from "./editors.timeRange.utils-CteuBPel.js";
6
6
  import { E as L } from "./EditorCard-DWz8Bm-e.js";
7
- import { C as s } from "./ComparisonPeriod.type.emb-61HEPz26.js";
7
+ import { C as s } from "./ComparisonPeriod.type.emb-BHz2X91i.js";
8
8
  /**
9
9
  * @license @tabler/icons-react v3.34.1 - MIT
10
10
  *
@@ -1,6 +1,6 @@
1
1
  import { d as a, w as s, z as t, t as o, c as n, s as r, Y as i, e as m, f as l, V as d, o as u } from "./component.constants-Bn9l4N1t.js";
2
2
  import { defineComponent as c } from "@embeddable.com/react";
3
- import { D as p } from "./index-DEzAFKmN.js";
3
+ import { D as p } from "./index-BOzeG3mG.js";
4
4
  const C = {
5
5
  name: "DonutChartPro",
6
6
  label: "Donut Chart",
@@ -1,4 +1,4 @@
1
- import { D as n } from "./index-BhW48cz5.js";
1
+ import { D as n } from "./index-CjS39lkd.js";
2
2
  import { d as s, w as a, z as r, t as o, c as l, s as i, Y as m, e as d, f as u, V as b, o as t } from "./component.constants-Bn9l4N1t.js";
3
3
  import { defineComponent as c } from "@embeddable.com/react";
4
4
  const p = {
@@ -0,0 +1,79 @@
1
+ import { Z as j, j as n, a1 as x, a6 as d } from "./component.constants-Bn9l4N1t.js";
2
+ /**
3
+ * @license @tabler/icons-react v3.34.1 - MIT
4
+ *
5
+ * This source code is licensed under the MIT license.
6
+ * See the LICENSE file in the root directory of this source tree.
7
+ */
8
+ const v = [["path", { d: "M3 7l6 6l4 -4l8 8", key: "svg-0" }], ["path", { d: "M21 10l0 7l-7 0", key: "svg-1" }]], y = j("outline", "trending-down", "TrendingDown", v);
9
+ /**
10
+ * @license @tabler/icons-react v3.34.1 - MIT
11
+ *
12
+ * This source code is licensed under the MIT license.
13
+ * See the LICENSE file in the root directory of this source tree.
14
+ */
15
+ const m = [["path", { d: "M3 17l6 -6l4 4l8 -8", key: "svg-0" }], ["path", { d: "M14 7l7 0l0 7", key: "svg-1" }]], f = j("outline", "trending-up", "TrendingUp", m), N = "_kpiChartContainer_joxtc_1", T = "_kpiComparisonContainer_joxtc_26", $ = "_kpiChangeHidden_joxtc_47", k = {
16
+ kpiChartContainer: N,
17
+ kpiComparisonContainer: T,
18
+ kpiChangeHidden: $
19
+ }, B = "_kpiChartChangeContainer_13m4l_1", H = "_kpiChangeBadge_13m4l_13", M = "_positive_13m4l_36", w = "_negative_13m4l_41", o = {
20
+ kpiChartChangeContainer: B,
21
+ kpiChangeBadge: H,
22
+ positive: M,
23
+ negative: w
24
+ }, I = (i, e) => i ? e ? o.negative : o.positive : e ? o.positive : o.negative, K = ({
25
+ value: i,
26
+ comparisonValue: e = 0,
27
+ showChangeAsPercentage: r,
28
+ invertChangeColors: C = !1,
29
+ comparisonLabel: c,
30
+ valueFormatter: p,
31
+ percentageDecimalPlaces: g = 1,
32
+ className: h
33
+ }) => {
34
+ const s = i - e, t = s > 0;
35
+ let a;
36
+ r ? a = `${(e === 0 ? 0 : s / e * 100).toFixed(g)}%` : a = p ? p(s) : s.toString();
37
+ const l = `${t ? "+" : ""}${a}`, _ = t ? f : y;
38
+ return /* @__PURE__ */ n.jsxs("div", { className: x(h, o.kpiChartChangeContainer), children: [
39
+ /* @__PURE__ */ n.jsxs("div", { className: x(o.kpiChangeBadge, I(t, C)), children: [
40
+ /* @__PURE__ */ n.jsx(_, {}),
41
+ /* @__PURE__ */ n.jsx(d, { children: l })
42
+ ] }),
43
+ c && /* @__PURE__ */ n.jsx(d, { children: c })
44
+ ] });
45
+ }, R = ({
46
+ value: i,
47
+ changeFontSize: e,
48
+ comparisonValue: r,
49
+ comparisonLabel: C,
50
+ invertChangeColors: c,
51
+ showChangeAsPercentage: p,
52
+ percentageDecimalPlaces: g = 1,
53
+ equalComparisonLabel: h = "No change",
54
+ valueFontSize: s,
55
+ valueFormatter: t
56
+ }) => {
57
+ const a = r !== void 0, l = a && r === i, _ = t ? t(i) : i;
58
+ return /* @__PURE__ */ n.jsxs("div", { className: k.kpiChartContainer, children: [
59
+ /* @__PURE__ */ n.jsx(d, { style: { fontSize: s }, children: _ }),
60
+ /* @__PURE__ */ n.jsx("div", { className: k.kpiComparisonContainer, style: { fontSize: e }, children: l ? /* @__PURE__ */ n.jsx(d, { children: h }) : /* @__PURE__ */ n.jsx(
61
+ K,
62
+ {
63
+ changeFontSize: e,
64
+ className: x(!a && k.kpiChangeHidden),
65
+ comparisonLabel: C,
66
+ comparisonValue: r,
67
+ invertChangeColors: c,
68
+ percentageDecimalPlaces: g,
69
+ showChangeAsPercentage: p,
70
+ value: i,
71
+ valueFormatter: t
72
+ }
73
+ ) })
74
+ ] });
75
+ };
76
+ export {
77
+ R as K
78
+ };
79
+ //# sourceMappingURL=KpiChart-B2OqbXRg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KpiChart-B2OqbXRg.js","sources":["../node_modules/@tabler/icons-react/dist/esm/icons/IconTrendingDown.mjs","../node_modules/@tabler/icons-react/dist/esm/icons/IconTrendingUp.mjs","../src/remarkable-ui/charts/kpis/components/KpiChartChange.tsx","../src/remarkable-ui/charts/kpis/KpiChart.tsx"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.34.1 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M3 7l6 6l4 -4l8 8\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M21 10l0 7l-7 0\", \"key\": \"svg-1\" }]];\nconst IconTrendingDown = createReactComponent(\"outline\", \"trending-down\", \"TrendingDown\", __iconNode);\n\nexport { __iconNode, IconTrendingDown as default };\n//# sourceMappingURL=IconTrendingDown.mjs.map\n","/**\n * @license @tabler/icons-react v3.34.1 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M3 17l6 -6l4 4l8 -8\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M14 7l7 0l0 7\", \"key\": \"svg-1\" }]];\nconst IconTrendingUp = createReactComponent(\"outline\", \"trending-up\", \"TrendingUp\", __iconNode);\n\nexport { __iconNode, IconTrendingUp as default };\n//# sourceMappingURL=IconTrendingUp.mjs.map\n","import { FC } from 'react';\nimport styles from './KpiChartChange.module.css';\nimport clsx from 'clsx';\nimport { Typography } from '../../../shared/Typography/Typography';\nimport { IconTrendingDown, IconTrendingUp } from '@tabler/icons-react';\nimport { KpiChartProps } from '../KpiChart.types';\n\nconst getChangeClass = (isPositive: boolean, invertChangeColors: boolean) => {\n if (isPositive) return invertChangeColors ? styles.negative : styles.positive;\n return invertChangeColors ? styles.positive : styles.negative;\n};\n\ntype KpiChartChangeProps = KpiChartProps & { className?: string };\n\nexport const KpiChartChange: FC<KpiChartChangeProps> = ({\n value,\n comparisonValue = 0,\n showChangeAsPercentage,\n invertChangeColors = false,\n comparisonLabel,\n valueFormatter,\n percentageDecimalPlaces = 1,\n className,\n}) => {\n const difference = value - comparisonValue;\n const isPositive = difference > 0;\n\n let differenceLabel: string;\n\n if (showChangeAsPercentage) {\n const percentage = comparisonValue === 0 ? 0 : (difference / comparisonValue) * 100;\n differenceLabel = `${percentage.toFixed(percentageDecimalPlaces)}%`;\n } else {\n differenceLabel = valueFormatter ? valueFormatter(difference) : difference.toString();\n }\n\n const displayValue = `${isPositive ? '+' : ''}${differenceLabel}`;\n\n const Icon = isPositive ? IconTrendingUp : IconTrendingDown;\n\n return (\n <div className={clsx(className, styles.kpiChartChangeContainer)}>\n <div className={clsx(styles.kpiChangeBadge, getChangeClass(isPositive, invertChangeColors))}>\n <Icon />\n <Typography>{displayValue}</Typography>\n </div>\n {comparisonLabel && <Typography>{comparisonLabel}</Typography>}\n </div>\n );\n};\n","import { FC } from 'react';\nimport { Typography } from '../../shared/Typography/Typography';\nimport styles from './KpiChart.module.css';\nimport { KpiChartChange } from './components/KpiChartChange';\nimport { KpiChartProps } from './KpiChart.types';\nimport clsx from 'clsx';\n\nexport const KpiChart: FC<KpiChartProps> = ({\n value,\n changeFontSize,\n comparisonValue,\n comparisonLabel,\n invertChangeColors,\n showChangeAsPercentage,\n percentageDecimalPlaces = 1,\n equalComparisonLabel = 'No change',\n valueFontSize,\n valueFormatter,\n}) => {\n const hasComparisonValue = comparisonValue !== undefined;\n const equalComparison = hasComparisonValue && comparisonValue === value;\n\n const displayValue = valueFormatter ? valueFormatter(value) : value;\n\n return (\n <div className={styles.kpiChartContainer}>\n <Typography style={{ fontSize: valueFontSize }}>{displayValue}</Typography>\n <div className={styles.kpiComparisonContainer} style={{ fontSize: changeFontSize }}>\n {equalComparison ? (\n <Typography>{equalComparisonLabel}</Typography>\n ) : (\n <KpiChartChange\n changeFontSize={changeFontSize}\n className={clsx(!hasComparisonValue && styles.kpiChangeHidden)}\n comparisonLabel={comparisonLabel}\n comparisonValue={comparisonValue}\n invertChangeColors={invertChangeColors}\n percentageDecimalPlaces={percentageDecimalPlaces}\n showChangeAsPercentage={showChangeAsPercentage}\n value={value}\n valueFormatter={valueFormatter}\n />\n )}\n </div>\n </div>\n );\n};\n"],"names":["__iconNode","IconTrendingDown","createReactComponent","IconTrendingUp","getChangeClass","isPositive","invertChangeColors","styles","KpiChartChange","value","comparisonValue","showChangeAsPercentage","comparisonLabel","valueFormatter","percentageDecimalPlaces","className","difference","differenceLabel","displayValue","Icon","clsx","jsxs","jsx","Typography","KpiChart","changeFontSize","equalComparisonLabel","valueFontSize","hasComparisonValue","equalComparison"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -1,11 +1,11 @@
1
- import { useTheme as K, defineComponent as x } from "@embeddable.com/react";
2
- import { S as V, i as j, r as w, j as f, d as A, w as L, T as O, U as q, t as E, c as I, W as v, X as P, o as h } from "./component.constants-Bn9l4N1t.js";
3
- import { C as M } from "./ChartCard-Cb0QE9kP.js";
4
- import { useEffect as Y } from "react";
5
- import { K as B } from "./KpiChart-CzUK0Dgw.js";
6
- import { g as J } from "./formatter.utils-Ba_5cIcm.js";
7
- import { C as U } from "./ComparisonPeriod.type.emb-61HEPz26.js";
8
- const W = (e, a, o) => {
1
+ import { useTheme as V, defineComponent as x } from "@embeddable.com/react";
2
+ import { S as j, i as w, r as A, j as v, d as L, w as O, T as q, U as E, t as I, c as M, W as P, X as p, o as h } from "./component.constants-Bn9l4N1t.js";
3
+ import { C as Y } from "./ChartCard-Cb0QE9kP.js";
4
+ import { useEffect as B } from "react";
5
+ import { K as J } from "./KpiChart-B2OqbXRg.js";
6
+ import { g as U } from "./formatter.utils-Ba_5cIcm.js";
7
+ import { C as W } from "./ComparisonPeriod.type.emb-BHz2X91i.js";
8
+ const X = (e, a, o) => {
9
9
  var t;
10
10
  if (!e || !a)
11
11
  return;
@@ -13,70 +13,72 @@ const W = (e, a, o) => {
13
13
  (s) => s.value === a
14
14
  );
15
15
  return n == null ? void 0 : n.getRange(r);
16
- }, X = (e, a) => {
16
+ }, _ = (e, a) => {
17
17
  const o = a.defaults.comparisonPeriodsOptions.find(
18
18
  (r) => r.value === e
19
19
  );
20
- return o ? V(o.label) : "";
21
- }, _ = (e) => {
22
- var d, g, u, C;
23
- const a = K();
24
- j(a);
25
- const { title: o, description: r } = w(e), {
20
+ return o ? j(o.label) : "";
21
+ }, $ = (e) => {
22
+ var d, u, C, f;
23
+ const a = V();
24
+ w(a);
25
+ const { title: o, description: r } = A(e), {
26
26
  changeFontSize: n,
27
27
  comparisonPeriod: t,
28
28
  comparisonDateRange: s,
29
29
  displayChangeAsPercentage: b,
30
- fontSize: R,
30
+ fontSize: D,
31
31
  measure: i,
32
- primaryDateRange: p,
33
- results: m,
34
- resultsComparison: l,
35
- reversePositiveNegativeColors: y,
32
+ primaryDateRange: g,
33
+ results: l,
34
+ resultsComparison: m,
35
+ reversePositiveNegativeColors: R,
36
+ percentageDecimalPlaces: y,
36
37
  setComparisonDateRange: S
37
38
  } = e;
38
- Y(() => {
39
- const c = W(
40
- p,
39
+ B(() => {
40
+ const c = X(
41
+ g,
41
42
  t,
42
43
  a
43
44
  );
44
45
  S(c);
45
- }, [t, JSON.stringify(p), a]);
46
- const D = (g = (d = m.data) == null ? void 0 : d[0]) == null ? void 0 : g[i.name], N = s ? (C = (u = l == null ? void 0 : l.data) == null ? void 0 : u[0]) == null ? void 0 : C[i.name] : void 0, T = J(a), F = (c) => T.data(i, c), z = `vs ${X(t, a).toLowerCase()}`;
47
- return /* @__PURE__ */ f.jsx(
48
- M,
46
+ }, [t, JSON.stringify(g), a]);
47
+ const N = (u = (d = l.data) == null ? void 0 : d[0]) == null ? void 0 : u[i.name], T = s ? (f = (C = m == null ? void 0 : m.data) == null ? void 0 : C[0]) == null ? void 0 : f[i.name] : void 0, F = U(a), z = (c) => F.data(i, c), K = `vs ${_(t, a).toLowerCase()}`;
48
+ return /* @__PURE__ */ v.jsx(
49
+ Y,
49
50
  {
50
- data: m,
51
+ data: l,
51
52
  dimensionsAndMeasures: [i],
52
- errorMessage: m.error,
53
+ errorMessage: l.error,
53
54
  subtitle: r,
54
55
  title: o,
55
- children: /* @__PURE__ */ f.jsx(
56
- B,
56
+ children: /* @__PURE__ */ v.jsx(
57
+ J,
57
58
  {
58
- value: D,
59
- comparisonValue: N,
60
- valueFormatter: F,
61
- valueFontSize: R,
59
+ value: N,
60
+ comparisonValue: T,
61
+ valueFormatter: z,
62
+ valueFontSize: D,
62
63
  changeFontSize: n,
63
- invertChangeColors: y,
64
+ invertChangeColors: R,
64
65
  showChangeAsPercentage: b,
65
- comparisonLabel: z
66
+ comparisonLabel: K,
67
+ percentageDecimalPlaces: y
66
68
  }
67
69
  )
68
70
  }
69
71
  );
70
- }, $ = {
72
+ }, k = {
71
73
  name: "KpiChartNumberComparisonPro",
72
74
  label: "Kpi Chart - Number Comparison",
73
75
  category: "Kpi Charts",
74
76
  inputs: [
75
- A,
76
77
  L,
77
- { ...O, name: "timeProperty", label: "Time Property" },
78
+ O,
79
+ { ...q, name: "timeProperty", label: "Time Property" },
78
80
  {
79
- ...q,
81
+ ...E,
80
82
  name: "primaryDateRange",
81
83
  label: "Primary Date Range",
82
84
  description: "You can also connect this to a date range selector using its variable",
@@ -84,35 +86,41 @@ const W = (e, a, o) => {
84
86
  },
85
87
  {
86
88
  name: "comparisonPeriod",
87
- type: U,
89
+ type: W,
88
90
  label: "Comparison Period",
89
91
  description: "You can also connect this to a comparison period selector using its variable",
90
92
  category: "Component Data"
91
93
  },
92
- E,
93
94
  I,
95
+ M,
94
96
  {
95
- ...v,
97
+ ...P,
96
98
  name: "displayChangeAsPercentage",
97
99
  label: "Display Change as %",
98
100
  defaultValue: !1
99
101
  },
100
102
  {
101
- ...v,
103
+ ...p,
104
+ name: "percentageDecimalPlaces",
105
+ label: "Percentage Decimal Places",
106
+ defaultValue: 1
107
+ },
108
+ {
109
+ ...P,
102
110
  name: "reversePositiveNegativeColors",
103
111
  label: "Reverse Positive/Negative Colors",
104
112
  defaultValue: !1
105
113
  },
106
- { ...P, name: "fontSize", label: "Font Size", defaultValue: 44, required: !0 },
114
+ { ...p, name: "fontSize", label: "Font Size", defaultValue: 44, required: !0 },
107
115
  {
108
- ...P,
116
+ ...p,
109
117
  name: "changeFontSize",
110
118
  label: "Change Font Size",
111
119
  defaultValue: 16,
112
120
  required: !0
113
121
  }
114
122
  ]
115
- }, oe = x(_, $, {
123
+ }, re = x($, k, {
116
124
  /* @ts-expect-error - to be fixed in @embeddable.com/react */
117
125
  props: (e, [a, o]) => ({
118
126
  ...e,
@@ -145,7 +153,7 @@ const W = (e, a, o) => {
145
153
  })
146
154
  });
147
155
  export {
148
- oe as default,
149
- $ as meta
156
+ re as default,
157
+ k as meta
150
158
  };
151
159
  //# sourceMappingURL=KpiChartNumberComparisonPro.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"KpiChartNumberComparisonPro.js","sources":["../src/remarkable-pro/components/utils/timeRange.utils.ts","../src/remarkable-pro/components/charts/kpis/KpiChartNumberComparisonPro/index.tsx","../src/remarkable-pro/components/charts/kpis/KpiChartNumberComparisonPro/KpiChartNumberComparisonPro.emb.ts"],"sourcesContent":["import { TimeRange } from '@embeddable.com/core';\nimport { Theme } from '../../theme/theme.types';\nimport { resolveI18nString } from '../component.utils';\n\nexport const getComparisonPeriodDateRange = (\n primaryDateRange: TimeRange,\n comparisonPeriod: string | undefined,\n theme: Theme,\n): TimeRange => {\n if (!primaryDateRange || !comparisonPeriod) {\n return undefined;\n }\n\n const primaryDateRangeRange = primaryDateRange?.relativeTimeString\n ? theme.defaults.dateRangesOptions\n .find((option) => option.value === primaryDateRange?.relativeTimeString)\n ?.getRange()\n : primaryDateRange;\n\n const comparisonPeriodOption = theme.defaults.comparisonPeriodsOptions.find(\n (option) => option.value === comparisonPeriod,\n );\n\n return comparisonPeriodOption?.getRange(primaryDateRangeRange);\n};\n\nexport const getComparisonPeriodLabel = (\n comparisonPeriod: string | undefined,\n theme: Theme,\n): string => {\n const option = theme.defaults.comparisonPeriodsOptions.find(\n (option) => option.value === comparisonPeriod,\n );\n return option ? resolveI18nString(option.label) : '';\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { DataResponse, Measure, TimeRange } from '@embeddable.com/core';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { ChartCard } from '../../shared/ChartCard/ChartCard';\nimport { KpiChart } from '../../../../../remarkable-ui';\nimport { getThemeFormatter } from '../../../../theme/formatter/formatter.utils';\nimport { useEffect } from 'react';\nimport {\n getComparisonPeriodDateRange,\n getComparisonPeriodLabel,\n} from '../../../utils/timeRange.utils';\n\ntype KpiChartNumberComparisonProProp = {\n changeFontSize: number;\n comparisonPeriod?: string;\n description: string;\n displayChangeAsPercentage?: boolean;\n fontSize: number;\n measure: Measure;\n primaryDateRange: TimeRange;\n results: DataResponse;\n resultsComparison: DataResponse | undefined;\n reversePositiveNegativeColors?: boolean;\n title: string;\n comparisonDateRange: TimeRange;\n setComparisonDateRange: (dateRange: TimeRange) => void;\n};\n\nconst KpiChartNumberComparisonPro = (props: KpiChartNumberComparisonProProp) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { title, description } = resolveI18nProps(props);\n const {\n changeFontSize,\n comparisonPeriod,\n comparisonDateRange,\n displayChangeAsPercentage,\n fontSize,\n measure,\n primaryDateRange,\n results,\n resultsComparison,\n reversePositiveNegativeColors,\n setComparisonDateRange,\n } = props;\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 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 return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[measure]}\n errorMessage={results.error}\n subtitle={description}\n title={title}\n >\n <KpiChart\n value={value}\n comparisonValue={comparisonValue}\n valueFormatter={valueFormatter}\n valueFontSize={fontSize}\n changeFontSize={changeFontSize}\n invertChangeColors={reversePositiveNegativeColors}\n showChangeAsPercentage={displayChangeAsPercentage}\n comparisonLabel={comparisonLabel}\n />\n </ChartCard>\n );\n};\n\nexport default KpiChartNumberComparisonPro;\n","import { defineComponent, EmbeddedComponentMeta, Inputs } from '@embeddable.com/react';\nimport {\n dataset,\n description,\n dimensionTime,\n genericBoolean,\n genericNumber,\n genericTimeRange,\n measure,\n title,\n} from '../../../component.constants';\nimport KpiChartNumberComparisonPro from './index';\nimport { loadData, TimeRange } from '@embeddable.com/core';\nimport ComparisonPeriodType from '../../../types/ComparisonPeriod.type.emb';\n\nexport const meta = {\n name: 'KpiChartNumberComparisonPro',\n label: 'Kpi Chart - Number Comparison',\n category: 'Kpi Charts',\n inputs: [\n dataset,\n measure,\n { ...dimensionTime, name: 'timeProperty', label: 'Time Property' },\n {\n ...genericTimeRange,\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 name: 'comparisonPeriod',\n type: ComparisonPeriodType,\n label: 'Comparison Period',\n description: 'You can also connect this to a comparison period selector using its variable',\n category: 'Component Data',\n },\n title,\n description,\n {\n ...genericBoolean,\n name: 'displayChangeAsPercentage',\n label: 'Display Change as %',\n defaultValue: false,\n },\n {\n ...genericBoolean,\n name: 'reversePositiveNegativeColors',\n label: 'Reverse Positive/Negative Colors',\n defaultValue: false,\n },\n { ...genericNumber, name: 'fontSize', label: 'Font Size', defaultValue: 44, required: true },\n {\n ...genericNumber,\n name: 'changeFontSize',\n label: 'Change Font Size',\n defaultValue: 16,\n required: true,\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\ntype KpiChartNumberComparisonProState = {\n comparisonDateRange: TimeRange;\n};\n\nexport default defineComponent(KpiChartNumberComparisonPro, meta, {\n /* @ts-expect-error - to be fixed in @embeddable.com/react */\n props: (\n inputs: Inputs<typeof meta>,\n [state, setState]: [\n KpiChartNumberComparisonProState,\n (state: KpiChartNumberComparisonProState) => void,\n ],\n ) => {\n return {\n ...inputs,\n comparisonDateRange: state?.comparisonDateRange,\n setComparisonDateRange: (comparisonDateRange: TimeRange) => setState({ comparisonDateRange }),\n results: loadData({\n from: inputs.dataset,\n select: [inputs.measure],\n limit: 1,\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 resultsComparison:\n inputs.primaryDateRange && inputs.timeProperty && state?.comparisonDateRange\n ? loadData({\n from: inputs.dataset,\n select: [inputs.measure],\n limit: 1,\n filters: [\n {\n property: inputs.timeProperty,\n operator: 'inDateRange',\n value: state.comparisonDateRange,\n },\n ],\n })\n : undefined,\n };\n },\n});\n"],"names":["getComparisonPeriodDateRange","primaryDateRange","comparisonPeriod","theme","primaryDateRangeRange","_a","option","comparisonPeriodOption","getComparisonPeriodLabel","resolveI18nString","KpiChartNumberComparisonPro","props","useTheme","i18nSetup","title","description","resolveI18nProps","changeFontSize","comparisonDateRange","displayChangeAsPercentage","fontSize","measure","results","resultsComparison","reversePositiveNegativeColors","setComparisonDateRange","useEffect","newComparisonDateRange","value","_b","comparisonValue","_d","_c","themeFormatter","getThemeFormatter","valueFormatter","valueToFormat","comparisonLabel","jsx","ChartCard","KpiChart","meta","dataset","dimensionTime","genericTimeRange","ComparisonPeriodType","genericBoolean","genericNumber","KpiChartNumberComparisonPro_emb","defineComponent","inputs","state","setState","loadData"],"mappings":";;;;;;;AAIO,MAAMA,IAA+B,CAC1CC,GACAC,GACAC,MACc;;AACd,MAAI,CAACF,KAAoB,CAACC;AACxB;AAGF,QAAME,IAAwBH,KAAA,QAAAA,EAAkB,sBAC5CI,IAAAF,EAAM,SAAS,kBACZ,KAAK,CAACG,MAAWA,EAAO,WAAUL,KAAA,gBAAAA,EAAkB,mBAAkB,MADzE,gBAAAI,EAEI,aACJJ,GAEEM,IAAyBJ,EAAM,SAAS,yBAAyB;AAAA,IACrE,CAACG,MAAWA,EAAO,UAAUJ;AAAA,EAAA;AAG/B,SAAOK,KAAA,gBAAAA,EAAwB,SAASH;AAC1C,GAEaI,IAA2B,CACtCN,GACAC,MACW;AACX,QAAMG,IAASH,EAAM,SAAS,yBAAyB;AAAA,IACrD,CAACG,MAAWA,EAAO,UAAUJ;AAAA,EAAA;AAE/B,SAAOI,IAASG,EAAkBH,EAAO,KAAK,IAAI;AACpD,GCJMI,IAA8B,CAACC,MAA2C;;AAC9E,QAAMR,IAAeS,EAAA;AACrB,EAAAC,EAAUV,CAAK;AAEf,QAAM,EAAE,OAAAW,GAAO,aAAAC,MAAgBC,EAAiBL,CAAK,GAC/C;AAAA,IACJ,gBAAAM;AAAA,IACA,kBAAAf;AAAA,IACA,qBAAAgB;AAAA,IACA,2BAAAC;AAAA,IACA,UAAAC;AAAA,IACA,SAAAC;AAAA,IACA,kBAAApB;AAAA,IACA,SAAAqB;AAAA,IACA,mBAAAC;AAAA,IACA,+BAAAC;AAAA,IACA,wBAAAC;AAAA,EAAA,IACEd;AAEJ,EAAAe,EAAU,MAAM;AACd,UAAMC,IAAyB3B;AAAA,MAC7BC;AAAA,MACAC;AAAA,MACAC;AAAA,IAAA;AAEF,IAAAsB,EAAuBE,CAAsB;AAAA,EAC/C,GAAG,CAACzB,GAAkB,KAAK,UAAUD,CAAgB,GAAGE,CAAK,CAAC;AAE9D,QAAMyB,KAAgBC,KAAAxB,IAAAiB,EAAQ,SAAR,gBAAAjB,EAAe,OAAf,gBAAAwB,EAAoBR,EAAQ,OAC5CS,IAAkBZ,KACpBa,KAAAC,IAAAT,KAAA,gBAAAA,EAAmB,SAAnB,gBAAAS,EAA0B,OAA1B,gBAAAD,EAA+BV,EAAQ,QACvC,QAEEY,IAAiBC,EAAkB/B,CAAK,GACxCgC,IAAiB,CAACC,MAA0BH,EAAe,KAAKZ,GAASe,CAAa,GACtFC,IAAkB,MAAM7B,EAAyBN,GAAkBC,CAAK,EAAE,aAAa;AAE7F,SACEmC,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAMjB;AAAA,MACN,uBAAuB,CAACD,CAAO;AAAA,MAC/B,cAAcC,EAAQ;AAAA,MACtB,UAAUP;AAAA,MACV,OAAAD;AAAA,MAEA,UAAAwB,gBAAAA,EAAAA;AAAAA,QAACE;AAAA,QAAA;AAAA,UACC,OAAAZ;AAAA,UACA,iBAAAE;AAAA,UACA,gBAAAK;AAAA,UACA,eAAef;AAAA,UACf,gBAAAH;AAAA,UACA,oBAAoBO;AAAA,UACpB,wBAAwBL;AAAA,UACxB,iBAAAkB;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGN,GCxEaI,IAAO;AAAA,EAClB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV,QAAQ;AAAA,IACNC;AAAA,IACArB;AAAA,IACA,EAAE,GAAGsB,GAAe,MAAM,gBAAgB,OAAO,gBAAA;AAAA,IACjD;AAAA,MACE,GAAGC;AAAA,MACH,MAAM;AAAA,MACN,OAAO;AAAA,MACP,aAAa;AAAA,MACb,UAAU;AAAA,IAAA;AAAA,IAEZ;AAAA,MACE,MAAM;AAAA,MACN,MAAMC;AAAA,MACN,OAAO;AAAA,MACP,aAAa;AAAA,MACb,UAAU;AAAA,IAAA;AAAA,IAEZ/B;AAAA,IACAC;AAAA,IACA;AAAA,MACE,GAAG+B;AAAA,MACH,MAAM;AAAA,MACN,OAAO;AAAA,MACP,cAAc;AAAA,IAAA;AAAA,IAEhB;AAAA,MACE,GAAGA;AAAA,MACH,MAAM;AAAA,MACN,OAAO;AAAA,MACP,cAAc;AAAA,IAAA;AAAA,IAEhB,EAAE,GAAGC,GAAe,MAAM,YAAY,OAAO,aAAa,cAAc,IAAI,UAAU,GAAA;AAAA,IACtF;AAAA,MACE,GAAGA;AAAA,MACH,MAAM;AAAA,MACN,OAAO;AAAA,MACP,cAAc;AAAA,MACd,UAAU;AAAA,IAAA;AAAA,EACZ;AAEJ,GAMAC,KAAeC,EAAgBvC,GAA6B+B,GAAM;AAAA;AAAA,EAEhE,OAAO,CACLS,GACA,CAACC,GAAOC,CAAQ,OAKT;AAAA,IACL,GAAGF;AAAA,IACH,qBAAqBC,KAAA,gBAAAA,EAAO;AAAA,IAC5B,wBAAwB,CAACjC,MAAmCkC,EAAS,EAAE,qBAAAlC,GAAqB;AAAA,IAC5F,SAASmC,EAAS;AAAA,MAChB,MAAMH,EAAO;AAAA,MACb,QAAQ,CAACA,EAAO,OAAO;AAAA,MACvB,OAAO;AAAA,MACP,SACEA,EAAO,oBAAoBA,EAAO,eAC9B;AAAA,QACE;AAAA,UACE,UAAUA,EAAO;AAAA,UACjB,UAAU;AAAA,UACV,OAAOA,EAAO;AAAA,QAAA;AAAA,MAChB,IAEF;AAAA,IAAA,CACP;AAAA,IACD,mBACEA,EAAO,oBAAoBA,EAAO,iBAAgBC,KAAA,QAAAA,EAAO,uBACrDE,EAAS;AAAA,MACP,MAAMH,EAAO;AAAA,MACb,QAAQ,CAACA,EAAO,OAAO;AAAA,MACvB,OAAO;AAAA,MACP,SAAS;AAAA,QACP;AAAA,UACE,UAAUA,EAAO;AAAA,UACjB,UAAU;AAAA,UACV,OAAOC,EAAM;AAAA,QAAA;AAAA,MACf;AAAA,IACF,CACD,IACD;AAAA,EAAA;AAGZ,CAAC;"}
1
+ {"version":3,"file":"KpiChartNumberComparisonPro.js","sources":["../src/remarkable-pro/components/utils/timeRange.utils.ts","../src/remarkable-pro/components/charts/kpis/KpiChartNumberComparisonPro/index.tsx","../src/remarkable-pro/components/charts/kpis/KpiChartNumberComparisonPro/KpiChartNumberComparisonPro.emb.ts"],"sourcesContent":["import { TimeRange } from '@embeddable.com/core';\nimport { Theme } from '../../theme/theme.types';\nimport { resolveI18nString } from '../component.utils';\n\nexport const getComparisonPeriodDateRange = (\n primaryDateRange: TimeRange,\n comparisonPeriod: string | undefined,\n theme: Theme,\n): TimeRange => {\n if (!primaryDateRange || !comparisonPeriod) {\n return undefined;\n }\n\n const primaryDateRangeRange = primaryDateRange?.relativeTimeString\n ? theme.defaults.dateRangesOptions\n .find((option) => option.value === primaryDateRange?.relativeTimeString)\n ?.getRange()\n : primaryDateRange;\n\n const comparisonPeriodOption = theme.defaults.comparisonPeriodsOptions.find(\n (option) => option.value === comparisonPeriod,\n );\n\n return comparisonPeriodOption?.getRange(primaryDateRangeRange);\n};\n\nexport const getComparisonPeriodLabel = (\n comparisonPeriod: string | undefined,\n theme: Theme,\n): string => {\n const option = theme.defaults.comparisonPeriodsOptions.find(\n (option) => option.value === comparisonPeriod,\n );\n return option ? resolveI18nString(option.label) : '';\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { DataResponse, Measure, TimeRange } from '@embeddable.com/core';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { ChartCard } from '../../shared/ChartCard/ChartCard';\nimport { KpiChart } from '../../../../../remarkable-ui';\nimport { getThemeFormatter } from '../../../../theme/formatter/formatter.utils';\nimport { useEffect } from 'react';\nimport {\n getComparisonPeriodDateRange,\n getComparisonPeriodLabel,\n} from '../../../utils/timeRange.utils';\n\ntype KpiChartNumberComparisonProProp = {\n changeFontSize: number;\n comparisonPeriod?: string;\n description: string;\n displayChangeAsPercentage?: boolean;\n fontSize: number;\n measure: Measure;\n primaryDateRange: TimeRange;\n results: DataResponse;\n resultsComparison: DataResponse | undefined;\n reversePositiveNegativeColors?: boolean;\n title: string;\n percentageDecimalPlaces: number;\n comparisonDateRange: TimeRange;\n setComparisonDateRange: (dateRange: TimeRange) => void;\n};\n\nconst KpiChartNumberComparisonPro = (props: KpiChartNumberComparisonProProp) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { title, description } = resolveI18nProps(props);\n const {\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 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 return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[measure]}\n errorMessage={results.error}\n subtitle={description}\n title={title}\n >\n <KpiChart\n value={value}\n comparisonValue={comparisonValue}\n valueFormatter={valueFormatter}\n valueFontSize={fontSize}\n changeFontSize={changeFontSize}\n invertChangeColors={reversePositiveNegativeColors}\n showChangeAsPercentage={displayChangeAsPercentage}\n comparisonLabel={comparisonLabel}\n percentageDecimalPlaces={percentageDecimalPlaces}\n />\n </ChartCard>\n );\n};\n\nexport default KpiChartNumberComparisonPro;\n","import { defineComponent, EmbeddedComponentMeta, Inputs } from '@embeddable.com/react';\nimport {\n dataset,\n description,\n dimensionTime,\n genericBoolean,\n genericNumber,\n genericTimeRange,\n measure,\n title,\n} from '../../../component.constants';\nimport KpiChartNumberComparisonPro from './index';\nimport { loadData, TimeRange } from '@embeddable.com/core';\nimport ComparisonPeriodType from '../../../types/ComparisonPeriod.type.emb';\n\nexport const meta = {\n name: 'KpiChartNumberComparisonPro',\n label: 'Kpi Chart - Number Comparison',\n category: 'Kpi Charts',\n inputs: [\n dataset,\n measure,\n { ...dimensionTime, name: 'timeProperty', label: 'Time Property' },\n {\n ...genericTimeRange,\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 name: 'comparisonPeriod',\n type: ComparisonPeriodType,\n label: 'Comparison Period',\n description: 'You can also connect this to a comparison period selector using its variable',\n category: 'Component Data',\n },\n title,\n description,\n {\n ...genericBoolean,\n name: 'displayChangeAsPercentage',\n label: 'Display Change as %',\n defaultValue: false,\n },\n {\n ...genericNumber,\n name: 'percentageDecimalPlaces',\n label: 'Percentage Decimal Places',\n defaultValue: 1,\n },\n {\n ...genericBoolean,\n name: 'reversePositiveNegativeColors',\n label: 'Reverse Positive/Negative Colors',\n defaultValue: false,\n },\n { ...genericNumber, name: 'fontSize', label: 'Font Size', defaultValue: 44, required: true },\n {\n ...genericNumber,\n name: 'changeFontSize',\n label: 'Change Font Size',\n defaultValue: 16,\n required: true,\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\ntype KpiChartNumberComparisonProState = {\n comparisonDateRange: TimeRange;\n};\n\nexport default defineComponent(KpiChartNumberComparisonPro, meta, {\n /* @ts-expect-error - to be fixed in @embeddable.com/react */\n props: (\n inputs: Inputs<typeof meta>,\n [state, setState]: [\n KpiChartNumberComparisonProState,\n (state: KpiChartNumberComparisonProState) => void,\n ],\n ) => {\n return {\n ...inputs,\n comparisonDateRange: state?.comparisonDateRange,\n setComparisonDateRange: (comparisonDateRange: TimeRange) => setState({ comparisonDateRange }),\n results: loadData({\n from: inputs.dataset,\n select: [inputs.measure],\n limit: 1,\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 resultsComparison:\n inputs.primaryDateRange && inputs.timeProperty && state?.comparisonDateRange\n ? loadData({\n from: inputs.dataset,\n select: [inputs.measure],\n limit: 1,\n filters: [\n {\n property: inputs.timeProperty,\n operator: 'inDateRange',\n value: state.comparisonDateRange,\n },\n ],\n })\n : undefined,\n };\n },\n});\n"],"names":["getComparisonPeriodDateRange","primaryDateRange","comparisonPeriod","theme","primaryDateRangeRange","_a","option","comparisonPeriodOption","getComparisonPeriodLabel","resolveI18nString","KpiChartNumberComparisonPro","props","useTheme","i18nSetup","title","description","resolveI18nProps","changeFontSize","comparisonDateRange","displayChangeAsPercentage","fontSize","measure","results","resultsComparison","reversePositiveNegativeColors","percentageDecimalPlaces","setComparisonDateRange","useEffect","newComparisonDateRange","value","_b","comparisonValue","_d","_c","themeFormatter","getThemeFormatter","valueFormatter","valueToFormat","comparisonLabel","jsx","ChartCard","KpiChart","meta","dataset","dimensionTime","genericTimeRange","ComparisonPeriodType","genericBoolean","genericNumber","KpiChartNumberComparisonPro_emb","defineComponent","inputs","state","setState","loadData"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { useTheme as h, defineComponent as f } from "@embeddable.com/react";
2
2
  import { i as C, r as b, j as m, d as K, w as g, t as x, c as F, X as N, o as S } from "./component.constants-Bn9l4N1t.js";
3
3
  import { C as j } from "./ChartCard-Cb0QE9kP.js";
4
4
  import "react";
5
- import { K as v } from "./KpiChart-CzUK0Dgw.js";
5
+ import { K as v } from "./KpiChart-B2OqbXRg.js";
6
6
  import { g as z } from "./formatter.utils-Ba_5cIcm.js";
7
7
  const P = (e) => {
8
8
  var s, o;
@@ -1,6 +1,6 @@
1
1
  import { d as a, w as s, z as t, t as o, c as n, s as i, Y as r, e as m, f as l, V as d, o as c } from "./component.constants-Bn9l4N1t.js";
2
2
  import { defineComponent as p } from "@embeddable.com/react";
3
- import { P as u } from "./index-Dwb4Z6Hd.js";
3
+ import { P as u } from "./index-Chlmh1dF.js";
4
4
  const C = {
5
5
  name: "PieChartPro",
6
6
  label: "Pie Chart",