@embeddable.com/remarkable-pro 0.1.14 → 0.1.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/BarChartDefaultHorizontalPro.js +1 -1
- package/dist/BarChartDefaultPro.js +1 -1
- package/dist/BarChartGroupedHorizontalPro.js +1 -1
- package/dist/BarChartGroupedPro.js +1 -1
- package/dist/BarChartStackedHorizontalPro.js +1 -1
- package/dist/BarChartStackedPro.js +1 -1
- package/dist/ComparisonPeriodSelectFieldPro.js +1 -1
- package/dist/DateRangePickerCustomPro.js +1 -1
- package/dist/DateRangeSelectFieldPro.js +1 -1
- package/dist/{DimensionAndMeasureSingleSelectField-CuDSeRWL.js → DimensionAndMeasureSingleSelectField-zC2mD-wg.js} +2 -2
- package/dist/{DimensionAndMeasureSingleSelectField-CuDSeRWL.js.map → DimensionAndMeasureSingleSelectField-zC2mD-wg.js.map} +1 -1
- package/dist/DimensionSingleSelectFieldPro.js +1 -1
- package/dist/DonutChartPro.js +1 -1
- package/dist/DonutLabelChartPro.js +1 -1
- package/dist/{GranularitySelectField-DhmzFuG_.js → GranularitySelectField-DOrz96Nx.js} +2 -2
- package/dist/{GranularitySelectField-DhmzFuG_.js.map → GranularitySelectField-DOrz96Nx.js.map} +1 -1
- package/dist/GranularitySelectFieldPro.js +1 -1
- package/dist/HeatMapPro.js +1 -1
- package/dist/HorizontalDividerPro.js +1 -1
- package/dist/KpiChartNumberComparisonPro.js +1 -1
- package/dist/KpiChartNumberPro.js +1 -1
- package/dist/LineChartComparisonDefaultPro.js +1 -1
- package/dist/LineChartDefaultPro.js +1 -1
- package/dist/LineChartGroupedPro.js +1 -1
- package/dist/MeasureSingleSelectFieldPro.js +1 -1
- package/dist/MultiSelectFieldPro.js +1 -1
- package/dist/PieChartPro.js +1 -1
- package/dist/PivotTablePro.js +1 -1
- package/dist/SingleSelectFieldPro.js +1 -1
- package/dist/TableChartPaginated.js +1 -1
- package/dist/TableScrollable.js +1 -1
- package/dist/bars.utils-Cp3p2Uwb.js +157 -0
- package/dist/bars.utils-Cp3p2Uwb.js.map +1 -0
- package/dist/{charts.fillGaps.hooks-CZW4DsTE.js → charts.fillGaps.hooks-pjSNsjXn.js} +2 -2
- package/dist/{charts.fillGaps.hooks-CZW4DsTE.js.map → charts.fillGaps.hooks-pjSNsjXn.js.map} +1 -1
- package/dist/{charts.utils-DqZruys0.js → charts.utils-Bm2RzdsJ.js} +10 -5
- package/dist/charts.utils-Bm2RzdsJ.js.map +1 -0
- package/dist/{component.inputs.constants-DqFfoZ5R.js → component.inputs.constants-Bt7Cg1U3.js} +126 -120
- package/dist/component.inputs.constants-Bt7Cg1U3.js.map +1 -0
- package/dist/components/charts/bars/BarChartDefaultHorizontalPro/BarChartDefaultHorizontalPro.emb.d.ts +5 -1
- package/dist/components/charts/bars/BarChartDefaultHorizontalPro/BarChartDefaultHorizontalPro.emb.d.ts.map +1 -1
- package/dist/components/charts/bars/BarChartDefaultHorizontalPro/definition.d.ts +10 -2
- package/dist/components/charts/bars/BarChartDefaultHorizontalPro/definition.d.ts.map +1 -1
- package/dist/components/charts/bars/BarChartDefaultPro/BarChartDefaultPro.emb.d.ts +5 -1
- package/dist/components/charts/bars/BarChartDefaultPro/BarChartDefaultPro.emb.d.ts.map +1 -1
- package/dist/components/charts/bars/BarChartDefaultPro/definition.d.ts +10 -2
- package/dist/components/charts/bars/BarChartDefaultPro/definition.d.ts.map +1 -1
- package/dist/components/charts/bars/bars.utils.d.ts.map +1 -1
- package/dist/components/charts/bars/bars.utils.test.d.ts +2 -0
- package/dist/components/charts/bars/bars.utils.test.d.ts.map +1 -0
- package/dist/components/charts/charts.utils.d.ts +1 -0
- package/dist/components/charts/charts.utils.d.ts.map +1 -1
- package/dist/components/charts/charts.utils.test.d.ts +2 -0
- package/dist/components/charts/charts.utils.test.d.ts.map +1 -0
- package/dist/components/charts/kpis/kpis.utils.test.d.ts +2 -0
- package/dist/components/charts/kpis/kpis.utils.test.d.ts.map +1 -0
- package/dist/components/charts/lines/lines.utils.test.d.ts +2 -0
- package/dist/components/charts/lines/lines.utils.test.d.ts.map +1 -0
- package/dist/components/charts/pies/DonutChartPro/DonutChartPro.emb.d.ts +6 -1
- package/dist/components/charts/pies/DonutChartPro/DonutChartPro.emb.d.ts.map +1 -1
- package/dist/components/charts/pies/DonutChartPro/definition.d.ts +13 -3
- package/dist/components/charts/pies/DonutChartPro/definition.d.ts.map +1 -1
- package/dist/components/charts/pies/DonutLabelChartPro/DonutLabelChartPro.emb.d.ts +6 -1
- package/dist/components/charts/pies/DonutLabelChartPro/DonutLabelChartPro.emb.d.ts.map +1 -1
- package/dist/components/charts/pies/DonutLabelChartPro/definition.d.ts +13 -3
- package/dist/components/charts/pies/DonutLabelChartPro/definition.d.ts.map +1 -1
- package/dist/components/charts/pies/PieChartPro/PieChartPro.emb.d.ts +6 -1
- package/dist/components/charts/pies/PieChartPro/PieChartPro.emb.d.ts.map +1 -1
- package/dist/components/charts/pies/PieChartPro/definition.d.ts +13 -3
- package/dist/components/charts/pies/PieChartPro/definition.d.ts.map +1 -1
- package/dist/components/charts/pies/pies.types.d.ts +1 -0
- package/dist/components/charts/pies/pies.types.d.ts.map +1 -1
- package/dist/components/charts/pies/pies.utils.d.ts.map +1 -1
- package/dist/components/charts/pies/pies.utils.test.d.ts +2 -0
- package/dist/components/charts/pies/pies.utils.test.d.ts.map +1 -0
- package/dist/components/charts/shared/ChartCard/ChartCard.test.d.ts +2 -0
- package/dist/components/charts/shared/ChartCard/ChartCard.test.d.ts.map +1 -0
- package/dist/components/charts/shared/ChartGranularitySelectField/ChartGranularitySelectField.test.d.ts +2 -0
- package/dist/components/charts/shared/ChartGranularitySelectField/ChartGranularitySelectField.test.d.ts.map +1 -0
- package/dist/components/charts/tables/PivotTablePro/PivotPro.utils.test.d.ts +2 -0
- package/dist/components/charts/tables/PivotTablePro/PivotPro.utils.test.d.ts.map +1 -0
- package/dist/components/charts/tables/tables.utils.d.ts.map +1 -1
- package/dist/components/charts/tables/tables.utils.test.d.ts +2 -0
- package/dist/components/charts/tables/tables.utils.test.d.ts.map +1 -0
- package/dist/components/component.subinputs.constants.d.ts +6 -0
- package/dist/components/component.subinputs.constants.d.ts.map +1 -1
- package/dist/components/editors/ComparisonPeriodSelectFieldPro/ComparisonPeriodSelectFieldPro.utils.test.d.ts +2 -0
- package/dist/components/editors/ComparisonPeriodSelectFieldPro/ComparisonPeriodSelectFieldPro.utils.test.d.ts.map +1 -0
- package/dist/components/editors/dates/DateRangePickerPresetsPro/DateRangePickerPresetsPro.utils.test.d.ts +2 -0
- package/dist/components/editors/dates/DateRangePickerPresetsPro/DateRangePickerPresetsPro.utils.test.d.ts.map +1 -0
- package/dist/components/editors/dates/dates.utils.test.d.ts +2 -0
- package/dist/components/editors/dates/dates.utils.test.d.ts.map +1 -0
- package/dist/components/editors/shared/DimensionAndMeasureSingleSelectField/DimensionAndMeasureSingleSelectField.test.d.ts +2 -0
- package/dist/components/editors/shared/DimensionAndMeasureSingleSelectField/DimensionAndMeasureSingleSelectField.test.d.ts.map +1 -0
- package/dist/components/editors/shared/EditorCard/EditorCard.test.d.ts +2 -0
- package/dist/components/editors/shared/EditorCard/EditorCard.test.d.ts.map +1 -0
- package/dist/components/editors/shared/GranularitySelectField/GranularitySelectField.test.d.ts +2 -0
- package/dist/components/editors/shared/GranularitySelectField/GranularitySelectField.test.d.ts.map +1 -0
- package/dist/components/editors/shared/GranularitySelectField/GranularitySelectField.utils.test.d.ts +2 -0
- package/dist/components/editors/shared/GranularitySelectField/GranularitySelectField.utils.test.d.ts.map +1 -0
- package/dist/components/shared/EmptyContainerPro/index.test.d.ts +2 -0
- package/dist/components/shared/EmptyContainerPro/index.test.d.ts.map +1 -0
- package/dist/components/shared/HorizontalDividerPro/index.test.d.ts +2 -0
- package/dist/components/shared/HorizontalDividerPro/index.test.d.ts.map +1 -0
- package/dist/components/utils/timeRange.utils.test.d.ts +2 -0
- package/dist/components/utils/timeRange.utils.test.d.ts.map +1 -0
- package/dist/{definition-pGb2HvrT.js → definition-7YcKSzMc.js} +6 -6
- package/dist/{definition-pGb2HvrT.js.map → definition-7YcKSzMc.js.map} +1 -1
- package/dist/{definition-5X_7D7PB.js → definition-B0BZOtFb.js} +5 -5
- package/dist/{definition-5X_7D7PB.js.map → definition-B0BZOtFb.js.map} +1 -1
- package/dist/{definition-BcQzo4D5.js → definition-B1eFycgF.js} +56 -53
- package/dist/definition-B1eFycgF.js.map +1 -0
- package/dist/{definition-Bzfn9qRU.js → definition-B5IubDTh.js} +2 -2
- package/dist/{definition-Bzfn9qRU.js.map → definition-B5IubDTh.js.map} +1 -1
- package/dist/{definition-DK_Of-Gy.js → definition-B9-NkNs1.js} +36 -36
- package/dist/definition-B9-NkNs1.js.map +1 -0
- package/dist/{definition-Db_zvoxg.js → definition-BTxQOtrb.js} +4 -4
- package/dist/{definition-Db_zvoxg.js.map → definition-BTxQOtrb.js.map} +1 -1
- package/dist/{definition-Boah9FmY.js → definition-BVDxicxq.js} +6 -6
- package/dist/{definition-Boah9FmY.js.map → definition-BVDxicxq.js.map} +1 -1
- package/dist/{definition-CRo-ay8-.js → definition-BZfh0d5G.js} +4 -4
- package/dist/{definition-CRo-ay8-.js.map → definition-BZfh0d5G.js.map} +1 -1
- package/dist/{definition-DGu0W1N5.js → definition-BfPzjM5E.js} +3 -3
- package/dist/{definition-DGu0W1N5.js.map → definition-BfPzjM5E.js.map} +1 -1
- package/dist/{definition-D1ImuDYw.js → definition-BqpI59h1.js} +2 -2
- package/dist/{definition-D1ImuDYw.js.map → definition-BqpI59h1.js.map} +1 -1
- package/dist/{definition-KVzTbAIw.js → definition-BymWALVZ.js} +37 -39
- package/dist/definition-BymWALVZ.js.map +1 -0
- package/dist/{definition-B1JPVIaV.js → definition-C-qWM-Pj.js} +3 -3
- package/dist/{definition-B1JPVIaV.js.map → definition-C-qWM-Pj.js.map} +1 -1
- package/dist/{definition-DpxkZ7BE.js → definition-C1VV9G0e.js} +6 -6
- package/dist/{definition-DpxkZ7BE.js.map → definition-C1VV9G0e.js.map} +1 -1
- package/dist/{definition-BvNvRUNa.js → definition-CMz7w0QV.js} +4 -4
- package/dist/{definition-BvNvRUNa.js.map → definition-CMz7w0QV.js.map} +1 -1
- package/dist/{definition-DlXlQNWS.js → definition-CiHy_fws.js} +3 -3
- package/dist/{definition-DlXlQNWS.js.map → definition-CiHy_fws.js.map} +1 -1
- package/dist/{definition-DKxaARfb.js → definition-CwTis5em.js} +2 -2
- package/dist/{definition-DKxaARfb.js.map → definition-CwTis5em.js.map} +1 -1
- package/dist/{definition-MJqJAv-G.js → definition-DcFzlbIT.js} +4 -4
- package/dist/{definition-MJqJAv-G.js.map → definition-DcFzlbIT.js.map} +1 -1
- package/dist/{definition-DVZj79R-.js → definition-De-Rad1b.js} +6 -6
- package/dist/{definition-DVZj79R-.js.map → definition-De-Rad1b.js.map} +1 -1
- package/dist/{definition-C3bUC419.js → definition-DjSj_Mf9.js} +5 -5
- package/dist/{definition-C3bUC419.js.map → definition-DjSj_Mf9.js.map} +1 -1
- package/dist/{definition-BNiUf3pa.js → definition-DrM3lQgj.js} +4 -4
- package/dist/{definition-BNiUf3pa.js.map → definition-DrM3lQgj.js.map} +1 -1
- package/dist/{definition-MqJ_B4_d.js → definition-DuznYX_X.js} +38 -38
- package/dist/definition-DuznYX_X.js.map +1 -0
- package/dist/{definition-C0bSa4wt.js → definition-SzFQwepb.js} +3 -3
- package/dist/{definition-C0bSa4wt.js.map → definition-SzFQwepb.js.map} +1 -1
- package/dist/{definition-CPlHt0VT.js → definition-WczJhf4R.js} +3 -3
- package/dist/{definition-CPlHt0VT.js.map → definition-WczJhf4R.js.map} +1 -1
- package/dist/{definition-D7mkYIUq.js → definition-YCcNs37E.js} +4 -4
- package/dist/{definition-D7mkYIUq.js.map → definition-YCcNs37E.js.map} +1 -1
- package/dist/{definition-C7o_MYiT.js → definition-gkxKuLIZ.js} +5 -5
- package/dist/{definition-C7o_MYiT.js.map → definition-gkxKuLIZ.js.map} +1 -1
- package/dist/{definition-B8pymNp8.js → definition-zJlVKfyf.js} +58 -55
- package/dist/definition-zJlVKfyf.js.map +1 -0
- package/dist/editors/ColorEditor/index.test.d.ts +2 -0
- package/dist/editors/ColorEditor/index.test.d.ts.map +1 -0
- package/dist/embeddable-components.json +30 -30
- package/dist/embeddable-theme-0137e.js +1 -0
- package/dist/{granularity.utils-DFrZaG56.js → granularity.utils-B0Km_S2c.js} +2 -2
- package/dist/{granularity.utils-DFrZaG56.js.map → granularity.utils-B0Km_S2c.js.map} +1 -1
- package/dist/index.js +158 -157
- package/dist/pies.utils-eTSHQEF7.js +76 -0
- package/dist/pies.utils-eTSHQEF7.js.map +1 -0
- package/dist/{preview.data.constants-D0uQPYd1.js → preview.data.constants-D-2xm7Qk.js} +2 -2
- package/dist/{preview.data.constants-D0uQPYd1.js.map → preview.data.constants-D-2xm7Qk.js.map} +1 -1
- package/dist/{tables.utils-t7VvK_RS.js → tables.utils-BlL_7T9C.js} +5 -5
- package/dist/{tables.utils-t7VvK_RS.js.map → tables.utils-BlL_7T9C.js.map} +1 -1
- package/dist/theme/defaults/defaults.ChartCardMenu.constants.test.d.ts +2 -0
- package/dist/theme/defaults/defaults.ChartCardMenu.constants.test.d.ts.map +1 -0
- package/dist/theme/defaults/defaults.ComparisonPeriods.constants.test.d.ts +2 -0
- package/dist/theme/defaults/defaults.ComparisonPeriods.constants.test.d.ts.map +1 -0
- package/dist/theme/defaults/defaults.DateRanges.constants.test.d.ts +2 -0
- package/dist/theme/defaults/defaults.DateRanges.constants.test.d.ts.map +1 -0
- package/dist/theme/defaults/defaults.GranularityOptions.constants.test.d.ts +2 -0
- package/dist/theme/defaults/defaults.GranularityOptions.constants.test.d.ts.map +1 -0
- package/dist/theme/defaults/defaults.TableCellStyle.constants.test.d.ts +2 -0
- package/dist/theme/defaults/defaults.TableCellStyle.constants.test.d.ts.map +1 -0
- package/dist/theme/formatter/formatter.constants.d.ts.map +1 -1
- package/dist/theme/formatter/formatter.constants.test.d.ts +2 -0
- package/dist/theme/formatter/formatter.constants.test.d.ts.map +1 -0
- package/dist/theme/formatter/formatter.utils.test.d.ts +2 -0
- package/dist/theme/formatter/formatter.utils.test.d.ts.map +1 -0
- package/dist/theme/styles/styles.utils.test.d.ts +2 -0
- package/dist/theme/styles/styles.utils.test.d.ts.map +1 -0
- package/dist/theme/utils/export.utils.test.d.ts +2 -0
- package/dist/theme/utils/export.utils.test.d.ts.map +1 -0
- package/dist/utils/array.utils.test.d.ts +2 -0
- package/dist/utils/array.utils.test.d.ts.map +1 -0
- package/dist/utils/cache.utils.test.d.ts +2 -0
- package/dist/utils/cache.utils.test.d.ts.map +1 -0
- package/dist/utils/color.utils.test.d.ts +2 -0
- package/dist/utils/color.utils.test.d.ts.map +1 -0
- package/dist/utils/data.utils.test.d.ts +2 -0
- package/dist/utils/data.utils.test.d.ts.map +1 -0
- package/dist/utils/date.utils.test.d.ts +2 -0
- package/dist/utils/date.utils.test.d.ts.map +1 -0
- package/dist/utils/object.utils.test.d.ts +2 -0
- package/dist/utils/object.utils.test.d.ts.map +1 -0
- package/package.json +9 -2
- package/dist/bars.utils-KAfWV1-z.js +0 -154
- package/dist/bars.utils-KAfWV1-z.js.map +0 -1
- package/dist/charts.utils-DqZruys0.js.map +0 -1
- package/dist/component.inputs.constants-DqFfoZ5R.js.map +0 -1
- package/dist/definition-B8pymNp8.js.map +0 -1
- package/dist/definition-BcQzo4D5.js.map +0 -1
- package/dist/definition-DK_Of-Gy.js.map +0 -1
- package/dist/definition-KVzTbAIw.js.map +0 -1
- package/dist/definition-MqJ_B4_d.js.map +0 -1
- package/dist/pies.utils-C8bEmCaz.js +0 -77
- package/dist/pies.utils-C8bEmCaz.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { j as f, S as d } from "./Color.type.emb-BBdbJHvt.js";
|
|
2
2
|
import { useTheme as S } from "@embeddable.com/react";
|
|
3
3
|
import { useState as g, useEffect as p } from "react";
|
|
4
|
-
import { g as C } from "./preview.data.constants-
|
|
4
|
+
import { g as C } from "./preview.data.constants-D-2xm7Qk.js";
|
|
5
5
|
const v = ({
|
|
6
6
|
dimensionsAndMeasures: s,
|
|
7
7
|
searchValue: r,
|
|
@@ -43,4 +43,4 @@ export {
|
|
|
43
43
|
M as D,
|
|
44
44
|
v as g
|
|
45
45
|
};
|
|
46
|
-
//# sourceMappingURL=DimensionAndMeasureSingleSelectField-
|
|
46
|
+
//# sourceMappingURL=DimensionAndMeasureSingleSelectField-zC2mD-wg.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DimensionAndMeasureSingleSelectField-
|
|
1
|
+
{"version":3,"file":"DimensionAndMeasureSingleSelectField-zC2mD-wg.js","sources":["../src/components/editors/utils/dimensionsAndMeasures.utils.ts","../src/components/editors/shared/DimensionAndMeasureSingleSelectField/DimensionAndMeasureSingleSelectField.tsx"],"sourcesContent":["import { DimensionOrMeasure } from '@embeddable.com/core';\nimport { Theme } from '../../../theme/theme.types';\nimport { SelectListOptionProps } from '@embeddable.com/remarkable-ui';\nimport { getThemeFormatter } from '../../../theme/formatter/formatter.utils';\n\nexport const getDimensionAndMeasureOptions = ({\n dimensionsAndMeasures,\n searchValue,\n theme,\n}: {\n dimensionsAndMeasures: DimensionOrMeasure[];\n searchValue: string;\n theme: Theme;\n}): SelectListOptionProps[] => {\n const themeFormatter = getThemeFormatter(theme);\n\n return dimensionsAndMeasures\n .filter((dimensionOrMeasure) => {\n return themeFormatter\n .dimensionOrMeasureTitle(dimensionOrMeasure)\n .toLowerCase()\n .includes(searchValue.toLowerCase());\n })\n .map((dimensionOrMeasure) => {\n return {\n value: dimensionOrMeasure.name,\n label: themeFormatter.dimensionOrMeasureTitle(dimensionOrMeasure),\n };\n });\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { useEffect, useState } from 'react';\nimport { SingleSelectField } from '@embeddable.com/remarkable-ui';\nimport { getDimensionAndMeasureOptions } from '../../utils/dimensionsAndMeasures.utils';\nimport { Dimension, Measure } from '@embeddable.com/core';\n\nexport type DimensionAndMeasureSingleSelectFieldProps<T> = {\n selectedValue?: T;\n options: T[];\n placeholder?: string;\n clearable?: boolean;\n onChange: (value: T | undefined) => void;\n};\n\nexport const DimensionAndMeasureSingleSelectField = <T extends Dimension | Measure>(\n props: DimensionAndMeasureSingleSelectFieldProps<T>,\n) => {\n const theme = useTheme() as Theme;\n\n const [searchValue, setSearchValue] = useState<string>('');\n\n const { selectedValue, options, clearable, placeholder, onChange } = props;\n\n const handleChange = (newValue: string) => {\n const newSelection = options.find((option) => option.name === newValue);\n onChange(newSelection);\n };\n\n // Auto-select first dimensionOrMeasure when is not clearable and there is no selection\n useEffect(() => {\n const autoSelectActive = !clearable && !selectedValue;\n\n if (!autoSelectActive) return;\n\n const firstDimension = options?.[0];\n\n if (firstDimension) {\n onChange(firstDimension);\n }\n }, [clearable, selectedValue, options, onChange]);\n\n return (\n <SingleSelectField\n searchable\n clearable={clearable}\n placeholder={placeholder}\n value={selectedValue?.name}\n onChange={handleChange}\n onSearch={setSearchValue}\n options={getDimensionAndMeasureOptions({\n dimensionsAndMeasures: options,\n searchValue,\n theme,\n })}\n avoidCollisions={false}\n />\n );\n};\n"],"names":["getDimensionAndMeasureOptions","dimensionsAndMeasures","searchValue","theme","themeFormatter","getThemeFormatter","dimensionOrMeasure","DimensionAndMeasureSingleSelectField","props","useTheme","setSearchValue","useState","selectedValue","options","clearable","placeholder","onChange","handleChange","newValue","newSelection","option","useEffect","firstDimension","jsx","SingleSelectField"],"mappings":";;;;AAKO,MAAMA,IAAgC,CAAC;AAAA,EAC5C,uBAAAC;AAAA,EACA,aAAAC;AAAA,EACA,OAAAC;AACF,MAI+B;AAC7B,QAAMC,IAAiBC,EAAkBF,CAAK;AAE9C,SAAOF,EACJ,OAAO,CAACK,MACAF,EACJ,wBAAwBE,CAAkB,EAC1C,cACA,SAASJ,EAAY,aAAa,CACtC,EACA,IAAI,CAACI,OACG;AAAA,IACL,OAAOA,EAAmB;AAAA,IAC1B,OAAOF,EAAe,wBAAwBE,CAAkB;AAAA,EAAA,EAEnE;AACL,GCdaC,IAAuC,CAClDC,MACG;AACH,QAAML,IAAQM,EAAA,GAER,CAACP,GAAaQ,CAAc,IAAIC,EAAiB,EAAE,GAEnD,EAAE,eAAAC,GAAe,SAAAC,GAAS,WAAAC,GAAW,aAAAC,GAAa,UAAAC,MAAaR,GAE/DS,IAAe,CAACC,MAAqB;AACzC,UAAMC,IAAeN,EAAQ,KAAK,CAACO,MAAWA,EAAO,SAASF,CAAQ;AACtE,IAAAF,EAASG,CAAY;AAAA,EACvB;AAGA,SAAAE,EAAU,MAAM;AAGd,QAAI,EAFqB,CAACP,KAAa,CAACF,GAEjB;AAEvB,UAAMU,IAAiBT,KAAA,gBAAAA,EAAU;AAEjC,IAAIS,KACFN,EAASM,CAAc;AAAA,EAE3B,GAAG,CAACR,GAAWF,GAAeC,GAASG,CAAQ,CAAC,GAG9CO,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,YAAU;AAAA,MACV,WAAAV;AAAA,MACA,aAAAC;AAAA,MACA,OAAOH,KAAA,gBAAAA,EAAe;AAAA,MACtB,UAAUK;AAAA,MACV,UAAUP;AAAA,MACV,SAASV,EAA8B;AAAA,QACrC,uBAAuBa;AAAA,QACvB,aAAAX;AAAA,QACA,OAAAC;AAAA,MAAA,CACD;AAAA,MACD,iBAAiB;AAAA,IAAA;AAAA,EAAA;AAGvB;"}
|
package/dist/DonutChartPro.js
CHANGED
|
@@ -2,7 +2,7 @@ import { j as g, S as E } from "./Color.type.emb-BBdbJHvt.js";
|
|
|
2
2
|
import { useMemo as F, useEffect as d } from "react";
|
|
3
3
|
import { useTheme as C } from "@embeddable.com/react";
|
|
4
4
|
import { b as G, a as N } from "./component.utils-DNw0iugA.js";
|
|
5
|
-
import { d as w } from "./component.inputs.constants-
|
|
5
|
+
import { d as w } from "./component.inputs.constants-Bt7Cg1U3.js";
|
|
6
6
|
const D = 1, v = 100, x = () => w.map((e) => ({
|
|
7
7
|
...e,
|
|
8
8
|
label: G(e.label)
|
|
@@ -105,4 +105,4 @@ export {
|
|
|
105
105
|
p as b,
|
|
106
106
|
A as g
|
|
107
107
|
};
|
|
108
|
-
//# sourceMappingURL=GranularitySelectField-
|
|
108
|
+
//# sourceMappingURL=GranularitySelectField-DOrz96Nx.js.map
|
package/dist/{GranularitySelectField-DhmzFuG_.js.map → GranularitySelectField-DOrz96Nx.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GranularitySelectField-DhmzFuG_.js","sources":["../src/components/editors/shared/GranularitySelectField/GranularitySelectField.utils.ts","../src/components/editors/shared/GranularitySelectField/GranularitySelectField.tsx"],"sourcesContent":["import { SelectListOptionProps } from '@embeddable.com/remarkable-ui';\nimport { Granularity, TimeRange } from '@embeddable.com/core';\nimport {\n defaultGranularitySelectFieldOptions,\n TGranularityValue,\n} from '../../../../theme/defaults/defaults.GranularityOptions.constants';\nimport { resolveI18nString } from '../../../component.utils';\n\nconst DEFAULT_MIN_BUCKETS = 1;\nconst DEFAULT_MAX_BUCKETS = 100;\n\nexport const getGranularitySelectFieldOptions = (): SelectListOptionProps[] => {\n return defaultGranularitySelectFieldOptions.map((opt) => ({\n ...opt,\n label: resolveI18nString(opt.label),\n }));\n};\n\n// Convert possibly-string timestamps to Date safely.\nconst toDate = (d: unknown): Date | null => {\n if (d instanceof Date) return Number.isNaN(d.getTime()) ? null : d;\n if (typeof d === 'string' || typeof d === 'number') {\n const parsed = new Date(d);\n return Number.isNaN(parsed.getTime()) ? null : parsed;\n }\n return null;\n};\n\n// Inclusive end -> Exclusive end helper (only used for sub-day diffs)\nconst toExclusiveEnd = (endInclusive: Date): Date => new Date(endInclusive.getTime() + 1);\n\nconst bucketCountByUnit = (start: Date, endExclusive: Date, unitMs: number): number => {\n return (endExclusive.getTime() - start.getTime()) / unitMs;\n};\n\n// Bucket counting (treat end as INCLUSIVE)\nfunction bucketCount(start: Date, endInclusive: Date, granularity: Granularity): number {\n if (start > endInclusive) return 0;\n\n switch (granularity) {\n case 'second':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 1000);\n\n case 'minute':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 60 * 1000);\n\n case 'hour':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 60 * 60 * 1000);\n\n case 'day':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 24 * 60 * 60 * 1000);\n\n case 'week':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 7 * 24 * 60 * 60 * 1000);\n\n case 'month':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 28 * 24 * 60 * 60 * 1000); // shortest month\n\n case 'quarter':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 90 * 24 * 60 * 60 * 1000); // shortest quarter\n\n case 'year':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 365 * 24 * 60 * 60 * 1000); // shortest year\n }\n}\n\nconst isGranularityValid = (\n start: Date,\n endInclusive: Date,\n granularity: TGranularityValue,\n): boolean => {\n const buckets = bucketCount(start, endInclusive, granularity);\n return buckets >= DEFAULT_MIN_BUCKETS && buckets <= DEFAULT_MAX_BUCKETS;\n};\n\nexport const getAvailableGranularityOptionsFromTimeRange = (\n timeRange: TimeRange,\n allOptions: SelectListOptionProps[],\n): SelectListOptionProps[] => {\n if (!timeRange) return allOptions;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const from = toDate((timeRange as any)?.from);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const to = toDate((timeRange as any)?.to);\n\n // If we can’t parse range, don’t hide anything (fail open)\n if (!from || !to) return allOptions;\n\n const validSet = new Set<TGranularityValue>();\n\n for (const opt of allOptions) {\n const g = opt.value as TGranularityValue;\n if (isGranularityValid(from, to, g)) {\n validSet.add(g);\n }\n }\n\n // preserve original UI ordering\n return allOptions.filter((opt) => validSet.has(opt.value as TGranularityValue));\n};\n\nexport const getSafeSelection = (\n availableOptions: SelectListOptionProps[],\n granularity?: Granularity,\n): Granularity | undefined => {\n if (!granularity) {\n return undefined;\n }\n\n if (availableOptions.some((opt) => opt.value === granularity)) {\n return granularity;\n }\n\n const optionToSelect = availableOptions.length > 2 ? 1 : 0;\n\n return availableOptions[optionToSelect]?.value as Granularity;\n};\n","import { useEffect, useMemo } from 'react';\nimport { useTheme } from '@embeddable.com/react';\nimport { SingleSelectField, SingleSelectFieldProps } from '@embeddable.com/remarkable-ui';\nimport { Granularity, TimeRange } from '@embeddable.com/core';\nimport { Theme } from '../../../../theme/theme.types';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport {\n getAvailableGranularityOptionsFromTimeRange,\n getGranularitySelectFieldOptions,\n getSafeSelection,\n} from './GranularitySelectField.utils';\nimport { TGranularityValue } from '../../../../theme/defaults/defaults.GranularityOptions.constants';\nimport { ChartCardHeaderProps } from '../../../charts/shared/ChartCard/ChartCard';\n\nexport type GranularitySelectFieldProps = {\n onChange: (newGranularity: Granularity) => void;\n primaryTimeRange?: TimeRange;\n granularity?: TGranularityValue;\n granularities?: TGranularityValue[];\n} & ChartCardHeaderProps &\n Pick<SingleSelectFieldProps, 'variant' | 'side' | 'align' | 'clearable' | 'placeholder'>;\n\nexport const GranularitySelectField = (props: GranularitySelectFieldProps) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const {\n granularity,\n granularities,\n clearable,\n placeholder,\n primaryTimeRange,\n variant,\n side,\n align,\n onChange,\n } = props;\n\n const granularitySelectFieldOptions = getGranularitySelectFieldOptions();\n\n const availableOptions = useMemo(() => {\n return getAvailableGranularityOptionsFromTimeRange(\n primaryTimeRange,\n granularitySelectFieldOptions.filter((opt) =>\n granularities?.includes(opt.value as TGranularityValue),\n ),\n );\n }, [primaryTimeRange, granularities]);\n\n useEffect(() => {\n if (granularity) {\n // Selected granularity is not available\n // Select 1st available option when number of options is =< 2\n // Select 2nd option to avoid when number of options > 2\n if (!availableOptions.some((opt) => opt.value === granularity)) {\n const newGranularity = getSafeSelection(availableOptions, granularity);\n if (newGranularity) {\n onChange(newGranularity as Granularity);\n }\n }\n }\n }, [availableOptions, granularity, onChange]);\n\n const safeValue = getSafeSelection(availableOptions, granularity);\n\n return (\n <SingleSelectField\n variant={variant}\n clearable={clearable}\n placeholder={placeholder}\n value={safeValue}\n options={availableOptions}\n onChange={(newValue) => onChange(newValue as Granularity)}\n avoidCollisions={false}\n side={side}\n align={align}\n />\n );\n};\n"],"names":["DEFAULT_MIN_BUCKETS","DEFAULT_MAX_BUCKETS","getGranularitySelectFieldOptions","defaultGranularitySelectFieldOptions","opt","resolveI18nString","toDate","d","parsed","toExclusiveEnd","endInclusive","bucketCountByUnit","start","endExclusive","unitMs","bucketCount","granularity","isGranularityValid","buckets","getAvailableGranularityOptionsFromTimeRange","timeRange","allOptions","from","to","validSet","g","getSafeSelection","availableOptions","optionToSelect","_a","GranularitySelectField","props","theme","useTheme","i18nSetup","granularities","clearable","placeholder","primaryTimeRange","variant","side","align","onChange","granularitySelectFieldOptions","useMemo","useEffect","newGranularity","safeValue","jsx","SingleSelectField","newValue"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GranularitySelectField-DOrz96Nx.js","sources":["../src/components/editors/shared/GranularitySelectField/GranularitySelectField.utils.ts","../src/components/editors/shared/GranularitySelectField/GranularitySelectField.tsx"],"sourcesContent":["import { SelectListOptionProps } from '@embeddable.com/remarkable-ui';\nimport { Granularity, TimeRange } from '@embeddable.com/core';\nimport {\n defaultGranularitySelectFieldOptions,\n TGranularityValue,\n} from '../../../../theme/defaults/defaults.GranularityOptions.constants';\nimport { resolveI18nString } from '../../../component.utils';\n\nconst DEFAULT_MIN_BUCKETS = 1;\nconst DEFAULT_MAX_BUCKETS = 100;\n\nexport const getGranularitySelectFieldOptions = (): SelectListOptionProps[] => {\n return defaultGranularitySelectFieldOptions.map((opt) => ({\n ...opt,\n label: resolveI18nString(opt.label),\n }));\n};\n\n// Convert possibly-string timestamps to Date safely.\nconst toDate = (d: unknown): Date | null => {\n if (d instanceof Date) return Number.isNaN(d.getTime()) ? null : d;\n if (typeof d === 'string' || typeof d === 'number') {\n const parsed = new Date(d);\n return Number.isNaN(parsed.getTime()) ? null : parsed;\n }\n return null;\n};\n\n// Inclusive end -> Exclusive end helper (only used for sub-day diffs)\nconst toExclusiveEnd = (endInclusive: Date): Date => new Date(endInclusive.getTime() + 1);\n\nconst bucketCountByUnit = (start: Date, endExclusive: Date, unitMs: number): number => {\n return (endExclusive.getTime() - start.getTime()) / unitMs;\n};\n\n// Bucket counting (treat end as INCLUSIVE)\nfunction bucketCount(start: Date, endInclusive: Date, granularity: Granularity): number {\n if (start > endInclusive) return 0;\n\n switch (granularity) {\n case 'second':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 1000);\n\n case 'minute':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 60 * 1000);\n\n case 'hour':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 60 * 60 * 1000);\n\n case 'day':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 24 * 60 * 60 * 1000);\n\n case 'week':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 7 * 24 * 60 * 60 * 1000);\n\n case 'month':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 28 * 24 * 60 * 60 * 1000); // shortest month\n\n case 'quarter':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 90 * 24 * 60 * 60 * 1000); // shortest quarter\n\n case 'year':\n return bucketCountByUnit(start, toExclusiveEnd(endInclusive), 365 * 24 * 60 * 60 * 1000); // shortest year\n }\n}\n\nconst isGranularityValid = (\n start: Date,\n endInclusive: Date,\n granularity: TGranularityValue,\n): boolean => {\n const buckets = bucketCount(start, endInclusive, granularity);\n return buckets >= DEFAULT_MIN_BUCKETS && buckets <= DEFAULT_MAX_BUCKETS;\n};\n\nexport const getAvailableGranularityOptionsFromTimeRange = (\n timeRange: TimeRange,\n allOptions: SelectListOptionProps[],\n): SelectListOptionProps[] => {\n if (!timeRange) return allOptions;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const from = toDate((timeRange as any)?.from);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const to = toDate((timeRange as any)?.to);\n\n // If we can’t parse range, don’t hide anything (fail open)\n if (!from || !to) return allOptions;\n\n const validSet = new Set<TGranularityValue>();\n\n for (const opt of allOptions) {\n const g = opt.value as TGranularityValue;\n if (isGranularityValid(from, to, g)) {\n validSet.add(g);\n }\n }\n\n // preserve original UI ordering\n return allOptions.filter((opt) => validSet.has(opt.value as TGranularityValue));\n};\n\nexport const getSafeSelection = (\n availableOptions: SelectListOptionProps[],\n granularity?: Granularity,\n): Granularity | undefined => {\n if (!granularity) {\n return undefined;\n }\n\n if (availableOptions.some((opt) => opt.value === granularity)) {\n return granularity;\n }\n\n const optionToSelect = availableOptions.length > 2 ? 1 : 0;\n\n return availableOptions[optionToSelect]?.value as Granularity;\n};\n","import { useEffect, useMemo } from 'react';\nimport { useTheme } from '@embeddable.com/react';\nimport { SingleSelectField, SingleSelectFieldProps } from '@embeddable.com/remarkable-ui';\nimport { Granularity, TimeRange } from '@embeddable.com/core';\nimport { Theme } from '../../../../theme/theme.types';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport {\n getAvailableGranularityOptionsFromTimeRange,\n getGranularitySelectFieldOptions,\n getSafeSelection,\n} from './GranularitySelectField.utils';\nimport { TGranularityValue } from '../../../../theme/defaults/defaults.GranularityOptions.constants';\nimport { ChartCardHeaderProps } from '../../../charts/shared/ChartCard/ChartCard';\n\nexport type GranularitySelectFieldProps = {\n onChange: (newGranularity: Granularity) => void;\n primaryTimeRange?: TimeRange;\n granularity?: TGranularityValue;\n granularities?: TGranularityValue[];\n} & ChartCardHeaderProps &\n Pick<SingleSelectFieldProps, 'variant' | 'side' | 'align' | 'clearable' | 'placeholder'>;\n\nexport const GranularitySelectField = (props: GranularitySelectFieldProps) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const {\n granularity,\n granularities,\n clearable,\n placeholder,\n primaryTimeRange,\n variant,\n side,\n align,\n onChange,\n } = props;\n\n const granularitySelectFieldOptions = getGranularitySelectFieldOptions();\n\n const availableOptions = useMemo(() => {\n return getAvailableGranularityOptionsFromTimeRange(\n primaryTimeRange,\n granularitySelectFieldOptions.filter((opt) =>\n granularities?.includes(opt.value as TGranularityValue),\n ),\n );\n }, [primaryTimeRange, granularities]);\n\n useEffect(() => {\n if (granularity) {\n // Selected granularity is not available\n // Select 1st available option when number of options is =< 2\n // Select 2nd option to avoid when number of options > 2\n if (!availableOptions.some((opt) => opt.value === granularity)) {\n const newGranularity = getSafeSelection(availableOptions, granularity);\n if (newGranularity) {\n onChange(newGranularity as Granularity);\n }\n }\n }\n }, [availableOptions, granularity, onChange]);\n\n const safeValue = getSafeSelection(availableOptions, granularity);\n\n return (\n <SingleSelectField\n variant={variant}\n clearable={clearable}\n placeholder={placeholder}\n value={safeValue}\n options={availableOptions}\n onChange={(newValue) => onChange(newValue as Granularity)}\n avoidCollisions={false}\n side={side}\n align={align}\n />\n );\n};\n"],"names":["DEFAULT_MIN_BUCKETS","DEFAULT_MAX_BUCKETS","getGranularitySelectFieldOptions","defaultGranularitySelectFieldOptions","opt","resolveI18nString","toDate","d","parsed","toExclusiveEnd","endInclusive","bucketCountByUnit","start","endExclusive","unitMs","bucketCount","granularity","isGranularityValid","buckets","getAvailableGranularityOptionsFromTimeRange","timeRange","allOptions","from","to","validSet","g","getSafeSelection","availableOptions","optionToSelect","_a","GranularitySelectField","props","theme","useTheme","i18nSetup","granularities","clearable","placeholder","primaryTimeRange","variant","side","align","onChange","granularitySelectFieldOptions","useMemo","useEffect","newGranularity","safeValue","jsx","SingleSelectField","newValue"],"mappings":"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"}
|
package/dist/HeatMapPro.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { definePreview as s, defineComponent as a } from "@embeddable.com/react";
|
|
2
2
|
import { j as i, p as l, b as d } from "./Color.type.emb-BBdbJHvt.js";
|
|
3
|
-
import { i as o } from "./component.inputs.constants-
|
|
3
|
+
import { i as o } from "./component.inputs.constants-Bt7Cg1U3.js";
|
|
4
4
|
const c = "_horizontalDividerContainer_y6kms_1", m = {
|
|
5
5
|
horizontalDividerContainer: c
|
|
6
6
|
}, t = (e) => {
|
package/dist/PieChartPro.js
CHANGED
package/dist/PivotTablePro.js
CHANGED
package/dist/TableScrollable.js
CHANGED
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { g as D, a as w } from "./Color.type.emb-BBdbJHvt.js";
|
|
2
|
+
import { r as M, i as O, h as p } from "./charts.utils-Bm2RzdsJ.js";
|
|
3
|
+
import { g as C } from "./preview.data.constants-D-2xm7Qk.js";
|
|
4
|
+
import { a as f } from "./styles.utils-BfpH_m_W.js";
|
|
5
|
+
const E = (l, d) => {
|
|
6
|
+
var g;
|
|
7
|
+
const m = C(d), { data: n = [], dimension: c, groupDimension: a, measure: i } = l, s = [...new Set(n.map((r) => r[c.name]).filter((r) => r != null))].sort(), t = `${a.name}${a.nativeType === w && ((g = a.inputs) != null && g.granularity) ? `.${a.inputs.granularity}` : ""}`, e = [...new Set(n.map((r) => r[t]))].filter((r) => r != null), o = D(), u = e.map((r, b) => {
|
|
8
|
+
const $ = f({
|
|
9
|
+
dimensionOrMeasure: a,
|
|
10
|
+
theme: d,
|
|
11
|
+
color: "background",
|
|
12
|
+
value: `${a.name}.${r}`,
|
|
13
|
+
index: b,
|
|
14
|
+
chartColors: o
|
|
15
|
+
}), P = f({
|
|
16
|
+
dimensionOrMeasure: a,
|
|
17
|
+
theme: d,
|
|
18
|
+
color: "border",
|
|
19
|
+
value: `${a.name}.${r}`,
|
|
20
|
+
index: b,
|
|
21
|
+
chartColors: o
|
|
22
|
+
});
|
|
23
|
+
return {
|
|
24
|
+
label: m.data(a, r),
|
|
25
|
+
rawLabel: r,
|
|
26
|
+
backgroundColor: $,
|
|
27
|
+
borderColor: P,
|
|
28
|
+
data: s.map((v) => {
|
|
29
|
+
const h = n.find(
|
|
30
|
+
(k) => k[t] === r && k[c.name] === v
|
|
31
|
+
);
|
|
32
|
+
return h ? Number(h[i.name]) : 0;
|
|
33
|
+
})
|
|
34
|
+
};
|
|
35
|
+
});
|
|
36
|
+
return {
|
|
37
|
+
labels: s,
|
|
38
|
+
datasets: u
|
|
39
|
+
};
|
|
40
|
+
}, I = (l, d = M) => {
|
|
41
|
+
if (!l.data)
|
|
42
|
+
return {
|
|
43
|
+
labels: [],
|
|
44
|
+
datasets: [{ data: [] }]
|
|
45
|
+
};
|
|
46
|
+
const m = C(d), n = O(l.data, l.dimension, l.measures, l.maxItems), c = D();
|
|
47
|
+
return {
|
|
48
|
+
labels: n.map((a) => a[l.dimension.name]),
|
|
49
|
+
datasets: l.measures.map((a, i) => {
|
|
50
|
+
const s = f({
|
|
51
|
+
dimensionOrMeasure: a,
|
|
52
|
+
theme: d,
|
|
53
|
+
color: "background",
|
|
54
|
+
value: a.name,
|
|
55
|
+
index: i,
|
|
56
|
+
chartColors: c
|
|
57
|
+
}), t = f({
|
|
58
|
+
dimensionOrMeasure: a,
|
|
59
|
+
theme: d,
|
|
60
|
+
color: "border",
|
|
61
|
+
value: a.name,
|
|
62
|
+
index: i,
|
|
63
|
+
chartColors: c
|
|
64
|
+
});
|
|
65
|
+
return {
|
|
66
|
+
label: m.dimensionOrMeasureTitle(a),
|
|
67
|
+
data: n.map((e) => e[a.name] ?? 0),
|
|
68
|
+
backgroundColor: s,
|
|
69
|
+
borderColor: t
|
|
70
|
+
};
|
|
71
|
+
})
|
|
72
|
+
};
|
|
73
|
+
}, T = (l, d) => {
|
|
74
|
+
const { datasets: m } = l.chart.data, n = l.dataIndex, c = m.reduce((a, i) => {
|
|
75
|
+
const s = i.data[n];
|
|
76
|
+
return a + (s || 0);
|
|
77
|
+
}, 0);
|
|
78
|
+
return d(c);
|
|
79
|
+
}, S = (l, d) => {
|
|
80
|
+
const { onBarClicked: m, measures: n, dimension: c, horizontal: a, data: i } = l, s = C(d);
|
|
81
|
+
return {
|
|
82
|
+
plugins: {
|
|
83
|
+
legend: { position: d.charts.legendPosition ?? "bottom" },
|
|
84
|
+
datalabels: {
|
|
85
|
+
labels: {
|
|
86
|
+
total: {
|
|
87
|
+
formatter: (t, e) => T(
|
|
88
|
+
e,
|
|
89
|
+
(o) => s.data(n[0], o)
|
|
90
|
+
)
|
|
91
|
+
},
|
|
92
|
+
value: {
|
|
93
|
+
formatter: (t, e) => {
|
|
94
|
+
var u;
|
|
95
|
+
const o = n[e.datasetIndex % n.length];
|
|
96
|
+
return (u = o.inputs) != null && u.showValueAsPercentage ? p(Number(t), e.dataset.data) : s.data(o, t);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
tooltip: {
|
|
102
|
+
callbacks: {
|
|
103
|
+
title: (t) => {
|
|
104
|
+
var o;
|
|
105
|
+
const e = (o = t[0]) == null ? void 0 : o.label;
|
|
106
|
+
return s.data(c, e);
|
|
107
|
+
},
|
|
108
|
+
label: (t) => {
|
|
109
|
+
var b;
|
|
110
|
+
const e = n[t.datasetIndex % n.length], o = t.raw, u = s.data(c, t.dataset.label) || "", g = s.data(e, o);
|
|
111
|
+
let r = "";
|
|
112
|
+
return (b = e.inputs) != null && b.showValueAsPercentage && (r = `(${p(o, t.dataset.data)})`), `${u}: ${g} ${r}`;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
scales: {
|
|
118
|
+
x: {
|
|
119
|
+
ticks: {
|
|
120
|
+
callback: (t) => {
|
|
121
|
+
if (a)
|
|
122
|
+
return s.data(n[0], t);
|
|
123
|
+
if (!i || !i.labels) return;
|
|
124
|
+
const e = i.labels[Number(t)];
|
|
125
|
+
return s.data(c, e);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
y: {
|
|
130
|
+
ticks: {
|
|
131
|
+
callback: (t) => {
|
|
132
|
+
if (!a)
|
|
133
|
+
return s.data(n[0], t);
|
|
134
|
+
if (!i || !i.labels) return;
|
|
135
|
+
const e = i.labels[Number(t)];
|
|
136
|
+
return s.data(c, e);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
onClick: (t, e, o) => {
|
|
142
|
+
var b;
|
|
143
|
+
if (!m) return;
|
|
144
|
+
const u = e[0], g = u ? o.data.labels[u.index] : null, r = u ? (b = o.data.datasets[u.datasetIndex]) == null ? void 0 : b.rawLabel : null;
|
|
145
|
+
m({
|
|
146
|
+
axisDimensionValue: g,
|
|
147
|
+
groupingDimensionValue: r
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
};
|
|
152
|
+
export {
|
|
153
|
+
S as a,
|
|
154
|
+
E as b,
|
|
155
|
+
I as g
|
|
156
|
+
};
|
|
157
|
+
//# sourceMappingURL=bars.utils-Cp3p2Uwb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bars.utils-Cp3p2Uwb.js","sources":["../src/components/charts/bars/bars.utils.ts"],"sourcesContent":["import { CUBE_DIMENSION_TYPE_TIME, DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { Theme } from '../../../theme/theme.types';\nimport { remarkableTheme } from '../../../theme/theme.constants';\nimport { ChartData, ChartOptions } from 'chart.js';\nimport { getThemeFormatter } from '../../../theme/formatter/formatter.utils';\nimport { getDatalabelPercentage, groupTailAsOther } from '../charts.utils';\nimport { getDimensionMeasureColor } from '../../../theme/styles/styles.utils';\nimport { getChartColors } from '@embeddable.com/remarkable-ui';\nimport { Context } from 'chartjs-plugin-datalabels';\n\nexport const getBarStackedChartProData = (\n props: {\n data: DataResponse['data'];\n dimension: Dimension;\n groupDimension: Dimension;\n measure: Measure;\n },\n theme: Theme,\n): ChartData<'bar'> => {\n const themeFormatter = getThemeFormatter(theme);\n const { data = [], dimension, groupDimension, measure } = props;\n\n const axis = [...new Set(data.map((d) => d[dimension.name]).filter((d) => d != null))].sort();\n const groupDimensionName = `${groupDimension.name}${groupDimension.nativeType === CUBE_DIMENSION_TYPE_TIME && groupDimension.inputs?.granularity ? `.${groupDimension.inputs.granularity}` : ''}`;\n const groupBy = [...new Set(data.map((d) => d[groupDimensionName]))].filter((d) => d != null);\n\n const chartColors = getChartColors();\n const datasets = groupBy.map((groupByItem, index) => {\n const backgroundColor = getDimensionMeasureColor({\n dimensionOrMeasure: groupDimension,\n theme,\n color: 'background',\n value: `${groupDimension.name}.${groupByItem}`,\n index,\n chartColors,\n });\n\n const borderColor = getDimensionMeasureColor({\n dimensionOrMeasure: groupDimension,\n theme,\n color: 'border',\n value: `${groupDimension.name}.${groupByItem}`,\n index,\n chartColors,\n });\n\n return {\n label: themeFormatter.data(groupDimension, groupByItem),\n rawLabel: groupByItem,\n backgroundColor,\n borderColor,\n data: axis.map((axisItem) => {\n const record = data.find(\n (d) => d[groupDimensionName] === groupByItem && d[dimension.name] === axisItem,\n );\n return record ? Number(record[measure.name]) : 0;\n }),\n };\n });\n\n return {\n labels: axis,\n datasets,\n };\n};\n\nexport const getBarChartProData = (\n props: {\n data: DataResponse['data'];\n dimension: Dimension;\n measures: Measure[];\n maxItems?: number;\n },\n theme: Theme = remarkableTheme,\n): ChartData<'bar'> => {\n if (!props.data) {\n return {\n labels: [],\n datasets: [{ data: [] }],\n };\n }\n\n const themeFormatter = getThemeFormatter(theme);\n const groupedData = groupTailAsOther(props.data, props.dimension, props.measures, props.maxItems);\n const chartColors = getChartColors();\n\n return {\n labels: groupedData.map((item) => {\n return item[props.dimension.name];\n }),\n datasets: props.measures.map((measure, index) => {\n const backgroundColor = getDimensionMeasureColor({\n dimensionOrMeasure: measure,\n theme,\n color: 'background',\n value: measure.name,\n index,\n chartColors,\n });\n\n const borderColor = getDimensionMeasureColor({\n dimensionOrMeasure: measure,\n theme,\n color: 'border',\n value: measure.name,\n index,\n chartColors,\n });\n\n return {\n label: themeFormatter.dimensionOrMeasureTitle(measure),\n data: groupedData.map((item) => item[measure.name] ?? 0),\n backgroundColor,\n borderColor,\n };\n }),\n };\n};\n\nconst getBarChartProDatalabelTotalFormatter = (\n context: Context,\n formatter: (value: number) => string,\n) => {\n const { datasets } = context.chart.data;\n const i = context.dataIndex;\n\n const total = datasets.reduce((sum, ds) => {\n const val = ds.data[i] as number;\n return sum + (val || 0);\n }, 0);\n\n return formatter(total);\n};\n\nexport const getBarChartProOptions = (\n options: {\n onBarClicked?: (args: {\n axisDimensionValue: string | null;\n groupingDimensionValue: string | null;\n }) => void;\n measures: Measure[];\n dimension: Dimension;\n horizontal: boolean;\n data: ChartData<'bar'>;\n },\n theme: Theme,\n): Partial<ChartOptions<'bar'>> => {\n const { onBarClicked, measures, dimension, horizontal, data } = options;\n\n const themeFormatter = getThemeFormatter(theme);\n return {\n plugins: {\n legend: { position: theme.charts.legendPosition ?? 'bottom' },\n datalabels: {\n labels: {\n total: {\n formatter: (_value: string | number, context: Context) =>\n getBarChartProDatalabelTotalFormatter(context, (value: number) =>\n themeFormatter.data(measures[0]!, value),\n ),\n },\n value: {\n formatter: (value: string | number, context) => {\n const measure = measures[context.datasetIndex % measures.length]!;\n\n if (measure.inputs?.showValueAsPercentage) {\n return getDatalabelPercentage(Number(value), context.dataset.data);\n }\n return themeFormatter.data(measure, value);\n },\n },\n },\n },\n tooltip: {\n callbacks: {\n title: (context) => {\n const label = context[0]?.label;\n return themeFormatter.data(dimension, label);\n },\n\n label: (context) => {\n const measure = measures[context.datasetIndex % measures.length]!;\n const raw = context.raw as number;\n\n const dimensionLabel = themeFormatter.data(dimension, context.dataset.label) || '';\n const measureValue = themeFormatter.data(measure, raw);\n\n let percentage = '';\n if (measure.inputs?.showValueAsPercentage) {\n percentage = `(${getDatalabelPercentage(raw, context.dataset.data)})`;\n }\n return `${dimensionLabel}: ${measureValue} ${percentage}`;\n },\n },\n },\n },\n scales: {\n x: {\n ticks: {\n callback: (value) => {\n if (horizontal) {\n return themeFormatter.data(measures[0]!, value);\n }\n\n if (!data || !data.labels) return undefined;\n\n const label = data.labels[Number(value)] as string;\n\n return themeFormatter.data(dimension, label);\n },\n },\n },\n y: {\n ticks: {\n callback: (value) => {\n if (!horizontal) {\n return themeFormatter.data(measures[0]!, value);\n }\n if (!data || !data.labels) return undefined;\n const label = data.labels[Number(value)] as string;\n return themeFormatter.data(dimension, label);\n },\n },\n },\n },\n onClick: (_event, elements, chart) => {\n if (!onBarClicked) return;\n\n const element = elements[0];\n const axisDimensionValue = (element ? chart.data.labels![element.index] : null) as\n | string\n | null;\n const groupingDimensionValue = (\n element\n ? (chart.data.datasets[element.datasetIndex] as { rawLabel?: string | null })?.rawLabel\n : null\n ) as string | null;\n\n onBarClicked({\n axisDimensionValue,\n groupingDimensionValue,\n });\n },\n };\n};\n"],"names":["getBarStackedChartProData","props","theme","themeFormatter","getThemeFormatter","data","dimension","groupDimension","measure","axis","d","groupDimensionName","CUBE_DIMENSION_TYPE_TIME","_a","groupBy","chartColors","getChartColors","datasets","groupByItem","index","backgroundColor","getDimensionMeasureColor","borderColor","axisItem","record","getBarChartProData","remarkableTheme","groupedData","groupTailAsOther","item","getBarChartProDatalabelTotalFormatter","context","formatter","i","total","sum","ds","val","getBarChartProOptions","options","onBarClicked","measures","horizontal","_value","value","getDatalabelPercentage","label","raw","dimensionLabel","measureValue","percentage","_event","elements","chart","element","axisDimensionValue","groupingDimensionValue"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { i as B, q as E } from "./quarterOfYear-Dy3NbBBT.js";
|
|
|
3
3
|
import { g as M } from "./_commonjsHelpers-C6fGbg64.js";
|
|
4
4
|
import { useTheme as W } from "@embeddable.com/react";
|
|
5
5
|
import { useMemo as Z } from "react";
|
|
6
|
-
import { d as b } from "./component.inputs.constants-
|
|
6
|
+
import { d as b } from "./component.inputs.constants-Bt7Cg1U3.js";
|
|
7
7
|
var S = { exports: {} }, C = S.exports, G;
|
|
8
8
|
function L() {
|
|
9
9
|
return G || (G = 1, (function(O, h) {
|
|
@@ -67,4 +67,4 @@ function P(O) {
|
|
|
67
67
|
export {
|
|
68
68
|
P as u
|
|
69
69
|
};
|
|
70
|
-
//# sourceMappingURL=charts.fillGaps.hooks-
|
|
70
|
+
//# sourceMappingURL=charts.fillGaps.hooks-pjSNsjXn.js.map
|
package/dist/{charts.fillGaps.hooks-CZW4DsTE.js.map → charts.fillGaps.hooks-pjSNsjXn.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"charts.fillGaps.hooks-
|
|
1
|
+
{"version":3,"file":"charts.fillGaps.hooks-pjSNsjXn.js","sources":["../node_modules/dayjs/plugin/isSameOrBefore.js","../src/components/charts/charts.fillGaps.hooks.ts"],"sourcesContent":["!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isSameOrBefore=i()}(this,(function(){\"use strict\";return function(e,i){i.prototype.isSameOrBefore=function(e,i){return this.isSame(e,i)||this.isBefore(e,i)}}}));","import { DataResponse, Dimension, TimeRange } from '@embeddable.com/core';\nimport dayjs, { QUnitType } from 'dayjs';\nimport isoWeek from 'dayjs/plugin/isoWeek.js';\nimport utc from 'dayjs/plugin/utc.js';\nimport isSameOrBefore from 'dayjs/plugin/isSameOrBefore.js';\nimport { Theme } from '../../theme/theme.types';\nimport { useTheme } from '@embeddable.com/react';\nimport { useMemo } from 'react';\nimport quarterOfYear from 'dayjs/plugin/quarterOfYear.js';\nimport { defaultGranularitySelectFieldOptions } from '../../theme/defaults/defaults.GranularityOptions.constants';\n\ndayjs.extend(utc);\ndayjs.extend(isoWeek);\ndayjs.extend(isSameOrBefore);\ndayjs.extend(quarterOfYear);\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype DataRecord = { [key: string]: any };\n\ntype UseFillGapsProps = {\n results: DataResponse | undefined;\n dimension: Dimension;\n orderDirection?: 'asc' | 'desc';\n externalDateBounds?: TimeRange;\n};\n\nexport function useFillGaps(props: UseFillGapsProps): DataResponse {\n const theme = useTheme() as Theme;\n const { results, dimension, orderDirection = 'asc', externalDateBounds } = props;\n\n const processed = useMemo(() => {\n const granularity = dimension.inputs?.granularity;\n const dimensionName = dimension.name;\n const dateBoundsTmp: TimeRange = dimension.inputs?.dateBounds;\n\n const knownGranularities = defaultGranularitySelectFieldOptions.map(\n (opt) => opt.value as string,\n );\n\n if (\n !granularity ||\n !knownGranularities.includes(granularity) ||\n !dimensionName ||\n !results ||\n results.isLoading ||\n results.data?.length === 0\n ) {\n return results;\n }\n\n const dateBounds = dateBoundsTmp?.relativeTimeString\n ? theme.defaults.dateRangesOptions\n .find((option) => option.value === dateBoundsTmp?.relativeTimeString)\n ?.getRange()\n : dateBoundsTmp;\n\n if (dimension.nativeType !== 'time') return results;\n\n const sortedResults = [...(results?.data ?? [])].sort((a, b) => {\n const aVal = a[dimensionName];\n const bVal = b[dimensionName];\n if (aVal == null) return 1;\n if (bVal == null) return -1;\n return dayjs.utc(aVal).diff(dayjs.utc(bVal));\n });\n\n // Determine the full date range even if data is empty\n const from = dayjs.utc(\n externalDateBounds?.from ?? dateBounds?.from ?? sortedResults[0]?.[dimensionName],\n );\n\n const to = dayjs.utc(\n externalDateBounds?.to ??\n dateBounds?.to ??\n sortedResults[sortedResults.length - 1]?.[dimensionName] ??\n [...sortedResults].reverse().find((item) => item?.[dimensionName] != null)?.[dimensionName],\n );\n\n // If we *still* don’t have valid date bounds, bail out safely\n if (!from.isValid() || !to.isValid()) {\n return { ...results, data: [] };\n }\n\n const recordsByDate = new Map<string, DataRecord[]>();\n for (const record of sortedResults) {\n const value = record[dimensionName];\n if (value == null) continue;\n const key = dayjs.utc(value).toISOString().split('Z')[0]!;\n const arr = recordsByDate.get(key) ?? [];\n arr.push(record);\n recordsByDate.set(key, arr);\n }\n\n const filled: DataRecord[] = [];\n let current = from.startOf((granularity === 'week' ? 'isoWeek' : granularity) as QUnitType);\n\n while (current.isSameOrBefore(to)) {\n const key = current.toISOString().split('Z')[0]!;\n const records = recordsByDate.get(key);\n\n if (records && records.length > 0) {\n filled.push(...records);\n } else {\n filled.push({ [dimensionName]: key });\n }\n\n current = current.add(1, granularity as QUnitType);\n }\n\n if (orderDirection === 'desc') {\n filled.reverse();\n }\n\n return {\n ...results,\n data: filled,\n };\n }, [results, dimension, orderDirection, theme]);\n\n return processed as DataResponse;\n}\n"],"names":["e","i","module","this","dayjs","utc","isoWeek","isSameOrBefore","quarterOfYear","useFillGaps","props","theme","useTheme","results","dimension","orderDirection","externalDateBounds","useMemo","granularity","_a","dimensionName","dateBoundsTmp","_b","knownGranularities","defaultGranularitySelectFieldOptions","opt","_c","dateBounds","_d","option","sortedResults","a","b","aVal","bVal","from","_e","to","_f","_g","item","recordsByDate","record","value","key","arr","filled","current","records"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -3,7 +3,7 @@ import { a as Ki, i as za } from "./component.utils-DNw0iugA.js";
|
|
|
3
3
|
import { d as Re, u as ji } from "./utc-ZJfc90oL.js";
|
|
4
4
|
import { i as qi, q as Ji } from "./quarterOfYear-Dy3NbBBT.js";
|
|
5
5
|
import { g as Ws } from "./_commonjsHelpers-C6fGbg64.js";
|
|
6
|
-
import { g as zs } from "./preview.data.constants-
|
|
6
|
+
import { g as zs } from "./preview.data.constants-D-2xm7Qk.js";
|
|
7
7
|
var Hs = {
|
|
8
8
|
"--em-core-border-radius--000": "0px",
|
|
9
9
|
"--em-core-border-radius--050": "2px",
|
|
@@ -827,6 +827,7 @@ const $s = {
|
|
|
827
827
|
// e.g. 'Germany'
|
|
828
828
|
],
|
|
829
829
|
{
|
|
830
|
+
defaultValue: s,
|
|
830
831
|
value: s,
|
|
831
832
|
type: r.nativeType,
|
|
832
833
|
name: t
|
|
@@ -17770,6 +17771,9 @@ const Vd = [
|
|
|
17770
17771
|
0
|
|
17771
17772
|
);
|
|
17772
17773
|
return [...n, i];
|
|
17774
|
+
}, rx = (e, r) => {
|
|
17775
|
+
const t = r.reduce((a, n) => a + Number.parseFloat(n), 0);
|
|
17776
|
+
return t === 0 ? "0%" : `${Number.parseFloat((e / t * 100).toFixed(2))}%`;
|
|
17773
17777
|
};
|
|
17774
17778
|
export {
|
|
17775
17779
|
go as a,
|
|
@@ -17779,9 +17783,10 @@ export {
|
|
|
17779
17783
|
Wd as e,
|
|
17780
17784
|
Hd as f,
|
|
17781
17785
|
zd as g,
|
|
17782
|
-
|
|
17783
|
-
|
|
17784
|
-
|
|
17786
|
+
rx as h,
|
|
17787
|
+
tx as i,
|
|
17788
|
+
ao as j,
|
|
17789
|
+
no as k,
|
|
17785
17790
|
ex as r
|
|
17786
17791
|
};
|
|
17787
|
-
//# sourceMappingURL=charts.utils-
|
|
17792
|
+
//# sourceMappingURL=charts.utils-Bm2RzdsJ.js.map
|