@embeddable.com/remarkable-pro 0.0.4 → 0.0.6
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.
- package/dist/BarChartDefaultHorizontalPro.js +25 -85
- package/dist/BarChartDefaultHorizontalPro.js.map +1 -1
- package/dist/BarChartDefaultPro.js +25 -84
- package/dist/BarChartDefaultPro.js.map +1 -1
- package/dist/BarChartGroupedHorizontalPro.js +33 -102
- package/dist/BarChartGroupedHorizontalPro.js.map +1 -1
- package/dist/BarChartGroupedPro.js +27 -95
- package/dist/BarChartGroupedPro.js.map +1 -1
- package/dist/BarChartStackedHorizontalPro.js +28 -98
- package/dist/BarChartStackedHorizontalPro.js.map +1 -1
- package/dist/BarChartStackedPro.js +28 -97
- package/dist/BarChartStackedPro.js.map +1 -1
- package/dist/{ChartCard-C7c2rTst.js → ChartCard-hWESZ2Ps.js} +27 -27
- package/dist/{ChartCard-C7c2rTst.js.map → ChartCard-hWESZ2Ps.js.map} +1 -1
- package/dist/{Color.type.emb-CSPAaucR.js → Color.type.emb-CWTlQmpX.js} +2 -2
- package/dist/{Color.type.emb-CSPAaucR.js.map → Color.type.emb-CWTlQmpX.js.map} +1 -1
- package/dist/ColorEditor.js +2 -2
- package/dist/{ComparisonPeriod.type.emb-DOpJ1iWj.js → ComparisonPeriod.type.emb-A4w1cgoZ.js} +2 -2
- package/dist/{ComparisonPeriod.type.emb-DOpJ1iWj.js.map → ComparisonPeriod.type.emb-A4w1cgoZ.js.map} +1 -1
- package/dist/ComparisonPeriodSelectFieldPro.js +17 -58
- package/dist/ComparisonPeriodSelectFieldPro.js.map +1 -1
- package/dist/DateRangeSelectFieldPro.js +3 -3
- package/dist/DonutChartPro.js +3 -3
- package/dist/DonutLabelChartPro.js +3 -3
- package/dist/EditorCard-BZ9OPW3m.js +32 -0
- package/dist/{EditorCard-BtlvgP9q.js.map → EditorCard-BZ9OPW3m.js.map} +1 -1
- package/dist/HeatMapPro.js +26 -93
- package/dist/HeatMapPro.js.map +1 -1
- package/dist/KpiChartNumberComparisonPro.js +25 -94
- package/dist/KpiChartNumberComparisonPro.js.map +1 -1
- package/dist/KpiChartNumberPro.js +14 -31
- package/dist/KpiChartNumberPro.js.map +1 -1
- package/dist/LineChartComparisonDefaultPro.js +59 -370
- package/dist/LineChartComparisonDefaultPro.js.map +1 -1
- package/dist/LineChartDefaultPro.js +31 -179
- package/dist/LineChartDefaultPro.js.map +1 -1
- package/dist/LineChartGroupedPro.js +30 -174
- package/dist/LineChartGroupedPro.js.map +1 -1
- package/dist/MultiSelectFieldPro.js +3 -3
- package/dist/PieChartPro.js +3 -3
- package/dist/PivotTablePro.js +23 -145
- package/dist/PivotTablePro.js.map +1 -1
- package/dist/SingleSelectFieldPro.js +3 -3
- package/dist/TableChartPaginated.js +37 -172
- package/dist/TableChartPaginated.js.map +1 -1
- package/dist/{bars.utils-JRnFN04m.js → bars.utils-wDaeYsgx.js} +7 -7
- package/dist/{bars.utils-JRnFN04m.js.map → bars.utils-wDaeYsgx.js.map} +1 -1
- package/dist/{charts.utils-DAkS2VK1.js → charts.utils-DvG9esg1.js} +4 -4
- package/dist/{charts.utils-DAkS2VK1.js.map → charts.utils-DvG9esg1.js.map} +1 -1
- package/dist/{component.constants-h6et83ck.js → component.constants-Dhb2rtRh.js} +2 -2
- package/dist/{component.constants-h6et83ck.js.map → component.constants-Dhb2rtRh.js.map} +1 -1
- package/dist/components/charts/tables/HeatMapPro/index.d.ts.map +1 -1
- package/dist/components/charts/tables/PivotTablePro/PivotPro.utils.d.ts +1 -4
- package/dist/components/charts/tables/PivotTablePro/PivotPro.utils.d.ts.map +1 -1
- package/dist/components/charts/tables/PivotTablePro/index.d.ts.map +1 -1
- package/dist/components/charts/tables/tables.hooks.d.ts +17 -0
- package/dist/components/charts/tables/tables.hooks.d.ts.map +1 -0
- package/dist/embeddable-components.json +12 -12
- package/dist/{formatter.utils-DXzI4Hz_.js → formatter.utils-Bdp9Y-Lv.js} +2 -2
- package/dist/{formatter.utils-DXzI4Hz_.js.map → formatter.utils-Bdp9Y-Lv.js.map} +1 -1
- package/dist/index-B-x3eR8s.js +83 -0
- package/dist/index-B-x3eR8s.js.map +1 -0
- package/dist/index-B2-si8wa.js +82 -0
- package/dist/index-B2-si8wa.js.map +1 -0
- package/dist/{index-DF-AuKua.js → index-B7H0xf_l.js} +15 -14
- package/dist/{index-DF-AuKua.js.map → index-B7H0xf_l.js.map} +1 -1
- package/dist/index-BPkkRwcA.js +159 -0
- package/dist/index-BPkkRwcA.js.map +1 -0
- package/dist/{index-CWYH2gE2.js → index-BbEkJ2Zk.js} +5 -5
- package/dist/{index-CWYH2gE2.js.map → index-BbEkJ2Zk.js.map} +1 -1
- package/dist/index-BxkGSCbn.js +81 -0
- package/dist/index-BxkGSCbn.js.map +1 -0
- package/dist/index-C4uAHg_1.js +82 -0
- package/dist/index-C4uAHg_1.js.map +1 -0
- package/dist/index-CA0eQwx6.js +95 -0
- package/dist/index-CA0eQwx6.js.map +1 -0
- package/dist/index-CEyir5HV.js +326 -0
- package/dist/index-CEyir5HV.js.map +1 -0
- package/dist/{index-B4S34Z5S.js → index-CGLsIs8j.js} +6 -6
- package/dist/{index-B4S34Z5S.js.map → index-CGLsIs8j.js.map} +1 -1
- package/dist/{index-BR6dp5RX.js → index-CK9V-wz1.js} +13 -13
- package/dist/{index-BR6dp5RX.js.map → index-CK9V-wz1.js.map} +1 -1
- package/dist/index-CMy4Riwi.js +152 -0
- package/dist/index-CMy4Riwi.js.map +1 -0
- package/dist/index-CZ9yuIpZ.js +82 -0
- package/dist/index-CZ9yuIpZ.js.map +1 -0
- package/dist/{index-C8O2asSv.js → index-CvhDbU54.js} +5 -5
- package/dist/{index-C8O2asSv.js.map → index-CvhDbU54.js.map} +1 -1
- package/dist/{index-QOVQo6ZK.js → index-D4L5OYNQ.js} +5 -5
- package/dist/{index-QOVQo6ZK.js.map → index-D4L5OYNQ.js.map} +1 -1
- package/dist/index-DSAnOSq9.js +73 -0
- package/dist/index-DSAnOSq9.js.map +1 -0
- package/dist/index-DYa6RC1f.js +89 -0
- package/dist/index-DYa6RC1f.js.map +1 -0
- package/dist/index-DZypsIb4.js +30 -0
- package/dist/index-DZypsIb4.js.map +1 -0
- package/dist/index-DyLLyX5j.js +56 -0
- package/dist/index-DyLLyX5j.js.map +1 -0
- package/dist/index-YMH6QSSf.js +163 -0
- package/dist/index-YMH6QSSf.js.map +1 -0
- package/dist/{index-Czj-HZH9.js → index-cy3SJfGM.js} +5 -5
- package/dist/{index-Czj-HZH9.js.map → index-cy3SJfGM.js.map} +1 -1
- package/dist/index-uFQScwgQ.js +72 -0
- package/dist/index-uFQScwgQ.js.map +1 -0
- package/dist/index.d.ts +28 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +122 -75
- package/dist/index.js.map +1 -1
- package/dist/{pies.utils-Bl8jquyV.js → pies.utils-eND-eqpj.js} +5 -5
- package/dist/{pies.utils-Bl8jquyV.js.map → pies.utils-eND-eqpj.js.map} +1 -1
- package/dist/remarkable-pro.css +1 -1
- package/dist/tables.hooks-BQdyUxau.js +45 -0
- package/dist/tables.hooks-BQdyUxau.js.map +1 -0
- package/dist/{timeRange.utils-CslTQiVA.js → timeRange.utils-DLTzyLvc.js} +2 -2
- package/dist/{timeRange.utils-CslTQiVA.js.map → timeRange.utils-DLTzyLvc.js.map} +1 -1
- package/package.json +2 -2
- package/dist/EditorCard-BtlvgP9q.js +0 -32
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { s as u, j as i, S as g } from "./index-CK9V-wz1.js";
|
|
2
|
+
import { useTheme as v } from "@embeddable.com/react";
|
|
3
|
+
import { g as h, u as f, a as y } from "./editors.timeRange.utils-DTtRGaCo.js";
|
|
4
|
+
import { $ as b, a as P, r as M, i as S } from "./component.constants-Dhb2rtRh.js";
|
|
5
|
+
import { E as j } from "./EditorCard-BZ9OPW3m.js";
|
|
6
|
+
import { useMemo as C, useEffect as O } from "react";
|
|
7
|
+
/**
|
|
8
|
+
* @license @tabler/icons-react v3.35.0 - MIT
|
|
9
|
+
*
|
|
10
|
+
* This source code is licensed under the MIT license.
|
|
11
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
12
|
+
*/
|
|
13
|
+
const R = [["path", { d: "M11.795 21h-6.795a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v4", key: "svg-0" }], ["path", { d: "M18 18m-4 0a4 4 0 1 0 8 0a4 4 0 1 0 -8 0", key: "svg-1" }], ["path", { d: "M15 3v4", key: "svg-2" }], ["path", { d: "M7 3v4", key: "svg-3" }], ["path", { d: "M3 11h16", key: "svg-4" }], ["path", { d: "M18 16.496v1.504l1 1", key: "svg-5" }]], k = u("outline", "calendar-time", "CalendarTime", R), x = (o, e) => !o || e.some((a) => a.value === o), T = (o, e) => o.map((a) => ({
|
|
14
|
+
rightLabel: e ? h(a.getRange(e), a.dateFormat) : "",
|
|
15
|
+
value: a.value,
|
|
16
|
+
label: b(a.label)
|
|
17
|
+
})), _ = (o) => {
|
|
18
|
+
const e = v();
|
|
19
|
+
P(e);
|
|
20
|
+
const { description: a, placeholder: l, title: c, comparisonPeriod: t, onChange: s } = M(o), r = e.defaults.comparisonPeriodsOptions, n = C(
|
|
21
|
+
() => x(t, r),
|
|
22
|
+
[t, r]
|
|
23
|
+
);
|
|
24
|
+
O(() => {
|
|
25
|
+
n || s(void 0);
|
|
26
|
+
}, [n, s]);
|
|
27
|
+
const { dayjsLocaleReady: m } = f(), d = y(o.primaryDateRange, e);
|
|
28
|
+
if (!m)
|
|
29
|
+
return null;
|
|
30
|
+
const p = T(
|
|
31
|
+
r,
|
|
32
|
+
d
|
|
33
|
+
);
|
|
34
|
+
return /* @__PURE__ */ i.jsx(j, { title: c, subtitle: a, children: /* @__PURE__ */ i.jsx(
|
|
35
|
+
g,
|
|
36
|
+
{
|
|
37
|
+
startIcon: k,
|
|
38
|
+
clearable: !0,
|
|
39
|
+
placeholder: l,
|
|
40
|
+
value: n ? t : void 0,
|
|
41
|
+
onChange: s,
|
|
42
|
+
options: p,
|
|
43
|
+
noOptionsMessage: S.t("common.noOptionsAvailable")
|
|
44
|
+
}
|
|
45
|
+
) });
|
|
46
|
+
}, z = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
47
|
+
__proto__: null,
|
|
48
|
+
default: _
|
|
49
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
50
|
+
export {
|
|
51
|
+
_ as D,
|
|
52
|
+
x as a,
|
|
53
|
+
T as g,
|
|
54
|
+
z as i
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=index-DyLLyX5j.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-DyLLyX5j.js","sources":["../node_modules/@tabler/icons-react/dist/esm/icons/IconCalendarTime.mjs","../src/components/editors/ComparisonPeriodSelectFieldPro/ComparisonPeriodSelectFieldPro.utils.ts","../src/components/editors/ComparisonPeriodSelectFieldPro/index.tsx"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.35.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M11.795 21h-6.795a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v4\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M18 18m-4 0a4 4 0 1 0 8 0a4 4 0 1 0 -8 0\", \"key\": \"svg-1\" }], [\"path\", { \"d\": \"M15 3v4\", \"key\": \"svg-2\" }], [\"path\", { \"d\": \"M7 3v4\", \"key\": \"svg-3\" }], [\"path\", { \"d\": \"M3 11h16\", \"key\": \"svg-4\" }], [\"path\", { \"d\": \"M18 16.496v1.504l1 1\", \"key\": \"svg-5\" }]];\nconst IconCalendarTime = createReactComponent(\"outline\", \"calendar-time\", \"CalendarTime\", __iconNode);\n\nexport { __iconNode, IconCalendarTime as default };\n//# sourceMappingURL=IconCalendarTime.mjs.map\n","import { SelectListOptionProps } from '@embeddable.com/remarkable-ui';\nimport { TimeRange } from '@embeddable.com/core';\nimport { ComparisonPeriodSelectFieldProOption } from './ComparisonPeriodSelectFieldPro.types';\nimport { getTimeRangeLabel } from '../editors.timeRange.utils';\nimport { resolveI18nString } from '../../component.utils';\n\n// Checks if the comparison period type is available in the embeddable types\nexport const isComparisonPeriodAvailable = (\n option: string | undefined,\n comparisonPeriodSelectFieldProOptions: ComparisonPeriodSelectFieldProOption[],\n): boolean => {\n return !option || comparisonPeriodSelectFieldProOptions.some((opt) => opt.value === option);\n};\n\nexport const getComparisonPeriodSelectFieldProOptions = (\n comparisonPeriodSelectFieldProOptions: ComparisonPeriodSelectFieldProOption[],\n toCompareTimeRange: TimeRange,\n): SelectListOptionProps[] => {\n return comparisonPeriodSelectFieldProOptions.map((option) => {\n return {\n rightLabel: toCompareTimeRange\n ? getTimeRangeLabel(option.getRange(toCompareTimeRange), option.dateFormat)\n : '',\n value: option.value,\n label: resolveI18nString(option.label),\n };\n });\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { SingleSelectField } from '@embeddable.com/remarkable-ui';\nimport { Theme } from '../../../theme/theme.types';\nimport { useLoadDayjsLocale } from '../../../utils.ts/date.utils';\nimport { TimeRange } from '@embeddable.com/core';\nimport { resolveI18nProps } from '../../component.utils';\nimport { EditorCard } from '../shared/EditorCard/EditorCard';\nimport { IconCalendarTime } from '@tabler/icons-react';\nimport { i18n, i18nSetup } from '../../../theme/i18n/i18n';\nimport {\n getComparisonPeriodSelectFieldProOptions,\n isComparisonPeriodAvailable,\n} from './ComparisonPeriodSelectFieldPro.utils';\nimport { getTimeRangeFromTo } from '../editors.timeRange.utils';\nimport { useEffect, useMemo } from 'react';\n\ntype DateComparisonSelectFieldPro = {\n title?: string;\n description?: string;\n placeholder?: string;\n primaryDateRange?: TimeRange;\n comparisonPeriod?: string;\n onChange: (newComparisonPeriod?: string) => void;\n};\n\nconst DateComparisonSelectFieldPro = (props: DateComparisonSelectFieldPro) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { description, placeholder, title, comparisonPeriod, onChange } = resolveI18nProps(props);\n\n const comparisonPeriodOptions = theme.defaults.comparisonPeriodsOptions;\n\n const comparisonPeriodAvailable = useMemo(\n () => isComparisonPeriodAvailable(comparisonPeriod, comparisonPeriodOptions),\n [comparisonPeriod, comparisonPeriodOptions],\n );\n\n // If the current comparison period is not available, reset the field\n useEffect(() => {\n if (!comparisonPeriodAvailable) {\n onChange(undefined);\n }\n }, [comparisonPeriodAvailable, onChange]);\n\n const { dayjsLocaleReady } = useLoadDayjsLocale();\n\n // Obtain the actual range for the selected primaryDateRange\n const primaryDateRange = getTimeRangeFromTo(props.primaryDateRange, theme);\n\n if (!dayjsLocaleReady) {\n return null;\n }\n\n const options = getComparisonPeriodSelectFieldProOptions(\n comparisonPeriodOptions,\n primaryDateRange,\n );\n\n return (\n <EditorCard title={title} subtitle={description}>\n <SingleSelectField\n startIcon={IconCalendarTime}\n clearable\n placeholder={placeholder}\n value={comparisonPeriodAvailable ? comparisonPeriod : undefined}\n onChange={onChange}\n options={options}\n noOptionsMessage={i18n.t('common.noOptionsAvailable')}\n />\n </EditorCard>\n );\n};\n\nexport default DateComparisonSelectFieldPro;\n"],"names":["__iconNode","IconCalendarTime","createReactComponent","isComparisonPeriodAvailable","option","comparisonPeriodSelectFieldProOptions","opt","getComparisonPeriodSelectFieldProOptions","toCompareTimeRange","getTimeRangeLabel","resolveI18nString","DateComparisonSelectFieldPro","props","theme","useTheme","i18nSetup","description","placeholder","title","comparisonPeriod","onChange","resolveI18nProps","comparisonPeriodOptions","comparisonPeriodAvailable","useMemo","useEffect","dayjsLocaleReady","useLoadDayjsLocale","primaryDateRange","getTimeRangeFromTo","options","jsx","EditorCard","SingleSelectField","i18n"],"mappings":";;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa,CAAC,CAAC,QAAQ,EAAE,GAAK,2EAA2E,KAAO,SAAS,GAAG,CAAC,QAAQ,EAAE,GAAK,4CAA4C,KAAO,SAAS,GAAG,CAAC,QAAQ,EAAE,GAAK,WAAW,KAAO,QAAO,CAAE,GAAG,CAAC,QAAQ,EAAE,GAAK,UAAU,KAAO,SAAS,GAAG,CAAC,QAAQ,EAAE,GAAK,YAAY,KAAO,SAAS,GAAG,CAAC,QAAQ,EAAE,GAAK,wBAAwB,KAAO,QAAO,CAAE,CAAC,GAC9YC,IAAmBC,EAAqB,WAAW,iBAAiB,gBAAgBF,CAAU,GCHvFG,IAA8B,CACzCC,GACAC,MAEO,CAACD,KAAUC,EAAsC,KAAK,CAACC,MAAQA,EAAI,UAAUF,CAAM,GAG/EG,IAA2C,CACtDF,GACAG,MAEOH,EAAsC,IAAI,CAACD,OACzC;AAAA,EACL,YAAYI,IACRC,EAAkBL,EAAO,SAASI,CAAkB,GAAGJ,EAAO,UAAU,IACxE;AAAA,EACJ,OAAOA,EAAO;AAAA,EACd,OAAOM,EAAkBN,EAAO,KAAK;AAAA,EAExC,GCDGO,IAA+B,CAACC,MAAwC;AAC5E,QAAMC,IAAeC,EAAA;AACrB,EAAAC,EAAUF,CAAK;AAEf,QAAM,EAAE,aAAAG,GAAa,aAAAC,GAAa,OAAAC,GAAO,kBAAAC,GAAkB,UAAAC,EAAA,IAAaC,EAAiBT,CAAK,GAExFU,IAA0BT,EAAM,SAAS,0BAEzCU,IAA4BC;AAAA,IAChC,MAAMrB,EAA4BgB,GAAkBG,CAAuB;AAAA,IAC3E,CAACH,GAAkBG,CAAuB;AAAA,EAAA;AAI5C,EAAAG,EAAU,MAAM;AACd,IAAKF,KACHH,EAAS,MAAS;AAAA,EAEtB,GAAG,CAACG,GAA2BH,CAAQ,CAAC;AAExC,QAAM,EAAE,kBAAAM,EAAA,IAAqBC,EAAA,GAGvBC,IAAmBC,EAAmBjB,EAAM,kBAAkBC,CAAK;AAEzE,MAAI,CAACa;AACH,WAAO;AAGT,QAAMI,IAAUvB;AAAA,IACde;AAAA,IACAM;AAAA,EAAA;AAGF,SACEG,gBAAAA,EAAAA,IAACC,GAAA,EAAW,OAAAd,GAAc,UAAUF,GAClC,UAAAe,gBAAAA,EAAAA;AAAAA,IAACE;AAAA,IAAA;AAAA,MACC,WAAWhC;AAAA,MACX,WAAS;AAAA,MACT,aAAAgB;AAAA,MACA,OAAOM,IAA4BJ,IAAmB;AAAA,MACtD,UAAAC;AAAA,MACA,SAAAU;AAAA,MACA,kBAAkBI,EAAK,EAAE,2BAA2B;AAAA,IAAA;AAAA,EAAA,GAExD;AAEJ;;;;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { a as y, c as x, m as v, j as f, L as j } from "./index-CK9V-wz1.js";
|
|
2
|
+
import { useTheme as O } from "@embeddable.com/react";
|
|
3
|
+
import { a as w, r as P } from "./component.constants-Dhb2rtRh.js";
|
|
4
|
+
import { C as S } from "./ChartCard-hWESZ2Ps.js";
|
|
5
|
+
import { g as A } from "./formatter.utils-Bdp9Y-Lv.js";
|
|
6
|
+
import { g as F, a as L } from "./object.utils-D_Zzon-H.js";
|
|
7
|
+
import { i as k, s as R } from "./color.utils-BSg_DFOh.js";
|
|
8
|
+
import { u as T } from "./charts.fillGaps.hooks-YayOXVmt.js";
|
|
9
|
+
const _ = (n, r) => {
|
|
10
|
+
if (!n.data)
|
|
11
|
+
return {
|
|
12
|
+
labels: [],
|
|
13
|
+
datasets: [{ data: [] }]
|
|
14
|
+
};
|
|
15
|
+
const m = A(r), i = F(r), c = n.data;
|
|
16
|
+
return {
|
|
17
|
+
labels: c.map((e) => e[n.dimension.name]),
|
|
18
|
+
datasets: n.measures.map((e, s) => {
|
|
19
|
+
var d, b, g, C;
|
|
20
|
+
const u = !!((d = e.inputs) != null && d.connectGaps), h = c.map((p) => p[e.name] ?? (u ? 0 : null)), l = (b = e.inputs) == null ? void 0 : b.lineColor, a = y(), t = k(l) ? l : L(
|
|
21
|
+
`${i}.charts.backgroundColors`,
|
|
22
|
+
e.name,
|
|
23
|
+
r.charts.backgroundColors ?? a,
|
|
24
|
+
s
|
|
25
|
+
), o = k(l) ? l : L(
|
|
26
|
+
`${i}.charts.borderColors`,
|
|
27
|
+
e.name,
|
|
28
|
+
r.charts.borderColors ?? a,
|
|
29
|
+
s
|
|
30
|
+
);
|
|
31
|
+
return {
|
|
32
|
+
clip: n.hasMinMaxYAxisRange,
|
|
33
|
+
label: m.dimensionOrMeasureTitle(e),
|
|
34
|
+
data: h,
|
|
35
|
+
backgroundColor: R(t, 0.5),
|
|
36
|
+
pointBackgroundColor: t,
|
|
37
|
+
borderDash: (g = e.inputs) != null && g.dashedLine ? [
|
|
38
|
+
x("--em-linechart-line-dash", "0.25rem"),
|
|
39
|
+
x("--em-linechart-line-gap", "0.25rem")
|
|
40
|
+
] : void 0,
|
|
41
|
+
borderColor: o,
|
|
42
|
+
fill: !!((C = e.inputs) != null && C.fillUnderLine)
|
|
43
|
+
};
|
|
44
|
+
})
|
|
45
|
+
};
|
|
46
|
+
}, B = (n, r) => {
|
|
47
|
+
var h, l;
|
|
48
|
+
const { dimension: m, data: i, measures: c, onLineClicked: e } = n, s = A(r);
|
|
49
|
+
return v({
|
|
50
|
+
plugins: {
|
|
51
|
+
datalabels: {
|
|
52
|
+
labels: {
|
|
53
|
+
value: {
|
|
54
|
+
formatter: (a, t) => {
|
|
55
|
+
const o = c[t.datasetIndex];
|
|
56
|
+
return s.data(o, a);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
tooltip: {
|
|
62
|
+
callbacks: {
|
|
63
|
+
title: (a) => {
|
|
64
|
+
var o;
|
|
65
|
+
const t = (o = a[0]) == null ? void 0 : o.label;
|
|
66
|
+
return s.data(m, t);
|
|
67
|
+
},
|
|
68
|
+
label: (a) => {
|
|
69
|
+
const t = c[a.datasetIndex], o = a.raw;
|
|
70
|
+
return `${s.data(m, a.dataset.label) || ""}: ${s.data(t, o)}`;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
scales: {
|
|
76
|
+
x: {
|
|
77
|
+
ticks: {
|
|
78
|
+
callback: (a) => {
|
|
79
|
+
if (!i || !i.labels) return;
|
|
80
|
+
const t = i.labels[Number(a)];
|
|
81
|
+
return s.data(m, t);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
y: {
|
|
86
|
+
ticks: {
|
|
87
|
+
callback: (a) => s.data(c[0], a)
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
onClick: (a, t, o) => {
|
|
92
|
+
const d = t[0], b = d ? o.data.labels[d.index] : null;
|
|
93
|
+
e({
|
|
94
|
+
dimensionValue: b
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}, ((l = (h = r.charts) == null ? void 0 : h.lineChartDefaultPro) == null ? void 0 : l.options) || {});
|
|
98
|
+
}, D = (n) => {
|
|
99
|
+
const r = O();
|
|
100
|
+
w(r);
|
|
101
|
+
const { title: m, description: i, xAxisLabel: c, yAxisLabel: e } = P(n), {
|
|
102
|
+
measures: s,
|
|
103
|
+
xAxis: u,
|
|
104
|
+
reverseXAxis: h,
|
|
105
|
+
showLegend: l,
|
|
106
|
+
showLogarithmicScale: a,
|
|
107
|
+
showTooltips: t,
|
|
108
|
+
showValueLabels: o,
|
|
109
|
+
yAxisRangeMax: d,
|
|
110
|
+
yAxisRangeMin: b,
|
|
111
|
+
onLineClicked: g
|
|
112
|
+
} = n, C = T({
|
|
113
|
+
results: n.results,
|
|
114
|
+
dimension: u
|
|
115
|
+
}), p = _(
|
|
116
|
+
{
|
|
117
|
+
data: C.data,
|
|
118
|
+
dimension: u,
|
|
119
|
+
measures: s,
|
|
120
|
+
hasMinMaxYAxisRange: b != null || d != null
|
|
121
|
+
},
|
|
122
|
+
r
|
|
123
|
+
), M = B(
|
|
124
|
+
{ data: p, dimension: u, measures: s, onLineClicked: g },
|
|
125
|
+
r
|
|
126
|
+
);
|
|
127
|
+
return /* @__PURE__ */ f.jsx(
|
|
128
|
+
S,
|
|
129
|
+
{
|
|
130
|
+
data: C,
|
|
131
|
+
dimensionsAndMeasures: [...s, u],
|
|
132
|
+
errorMessage: C.error,
|
|
133
|
+
subtitle: i,
|
|
134
|
+
title: m,
|
|
135
|
+
children: /* @__PURE__ */ f.jsx(
|
|
136
|
+
j,
|
|
137
|
+
{
|
|
138
|
+
data: p,
|
|
139
|
+
reverseXAxis: h,
|
|
140
|
+
showLegend: l,
|
|
141
|
+
showLogarithmicScale: a,
|
|
142
|
+
showTooltips: t,
|
|
143
|
+
showValueLabels: o,
|
|
144
|
+
xAxisLabel: c,
|
|
145
|
+
yAxisLabel: e,
|
|
146
|
+
yAxisRangeMax: d,
|
|
147
|
+
yAxisRangeMin: b,
|
|
148
|
+
options: M
|
|
149
|
+
}
|
|
150
|
+
)
|
|
151
|
+
}
|
|
152
|
+
);
|
|
153
|
+
}, E = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
154
|
+
__proto__: null,
|
|
155
|
+
default: D
|
|
156
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
157
|
+
export {
|
|
158
|
+
D as L,
|
|
159
|
+
B as a,
|
|
160
|
+
_ as g,
|
|
161
|
+
E as i
|
|
162
|
+
};
|
|
163
|
+
//# sourceMappingURL=index-YMH6QSSf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-YMH6QSSf.js","sources":["../src/components/charts/lines/LineChartDefaultPro/LineChartDefaultPro.utils.ts","../src/components/charts/lines/LineChartDefaultPro/index.tsx"],"sourcesContent":["import { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { Theme } from '../../../../theme/theme.types';\nimport { ChartData, ChartOptions } from 'chart.js';\nimport { getThemeFormatter } from '../../../../theme/formatter/formatter.utils';\nimport { getObjectStableKey } from '../../../../utils.ts/object.utils';\nimport { getChartContrastColors, getStyleNumber } from '@embeddable.com/remarkable-ui';\nimport { getColor } from '../../../../theme/styles/styles.utils';\nimport { mergician } from 'mergician';\nimport { isColorValid, setColorAlpha } from '../../../../utils.ts/color.utils';\nimport { LineChartProOptionsClick } from '../lines.utils';\n\nexport const getLineChartProData = (\n props: {\n data: DataResponse['data'];\n dimension: Dimension;\n measures: Measure[];\n hasMinMaxYAxisRange: boolean;\n },\n theme: Theme,\n): ChartData<'line'> => {\n if (!props.data) {\n return {\n labels: [],\n datasets: [{ data: [] }],\n };\n }\n\n const themeFormatter = getThemeFormatter(theme);\n\n const themeKey = getObjectStableKey(theme);\n const groupedData = props.data;\n\n return {\n labels: groupedData.map((item) => {\n return item[props.dimension.name];\n }),\n datasets: props.measures.map((measure, index) => {\n const zeroFill = Boolean(measure.inputs?.['connectGaps']);\n const values = groupedData.map((item) => item[measure.name] ?? (zeroFill ? 0 : null));\n\n const lineColor = measure.inputs?.['lineColor'];\n const chartContrastColors = getChartContrastColors();\n const backgroundColor = isColorValid(lineColor)\n ? lineColor\n : getColor(\n `${themeKey}.charts.backgroundColors`,\n measure.name,\n theme.charts.backgroundColors ?? chartContrastColors,\n index,\n );\n\n const borderColor = isColorValid(lineColor)\n ? lineColor\n : getColor(\n `${themeKey}.charts.borderColors`,\n measure.name,\n theme.charts.borderColors ?? chartContrastColors,\n index,\n );\n\n return {\n clip: props.hasMinMaxYAxisRange,\n label: themeFormatter.dimensionOrMeasureTitle(measure),\n data: values,\n backgroundColor: setColorAlpha(backgroundColor, 0.5),\n pointBackgroundColor: backgroundColor,\n borderDash: measure.inputs?.['dashedLine']\n ? [\n getStyleNumber('--em-linechart-line-dash', '0.25rem'),\n getStyleNumber('--em-linechart-line-gap', '0.25rem'),\n ]\n : undefined,\n borderColor,\n fill: Boolean(measure.inputs?.['fillUnderLine']),\n } as ChartData<'line'>['datasets'][number];\n }),\n };\n};\n\nexport const getLineChartProOptions = (\n options: {\n dimension: Dimension;\n measures: Measure[];\n data: ChartData<'line'>;\n onLineClicked: LineChartProOptionsClick;\n },\n theme: Theme,\n): ChartOptions<'line'> => {\n const { dimension, data, measures, onLineClicked } = options;\n const themeFormatter = getThemeFormatter(theme);\n\n const lineChartOptions: ChartOptions<'line'> = {\n plugins: {\n datalabels: {\n labels: {\n value: {\n formatter: (value: string | number, context) => {\n const measure = measures[context.datasetIndex]!;\n return themeFormatter.data(measure, value);\n },\n },\n },\n },\n tooltip: {\n callbacks: {\n title: (context) => {\n const label = context[0]?.label;\n return themeFormatter.data(dimension, label);\n },\n label: (context) => {\n const measure = measures[context.datasetIndex]!;\n const raw = context.raw as number;\n return `${themeFormatter.data(dimension, context.dataset.label) || ''}: ${themeFormatter.data(measure, raw)}`;\n },\n },\n },\n },\n scales: {\n x: {\n ticks: {\n callback: (value) => {\n if (!data || !data.labels) return undefined;\n\n const label = data.labels[Number(value)] as string;\n return themeFormatter.data(dimension, label);\n },\n },\n },\n y: {\n ticks: {\n callback: (value) => {\n return themeFormatter.data(measures[0]!, value);\n },\n },\n },\n },\n onClick: (_event, elements, chart) => {\n const element = elements[0];\n const dimensionValue = (element ? chart.data.labels![element.index] : null) as string | null;\n\n onLineClicked({\n dimensionValue,\n });\n },\n };\n\n return mergician(lineChartOptions, theme.charts?.lineChartDefaultPro?.options || {});\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { ChartCard } from '../../shared/ChartCard/ChartCard';\nimport { getLineChartProData, getLineChartProOptions } from './LineChartDefaultPro.utils';\nimport { useFillGaps } from '../../charts.fillGaps.hooks';\nimport { LineChartProOptionsClick } from '../lines.utils';\nimport { LineChart } from '@embeddable.com/remarkable-ui';\n\nexport type LineChartProPropsOnLineClicked = { axisDimensionValue: string | null };\n\ntype LineChartProProp = {\n description: string;\n xAxis: Dimension;\n measures: Measure[];\n results: DataResponse;\n reverseXAxis: boolean;\n showLegend: boolean;\n showLogarithmicScale: boolean;\n showTooltips: boolean;\n showValueLabels: boolean;\n title: string;\n xAxisLabel: string;\n yAxisLabel: string;\n yAxisRangeMax?: number;\n yAxisRangeMin?: number;\n onLineClicked: LineChartProOptionsClick;\n};\n\nconst LineChartPro = (props: LineChartProProp) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { title, description, xAxisLabel, yAxisLabel } = resolveI18nProps(props);\n const {\n measures,\n xAxis,\n reverseXAxis,\n showLegend,\n showLogarithmicScale,\n showTooltips,\n showValueLabels,\n yAxisRangeMax,\n yAxisRangeMin,\n onLineClicked,\n } = props;\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,\n hasMinMaxYAxisRange: Boolean(yAxisRangeMin != null || yAxisRangeMax != null),\n },\n theme,\n );\n const options = getLineChartProOptions(\n { data, dimension: xAxis, measures, onLineClicked },\n theme,\n );\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[...measures, xAxis]}\n errorMessage={results.error}\n subtitle={description}\n title={title}\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 />\n </ChartCard>\n );\n};\n\nexport default LineChartPro;\n"],"names":["getLineChartProData","props","theme","themeFormatter","getThemeFormatter","themeKey","getObjectStableKey","groupedData","item","measure","index","zeroFill","_a","values","lineColor","_b","chartContrastColors","getChartContrastColors","backgroundColor","isColorValid","getColor","borderColor","setColorAlpha","_c","getStyleNumber","_d","getLineChartProOptions","options","dimension","data","measures","onLineClicked","mergician","value","context","label","raw","_event","elements","chart","element","dimensionValue","LineChartPro","useTheme","i18nSetup","title","description","xAxisLabel","yAxisLabel","resolveI18nProps","xAxis","reverseXAxis","showLegend","showLogarithmicScale","showTooltips","showValueLabels","yAxisRangeMax","yAxisRangeMin","results","useFillGaps","jsx","ChartCard","LineChart"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { j as i, M } from "./index-
|
|
2
|
-
import { g as b } from "./formatter.utils-
|
|
1
|
+
import { j as i, M } from "./index-CK9V-wz1.js";
|
|
2
|
+
import { g as b } from "./formatter.utils-Bdp9Y-Lv.js";
|
|
3
3
|
import { useTheme as O } from "@embeddable.com/react";
|
|
4
|
-
import { E as j } from "./EditorCard-
|
|
5
|
-
import { r as x, i as v } from "./component.constants-
|
|
4
|
+
import { E as j } from "./EditorCard-BZ9OPW3m.js";
|
|
5
|
+
import { r as x, i as v } from "./component.constants-Dhb2rtRh.js";
|
|
6
6
|
const F = 200, _ = (l) => {
|
|
7
7
|
var a, r;
|
|
8
8
|
const m = O(), c = b(m), {
|
|
@@ -43,4 +43,4 @@ export {
|
|
|
43
43
|
_ as a,
|
|
44
44
|
C as i
|
|
45
45
|
};
|
|
46
|
-
//# sourceMappingURL=index-
|
|
46
|
+
//# sourceMappingURL=index-cy3SJfGM.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-cy3SJfGM.js","sources":["../src/components/editors/MultiSelectFieldPro/index.tsx"],"sourcesContent":["import { DataResponse, Dimension } from '@embeddable.com/core';\nimport { getThemeFormatter } from '../../../theme/formatter/formatter.utils';\nimport { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../theme/theme.types';\nimport { EditorCard } from '../shared/EditorCard/EditorCard';\nimport { resolveI18nProps } from '../../component.utils';\nimport { i18n } from '../../../theme/i18n/i18n';\nimport { MultiSelectField } from '@embeddable.com/remarkable-ui';\n\nexport const MAX_OPTIONS = 200;\n\ntype MultiSelectFieldProProps = {\n title?: string;\n description?: string;\n dimension: Dimension;\n optionalSecondDimension?: Dimension;\n placeholder?: string;\n results: DataResponse;\n selectedValues: string[];\n maxOptions?: number;\n setSearchValue: (search: string) => void;\n onChange?: (newValues: string[]) => void;\n};\n\nconst MultiSelectFieldPro = (props: MultiSelectFieldProProps) => {\n const theme: Theme = useTheme() as Theme;\n const themeFormatter = getThemeFormatter(theme);\n const {\n title,\n description,\n dimension,\n optionalSecondDimension,\n placeholder,\n results,\n selectedValues,\n setSearchValue,\n onChange,\n } = resolveI18nProps(props);\n\n const options =\n results.data?.map((data) => {\n return {\n value: optionalSecondDimension ? data[optionalSecondDimension.name] : data[dimension.name],\n label: themeFormatter.data(dimension, data[dimension.name]),\n };\n }) ?? [];\n\n const showNoOptionsMessage = Boolean(!results.isLoading && (results.data?.length ?? 0) === 0);\n\n return (\n <EditorCard title={title} subtitle={description}>\n <MultiSelectField\n isClearable\n isSearchable\n isLoading={results.isLoading}\n values={selectedValues ?? []}\n options={options}\n placeholder={placeholder}\n noOptionsMessage={showNoOptionsMessage ? i18n.t('common.noOptionsFound') : undefined}\n onChange={(newValues) => onChange?.(newValues)}\n onSearch={setSearchValue}\n />\n </EditorCard>\n );\n};\n\nexport default MultiSelectFieldPro;\n"],"names":["MAX_OPTIONS","MultiSelectFieldPro","props","theme","useTheme","themeFormatter","getThemeFormatter","title","description","dimension","optionalSecondDimension","placeholder","results","selectedValues","setSearchValue","onChange","resolveI18nProps","options","_a","data","showNoOptionsMessage","_b","jsx","EditorCard","MultiSelectField","i18n","newValues"],"mappings":";;;;;AASO,MAAMA,IAAc,KAerBC,IAAsB,CAACC,MAAoC;;AAC/D,QAAMC,IAAeC,EAAA,GACfC,IAAiBC,EAAkBH,CAAK,GACxC;AAAA,IACJ,OAAAI;AAAA,IACA,aAAAC;AAAA,IACA,WAAAC;AAAA,IACA,yBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,SAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,UAAAC;AAAA,EAAA,IACEC,EAAiBd,CAAK,GAEpBe,MACJC,IAAAN,EAAQ,SAAR,gBAAAM,EAAc,IAAI,CAACC,OACV;AAAA,IACL,OAAOT,IAA0BS,EAAKT,EAAwB,IAAI,IAAIS,EAAKV,EAAU,IAAI;AAAA,IACzF,OAAOJ,EAAe,KAAKI,GAAWU,EAAKV,EAAU,IAAI,CAAC;AAAA,EAAA,QAExD,CAAA,GAEFW,IAA+B,CAACR,EAAQ,gBAAcS,IAAAT,EAAQ,SAAR,gBAAAS,EAAc,WAAU,OAAO;AAE3F,SACEC,gBAAAA,EAAAA,IAACC,GAAA,EAAW,OAAAhB,GAAc,UAAUC,GAClC,UAAAc,gBAAAA,EAAAA;AAAAA,IAACE;AAAA,IAAA;AAAA,MACC,aAAW;AAAA,MACX,cAAY;AAAA,MACZ,WAAWZ,EAAQ;AAAA,MACnB,QAAQC,KAAkB,CAAA;AAAA,MAC1B,SAAAI;AAAA,MACA,aAAAN;AAAA,MACA,kBAAkBS,IAAuBK,EAAK,EAAE,uBAAuB,IAAI;AAAA,MAC3E,UAAU,CAACC,MAAcX,KAAA,gBAAAA,EAAWW;AAAA,MACpC,UAAUZ;AAAA,IAAA;AAAA,EAAA,GAEd;AAEJ;;;;;"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { m as M, j as l, B as P } from "./index-CK9V-wz1.js";
|
|
2
|
+
import { useTheme as y } from "@embeddable.com/react";
|
|
3
|
+
import { a as L, r as w } from "./component.constants-Dhb2rtRh.js";
|
|
4
|
+
import { C as S } from "./ChartCard-hWESZ2Ps.js";
|
|
5
|
+
import { a as _, b as v } from "./bars.utils-wDaeYsgx.js";
|
|
6
|
+
import { u as D } from "./charts.fillGaps.hooks-YayOXVmt.js";
|
|
7
|
+
const I = (t) => {
|
|
8
|
+
var i, n;
|
|
9
|
+
const s = y();
|
|
10
|
+
L(s);
|
|
11
|
+
const {
|
|
12
|
+
description: m,
|
|
13
|
+
dimension: e,
|
|
14
|
+
measures: a,
|
|
15
|
+
title: u,
|
|
16
|
+
xAxisLabel: x,
|
|
17
|
+
xAxisMaxItems: c,
|
|
18
|
+
yAxisLabel: d,
|
|
19
|
+
yAxisRangeMin: h,
|
|
20
|
+
yAxisRangeMax: p,
|
|
21
|
+
showLegend: f,
|
|
22
|
+
showLogarithmicScale: g,
|
|
23
|
+
showTooltips: b,
|
|
24
|
+
showValueLabels: C,
|
|
25
|
+
reverseXAxis: A,
|
|
26
|
+
onBarClicked: B
|
|
27
|
+
} = w(t), r = D({
|
|
28
|
+
results: t.results,
|
|
29
|
+
dimension: e
|
|
30
|
+
}), o = _(
|
|
31
|
+
{ data: r.data, dimension: e, measures: a, maxItems: c },
|
|
32
|
+
s
|
|
33
|
+
), j = M(
|
|
34
|
+
v({ measures: a, horizontal: !1, onBarClicked: B, data: o, dimension: e }, s),
|
|
35
|
+
// Format Y axis based on first measure
|
|
36
|
+
((n = (i = s.charts) == null ? void 0 : i.barChartDefaultPro) == null ? void 0 : n.options) || {}
|
|
37
|
+
);
|
|
38
|
+
return /* @__PURE__ */ l.jsx(
|
|
39
|
+
S,
|
|
40
|
+
{
|
|
41
|
+
data: r,
|
|
42
|
+
dimensionsAndMeasures: [e, ...a],
|
|
43
|
+
errorMessage: r.error,
|
|
44
|
+
subtitle: m,
|
|
45
|
+
title: u,
|
|
46
|
+
children: /* @__PURE__ */ l.jsx(
|
|
47
|
+
P,
|
|
48
|
+
{
|
|
49
|
+
data: o,
|
|
50
|
+
showLegend: f,
|
|
51
|
+
showTooltips: b,
|
|
52
|
+
showValueLabels: C,
|
|
53
|
+
showLogarithmicScale: g,
|
|
54
|
+
xAxisLabel: x,
|
|
55
|
+
yAxisLabel: d,
|
|
56
|
+
reverseXAxis: A,
|
|
57
|
+
yAxisRangeMin: h,
|
|
58
|
+
yAxisRangeMax: p,
|
|
59
|
+
options: j
|
|
60
|
+
}
|
|
61
|
+
)
|
|
62
|
+
}
|
|
63
|
+
);
|
|
64
|
+
}, F = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
65
|
+
__proto__: null,
|
|
66
|
+
default: I
|
|
67
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
68
|
+
export {
|
|
69
|
+
I as B,
|
|
70
|
+
F as i
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=index-uFQScwgQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-uFQScwgQ.js","sources":["../src/components/charts/bars/BarChartDefaultPro/index.tsx"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { ChartCard } from '../../shared/ChartCard/ChartCard';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { BarChart } from '@embeddable.com/remarkable-ui';\nimport { getBarChartProData, getBarChartProOptions } from '../bars.utils';\nimport { mergician } from 'mergician';\nimport { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { useFillGaps } from '../../charts.fillGaps.hooks';\n\ntype BarChartDefaultProProps = {\n description: string;\n dimension: Dimension;\n measures: Measure[];\n results: DataResponse;\n title: string;\n xAxisLabel: string;\n xAxisMaxItems: number;\n yAxisLabel: string;\n yAxisRangeMin?: number;\n yAxisRangeMax?: number;\n showLegend: boolean;\n showLogarithmicScale: boolean;\n showTooltips: boolean;\n showValueLabels: boolean;\n reverseXAxis: boolean;\n onBarClicked: (args: { axisDimensionValue: string | null }) => void;\n};\n\nconst BarChartDefaultPro = (props: BarChartDefaultProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const {\n description,\n dimension,\n measures,\n title,\n xAxisLabel,\n xAxisMaxItems,\n yAxisLabel,\n yAxisRangeMin,\n yAxisRangeMax,\n showLegend,\n showLogarithmicScale,\n showTooltips,\n showValueLabels,\n reverseXAxis,\n onBarClicked,\n } = resolveI18nProps(props);\n\n const results = useFillGaps({\n results: props.results,\n dimension,\n });\n\n const data = getBarChartProData(\n { data: results.data, dimension, measures, maxItems: xAxisMaxItems },\n theme,\n );\n\n const options = mergician(\n getBarChartProOptions({ measures, horizontal: false, onBarClicked, data, dimension }, theme), // Format Y axis based on first measure\n theme.charts?.barChartDefaultPro?.options || {},\n );\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[dimension, ...measures]}\n errorMessage={results.error}\n subtitle={description}\n title={title}\n >\n <BarChart\n data={data}\n showLegend={showLegend}\n showTooltips={showTooltips}\n showValueLabels={showValueLabels}\n showLogarithmicScale={showLogarithmicScale}\n xAxisLabel={xAxisLabel}\n yAxisLabel={yAxisLabel}\n reverseXAxis={reverseXAxis}\n yAxisRangeMin={yAxisRangeMin}\n yAxisRangeMax={yAxisRangeMax}\n options={options}\n />\n </ChartCard>\n );\n};\n\nexport default BarChartDefaultPro;\n"],"names":["BarChartDefaultPro","props","theme","useTheme","i18nSetup","description","dimension","measures","title","xAxisLabel","xAxisMaxItems","yAxisLabel","yAxisRangeMin","yAxisRangeMax","showLegend","showLogarithmicScale","showTooltips","showValueLabels","reverseXAxis","onBarClicked","resolveI18nProps","results","useFillGaps","data","getBarChartProData","options","mergician","getBarChartProOptions","_b","_a","jsx","ChartCard","BarChart"],"mappings":";;;;;;AA8BA,MAAMA,IAAqB,CAACC,MAAmC;;AAC7D,QAAMC,IAAQC,EAAA;AACd,EAAAC,EAAUF,CAAK;AAEf,QAAM;AAAA,IACJ,aAAAG;AAAA,IACA,WAAAC;AAAA,IACA,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,YAAAC;AAAA,IACA,eAAAC;AAAA,IACA,YAAAC;AAAA,IACA,eAAAC;AAAA,IACA,eAAAC;AAAA,IACA,YAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,cAAAC;AAAA,EAAA,IACEC,EAAiBnB,CAAK,GAEpBoB,IAAUC,EAAY;AAAA,IAC1B,SAASrB,EAAM;AAAA,IACf,WAAAK;AAAA,EAAA,CACD,GAEKiB,IAAOC;AAAA,IACX,EAAE,MAAMH,EAAQ,MAAM,WAAAf,GAAW,UAAAC,GAAU,UAAUG,EAAA;AAAA,IACrDR;AAAA,EAAA,GAGIuB,IAAUC;AAAA,IACdC,EAAsB,EAAE,UAAApB,GAAU,YAAY,IAAO,cAAAY,GAAc,MAAAI,GAAM,WAAAjB,EAAA,GAAaJ,CAAK;AAAA;AAAA,MAC3F0B,KAAAC,IAAA3B,EAAM,WAAN,gBAAA2B,EAAc,uBAAd,gBAAAD,EAAkC,YAAW,CAAA;AAAA,EAAC;AAGhD,SACEE,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAMV;AAAA,MACN,uBAAuB,CAACf,GAAW,GAAGC,CAAQ;AAAA,MAC9C,cAAcc,EAAQ;AAAA,MACtB,UAAUhB;AAAA,MACV,OAAAG;AAAA,MAEA,UAAAsB,gBAAAA,EAAAA;AAAAA,QAACE;AAAA,QAAA;AAAA,UACC,MAAAT;AAAA,UACA,YAAAT;AAAA,UACA,cAAAE;AAAA,UACA,iBAAAC;AAAA,UACA,sBAAAF;AAAA,UACA,YAAAN;AAAA,UACA,YAAAE;AAAA,UACA,cAAAO;AAAA,UACA,eAAAN;AAAA,UACA,eAAAC;AAAA,UACA,SAAAY;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGN;;;;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,17 +6,39 @@ export * from './theme/theme.constants';
|
|
|
6
6
|
export type { NumberFormatter, DateTimeFormatter, StringFormatter, ThemeFormatter, } from './theme/formatter/formatter.types';
|
|
7
7
|
export { getThemeFormatter } from './theme/formatter/formatter.utils';
|
|
8
8
|
export { resolveI18nProps } from './components/component.utils';
|
|
9
|
-
export
|
|
10
|
-
export * from './components/
|
|
11
|
-
export * from './components/charts/
|
|
12
|
-
export * as
|
|
9
|
+
export * as BarChartDefaultPro from './components/charts/bars/BarChartDefaultPro';
|
|
10
|
+
export * as BarChartStackedPro from './components/charts/bars/BarChartStackedPro';
|
|
11
|
+
export * as BarChartGroupedPro from './components/charts/bars/BarChartGroupedPro';
|
|
12
|
+
export * as BarChartDefaultHorizontalPro from './components/charts/bars/BarChartDefaultHorizontalPro';
|
|
13
|
+
export * as BarChartStackedHorizontalPro from './components/charts/bars/BarChartStackedHorizontalPro';
|
|
14
|
+
export * as BarChartGroupedHorizontalPro from './components/charts/bars/BarChartGroupedHorizontalPro';
|
|
15
|
+
export * from './components/charts/bars/bars.utils';
|
|
16
|
+
export * as KpiChartNumberPro from './components/charts/kpis/KpiChartNumberPro';
|
|
17
|
+
export * as KpiChartNumberComparisonPro from './components/charts/kpis/KpiChartNumberComparisonPro';
|
|
18
|
+
export * as LineChartDefaultPro from './components/charts/lines/LineChartDefaultPro';
|
|
19
|
+
export * as LineChartGroupedPro from './components/charts/lines/LineChartGroupedPro';
|
|
20
|
+
export * as LineChartComparisonDefaultPro from './components/charts/lines/LineChartComparisonDefaultPro';
|
|
21
|
+
export * from './components/charts/lines/LineChartComparisonDefaultPro/LineChartComparisonDefaultPro.utils';
|
|
22
|
+
export * from './components/charts/lines/LineChartDefaultPro/LineChartDefaultPro.utils';
|
|
23
|
+
export * from './components/charts/lines/LineChartGroupedPro/LineChartGroupedPro.utils';
|
|
13
24
|
export * as DonutChartPro from './components/charts/pies/DonutChartPro';
|
|
25
|
+
export * as PieChartPro from './components/charts/pies/PieChartPro';
|
|
14
26
|
export * as DonutLabelChartPro from './components/charts/pies/DonutLabelChartPro';
|
|
27
|
+
export * from './components/charts/pies/pies.types';
|
|
15
28
|
export * from './components/charts/pies/pies.utils';
|
|
16
|
-
export
|
|
29
|
+
export * as HeatMapPro from './components/charts/tables/HeatMapPro';
|
|
30
|
+
export * as PivotTablePro from './components/charts/tables/PivotTablePro';
|
|
31
|
+
export * as TableChartPaginatedPro from './components/charts/tables/TableChartPaginated';
|
|
32
|
+
export * from './components/charts/tables/tables.utils';
|
|
33
|
+
export { ChartCard } from './components/charts/shared/ChartCard/ChartCard';
|
|
34
|
+
export * from './components/component.constants';
|
|
35
|
+
export * as ComparisonPeriodSelectFieldPro from './components/editors/ComparisonPeriodSelectFieldPro';
|
|
36
|
+
export * from './components/editors/ComparisonPeriodSelectFieldPro/ComparisonPeriodSelectFieldPro.utils';
|
|
37
|
+
export * as DateRangeSelectFieldPro from './components/editors/DateRangeSelectFieldPro';
|
|
38
|
+
export * from './components/editors/DateRangeSelectFieldPro/DateRangeSelectFieldPro.utils';
|
|
17
39
|
export * as MultiSelectFieldPro from './components/editors/MultiSelectFieldPro';
|
|
18
40
|
export * as SingleSelectFieldPro from './components/editors/SingleSelectFieldPro';
|
|
19
|
-
export
|
|
41
|
+
export { EditorCard } from './components/editors/shared/EditorCard/EditorCard';
|
|
20
42
|
export { default as ComparisonPeriodType } from './components/types/ComparisonPeriod.type.emb';
|
|
21
43
|
export { setColorAlpha, isColorValid } from './utils.ts/color.utils';
|
|
22
44
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAGpD,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AAGxC,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,cAAc,GACf,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAGtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAGpD,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AAGxC,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,cAAc,GACf,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAGtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,OAAO,KAAK,kBAAkB,MAAM,6CAA6C,CAAC;AAClF,OAAO,KAAK,kBAAkB,MAAM,6CAA6C,CAAC;AAClF,OAAO,KAAK,kBAAkB,MAAM,6CAA6C,CAAC;AAClF,OAAO,KAAK,4BAA4B,MAAM,uDAAuD,CAAC;AACtG,OAAO,KAAK,4BAA4B,MAAM,uDAAuD,CAAC;AACtG,OAAO,KAAK,4BAA4B,MAAM,uDAAuD,CAAC;AACtG,cAAc,qCAAqC,CAAC;AAEpD,OAAO,KAAK,iBAAiB,MAAM,4CAA4C,CAAC;AAChF,OAAO,KAAK,2BAA2B,MAAM,sDAAsD,CAAC;AAEpG,OAAO,KAAK,mBAAmB,MAAM,+CAA+C,CAAC;AACrF,OAAO,KAAK,mBAAmB,MAAM,+CAA+C,CAAC;AACrF,OAAO,KAAK,6BAA6B,MAAM,yDAAyD,CAAC;AACzG,cAAc,6FAA6F,CAAC;AAC5G,cAAc,yEAAyE,CAAC;AACxF,cAAc,yEAAyE,CAAC;AAExF,OAAO,KAAK,aAAa,MAAM,wCAAwC,CAAC;AACxE,OAAO,KAAK,WAAW,MAAM,sCAAsC,CAAC;AACpE,OAAO,KAAK,kBAAkB,MAAM,6CAA6C,CAAC;AAClF,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AAEpD,OAAO,KAAK,UAAU,MAAM,uCAAuC,CAAC;AACpE,OAAO,KAAK,aAAa,MAAM,0CAA0C,CAAC;AAC1E,OAAO,KAAK,sBAAsB,MAAM,gDAAgD,CAAC;AACzF,cAAc,yCAAyC,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,MAAM,gDAAgD,CAAC;AAC3E,cAAc,kCAAkC,CAAC;AAGjD,OAAO,KAAK,8BAA8B,MAAM,qDAAqD,CAAC;AACtG,cAAc,0FAA0F,CAAC;AACzG,OAAO,KAAK,uBAAuB,MAAM,8CAA8C,CAAC;AACxF,cAAc,4EAA4E,CAAC;AAC3F,OAAO,KAAK,mBAAmB,MAAM,0CAA0C,CAAC;AAChF,OAAO,KAAK,oBAAoB,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,mDAAmD,CAAC;AAG/E,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AAG/F,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC"}
|