@embeddable.com/remarkable-pro 0.3.3 → 0.3.5
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/AreaChartPro.js +1 -1
- 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/BarLineChartPro.js +1 -1
- package/dist/BubbleChartPro.js +1 -1
- package/dist/{ChartCard-HpSv5cY6.js → ChartCard-Zy5lPApV.js} +36 -36
- package/dist/{ChartCard-HpSv5cY6.js.map → ChartCard-Zy5lPApV.js.map} +1 -1
- package/dist/{Color.type.emb-DV4JdSJ1.js → Color.type.emb-DE4-dQUK.js} +2 -2
- package/dist/{Color.type.emb-DV4JdSJ1.js.map → Color.type.emb-DE4-dQUK.js.map} +1 -1
- package/dist/ColorEditor.js +3 -3
- package/dist/ComparisonPeriodSelectFieldPro.js +1 -1
- package/dist/DateRangePickerCustomPro.js +1 -1
- package/dist/DateRangeSelectFieldPro.js +1 -1
- package/dist/{DimensionAndMeasureSingleSelectField-Cjvt8w1Q.js → DimensionAndMeasureSingleSelectField-C4qGcB0l.js} +13 -13
- package/dist/{DimensionAndMeasureSingleSelectField-Cjvt8w1Q.js.map → DimensionAndMeasureSingleSelectField-C4qGcB0l.js.map} +1 -1
- package/dist/DimensionMeasureMultiSelectFieldPro.js +1 -1
- package/dist/DimensionSingleSelectFieldPro.js +1 -1
- package/dist/DonutChartPro.js +1 -1
- package/dist/DonutLabelChartPro.js +1 -1
- package/dist/{EditorCard-G99fWjyz.js → EditorCard-DivoetAt.js} +10 -10
- package/dist/{EditorCard-G99fWjyz.js.map → EditorCard-DivoetAt.js.map} +1 -1
- package/dist/FilterBuilderPro.js +1 -1
- package/dist/{GranularitySelectField-DjBne_Oc.js → GranularitySelectField-CTdKK_wT.js} +5 -5
- package/dist/{GranularitySelectField-DjBne_Oc.js.map → GranularitySelectField-CTdKK_wT.js.map} +1 -1
- package/dist/GranularitySelectFieldPro.js +1 -1
- package/dist/HeatMapPro.js +1 -1
- package/dist/HorizontalDividerPro.js +1 -1
- package/dist/{IconAlertCircle-KfXTNipA.js → IconAlertCircle-cNY-BCjc.js} +2 -2
- package/dist/{IconAlertCircle-KfXTNipA.js.map → IconAlertCircle-cNY-BCjc.js.map} +1 -1
- package/dist/{IconCalendarFilled-D5PZLEXY.js → IconCalendarFilled-BO9AbeNW.js} +2 -2
- package/dist/{IconCalendarFilled-D5PZLEXY.js.map → IconCalendarFilled-BO9AbeNW.js.map} +1 -1
- package/dist/KpiChartNumberComparisonPro.js +1 -1
- package/dist/KpiChartNumberPro.js +1 -1
- package/dist/LineChartComparisonDefaultPro.js +1 -1
- package/dist/LineChartComparisonWithKpiTabsPro.js +1 -1
- package/dist/LineChartDefaultPro.js +1 -1
- package/dist/LineChartGroupedPro.js +1 -1
- package/dist/LineChartWithKpiTabsPro.js +1 -1
- package/dist/{Markdown.type.emb-Dk3zx_Z_.js → Markdown.type.emb-DdfstJa9.js} +2 -2
- package/dist/{Markdown.type.emb-Dk3zx_Z_.js.map → Markdown.type.emb-DdfstJa9.js.map} +1 -1
- package/dist/MarkdownEditor.js +3 -3
- package/dist/MarkdownPro.js +1 -1
- package/dist/MeasureMultiSelectFieldPro.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/ScatterChartPro.js +1 -1
- package/dist/SingleSelectFieldPro.js +1 -1
- package/dist/TableChartPaginated.js +1 -1
- package/dist/TableScrollable.js +1 -1
- package/dist/TextFieldPro.js +1 -1
- package/dist/{af-ZdqBoxvz.js → af-BnPGuyoZ.js} +3 -3
- package/dist/{af-ZdqBoxvz.js.map → af-BnPGuyoZ.js.map} +1 -1
- package/dist/{am-CXwRMatH.js → am-CTht91gI.js} +3 -3
- package/dist/{am-CXwRMatH.js.map → am-CTht91gI.js.map} +1 -1
- package/dist/{ar-BJFE7Sef.js → ar-D5oXffSK.js} +3 -3
- package/dist/{ar-BJFE7Sef.js.map → ar-D5oXffSK.js.map} +1 -1
- package/dist/{az-Dt4sn4aC.js → az-BuBcuMxD.js} +3 -3
- package/dist/{az-Dt4sn4aC.js.map → az-BuBcuMxD.js.map} +1 -1
- package/dist/{bars.loadData.utils-3UelaqzK.js → bars.loadData.utils--qcznJ8U.js} +4 -4
- package/dist/{bars.loadData.utils-3UelaqzK.js.map → bars.loadData.utils--qcznJ8U.js.map} +1 -1
- package/dist/bars.utils-EERAVU5z.js +171 -0
- package/dist/bars.utils-EERAVU5z.js.map +1 -0
- package/dist/{be-DGrUB3zO.js → be-6TDMuRI-.js} +3 -3
- package/dist/{be-DGrUB3zO.js.map → be-6TDMuRI-.js.map} +1 -1
- package/dist/{bg-COQN-gIK.js → bg-D7EFOpXU.js} +3 -3
- package/dist/{bg-COQN-gIK.js.map → bg-D7EFOpXU.js.map} +1 -1
- package/dist/{bi-BO2nWiL3.js → bi-DMAheplM.js} +3 -3
- package/dist/{bi-BO2nWiL3.js.map → bi-DMAheplM.js.map} +1 -1
- package/dist/{bm-CR4eF7bj.js → bm-BiviiOQo.js} +3 -3
- package/dist/{bm-CR4eF7bj.js.map → bm-BiviiOQo.js.map} +1 -1
- package/dist/{bn-C_fBN8Xp.js → bn-C7hG6XMF.js} +3 -3
- package/dist/{bn-C_fBN8Xp.js.map → bn-C7hG6XMF.js.map} +1 -1
- package/dist/{bo-BK9OEqED.js → bo-DrDTPraW.js} +3 -3
- package/dist/{bo-BK9OEqED.js.map → bo-DrDTPraW.js.map} +1 -1
- package/dist/{br-DQKSzpVY.js → br-Bah-lsa8.js} +3 -3
- package/dist/{br-DQKSzpVY.js.map → br-Bah-lsa8.js.map} +1 -1
- package/dist/{bs-Du7exlVK.js → bs-zyGkjpbD.js} +3 -3
- package/dist/{bs-Du7exlVK.js.map → bs-zyGkjpbD.js.map} +1 -1
- package/dist/{ca-B1GdPrYy.js → ca-DCjvA_6e.js} +3 -3
- package/dist/{ca-B1GdPrYy.js.map → ca-DCjvA_6e.js.map} +1 -1
- package/dist/{charts.fillGaps.hooks-CvS5tfFP.js → charts.fillGaps.hooks-BemPBhvC.js} +6 -6
- package/dist/{charts.fillGaps.hooks-CvS5tfFP.js.map → charts.fillGaps.hooks-BemPBhvC.js.map} +1 -1
- package/dist/charts.utils-DtGWPIVa.js +79 -0
- package/dist/charts.utils-DtGWPIVa.js.map +1 -0
- package/dist/{component.inputs.constants-DYl-U975.js → component.inputs.constants-DoBT8ykS.js} +16 -16
- package/dist/{component.inputs.constants-DYl-U975.js.map → component.inputs.constants-DoBT8ykS.js.map} +1 -1
- package/dist/components/charts/bars/BarChartDefaultHorizontalPro/definition.d.ts +1 -1
- package/dist/components/charts/bars/BarChartDefaultHorizontalPro/index.d.ts +1 -1
- package/dist/components/charts/bars/BarChartDefaultHorizontalPro/index.d.ts.map +1 -1
- package/dist/components/charts/bars/BarChartDefaultPro/definition.d.ts +1 -1
- package/dist/components/charts/bars/BarChartDefaultPro/index.d.ts +1 -1
- package/dist/components/charts/bars/BarChartDefaultPro/index.d.ts.map +1 -1
- package/dist/components/charts/bars/BarChartGroupedHorizontalPro/definition.d.ts +1 -1
- package/dist/components/charts/bars/BarChartGroupedHorizontalPro/index.d.ts +1 -1
- package/dist/components/charts/bars/BarChartGroupedHorizontalPro/index.d.ts.map +1 -1
- package/dist/components/charts/bars/BarChartGroupedPro/definition.d.ts +1 -1
- package/dist/components/charts/bars/BarChartGroupedPro/index.d.ts +1 -1
- package/dist/components/charts/bars/BarChartGroupedPro/index.d.ts.map +1 -1
- package/dist/components/charts/bars/BarChartStackedHorizontalPro/definition.d.ts +1 -1
- package/dist/components/charts/bars/BarChartStackedHorizontalPro/index.d.ts +1 -1
- package/dist/components/charts/bars/BarChartStackedHorizontalPro/index.d.ts.map +1 -1
- package/dist/components/charts/bars/BarChartStackedPro/definition.d.ts +1 -1
- package/dist/components/charts/bars/BarChartStackedPro/index.d.ts +1 -1
- package/dist/components/charts/bars/BarChartStackedPro/index.d.ts.map +1 -1
- package/dist/components/charts/bars/bars.utils.d.ts.map +1 -1
- package/dist/components/charts/charts.utils.d.ts +1 -1
- package/dist/components/charts/charts.utils.d.ts.map +1 -1
- package/dist/components/charts/combo/BarLineChartPro/BarLineChartPro.utils.d.ts.map +1 -1
- package/dist/components/charts/combo/BarLineChartPro/definition.d.ts +1 -1
- package/dist/components/charts/combo/BarLineChartPro/index.d.ts +1 -1
- package/dist/components/charts/combo/BarLineChartPro/index.d.ts.map +1 -1
- package/dist/components/charts/kpis/KpiChartNumberComparisonPro/definition.d.ts +1 -1
- package/dist/components/charts/kpis/KpiChartNumberComparisonPro/index.d.ts +1 -1
- package/dist/components/charts/kpis/KpiChartNumberComparisonPro/index.d.ts.map +1 -1
- package/dist/components/charts/kpis/KpiChartNumberPro/definition.d.ts +1 -1
- package/dist/components/charts/kpis/KpiChartNumberPro/index.d.ts +1 -1
- package/dist/components/charts/kpis/KpiChartNumberPro/index.d.ts.map +1 -1
- package/dist/components/charts/lines/AreaChartPro/definition.d.ts +1 -1
- package/dist/components/charts/lines/AreaChartPro/index.d.ts +1 -1
- package/dist/components/charts/lines/AreaChartPro/index.d.ts.map +1 -1
- package/dist/components/charts/lines/LineChartComparisonDefaultPro/LineChartComparisonDefaultPro.emb.d.ts +4 -0
- package/dist/components/charts/lines/LineChartComparisonDefaultPro/LineChartComparisonDefaultPro.emb.d.ts.map +1 -1
- package/dist/components/charts/lines/LineChartComparisonDefaultPro/LineChartComparisonDefaultPro.utils.d.ts.map +1 -1
- package/dist/components/charts/lines/LineChartComparisonDefaultPro/definition.d.ts +10 -1
- package/dist/components/charts/lines/LineChartComparisonDefaultPro/definition.d.ts.map +1 -1
- package/dist/components/charts/lines/LineChartComparisonDefaultPro/index.d.ts +1 -1
- package/dist/components/charts/lines/LineChartComparisonDefaultPro/index.d.ts.map +1 -1
- package/dist/components/charts/lines/LineChartComparisonWithKpiTabsPro/LineChartComparisonWithKpiTabsPro.emb.d.ts +4 -0
- package/dist/components/charts/lines/LineChartComparisonWithKpiTabsPro/LineChartComparisonWithKpiTabsPro.emb.d.ts.map +1 -1
- package/dist/components/charts/lines/LineChartComparisonWithKpiTabsPro/definition.d.ts +25 -1
- package/dist/components/charts/lines/LineChartComparisonWithKpiTabsPro/definition.d.ts.map +1 -1
- package/dist/components/charts/lines/LineChartComparisonWithKpiTabsPro/index.d.ts +1 -1
- package/dist/components/charts/lines/LineChartComparisonWithKpiTabsPro/index.d.ts.map +1 -1
- package/dist/components/charts/lines/LineChartDefaultPro/definition.d.ts +1 -1
- package/dist/components/charts/lines/LineChartDefaultPro/index.d.ts +1 -1
- package/dist/components/charts/lines/LineChartDefaultPro/index.d.ts.map +1 -1
- package/dist/components/charts/lines/LineChartGroupedPro/definition.d.ts +1 -1
- package/dist/components/charts/lines/LineChartGroupedPro/index.d.ts +1 -1
- package/dist/components/charts/lines/LineChartGroupedPro/index.d.ts.map +1 -1
- package/dist/components/charts/lines/LineChartWithKpiTabsPro/definition.d.ts +1 -1
- package/dist/components/charts/lines/LineChartWithKpiTabsPro/index.d.ts +1 -1
- package/dist/components/charts/lines/LineChartWithKpiTabsPro/index.d.ts.map +1 -1
- package/dist/components/charts/lines/lines.types.d.ts +1 -0
- package/dist/components/charts/lines/lines.types.d.ts.map +1 -1
- package/dist/components/charts/pies/DonutChartPro/definition.d.ts +1 -1
- package/dist/components/charts/pies/DonutChartPro/index.d.ts +1 -1
- package/dist/components/charts/pies/DonutChartPro/index.d.ts.map +1 -1
- package/dist/components/charts/pies/DonutLabelChartPro/definition.d.ts +1 -1
- package/dist/components/charts/pies/DonutLabelChartPro/index.d.ts +1 -1
- package/dist/components/charts/pies/DonutLabelChartPro/index.d.ts.map +1 -1
- package/dist/components/charts/pies/PieChartPro/definition.d.ts +1 -1
- package/dist/components/charts/pies/PieChartPro/index.d.ts +1 -1
- package/dist/components/charts/pies/PieChartPro/index.d.ts.map +1 -1
- package/dist/components/charts/pies/pies.utils.d.ts.map +1 -1
- package/dist/components/charts/scatter/BubbleChartPro/definition.d.ts +1 -1
- package/dist/components/charts/scatter/BubbleChartPro/index.d.ts +1 -1
- package/dist/components/charts/scatter/BubbleChartPro/index.d.ts.map +1 -1
- package/dist/components/charts/scatter/ScatterChartPro/definition.d.ts +1 -1
- package/dist/components/charts/scatter/ScatterChartPro/index.d.ts +1 -1
- package/dist/components/charts/scatter/ScatterChartPro/index.d.ts.map +1 -1
- package/dist/components/charts/shared/ChartCard/ChartCardLoading/ChartCardLoading.d.ts +1 -1
- package/dist/components/charts/shared/ChartCard/ChartCardLoading/ChartCardLoading.d.ts.map +1 -1
- package/dist/components/charts/shared/ChartCard/ChartCardMenuPro/ChartCardMenuPro.d.ts +1 -1
- package/dist/components/charts/shared/ChartCard/ChartCardMenuPro/ChartCardMenuPro.d.ts.map +1 -1
- package/dist/components/charts/shared/ChartGranularitySelectField/ChartGranularitySelectField.d.ts +1 -1
- package/dist/components/charts/shared/ChartGranularitySelectField/ChartGranularitySelectField.d.ts.map +1 -1
- package/dist/components/charts/tables/HeatMapPro/HeatMapPro.emb.d.ts +21 -0
- package/dist/components/charts/tables/HeatMapPro/HeatMapPro.emb.d.ts.map +1 -1
- package/dist/components/charts/tables/HeatMapPro/HeatMapPro.types.d.ts +22 -0
- package/dist/components/charts/tables/HeatMapPro/HeatMapPro.types.d.ts.map +1 -0
- package/dist/components/charts/tables/HeatMapPro/definition.d.ts +69 -1
- package/dist/components/charts/tables/HeatMapPro/definition.d.ts.map +1 -1
- package/dist/components/charts/tables/HeatMapPro/index.d.ts +3 -1
- package/dist/components/charts/tables/HeatMapPro/index.d.ts.map +1 -1
- package/dist/components/charts/tables/PivotTablePro/definition.d.ts +1 -1
- package/dist/components/charts/tables/PivotTablePro/index.d.ts +1 -1
- package/dist/components/charts/tables/PivotTablePro/index.d.ts.map +1 -1
- package/dist/components/charts/tables/TableChartPaginated/definition.d.ts +1 -1
- package/dist/components/charts/tables/TableChartPaginated/index.d.ts +1 -1
- package/dist/components/charts/tables/TableChartPaginated/index.d.ts.map +1 -1
- package/dist/components/charts/tables/TableScrollable/definition.d.ts +1 -1
- package/dist/components/charts/tables/TableScrollable/index.d.ts +1 -1
- package/dist/components/charts/tables/TableScrollable/index.d.ts.map +1 -1
- package/dist/components/editors/ComparisonPeriodSelectFieldPro/definition.d.ts +1 -1
- package/dist/components/editors/ComparisonPeriodSelectFieldPro/index.d.ts +1 -1
- package/dist/components/editors/ComparisonPeriodSelectFieldPro/index.d.ts.map +1 -1
- package/dist/components/editors/DimensionOrMeasureMultiSelectFieldPro/definition.d.ts +1 -1
- package/dist/components/editors/DimensionOrMeasureMultiSelectFieldPro/index.d.ts +1 -1
- package/dist/components/editors/DimensionOrMeasureMultiSelectFieldPro/index.d.ts.map +1 -1
- package/dist/components/editors/DimensionSingleSelectFieldPro/definition.d.ts +1 -1
- package/dist/components/editors/DimensionSingleSelectFieldPro/index.d.ts +1 -1
- package/dist/components/editors/DimensionSingleSelectFieldPro/index.d.ts.map +1 -1
- package/dist/components/editors/FilterBuilderPro/FilterBuilderPro.emb.d.ts +7 -0
- package/dist/components/editors/FilterBuilderPro/FilterBuilderPro.emb.d.ts.map +1 -1
- package/dist/components/editors/FilterBuilderPro/FilterBuilderPro.utils.d.ts +6 -0
- package/dist/components/editors/FilterBuilderPro/FilterBuilderPro.utils.d.ts.map +1 -1
- package/dist/components/editors/FilterBuilderPro/components/FilterBuilderItem.d.ts +1 -1
- package/dist/components/editors/FilterBuilderPro/components/FilterBuilderItem.d.ts.map +1 -1
- package/dist/components/editors/FilterBuilderPro/components/FilterBuilderItemNumberValueField.d.ts +2 -1
- package/dist/components/editors/FilterBuilderPro/components/FilterBuilderItemNumberValueField.d.ts.map +1 -1
- package/dist/components/editors/FilterBuilderPro/components/FilterBuilderItemOperatorValueFields.d.ts +1 -1
- package/dist/components/editors/FilterBuilderPro/components/FilterBuilderItemOperatorValueFields.d.ts.map +1 -1
- package/dist/components/editors/FilterBuilderPro/components/FilterBuilderItemValueField.d.ts +1 -1
- package/dist/components/editors/FilterBuilderPro/components/FilterBuilderItemValueField.d.ts.map +1 -1
- package/dist/components/editors/FilterBuilderPro/components/FilterBuilderTextValueField.d.ts +1 -1
- package/dist/components/editors/FilterBuilderPro/components/FilterBuilderTextValueField.d.ts.map +1 -1
- package/dist/components/editors/FilterBuilderPro/definition.d.ts +16 -1
- package/dist/components/editors/FilterBuilderPro/definition.d.ts.map +1 -1
- package/dist/components/editors/FilterBuilderPro/index.d.ts +2 -1
- package/dist/components/editors/FilterBuilderPro/index.d.ts.map +1 -1
- package/dist/components/editors/GranularitySelectFieldPro/definition.d.ts +1 -1
- package/dist/components/editors/GranularitySelectFieldPro/index.d.ts +1 -1
- package/dist/components/editors/GranularitySelectFieldPro/index.d.ts.map +1 -1
- package/dist/components/editors/MeasureMultiSelectFieldPro/definition.d.ts +1 -1
- package/dist/components/editors/MeasureMultiSelectFieldPro/index.d.ts +1 -1
- package/dist/components/editors/MeasureMultiSelectFieldPro/index.d.ts.map +1 -1
- package/dist/components/editors/MeasureSingleSelectFieldPro/definition.d.ts +1 -1
- package/dist/components/editors/MeasureSingleSelectFieldPro/index.d.ts +1 -1
- package/dist/components/editors/MeasureSingleSelectFieldPro/index.d.ts.map +1 -1
- package/dist/components/editors/MultiSelectFieldPro/definition.d.ts +1 -1
- package/dist/components/editors/MultiSelectFieldPro/index.d.ts +1 -1
- package/dist/components/editors/MultiSelectFieldPro/index.d.ts.map +1 -1
- package/dist/components/editors/SingleSelectFieldPro/definition.d.ts +1 -1
- package/dist/components/editors/SingleSelectFieldPro/index.d.ts +1 -1
- package/dist/components/editors/SingleSelectFieldPro/index.d.ts.map +1 -1
- package/dist/components/editors/TextFieldPro/definition.d.ts +1 -1
- package/dist/components/editors/TextFieldPro/index.d.ts +1 -1
- package/dist/components/editors/TextFieldPro/index.d.ts.map +1 -1
- package/dist/components/editors/dates/DateRangePickerCustomPro/definition.d.ts +1 -1
- package/dist/components/editors/dates/DateRangePickerCustomPro/index.d.ts +1 -1
- package/dist/components/editors/dates/DateRangePickerCustomPro/index.d.ts.map +1 -1
- package/dist/components/editors/dates/DateRangePickerPresetsPro/definition.d.ts +1 -1
- package/dist/components/editors/dates/DateRangePickerPresetsPro/index.d.ts +1 -1
- package/dist/components/editors/dates/DateRangePickerPresetsPro/index.d.ts.map +1 -1
- package/dist/components/editors/shared/DimensionAndMeasureSingleSelectField/DimensionAndMeasureSingleSelectField.d.ts +1 -1
- package/dist/components/editors/shared/DimensionAndMeasureSingleSelectField/DimensionAndMeasureSingleSelectField.d.ts.map +1 -1
- package/dist/components/editors/shared/GranularitySelectField/GranularitySelectField.d.ts +1 -1
- package/dist/components/editors/shared/GranularitySelectField/GranularitySelectField.d.ts.map +1 -1
- package/dist/components/editors/test-utils/multiSelectField.mock.d.ts +1 -1
- package/dist/components/editors/test-utils/multiSelectField.mock.d.ts.map +1 -1
- package/dist/components/shared/HorizontalDividerPro/definition.d.ts +1 -1
- package/dist/components/shared/HorizontalDividerPro/index.d.ts +1 -1
- package/dist/components/shared/HorizontalDividerPro/index.d.ts.map +1 -1
- package/dist/components/shared/MarkdownPro/definition.d.ts +1 -1
- package/dist/components/shared/MarkdownPro/index.d.ts +1 -1
- package/dist/components/shared/MarkdownPro/index.d.ts.map +1 -1
- package/dist/{cs-OPN2C0ef.js → cs-Dx5Ov9fp.js} +16 -16
- package/dist/{cs-OPN2C0ef.js.map → cs-Dx5Ov9fp.js.map} +1 -1
- package/dist/{cv-DMmlEzxH.js → cv-BkDAzcmE.js} +3 -3
- package/dist/{cv-DMmlEzxH.js.map → cv-BkDAzcmE.js.map} +1 -1
- package/dist/{cy-l_moggQe.js → cy-BIwudn52.js} +3 -3
- package/dist/{cy-l_moggQe.js.map → cy-BIwudn52.js.map} +1 -1
- package/dist/{da-W22SIFso.js → da-DMzGkzN0.js} +3 -3
- package/dist/{da-W22SIFso.js.map → da-DMzGkzN0.js.map} +1 -1
- package/dist/dates.utils-LPINyM3w.js +169 -0
- package/dist/{dates.utils-DFrGqcoZ.js.map → dates.utils-LPINyM3w.js.map} +1 -1
- package/dist/{de-YZTYEOmR.js → de-DN_srl9H.js} +3 -3
- package/dist/{de-YZTYEOmR.js.map → de-DN_srl9H.js.map} +1 -1
- package/dist/{definition-Bt4uNhtN.js → definition-ARaGqiPK.js} +16 -16
- package/dist/{definition-Bt4uNhtN.js.map → definition-ARaGqiPK.js.map} +1 -1
- package/dist/{definition-Bt9oWobV.js → definition-B42wB3V0.js} +14 -14
- package/dist/{definition-Bt9oWobV.js.map → definition-B42wB3V0.js.map} +1 -1
- package/dist/{definition-BtFGLZFg.js → definition-BBvfXzrC.js} +17 -17
- package/dist/{definition-BtFGLZFg.js.map → definition-BBvfXzrC.js.map} +1 -1
- package/dist/{definition-DCCcpo3n.js → definition-BCAbpJor.js} +13 -13
- package/dist/{definition-DCCcpo3n.js.map → definition-BCAbpJor.js.map} +1 -1
- package/dist/{definition-lIzJ2XJn.js → definition-BJxdz1Ob.js} +26 -26
- package/dist/{definition-lIzJ2XJn.js.map → definition-BJxdz1Ob.js.map} +1 -1
- package/dist/{definition-C4t0P1wz.js → definition-BbFyJKGT.js} +18 -18
- package/dist/{definition-C4t0P1wz.js.map → definition-BbFyJKGT.js.map} +1 -1
- package/dist/definition-BjOqcOqq.js +258 -0
- package/dist/definition-BjOqcOqq.js.map +1 -0
- package/dist/{definition-CtNshA5a.js → definition-Br4qIMwa.js} +8 -8
- package/dist/{definition-CtNshA5a.js.map → definition-Br4qIMwa.js.map} +1 -1
- package/dist/{definition-D_APsOo5.js → definition-BvkXg6sa.js} +5 -5
- package/dist/{definition-D_APsOo5.js.map → definition-BvkXg6sa.js.map} +1 -1
- package/dist/{definition-CBKE7nhm.js → definition-BvvALkSQ.js} +12 -12
- package/dist/{definition-CBKE7nhm.js.map → definition-BvvALkSQ.js.map} +1 -1
- package/dist/{definition-IhaHieBR.js → definition-C2QnSx4_.js} +27 -27
- package/dist/{definition-IhaHieBR.js.map → definition-C2QnSx4_.js.map} +1 -1
- package/dist/{definition-B4F0jx72.js → definition-CGLcObd0.js} +11 -11
- package/dist/{definition-B4F0jx72.js.map → definition-CGLcObd0.js.map} +1 -1
- package/dist/{definition-y2Sn7VTL.js → definition-CGSdiMgK.js} +20 -20
- package/dist/{definition-y2Sn7VTL.js.map → definition-CGSdiMgK.js.map} +1 -1
- package/dist/{definition-lic11MCV.js → definition-CPWqHdnm.js} +22 -22
- package/dist/{definition-lic11MCV.js.map → definition-CPWqHdnm.js.map} +1 -1
- package/dist/{definition-WLmmLQZs.js → definition-CRNAhkO1.js} +184 -178
- package/dist/definition-CRNAhkO1.js.map +1 -0
- package/dist/{definition-CoLPvc2U.js → definition-CRNmzeNB.js} +30 -30
- package/dist/{definition-CoLPvc2U.js.map → definition-CRNmzeNB.js.map} +1 -1
- package/dist/{definition-DHsYpa3_.js → definition-CUU7xEkm.js} +30 -30
- package/dist/{definition-DHsYpa3_.js.map → definition-CUU7xEkm.js.map} +1 -1
- package/dist/definition-CZyXOTWy.js +623 -0
- package/dist/definition-CZyXOTWy.js.map +1 -0
- package/dist/{definition-De2PxrhM.js → definition-CbuWm1Cr.js} +20 -20
- package/dist/{definition-De2PxrhM.js.map → definition-CbuWm1Cr.js.map} +1 -1
- package/dist/{definition-Bs8jlVww.js → definition-CgHnmzj0.js} +16 -16
- package/dist/{definition-Bs8jlVww.js.map → definition-CgHnmzj0.js.map} +1 -1
- package/dist/{definition-1VYzuMo9.js → definition-CoQqvrmk.js} +20 -20
- package/dist/{definition-1VYzuMo9.js.map → definition-CoQqvrmk.js.map} +1 -1
- package/dist/{definition-L3bdSclX.js → definition-CqWyAkfl.js} +131 -127
- package/dist/definition-CqWyAkfl.js.map +1 -0
- package/dist/{definition-DfgNZaSg.js → definition-Cr47HSkP.js} +6 -6
- package/dist/{definition-DfgNZaSg.js.map → definition-Cr47HSkP.js.map} +1 -1
- package/dist/{definition-CC9wLJNd.js → definition-CrKiGiWI.js} +6 -6
- package/dist/{definition-CC9wLJNd.js.map → definition-CrKiGiWI.js.map} +1 -1
- package/dist/{definition-CbYDh9Ub.js → definition-CsPv349D.js} +6 -6
- package/dist/{definition-CbYDh9Ub.js.map → definition-CsPv349D.js.map} +1 -1
- package/dist/{definition-DDRYN7S1.js → definition-CtJ4b-tU.js} +13 -13
- package/dist/{definition-DDRYN7S1.js.map → definition-CtJ4b-tU.js.map} +1 -1
- package/dist/{definition-bbEjabtO.js → definition-Cvsjgc9X.js} +20 -20
- package/dist/{definition-bbEjabtO.js.map → definition-Cvsjgc9X.js.map} +1 -1
- package/dist/definition-DA2tu_w2.js +137 -0
- package/dist/definition-DA2tu_w2.js.map +1 -0
- package/dist/{definition-ukcHRZZl.js → definition-DNemWu7r.js} +20 -20
- package/dist/{definition-ukcHRZZl.js.map → definition-DNemWu7r.js.map} +1 -1
- package/dist/{definition-DtPY1lz6.js → definition-DpoIUA3D.js} +16 -16
- package/dist/{definition-DtPY1lz6.js.map → definition-DpoIUA3D.js.map} +1 -1
- package/dist/{definition-DOIIIcT0.js → definition-GqlaJ5X1.js} +15 -15
- package/dist/{definition-DOIIIcT0.js.map → definition-GqlaJ5X1.js.map} +1 -1
- package/dist/{definition-BB01Tker.js → definition-J3ahAeKj.js} +56 -56
- package/dist/{definition-BB01Tker.js.map → definition-J3ahAeKj.js.map} +1 -1
- package/dist/{definition-CvUSTWbU.js → definition-Na_Pv1dO.js} +24 -24
- package/dist/{definition-CvUSTWbU.js.map → definition-Na_Pv1dO.js.map} +1 -1
- package/dist/{definition-DW9vcya9.js → definition-UOoBAs3K.js} +7 -7
- package/dist/{definition-DW9vcya9.js.map → definition-UOoBAs3K.js.map} +1 -1
- package/dist/{definition-eKuaU5xY.js → definition-b7m3sPDx.js} +20 -20
- package/dist/{definition-eKuaU5xY.js.map → definition-b7m3sPDx.js.map} +1 -1
- package/dist/{definition-CL0Y27Yz.js → definition-bFY2ZdpP.js} +16 -16
- package/dist/{definition-CL0Y27Yz.js.map → definition-bFY2ZdpP.js.map} +1 -1
- package/dist/{definition-CHjP0E6Q.js → definition-dPTP_SXO.js} +13 -13
- package/dist/{definition-CHjP0E6Q.js.map → definition-dPTP_SXO.js.map} +1 -1
- package/dist/definition-rAPgW-Dv.js +133 -0
- package/dist/definition-rAPgW-Dv.js.map +1 -0
- package/dist/{dimension.utils-lPl2Y1D4.js → dimension.utils-CB-LXCP5.js} +4 -4
- package/dist/{dimension.utils-lPl2Y1D4.js.map → dimension.utils-CB-LXCP5.js.map} +1 -1
- package/dist/{dimensionsAndMeasures.utils-BsJIn37r.js → dimensionsAndMeasures.utils-BolsWK6X.js} +2 -2
- package/dist/{dimensionsAndMeasures.utils-BsJIn37r.js.map → dimensionsAndMeasures.utils-BolsWK6X.js.map} +1 -1
- package/dist/{dv-CuSRqQ-u.js → dv-DqfOiAOa.js} +3 -3
- package/dist/{dv-CuSRqQ-u.js.map → dv-DqfOiAOa.js.map} +1 -1
- package/dist/{el-VhiL5PCz.js → el-DRazChj2.js} +3 -3
- package/dist/{el-VhiL5PCz.js.map → el-DRazChj2.js.map} +1 -1
- package/dist/embeddable-components.json +56 -56
- package/dist/embeddable-theme-0137e.js +25 -1
- package/dist/{en-CCK_d6yu.js → en-Cbvl6b7O.js} +2 -2
- package/dist/{en-CCK_d6yu.js.map → en-Cbvl6b7O.js.map} +1 -1
- package/dist/{eo-BjvzzUrR.js → eo-BHu_t0Eo.js} +3 -3
- package/dist/{eo-BjvzzUrR.js.map → eo-BHu_t0Eo.js.map} +1 -1
- package/dist/{es-BAGEQJX0.js → es-cYnm2Hrv.js} +3 -3
- package/dist/{es-BAGEQJX0.js.map → es-cYnm2Hrv.js.map} +1 -1
- package/dist/{et-Dug3-Htz.js → et-xxrOegSp.js} +3 -3
- package/dist/{et-Dug3-Htz.js.map → et-xxrOegSp.js.map} +1 -1
- package/dist/{eu-B69OX2YQ.js → eu-DhktYxVI.js} +3 -3
- package/dist/{eu-B69OX2YQ.js.map → eu-DhktYxVI.js.map} +1 -1
- package/dist/{fa-BZRr3jKK.js → fa-9WLmLDSh.js} +3 -3
- package/dist/{fa-BZRr3jKK.js.map → fa-9WLmLDSh.js.map} +1 -1
- package/dist/{fi-D4hv61ue.js → fi-BaOUwI2P.js} +3 -3
- package/dist/{fi-D4hv61ue.js.map → fi-BaOUwI2P.js.map} +1 -1
- package/dist/{fo-Ctq0i1aV.js → fo-AY850tyv.js} +3 -3
- package/dist/{fo-Ctq0i1aV.js.map → fo-AY850tyv.js.map} +1 -1
- package/dist/{formatter.utils-CueRuFiK.js → formatter.utils-DE-_ADag.js} +6 -6
- package/dist/{formatter.utils-CueRuFiK.js.map → formatter.utils-DE-_ADag.js.map} +1 -1
- package/dist/{fr-DhygZq8E.js → fr-DuGU2qV3.js} +3 -3
- package/dist/{fr-DhygZq8E.js.map → fr-DuGU2qV3.js.map} +1 -1
- package/dist/{fy-CSXKvn3r.js → fy-ByIsn3VC.js} +3 -3
- package/dist/{fy-CSXKvn3r.js.map → fy-ByIsn3VC.js.map} +1 -1
- package/dist/{ga-CJWkA_uc.js → ga-DO6N5UL5.js} +3 -3
- package/dist/{ga-CJWkA_uc.js.map → ga-DO6N5UL5.js.map} +1 -1
- package/dist/{gd-S_5eqzIU.js → gd-8Cpnoh3b.js} +3 -3
- package/dist/{gd-S_5eqzIU.js.map → gd-8Cpnoh3b.js.map} +1 -1
- package/dist/{gl-B4Dahb7f.js → gl-oWfq6hSQ.js} +3 -3
- package/dist/{gl-B4Dahb7f.js.map → gl-oWfq6hSQ.js.map} +1 -1
- package/dist/{granularity.utils-C1YICLik.js → granularity.utils-C_SX7zKB.js} +3 -3
- package/dist/{granularity.utils-C1YICLik.js.map → granularity.utils-C_SX7zKB.js.map} +1 -1
- package/dist/{gu-jc9pYff5.js → gu-BTm5Ap5A.js} +3 -3
- package/dist/{gu-jc9pYff5.js.map → gu-BTm5Ap5A.js.map} +1 -1
- package/dist/{he-Bil3JWh7.js → he-Cd038LtN.js} +3 -3
- package/dist/{he-Bil3JWh7.js.map → he-Cd038LtN.js.map} +1 -1
- package/dist/{hi-nzfVOkjP.js → hi-IFNUivAP.js} +3 -3
- package/dist/{hi-nzfVOkjP.js.map → hi-IFNUivAP.js.map} +1 -1
- package/dist/{hr-CjyugdeX.js → hr-CldUxejD.js} +3 -3
- package/dist/{hr-CjyugdeX.js.map → hr-CldUxejD.js.map} +1 -1
- package/dist/{ht-BQ0TlnC7.js → ht-ByUbblsT.js} +3 -3
- package/dist/{ht-BQ0TlnC7.js.map → ht-ByUbblsT.js.map} +1 -1
- package/dist/{hu-B_3y1c4Q.js → hu-CPiHhaLJ.js} +11 -11
- package/dist/{hu-B_3y1c4Q.js.map → hu-CPiHhaLJ.js.map} +1 -1
- package/dist/{id-BPuFW1CX.js → id-5gnT8jF0.js} +3 -3
- package/dist/{id-BPuFW1CX.js.map → id-5gnT8jF0.js.map} +1 -1
- package/dist/{index-DcPl9DUc.js → index-BDd5cXFC.js} +1836 -1818
- package/dist/{index-DcPl9DUc.js.map → index-BDd5cXFC.js.map} +1 -1
- package/dist/{index-D_k-7hF4.js → index-DeFORjMe.js} +2 -2
- package/dist/{index-D_k-7hF4.js.map → index-DeFORjMe.js.map} +1 -1
- package/dist/{index-DxL0Y4DQ.js → index-DxChWz_f.js} +4 -4
- package/dist/{index-DxL0Y4DQ.js.map → index-DxChWz_f.js.map} +1 -1
- package/dist/index.js +57 -57
- package/dist/{is-B4v_GCbt.js → is-6wYxGbHC.js} +5 -5
- package/dist/{is-B4v_GCbt.js.map → is-6wYxGbHC.js.map} +1 -1
- package/dist/{isoWeek-D6aAznv-.js → isoWeek-B5hq3zXR.js} +9 -9
- package/dist/{isoWeek-D6aAznv-.js.map → isoWeek-B5hq3zXR.js.map} +1 -1
- package/dist/{it-CxODYFsF.js → it-Bs7yFtoC.js} +3 -3
- package/dist/{it-CxODYFsF.js.map → it-Bs7yFtoC.js.map} +1 -1
- package/dist/{ja-BLMmIJfq.js → ja-KxYq1Keq.js} +3 -3
- package/dist/{ja-BLMmIJfq.js.map → ja-KxYq1Keq.js.map} +1 -1
- package/dist/{jv-ByiaGx2H.js → jv-Z59fnm9r.js} +13 -13
- package/dist/{jv-ByiaGx2H.js.map → jv-Z59fnm9r.js.map} +1 -1
- package/dist/{ka-C_2wD7LP.js → ka-C5stxZNq.js} +3 -3
- package/dist/{ka-C_2wD7LP.js.map → ka-C5stxZNq.js.map} +1 -1
- package/dist/{kk-DqcHSPuF.js → kk-Bjp2oS1M.js} +3 -3
- package/dist/{kk-DqcHSPuF.js.map → kk-Bjp2oS1M.js.map} +1 -1
- package/dist/{km-bI1Z3YSM.js → km-cCyErL-J.js} +8 -8
- package/dist/{km-bI1Z3YSM.js.map → km-cCyErL-J.js.map} +1 -1
- package/dist/{kn-DY4uzFfe.js → kn-Cn3e7R-p.js} +3 -3
- package/dist/{kn-DY4uzFfe.js.map → kn-Cn3e7R-p.js.map} +1 -1
- package/dist/{ko-Cu5cVg3m.js → ko-DwbRGcg_.js} +8 -8
- package/dist/{ko-Cu5cVg3m.js.map → ko-DwbRGcg_.js.map} +1 -1
- package/dist/{ku-B9wX44de.js → ku-D8V8DLkP.js} +3 -3
- package/dist/{ku-B9wX44de.js.map → ku-D8V8DLkP.js.map} +1 -1
- package/dist/{ky-mkjISmIi.js → ky-DgKCQpit.js} +3 -3
- package/dist/{ky-mkjISmIi.js.map → ky-DgKCQpit.js.map} +1 -1
- package/dist/{lb-s_88UK0j.js → lb-B1H3ev7O.js} +8 -8
- package/dist/{lb-s_88UK0j.js.map → lb-B1H3ev7O.js.map} +1 -1
- package/dist/{lo-CChg5V22.js → lo-BTLR-4Ua.js} +3 -3
- package/dist/{lo-CChg5V22.js.map → lo-BTLR-4Ua.js.map} +1 -1
- package/dist/{lt-jLA41Ben.js → lt-CpVBw6AZ.js} +3 -3
- package/dist/{lt-jLA41Ben.js.map → lt-CpVBw6AZ.js.map} +1 -1
- package/dist/{lv-hAoIKgX2.js → lv-CHWUynv0.js} +3 -3
- package/dist/{lv-hAoIKgX2.js.map → lv-CHWUynv0.js.map} +1 -1
- package/dist/{me-DNASGX9I.js → me-BPihshNS.js} +3 -3
- package/dist/{me-DNASGX9I.js.map → me-BPihshNS.js.map} +1 -1
- package/dist/meta/FilterBuilderPro.meta.json +8 -0
- package/dist/meta/HeatMapPro.meta.json +28 -0
- package/dist/meta/LineChartComparisonDefaultPro.meta.json +5 -0
- package/dist/meta/LineChartComparisonWithKpiTabsPro.meta.json +5 -0
- package/dist/{mi-NkIEWm1k.js → mi-Cb-2ijwY.js} +3 -3
- package/dist/{mi-NkIEWm1k.js.map → mi-Cb-2ijwY.js.map} +1 -1
- package/dist/{mk-CJAU95yF.js → mk-BH7eZmqu.js} +3 -3
- package/dist/{mk-CJAU95yF.js.map → mk-BH7eZmqu.js.map} +1 -1
- package/dist/{ml-D91xWhJE.js → ml-CwYt0YaD.js} +3 -3
- package/dist/{ml-D91xWhJE.js.map → ml-CwYt0YaD.js.map} +1 -1
- package/dist/{mn-CSIv0h5B.js → mn-BQDV_tLC.js} +3 -3
- package/dist/{mn-CSIv0h5B.js.map → mn-BQDV_tLC.js.map} +1 -1
- package/dist/{mr-D4oIZ_jX.js → mr-Cz2meNaV.js} +3 -3
- package/dist/{mr-D4oIZ_jX.js.map → mr-Cz2meNaV.js.map} +1 -1
- package/dist/{ms-DyAE3TXR.js → ms-Drl8Gge6.js} +3 -3
- package/dist/{ms-DyAE3TXR.js.map → ms-Drl8Gge6.js.map} +1 -1
- package/dist/{mt-DjLJYXqW.js → mt-Biv_dLXp.js} +3 -3
- package/dist/{mt-DjLJYXqW.js.map → mt-Biv_dLXp.js.map} +1 -1
- package/dist/{my-QAbtttSY.js → my-BHy9cEF_.js} +3 -3
- package/dist/{my-QAbtttSY.js.map → my-BHy9cEF_.js.map} +1 -1
- package/dist/{nb-CyikWQNu.js → nb-BMrTF3LP.js} +3 -3
- package/dist/{nb-CyikWQNu.js.map → nb-BMrTF3LP.js.map} +1 -1
- package/dist/{ne-CYLhegnF.js → ne-B-gxqF-u.js} +3 -3
- package/dist/{ne-CYLhegnF.js.map → ne-B-gxqF-u.js.map} +1 -1
- package/dist/{nl-Ravjt8yv.js → nl-Cral7JEK.js} +3 -3
- package/dist/{nl-Ravjt8yv.js.map → nl-Cral7JEK.js.map} +1 -1
- package/dist/{nn-DaylgKbH.js → nn-C1_ylJFR.js} +3 -3
- package/dist/{nn-DaylgKbH.js.map → nn-C1_ylJFR.js.map} +1 -1
- package/dist/pies.utils-Drvky2f7.js +112 -0
- package/dist/pies.utils-Drvky2f7.js.map +1 -0
- package/dist/{pl-1TvAKJ2i.js → pl-D2pKy9F1.js} +10 -10
- package/dist/{pl-1TvAKJ2i.js.map → pl-D2pKy9F1.js.map} +1 -1
- package/dist/{preview.data.constants-B8B82ITM.js → preview.data.constants-B3oyUsaQ.js} +10 -10
- package/dist/{preview.data.constants-B8B82ITM.js.map → preview.data.constants-B3oyUsaQ.js.map} +1 -1
- package/dist/{pt-BdsacYg2.js → pt-3Uvt8G16.js} +3 -3
- package/dist/{pt-BdsacYg2.js.map → pt-3Uvt8G16.js.map} +1 -1
- package/dist/{quarterOfYear-Dixa0hmA.js → quarterOfYear-B_Fe3-YM.js} +7 -7
- package/dist/{quarterOfYear-Dixa0hmA.js.map → quarterOfYear-B_Fe3-YM.js.map} +1 -1
- package/dist/{ro-CgxzoPTb.js → ro-lXLM5wIH.js} +3 -3
- package/dist/{ro-CgxzoPTb.js.map → ro-lXLM5wIH.js.map} +1 -1
- package/dist/{ru-Dc-8D5WF.js → ru-CvRL7AkU.js} +3 -3
- package/dist/{ru-Dc-8D5WF.js.map → ru-CvRL7AkU.js.map} +1 -1
- package/dist/{rw-Qhhg8ROi.js → rw-BWaAHq7K.js} +3 -3
- package/dist/{rw-Qhhg8ROi.js.map → rw-BWaAHq7K.js.map} +1 -1
- package/dist/{sd-CGRy0d35.js → sd-DwN_Idzz.js} +8 -8
- package/dist/{sd-CGRy0d35.js.map → sd-DwN_Idzz.js.map} +1 -1
- package/dist/{se-C0u8D3V7.js → se-BnIu6dPe.js} +3 -3
- package/dist/{se-C0u8D3V7.js.map → se-BnIu6dPe.js.map} +1 -1
- package/dist/{si-D4VvlDtE.js → si-C7noOV3G.js} +3 -3
- package/dist/{si-D4VvlDtE.js.map → si-C7noOV3G.js.map} +1 -1
- package/dist/{sk-D1rCJy6c.js → sk-aGMXL0jT.js} +18 -18
- package/dist/{sk-D1rCJy6c.js.map → sk-aGMXL0jT.js.map} +1 -1
- package/dist/{sl-CDwxu8Jf.js → sl-CSDUQXp6.js} +3 -3
- package/dist/{sl-CDwxu8Jf.js.map → sl-CSDUQXp6.js.map} +1 -1
- package/dist/{sq-EG9Spqit.js → sq-BWIZHH0T.js} +9 -9
- package/dist/{sq-EG9Spqit.js.map → sq-BWIZHH0T.js.map} +1 -1
- package/dist/{sr-DEnvCtDe.js → sr-DWXLYUZl.js} +3 -3
- package/dist/{sr-DEnvCtDe.js.map → sr-DWXLYUZl.js.map} +1 -1
- package/dist/{ss-D2TA96JU.js → ss-DRoAfKgl.js} +3 -3
- package/dist/{ss-D2TA96JU.js.map → ss-DRoAfKgl.js.map} +1 -1
- package/dist/{styles.utils-BfpH_m_W.js → styles.utils-C8CnV0SB.js} +3 -3
- package/dist/{styles.utils-BfpH_m_W.js.map → styles.utils-C8CnV0SB.js.map} +1 -1
- package/dist/{sv-CVix37qq.js → sv-COvXHvfd.js} +3 -3
- package/dist/{sv-CVix37qq.js.map → sv-COvXHvfd.js.map} +1 -1
- package/dist/{sw-BPU86kCc.js → sw-DVBjWTn7.js} +3 -3
- package/dist/{sw-BPU86kCc.js.map → sw-DVBjWTn7.js.map} +1 -1
- package/dist/{ta-BOZUOxU0.js → ta-D_B2aKTU.js} +3 -3
- package/dist/{ta-BOZUOxU0.js.map → ta-D_B2aKTU.js.map} +1 -1
- package/dist/{tables.utils-BDvJMU1_.js → tables.utils-DqlM19s-.js} +11 -11
- package/dist/{tables.utils-BDvJMU1_.js.map → tables.utils-DqlM19s-.js.map} +1 -1
- package/dist/{te-Bamoj7pU.js → te-ZeV91eOU.js} +3 -3
- package/dist/{te-Bamoj7pU.js.map → te-ZeV91eOU.js.map} +1 -1
- package/dist/{tet-Dasd5QxW.js → tet-DVZKHkE5.js} +11 -11
- package/dist/{tet-Dasd5QxW.js.map → tet-DVZKHkE5.js.map} +1 -1
- package/dist/{tg-ChqdKEnG.js → tg-BzwSdhGO.js} +3 -3
- package/dist/{tg-ChqdKEnG.js.map → tg-BzwSdhGO.js.map} +1 -1
- package/dist/{th-Bk5x6TTv.js → th-Cjw35Sul.js} +3 -3
- package/dist/{th-Bk5x6TTv.js.map → th-Cjw35Sul.js.map} +1 -1
- package/dist/theme/styles/styles.constants.d.ts +24 -0
- package/dist/theme/styles/styles.constants.d.ts.map +1 -1
- package/dist/{theme.constants-DsrqrdS6.js → theme.constants-T0AFNuJR.js} +31 -7
- package/dist/theme.constants-T0AFNuJR.js.map +1 -0
- package/dist/{tk-CKTm9znn.js → tk-BJwa-YKB.js} +3 -3
- package/dist/{tk-CKTm9znn.js.map → tk-BJwa-YKB.js.map} +1 -1
- package/dist/{tlh-COX4xvnq.js → tlh-Bd8Hj-rX.js} +3 -3
- package/dist/{tlh-COX4xvnq.js.map → tlh-Bd8Hj-rX.js.map} +1 -1
- package/dist/{tr-B-yDJn5U.js → tr-__Yjprt-.js} +3 -3
- package/dist/{tr-B-yDJn5U.js.map → tr-__Yjprt-.js.map} +1 -1
- package/dist/{tzl-DsV3R-ms.js → tzl-DLj-cE5y.js} +3 -3
- package/dist/{tzl-DsV3R-ms.js.map → tzl-DLj-cE5y.js.map} +1 -1
- package/dist/{tzm-gPfBGwxP.js → tzm-BbgReqpM.js} +3 -3
- package/dist/{tzm-gPfBGwxP.js.map → tzm-BbgReqpM.js.map} +1 -1
- package/dist/{uk-Buc5wLz4.js → uk-CkEIyMZ2.js} +11 -11
- package/dist/{uk-Buc5wLz4.js.map → uk-CkEIyMZ2.js.map} +1 -1
- package/dist/{ur-DwcxoK_m.js → ur-CMRddQHy.js} +3 -3
- package/dist/{ur-DwcxoK_m.js.map → ur-CMRddQHy.js.map} +1 -1
- package/dist/{utc-BW09BhCl.js → utc-CiYVTKd5.js} +13 -13
- package/dist/{utc-BW09BhCl.js.map → utc-CiYVTKd5.js.map} +1 -1
- package/dist/{uz-QP2FHnf_.js → uz-CKEHZNva.js} +3 -3
- package/dist/{uz-QP2FHnf_.js.map → uz-CKEHZNva.js.map} +1 -1
- package/dist/{vi-D27F6exG.js → vi-DDguFMAp.js} +3 -3
- package/dist/{vi-D27F6exG.js.map → vi-DDguFMAp.js.map} +1 -1
- package/dist/{x-pseudo-BD9cDlId.js → x-pseudo-G09tNhGy.js} +3 -3
- package/dist/{x-pseudo-BD9cDlId.js.map → x-pseudo-G09tNhGy.js.map} +1 -1
- package/dist/{yo-BF789QLA.js → yo-C2uzXj00.js} +3 -3
- package/dist/{yo-BF789QLA.js.map → yo-C2uzXj00.js.map} +1 -1
- package/dist/{zh-cn-BtfweNvk.js → zh-cn-Cq0odDRx.js} +3 -3
- package/dist/{zh-cn-BtfweNvk.js.map → zh-cn-Cq0odDRx.js.map} +1 -1
- package/dist/{zh-hk-BnriNqMr.js → zh-hk-7tX7IidE.js} +3 -3
- package/dist/{zh-hk-BnriNqMr.js.map → zh-hk-7tX7IidE.js.map} +1 -1
- package/dist/{zh-tw-DEhWyVul.js → zh-tw-LFc2ke0C.js} +3 -3
- package/dist/{zh-tw-DEhWyVul.js.map → zh-tw-LFc2ke0C.js.map} +1 -1
- package/package.json +4 -4
- package/dist/bars.utils-lZnqwfM9.js +0 -167
- package/dist/bars.utils-lZnqwfM9.js.map +0 -1
- package/dist/charts.utils-LTooRxIg.js +0 -79
- package/dist/charts.utils-LTooRxIg.js.map +0 -1
- package/dist/dates.utils-DFrGqcoZ.js +0 -169
- package/dist/definition-CBuEfvdj.js +0 -124
- package/dist/definition-CBuEfvdj.js.map +0 -1
- package/dist/definition-CkRgTDxG.js +0 -603
- package/dist/definition-CkRgTDxG.js.map +0 -1
- package/dist/definition-DbRjzqsA.js +0 -120
- package/dist/definition-DbRjzqsA.js.map +0 -1
- package/dist/definition-L3bdSclX.js.map +0 -1
- package/dist/definition-WLmmLQZs.js.map +0 -1
- package/dist/definition-uQa3OXxU.js +0 -202
- package/dist/definition-uQa3OXxU.js.map +0 -1
- package/dist/pies.utils-Rkvaq5Sj.js +0 -111
- package/dist/pies.utils-Rkvaq5Sj.js.map +0 -1
- package/dist/theme.constants-DsrqrdS6.js.map +0 -1
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { p as U, u as k, m as X, j as F, M as H, V as w, l as Y } from "./index-BDd5cXFC.js";
|
|
2
2
|
import { useTheme as q, definePreview as J } from "@embeddable.com/react";
|
|
3
3
|
import { i as Q, r as W, a as Z } from "./component.utils-oQMZT7TK.js";
|
|
4
|
-
import { C as ee } from "./ChartCard-
|
|
5
|
-
import { g as I } from "./dimension.utils-
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { N as C, g as
|
|
9
|
-
import { i as n, s as oe } from "./component.inputs.constants-
|
|
10
|
-
import { p as D } from "./preview.data.constants-
|
|
4
|
+
import { C as ee } from "./ChartCard-Zy5lPApV.js";
|
|
5
|
+
import { g as I } from "./dimension.utils-CB-LXCP5.js";
|
|
6
|
+
import { a as R, g as $ } from "./formatter.utils-DE-_ADag.js";
|
|
7
|
+
import { g as te } from "./styles.utils-C8CnV0SB.js";
|
|
8
|
+
import { N as C, g as ae, m as _, r as S } from "./scatter.utils-DV4Kp2Lb.js";
|
|
9
|
+
import { i as n, s as oe } from "./component.inputs.constants-DoBT8ykS.js";
|
|
10
|
+
import { p as D } from "./preview.data.constants-B3oyUsaQ.js";
|
|
11
11
|
import { g as ne } from "./clientContext.utils-DpB5KsfX.js";
|
|
12
|
-
const se = (e,
|
|
12
|
+
const se = (e, a, s) => ({
|
|
13
13
|
formatter: (m, u) => {
|
|
14
14
|
var r;
|
|
15
15
|
const o = (r = u.dataset.originalData) == null ? void 0 : r[u.dataIndex];
|
|
16
|
-
return o ? `${s(e, o.x)}, ${s(
|
|
16
|
+
return o ? `${s(e, o.x)}, ${s(a, o.y)}` : "";
|
|
17
17
|
}
|
|
18
18
|
}), re = ({
|
|
19
19
|
xMeasure: e,
|
|
20
|
-
yMeasure:
|
|
20
|
+
yMeasure: a,
|
|
21
21
|
noValueLabel: s,
|
|
22
22
|
showPointLabels: m
|
|
23
23
|
}, u) => {
|
|
24
24
|
const c = $(u), o = (p, g) => g == null ? s : c.data(p, g), r = k("--em-scatterchart-point-radius", "0.375rem"), i = k("--em-scatterchart-label-stack-gap", "0.25rem"), d = k("--em-scatterchart-label-stack-height", "1.25rem"), h = r + i, x = m ? r + i + d + i : r + i;
|
|
25
25
|
return {
|
|
26
|
-
scales:
|
|
26
|
+
scales: ae(
|
|
27
27
|
e,
|
|
28
|
-
|
|
28
|
+
a,
|
|
29
29
|
(p, g) => c.data(p, g)
|
|
30
30
|
),
|
|
31
31
|
plugins: {
|
|
@@ -33,8 +33,8 @@ const se = (e, t, s) => ({
|
|
|
33
33
|
callbacks: {
|
|
34
34
|
label: (p) => {
|
|
35
35
|
var l;
|
|
36
|
-
const g = p.dataset, y = ((l = g.originalData) == null ? void 0 : l[p.dataIndex]) ?? p.dataset.data[p.dataIndex],
|
|
37
|
-
return y ? `${
|
|
36
|
+
const g = p.dataset, y = ((l = g.originalData) == null ? void 0 : l[p.dataIndex]) ?? p.dataset.data[p.dataIndex], t = g.label ? `${g.label}: ` : "";
|
|
37
|
+
return y ? `${t}(${o(e, y.x)}, ${o(a, y.y)})` : t;
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
},
|
|
@@ -42,7 +42,7 @@ const se = (e, t, s) => ({
|
|
|
42
42
|
labels: {
|
|
43
43
|
value: {
|
|
44
44
|
display: "auto",
|
|
45
|
-
...se(e,
|
|
45
|
+
...se(e, a, o),
|
|
46
46
|
anchor: "center",
|
|
47
47
|
align: "bottom",
|
|
48
48
|
offset: x
|
|
@@ -57,16 +57,16 @@ const se = (e, t, s) => ({
|
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
};
|
|
60
|
-
}, ie = (e,
|
|
60
|
+
}, ie = (e, a, s, m, u, c, o) => {
|
|
61
61
|
var g, y;
|
|
62
|
-
const r = (y = (g =
|
|
62
|
+
const r = (y = (g = a[e.datasetIndex]) == null ? void 0 : g.data[e.index]) == null ? void 0 : y.rowIndex;
|
|
63
63
|
if (r === void 0) return null;
|
|
64
64
|
const i = s == null ? void 0 : s[r];
|
|
65
65
|
if (!i) return null;
|
|
66
|
-
const d = R(c), h = o ? R(o) : void 0, x =
|
|
66
|
+
const d = R(c), h = o ? R(o) : void 0, x = S(i[d]), p = h ? S(i[h]) : null;
|
|
67
67
|
return {
|
|
68
|
-
xMeasureValue:
|
|
69
|
-
yMeasureValue:
|
|
68
|
+
xMeasureValue: S(i[m.name]),
|
|
69
|
+
yMeasureValue: S(i[u.name]),
|
|
70
70
|
pointDimensionValue: x,
|
|
71
71
|
groupByDimensionValue: p,
|
|
72
72
|
pointDimensionTimeRange: I({
|
|
@@ -80,7 +80,7 @@ const se = (e, t, s) => ({
|
|
|
80
80
|
};
|
|
81
81
|
}, le = ({
|
|
82
82
|
datasets: e,
|
|
83
|
-
results:
|
|
83
|
+
results: a,
|
|
84
84
|
xMeasure: s,
|
|
85
85
|
yMeasure: m,
|
|
86
86
|
pointDimension: u,
|
|
@@ -92,23 +92,23 @@ const se = (e, t, s) => ({
|
|
|
92
92
|
const d = ie(
|
|
93
93
|
i,
|
|
94
94
|
e,
|
|
95
|
-
|
|
95
|
+
a.data,
|
|
96
96
|
s,
|
|
97
97
|
m,
|
|
98
98
|
u,
|
|
99
99
|
c
|
|
100
100
|
);
|
|
101
101
|
d && (o == null || o(d));
|
|
102
|
-
}, ue = (e,
|
|
102
|
+
}, ue = (e, a) => {
|
|
103
103
|
var y;
|
|
104
|
-
const s = $(
|
|
104
|
+
const s = $(a), m = U(), u = e.data ?? [], c = R(e.pointDimension), o = ((y = e.pointColor) == null ? void 0 : y.trim()) || void 0;
|
|
105
105
|
if (!u.length)
|
|
106
106
|
return { datasets: [{ label: "", data: [] }] };
|
|
107
|
-
const r = (
|
|
108
|
-
const b =
|
|
107
|
+
const r = (t, l, b, f) => o ?? te({ dimensionOrMeasure: l, theme: a, color: t, value: b, index: f, chartColors: m }), i = (t, l) => {
|
|
108
|
+
const b = t[c], f = b == null ? e.noValueLabel : String(s.data(e.pointDimension, b));
|
|
109
109
|
return {
|
|
110
|
-
x: _(
|
|
111
|
-
y: _(
|
|
110
|
+
x: _(t[e.xMeasure.name]),
|
|
111
|
+
y: _(t[e.yMeasure.name]),
|
|
112
112
|
pointLabel: f,
|
|
113
113
|
label: f,
|
|
114
114
|
rowIndex: l
|
|
@@ -119,19 +119,19 @@ const se = (e, t, s) => ({
|
|
|
119
119
|
datasets: [
|
|
120
120
|
{
|
|
121
121
|
label: s.dimensionOrMeasureTitle(e.yMeasure),
|
|
122
|
-
data: u.map((
|
|
122
|
+
data: u.map((t, l) => i(t, l)),
|
|
123
123
|
pointBackgroundColor: r("background", e.xMeasure, e.xMeasure.name, 0),
|
|
124
124
|
pointBorderColor: r("border", e.xMeasure, e.xMeasure.name, 0)
|
|
125
125
|
}
|
|
126
126
|
]
|
|
127
127
|
};
|
|
128
128
|
const d = e.groupByDimension, h = R(d), x = /* @__PURE__ */ new Map();
|
|
129
|
-
return u.forEach((
|
|
130
|
-
const b =
|
|
131
|
-
f.push(i(
|
|
132
|
-
}), { datasets: [...x.keys()].sort((
|
|
129
|
+
return u.forEach((t, l) => {
|
|
130
|
+
const b = t[h] == null ? C : String(t[h]), f = x.get(b) ?? [];
|
|
131
|
+
f.push(i(t, l)), x.set(b, f);
|
|
132
|
+
}), { datasets: [...x.keys()].sort((t, l) => t === C ? 1 : l === C ? -1 : t.localeCompare(l)).map((t, l) => {
|
|
133
133
|
var V;
|
|
134
|
-
const b = x.get(
|
|
134
|
+
const b = x.get(t), f = b[0].rowIndex, L = t === C ? null : (V = u[f]) == null ? void 0 : V[h], v = t === C ? e.noValueLabel : s.data(d, L), M = t === C ? `${d.name}.null` : `${d.name}.${t}`;
|
|
135
135
|
return {
|
|
136
136
|
label: v,
|
|
137
137
|
data: b,
|
|
@@ -141,8 +141,8 @@ const se = (e, t, s) => ({
|
|
|
141
141
|
}) };
|
|
142
142
|
}, P = (e) => {
|
|
143
143
|
var T;
|
|
144
|
-
const
|
|
145
|
-
Q(
|
|
144
|
+
const a = q();
|
|
145
|
+
Q(a);
|
|
146
146
|
const {
|
|
147
147
|
xMeasure: s,
|
|
148
148
|
yMeasure: m,
|
|
@@ -157,7 +157,7 @@ const se = (e, t, s) => ({
|
|
|
157
157
|
showLogarithmicScale: p,
|
|
158
158
|
xAxisRangeMin: g,
|
|
159
159
|
xAxisRangeMax: y,
|
|
160
|
-
yAxisRangeMin:
|
|
160
|
+
yAxisRangeMin: t,
|
|
161
161
|
yAxisRangeMax: l,
|
|
162
162
|
reverseXAxis: b,
|
|
163
163
|
onPointClick: f,
|
|
@@ -172,7 +172,7 @@ const se = (e, t, s) => ({
|
|
|
172
172
|
noValueLabel: A,
|
|
173
173
|
pointColor: r
|
|
174
174
|
},
|
|
175
|
-
|
|
175
|
+
a
|
|
176
176
|
), E = le({
|
|
177
177
|
datasets: B.datasets,
|
|
178
178
|
results: o,
|
|
@@ -182,8 +182,8 @@ const se = (e, t, s) => ({
|
|
|
182
182
|
groupByDimension: c,
|
|
183
183
|
onPointClick: f
|
|
184
184
|
}), G = X(
|
|
185
|
-
re({ xMeasure: s, yMeasure: m, noValueLabel: A, showPointLabels: h },
|
|
186
|
-
((T =
|
|
185
|
+
re({ xMeasure: s, yMeasure: m, noValueLabel: A, showPointLabels: h }, a),
|
|
186
|
+
((T = a.charts.scatterChartPro) == null ? void 0 : T.options) ?? {}
|
|
187
187
|
);
|
|
188
188
|
return /* @__PURE__ */ F.jsx(
|
|
189
189
|
ee,
|
|
@@ -215,7 +215,7 @@ const se = (e, t, s) => ({
|
|
|
215
215
|
yAxisLabel: K,
|
|
216
216
|
xAxisRangeMin: g,
|
|
217
217
|
xAxisRangeMax: y,
|
|
218
|
-
yAxisRangeMin:
|
|
218
|
+
yAxisRangeMin: t,
|
|
219
219
|
yAxisRangeMax: l,
|
|
220
220
|
reverseXAxis: b,
|
|
221
221
|
onClick: E
|
|
@@ -223,7 +223,7 @@ const se = (e, t, s) => ({
|
|
|
223
223
|
)
|
|
224
224
|
}
|
|
225
225
|
);
|
|
226
|
-
},
|
|
226
|
+
}, Se = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
227
227
|
__proto__: null,
|
|
228
228
|
default: P
|
|
229
229
|
}, Symbol.toStringTag, { value: "Module" })), me = {
|
|
@@ -301,7 +301,7 @@ const se = (e, t, s) => ({
|
|
|
301
301
|
results: D.results2Measures1Dimension,
|
|
302
302
|
showLegend: !0,
|
|
303
303
|
hideMenu: !0
|
|
304
|
-
}, ce = J(P, O),
|
|
304
|
+
}, ce = J(P, O), j = (e, a) => ({
|
|
305
305
|
limit: e.maxResults,
|
|
306
306
|
from: e.dataset,
|
|
307
307
|
select: [
|
|
@@ -310,18 +310,18 @@ const se = (e, t, s) => ({
|
|
|
310
310
|
e.pointDimension,
|
|
311
311
|
...e.groupByDimension ? [e.groupByDimension] : []
|
|
312
312
|
],
|
|
313
|
-
timezone: ne(
|
|
314
|
-
}),
|
|
313
|
+
timezone: ne(a == null ? void 0 : a.timezone)
|
|
314
|
+
}), N = (e, a) => Y(j(e, a)), de = {
|
|
315
315
|
onPointClick: (e) => ({
|
|
316
|
-
xMeasureValue: e.xMeasureValue ??
|
|
317
|
-
yMeasureValue: e.yMeasureValue ??
|
|
318
|
-
pointDimensionValue: e.pointDimensionValue ??
|
|
319
|
-
groupByDimensionValue: e.groupByDimensionValue ??
|
|
316
|
+
xMeasureValue: e.xMeasureValue ?? w.noFilter(),
|
|
317
|
+
yMeasureValue: e.yMeasureValue ?? w.noFilter(),
|
|
318
|
+
pointDimensionValue: e.pointDimensionValue ?? w.noFilter(),
|
|
319
|
+
groupByDimensionValue: e.groupByDimensionValue ?? w.noFilter()
|
|
320
320
|
})
|
|
321
|
-
}, ge = (e, [
|
|
321
|
+
}, ge = (e, [a, s], m) => ({
|
|
322
322
|
...e,
|
|
323
323
|
pointColor: e.pointColor,
|
|
324
|
-
results:
|
|
324
|
+
results: N(e, m)
|
|
325
325
|
}), Re = {
|
|
326
326
|
Component: P,
|
|
327
327
|
meta: me,
|
|
@@ -332,12 +332,12 @@ const se = (e, t, s) => ({
|
|
|
332
332
|
events: de
|
|
333
333
|
},
|
|
334
334
|
results: {
|
|
335
|
-
loadDataArgs:
|
|
336
|
-
loadData:
|
|
335
|
+
loadDataArgs: j,
|
|
336
|
+
loadData: N
|
|
337
337
|
}
|
|
338
338
|
};
|
|
339
339
|
export {
|
|
340
|
-
|
|
340
|
+
Se as i,
|
|
341
341
|
Re as s
|
|
342
342
|
};
|
|
343
|
-
//# sourceMappingURL=definition-
|
|
343
|
+
//# sourceMappingURL=definition-J3ahAeKj.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition-BB01Tker.js","sources":["../src/components/charts/scatter/ScatterChartPro/ScatterChartPro.utils.ts","../src/components/charts/scatter/ScatterChartPro/index.tsx","../src/components/charts/scatter/ScatterChartPro/definition.ts"],"sourcesContent":["import { ChartData, type ChartOptions, ScatterDataPoint } from 'chart.js';\nimport { Context } from 'chartjs-plugin-datalabels';\nimport { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { getTimeRangeFromDimensionValue } from '../../../utils/dimension.utils';\nimport { Theme } from '../../../../theme/theme.types';\nimport { getThemeFormatter } from '../../../../theme/formatter/formatter.utils';\nimport { getChartColors, getStyleNumber } from '@embeddable.com/remarkable-ui';\nimport type {\n ChartClickArgs,\n ScatterChartInputPoint,\n ScatterDatasetExtended,\n} from '@embeddable.com/remarkable-ui';\nimport { getDimensionMeasureColor } from '../../../../theme/styles/styles.utils';\nimport type { ScatterChartProOptionsClickArg } from './ScatterChartPro.types';\nimport { getDimensionFieldName } from '../../../../utils/data.utils';\nimport {\n measureToNullableNumber,\n rawValueToString,\n NULL_GROUP_KEY,\n getScatterScales,\n type RawValue,\n} from '../scatter.utils';\n\nconst buildDatalabelsValue = (\n xMeasure: Measure,\n yMeasure: Measure,\n formatValue: (measure: Measure, value: number | null | undefined) => string,\n) => ({\n formatter: (_value: ScatterDataPoint | number | null, context: Context) => {\n const ds = context.dataset as ScatterDatasetExtended;\n const raw = ds.originalData?.[context.dataIndex];\n if (!raw) return '';\n return `${formatValue(xMeasure, raw.x)}, ${formatValue(yMeasure, raw.y)}`;\n },\n});\n\nexport const getScatterChartProOptions = (\n {\n xMeasure,\n yMeasure,\n noValueLabel,\n showPointLabels,\n }: {\n xMeasure: Measure;\n yMeasure: Measure;\n noValueLabel: string;\n showPointLabels?: boolean;\n },\n theme: Theme,\n): Partial<ChartOptions<'scatter'>> => {\n const themeFormatter = getThemeFormatter(theme);\n\n const formatValue = (measure: Measure, value: number | null | undefined): string => {\n if (value === null || value === undefined) return noValueLabel;\n return themeFormatter.data(measure, value);\n };\n\n const pointRadius = getStyleNumber('--em-scatterchart-point-radius', '0.375rem');\n const labelGap = getStyleNumber('--em-scatterchart-label-stack-gap', '0.25rem');\n const labelLineHeight = getStyleNumber('--em-scatterchart-label-stack-height', '1.25rem');\n\n const captionOffset = pointRadius + labelGap;\n const valueOffset = showPointLabels\n ? pointRadius + labelGap + labelLineHeight + labelGap\n : pointRadius + labelGap;\n\n return {\n scales: getScatterScales(xMeasure, yMeasure, (measure: Measure, value: number) =>\n themeFormatter.data(measure, value),\n ),\n plugins: {\n tooltip: {\n callbacks: {\n label: (ctx) => {\n const ds = ctx.dataset as ScatterDatasetExtended;\n const orig =\n ds.originalData?.[ctx.dataIndex] ??\n (ctx.dataset.data[ctx.dataIndex] as\n | { x: number | null; y: number | null }\n | undefined);\n const prefix = ds.label ? `${ds.label}: ` : '';\n if (!orig) return prefix;\n return `${prefix}(${formatValue(xMeasure, orig.x)}, ${formatValue(yMeasure, orig.y)})`;\n },\n },\n },\n datalabels: {\n labels: {\n value: {\n display: 'auto',\n ...buildDatalabelsValue(xMeasure, yMeasure, formatValue),\n anchor: 'center',\n align: 'bottom',\n offset: valueOffset,\n },\n caption: {\n display: 'auto',\n anchor: 'center',\n align: 'bottom',\n offset: captionOffset,\n },\n },\n },\n },\n };\n};\n\nexport type ScatterPoint = ScatterChartInputPoint & { rowIndex: number };\n\nexport const getPointClickData = (\n point: { datasetIndex: number; index: number },\n datasets: ChartData<'scatter', ScatterPoint[]>['datasets'],\n data: DataResponse['data'],\n xMeasure: Measure,\n yMeasure: Measure,\n pointDimension: Dimension,\n groupByDimension?: Dimension,\n): ScatterChartProOptionsClickArg | null => {\n const rowIdx = datasets[point.datasetIndex]?.data[point.index]?.rowIndex;\n if (rowIdx === undefined) return null;\n const row = data?.[rowIdx] as Record<string, RawValue> | undefined;\n if (!row) return null;\n\n const pointField = getDimensionFieldName(pointDimension);\n const groupField = groupByDimension ? getDimensionFieldName(groupByDimension) : undefined;\n\n const pointDimensionValue = rawValueToString(row[pointField]);\n const groupByDimensionValue = groupField ? rawValueToString(row[groupField]) : null;\n\n return {\n xMeasureValue: rawValueToString(row[xMeasure.name]),\n yMeasureValue: rawValueToString(row[yMeasure.name]),\n pointDimensionValue,\n groupByDimensionValue,\n pointDimensionTimeRange: getTimeRangeFromDimensionValue({\n value: pointDimensionValue,\n dimension: pointDimension,\n }),\n groupByDimensionTimeRange: getTimeRangeFromDimensionValue({\n value: groupByDimensionValue ?? undefined,\n dimension: groupByDimension,\n }),\n };\n};\n\nexport const createScatterClickHandler = ({\n datasets,\n results,\n xMeasure,\n yMeasure,\n pointDimension,\n groupByDimension,\n onPointClick,\n}: {\n datasets: ChartData<'scatter', ScatterPoint[]>['datasets'];\n results: DataResponse;\n xMeasure: Measure;\n yMeasure: Measure;\n pointDimension: Dimension;\n groupByDimension?: Dimension;\n onPointClick?: (payload: ScatterChartProOptionsClickArg) => void;\n}): ((args: ChartClickArgs) => void) => {\n return ({ elementAtEvent }) => {\n const element = elementAtEvent[0];\n if (!element) return;\n const clickData = getPointClickData(\n element,\n datasets,\n results.data,\n xMeasure,\n yMeasure,\n pointDimension,\n groupByDimension,\n );\n if (clickData) onPointClick?.(clickData);\n };\n};\n\nexport const getScatterChartProData = (\n props: {\n data: DataResponse['data'];\n xMeasure: Measure;\n yMeasure: Measure;\n pointDimension: Dimension;\n groupByDimension?: Dimension | null;\n noValueLabel: string;\n pointColor?: string;\n },\n theme: Theme,\n): ChartData<'scatter', ScatterPoint[]> => {\n const themeFormatter = getThemeFormatter(theme);\n const chartColors = getChartColors();\n const data = (props.data ?? []) as Record<string, unknown>[];\n const pointField = getDimensionFieldName(props.pointDimension);\n const overrideColor = props.pointColor?.trim() || undefined;\n\n if (!data.length) {\n return { datasets: [{ label: '', data: [] }] };\n }\n\n const getColor = (\n color: 'background' | 'border',\n dimensionOrMeasure: Dimension | Measure,\n value: string,\n index: number,\n ) =>\n overrideColor ??\n getDimensionMeasureColor({ dimensionOrMeasure, theme, color, value, index, chartColors });\n\n const buildPoint = (row: Record<string, unknown>, rowIndex: number): ScatterPoint => {\n const rawPoint = row[pointField];\n const pointLabel =\n rawPoint == null\n ? props.noValueLabel\n : String(themeFormatter.data(props.pointDimension, rawPoint as string | number | boolean));\n return {\n x: measureToNullableNumber(row[props.xMeasure.name]),\n y: measureToNullableNumber(row[props.yMeasure.name]),\n pointLabel,\n label: pointLabel,\n rowIndex,\n };\n };\n\n if (!props.groupByDimension) {\n return {\n datasets: [\n {\n label: themeFormatter.dimensionOrMeasureTitle(props.yMeasure),\n data: data.map((row, i) => buildPoint(row, i)),\n pointBackgroundColor: getColor('background', props.xMeasure, props.xMeasure.name, 0),\n pointBorderColor: getColor('border', props.xMeasure, props.xMeasure.name, 0),\n },\n ],\n };\n }\n\n const groupDim = props.groupByDimension;\n const groupField = getDimensionFieldName(groupDim);\n const bucket = new Map<string, ScatterPoint[]>();\n\n data.forEach((row, rowIndex) => {\n const key = row[groupField] == null ? NULL_GROUP_KEY : String(row[groupField]);\n const points = bucket.get(key) ?? [];\n points.push(buildPoint(row, rowIndex));\n bucket.set(key, points);\n });\n\n const sortedKeys = [...bucket.keys()].sort((a, b) => {\n if (a === NULL_GROUP_KEY) return 1;\n if (b === NULL_GROUP_KEY) return -1;\n return a.localeCompare(b);\n });\n\n const datasets = sortedKeys.map((key, index) => {\n const points = bucket.get(key)!;\n const firstRowIndex = points[0]!.rowIndex;\n const groupValue = key === NULL_GROUP_KEY ? null : data[firstRowIndex]?.[groupField];\n const seriesLabel =\n key === NULL_GROUP_KEY\n ? props.noValueLabel\n : themeFormatter.data(groupDim, groupValue as string | number | boolean);\n const colorKey = key === NULL_GROUP_KEY ? `${groupDim.name}.null` : `${groupDim.name}.${key}`;\n\n return {\n label: seriesLabel,\n data: points,\n pointBackgroundColor: getColor('background', groupDim, colorKey, index),\n pointBorderColor: getColor('border', groupDim, colorKey, index),\n };\n });\n\n return { datasets };\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { ScatterChart } from '@embeddable.com/remarkable-ui';\nimport { mergician } from 'mergician';\nimport { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { Theme } from '../../../../theme/theme.types';\nimport { i18nSetup, i18n } from '../../../../theme/i18n/i18n';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { ChartCard, ChartCardHeaderProps } from '../../shared/ChartCard/ChartCard';\nimport {\n createScatterClickHandler,\n getScatterChartProData,\n getScatterChartProOptions,\n} from './ScatterChartPro.utils';\n\nimport type { ScatterChartProOptionsClickArg } from './ScatterChartPro.types';\n\nexport type ScatterChartProProps = {\n xMeasure: Measure;\n yMeasure: Measure;\n pointDimension: Dimension;\n groupByDimension?: Dimension;\n results: DataResponse;\n pointColor?: string;\n showLegend?: boolean;\n showTooltips?: boolean;\n showPointLabels?: boolean;\n showValueLabels?: boolean;\n showLogarithmicScale?: boolean;\n xAxisLabel?: string;\n yAxisLabel?: string;\n xAxisRangeMin?: number;\n xAxisRangeMax?: number;\n yAxisRangeMin?: number;\n yAxisRangeMax?: number;\n reverseXAxis?: boolean;\n onPointClick?: (payload: ScatterChartProOptionsClickArg) => void;\n} & ChartCardHeaderProps;\n\nconst ScatterChartPro = (props: ScatterChartProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const {\n xMeasure,\n yMeasure,\n pointDimension,\n groupByDimension,\n results,\n pointColor,\n showLegend,\n showTooltips,\n showPointLabels,\n showValueLabels,\n showLogarithmicScale,\n xAxisRangeMin,\n xAxisRangeMax,\n yAxisRangeMin,\n yAxisRangeMax,\n reverseXAxis,\n onPointClick,\n hideMenu,\n } = props;\n\n const { title, description, tooltip, xAxisLabel, yAxisLabel } = resolveI18nProps(props);\n\n const noValueLabel = i18n.t('charts.scatterChart.noValue');\n\n const chartData = getScatterChartProData(\n {\n data: results.data,\n xMeasure,\n yMeasure,\n pointDimension,\n groupByDimension,\n noValueLabel,\n pointColor,\n },\n theme,\n );\n\n const handleClick = createScatterClickHandler({\n datasets: chartData.datasets,\n results,\n xMeasure,\n yMeasure,\n pointDimension,\n groupByDimension,\n onPointClick,\n });\n\n const chartOptions = mergician(\n getScatterChartProOptions({ xMeasure, yMeasure, noValueLabel, showPointLabels }, theme),\n theme.charts.scatterChartPro?.options ?? {},\n );\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[\n pointDimension,\n xMeasure,\n yMeasure,\n ...(groupByDimension ? [groupByDimension] : []),\n ]}\n errorMessage={results.error}\n description={description}\n title={title}\n tooltip={tooltip}\n hideMenu={hideMenu}\n >\n <ScatterChart\n data={chartData}\n options={chartOptions}\n nullBandLabel={noValueLabel}\n showLegend={showLegend}\n showTooltips={showTooltips}\n showPointLabels={showPointLabels}\n showValueLabels={showValueLabels}\n showLogarithmicScale={showLogarithmicScale}\n xAxisLabel={xAxisLabel}\n yAxisLabel={yAxisLabel}\n xAxisRangeMin={xAxisRangeMin}\n xAxisRangeMax={xAxisRangeMax}\n yAxisRangeMin={yAxisRangeMin}\n yAxisRangeMax={yAxisRangeMax}\n reverseXAxis={reverseXAxis}\n onClick={handleClick}\n />\n </ChartCard>\n );\n};\n\nexport default ScatterChartPro;\n","import { DataResponse, LoadDataRequest, Value, loadData } from '@embeddable.com/core';\nimport type { ScatterChartProOptionsClickArg } from './ScatterChartPro.types';\nimport { definePreview, EmbeddedComponentMeta, Inputs } from '@embeddable.com/react';\nimport Component from './index';\nimport { inputs } from '../../../component.inputs.constants';\nimport { subInputs } from '../../../component.subinputs.constants';\nimport { previewData } from '../../../preview.data.constants';\nimport { getClientContextTimezone } from '../../../../theme/utils/clientContext.utils';\nimport { ThemeClientContext } from '../../../../theme/theme.types';\n\nconst meta = {\n name: 'ScatterChartPro',\n label: 'Scatter Chart',\n description:\n 'Scatter plot showing the relationship between two measures across a grouping dimension. Use to spot correlations.',\n category: 'Scatter Charts',\n inputs: [\n inputs.dataset,\n inputs.xMeasure,\n inputs.yMeasure,\n { ...inputs.dimension, name: 'pointDimension', label: 'Point dimension' },\n {\n ...inputs.dimension,\n name: 'groupByDimension',\n label: 'Group by (optional)',\n required: false,\n },\n {\n ...subInputs.color,\n name: 'pointColor',\n label: 'Point color',\n category: 'Component Settings',\n },\n inputs.title,\n inputs.description,\n inputs.tooltip,\n inputs.showLegend,\n inputs.showTooltips,\n {\n ...inputs.boolean,\n name: 'showPointLabels',\n label: 'Show point labels',\n defaultValue: false,\n category: 'Component Settings',\n },\n inputs.showValueLabels,\n inputs.showLogarithmicScale,\n inputs.xAxisLabel,\n inputs.yAxisLabel,\n inputs.reverseXAxis,\n inputs.xAxisRangeMin,\n inputs.xAxisRangeMax,\n inputs.yAxisRangeMin,\n inputs.yAxisRangeMax,\n inputs.maxResults,\n ],\n events: [\n {\n name: 'onPointClick',\n label: 'A point is clicked',\n properties: [\n { name: 'xMeasureValue', label: 'Clicked X measure value', type: 'string' },\n { name: 'yMeasureValue', label: 'Clicked Y measure value', type: 'string' },\n { name: 'pointDimensionValue', label: 'Clicked point dimension value', type: 'string' },\n { name: 'groupByDimensionValue', label: 'Clicked group by value', type: 'string' },\n {\n name: 'pointDimensionTimeRange',\n label: 'Clicked point dimension time range',\n type: 'timeRange',\n },\n {\n name: 'groupByDimensionTimeRange',\n label: 'Clicked group by time range',\n type: 'timeRange',\n },\n ],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nexport type ScatterChartProState = Record<string, never>;\n\nconst previewConfig = {\n dataset: previewData.dataset,\n xMeasure: previewData.measure,\n yMeasure: previewData.measureVariant,\n pointDimension: previewData.dimension,\n results: previewData.results2Measures1Dimension,\n showLegend: true,\n hideMenu: true,\n};\n\nconst preview = definePreview(Component, previewConfig);\n\nconst loadDataResultsArgs = (\n inputs: Inputs<typeof meta>,\n clientContext?: ThemeClientContext,\n): LoadDataRequest => ({\n limit: inputs.maxResults,\n from: inputs.dataset,\n select: [\n inputs.xMeasure,\n inputs.yMeasure,\n inputs.pointDimension,\n ...(inputs.groupByDimension ? [inputs.groupByDimension] : []),\n ],\n timezone: getClientContextTimezone(clientContext?.timezone),\n});\n\nconst loadDataResults = (\n inputs: Inputs<typeof meta>,\n clientContext: ThemeClientContext,\n): DataResponse => loadData(loadDataResultsArgs(inputs, clientContext));\n\nconst events = {\n onPointClick: (value: ScatterChartProOptionsClickArg) => ({\n xMeasureValue: value.xMeasureValue ?? Value.noFilter(),\n yMeasureValue: value.yMeasureValue ?? Value.noFilter(),\n pointDimensionValue: value.pointDimensionValue ?? Value.noFilter(),\n groupByDimensionValue: value.groupByDimensionValue ?? Value.noFilter(),\n }),\n};\n\nconst props = (\n inputs: Inputs<typeof meta>,\n [_state, _setState]: [ScatterChartProState, (state: ScatterChartProState) => void],\n clientContext: ThemeClientContext,\n) => ({\n ...inputs,\n pointColor: inputs.pointColor as string | undefined,\n results: loadDataResults(inputs, clientContext),\n});\n\nexport const scatterChartPro = {\n Component,\n meta,\n preview,\n previewConfig,\n config: {\n props,\n events,\n },\n results: {\n loadDataArgs: loadDataResultsArgs,\n loadData: loadDataResults,\n },\n} as const;\n"],"names":["buildDatalabelsValue","xMeasure","yMeasure","formatValue","_value","context","raw","_a","getScatterChartProOptions","noValueLabel","showPointLabels","theme","themeFormatter","getThemeFormatter","measure","value","pointRadius","getStyleNumber","labelGap","labelLineHeight","captionOffset","valueOffset","getScatterScales","ctx","ds","orig","prefix","getPointClickData","point","datasets","data","pointDimension","groupByDimension","rowIdx","_b","row","pointField","getDimensionFieldName","groupField","pointDimensionValue","rawValueToString","groupByDimensionValue","getTimeRangeFromDimensionValue","createScatterClickHandler","results","onPointClick","elementAtEvent","element","clickData","getScatterChartProData","props","chartColors","getChartColors","overrideColor","getColor","color","dimensionOrMeasure","index","getDimensionMeasureColor","buildPoint","rowIndex","rawPoint","pointLabel","measureToNullableNumber","i","groupDim","bucket","key","NULL_GROUP_KEY","points","b","firstRowIndex","groupValue","seriesLabel","colorKey","ScatterChartPro","useTheme","i18nSetup","pointColor","showLegend","showTooltips","showValueLabels","showLogarithmicScale","xAxisRangeMin","xAxisRangeMax","yAxisRangeMin","yAxisRangeMax","reverseXAxis","hideMenu","title","description","tooltip","xAxisLabel","yAxisLabel","resolveI18nProps","i18n","chartData","handleClick","chartOptions","mergician","jsx","ChartCard","ScatterChart","meta","inputs","subInputs","previewConfig","previewData","preview","definePreview","Component","loadDataResultsArgs","clientContext","getClientContextTimezone","loadDataResults","loadData","events","Value","_state","_setState","scatterChartPro"],"mappings":";;;;;;;;;;;AAuBA,MAAMA,KAAuB,CAC3BC,GACAC,GACAC,OACI;AAAA,EACJ,WAAW,CAACC,GAA0CC,MAAqB;;AAEzE,UAAMC,KAAMC,IADDF,EAAQ,QACJ,iBAAH,gBAAAE,EAAkBF,EAAQ;AACtC,WAAKC,IACE,GAAGH,EAAYF,GAAUK,EAAI,CAAC,CAAC,KAAKH,EAAYD,GAAUI,EAAI,CAAC,CAAC,KADtD;AAAA,EAEnB;AACF,IAEaE,KAA4B,CACvC;AAAA,EACE,UAAAP;AAAA,EACA,UAAAC;AAAA,EACA,cAAAO;AAAA,EACA,iBAAAC;AACF,GAMAC,MACqC;AACrC,QAAMC,IAAiBC,EAAkBF,CAAK,GAExCR,IAAc,CAACW,GAAkBC,MACjCA,KAAU,OAAoCN,IAC3CG,EAAe,KAAKE,GAASC,CAAK,GAGrCC,IAAcC,EAAe,kCAAkC,UAAU,GACzEC,IAAWD,EAAe,qCAAqC,SAAS,GACxEE,IAAkBF,EAAe,wCAAwC,SAAS,GAElFG,IAAgBJ,IAAcE,GAC9BG,IAAcX,IAChBM,IAAcE,IAAWC,IAAkBD,IAC3CF,IAAcE;AAElB,SAAO;AAAA,IACL,QAAQI;AAAA,MAAiBrB;AAAA,MAAUC;AAAA,MAAU,CAACY,GAAkBC,MAC9DH,EAAe,KAAKE,GAASC,CAAK;AAAA,IAAA;AAAA,IAEpC,SAAS;AAAA,MACP,SAAS;AAAA,QACP,WAAW;AAAA,UACT,OAAO,CAACQ,MAAQ;;AACd,kBAAMC,IAAKD,EAAI,SACTE,MACJlB,IAAAiB,EAAG,iBAAH,gBAAAjB,EAAkBgB,EAAI,eACrBA,EAAI,QAAQ,KAAKA,EAAI,SAAS,GAG3BG,IAASF,EAAG,QAAQ,GAAGA,EAAG,KAAK,OAAO;AAC5C,mBAAKC,IACE,GAAGC,CAAM,IAAIvB,EAAYF,GAAUwB,EAAK,CAAC,CAAC,KAAKtB,EAAYD,GAAUuB,EAAK,CAAC,CAAC,MADjEC;AAAA,UAEpB;AAAA,QAAA;AAAA,MACF;AAAA,MAEF,YAAY;AAAA,QACV,QAAQ;AAAA,UACN,OAAO;AAAA,YACL,SAAS;AAAA,YACT,GAAG1B,GAAqBC,GAAUC,GAAUC,CAAW;AAAA,YACvD,QAAQ;AAAA,YACR,OAAO;AAAA,YACP,QAAQkB;AAAA,UAAA;AAAA,UAEV,SAAS;AAAA,YACP,SAAS;AAAA,YACT,QAAQ;AAAA,YACR,OAAO;AAAA,YACP,QAAQD;AAAA,UAAA;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEJ,GAIaO,KAAoB,CAC/BC,GACAC,GACAC,GACA7B,GACAC,GACA6B,GACAC,MAC0C;;AAC1C,QAAMC,KAASC,KAAA3B,IAAAsB,EAASD,EAAM,YAAY,MAA3B,gBAAArB,EAA8B,KAAKqB,EAAM,WAAzC,gBAAAM,EAAiD;AAChE,MAAID,MAAW,OAAW,QAAO;AACjC,QAAME,IAAML,KAAA,gBAAAA,EAAOG;AACnB,MAAI,CAACE,EAAK,QAAO;AAEjB,QAAMC,IAAaC,EAAsBN,CAAc,GACjDO,IAAaN,IAAmBK,EAAsBL,CAAgB,IAAI,QAE1EO,IAAsBC,EAAiBL,EAAIC,CAAU,CAAC,GACtDK,IAAwBH,IAAaE,EAAiBL,EAAIG,CAAU,CAAC,IAAI;AAE/E,SAAO;AAAA,IACL,eAAeE,EAAiBL,EAAIlC,EAAS,IAAI,CAAC;AAAA,IAClD,eAAeuC,EAAiBL,EAAIjC,EAAS,IAAI,CAAC;AAAA,IAClD,qBAAAqC;AAAA,IACA,uBAAAE;AAAA,IACA,yBAAyBC,EAA+B;AAAA,MACtD,OAAOH;AAAA,MACP,WAAWR;AAAA,IAAA,CACZ;AAAA,IACD,2BAA2BW,EAA+B;AAAA,MACxD,OAAOD,KAAyB;AAAA,MAChC,WAAWT;AAAA,IAAA,CACZ;AAAA,EAAA;AAEL,GAEaW,KAA4B,CAAC;AAAA,EACxC,UAAAd;AAAA,EACA,SAAAe;AAAA,EACA,UAAA3C;AAAA,EACA,UAAAC;AAAA,EACA,gBAAA6B;AAAA,EACA,kBAAAC;AAAA,EACA,cAAAa;AACF,MASS,CAAC,EAAE,gBAAAC,QAAqB;AAC7B,QAAMC,IAAUD,EAAe,CAAC;AAChC,MAAI,CAACC,EAAS;AACd,QAAMC,IAAYrB;AAAA,IAChBoB;AAAA,IACAlB;AAAA,IACAe,EAAQ;AAAA,IACR3C;AAAA,IACAC;AAAA,IACA6B;AAAA,IACAC;AAAA,EAAA;AAEF,EAAIgB,qBAA0BA;AAChC,GAGWC,KAAyB,CACpCC,GASAvC,MACyC;;AACzC,QAAMC,IAAiBC,EAAkBF,CAAK,GACxCwC,IAAcC,EAAA,GACdtB,IAAQoB,EAAM,QAAQ,CAAA,GACtBd,IAAaC,EAAsBa,EAAM,cAAc,GACvDG,MAAgB9C,IAAA2C,EAAM,eAAN,gBAAA3C,EAAkB,WAAU;AAElD,MAAI,CAACuB,EAAK;AACR,WAAO,EAAE,UAAU,CAAC,EAAE,OAAO,IAAI,MAAM,CAAA,EAAC,CAAG,EAAA;AAG7C,QAAMwB,IAAW,CACfC,GACAC,GACAzC,GACA0C,MAEAJ,KACAK,GAAyB,EAAE,oBAAAF,GAAoB,OAAA7C,GAAO,OAAA4C,GAAO,OAAAxC,GAAO,OAAA0C,GAAO,aAAAN,GAAa,GAEpFQ,IAAa,CAACxB,GAA8ByB,MAAmC;AACnF,UAAMC,IAAW1B,EAAIC,CAAU,GACzB0B,IACJD,KAAY,OACRX,EAAM,eACN,OAAOtC,EAAe,KAAKsC,EAAM,gBAAgBW,CAAqC,CAAC;AAC7F,WAAO;AAAA,MACL,GAAGE,EAAwB5B,EAAIe,EAAM,SAAS,IAAI,CAAC;AAAA,MACnD,GAAGa,EAAwB5B,EAAIe,EAAM,SAAS,IAAI,CAAC;AAAA,MACnD,YAAAY;AAAA,MACA,OAAOA;AAAA,MACP,UAAAF;AAAA,IAAA;AAAA,EAEJ;AAEA,MAAI,CAACV,EAAM;AACT,WAAO;AAAA,MACL,UAAU;AAAA,QACR;AAAA,UACE,OAAOtC,EAAe,wBAAwBsC,EAAM,QAAQ;AAAA,UAC5D,MAAMpB,EAAK,IAAI,CAACK,GAAK6B,MAAML,EAAWxB,GAAK6B,CAAC,CAAC;AAAA,UAC7C,sBAAsBV,EAAS,cAAcJ,EAAM,UAAUA,EAAM,SAAS,MAAM,CAAC;AAAA,UACnF,kBAAkBI,EAAS,UAAUJ,EAAM,UAAUA,EAAM,SAAS,MAAM,CAAC;AAAA,QAAA;AAAA,MAC7E;AAAA,IACF;AAIJ,QAAMe,IAAWf,EAAM,kBACjBZ,IAAaD,EAAsB4B,CAAQ,GAC3CC,wBAAa,IAAA;AAEnB,SAAApC,EAAK,QAAQ,CAACK,GAAKyB,MAAa;AAC9B,UAAMO,IAAMhC,EAAIG,CAAU,KAAK,OAAO8B,IAAiB,OAAOjC,EAAIG,CAAU,CAAC,GACvE+B,IAASH,EAAO,IAAIC,CAAG,KAAK,CAAA;AAClC,IAAAE,EAAO,KAAKV,EAAWxB,GAAKyB,CAAQ,CAAC,GACrCM,EAAO,IAAIC,GAAKE,CAAM;AAAA,EACxB,CAAC,GA0BM,EAAE,UAxBU,CAAC,GAAGH,EAAO,KAAA,CAAM,EAAE,KAAK,CAAC,GAAGI,MACzC,MAAMF,IAAuB,IAC7BE,MAAMF,IAAuB,KAC1B,EAAE,cAAcE,CAAC,CACzB,EAE2B,IAAI,CAACH,GAAKV,MAAU;;AAC9C,UAAMY,IAASH,EAAO,IAAIC,CAAG,GACvBI,IAAgBF,EAAO,CAAC,EAAG,UAC3BG,IAAaL,MAAQC,IAAiB,QAAO7D,IAAAuB,EAAKyC,CAAa,MAAlB,gBAAAhE,EAAsB+B,IACnEmC,IACJN,MAAQC,IACJlB,EAAM,eACNtC,EAAe,KAAKqD,GAAUO,CAAuC,GACrEE,IAAWP,MAAQC,IAAiB,GAAGH,EAAS,IAAI,UAAU,GAAGA,EAAS,IAAI,IAAIE,CAAG;AAE3F,WAAO;AAAA,MACL,OAAOM;AAAA,MACP,MAAMJ;AAAA,MACN,sBAAsBf,EAAS,cAAcW,GAAUS,GAAUjB,CAAK;AAAA,MACtE,kBAAkBH,EAAS,UAAUW,GAAUS,GAAUjB,CAAK;AAAA,IAAA;AAAA,EAElE,CAAC,EAEQ;AACX,GC3OMkB,IAAkB,CAACzB,MAAgC;;AACvD,QAAMvC,IAAQiE,EAAA;AACd,EAAAC,EAAUlE,CAAK;AAEf,QAAM;AAAA,IACJ,UAAAV;AAAA,IACA,UAAAC;AAAA,IACA,gBAAA6B;AAAA,IACA,kBAAAC;AAAA,IACA,SAAAY;AAAA,IACA,YAAAkC;AAAA,IACA,YAAAC;AAAA,IACA,cAAAC;AAAA,IACA,iBAAAtE;AAAA,IACA,iBAAAuE;AAAA,IACA,sBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,eAAAC;AAAA,IACA,eAAAC;AAAA,IACA,eAAAC;AAAA,IACA,cAAAC;AAAA,IACA,cAAA1C;AAAA,IACA,UAAA2C;AAAA,EAAA,IACEtC,GAEE,EAAE,OAAAuC,GAAO,aAAAC,GAAa,SAAAC,GAAS,YAAAC,GAAY,YAAAC,EAAA,IAAeC,EAAiB5C,CAAK,GAEhFzC,IAAesF,EAAK,EAAE,6BAA6B,GAEnDC,IAAY/C;AAAA,IAChB;AAAA,MACE,MAAML,EAAQ;AAAA,MACd,UAAA3C;AAAA,MACA,UAAAC;AAAA,MACA,gBAAA6B;AAAA,MACA,kBAAAC;AAAA,MACA,cAAAvB;AAAA,MACA,YAAAqE;AAAA,IAAA;AAAA,IAEFnE;AAAA,EAAA,GAGIsF,IAActD,GAA0B;AAAA,IAC5C,UAAUqD,EAAU;AAAA,IACpB,SAAApD;AAAA,IACA,UAAA3C;AAAA,IACA,UAAAC;AAAA,IACA,gBAAA6B;AAAA,IACA,kBAAAC;AAAA,IACA,cAAAa;AAAA,EAAA,CACD,GAEKqD,IAAeC;AAAA,IACnB3F,GAA0B,EAAE,UAAAP,GAAU,UAAAC,GAAU,cAAAO,GAAc,iBAAAC,EAAA,GAAmBC,CAAK;AAAA,MACtFJ,IAAAI,EAAM,OAAO,oBAAb,gBAAAJ,EAA8B,YAAW,CAAA;AAAA,EAAC;AAG5C,SACE6F,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAMzD;AAAA,MACN,uBAAuB;AAAA,QACrBb;AAAA,QACA9B;AAAA,QACAC;AAAA,QACA,GAAI8B,IAAmB,CAACA,CAAgB,IAAI,CAAA;AAAA,MAAC;AAAA,MAE/C,cAAcY,EAAQ;AAAA,MACtB,aAAA8C;AAAA,MACA,OAAAD;AAAA,MACA,SAAAE;AAAA,MACA,UAAAH;AAAA,MAEA,UAAAY,gBAAAA,EAAAA;AAAAA,QAACE;AAAA,QAAA;AAAA,UACC,MAAMN;AAAA,UACN,SAASE;AAAA,UACT,eAAezF;AAAA,UACf,YAAAsE;AAAA,UACA,cAAAC;AAAA,UACA,iBAAAtE;AAAA,UACA,iBAAAuE;AAAA,UACA,sBAAAC;AAAA,UACA,YAAAU;AAAA,UACA,YAAAC;AAAA,UACA,eAAAV;AAAA,UACA,eAAAC;AAAA,UACA,eAAAC;AAAA,UACA,eAAAC;AAAA,UACA,cAAAC;AAAA,UACA,SAASU;AAAA,QAAA;AAAA,MAAA;AAAA,IACX;AAAA,EAAA;AAGN;;;8CCxHMM,KAAO;AAAA,EACX,MAAM;AAAA,EACN,OAAO;AAAA,EACP,aACE;AAAA,EACF,UAAU;AAAA,EACV,QAAQ;AAAA,IACNC,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACP,EAAE,GAAGA,EAAO,WAAW,MAAM,kBAAkB,OAAO,kBAAA;AAAA,IACtD;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU;AAAA,IAAA;AAAA,IAEZ;AAAA,MACE,GAAGC,GAAU;AAAA,MACb,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU;AAAA,IAAA;AAAA,IAEZD,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACP;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,MAAM;AAAA,MACN,OAAO;AAAA,MACP,cAAc;AAAA,MACd,UAAU;AAAA,IAAA;AAAA,IAEZA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,MACP,YAAY;AAAA,QACV,EAAE,MAAM,iBAAiB,OAAO,2BAA2B,MAAM,SAAA;AAAA,QACjE,EAAE,MAAM,iBAAiB,OAAO,2BAA2B,MAAM,SAAA;AAAA,QACjE,EAAE,MAAM,uBAAuB,OAAO,iCAAiC,MAAM,SAAA;AAAA,QAC7E,EAAE,MAAM,yBAAyB,OAAO,0BAA0B,MAAM,SAAA;AAAA,QACxE;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QAAA;AAAA,QAER;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QAAA;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEJ,GAIME,IAAgB;AAAA,EACpB,SAASC,EAAY;AAAA,EACrB,UAAUA,EAAY;AAAA,EACtB,UAAUA,EAAY;AAAA,EACtB,gBAAgBA,EAAY;AAAA,EAC5B,SAASA,EAAY;AAAA,EACrB,YAAY;AAAA,EACZ,UAAU;AACZ,GAEMC,KAAUC,EAAcC,GAAWJ,CAAa,GAEhDK,IAAsB,CAC1BP,GACAQ,OACqB;AAAA,EACrB,OAAOR,EAAO;AAAA,EACd,MAAMA,EAAO;AAAA,EACb,QAAQ;AAAA,IACNA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACP,GAAIA,EAAO,mBAAmB,CAACA,EAAO,gBAAgB,IAAI,CAAA;AAAA,EAAC;AAAA,EAE7D,UAAUS,GAAyBD,KAAA,gBAAAA,EAAe,QAAQ;AAC5D,IAEME,IAAkB,CACtBV,GACAQ,MACiBG,EAASJ,EAAoBP,GAAQQ,CAAa,CAAC,GAEhEI,KAAS;AAAA,EACb,cAAc,CAACrG,OAA2C;AAAA,IACxD,eAAeA,EAAM,iBAAiBsG,EAAM,SAAA;AAAA,IAC5C,eAAetG,EAAM,iBAAiBsG,EAAM,SAAA;AAAA,IAC5C,qBAAqBtG,EAAM,uBAAuBsG,EAAM,SAAA;AAAA,IACxD,uBAAuBtG,EAAM,yBAAyBsG,EAAM,SAAA;AAAA,EAAS;AAEzE,GAEMnE,KAAQ,CACZsD,GACA,CAACc,GAAQC,CAAS,GAClBP,OACI;AAAA,EACJ,GAAGR;AAAAA,EACH,YAAYA,EAAO;AAAA,EACnB,SAASU,EAAgBV,GAAQQ,CAAa;AAChD,IAEaQ,KAAkB;AAAA,EAAA,WAC7BV;AAAAA,EACA,MAAAP;AAAA,EACA,SAAAK;AAAA,EACA,eAAAF;AAAA,EACA,QAAQ;AAAA,IACN,OAAAxD;AAAA,IACA,QAAAkE;AAAA,EAAA;AAAA,EAEF,SAAS;AAAA,IACP,cAAcL;AAAA,IACd,UAAUG;AAAA,EAAA;AAEd;"}
|
|
1
|
+
{"version":3,"file":"definition-J3ahAeKj.js","sources":["../src/components/charts/scatter/ScatterChartPro/ScatterChartPro.utils.ts","../src/components/charts/scatter/ScatterChartPro/index.tsx","../src/components/charts/scatter/ScatterChartPro/definition.ts"],"sourcesContent":["import { ChartData, type ChartOptions, ScatterDataPoint } from 'chart.js';\nimport { Context } from 'chartjs-plugin-datalabels';\nimport { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { getTimeRangeFromDimensionValue } from '../../../utils/dimension.utils';\nimport { Theme } from '../../../../theme/theme.types';\nimport { getThemeFormatter } from '../../../../theme/formatter/formatter.utils';\nimport { getChartColors, getStyleNumber } from '@embeddable.com/remarkable-ui';\nimport type {\n ChartClickArgs,\n ScatterChartInputPoint,\n ScatterDatasetExtended,\n} from '@embeddable.com/remarkable-ui';\nimport { getDimensionMeasureColor } from '../../../../theme/styles/styles.utils';\nimport type { ScatterChartProOptionsClickArg } from './ScatterChartPro.types';\nimport { getDimensionFieldName } from '../../../../utils/data.utils';\nimport {\n measureToNullableNumber,\n rawValueToString,\n NULL_GROUP_KEY,\n getScatterScales,\n type RawValue,\n} from '../scatter.utils';\n\nconst buildDatalabelsValue = (\n xMeasure: Measure,\n yMeasure: Measure,\n formatValue: (measure: Measure, value: number | null | undefined) => string,\n) => ({\n formatter: (_value: ScatterDataPoint | number | null, context: Context) => {\n const ds = context.dataset as ScatterDatasetExtended;\n const raw = ds.originalData?.[context.dataIndex];\n if (!raw) return '';\n return `${formatValue(xMeasure, raw.x)}, ${formatValue(yMeasure, raw.y)}`;\n },\n});\n\nexport const getScatterChartProOptions = (\n {\n xMeasure,\n yMeasure,\n noValueLabel,\n showPointLabels,\n }: {\n xMeasure: Measure;\n yMeasure: Measure;\n noValueLabel: string;\n showPointLabels?: boolean;\n },\n theme: Theme,\n): Partial<ChartOptions<'scatter'>> => {\n const themeFormatter = getThemeFormatter(theme);\n\n const formatValue = (measure: Measure, value: number | null | undefined): string => {\n if (value === null || value === undefined) return noValueLabel;\n return themeFormatter.data(measure, value);\n };\n\n const pointRadius = getStyleNumber('--em-scatterchart-point-radius', '0.375rem');\n const labelGap = getStyleNumber('--em-scatterchart-label-stack-gap', '0.25rem');\n const labelLineHeight = getStyleNumber('--em-scatterchart-label-stack-height', '1.25rem');\n\n const captionOffset = pointRadius + labelGap;\n const valueOffset = showPointLabels\n ? pointRadius + labelGap + labelLineHeight + labelGap\n : pointRadius + labelGap;\n\n return {\n scales: getScatterScales(xMeasure, yMeasure, (measure: Measure, value: number) =>\n themeFormatter.data(measure, value),\n ),\n plugins: {\n tooltip: {\n callbacks: {\n label: (ctx) => {\n const ds = ctx.dataset as ScatterDatasetExtended;\n const orig =\n ds.originalData?.[ctx.dataIndex] ??\n (ctx.dataset.data[ctx.dataIndex] as\n | { x: number | null; y: number | null }\n | undefined);\n const prefix = ds.label ? `${ds.label}: ` : '';\n if (!orig) return prefix;\n return `${prefix}(${formatValue(xMeasure, orig.x)}, ${formatValue(yMeasure, orig.y)})`;\n },\n },\n },\n datalabels: {\n labels: {\n value: {\n display: 'auto',\n ...buildDatalabelsValue(xMeasure, yMeasure, formatValue),\n anchor: 'center',\n align: 'bottom',\n offset: valueOffset,\n },\n caption: {\n display: 'auto',\n anchor: 'center',\n align: 'bottom',\n offset: captionOffset,\n },\n },\n },\n },\n };\n};\n\nexport type ScatterPoint = ScatterChartInputPoint & { rowIndex: number };\n\nexport const getPointClickData = (\n point: { datasetIndex: number; index: number },\n datasets: ChartData<'scatter', ScatterPoint[]>['datasets'],\n data: DataResponse['data'],\n xMeasure: Measure,\n yMeasure: Measure,\n pointDimension: Dimension,\n groupByDimension?: Dimension,\n): ScatterChartProOptionsClickArg | null => {\n const rowIdx = datasets[point.datasetIndex]?.data[point.index]?.rowIndex;\n if (rowIdx === undefined) return null;\n const row = data?.[rowIdx] as Record<string, RawValue> | undefined;\n if (!row) return null;\n\n const pointField = getDimensionFieldName(pointDimension);\n const groupField = groupByDimension ? getDimensionFieldName(groupByDimension) : undefined;\n\n const pointDimensionValue = rawValueToString(row[pointField]);\n const groupByDimensionValue = groupField ? rawValueToString(row[groupField]) : null;\n\n return {\n xMeasureValue: rawValueToString(row[xMeasure.name]),\n yMeasureValue: rawValueToString(row[yMeasure.name]),\n pointDimensionValue,\n groupByDimensionValue,\n pointDimensionTimeRange: getTimeRangeFromDimensionValue({\n value: pointDimensionValue,\n dimension: pointDimension,\n }),\n groupByDimensionTimeRange: getTimeRangeFromDimensionValue({\n value: groupByDimensionValue ?? undefined,\n dimension: groupByDimension,\n }),\n };\n};\n\nexport const createScatterClickHandler = ({\n datasets,\n results,\n xMeasure,\n yMeasure,\n pointDimension,\n groupByDimension,\n onPointClick,\n}: {\n datasets: ChartData<'scatter', ScatterPoint[]>['datasets'];\n results: DataResponse;\n xMeasure: Measure;\n yMeasure: Measure;\n pointDimension: Dimension;\n groupByDimension?: Dimension;\n onPointClick?: (payload: ScatterChartProOptionsClickArg) => void;\n}): ((args: ChartClickArgs) => void) => {\n return ({ elementAtEvent }) => {\n const element = elementAtEvent[0];\n if (!element) return;\n const clickData = getPointClickData(\n element,\n datasets,\n results.data,\n xMeasure,\n yMeasure,\n pointDimension,\n groupByDimension,\n );\n if (clickData) onPointClick?.(clickData);\n };\n};\n\nexport const getScatterChartProData = (\n props: {\n data: DataResponse['data'];\n xMeasure: Measure;\n yMeasure: Measure;\n pointDimension: Dimension;\n groupByDimension?: Dimension | null;\n noValueLabel: string;\n pointColor?: string;\n },\n theme: Theme,\n): ChartData<'scatter', ScatterPoint[]> => {\n const themeFormatter = getThemeFormatter(theme);\n const chartColors = getChartColors();\n const data = (props.data ?? []) as Record<string, unknown>[];\n const pointField = getDimensionFieldName(props.pointDimension);\n const overrideColor = props.pointColor?.trim() || undefined;\n\n if (!data.length) {\n return { datasets: [{ label: '', data: [] }] };\n }\n\n const getColor = (\n color: 'background' | 'border',\n dimensionOrMeasure: Dimension | Measure,\n value: string,\n index: number,\n ) =>\n overrideColor ??\n getDimensionMeasureColor({ dimensionOrMeasure, theme, color, value, index, chartColors });\n\n const buildPoint = (row: Record<string, unknown>, rowIndex: number): ScatterPoint => {\n const rawPoint = row[pointField];\n const pointLabel =\n rawPoint == null\n ? props.noValueLabel\n : String(themeFormatter.data(props.pointDimension, rawPoint as string | number | boolean));\n return {\n x: measureToNullableNumber(row[props.xMeasure.name]),\n y: measureToNullableNumber(row[props.yMeasure.name]),\n pointLabel,\n label: pointLabel,\n rowIndex,\n };\n };\n\n if (!props.groupByDimension) {\n return {\n datasets: [\n {\n label: themeFormatter.dimensionOrMeasureTitle(props.yMeasure),\n data: data.map((row, i) => buildPoint(row, i)),\n pointBackgroundColor: getColor('background', props.xMeasure, props.xMeasure.name, 0),\n pointBorderColor: getColor('border', props.xMeasure, props.xMeasure.name, 0),\n },\n ],\n };\n }\n\n const groupDim = props.groupByDimension;\n const groupField = getDimensionFieldName(groupDim);\n const bucket = new Map<string, ScatterPoint[]>();\n\n data.forEach((row, rowIndex) => {\n const key = row[groupField] == null ? NULL_GROUP_KEY : String(row[groupField]);\n const points = bucket.get(key) ?? [];\n points.push(buildPoint(row, rowIndex));\n bucket.set(key, points);\n });\n\n const sortedKeys = [...bucket.keys()].sort((a, b) => {\n if (a === NULL_GROUP_KEY) return 1;\n if (b === NULL_GROUP_KEY) return -1;\n return a.localeCompare(b);\n });\n\n const datasets = sortedKeys.map((key, index) => {\n const points = bucket.get(key)!;\n const firstRowIndex = points[0]!.rowIndex;\n const groupValue = key === NULL_GROUP_KEY ? null : data[firstRowIndex]?.[groupField];\n const seriesLabel =\n key === NULL_GROUP_KEY\n ? props.noValueLabel\n : themeFormatter.data(groupDim, groupValue as string | number | boolean);\n const colorKey = key === NULL_GROUP_KEY ? `${groupDim.name}.null` : `${groupDim.name}.${key}`;\n\n return {\n label: seriesLabel,\n data: points,\n pointBackgroundColor: getColor('background', groupDim, colorKey, index),\n pointBorderColor: getColor('border', groupDim, colorKey, index),\n };\n });\n\n return { datasets };\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { ScatterChart } from '@embeddable.com/remarkable-ui';\nimport { mergician } from 'mergician';\nimport { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { Theme } from '../../../../theme/theme.types';\nimport { i18nSetup, i18n } from '../../../../theme/i18n/i18n';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { ChartCard, ChartCardHeaderProps } from '../../shared/ChartCard/ChartCard';\nimport {\n createScatterClickHandler,\n getScatterChartProData,\n getScatterChartProOptions,\n} from './ScatterChartPro.utils';\n\nimport type { ScatterChartProOptionsClickArg } from './ScatterChartPro.types';\n\nexport type ScatterChartProProps = {\n xMeasure: Measure;\n yMeasure: Measure;\n pointDimension: Dimension;\n groupByDimension?: Dimension;\n results: DataResponse;\n pointColor?: string;\n showLegend?: boolean;\n showTooltips?: boolean;\n showPointLabels?: boolean;\n showValueLabels?: boolean;\n showLogarithmicScale?: boolean;\n xAxisLabel?: string;\n yAxisLabel?: string;\n xAxisRangeMin?: number;\n xAxisRangeMax?: number;\n yAxisRangeMin?: number;\n yAxisRangeMax?: number;\n reverseXAxis?: boolean;\n onPointClick?: (payload: ScatterChartProOptionsClickArg) => void;\n} & ChartCardHeaderProps;\n\nconst ScatterChartPro = (props: ScatterChartProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const {\n xMeasure,\n yMeasure,\n pointDimension,\n groupByDimension,\n results,\n pointColor,\n showLegend,\n showTooltips,\n showPointLabels,\n showValueLabels,\n showLogarithmicScale,\n xAxisRangeMin,\n xAxisRangeMax,\n yAxisRangeMin,\n yAxisRangeMax,\n reverseXAxis,\n onPointClick,\n hideMenu,\n } = props;\n\n const { title, description, tooltip, xAxisLabel, yAxisLabel } = resolveI18nProps(props);\n\n const noValueLabel = i18n.t('charts.scatterChart.noValue');\n\n const chartData = getScatterChartProData(\n {\n data: results.data,\n xMeasure,\n yMeasure,\n pointDimension,\n groupByDimension,\n noValueLabel,\n pointColor,\n },\n theme,\n );\n\n const handleClick = createScatterClickHandler({\n datasets: chartData.datasets,\n results,\n xMeasure,\n yMeasure,\n pointDimension,\n groupByDimension,\n onPointClick,\n });\n\n const chartOptions = mergician(\n getScatterChartProOptions({ xMeasure, yMeasure, noValueLabel, showPointLabels }, theme),\n theme.charts.scatterChartPro?.options ?? {},\n );\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[\n pointDimension,\n xMeasure,\n yMeasure,\n ...(groupByDimension ? [groupByDimension] : []),\n ]}\n errorMessage={results.error}\n description={description}\n title={title}\n tooltip={tooltip}\n hideMenu={hideMenu}\n >\n <ScatterChart\n data={chartData}\n options={chartOptions}\n nullBandLabel={noValueLabel}\n showLegend={showLegend}\n showTooltips={showTooltips}\n showPointLabels={showPointLabels}\n showValueLabels={showValueLabels}\n showLogarithmicScale={showLogarithmicScale}\n xAxisLabel={xAxisLabel}\n yAxisLabel={yAxisLabel}\n xAxisRangeMin={xAxisRangeMin}\n xAxisRangeMax={xAxisRangeMax}\n yAxisRangeMin={yAxisRangeMin}\n yAxisRangeMax={yAxisRangeMax}\n reverseXAxis={reverseXAxis}\n onClick={handleClick}\n />\n </ChartCard>\n );\n};\n\nexport default ScatterChartPro;\n","import { DataResponse, LoadDataRequest, Value, loadData } from '@embeddable.com/core';\nimport type { ScatterChartProOptionsClickArg } from './ScatterChartPro.types';\nimport { definePreview, EmbeddedComponentMeta, Inputs } from '@embeddable.com/react';\nimport Component from './index';\nimport { inputs } from '../../../component.inputs.constants';\nimport { subInputs } from '../../../component.subinputs.constants';\nimport { previewData } from '../../../preview.data.constants';\nimport { getClientContextTimezone } from '../../../../theme/utils/clientContext.utils';\nimport { ThemeClientContext } from '../../../../theme/theme.types';\n\nconst meta = {\n name: 'ScatterChartPro',\n label: 'Scatter Chart',\n description:\n 'Scatter plot showing the relationship between two measures across a grouping dimension. Use to spot correlations.',\n category: 'Scatter Charts',\n inputs: [\n inputs.dataset,\n inputs.xMeasure,\n inputs.yMeasure,\n { ...inputs.dimension, name: 'pointDimension', label: 'Point dimension' },\n {\n ...inputs.dimension,\n name: 'groupByDimension',\n label: 'Group by (optional)',\n required: false,\n },\n {\n ...subInputs.color,\n name: 'pointColor',\n label: 'Point color',\n category: 'Component Settings',\n },\n inputs.title,\n inputs.description,\n inputs.tooltip,\n inputs.showLegend,\n inputs.showTooltips,\n {\n ...inputs.boolean,\n name: 'showPointLabels',\n label: 'Show point labels',\n defaultValue: false,\n category: 'Component Settings',\n },\n inputs.showValueLabels,\n inputs.showLogarithmicScale,\n inputs.xAxisLabel,\n inputs.yAxisLabel,\n inputs.reverseXAxis,\n inputs.xAxisRangeMin,\n inputs.xAxisRangeMax,\n inputs.yAxisRangeMin,\n inputs.yAxisRangeMax,\n inputs.maxResults,\n ],\n events: [\n {\n name: 'onPointClick',\n label: 'A point is clicked',\n properties: [\n { name: 'xMeasureValue', label: 'Clicked X measure value', type: 'string' },\n { name: 'yMeasureValue', label: 'Clicked Y measure value', type: 'string' },\n { name: 'pointDimensionValue', label: 'Clicked point dimension value', type: 'string' },\n { name: 'groupByDimensionValue', label: 'Clicked group by value', type: 'string' },\n {\n name: 'pointDimensionTimeRange',\n label: 'Clicked point dimension time range',\n type: 'timeRange',\n },\n {\n name: 'groupByDimensionTimeRange',\n label: 'Clicked group by time range',\n type: 'timeRange',\n },\n ],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nexport type ScatterChartProState = Record<string, never>;\n\nconst previewConfig = {\n dataset: previewData.dataset,\n xMeasure: previewData.measure,\n yMeasure: previewData.measureVariant,\n pointDimension: previewData.dimension,\n results: previewData.results2Measures1Dimension,\n showLegend: true,\n hideMenu: true,\n};\n\nconst preview = definePreview(Component, previewConfig);\n\nconst loadDataResultsArgs = (\n inputs: Inputs<typeof meta>,\n clientContext?: ThemeClientContext,\n): LoadDataRequest => ({\n limit: inputs.maxResults,\n from: inputs.dataset,\n select: [\n inputs.xMeasure,\n inputs.yMeasure,\n inputs.pointDimension,\n ...(inputs.groupByDimension ? [inputs.groupByDimension] : []),\n ],\n timezone: getClientContextTimezone(clientContext?.timezone),\n});\n\nconst loadDataResults = (\n inputs: Inputs<typeof meta>,\n clientContext: ThemeClientContext,\n): DataResponse => loadData(loadDataResultsArgs(inputs, clientContext));\n\nconst events = {\n onPointClick: (value: ScatterChartProOptionsClickArg) => ({\n xMeasureValue: value.xMeasureValue ?? Value.noFilter(),\n yMeasureValue: value.yMeasureValue ?? Value.noFilter(),\n pointDimensionValue: value.pointDimensionValue ?? Value.noFilter(),\n groupByDimensionValue: value.groupByDimensionValue ?? Value.noFilter(),\n }),\n};\n\nconst props = (\n inputs: Inputs<typeof meta>,\n [_state, _setState]: [ScatterChartProState, (state: ScatterChartProState) => void],\n clientContext: ThemeClientContext,\n) => ({\n ...inputs,\n pointColor: inputs.pointColor as string | undefined,\n results: loadDataResults(inputs, clientContext),\n});\n\nexport const scatterChartPro = {\n Component,\n meta,\n preview,\n previewConfig,\n config: {\n props,\n events,\n },\n results: {\n loadDataArgs: loadDataResultsArgs,\n loadData: loadDataResults,\n },\n} as const;\n"],"names":["buildDatalabelsValue","xMeasure","yMeasure","formatValue","_value","context","raw","_a","getScatterChartProOptions","noValueLabel","showPointLabels","theme","themeFormatter","getThemeFormatter","measure","value","pointRadius","getStyleNumber","labelGap","labelLineHeight","captionOffset","valueOffset","getScatterScales","ctx","ds","orig","prefix","getPointClickData","point","datasets","data","pointDimension","groupByDimension","rowIdx","_b","row","pointField","getDimensionFieldName","groupField","pointDimensionValue","rawValueToString","groupByDimensionValue","getTimeRangeFromDimensionValue","createScatterClickHandler","results","onPointClick","elementAtEvent","element","clickData","getScatterChartProData","props","chartColors","getChartColors","overrideColor","getColor","color","dimensionOrMeasure","index","getDimensionMeasureColor","buildPoint","rowIndex","rawPoint","pointLabel","measureToNullableNumber","i","groupDim","bucket","key","NULL_GROUP_KEY","points","a","b","firstRowIndex","groupValue","seriesLabel","colorKey","ScatterChartPro","useTheme","i18nSetup","pointColor","showLegend","showTooltips","showValueLabels","showLogarithmicScale","xAxisRangeMin","xAxisRangeMax","yAxisRangeMin","yAxisRangeMax","reverseXAxis","hideMenu","title","description","tooltip","xAxisLabel","yAxisLabel","resolveI18nProps","i18n","chartData","handleClick","chartOptions","mergician","jsx","ChartCard","ScatterChart","meta","inputs","subInputs","previewConfig","previewData","preview","definePreview","Component","loadDataResultsArgs","clientContext","getClientContextTimezone","loadDataResults","loadData","events","Value","_state","_setState","scatterChartPro"],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { j as C, Q as ie, l as F } from "./index-BDd5cXFC.js";
|
|
2
2
|
import { useTheme as re, definePreview as le } from "@embeddable.com/react";
|
|
3
3
|
import { i as me, r as ue, a as de } from "./component.utils-oQMZT7TK.js";
|
|
4
|
-
import { C as ce } from "./ChartCard-
|
|
4
|
+
import { C as ce } from "./ChartCard-Zy5lPApV.js";
|
|
5
5
|
import { useRef as we, useState as x, useEffect as be } from "react";
|
|
6
|
-
import { u as A } from "./charts.fillGaps.hooks-
|
|
7
|
-
import {
|
|
6
|
+
import { u as A } from "./charts.fillGaps.hooks-BemPBhvC.js";
|
|
7
|
+
import { g as M } from "./formatter.utils-DE-_ADag.js";
|
|
8
8
|
import { u as pe } from "./tables.hooks-fVC_4V5K.js";
|
|
9
|
-
import { i as a, s as f } from "./component.inputs.constants-
|
|
10
|
-
import { p as b } from "./preview.data.constants-
|
|
9
|
+
import { i as a, s as f } from "./component.inputs.constants-DoBT8ykS.js";
|
|
10
|
+
import { p as b } from "./preview.data.constants-B3oyUsaQ.js";
|
|
11
11
|
import { g as B } from "./clientContext.utils-DpB5KsfX.js";
|
|
12
12
|
const Re = (e, o) => {
|
|
13
13
|
const s = M(o);
|
|
@@ -60,14 +60,14 @@ const Re = (e, o) => {
|
|
|
60
60
|
}), V = A({
|
|
61
61
|
results: q,
|
|
62
62
|
dimension: r
|
|
63
|
-
}),
|
|
63
|
+
}), Q = pe({
|
|
64
64
|
results: V,
|
|
65
65
|
columnOrder: K,
|
|
66
66
|
rowOrder: N,
|
|
67
67
|
columnDimension: c,
|
|
68
68
|
rowDimension: r,
|
|
69
69
|
measures: m
|
|
70
|
-
}),
|
|
70
|
+
}), H = we(null), J = Re({ measures: m, displayNullAs: G }, o), U = h({ dimension: r }, o), X = u ? h({ dimension: u }, o) : void 0, Y = h({ dimension: c }, o), Z = fe(m), $ = he(m), [ee, D] = x(/* @__PURE__ */ new Set()), [oe, se] = x(/* @__PURE__ */ new Map()), ne = (l) => {
|
|
71
71
|
D((d) => new Set(d).add(l)), I(l);
|
|
72
72
|
};
|
|
73
73
|
be(() => {
|
|
@@ -94,7 +94,7 @@ const Re = (e, o) => {
|
|
|
94
94
|
return /* @__PURE__ */ C.jsx(
|
|
95
95
|
ce,
|
|
96
96
|
{
|
|
97
|
-
ref:
|
|
97
|
+
ref: H,
|
|
98
98
|
title: s,
|
|
99
99
|
description: n,
|
|
100
100
|
tooltip: i,
|
|
@@ -108,8 +108,8 @@ const Re = (e, o) => {
|
|
|
108
108
|
firstColumnWidth: k,
|
|
109
109
|
columnWidth: L,
|
|
110
110
|
totalLabel: de.t("charts.pivotTable.total"),
|
|
111
|
-
data:
|
|
112
|
-
measures:
|
|
111
|
+
data: Q,
|
|
112
|
+
measures: J,
|
|
113
113
|
rowDimension: U,
|
|
114
114
|
columnDimension: Y,
|
|
115
115
|
columnTotalsFor: Z,
|
|
@@ -123,7 +123,7 @@ const Re = (e, o) => {
|
|
|
123
123
|
)
|
|
124
124
|
}
|
|
125
125
|
);
|
|
126
|
-
},
|
|
126
|
+
}, ze = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
127
127
|
__proto__: null,
|
|
128
128
|
default: g
|
|
129
129
|
}, Symbol.toStringTag, { value: "Module" })), De = {
|
|
@@ -209,7 +209,7 @@ const Re = (e, o) => {
|
|
|
209
209
|
limit: e.maxResults,
|
|
210
210
|
countRows: !0,
|
|
211
211
|
timezone: B(o == null ? void 0 : o.timezone)
|
|
212
|
-
}),
|
|
212
|
+
}), j = (e, o) => F(W(e, o)), z = (e, o, s) => ({
|
|
213
213
|
from: e.dataset,
|
|
214
214
|
select: [e.rowDimension, e.subRowDimension, e.columnDimension, ...e.measures],
|
|
215
215
|
limit: e.maxResults,
|
|
@@ -222,9 +222,9 @@ const Re = (e, o) => {
|
|
|
222
222
|
value: o
|
|
223
223
|
}
|
|
224
224
|
]
|
|
225
|
-
}),
|
|
225
|
+
}), O = (e, o, s) => {
|
|
226
226
|
if (o.length > 0)
|
|
227
|
-
return F(
|
|
227
|
+
return F(z(e, o, s));
|
|
228
228
|
}, ve = (e, [o, s], n) => {
|
|
229
229
|
const i = (o == null ? void 0 : o.expandedRowKeys) ?? [];
|
|
230
230
|
return {
|
|
@@ -232,10 +232,10 @@ const Re = (e, o) => {
|
|
|
232
232
|
state: o,
|
|
233
233
|
expandedRowKeys: i,
|
|
234
234
|
setExpandedRowKey: (t) => s({ expandedRowKeys: [...i, t] }),
|
|
235
|
-
results:
|
|
236
|
-
resultsSubRows:
|
|
235
|
+
results: j(e, n),
|
|
236
|
+
resultsSubRows: O(e, i, n)
|
|
237
237
|
};
|
|
238
|
-
},
|
|
238
|
+
}, Oe = {
|
|
239
239
|
Component: g,
|
|
240
240
|
meta: De,
|
|
241
241
|
preview: ye,
|
|
@@ -245,11 +245,11 @@ const Re = (e, o) => {
|
|
|
245
245
|
},
|
|
246
246
|
results: {
|
|
247
247
|
loadDataArgs: W,
|
|
248
|
-
loadData:
|
|
248
|
+
loadData: j
|
|
249
249
|
},
|
|
250
250
|
resultsSubRows: {
|
|
251
|
-
loadDataArgs:
|
|
252
|
-
loadData:
|
|
251
|
+
loadDataArgs: z,
|
|
252
|
+
loadData: O
|
|
253
253
|
}
|
|
254
254
|
};
|
|
255
255
|
export {
|
|
@@ -257,7 +257,7 @@ export {
|
|
|
257
257
|
Re as b,
|
|
258
258
|
he as c,
|
|
259
259
|
fe as g,
|
|
260
|
-
|
|
261
|
-
|
|
260
|
+
ze as i,
|
|
261
|
+
Oe as p
|
|
262
262
|
};
|
|
263
|
-
//# sourceMappingURL=definition-
|
|
263
|
+
//# sourceMappingURL=definition-Na_Pv1dO.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition-CvUSTWbU.js","sources":["../src/components/charts/tables/PivotTablePro/PivotPro.utils.ts","../src/utils/array.utils.ts","../src/components/charts/tables/PivotTablePro/index.tsx","../src/components/charts/tables/PivotTablePro/definition.ts"],"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\nexport type 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 setLoadingRows((prev) => {\n const next = new Set(prev);\n next.delete(rowKey);\n return next;\n });\n }\n });\n setSubRowsByRow(subRowsByRowData);\n }, [resultsSubRows, expandedRowKeys, rowDimension, subRowDimension]);\n\n const data: DataResponse = {\n ...props.results,\n isLoading: Boolean(props.results?.isLoading || resultsSubRows?.isLoading),\n };\n\n return (\n <ChartCard\n ref={cardContentRef}\n title={title}\n description={description}\n tooltip={tooltip}\n data={data}\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","import { DataResponse, LoadDataRequest, loadData } from '@embeddable.com/core';\nimport { definePreview, EmbeddedComponentMeta, Inputs } from '@embeddable.com/react';\nimport Component from './index';\nimport { inputs } from '../../../component.inputs.constants';\nimport { subInputs } from '../../../component.subinputs.constants';\nimport { previewData } from '../../../preview.data.constants';\nimport { getClientContextTimezone } from '../../../../theme/utils/clientContext.utils';\nimport { ThemeClientContext } from '../../../../theme/theme.types';\n\nconst meta = {\n name: 'PivotTablePro',\n label: 'Pivot Table',\n description:\n 'Cross-tabulated table — row and column dimensions intersected by one or more measures.',\n category: 'Table Charts',\n inputs: [\n inputs.dataset,\n {\n ...inputs.measures,\n label: 'Measures to display',\n inputs: [\n ...inputs.measures.inputs,\n {\n ...subInputs.boolean,\n name: 'showColumnTotal',\n label: 'Show column total',\n },\n {\n ...subInputs.boolean,\n name: 'showRowTotal',\n label: 'Show row total',\n },\n {\n ...subInputs.boolean,\n name: 'showAsPercentage',\n label: 'Show as percentage',\n description: 'If turned on, other measures may be ignored',\n defaultValue: false,\n },\n ],\n },\n {\n ...inputs.dimensionWithDateBounds,\n label: 'Column dimension',\n name: 'columnDimension',\n },\n {\n ...inputs.dimensionWithDateBounds,\n label: 'Primary row dimension',\n name: 'rowDimension',\n },\n {\n ...inputs.dimension,\n label: 'Secondary row dimension (optional)',\n name: 'subRowDimension',\n required: false,\n description:\n 'When set, each primary row becomes expandable. Clicking a row loads a breakdown by the second dimension.',\n },\n inputs.title,\n inputs.description,\n inputs.tooltip,\n inputs.displayNullAs,\n {\n ...inputs.number,\n name: 'firstColumnWidth',\n label: 'First column width',\n description: 'Set the width in px (e.g. 200)',\n category: 'Component Settings',\n },\n {\n ...inputs.number,\n name: 'columnWidth',\n label: 'Column width',\n description: 'Set the width in px (e.g. 200)',\n category: 'Component Settings',\n },\n inputs.maxResults,\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nexport type PivotTableProState = {\n expandedRowKeys?: string[];\n};\n\nconst previewConfig = {\n measures: [{ ...previewData.measure, inputs: { showRowTotal: true, showColumnTotal: true } }],\n rowDimension: previewData.dimension,\n columnDimension: previewData.dimensionGroup,\n results: previewData.results1Measure2Dimensions,\n hideMenu: true,\n expandedRowKeys: [],\n setExpandedRowKey: () => {},\n};\n\nconst preview = definePreview(Component, previewConfig);\n\nconst loadDataResultsArgs = (\n inputs: Inputs<typeof meta>,\n clientContext?: ThemeClientContext,\n): LoadDataRequest => ({\n from: inputs.dataset,\n select: [inputs.rowDimension, inputs.columnDimension, ...inputs.measures],\n limit: inputs.maxResults,\n countRows: true,\n timezone: getClientContextTimezone(clientContext?.timezone),\n});\n\nconst loadDataResults = (\n inputs: Inputs<typeof meta>,\n clientContext?: ThemeClientContext,\n): DataResponse => loadData(loadDataResultsArgs(inputs, clientContext));\n\nconst loadDataResultsSubRowsArgs = (\n inputs: Inputs<typeof meta>,\n expandedRowKeys: string[],\n clientContext?: ThemeClientContext,\n): LoadDataRequest => ({\n from: inputs.dataset,\n select: [inputs.rowDimension, inputs.subRowDimension, inputs.columnDimension, ...inputs.measures],\n limit: inputs.maxResults,\n countRows: true,\n timezone: getClientContextTimezone(clientContext?.timezone),\n filters: [\n {\n property: inputs.rowDimension,\n operator: 'equals',\n value: expandedRowKeys,\n },\n ],\n});\n\nconst loadDataResultsSubRows = (\n inputs: Inputs<typeof meta>,\n expandedRowKeys: string[],\n clientContext?: ThemeClientContext,\n): DataResponse | undefined => {\n if (expandedRowKeys.length > 0) {\n return loadData(loadDataResultsSubRowsArgs(inputs, expandedRowKeys, clientContext));\n }\n return undefined;\n};\n\nconst props = (\n inputs: Inputs<typeof meta>,\n [state, setState]: [PivotTableProState, (state: PivotTableProState) => void],\n clientContext: ThemeClientContext,\n) => {\n const expandedRowKeys = state?.expandedRowKeys ?? [];\n\n return {\n ...inputs,\n state,\n expandedRowKeys,\n setExpandedRowKey: (rowKey: string) =>\n setState({ expandedRowKeys: [...expandedRowKeys, rowKey] }),\n results: loadDataResults(inputs, clientContext),\n resultsSubRows: loadDataResultsSubRows(inputs, expandedRowKeys, clientContext),\n };\n};\n\nexport const pivotTablePro = {\n Component,\n meta,\n preview,\n previewConfig,\n config: {\n props,\n },\n results: {\n loadDataArgs: loadDataResultsArgs,\n loadData: loadDataResults,\n },\n resultsSubRows: {\n loadDataArgs: loadDataResultsSubRowsArgs,\n loadData: loadDataResultsSubRows,\n },\n} as const;\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","data","jsx","ChartCard","PivotTable","i18n","meta","inputs","subInputs","previewConfig","previewData","preview","definePreview","Component","loadDataResultsArgs","clientContext","getClientContextTimezone","loadDataResults","loadData","loadDataResultsSubRowsArgs","loadDataResultsSubRows","state","setState","pivotTablePro"],"mappings":";;;;;;;;;;;AAOO,MAAMA,KAAmB,CAC9BC,GACAC,MACqC;AACrC,QAAMC,IAAiBC,EAAkBF,CAAK;AAE9C,SAAOD,EAAM,SAAS,IAAI,CAACI,MAAY;;AACrC,WAAO;AAAA,MACL,KAAKA,EAAQ;AAAA,MACb,OAAOF,EAAe,wBAAwBE,CAAO;AAAA,MACrD,kBAAkB,IAAQC,IAAAD,EAAQ,WAAR,QAAAC,EAAgB;AAAA,MAC1C,2BAAyBC,IAAAF,EAAQ,WAAR,gBAAAE,EAAgB,kBAAiB;AAAA,MAC1D,UAAU,CAACC,MACKA,EAAIH,EAAQ,IAAI,KAEd,OACZJ,EAAM,gBACNE,EAAe,KAAKE,GAASG,EAAIH,EAAQ,IAAI,CAAC;AAAA,IACpD;AAAA,EAEJ,CAAC;AACH,GAEaI,IAAoB,CAC/BR,GACAC,MAC6D;AAC7D,QAAMC,IAAiBC,EAAkBF,CAAK;AAE9C,SAAO;AAAA,IACL,KAAKD,EAAM,UAAU;AAAA,IACrB,OAAOE,EAAe,wBAAwBF,EAAM,SAAS;AAAA,IAC7D,aAAa,CAACS,MAAkBP,EAAe,KAAKF,EAAM,WAAWS,CAAK;AAAA,EAAA;AAE9E,GAEaC,KAA0B,CACrCC,MAEOA,EAAS,OAAO,CAACC,MAAA;;AAAM,UAAAP,IAAAO,EAAE,WAAF,gBAAAP,EAAU;AAAA,CAAe,EAAE,IAAI,CAACO,MAAMA,EAAE,IAAI,GAG/DC,KAAuB,CAClCF,MAEOA,EAAS,OAAO,CAACC,MAAA;;AAAM,UAAAP,IAAAO,EAAE,WAAF,gBAAAP,EAAU;AAAA,CAAY,EAAE,IAAI,CAACO,MAAMA,EAAE,IAAI,GCpD5DE,KAAkB,CAC7BC,GACAC,GACAC,IAAwB,UAEjB,CAAC,GAAGF,CAAG,EAAE,KAAK,CAACG,GAAGC,MACnBD,EAAEF,CAAI,IAAIG,EAAEH,CAAI,IAAUC,MAAU,QAAQ,KAAK,IACjDC,EAAEF,CAAI,IAAIG,EAAEH,CAAI,IAAUC,MAAU,QAAQ,IAAI,KAC7C,CACR,GCyBGG,IAAgB,CAACpB,MAA8B;;AACnD,QAAMC,IAAQoB,GAAA;AACd,EAAAC,GAAUrB,CAAK;AAEf,QAAM,EAAE,OAAAsB,GAAO,aAAAC,GAAa,SAAAC,EAAA,IAAYC,GAAiB1B,CAAK,GACxD;AAAA,IACJ,gBAAA2B;AAAA,IACA,UAAAhB;AAAA,IACA,cAAAiB;AAAA,IACA,iBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,aAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,UAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,mBAAAC;AAAA,EAAA,IACEpC,GAEEqC,IAAc,MAAM;AAAA,IACxB,IAAI,KAAKrC,EAAM,QAAQ,QAAQ,CAAA,GAAI,OAAO,OAAO,EAAE,IAAI,CAACsC,MAAMA,EAAER,EAAgB,IAAI,CAAC,CAAC;AAAA,EAAA,GAGlFS,IAAW,MAAM;AAAA,IACrB,IAAI,KAAKvC,EAAM,QAAQ,QAAQ,CAAA,GAAI,OAAO,OAAO,EAAE,IAAI,CAACsC,MAAMA,EAAEV,EAAa,IAAI,CAAC,CAAC;AAAA,EAAA,GAI/EY,IAAiCC,EAAY;AAAA,IACjD,SAASzC,EAAM;AAAA,IACf,WAAW8B;AAAA,EAAA,CACZ,GAGKY,IAAoCD,EAAY;AAAA,IACpD,SAASD;AAAA,IACT,WAAWZ;AAAA,EAAA,CACZ,GAEKe,IAAUC,GAAyB;AAAA,IACvC,SAASF;AAAA,IACT,aAAAL;AAAA,IACA,UAAAE;AAAA,IACA,iBAAAT;AAAA,IACA,cAAAF;AAAA,IACA,UAAAjB;AAAA,EAAA,CACD,GAEKkC,IAAiBC,GAAuB,IAAI,GAE5CC,IAAgBhD,GAAiB,EAAE,UAAAY,GAAU,eAAAoB,EAAA,GAAiB9B,CAAK,GACnE+C,IAAoBxC,EAAkB,EAAE,WAAWoB,EAAA,GAAgB3B,CAAK,GACxEgD,IAAuBpB,IACzBrB,EAAkB,EAAE,WAAWqB,EAAA,GAAmB5B,CAAK,IACvD,QACEiD,IAAuB1C,EAAkB,EAAE,WAAWsB,EAAA,GAAmB7B,CAAK,GAC9EkD,IAAuBzC,GAAwBC,CAAQ,GACvDyC,IAAoBvC,GAAqBF,CAAQ,GAEjD,CAAC0C,IAAaC,CAAc,IAAIC,EAAS,oBAAI,KAAa,GAC1D,CAACC,IAAcC,EAAe,IAAIF,EAAS,oBAAI,KAAoB,GAEnEG,KAAkB,CAACC,MAAmB;AAC1C,IAAAL,EAAe,CAACM,MAAS,IAAI,IAAIA,CAAI,EAAE,IAAID,CAAM,CAAC,GAClDvB,EAAkBuB,CAAM;AAAA,EAC1B;AAEA,EAAAE,GAAU,MAAM;AAEd,QAAI,CAAClC,KAAkB,EAACA,KAAA,QAAAA,EAAgB,SAAQQ,EAAgB,WAAW;AACzE;AAGF,UAAM2B,wBAAuB,IAAA;AAC7B,IAAA3B,EAAgB,QAAQ,CAACwB,MAAW;;AAKlC,WAJuBtD,IAAAsB,EAAe,SAAf,gBAAAtB,EAAqB;AAAA,QAC1C,CAACE,MAAQ,OAAOA,EAAIqB,EAAa,IAAI,CAAC,MAAM+B;AAAA,SAG1B;AAClB,cAAMI,MACJzD,IAAAqB,EAAe,SAAf,gBAAArB,EAAqB,OAAO,CAACC,MAAQ,OAAOA,EAAIqB,EAAa,IAAI,CAAC,MAAM+B,OAAW,CAAA,GAC/EK,KAAgBnC,IAClBf,GAAgBiD,GAASlC,EAAgB,MAAM,KAAK,IACpDkC;AAEJ,QAAAD,EAAiB,IAAIH,GAAQK,EAAa,GAC1CV,EAAe,CAACM,MAAS;AACvB,gBAAMK,IAAO,IAAI,IAAIL,CAAI;AACzB,iBAAAK,EAAK,OAAON,CAAM,GACXM;AAAA,QACT,CAAC;AAAA,MACH;AAAA,IACF,CAAC,GACDR,GAAgBK,CAAgB;AAAA,EAClC,GAAG,CAACnC,GAAgBQ,GAAiBP,GAAcC,CAAe,CAAC;AAEnE,QAAMqC,KAAqB;AAAA,IACzB,GAAGlE,EAAM;AAAA,IACT,WAAW,IAAQK,IAAAL,EAAM,YAAN,QAAAK,EAAe,aAAasB,KAAA,QAAAA,EAAgB;AAAA,EAAS;AAG1E,SACEwC,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,KAAKvB;AAAA,MACL,OAAAtB;AAAA,MACA,aAAAC;AAAA,MACA,SAAAC;AAAA,MACA,MAAAyC;AAAA,MACA,uBAAuB,CAACtC,GAAcE,GAAiB,GAAGnB,CAAQ;AAAA,MAClE,eAAcL,IAAAN,EAAM,YAAN,gBAAAM,EAAe;AAAA,MAC7B,UAAA4B;AAAA,MAEA,UAAAiC,gBAAAA,EAAAA;AAAAA,QAACE;AAAA,QAAA;AAAA,UACC,kBAAApC;AAAA,UACA,aAAAD;AAAA,UACA,YAAYsC,GAAK,EAAE,yBAAyB;AAAA,UAC5C,MAAM3B;AAAA,UACN,UAAUI;AAAA,UACV,cAAcC;AAAA,UACd,iBAAiBE;AAAA,UACjB,iBAAiBC;AAAA,UACjB,cAAcC;AAAA,UACd,gBAAgB,EAAQvB;AAAA,UACxB,cAAA2B;AAAA,UACA,aAAAH;AAAA,UACA,aAAaK;AAAA,UACb,iBAAiBT;AAAA,QAAA;AAAA,MAAA;AAAA,IACnB;AAAA,EAAA;AAGN;;;8CC5JMsB,KAAO;AAAA,EACX,MAAM;AAAA,EACN,OAAO;AAAA,EACP,aACE;AAAA,EACF,UAAU;AAAA,EACV,QAAQ;AAAA,IACNC,EAAO;AAAA,IACP;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,OAAO;AAAA,MACP,QAAQ;AAAA,QACN,GAAGA,EAAO,SAAS;AAAA,QACnB;AAAA,UACE,GAAGC,EAAU;AAAA,UACb,MAAM;AAAA,UACN,OAAO;AAAA,QAAA;AAAA,QAET;AAAA,UACE,GAAGA,EAAU;AAAA,UACb,MAAM;AAAA,UACN,OAAO;AAAA,QAAA;AAAA,QAET;AAAA,UACE,GAAGA,EAAU;AAAA,UACb,MAAM;AAAA,UACN,OAAO;AAAA,UACP,aAAa;AAAA,UACb,cAAc;AAAA,QAAA;AAAA,MAChB;AAAA,IACF;AAAA,IAEF;AAAA,MACE,GAAGD,EAAO;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,IAAA;AAAA,IAER;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,IAAA;AAAA,IAER;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,MACN,UAAU;AAAA,MACV,aACE;AAAA,IAAA;AAAA,IAEJA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACP;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,MAAM;AAAA,MACN,OAAO;AAAA,MACP,aAAa;AAAA,MACb,UAAU;AAAA,IAAA;AAAA,IAEZ;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,MAAM;AAAA,MACN,OAAO;AAAA,MACP,aAAa;AAAA,MACb,UAAU;AAAA,IAAA;AAAA,IAEZA,EAAO;AAAA,EAAA;AAEX,GAMME,IAAgB;AAAA,EACpB,UAAU,CAAC,EAAE,GAAGC,EAAY,SAAS,QAAQ,EAAE,cAAc,IAAM,iBAAiB,GAAA,GAAQ;AAAA,EAC5F,cAAcA,EAAY;AAAA,EAC1B,iBAAiBA,EAAY;AAAA,EAC7B,SAASA,EAAY;AAAA,EACrB,UAAU;AAAA,EACV,iBAAiB,CAAA;AAAA,EACjB,mBAAmB,MAAM;AAAA,EAAC;AAC5B,GAEMC,KAAUC,GAAcC,GAAWJ,CAAa,GAEhDK,IAAsB,CAC1BP,GACAQ,OACqB;AAAA,EACrB,MAAMR,EAAO;AAAA,EACb,QAAQ,CAACA,EAAO,cAAcA,EAAO,iBAAiB,GAAGA,EAAO,QAAQ;AAAA,EACxE,OAAOA,EAAO;AAAA,EACd,WAAW;AAAA,EACX,UAAUS,EAAyBD,KAAA,gBAAAA,EAAe,QAAQ;AAC5D,IAEME,IAAkB,CACtBV,GACAQ,MACiBG,EAASJ,EAAoBP,GAAQQ,CAAa,CAAC,GAEhEI,IAA6B,CACjCZ,GACArC,GACA6C,OACqB;AAAA,EACrB,MAAMR,EAAO;AAAA,EACb,QAAQ,CAACA,EAAO,cAAcA,EAAO,iBAAiBA,EAAO,iBAAiB,GAAGA,EAAO,QAAQ;AAAA,EAChG,OAAOA,EAAO;AAAA,EACd,WAAW;AAAA,EACX,UAAUS,EAAyBD,KAAA,gBAAAA,EAAe,QAAQ;AAAA,EAC1D,SAAS;AAAA,IACP;AAAA,MACE,UAAUR,EAAO;AAAA,MACjB,UAAU;AAAA,MACV,OAAOrC;AAAA,IAAA;AAAA,EACT;AAEJ,IAEMkD,IAAyB,CAC7Bb,GACArC,GACA6C,MAC6B;AAC7B,MAAI7C,EAAgB,SAAS;AAC3B,WAAOgD,EAASC,EAA2BZ,GAAQrC,GAAiB6C,CAAa,CAAC;AAGtF,GAEMhF,KAAQ,CACZwE,GACA,CAACc,GAAOC,CAAQ,GAChBP,MACG;AACH,QAAM7C,KAAkBmD,KAAA,gBAAAA,EAAO,oBAAmB,CAAA;AAElD,SAAO;AAAA,IACL,GAAGd;AAAAA,IACH,OAAAc;AAAA,IACA,iBAAAnD;AAAA,IACA,mBAAmB,CAACwB,MAClB4B,EAAS,EAAE,iBAAiB,CAAC,GAAGpD,GAAiBwB,CAAM,GAAG;AAAA,IAC5D,SAASuB,EAAgBV,GAAQQ,CAAa;AAAA,IAC9C,gBAAgBK,EAAuBb,GAAQrC,GAAiB6C,CAAa;AAAA,EAAA;AAEjF,GAEaQ,KAAgB;AAAA,EAAA,WAC3BV;AAAAA,EACA,MAAAP;AAAA,EACA,SAAAK;AAAA,EACA,eAAAF;AAAA,EACA,QAAQ;AAAA,IACN,OAAA1E;AAAA,EAAA;AAAA,EAEF,SAAS;AAAA,IACP,cAAc+E;AAAA,IACd,UAAUG;AAAA,EAAA;AAAA,EAEZ,gBAAgB;AAAA,IACd,cAAcE;AAAA,IACd,UAAUC;AAAA,EAAA;AAEd;"}
|
|
1
|
+
{"version":3,"file":"definition-Na_Pv1dO.js","sources":["../src/components/charts/tables/PivotTablePro/PivotPro.utils.ts","../src/utils/array.utils.ts","../src/components/charts/tables/PivotTablePro/index.tsx","../src/components/charts/tables/PivotTablePro/definition.ts"],"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\nexport type 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 setLoadingRows((prev) => {\n const next = new Set(prev);\n next.delete(rowKey);\n return next;\n });\n }\n });\n setSubRowsByRow(subRowsByRowData);\n }, [resultsSubRows, expandedRowKeys, rowDimension, subRowDimension]);\n\n const data: DataResponse = {\n ...props.results,\n isLoading: Boolean(props.results?.isLoading || resultsSubRows?.isLoading),\n };\n\n return (\n <ChartCard\n ref={cardContentRef}\n title={title}\n description={description}\n tooltip={tooltip}\n data={data}\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","import { DataResponse, LoadDataRequest, loadData } from '@embeddable.com/core';\nimport { definePreview, EmbeddedComponentMeta, Inputs } from '@embeddable.com/react';\nimport Component from './index';\nimport { inputs } from '../../../component.inputs.constants';\nimport { subInputs } from '../../../component.subinputs.constants';\nimport { previewData } from '../../../preview.data.constants';\nimport { getClientContextTimezone } from '../../../../theme/utils/clientContext.utils';\nimport { ThemeClientContext } from '../../../../theme/theme.types';\n\nconst meta = {\n name: 'PivotTablePro',\n label: 'Pivot Table',\n description:\n 'Cross-tabulated table — row and column dimensions intersected by one or more measures.',\n category: 'Table Charts',\n inputs: [\n inputs.dataset,\n {\n ...inputs.measures,\n label: 'Measures to display',\n inputs: [\n ...inputs.measures.inputs,\n {\n ...subInputs.boolean,\n name: 'showColumnTotal',\n label: 'Show column total',\n },\n {\n ...subInputs.boolean,\n name: 'showRowTotal',\n label: 'Show row total',\n },\n {\n ...subInputs.boolean,\n name: 'showAsPercentage',\n label: 'Show as percentage',\n description: 'If turned on, other measures may be ignored',\n defaultValue: false,\n },\n ],\n },\n {\n ...inputs.dimensionWithDateBounds,\n label: 'Column dimension',\n name: 'columnDimension',\n },\n {\n ...inputs.dimensionWithDateBounds,\n label: 'Primary row dimension',\n name: 'rowDimension',\n },\n {\n ...inputs.dimension,\n label: 'Secondary row dimension (optional)',\n name: 'subRowDimension',\n required: false,\n description:\n 'When set, each primary row becomes expandable. Clicking a row loads a breakdown by the second dimension.',\n },\n inputs.title,\n inputs.description,\n inputs.tooltip,\n inputs.displayNullAs,\n {\n ...inputs.number,\n name: 'firstColumnWidth',\n label: 'First column width',\n description: 'Set the width in px (e.g. 200)',\n category: 'Component Settings',\n },\n {\n ...inputs.number,\n name: 'columnWidth',\n label: 'Column width',\n description: 'Set the width in px (e.g. 200)',\n category: 'Component Settings',\n },\n inputs.maxResults,\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nexport type PivotTableProState = {\n expandedRowKeys?: string[];\n};\n\nconst previewConfig = {\n measures: [{ ...previewData.measure, inputs: { showRowTotal: true, showColumnTotal: true } }],\n rowDimension: previewData.dimension,\n columnDimension: previewData.dimensionGroup,\n results: previewData.results1Measure2Dimensions,\n hideMenu: true,\n expandedRowKeys: [],\n setExpandedRowKey: () => {},\n};\n\nconst preview = definePreview(Component, previewConfig);\n\nconst loadDataResultsArgs = (\n inputs: Inputs<typeof meta>,\n clientContext?: ThemeClientContext,\n): LoadDataRequest => ({\n from: inputs.dataset,\n select: [inputs.rowDimension, inputs.columnDimension, ...inputs.measures],\n limit: inputs.maxResults,\n countRows: true,\n timezone: getClientContextTimezone(clientContext?.timezone),\n});\n\nconst loadDataResults = (\n inputs: Inputs<typeof meta>,\n clientContext?: ThemeClientContext,\n): DataResponse => loadData(loadDataResultsArgs(inputs, clientContext));\n\nconst loadDataResultsSubRowsArgs = (\n inputs: Inputs<typeof meta>,\n expandedRowKeys: string[],\n clientContext?: ThemeClientContext,\n): LoadDataRequest => ({\n from: inputs.dataset,\n select: [inputs.rowDimension, inputs.subRowDimension, inputs.columnDimension, ...inputs.measures],\n limit: inputs.maxResults,\n countRows: true,\n timezone: getClientContextTimezone(clientContext?.timezone),\n filters: [\n {\n property: inputs.rowDimension,\n operator: 'equals',\n value: expandedRowKeys,\n },\n ],\n});\n\nconst loadDataResultsSubRows = (\n inputs: Inputs<typeof meta>,\n expandedRowKeys: string[],\n clientContext?: ThemeClientContext,\n): DataResponse | undefined => {\n if (expandedRowKeys.length > 0) {\n return loadData(loadDataResultsSubRowsArgs(inputs, expandedRowKeys, clientContext));\n }\n return undefined;\n};\n\nconst props = (\n inputs: Inputs<typeof meta>,\n [state, setState]: [PivotTableProState, (state: PivotTableProState) => void],\n clientContext: ThemeClientContext,\n) => {\n const expandedRowKeys = state?.expandedRowKeys ?? [];\n\n return {\n ...inputs,\n state,\n expandedRowKeys,\n setExpandedRowKey: (rowKey: string) =>\n setState({ expandedRowKeys: [...expandedRowKeys, rowKey] }),\n results: loadDataResults(inputs, clientContext),\n resultsSubRows: loadDataResultsSubRows(inputs, expandedRowKeys, clientContext),\n };\n};\n\nexport const pivotTablePro = {\n Component,\n meta,\n preview,\n previewConfig,\n config: {\n props,\n },\n results: {\n loadDataArgs: loadDataResultsArgs,\n loadData: loadDataResults,\n },\n resultsSubRows: {\n loadDataArgs: loadDataResultsSubRowsArgs,\n loadData: loadDataResultsSubRows,\n },\n} as const;\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","data","jsx","ChartCard","PivotTable","i18n","meta","inputs","subInputs","previewConfig","previewData","preview","definePreview","Component","loadDataResultsArgs","clientContext","getClientContextTimezone","loadDataResults","loadData","loadDataResultsSubRowsArgs","loadDataResultsSubRows","state","setState","pivotTablePro"],"mappings":"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"}
|