@embeddable.com/remarkable-pro 0.2.8 → 0.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/BarChartDefaultHorizontalPro.js +1 -1
- package/dist/BarChartDefaultPro.js +1 -1
- package/dist/BarChartGroupedHorizontalPro.js +1 -1
- package/dist/BarChartGroupedPro.js +1 -1
- package/dist/BarChartStackedHorizontalPro.js +1 -1
- package/dist/BarChartStackedPro.js +1 -1
- package/dist/{ChartCard-CnFskmyD.js → ChartCard-CRWGszUn.js} +3 -3
- package/dist/{ChartCard-CnFskmyD.js.map → ChartCard-CRWGszUn.js.map} +1 -1
- package/dist/{Color.type.emb-D_fJSNRw.js → Color.type.emb-B94sse6s.js} +2 -2
- package/dist/{Color.type.emb-D_fJSNRw.js.map → Color.type.emb-B94sse6s.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-BJPdnT5d.js → DimensionAndMeasureSingleSelectField-ytf75hO7.js} +3 -3
- package/dist/{DimensionAndMeasureSingleSelectField-BJPdnT5d.js.map → DimensionAndMeasureSingleSelectField-ytf75hO7.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-CJkGe_Gl.js → EditorCard-CM8UygnJ.js} +3 -3
- package/dist/{EditorCard-CJkGe_Gl.js.map → EditorCard-CM8UygnJ.js.map} +1 -1
- package/dist/FilterBuilderPro.js +5 -5
- package/dist/{GranularitySelectField-Dm8Wy6En.js → GranularitySelectField-B3sQmeR0.js} +3 -3
- package/dist/{GranularitySelectField-Dm8Wy6En.js.map → GranularitySelectField-B3sQmeR0.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-ZAvmipnQ.js → IconAlertCircle-CR484aNI.js} +2 -2
- package/dist/{IconAlertCircle-ZAvmipnQ.js.map → IconAlertCircle-CR484aNI.js.map} +1 -1
- package/dist/{IconCalendarFilled-CU7cHXJ5.js → IconCalendarFilled-CcxhyIRB.js} +2 -2
- package/dist/{IconCalendarFilled-CU7cHXJ5.js.map → IconCalendarFilled-CcxhyIRB.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 +13 -0
- package/dist/LineChartComparisonWithKpiTabsPro.js.map +1 -0
- package/dist/LineChartDefaultPro.js +1 -1
- package/dist/LineChartGroupedPro.js +1 -1
- package/dist/LineChartWithKpiTabsPro.js +1 -1
- package/dist/{Markdown.type.emb-DXjjeXSE.js → Markdown.type.emb-BMO1MYAJ.js} +2 -2
- package/dist/{Markdown.type.emb-DXjjeXSE.js.map → Markdown.type.emb-BMO1MYAJ.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-uHOhV9Co.js → af-BbWJua8S.js} +3 -3
- package/dist/{af-uHOhV9Co.js.map → af-BbWJua8S.js.map} +1 -1
- package/dist/{am-CtT1kly4.js → am-Dn3cZISl.js} +3 -3
- package/dist/{am-CtT1kly4.js.map → am-Dn3cZISl.js.map} +1 -1
- package/dist/{ar-D5E-Zv9V.js → ar-CnM6YD3R.js} +3 -3
- package/dist/{ar-D5E-Zv9V.js.map → ar-CnM6YD3R.js.map} +1 -1
- package/dist/{az-ATRYSvK6.js → az-AxjRS-AR.js} +3 -3
- package/dist/{az-ATRYSvK6.js.map → az-AxjRS-AR.js.map} +1 -1
- package/dist/{bars.loadData.utils-a3f4E9Xg.js → bars.loadData.utils-DC4w5EwO.js} +4 -4
- package/dist/{bars.loadData.utils-a3f4E9Xg.js.map → bars.loadData.utils-DC4w5EwO.js.map} +1 -1
- package/dist/{bars.utils-DQ7dY7NI.js → bars.utils-Isa3Tc-Y.js} +5 -5
- package/dist/{bars.utils-DQ7dY7NI.js.map → bars.utils-Isa3Tc-Y.js.map} +1 -1
- package/dist/{be-PUkbmY-X.js → be-CEHFWQBV.js} +3 -3
- package/dist/{be-PUkbmY-X.js.map → be-CEHFWQBV.js.map} +1 -1
- package/dist/{bg-BQiPbTwz.js → bg-CQi5LAoB.js} +3 -3
- package/dist/{bg-BQiPbTwz.js.map → bg-CQi5LAoB.js.map} +1 -1
- package/dist/{bi-DVuRGcp3.js → bi-DNBfwG_9.js} +3 -3
- package/dist/{bi-DVuRGcp3.js.map → bi-DNBfwG_9.js.map} +1 -1
- package/dist/{bm-DFKDlAK-.js → bm-BLBME3EJ.js} +3 -3
- package/dist/{bm-DFKDlAK-.js.map → bm-BLBME3EJ.js.map} +1 -1
- package/dist/{bn-2fofvXCe.js → bn-sw8GrpDo.js} +3 -3
- package/dist/{bn-2fofvXCe.js.map → bn-sw8GrpDo.js.map} +1 -1
- package/dist/{bo-jXjY3jii.js → bo-BDPJarKO.js} +3 -3
- package/dist/{bo-jXjY3jii.js.map → bo-BDPJarKO.js.map} +1 -1
- package/dist/{br--wF92TAa.js → br-fYTSNJd1.js} +3 -3
- package/dist/{br--wF92TAa.js.map → br-fYTSNJd1.js.map} +1 -1
- package/dist/{bs-zUVOTqi3.js → bs-DXaaelTd.js} +3 -3
- package/dist/{bs-zUVOTqi3.js.map → bs-DXaaelTd.js.map} +1 -1
- package/dist/{ca-C5jtnFnG.js → ca-BuasE6J-.js} +3 -3
- package/dist/{ca-C5jtnFnG.js.map → ca-BuasE6J-.js.map} +1 -1
- package/dist/{charts.fillGaps.hooks-BNF-g1iW.js → charts.fillGaps.hooks-BsgJXp3A.js} +6 -6
- package/dist/{charts.fillGaps.hooks-BNF-g1iW.js.map → charts.fillGaps.hooks-BsgJXp3A.js.map} +1 -1
- package/dist/{charts.utils-D9vzv_R0.js → charts.utils-CJGra06y.js} +2 -2
- package/dist/{charts.utils-D9vzv_R0.js.map → charts.utils-CJGra06y.js.map} +1 -1
- package/dist/{component.inputs.constants-Btzhai00.js → component.inputs.constants-By5BzrXa.js} +4 -4
- package/dist/{component.inputs.constants-Btzhai00.js.map → component.inputs.constants-By5BzrXa.js.map} +1 -1
- package/dist/components/charts/lines/LineChartComparisonDefaultPro/definition.d.ts +3 -0
- package/dist/components/charts/lines/LineChartComparisonDefaultPro/definition.d.ts.map +1 -1
- package/dist/components/charts/lines/LineChartComparisonWithKpiTabsPro/LineChartComparisonWithKpiTabsPro.emb.d.ts +200 -0
- package/dist/components/charts/lines/LineChartComparisonWithKpiTabsPro/LineChartComparisonWithKpiTabsPro.emb.d.ts.map +1 -0
- package/dist/components/charts/lines/LineChartComparisonWithKpiTabsPro/LineChartComparisonWithKpiTabsPro.utils.d.ts +13 -0
- package/dist/components/charts/lines/LineChartComparisonWithKpiTabsPro/LineChartComparisonWithKpiTabsPro.utils.d.ts.map +1 -0
- package/dist/components/charts/lines/LineChartComparisonWithKpiTabsPro/definition.d.ts +1168 -0
- package/dist/components/charts/lines/LineChartComparisonWithKpiTabsPro/definition.d.ts.map +1 -0
- package/dist/components/charts/lines/LineChartComparisonWithKpiTabsPro/index.d.ts +10 -0
- package/dist/components/charts/lines/LineChartComparisonWithKpiTabsPro/index.d.ts.map +1 -0
- package/dist/components/charts/lines/LineChartComparisonWithKpiTabsPro/index.test.d.ts +2 -0
- package/dist/components/charts/lines/LineChartComparisonWithKpiTabsPro/index.test.d.ts.map +1 -0
- package/dist/components/preview.data.constants.d.ts +1 -0
- package/dist/components/preview.data.constants.d.ts.map +1 -1
- package/dist/{cs-D_8y61Ku.js → cs-Vr3CfV4n.js} +3 -3
- package/dist/{cs-D_8y61Ku.js.map → cs-Vr3CfV4n.js.map} +1 -1
- package/dist/{cv-7LZfsIQm.js → cv-DqWzRaAB.js} +3 -3
- package/dist/{cv-7LZfsIQm.js.map → cv-DqWzRaAB.js.map} +1 -1
- package/dist/{cy-BbGkfM6e.js → cy-B8RCuBJ3.js} +3 -3
- package/dist/{cy-BbGkfM6e.js.map → cy-B8RCuBJ3.js.map} +1 -1
- package/dist/{da-Bmifdh_T.js → da-BfONNfuj.js} +3 -3
- package/dist/{da-Bmifdh_T.js.map → da-BfONNfuj.js.map} +1 -1
- package/dist/dates.utils-BKMNJxiQ.js +169 -0
- package/dist/{dates.utils-C32kbsZJ.js.map → dates.utils-BKMNJxiQ.js.map} +1 -1
- package/dist/{de-KhYVicJp.js → de-CxhOk9CG.js} +3 -3
- package/dist/{de-KhYVicJp.js.map → de-CxhOk9CG.js.map} +1 -1
- package/dist/{definition-D7TVH6gU.js → definition--Ni61Y1-.js} +6 -6
- package/dist/{definition-D7TVH6gU.js.map → definition--Ni61Y1-.js.map} +1 -1
- package/dist/{definition-DQjmswi2.js → definition-2LtkbAEi.js} +7 -7
- package/dist/{definition-DQjmswi2.js.map → definition-2LtkbAEi.js.map} +1 -1
- package/dist/{definition-Dh3Vibwi.js → definition-9WbedtX-.js} +13 -13
- package/dist/{definition-Dh3Vibwi.js.map → definition-9WbedtX-.js.map} +1 -1
- package/dist/{definition-DVwHCfly.js → definition-B7-xAlqA.js} +9 -9
- package/dist/{definition-DVwHCfly.js.map → definition-B7-xAlqA.js.map} +1 -1
- package/dist/{definition-oqk-pkc7.js → definition-BBNYhoRA.js} +6 -6
- package/dist/{definition-oqk-pkc7.js.map → definition-BBNYhoRA.js.map} +1 -1
- package/dist/{definition-CJXWUE2a.js → definition-BL5f640K.js} +4 -4
- package/dist/{definition-CJXWUE2a.js.map → definition-BL5f640K.js.map} +1 -1
- package/dist/{definition-C-LSx2FA.js → definition-BQJpHT8s.js} +10 -10
- package/dist/{definition-C-LSx2FA.js.map → definition-BQJpHT8s.js.map} +1 -1
- package/dist/{definition-DHMdDiX7.js → definition-BVMIjM3f.js} +6 -6
- package/dist/{definition-DHMdDiX7.js.map → definition-BVMIjM3f.js.map} +1 -1
- package/dist/{definition-BCM8UN7h.js → definition-BcdVarNK.js} +6 -6
- package/dist/{definition-BCM8UN7h.js.map → definition-BcdVarNK.js.map} +1 -1
- package/dist/{definition-DsRVyZre.js → definition-BgZoKzJZ.js} +10 -10
- package/dist/{definition-DsRVyZre.js.map → definition-BgZoKzJZ.js.map} +1 -1
- package/dist/{definition-DVPzl0Hg.js → definition-BjkJkjG6.js} +6 -6
- package/dist/{definition-DVPzl0Hg.js.map → definition-BjkJkjG6.js.map} +1 -1
- package/dist/{definition-BcpVbttW.js → definition-BkLQ2XsR.js} +10 -10
- package/dist/{definition-BcpVbttW.js.map → definition-BkLQ2XsR.js.map} +1 -1
- package/dist/{definition-hwFKFmsG.js → definition-BlDfnXzn.js} +10 -10
- package/dist/{definition-hwFKFmsG.js.map → definition-BlDfnXzn.js.map} +1 -1
- package/dist/{definition-Bp4fdT7n.js → definition-Bs3pt6zL.js} +3 -3
- package/dist/{definition-Bp4fdT7n.js.map → definition-Bs3pt6zL.js.map} +1 -1
- package/dist/definition-C82roRlG.js +309 -0
- package/dist/definition-C82roRlG.js.map +1 -0
- package/dist/{definition-Df20AWyW.js → definition-CDF0686P.js} +15 -15
- package/dist/{definition-Df20AWyW.js.map → definition-CDF0686P.js.map} +1 -1
- package/dist/{definition-Cn74rnSx.js → definition-CHgw8oB1.js} +9 -9
- package/dist/{definition-Cn74rnSx.js.map → definition-CHgw8oB1.js.map} +1 -1
- package/dist/{definition-BMAruTew.js → definition-CQ05gdUe.js} +6 -6
- package/dist/{definition-BMAruTew.js.map → definition-CQ05gdUe.js.map} +1 -1
- package/dist/{definition-Nu22L7zJ.js → definition-CUDO9kG2.js} +6 -6
- package/dist/{definition-Nu22L7zJ.js.map → definition-CUDO9kG2.js.map} +1 -1
- package/dist/{definition-CzxHpKyY.js → definition-CXXIhLtv.js} +24 -24
- package/dist/{definition-CzxHpKyY.js.map → definition-CXXIhLtv.js.map} +1 -1
- package/dist/{definition-BuHQzlFu.js → definition-Cv1rUQh6.js} +5 -5
- package/dist/{definition-BuHQzlFu.js.map → definition-Cv1rUQh6.js.map} +1 -1
- package/dist/{definition-BYDeIPmI.js → definition-D2L-YHix.js} +16 -16
- package/dist/{definition-BYDeIPmI.js.map → definition-D2L-YHix.js.map} +1 -1
- package/dist/{definition-BZGU5Msp.js → definition-D9DommUW.js} +9 -9
- package/dist/{definition-BZGU5Msp.js.map → definition-D9DommUW.js.map} +1 -1
- package/dist/{definition-BUh53a-T.js → definition-DJYItEYC.js} +6 -6
- package/dist/{definition-BUh53a-T.js.map → definition-DJYItEYC.js.map} +1 -1
- package/dist/{definition-Bp68EhDD.js → definition-DPpZGOuG.js} +6 -6
- package/dist/{definition-Bp68EhDD.js.map → definition-DPpZGOuG.js.map} +1 -1
- package/dist/{definition-CQsDRZCj.js → definition-DSD1tzfc.js} +18 -18
- package/dist/{definition-CQsDRZCj.js.map → definition-DSD1tzfc.js.map} +1 -1
- package/dist/{definition-BMOrAxa2.js → definition-DiFeLhuO.js} +14 -14
- package/dist/{definition-BMOrAxa2.js.map → definition-DiFeLhuO.js.map} +1 -1
- package/dist/{definition-DCtFnBa0.js → definition-DtZmjHkB.js} +10 -10
- package/dist/{definition-DCtFnBa0.js.map → definition-DtZmjHkB.js.map} +1 -1
- package/dist/{definition-BW6qSdNS.js → definition-E1LudO9R.js} +6 -6
- package/dist/{definition-BW6qSdNS.js.map → definition-E1LudO9R.js.map} +1 -1
- package/dist/{definition-H-Otyg-8.js → definition-FMghG3iL.js} +9 -9
- package/dist/{definition-H-Otyg-8.js.map → definition-FMghG3iL.js.map} +1 -1
- package/dist/{definition-CdNZlvx8.js → definition-O45fcwV6.js} +18 -18
- package/dist/{definition-CdNZlvx8.js.map → definition-O45fcwV6.js.map} +1 -1
- package/dist/{definition-tepgLiGn.js → definition-PF5KOc2p.js} +10 -10
- package/dist/{definition-tepgLiGn.js.map → definition-PF5KOc2p.js.map} +1 -1
- package/dist/{definition-DU7SahNH.js → definition-T9zBiCxy.js} +6 -6
- package/dist/{definition-DU7SahNH.js.map → definition-T9zBiCxy.js.map} +1 -1
- package/dist/{definition-6_It7xEv.js → definition-k6j3NsE6.js} +5 -5
- package/dist/{definition-6_It7xEv.js.map → definition-k6j3NsE6.js.map} +1 -1
- package/dist/{dimension.utils-jwBcagYn.js → dimension.utils-CCt6ioOB.js} +4 -4
- package/dist/{dimension.utils-jwBcagYn.js.map → dimension.utils-CCt6ioOB.js.map} +1 -1
- package/dist/{dimensionsAndMeasures.utils-D0fZ6L7l.js → dimensionsAndMeasures.utils-LtmJTpzD.js} +2 -2
- package/dist/{dimensionsAndMeasures.utils-D0fZ6L7l.js.map → dimensionsAndMeasures.utils-LtmJTpzD.js.map} +1 -1
- package/dist/{dv-B6K-c3IB.js → dv-CL20Xd6R.js} +3 -3
- package/dist/{dv-B6K-c3IB.js.map → dv-CL20Xd6R.js.map} +1 -1
- package/dist/{el-MTFXlZ6c.js → el-DAGa2R0z.js} +3 -3
- package/dist/{el-MTFXlZ6c.js.map → el-DAGa2R0z.js.map} +1 -1
- package/dist/embeddable-components.json +44 -42
- package/dist/{en-cnLhRw-Q.js → en-YifMGko-.js} +2 -2
- package/dist/{en-cnLhRw-Q.js.map → en-YifMGko-.js.map} +1 -1
- package/dist/{eo-BTDY5NEZ.js → eo-Cnh3wR3J.js} +3 -3
- package/dist/{eo-BTDY5NEZ.js.map → eo-Cnh3wR3J.js.map} +1 -1
- package/dist/{es-BphqLwfy.js → es-CVvJ0XRO.js} +3 -3
- package/dist/{es-BphqLwfy.js.map → es-CVvJ0XRO.js.map} +1 -1
- package/dist/{et-Dppt1IB5.js → et-B49nWIki.js} +3 -3
- package/dist/{et-Dppt1IB5.js.map → et-B49nWIki.js.map} +1 -1
- package/dist/{eu-BqB7fEen.js → eu-DKtNzWuT.js} +3 -3
- package/dist/{eu-BqB7fEen.js.map → eu-DKtNzWuT.js.map} +1 -1
- package/dist/{fa-Co2Q354r.js → fa-HHSfst9z.js} +3 -3
- package/dist/{fa-Co2Q354r.js.map → fa-HHSfst9z.js.map} +1 -1
- package/dist/{fi-CeWBVJKd.js → fi-B-kBOxyD.js} +3 -3
- package/dist/{fi-CeWBVJKd.js.map → fi-B-kBOxyD.js.map} +1 -1
- package/dist/{fo-D7UKb-N0.js → fo-s__I35Ng.js} +3 -3
- package/dist/{fo-D7UKb-N0.js.map → fo-s__I35Ng.js.map} +1 -1
- package/dist/{formatter.utils-CQ25D0x2.js → formatter.utils-DrM8pNZU.js} +3 -3
- package/dist/{formatter.utils-CQ25D0x2.js.map → formatter.utils-DrM8pNZU.js.map} +1 -1
- package/dist/{fr-QfgaiDMx.js → fr-CRBIGI_j.js} +3 -3
- package/dist/{fr-QfgaiDMx.js.map → fr-CRBIGI_j.js.map} +1 -1
- package/dist/{fy-DQco3ONW.js → fy-BBztGMVR.js} +3 -3
- package/dist/{fy-DQco3ONW.js.map → fy-BBztGMVR.js.map} +1 -1
- package/dist/{ga-D47McKqX.js → ga-zIO1j8y0.js} +3 -3
- package/dist/{ga-D47McKqX.js.map → ga-zIO1j8y0.js.map} +1 -1
- package/dist/{gd-zYqiUmxc.js → gd-Cw6t0LFQ.js} +3 -3
- package/dist/{gd-zYqiUmxc.js.map → gd-Cw6t0LFQ.js.map} +1 -1
- package/dist/{gl-EYVKFCz3.js → gl-SNJFAnIc.js} +3 -3
- package/dist/{gl-EYVKFCz3.js.map → gl-SNJFAnIc.js.map} +1 -1
- package/dist/{granularity.utils-Ci8GeTuK.js → granularity.utils-DolOI8L7.js} +3 -3
- package/dist/{granularity.utils-Ci8GeTuK.js.map → granularity.utils-DolOI8L7.js.map} +1 -1
- package/dist/{gu-DlwQEXpn.js → gu-aMVgj0NJ.js} +3 -3
- package/dist/{gu-DlwQEXpn.js.map → gu-aMVgj0NJ.js.map} +1 -1
- package/dist/{he-BhoY0q36.js → he-hgGakdWp.js} +3 -3
- package/dist/{he-BhoY0q36.js.map → he-hgGakdWp.js.map} +1 -1
- package/dist/{hi-BNdvjeOu.js → hi-ONbz7thO.js} +3 -3
- package/dist/{hi-BNdvjeOu.js.map → hi-ONbz7thO.js.map} +1 -1
- package/dist/{hr-BC2871jN.js → hr-DDZgGj-I.js} +3 -3
- package/dist/{hr-BC2871jN.js.map → hr-DDZgGj-I.js.map} +1 -1
- package/dist/{ht-CLv0U_6X.js → ht-COfvmVnn.js} +3 -3
- package/dist/{ht-CLv0U_6X.js.map → ht-COfvmVnn.js.map} +1 -1
- package/dist/{hu-DoEO9W9V.js → hu-CA4XZRqm.js} +3 -3
- package/dist/{hu-DoEO9W9V.js.map → hu-CA4XZRqm.js.map} +1 -1
- package/dist/{id-B_8QaxfX.js → id-C8u5NcFh.js} +3 -3
- package/dist/{id-B_8QaxfX.js.map → id-C8u5NcFh.js.map} +1 -1
- package/dist/{index-DZiGovh8.js → index-BB15Cuo_.js} +5 -5
- package/dist/{index-DZiGovh8.js.map → index-BB15Cuo_.js.map} +1 -1
- package/dist/{index-DhX_i17N.js → index-CuEaD6nM.js} +27 -26
- package/dist/{index-DhX_i17N.js.map → index-CuEaD6nM.js.map} +1 -1
- package/dist/{index-DB9ML_qw.js → index-oGjKBJj6.js} +2 -2
- package/dist/{index-DB9ML_qw.js.map → index-oGjKBJj6.js.map} +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +151 -148
- package/dist/index.js.map +1 -1
- package/dist/{is-BD6Si5zj.js → is-DzNDFet3.js} +3 -3
- package/dist/{is-BD6Si5zj.js.map → is-DzNDFet3.js.map} +1 -1
- package/dist/{isoWeek-Di8MfM18.js → isoWeek-53zbY_WA.js} +2 -2
- package/dist/{isoWeek-Di8MfM18.js.map → isoWeek-53zbY_WA.js.map} +1 -1
- package/dist/{it-DGGRCyW0.js → it-CCtU9jAF.js} +3 -3
- package/dist/{it-DGGRCyW0.js.map → it-CCtU9jAF.js.map} +1 -1
- package/dist/{ja-n3n2gXaV.js → ja-BRlo3oBh.js} +3 -3
- package/dist/{ja-n3n2gXaV.js.map → ja-BRlo3oBh.js.map} +1 -1
- package/dist/{jv-CeDdgCLI.js → jv-Cgm7uuac.js} +3 -3
- package/dist/{jv-CeDdgCLI.js.map → jv-Cgm7uuac.js.map} +1 -1
- package/dist/{ka-Dk64q98s.js → ka-D3I1BzQ4.js} +3 -3
- package/dist/{ka-Dk64q98s.js.map → ka-D3I1BzQ4.js.map} +1 -1
- package/dist/{kk-tazDvkP6.js → kk-DAYtaoB1.js} +3 -3
- package/dist/{kk-tazDvkP6.js.map → kk-DAYtaoB1.js.map} +1 -1
- package/dist/{km-9otJgiIh.js → km-CoApUtat.js} +3 -3
- package/dist/{km-9otJgiIh.js.map → km-CoApUtat.js.map} +1 -1
- package/dist/{kn-DJczfmYD.js → kn-CRoCScPJ.js} +3 -3
- package/dist/{kn-DJczfmYD.js.map → kn-CRoCScPJ.js.map} +1 -1
- package/dist/{ko-B9A_eri8.js → ko-B8e9p6Yy.js} +3 -3
- package/dist/{ko-B9A_eri8.js.map → ko-B8e9p6Yy.js.map} +1 -1
- package/dist/{ku-_Kf5C2c7.js → ku-CbEvCXj-.js} +3 -3
- package/dist/{ku-_Kf5C2c7.js.map → ku-CbEvCXj-.js.map} +1 -1
- package/dist/{ky-DRskfNgX.js → ky-d7j85MiG.js} +3 -3
- package/dist/{ky-DRskfNgX.js.map → ky-d7j85MiG.js.map} +1 -1
- package/dist/{lb-C-UwEw_7.js → lb-B1s-m6jo.js} +3 -3
- package/dist/{lb-C-UwEw_7.js.map → lb-B1s-m6jo.js.map} +1 -1
- package/dist/{lo-sW95oISM.js → lo-CCW98rAK.js} +3 -3
- package/dist/{lo-sW95oISM.js.map → lo-CCW98rAK.js.map} +1 -1
- package/dist/{lt-BIQ1X6j9.js → lt-BWBlfiGY.js} +3 -3
- package/dist/{lt-BIQ1X6j9.js.map → lt-BWBlfiGY.js.map} +1 -1
- package/dist/{lv-CJ0I6x3J.js → lv-DacgvhEf.js} +3 -3
- package/dist/{lv-CJ0I6x3J.js.map → lv-DacgvhEf.js.map} +1 -1
- package/dist/{me-I5vD8A9p.js → me-QSZAwO8T.js} +3 -3
- package/dist/{me-I5vD8A9p.js.map → me-QSZAwO8T.js.map} +1 -1
- package/dist/{mi-Bh-1jELG.js → mi-ZmfLKbCL.js} +3 -3
- package/dist/{mi-Bh-1jELG.js.map → mi-ZmfLKbCL.js.map} +1 -1
- package/dist/{mk-CJJWXhz9.js → mk-D8O9lTQB.js} +3 -3
- package/dist/{mk-CJJWXhz9.js.map → mk-D8O9lTQB.js.map} +1 -1
- package/dist/{ml-zyPZ4dun.js → ml-p7ZAFts0.js} +3 -3
- package/dist/{ml-zyPZ4dun.js.map → ml-p7ZAFts0.js.map} +1 -1
- package/dist/{mn-rjaOKery.js → mn-CymVf8dz.js} +3 -3
- package/dist/{mn-rjaOKery.js.map → mn-CymVf8dz.js.map} +1 -1
- package/dist/{mr-TxcSvEjL.js → mr-Jxsxgzpq.js} +3 -3
- package/dist/{mr-TxcSvEjL.js.map → mr-Jxsxgzpq.js.map} +1 -1
- package/dist/{ms-BdT-wuTk.js → ms-BbARuruc.js} +3 -3
- package/dist/{ms-BdT-wuTk.js.map → ms-BbARuruc.js.map} +1 -1
- package/dist/{mt-CoyRya_Q.js → mt-CSYAjUOn.js} +3 -3
- package/dist/{mt-CoyRya_Q.js.map → mt-CSYAjUOn.js.map} +1 -1
- package/dist/{my-CaI2s1qJ.js → my-BvawjnrK.js} +3 -3
- package/dist/{my-CaI2s1qJ.js.map → my-BvawjnrK.js.map} +1 -1
- package/dist/{nb-CyODDx_S.js → nb-BLiOCv0U.js} +3 -3
- package/dist/{nb-CyODDx_S.js.map → nb-BLiOCv0U.js.map} +1 -1
- package/dist/{ne-Bkf2gFnu.js → ne-B1zSkIol.js} +3 -3
- package/dist/{ne-Bkf2gFnu.js.map → ne-B1zSkIol.js.map} +1 -1
- package/dist/{nl-D8wjLMXs.js → nl-HGCTmajj.js} +3 -3
- package/dist/{nl-D8wjLMXs.js.map → nl-HGCTmajj.js.map} +1 -1
- package/dist/{nn-DYetCtDz.js → nn-BvgdpFPO.js} +3 -3
- package/dist/{nn-DYetCtDz.js.map → nn-BvgdpFPO.js.map} +1 -1
- package/dist/{pies.utils-M07sKv2c.js → pies.utils-Cpnx2_fq.js} +6 -6
- package/dist/{pies.utils-M07sKv2c.js.map → pies.utils-Cpnx2_fq.js.map} +1 -1
- package/dist/{pl-80QkwVsG.js → pl-CnTigrDZ.js} +3 -3
- package/dist/{pl-80QkwVsG.js.map → pl-CnTigrDZ.js.map} +1 -1
- package/dist/{preview.data.constants-C__PriSe.js → preview.data.constants-DGIhRSwN.js} +16 -15
- package/dist/preview.data.constants-DGIhRSwN.js.map +1 -0
- package/dist/{pt-e-VMAimL.js → pt-Ba1mse0Q.js} +3 -3
- package/dist/{pt-e-VMAimL.js.map → pt-Ba1mse0Q.js.map} +1 -1
- package/dist/{quarterOfYear-B8xED9o-.js → quarterOfYear-CEHEaxw0.js} +2 -2
- package/dist/{quarterOfYear-B8xED9o-.js.map → quarterOfYear-CEHEaxw0.js.map} +1 -1
- package/dist/{ro-DQdPl1Dm.js → ro-Bzwt3epE.js} +3 -3
- package/dist/{ro-DQdPl1Dm.js.map → ro-Bzwt3epE.js.map} +1 -1
- package/dist/{ru-fL5OdP54.js → ru-DImW1Ouf.js} +3 -3
- package/dist/{ru-fL5OdP54.js.map → ru-DImW1Ouf.js.map} +1 -1
- package/dist/{rw-CksoXElC.js → rw-aNTmGHrj.js} +3 -3
- package/dist/{rw-CksoXElC.js.map → rw-aNTmGHrj.js.map} +1 -1
- package/dist/{sd-B-NkiggT.js → sd-6IxwEc_D.js} +3 -3
- package/dist/{sd-B-NkiggT.js.map → sd-6IxwEc_D.js.map} +1 -1
- package/dist/{se-B2Dg9l6V.js → se-CHnwvD_Z.js} +3 -3
- package/dist/{se-B2Dg9l6V.js.map → se-CHnwvD_Z.js.map} +1 -1
- package/dist/{si-BuORSy_u.js → si-Dv6gvj-u.js} +3 -3
- package/dist/{si-BuORSy_u.js.map → si-Dv6gvj-u.js.map} +1 -1
- package/dist/{sk-Dpacc8Of.js → sk-T2pg-XYA.js} +3 -3
- package/dist/{sk-Dpacc8Of.js.map → sk-T2pg-XYA.js.map} +1 -1
- package/dist/{sl-IAlUX_VT.js → sl-CtEwvayz.js} +3 -3
- package/dist/{sl-IAlUX_VT.js.map → sl-CtEwvayz.js.map} +1 -1
- package/dist/{sq-BALl2ESB.js → sq-5-4tk-Wm.js} +3 -3
- package/dist/{sq-BALl2ESB.js.map → sq-5-4tk-Wm.js.map} +1 -1
- package/dist/{sr-kexS3jQx.js → sr-D5q9EBpG.js} +3 -3
- package/dist/{sr-kexS3jQx.js.map → sr-D5q9EBpG.js.map} +1 -1
- package/dist/{ss-BpHxT4zC.js → ss-7dhR1lXB.js} +3 -3
- package/dist/{ss-BpHxT4zC.js.map → ss-7dhR1lXB.js.map} +1 -1
- package/dist/{sv-B6uV_f23.js → sv-CHlpvnVm.js} +3 -3
- package/dist/{sv-B6uV_f23.js.map → sv-CHlpvnVm.js.map} +1 -1
- package/dist/{sw-DjGfz5qZ.js → sw-DRFEQhGw.js} +3 -3
- package/dist/{sw-DjGfz5qZ.js.map → sw-DRFEQhGw.js.map} +1 -1
- package/dist/{ta-CZgkXNj6.js → ta-xX9UCbd0.js} +3 -3
- package/dist/{ta-CZgkXNj6.js.map → ta-xX9UCbd0.js.map} +1 -1
- package/dist/{tables.utils-NS_hkFuI.js → tables.utils-BpMzNWph.js} +4 -4
- package/dist/{tables.utils-NS_hkFuI.js.map → tables.utils-BpMzNWph.js.map} +1 -1
- package/dist/{te-Qj5uBDEH.js → te-BnlJTtUe.js} +3 -3
- package/dist/{te-Qj5uBDEH.js.map → te-BnlJTtUe.js.map} +1 -1
- package/dist/{tet-BtSMpKfs.js → tet-5qrJ4ewg.js} +3 -3
- package/dist/{tet-BtSMpKfs.js.map → tet-5qrJ4ewg.js.map} +1 -1
- package/dist/{tg-BpLlyWtd.js → tg-BCeKPoM0.js} +3 -3
- package/dist/{tg-BpLlyWtd.js.map → tg-BCeKPoM0.js.map} +1 -1
- package/dist/{th-vtdRCBlo.js → th-UhhL8PQz.js} +3 -3
- package/dist/{th-vtdRCBlo.js.map → th-UhhL8PQz.js.map} +1 -1
- package/dist/{theme.constants-CYQqfiRZ.js → theme.constants-C6lVbvvj.js} +6 -6
- package/dist/{theme.constants-CYQqfiRZ.js.map → theme.constants-C6lVbvvj.js.map} +1 -1
- package/dist/{tk-BVuSwh4G.js → tk-BopA5OkK.js} +3 -3
- package/dist/{tk-BVuSwh4G.js.map → tk-BopA5OkK.js.map} +1 -1
- package/dist/{tlh-CWBMqOLb.js → tlh-CTgwE_1L.js} +3 -3
- package/dist/{tlh-CWBMqOLb.js.map → tlh-CTgwE_1L.js.map} +1 -1
- package/dist/{tr-Dbnx0zsu.js → tr-Dh1vV8cr.js} +3 -3
- package/dist/{tr-Dbnx0zsu.js.map → tr-Dh1vV8cr.js.map} +1 -1
- package/dist/{tzl-CLBl0dBo.js → tzl-hZE-OZCe.js} +3 -3
- package/dist/{tzl-CLBl0dBo.js.map → tzl-hZE-OZCe.js.map} +1 -1
- package/dist/{tzm-BFaFreeK.js → tzm-D83pWJX8.js} +3 -3
- package/dist/{tzm-BFaFreeK.js.map → tzm-D83pWJX8.js.map} +1 -1
- package/dist/{uk-CyZq360m.js → uk-BF3tXV3A.js} +3 -3
- package/dist/{uk-CyZq360m.js.map → uk-BF3tXV3A.js.map} +1 -1
- package/dist/{ur-8TJwtJm2.js → ur-MOLiMuiQ.js} +3 -3
- package/dist/{ur-8TJwtJm2.js.map → ur-MOLiMuiQ.js.map} +1 -1
- package/dist/{utc-DmRT4vcf.js → utc-HN39zMcu.js} +2 -2
- package/dist/{utc-DmRT4vcf.js.map → utc-HN39zMcu.js.map} +1 -1
- package/dist/{uz-u6sik23v.js → uz-FCIg45UX.js} +3 -3
- package/dist/{uz-u6sik23v.js.map → uz-FCIg45UX.js.map} +1 -1
- package/dist/{vi-Cf7DhsnC.js → vi-BvwMZLLA.js} +3 -3
- package/dist/{vi-Cf7DhsnC.js.map → vi-BvwMZLLA.js.map} +1 -1
- package/dist/{x-pseudo-5fnnIsHO.js → x-pseudo-BOe6LzA9.js} +3 -3
- package/dist/{x-pseudo-5fnnIsHO.js.map → x-pseudo-BOe6LzA9.js.map} +1 -1
- package/dist/{yo-Dnzpalqp.js → yo-DBNBrPWp.js} +3 -3
- package/dist/{yo-Dnzpalqp.js.map → yo-DBNBrPWp.js.map} +1 -1
- package/dist/{zh-cn-BxQ3Qvnw.js → zh-cn-DfR_RqRs.js} +3 -3
- package/dist/{zh-cn-BxQ3Qvnw.js.map → zh-cn-DfR_RqRs.js.map} +1 -1
- package/dist/{zh-hk-DT8M1BfB.js → zh-hk-D_2CIfwQ.js} +3 -3
- package/dist/{zh-hk-DT8M1BfB.js.map → zh-hk-D_2CIfwQ.js.map} +1 -1
- package/dist/{zh-tw-BOg2b4Eb.js → zh-tw-j6FFh2xE.js} +3 -3
- package/dist/{zh-tw-BOg2b4Eb.js.map → zh-tw-j6FFh2xE.js.map} +1 -1
- package/package.json +1 -1
- package/dist/dates.utils-C32kbsZJ.js +0 -169
- package/dist/preview.data.constants-C__PriSe.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition-CQsDRZCj.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 } from 'chart.js';\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 } from '@embeddable.com/remarkable-ui';\nimport type {\n ChartClickArgs,\n ScatterChartInputPoint,\n ScatterDatasetWithOriginal,\n} from '@embeddable.com/remarkable-ui';\nimport { getDimensionMeasureColor } from '../../../../theme/styles/styles.utils';\nimport type { ScatterChartProOptionsClickArg } from '../scatter.types';\nimport { getDimensionFieldName } from '../../../../utils/data.utils';\n\nexport const getScatterChartProOptions = (\n {\n xMeasure,\n yMeasure,\n noValueLabel,\n }: { xMeasure: Measure; yMeasure: Measure; noValueLabel: string },\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 return {\n scales: {\n x: {\n ticks: {\n callback: (tickValue) => {\n const v = typeof tickValue === 'number' ? tickValue : Number(tickValue);\n return themeFormatter.data(xMeasure, v);\n },\n },\n },\n y: {\n ticks: {\n callback: (tickValue) => {\n const v = typeof tickValue === 'number' ? tickValue : Number(tickValue);\n return themeFormatter.data(yMeasure, v);\n },\n },\n },\n },\n plugins: {\n tooltip: {\n callbacks: {\n label: (ctx) => {\n const ds = ctx.dataset as ScatterDatasetWithOriginal;\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 formatter: (_value, context) => {\n const ds = context.dataset as ScatterDatasetWithOriginal;\n const raw =\n ds.originalData?.[context.dataIndex] ??\n (context.dataset.data[context.dataIndex] as\n | { x: number | null; y: number | null }\n | undefined);\n if (!raw) return '';\n return `(${formatValue(xMeasure, raw.x)}, ${formatValue(yMeasure, raw.y)})`;\n },\n },\n },\n },\n },\n };\n};\n\ntype CellValue = string | number | boolean | null | undefined;\n\nconst getCellValue = (value: CellValue): string => {\n if (value === null || value === undefined) return '';\n if (typeof value === 'object') return JSON.stringify(value);\n return String(value);\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, CellValue> | undefined;\n if (!row) return null;\n\n const pointField = getDimensionFieldName(pointDimension);\n const groupField = groupByDimension ? getDimensionFieldName(groupByDimension) : undefined;\n\n const pointDimensionValue = getCellValue(row[pointField]);\n const groupByDimensionValue = groupField ? getCellValue(row[groupField]) : null;\n\n return {\n xMeasureValue: getCellValue(row[xMeasure.name]),\n yMeasureValue: getCellValue(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\nconst NULL_GROUP_KEY = '__scatter_null_group__';\n\nexport const measureToNullableNumber = (value: unknown): number | null => {\n if (value === null || value === undefined) return null;\n if (typeof value === 'number') return Number.isFinite(value) ? value : null;\n const n = Number(value);\n return Number.isFinite(n) ? n : null;\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 '../scatter.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 }, 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 '../scatter.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 showPointLabels = {\n ...inputs.boolean,\n name: 'showPointLabels',\n label: 'Show point labels',\n defaultValue: false,\n category: 'Component Settings',\n} as const;\n\nconst meta = {\n name: 'ScatterChartPro',\n label: 'Scatter Chart',\n category: 'Scatter Charts',\n inputs: [\n inputs.dataset,\n inputs.xMeasure,\n inputs.yMeasure,\n {\n ...inputs.dimension,\n name: 'pointDimension',\n label: 'Point dimension',\n },\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 showPointLabels,\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 {\n name: 'xMeasureValue',\n label: 'Clicked X measure value',\n type: 'string',\n },\n {\n name: 'yMeasureValue',\n label: 'Clicked Y measure value',\n type: 'string',\n },\n {\n name: 'pointDimensionValue',\n label: 'Clicked point dimension value',\n type: 'string',\n },\n {\n name: 'groupByDimensionValue',\n label: 'Clicked group by value',\n type: 'string',\n },\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":["getScatterChartProOptions","xMeasure","yMeasure","noValueLabel","theme","themeFormatter","getThemeFormatter","formatValue","measure","value","tickValue","v","ctx","ds","orig","_a","prefix","_value","context","raw","getCellValue","getPointClickData","point","datasets","data","pointDimension","groupByDimension","rowIdx","_b","row","pointField","getDimensionFieldName","groupField","pointDimensionValue","groupByDimensionValue","getTimeRangeFromDimensionValue","createScatterClickHandler","results","onPointClick","elementAtEvent","element","clickData","NULL_GROUP_KEY","measureToNullableNumber","getScatterChartProData","props","chartColors","getChartColors","overrideColor","getColor","color","dimensionOrMeasure","index","getDimensionMeasureColor","buildPoint","rowIndex","rawPoint","pointLabel","i","groupDim","bucket","key","points","a","b","firstRowIndex","groupValue","seriesLabel","colorKey","ScatterChartPro","useTheme","i18nSetup","pointColor","showLegend","showTooltips","showPointLabels","showValueLabels","showLogarithmicScale","xAxisRangeMin","xAxisRangeMax","yAxisRangeMin","yAxisRangeMax","reverseXAxis","hideMenu","title","description","tooltip","xAxisLabel","yAxisLabel","resolveI18nProps","i18n","chartData","handleClick","chartOptions","mergician","jsx","ChartCard","ScatterChart","inputs","meta","subInputs","previewConfig","previewData","preview","definePreview","Component","loadDataResultsArgs","clientContext","getClientContextTimezone","loadDataResults","loadData","events","Value","_state","_setState","scatterChartPro"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"definition-DSD1tzfc.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 } from 'chart.js';\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 } from '@embeddable.com/remarkable-ui';\nimport type {\n ChartClickArgs,\n ScatterChartInputPoint,\n ScatterDatasetWithOriginal,\n} from '@embeddable.com/remarkable-ui';\nimport { getDimensionMeasureColor } from '../../../../theme/styles/styles.utils';\nimport type { ScatterChartProOptionsClickArg } from '../scatter.types';\nimport { getDimensionFieldName } from '../../../../utils/data.utils';\n\nexport const getScatterChartProOptions = (\n {\n xMeasure,\n yMeasure,\n noValueLabel,\n }: { xMeasure: Measure; yMeasure: Measure; noValueLabel: string },\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 return {\n scales: {\n x: {\n ticks: {\n callback: (tickValue) => {\n const v = typeof tickValue === 'number' ? tickValue : Number(tickValue);\n return themeFormatter.data(xMeasure, v);\n },\n },\n },\n y: {\n ticks: {\n callback: (tickValue) => {\n const v = typeof tickValue === 'number' ? tickValue : Number(tickValue);\n return themeFormatter.data(yMeasure, v);\n },\n },\n },\n },\n plugins: {\n tooltip: {\n callbacks: {\n label: (ctx) => {\n const ds = ctx.dataset as ScatterDatasetWithOriginal;\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 formatter: (_value, context) => {\n const ds = context.dataset as ScatterDatasetWithOriginal;\n const raw =\n ds.originalData?.[context.dataIndex] ??\n (context.dataset.data[context.dataIndex] as\n | { x: number | null; y: number | null }\n | undefined);\n if (!raw) return '';\n return `(${formatValue(xMeasure, raw.x)}, ${formatValue(yMeasure, raw.y)})`;\n },\n },\n },\n },\n },\n };\n};\n\ntype CellValue = string | number | boolean | null | undefined;\n\nconst getCellValue = (value: CellValue): string => {\n if (value === null || value === undefined) return '';\n if (typeof value === 'object') return JSON.stringify(value);\n return String(value);\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, CellValue> | undefined;\n if (!row) return null;\n\n const pointField = getDimensionFieldName(pointDimension);\n const groupField = groupByDimension ? getDimensionFieldName(groupByDimension) : undefined;\n\n const pointDimensionValue = getCellValue(row[pointField]);\n const groupByDimensionValue = groupField ? getCellValue(row[groupField]) : null;\n\n return {\n xMeasureValue: getCellValue(row[xMeasure.name]),\n yMeasureValue: getCellValue(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\nconst NULL_GROUP_KEY = '__scatter_null_group__';\n\nexport const measureToNullableNumber = (value: unknown): number | null => {\n if (value === null || value === undefined) return null;\n if (typeof value === 'number') return Number.isFinite(value) ? value : null;\n const n = Number(value);\n return Number.isFinite(n) ? n : null;\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 '../scatter.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 }, 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 '../scatter.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 showPointLabels = {\n ...inputs.boolean,\n name: 'showPointLabels',\n label: 'Show point labels',\n defaultValue: false,\n category: 'Component Settings',\n} as const;\n\nconst meta = {\n name: 'ScatterChartPro',\n label: 'Scatter Chart',\n category: 'Scatter Charts',\n inputs: [\n inputs.dataset,\n inputs.xMeasure,\n inputs.yMeasure,\n {\n ...inputs.dimension,\n name: 'pointDimension',\n label: 'Point dimension',\n },\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 showPointLabels,\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 {\n name: 'xMeasureValue',\n label: 'Clicked X measure value',\n type: 'string',\n },\n {\n name: 'yMeasureValue',\n label: 'Clicked Y measure value',\n type: 'string',\n },\n {\n name: 'pointDimensionValue',\n label: 'Clicked point dimension value',\n type: 'string',\n },\n {\n name: 'groupByDimensionValue',\n label: 'Clicked group by value',\n type: 'string',\n },\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":["getScatterChartProOptions","xMeasure","yMeasure","noValueLabel","theme","themeFormatter","getThemeFormatter","formatValue","measure","value","tickValue","v","ctx","ds","orig","_a","prefix","_value","context","raw","getCellValue","getPointClickData","point","datasets","data","pointDimension","groupByDimension","rowIdx","_b","row","pointField","getDimensionFieldName","groupField","pointDimensionValue","groupByDimensionValue","getTimeRangeFromDimensionValue","createScatterClickHandler","results","onPointClick","elementAtEvent","element","clickData","NULL_GROUP_KEY","measureToNullableNumber","getScatterChartProData","props","chartColors","getChartColors","overrideColor","getColor","color","dimensionOrMeasure","index","getDimensionMeasureColor","buildPoint","rowIndex","rawPoint","pointLabel","i","groupDim","bucket","key","points","a","b","firstRowIndex","groupValue","seriesLabel","colorKey","ScatterChartPro","useTheme","i18nSetup","pointColor","showLegend","showTooltips","showPointLabels","showValueLabels","showLogarithmicScale","xAxisRangeMin","xAxisRangeMax","yAxisRangeMin","yAxisRangeMax","reverseXAxis","hideMenu","title","description","tooltip","xAxisLabel","yAxisLabel","resolveI18nProps","i18n","chartData","handleClick","chartOptions","mergician","jsx","ChartCard","ScatterChart","inputs","meta","subInputs","previewConfig","previewData","preview","definePreview","Component","loadDataResultsArgs","clientContext","getClientContextTimezone","loadDataResults","loadData","events","Value","_state","_setState","scatterChartPro"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { m as L, j as m,
|
|
1
|
+
import { m as L, j as m, J as R, V as d, l as T } from "./index-CuEaD6nM.js";
|
|
2
2
|
import { useTheme as j, definePreview as M } from "@embeddable.com/react";
|
|
3
|
-
import { g as S, a as y, c as A } from "./pies.utils-
|
|
3
|
+
import { g as S, a as y, c as A } from "./pies.utils-Cpnx2_fq.js";
|
|
4
4
|
import { a as I, r as _ } from "./component.utils-Dua9clQJ.js";
|
|
5
|
-
import { C as O } from "./ChartCard-
|
|
6
|
-
import { i as s, s as F } from "./component.inputs.constants-
|
|
7
|
-
import { p as i } from "./preview.data.constants-
|
|
5
|
+
import { C as O } from "./ChartCard-CRWGszUn.js";
|
|
6
|
+
import { i as s, s as F } from "./component.inputs.constants-By5BzrXa.js";
|
|
7
|
+
import { p as i } from "./preview.data.constants-DGIhRSwN.js";
|
|
8
8
|
const r = (e) => {
|
|
9
9
|
var l;
|
|
10
10
|
const t = j();
|
|
@@ -56,7 +56,7 @@ const r = (e) => {
|
|
|
56
56
|
}, W = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
57
57
|
__proto__: null,
|
|
58
58
|
default: r
|
|
59
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
59
|
+
}, Symbol.toStringTag, { value: "Module" })), z = {
|
|
60
60
|
name: "DonutChartPro",
|
|
61
61
|
label: "Donut Chart",
|
|
62
62
|
category: "Pie Charts",
|
|
@@ -96,25 +96,25 @@ const r = (e) => {
|
|
|
96
96
|
results: i.results1Measure1Dimension,
|
|
97
97
|
showValueLabels: !1,
|
|
98
98
|
hideMenu: !0
|
|
99
|
-
},
|
|
99
|
+
}, E = M(r, u), c = (e) => ({
|
|
100
100
|
from: e.dataset,
|
|
101
101
|
select: [e.measure, e.dimension]
|
|
102
|
-
}), p = (e) => T(c(e)),
|
|
102
|
+
}), p = (e) => T(c(e)), H = {
|
|
103
103
|
onSegmentClick: (e) => ({
|
|
104
104
|
dimensionValue: e.dimensionValue ?? d.noFilter(),
|
|
105
105
|
dimensionTimeRange: e.dimensionTimeRange ?? d.noFilter()
|
|
106
106
|
})
|
|
107
|
-
},
|
|
107
|
+
}, J = (e) => ({
|
|
108
108
|
...e,
|
|
109
109
|
results: p(e)
|
|
110
110
|
}), X = {
|
|
111
111
|
Component: r,
|
|
112
|
-
meta:
|
|
113
|
-
preview:
|
|
112
|
+
meta: z,
|
|
113
|
+
preview: E,
|
|
114
114
|
previewConfig: u,
|
|
115
115
|
config: {
|
|
116
|
-
props:
|
|
117
|
-
events:
|
|
116
|
+
props: J,
|
|
117
|
+
events: H
|
|
118
118
|
},
|
|
119
119
|
results: {
|
|
120
120
|
loadDataArgs: c,
|
|
@@ -125,4 +125,4 @@ export {
|
|
|
125
125
|
X as d,
|
|
126
126
|
W as i
|
|
127
127
|
};
|
|
128
|
-
//# sourceMappingURL=definition-
|
|
128
|
+
//# sourceMappingURL=definition-DiFeLhuO.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition-
|
|
1
|
+
{"version":3,"file":"definition-DiFeLhuO.js","sources":["../src/components/charts/pies/DonutChartPro/index.tsx","../src/components/charts/pies/DonutChartPro/definition.ts"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { getPieChartProOptions, getPieChartProData, createPieClickHandler } from '../pies.utils';\nimport { DefaultPieChartProps } from '../pies.types';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { ChartCard } from '../../shared/ChartCard/ChartCard';\nimport { DonutChart } from '@embeddable.com/remarkable-ui';\nimport { mergician } from 'mergician';\nimport { resolveI18nProps } from '../../../component.utils';\n\nexport type DonutChartProProps = DefaultPieChartProps;\n\nconst DonutChartPro = (props: DonutChartProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const {\n description,\n\n title,\n tooltip,\n } = resolveI18nProps(props);\n\n const {\n dimension,\n maxLegendItems,\n measure,\n results,\n showLegend,\n showTooltips,\n showValueLabels,\n hideMenu,\n onSegmentClick,\n } = props;\n\n const data = getPieChartProData(\n { data: results.data, dimension, measure, maxLegendItems },\n theme,\n );\n\n const options = mergician(\n getPieChartProOptions({ measure, dimension }, theme),\n theme.charts.donutChartPro?.options ?? {},\n );\n\n const handleClick = createPieClickHandler({ results, dimension, onClicked: onSegmentClick });\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[dimension, measure]}\n errorMessage={results.error}\n description={description}\n title={title}\n tooltip={tooltip}\n hideMenu={hideMenu}\n >\n <DonutChart\n data={data}\n options={options}\n showLegend={showLegend}\n showTooltips={showTooltips}\n showValueLabels={showValueLabels}\n onClick={handleClick}\n />\n </ChartCard>\n );\n};\n\nexport default DonutChartPro;\n","import { DataResponse, LoadDataRequest, Value, loadData } from '@embeddable.com/core';\nimport { PieChartClickArg } from '../pies.types';\nimport { definePreview, EmbeddedComponentMeta, Inputs } from '@embeddable.com/react';\nimport Component from './index';\nimport { inputs } from '../../../component.inputs.constants';\nimport { previewData } from '../../../preview.data.constants';\nimport { subInputs } from '../../../component.subinputs.constants';\n\nconst meta = {\n name: 'DonutChartPro',\n label: 'Donut Chart',\n category: 'Pie Charts',\n inputs: [\n inputs.dataset,\n { ...inputs.measure, inputs: [...inputs.measure.inputs, subInputs.showValueAsPercentage] },\n inputs.dimension,\n inputs.title,\n inputs.description,\n inputs.tooltip,\n inputs.showLegend,\n inputs.maxLegendItems,\n inputs.showTooltips,\n inputs.showValueLabels,\n ],\n events: [\n {\n name: 'onSegmentClick',\n label: 'A segment is clicked',\n properties: [\n {\n name: 'dimensionValue',\n label: 'Clicked dimension',\n type: 'string',\n },\n {\n name: 'dimensionTimeRange',\n label: 'Clicked dimension time range',\n type: 'timeRange',\n },\n ],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nconst previewConfig = {\n dimension: previewData.dimension,\n measure: previewData.measure,\n results: previewData.results1Measure1Dimension,\n showValueLabels: false,\n hideMenu: true,\n};\n\nconst preview = definePreview(Component, previewConfig);\n\nconst loadDataResultsArgs = (inputs: Inputs<typeof meta>): LoadDataRequest => ({\n from: inputs.dataset,\n select: [inputs.measure, inputs.dimension],\n});\n\nconst loadDataResults = (inputs: Inputs<typeof meta>): DataResponse =>\n loadData(loadDataResultsArgs(inputs));\n\nconst events = {\n onSegmentClick: (value: PieChartClickArg) => ({\n dimensionValue: value.dimensionValue ?? Value.noFilter(),\n dimensionTimeRange: value.dimensionTimeRange ?? Value.noFilter(),\n }),\n};\n\nconst props = (inputs: Inputs<typeof meta>) => ({\n ...inputs,\n results: loadDataResults(inputs),\n});\n\nexport const donutChartPro = {\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":["DonutChartPro","props","theme","useTheme","i18nSetup","description","title","tooltip","resolveI18nProps","dimension","maxLegendItems","measure","results","showLegend","showTooltips","showValueLabels","hideMenu","onSegmentClick","data","getPieChartProData","options","mergician","getPieChartProOptions","_a","handleClick","createPieClickHandler","jsx","ChartCard","DonutChart","meta","inputs","subInputs","previewConfig","previewData","preview","definePreview","Component","loadDataResultsArgs","loadDataResults","loadData","events","value","Value","donutChartPro"],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { m as K, j as A, B as z, V as c } from "./index-
|
|
1
|
+
import { m as K, j as A, B as z, V as c } from "./index-CuEaD6nM.js";
|
|
2
2
|
import { useTheme as _, definePreview as W } from "@embeddable.com/react";
|
|
3
3
|
import { a as H, r as E } from "./component.utils-Dua9clQJ.js";
|
|
4
|
-
import { C as I } from "./ChartCard-
|
|
5
|
-
import { b as U, c as q } from "./bars.utils-
|
|
6
|
-
import { u as J } from "./charts.fillGaps.hooks-
|
|
7
|
-
import { C as N, g as Q } from "./granularity.utils-
|
|
8
|
-
import { u as Y, g as Z, a as $, l as ee, b as ie } from "./bars.loadData.utils-
|
|
9
|
-
import { d as ae } from "./charts.utils-
|
|
10
|
-
import { i } from "./component.inputs.constants-
|
|
11
|
-
import { p } from "./preview.data.constants-
|
|
4
|
+
import { C as I } from "./ChartCard-CRWGszUn.js";
|
|
5
|
+
import { b as U, c as q } from "./bars.utils-Isa3Tc-Y.js";
|
|
6
|
+
import { u as J } from "./charts.fillGaps.hooks-BsgJXp3A.js";
|
|
7
|
+
import { C as N, g as Q } from "./granularity.utils-DolOI8L7.js";
|
|
8
|
+
import { u as Y, g as Z, a as $, l as ee, b as ie } from "./bars.loadData.utils-DC4w5EwO.js";
|
|
9
|
+
import { d as ae } from "./charts.utils-CJGra06y.js";
|
|
10
|
+
import { i } from "./component.inputs.constants-By5BzrXa.js";
|
|
11
|
+
import { p } from "./preview.data.constants-DGIhRSwN.js";
|
|
12
12
|
import { g as re } from "./clientContext.utils-DpB5KsfX.js";
|
|
13
13
|
const C = (e) => {
|
|
14
14
|
var D, T;
|
|
@@ -232,4 +232,4 @@ export {
|
|
|
232
232
|
De as b,
|
|
233
233
|
be as i
|
|
234
234
|
};
|
|
235
|
-
//# sourceMappingURL=definition-
|
|
235
|
+
//# sourceMappingURL=definition-DtZmjHkB.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition-DCtFnBa0.js","sources":["../src/components/charts/bars/BarChartGroupedPro/index.tsx","../src/components/charts/bars/BarChartGroupedPro/definition.ts"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { ChartCard } from '../../shared/ChartCard/ChartCard';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { BarChart } from '@embeddable.com/remarkable-ui';\nimport { getBarStackedChartProData, getBarStackedChartProOptions } from '../bars.utils';\nimport { mergician } from 'mergician';\nimport { Dimension } from '@embeddable.com/core';\nimport { useFillGaps } from '../../charts.fillGaps.hooks';\nimport { ChartGranularitySelectField } from '../../shared/ChartGranularitySelectField/ChartGranularitySelectField';\nimport { useUpdateAxisOrderAndCacheKey } from '../bars.hooks';\nimport { BarChartStackedBaseProps } from '../bars.types';\nimport { createGroupedClickHandler } from '../../charts.utils';\n\nexport type BarChartGroupedProProps = BarChartStackedBaseProps & {\n xAxis: Dimension;\n reverseXAxis?: boolean;\n yAxisRangeMax?: number;\n yAxisRangeMin?: number;\n};\n\nconst BarChartGroupedPro = (props: BarChartGroupedProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { tooltip, description, title, xAxisLabel, yAxisLabel } = resolveI18nProps(props);\n\n const {\n hideMenu,\n groupBy,\n measure,\n reverseXAxis,\n showLegend,\n showLogarithmicScale,\n showTooltips,\n showTotalLabels,\n showValueLabels,\n xAxis,\n yAxisRangeMax,\n yAxisRangeMin,\n granularity,\n setGranularity,\n onBarClicked,\n axisOrder,\n resultsAxisOrder,\n axisOrderCacheKey,\n setAxisOrderAndCacheKey,\n } = props;\n\n useUpdateAxisOrderAndCacheKey({\n resultsAxisOrder,\n axisDimension: xAxis,\n setAxisOrderAndCacheKey,\n axisOrderCacheKey,\n });\n\n const results = useFillGaps({\n results: props.results,\n dimension: xAxis,\n });\n\n const data = getBarStackedChartProData(\n {\n data: results?.data,\n dimension: xAxis,\n groupDimension: groupBy,\n measure,\n axisOrder,\n },\n theme,\n );\n\n const options = mergician(\n getBarStackedChartProOptions(\n {\n measures: [measure],\n horizontal: false,\n data,\n dimension: xAxis,\n groupDimension: groupBy,\n },\n theme,\n ),\n theme.charts?.barChartGroupedPro?.options ?? {},\n );\n\n const granularitySelectorHasMarginTop = !title && !description && !tooltip;\n\n const handleClick = createGroupedClickHandler({\n data,\n dimension: xAxis,\n groupBy,\n granularity,\n onClicked: onBarClicked,\n });\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[measure, xAxis, groupBy]}\n errorMessage={results?.error || resultsAxisOrder?.error}\n description={description}\n title={title}\n tooltip={tooltip}\n hideMenu={hideMenu}\n >\n {setGranularity && (\n <ChartGranularitySelectField\n hasMarginTop={granularitySelectorHasMarginTop}\n dimension={xAxis}\n onChange={setGranularity}\n />\n )}\n <BarChart\n data={data}\n showLegend={showLegend}\n showTooltips={showTooltips}\n showValueLabels={showValueLabels}\n showLogarithmicScale={showLogarithmicScale}\n xAxisLabel={xAxisLabel}\n yAxisLabel={yAxisLabel}\n reverseXAxis={reverseXAxis}\n yAxisRangeMin={yAxisRangeMin}\n yAxisRangeMax={yAxisRangeMax}\n showTotalLabels={showTotalLabels}\n options={options}\n onClick={handleClick}\n />\n </ChartCard>\n );\n};\n\nexport default BarChartGroupedPro;\n","import { Granularity, OrderDirection, Value } from '@embeddable.com/core';\nimport { definePreview, EmbeddedComponentMeta, Inputs } from '@embeddable.com/react';\nimport Component from './index';\nimport { inputs } from '../../../component.inputs.constants';\nimport { previewData } from '../../../preview.data.constants';\nimport { getDimensionWithGranularity } from '../../utils/granularity.utils';\nimport {\n getAxisOrderCacheKey,\n getCachedAxisOrder,\n loadDataResultsAxisOrder,\n loadDataResults,\n} from '../bars.loadData.utils';\nimport { getClientContextTimezone } from '../../../../theme/utils/clientContext.utils';\nimport { ThemeClientContext } from '../../../../theme/theme.types';\nimport { BarChartStackedProOptionsClickArg } from '../bars.types';\n\nconst meta = {\n name: 'BarChartGroupedPro',\n label: 'Bar Chart - Grouped',\n category: 'Bar Charts',\n inputs: [\n inputs.dataset,\n inputs.measure,\n { ...inputs.dimensionWithGranularitySelectField, name: 'xAxis', label: 'X-axis' },\n inputs.groupBy,\n inputs.title,\n inputs.description,\n inputs.tooltip,\n inputs.maxResults,\n inputs.showLegend,\n inputs.showTooltips,\n { ...inputs.showValueLabels, defaultValue: false },\n inputs.showLogarithmicScale,\n inputs.sortDirectionTopXAxis,\n inputs.limitTopXAxis,\n inputs.xAxisLabel,\n inputs.yAxisLabel,\n inputs.reverseXAxis,\n inputs.yAxisRangeMin,\n inputs.yAxisRangeMax,\n ],\n events: [\n {\n name: 'onBarClicked',\n label: 'A bar is clicked',\n properties: [\n {\n name: 'axisDimensionValue',\n label: 'Clicked axis dimension value',\n type: 'string',\n },\n {\n name: 'axisDimensionTimeRange',\n label: 'Clicked axis dimension time range',\n type: 'timeRange',\n },\n {\n name: 'groupingDimensionValue',\n label: 'Clicked grouping dimension value',\n type: 'string',\n },\n {\n name: 'groupingDimensionTimeRange',\n label: 'Clicked grouping dimension time range',\n type: 'timeRange',\n },\n ],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nexport type BarChartGroupedProState = {\n granularity?: Granularity;\n axisOrder?: string[];\n axisOrderCacheKey?: string;\n};\n\nconst previewConfig = {\n xAxis: previewData.dimension,\n groupBy: previewData.dimensionGroup,\n measure: previewData.measure,\n results: previewData.results1Measure2Dimensions,\n hideMenu: true,\n};\n\nconst preview = definePreview(Component, previewConfig);\n\nconst events = {\n onBarClicked: (value: BarChartStackedProOptionsClickArg) => ({\n axisDimensionValue: value.dimensionValue ?? Value.noFilter(),\n axisDimensionTimeRange: value.dimensionTimeRange ?? Value.noFilter(),\n groupingDimensionValue: value.groupingDimensionValue ?? Value.noFilter(),\n groupingDimensionTimeRange: value.groupingDimensionTimeRange ?? Value.noFilter(),\n }),\n};\n\nconst props = (\n inputs: Inputs<typeof meta>,\n [state, setState]: [BarChartGroupedProState, (state: BarChartGroupedProState) => void],\n clientContext: ThemeClientContext,\n) => {\n const xAxisWithGranularity = getDimensionWithGranularity(inputs.xAxis, state?.granularity);\n const sortDirection = inputs.sortDirectionTopXAxis as OrderDirection | undefined;\n const timezone = getClientContextTimezone(clientContext?.timezone);\n\n const axisOrderCacheKey = getAxisOrderCacheKey({\n dataset: inputs.dataset,\n axis: xAxisWithGranularity,\n measure: inputs.measure,\n sortDirection,\n limit: inputs.limitTopXAxis,\n timezone,\n });\n\n const cachedAxisOrder = getCachedAxisOrder(axisOrderCacheKey, state);\n\n return {\n ...inputs,\n xAxis: xAxisWithGranularity,\n granularity: state?.granularity,\n axisOrder: cachedAxisOrder,\n axisOrderCacheKey,\n setGranularity: (granularity: Granularity) => setState({ ...state, granularity }),\n setAxisOrderAndCacheKey: (axisOrder: string[], cacheKey: string) =>\n setState({ ...state, axisOrder, axisOrderCacheKey: cacheKey }),\n resultsAxisOrder: loadDataResultsAxisOrder({\n dataset: inputs.dataset,\n limitTopAxis: inputs.limitTopXAxis,\n axis: xAxisWithGranularity,\n measure: inputs.measure,\n sortDirection,\n timezone,\n }),\n results: loadDataResults({\n dataset: inputs.dataset,\n axis: xAxisWithGranularity,\n groupBy: inputs.groupBy,\n measure: inputs.measure,\n sortDirection,\n limitTopAxis: inputs.limitTopXAxis,\n maxResults: inputs.maxResults,\n axisOrder: cachedAxisOrder,\n timezone,\n }),\n };\n};\n\nexport const barChartGroupedPro = {\n Component,\n meta,\n preview,\n previewConfig,\n config: {\n props,\n events,\n },\n} as const;\n"],"names":["BarChartGroupedPro","props","theme","useTheme","i18nSetup","tooltip","description","title","xAxisLabel","yAxisLabel","resolveI18nProps","hideMenu","groupBy","measure","reverseXAxis","showLegend","showLogarithmicScale","showTooltips","showTotalLabels","showValueLabels","xAxis","yAxisRangeMax","yAxisRangeMin","granularity","setGranularity","onBarClicked","axisOrder","resultsAxisOrder","axisOrderCacheKey","setAxisOrderAndCacheKey","useUpdateAxisOrderAndCacheKey","results","useFillGaps","data","getBarStackedChartProData","options","mergician","getBarStackedChartProOptions","_b","_a","granularitySelectorHasMarginTop","handleClick","createGroupedClickHandler","jsxs","ChartCard","jsx","ChartGranularitySelectField","BarChart","meta","inputs","previewConfig","previewData","preview","definePreview","Component","events","value","Value","state","setState","clientContext","xAxisWithGranularity","getDimensionWithGranularity","sortDirection","timezone","getClientContextTimezone","getAxisOrderCacheKey","cachedAxisOrder","getCachedAxisOrder","cacheKey","loadDataResultsAxisOrder","loadDataResults","barChartGroupedPro"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"definition-DtZmjHkB.js","sources":["../src/components/charts/bars/BarChartGroupedPro/index.tsx","../src/components/charts/bars/BarChartGroupedPro/definition.ts"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { ChartCard } from '../../shared/ChartCard/ChartCard';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { BarChart } from '@embeddable.com/remarkable-ui';\nimport { getBarStackedChartProData, getBarStackedChartProOptions } from '../bars.utils';\nimport { mergician } from 'mergician';\nimport { Dimension } from '@embeddable.com/core';\nimport { useFillGaps } from '../../charts.fillGaps.hooks';\nimport { ChartGranularitySelectField } from '../../shared/ChartGranularitySelectField/ChartGranularitySelectField';\nimport { useUpdateAxisOrderAndCacheKey } from '../bars.hooks';\nimport { BarChartStackedBaseProps } from '../bars.types';\nimport { createGroupedClickHandler } from '../../charts.utils';\n\nexport type BarChartGroupedProProps = BarChartStackedBaseProps & {\n xAxis: Dimension;\n reverseXAxis?: boolean;\n yAxisRangeMax?: number;\n yAxisRangeMin?: number;\n};\n\nconst BarChartGroupedPro = (props: BarChartGroupedProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { tooltip, description, title, xAxisLabel, yAxisLabel } = resolveI18nProps(props);\n\n const {\n hideMenu,\n groupBy,\n measure,\n reverseXAxis,\n showLegend,\n showLogarithmicScale,\n showTooltips,\n showTotalLabels,\n showValueLabels,\n xAxis,\n yAxisRangeMax,\n yAxisRangeMin,\n granularity,\n setGranularity,\n onBarClicked,\n axisOrder,\n resultsAxisOrder,\n axisOrderCacheKey,\n setAxisOrderAndCacheKey,\n } = props;\n\n useUpdateAxisOrderAndCacheKey({\n resultsAxisOrder,\n axisDimension: xAxis,\n setAxisOrderAndCacheKey,\n axisOrderCacheKey,\n });\n\n const results = useFillGaps({\n results: props.results,\n dimension: xAxis,\n });\n\n const data = getBarStackedChartProData(\n {\n data: results?.data,\n dimension: xAxis,\n groupDimension: groupBy,\n measure,\n axisOrder,\n },\n theme,\n );\n\n const options = mergician(\n getBarStackedChartProOptions(\n {\n measures: [measure],\n horizontal: false,\n data,\n dimension: xAxis,\n groupDimension: groupBy,\n },\n theme,\n ),\n theme.charts?.barChartGroupedPro?.options ?? {},\n );\n\n const granularitySelectorHasMarginTop = !title && !description && !tooltip;\n\n const handleClick = createGroupedClickHandler({\n data,\n dimension: xAxis,\n groupBy,\n granularity,\n onClicked: onBarClicked,\n });\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[measure, xAxis, groupBy]}\n errorMessage={results?.error || resultsAxisOrder?.error}\n description={description}\n title={title}\n tooltip={tooltip}\n hideMenu={hideMenu}\n >\n {setGranularity && (\n <ChartGranularitySelectField\n hasMarginTop={granularitySelectorHasMarginTop}\n dimension={xAxis}\n onChange={setGranularity}\n />\n )}\n <BarChart\n data={data}\n showLegend={showLegend}\n showTooltips={showTooltips}\n showValueLabels={showValueLabels}\n showLogarithmicScale={showLogarithmicScale}\n xAxisLabel={xAxisLabel}\n yAxisLabel={yAxisLabel}\n reverseXAxis={reverseXAxis}\n yAxisRangeMin={yAxisRangeMin}\n yAxisRangeMax={yAxisRangeMax}\n showTotalLabels={showTotalLabels}\n options={options}\n onClick={handleClick}\n />\n </ChartCard>\n );\n};\n\nexport default BarChartGroupedPro;\n","import { Granularity, OrderDirection, Value } from '@embeddable.com/core';\nimport { definePreview, EmbeddedComponentMeta, Inputs } from '@embeddable.com/react';\nimport Component from './index';\nimport { inputs } from '../../../component.inputs.constants';\nimport { previewData } from '../../../preview.data.constants';\nimport { getDimensionWithGranularity } from '../../utils/granularity.utils';\nimport {\n getAxisOrderCacheKey,\n getCachedAxisOrder,\n loadDataResultsAxisOrder,\n loadDataResults,\n} from '../bars.loadData.utils';\nimport { getClientContextTimezone } from '../../../../theme/utils/clientContext.utils';\nimport { ThemeClientContext } from '../../../../theme/theme.types';\nimport { BarChartStackedProOptionsClickArg } from '../bars.types';\n\nconst meta = {\n name: 'BarChartGroupedPro',\n label: 'Bar Chart - Grouped',\n category: 'Bar Charts',\n inputs: [\n inputs.dataset,\n inputs.measure,\n { ...inputs.dimensionWithGranularitySelectField, name: 'xAxis', label: 'X-axis' },\n inputs.groupBy,\n inputs.title,\n inputs.description,\n inputs.tooltip,\n inputs.maxResults,\n inputs.showLegend,\n inputs.showTooltips,\n { ...inputs.showValueLabels, defaultValue: false },\n inputs.showLogarithmicScale,\n inputs.sortDirectionTopXAxis,\n inputs.limitTopXAxis,\n inputs.xAxisLabel,\n inputs.yAxisLabel,\n inputs.reverseXAxis,\n inputs.yAxisRangeMin,\n inputs.yAxisRangeMax,\n ],\n events: [\n {\n name: 'onBarClicked',\n label: 'A bar is clicked',\n properties: [\n {\n name: 'axisDimensionValue',\n label: 'Clicked axis dimension value',\n type: 'string',\n },\n {\n name: 'axisDimensionTimeRange',\n label: 'Clicked axis dimension time range',\n type: 'timeRange',\n },\n {\n name: 'groupingDimensionValue',\n label: 'Clicked grouping dimension value',\n type: 'string',\n },\n {\n name: 'groupingDimensionTimeRange',\n label: 'Clicked grouping dimension time range',\n type: 'timeRange',\n },\n ],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nexport type BarChartGroupedProState = {\n granularity?: Granularity;\n axisOrder?: string[];\n axisOrderCacheKey?: string;\n};\n\nconst previewConfig = {\n xAxis: previewData.dimension,\n groupBy: previewData.dimensionGroup,\n measure: previewData.measure,\n results: previewData.results1Measure2Dimensions,\n hideMenu: true,\n};\n\nconst preview = definePreview(Component, previewConfig);\n\nconst events = {\n onBarClicked: (value: BarChartStackedProOptionsClickArg) => ({\n axisDimensionValue: value.dimensionValue ?? Value.noFilter(),\n axisDimensionTimeRange: value.dimensionTimeRange ?? Value.noFilter(),\n groupingDimensionValue: value.groupingDimensionValue ?? Value.noFilter(),\n groupingDimensionTimeRange: value.groupingDimensionTimeRange ?? Value.noFilter(),\n }),\n};\n\nconst props = (\n inputs: Inputs<typeof meta>,\n [state, setState]: [BarChartGroupedProState, (state: BarChartGroupedProState) => void],\n clientContext: ThemeClientContext,\n) => {\n const xAxisWithGranularity = getDimensionWithGranularity(inputs.xAxis, state?.granularity);\n const sortDirection = inputs.sortDirectionTopXAxis as OrderDirection | undefined;\n const timezone = getClientContextTimezone(clientContext?.timezone);\n\n const axisOrderCacheKey = getAxisOrderCacheKey({\n dataset: inputs.dataset,\n axis: xAxisWithGranularity,\n measure: inputs.measure,\n sortDirection,\n limit: inputs.limitTopXAxis,\n timezone,\n });\n\n const cachedAxisOrder = getCachedAxisOrder(axisOrderCacheKey, state);\n\n return {\n ...inputs,\n xAxis: xAxisWithGranularity,\n granularity: state?.granularity,\n axisOrder: cachedAxisOrder,\n axisOrderCacheKey,\n setGranularity: (granularity: Granularity) => setState({ ...state, granularity }),\n setAxisOrderAndCacheKey: (axisOrder: string[], cacheKey: string) =>\n setState({ ...state, axisOrder, axisOrderCacheKey: cacheKey }),\n resultsAxisOrder: loadDataResultsAxisOrder({\n dataset: inputs.dataset,\n limitTopAxis: inputs.limitTopXAxis,\n axis: xAxisWithGranularity,\n measure: inputs.measure,\n sortDirection,\n timezone,\n }),\n results: loadDataResults({\n dataset: inputs.dataset,\n axis: xAxisWithGranularity,\n groupBy: inputs.groupBy,\n measure: inputs.measure,\n sortDirection,\n limitTopAxis: inputs.limitTopXAxis,\n maxResults: inputs.maxResults,\n axisOrder: cachedAxisOrder,\n timezone,\n }),\n };\n};\n\nexport const barChartGroupedPro = {\n Component,\n meta,\n preview,\n previewConfig,\n config: {\n props,\n events,\n },\n} as const;\n"],"names":["BarChartGroupedPro","props","theme","useTheme","i18nSetup","tooltip","description","title","xAxisLabel","yAxisLabel","resolveI18nProps","hideMenu","groupBy","measure","reverseXAxis","showLegend","showLogarithmicScale","showTooltips","showTotalLabels","showValueLabels","xAxis","yAxisRangeMax","yAxisRangeMin","granularity","setGranularity","onBarClicked","axisOrder","resultsAxisOrder","axisOrderCacheKey","setAxisOrderAndCacheKey","useUpdateAxisOrderAndCacheKey","results","useFillGaps","data","getBarStackedChartProData","options","mergician","getBarStackedChartProOptions","_b","_a","granularitySelectorHasMarginTop","handleClick","createGroupedClickHandler","jsxs","ChartCard","jsx","ChartGranularitySelectField","BarChart","meta","inputs","previewConfig","previewData","preview","definePreview","Component","events","value","Value","state","setState","clientContext","xAxisWithGranularity","getDimensionWithGranularity","sortDirection","timezone","getClientContextTimezone","getAxisOrderCacheKey","cachedAxisOrder","getCachedAxisOrder","cacheKey","loadDataResultsAxisOrder","loadDataResults","barChartGroupedPro"],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { j as d, M as V, V as c } from "./index-
|
|
1
|
+
import { j as d, M as V, V as c } from "./index-CuEaD6nM.js";
|
|
2
2
|
import { useTheme as P, definePreview as F } from "@embeddable.com/react";
|
|
3
|
-
import { i as n } from "./component.inputs.constants-
|
|
4
|
-
import { p as u } from "./preview.data.constants-
|
|
3
|
+
import { i as n } from "./component.inputs.constants-By5BzrXa.js";
|
|
4
|
+
import { p as u } from "./preview.data.constants-DGIhRSwN.js";
|
|
5
5
|
import { useState as m, useEffect as j } from "react";
|
|
6
6
|
import { a as x, r as w, i as E } from "./component.utils-Dua9clQJ.js";
|
|
7
|
-
import { E as _ } from "./EditorCard-
|
|
8
|
-
import { g as N } from "./dimensionsAndMeasures.utils-
|
|
7
|
+
import { E as _ } from "./EditorCard-CM8UygnJ.js";
|
|
8
|
+
import { g as N } from "./dimensionsAndMeasures.utils-LtmJTpzD.js";
|
|
9
9
|
const r = (e) => {
|
|
10
10
|
const l = P();
|
|
11
11
|
x(l);
|
|
@@ -120,4 +120,4 @@ export {
|
|
|
120
120
|
Q as d,
|
|
121
121
|
L as i
|
|
122
122
|
};
|
|
123
|
-
//# sourceMappingURL=definition-
|
|
123
|
+
//# sourceMappingURL=definition-E1LudO9R.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition-
|
|
1
|
+
{"version":3,"file":"definition-E1LudO9R.js","sources":["../src/components/editors/DimensionOrMeasureMultiSelectFieldPro/index.tsx","../src/components/editors/DimensionOrMeasureMultiSelectFieldPro/definition.ts"],"sourcesContent":["import { DimensionOrMeasure } from '@embeddable.com/core';\nimport { useTheme } from '@embeddable.com/react';\nimport { MultiSelectField } from '@embeddable.com/remarkable-ui';\nimport { useState, useEffect } from 'react';\nimport { Theme } from '../../../theme/theme.types';\nimport { i18nSetup, i18n } from '../../../theme/i18n/i18n';\nimport { EditorCard, EditorCardHeaderProps } from '../shared/EditorCard/EditorCard';\nimport { resolveI18nProps } from '../../component.utils';\nimport { getDimensionAndMeasureOptions } from '../utils/dimensionsAndMeasures.utils';\n\nexport type DimensionMeasureMultiSelectFieldProProps = {\n selectedDimensionsAndMeasures?: DimensionOrMeasure[];\n dimensionAndMeasureOptions?: DimensionOrMeasure[];\n placeholder?: string;\n clearable?: boolean;\n onChange: (value: DimensionOrMeasure[]) => void;\n} & EditorCardHeaderProps;\n\nconst DimensionMeasureMultiSelectFieldPro = (props: DimensionMeasureMultiSelectFieldProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const {\n selectedDimensionsAndMeasures = [],\n dimensionAndMeasureOptions = [],\n clearable,\n onChange,\n } = props;\n const { title, description, tooltip, placeholder } = resolveI18nProps(props);\n\n const [searchValue, setSearchValue] = useState('');\n const [pendingValues, setPendingValues] = useState<string[]>([]);\n\n useEffect(() => {\n if (clearable) return;\n if (selectedDimensionsAndMeasures.length > 0) return;\n const first = dimensionAndMeasureOptions[0];\n if (!first) return;\n\n onChange([first]);\n }, [clearable, selectedDimensionsAndMeasures.length, dimensionAndMeasureOptions, onChange]);\n\n const currentDimensionAndMeasureNames = selectedDimensionsAndMeasures.map((d) => d.name);\n\n const options = getDimensionAndMeasureOptions({\n dimensionsAndMeasures: dimensionAndMeasureOptions,\n searchValue,\n theme,\n });\n\n const handleChange = (newValues: string[]) => {\n const selectedNamesSet = new Set(newValues);\n onChange(dimensionAndMeasureOptions.filter((d) => selectedNamesSet.has(d.name)));\n };\n\n return (\n <EditorCard title={title} description={description} tooltip={tooltip}>\n <MultiSelectField\n isClearable={clearable}\n disableApplyButton={!clearable && pendingValues.length === 0}\n isSearchable\n values={currentDimensionAndMeasureNames}\n options={options}\n placeholder={placeholder}\n noOptionsMessage={i18n.t('common.noOptionsFound')}\n onChange={handleChange}\n onPendingChange={setPendingValues}\n onSearch={setSearchValue}\n avoidCollisions={false}\n />\n </EditorCard>\n );\n};\n\nexport default DimensionMeasureMultiSelectFieldPro;\n","import { Value } from '@embeddable.com/core';\nimport { EmbeddedComponentMeta, Inputs, definePreview } from '@embeddable.com/react';\nimport { inputs } from '../../component.inputs.constants';\nimport { previewData } from '../../preview.data.constants';\nimport Component from './index';\n\nconst meta = {\n name: 'DimensionMeasureMultiSelectFieldPro',\n label: 'Dimension and Measure Multi Select Field',\n category: 'Dropdowns - dimensions and measures',\n defaultWidth: 300,\n defaultHeight: 120,\n inputs: [\n inputs.dataset,\n inputs.dimensionAndMeasureOptions,\n inputs.title,\n inputs.description,\n inputs.tooltip,\n { ...inputs.placeholder, defaultValue: 'Select values...' },\n {\n ...inputs.dimensionsAndMeasures,\n name: 'selectedDimensionsAndMeasures',\n label: 'Selected dimensions and measures',\n category: 'Pre-configured Variables',\n required: false,\n config: {\n dataset: 'dataset',\n },\n },\n { ...inputs.clearable, defaultValue: false },\n ],\n events: [\n {\n name: 'onChange',\n label: 'Selected dimensions and measures updated',\n properties: [\n {\n name: 'value',\n label: 'Selected values',\n type: 'dimensionOrMeasure',\n array: true,\n },\n ],\n },\n ],\n variables: [\n {\n name: 'dimension-measure multi-select values',\n type: 'dimensionOrMeasure',\n array: true,\n defaultValue: Value.noFilter(),\n inputs: ['selectedDimensionsAndMeasures'],\n events: [{ name: 'onChange', property: 'value' }],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nconst preview = definePreview(Component, {\n dimensionAndMeasureOptions: [previewData.dimension, previewData.measure],\n onChange: () => null,\n});\n\nconst props = (inputs: Inputs<typeof meta>) => {\n return {\n ...inputs,\n dimensionAndMeasureOptions: inputs.dimensionAndMeasureOptions ?? [],\n selectedDimensionsAndMeasures: inputs.selectedDimensionsAndMeasures ?? [],\n };\n};\n\nconst events = {\n onChange: (value: unknown) => {\n return {\n value: Array.isArray(value) && value.length ? value : Value.noFilter(),\n };\n },\n};\n\nexport const dimensionMeasureMultiSelectFieldPro = {\n Component,\n meta,\n preview,\n config: {\n props,\n events,\n },\n} as const;\n"],"names":["DimensionMeasureMultiSelectFieldPro","props","theme","useTheme","i18nSetup","selectedDimensionsAndMeasures","dimensionAndMeasureOptions","clearable","onChange","title","description","tooltip","placeholder","resolveI18nProps","searchValue","setSearchValue","useState","pendingValues","setPendingValues","useEffect","first","currentDimensionAndMeasureNames","d","options","getDimensionAndMeasureOptions","handleChange","newValues","selectedNamesSet","jsx","EditorCard","MultiSelectField","i18n","meta","inputs","Value","preview","definePreview","Component","previewData","events","value","dimensionMeasureMultiSelectFieldPro"],"mappings":"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"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { t as $, m as z, j as R, L as W, V as y, l as _ } from "./index-
|
|
1
|
+
import { t as $, m as z, j as R, L as W, V as y, l as _ } from "./index-CuEaD6nM.js";
|
|
2
2
|
import { useTheme as B, definePreview as X } from "@embeddable.com/react";
|
|
3
3
|
import { a as H, r as U } from "./component.utils-Dua9clQJ.js";
|
|
4
|
-
import { C as Y } from "./ChartCard-
|
|
5
|
-
import { g as v } from "./formatter.utils-
|
|
4
|
+
import { C as Y } from "./ChartCard-CRWGszUn.js";
|
|
5
|
+
import { g as v } from "./formatter.utils-DrM8pNZU.js";
|
|
6
6
|
import { g as G } from "./styles.utils-C8CnV0SB.js";
|
|
7
7
|
import { s as E } from "./color.utils-BSg_DFOh.js";
|
|
8
|
-
import { b as T, d as N } from "./charts.utils-
|
|
9
|
-
import { u as q } from "./charts.fillGaps.hooks-
|
|
10
|
-
import { C as J, g as K } from "./granularity.utils-
|
|
11
|
-
import { i as n } from "./component.inputs.constants-
|
|
12
|
-
import { p as A } from "./preview.data.constants-
|
|
8
|
+
import { b as T, d as N } from "./charts.utils-CJGra06y.js";
|
|
9
|
+
import { u as q } from "./charts.fillGaps.hooks-BsgJXp3A.js";
|
|
10
|
+
import { C as J, g as K } from "./granularity.utils-DolOI8L7.js";
|
|
11
|
+
import { i as n } from "./component.inputs.constants-By5BzrXa.js";
|
|
12
|
+
import { p as A } from "./preview.data.constants-DGIhRSwN.js";
|
|
13
13
|
import { g as Q } from "./clientContext.utils-DpB5KsfX.js";
|
|
14
14
|
const Z = (e, a) => {
|
|
15
15
|
const s = v(a), { data: m = [], dimension: t, groupDimension: r, measure: l, hasMinMaxYAxisRange: b } = e, d = [...new Set(m.map((i) => i[t.name]).filter((i) => i != null))].sort(), u = [...new Set(m.map((i) => i[r.name]))].filter((i) => i != null), o = $(), c = u.map((i, h) => {
|
|
@@ -294,4 +294,4 @@ export {
|
|
|
294
294
|
he as i,
|
|
295
295
|
Ce as l
|
|
296
296
|
};
|
|
297
|
-
//# sourceMappingURL=definition-
|
|
297
|
+
//# sourceMappingURL=definition-FMghG3iL.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition-H-Otyg-8.js","sources":["../src/components/charts/lines/LineChartGroupedPro/LineChartGroupedPro.utils.ts","../src/components/charts/lines/LineChartGroupedPro/index.tsx","../src/components/charts/lines/LineChartGroupedPro/definition.ts"],"sourcesContent":["import { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { Theme } from '../../../../theme/theme.types';\nimport { ChartData, ChartOptions } from 'chart.js';\nimport { getThemeFormatter } from '../../../../theme/formatter/formatter.utils';\nimport { mergician } from 'mergician';\nimport { getDimensionMeasureColor } from '../../../../theme/styles/styles.utils';\nimport { setColorAlpha } from '../../../../utils/color.utils';\nimport { getChartColors } from '@embeddable.com/remarkable-ui';\nimport { getDimensionWithoutTruncation } from '../../charts.utils';\n\nexport const getLineChartGroupedProData = (\n props: {\n data: DataResponse['data'];\n dimension: Dimension;\n groupDimension: Dimension;\n measure: Measure;\n hasMinMaxYAxisRange: boolean;\n },\n theme: Theme,\n): ChartData<'line'> => {\n const themeFormatter = getThemeFormatter(theme);\n const { data = [], dimension, groupDimension, measure, hasMinMaxYAxisRange } = props;\n\n const axis = [...new Set(data.map((d) => d[dimension.name]).filter((d) => d != null))].sort();\n const groupBy = [...new Set(data.map((d) => d[groupDimension.name]))].filter((d) => d != null);\n\n const chartColors = getChartColors();\n const datasets: ChartData<'line'>['datasets'] = groupBy.map((groupByItem, index) => {\n const backgroundColor = getDimensionMeasureColor({\n dimensionOrMeasure: groupDimension,\n theme,\n color: 'background',\n value: `${groupDimension.name}.${groupByItem}`,\n chartColors,\n index,\n });\n\n const borderColor = getDimensionMeasureColor({\n dimensionOrMeasure: groupDimension,\n theme,\n color: 'border',\n value: `${groupDimension.name}.${groupByItem}`,\n chartColors,\n index,\n });\n\n const dataset = {\n clip: hasMinMaxYAxisRange,\n label: themeFormatter.data(groupDimension, groupByItem),\n rawLabel: groupByItem,\n backgroundColor: setColorAlpha(backgroundColor, 0.5),\n pointBackgroundColor: backgroundColor,\n fill: measure.inputs?.['fillUnderLine'],\n borderColor,\n data: axis.map((axisItem) => {\n const record = data.find(\n (d) => d[groupDimension.name] === groupByItem && d[dimension.name] === axisItem,\n );\n return record?.[measure.name] ?? (measure.inputs?.['connectGaps'] ? 0 : null);\n }),\n } as ChartData<'line'>['datasets'][number];\n\n return dataset;\n });\n\n return {\n labels: axis,\n datasets,\n };\n};\n\nexport const getLineChartGroupedProOptions = (\n options: {\n dimension: Dimension;\n groupDimension: Dimension;\n measure: Measure;\n data: ChartData<'line'>;\n },\n theme: Theme,\n): ChartOptions<'line'> => {\n const { dimension, groupDimension, data, measure } = options;\n const themeFormatter = getThemeFormatter(theme);\n\n const lineChartOptions: ChartOptions<'line'> = {\n plugins: {\n datalabels: {\n labels: {\n value: {\n formatter: (value: string | number) => {\n return themeFormatter.data(measure, value);\n },\n },\n },\n },\n tooltip: {\n callbacks: {\n title: (context) => {\n const label = context[0]?.label;\n return themeFormatter.data(getDimensionWithoutTruncation(dimension), label);\n },\n label: (context) => {\n const raw = context.raw as number;\n\n const label = themeFormatter.data(\n getDimensionWithoutTruncation(groupDimension),\n (context.dataset as { rawLabel?: string }).rawLabel,\n );\n return `${label}: ${themeFormatter.data(measure, raw)}`;\n },\n },\n },\n },\n scales: {\n x: {\n ticks: {\n callback: (value) => {\n if (!data || !data.labels) return undefined;\n\n const label = data.labels[Number(value)] as string;\n return themeFormatter.data(dimension, label);\n },\n },\n },\n y: {\n ticks: {\n callback: (value) => {\n return themeFormatter.data(measure, value);\n },\n },\n },\n },\n };\n\n return mergician(lineChartOptions, theme.charts?.lineChartGroupedPro?.options || {});\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { DataResponse, Dimension, Granularity, Measure } from '@embeddable.com/core';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { ChartCard, ChartCardHeaderProps } from '../../shared/ChartCard/ChartCard';\nimport {\n getLineChartGroupedProData,\n getLineChartGroupedProOptions,\n} from './LineChartGroupedPro.utils';\nimport { useFillGaps } from '../../charts.fillGaps.hooks';\nimport { LineChartGroupedProOptionsClickArg } from '../lines.types';\nimport { LineChart } from '@embeddable.com/remarkable-ui';\nimport { ChartGranularitySelectField } from '../../shared/ChartGranularitySelectField/ChartGranularitySelectField';\nimport { createGroupedClickHandler } from '../../charts.utils';\n\nexport type LineChartGroupedProProp = {\n xAxis: Dimension;\n groupBy: Dimension;\n measure: Measure;\n results: DataResponse;\n reverseXAxis?: boolean;\n showLegend?: boolean;\n showLogarithmicScale?: boolean;\n showTooltips?: boolean;\n showValueLabels?: boolean;\n xAxisLabel?: string;\n yAxisLabel?: string;\n yAxisRangeMax?: number;\n yAxisRangeMin?: number;\n granularity?: Granularity;\n setGranularity?: (granularity: Granularity) => void;\n onLineClicked?: (arg: LineChartGroupedProOptionsClickArg) => void;\n} & ChartCardHeaderProps;\n\nconst LineChartGroupedPro = (props: LineChartGroupedProProp) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { title, description, tooltip, xAxisLabel, yAxisLabel } = resolveI18nProps(props);\n const {\n hideMenu,\n measure,\n xAxis,\n groupBy,\n reverseXAxis,\n showLegend,\n showLogarithmicScale,\n showTooltips,\n showValueLabels,\n yAxisRangeMax,\n yAxisRangeMin,\n granularity,\n setGranularity,\n onLineClicked,\n } = props;\n\n const results = useFillGaps({\n results: props.results,\n dimension: props.xAxis,\n });\n\n const data = getLineChartGroupedProData(\n {\n data: results.data,\n dimension: xAxis,\n groupDimension: groupBy,\n measure,\n hasMinMaxYAxisRange: Boolean(yAxisRangeMin != null || yAxisRangeMax != null),\n },\n theme,\n );\n const options = getLineChartGroupedProOptions(\n { data, dimension: xAxis, groupDimension: groupBy, measure },\n theme,\n );\n\n const granularitySelectorHasMarginTop = !title && !description && !tooltip;\n\n const handleClick = createGroupedClickHandler({\n data,\n dimension: xAxis,\n groupBy,\n granularity,\n onClicked: onLineClicked,\n });\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[measure, xAxis, groupBy]}\n errorMessage={results.error}\n description={description}\n title={title}\n tooltip={tooltip}\n hideMenu={hideMenu}\n >\n {setGranularity && (\n <ChartGranularitySelectField\n hasMarginTop={granularitySelectorHasMarginTop}\n dimension={xAxis}\n onChange={setGranularity}\n />\n )}\n <LineChart\n data={data}\n reverseXAxis={reverseXAxis}\n showLegend={showLegend}\n showLogarithmicScale={showLogarithmicScale}\n showTooltips={showTooltips}\n showValueLabels={showValueLabels}\n xAxisLabel={xAxisLabel}\n yAxisLabel={yAxisLabel}\n yAxisRangeMax={yAxisRangeMax}\n yAxisRangeMin={yAxisRangeMin}\n options={options}\n onClick={handleClick}\n />\n </ChartCard>\n );\n};\n\nexport default LineChartGroupedPro;\n","import {\n DataResponse,\n Dimension,\n Granularity,\n LoadDataRequest,\n Value,\n loadData,\n} from '@embeddable.com/core';\nimport { definePreview, EmbeddedComponentMeta, Inputs } from '@embeddable.com/react';\nimport Component from './index';\nimport { LineChartGroupedProOptionsClickArg } from '../lines.types';\nimport { inputs } from '../../../component.inputs.constants';\nimport { previewData } from '../../../preview.data.constants';\nimport { getDimensionWithGranularity } from '../../utils/granularity.utils';\nimport { getClientContextTimezone } from '../../../../theme/utils/clientContext.utils';\nimport { ThemeClientContext } from '../../../../theme/theme.types';\n\nconst meta = {\n name: 'LineChartGroupedPro',\n label: 'Line Chart - Grouped',\n category: 'Line Charts',\n inputs: [\n inputs.dataset,\n {\n ...inputs.measure,\n inputs: [\n ...inputs.measure.inputs,\n {\n ...inputs.boolean,\n name: 'fillUnderLine',\n label: 'Fill under line',\n category: 'Component Settings',\n },\n {\n ...inputs.boolean,\n name: 'connectGaps',\n label: 'Connect gaps',\n defaultValue: true,\n category: 'Component Settings',\n },\n ],\n },\n { ...inputs.dimensionWithGranularitySelectField, name: 'xAxis', label: 'X-axis' },\n inputs.groupBy,\n inputs.title,\n inputs.description,\n inputs.tooltip,\n inputs.maxResults,\n inputs.showLegend,\n inputs.showTooltips,\n inputs.showValueLabels,\n inputs.showLogarithmicScale,\n inputs.xAxisLabel,\n inputs.yAxisLabel,\n inputs.reverseXAxis,\n inputs.yAxisRangeMin,\n inputs.yAxisRangeMax,\n ],\n events: [\n {\n name: 'onLineClicked',\n label: 'A line is clicked',\n properties: [\n {\n name: 'axisDimensionValue',\n label: 'Clicked axis dimension value',\n type: 'string',\n },\n {\n name: 'axisDimensionTimeRange',\n label: 'Clicked axis dimension time range',\n type: 'timeRange',\n },\n {\n name: 'groupingDimensionValue',\n label: 'Clicked grouping dimension value',\n type: 'string',\n },\n {\n name: 'groupingDimensionTimeRange',\n label: 'Clicked grouping dimension time range',\n type: 'timeRange',\n },\n ],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nexport type LineChartGroupedProState = {\n granularity?: Granularity;\n};\n\nconst previewConfig = {\n xAxis: previewData.dimension,\n groupBy: previewData.dimensionGroup,\n measure: previewData.measure,\n results: previewData.results1Measure2Dimensions,\n hideMenu: true,\n};\n\nconst preview = definePreview(Component, previewConfig);\n\nconst loadDataResultsArgs = (\n inputs: Inputs<typeof meta>,\n xAxis?: Dimension,\n clientContext?: ThemeClientContext,\n): LoadDataRequest => ({\n limit: inputs.maxResults,\n from: inputs.dataset,\n select: [xAxis ?? inputs.xAxis, inputs.groupBy, inputs.measure],\n timezone: getClientContextTimezone(clientContext?.timezone),\n});\n\nconst loadDataResults = (\n inputs: Inputs<typeof meta>,\n xAxis: Dimension,\n clientContext: ThemeClientContext,\n): DataResponse => loadData(loadDataResultsArgs(inputs, xAxis, clientContext));\n\nconst events = {\n onLineClicked: (value: LineChartGroupedProOptionsClickArg) => ({\n axisDimensionValue: value.dimensionValue ?? Value.noFilter(),\n axisDimensionTimeRange: value.dimensionTimeRange ?? Value.noFilter(),\n groupingDimensionValue: value.groupingDimensionValue ?? Value.noFilter(),\n groupingDimensionTimeRange: value.groupingDimensionTimeRange ?? Value.noFilter(),\n }),\n};\n\nconst props = (\n inputs: Inputs<typeof meta>,\n [state, setState]: [LineChartGroupedProState, (state: LineChartGroupedProState) => void],\n clientContext: ThemeClientContext,\n) => {\n const xAxisWithGranularity = getDimensionWithGranularity(inputs.xAxis, state?.granularity);\n\n return {\n ...inputs,\n xAxis: xAxisWithGranularity,\n granularity: state?.granularity,\n setGranularity: (granularity: Granularity) => setState({ granularity }),\n results: loadDataResults(inputs, xAxisWithGranularity, clientContext),\n };\n};\n\nexport const lineChartGroupedPro = {\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":["getLineChartGroupedProData","props","theme","themeFormatter","getThemeFormatter","data","dimension","groupDimension","measure","hasMinMaxYAxisRange","axis","d","groupBy","chartColors","getChartColors","datasets","groupByItem","index","backgroundColor","getDimensionMeasureColor","borderColor","setColorAlpha","_a","axisItem","record","getLineChartGroupedProOptions","options","mergician","value","context","label","getDimensionWithoutTruncation","raw","_b","LineChartGroupedPro","useTheme","i18nSetup","title","description","tooltip","xAxisLabel","yAxisLabel","resolveI18nProps","hideMenu","xAxis","reverseXAxis","showLegend","showLogarithmicScale","showTooltips","showValueLabels","yAxisRangeMax","yAxisRangeMin","granularity","setGranularity","onLineClicked","results","useFillGaps","granularitySelectorHasMarginTop","handleClick","createGroupedClickHandler","jsxs","ChartCard","jsx","ChartGranularitySelectField","LineChart","meta","inputs","previewConfig","previewData","preview","definePreview","Component","loadDataResultsArgs","clientContext","getClientContextTimezone","loadDataResults","loadData","events","Value","state","setState","xAxisWithGranularity","getDimensionWithGranularity","lineChartGroupedPro"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"definition-FMghG3iL.js","sources":["../src/components/charts/lines/LineChartGroupedPro/LineChartGroupedPro.utils.ts","../src/components/charts/lines/LineChartGroupedPro/index.tsx","../src/components/charts/lines/LineChartGroupedPro/definition.ts"],"sourcesContent":["import { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { Theme } from '../../../../theme/theme.types';\nimport { ChartData, ChartOptions } from 'chart.js';\nimport { getThemeFormatter } from '../../../../theme/formatter/formatter.utils';\nimport { mergician } from 'mergician';\nimport { getDimensionMeasureColor } from '../../../../theme/styles/styles.utils';\nimport { setColorAlpha } from '../../../../utils/color.utils';\nimport { getChartColors } from '@embeddable.com/remarkable-ui';\nimport { getDimensionWithoutTruncation } from '../../charts.utils';\n\nexport const getLineChartGroupedProData = (\n props: {\n data: DataResponse['data'];\n dimension: Dimension;\n groupDimension: Dimension;\n measure: Measure;\n hasMinMaxYAxisRange: boolean;\n },\n theme: Theme,\n): ChartData<'line'> => {\n const themeFormatter = getThemeFormatter(theme);\n const { data = [], dimension, groupDimension, measure, hasMinMaxYAxisRange } = props;\n\n const axis = [...new Set(data.map((d) => d[dimension.name]).filter((d) => d != null))].sort();\n const groupBy = [...new Set(data.map((d) => d[groupDimension.name]))].filter((d) => d != null);\n\n const chartColors = getChartColors();\n const datasets: ChartData<'line'>['datasets'] = groupBy.map((groupByItem, index) => {\n const backgroundColor = getDimensionMeasureColor({\n dimensionOrMeasure: groupDimension,\n theme,\n color: 'background',\n value: `${groupDimension.name}.${groupByItem}`,\n chartColors,\n index,\n });\n\n const borderColor = getDimensionMeasureColor({\n dimensionOrMeasure: groupDimension,\n theme,\n color: 'border',\n value: `${groupDimension.name}.${groupByItem}`,\n chartColors,\n index,\n });\n\n const dataset = {\n clip: hasMinMaxYAxisRange,\n label: themeFormatter.data(groupDimension, groupByItem),\n rawLabel: groupByItem,\n backgroundColor: setColorAlpha(backgroundColor, 0.5),\n pointBackgroundColor: backgroundColor,\n fill: measure.inputs?.['fillUnderLine'],\n borderColor,\n data: axis.map((axisItem) => {\n const record = data.find(\n (d) => d[groupDimension.name] === groupByItem && d[dimension.name] === axisItem,\n );\n return record?.[measure.name] ?? (measure.inputs?.['connectGaps'] ? 0 : null);\n }),\n } as ChartData<'line'>['datasets'][number];\n\n return dataset;\n });\n\n return {\n labels: axis,\n datasets,\n };\n};\n\nexport const getLineChartGroupedProOptions = (\n options: {\n dimension: Dimension;\n groupDimension: Dimension;\n measure: Measure;\n data: ChartData<'line'>;\n },\n theme: Theme,\n): ChartOptions<'line'> => {\n const { dimension, groupDimension, data, measure } = options;\n const themeFormatter = getThemeFormatter(theme);\n\n const lineChartOptions: ChartOptions<'line'> = {\n plugins: {\n datalabels: {\n labels: {\n value: {\n formatter: (value: string | number) => {\n return themeFormatter.data(measure, value);\n },\n },\n },\n },\n tooltip: {\n callbacks: {\n title: (context) => {\n const label = context[0]?.label;\n return themeFormatter.data(getDimensionWithoutTruncation(dimension), label);\n },\n label: (context) => {\n const raw = context.raw as number;\n\n const label = themeFormatter.data(\n getDimensionWithoutTruncation(groupDimension),\n (context.dataset as { rawLabel?: string }).rawLabel,\n );\n return `${label}: ${themeFormatter.data(measure, raw)}`;\n },\n },\n },\n },\n scales: {\n x: {\n ticks: {\n callback: (value) => {\n if (!data || !data.labels) return undefined;\n\n const label = data.labels[Number(value)] as string;\n return themeFormatter.data(dimension, label);\n },\n },\n },\n y: {\n ticks: {\n callback: (value) => {\n return themeFormatter.data(measure, value);\n },\n },\n },\n },\n };\n\n return mergician(lineChartOptions, theme.charts?.lineChartGroupedPro?.options || {});\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { DataResponse, Dimension, Granularity, Measure } from '@embeddable.com/core';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { ChartCard, ChartCardHeaderProps } from '../../shared/ChartCard/ChartCard';\nimport {\n getLineChartGroupedProData,\n getLineChartGroupedProOptions,\n} from './LineChartGroupedPro.utils';\nimport { useFillGaps } from '../../charts.fillGaps.hooks';\nimport { LineChartGroupedProOptionsClickArg } from '../lines.types';\nimport { LineChart } from '@embeddable.com/remarkable-ui';\nimport { ChartGranularitySelectField } from '../../shared/ChartGranularitySelectField/ChartGranularitySelectField';\nimport { createGroupedClickHandler } from '../../charts.utils';\n\nexport type LineChartGroupedProProp = {\n xAxis: Dimension;\n groupBy: Dimension;\n measure: Measure;\n results: DataResponse;\n reverseXAxis?: boolean;\n showLegend?: boolean;\n showLogarithmicScale?: boolean;\n showTooltips?: boolean;\n showValueLabels?: boolean;\n xAxisLabel?: string;\n yAxisLabel?: string;\n yAxisRangeMax?: number;\n yAxisRangeMin?: number;\n granularity?: Granularity;\n setGranularity?: (granularity: Granularity) => void;\n onLineClicked?: (arg: LineChartGroupedProOptionsClickArg) => void;\n} & ChartCardHeaderProps;\n\nconst LineChartGroupedPro = (props: LineChartGroupedProProp) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { title, description, tooltip, xAxisLabel, yAxisLabel } = resolveI18nProps(props);\n const {\n hideMenu,\n measure,\n xAxis,\n groupBy,\n reverseXAxis,\n showLegend,\n showLogarithmicScale,\n showTooltips,\n showValueLabels,\n yAxisRangeMax,\n yAxisRangeMin,\n granularity,\n setGranularity,\n onLineClicked,\n } = props;\n\n const results = useFillGaps({\n results: props.results,\n dimension: props.xAxis,\n });\n\n const data = getLineChartGroupedProData(\n {\n data: results.data,\n dimension: xAxis,\n groupDimension: groupBy,\n measure,\n hasMinMaxYAxisRange: Boolean(yAxisRangeMin != null || yAxisRangeMax != null),\n },\n theme,\n );\n const options = getLineChartGroupedProOptions(\n { data, dimension: xAxis, groupDimension: groupBy, measure },\n theme,\n );\n\n const granularitySelectorHasMarginTop = !title && !description && !tooltip;\n\n const handleClick = createGroupedClickHandler({\n data,\n dimension: xAxis,\n groupBy,\n granularity,\n onClicked: onLineClicked,\n });\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[measure, xAxis, groupBy]}\n errorMessage={results.error}\n description={description}\n title={title}\n tooltip={tooltip}\n hideMenu={hideMenu}\n >\n {setGranularity && (\n <ChartGranularitySelectField\n hasMarginTop={granularitySelectorHasMarginTop}\n dimension={xAxis}\n onChange={setGranularity}\n />\n )}\n <LineChart\n data={data}\n reverseXAxis={reverseXAxis}\n showLegend={showLegend}\n showLogarithmicScale={showLogarithmicScale}\n showTooltips={showTooltips}\n showValueLabels={showValueLabels}\n xAxisLabel={xAxisLabel}\n yAxisLabel={yAxisLabel}\n yAxisRangeMax={yAxisRangeMax}\n yAxisRangeMin={yAxisRangeMin}\n options={options}\n onClick={handleClick}\n />\n </ChartCard>\n );\n};\n\nexport default LineChartGroupedPro;\n","import {\n DataResponse,\n Dimension,\n Granularity,\n LoadDataRequest,\n Value,\n loadData,\n} from '@embeddable.com/core';\nimport { definePreview, EmbeddedComponentMeta, Inputs } from '@embeddable.com/react';\nimport Component from './index';\nimport { LineChartGroupedProOptionsClickArg } from '../lines.types';\nimport { inputs } from '../../../component.inputs.constants';\nimport { previewData } from '../../../preview.data.constants';\nimport { getDimensionWithGranularity } from '../../utils/granularity.utils';\nimport { getClientContextTimezone } from '../../../../theme/utils/clientContext.utils';\nimport { ThemeClientContext } from '../../../../theme/theme.types';\n\nconst meta = {\n name: 'LineChartGroupedPro',\n label: 'Line Chart - Grouped',\n category: 'Line Charts',\n inputs: [\n inputs.dataset,\n {\n ...inputs.measure,\n inputs: [\n ...inputs.measure.inputs,\n {\n ...inputs.boolean,\n name: 'fillUnderLine',\n label: 'Fill under line',\n category: 'Component Settings',\n },\n {\n ...inputs.boolean,\n name: 'connectGaps',\n label: 'Connect gaps',\n defaultValue: true,\n category: 'Component Settings',\n },\n ],\n },\n { ...inputs.dimensionWithGranularitySelectField, name: 'xAxis', label: 'X-axis' },\n inputs.groupBy,\n inputs.title,\n inputs.description,\n inputs.tooltip,\n inputs.maxResults,\n inputs.showLegend,\n inputs.showTooltips,\n inputs.showValueLabels,\n inputs.showLogarithmicScale,\n inputs.xAxisLabel,\n inputs.yAxisLabel,\n inputs.reverseXAxis,\n inputs.yAxisRangeMin,\n inputs.yAxisRangeMax,\n ],\n events: [\n {\n name: 'onLineClicked',\n label: 'A line is clicked',\n properties: [\n {\n name: 'axisDimensionValue',\n label: 'Clicked axis dimension value',\n type: 'string',\n },\n {\n name: 'axisDimensionTimeRange',\n label: 'Clicked axis dimension time range',\n type: 'timeRange',\n },\n {\n name: 'groupingDimensionValue',\n label: 'Clicked grouping dimension value',\n type: 'string',\n },\n {\n name: 'groupingDimensionTimeRange',\n label: 'Clicked grouping dimension time range',\n type: 'timeRange',\n },\n ],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nexport type LineChartGroupedProState = {\n granularity?: Granularity;\n};\n\nconst previewConfig = {\n xAxis: previewData.dimension,\n groupBy: previewData.dimensionGroup,\n measure: previewData.measure,\n results: previewData.results1Measure2Dimensions,\n hideMenu: true,\n};\n\nconst preview = definePreview(Component, previewConfig);\n\nconst loadDataResultsArgs = (\n inputs: Inputs<typeof meta>,\n xAxis?: Dimension,\n clientContext?: ThemeClientContext,\n): LoadDataRequest => ({\n limit: inputs.maxResults,\n from: inputs.dataset,\n select: [xAxis ?? inputs.xAxis, inputs.groupBy, inputs.measure],\n timezone: getClientContextTimezone(clientContext?.timezone),\n});\n\nconst loadDataResults = (\n inputs: Inputs<typeof meta>,\n xAxis: Dimension,\n clientContext: ThemeClientContext,\n): DataResponse => loadData(loadDataResultsArgs(inputs, xAxis, clientContext));\n\nconst events = {\n onLineClicked: (value: LineChartGroupedProOptionsClickArg) => ({\n axisDimensionValue: value.dimensionValue ?? Value.noFilter(),\n axisDimensionTimeRange: value.dimensionTimeRange ?? Value.noFilter(),\n groupingDimensionValue: value.groupingDimensionValue ?? Value.noFilter(),\n groupingDimensionTimeRange: value.groupingDimensionTimeRange ?? Value.noFilter(),\n }),\n};\n\nconst props = (\n inputs: Inputs<typeof meta>,\n [state, setState]: [LineChartGroupedProState, (state: LineChartGroupedProState) => void],\n clientContext: ThemeClientContext,\n) => {\n const xAxisWithGranularity = getDimensionWithGranularity(inputs.xAxis, state?.granularity);\n\n return {\n ...inputs,\n xAxis: xAxisWithGranularity,\n granularity: state?.granularity,\n setGranularity: (granularity: Granularity) => setState({ granularity }),\n results: loadDataResults(inputs, xAxisWithGranularity, clientContext),\n };\n};\n\nexport const lineChartGroupedPro = {\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":["getLineChartGroupedProData","props","theme","themeFormatter","getThemeFormatter","data","dimension","groupDimension","measure","hasMinMaxYAxisRange","axis","d","groupBy","chartColors","getChartColors","datasets","groupByItem","index","backgroundColor","getDimensionMeasureColor","borderColor","setColorAlpha","_a","axisItem","record","getLineChartGroupedProOptions","options","mergician","value","context","label","getDimensionWithoutTruncation","raw","_b","LineChartGroupedPro","useTheme","i18nSetup","title","description","tooltip","xAxisLabel","yAxisLabel","resolveI18nProps","hideMenu","xAxis","reverseXAxis","showLegend","showLogarithmicScale","showTooltips","showValueLabels","yAxisRangeMax","yAxisRangeMin","granularity","setGranularity","onLineClicked","results","useFillGaps","granularitySelectorHasMarginTop","handleClick","createGroupedClickHandler","jsxs","ChartCard","jsx","ChartGranularitySelectField","LineChart","meta","inputs","previewConfig","previewData","preview","definePreview","Component","loadDataResultsArgs","clientContext","getClientContextTimezone","loadDataResults","loadData","events","Value","state","setState","xAxisWithGranularity","getDimensionWithGranularity","lineChartGroupedPro"],"mappings":"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"}
|