@embeddable.com/remarkable-pro 0.3.5 → 0.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AreaChartPro.js +1 -1
- package/dist/BarChartDefaultHorizontalPro.js +1 -1
- package/dist/BarChartDefaultPro.js +1 -1
- package/dist/BarChartGroupedHorizontalPro.js +1 -1
- package/dist/BarChartGroupedPro.js +1 -1
- package/dist/BarChartStackedHorizontalPro.js +1 -1
- package/dist/BarChartStackedPro.js +1 -1
- package/dist/BarLineChartPro.js +1 -1
- package/dist/BubbleChartPro.js +1 -1
- package/dist/{ChartCard-Zy5lPApV.js → ChartCard-vJK2ZRxA.js} +3 -3
- package/dist/{ChartCard-Zy5lPApV.js.map → ChartCard-vJK2ZRxA.js.map} +1 -1
- package/dist/{Color.type.emb-DE4-dQUK.js → Color.type.emb-CZ94Bl2q.js} +2 -2
- package/dist/{Color.type.emb-DE4-dQUK.js.map → Color.type.emb-CZ94Bl2q.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-C4qGcB0l.js → DimensionAndMeasureSingleSelectField-CzvEsLDH.js} +3 -3
- package/dist/{DimensionAndMeasureSingleSelectField-C4qGcB0l.js.map → DimensionAndMeasureSingleSelectField-CzvEsLDH.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-DivoetAt.js → EditorCard-Cbb_bmWn.js} +3 -3
- package/dist/{EditorCard-DivoetAt.js.map → EditorCard-Cbb_bmWn.js.map} +1 -1
- package/dist/FilterBuilderPro.js +1 -1
- package/dist/{GranularitySelectField-CTdKK_wT.js → GranularitySelectField-D-53pTVr.js} +3 -3
- package/dist/{GranularitySelectField-CTdKK_wT.js.map → GranularitySelectField-D-53pTVr.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-cNY-BCjc.js → IconAlertCircle-BEJD8szQ.js} +2 -2
- package/dist/{IconAlertCircle-cNY-BCjc.js.map → IconAlertCircle-BEJD8szQ.js.map} +1 -1
- package/dist/{IconCalendarFilled-BO9AbeNW.js → IconCalendarFilled-FzYUS8c2.js} +2 -2
- package/dist/{IconCalendarFilled-BO9AbeNW.js.map → IconCalendarFilled-FzYUS8c2.js.map} +1 -1
- package/dist/KpiChartNumberComparisonPro.js +1 -1
- package/dist/KpiChartNumberPro.js +1 -1
- package/dist/LineChartComparisonDefaultPro.js +1 -1
- package/dist/LineChartComparisonWithKpiTabsPro.js +1 -1
- package/dist/LineChartDefaultPro.js +1 -1
- package/dist/LineChartGroupedPro.js +1 -1
- package/dist/LineChartWithKpiTabsPro.js +1 -1
- package/dist/{Markdown.type.emb-DdfstJa9.js → Markdown.type.emb-DQBx8Mpr.js} +2 -2
- package/dist/{Markdown.type.emb-DdfstJa9.js.map → Markdown.type.emb-DQBx8Mpr.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-BnPGuyoZ.js → af-DVk4xLOh.js} +3 -3
- package/dist/{af-BnPGuyoZ.js.map → af-DVk4xLOh.js.map} +1 -1
- package/dist/{am-CTht91gI.js → am-Dl4pPkq9.js} +3 -3
- package/dist/{am-CTht91gI.js.map → am-Dl4pPkq9.js.map} +1 -1
- package/dist/{ar-D5oXffSK.js → ar-8ZCDV2GZ.js} +3 -3
- package/dist/{ar-D5oXffSK.js.map → ar-8ZCDV2GZ.js.map} +1 -1
- package/dist/{az-BuBcuMxD.js → az-DbwDWR6n.js} +3 -3
- package/dist/{az-BuBcuMxD.js.map → az-DbwDWR6n.js.map} +1 -1
- package/dist/{bars.loadData.utils--qcznJ8U.js → bars.loadData.utils-KNlmFRwS.js} +4 -4
- package/dist/{bars.loadData.utils--qcznJ8U.js.map → bars.loadData.utils-KNlmFRwS.js.map} +1 -1
- package/dist/{bars.utils-EERAVU5z.js → bars.utils-COH_FQZE.js} +5 -5
- package/dist/{bars.utils-EERAVU5z.js.map → bars.utils-COH_FQZE.js.map} +1 -1
- package/dist/{be-6TDMuRI-.js → be-C8nkKgfH.js} +3 -3
- package/dist/{be-6TDMuRI-.js.map → be-C8nkKgfH.js.map} +1 -1
- package/dist/{bg-D7EFOpXU.js → bg-C3VaHAOu.js} +3 -3
- package/dist/{bg-D7EFOpXU.js.map → bg-C3VaHAOu.js.map} +1 -1
- package/dist/{bi-DMAheplM.js → bi-_yuu6ndP.js} +3 -3
- package/dist/{bi-DMAheplM.js.map → bi-_yuu6ndP.js.map} +1 -1
- package/dist/{bm-BiviiOQo.js → bm-BidF6wAo.js} +3 -3
- package/dist/{bm-BiviiOQo.js.map → bm-BidF6wAo.js.map} +1 -1
- package/dist/{bn-C7hG6XMF.js → bn-Bu3qv06g.js} +3 -3
- package/dist/{bn-C7hG6XMF.js.map → bn-Bu3qv06g.js.map} +1 -1
- package/dist/{bo-DrDTPraW.js → bo-CWNf1Z0m.js} +3 -3
- package/dist/{bo-DrDTPraW.js.map → bo-CWNf1Z0m.js.map} +1 -1
- package/dist/{br-Bah-lsa8.js → br-CWEgGrW3.js} +3 -3
- package/dist/{br-Bah-lsa8.js.map → br-CWEgGrW3.js.map} +1 -1
- package/dist/{bs-zyGkjpbD.js → bs-DlDCTfpd.js} +3 -3
- package/dist/{bs-zyGkjpbD.js.map → bs-DlDCTfpd.js.map} +1 -1
- package/dist/{ca-DCjvA_6e.js → ca-BdyIUyTt.js} +3 -3
- package/dist/{ca-DCjvA_6e.js.map → ca-BdyIUyTt.js.map} +1 -1
- package/dist/{charts.fillGaps.hooks-BemPBhvC.js → charts.fillGaps.hooks-BkJ8-vFc.js} +6 -6
- package/dist/{charts.fillGaps.hooks-BemPBhvC.js.map → charts.fillGaps.hooks-BkJ8-vFc.js.map} +1 -1
- package/dist/{charts.utils-DtGWPIVa.js → charts.utils-BaFvl6O-.js} +2 -2
- package/dist/{charts.utils-DtGWPIVa.js.map → charts.utils-BaFvl6O-.js.map} +1 -1
- package/dist/{component.inputs.constants-DoBT8ykS.js → component.inputs.constants-fbYKhm5a.js} +4 -4
- package/dist/{component.inputs.constants-DoBT8ykS.js.map → component.inputs.constants-fbYKhm5a.js.map} +1 -1
- package/dist/components/charts/pies/pies.utils.d.ts.map +1 -1
- package/dist/{cs-Dx5Ov9fp.js → cs-pKj2EJs9.js} +3 -3
- package/dist/{cs-Dx5Ov9fp.js.map → cs-pKj2EJs9.js.map} +1 -1
- package/dist/{cv-BkDAzcmE.js → cv-JwZydyn-.js} +3 -3
- package/dist/{cv-BkDAzcmE.js.map → cv-JwZydyn-.js.map} +1 -1
- package/dist/{cy-BIwudn52.js → cy-b1OWJ_BK.js} +3 -3
- package/dist/{cy-BIwudn52.js.map → cy-b1OWJ_BK.js.map} +1 -1
- package/dist/{da-DMzGkzN0.js → da-Dz8c2rdE.js} +3 -3
- package/dist/{da-DMzGkzN0.js.map → da-Dz8c2rdE.js.map} +1 -1
- package/dist/dates.utils-C9E_-qY_.js +169 -0
- package/dist/{dates.utils-LPINyM3w.js.map → dates.utils-C9E_-qY_.js.map} +1 -1
- package/dist/{de-DN_srl9H.js → de-Wffqf4e3.js} +3 -3
- package/dist/{de-DN_srl9H.js.map → de-Wffqf4e3.js.map} +1 -1
- package/dist/{definition-CRNmzeNB.js → definition-1VG74E3G.js} +9 -9
- package/dist/{definition-CRNmzeNB.js.map → definition-1VG74E3G.js.map} +1 -1
- package/dist/{definition-DpoIUA3D.js → definition-1lXxtDr_.js} +10 -10
- package/dist/{definition-DpoIUA3D.js.map → definition-1lXxtDr_.js.map} +1 -1
- package/dist/{definition-b7m3sPDx.js → definition-1tJ6JNc3.js} +5 -5
- package/dist/{definition-b7m3sPDx.js.map → definition-1tJ6JNc3.js.map} +1 -1
- package/dist/{definition-rAPgW-Dv.js → definition-B4hvVXOu.js} +6 -6
- package/dist/{definition-rAPgW-Dv.js.map → definition-B4hvVXOu.js.map} +1 -1
- package/dist/{definition-CbuWm1Cr.js → definition-B7uGaJdr.js} +6 -6
- package/dist/{definition-CbuWm1Cr.js.map → definition-B7uGaJdr.js.map} +1 -1
- package/dist/{definition-B42wB3V0.js → definition-BIVF_-JZ.js} +10 -10
- package/dist/{definition-B42wB3V0.js.map → definition-BIVF_-JZ.js.map} +1 -1
- package/dist/{definition-CrKiGiWI.js → definition-BQhvS5Uf.js} +6 -6
- package/dist/{definition-CrKiGiWI.js.map → definition-BQhvS5Uf.js.map} +1 -1
- package/dist/{definition-BCAbpJor.js → definition-BcMDra-w.js} +7 -7
- package/dist/{definition-BCAbpJor.js.map → definition-BcMDra-w.js.map} +1 -1
- package/dist/{definition-BBvfXzrC.js → definition-BuyEJt9L.js} +9 -9
- package/dist/{definition-BBvfXzrC.js.map → definition-BuyEJt9L.js.map} +1 -1
- package/dist/{definition-BjOqcOqq.js → definition-C5pzL_zJ.js} +8 -8
- package/dist/{definition-BjOqcOqq.js.map → definition-C5pzL_zJ.js.map} +1 -1
- package/dist/{definition-CoQqvrmk.js → definition-C6juNb2Y.js} +6 -6
- package/dist/{definition-CoQqvrmk.js.map → definition-C6juNb2Y.js.map} +1 -1
- package/dist/{definition-DA2tu_w2.js → definition-CIiTgE2t.js} +6 -6
- package/dist/{definition-DA2tu_w2.js.map → definition-CIiTgE2t.js.map} +1 -1
- package/dist/{definition-CPWqHdnm.js → definition-CIwiNXCk.js} +10 -10
- package/dist/{definition-CPWqHdnm.js.map → definition-CIwiNXCk.js.map} +1 -1
- package/dist/{definition-BvvALkSQ.js → definition-CKlRV8uI.js} +4 -4
- package/dist/{definition-BvvALkSQ.js.map → definition-CKlRV8uI.js.map} +1 -1
- package/dist/{definition-Na_Pv1dO.js → definition-CS6AhiKr.js} +7 -7
- package/dist/{definition-Na_Pv1dO.js.map → definition-CS6AhiKr.js.map} +1 -1
- package/dist/{definition-bFY2ZdpP.js → definition-CVt8II-L.js} +10 -10
- package/dist/{definition-bFY2ZdpP.js.map → definition-CVt8II-L.js.map} +1 -1
- package/dist/{definition-CqWyAkfl.js → definition-Cbg31G0n.js} +11 -11
- package/dist/{definition-CqWyAkfl.js.map → definition-Cbg31G0n.js.map} +1 -1
- package/dist/{definition-CUU7xEkm.js → definition-CeaJ6t8l.js} +6 -6
- package/dist/{definition-CUU7xEkm.js.map → definition-CeaJ6t8l.js.map} +1 -1
- package/dist/{definition-BJxdz1Ob.js → definition-CjEarvpp.js} +9 -9
- package/dist/{definition-BJxdz1Ob.js.map → definition-CjEarvpp.js.map} +1 -1
- package/dist/{definition-UOoBAs3K.js → definition-CrY-KxcB.js} +5 -5
- package/dist/{definition-UOoBAs3K.js.map → definition-CrY-KxcB.js.map} +1 -1
- package/dist/{definition-BvkXg6sa.js → definition-D-X2GKga.js} +3 -3
- package/dist/{definition-BvkXg6sa.js.map → definition-D-X2GKga.js.map} +1 -1
- package/dist/{definition-C2QnSx4_.js → definition-D1CaX3N2.js} +9 -9
- package/dist/{definition-C2QnSx4_.js.map → definition-D1CaX3N2.js.map} +1 -1
- package/dist/{definition-CZyXOTWy.js → definition-D40bQkjQ.js} +6 -6
- package/dist/{definition-CZyXOTWy.js.map → definition-D40bQkjQ.js.map} +1 -1
- package/dist/{definition-CsPv349D.js → definition-DMqj68UN.js} +6 -6
- package/dist/{definition-CsPv349D.js.map → definition-DMqj68UN.js.map} +1 -1
- package/dist/{definition-DNemWu7r.js → definition-DQDCEhmb.js} +9 -9
- package/dist/{definition-DNemWu7r.js.map → definition-DQDCEhmb.js.map} +1 -1
- package/dist/{definition-Cvsjgc9X.js → definition-Dc_TrXRo.js} +7 -7
- package/dist/{definition-Cvsjgc9X.js.map → definition-Dc_TrXRo.js.map} +1 -1
- package/dist/{definition-ARaGqiPK.js → definition-Dd5aNSMl.js} +7 -7
- package/dist/{definition-ARaGqiPK.js.map → definition-Dd5aNSMl.js.map} +1 -1
- package/dist/{definition-CtJ4b-tU.js → definition-DeWY1cm5.js} +9 -9
- package/dist/{definition-CtJ4b-tU.js.map → definition-DeWY1cm5.js.map} +1 -1
- package/dist/{definition-CGLcObd0.js → definition-Dp8zONZ9.js} +6 -6
- package/dist/{definition-CGLcObd0.js.map → definition-Dp8zONZ9.js.map} +1 -1
- package/dist/{definition-CRNAhkO1.js → definition-DyTQJeI5.js} +10 -10
- package/dist/{definition-CRNAhkO1.js.map → definition-DyTQJeI5.js.map} +1 -1
- package/dist/{definition-J3ahAeKj.js → definition-LHXBDYCt.js} +7 -7
- package/dist/{definition-J3ahAeKj.js.map → definition-LHXBDYCt.js.map} +1 -1
- package/dist/{definition-GqlaJ5X1.js → definition-NPav-piK.js} +6 -6
- package/dist/{definition-GqlaJ5X1.js.map → definition-NPav-piK.js.map} +1 -1
- package/dist/{definition-CgHnmzj0.js → definition-OYDtHqsj.js} +6 -6
- package/dist/{definition-CgHnmzj0.js.map → definition-OYDtHqsj.js.map} +1 -1
- package/dist/{definition-BbFyJKGT.js → definition-OfTv56Fr.js} +6 -6
- package/dist/{definition-BbFyJKGT.js.map → definition-OfTv56Fr.js.map} +1 -1
- package/dist/{definition-Br4qIMwa.js → definition-p-K0obLP.js} +8 -8
- package/dist/{definition-Br4qIMwa.js.map → definition-p-K0obLP.js.map} +1 -1
- package/dist/{definition-dPTP_SXO.js → definition-wQH12u2l.js} +6 -6
- package/dist/{definition-dPTP_SXO.js.map → definition-wQH12u2l.js.map} +1 -1
- package/dist/{definition-Cr47HSkP.js → definition-wx3BgO0U.js} +3 -3
- package/dist/{definition-Cr47HSkP.js.map → definition-wx3BgO0U.js.map} +1 -1
- package/dist/{definition-CGSdiMgK.js → definition-yU1a-3he.js} +7 -7
- package/dist/{definition-CGSdiMgK.js.map → definition-yU1a-3he.js.map} +1 -1
- package/dist/{dimension.utils-CB-LXCP5.js → dimension.utils-CfMwBpZv.js} +4 -4
- package/dist/{dimension.utils-CB-LXCP5.js.map → dimension.utils-CfMwBpZv.js.map} +1 -1
- package/dist/{dimensionsAndMeasures.utils-BolsWK6X.js → dimensionsAndMeasures.utils-DBUpWVdI.js} +2 -2
- package/dist/{dimensionsAndMeasures.utils-BolsWK6X.js.map → dimensionsAndMeasures.utils-DBUpWVdI.js.map} +1 -1
- package/dist/{dv-DqfOiAOa.js → dv-BIB4cIr3.js} +3 -3
- package/dist/{dv-DqfOiAOa.js.map → dv-BIB4cIr3.js.map} +1 -1
- package/dist/{el-DRazChj2.js → el-DecPhoOw.js} +3 -3
- package/dist/{el-DRazChj2.js.map → el-DecPhoOw.js.map} +1 -1
- package/dist/embeddable-components.json +50 -50
- package/dist/{en-Cbvl6b7O.js → en-BH1iNSBo.js} +2 -2
- package/dist/{en-Cbvl6b7O.js.map → en-BH1iNSBo.js.map} +1 -1
- package/dist/{eo-BHu_t0Eo.js → eo-2sbWzBNu.js} +3 -3
- package/dist/{eo-BHu_t0Eo.js.map → eo-2sbWzBNu.js.map} +1 -1
- package/dist/{es-cYnm2Hrv.js → es-DTnK70AU.js} +3 -3
- package/dist/{es-cYnm2Hrv.js.map → es-DTnK70AU.js.map} +1 -1
- package/dist/{et-xxrOegSp.js → et-CfluQBZa.js} +3 -3
- package/dist/{et-xxrOegSp.js.map → et-CfluQBZa.js.map} +1 -1
- package/dist/{eu-DhktYxVI.js → eu-DICitXMQ.js} +3 -3
- package/dist/{eu-DhktYxVI.js.map → eu-DICitXMQ.js.map} +1 -1
- package/dist/{fa-9WLmLDSh.js → fa-8NHeZRqq.js} +3 -3
- package/dist/{fa-9WLmLDSh.js.map → fa-8NHeZRqq.js.map} +1 -1
- package/dist/{fi-BaOUwI2P.js → fi-fWMVRl97.js} +3 -3
- package/dist/{fi-BaOUwI2P.js.map → fi-fWMVRl97.js.map} +1 -1
- package/dist/{fo-AY850tyv.js → fo-C1O08wtz.js} +3 -3
- package/dist/{fo-AY850tyv.js.map → fo-C1O08wtz.js.map} +1 -1
- package/dist/{formatter.utils-DE-_ADag.js → formatter.utils-DTeWPgjB.js} +3 -3
- package/dist/{formatter.utils-DE-_ADag.js.map → formatter.utils-DTeWPgjB.js.map} +1 -1
- package/dist/{fr-DuGU2qV3.js → fr-BydnUUdW.js} +3 -3
- package/dist/{fr-DuGU2qV3.js.map → fr-BydnUUdW.js.map} +1 -1
- package/dist/{fy-ByIsn3VC.js → fy-BhX27Bs_.js} +3 -3
- package/dist/{fy-ByIsn3VC.js.map → fy-BhX27Bs_.js.map} +1 -1
- package/dist/{ga-DO6N5UL5.js → ga-BgNhHt9o.js} +3 -3
- package/dist/{ga-DO6N5UL5.js.map → ga-BgNhHt9o.js.map} +1 -1
- package/dist/{gd-8Cpnoh3b.js → gd-CotFi26U.js} +3 -3
- package/dist/{gd-8Cpnoh3b.js.map → gd-CotFi26U.js.map} +1 -1
- package/dist/{gl-oWfq6hSQ.js → gl-MqAtQ87E.js} +3 -3
- package/dist/{gl-oWfq6hSQ.js.map → gl-MqAtQ87E.js.map} +1 -1
- package/dist/{granularity.utils-C_SX7zKB.js → granularity.utils-QXObIZwK.js} +3 -3
- package/dist/{granularity.utils-C_SX7zKB.js.map → granularity.utils-QXObIZwK.js.map} +1 -1
- package/dist/{gu-BTm5Ap5A.js → gu-DgyPhCmR.js} +3 -3
- package/dist/{gu-BTm5Ap5A.js.map → gu-DgyPhCmR.js.map} +1 -1
- package/dist/{he-Cd038LtN.js → he-BWzcUHao.js} +3 -3
- package/dist/{he-Cd038LtN.js.map → he-BWzcUHao.js.map} +1 -1
- package/dist/{hi-IFNUivAP.js → hi-mnIKOJcu.js} +3 -3
- package/dist/{hi-IFNUivAP.js.map → hi-mnIKOJcu.js.map} +1 -1
- package/dist/{hr-CldUxejD.js → hr-BiBHYhxc.js} +3 -3
- package/dist/{hr-CldUxejD.js.map → hr-BiBHYhxc.js.map} +1 -1
- package/dist/{ht-ByUbblsT.js → ht-BVzEs25Q.js} +3 -3
- package/dist/{ht-ByUbblsT.js.map → ht-BVzEs25Q.js.map} +1 -1
- package/dist/{hu-CPiHhaLJ.js → hu-B96nEj9k.js} +3 -3
- package/dist/{hu-CPiHhaLJ.js.map → hu-B96nEj9k.js.map} +1 -1
- package/dist/{id-5gnT8jF0.js → id-BsHRitQJ.js} +3 -3
- package/dist/{id-5gnT8jF0.js.map → id-BsHRitQJ.js.map} +1 -1
- package/dist/{index-BDd5cXFC.js → index-B2QrkfxN.js} +9856 -9856
- package/dist/{index-BDd5cXFC.js.map → index-B2QrkfxN.js.map} +1 -1
- package/dist/{index-DeFORjMe.js → index-BlU_I4TJ.js} +2 -2
- package/dist/{index-DeFORjMe.js.map → index-BlU_I4TJ.js.map} +1 -1
- package/dist/{index-DxChWz_f.js → index-DkFAcgse.js} +2 -2
- package/dist/{index-DxChWz_f.js.map → index-DkFAcgse.js.map} +1 -1
- package/dist/index.js +56 -56
- package/dist/{is-6wYxGbHC.js → is-DDEnq8-s.js} +3 -3
- package/dist/{is-6wYxGbHC.js.map → is-DDEnq8-s.js.map} +1 -1
- package/dist/{isoWeek-B5hq3zXR.js → isoWeek-BJLxGpkT.js} +2 -2
- package/dist/{isoWeek-B5hq3zXR.js.map → isoWeek-BJLxGpkT.js.map} +1 -1
- package/dist/{it-Bs7yFtoC.js → it-CHs9CU9o.js} +3 -3
- package/dist/{it-Bs7yFtoC.js.map → it-CHs9CU9o.js.map} +1 -1
- package/dist/{ja-KxYq1Keq.js → ja-BNNqIHAW.js} +3 -3
- package/dist/{ja-KxYq1Keq.js.map → ja-BNNqIHAW.js.map} +1 -1
- package/dist/{jv-Z59fnm9r.js → jv-Bq27yp6N.js} +3 -3
- package/dist/{jv-Z59fnm9r.js.map → jv-Bq27yp6N.js.map} +1 -1
- package/dist/{ka-C5stxZNq.js → ka-BcNKNbIF.js} +3 -3
- package/dist/{ka-C5stxZNq.js.map → ka-BcNKNbIF.js.map} +1 -1
- package/dist/{kk-Bjp2oS1M.js → kk-C06CV7WA.js} +3 -3
- package/dist/{kk-Bjp2oS1M.js.map → kk-C06CV7WA.js.map} +1 -1
- package/dist/{km-cCyErL-J.js → km-BJAKHpDI.js} +3 -3
- package/dist/{km-cCyErL-J.js.map → km-BJAKHpDI.js.map} +1 -1
- package/dist/{kn-Cn3e7R-p.js → kn-bVZDqIMr.js} +3 -3
- package/dist/{kn-Cn3e7R-p.js.map → kn-bVZDqIMr.js.map} +1 -1
- package/dist/{ko-DwbRGcg_.js → ko-DYrLdhLX.js} +3 -3
- package/dist/{ko-DwbRGcg_.js.map → ko-DYrLdhLX.js.map} +1 -1
- package/dist/{ku-D8V8DLkP.js → ku-zZ-FSUXW.js} +3 -3
- package/dist/{ku-D8V8DLkP.js.map → ku-zZ-FSUXW.js.map} +1 -1
- package/dist/{ky-DgKCQpit.js → ky-Bb7zcYSG.js} +3 -3
- package/dist/{ky-DgKCQpit.js.map → ky-Bb7zcYSG.js.map} +1 -1
- package/dist/{lb-B1H3ev7O.js → lb-BS4TwDlQ.js} +3 -3
- package/dist/{lb-B1H3ev7O.js.map → lb-BS4TwDlQ.js.map} +1 -1
- package/dist/{lo-BTLR-4Ua.js → lo-CbGAS55H.js} +3 -3
- package/dist/{lo-BTLR-4Ua.js.map → lo-CbGAS55H.js.map} +1 -1
- package/dist/{lt-CpVBw6AZ.js → lt-B_lCtZi0.js} +3 -3
- package/dist/{lt-CpVBw6AZ.js.map → lt-B_lCtZi0.js.map} +1 -1
- package/dist/{lv-CHWUynv0.js → lv-Crzp2An-.js} +3 -3
- package/dist/{lv-CHWUynv0.js.map → lv-Crzp2An-.js.map} +1 -1
- package/dist/{me-BPihshNS.js → me-CJK7e5fi.js} +3 -3
- package/dist/{me-BPihshNS.js.map → me-CJK7e5fi.js.map} +1 -1
- package/dist/{mi-Cb-2ijwY.js → mi-DqDkvjR1.js} +3 -3
- package/dist/{mi-Cb-2ijwY.js.map → mi-DqDkvjR1.js.map} +1 -1
- package/dist/{mk-BH7eZmqu.js → mk-D6vMGd9G.js} +3 -3
- package/dist/{mk-BH7eZmqu.js.map → mk-D6vMGd9G.js.map} +1 -1
- package/dist/{ml-CwYt0YaD.js → ml-BIHBYoFg.js} +3 -3
- package/dist/{ml-CwYt0YaD.js.map → ml-BIHBYoFg.js.map} +1 -1
- package/dist/{mn-BQDV_tLC.js → mn-B7bHe97Q.js} +3 -3
- package/dist/{mn-BQDV_tLC.js.map → mn-B7bHe97Q.js.map} +1 -1
- package/dist/{mr-Cz2meNaV.js → mr-HmL5b6tB.js} +3 -3
- package/dist/{mr-Cz2meNaV.js.map → mr-HmL5b6tB.js.map} +1 -1
- package/dist/{ms-Drl8Gge6.js → ms-De5TIMcq.js} +3 -3
- package/dist/{ms-Drl8Gge6.js.map → ms-De5TIMcq.js.map} +1 -1
- package/dist/{mt-Biv_dLXp.js → mt-9pAq9YGh.js} +3 -3
- package/dist/{mt-Biv_dLXp.js.map → mt-9pAq9YGh.js.map} +1 -1
- package/dist/{my-BHy9cEF_.js → my-DrGVr1eL.js} +3 -3
- package/dist/{my-BHy9cEF_.js.map → my-DrGVr1eL.js.map} +1 -1
- package/dist/{nb-BMrTF3LP.js → nb-CH4tdJgX.js} +3 -3
- package/dist/{nb-BMrTF3LP.js.map → nb-CH4tdJgX.js.map} +1 -1
- package/dist/{ne-B-gxqF-u.js → ne-bqX_tw-5.js} +3 -3
- package/dist/{ne-B-gxqF-u.js.map → ne-bqX_tw-5.js.map} +1 -1
- package/dist/{nl-Cral7JEK.js → nl-DiKSdGs3.js} +3 -3
- package/dist/{nl-Cral7JEK.js.map → nl-DiKSdGs3.js.map} +1 -1
- package/dist/{nn-C1_ylJFR.js → nn-RRNd8gM2.js} +3 -3
- package/dist/{nn-C1_ylJFR.js.map → nn-RRNd8gM2.js.map} +1 -1
- package/dist/pies.utils-BBVEmW76.js +117 -0
- package/dist/pies.utils-BBVEmW76.js.map +1 -0
- package/dist/{pl-D2pKy9F1.js → pl-BC9AXTq4.js} +3 -3
- package/dist/{pl-D2pKy9F1.js.map → pl-BC9AXTq4.js.map} +1 -1
- package/dist/{preview.data.constants-B3oyUsaQ.js → preview.data.constants-TS-EhQXM.js} +2 -2
- package/dist/{preview.data.constants-B3oyUsaQ.js.map → preview.data.constants-TS-EhQXM.js.map} +1 -1
- package/dist/{pt-3Uvt8G16.js → pt-DQ72aRVd.js} +3 -3
- package/dist/{pt-3Uvt8G16.js.map → pt-DQ72aRVd.js.map} +1 -1
- package/dist/{quarterOfYear-B_Fe3-YM.js → quarterOfYear-00sn_6hm.js} +2 -2
- package/dist/{quarterOfYear-B_Fe3-YM.js.map → quarterOfYear-00sn_6hm.js.map} +1 -1
- package/dist/{ro-lXLM5wIH.js → ro-BNnv42sm.js} +3 -3
- package/dist/{ro-lXLM5wIH.js.map → ro-BNnv42sm.js.map} +1 -1
- package/dist/{ru-CvRL7AkU.js → ru-BSmcfKUq.js} +3 -3
- package/dist/{ru-CvRL7AkU.js.map → ru-BSmcfKUq.js.map} +1 -1
- package/dist/{rw-BWaAHq7K.js → rw-CQE0hxrP.js} +3 -3
- package/dist/{rw-BWaAHq7K.js.map → rw-CQE0hxrP.js.map} +1 -1
- package/dist/{sd-DwN_Idzz.js → sd-BYf2ptic.js} +3 -3
- package/dist/{sd-DwN_Idzz.js.map → sd-BYf2ptic.js.map} +1 -1
- package/dist/{se-BnIu6dPe.js → se-CQ5X5rMI.js} +3 -3
- package/dist/{se-BnIu6dPe.js.map → se-CQ5X5rMI.js.map} +1 -1
- package/dist/{si-C7noOV3G.js → si-7rXjJq_m.js} +3 -3
- package/dist/{si-C7noOV3G.js.map → si-7rXjJq_m.js.map} +1 -1
- package/dist/{sk-aGMXL0jT.js → sk-DWNa8r0N.js} +3 -3
- package/dist/{sk-aGMXL0jT.js.map → sk-DWNa8r0N.js.map} +1 -1
- package/dist/{sl-CSDUQXp6.js → sl-9ABLKmxX.js} +3 -3
- package/dist/{sl-CSDUQXp6.js.map → sl-9ABLKmxX.js.map} +1 -1
- package/dist/{sq-BWIZHH0T.js → sq-BrP88yYY.js} +3 -3
- package/dist/{sq-BWIZHH0T.js.map → sq-BrP88yYY.js.map} +1 -1
- package/dist/{sr-DWXLYUZl.js → sr-Dm2GqdR0.js} +3 -3
- package/dist/{sr-DWXLYUZl.js.map → sr-Dm2GqdR0.js.map} +1 -1
- package/dist/{ss-DRoAfKgl.js → ss-Dr5vCGBf.js} +3 -3
- package/dist/{ss-DRoAfKgl.js.map → ss-Dr5vCGBf.js.map} +1 -1
- package/dist/{sv-COvXHvfd.js → sv-Ci0RO_mT.js} +3 -3
- package/dist/{sv-COvXHvfd.js.map → sv-Ci0RO_mT.js.map} +1 -1
- package/dist/{sw-DVBjWTn7.js → sw-BvnivSP-.js} +3 -3
- package/dist/{sw-DVBjWTn7.js.map → sw-BvnivSP-.js.map} +1 -1
- package/dist/{ta-D_B2aKTU.js → ta-BJa_mhkU.js} +3 -3
- package/dist/{ta-D_B2aKTU.js.map → ta-BJa_mhkU.js.map} +1 -1
- package/dist/{tables.utils-DqlM19s-.js → tables.utils-DjTQZETe.js} +4 -4
- package/dist/{tables.utils-DqlM19s-.js.map → tables.utils-DjTQZETe.js.map} +1 -1
- package/dist/{te-ZeV91eOU.js → te-Y7V4QUdY.js} +3 -3
- package/dist/{te-ZeV91eOU.js.map → te-Y7V4QUdY.js.map} +1 -1
- package/dist/{tet-DVZKHkE5.js → tet-DcF_GgYj.js} +3 -3
- package/dist/{tet-DVZKHkE5.js.map → tet-DcF_GgYj.js.map} +1 -1
- package/dist/{tg-BzwSdhGO.js → tg-DXTwq9M7.js} +3 -3
- package/dist/{tg-BzwSdhGO.js.map → tg-DXTwq9M7.js.map} +1 -1
- package/dist/{th-Cjw35Sul.js → th-CZZzAlP7.js} +3 -3
- package/dist/{th-Cjw35Sul.js.map → th-CZZzAlP7.js.map} +1 -1
- package/dist/{theme.constants-T0AFNuJR.js → theme.constants-C7m2le9e.js} +6 -6
- package/dist/{theme.constants-T0AFNuJR.js.map → theme.constants-C7m2le9e.js.map} +1 -1
- package/dist/{tk-BJwa-YKB.js → tk-BS4hPNFS.js} +3 -3
- package/dist/{tk-BJwa-YKB.js.map → tk-BS4hPNFS.js.map} +1 -1
- package/dist/{tlh-Bd8Hj-rX.js → tlh-CGzV6NnY.js} +3 -3
- package/dist/{tlh-Bd8Hj-rX.js.map → tlh-CGzV6NnY.js.map} +1 -1
- package/dist/{tr-__Yjprt-.js → tr-DvJ03uKN.js} +3 -3
- package/dist/{tr-__Yjprt-.js.map → tr-DvJ03uKN.js.map} +1 -1
- package/dist/{tzl-DLj-cE5y.js → tzl-zMtpPxk1.js} +3 -3
- package/dist/{tzl-DLj-cE5y.js.map → tzl-zMtpPxk1.js.map} +1 -1
- package/dist/{tzm-BbgReqpM.js → tzm-e-7OkNk9.js} +3 -3
- package/dist/{tzm-BbgReqpM.js.map → tzm-e-7OkNk9.js.map} +1 -1
- package/dist/{uk-CkEIyMZ2.js → uk-3Vs04yWV.js} +3 -3
- package/dist/{uk-CkEIyMZ2.js.map → uk-3Vs04yWV.js.map} +1 -1
- package/dist/{ur-CMRddQHy.js → ur-C_79yLWw.js} +3 -3
- package/dist/{ur-CMRddQHy.js.map → ur-C_79yLWw.js.map} +1 -1
- package/dist/{utc-CiYVTKd5.js → utc-BBQUJZ4Q.js} +2 -2
- package/dist/{utc-CiYVTKd5.js.map → utc-BBQUJZ4Q.js.map} +1 -1
- package/dist/{uz-CKEHZNva.js → uz-Dt3Bfbb4.js} +3 -3
- package/dist/{uz-CKEHZNva.js.map → uz-Dt3Bfbb4.js.map} +1 -1
- package/dist/{vi-DDguFMAp.js → vi-ByMnU65y.js} +3 -3
- package/dist/{vi-DDguFMAp.js.map → vi-ByMnU65y.js.map} +1 -1
- package/dist/{x-pseudo-G09tNhGy.js → x-pseudo-DcYMaWxG.js} +3 -3
- package/dist/{x-pseudo-G09tNhGy.js.map → x-pseudo-DcYMaWxG.js.map} +1 -1
- package/dist/{yo-C2uzXj00.js → yo-D2_9CIov.js} +3 -3
- package/dist/{yo-C2uzXj00.js.map → yo-D2_9CIov.js.map} +1 -1
- package/dist/{zh-cn-Cq0odDRx.js → zh-cn-BwbqUaCr.js} +3 -3
- package/dist/{zh-cn-Cq0odDRx.js.map → zh-cn-BwbqUaCr.js.map} +1 -1
- package/dist/{zh-hk-7tX7IidE.js → zh-hk-CPNUGQz5.js} +3 -3
- package/dist/{zh-hk-7tX7IidE.js.map → zh-hk-CPNUGQz5.js.map} +1 -1
- package/dist/{zh-tw-LFc2ke0C.js → zh-tw-DT8Xcxf8.js} +3 -3
- package/dist/{zh-tw-LFc2ke0C.js.map → zh-tw-DT8Xcxf8.js.map} +1 -1
- package/package.json +2 -2
- package/dist/dates.utils-LPINyM3w.js +0 -169
- package/dist/pies.utils-Drvky2f7.js +0 -112
- package/dist/pies.utils-Drvky2f7.js.map +0 -1
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { j as c, F as N, x as B, V as v, l as X } from "./index-
|
|
1
|
+
import { j as c, F as N, x as B, V as v, l as X } from "./index-B2QrkfxN.js";
|
|
2
2
|
import { useTheme as Y, definePreview as q } from "@embeddable.com/react";
|
|
3
3
|
import { useState as J, useEffect as Q } from "react";
|
|
4
4
|
import { i as U, r as Z } from "./component.utils-oQMZT7TK.js";
|
|
5
|
-
import { C as $ } from "./ChartCard-
|
|
6
|
-
import { u as ee } from "./charts.fillGaps.hooks-
|
|
7
|
-
import { C as ae, g as se } from "./granularity.utils-
|
|
8
|
-
import { g as ie, a as te, l as f } from "./definition-
|
|
9
|
-
import { g as re } from "./formatter.utils-
|
|
10
|
-
import { c as ne } from "./charts.utils-
|
|
11
|
-
import { p as o } from "./preview.data.constants-
|
|
5
|
+
import { C as $ } from "./ChartCard-vJK2ZRxA.js";
|
|
6
|
+
import { u as ee } from "./charts.fillGaps.hooks-BkJ8-vFc.js";
|
|
7
|
+
import { C as ae, g as se } from "./granularity.utils-QXObIZwK.js";
|
|
8
|
+
import { g as ie, a as te, l as f } from "./definition-CjEarvpp.js";
|
|
9
|
+
import { g as re } from "./formatter.utils-DTeWPgjB.js";
|
|
10
|
+
import { c as ne } from "./charts.utils-BaFvl6O-.js";
|
|
11
|
+
import { p as o } from "./preview.data.constants-TS-EhQXM.js";
|
|
12
12
|
import { g as oe } from "./clientContext.utils-DpB5KsfX.js";
|
|
13
13
|
const x = (a) => {
|
|
14
14
|
var T;
|
|
@@ -157,4 +157,4 @@ export {
|
|
|
157
157
|
Le as i,
|
|
158
158
|
ve as l
|
|
159
159
|
};
|
|
160
|
-
//# sourceMappingURL=definition-
|
|
160
|
+
//# sourceMappingURL=definition-BuyEJt9L.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition-BBvfXzrC.js","sources":["../src/components/charts/lines/LineChartWithKpiTabsPro/index.tsx","../src/components/charts/lines/LineChartWithKpiTabsPro/definition.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { DataResponse } from '@embeddable.com/core';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { ChartCard } from '../../shared/ChartCard/ChartCard';\nimport { useFillGaps } from '../../charts.fillGaps.hooks';\nimport { ChartTabs, ChartTabsProps, LineChart } from '@embeddable.com/remarkable-ui';\nimport { ChartGranularitySelectField } from '../../shared/ChartGranularitySelectField/ChartGranularitySelectField';\nimport {\n getLineChartProData,\n getLineChartProOptions,\n} from '../LineChartDefaultPro/LineChartDefaultPro.utils';\nimport { LineChartProProps } from '../LineChartDefaultPro';\nimport { getThemeFormatter } from '../../../../theme/formatter/formatter.utils';\nimport { createSimpleClickHandler } from '../../charts.utils';\n\nexport type LineChartWithKpiTabsProProps = LineChartProProps & {\n resultsKpis: DataResponse;\n};\n\nconst LineChartWithKpiTabsPro = (props: LineChartWithKpiTabsProProps) => {\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 measures,\n xAxis,\n reverseXAxis,\n showLegend,\n showLogarithmicScale,\n showTooltips,\n showValueLabels,\n yAxisRangeMax,\n yAxisRangeMin,\n granularity,\n setGranularity,\n onLineClicked,\n resultsKpis,\n } = props;\n\n const [activeMeasureName, setActiveMeasureName] = useState(measures[0]?.name ?? '');\n const activeMeasure = measures.find((m) => m.name === activeMeasureName);\n\n useEffect(() => {\n if (measures.length === 0) return;\n if (measures.some((m) => m.name === activeMeasureName)) return;\n setActiveMeasureName(measures[0]!.name);\n }, [measures, activeMeasureName]);\n\n const results = useFillGaps({\n results: props.results,\n dimension: xAxis,\n });\n\n const data = getLineChartProData(\n {\n data: results.data,\n dimension: xAxis,\n measures: activeMeasure ? [activeMeasure] : [],\n hasMinMaxYAxisRange: Boolean(yAxisRangeMin != null || yAxisRangeMax != null),\n },\n theme,\n );\n\n const options = getLineChartProOptions(\n { data, dimension: xAxis, measures: activeMeasure ? [activeMeasure] : [] },\n theme,\n );\n\n const granularitySelectorHasMarginTop = !title && !description && !tooltip;\n\n const handleClick = createSimpleClickHandler({\n data,\n dimension: xAxis,\n granularity,\n onClicked: onLineClicked,\n });\n\n const themeFormatter = getThemeFormatter(theme);\n\n const chartTabsItems: ChartTabsProps['items'] = measures.map((measure) => ({\n id: measure.name,\n label: themeFormatter.dimensionOrMeasureTitle(measure),\n value:\n resultsKpis?.data?.[0]?.[measure.name] == null\n ? '-'\n : themeFormatter.data(measure, resultsKpis.data[0][measure.name]),\n }));\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[...measures, xAxis]}\n errorMessage={results.error}\n description={description}\n title={title}\n tooltip={tooltip}\n hideMenu={hideMenu}\n >\n <ChartTabs items={chartTabsItems} value={activeMeasureName} onChange={setActiveMeasureName} />\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 LineChartWithKpiTabsPro;\n","import { DataResponse, Granularity, LoadDataRequest, Value, loadData } from '@embeddable.com/core';\nimport { definePreview, EmbeddedComponentMeta, Inputs } from '@embeddable.com/react';\nimport Component from './index';\nimport { previewData } from '../../../preview.data.constants';\nimport { getDimensionWithGranularity } from '../../utils/granularity.utils';\nimport { lineChartDefaultPro, LineChartDefaultProState } from '../LineChartDefaultPro/definition';\nimport { getClientContextTimezone } from '../../../../theme/utils/clientContext.utils';\nimport { ThemeClientContext } from '../../../../theme/theme.types';\nimport { LineChartProOptionsClickArg } from '../lines.types';\n\nconst meta = {\n ...lineChartDefaultPro.meta,\n name: 'LineChartWithKpiTabsPro',\n label: 'Line Chart - With Kpi Tabs',\n description:\n 'Line chart with clickable KPI tabs above — each measure gets a tab showing its total. One time dimension and one or more measures.',\n defaultHeight: 526,\n defaultWidth: 1280,\n} as const satisfies EmbeddedComponentMeta;\n\nconst previewConfig = {\n xAxis: previewData.dimension,\n measures: [previewData.measure, previewData.measureVariant],\n results: previewData.results1Measure1Dimension,\n resultsKpis: previewData.results2Measures,\n hideMenu: true,\n};\n\nconst preview = definePreview(Component, previewConfig);\n\n// Reuse loadData and loadDataArgs from LineChartDefaultPro for main results,\nconst loadDataResultsArgs = lineChartDefaultPro.results.loadDataArgs;\nconst loadDataResults = lineChartDefaultPro.results.loadData;\n\nconst loadDataResultsKpisArgs = (\n inputs: Inputs<typeof meta>,\n clientContext?: ThemeClientContext,\n): LoadDataRequest => ({\n from: inputs.dataset,\n select: [...inputs.measures],\n timezone: getClientContextTimezone(clientContext?.timezone),\n});\n\nconst loadDataResultsKpis = (\n inputs: Inputs<typeof meta>,\n clientContext: ThemeClientContext,\n): DataResponse => loadData(loadDataResultsKpisArgs(inputs, clientContext));\n\nconst events = {\n onLineClicked: (value: LineChartProOptionsClickArg) => ({\n axisDimensionValue: value.dimensionValue ?? Value.noFilter(),\n axisDimensionTimeRange: value.dimensionTimeRange ?? Value.noFilter(),\n }),\n};\n\nconst props = (\n inputs: Inputs<typeof meta>,\n [state, setState]: [LineChartDefaultProState, (state: LineChartDefaultProState) => 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 resultsKpis: loadDataResultsKpis(inputs, clientContext),\n };\n};\n\nexport const lineChartWithKpiTabsPro = {\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 resultsKpis: {\n loadDataArgs: loadDataResultsKpisArgs,\n loadData: loadDataResultsKpis,\n },\n} as const;\n"],"names":["LineChartWithKpiTabsPro","props","theme","useTheme","i18nSetup","title","description","tooltip","xAxisLabel","yAxisLabel","resolveI18nProps","hideMenu","measures","xAxis","reverseXAxis","showLegend","showLogarithmicScale","showTooltips","showValueLabels","yAxisRangeMax","yAxisRangeMin","granularity","setGranularity","onLineClicked","resultsKpis","activeMeasureName","setActiveMeasureName","useState","_a","activeMeasure","m","useEffect","results","useFillGaps","data","getLineChartProData","options","getLineChartProOptions","granularitySelectorHasMarginTop","handleClick","createSimpleClickHandler","themeFormatter","getThemeFormatter","chartTabsItems","measure","_b","jsxs","ChartCard","jsx","ChartTabs","ChartGranularitySelectField","LineChart","meta","lineChartDefaultPro","previewConfig","previewData","preview","definePreview","Component","loadDataResultsArgs","loadDataResults","loadDataResultsKpisArgs","inputs","clientContext","getClientContextTimezone","loadDataResultsKpis","loadData","events","value","Value","state","setState","xAxisWithGranularity","getDimensionWithGranularity","lineChartWithKpiTabsPro"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"definition-BuyEJt9L.js","sources":["../src/components/charts/lines/LineChartWithKpiTabsPro/index.tsx","../src/components/charts/lines/LineChartWithKpiTabsPro/definition.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { DataResponse } from '@embeddable.com/core';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { ChartCard } from '../../shared/ChartCard/ChartCard';\nimport { useFillGaps } from '../../charts.fillGaps.hooks';\nimport { ChartTabs, ChartTabsProps, LineChart } from '@embeddable.com/remarkable-ui';\nimport { ChartGranularitySelectField } from '../../shared/ChartGranularitySelectField/ChartGranularitySelectField';\nimport {\n getLineChartProData,\n getLineChartProOptions,\n} from '../LineChartDefaultPro/LineChartDefaultPro.utils';\nimport { LineChartProProps } from '../LineChartDefaultPro';\nimport { getThemeFormatter } from '../../../../theme/formatter/formatter.utils';\nimport { createSimpleClickHandler } from '../../charts.utils';\n\nexport type LineChartWithKpiTabsProProps = LineChartProProps & {\n resultsKpis: DataResponse;\n};\n\nconst LineChartWithKpiTabsPro = (props: LineChartWithKpiTabsProProps) => {\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 measures,\n xAxis,\n reverseXAxis,\n showLegend,\n showLogarithmicScale,\n showTooltips,\n showValueLabels,\n yAxisRangeMax,\n yAxisRangeMin,\n granularity,\n setGranularity,\n onLineClicked,\n resultsKpis,\n } = props;\n\n const [activeMeasureName, setActiveMeasureName] = useState(measures[0]?.name ?? '');\n const activeMeasure = measures.find((m) => m.name === activeMeasureName);\n\n useEffect(() => {\n if (measures.length === 0) return;\n if (measures.some((m) => m.name === activeMeasureName)) return;\n setActiveMeasureName(measures[0]!.name);\n }, [measures, activeMeasureName]);\n\n const results = useFillGaps({\n results: props.results,\n dimension: xAxis,\n });\n\n const data = getLineChartProData(\n {\n data: results.data,\n dimension: xAxis,\n measures: activeMeasure ? [activeMeasure] : [],\n hasMinMaxYAxisRange: Boolean(yAxisRangeMin != null || yAxisRangeMax != null),\n },\n theme,\n );\n\n const options = getLineChartProOptions(\n { data, dimension: xAxis, measures: activeMeasure ? [activeMeasure] : [] },\n theme,\n );\n\n const granularitySelectorHasMarginTop = !title && !description && !tooltip;\n\n const handleClick = createSimpleClickHandler({\n data,\n dimension: xAxis,\n granularity,\n onClicked: onLineClicked,\n });\n\n const themeFormatter = getThemeFormatter(theme);\n\n const chartTabsItems: ChartTabsProps['items'] = measures.map((measure) => ({\n id: measure.name,\n label: themeFormatter.dimensionOrMeasureTitle(measure),\n value:\n resultsKpis?.data?.[0]?.[measure.name] == null\n ? '-'\n : themeFormatter.data(measure, resultsKpis.data[0][measure.name]),\n }));\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[...measures, xAxis]}\n errorMessage={results.error}\n description={description}\n title={title}\n tooltip={tooltip}\n hideMenu={hideMenu}\n >\n <ChartTabs items={chartTabsItems} value={activeMeasureName} onChange={setActiveMeasureName} />\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 LineChartWithKpiTabsPro;\n","import { DataResponse, Granularity, LoadDataRequest, Value, loadData } from '@embeddable.com/core';\nimport { definePreview, EmbeddedComponentMeta, Inputs } from '@embeddable.com/react';\nimport Component from './index';\nimport { previewData } from '../../../preview.data.constants';\nimport { getDimensionWithGranularity } from '../../utils/granularity.utils';\nimport { lineChartDefaultPro, LineChartDefaultProState } from '../LineChartDefaultPro/definition';\nimport { getClientContextTimezone } from '../../../../theme/utils/clientContext.utils';\nimport { ThemeClientContext } from '../../../../theme/theme.types';\nimport { LineChartProOptionsClickArg } from '../lines.types';\n\nconst meta = {\n ...lineChartDefaultPro.meta,\n name: 'LineChartWithKpiTabsPro',\n label: 'Line Chart - With Kpi Tabs',\n description:\n 'Line chart with clickable KPI tabs above — each measure gets a tab showing its total. One time dimension and one or more measures.',\n defaultHeight: 526,\n defaultWidth: 1280,\n} as const satisfies EmbeddedComponentMeta;\n\nconst previewConfig = {\n xAxis: previewData.dimension,\n measures: [previewData.measure, previewData.measureVariant],\n results: previewData.results1Measure1Dimension,\n resultsKpis: previewData.results2Measures,\n hideMenu: true,\n};\n\nconst preview = definePreview(Component, previewConfig);\n\n// Reuse loadData and loadDataArgs from LineChartDefaultPro for main results,\nconst loadDataResultsArgs = lineChartDefaultPro.results.loadDataArgs;\nconst loadDataResults = lineChartDefaultPro.results.loadData;\n\nconst loadDataResultsKpisArgs = (\n inputs: Inputs<typeof meta>,\n clientContext?: ThemeClientContext,\n): LoadDataRequest => ({\n from: inputs.dataset,\n select: [...inputs.measures],\n timezone: getClientContextTimezone(clientContext?.timezone),\n});\n\nconst loadDataResultsKpis = (\n inputs: Inputs<typeof meta>,\n clientContext: ThemeClientContext,\n): DataResponse => loadData(loadDataResultsKpisArgs(inputs, clientContext));\n\nconst events = {\n onLineClicked: (value: LineChartProOptionsClickArg) => ({\n axisDimensionValue: value.dimensionValue ?? Value.noFilter(),\n axisDimensionTimeRange: value.dimensionTimeRange ?? Value.noFilter(),\n }),\n};\n\nconst props = (\n inputs: Inputs<typeof meta>,\n [state, setState]: [LineChartDefaultProState, (state: LineChartDefaultProState) => 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 resultsKpis: loadDataResultsKpis(inputs, clientContext),\n };\n};\n\nexport const lineChartWithKpiTabsPro = {\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 resultsKpis: {\n loadDataArgs: loadDataResultsKpisArgs,\n loadData: loadDataResultsKpis,\n },\n} as const;\n"],"names":["LineChartWithKpiTabsPro","props","theme","useTheme","i18nSetup","title","description","tooltip","xAxisLabel","yAxisLabel","resolveI18nProps","hideMenu","measures","xAxis","reverseXAxis","showLegend","showLogarithmicScale","showTooltips","showValueLabels","yAxisRangeMax","yAxisRangeMin","granularity","setGranularity","onLineClicked","resultsKpis","activeMeasureName","setActiveMeasureName","useState","_a","activeMeasure","m","useEffect","results","useFillGaps","data","getLineChartProData","options","getLineChartProOptions","granularitySelectorHasMarginTop","handleClick","createSimpleClickHandler","themeFormatter","getThemeFormatter","chartTabsItems","measure","_b","jsxs","ChartCard","jsx","ChartTabs","ChartGranularitySelectField","LineChart","meta","lineChartDefaultPro","previewConfig","previewData","preview","definePreview","Component","loadDataResultsArgs","loadDataResults","loadDataResultsKpisArgs","inputs","clientContext","getClientContextTimezone","loadDataResultsKpis","loadData","events","value","Value","state","setState","xAxisWithGranularity","getDimensionWithGranularity","lineChartWithKpiTabsPro"],"mappings":";;;;;;;;;;;;AAsBA,MAAMA,IAA0B,CAACC,MAAwC;;AACvE,QAAMC,IAAeC,EAAA;AACrB,EAAAC,EAAUF,CAAK;AAEf,QAAM,EAAE,OAAAG,GAAO,aAAAC,GAAa,SAAAC,GAAS,YAAAC,GAAY,YAAAC,EAAA,IAAeC,EAAiBT,CAAK,GAChF;AAAA,IACJ,UAAAU;AAAA,IACA,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,eAAAC;AAAA,IACA,aAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,aAAAC;AAAA,EAAA,IACEvB,GAEE,CAACwB,GAAmBC,CAAoB,IAAIC,IAASC,IAAAhB,EAAS,CAAC,MAAV,gBAAAgB,EAAa,SAAQ,EAAE,GAC5EC,IAAgBjB,EAAS,KAAK,CAACkB,MAAMA,EAAE,SAASL,CAAiB;AAEvE,EAAAM,EAAU,MAAM;AACd,IAAInB,EAAS,WAAW,MACpBA,EAAS,KAAK,CAACkB,MAAMA,EAAE,SAASL,CAAiB,KACrDC,EAAqBd,EAAS,CAAC,EAAG,IAAI;AAAA,EACxC,GAAG,CAACA,GAAUa,CAAiB,CAAC;AAEhC,QAAMO,IAAUC,GAAY;AAAA,IAC1B,SAAShC,EAAM;AAAA,IACf,WAAWY;AAAA,EAAA,CACZ,GAEKqB,IAAOC;AAAA,IACX;AAAA,MACE,MAAMH,EAAQ;AAAA,MACd,WAAWnB;AAAA,MACX,UAAUgB,IAAgB,CAACA,CAAa,IAAI,CAAA;AAAA,MAC5C,qBAA6BT,KAAiB,QAAQD,KAAiB;AAAA,IAAI;AAAA,IAE7EjB;AAAA,EAAA,GAGIkC,IAAUC;AAAA,IACd,EAAE,MAAAH,GAAM,WAAWrB,GAAO,UAAUgB,IAAgB,CAACA,CAAa,IAAI,GAAC;AAAA,IACvE3B;AAAA,EAAA,GAGIoC,IAAkC,CAACjC,KAAS,CAACC,KAAe,CAACC,GAE7DgC,IAAcC,GAAyB;AAAA,IAC3C,MAAAN;AAAA,IACA,WAAWrB;AAAA,IACX,aAAAQ;AAAA,IACA,WAAWE;AAAA,EAAA,CACZ,GAEKkB,IAAiBC,GAAkBxC,CAAK,GAExCyC,IAA0C/B,EAAS,IAAI,CAACgC,MAAA;;AAAa;AAAA,MACzE,IAAIA,EAAQ;AAAA,MACZ,OAAOH,EAAe,wBAAwBG,CAAO;AAAA,MACrD,SACEC,KAAAjB,IAAAJ,KAAA,gBAAAA,EAAa,SAAb,gBAAAI,EAAoB,OAApB,gBAAAiB,EAAyBD,EAAQ,UAAS,OACtC,MACAH,EAAe,KAAKG,GAASpB,EAAY,KAAK,CAAC,EAAEoB,EAAQ,IAAI,CAAC;AAAA,IAAA;AAAA,GACpE;AAEF,SACEE,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAMf;AAAA,MACN,uBAAuB,CAAC,GAAGpB,GAAUC,CAAK;AAAA,MAC1C,cAAcmB,EAAQ;AAAA,MACtB,aAAA1B;AAAA,MACA,OAAAD;AAAA,MACA,SAAAE;AAAA,MACA,UAAAI;AAAA,MAEA,UAAA;AAAA,QAAAqC,gBAAAA,MAACC,KAAU,OAAON,GAAgB,OAAOlB,GAAmB,UAAUC,GAAsB;AAAA,QAC3FJ,KACC0B,gBAAAA,EAAAA;AAAAA,UAACE;AAAA,UAAA;AAAA,YACC,cAAcZ;AAAA,YACd,WAAWzB;AAAA,YACX,UAAUS;AAAA,UAAA;AAAA,QAAA;AAAA,QAGd0B,gBAAAA,EAAAA;AAAAA,UAACG;AAAA,UAAA;AAAA,YACC,MAAAjB;AAAA,YACA,cAAApB;AAAA,YACA,YAAAC;AAAA,YACA,sBAAAC;AAAA,YACA,cAAAC;AAAA,YACA,iBAAAC;AAAA,YACA,YAAAV;AAAA,YACA,YAAAC;AAAA,YACA,eAAAU;AAAA,YACA,eAAAC;AAAA,YACA,SAAAgB;AAAA,YACA,SAASG;AAAA,UAAA;AAAA,QAAA;AAAA,MACX;AAAA,IAAA;AAAA,EAAA;AAGN;;;8CCrHMa,KAAO;AAAA,EACX,GAAGC,EAAoB;AAAA,EACvB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,aACE;AAAA,EACF,eAAe;AAAA,EACf,cAAc;AAChB,GAEMC,IAAgB;AAAA,EACpB,OAAOC,EAAY;AAAA,EACnB,UAAU,CAACA,EAAY,SAASA,EAAY,cAAc;AAAA,EAC1D,SAASA,EAAY;AAAA,EACrB,aAAaA,EAAY;AAAA,EACzB,UAAU;AACZ,GAEMC,KAAUC,EAAcC,GAAWJ,CAAa,GAGhDK,KAAsBN,EAAoB,QAAQ,cAClDO,IAAkBP,EAAoB,QAAQ,UAE9CQ,IAA0B,CAC9BC,GACAC,OACqB;AAAA,EACrB,MAAMD,EAAO;AAAA,EACb,QAAQ,CAAC,GAAGA,EAAO,QAAQ;AAAA,EAC3B,UAAUE,GAAyBD,KAAA,gBAAAA,EAAe,QAAQ;AAC5D,IAEME,IAAsB,CAC1BH,GACAC,MACiBG,EAASL,EAAwBC,GAAQC,CAAa,CAAC,GAEpEI,KAAS;AAAA,EACb,eAAe,CAACC,OAAwC;AAAA,IACtD,oBAAoBA,EAAM,kBAAkBC,EAAM,SAAA;AAAA,IAClD,wBAAwBD,EAAM,sBAAsBC,EAAM,SAAA;AAAA,EAAS;AAEvE,GAEMpE,KAAQ,CACZ6D,GACA,CAACQ,GAAOC,CAAQ,GAChBR,MACG;AACH,QAAMS,IAAuBC,GAA4BX,EAAO,OAAOQ,KAAA,gBAAAA,EAAO,WAAW;AAEzF,SAAO;AAAA,IACL,GAAGR;AAAA,IACH,OAAOU;AAAA,IACP,aAAaF,KAAA,gBAAAA,EAAO;AAAA,IACpB,gBAAgB,CAACjD,MAA6BkD,EAAS,EAAE,aAAAlD,GAAa;AAAA,IACtE,SAASuC,EAAgBE,GAAQU,GAAsBT,CAAa;AAAA,IACpE,aAAaE,EAAoBH,GAAQC,CAAa;AAAA,EAAA;AAE1D,GAEaW,KAA0B;AAAA,EAAA,WACrChB;AAAAA,EACA,MAAAN;AAAA,EACA,SAAAI;AAAA,EACA,eAAAF;AAAA,EACA,QAAQ;AAAA,IACN,OAAArD;AAAA,IACA,QAAAkE;AAAA,EAAA;AAAA,EAEF,SAAS;AAAA,IACP,cAAcR;AAAA,IACd,UAAUC;AAAA,EAAA;AAAA,EAEZ,aAAa;AAAA,IACX,cAAcC;AAAA,IACd,UAAUI;AAAA,EAAA;AAEd;"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { j as C, N as U, O as q, V as m, l as J } from "./index-
|
|
1
|
+
import { j as C, N as U, O as q, V as m, l as J } from "./index-B2QrkfxN.js";
|
|
2
2
|
import { useTheme as K, definePreview as L } from "@embeddable.com/react";
|
|
3
3
|
import { i as Q, r as X } from "./component.utils-oQMZT7TK.js";
|
|
4
|
-
import { C as Y } from "./ChartCard-
|
|
5
|
-
import { g as b } from "./formatter.utils-
|
|
6
|
-
import { u as D } from "./charts.fillGaps.hooks-
|
|
4
|
+
import { C as Y } from "./ChartCard-vJK2ZRxA.js";
|
|
5
|
+
import { g as b } from "./formatter.utils-DTeWPgjB.js";
|
|
6
|
+
import { u as D } from "./charts.fillGaps.hooks-BkJ8-vFc.js";
|
|
7
7
|
import { u as Z } from "./tables.hooks-fVC_4V5K.js";
|
|
8
8
|
import { useCallback as $ } from "react";
|
|
9
|
-
import { g as w } from "./dimension.utils-
|
|
10
|
-
import { i as n } from "./component.inputs.constants-
|
|
11
|
-
import { p as l } from "./preview.data.constants-
|
|
9
|
+
import { g as w } from "./dimension.utils-CfMwBpZv.js";
|
|
10
|
+
import { i as n } from "./component.inputs.constants-fbYKhm5a.js";
|
|
11
|
+
import { p as l } from "./preview.data.constants-TS-EhQXM.js";
|
|
12
12
|
import { g as ee } from "./clientContext.utils-DpB5KsfX.js";
|
|
13
13
|
const f = (e, o) => {
|
|
14
14
|
const i = b(o);
|
|
@@ -255,4 +255,4 @@ export {
|
|
|
255
255
|
we as h,
|
|
256
256
|
De as i
|
|
257
257
|
};
|
|
258
|
-
//# sourceMappingURL=definition-
|
|
258
|
+
//# sourceMappingURL=definition-C5pzL_zJ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition-BjOqcOqq.js","sources":["../src/components/charts/tables/HeatMapPro/index.tsx","../src/components/charts/tables/HeatMapPro/definition.ts"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { ChartCard, ChartCardHeaderProps } from '../../shared/ChartCard/ChartCard';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport {\n getStyle,\n HeatMap,\n HeatMapPropsDimension,\n HeatMapPropsMeasure,\n} from '@embeddable.com/remarkable-ui';\nimport { getThemeFormatter } from '../../../../theme/formatter/formatter.utils';\nimport { useFillGaps } from '../../charts.fillGaps.hooks';\nimport { useGetTableSortedResults } from '../tables.hooks';\nimport { useCallback } from 'react';\nimport { getTimeRangeFromDimensionValue } from '../../../utils/dimension.utils';\nimport { HeatMapCellClickArg, HeatMapProOptionsClickArg } from './HeatMapPro.types';\n\nexport type HeatMapProProps = {\n columnDimension: Dimension;\n columnWidth?: number;\n\n displayNullAs?: string;\n firstColumnWidth?: number;\n maxColor?: string;\n maxThreshold?: string;\n measure: Measure;\n midColor?: string;\n minColor?: string;\n minThreshold?: string;\n results: DataResponse;\n rowDimension: Dimension;\n showValues?: boolean;\n onCellClicked?: (args: HeatMapProOptionsClickArg) => void;\n} & ChartCardHeaderProps;\n\nexport const getHeatMeasure = (\n props: { measure: Measure },\n theme: Theme,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): HeatMapPropsMeasure<any> => {\n const themeFormatter = getThemeFormatter(theme);\n\n return {\n key: props.measure.name,\n label: themeFormatter.dimensionOrMeasureTitle(props.measure),\n format: (value) => {\n return themeFormatter.data(props.measure, value);\n },\n };\n};\n\nexport const getHeatDimension = (\n props: { dimension: Dimension },\n theme: Theme,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): HeatMapPropsDimension<any> => {\n const themeFormatter = getThemeFormatter(theme);\n\n return {\n key: props.dimension.name,\n label: themeFormatter.dimensionOrMeasureTitle(props.dimension),\n format: (value: string) => themeFormatter.data(props.dimension, value),\n };\n};\n\nconst HeatMapPro = (props: HeatMapProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { title, description, tooltip } = resolveI18nProps(props);\n const {\n hideMenu,\n measure,\n rowDimension,\n columnDimension,\n maxColor,\n midColor,\n minColor,\n displayNullAs,\n columnWidth,\n firstColumnWidth,\n showValues,\n minThreshold,\n maxThreshold,\n onCellClicked,\n } = props;\n\n const handleCellClick = useCallback(\n ({ rowDimensionValue, columnDimensionValue }: HeatMapCellClickArg) => {\n if (!onCellClicked) return;\n onCellClicked({\n rowDimensionValue,\n rowDimensionTimeRange: getTimeRangeFromDimensionValue({\n value: rowDimensionValue,\n dimension: rowDimension,\n }),\n columnDimensionValue,\n columnDimensionTimeRange: getTimeRangeFromDimensionValue({\n value: columnDimensionValue,\n dimension: columnDimension,\n }),\n });\n },\n [onCellClicked, rowDimension, columnDimension],\n );\n\n const columnOrder = Array.from(\n new Set((props.results.data ?? []).filter(Boolean).map((d) => d[columnDimension.name])),\n );\n\n const rowOrder = Array.from(\n new Set((props.results.data ?? []).filter(Boolean).map((d) => d[rowDimension.name])),\n );\n\n // Fill gaps for the column dimension\n const resultsColumnDimensionFillGaps = useFillGaps({\n results: props.results,\n dimension: columnDimension,\n });\n\n // Fill gaps for the row dimension\n const resultsRowColumnDimensionFillGaps = useFillGaps({\n results: resultsColumnDimensionFillGaps,\n dimension: rowDimension,\n });\n\n const results = useGetTableSortedResults({\n results: resultsRowColumnDimensionFillGaps,\n columnOrder,\n rowOrder,\n columnDimension,\n rowDimension,\n measures: [measure],\n });\n\n const pivotMeasures = getHeatMeasure({ measure }, theme);\n const pivotRowDimension = getHeatDimension({ dimension: rowDimension }, theme);\n const pivotColumnDimension = getHeatDimension({ dimension: columnDimension }, theme);\n\n return (\n <ChartCard\n title={title}\n description={description}\n tooltip={tooltip}\n data={props.results}\n dimensionsAndMeasures={[rowDimension, columnDimension, measure]}\n errorMessage={props.results?.error}\n hideMenu={hideMenu}\n >\n <HeatMap\n data={results}\n measure={pivotMeasures}\n rowDimension={pivotRowDimension}\n columnDimension={pivotColumnDimension}\n maxColor={maxColor}\n midColor={midColor ?? getStyle('--em-tablechart-heatmap-color', '#FF5400')}\n minColor={minColor}\n showValues={showValues}\n minThreshold={minThreshold}\n maxThreshold={maxThreshold}\n columnWidth={columnWidth}\n firstColumnWidth={firstColumnWidth}\n displayNullAs={displayNullAs}\n onCellClick={handleCellClick}\n />\n </ChartCard>\n );\n};\n\nexport default HeatMapPro;\n","import { DataResponse, LoadDataRequest, Value, loadData } 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 { getClientContextTimezone } from '../../../../theme/utils/clientContext.utils';\nimport { ThemeClientContext } from '../../../../theme/theme.types';\nimport { HeatMapProOptionsClickArg } from './HeatMapPro.types';\n\nconst meta = {\n name: 'HeatMapPro',\n label: 'Heat Map',\n description:\n 'Heat map of one measure over two dimensions (rows × columns). Use to spot density or correlation patterns.',\n category: 'Table Charts',\n inputs: [\n inputs.dataset,\n inputs.measure,\n {\n ...inputs.dimensionWithDateBounds,\n label: 'Row dimension',\n name: 'rowDimension',\n },\n {\n ...inputs.dimensionWithDateBounds,\n label: 'Column dimension',\n name: 'columnDimension',\n },\n inputs.title,\n inputs.description,\n inputs.tooltip,\n inputs.displayNullAs,\n {\n ...inputs.color,\n name: 'midColor',\n label: 'Mid-point color (optional)',\n },\n {\n ...inputs.color,\n name: 'maxColor',\n label: 'Max-point color (optional)',\n },\n {\n ...inputs.color,\n name: 'minColor',\n label: 'Min-point color (optional)',\n },\n {\n ...inputs.string,\n name: 'minThreshold',\n label: 'Max-point range lower limit',\n description: 'Enter a value as either a number (e.g. 20) or a percentage (e.g. 20%)',\n category: 'Component Settings',\n },\n {\n ...inputs.string,\n name: 'maxThreshold',\n label: 'Min-point range upper limit',\n description: 'Enter a value as either a number (e.g. 20) or a percentage (e.g. 20%)',\n category: 'Component Settings',\n },\n {\n ...inputs.boolean,\n name: 'showValues',\n label: 'Show values',\n defaultValue: true,\n category: 'Component Settings',\n },\n {\n ...inputs.number,\n name: 'firstColumnWidth',\n label: 'First column width',\n description: 'Set the width in px (e.g. 200)',\n category: 'Component Settings',\n },\n {\n ...inputs.number,\n name: 'columnWidth',\n label: 'Column width',\n description: 'Set the width in px (e.g. 200)',\n category: 'Component Settings',\n },\n inputs.maxResults,\n ],\n events: [\n {\n name: 'onCellClicked',\n label: 'A cell is clicked',\n properties: [\n {\n name: 'rowDimensionValue',\n label: 'Clicked row dimension value',\n type: 'string',\n },\n {\n name: 'rowDimensionTimeRange',\n label: 'Clicked row dimension time range',\n type: 'timeRange',\n },\n {\n name: 'columnDimensionValue',\n label: 'Clicked column dimension value',\n type: 'string',\n },\n {\n name: 'columnDimensionTimeRange',\n label: 'Clicked column dimension time range',\n type: 'timeRange',\n },\n ],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nconst previewConfig = {\n rowDimension: previewData.dimension,\n columnDimension: 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 clientContext?: ThemeClientContext,\n): LoadDataRequest => ({\n from: inputs.dataset,\n select: [inputs.rowDimension, inputs.columnDimension, inputs.measure],\n limit: inputs.maxResults,\n countRows: true,\n timezone: getClientContextTimezone(clientContext?.timezone),\n});\n\nconst loadDataResults = (\n inputs: Inputs<typeof meta>,\n clientContext?: ThemeClientContext,\n): DataResponse => loadData(loadDataResultsArgs(inputs, clientContext));\n\nconst props = (\n inputs: Inputs<typeof meta>,\n _state: unknown,\n clientContext?: ThemeClientContext,\n) => ({\n ...inputs,\n results: loadDataResults(inputs, clientContext),\n});\n\nconst events = {\n onCellClicked: (value: HeatMapProOptionsClickArg) => ({\n rowDimensionValue: value.rowDimensionValue ?? Value.noFilter(),\n rowDimensionTimeRange: value.rowDimensionTimeRange ?? Value.noFilter(),\n columnDimensionValue: value.columnDimensionValue ?? Value.noFilter(),\n columnDimensionTimeRange: value.columnDimensionTimeRange ?? Value.noFilter(),\n }),\n};\n\nexport const heatMapPro = {\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":["getHeatMeasure","props","theme","themeFormatter","getThemeFormatter","value","getHeatDimension","HeatMapPro","useTheme","i18nSetup","title","description","tooltip","resolveI18nProps","hideMenu","measure","rowDimension","columnDimension","maxColor","midColor","minColor","displayNullAs","columnWidth","firstColumnWidth","showValues","minThreshold","maxThreshold","onCellClicked","handleCellClick","useCallback","rowDimensionValue","columnDimensionValue","getTimeRangeFromDimensionValue","columnOrder","d","rowOrder","resultsColumnDimensionFillGaps","useFillGaps","resultsRowColumnDimensionFillGaps","results","useGetTableSortedResults","pivotMeasures","pivotRowDimension","pivotColumnDimension","jsx","ChartCard","_a","HeatMap","getStyle","meta","inputs","previewConfig","previewData","preview","definePreview","Component","loadDataResultsArgs","clientContext","getClientContextTimezone","loadDataResults","loadData","_state","events","Value","heatMapPro"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"definition-C5pzL_zJ.js","sources":["../src/components/charts/tables/HeatMapPro/index.tsx","../src/components/charts/tables/HeatMapPro/definition.ts"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { ChartCard, ChartCardHeaderProps } from '../../shared/ChartCard/ChartCard';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport {\n getStyle,\n HeatMap,\n HeatMapPropsDimension,\n HeatMapPropsMeasure,\n} from '@embeddable.com/remarkable-ui';\nimport { getThemeFormatter } from '../../../../theme/formatter/formatter.utils';\nimport { useFillGaps } from '../../charts.fillGaps.hooks';\nimport { useGetTableSortedResults } from '../tables.hooks';\nimport { useCallback } from 'react';\nimport { getTimeRangeFromDimensionValue } from '../../../utils/dimension.utils';\nimport { HeatMapCellClickArg, HeatMapProOptionsClickArg } from './HeatMapPro.types';\n\nexport type HeatMapProProps = {\n columnDimension: Dimension;\n columnWidth?: number;\n\n displayNullAs?: string;\n firstColumnWidth?: number;\n maxColor?: string;\n maxThreshold?: string;\n measure: Measure;\n midColor?: string;\n minColor?: string;\n minThreshold?: string;\n results: DataResponse;\n rowDimension: Dimension;\n showValues?: boolean;\n onCellClicked?: (args: HeatMapProOptionsClickArg) => void;\n} & ChartCardHeaderProps;\n\nexport const getHeatMeasure = (\n props: { measure: Measure },\n theme: Theme,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): HeatMapPropsMeasure<any> => {\n const themeFormatter = getThemeFormatter(theme);\n\n return {\n key: props.measure.name,\n label: themeFormatter.dimensionOrMeasureTitle(props.measure),\n format: (value) => {\n return themeFormatter.data(props.measure, value);\n },\n };\n};\n\nexport const getHeatDimension = (\n props: { dimension: Dimension },\n theme: Theme,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): HeatMapPropsDimension<any> => {\n const themeFormatter = getThemeFormatter(theme);\n\n return {\n key: props.dimension.name,\n label: themeFormatter.dimensionOrMeasureTitle(props.dimension),\n format: (value: string) => themeFormatter.data(props.dimension, value),\n };\n};\n\nconst HeatMapPro = (props: HeatMapProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { title, description, tooltip } = resolveI18nProps(props);\n const {\n hideMenu,\n measure,\n rowDimension,\n columnDimension,\n maxColor,\n midColor,\n minColor,\n displayNullAs,\n columnWidth,\n firstColumnWidth,\n showValues,\n minThreshold,\n maxThreshold,\n onCellClicked,\n } = props;\n\n const handleCellClick = useCallback(\n ({ rowDimensionValue, columnDimensionValue }: HeatMapCellClickArg) => {\n if (!onCellClicked) return;\n onCellClicked({\n rowDimensionValue,\n rowDimensionTimeRange: getTimeRangeFromDimensionValue({\n value: rowDimensionValue,\n dimension: rowDimension,\n }),\n columnDimensionValue,\n columnDimensionTimeRange: getTimeRangeFromDimensionValue({\n value: columnDimensionValue,\n dimension: columnDimension,\n }),\n });\n },\n [onCellClicked, rowDimension, columnDimension],\n );\n\n const columnOrder = Array.from(\n new Set((props.results.data ?? []).filter(Boolean).map((d) => d[columnDimension.name])),\n );\n\n const rowOrder = Array.from(\n new Set((props.results.data ?? []).filter(Boolean).map((d) => d[rowDimension.name])),\n );\n\n // Fill gaps for the column dimension\n const resultsColumnDimensionFillGaps = useFillGaps({\n results: props.results,\n dimension: columnDimension,\n });\n\n // Fill gaps for the row dimension\n const resultsRowColumnDimensionFillGaps = useFillGaps({\n results: resultsColumnDimensionFillGaps,\n dimension: rowDimension,\n });\n\n const results = useGetTableSortedResults({\n results: resultsRowColumnDimensionFillGaps,\n columnOrder,\n rowOrder,\n columnDimension,\n rowDimension,\n measures: [measure],\n });\n\n const pivotMeasures = getHeatMeasure({ measure }, theme);\n const pivotRowDimension = getHeatDimension({ dimension: rowDimension }, theme);\n const pivotColumnDimension = getHeatDimension({ dimension: columnDimension }, theme);\n\n return (\n <ChartCard\n title={title}\n description={description}\n tooltip={tooltip}\n data={props.results}\n dimensionsAndMeasures={[rowDimension, columnDimension, measure]}\n errorMessage={props.results?.error}\n hideMenu={hideMenu}\n >\n <HeatMap\n data={results}\n measure={pivotMeasures}\n rowDimension={pivotRowDimension}\n columnDimension={pivotColumnDimension}\n maxColor={maxColor}\n midColor={midColor ?? getStyle('--em-tablechart-heatmap-color', '#FF5400')}\n minColor={minColor}\n showValues={showValues}\n minThreshold={minThreshold}\n maxThreshold={maxThreshold}\n columnWidth={columnWidth}\n firstColumnWidth={firstColumnWidth}\n displayNullAs={displayNullAs}\n onCellClick={handleCellClick}\n />\n </ChartCard>\n );\n};\n\nexport default HeatMapPro;\n","import { DataResponse, LoadDataRequest, Value, loadData } 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 { getClientContextTimezone } from '../../../../theme/utils/clientContext.utils';\nimport { ThemeClientContext } from '../../../../theme/theme.types';\nimport { HeatMapProOptionsClickArg } from './HeatMapPro.types';\n\nconst meta = {\n name: 'HeatMapPro',\n label: 'Heat Map',\n description:\n 'Heat map of one measure over two dimensions (rows × columns). Use to spot density or correlation patterns.',\n category: 'Table Charts',\n inputs: [\n inputs.dataset,\n inputs.measure,\n {\n ...inputs.dimensionWithDateBounds,\n label: 'Row dimension',\n name: 'rowDimension',\n },\n {\n ...inputs.dimensionWithDateBounds,\n label: 'Column dimension',\n name: 'columnDimension',\n },\n inputs.title,\n inputs.description,\n inputs.tooltip,\n inputs.displayNullAs,\n {\n ...inputs.color,\n name: 'midColor',\n label: 'Mid-point color (optional)',\n },\n {\n ...inputs.color,\n name: 'maxColor',\n label: 'Max-point color (optional)',\n },\n {\n ...inputs.color,\n name: 'minColor',\n label: 'Min-point color (optional)',\n },\n {\n ...inputs.string,\n name: 'minThreshold',\n label: 'Max-point range lower limit',\n description: 'Enter a value as either a number (e.g. 20) or a percentage (e.g. 20%)',\n category: 'Component Settings',\n },\n {\n ...inputs.string,\n name: 'maxThreshold',\n label: 'Min-point range upper limit',\n description: 'Enter a value as either a number (e.g. 20) or a percentage (e.g. 20%)',\n category: 'Component Settings',\n },\n {\n ...inputs.boolean,\n name: 'showValues',\n label: 'Show values',\n defaultValue: true,\n category: 'Component Settings',\n },\n {\n ...inputs.number,\n name: 'firstColumnWidth',\n label: 'First column width',\n description: 'Set the width in px (e.g. 200)',\n category: 'Component Settings',\n },\n {\n ...inputs.number,\n name: 'columnWidth',\n label: 'Column width',\n description: 'Set the width in px (e.g. 200)',\n category: 'Component Settings',\n },\n inputs.maxResults,\n ],\n events: [\n {\n name: 'onCellClicked',\n label: 'A cell is clicked',\n properties: [\n {\n name: 'rowDimensionValue',\n label: 'Clicked row dimension value',\n type: 'string',\n },\n {\n name: 'rowDimensionTimeRange',\n label: 'Clicked row dimension time range',\n type: 'timeRange',\n },\n {\n name: 'columnDimensionValue',\n label: 'Clicked column dimension value',\n type: 'string',\n },\n {\n name: 'columnDimensionTimeRange',\n label: 'Clicked column dimension time range',\n type: 'timeRange',\n },\n ],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nconst previewConfig = {\n rowDimension: previewData.dimension,\n columnDimension: 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 clientContext?: ThemeClientContext,\n): LoadDataRequest => ({\n from: inputs.dataset,\n select: [inputs.rowDimension, inputs.columnDimension, inputs.measure],\n limit: inputs.maxResults,\n countRows: true,\n timezone: getClientContextTimezone(clientContext?.timezone),\n});\n\nconst loadDataResults = (\n inputs: Inputs<typeof meta>,\n clientContext?: ThemeClientContext,\n): DataResponse => loadData(loadDataResultsArgs(inputs, clientContext));\n\nconst props = (\n inputs: Inputs<typeof meta>,\n _state: unknown,\n clientContext?: ThemeClientContext,\n) => ({\n ...inputs,\n results: loadDataResults(inputs, clientContext),\n});\n\nconst events = {\n onCellClicked: (value: HeatMapProOptionsClickArg) => ({\n rowDimensionValue: value.rowDimensionValue ?? Value.noFilter(),\n rowDimensionTimeRange: value.rowDimensionTimeRange ?? Value.noFilter(),\n columnDimensionValue: value.columnDimensionValue ?? Value.noFilter(),\n columnDimensionTimeRange: value.columnDimensionTimeRange ?? Value.noFilter(),\n }),\n};\n\nexport const heatMapPro = {\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":["getHeatMeasure","props","theme","themeFormatter","getThemeFormatter","value","getHeatDimension","HeatMapPro","useTheme","i18nSetup","title","description","tooltip","resolveI18nProps","hideMenu","measure","rowDimension","columnDimension","maxColor","midColor","minColor","displayNullAs","columnWidth","firstColumnWidth","showValues","minThreshold","maxThreshold","onCellClicked","handleCellClick","useCallback","rowDimensionValue","columnDimensionValue","getTimeRangeFromDimensionValue","columnOrder","d","rowOrder","resultsColumnDimensionFillGaps","useFillGaps","resultsRowColumnDimensionFillGaps","results","useGetTableSortedResults","pivotMeasures","pivotRowDimension","pivotColumnDimension","jsx","ChartCard","_a","HeatMap","getStyle","meta","inputs","previewConfig","previewData","preview","definePreview","Component","loadDataResultsArgs","clientContext","getClientContextTimezone","loadDataResults","loadData","_state","events","Value","heatMapPro"],"mappings":";;;;;;;;;;;;AAqCO,MAAMA,IAAiB,CAC5BC,GACAC,MAE6B;AAC7B,QAAMC,IAAiBC,EAAkBF,CAAK;AAE9C,SAAO;AAAA,IACL,KAAKD,EAAM,QAAQ;AAAA,IACnB,OAAOE,EAAe,wBAAwBF,EAAM,OAAO;AAAA,IAC3D,QAAQ,CAACI,MACAF,EAAe,KAAKF,EAAM,SAASI,CAAK;AAAA,EACjD;AAEJ,GAEaC,IAAmB,CAC9BL,GACAC,MAE+B;AAC/B,QAAMC,IAAiBC,EAAkBF,CAAK;AAE9C,SAAO;AAAA,IACL,KAAKD,EAAM,UAAU;AAAA,IACrB,OAAOE,EAAe,wBAAwBF,EAAM,SAAS;AAAA,IAC7D,QAAQ,CAACI,MAAkBF,EAAe,KAAKF,EAAM,WAAWI,CAAK;AAAA,EAAA;AAEzE,GAEME,IAAa,CAACN,MAA2B;;AAC7C,QAAMC,IAAQM,EAAA;AACd,EAAAC,EAAUP,CAAK;AAEf,QAAM,EAAE,OAAAQ,GAAO,aAAAC,GAAa,SAAAC,EAAA,IAAYC,EAAiBZ,CAAK,GACxD;AAAA,IACJ,UAAAa;AAAA,IACA,SAAAC;AAAA,IACA,cAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,eAAAC;AAAA,IACA,aAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,YAAAC;AAAA,IACA,cAAAC;AAAA,IACA,cAAAC;AAAA,IACA,eAAAC;AAAA,EAAA,IACE1B,GAEE2B,IAAkBC;AAAA,IACtB,CAAC,EAAE,mBAAAC,GAAmB,sBAAAC,QAAgD;AACpE,MAAKJ,KACLA,EAAc;AAAA,QACZ,mBAAAG;AAAA,QACA,uBAAuBE,EAA+B;AAAA,UACpD,OAAOF;AAAA,UACP,WAAWd;AAAA,QAAA,CACZ;AAAA,QACD,sBAAAe;AAAA,QACA,0BAA0BC,EAA+B;AAAA,UACvD,OAAOD;AAAA,UACP,WAAWd;AAAA,QAAA,CACZ;AAAA,MAAA,CACF;AAAA,IACH;AAAA,IACA,CAACU,GAAeX,GAAcC,CAAe;AAAA,EAAA,GAGzCgB,IAAc,MAAM;AAAA,IACxB,IAAI,KAAKhC,EAAM,QAAQ,QAAQ,CAAA,GAAI,OAAO,OAAO,EAAE,IAAI,CAACiC,MAAMA,EAAEjB,EAAgB,IAAI,CAAC,CAAC;AAAA,EAAA,GAGlFkB,IAAW,MAAM;AAAA,IACrB,IAAI,KAAKlC,EAAM,QAAQ,QAAQ,CAAA,GAAI,OAAO,OAAO,EAAE,IAAI,CAACiC,MAAMA,EAAElB,EAAa,IAAI,CAAC,CAAC;AAAA,EAAA,GAI/EoB,IAAiCC,EAAY;AAAA,IACjD,SAASpC,EAAM;AAAA,IACf,WAAWgB;AAAA,EAAA,CACZ,GAGKqB,IAAoCD,EAAY;AAAA,IACpD,SAASD;AAAA,IACT,WAAWpB;AAAA,EAAA,CACZ,GAEKuB,IAAUC,EAAyB;AAAA,IACvC,SAASF;AAAA,IACT,aAAAL;AAAA,IACA,UAAAE;AAAA,IACA,iBAAAlB;AAAA,IACA,cAAAD;AAAA,IACA,UAAU,CAACD,CAAO;AAAA,EAAA,CACnB,GAEK0B,IAAgBzC,EAAe,EAAE,SAAAe,EAAA,GAAWb,CAAK,GACjDwC,IAAoBpC,EAAiB,EAAE,WAAWU,EAAA,GAAgBd,CAAK,GACvEyC,IAAuBrC,EAAiB,EAAE,WAAWW,EAAA,GAAmBf,CAAK;AAEnF,SACE0C,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAAnC;AAAA,MACA,aAAAC;AAAA,MACA,SAAAC;AAAA,MACA,MAAMX,EAAM;AAAA,MACZ,uBAAuB,CAACe,GAAcC,GAAiBF,CAAO;AAAA,MAC9D,eAAc+B,IAAA7C,EAAM,YAAN,gBAAA6C,EAAe;AAAA,MAC7B,UAAAhC;AAAA,MAEA,UAAA8B,gBAAAA,EAAAA;AAAAA,QAACG;AAAA,QAAA;AAAA,UACC,MAAMR;AAAA,UACN,SAASE;AAAA,UACT,cAAcC;AAAA,UACd,iBAAiBC;AAAA,UACjB,UAAAzB;AAAA,UACA,UAAUC,KAAY6B,EAAS,iCAAiC,SAAS;AAAA,UACzE,UAAA5B;AAAA,UACA,YAAAI;AAAA,UACA,cAAAC;AAAA,UACA,cAAAC;AAAA,UACA,aAAAJ;AAAA,UACA,kBAAAC;AAAA,UACA,eAAAF;AAAA,UACA,aAAaO;AAAA,QAAA;AAAA,MAAA;AAAA,IACf;AAAA,EAAA;AAGN;;;;;8CChKMqB,KAAO;AAAA,EACX,MAAM;AAAA,EACN,OAAO;AAAA,EACP,aACE;AAAA,EACF,UAAU;AAAA,EACV,QAAQ;AAAA,IACNC,EAAO;AAAA,IACPA,EAAO;AAAA,IACP;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,IAAA;AAAA,IAER;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,IAAA;AAAA,IAERA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACP;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,MAAM;AAAA,MACN,OAAO;AAAA,IAAA;AAAA,IAET;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,MAAM;AAAA,MACN,OAAO;AAAA,IAAA;AAAA,IAET;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,MAAM;AAAA,MACN,OAAO;AAAA,IAAA;AAAA,IAET;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,MAAM;AAAA,MACN,OAAO;AAAA,MACP,aAAa;AAAA,MACb,UAAU;AAAA,IAAA;AAAA,IAEZ;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,MAAM;AAAA,MACN,OAAO;AAAA,MACP,aAAa;AAAA,MACb,UAAU;AAAA,IAAA;AAAA,IAEZ;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,MAAM;AAAA,MACN,OAAO;AAAA,MACP,cAAc;AAAA,MACd,UAAU;AAAA,IAAA;AAAA,IAEZ;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,MAAM;AAAA,MACN,OAAO;AAAA,MACP,aAAa;AAAA,MACb,UAAU;AAAA,IAAA;AAAA,IAEZ;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,MAAM;AAAA,MACN,OAAO;AAAA,MACP,aAAa;AAAA,MACb,UAAU;AAAA,IAAA;AAAA,IAEZA,EAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,MACP,YAAY;AAAA,QACV;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QAAA;AAAA,QAER;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QAAA;AAAA,QAER;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QAAA;AAAA,QAER;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QAAA;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEJ,GAEMC,IAAgB;AAAA,EACpB,cAAcC,EAAY;AAAA,EAC1B,iBAAiBA,EAAY;AAAA,EAC7B,SAASA,EAAY;AAAA,EACrB,SAASA,EAAY;AAAA,EACrB,UAAU;AACZ,GAEMC,KAAUC,EAAcC,GAAWJ,CAAa,GAEhDK,IAAsB,CAC1BN,GACAO,OACqB;AAAA,EACrB,MAAMP,EAAO;AAAA,EACb,QAAQ,CAACA,EAAO,cAAcA,EAAO,iBAAiBA,EAAO,OAAO;AAAA,EACpE,OAAOA,EAAO;AAAA,EACd,WAAW;AAAA,EACX,UAAUQ,GAAyBD,KAAA,gBAAAA,EAAe,QAAQ;AAC5D,IAEME,IAAkB,CACtBT,GACAO,MACiBG,EAASJ,EAAoBN,GAAQO,CAAa,CAAC,GAEhExD,KAAQ,CACZiD,GACAW,GACAJ,OACI;AAAA,EACJ,GAAGP;AAAAA,EACH,SAASS,EAAgBT,GAAQO,CAAa;AAChD,IAEMK,KAAS;AAAA,EACb,eAAe,CAACzD,OAAsC;AAAA,IACpD,mBAAmBA,EAAM,qBAAqB0D,EAAM,SAAA;AAAA,IACpD,uBAAuB1D,EAAM,yBAAyB0D,EAAM,SAAA;AAAA,IAC5D,sBAAsB1D,EAAM,wBAAwB0D,EAAM,SAAA;AAAA,IAC1D,0BAA0B1D,EAAM,4BAA4B0D,EAAM,SAAA;AAAA,EAAS;AAE/E,GAEaC,KAAa;AAAA,EAAA,WACxBT;AAAAA,EACA,MAAAN;AAAA,EACA,SAAAI;AAAA,EACA,eAAAF;AAAA,EACA,QAAQ;AAAA,IACN,OAAAlD;AAAA,IACA,QAAA6D;AAAA,EAAA;AAAA,EAEF,SAAS;AAAA,IACP,cAAcN;AAAA,IACd,UAAUG;AAAA,EAAA;AAEd;"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { m as L, j as m, G as R, V as d, l as T } from "./index-
|
|
1
|
+
import { m as L, j as m, G as R, V as d, l as T } from "./index-B2QrkfxN.js";
|
|
2
2
|
import { useTheme as j, definePreview as y } from "@embeddable.com/react";
|
|
3
|
-
import { g as M, a as S, c as A } from "./pies.utils-
|
|
3
|
+
import { g as M, a as S, c as A } from "./pies.utils-BBVEmW76.js";
|
|
4
4
|
import { i as I, r as _ } from "./component.utils-oQMZT7TK.js";
|
|
5
|
-
import { C as O } from "./ChartCard-
|
|
6
|
-
import { i as t, s as F } from "./component.inputs.constants-
|
|
7
|
-
import { p as i } from "./preview.data.constants-
|
|
5
|
+
import { C as O } from "./ChartCard-vJK2ZRxA.js";
|
|
6
|
+
import { i as t, s as F } from "./component.inputs.constants-fbYKhm5a.js";
|
|
7
|
+
import { p as i } from "./preview.data.constants-TS-EhQXM.js";
|
|
8
8
|
const r = (e) => {
|
|
9
9
|
var l;
|
|
10
10
|
const o = j();
|
|
@@ -128,4 +128,4 @@ export {
|
|
|
128
128
|
X as d,
|
|
129
129
|
U as i
|
|
130
130
|
};
|
|
131
|
-
//# sourceMappingURL=definition-
|
|
131
|
+
//# sourceMappingURL=definition-C6juNb2Y.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition-
|
|
1
|
+
{"version":3,"file":"definition-C6juNb2Y.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 description:\n 'Donut chart for parts-of-whole over one dimension with one measure. Pick over PieChartPro when you want a center hole for a label or KPI.',\n category: 'Pie Charts',\n defaultHeight: 442,\n defaultWidth: 630,\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,11 +1,11 @@
|
|
|
1
|
-
import { j as c, $ as F, V as h } from "./index-
|
|
1
|
+
import { j as c, $ as F, V as h } from "./index-B2QrkfxN.js";
|
|
2
2
|
import { useTheme as w, definePreview as j } from "@embeddable.com/react";
|
|
3
|
-
import { i as s } from "./component.inputs.constants-
|
|
4
|
-
import { p } from "./preview.data.constants-
|
|
3
|
+
import { i as s } from "./component.inputs.constants-fbYKhm5a.js";
|
|
4
|
+
import { p } from "./preview.data.constants-TS-EhQXM.js";
|
|
5
5
|
import { useState as f, useEffect as g } from "react";
|
|
6
6
|
import { i as x, r as $, a as E } from "./component.utils-oQMZT7TK.js";
|
|
7
|
-
import { E as N } from "./EditorCard-
|
|
8
|
-
import { g as _ } from "./dimensionsAndMeasures.utils-
|
|
7
|
+
import { E as N } from "./EditorCard-Cbb_bmWn.js";
|
|
8
|
+
import { g as _ } from "./dimensionsAndMeasures.utils-DBUpWVdI.js";
|
|
9
9
|
const d = (n) => {
|
|
10
10
|
const u = w();
|
|
11
11
|
x(u);
|
|
@@ -134,4 +134,4 @@ export {
|
|
|
134
134
|
Q as d,
|
|
135
135
|
L as i
|
|
136
136
|
};
|
|
137
|
-
//# sourceMappingURL=definition-
|
|
137
|
+
//# sourceMappingURL=definition-CIiTgE2t.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition-DA2tu_w2.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 // Normalize selectedDimensionsAndMeasures titles by resolving them against dimensionAndMeasureOptions.\n // Variable defaults may store items with model-qualified titles (e.g. \"Products # of orders\"),\n // while dimensionAndMeasureOptions always has the correct display title (e.g. \"# of orders\").\n // Firing onChange with the resolved objects ensures the variable and any dependent\n // components (e.g. charts) receive correctly-formatted measures/dimensions.\n useEffect(() => {\n if (!selectedDimensionsAndMeasures.length || !dimensionAndMeasureOptions.length) return;\n\n const normalized = selectedDimensionsAndMeasures.map(\n (d) => dimensionAndMeasureOptions.find((o) => o.name === d.name) ?? d,\n );\n\n if (normalized.every((norm, i) => norm.title === selectedDimensionsAndMeasures[i]?.title))\n return;\n\n onChange(normalized);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n JSON.stringify(selectedDimensionsAndMeasures.map((d) => `${d.name}:${d.title}`)),\n JSON.stringify(dimensionAndMeasureOptions.map((d) => `${d.name}:${d.title}`)),\n onChange,\n ]);\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 description:\n 'Multi-select dropdown for dimensions and measures combined. Pairs with a dimensionOrMeasure-array variable; emits onChange.',\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","normalized","d","norm","i","_a","currentDimensionAndMeasureNames","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
|
+
{"version":3,"file":"definition-CIiTgE2t.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 // Normalize selectedDimensionsAndMeasures titles by resolving them against dimensionAndMeasureOptions.\n // Variable defaults may store items with model-qualified titles (e.g. \"Products # of orders\"),\n // while dimensionAndMeasureOptions always has the correct display title (e.g. \"# of orders\").\n // Firing onChange with the resolved objects ensures the variable and any dependent\n // components (e.g. charts) receive correctly-formatted measures/dimensions.\n useEffect(() => {\n if (!selectedDimensionsAndMeasures.length || !dimensionAndMeasureOptions.length) return;\n\n const normalized = selectedDimensionsAndMeasures.map(\n (d) => dimensionAndMeasureOptions.find((o) => o.name === d.name) ?? d,\n );\n\n if (normalized.every((norm, i) => norm.title === selectedDimensionsAndMeasures[i]?.title))\n return;\n\n onChange(normalized);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n JSON.stringify(selectedDimensionsAndMeasures.map((d) => `${d.name}:${d.title}`)),\n JSON.stringify(dimensionAndMeasureOptions.map((d) => `${d.name}:${d.title}`)),\n onChange,\n ]);\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 description:\n 'Multi-select dropdown for dimensions and measures combined. Pairs with a dimensionOrMeasure-array variable; emits onChange.',\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","normalized","d","norm","i","_a","currentDimensionAndMeasureNames","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,14 +1,14 @@
|
|
|
1
|
-
import { m as K, j as A, B as z, V as x } from "./index-
|
|
1
|
+
import { m as K, j as A, B as z, V as x } from "./index-B2QrkfxN.js";
|
|
2
2
|
import { useTheme as _, definePreview as W } from "@embeddable.com/react";
|
|
3
3
|
import { i as H, r as U } from "./component.utils-oQMZT7TK.js";
|
|
4
|
-
import { C as E } from "./ChartCard-
|
|
5
|
-
import { b as I, 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 E } from "./ChartCard-vJK2ZRxA.js";
|
|
5
|
+
import { b as I, c as q } from "./bars.utils-COH_FQZE.js";
|
|
6
|
+
import { u as J } from "./charts.fillGaps.hooks-BkJ8-vFc.js";
|
|
7
|
+
import { C as N, g as Q } from "./granularity.utils-QXObIZwK.js";
|
|
8
|
+
import { u as Y, g as Z, a as $, l as ee, b as ie } from "./bars.loadData.utils-KNlmFRwS.js";
|
|
9
|
+
import { d as ae } from "./charts.utils-BaFvl6O-.js";
|
|
10
|
+
import { i } from "./component.inputs.constants-fbYKhm5a.js";
|
|
11
|
+
import { p } from "./preview.data.constants-TS-EhQXM.js";
|
|
12
12
|
import { g as re } from "./clientContext.utils-DpB5KsfX.js";
|
|
13
13
|
const C = (e) => {
|
|
14
14
|
var D, T;
|
|
@@ -233,4 +233,4 @@ export {
|
|
|
233
233
|
De as b,
|
|
234
234
|
be as i
|
|
235
235
|
};
|
|
236
|
-
//# sourceMappingURL=definition-
|
|
236
|
+
//# sourceMappingURL=definition-CIwiNXCk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition-CPWqHdnm.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 description:\n 'Vertical bar chart with side-by-side bars — one x-axis dimension, one grouping dimension, one measure. Use to compare sub-categories at each x value.',\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":";;;;;;;;;;;;AAsBA,MAAMA,IAAqB,CAACC,MAAmC;;AAC7D,QAAMC,IAAQC,EAAA;AACd,EAAAC,EAAUF,CAAK;AAEf,QAAM,EAAE,SAAAG,GAAS,aAAAC,GAAa,OAAAC,GAAO,YAAAC,GAAY,YAAAC,EAAA,IAAeC,EAAiBT,CAAK,GAEhF;AAAA,IACJ,UAAAU;AAAA,IACA,SAAAC;AAAA,IACA,SAAAC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,OAAAC;AAAA,IACA,eAAAC;AAAA,IACA,eAAAC;AAAA,IACA,aAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,WAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,yBAAAC;AAAA,EAAA,IACE5B;AAEJ,EAAA6B,EAA8B;AAAA,IAC5B,kBAAAH;AAAA,IACA,eAAeP;AAAA,IACf,yBAAAS;AAAA,IACA,mBAAAD;AAAA,EAAA,CACD;AAED,QAAMG,IAAUC,EAAY;AAAA,IAC1B,SAAS/B,EAAM;AAAA,IACf,WAAWmB;AAAA,EAAA,CACZ,GAEKa,IAAOC;AAAA,IACX;AAAA,MACE,MAAMH,KAAA,gBAAAA,EAAS;AAAA,MACf,WAAWX;AAAA,MACX,gBAAgBR;AAAA,MAChB,SAAAC;AAAA,MACA,WAAAa;AAAA,IAAA;AAAA,IAEFxB;AAAA,EAAA,GAGIiC,IAAUC;AAAA,IACdC;AAAA,MACE;AAAA,QACE,UAAU,CAACxB,CAAO;AAAA,QAClB,YAAY;AAAA,QACZ,MAAAoB;AAAA,QACA,WAAWb;AAAA,QACX,gBAAgBR;AAAA,MAAA;AAAA,MAElBV;AAAA,IAAA;AAAA,MAEFoC,KAAAC,IAAArC,EAAM,WAAN,gBAAAqC,EAAc,uBAAd,gBAAAD,EAAkC,YAAW,CAAA;AAAA,EAAC,GAG1CE,IAAkC,CAACjC,KAAS,CAACD,KAAe,CAACD,GAE7DoC,IAAcC,GAA0B;AAAA,IAC5C,MAAAT;AAAA,IACA,WAAWb;AAAA,IACX,SAAAR;AAAA,IACA,aAAAW;AAAA,IACA,WAAWE;AAAA,EAAA,CACZ;AAED,SACEkB,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAMb;AAAA,MACN,uBAAuB,CAAClB,GAASO,GAAOR,CAAO;AAAA,MAC/C,eAAcmB,KAAA,gBAAAA,EAAS,WAASJ,KAAA,gBAAAA,EAAkB;AAAA,MAClD,aAAArB;AAAA,MACA,OAAAC;AAAA,MACA,SAAAF;AAAA,MACA,UAAAM;AAAA,MAEC,UAAA;AAAA,QAAAa,KACCqB,gBAAAA,EAAAA;AAAAA,UAACC;AAAA,UAAA;AAAA,YACC,cAAcN;AAAA,YACd,WAAWpB;AAAA,YACX,UAAUI;AAAA,UAAA;AAAA,QAAA;AAAA,QAGdqB,gBAAAA,EAAAA;AAAAA,UAACE;AAAA,UAAA;AAAA,YACC,MAAAd;AAAA,YACA,YAAAlB;AAAA,YACA,cAAAE;AAAA,YACA,iBAAAE;AAAA,YACA,sBAAAH;AAAA,YACA,YAAAR;AAAA,YACA,YAAAC;AAAA,YACA,cAAAK;AAAA,YACA,eAAAQ;AAAA,YACA,eAAAD;AAAA,YACA,iBAAAH;AAAA,YACA,SAAAiB;AAAA,YACA,SAASM;AAAA,UAAA;AAAA,QAAA;AAAA,MACX;AAAA,IAAA;AAAA,EAAA;AAGN;;;8CCnHMO,KAAO;AAAA,EACX,MAAM;AAAA,EACN,OAAO;AAAA,EACP,aACE;AAAA,EACF,UAAU;AAAA,EACV,QAAQ;AAAA,IACNC,EAAO;AAAA,IACPA,EAAO;AAAA,IACP,EAAE,GAAGA,EAAO,qCAAqC,MAAM,SAAS,OAAO,SAAA;AAAA,IACvEA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACP,EAAE,GAAGA,EAAO,iBAAiB,cAAc,GAAA;AAAA,IAC3CA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,MACP,YAAY;AAAA,QACV;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QAAA;AAAA,QAER;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QAAA;AAAA,QAER;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QAAA;AAAA,QAER;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QAAA;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEJ,GAQMC,IAAgB;AAAA,EACpB,OAAOC,EAAY;AAAA,EACnB,SAASA,EAAY;AAAA,EACrB,SAASA,EAAY;AAAA,EACrB,SAASA,EAAY;AAAA,EACrB,UAAU;AACZ,GAEMC,KAAUC,EAAcC,GAAWJ,CAAa,GAEhDK,KAAS;AAAA,EACb,cAAc,CAACC,OAA8C;AAAA,IAC3D,oBAAoBA,EAAM,kBAAkBC,EAAM,SAAA;AAAA,IAClD,wBAAwBD,EAAM,sBAAsBC,EAAM,SAAA;AAAA,IAC1D,wBAAwBD,EAAM,0BAA0BC,EAAM,SAAA;AAAA,IAC9D,4BAA4BD,EAAM,8BAA8BC,EAAM,SAAA;AAAA,EAAS;AAEnF,GAEMxD,KAAQ,CACZgD,GACA,CAACS,GAAOC,CAAQ,GAChBC,MACG;AACH,QAAMC,IAAuBC,EAA4Bb,EAAO,OAAOS,KAAA,gBAAAA,EAAO,WAAW,GACnFK,IAAgBd,EAAO,uBACvBe,IAAWC,GAAyBL,KAAA,gBAAAA,EAAe,QAAQ,GAE3DhC,IAAoBsC,EAAqB;AAAA,IAC7C,SAASjB,EAAO;AAAA,IAChB,MAAMY;AAAA,IACN,SAASZ,EAAO;AAAA,IAChB,eAAAc;AAAA,IACA,OAAOd,EAAO;AAAA,IACd,UAAAe;AAAA,EAAA,CACD,GAEKG,IAAkBC,EAAmBxC,GAAmB8B,CAAK;AAEnE,SAAO;AAAA,IACL,GAAGT;AAAAA,IACH,OAAOY;AAAA,IACP,aAAaH,KAAA,gBAAAA,EAAO;AAAA,IACpB,WAAWS;AAAA,IACX,mBAAAvC;AAAA,IACA,gBAAgB,CAACL,MAA6BoC,EAAS,EAAE,GAAGD,GAAO,aAAAnC,GAAa;AAAA,IAChF,yBAAyB,CAACG,GAAqB2C,MAC7CV,EAAS,EAAE,GAAGD,GAAO,WAAAhC,GAAW,mBAAmB2C,GAAU;AAAA,IAC/D,kBAAkBC,GAAyB;AAAA,MACzC,SAASrB,EAAO;AAAA,MAChB,cAAcA,EAAO;AAAA,MACrB,MAAMY;AAAA,MACN,SAASZ,EAAO;AAAA,MAChB,eAAAc;AAAA,MACA,UAAAC;AAAA,IAAA,CACD;AAAA,IACD,SAASO,GAAgB;AAAA,MACvB,SAAStB,EAAO;AAAA,MAChB,MAAMY;AAAA,MACN,SAASZ,EAAO;AAAA,MAChB,SAASA,EAAO;AAAA,MAChB,eAAAc;AAAA,MACA,cAAcd,EAAO;AAAA,MACrB,YAAYA,EAAO;AAAA,MACnB,WAAWkB;AAAA,MACX,UAAAH;AAAA,IAAA,CACD;AAAA,EAAA;AAEL,GAEaQ,KAAqB;AAAA,EAAA,WAChClB;AAAAA,EACA,MAAAN;AAAA,EACA,SAAAI;AAAA,EACA,eAAAF;AAAA,EACA,QAAQ;AAAA,IACN,OAAAjD;AAAA,IACA,QAAAsD;AAAA,EAAA;AAEJ;"}
|
|
1
|
+
{"version":3,"file":"definition-CIwiNXCk.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 description:\n 'Vertical bar chart with side-by-side bars — one x-axis dimension, one grouping dimension, one measure. Use to compare sub-categories at each x value.',\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,9 +1,9 @@
|
|
|
1
1
|
import { useTheme as g, definePreview as h } from "@embeddable.com/react";
|
|
2
|
-
import { a0 as x, j as l, a6 as b, V as i } from "./index-
|
|
2
|
+
import { a0 as x, j as l, a6 as b, V as i } from "./index-B2QrkfxN.js";
|
|
3
3
|
import { useState as C, useEffect as F } from "react";
|
|
4
|
-
import { E as P } from "./EditorCard-
|
|
4
|
+
import { E as P } from "./EditorCard-Cbb_bmWn.js";
|
|
5
5
|
import { i as y, r as E } from "./component.utils-oQMZT7TK.js";
|
|
6
|
-
import { i as t } from "./component.inputs.constants-
|
|
6
|
+
import { i as t } from "./component.inputs.constants-fbYKhm5a.js";
|
|
7
7
|
const r = (e) => {
|
|
8
8
|
const s = g();
|
|
9
9
|
y(s);
|
|
@@ -87,4 +87,4 @@ export {
|
|
|
87
87
|
H as i,
|
|
88
88
|
M as t
|
|
89
89
|
};
|
|
90
|
-
//# sourceMappingURL=definition-
|
|
90
|
+
//# sourceMappingURL=definition-CKlRV8uI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition-
|
|
1
|
+
{"version":3,"file":"definition-CKlRV8uI.js","sources":["../src/components/editors/TextFieldPro/index.tsx","../src/components/editors/TextFieldPro/definition.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { TextField, useDebounce } from '@embeddable.com/remarkable-ui';\nimport { EditorCard, EditorCardHeaderProps } from '../shared/EditorCard/EditorCard';\nimport { resolveI18nProps } from '../../component.utils';\nimport { Theme } from '../../../theme/theme.types';\nimport { useTheme } from '@embeddable.com/react';\nimport { i18nSetup } from '../../../theme/i18n/i18n';\n\nexport type TextFieldProProps = {\n value?: string;\n placeholder?: string;\n onChange?: (value: string) => void;\n} & EditorCardHeaderProps;\n\nconst TextFieldPro = (props: TextFieldProProps) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n const { title, description, tooltip, placeholder = '' } = resolveI18nProps(props);\n const { value = '', onChange } = props;\n\n const [currentValue, setCurrentValue] = useState(value);\n\n const debouncedUpdateState = useDebounce((newValue: string) => {\n onChange?.(newValue);\n });\n\n useEffect(() => {\n debouncedUpdateState(currentValue);\n }, [currentValue, debouncedUpdateState]);\n\n return (\n <EditorCard title={title} description={description} tooltip={tooltip}>\n <TextField\n value={currentValue}\n placeholder={placeholder}\n onChange={setCurrentValue}\n clearable\n />\n </EditorCard>\n );\n};\n\nexport default TextFieldPro;\n","import { definePreview, EmbeddedComponentMeta, Inputs } from '@embeddable.com/react';\nimport { Value } from '@embeddable.com/core';\nimport Component from '.';\nimport { inputs } from '../../component.inputs.constants';\n\nconst meta = {\n name: 'TextFieldPro',\n label: 'Text Field',\n description: 'Free-text input field. Pairs with a string variable; emits onChange.',\n category: 'Inputs',\n defaultWidth: 300,\n defaultHeight: 120,\n inputs: [\n inputs.title,\n inputs.description,\n inputs.tooltip,\n inputs.placeholder,\n {\n ...inputs.string,\n name: 'value',\n label: 'Value',\n category: 'Pre-configured Variables',\n },\n ],\n events: [\n {\n name: 'onChange',\n label: 'Entered value updated',\n properties: [\n {\n name: 'value',\n label: 'Entered value',\n type: 'string',\n },\n ],\n },\n ],\n variables: [\n {\n name: 'text value',\n type: 'string',\n defaultValue: Value.noFilter(),\n inputs: ['value'],\n events: [{ name: 'onChange', property: 'value' }],\n },\n ],\n} as const satisfies EmbeddedComponentMeta;\n\nconst preview = definePreview(Component, {\n placeholder: 'Enter text...',\n onChange: () => null,\n});\n\nconst props = (inputs: Inputs<typeof meta>) => ({\n ...inputs,\n});\n\nconst events = {\n onChange: (value: string) => ({\n value: value === '' || value == null ? Value.noFilter() : value,\n }),\n};\n\nexport const textFieldPro = {\n Component,\n meta,\n preview,\n config: {\n props,\n events,\n },\n} as const;\n"],"names":["TextFieldPro","props","theme","useTheme","i18nSetup","title","description","tooltip","placeholder","resolveI18nProps","value","onChange","currentValue","setCurrentValue","useState","debouncedUpdateState","useDebounce","newValue","useEffect","jsx","EditorCard","TextField","meta","inputs","Value","preview","definePreview","Component","events","textFieldPro"],"mappings":";;;;;;AAcA,MAAMA,IAAe,CAACC,MAA6B;AACjD,QAAMC,IAAeC,EAAA;AACrB,EAAAC,EAAUF,CAAK;AACf,QAAM,EAAE,OAAAG,GAAO,aAAAC,GAAa,SAAAC,GAAS,aAAAC,IAAc,GAAA,IAAOC,EAAiBR,CAAK,GAC1E,EAAE,OAAAS,IAAQ,IAAI,UAAAC,EAAA,IAAaV,GAE3B,CAACW,GAAcC,CAAe,IAAIC,EAASJ,CAAK,GAEhDK,IAAuBC,EAAY,CAACC,MAAqB;AAC7D,IAAAN,KAAA,QAAAA,EAAWM;AAAA,EACb,CAAC;AAED,SAAAC,EAAU,MAAM;AACd,IAAAH,EAAqBH,CAAY;AAAA,EACnC,GAAG,CAACA,GAAcG,CAAoB,CAAC,GAGrCI,gBAAAA,EAAAA,IAACC,GAAA,EAAW,OAAAf,GAAc,aAAAC,GAA0B,SAAAC,GAClD,UAAAY,gBAAAA,EAAAA;AAAAA,IAACE;AAAA,IAAA;AAAA,MACC,OAAOT;AAAA,MACP,aAAAJ;AAAA,MACA,UAAUK;AAAA,MACV,WAAS;AAAA,IAAA;AAAA,EAAA,GAEb;AAEJ;;;8CCnCMS,IAAO;AAAA,EACX,MAAM;AAAA,EACN,OAAO;AAAA,EACP,aAAa;AAAA,EACb,UAAU;AAAA,EACV,cAAc;AAAA,EACd,eAAe;AAAA,EACf,QAAQ;AAAA,IACNC,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACPA,EAAO;AAAA,IACP;AAAA,MACE,GAAGA,EAAO;AAAA,MACV,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU;AAAA,IAAA;AAAA,EACZ;AAAA,EAEF,QAAQ;AAAA,IACN;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,MACP,YAAY;AAAA,QACV;AAAA,UACE,MAAM;AAAA,UACN,OAAO;AAAA,UACP,MAAM;AAAA,QAAA;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAAA,EAEF,WAAW;AAAA,IACT;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,cAAcC,EAAM,SAAA;AAAA,MACpB,QAAQ,CAAC,OAAO;AAAA,MAChB,QAAQ,CAAC,EAAE,MAAM,YAAY,UAAU,SAAS;AAAA,IAAA;AAAA,EAClD;AAEJ,GAEMC,IAAUC,EAAcC,GAAW;AAAA,EACvC,aAAa;AAAA,EACb,UAAU,MAAM;AAClB,CAAC,GAEK1B,IAAQ,CAACsB,OAAiC;AAAA,EAC9C,GAAGA;AACL,IAEMK,IAAS;AAAA,EACb,UAAU,CAAClB,OAAmB;AAAA,IAC5B,OAAOA,MAAU,MAAMA,KAAS,OAAOc,EAAM,aAAad;AAAA,EAAA;AAE9D,GAEamB,IAAe;AAAA,EAAA,WAC1BF;AAAAA,EACA,MAAAL;AAAA,EACA,SAAAG;AAAA,EACA,QAAQ;AAAA,IACN,OAAAxB;AAAA,IACA,QAAA2B;AAAA,EAAA;AAEJ;"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { j as C, Q as ie, l as F } from "./index-
|
|
1
|
+
import { j as C, Q as ie, l as F } from "./index-B2QrkfxN.js";
|
|
2
2
|
import { useTheme as re, definePreview as le } from "@embeddable.com/react";
|
|
3
3
|
import { i as me, r as ue, a as de } from "./component.utils-oQMZT7TK.js";
|
|
4
|
-
import { C as ce } from "./ChartCard-
|
|
4
|
+
import { C as ce } from "./ChartCard-vJK2ZRxA.js";
|
|
5
5
|
import { useRef as we, useState as x, useEffect as be } from "react";
|
|
6
|
-
import { u as A } from "./charts.fillGaps.hooks-
|
|
7
|
-
import { g as M } from "./formatter.utils-
|
|
6
|
+
import { u as A } from "./charts.fillGaps.hooks-BkJ8-vFc.js";
|
|
7
|
+
import { g as M } from "./formatter.utils-DTeWPgjB.js";
|
|
8
8
|
import { u as pe } from "./tables.hooks-fVC_4V5K.js";
|
|
9
|
-
import { i as a, s as f } from "./component.inputs.constants-
|
|
10
|
-
import { p as b } from "./preview.data.constants-
|
|
9
|
+
import { i as a, s as f } from "./component.inputs.constants-fbYKhm5a.js";
|
|
10
|
+
import { p as b } from "./preview.data.constants-TS-EhQXM.js";
|
|
11
11
|
import { g as B } from "./clientContext.utils-DpB5KsfX.js";
|
|
12
12
|
const Re = (e, o) => {
|
|
13
13
|
const s = M(o);
|
|
@@ -260,4 +260,4 @@ export {
|
|
|
260
260
|
ze as i,
|
|
261
261
|
Oe as p
|
|
262
262
|
};
|
|
263
|
-
//# sourceMappingURL=definition-
|
|
263
|
+
//# sourceMappingURL=definition-CS6AhiKr.js.map
|