@embeddable.com/remarkable-pro 0.0.14 → 0.0.15
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 +24 -24
- package/dist/BarChartDefaultHorizontalPro.js.map +1 -1
- package/dist/BarChartDefaultPro.js +24 -24
- package/dist/BarChartDefaultPro.js.map +1 -1
- package/dist/BarChartGroupedHorizontalPro.js +27 -27
- package/dist/BarChartGroupedHorizontalPro.js.map +1 -1
- package/dist/BarChartGroupedPro.js +33 -33
- package/dist/BarChartGroupedPro.js.map +1 -1
- package/dist/BarChartStackedHorizontalPro.js +28 -28
- package/dist/BarChartStackedHorizontalPro.js.map +1 -1
- package/dist/BarChartStackedPro.js +27 -27
- package/dist/BarChartStackedPro.js.map +1 -1
- package/dist/{ChartCard-DaUtlchs.js → ChartCard-BEIVgW77.js} +3 -3
- package/dist/{ChartCard-DaUtlchs.js.map → ChartCard-BEIVgW77.js.map} +1 -1
- package/dist/{index-BIiign0L.js → Color.type.emb-ByiNbaI7.js} +7355 -7348
- package/dist/Color.type.emb-ByiNbaI7.js.map +1 -0
- package/dist/ColorEditor.js +10 -11
- package/dist/ColorEditor.js.map +1 -1
- package/dist/ComparisonPeriodSelectFieldPro.js +19 -22
- package/dist/ComparisonPeriodSelectFieldPro.js.map +1 -1
- package/dist/DateRangePickerCustomPro.js +29 -28
- package/dist/DateRangePickerCustomPro.js.map +1 -1
- package/dist/DateRangeSelectFieldPro.js +23 -21
- package/dist/DateRangeSelectFieldPro.js.map +1 -1
- package/dist/DonutChartPro.js +24 -24
- package/dist/DonutChartPro.js.map +1 -1
- package/dist/DonutLabelChartPro.js +29 -30
- package/dist/DonutLabelChartPro.js.map +1 -1
- package/dist/{EditorCard-DXQeyo3r.js → EditorCard-NEIuygkP.js} +10 -10
- package/dist/{EditorCard-DXQeyo3r.js.map → EditorCard-NEIuygkP.js.map} +1 -1
- package/dist/HeatMapPro.js +46 -45
- package/dist/HeatMapPro.js.map +1 -1
- package/dist/KpiChartNumberComparisonPro.js +32 -31
- package/dist/KpiChartNumberComparisonPro.js.map +1 -1
- package/dist/KpiChartNumberPro.js +14 -20
- package/dist/KpiChartNumberPro.js.map +1 -1
- package/dist/LineChartComparisonDefaultPro.js +61 -60
- package/dist/LineChartComparisonDefaultPro.js.map +1 -1
- package/dist/LineChartDefaultPro.js +46 -38
- package/dist/LineChartDefaultPro.js.map +1 -1
- package/dist/LineChartGroupedPro.js +47 -36
- package/dist/LineChartGroupedPro.js.map +1 -1
- package/dist/MultiSelectFieldPro.js +24 -27
- package/dist/MultiSelectFieldPro.js.map +1 -1
- package/dist/PieChartPro.js +24 -24
- package/dist/PieChartPro.js.map +1 -1
- package/dist/PivotTablePro.js +31 -29
- package/dist/PivotTablePro.js.map +1 -1
- package/dist/SingleSelectFieldPro.js +24 -24
- package/dist/SingleSelectFieldPro.js.map +1 -1
- package/dist/TableChartPaginated.js +43 -37
- package/dist/TableChartPaginated.js.map +1 -1
- package/dist/{bars.utils-BOaMUmRC.js → bars.utils-D12lq8bm.js} +4 -4
- package/dist/{bars.utils-BOaMUmRC.js.map → bars.utils-D12lq8bm.js.map} +1 -1
- package/dist/{charts.utils-QEdmPKTi.js → charts.utils-Bq6c6ccK.js} +4 -4
- package/dist/{charts.utils-QEdmPKTi.js.map → charts.utils-Bq6c6ccK.js.map} +1 -1
- package/dist/{component.constants-DJqBv0qe.js → component.inputs.constants-FaX3B1CO.js} +416 -403
- package/dist/component.inputs.constants-FaX3B1CO.js.map +1 -0
- package/dist/components/charts/tables/HeatMapPro/index.d.ts +2 -2
- package/dist/components/charts/tables/HeatMapPro/index.d.ts.map +1 -1
- package/dist/components/component.inputs.constants.d.ts +309 -0
- package/dist/components/component.inputs.constants.d.ts.map +1 -0
- package/dist/components/component.subinputs.constants.d.ts +95 -0
- package/dist/components/component.subinputs.constants.d.ts.map +1 -0
- package/dist/embeddable-components.json +16 -16
- package/dist/{formatter.utils-BRMB8qAc.js → formatter.utils-IGbSBsIu.js} +2 -2
- package/dist/{formatter.utils-BRMB8qAc.js.map → formatter.utils-IGbSBsIu.js.map} +1 -1
- package/dist/{index-DD28i12d.js → index-B15C4kTf.js} +5 -5
- package/dist/{index-DD28i12d.js.map → index-B15C4kTf.js.map} +1 -1
- package/dist/{index-DlkwNVQ_.js → index-BDPQ_c46.js} +5 -5
- package/dist/{index-DlkwNVQ_.js.map → index-BDPQ_c46.js.map} +1 -1
- package/dist/{index-CnbSiVWn.js → index-BKcWHLSf.js} +5 -5
- package/dist/{index-CnbSiVWn.js.map → index-BKcWHLSf.js.map} +1 -1
- package/dist/{index-CrFZJTR2.js → index-BNFqHQr3.js} +6 -6
- package/dist/{index-CrFZJTR2.js.map → index-BNFqHQr3.js.map} +1 -1
- package/dist/{index-BqgkyNm8.js → index-BiTSd5Wd.js} +5 -5
- package/dist/index-BiTSd5Wd.js.map +1 -0
- package/dist/{index-QLS7PLnH.js → index-BjaJdNzu.js} +5 -5
- package/dist/{index-QLS7PLnH.js.map → index-BjaJdNzu.js.map} +1 -1
- package/dist/{index-BbypzboN.js → index-BzF8GFHy.js} +5 -5
- package/dist/{index-BbypzboN.js.map → index-BzF8GFHy.js.map} +1 -1
- package/dist/{index-CfpIN_sB.js → index-CQZhGtUT.js} +6 -6
- package/dist/{index-CfpIN_sB.js.map → index-CQZhGtUT.js.map} +1 -1
- package/dist/{index-BvAMg9p7.js → index-CR69kGQc.js} +5 -5
- package/dist/{index-BvAMg9p7.js.map → index-CR69kGQc.js.map} +1 -1
- package/dist/{index-BcipgJ0R.js → index-CdjbmThq.js} +5 -5
- package/dist/{index-BcipgJ0R.js.map → index-CdjbmThq.js.map} +1 -1
- package/dist/{index-Drxp0RBw.js → index-CwiND2Ct.js} +16 -16
- package/dist/{index-Drxp0RBw.js.map → index-CwiND2Ct.js.map} +1 -1
- package/dist/{index-DD5t0omh.js → index-DLCspqkx.js} +5 -5
- package/dist/{index-DD5t0omh.js.map → index-DLCspqkx.js.map} +1 -1
- package/dist/{index-fHVbX-W0.js → index-DNXqnRoE.js} +5 -5
- package/dist/{index-fHVbX-W0.js.map → index-DNXqnRoE.js.map} +1 -1
- package/dist/{index-9xeta4is.js → index-DRIH3L5J.js} +5 -5
- package/dist/{index-9xeta4is.js.map → index-DRIH3L5J.js.map} +1 -1
- package/dist/{index-BpTn16mw.js → index-DdeFtB5C.js} +22 -22
- package/dist/{index-BpTn16mw.js.map → index-DdeFtB5C.js.map} +1 -1
- package/dist/{index-DkbXF0dN.js → index-Dhj9KjfQ.js} +5 -5
- package/dist/{index-DkbXF0dN.js.map → index-Dhj9KjfQ.js.map} +1 -1
- package/dist/{index-CYfKRRhL.js → index-EAQjfjEJ.js} +16 -16
- package/dist/{index-CYfKRRhL.js.map → index-EAQjfjEJ.js.map} +1 -1
- package/dist/{index-CVv-xIyp.js → index-RHaWI3AH.js} +5 -5
- package/dist/{index-CVv-xIyp.js.map → index-RHaWI3AH.js.map} +1 -1
- package/dist/{index-Ba6ziHiQ.js → index-_fEx7Sbh.js} +4 -4
- package/dist/{index-Ba6ziHiQ.js.map → index-_fEx7Sbh.js.map} +1 -1
- package/dist/{index-DBFwmzJQ.js → index-hHVOyy6e.js} +11 -11
- package/dist/{index-DBFwmzJQ.js.map → index-hHVOyy6e.js.map} +1 -1
- package/dist/{index-Bege60LS.js → index-oK1pn0Vk.js} +5 -5
- package/dist/{index-Bege60LS.js.map → index-oK1pn0Vk.js.map} +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +81 -131
- package/dist/index.js.map +1 -1
- package/dist/{pies.utils-P0szT8UT.js → pies.utils-C5DxeS68.js} +5 -5
- package/dist/{pies.utils-P0szT8UT.js.map → pies.utils-C5DxeS68.js.map} +1 -1
- package/dist/remarkable-pro.css +1 -1
- package/dist/{timeRange.utils-CgLgHA94.js → timeRange.utils-CTEHTF97.js} +2 -2
- package/dist/{timeRange.utils-CgLgHA94.js.map → timeRange.utils-CTEHTF97.js.map} +1 -1
- package/package.json +2 -2
- package/dist/Color.type.emb-DFhAaPXz.js +0 -9
- package/dist/Color.type.emb-DFhAaPXz.js.map +0 -1
- package/dist/ComparisonPeriod.type.emb-C-YdNTEB.js +0 -14
- package/dist/ComparisonPeriod.type.emb-C-YdNTEB.js.map +0 -1
- package/dist/component.constants-DJqBv0qe.js.map +0 -1
- package/dist/components/component.constants.d.ts +0 -324
- package/dist/components/component.constants.d.ts.map +0 -1
- package/dist/index-BIiign0L.js.map +0 -1
- package/dist/index-BqgkyNm8.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-_fEx7Sbh.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.36.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 { resolveI18nString } from '../../component.utils';\nimport { getTimeRangeLabel } from '../dates/dates.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 { useEffect, useMemo } from 'react';\nimport { getTimeRangeFromPresets } from '../dates/dates.utils';\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 = getTimeRangeFromPresets(\n props.primaryDateRange,\n theme.defaults.dateRangesOptions,\n );\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","getTimeRangeFromPresets","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;AAAA,IACvBjB,EAAM;AAAA,IACNC,EAAM,SAAS;AAAA,EAAA;AAGjB,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]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { T as x,
|
|
1
|
+
import { T as x, d as r, u as C, i as F, k as W, j as H, n as G, o as U } from "./Color.type.emb-ByiNbaI7.js";
|
|
2
2
|
import { useTheme as V } from "@embeddable.com/react";
|
|
3
|
-
import { a as q, r as B, i as J } from "./component.constants-
|
|
4
|
-
import { C as K } from "./ChartCard-
|
|
3
|
+
import { a as q, r as B, i as J } from "./component.inputs.constants-FaX3B1CO.js";
|
|
4
|
+
import { C as K } from "./ChartCard-BEIVgW77.js";
|
|
5
5
|
import { useState as y, useRef as Q, useCallback as X, useEffect as g } from "react";
|
|
6
|
-
import { g as Y } from "./formatter.utils-
|
|
6
|
+
import { g as Y } from "./formatter.utils-IGbSBsIu.js";
|
|
7
7
|
const Z = (e) => {
|
|
8
8
|
var a;
|
|
9
9
|
const t = (a = e.inputs) == null ? void 0 : a.align;
|
|
@@ -64,7 +64,7 @@ const ie = (e) => {
|
|
|
64
64
|
state: d,
|
|
65
65
|
setState: f,
|
|
66
66
|
onRowClicked: v
|
|
67
|
-
} = e, [w, T] = y(d.sort), L = M({ dimensionsAndMeasures: b, displayNullAs: j }, t),
|
|
67
|
+
} = e, [w, T] = y(d.sort), L = M({ dimensionsAndMeasures: b, displayNullAs: j }, t), R = (l == null ? void 0 : l.data) || [], _ = O({ rows: R, clickDimension: D }), S = Q(null), { height: E } = C(S), u = F({
|
|
68
68
|
availableHeight: E,
|
|
69
69
|
headerHeight: te,
|
|
70
70
|
rowHeight: ae,
|
|
@@ -86,16 +86,16 @@ const ie = (e) => {
|
|
|
86
86
|
theme: t
|
|
87
87
|
});
|
|
88
88
|
}, z = (n) => {
|
|
89
|
-
var
|
|
89
|
+
var p;
|
|
90
90
|
if (!D) return;
|
|
91
|
-
const h = (
|
|
91
|
+
const h = (p = R[n]) == null ? void 0 : p[D.name];
|
|
92
92
|
v(h);
|
|
93
|
-
},
|
|
93
|
+
}, k = W(o);
|
|
94
94
|
return g(() => {
|
|
95
95
|
ee(d.sort, w) && T(d.sort);
|
|
96
96
|
}, [d.sort]), g(() => {
|
|
97
|
-
|
|
98
|
-
}, [w,
|
|
97
|
+
k({ sort: w });
|
|
98
|
+
}, [w, k]), g(() => {
|
|
99
99
|
u && o({ pageSize: u });
|
|
100
100
|
}, [u, o]), g(() => {
|
|
101
101
|
f((n) => ({
|
|
@@ -158,4 +158,4 @@ export {
|
|
|
158
158
|
Z as g,
|
|
159
159
|
ue as i
|
|
160
160
|
};
|
|
161
|
-
//# sourceMappingURL=index-
|
|
161
|
+
//# sourceMappingURL=index-hHVOyy6e.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-DBFwmzJQ.js","sources":["../src/components/charts/tables/tables.utils.ts","../src/components/charts/tables/TableChartPaginated/index.tsx"],"sourcesContent":["import { DataResponse, Dimension, DimensionOrMeasure } from '@embeddable.com/core';\nimport { getThemeFormatter } from '../../../theme/formatter/formatter.utils';\nimport { CssSize } from '@embeddable.com/remarkable-ui';\nimport { Theme } from '../../../theme/theme.types';\nimport {\n getStyleNumber,\n TableHeaderAlign,\n TableHeaderItem,\n TableHeaderItemAlign,\n} from '@embeddable.com/remarkable-ui';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport const getTableHeaderAlign = (dimOrMeas: DimensionOrMeasure): TableHeaderItemAlign => {\n const subInputAlign = dimOrMeas.inputs?.align;\n\n if (subInputAlign) return subInputAlign;\n\n // Get width by native type\n switch (dimOrMeas.nativeType) {\n case 'number':\n case 'boolean':\n case 'time':\n return TableHeaderAlign.RIGHT;\n default:\n return TableHeaderAlign.LEFT;\n }\n};\n\nexport const getTableHeaderMinWidth = (dimOrMeas: DimensionOrMeasure): CssSize => {\n const subInputWidth = dimOrMeas.inputs?.width;\n\n if (subInputWidth) return subInputWidth;\n\n // Get width by native type\n switch (dimOrMeas.nativeType) {\n case 'string':\n return getStyleNumber('--em-tablechart-min-width--string' as any, '8.75rem') as number;\n case 'number':\n return getStyleNumber('--em-tablechart-min-width--number' as any, '5.625rem') as number;\n case 'time':\n return getStyleNumber('--em-tablechart-min-width--time' as any, '8.75rem') as number;\n case 'boolean':\n default:\n return getStyleNumber('--em-tablechart-min-width--boolean' as any, '5.625rem') as number;\n }\n};\n\nexport const getTableHeaders = (\n props: {\n dimensionsAndMeasures: DimensionOrMeasure[];\n displayNullAs?: string;\n },\n theme: Theme,\n): TableHeaderItem<any>[] => {\n const themeFormatter = getThemeFormatter(theme);\n return props.dimensionsAndMeasures.map((dimOrMeas) => ({\n id: dimOrMeas.name,\n title: themeFormatter.dimensionOrMeasureTitle(dimOrMeas),\n accessor: (row: any) => {\n if (row[dimOrMeas.name] == null) {\n return props.displayNullAs ?? '';\n }\n return themeFormatter.data(dimOrMeas, row[dimOrMeas.name]);\n },\n minWidth: getTableHeaderMinWidth(dimOrMeas),\n align: getTableHeaderAlign(dimOrMeas),\n }));\n};\n\nexport const getTableRows = (props: { clickDimension?: Dimension; rows: DataResponse['data'] }) => {\n if (!props.rows || props.rows.length === 0) {\n return [];\n }\n\n const clickDimensionName = props.clickDimension?.name;\n\n if (!clickDimensionName || Object.keys(props.rows[0]!).includes(clickDimensionName)) {\n return props.rows;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return props.rows.map(({ [clickDimensionName]: _, ...row }) => ({\n ...row,\n }));\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { i18n, i18nSetup } from '../../../../theme/i18n/i18n';\nimport { ChartCard } from '../../shared/ChartCard/ChartCard';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { DataResponse, Dimension, DimensionOrMeasure, OrderDirection } from '@embeddable.com/core';\nimport {\n getStyleNumber,\n getTableTotalPages,\n TablePaginated,\n useTableGetRowsPerPage,\n useDebounce,\n useResizeObserver,\n} from '@embeddable.com/remarkable-ui';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { getTableHeaders, getTableRows } from '../tables.utils';\nimport { ChartCardMenuOptionOnClickProps } from '../../../../theme/defaults/defaults.ChartCardMenu.constants';\n\nconst hasSortChanges = (\n sort: TableChartPaginatedProState['sort'],\n sortToCompare: TableChartPaginatedProState['sort'],\n): boolean => {\n const changed =\n sort?.id !== sortToCompare?.id ||\n sort?.direction !== sortToCompare?.direction ||\n (!sort && !!sortToCompare) ||\n (!!sort && !sortToCompare);\n\n return changed;\n};\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nconst headerHeight = getStyleNumber('--em-tablechart-cell-height', '2.5rem') as number;\nconst rowHeight = getStyleNumber('--em-tablechart-cell-height', '2.5rem') as number;\nconst footerHeight = getStyleNumber('--em-tablechart-pagination-height', '3rem') as number;\n\nlet downloadData: (data: DataResponse['data']) => void;\n\nexport type TableChartPaginatedProOnRowClickArg = string | null;\nexport type TableChartPaginatedProState = {\n page: number;\n pageSize?: number;\n sort?: { id: string; direction: OrderDirection } | undefined;\n isLoadingDownloadData: boolean;\n hasTotalResults: boolean;\n};\n\ntype TableChartPaginatedProProps = {\n allResults?: DataResponse;\n clickDimension?: Dimension;\n description: string;\n dimensionsAndMeasures: DimensionOrMeasure[];\n displayNullAs?: string;\n embeddableState: TableChartPaginatedProState;\n results: DataResponse;\n showIndex: boolean;\n state: TableChartPaginatedProState;\n title: string;\n totalResults?: DataResponse;\n onRowClicked: (rowDimensionValue: TableChartPaginatedProOnRowClickArg) => void;\n setState: React.Dispatch<React.SetStateAction<TableChartPaginatedProState>>;\n};\n\nconst TableChartPaginatedPro = (props: TableChartPaginatedProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const [isDownloadingData, setIsDownloadingData] = useState(false);\n\n const { description, title } = resolveI18nProps(props);\n const {\n totalResults,\n results,\n allResults,\n dimensionsAndMeasures,\n displayNullAs,\n showIndex,\n clickDimension,\n state,\n setState,\n onRowClicked,\n } = props;\n\n const [localSort, setLocalSort] = useState(state.sort);\n\n const headers = getTableHeaders({ dimensionsAndMeasures, displayNullAs }, theme);\n const rows = results?.data || [];\n const tableRows = getTableRows({ rows, clickDimension });\n const cardContentRef = useRef<HTMLDivElement>(null);\n const { height } = useResizeObserver(cardContentRef);\n const pageSize = useTableGetRowsPerPage({\n availableHeight: height,\n headerHeight,\n rowHeight,\n footerHeight,\n });\n\n // Stable updater for embeddable state\n const handleUpdateEmbeddableState = useCallback(\n (newState: Partial<TableChartPaginatedProState>) => {\n setState((prevState) => ({\n ...prevState,\n ...newState,\n }));\n },\n [setState],\n );\n\n const handleCustomDownload = (onDownload: (props: ChartCardMenuOptionOnClickProps) => void) => {\n setIsDownloadingData(true);\n handleUpdateEmbeddableState({ isLoadingDownloadData: true });\n\n downloadData = (data: DataResponse['data']) =>\n onDownload({\n title,\n data,\n dimensionsAndMeasures,\n containerRef: cardContentRef,\n theme,\n });\n };\n\n const handleRowIndexClick = (rowIndex: number) => {\n if (!clickDimension) return;\n\n const rowDimensionValue = rows[rowIndex]?.[clickDimension.name];\n onRowClicked(rowDimensionValue);\n };\n\n const debouncedUpdateState = useDebounce(handleUpdateEmbeddableState);\n\n // Sync local sort with embeddable state\n useEffect(() => {\n if (hasSortChanges(state.sort, localSort)) setLocalSort(state.sort);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.sort]);\n\n // Debounce sort updates to embeddable state\n useEffect(() => {\n debouncedUpdateState({ sort: localSort });\n }, [localSort, debouncedUpdateState]);\n\n // Sync page size changes to embeddable state\n useEffect(() => {\n if (pageSize) {\n handleUpdateEmbeddableState({ pageSize });\n }\n }, [pageSize, handleUpdateEmbeddableState]);\n\n // Sync total from results\n useEffect(() => {\n setState((prevState) => ({\n ...prevState,\n hasTotalResults: false,\n }));\n }, [dimensionsAndMeasures, pageSize]);\n\n useEffect(() => {\n if (totalResults?.total) {\n setState((prevState) => ({\n ...prevState,\n hasTotalResults: true,\n }));\n }\n }, [totalResults]);\n\n // Handle data download when allResults is ready\n useEffect(() => {\n if (isDownloadingData) {\n if (!allResults || allResults.isLoading) {\n // Loading data to download\n return;\n }\n\n downloadData(allResults.data);\n setIsDownloadingData(false);\n handleUpdateEmbeddableState({ isLoadingDownloadData: false });\n }\n }, [isDownloadingData, allResults, handleUpdateEmbeddableState]);\n\n return (\n <ChartCard\n ref={cardContentRef}\n title={title}\n subtitle={description}\n data={results}\n dimensionsAndMeasures={dimensionsAndMeasures}\n errorMessage={results?.error}\n onCustomDownload={handleCustomDownload}\n >\n <TablePaginated\n onRowIndexClick={handleRowIndexClick}\n headers={headers}\n rows={tableRows}\n showIndex={showIndex}\n page={state.page}\n pageSize={pageSize}\n paginationLabel={i18n.t('charts.tablePaginated.pagination', {\n page: state.page + 1,\n totalPages: getTableTotalPages(totalResults?.total, pageSize) ?? '?',\n })}\n total={totalResults?.total}\n sort={localSort}\n onSortChange={(newSort) => {\n setLocalSort(newSort as TableChartPaginatedProState['sort']);\n }}\n onPageChange={(newPage) => handleUpdateEmbeddableState({ page: newPage })}\n />\n </ChartCard>\n );\n};\n\nexport default TableChartPaginatedPro;\n"],"names":["getTableHeaderAlign","dimOrMeas","subInputAlign","_a","TableHeaderAlign","getTableHeaderMinWidth","subInputWidth","getStyleNumber","getTableHeaders","props","theme","themeFormatter","getThemeFormatter","row","getTableRows","clickDimensionName","_","hasSortChanges","sort","sortToCompare","headerHeight","rowHeight","footerHeight","downloadData","TableChartPaginatedPro","useTheme","i18nSetup","isDownloadingData","setIsDownloadingData","useState","description","title","resolveI18nProps","totalResults","results","allResults","dimensionsAndMeasures","displayNullAs","showIndex","clickDimension","state","setState","onRowClicked","localSort","setLocalSort","headers","rows","tableRows","cardContentRef","useRef","height","useResizeObserver","pageSize","useTableGetRowsPerPage","handleUpdateEmbeddableState","useCallback","newState","prevState","handleCustomDownload","onDownload","data","handleRowIndexClick","rowIndex","rowDimensionValue","debouncedUpdateState","useDebounce","useEffect","jsx","ChartCard","TablePaginated","i18n","getTableTotalPages","newSort","newPage"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-hHVOyy6e.js","sources":["../src/components/charts/tables/tables.utils.ts","../src/components/charts/tables/TableChartPaginated/index.tsx"],"sourcesContent":["import { DataResponse, Dimension, DimensionOrMeasure } from '@embeddable.com/core';\nimport { getThemeFormatter } from '../../../theme/formatter/formatter.utils';\nimport { CssSize } from '@embeddable.com/remarkable-ui';\nimport { Theme } from '../../../theme/theme.types';\nimport {\n getStyleNumber,\n TableHeaderAlign,\n TableHeaderItem,\n TableHeaderItemAlign,\n} from '@embeddable.com/remarkable-ui';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport const getTableHeaderAlign = (dimOrMeas: DimensionOrMeasure): TableHeaderItemAlign => {\n const subInputAlign = dimOrMeas.inputs?.align;\n\n if (subInputAlign) return subInputAlign;\n\n // Get width by native type\n switch (dimOrMeas.nativeType) {\n case 'number':\n case 'boolean':\n case 'time':\n return TableHeaderAlign.RIGHT;\n default:\n return TableHeaderAlign.LEFT;\n }\n};\n\nexport const getTableHeaderMinWidth = (dimOrMeas: DimensionOrMeasure): CssSize => {\n const subInputWidth = dimOrMeas.inputs?.width;\n\n if (subInputWidth) return subInputWidth;\n\n // Get width by native type\n switch (dimOrMeas.nativeType) {\n case 'string':\n return getStyleNumber('--em-tablechart-min-width--string' as any, '8.75rem') as number;\n case 'number':\n return getStyleNumber('--em-tablechart-min-width--number' as any, '5.625rem') as number;\n case 'time':\n return getStyleNumber('--em-tablechart-min-width--time' as any, '8.75rem') as number;\n case 'boolean':\n default:\n return getStyleNumber('--em-tablechart-min-width--boolean' as any, '5.625rem') as number;\n }\n};\n\nexport const getTableHeaders = (\n props: {\n dimensionsAndMeasures: DimensionOrMeasure[];\n displayNullAs?: string;\n },\n theme: Theme,\n): TableHeaderItem<any>[] => {\n const themeFormatter = getThemeFormatter(theme);\n return props.dimensionsAndMeasures.map((dimOrMeas) => ({\n id: dimOrMeas.name,\n title: themeFormatter.dimensionOrMeasureTitle(dimOrMeas),\n accessor: (row: any) => {\n if (row[dimOrMeas.name] == null) {\n return props.displayNullAs ?? '';\n }\n return themeFormatter.data(dimOrMeas, row[dimOrMeas.name]);\n },\n minWidth: getTableHeaderMinWidth(dimOrMeas),\n align: getTableHeaderAlign(dimOrMeas),\n }));\n};\n\nexport const getTableRows = (props: { clickDimension?: Dimension; rows: DataResponse['data'] }) => {\n if (!props.rows || props.rows.length === 0) {\n return [];\n }\n\n const clickDimensionName = props.clickDimension?.name;\n\n if (!clickDimensionName || Object.keys(props.rows[0]!).includes(clickDimensionName)) {\n return props.rows;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return props.rows.map(({ [clickDimensionName]: _, ...row }) => ({\n ...row,\n }));\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { i18n, i18nSetup } from '../../../../theme/i18n/i18n';\nimport { ChartCard } from '../../shared/ChartCard/ChartCard';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { DataResponse, Dimension, DimensionOrMeasure, OrderDirection } from '@embeddable.com/core';\nimport {\n getStyleNumber,\n getTableTotalPages,\n TablePaginated,\n useTableGetRowsPerPage,\n useDebounce,\n useResizeObserver,\n} from '@embeddable.com/remarkable-ui';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { getTableHeaders, getTableRows } from '../tables.utils';\nimport { ChartCardMenuOptionOnClickProps } from '../../../../theme/defaults/defaults.ChartCardMenu.constants';\n\nconst hasSortChanges = (\n sort: TableChartPaginatedProState['sort'],\n sortToCompare: TableChartPaginatedProState['sort'],\n): boolean => {\n const changed =\n sort?.id !== sortToCompare?.id ||\n sort?.direction !== sortToCompare?.direction ||\n (!sort && !!sortToCompare) ||\n (!!sort && !sortToCompare);\n\n return changed;\n};\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nconst headerHeight = getStyleNumber('--em-tablechart-cell-height', '2.5rem') as number;\nconst rowHeight = getStyleNumber('--em-tablechart-cell-height', '2.5rem') as number;\nconst footerHeight = getStyleNumber('--em-tablechart-pagination-height', '3rem') as number;\n\nlet downloadData: (data: DataResponse['data']) => void;\n\nexport type TableChartPaginatedProOnRowClickArg = string | null;\nexport type TableChartPaginatedProState = {\n page: number;\n pageSize?: number;\n sort?: { id: string; direction: OrderDirection } | undefined;\n isLoadingDownloadData: boolean;\n hasTotalResults: boolean;\n};\n\ntype TableChartPaginatedProProps = {\n allResults?: DataResponse;\n clickDimension?: Dimension;\n description: string;\n dimensionsAndMeasures: DimensionOrMeasure[];\n displayNullAs?: string;\n embeddableState: TableChartPaginatedProState;\n results: DataResponse;\n showIndex: boolean;\n state: TableChartPaginatedProState;\n title: string;\n totalResults?: DataResponse;\n onRowClicked: (rowDimensionValue: TableChartPaginatedProOnRowClickArg) => void;\n setState: React.Dispatch<React.SetStateAction<TableChartPaginatedProState>>;\n};\n\nconst TableChartPaginatedPro = (props: TableChartPaginatedProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const [isDownloadingData, setIsDownloadingData] = useState(false);\n\n const { description, title } = resolveI18nProps(props);\n const {\n totalResults,\n results,\n allResults,\n dimensionsAndMeasures,\n displayNullAs,\n showIndex,\n clickDimension,\n state,\n setState,\n onRowClicked,\n } = props;\n\n const [localSort, setLocalSort] = useState(state.sort);\n\n const headers = getTableHeaders({ dimensionsAndMeasures, displayNullAs }, theme);\n const rows = results?.data || [];\n const tableRows = getTableRows({ rows, clickDimension });\n const cardContentRef = useRef<HTMLDivElement>(null);\n const { height } = useResizeObserver(cardContentRef);\n const pageSize = useTableGetRowsPerPage({\n availableHeight: height,\n headerHeight,\n rowHeight,\n footerHeight,\n });\n\n // Stable updater for embeddable state\n const handleUpdateEmbeddableState = useCallback(\n (newState: Partial<TableChartPaginatedProState>) => {\n setState((prevState) => ({\n ...prevState,\n ...newState,\n }));\n },\n [setState],\n );\n\n const handleCustomDownload = (onDownload: (props: ChartCardMenuOptionOnClickProps) => void) => {\n setIsDownloadingData(true);\n handleUpdateEmbeddableState({ isLoadingDownloadData: true });\n\n downloadData = (data: DataResponse['data']) =>\n onDownload({\n title,\n data,\n dimensionsAndMeasures,\n containerRef: cardContentRef,\n theme,\n });\n };\n\n const handleRowIndexClick = (rowIndex: number) => {\n if (!clickDimension) return;\n\n const rowDimensionValue = rows[rowIndex]?.[clickDimension.name];\n onRowClicked(rowDimensionValue);\n };\n\n const debouncedUpdateState = useDebounce(handleUpdateEmbeddableState);\n\n // Sync local sort with embeddable state\n useEffect(() => {\n if (hasSortChanges(state.sort, localSort)) setLocalSort(state.sort);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.sort]);\n\n // Debounce sort updates to embeddable state\n useEffect(() => {\n debouncedUpdateState({ sort: localSort });\n }, [localSort, debouncedUpdateState]);\n\n // Sync page size changes to embeddable state\n useEffect(() => {\n if (pageSize) {\n handleUpdateEmbeddableState({ pageSize });\n }\n }, [pageSize, handleUpdateEmbeddableState]);\n\n // Sync total from results\n useEffect(() => {\n setState((prevState) => ({\n ...prevState,\n hasTotalResults: false,\n }));\n }, [dimensionsAndMeasures, pageSize]);\n\n useEffect(() => {\n if (totalResults?.total) {\n setState((prevState) => ({\n ...prevState,\n hasTotalResults: true,\n }));\n }\n }, [totalResults]);\n\n // Handle data download when allResults is ready\n useEffect(() => {\n if (isDownloadingData) {\n if (!allResults || allResults.isLoading) {\n // Loading data to download\n return;\n }\n\n downloadData(allResults.data);\n setIsDownloadingData(false);\n handleUpdateEmbeddableState({ isLoadingDownloadData: false });\n }\n }, [isDownloadingData, allResults, handleUpdateEmbeddableState]);\n\n return (\n <ChartCard\n ref={cardContentRef}\n title={title}\n subtitle={description}\n data={results}\n dimensionsAndMeasures={dimensionsAndMeasures}\n errorMessage={results?.error}\n onCustomDownload={handleCustomDownload}\n >\n <TablePaginated\n onRowIndexClick={handleRowIndexClick}\n headers={headers}\n rows={tableRows}\n showIndex={showIndex}\n page={state.page}\n pageSize={pageSize}\n paginationLabel={i18n.t('charts.tablePaginated.pagination', {\n page: state.page + 1,\n totalPages: getTableTotalPages(totalResults?.total, pageSize) ?? '?',\n })}\n total={totalResults?.total}\n sort={localSort}\n onSortChange={(newSort) => {\n setLocalSort(newSort as TableChartPaginatedProState['sort']);\n }}\n onPageChange={(newPage) => handleUpdateEmbeddableState({ page: newPage })}\n />\n </ChartCard>\n );\n};\n\nexport default TableChartPaginatedPro;\n"],"names":["getTableHeaderAlign","dimOrMeas","subInputAlign","_a","TableHeaderAlign","getTableHeaderMinWidth","subInputWidth","getStyleNumber","getTableHeaders","props","theme","themeFormatter","getThemeFormatter","row","getTableRows","clickDimensionName","_","hasSortChanges","sort","sortToCompare","headerHeight","rowHeight","footerHeight","downloadData","TableChartPaginatedPro","useTheme","i18nSetup","isDownloadingData","setIsDownloadingData","useState","description","title","resolveI18nProps","totalResults","results","allResults","dimensionsAndMeasures","displayNullAs","showIndex","clickDimension","state","setState","onRowClicked","localSort","setLocalSort","headers","rows","tableRows","cardContentRef","useRef","height","useResizeObserver","pageSize","useTableGetRowsPerPage","handleUpdateEmbeddableState","useCallback","newState","prevState","handleCustomDownload","onDownload","data","handleRowIndexClick","rowIndex","rowDimensionValue","debouncedUpdateState","useDebounce","useEffect","jsx","ChartCard","TablePaginated","i18n","getTableTotalPages","newSort","newPage"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { m as M, j as l, B as P } from "./
|
|
1
|
+
import { m as M, j as l, B as P } from "./Color.type.emb-ByiNbaI7.js";
|
|
2
2
|
import { useTheme as z } from "@embeddable.com/react";
|
|
3
|
-
import { a as L, r as w } from "./component.constants-
|
|
4
|
-
import { C as y } from "./ChartCard-
|
|
5
|
-
import { a as S, b as _ } from "./bars.utils-
|
|
3
|
+
import { a as L, r as w } from "./component.inputs.constants-FaX3B1CO.js";
|
|
4
|
+
import { C as y } from "./ChartCard-BEIVgW77.js";
|
|
5
|
+
import { a as S, b as _ } from "./bars.utils-D12lq8bm.js";
|
|
6
6
|
import { u as v } from "./charts.fillGaps.hooks-zCMYcjxz.js";
|
|
7
7
|
const D = (s) => {
|
|
8
8
|
var i, n;
|
|
@@ -70,4 +70,4 @@ export {
|
|
|
70
70
|
D as B,
|
|
71
71
|
E as i
|
|
72
72
|
};
|
|
73
|
-
//# sourceMappingURL=index-
|
|
73
|
+
//# sourceMappingURL=index-oK1pn0Vk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-oK1pn0Vk.js","sources":["../src/components/charts/bars/BarChartDefaultHorizontalPro/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 BarChartDefaultHorizontalProProps = {\n description: string;\n dimension: Dimension;\n measures: Measure[];\n results: DataResponse;\n reverseYAxis: boolean;\n showLegend: boolean;\n showLogarithmicScale: boolean;\n showTooltips: boolean;\n showValueLabels: boolean;\n title: string;\n xAxisLabel: string;\n xAxisRangeMax?: number;\n xAxisRangeMin?: number;\n yAxisLabel: string;\n yAxisMaxItems: number;\n onBarClicked: (args: { axisDimensionValue: string | null }) => void;\n};\n\nconst BarChartDefaultHorizontalPro = (props: BarChartDefaultHorizontalProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const {\n description,\n dimension,\n measures,\n reverseYAxis,\n showLegend,\n showLogarithmicScale,\n showTooltips,\n showValueLabels,\n title,\n xAxisLabel,\n xAxisRangeMax,\n xAxisRangeMin,\n yAxisLabel,\n yAxisMaxItems,\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: yAxisMaxItems },\n theme,\n );\n\n const options = mergician(\n getBarChartProOptions({ measures, horizontal: true, onBarClicked, data, dimension }, theme), // Format X axis based on first measure\n theme.charts?.barChartDefaultHorizontalPro?.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 horizontal\n data={data}\n options={options}\n reverseYAxis={reverseYAxis}\n showLegend={showLegend}\n showLogarithmicScale={showLogarithmicScale}\n showTooltips={showTooltips}\n showValueLabels={showValueLabels}\n xAxisLabel={xAxisLabel}\n xAxisRangeMax={xAxisRangeMax}\n xAxisRangeMin={xAxisRangeMin}\n yAxisLabel={yAxisLabel}\n />\n </ChartCard>\n );\n};\n\nexport default BarChartDefaultHorizontalPro;\n"],"names":["BarChartDefaultHorizontalPro","props","theme","useTheme","i18nSetup","description","dimension","measures","reverseYAxis","showLegend","showLogarithmicScale","showTooltips","showValueLabels","title","xAxisLabel","xAxisRangeMax","xAxisRangeMin","yAxisLabel","yAxisMaxItems","onBarClicked","resolveI18nProps","results","useFillGaps","data","getBarChartProData","options","mergician","getBarChartProOptions","_b","_a","jsx","ChartCard","BarChart"],"mappings":";;;;;;AA8BA,MAAMA,IAA+B,CAACC,MAA6C;;AACjF,QAAMC,IAAQC,EAAA;AACd,EAAAC,EAAUF,CAAK;AAEf,QAAM;AAAA,IACJ,aAAAG;AAAA,IACA,WAAAC;AAAA,IACA,UAAAC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,OAAAC;AAAA,IACA,YAAAC;AAAA,IACA,eAAAC;AAAA,IACA,eAAAC;AAAA,IACA,YAAAC;AAAA,IACA,eAAAC;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,UAAUW,EAAA;AAAA,IACrDhB;AAAA,EAAA,GAGIuB,IAAUC;AAAA,IACdC,EAAsB,EAAE,UAAApB,GAAU,YAAY,IAAM,cAAAY,GAAc,MAAAI,GAAM,WAAAjB,EAAA,GAAaJ,CAAK;AAAA;AAAA,MAC1F0B,KAAAC,IAAA3B,EAAM,WAAN,gBAAA2B,EAAc,iCAAd,gBAAAD,EAA4C,YAAW,CAAA;AAAA,EAAC;AAG1D,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,OAAAQ;AAAA,MAEA,UAAAiB,gBAAAA,EAAAA;AAAAA,QAACE;AAAA,QAAA;AAAA,UACC,YAAU;AAAA,UACV,MAAAT;AAAA,UACA,SAAAE;AAAA,UACA,cAAAjB;AAAA,UACA,YAAAC;AAAA,UACA,sBAAAC;AAAA,UACA,cAAAC;AAAA,UACA,iBAAAC;AAAA,UACA,YAAAE;AAAA,UACA,eAAAC;AAAA,UACA,eAAAC;AAAA,UACA,YAAAC;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGN;;;;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -31,7 +31,7 @@ export * as PivotTablePro from './components/charts/tables/PivotTablePro';
|
|
|
31
31
|
export * as TableChartPaginatedPro from './components/charts/tables/TableChartPaginated';
|
|
32
32
|
export * from './components/charts/tables/tables.utils';
|
|
33
33
|
export { ChartCard } from './components/charts/shared/ChartCard/ChartCard';
|
|
34
|
-
export * from './components/component.constants';
|
|
34
|
+
export * from './components/component.inputs.constants';
|
|
35
35
|
export * as ComparisonPeriodSelectFieldPro from './components/editors/ComparisonPeriodSelectFieldPro';
|
|
36
36
|
export * from './components/editors/ComparisonPeriodSelectFieldPro/ComparisonPeriodSelectFieldPro.utils';
|
|
37
37
|
export * as DateRangeSelectFieldPro from './components/editors/dates/DateRangePickerPresetsPro';
|
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,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,
|
|
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,yCAAyC,CAAC;AAGxD,OAAO,KAAK,8BAA8B,MAAM,qDAAqD,CAAC;AACtG,cAAc,0FAA0F,CAAC;AACzG,OAAO,KAAK,uBAAuB,MAAM,sDAAsD,CAAC;AAChG,cAAc,sFAAsF,CAAC;AACrG,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"}
|
package/dist/index.js
CHANGED
|
@@ -1,134 +1,84 @@
|
|
|
1
|
-
import { g as
|
|
2
|
-
import {
|
|
3
|
-
import { r as
|
|
4
|
-
import { g as
|
|
5
|
-
import { i as
|
|
6
|
-
import { i as
|
|
7
|
-
import { i as
|
|
8
|
-
import { i as
|
|
9
|
-
import { i as
|
|
10
|
-
import { i as
|
|
11
|
-
import { a as
|
|
12
|
-
import { i as
|
|
13
|
-
import { i as
|
|
14
|
-
import { i as
|
|
15
|
-
import { i as
|
|
16
|
-
import { i as
|
|
17
|
-
import { i as
|
|
18
|
-
import { i as
|
|
19
|
-
import { i as
|
|
20
|
-
import { g as
|
|
21
|
-
import { i as
|
|
22
|
-
import { i as
|
|
23
|
-
import { i as
|
|
24
|
-
import { C as
|
|
25
|
-
import { i as
|
|
26
|
-
import { i as
|
|
27
|
-
import { i as
|
|
28
|
-
import { i as
|
|
29
|
-
import { E as
|
|
30
|
-
import {
|
|
31
|
-
import { i as Ie, s as Le } from "./color.utils-BSg_DFOh.js";
|
|
1
|
+
import { g as o } from "./object.utils-D_Zzon-H.js";
|
|
2
|
+
import { C as t, i, a as s, b as p, r as m } from "./component.inputs.constants-FaX3B1CO.js";
|
|
3
|
+
import { r as C } from "./charts.utils-Bq6c6ccK.js";
|
|
4
|
+
import { g as l } from "./formatter.utils-IGbSBsIu.js";
|
|
5
|
+
import { i as g } from "./index-BKcWHLSf.js";
|
|
6
|
+
import { i as x } from "./index-B15C4kTf.js";
|
|
7
|
+
import { i as b } from "./index-DNXqnRoE.js";
|
|
8
|
+
import { i as D } from "./index-oK1pn0Vk.js";
|
|
9
|
+
import { i as c } from "./index-CR69kGQc.js";
|
|
10
|
+
import { i as B } from "./index-BDPQ_c46.js";
|
|
11
|
+
import { a as O, b as F, g as H } from "./bars.utils-D12lq8bm.js";
|
|
12
|
+
import { i as k } from "./index-DLCspqkx.js";
|
|
13
|
+
import { i as z } from "./index-CQZhGtUT.js";
|
|
14
|
+
import { i as K, g as M, a as R } from "./index-BjaJdNzu.js";
|
|
15
|
+
import { i as E, g as N, a as j } from "./index-CwiND2Ct.js";
|
|
16
|
+
import { i as I, g as V, a as W } from "./index-DdeFtB5C.js";
|
|
17
|
+
import { i as J } from "./index-DRIH3L5J.js";
|
|
18
|
+
import { i as U } from "./index-CdjbmThq.js";
|
|
19
|
+
import { i as Y } from "./index-BNFqHQr3.js";
|
|
20
|
+
import { g as _, a as $ } from "./pies.utils-C5DxeS68.js";
|
|
21
|
+
import { i as ar } from "./index-BiTSd5Wd.js";
|
|
22
|
+
import { i as er } from "./index-Dhj9KjfQ.js";
|
|
23
|
+
import { i as ir, g as sr, a as pr, b as mr, c as Pr } from "./index-hHVOyy6e.js";
|
|
24
|
+
import { C as nr } from "./ChartCard-BEIVgW77.js";
|
|
25
|
+
import { i as fr, g as gr, a as hr } from "./index-_fEx7Sbh.js";
|
|
26
|
+
import { i as dr, g as br } from "./index-EAQjfjEJ.js";
|
|
27
|
+
import { i as Dr } from "./index-BzF8GFHy.js";
|
|
28
|
+
import { i as cr } from "./index-RHaWI3AH.js";
|
|
29
|
+
import { E as Br } from "./EditorCard-NEIuygkP.js";
|
|
30
|
+
import { i as Or, s as Fr } from "./color.utils-BSg_DFOh.js";
|
|
32
31
|
export {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
qa as getPieChartProOptions,
|
|
85
|
-
ae as getTableHeaderAlign,
|
|
86
|
-
ee as getTableHeaderMinWidth,
|
|
87
|
-
re as getTableHeaders,
|
|
88
|
-
se as getTableRows,
|
|
89
|
-
ia as getThemeFormatter,
|
|
90
|
-
b as i18n,
|
|
91
|
-
f as i18nSetup,
|
|
92
|
-
Ie as isColorValid,
|
|
93
|
-
me as isComparisonPeriodAvailable,
|
|
94
|
-
c as maxLegendItems,
|
|
95
|
-
D as maxResults,
|
|
96
|
-
I as measure,
|
|
97
|
-
L as measures,
|
|
98
|
-
S as placeholder,
|
|
99
|
-
oa as remarkableTheme,
|
|
100
|
-
A as resolveI18nProps,
|
|
101
|
-
T as reverseXAxis,
|
|
102
|
-
B as reverseYAxis,
|
|
103
|
-
Le as setColorAlpha,
|
|
104
|
-
M as showLegend,
|
|
105
|
-
y as showLogarithmicScale,
|
|
106
|
-
O as showTooltips,
|
|
107
|
-
R as showTopItems,
|
|
108
|
-
G as showTotalLabels,
|
|
109
|
-
w as showValueLabels,
|
|
110
|
-
F as subInputAbbreviateLargeNumber,
|
|
111
|
-
H as subInputAlign,
|
|
112
|
-
v as subInputCurrency,
|
|
113
|
-
N as subInputDateBounds,
|
|
114
|
-
k as subInputDecimalPlaces,
|
|
115
|
-
z as subInputDisplayName,
|
|
116
|
-
K as subInputGenericBoolean,
|
|
117
|
-
W as subInputGenericNumber,
|
|
118
|
-
E as subInputGranularity,
|
|
119
|
-
V as subInputMaxCharacters,
|
|
120
|
-
j as subInputPrefix,
|
|
121
|
-
X as subInputSuffix,
|
|
122
|
-
Y as subInputWidth,
|
|
123
|
-
q as timeDimensionSubInputs,
|
|
124
|
-
J as title,
|
|
125
|
-
Q as xAxisLabel,
|
|
126
|
-
U as xAxisMaxItems,
|
|
127
|
-
Z as xAxisRangeMax,
|
|
128
|
-
_ as xAxisRangeMin,
|
|
129
|
-
$ as yAxisLabel,
|
|
130
|
-
aa as yAxisMaxItems,
|
|
131
|
-
ea as yAxisRangeMax,
|
|
132
|
-
ra as yAxisRangeMin
|
|
32
|
+
D as BarChartDefaultHorizontalPro,
|
|
33
|
+
g as BarChartDefaultPro,
|
|
34
|
+
B as BarChartGroupedHorizontalPro,
|
|
35
|
+
b as BarChartGroupedPro,
|
|
36
|
+
c as BarChartStackedHorizontalPro,
|
|
37
|
+
x as BarChartStackedPro,
|
|
38
|
+
nr as ChartCard,
|
|
39
|
+
fr as ComparisonPeriodSelectFieldPro,
|
|
40
|
+
t as ComparisonPeriodType,
|
|
41
|
+
dr as DateRangeSelectFieldPro,
|
|
42
|
+
J as DonutChartPro,
|
|
43
|
+
Y as DonutLabelChartPro,
|
|
44
|
+
Br as EditorCard,
|
|
45
|
+
ar as HeatMapPro,
|
|
46
|
+
z as KpiChartNumberComparisonPro,
|
|
47
|
+
k as KpiChartNumberPro,
|
|
48
|
+
I as LineChartComparisonDefaultPro,
|
|
49
|
+
K as LineChartDefaultPro,
|
|
50
|
+
E as LineChartGroupedPro,
|
|
51
|
+
Dr as MultiSelectFieldPro,
|
|
52
|
+
U as PieChartPro,
|
|
53
|
+
er as PivotTablePro,
|
|
54
|
+
cr as SingleSelectFieldPro,
|
|
55
|
+
ir as TableChartPaginatedPro,
|
|
56
|
+
O as getBarChartProData,
|
|
57
|
+
F as getBarChartProOptions,
|
|
58
|
+
H as getBarStackedChartProData,
|
|
59
|
+
gr as getComparisonPeriodSelectFieldProOptions,
|
|
60
|
+
br as getDateRangeSelectFieldProOptions,
|
|
61
|
+
V as getLineChartComparisonProData,
|
|
62
|
+
W as getLineChartComparisonProOptions,
|
|
63
|
+
N as getLineChartGroupedProData,
|
|
64
|
+
j as getLineChartGroupedProOptions,
|
|
65
|
+
M as getLineChartProData,
|
|
66
|
+
R as getLineChartProOptions,
|
|
67
|
+
o as getObjectStableKey,
|
|
68
|
+
_ as getPieChartProData,
|
|
69
|
+
$ as getPieChartProOptions,
|
|
70
|
+
sr as getTableHeaderAlign,
|
|
71
|
+
pr as getTableHeaderMinWidth,
|
|
72
|
+
mr as getTableHeaders,
|
|
73
|
+
Pr as getTableRows,
|
|
74
|
+
l as getThemeFormatter,
|
|
75
|
+
i as i18n,
|
|
76
|
+
s as i18nSetup,
|
|
77
|
+
p as inputs,
|
|
78
|
+
Or as isColorValid,
|
|
79
|
+
hr as isComparisonPeriodAvailable,
|
|
80
|
+
C as remarkableTheme,
|
|
81
|
+
m as resolveI18nProps,
|
|
82
|
+
Fr as setColorAlpha
|
|
133
83
|
};
|
|
134
84
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { r as g, g as b } from "./charts.utils-
|
|
2
|
-
import { g as u } from "./formatter.utils-
|
|
1
|
+
import { r as g, g as b } from "./charts.utils-Bq6c6ccK.js";
|
|
2
|
+
import { g as u } from "./formatter.utils-IGbSBsIu.js";
|
|
3
3
|
import { g as h, a as c } from "./object.utils-D_Zzon-H.js";
|
|
4
|
-
import {
|
|
5
|
-
import { i as f } from "./component.constants-
|
|
4
|
+
import { a as C } from "./Color.type.emb-ByiNbaI7.js";
|
|
5
|
+
import { i as f } from "./component.inputs.constants-FaX3B1CO.js";
|
|
6
6
|
const T = (a, o = g) => {
|
|
7
7
|
const s = u(o);
|
|
8
8
|
if (!a.data)
|
|
@@ -70,4 +70,4 @@ export {
|
|
|
70
70
|
w as a,
|
|
71
71
|
T as g
|
|
72
72
|
};
|
|
73
|
-
//# sourceMappingURL=pies.utils-
|
|
73
|
+
//# sourceMappingURL=pies.utils-C5DxeS68.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pies.utils-
|
|
1
|
+
{"version":3,"file":"pies.utils-C5DxeS68.js","sources":["../src/components/charts/pies/pies.utils.ts"],"sourcesContent":["import { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { ChartData, ChartOptions } from 'chart.js';\nimport { groupTailAsOther } from '../charts.utils';\nimport { Theme } from '../../../theme/theme.types';\nimport { remarkableTheme } from '../../../theme/theme.constants';\nimport { getThemeFormatter } from '../../../theme/formatter/formatter.utils';\nimport { getColor } from '../../../theme/styles/styles.utils';\nimport { getChartColors } from '@embeddable.com/remarkable-ui';\nimport { i18n } from '../../../theme/i18n/i18n';\nimport { getObjectStableKey } from '../../../utils.ts/object.utils';\n\nexport const getPieChartProData = (\n props: {\n data: DataResponse['data'];\n dimension: Dimension;\n measure: Measure;\n maxLegendItems?: number;\n },\n theme: Theme = remarkableTheme,\n): ChartData<'pie'> => {\n const themeFormatter = getThemeFormatter(theme);\n\n if (!props.data)\n return {\n labels: [],\n datasets: [{ data: [] }],\n };\n\n const groupedData = groupTailAsOther(\n props.data,\n props.dimension,\n [props.measure],\n props.maxLegendItems,\n );\n\n const themeKey = getObjectStableKey(theme);\n const chartColors = getChartColors();\n const backgroundColor = groupedData.map((item, i) =>\n getColor(\n `${themeKey}.charts.backgroundColors`,\n `${props.dimension.name}.${item[props.dimension.name]}`,\n theme.charts.backgroundColors ?? chartColors,\n i,\n ),\n );\n\n const borderColor = groupedData.map((item, i) =>\n getColor(\n `${themeKey}.charts.borderColors`,\n `${props.dimension.name}.${item[props.dimension.name]}`,\n theme.charts.borderColors ?? chartColors,\n i,\n ),\n );\n\n return {\n labels: groupedData.map((item) => {\n const value = item[props.dimension.name];\n const formattedValue = themeFormatter.data(props.dimension, value);\n\n // If formatter did not work, try i18n translation\n if (value === formattedValue) {\n return i18n.t(value);\n }\n return formattedValue;\n }),\n datasets: [\n {\n data: groupedData.map((item) => item[props.measure.name]),\n backgroundColor,\n borderColor,\n },\n ],\n };\n};\n\nexport const getPieChartProOptions = (\n measure: Measure,\n theme: Theme = remarkableTheme,\n): Partial<ChartOptions<'pie'>> => {\n const themeFormatter = getThemeFormatter(theme);\n\n return {\n plugins: {\n legend: { position: theme.charts.legendPosition ?? 'bottom' },\n datalabels: {\n formatter: (value: string | number) => themeFormatter.data(measure, value),\n },\n tooltip: {\n callbacks: {\n label(context) {\n const raw = context.raw as number;\n const total = context.dataset.data.reduce(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (sum: number, v: any) => sum + parseFloat(v),\n 0,\n );\n const pct = Math.round((raw / total) * 100);\n return `${themeFormatter.data(measure, raw)} (${pct}%)`;\n },\n },\n },\n },\n };\n};\n"],"names":["getPieChartProData","props","theme","remarkableTheme","themeFormatter","getThemeFormatter","groupedData","groupTailAsOther","themeKey","getObjectStableKey","chartColors","getChartColors","backgroundColor","item","i","getColor","borderColor","value","formattedValue","i18n","getPieChartProOptions","measure","context","raw","total","sum","v","pct"],"mappings":";;;;;AAWO,MAAMA,IAAqB,CAChCC,GAMAC,IAAeC,MACM;AACrB,QAAMC,IAAiBC,EAAkBH,CAAK;AAE9C,MAAI,CAACD,EAAM;AACT,WAAO;AAAA,MACL,QAAQ,CAAA;AAAA,MACR,UAAU,CAAC,EAAE,MAAM,IAAI;AAAA,IAAA;AAG3B,QAAMK,IAAcC;AAAA,IAClBN,EAAM;AAAA,IACNA,EAAM;AAAA,IACN,CAACA,EAAM,OAAO;AAAA,IACdA,EAAM;AAAA,EAAA,GAGFO,IAAWC,EAAmBP,CAAK,GACnCQ,IAAcC,EAAA,GACdC,IAAkBN,EAAY;AAAA,IAAI,CAACO,GAAMC,MAC7CC;AAAA,MACE,GAAGP,CAAQ;AAAA,MACX,GAAGP,EAAM,UAAU,IAAI,IAAIY,EAAKZ,EAAM,UAAU,IAAI,CAAC;AAAA,MACrDC,EAAM,OAAO,oBAAoBQ;AAAA,MACjCI;AAAA,IAAA;AAAA,EACF,GAGIE,IAAcV,EAAY;AAAA,IAAI,CAACO,GAAMC,MACzCC;AAAA,MACE,GAAGP,CAAQ;AAAA,MACX,GAAGP,EAAM,UAAU,IAAI,IAAIY,EAAKZ,EAAM,UAAU,IAAI,CAAC;AAAA,MACrDC,EAAM,OAAO,gBAAgBQ;AAAA,MAC7BI;AAAA,IAAA;AAAA,EACF;AAGF,SAAO;AAAA,IACL,QAAQR,EAAY,IAAI,CAACO,MAAS;AAChC,YAAMI,IAAQJ,EAAKZ,EAAM,UAAU,IAAI,GACjCiB,IAAiBd,EAAe,KAAKH,EAAM,WAAWgB,CAAK;AAGjE,aAAIA,MAAUC,IACLC,EAAK,EAAEF,CAAK,IAEdC;AAAA,IACT,CAAC;AAAA,IACD,UAAU;AAAA,MACR;AAAA,QACE,MAAMZ,EAAY,IAAI,CAACO,MAASA,EAAKZ,EAAM,QAAQ,IAAI,CAAC;AAAA,QACxD,iBAAAW;AAAA,QACA,aAAAI;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ,GAEaI,IAAwB,CACnCC,GACAnB,IAAeC,MACkB;AACjC,QAAMC,IAAiBC,EAAkBH,CAAK;AAE9C,SAAO;AAAA,IACL,SAAS;AAAA,MACP,QAAQ,EAAE,UAAUA,EAAM,OAAO,kBAAkB,SAAA;AAAA,MACnD,YAAY;AAAA,QACV,WAAW,CAACe,MAA2Bb,EAAe,KAAKiB,GAASJ,CAAK;AAAA,MAAA;AAAA,MAE3E,SAAS;AAAA,QACP,WAAW;AAAA,UACT,MAAMK,GAAS;AACb,kBAAMC,IAAMD,EAAQ,KACdE,IAAQF,EAAQ,QAAQ,KAAK;AAAA;AAAA,cAEjC,CAACG,GAAaC,MAAWD,IAAM,WAAWC,CAAC;AAAA,cAC3C;AAAA,YAAA,GAEIC,IAAM,KAAK,MAAOJ,IAAMC,IAAS,GAAG;AAC1C,mBAAO,GAAGpB,EAAe,KAAKiB,GAASE,CAAG,CAAC,KAAKI,CAAG;AAAA,UACrD;AAAA,QAAA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEJ;"}
|