@embeddable.com/remarkable-pro 0.1.6 → 0.1.8
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 +5 -5
- package/dist/BarChartDefaultPro.js +5 -5
- package/dist/BarChartGroupedHorizontalPro.js +5 -5
- package/dist/BarChartGroupedPro.js +5 -5
- package/dist/BarChartStackedHorizontalPro.js +5 -5
- package/dist/BarChartStackedPro.js +5 -5
- package/dist/ChartCard-BmBTN11g.js +117 -0
- package/dist/{ChartCard-BE_Kz3jK.js.map → ChartCard-BmBTN11g.js.map} +1 -1
- package/dist/{Color.type.emb-DIW_7wKP.js → Color.type.emb-tRPNtuPs.js} +12868 -12752
- package/dist/Color.type.emb-tRPNtuPs.js.map +1 -0
- package/dist/ColorEditor.js +1 -1
- package/dist/ComparisonPeriodSelectFieldPro.js +3 -3
- package/dist/DateRangePickerCustomPro.js +4 -4
- package/dist/DateRangePickerCustomPro.js.map +1 -1
- package/dist/DateRangeSelectFieldPro.js +3 -3
- package/dist/{DimensionAndMeasureSingleSelectField-Brm3ckSN.js → DimensionAndMeasureSingleSelectField-Bap43crU.js} +3 -3
- package/dist/{DimensionAndMeasureSingleSelectField-Brm3ckSN.js.map → DimensionAndMeasureSingleSelectField-Bap43crU.js.map} +1 -1
- package/dist/DimensionSingleSelectFieldPro.js +5 -5
- package/dist/DonutChartPro.js +4 -4
- package/dist/DonutLabelChartPro.js +4 -4
- package/dist/{EditorCard-bUK0G4W-.js → EditorCard-BEOWlY3S.js} +5 -5
- package/dist/{EditorCard-bUK0G4W-.js.map → EditorCard-BEOWlY3S.js.map} +1 -1
- package/dist/EmptyBlockPro.js +16 -0
- package/dist/EmptyBlockPro.js.map +1 -0
- package/dist/{GranularitySelectField-CSeNBHaM.js → GranularitySelectField-D0AUovNu.js} +3 -3
- package/dist/{GranularitySelectField-CSeNBHaM.js.map → GranularitySelectField-D0AUovNu.js.map} +1 -1
- package/dist/GranularitySelectFieldPro.js +4 -4
- package/dist/HeatMapPro.js +4 -4
- package/dist/{IconCalendarFilled-DOfzKqWp.js → IconCalendarFilled-Dlxre0eW.js} +2 -2
- package/dist/{IconCalendarFilled-DOfzKqWp.js.map → IconCalendarFilled-Dlxre0eW.js.map} +1 -1
- package/dist/KpiChartNumberComparisonPro.js +4 -4
- package/dist/KpiChartNumberPro.js +4 -4
- package/dist/LineChartComparisonDefaultPro.js +5 -5
- package/dist/LineChartDefaultPro.js +5 -5
- package/dist/LineChartGroupedPro.js +5 -5
- package/dist/MeasureSingleSelectFieldPro.js +5 -5
- package/dist/MultiSelectFieldPro.js +4 -4
- package/dist/PieChartPro.js +4 -4
- package/dist/PivotTablePro.js +77 -43
- package/dist/PivotTablePro.js.map +1 -1
- package/dist/SingleSelectFieldPro.js +4 -4
- package/dist/TableChartPaginated.js +4 -4
- package/dist/TableScrollable.js +5 -5
- package/dist/{bars.utils-BkjTtlIv.js → bars.utils-C6w2ekZW.js} +5 -5
- package/dist/{bars.utils-BkjTtlIv.js.map → bars.utils-C6w2ekZW.js.map} +1 -1
- package/dist/{charts.utils-B4kq1sTA.js → charts.utils-5taHDsqH.js} +1155 -1103
- package/dist/charts.utils-5taHDsqH.js.map +1 -0
- package/dist/color.utils-BSg_DFOh.js.map +1 -1
- package/dist/{component.inputs.constants-C-pP69Lh.js → component.inputs.constants-DIZMtQw0.js} +4 -4
- package/dist/{component.inputs.constants-C-pP69Lh.js.map → component.inputs.constants-DIZMtQw0.js.map} +1 -1
- package/dist/components/charts/tables/PivotTablePro/index.d.ts +4 -0
- package/dist/components/charts/tables/PivotTablePro/index.d.ts.map +1 -1
- package/dist/components/charts/tables/tables.hooks.d.ts +2 -2
- package/dist/components/charts/tables/tables.hooks.d.ts.map +1 -1
- package/dist/components/shared/EmptyContainerPro/index.d.ts +3 -0
- package/dist/components/shared/EmptyContainerPro/index.d.ts.map +1 -0
- package/dist/dates.utils-BF32dTLi.js.map +1 -1
- package/dist/embeddable-components.json +30 -28
- package/dist/embeddable-theme-0137e.js +485 -433
- package/dist/{formatter.utils-C9mQTOD-.js → formatter.utils-BuiHCNHH.js} +8 -8
- package/dist/formatter.utils-BuiHCNHH.js.map +1 -0
- package/dist/granularity.utils-DAAi-602.js +51 -0
- package/dist/granularity.utils-DAAi-602.js.map +1 -0
- package/dist/{index-ip8hWzE9.js → index-B3L4DXwu.js} +6 -6
- package/dist/{index-ip8hWzE9.js.map → index-B3L4DXwu.js.map} +1 -1
- package/dist/{index-DXKn9iJW.js → index-B5__yodm.js} +5 -5
- package/dist/{index-DXKn9iJW.js.map → index-B5__yodm.js.map} +1 -1
- package/dist/{index-N-gqdjk3.js → index-B8IHON3t.js} +5 -5
- package/dist/{index-N-gqdjk3.js.map → index-B8IHON3t.js.map} +1 -1
- package/dist/{index-DGeDkRqz.js → index-BDpQF_cG.js} +5 -5
- package/dist/index-BDpQF_cG.js.map +1 -0
- package/dist/{index-CNJWgFBo.js → index-BKikv8mC.js} +6 -6
- package/dist/{index-CNJWgFBo.js.map → index-BKikv8mC.js.map} +1 -1
- package/dist/index-BL76s-yZ.js +127 -0
- package/dist/index-BL76s-yZ.js.map +1 -0
- package/dist/{index-BbQatMvx.js → index-BRywHn8j.js} +4 -4
- package/dist/index-BRywHn8j.js.map +1 -0
- package/dist/{index-Bgwr2wTg.js → index-BSXcd7SN.js} +5 -5
- package/dist/{index-Bgwr2wTg.js.map → index-BSXcd7SN.js.map} +1 -1
- package/dist/{index-DsWAqQ07.js → index-C3QKhnf_.js} +6 -6
- package/dist/{index-DsWAqQ07.js.map → index-C3QKhnf_.js.map} +1 -1
- package/dist/{index-Dvl51Whs.js → index-C4C09WJe.js} +6 -6
- package/dist/{index-Dvl51Whs.js.map → index-C4C09WJe.js.map} +1 -1
- package/dist/{index-DpyP7BhA.js → index-CGmgAyAB.js} +5 -5
- package/dist/{index-DpyP7BhA.js.map → index-CGmgAyAB.js.map} +1 -1
- package/dist/{index-QExGNX-O.js → index-CfscOxbu.js} +6 -6
- package/dist/{index-QExGNX-O.js.map → index-CfscOxbu.js.map} +1 -1
- package/dist/{index-CfUcEenL.js → index-CvQFVQLU.js} +5 -5
- package/dist/{index-CfUcEenL.js.map → index-CvQFVQLU.js.map} +1 -1
- package/dist/{index-CjKyNYo-.js → index-D4nH7Tfx.js} +5 -5
- package/dist/{index-CjKyNYo-.js.map → index-D4nH7Tfx.js.map} +1 -1
- package/dist/{index-DObNJhT7.js → index-DJeAhPf-.js} +6 -6
- package/dist/{index-DObNJhT7.js.map → index-DJeAhPf-.js.map} +1 -1
- package/dist/{index-DJ_AKb9m.js → index-DQDBupb0.js} +8 -8
- package/dist/index-DQDBupb0.js.map +1 -0
- package/dist/{index-D9q70zqJ.js → index-De7NmChy.js} +6 -6
- package/dist/{index-D9q70zqJ.js.map → index-De7NmChy.js.map} +1 -1
- package/dist/{index-CgSYpdx0.js → index-DhA_rNUY.js} +6 -6
- package/dist/{index-CgSYpdx0.js.map → index-DhA_rNUY.js.map} +1 -1
- package/dist/{index-tEOuqC2k.js → index-GK0v6bfO.js} +7 -7
- package/dist/index-GK0v6bfO.js.map +1 -0
- package/dist/{index-Bymbf9B1.js → index-SfB11gF_.js} +7 -7
- package/dist/index-SfB11gF_.js.map +1 -0
- package/dist/{index-DIAGQuHl.js → index-miobE3AH.js} +6 -6
- package/dist/{index-DIAGQuHl.js.map → index-miobE3AH.js.map} +1 -1
- package/dist/index.d.ts +13 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +95 -86
- package/dist/index.js.map +1 -1
- package/dist/{pies.utils-BuoF2iP8.js → pies.utils-FfqwwwDi.js} +6 -6
- package/dist/{pies.utils-BuoF2iP8.js.map → pies.utils-FfqwwwDi.js.map} +1 -1
- package/dist/{preview.data.constants-C-K-9fN3.js → preview.data.constants-DDnGcvzL.js} +2 -2
- package/dist/{preview.data.constants-C-K-9fN3.js.map → preview.data.constants-DDnGcvzL.js.map} +1 -1
- package/dist/remarkable-pro.css +1 -1
- package/dist/styles.utils-BfpH_m_W.js +73 -0
- package/dist/styles.utils-BfpH_m_W.js.map +1 -0
- package/dist/tables.hooks-DFEu8kZn.js +46 -0
- package/dist/tables.hooks-DFEu8kZn.js.map +1 -0
- package/dist/{tables.utils-CiiwEo1e.js → tables.utils-CBn15nfE.js} +4 -4
- package/dist/{tables.utils-CiiwEo1e.js.map → tables.utils-CBn15nfE.js.map} +1 -1
- package/dist/{timeRange.utils-DZL3BrUv.js → timeRange.utils-B4CCk0Na.js} +5 -5
- package/dist/{timeRange.utils-DZL3BrUv.js.map → timeRange.utils-B4CCk0Na.js.map} +1 -1
- package/dist/utils/array.utils.d.ts +2 -0
- package/dist/utils/array.utils.d.ts.map +1 -0
- package/dist/utils/cache.utils.d.ts.map +1 -0
- package/dist/utils/color.utils.d.ts.map +1 -0
- package/dist/utils/data.utils.d.ts.map +1 -0
- package/dist/utils/date.utils.d.ts.map +1 -0
- package/dist/utils/object.utils.d.ts.map +1 -0
- package/package.json +2 -2
- package/dist/ChartCard-BE_Kz3jK.js +0 -117
- package/dist/ChartGranularitySelectField-C4oTWMDg.js +0 -40
- package/dist/ChartGranularitySelectField-C4oTWMDg.js.map +0 -1
- package/dist/Color.type.emb-DIW_7wKP.js.map +0 -1
- package/dist/charts.utils-B4kq1sTA.js.map +0 -1
- package/dist/formatter.utils-C9mQTOD-.js.map +0 -1
- package/dist/granularity.utils-CA504xa0.js +0 -15
- package/dist/granularity.utils-CA504xa0.js.map +0 -1
- package/dist/index-BbQatMvx.js.map +0 -1
- package/dist/index-Bymbf9B1.js.map +0 -1
- package/dist/index-DGeDkRqz.js.map +0 -1
- package/dist/index-DJ_AKb9m.js.map +0 -1
- package/dist/index-DfiG6Fph.js +0 -99
- package/dist/index-DfiG6Fph.js.map +0 -1
- package/dist/index-tEOuqC2k.js.map +0 -1
- package/dist/styles.utils-u6uj51UE.js +0 -59
- package/dist/styles.utils-u6uj51UE.js.map +0 -1
- package/dist/tables.hooks-BQdyUxau.js +0 -45
- package/dist/tables.hooks-BQdyUxau.js.map +0 -1
- package/dist/utils.ts/cache.utils.d.ts.map +0 -1
- package/dist/utils.ts/color.utils.d.ts.map +0 -1
- package/dist/utils.ts/data.utils.d.ts.map +0 -1
- package/dist/utils.ts/date.utils.d.ts.map +0 -1
- package/dist/utils.ts/object.utils.d.ts.map +0 -1
- /package/dist/{utils.ts → utils}/cache.utils.d.ts +0 -0
- /package/dist/{utils.ts → utils}/color.utils.d.ts +0 -0
- /package/dist/{utils.ts → utils}/data.utils.d.ts +0 -0
- /package/dist/{utils.ts → utils}/date.utils.d.ts +0 -0
- /package/dist/{utils.ts → utils}/object.utils.d.ts +0 -0
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { D as g,
|
|
1
|
+
import { D as g, c as D } from "./component.inputs.constants-DIZMtQw0.js";
|
|
2
2
|
const o = (a) => {
|
|
3
3
|
const s = {};
|
|
4
4
|
return (m) => {
|
|
5
|
-
const
|
|
6
|
-
let n = s[
|
|
7
|
-
return n || (n = a(m), s[
|
|
5
|
+
const c = JSON.stringify(m);
|
|
6
|
+
let n = s[c];
|
|
7
|
+
return n || (n = a(m), s[c] = n, n);
|
|
8
8
|
};
|
|
9
9
|
}, N = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}$/, O = (a) => !!(a && N.test(a)), S = (a) => {
|
|
10
10
|
const s = o(
|
|
11
11
|
(t) => a.formatter.numberFormatter(a, t)
|
|
12
|
-
),
|
|
12
|
+
), f = o(
|
|
13
13
|
(t) => a.formatter.dataNumberFormatter(a, t)
|
|
14
14
|
), m = o(
|
|
15
15
|
(t) => a.formatter.dateTimeFormatter(a, t)
|
|
16
|
-
),
|
|
16
|
+
), c = o(
|
|
17
17
|
(t) => a.formatter.dataDateTimeFormatter(a, t)
|
|
18
18
|
), n = o(
|
|
19
19
|
(t) => a.formatter.dataOthersFormatter(a, t)
|
|
@@ -42,7 +42,7 @@ const o = (a) => {
|
|
|
42
42
|
return r;
|
|
43
43
|
if (typeof r == "object")
|
|
44
44
|
return JSON.stringify(r);
|
|
45
|
-
t.nativeType === "number" && (e =
|
|
45
|
+
t.nativeType === "number" && (e = f(t).format(r)), t.nativeType === "time" && O(r) && (e = c(t).format(new Date(r))), (t.nativeType === "boolean" || t.nativeType === "string") && (e = n(t).format(r));
|
|
46
46
|
const i = `${((l = t.inputs) == null ? void 0 : l.prefix) || ""}${e}${((F = t.inputs) == null ? void 0 : F.suffix) || ""}`;
|
|
47
47
|
return (T = t.inputs) != null && T.maxCharacters ? i.length <= t.inputs.maxCharacters ? i : i.substring(0, t.inputs.maxCharacters) + "..." : i;
|
|
48
48
|
}
|
|
@@ -51,4 +51,4 @@ const o = (a) => {
|
|
|
51
51
|
export {
|
|
52
52
|
S as g
|
|
53
53
|
};
|
|
54
|
-
//# sourceMappingURL=formatter.utils-
|
|
54
|
+
//# sourceMappingURL=formatter.utils-BuiHCNHH.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatter.utils-BuiHCNHH.js","sources":["../src/utils/cache.utils.ts","../src/utils/data.utils.ts","../src/theme/formatter/formatter.utils.ts"],"sourcesContent":["/**\n * Creates a formatter cache.\n * Cache used to prevent unnecessary (expensive) creation of formatter objects\n */\nexport const cache = <Params, Formatter>(factory: (params?: Params) => Formatter) => {\n const internalCache: { [key: string]: Formatter } = {};\n const get = (params?: Params) => {\n const key = JSON.stringify(params);\n let formatter = internalCache[key];\n if (formatter) {\n return formatter;\n }\n formatter = factory(params);\n internalCache[key] = formatter;\n return formatter;\n };\n return get;\n};\n","const ISO_DATE_TIME_REGEX = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}$/;\n\nexport const isValidISODate = (value: string): boolean => {\n return Boolean(value && ISO_DATE_TIME_REGEX.test(value));\n};\n","import { DimensionOrMeasure } from '@embeddable.com/core';\nimport { DateTimeFormatter, NumberFormatter, StringFormatter } from './formatter.types';\nimport { Theme } from '../theme.types';\nimport { cache } from '../../utils/cache.utils';\nimport { isValidISODate } from '../../utils/data.utils';\nimport { resolveI18nString } from '../../components/component.utils';\nimport { DisplayFormatTypeOptions } from '../../components/types/DisplayFormat.type.emb';\n\nexport type GetThemeFormatter = {\n string: (key: string) => string;\n number: (value: number | bigint, options?: Intl.NumberFormatOptions) => string;\n dateTime: (value: Date, options?: Intl.DateTimeFormatOptions) => string;\n dimensionOrMeasureTitle: (key: DimensionOrMeasure) => string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data: (key: DimensionOrMeasure, value: any) => string;\n};\n\nexport const getThemeFormatter = (theme: Theme): GetThemeFormatter => {\n const cachedNumberFormatter = cache<Intl.NumberFormatOptions, NumberFormatter>((options) =>\n theme.formatter.numberFormatter(theme, options),\n );\n\n const cachedDataNumberFormatter = cache<DimensionOrMeasure, NumberFormatter>((key) =>\n theme.formatter.dataNumberFormatter(theme, key!),\n );\n\n const cachedDateTimeFormatter = cache<Intl.DateTimeFormatOptions, DateTimeFormatter>((options) =>\n theme.formatter.dateTimeFormatter(theme, options),\n );\n\n const cachedDataDateTimeFormatter = cache<DimensionOrMeasure, DateTimeFormatter>((key) =>\n theme.formatter.dataDateTimeFormatter(theme, key!),\n );\n\n const cachedDataOthersFormatter = cache<DimensionOrMeasure, StringFormatter>((key) =>\n theme.formatter.dataOthersFormatter(theme, key!),\n );\n\n return {\n string: (key: string) => theme.formatter.stringFormatter().format(key),\n number: (value: number | bigint, options?: Intl.NumberFormatOptions): string => {\n return cachedNumberFormatter(options).format(value);\n },\n dateTime: (value: Date, options?: Intl.DateTimeFormatOptions): string => {\n return cachedDateTimeFormatter(options).format(value);\n },\n dimensionOrMeasureTitle: (key: DimensionOrMeasure): string => {\n const displayName = key.inputs?.displayName;\n if (displayName) {\n if (displayName.includes('|')) {\n return resolveI18nString(displayName);\n }\n return displayName;\n }\n\n const resolved = cachedDataOthersFormatter(key).format(key.name);\n return resolved === key.name ? (key.title ?? key.name) : resolved;\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data: (key: DimensionOrMeasure, value: any): string => {\n let newValue = value;\n\n // Nulls\n if (value == null) {\n return key.inputs?.displayNullAs ?? '';\n }\n\n // JSON and Markdown\n if (key.inputs?.displayFormat === DisplayFormatTypeOptions.JSON) {\n return JSON.stringify(value, null, 2);\n } else if (key.inputs?.displayFormat === DisplayFormatTypeOptions.MARKDOWN) {\n return value;\n }\n // Objects\n if (typeof value === 'object') {\n return JSON.stringify(value);\n }\n\n // Number\n if (key.nativeType === 'number') {\n newValue = cachedDataNumberFormatter(key).format(value);\n }\n\n // Time\n if (key.nativeType === 'time' && isValidISODate(value)) {\n newValue = cachedDataDateTimeFormatter(key).format(new Date(value));\n }\n\n // Others (boolean and string)\n if (key.nativeType === 'boolean' || key.nativeType === 'string') {\n newValue = cachedDataOthersFormatter(key).format(value);\n }\n\n // Prefix and suffix\n const appended = `${key.inputs?.prefix || ''}${newValue}${key.inputs?.suffix || ''}`;\n\n // Max characters\n if (key.inputs?.maxCharacters) {\n if (appended.length <= key.inputs.maxCharacters) {\n return appended;\n }\n return appended.substring(0, key.inputs.maxCharacters) + '...';\n }\n\n return appended;\n },\n };\n};\n"],"names":["cache","factory","internalCache","params","key","formatter","ISO_DATE_TIME_REGEX","isValidISODate","value","getThemeFormatter","theme","cachedNumberFormatter","options","cachedDataNumberFormatter","cachedDateTimeFormatter","cachedDataDateTimeFormatter","cachedDataOthersFormatter","displayName","_a","resolveI18nString","resolved","newValue","_b","DisplayFormatTypeOptions","_c","appended","_d","_e","_f"],"mappings":";AAIO,MAAMA,IAAQ,CAAoBC,MAA4C;AACnF,QAAMC,IAA8C,CAAA;AAWpD,SAVY,CAACC,MAAoB;AAC/B,UAAMC,IAAM,KAAK,UAAUD,CAAM;AACjC,QAAIE,IAAYH,EAAcE,CAAG;AACjC,WAAIC,MAGJA,IAAYJ,EAAQE,CAAM,GAC1BD,EAAcE,CAAG,IAAIC,GACdA;AAAA,EACT;AAEF,GCjBMC,IAAsB,gDAEfC,IAAiB,CAACC,MACtB,GAAQA,KAASF,EAAoB,KAAKE,CAAK,ICc3CC,IAAoB,CAACC,MAAoC;AACpE,QAAMC,IAAwBX;AAAA,IAAiD,CAACY,MAC9EF,EAAM,UAAU,gBAAgBA,GAAOE,CAAO;AAAA,EAAA,GAG1CC,IAA4Bb;AAAA,IAA2C,CAACI,MAC5EM,EAAM,UAAU,oBAAoBA,GAAON,CAAI;AAAA,EAAA,GAG3CU,IAA0Bd;AAAA,IAAqD,CAACY,MACpFF,EAAM,UAAU,kBAAkBA,GAAOE,CAAO;AAAA,EAAA,GAG5CG,IAA8Bf;AAAA,IAA6C,CAACI,MAChFM,EAAM,UAAU,sBAAsBA,GAAON,CAAI;AAAA,EAAA,GAG7CY,IAA4BhB;AAAA,IAA2C,CAACI,MAC5EM,EAAM,UAAU,oBAAoBA,GAAON,CAAI;AAAA,EAAA;AAGjD,SAAO;AAAA,IACL,QAAQ,CAACA,MAAgBM,EAAM,UAAU,gBAAA,EAAkB,OAAON,CAAG;AAAA,IACrE,QAAQ,CAACI,GAAwBI,MACxBD,EAAsBC,CAAO,EAAE,OAAOJ,CAAK;AAAA,IAEpD,UAAU,CAACA,GAAaI,MACfE,EAAwBF,CAAO,EAAE,OAAOJ,CAAK;AAAA,IAEtD,yBAAyB,CAACJ,MAAoC;;AAC5D,YAAMa,KAAcC,IAAAd,EAAI,WAAJ,gBAAAc,EAAY;AAChC,UAAID;AACF,eAAIA,EAAY,SAAS,GAAG,IACnBE,EAAkBF,CAAW,IAE/BA;AAGT,YAAMG,IAAWJ,EAA0BZ,CAAG,EAAE,OAAOA,EAAI,IAAI;AAC/D,aAAOgB,MAAahB,EAAI,OAAQA,EAAI,SAASA,EAAI,OAAQgB;AAAA,IAC3D;AAAA;AAAA,IAEA,MAAM,CAAChB,GAAyBI,MAAuB;;AACrD,UAAIa,IAAWb;AAGf,UAAIA,KAAS;AACX,iBAAOU,IAAAd,EAAI,WAAJ,gBAAAc,EAAY,kBAAiB;AAItC,YAAII,IAAAlB,EAAI,WAAJ,gBAAAkB,EAAY,mBAAkBC,EAAyB;AACzD,eAAO,KAAK,UAAUf,GAAO,MAAM,CAAC;AACtC,YAAWgB,IAAApB,EAAI,WAAJ,gBAAAoB,EAAY,mBAAkBD,EAAyB;AAChE,eAAOf;AAGT,UAAI,OAAOA,KAAU;AACnB,eAAO,KAAK,UAAUA,CAAK;AAI7B,MAAIJ,EAAI,eAAe,aACrBiB,IAAWR,EAA0BT,CAAG,EAAE,OAAOI,CAAK,IAIpDJ,EAAI,eAAe,UAAUG,EAAeC,CAAK,MACnDa,IAAWN,EAA4BX,CAAG,EAAE,OAAO,IAAI,KAAKI,CAAK,CAAC,KAIhEJ,EAAI,eAAe,aAAaA,EAAI,eAAe,cACrDiB,IAAWL,EAA0BZ,CAAG,EAAE,OAAOI,CAAK;AAIxD,YAAMiB,IAAW,KAAGC,IAAAtB,EAAI,WAAJ,gBAAAsB,EAAY,WAAU,EAAE,GAAGL,CAAQ,KAAGM,IAAAvB,EAAI,WAAJ,gBAAAuB,EAAY,WAAU,EAAE;AAGlF,cAAIC,IAAAxB,EAAI,WAAJ,QAAAwB,EAAY,gBACVH,EAAS,UAAUrB,EAAI,OAAO,gBACzBqB,IAEFA,EAAS,UAAU,GAAGrB,EAAI,OAAO,aAAa,IAAI,QAGpDqB;AAAA,IACT;AAAA,EAAA;AAEJ;"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { j as s, v as y } from "./Color.type.emb-tRPNtuPs.js";
|
|
2
|
+
import { G as p } from "./GranularitySelectField-D0AUovNu.js";
|
|
3
|
+
const g = "_chartGranularitySelectFieldContainer_m26zn_1", G = "_marginTop_m26zn_7", o = {
|
|
4
|
+
chartGranularitySelectFieldContainer: g,
|
|
5
|
+
marginTop: G
|
|
6
|
+
}, m = ["day", "week", "month", "quarter", "year"], S = ({
|
|
7
|
+
dimension: r,
|
|
8
|
+
hasMarginTop: t,
|
|
9
|
+
...a
|
|
10
|
+
}) => {
|
|
11
|
+
var e, i, l;
|
|
12
|
+
if (!((e = r == null ? void 0 : r.inputs) == null ? void 0 : e.showGranularityDropdown))
|
|
13
|
+
return null;
|
|
14
|
+
const u = (i = r.inputs) == null ? void 0 : i.dateBounds, c = (l = r.inputs) == null ? void 0 : l.granularity;
|
|
15
|
+
return /* @__PURE__ */ s.jsx(
|
|
16
|
+
"div",
|
|
17
|
+
{
|
|
18
|
+
className: y(
|
|
19
|
+
o.chartGranularitySelectFieldContainer,
|
|
20
|
+
t && o.marginTop
|
|
21
|
+
),
|
|
22
|
+
children: /* @__PURE__ */ s.jsx(
|
|
23
|
+
p,
|
|
24
|
+
{
|
|
25
|
+
...a,
|
|
26
|
+
primaryTimeRange: u,
|
|
27
|
+
granularity: c,
|
|
28
|
+
granularities: m,
|
|
29
|
+
variant: "ghost",
|
|
30
|
+
side: "bottom",
|
|
31
|
+
align: "end"
|
|
32
|
+
}
|
|
33
|
+
)
|
|
34
|
+
}
|
|
35
|
+
);
|
|
36
|
+
}, x = (r, t) => {
|
|
37
|
+
var n;
|
|
38
|
+
const a = t ?? ((n = r.inputs) == null ? void 0 : n.granularity);
|
|
39
|
+
return {
|
|
40
|
+
...r,
|
|
41
|
+
inputs: {
|
|
42
|
+
...r.inputs,
|
|
43
|
+
granularity: a
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
export {
|
|
48
|
+
S as C,
|
|
49
|
+
x as g
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=granularity.utils-DAAi-602.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"granularity.utils-DAAi-602.js","sources":["../src/components/charts/shared/ChartGranularitySelectField/ChartGranularitySelectField.tsx","../src/components/charts/utils/granularity.utils.ts"],"sourcesContent":["import { Dimension, Granularity } from '@embeddable.com/core';\nimport {\n GranularitySelectField,\n GranularitySelectFieldProps,\n} from '../../../editors/shared/GranularitySelectField/GranularitySelectField';\nimport styles from './ChartGranularitySelectField.module.css';\nimport clsx from 'clsx';\n\ntype ChartGranularitySelectFieldProps = Pick<GranularitySelectFieldProps, 'onChange'> & {\n dimension: Dimension;\n hasMarginTop?: boolean;\n};\n\nconst dimensionGranularities: Granularity[] = ['day', 'week', 'month', 'quarter', 'year'];\n\nexport const ChartGranularitySelectField = ({\n dimension,\n hasMarginTop,\n ...props\n}: ChartGranularitySelectFieldProps) => {\n const showGranularitySelector = dimension?.inputs?.showGranularityDropdown;\n\n if (!showGranularitySelector) {\n return null;\n }\n\n const dimensionTimeRange = dimension.inputs?.dateBounds;\n const dimensionGranularity = dimension.inputs?.granularity;\n\n return (\n <div\n className={clsx(\n styles.chartGranularitySelectFieldContainer,\n hasMarginTop && styles.marginTop,\n )}\n >\n <GranularitySelectField\n {...props}\n primaryTimeRange={dimensionTimeRange}\n granularity={dimensionGranularity}\n granularities={dimensionGranularities}\n variant=\"ghost\"\n side=\"bottom\"\n align=\"end\"\n />\n </div>\n );\n};\n","import { Dimension, Granularity } from '@embeddable.com/core';\n\nexport const getDimensionWithGranularity = (dimension: Dimension, granularity?: Granularity) => {\n const currentGranularity = granularity ?? dimension.inputs?.granularity;\n\n return {\n ...dimension,\n inputs: {\n ...dimension.inputs,\n granularity: currentGranularity,\n },\n };\n};\n"],"names":["dimensionGranularities","ChartGranularitySelectField","dimension","hasMarginTop","props","_a","dimensionTimeRange","_b","dimensionGranularity","_c","jsx","clsx","styles","GranularitySelectField","getDimensionWithGranularity","granularity","currentGranularity"],"mappings":";;;;;GAaMA,IAAwC,CAAC,OAAO,QAAQ,SAAS,WAAW,MAAM,GAE3EC,IAA8B,CAAC;AAAA,EAC1C,WAAAC;AAAA,EACA,cAAAC;AAAA,EACA,GAAGC;AACL,MAAwC;;AAGtC,MAAI,GAF4BC,IAAAH,KAAA,gBAAAA,EAAW,WAAX,gBAAAG,EAAmB;AAGjD,WAAO;AAGT,QAAMC,KAAqBC,IAAAL,EAAU,WAAV,gBAAAK,EAAkB,YACvCC,KAAuBC,IAAAP,EAAU,WAAV,gBAAAO,EAAkB;AAE/C,SACEC,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACTC,EAAO;AAAA,QACPT,KAAgBS,EAAO;AAAA,MAAA;AAAA,MAGzB,UAAAF,gBAAAA,EAAAA;AAAAA,QAACG;AAAA,QAAA;AAAA,UACE,GAAGT;AAAA,UACJ,kBAAkBE;AAAA,UAClB,aAAaE;AAAA,UACb,eAAeR;AAAA,UACf,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,OAAM;AAAA,QAAA;AAAA,MAAA;AAAA,IACR;AAAA,EAAA;AAGN,GC7Cac,IAA8B,CAACZ,GAAsBa,MAA8B;;AAC9F,QAAMC,IAAqBD,OAAeV,IAAAH,EAAU,WAAV,gBAAAG,EAAkB;AAE5D,SAAO;AAAA,IACL,GAAGH;AAAA,IACH,QAAQ;AAAA,MACN,GAAGA,EAAU;AAAA,MACb,aAAac;AAAA,IAAA;AAAA,EACf;AAEJ;"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { j as u, H as R } from "./Color.type.emb-
|
|
1
|
+
import { j as u, H as R } from "./Color.type.emb-tRPNtuPs.js";
|
|
2
2
|
import { useTheme as _ } from "@embeddable.com/react";
|
|
3
|
-
import { a as P, r as k } from "./component.inputs.constants-
|
|
4
|
-
import { C as B } from "./ChartCard-
|
|
5
|
-
import { g as c } from "./formatter.utils-
|
|
3
|
+
import { a as P, r as k } from "./component.inputs.constants-DIZMtQw0.js";
|
|
4
|
+
import { C as B } from "./ChartCard-BmBTN11g.js";
|
|
5
|
+
import { g as c } from "./formatter.utils-BuiHCNHH.js";
|
|
6
6
|
import { u as d } from "./charts.fillGaps.hooks-C7KsWcZb.js";
|
|
7
|
-
import { u as W } from "./tables.hooks-
|
|
7
|
+
import { u as W } from "./tables.hooks-DFEu8kZn.js";
|
|
8
8
|
const f = (e, s) => {
|
|
9
9
|
const t = c(s);
|
|
10
10
|
return {
|
|
@@ -95,4 +95,4 @@ export {
|
|
|
95
95
|
z as H,
|
|
96
96
|
L as i
|
|
97
97
|
};
|
|
98
|
-
//# sourceMappingURL=index-
|
|
98
|
+
//# sourceMappingURL=index-B3L4DXwu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-B3L4DXwu.js","sources":["../src/components/charts/tables/HeatMapPro/index.tsx"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { ChartCard, ChartCardHeaderProps } from '../../shared/ChartCard/ChartCard';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { HeatMap, HeatMapPropsDimension, HeatMapPropsMeasure } from '@embeddable.com/remarkable-ui';\nimport { getThemeFormatter } from '../../../../theme/formatter/formatter.utils';\nimport { useFillGaps } from '../../charts.fillGaps.hooks';\nimport { useGetTableSortedResults } from '../tables.hooks';\n\ntype HeatMapProProps = {\n columnDimension: Dimension;\n columnWidth?: number;\n\n displayNullAs?: string;\n firstColumnWidth?: number;\n maxColor?: string;\n maxThreshold?: string;\n measure: Measure;\n midColor?: string;\n minColor?: string;\n minThreshold?: string;\n results: DataResponse;\n rowDimension: Dimension;\n showValues?: boolean;\n} & ChartCardHeaderProps;\n\nexport const getHeatMeasure = (\n props: { measure: Measure },\n theme: Theme,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): HeatMapPropsMeasure<any> => {\n const themeFormatter = getThemeFormatter(theme);\n\n return {\n key: props.measure.name,\n label: themeFormatter.dimensionOrMeasureTitle(props.measure),\n format: (value) => {\n return themeFormatter.data(props.measure, value);\n },\n };\n};\n\nexport const getHeatDimension = (\n props: { dimension: Dimension },\n theme: Theme,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): HeatMapPropsDimension<any> => {\n const themeFormatter = getThemeFormatter(theme);\n\n return {\n key: props.dimension.name,\n label: themeFormatter.dimensionOrMeasureTitle(props.dimension),\n format: (value: string) => themeFormatter.data(props.dimension, value),\n };\n};\n\nconst HeatMapPro = (props: HeatMapProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { title, description, tooltip } = resolveI18nProps(props);\n const {\n hideMenu,\n measure,\n rowDimension,\n columnDimension,\n maxColor,\n midColor,\n minColor,\n displayNullAs,\n columnWidth,\n firstColumnWidth,\n showValues,\n minThreshold,\n maxThreshold,\n } = props;\n\n const columnOrder = Array.from(\n new Set((props.results.data ?? []).filter(Boolean).map((d) => d[columnDimension.name])),\n );\n\n const rowOrder = Array.from(\n new Set((props.results.data ?? []).filter(Boolean).map((d) => d[rowDimension.name])),\n );\n\n // Fill gaps for the column dimension\n const resultsColumnDimensionFillGaps = useFillGaps({\n results: props.results,\n dimension: columnDimension,\n });\n\n // Fill gaps for the row dimension\n const resultsRowColumnDimensionFillGaps = useFillGaps({\n results: resultsColumnDimensionFillGaps,\n dimension: rowDimension,\n });\n\n const results = useGetTableSortedResults({\n results: resultsRowColumnDimensionFillGaps,\n columnOrder,\n rowOrder,\n columnDimension,\n rowDimension,\n measures: [measure],\n });\n\n const pivotMeasures = getHeatMeasure({ measure }, theme);\n const pivotRowDimension = getHeatDimension({ dimension: rowDimension }, theme);\n const pivotColumnDimension = getHeatDimension({ dimension: columnDimension }, theme);\n\n return (\n <ChartCard\n title={title}\n description={description}\n tooltip={tooltip}\n data={props.results}\n dimensionsAndMeasures={[rowDimension, columnDimension, measure]}\n errorMessage={props.results?.error}\n hideMenu={hideMenu}\n >\n <HeatMap\n data={results}\n measure={pivotMeasures}\n rowDimension={pivotRowDimension}\n columnDimension={pivotColumnDimension}\n maxColor={maxColor}\n midColor={midColor}\n minColor={minColor}\n showValues={showValues}\n minThreshold={minThreshold}\n maxThreshold={maxThreshold}\n columnWidth={columnWidth}\n firstColumnWidth={firstColumnWidth}\n displayNullAs={displayNullAs}\n />\n </ChartCard>\n );\n};\n\nexport default HeatMapPro;\n"],"names":["getHeatMeasure","props","theme","themeFormatter","getThemeFormatter","value","getHeatDimension","HeatMapPro","useTheme","i18nSetup","title","description","tooltip","resolveI18nProps","hideMenu","measure","rowDimension","columnDimension","maxColor","midColor","minColor","displayNullAs","columnWidth","firstColumnWidth","showValues","minThreshold","maxThreshold","columnOrder","d","rowOrder","resultsColumnDimensionFillGaps","useFillGaps","resultsRowColumnDimensionFillGaps","results","useGetTableSortedResults","pivotMeasures","pivotRowDimension","pivotColumnDimension","jsx","ChartCard","_a","HeatMap"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { m as S, j as l, P as b } from "./Color.type.emb-
|
|
1
|
+
import { m as S, j as l, P as b } from "./Color.type.emb-tRPNtuPs.js";
|
|
2
2
|
import { useTheme as v } from "@embeddable.com/react";
|
|
3
|
-
import { g as M, a as _ } from "./pies.utils-
|
|
4
|
-
import { a as k, r as w } from "./component.inputs.constants-
|
|
5
|
-
import { C as L } from "./ChartCard-
|
|
3
|
+
import { g as M, a as _ } from "./pies.utils-FfqwwwDi.js";
|
|
4
|
+
import { a as k, r as w } from "./component.inputs.constants-DIZMtQw0.js";
|
|
5
|
+
import { C as L } from "./ChartCard-BmBTN11g.js";
|
|
6
6
|
const O = (s) => {
|
|
7
7
|
var n;
|
|
8
8
|
const e = v();
|
|
@@ -60,4 +60,4 @@ export {
|
|
|
60
60
|
O as P,
|
|
61
61
|
A as i
|
|
62
62
|
};
|
|
63
|
-
//# sourceMappingURL=index-
|
|
63
|
+
//# sourceMappingURL=index-B5__yodm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-B5__yodm.js","sources":["../src/components/charts/pies/PieChartPro/index.tsx"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { PieChart } from '@embeddable.com/remarkable-ui';\nimport { Theme } from '../../../../theme/theme.types';\nimport { getPieChartProOptions, getPieChartProData } from '../pies.utils';\nimport { DefaultPieChartProps } from '../pies.types';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { ChartCard } from '../../shared/ChartCard/ChartCard';\nimport { mergician } from 'mergician';\nimport { resolveI18nProps } from '../../../component.utils';\n\ntype PieChartProProps = DefaultPieChartProps;\n\nconst PieChartPro = (props: PieChartProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const {\n description,\n dimension,\n maxLegendItems,\n measure,\n results,\n showLegend,\n showTooltips,\n showValueLabels,\n title,\n onSegmentClick,\n } = resolveI18nProps(props);\n\n const { hideMenu } = props;\n\n const data = getPieChartProData(\n { data: results.data, dimension, measure, maxLegendItems },\n theme,\n );\n\n const options = mergician(\n getPieChartProOptions(measure, theme),\n theme.charts.pieChartPro?.options ?? {},\n );\n\n const handleSegmentClick = (index: number | undefined) => {\n if (!onSegmentClick) return;\n\n onSegmentClick({\n dimensionValue: index === undefined ? undefined : results.data?.[index]?.[dimension.name],\n });\n };\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[dimension, measure]}\n errorMessage={results.error}\n description={description}\n title={title}\n hideMenu={hideMenu}\n >\n <PieChart\n data={data}\n options={options}\n showLegend={showLegend}\n showTooltips={showTooltips}\n showValueLabels={showValueLabels}\n onSegmentClick={handleSegmentClick}\n />\n </ChartCard>\n );\n};\n\nexport default PieChartPro;\n"],"names":["PieChartPro","props","theme","useTheme","i18nSetup","description","dimension","maxLegendItems","measure","results","showLegend","showTooltips","showValueLabels","title","onSegmentClick","resolveI18nProps","hideMenu","data","getPieChartProData","options","mergician","getPieChartProOptions","_a","handleSegmentClick","index","_b","jsx","ChartCard","PieChart"],"mappings":";;;;;AAYA,MAAMA,IAAc,CAACC,MAA4B;;AAC/C,QAAMC,IAAQC,EAAA;AACd,EAAAC,EAAUF,CAAK;AAEf,QAAM;AAAA,IACJ,aAAAG;AAAA,IACA,WAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,SAAAC;AAAA,IACA,SAAAC;AAAA,IACA,YAAAC;AAAA,IACA,cAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,OAAAC;AAAA,IACA,gBAAAC;AAAA,EAAA,IACEC,EAAiBd,CAAK,GAEpB,EAAE,UAAAe,MAAaf,GAEfgB,IAAOC;AAAA,IACX,EAAE,MAAMT,EAAQ,MAAM,WAAAH,GAAW,SAAAE,GAAS,gBAAAD,EAAA;AAAA,IAC1CL;AAAA,EAAA,GAGIiB,IAAUC;AAAA,IACdC,EAAsBb,GAASN,CAAK;AAAA,MACpCoB,IAAApB,EAAM,OAAO,gBAAb,gBAAAoB,EAA0B,YAAW,CAAA;AAAA,EAAC,GAGlCC,IAAqB,CAACC,MAA8B;;AACxD,IAAKV,KAELA,EAAe;AAAA,MACb,gBAAgBU,MAAU,WAAwBC,KAAAH,IAAAb,EAAQ,SAAR,gBAAAa,EAAeE,OAAf,OAAZ,SAAYC,EAAwBnB,EAAU;AAAA,IAAI,CACzF;AAAA,EACH;AAEA,SACEoB,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAMlB;AAAA,MACN,uBAAuB,CAACH,GAAWE,CAAO;AAAA,MAC1C,cAAcC,EAAQ;AAAA,MACtB,aAAAJ;AAAA,MACA,OAAAQ;AAAA,MACA,UAAAG;AAAA,MAEA,UAAAU,gBAAAA,EAAAA;AAAAA,QAACE;AAAA,QAAA;AAAA,UACC,MAAAX;AAAA,UACA,SAAAE;AAAA,UACA,YAAAT;AAAA,UACA,cAAAC;AAAA,UACA,iBAAAC;AAAA,UACA,gBAAgBW;AAAA,QAAA;AAAA,MAAA;AAAA,IAClB;AAAA,EAAA;AAGN;;;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { m as S, j as l, D } from "./Color.type.emb-
|
|
1
|
+
import { m as S, j as l, D } from "./Color.type.emb-tRPNtuPs.js";
|
|
2
2
|
import { useTheme as b } from "@embeddable.com/react";
|
|
3
|
-
import { g as v, a as M } from "./pies.utils-
|
|
4
|
-
import { a as _, r as k } from "./component.inputs.constants-
|
|
5
|
-
import { C as w } from "./ChartCard-
|
|
3
|
+
import { g as v, a as M } from "./pies.utils-FfqwwwDi.js";
|
|
4
|
+
import { a as _, r as k } from "./component.inputs.constants-DIZMtQw0.js";
|
|
5
|
+
import { C as w } from "./ChartCard-BmBTN11g.js";
|
|
6
6
|
const L = (s) => {
|
|
7
7
|
var n;
|
|
8
8
|
const e = b();
|
|
@@ -60,4 +60,4 @@ export {
|
|
|
60
60
|
L as D,
|
|
61
61
|
z as i
|
|
62
62
|
};
|
|
63
|
-
//# sourceMappingURL=index-
|
|
63
|
+
//# sourceMappingURL=index-B8IHON3t.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-B8IHON3t.js","sources":["../src/components/charts/pies/DonutChartPro/index.tsx"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { getPieChartProOptions, getPieChartProData } from '../pies.utils';\nimport { DefaultPieChartProps } from '../pies.types';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { ChartCard } from '../../shared/ChartCard/ChartCard';\nimport { DonutChart } from '@embeddable.com/remarkable-ui';\nimport { mergician } from 'mergician';\nimport { resolveI18nProps } from '../../../component.utils';\n\ntype DonutChartProProps = DefaultPieChartProps;\n\nconst DonutChartPro = (props: DonutChartProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const {\n description,\n dimension,\n maxLegendItems,\n measure,\n results,\n showLegend,\n showTooltips,\n showValueLabels,\n title,\n onSegmentClick,\n } = resolveI18nProps(props);\n\n const { hideMenu } = props;\n\n const data = getPieChartProData(\n { data: results.data, dimension, measure, maxLegendItems },\n theme,\n );\n\n const options = mergician(\n getPieChartProOptions(measure, theme),\n theme.charts.donutChartPro?.options ?? {},\n );\n\n const handleSegmentClick = (index: number | undefined) => {\n if (!onSegmentClick) return;\n onSegmentClick({\n dimensionValue: index === undefined ? undefined : results.data?.[index]?.[dimension.name],\n });\n };\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[dimension, measure]}\n errorMessage={results.error}\n description={description}\n title={title}\n hideMenu={hideMenu}\n >\n <DonutChart\n data={data}\n options={options}\n showLegend={showLegend}\n showTooltips={showTooltips}\n showValueLabels={showValueLabels}\n onSegmentClick={handleSegmentClick}\n />\n </ChartCard>\n );\n};\n\nexport default DonutChartPro;\n"],"names":["DonutChartPro","props","theme","useTheme","i18nSetup","description","dimension","maxLegendItems","measure","results","showLegend","showTooltips","showValueLabels","title","onSegmentClick","resolveI18nProps","hideMenu","data","getPieChartProData","options","mergician","getPieChartProOptions","_a","handleSegmentClick","index","_b","jsx","ChartCard","DonutChart"],"mappings":";;;;;AAYA,MAAMA,IAAgB,CAACC,MAA8B;;AACnD,QAAMC,IAAQC,EAAA;AACd,EAAAC,EAAUF,CAAK;AAEf,QAAM;AAAA,IACJ,aAAAG;AAAA,IACA,WAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,SAAAC;AAAA,IACA,SAAAC;AAAA,IACA,YAAAC;AAAA,IACA,cAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,OAAAC;AAAA,IACA,gBAAAC;AAAA,EAAA,IACEC,EAAiBd,CAAK,GAEpB,EAAE,UAAAe,MAAaf,GAEfgB,IAAOC;AAAA,IACX,EAAE,MAAMT,EAAQ,MAAM,WAAAH,GAAW,SAAAE,GAAS,gBAAAD,EAAA;AAAA,IAC1CL;AAAA,EAAA,GAGIiB,IAAUC;AAAA,IACdC,EAAsBb,GAASN,CAAK;AAAA,MACpCoB,IAAApB,EAAM,OAAO,kBAAb,gBAAAoB,EAA4B,YAAW,CAAA;AAAA,EAAC,GAGpCC,IAAqB,CAACC,MAA8B;;AACxD,IAAKV,KACLA,EAAe;AAAA,MACb,gBAAgBU,MAAU,WAAwBC,KAAAH,IAAAb,EAAQ,SAAR,gBAAAa,EAAeE,OAAf,OAAZ,SAAYC,EAAwBnB,EAAU;AAAA,IAAI,CACzF;AAAA,EACH;AAEA,SACEoB,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAMlB;AAAA,MACN,uBAAuB,CAACH,GAAWE,CAAO;AAAA,MAC1C,cAAcC,EAAQ;AAAA,MACtB,aAAAJ;AAAA,MACA,OAAAQ;AAAA,MACA,UAAAG;AAAA,MAEA,UAAAU,gBAAAA,EAAAA;AAAAA,QAACE;AAAA,QAAA;AAAA,UACC,MAAAX;AAAA,UACA,SAAAE;AAAA,UACA,YAAAT;AAAA,UACA,cAAAC;AAAA,UACA,iBAAAC;AAAA,UACA,gBAAgBW;AAAA,QAAA;AAAA,MAAA;AAAA,IAClB;AAAA,EAAA;AAGN;;;;"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { x as z, y as N, j as t, z as q, E as B, F as d, G, J, N as Q, O as A, Q as H, R as K } from "./Color.type.emb-
|
|
1
|
+
import { x as z, y as N, j as t, z as q, E as B, F as d, G, J, N as Q, O as A, Q as H, R as K } from "./Color.type.emb-tRPNtuPs.js";
|
|
2
2
|
import { useTheme as U } from "@embeddable.com/react";
|
|
3
3
|
import { g as P, u as W, a as X, c as v, b as Y } from "./dates.utils-BF32dTLi.js";
|
|
4
|
-
import {
|
|
5
|
-
import { E as ee } from "./EditorCard-
|
|
4
|
+
import { c as Z, a as $, r as V, i as m } from "./component.inputs.constants-DIZMtQw0.js";
|
|
5
|
+
import { E as ee } from "./EditorCard-BEOWlY3S.js";
|
|
6
6
|
import { useState as R, useEffect as ae } from "react";
|
|
7
|
-
import { I as te } from "./IconCalendarFilled-
|
|
7
|
+
import { I as te } from "./IconCalendarFilled-Dlxre0eW.js";
|
|
8
8
|
const ne = (o) => o.map((n) => ({
|
|
9
9
|
rightLabel: P(n.getRange(), n.dateFormat),
|
|
10
10
|
value: n.value,
|
|
@@ -121,4 +121,4 @@ export {
|
|
|
121
121
|
ne as g,
|
|
122
122
|
fe as i
|
|
123
123
|
};
|
|
124
|
-
//# sourceMappingURL=index-
|
|
124
|
+
//# sourceMappingURL=index-BDpQF_cG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-BDpQF_cG.js","sources":["../src/components/editors/dates/DateRangePickerPresetsPro/DateRangePickerPresetsPro.utils.ts","../src/components/editors/dates/DateRangePickerPresetsPro/index.tsx"],"sourcesContent":["import { DateRangeSelectFieldProOption } from './DateRangePickerPresetsPro.types';\nimport { SelectListOptionProps } from '@embeddable.com/remarkable-ui';\nimport { resolveI18nString } from '../../../component.utils';\nimport { getTimeRangeLabel } from '../dates.utils';\n\nexport const getDateRangeSelectFieldProOptions = (\n dateRangeSelectFieldProOptions: DateRangeSelectFieldProOption[],\n): SelectListOptionProps[] => {\n return dateRangeSelectFieldProOptions.map((option) => {\n return {\n rightLabel: getTimeRangeLabel(option.getRange(), option.dateFormat),\n value: option.value,\n label: resolveI18nString(option.label),\n };\n });\n};\n","import { useTheme } from '@embeddable.com/react';\nimport {\n Button,\n DateRangePicker,\n Dropdown,\n SelectFieldContent,\n SelectFieldContentList,\n SelectListOption,\n DateRange,\n SelectFieldTrigger,\n isSameDateRange,\n shallowEqual,\n} from '@embeddable.com/remarkable-ui';\nimport { Theme } from '../../../../theme/theme.types';\nimport { useLoadDayjsLocale } from '../../../../utils/date.utils';\nimport { getDateRangeSelectFieldProOptions } from './DateRangePickerPresetsPro.utils';\nimport { TimeRange } from '@embeddable.com/core';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { EditorCard, EditorCardHeaderProps } from '../../shared/EditorCard/EditorCard';\nimport { IconCalendarFilled, IconChevronLeft, IconChevronRight } from '@tabler/icons-react';\nimport { i18n, i18nSetup } from '../../../../theme/i18n/i18n';\nimport { useEffect, useState } from 'react';\nimport styles from './DateRangePickerPresetsPro.module.css';\nimport {\n getDateRangeFromTimeRange,\n getTimeRangeFromDateRange,\n getTimeRangeFromPresets,\n getTimeRangeLabel,\n} from '../dates.utils';\n\ntype DateRangePickerPresetsProps = {\n onChange: (newDateRange: TimeRange) => void;\n placeholder?: string;\n selectedValue?: TimeRange;\n\n clearable?: boolean;\n showCustomRangeOptions?: boolean;\n showTwoMonths?: boolean;\n} & EditorCardHeaderProps;\n\nconst DateRangePickerPresets = (props: DateRangePickerPresetsProps) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n const { dayjsLocaleReady } = useLoadDayjsLocale();\n const { onChange, clearable, selectedValue, showCustomRangeOptions, showTwoMonths } = props;\n const onlyDateRangePicker = !showCustomRangeOptions;\n const [showDateRangePicker, setShowDateRangePicker] = useState(onlyDateRangePicker);\n\n const [isOpen, setIsOpen] = useState(false);\n const [dateRange, setDateRange] = useState<DateRange | undefined>(\n getDateRangeFromTimeRange(selectedValue),\n );\n\n const dateRangeOptions = theme.defaults.dateRangesOptions;\n\n useEffect(() => {\n if (!dayjsLocaleReady) {\n return;\n }\n // Step 1: Convert relativeTimeString to actual time range (from/to)\n const newTimeRange = getTimeRangeFromPresets(selectedValue, dateRangeOptions);\n\n if (!shallowEqual(newTimeRange, selectedValue)) {\n onChange(newTimeRange);\n }\n }, [selectedValue, dayjsLocaleReady, onChange, dateRangeOptions]);\n\n if (!dayjsLocaleReady) {\n return null;\n }\n\n const { description, placeholder, title, tooltip } = resolveI18nProps(props);\n\n const options = getDateRangeSelectFieldProOptions(dateRangeOptions);\n\n const handleOptionChange = (newValue: string | undefined) => {\n const newTimeRange = getTimeRangeFromPresets(\n { relativeTimeString: newValue } as TimeRange,\n dateRangeOptions,\n );\n\n onChange(newTimeRange);\n setDateRange(undefined);\n };\n\n const handleDateRangeChange = (newDateRange: DateRange | undefined) => {\n onChange(getTimeRangeFromDateRange(newDateRange));\n setIsOpen(false);\n };\n\n const handleClear = () => {\n setDateRange(undefined);\n onChange(undefined);\n };\n\n const getValueLabel = () => {\n if (selectedValue?.relativeTimeString) {\n const option = options.find((option) => option.value === selectedValue.relativeTimeString);\n if (option) {\n return option.label;\n }\n }\n\n if (selectedValue?.from && selectedValue?.to) {\n return getTimeRangeLabel(selectedValue, 'MMM DD');\n }\n\n return '';\n };\n\n const valueLabel = getValueLabel();\n\n const locale = theme.i18n.language ?? theme.formatter.locale;\n const isSubmitDisabled = isSameDateRange(dateRange, selectedValue);\n const numberOfMonths = showTwoMonths ? 2 : 1;\n\n return (\n <EditorCard title={title} description={description} tooltip={tooltip}>\n <Dropdown\n open={isOpen}\n onOpenChange={setIsOpen}\n avoidCollisions={false}\n triggerComponent={\n <SelectFieldTrigger\n startIcon={IconCalendarFilled}\n aria-label={placeholder}\n placeholder={placeholder}\n valueLabel={valueLabel}\n onClear={handleClear}\n isClearable={clearable}\n />\n }\n >\n <SelectFieldContent fitContent className={styles.dateRangePickerContent}>\n {showDateRangePicker ? (\n <div className={styles.dateRangePickerContainer}>\n {!onlyDateRangePicker && (\n <SelectListOption\n label={i18n.t('editors.dateRangePicker.backToPresets')}\n onClick={(e) => {\n e.preventDefault();\n setShowDateRangePicker(false);\n }}\n startIcon={<IconChevronLeft />}\n />\n )}\n <DateRangePicker\n locale={locale}\n numberOfMonths={numberOfMonths}\n value={dateRange}\n onChange={setDateRange}\n />\n <Button\n size=\"small\"\n disabled={isSubmitDisabled}\n onClick={() => handleDateRangeChange(dateRange)}\n >\n {i18n.t('editors.dateRangePicker.apply')}\n </Button>\n </div>\n ) : (\n <SelectFieldContentList>\n <SelectListOption\n label={i18n.t('editors.dateRangePicker.custom')}\n onClick={(e) => {\n e.preventDefault();\n setShowDateRangePicker(true);\n }}\n endIcon={<IconChevronRight />}\n />\n {options.map((option) => (\n <SelectListOption\n key={option.value}\n {...option}\n isSelected={selectedValue?.relativeTimeString === option.value}\n onClick={() => handleOptionChange(option.value)}\n />\n ))}\n </SelectFieldContentList>\n )}\n </SelectFieldContent>\n </Dropdown>\n </EditorCard>\n );\n};\n\nexport default DateRangePickerPresets;\n"],"names":["getDateRangeSelectFieldProOptions","dateRangeSelectFieldProOptions","option","getTimeRangeLabel","resolveI18nString","DateRangePickerPresets","props","theme","useTheme","i18nSetup","dayjsLocaleReady","useLoadDayjsLocale","onChange","clearable","selectedValue","showCustomRangeOptions","showTwoMonths","onlyDateRangePicker","showDateRangePicker","setShowDateRangePicker","useState","isOpen","setIsOpen","dateRange","setDateRange","getDateRangeFromTimeRange","dateRangeOptions","useEffect","newTimeRange","getTimeRangeFromPresets","shallowEqual","description","placeholder","title","tooltip","resolveI18nProps","options","handleOptionChange","newValue","handleDateRangeChange","newDateRange","getTimeRangeFromDateRange","handleClear","valueLabel","locale","isSubmitDisabled","isSameDateRange","numberOfMonths","jsx","EditorCard","Dropdown","SelectFieldTrigger","IconCalendarFilled","SelectFieldContent","styles","jsxs","SelectListOption","i18n","e","IconChevronLeft","DateRangePicker","Button","SelectFieldContentList","IconChevronRight"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { m as T, j as o, B as k } from "./Color.type.emb-
|
|
1
|
+
import { m as T, j as o, B as k } from "./Color.type.emb-tRPNtuPs.js";
|
|
2
2
|
import { useTheme as w } from "@embeddable.com/react";
|
|
3
|
-
import { a as _, r as v } from "./component.inputs.constants-
|
|
4
|
-
import { C as G } from "./ChartCard-
|
|
5
|
-
import { b as O, a as R } from "./bars.utils-
|
|
3
|
+
import { a as _, r as v } from "./component.inputs.constants-DIZMtQw0.js";
|
|
4
|
+
import { C as G } from "./ChartCard-BmBTN11g.js";
|
|
5
|
+
import { b as O, a as R } from "./bars.utils-C6w2ekZW.js";
|
|
6
6
|
import { u as z } from "./charts.fillGaps.hooks-C7KsWcZb.js";
|
|
7
|
-
import { C as D } from "./
|
|
7
|
+
import { C as D } from "./granularity.utils-DAAi-602.js";
|
|
8
8
|
const F = (e) => {
|
|
9
9
|
var d, u;
|
|
10
10
|
const a = w();
|
|
@@ -89,4 +89,4 @@ export {
|
|
|
89
89
|
F as B,
|
|
90
90
|
K as i
|
|
91
91
|
};
|
|
92
|
-
//# sourceMappingURL=index-
|
|
92
|
+
//# sourceMappingURL=index-BKikv8mC.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-BKikv8mC.js","sources":["../src/components/charts/bars/BarChartStackedPro/index.tsx"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { ChartCard, ChartCardHeaderProps } from '../../shared/ChartCard/ChartCard';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { BarChart } from '@embeddable.com/remarkable-ui';\nimport { getBarChartProOptions, getBarStackedChartProData } from '../bars.utils';\nimport { mergician } from 'mergician';\nimport { DataResponse, Dimension, Granularity, Measure } from '@embeddable.com/core';\nimport { useFillGaps } from '../../charts.fillGaps.hooks';\nimport { ChartGranularitySelectField } from '../../shared/ChartGranularitySelectField/ChartGranularitySelectField';\n\ntype BarChartStackedProProps = {\n groupBy: Dimension;\n maxLegendItems?: number;\n measure: Measure;\n results: DataResponse;\n reverseXAxis?: boolean;\n showLegend?: boolean;\n showLogarithmicScale?: boolean;\n showTotalLabels?: boolean;\n showTooltips?: boolean;\n showValueLabels?: boolean;\n xAxis: Dimension;\n xAxisLabel?: string;\n yAxisLabel?: string;\n yAxisRangeMax?: number;\n yAxisRangeMin?: number;\n setGranularity: (granularity: Granularity) => void;\n onBarClicked?: (args: {\n axisDimensionValue: string | null;\n groupingDimensionValue: string | null;\n }) => void;\n} & ChartCardHeaderProps;\n\nconst BarChartStackedPro = (props: BarChartStackedProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n const { tooltip, description, title, xAxisLabel, yAxisLabel } = resolveI18nProps(props);\n\n const {\n groupBy,\n measure,\n reverseXAxis,\n showLegend,\n showLogarithmicScale,\n showTooltips,\n showTotalLabels,\n showValueLabels,\n xAxis,\n yAxisRangeMax,\n yAxisRangeMin,\n setGranularity,\n onBarClicked,\n } = props;\n\n const { hideMenu } = props;\n\n const results = useFillGaps({\n results: props.results,\n dimension: props.xAxis,\n });\n\n const data = getBarStackedChartProData(\n {\n data: results.data,\n dimension: xAxis,\n groupDimension: groupBy,\n measure,\n },\n theme,\n );\n\n const options = mergician(\n getBarChartProOptions(\n { measures: [measure], horizontal: false, onBarClicked, data, dimension: xAxis },\n theme,\n ),\n theme.charts?.barChartStackedPro?.options || {},\n );\n\n const granularitySelectorHasMarginTop = !title && !description && !tooltip;\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[measure, xAxis, groupBy]}\n errorMessage={results.error}\n description={description}\n title={title}\n tooltip={tooltip}\n hideMenu={hideMenu}\n >\n <ChartGranularitySelectField\n hasMarginTop={granularitySelectorHasMarginTop}\n dimension={xAxis}\n onChange={setGranularity}\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 showTotalLabels={showTotalLabels}\n options={options}\n stacked\n />\n </ChartCard>\n );\n};\n\nexport default BarChartStackedPro;\n"],"names":["BarChartStackedPro","props","theme","useTheme","i18nSetup","tooltip","description","title","xAxisLabel","yAxisLabel","resolveI18nProps","groupBy","measure","reverseXAxis","showLegend","showLogarithmicScale","showTooltips","showTotalLabels","showValueLabels","xAxis","yAxisRangeMax","yAxisRangeMin","setGranularity","onBarClicked","hideMenu","results","useFillGaps","data","getBarStackedChartProData","options","mergician","getBarChartProOptions","_b","_a","granularitySelectorHasMarginTop","jsxs","ChartCard","jsx","ChartGranularitySelectField","BarChart"],"mappings":";;;;;;;AAmCA,MAAMA,IAAqB,CAACC,MAAmC;;AAC7D,QAAMC,IAAQC,EAAA;AACd,EAAAC,EAAUF,CAAK;AACf,QAAM,EAAE,SAAAG,GAAS,aAAAC,GAAa,OAAAC,GAAO,YAAAC,GAAY,YAAAC,EAAA,IAAeC,EAAiBT,CAAK,GAEhF;AAAA,IACJ,SAAAU;AAAA,IACA,SAAAC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,OAAAC;AAAA,IACA,eAAAC;AAAA,IACA,eAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,cAAAC;AAAA,EAAA,IACEtB,GAEE,EAAE,UAAAuB,MAAavB,GAEfwB,IAAUC,EAAY;AAAA,IAC1B,SAASzB,EAAM;AAAA,IACf,WAAWA,EAAM;AAAA,EAAA,CAClB,GAEK0B,IAAOC;AAAA,IACX;AAAA,MACE,MAAMH,EAAQ;AAAA,MACd,WAAWN;AAAA,MACX,gBAAgBR;AAAA,MAChB,SAAAC;AAAA,IAAA;AAAA,IAEFV;AAAA,EAAA,GAGI2B,IAAUC;AAAA,IACdC;AAAA,MACE,EAAE,UAAU,CAACnB,CAAO,GAAG,YAAY,IAAO,cAAAW,GAAc,MAAAI,GAAM,WAAWR,EAAA;AAAA,MACzEjB;AAAA,IAAA;AAAA,MAEF8B,KAAAC,IAAA/B,EAAM,WAAN,gBAAA+B,EAAc,uBAAd,gBAAAD,EAAkC,YAAW,CAAA;AAAA,EAAC,GAG1CE,IAAkC,CAAC3B,KAAS,CAACD,KAAe,CAACD;AAEnE,SACE8B,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAMX;AAAA,MACN,uBAAuB,CAACb,GAASO,GAAOR,CAAO;AAAA,MAC/C,cAAcc,EAAQ;AAAA,MACtB,aAAAnB;AAAA,MACA,OAAAC;AAAA,MACA,SAAAF;AAAA,MACA,UAAAmB;AAAA,MAEA,UAAA;AAAA,QAAAa,gBAAAA,EAAAA;AAAAA,UAACC;AAAA,UAAA;AAAA,YACC,cAAcJ;AAAA,YACd,WAAWf;AAAA,YACX,UAAUG;AAAA,UAAA;AAAA,QAAA;AAAA,QAEZe,gBAAAA,EAAAA;AAAAA,UAACE;AAAA,UAAA;AAAA,YACC,MAAAZ;AAAA,YACA,YAAAb;AAAA,YACA,cAAAE;AAAA,YACA,iBAAAE;AAAA,YACA,sBAAAH;AAAA,YACA,YAAAP;AAAA,YACA,YAAAC;AAAA,YACA,cAAAI;AAAA,YACA,eAAAQ;AAAA,YACA,eAAAD;AAAA,YACA,iBAAAH;AAAA,YACA,SAAAY;AAAA,YACA,SAAO;AAAA,UAAA;AAAA,QAAA;AAAA,MACT;AAAA,IAAA;AAAA,EAAA;AAGN;;;;"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { j as g, w as J } from "./Color.type.emb-tRPNtuPs.js";
|
|
2
|
+
import { useTheme as Q } from "@embeddable.com/react";
|
|
3
|
+
import { a as U, r as X, i as Y } from "./component.inputs.constants-DIZMtQw0.js";
|
|
4
|
+
import { C as Z } from "./ChartCard-BmBTN11g.js";
|
|
5
|
+
import { useRef as $, useState as T, useEffect as K } from "react";
|
|
6
|
+
import { u as S } from "./charts.fillGaps.hooks-C7KsWcZb.js";
|
|
7
|
+
import { g as P } from "./formatter.utils-BuiHCNHH.js";
|
|
8
|
+
import { u as ee } from "./tables.hooks-DFEu8kZn.js";
|
|
9
|
+
const te = (t, e) => {
|
|
10
|
+
const o = P(e);
|
|
11
|
+
return t.measures.map((n) => {
|
|
12
|
+
var l, s;
|
|
13
|
+
return {
|
|
14
|
+
key: n.name,
|
|
15
|
+
label: o.dimensionOrMeasureTitle(n),
|
|
16
|
+
showAsPercentage: !!((l = n.inputs) != null && l.showAsPercentage),
|
|
17
|
+
percentageDecimalPlaces: ((s = n.inputs) == null ? void 0 : s.decimalPlaces) ?? 1,
|
|
18
|
+
accessor: (r) => r[n.name] == null ? t.displayNullAs : o.data(n, r[n.name])
|
|
19
|
+
};
|
|
20
|
+
});
|
|
21
|
+
}, R = (t, e) => {
|
|
22
|
+
const o = P(e);
|
|
23
|
+
return {
|
|
24
|
+
key: t.dimension.name,
|
|
25
|
+
label: o.dimensionOrMeasureTitle(t.dimension),
|
|
26
|
+
formatValue: (n) => o.data(t.dimension, n)
|
|
27
|
+
};
|
|
28
|
+
}, oe = (t) => t.filter((e) => {
|
|
29
|
+
var o;
|
|
30
|
+
return (o = e.inputs) == null ? void 0 : o.showColumnTotal;
|
|
31
|
+
}).map((e) => e.name), ne = (t) => t.filter((e) => {
|
|
32
|
+
var o;
|
|
33
|
+
return (o = e.inputs) == null ? void 0 : o.showRowTotal;
|
|
34
|
+
}).map((e) => e.name), se = (t, e, o = "asc") => [...t].sort((n, l) => n[e] < l[e] ? o === "asc" ? -1 : 1 : n[e] > l[e] ? o === "asc" ? 1 : -1 : 0), ae = (t) => {
|
|
35
|
+
var b;
|
|
36
|
+
const e = Q();
|
|
37
|
+
U(e);
|
|
38
|
+
const { title: o, description: n, tooltip: l } = X(t), {
|
|
39
|
+
resultsSubRows: s,
|
|
40
|
+
measures: r,
|
|
41
|
+
rowDimension: a,
|
|
42
|
+
subRowDimension: m,
|
|
43
|
+
columnDimension: d,
|
|
44
|
+
displayNullAs: D,
|
|
45
|
+
columnWidth: x,
|
|
46
|
+
firstColumnWidth: F,
|
|
47
|
+
hideMenu: y,
|
|
48
|
+
expandedRowKeys: f,
|
|
49
|
+
setExpandedRowKey: C
|
|
50
|
+
} = t, M = Array.from(
|
|
51
|
+
new Set((t.results.data ?? []).filter(Boolean).map((i) => i[d.name]))
|
|
52
|
+
), A = Array.from(
|
|
53
|
+
new Set((t.results.data ?? []).filter(Boolean).map((i) => i[a.name]))
|
|
54
|
+
), B = S({
|
|
55
|
+
results: t.results,
|
|
56
|
+
dimension: d
|
|
57
|
+
}), j = S({
|
|
58
|
+
results: B,
|
|
59
|
+
dimension: a
|
|
60
|
+
}), E = ee({
|
|
61
|
+
results: j,
|
|
62
|
+
columnOrder: M,
|
|
63
|
+
rowOrder: A,
|
|
64
|
+
columnDimension: d,
|
|
65
|
+
rowDimension: a,
|
|
66
|
+
measures: r
|
|
67
|
+
}), O = $(null), G = te({ measures: r, displayNullAs: D }, e), _ = R({ dimension: a }, e), k = m ? R({ dimension: m }, e) : void 0, L = R({ dimension: d }, e), N = oe(r), W = ne(r), [z, p] = T(/* @__PURE__ */ new Set()), [I, V] = T(/* @__PURE__ */ new Map()), q = (i) => {
|
|
68
|
+
p((u) => new Set(u).add(i)), C(i);
|
|
69
|
+
};
|
|
70
|
+
return K(() => {
|
|
71
|
+
if (!s || !(s != null && s.data) || f.length === 0)
|
|
72
|
+
return;
|
|
73
|
+
const i = /* @__PURE__ */ new Map();
|
|
74
|
+
f.forEach((u) => {
|
|
75
|
+
var h, v;
|
|
76
|
+
if ((h = s.data) == null ? void 0 : h.some(
|
|
77
|
+
(c) => String(c[a.name]) === u
|
|
78
|
+
)) {
|
|
79
|
+
const c = ((v = s.data) == null ? void 0 : v.filter((H) => String(H[a.name]) === u)) ?? [], w = m ? se(c, m.name, "asc") : c;
|
|
80
|
+
i.set(u, w);
|
|
81
|
+
}
|
|
82
|
+
p((c) => {
|
|
83
|
+
const w = new Set(c);
|
|
84
|
+
return w.delete(u), w;
|
|
85
|
+
});
|
|
86
|
+
}), V(i);
|
|
87
|
+
}, [s, f, a, m]), /* @__PURE__ */ g.jsx(
|
|
88
|
+
Z,
|
|
89
|
+
{
|
|
90
|
+
ref: O,
|
|
91
|
+
title: o,
|
|
92
|
+
description: n,
|
|
93
|
+
tooltip: l,
|
|
94
|
+
data: t.results,
|
|
95
|
+
dimensionsAndMeasures: [a, d, ...r],
|
|
96
|
+
errorMessage: (b = t.results) == null ? void 0 : b.error,
|
|
97
|
+
hideMenu: y,
|
|
98
|
+
children: /* @__PURE__ */ g.jsx(
|
|
99
|
+
J,
|
|
100
|
+
{
|
|
101
|
+
firstColumnWidth: F,
|
|
102
|
+
columnWidth: x,
|
|
103
|
+
totalLabel: Y.t("charts.pivotTable.total"),
|
|
104
|
+
data: E,
|
|
105
|
+
measures: G,
|
|
106
|
+
rowDimension: _,
|
|
107
|
+
columnDimension: L,
|
|
108
|
+
columnTotalsFor: N,
|
|
109
|
+
rowTotalsFor: W,
|
|
110
|
+
expandableRows: !!m,
|
|
111
|
+
subRowsByRow: I,
|
|
112
|
+
loadingRows: z,
|
|
113
|
+
onRowExpand: q,
|
|
114
|
+
subRowDimension: k
|
|
115
|
+
}
|
|
116
|
+
)
|
|
117
|
+
}
|
|
118
|
+
);
|
|
119
|
+
}, Re = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
120
|
+
__proto__: null,
|
|
121
|
+
default: ae
|
|
122
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
123
|
+
export {
|
|
124
|
+
ae as P,
|
|
125
|
+
Re as i
|
|
126
|
+
};
|
|
127
|
+
//# sourceMappingURL=index-BL76s-yZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-BL76s-yZ.js","sources":["../src/components/charts/tables/PivotTablePro/PivotPro.utils.ts","../src/utils/array.utils.ts","../src/components/charts/tables/PivotTablePro/index.tsx"],"sourcesContent":["import { Dimension, Measure } from '@embeddable.com/core';\nimport { Theme } from '../../../../theme/theme.types';\nimport { PivotTableProps } from '@embeddable.com/remarkable-ui';\nimport { getThemeFormatter } from '../../../../theme/formatter/formatter.utils';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport const getPivotMeasures = (\n props: { measures: Measure[]; displayNullAs?: string },\n theme: Theme,\n): PivotTableProps<any>['measures'] => {\n const themeFormatter = getThemeFormatter(theme);\n\n return props.measures.map((measure) => {\n return {\n key: measure.name,\n label: themeFormatter.dimensionOrMeasureTitle(measure),\n showAsPercentage: Boolean(measure.inputs?.showAsPercentage),\n percentageDecimalPlaces: measure.inputs?.decimalPlaces ?? 1,\n accessor: (row) => {\n const value = row[measure.name];\n\n return value == null\n ? props.displayNullAs\n : themeFormatter.data(measure, row[measure.name]);\n },\n };\n });\n};\n\nexport const getPivotDimension = (\n props: { dimension: Dimension },\n theme: Theme,\n): PivotTableProps<any>['rowDimension' | 'columnDimension'] => {\n const themeFormatter = getThemeFormatter(theme);\n\n return {\n key: props.dimension.name,\n label: themeFormatter.dimensionOrMeasureTitle(props.dimension),\n formatValue: (value: string) => themeFormatter.data(props.dimension, value),\n };\n};\n\nexport const getPivotColumnTotalsFor = (\n measures: Measure[],\n): PivotTableProps<any>['columnTotalsFor'] | undefined => {\n return measures.filter((m) => m.inputs?.showColumnTotal).map((m) => m.name);\n};\n\nexport const getPivotRowTotalsFor = (\n measures: Measure[],\n): PivotTableProps<any>['rowTotalsFor'] | undefined => {\n return measures.filter((m) => m.inputs?.showRowTotal).map((m) => m.name);\n};\n","export const sortArrayByProp = <T, K extends keyof T>(\n arr: T[],\n prop: K,\n order: 'asc' | 'desc' = 'asc',\n): T[] => {\n return [...arr].sort((a, b) => {\n if (a[prop] < b[prop]) return order === 'asc' ? -1 : 1;\n if (a[prop] > b[prop]) return order === 'asc' ? 1 : -1;\n return 0;\n });\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { i18n, i18nSetup } from '../../../../theme/i18n/i18n';\nimport { ChartCard, ChartCardHeaderProps } from '../../shared/ChartCard/ChartCard';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { PivotTable } from '@embeddable.com/remarkable-ui';\nimport { useEffect, useRef, useState } from 'react';\nimport { useFillGaps } from '../../charts.fillGaps.hooks';\nimport {\n getPivotColumnTotalsFor,\n getPivotDimension,\n getPivotMeasures,\n getPivotRowTotalsFor,\n} from './PivotPro.utils';\nimport { useGetTableSortedResults } from '../tables.hooks';\nimport { sortArrayByProp } from '../../../../utils/array.utils';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\ntype PivotTableProProps = {\n results: DataResponse;\n resultsSubRows?: DataResponse;\n measures: Measure[];\n rowDimension: Dimension;\n subRowDimension?: Dimension;\n columnDimension: Dimension;\n displayNullAs?: string;\n columnWidth?: number;\n firstColumnWidth?: number;\n expandedRowKeys: string[];\n setExpandedRowKey: (expandedRowKeys: string) => void;\n} & ChartCardHeaderProps;\n\nconst PivotTablePro = (props: PivotTableProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { title, description, tooltip } = resolveI18nProps(props);\n const {\n resultsSubRows,\n measures,\n rowDimension,\n subRowDimension,\n columnDimension,\n displayNullAs,\n columnWidth,\n firstColumnWidth,\n hideMenu,\n expandedRowKeys,\n setExpandedRowKey,\n } = props;\n\n const columnOrder = Array.from(\n new Set((props.results.data ?? []).filter(Boolean).map((d) => d[columnDimension.name])),\n );\n\n const rowOrder = Array.from(\n new Set((props.results.data ?? []).filter(Boolean).map((d) => d[rowDimension.name])),\n );\n\n // Fill gaps for the column dimension\n const resultsColumnDimensionFillGaps = useFillGaps({\n results: props.results,\n dimension: columnDimension,\n });\n\n // Fill gaps for the row dimension\n const resultsRowColumnDimensionFillGaps = useFillGaps({\n results: resultsColumnDimensionFillGaps,\n dimension: rowDimension,\n });\n\n const results = useGetTableSortedResults({\n results: resultsRowColumnDimensionFillGaps,\n columnOrder,\n rowOrder,\n columnDimension,\n rowDimension,\n measures,\n });\n\n const cardContentRef = useRef<HTMLDivElement>(null);\n\n const pivotMeasures = getPivotMeasures({ measures, displayNullAs }, theme);\n const pivotRowDimension = getPivotDimension({ dimension: rowDimension }, theme);\n const pivotSubRowDimension = subRowDimension\n ? getPivotDimension({ dimension: subRowDimension }, theme)\n : undefined;\n const pivotColumnDimension = getPivotDimension({ dimension: columnDimension }, theme);\n const pivotColumnTotalsFor = getPivotColumnTotalsFor(measures);\n const pivotRowTotalsFor = getPivotRowTotalsFor(measures);\n\n const [loadingRows, setLoadingRows] = useState(new Set<string>());\n const [subRowsByRow, setSubRowsByRow] = useState(new Map<string, any[]>());\n\n const handleRowExpand = (rowKey: string) => {\n setLoadingRows((prev) => new Set(prev).add(rowKey));\n setExpandedRowKey(rowKey);\n };\n\n useEffect(() => {\n // No results or no expandedRowKeys, nothing to load\n if (!resultsSubRows || !resultsSubRows?.data || expandedRowKeys.length === 0) {\n return;\n }\n\n const subRowsByRowData = new Map<string, any[]>();\n expandedRowKeys.forEach((rowKey) => {\n const containsSubRow = resultsSubRows.data?.some(\n (row) => String(row[rowDimension.name]) === rowKey,\n );\n\n if (containsSubRow) {\n const subRows =\n resultsSubRows.data?.filter((row) => String(row[rowDimension.name]) === rowKey) ?? [];\n const subRowsSorted = subRowDimension\n ? sortArrayByProp(subRows, subRowDimension.name, 'asc')\n : subRows;\n\n subRowsByRowData.set(rowKey, subRowsSorted);\n }\n\n setLoadingRows((prev) => {\n const next = new Set(prev);\n next.delete(rowKey);\n return next;\n });\n });\n setSubRowsByRow(subRowsByRowData);\n }, [resultsSubRows, expandedRowKeys, rowDimension, subRowDimension]);\n\n return (\n <ChartCard\n ref={cardContentRef}\n title={title}\n description={description}\n tooltip={tooltip}\n data={props.results}\n dimensionsAndMeasures={[rowDimension, columnDimension, ...measures]}\n errorMessage={props.results?.error}\n hideMenu={hideMenu}\n >\n <PivotTable\n firstColumnWidth={firstColumnWidth}\n columnWidth={columnWidth}\n totalLabel={i18n.t('charts.pivotTable.total')}\n data={results}\n measures={pivotMeasures}\n rowDimension={pivotRowDimension}\n columnDimension={pivotColumnDimension}\n columnTotalsFor={pivotColumnTotalsFor}\n rowTotalsFor={pivotRowTotalsFor}\n expandableRows={Boolean(subRowDimension)}\n subRowsByRow={subRowsByRow}\n loadingRows={loadingRows}\n onRowExpand={handleRowExpand}\n subRowDimension={pivotSubRowDimension}\n />\n </ChartCard>\n );\n};\n\nexport default PivotTablePro;\n"],"names":["getPivotMeasures","props","theme","themeFormatter","getThemeFormatter","measure","_a","_b","row","getPivotDimension","value","getPivotColumnTotalsFor","measures","m","getPivotRowTotalsFor","sortArrayByProp","arr","prop","order","a","b","PivotTablePro","useTheme","i18nSetup","title","description","tooltip","resolveI18nProps","resultsSubRows","rowDimension","subRowDimension","columnDimension","displayNullAs","columnWidth","firstColumnWidth","hideMenu","expandedRowKeys","setExpandedRowKey","columnOrder","d","rowOrder","resultsColumnDimensionFillGaps","useFillGaps","resultsRowColumnDimensionFillGaps","results","useGetTableSortedResults","cardContentRef","useRef","pivotMeasures","pivotRowDimension","pivotSubRowDimension","pivotColumnDimension","pivotColumnTotalsFor","pivotRowTotalsFor","loadingRows","setLoadingRows","useState","subRowsByRow","setSubRowsByRow","handleRowExpand","rowKey","prev","useEffect","subRowsByRowData","subRows","subRowsSorted","next","jsx","ChartCard","PivotTable","i18n"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { i as g, j as i, S as v } from "./Color.type.emb-
|
|
1
|
+
import { i as g, j as i, S as v } from "./Color.type.emb-tRPNtuPs.js";
|
|
2
2
|
import { useTheme as f } from "@embeddable.com/react";
|
|
3
3
|
import { g as h, u as y, c as b } from "./dates.utils-BF32dTLi.js";
|
|
4
|
-
import {
|
|
5
|
-
import { E as C } from "./EditorCard-
|
|
4
|
+
import { c as P, a as M, r as S, i as j } from "./component.inputs.constants-DIZMtQw0.js";
|
|
5
|
+
import { E as C } from "./EditorCard-BEOWlY3S.js";
|
|
6
6
|
import { useMemo as O, useEffect as R } from "react";
|
|
7
7
|
/**
|
|
8
8
|
* @license @tabler/icons-react v3.36.1 - MIT
|
|
@@ -57,4 +57,4 @@ export {
|
|
|
57
57
|
D as g,
|
|
58
58
|
N as i
|
|
59
59
|
};
|
|
60
|
-
//# sourceMappingURL=index-
|
|
60
|
+
//# sourceMappingURL=index-BRywHn8j.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-BRywHn8j.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.1 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"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\": \"M14 18a4 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/date.utils';\nimport { TimeRange } from '@embeddable.com/core';\nimport { resolveI18nProps } from '../../component.utils';\nimport { EditorCard, EditorCardHeaderProps } 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 placeholder?: string;\n primaryDateRange?: TimeRange;\n comparisonPeriod?: string;\n onChange: (newComparisonPeriod?: string) => void;\n} & EditorCardHeaderProps;\n\nconst DateComparisonSelectFieldPro = (props: DateComparisonSelectFieldPro) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { description, placeholder, title, tooltip } = resolveI18nProps(props);\n const { comparisonPeriod, onChange } = 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} description={description} tooltip={tooltip}>\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 avoidCollisions={false}\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","tooltip","resolveI18nProps","comparisonPeriod","onChange","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,uCAAuC,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,GACzYC,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,GCHGO,IAA+B,CAACC,MAAwC;AAC5E,QAAMC,IAAeC,EAAA;AACrB,EAAAC,EAAUF,CAAK;AAEf,QAAM,EAAE,aAAAG,GAAa,aAAAC,GAAa,OAAAC,GAAO,SAAAC,EAAA,IAAYC,EAAiBR,CAAK,GACrE,EAAE,kBAAAS,GAAkB,UAAAC,EAAA,IAAaV,GAEjCW,IAA0BV,EAAM,SAAS,0BAEzCW,IAA4BC;AAAA,IAChC,MAAMtB,EAA4BkB,GAAkBE,CAAuB;AAAA,IAC3E,CAACF,GAAkBE,CAAuB;AAAA,EAAA;AAI5C,EAAAG,EAAU,MAAM;AACd,IAAKF,KACHF,EAAS,MAAS;AAAA,EAEtB,GAAG,CAACE,GAA2BF,CAAQ,CAAC;AAExC,QAAM,EAAE,kBAAAK,EAAA,IAAqBC,EAAA,GAGvBC,IAAmBC;AAAA,IACvBlB,EAAM;AAAA,IACNC,EAAM,SAAS;AAAA,EAAA;AAGjB,MAAI,CAACc;AACH,WAAO;AAGT,QAAMI,IAAUxB;AAAA,IACdgB;AAAA,IACAM;AAAA,EAAA;AAGF,SACEG,gBAAAA,EAAAA,IAACC,GAAA,EAAW,OAAAf,GAAc,aAAAF,GAA0B,SAAAG,GAClD,UAAAa,gBAAAA,EAAAA;AAAAA,IAACE;AAAA,IAAA;AAAA,MACC,WAAWjC;AAAA,MACX,WAAS;AAAA,MACT,aAAAgB;AAAA,MACA,OAAOO,IAA4BH,IAAmB;AAAA,MACtD,UAAAC;AAAA,MACA,SAAAS;AAAA,MACA,kBAAkBI,EAAK,EAAE,2BAA2B;AAAA,MACpD,iBAAiB;AAAA,IAAA;AAAA,EAAA,GAErB;AAEJ;;;;","x_google_ignoreList":[0]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { e as f, u as E, f as O, j as x, T as A, h as N } from "./Color.type.emb-
|
|
1
|
+
import { e as f, u as E, f as O, j as x, T as A, h as N } from "./Color.type.emb-tRPNtuPs.js";
|
|
2
2
|
import { useTheme as G } from "@embeddable.com/react";
|
|
3
|
-
import { a as U, r as V, i as q } from "./component.inputs.constants-
|
|
4
|
-
import { C as B } from "./ChartCard-
|
|
3
|
+
import { a as U, r as V, i as q } from "./component.inputs.constants-DIZMtQw0.js";
|
|
4
|
+
import { C as B } from "./ChartCard-BmBTN11g.js";
|
|
5
5
|
import { useState as F, useRef as J, useCallback as K, useEffect as d } from "react";
|
|
6
|
-
import { b as Q, c as W } from "./tables.utils-
|
|
6
|
+
import { b as Q, c as W } from "./tables.utils-CBn15nfE.js";
|
|
7
7
|
const X = f("--em-tablechart-cell-height", "2.5rem"), Y = f("--em-tablechart-cell-height", "2.5rem"), Z = f("--em-tablechart-pagination-height", "3rem");
|
|
8
8
|
let R;
|
|
9
9
|
const $ = (u) => {
|
|
@@ -111,4 +111,4 @@ export {
|
|
|
111
111
|
$ as T,
|
|
112
112
|
re as i
|
|
113
113
|
};
|
|
114
|
-
//# sourceMappingURL=index-
|
|
114
|
+
//# sourceMappingURL=index-BSXcd7SN.js.map
|