@embeddable.com/remarkable-pro 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/BarChartDefaultHorizontalPro.js +9 -8
- package/dist/BarChartDefaultHorizontalPro.js.map +1 -1
- package/dist/BarChartDefaultPro.js +5 -4
- package/dist/BarChartDefaultPro.js.map +1 -1
- package/dist/BarChartGroupedHorizontalPro.js +5 -4
- package/dist/BarChartGroupedHorizontalPro.js.map +1 -1
- package/dist/BarChartGroupedPro.js +7 -6
- package/dist/BarChartGroupedPro.js.map +1 -1
- package/dist/BarChartStackedHorizontalPro.js +10 -9
- package/dist/BarChartStackedHorizontalPro.js.map +1 -1
- package/dist/BarChartStackedPro.js +13 -12
- package/dist/BarChartStackedPro.js.map +1 -1
- package/dist/ChartCard-Be7mHyBp.js +117 -0
- package/dist/ChartCard-Be7mHyBp.js.map +1 -0
- package/dist/{ChartGranularitySelectField-C_6Mugcw.js → ChartGranularitySelectField-D-H0yKZH.js} +3 -3
- package/dist/{ChartGranularitySelectField-C_6Mugcw.js.map → ChartGranularitySelectField-D-H0yKZH.js.map} +1 -1
- package/dist/{Color.type.emb-De2K8PVb.js → Color.type.emb-CGyFSpIN.js} +11697 -11296
- package/dist/Color.type.emb-CGyFSpIN.js.map +1 -0
- package/dist/ColorEditor.js +1 -1
- package/dist/ComparisonPeriodSelectFieldPro.js +9 -8
- package/dist/ComparisonPeriodSelectFieldPro.js.map +1 -1
- package/dist/DateRangePickerCustomPro.js +42 -41
- package/dist/DateRangePickerCustomPro.js.map +1 -1
- package/dist/DateRangeSelectFieldPro.js +6 -5
- package/dist/DateRangeSelectFieldPro.js.map +1 -1
- package/dist/{DimensionAndMeasureSingleSelectField-CJ1yAcRd.js → DimensionAndMeasureSingleSelectField-BOWAqIok.js} +3 -3
- package/dist/{DimensionAndMeasureSingleSelectField-CJ1yAcRd.js.map → DimensionAndMeasureSingleSelectField-BOWAqIok.js.map} +1 -1
- package/dist/DimensionSingleSelectFieldPro.js +32 -31
- package/dist/DimensionSingleSelectFieldPro.js.map +1 -1
- package/dist/DonutChartPro.js +16 -15
- package/dist/DonutChartPro.js.map +1 -1
- package/dist/DonutLabelChartPro.js +10 -9
- package/dist/DonutLabelChartPro.js.map +1 -1
- package/dist/EditorCard-C8PKNLWT.js +33 -0
- package/dist/EditorCard-C8PKNLWT.js.map +1 -0
- package/dist/{GranularitySelectField-DuRk6qY8.js → GranularitySelectField-DUbr0dRq.js} +3 -3
- package/dist/{GranularitySelectField-DuRk6qY8.js.map → GranularitySelectField-DUbr0dRq.js.map} +1 -1
- package/dist/GranularitySelectFieldPro.js +18 -17
- package/dist/GranularitySelectFieldPro.js.map +1 -1
- package/dist/HeatMapPro.js +5 -4
- package/dist/HeatMapPro.js.map +1 -1
- package/dist/{IconCalendarFilled-CYiLMPm9.js → IconCalendarFilled-BOHNn82C.js} +2 -2
- package/dist/{IconCalendarFilled-CYiLMPm9.js.map → IconCalendarFilled-BOHNn82C.js.map} +1 -1
- package/dist/KpiChartNumberComparisonPro.js +5 -4
- package/dist/KpiChartNumberComparisonPro.js.map +1 -1
- package/dist/KpiChartNumberPro.js +12 -5
- package/dist/KpiChartNumberPro.js.map +1 -1
- package/dist/LineChartComparisonDefaultPro.js +8 -7
- package/dist/LineChartComparisonDefaultPro.js.map +1 -1
- package/dist/LineChartDefaultPro.js +5 -4
- package/dist/LineChartDefaultPro.js.map +1 -1
- package/dist/LineChartGroupedPro.js +5 -4
- package/dist/LineChartGroupedPro.js.map +1 -1
- package/dist/MeasureSingleSelectFieldPro.js +32 -31
- package/dist/MeasureSingleSelectFieldPro.js.map +1 -1
- package/dist/MultiSelectFieldPro.js +9 -8
- package/dist/MultiSelectFieldPro.js.map +1 -1
- package/dist/PieChartPro.js +9 -8
- package/dist/PieChartPro.js.map +1 -1
- package/dist/PivotTablePro.js +5 -4
- package/dist/PivotTablePro.js.map +1 -1
- package/dist/SingleSelectFieldPro.js +23 -22
- package/dist/SingleSelectFieldPro.js.map +1 -1
- package/dist/TableChartPaginated.js +10 -9
- package/dist/TableChartPaginated.js.map +1 -1
- package/dist/TableScrollable.js +244 -242
- package/dist/TableScrollable.js.map +1 -1
- package/dist/{bars.utils-7WiIKMS8.js → bars.utils-Ccwx-tAf.js} +7 -7
- package/dist/{bars.utils-7WiIKMS8.js.map → bars.utils-Ccwx-tAf.js.map} +1 -1
- package/dist/{charts.utils-CeUb1OP-.js → charts.utils-ypZsf-22.js} +725 -688
- package/dist/charts.utils-ypZsf-22.js.map +1 -0
- package/dist/{component.inputs.constants-DzpzJ9Na.js → component.inputs.constants-MAjey7Me.js} +92 -86
- package/dist/component.inputs.constants-MAjey7Me.js.map +1 -0
- package/dist/components/charts/bars/BarChartDefaultHorizontalPro/index.d.ts.map +1 -1
- package/dist/components/charts/bars/BarChartDefaultPro/index.d.ts.map +1 -1
- package/dist/components/charts/bars/BarChartGroupedHorizontalPro/index.d.ts.map +1 -1
- package/dist/components/charts/bars/BarChartGroupedPro/index.d.ts.map +1 -1
- package/dist/components/charts/bars/BarChartStackedHorizontalPro/index.d.ts.map +1 -1
- package/dist/components/charts/bars/BarChartStackedPro/index.d.ts.map +1 -1
- package/dist/components/charts/kpis/KpiChartNumberComparisonPro/index.d.ts.map +1 -1
- package/dist/components/charts/kpis/KpiChartNumberPro/index.d.ts.map +1 -1
- package/dist/components/charts/lines/LineChartComparisonDefaultPro/index.d.ts.map +1 -1
- package/dist/components/charts/lines/LineChartDefaultPro/index.d.ts.map +1 -1
- package/dist/components/charts/lines/LineChartGroupedPro/index.d.ts.map +1 -1
- package/dist/components/charts/shared/ChartCard/ChartCard.d.ts +1 -0
- package/dist/components/charts/shared/ChartCard/ChartCard.d.ts.map +1 -1
- package/dist/components/charts/tables/HeatMapPro/index.d.ts.map +1 -1
- package/dist/components/charts/tables/PivotTablePro/index.d.ts.map +1 -1
- package/dist/components/charts/tables/TableChartPaginated/index.d.ts.map +1 -1
- package/dist/components/charts/tables/TableScrollable/index.d.ts.map +1 -1
- package/dist/components/component.inputs.constants.d.ts +6 -0
- package/dist/components/component.inputs.constants.d.ts.map +1 -1
- package/dist/components/editors/ComparisonPeriodSelectFieldPro/index.d.ts +2 -2
- package/dist/components/editors/ComparisonPeriodSelectFieldPro/index.d.ts.map +1 -1
- package/dist/components/editors/GranularitySelectFieldPro/index.d.ts +2 -2
- package/dist/components/editors/GranularitySelectFieldPro/index.d.ts.map +1 -1
- package/dist/components/editors/MultiSelectFieldPro/index.d.ts +2 -2
- package/dist/components/editors/MultiSelectFieldPro/index.d.ts.map +1 -1
- package/dist/components/editors/SingleSelectFieldPro/index.d.ts +2 -2
- package/dist/components/editors/SingleSelectFieldPro/index.d.ts.map +1 -1
- package/dist/components/editors/dates/DateRangePickerCustomPro/index.d.ts +2 -2
- package/dist/components/editors/dates/DateRangePickerCustomPro/index.d.ts.map +1 -1
- package/dist/components/editors/dates/DateRangePickerPresetsPro/index.d.ts +2 -2
- package/dist/components/editors/dates/DateRangePickerPresetsPro/index.d.ts.map +1 -1
- package/dist/components/editors/shared/EditorCard/EditorCard.d.ts +6 -3
- package/dist/components/editors/shared/EditorCard/EditorCard.d.ts.map +1 -1
- package/dist/embeddable-components.json +28 -28
- package/dist/embeddable-theme-0137e.js +1090 -1053
- package/dist/{formatter.utils-CiN6axbW.js → formatter.utils-BeLScsYW.js} +2 -2
- package/dist/{formatter.utils-CiN6axbW.js.map → formatter.utils-BeLScsYW.js.map} +1 -1
- package/dist/index-B4AV2TSq.js +346 -0
- package/dist/{index-BEckqi71.js.map → index-B4AV2TSq.js.map} +1 -1
- package/dist/{index-Cd59K5g3.js → index-BWJHhuBQ.js} +6 -6
- package/dist/{index-Cd59K5g3.js.map → index-BWJHhuBQ.js.map} +1 -1
- package/dist/index-BZ2MzjOb.js +83 -0
- package/dist/index-BZ2MzjOb.js.map +1 -0
- package/dist/index-Bg7ZniJ2.js +37 -0
- package/dist/index-Bg7ZniJ2.js.map +1 -0
- package/dist/index-BlaQtlpt.js +114 -0
- package/dist/index-BlaQtlpt.js.map +1 -0
- package/dist/index-CRxhm_xI.js +99 -0
- package/dist/index-CRxhm_xI.js.map +1 -0
- package/dist/index-CzJiHUjz.js +93 -0
- package/dist/index-CzJiHUjz.js.map +1 -0
- package/dist/index-D4RtNAm0.js +60 -0
- package/dist/index-D4RtNAm0.js.map +1 -0
- package/dist/index-DH1xtNOE.js +37 -0
- package/dist/index-DH1xtNOE.js.map +1 -0
- package/dist/index-DHVSgVH0.js +32 -0
- package/dist/index-DHVSgVH0.js.map +1 -0
- package/dist/{index-BCVHDZZk.js → index-DHWLaRmn.js} +51 -51
- package/dist/index-DHWLaRmn.js.map +1 -0
- package/dist/{index-APJ7mYHR.js → index-DPF51yD5.js} +5 -5
- package/dist/{index-APJ7mYHR.js.map → index-DPF51yD5.js.map} +1 -1
- package/dist/index-DiU1B7O9.js +91 -0
- package/dist/index-DiU1B7O9.js.map +1 -0
- package/dist/index-DjdyOpZx.js +98 -0
- package/dist/index-DjdyOpZx.js.map +1 -0
- package/dist/index-KyBmwDIm.js +88 -0
- package/dist/index-KyBmwDIm.js.map +1 -0
- package/dist/index-SaoYT_gT.js +178 -0
- package/dist/index-SaoYT_gT.js.map +1 -0
- package/dist/index-bJoBwWW3.js +94 -0
- package/dist/index-bJoBwWW3.js.map +1 -0
- package/dist/index-eVkC4ywY.js +92 -0
- package/dist/index-eVkC4ywY.js.map +1 -0
- package/dist/index-g8MvTSdJ.js +84 -0
- package/dist/index-g8MvTSdJ.js.map +1 -0
- package/dist/index-rMR9Yklq.js +183 -0
- package/dist/index-rMR9Yklq.js.map +1 -0
- package/dist/{index-CTds3eHF.js → index-y6eDhxWa.js} +5 -5
- package/dist/{index-CTds3eHF.js.map → index-y6eDhxWa.js.map} +1 -1
- package/dist/index.js +29 -29
- package/dist/{pies.utils-MOzFigDD.js → pies.utils-5-O3kg-9.js} +5 -5
- package/dist/{pies.utils-MOzFigDD.js.map → pies.utils-5-O3kg-9.js.map} +1 -1
- package/dist/{preview.data.constants-BBIMPXYy.js → preview.data.constants-Cdk-GUa5.js} +2 -2
- package/dist/{preview.data.constants-BBIMPXYy.js.map → preview.data.constants-Cdk-GUa5.js.map} +1 -1
- package/dist/remarkable-pro.css +1 -1
- package/dist/{tables.utils-C7MWIQsp.js → tables.utils-CG1MXpGj.js} +4 -4
- package/dist/tables.utils-CG1MXpGj.js.map +1 -0
- package/dist/{timeRange.utils-LHM3sXwE.js → timeRange.utils-Rkw2u-vc.js} +2 -2
- package/dist/{timeRange.utils-LHM3sXwE.js.map → timeRange.utils-Rkw2u-vc.js.map} +1 -1
- package/package.json +4 -3
- package/dist/ChartCard-CfVMn37p.js +0 -116
- package/dist/ChartCard-CfVMn37p.js.map +0 -1
- package/dist/Color.type.emb-De2K8PVb.js.map +0 -1
- package/dist/EditorCard-B9UFM_uA.js +0 -32
- package/dist/EditorCard-B9UFM_uA.js.map +0 -1
- package/dist/charts.utils-CeUb1OP-.js.map +0 -1
- package/dist/component.inputs.constants-DzpzJ9Na.js.map +0 -1
- package/dist/index-387srVl0.js +0 -93
- package/dist/index-387srVl0.js.map +0 -1
- package/dist/index-3xjxWqDJ.js +0 -90
- package/dist/index-3xjxWqDJ.js.map +0 -1
- package/dist/index-7JWw7tI5.js +0 -47
- package/dist/index-7JWw7tI5.js.map +0 -1
- package/dist/index-BCVHDZZk.js.map +0 -1
- package/dist/index-BEckqi71.js +0 -346
- package/dist/index-BYB6yWhD.js +0 -92
- package/dist/index-BYB6yWhD.js.map +0 -1
- package/dist/index-BnOZcps-.js +0 -98
- package/dist/index-BnOZcps-.js.map +0 -1
- package/dist/index-Bv9-6Ht7.js +0 -113
- package/dist/index-Bv9-6Ht7.js.map +0 -1
- package/dist/index-C26JokZs.js +0 -91
- package/dist/index-C26JokZs.js.map +0 -1
- package/dist/index-CEDNCQK8.js +0 -31
- package/dist/index-CEDNCQK8.js.map +0 -1
- package/dist/index-ClEmYHgx.js +0 -60
- package/dist/index-ClEmYHgx.js.map +0 -1
- package/dist/index-Cp90DbOu.js +0 -83
- package/dist/index-Cp90DbOu.js.map +0 -1
- package/dist/index-Crpz4FA4.js +0 -87
- package/dist/index-Crpz4FA4.js.map +0 -1
- package/dist/index-D37a5H7U.js +0 -182
- package/dist/index-D37a5H7U.js.map +0 -1
- package/dist/index-DADSJYlJ.js +0 -177
- package/dist/index-DADSJYlJ.js.map +0 -1
- package/dist/index-DeWASjPW.js +0 -97
- package/dist/index-DeWASjPW.js.map +0 -1
- package/dist/index-DffpQwrs.js +0 -82
- package/dist/index-DffpQwrs.js.map +0 -1
- package/dist/index-mtJHlsB1.js +0 -47
- package/dist/index-mtJHlsB1.js.map +0 -1
- package/dist/tables.utils-C7MWIQsp.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-BZ2MzjOb.js","sources":["../src/components/charts/bars/BarChartDefaultPro/index.tsx"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { ChartCard, ChartCardHeaderProps } from '../../shared/ChartCard/ChartCard';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { BarChart } from '@embeddable.com/remarkable-ui';\nimport { getBarChartProData, getBarChartProOptions } from '../bars.utils';\nimport { mergician } from 'mergician';\nimport { DataResponse, Dimension, Granularity, Measure } from '@embeddable.com/core';\nimport { useFillGaps } from '../../charts.fillGaps.hooks';\nimport { ChartGranularitySelectField } from '../../shared/ChartGranularitySelectField/ChartGranularitySelectField';\n\ntype BarChartDefaultProProps = {\n dimension: Dimension;\n measures: Measure[];\n results: DataResponse;\n xAxisLabel?: string;\n xAxisMaxItems?: number;\n yAxisLabel?: string;\n yAxisRangeMin?: number;\n yAxisRangeMax?: number;\n showLegend?: boolean;\n showLogarithmicScale?: boolean;\n showTooltips?: boolean;\n showValueLabels?: boolean;\n reverseXAxis?: boolean;\n setGranularity: (granularity: Granularity) => void;\n onBarClicked?: (args: { axisDimensionValue: string | null }) => void;\n} & ChartCardHeaderProps;\n\nconst BarChartDefaultPro = (props: BarChartDefaultProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const {\n measures,\n yAxisRangeMin,\n xAxisMaxItems,\n yAxisRangeMax,\n showLegend,\n showTooltips,\n showLogarithmicScale,\n showValueLabels,\n reverseXAxis,\n hideMenu,\n dimension,\n setGranularity,\n onBarClicked,\n } = props;\n\n const { tooltip, description, title, xAxisLabel, yAxisLabel } = resolveI18nProps(props);\n\n const results = useFillGaps({\n results: props.results,\n dimension,\n });\n\n const data = getBarChartProData(\n { data: results.data, dimension, measures, maxItems: xAxisMaxItems },\n theme,\n );\n\n const options = mergician(\n getBarChartProOptions({ measures, horizontal: false, onBarClicked, data, dimension }, theme), // Format Y axis based on first measure\n theme.charts?.barChartDefaultPro?.options || {},\n );\n\n const granularitySelectorHasMarginTop = !title && !description && !tooltip;\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[dimension, ...measures]}\n errorMessage={results.error}\n description={description}\n title={title}\n tooltip={tooltip}\n hideMenu={hideMenu}\n >\n <ChartGranularitySelectField\n hasMarginTop={granularitySelectorHasMarginTop}\n dimension={dimension}\n onChange={setGranularity}\n />\n <BarChart\n data={data}\n showLegend={showLegend}\n showTooltips={showTooltips}\n showValueLabels={showValueLabels}\n showLogarithmicScale={showLogarithmicScale}\n xAxisLabel={xAxisLabel}\n yAxisLabel={yAxisLabel}\n reverseXAxis={reverseXAxis}\n yAxisRangeMin={yAxisRangeMin}\n yAxisRangeMax={yAxisRangeMax}\n options={options}\n />\n </ChartCard>\n );\n};\n\nexport default BarChartDefaultPro;\n"],"names":["BarChartDefaultPro","props","theme","useTheme","i18nSetup","measures","yAxisRangeMin","xAxisMaxItems","yAxisRangeMax","showLegend","showTooltips","showLogarithmicScale","showValueLabels","reverseXAxis","hideMenu","dimension","setGranularity","onBarClicked","tooltip","description","title","xAxisLabel","yAxisLabel","resolveI18nProps","results","useFillGaps","data","getBarChartProData","options","mergician","getBarChartProOptions","_b","_a","granularitySelectorHasMarginTop","jsxs","ChartCard","jsx","ChartGranularitySelectField","BarChart"],"mappings":";;;;;;;AA8BA,MAAMA,IAAqB,CAACC,MAAmC;;AAC7D,QAAMC,IAAQC,EAAA;AACd,EAAAC,EAAUF,CAAK;AAEf,QAAM;AAAA,IACJ,UAAAG;AAAA,IACA,eAAAC;AAAA,IACA,eAAAC;AAAA,IACA,eAAAC;AAAA,IACA,YAAAC;AAAA,IACA,cAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,cAAAC;AAAA,EAAA,IACEhB,GAEE,EAAE,SAAAiB,GAAS,aAAAC,GAAa,OAAAC,GAAO,YAAAC,GAAY,YAAAC,EAAA,IAAeC,EAAiBtB,CAAK,GAEhFuB,IAAUC,EAAY;AAAA,IAC1B,SAASxB,EAAM;AAAA,IACf,WAAAc;AAAA,EAAA,CACD,GAEKW,IAAOC;AAAA,IACX,EAAE,MAAMH,EAAQ,MAAM,WAAAT,GAAW,UAAAV,GAAU,UAAUE,EAAA;AAAA,IACrDL;AAAA,EAAA,GAGI0B,IAAUC;AAAA,IACdC,EAAsB,EAAE,UAAAzB,GAAU,YAAY,IAAO,cAAAY,GAAc,MAAAS,GAAM,WAAAX,EAAA,GAAab,CAAK;AAAA;AAAA,MAC3F6B,KAAAC,IAAA9B,EAAM,WAAN,gBAAA8B,EAAc,uBAAd,gBAAAD,EAAkC,YAAW,CAAA;AAAA,EAAC,GAG1CE,IAAkC,CAACb,KAAS,CAACD,KAAe,CAACD;AAEnE,SACEgB,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAMX;AAAA,MACN,uBAAuB,CAACT,GAAW,GAAGV,CAAQ;AAAA,MAC9C,cAAcmB,EAAQ;AAAA,MACtB,aAAAL;AAAA,MACA,OAAAC;AAAA,MACA,SAAAF;AAAA,MACA,UAAAJ;AAAA,MAEA,UAAA;AAAA,QAAAsB,gBAAAA,EAAAA;AAAAA,UAACC;AAAA,UAAA;AAAA,YACC,cAAcJ;AAAA,YACd,WAAAlB;AAAA,YACA,UAAUC;AAAA,UAAA;AAAA,QAAA;AAAA,QAEZoB,gBAAAA,EAAAA;AAAAA,UAACE;AAAA,UAAA;AAAA,YACC,MAAAZ;AAAA,YACA,YAAAjB;AAAA,YACA,cAAAC;AAAA,YACA,iBAAAE;AAAA,YACA,sBAAAD;AAAA,YACA,YAAAU;AAAA,YACA,YAAAC;AAAA,YACA,cAAAT;AAAA,YACA,eAAAP;AAAA,YACA,eAAAE;AAAA,YACA,SAAAoB;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAGN;;;;"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { j as l, S as b } from "./Color.type.emb-CGyFSpIN.js";
|
|
2
|
+
import { g as j } from "./formatter.utils-BeLScsYW.js";
|
|
3
|
+
import { useTheme as v } from "@embeddable.com/react";
|
|
4
|
+
import { E as x } from "./EditorCard-C8PKNLWT.js";
|
|
5
|
+
import { r as F, i as M } from "./component.inputs.constants-MAjey7Me.js";
|
|
6
|
+
const _ = 200, P = (n) => {
|
|
7
|
+
var i, r;
|
|
8
|
+
const m = v(), c = j(m), { title: d, description: p, dimension: t, placeholder: u, tooltip: g } = F(n), { optionalSecondDimension: a, results: o, selectedValue: S, setSearchValue: h, onChange: s } = n, f = ((i = o.data) == null ? void 0 : i.map((e) => ({
|
|
9
|
+
value: a ? e[a.name] : e[t.name],
|
|
10
|
+
label: c.data(t, e[t.name])
|
|
11
|
+
}))) ?? [], O = !o.isLoading && (((r = o.data) == null ? void 0 : r.length) ?? 0) === 0;
|
|
12
|
+
return /* @__PURE__ */ l.jsx(x, { title: d, description: p, tooltip: g, children: /* @__PURE__ */ l.jsx(
|
|
13
|
+
b,
|
|
14
|
+
{
|
|
15
|
+
clearable: !0,
|
|
16
|
+
searchable: !0,
|
|
17
|
+
isLoading: o.isLoading,
|
|
18
|
+
value: S,
|
|
19
|
+
options: f,
|
|
20
|
+
placeholder: u,
|
|
21
|
+
noOptionsMessage: O ? M.t("common.noOptionsFound") : void 0,
|
|
22
|
+
onChange: (e) => s == null ? void 0 : s(e),
|
|
23
|
+
onSearch: h,
|
|
24
|
+
avoidCollisions: !1
|
|
25
|
+
}
|
|
26
|
+
) });
|
|
27
|
+
}, I = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
28
|
+
__proto__: null,
|
|
29
|
+
MAX_OPTIONS: _,
|
|
30
|
+
default: P
|
|
31
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
32
|
+
export {
|
|
33
|
+
_ as M,
|
|
34
|
+
P as S,
|
|
35
|
+
I as i
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=index-Bg7ZniJ2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-Bg7ZniJ2.js","sources":["../src/components/editors/SingleSelectFieldPro/index.tsx"],"sourcesContent":["import { DataResponse, Dimension } from '@embeddable.com/core';\nimport { getThemeFormatter } from '../../../theme/formatter/formatter.utils';\nimport { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../theme/theme.types';\nimport { EditorCard, EditorCardHeaderProps } from '../shared/EditorCard/EditorCard';\nimport { resolveI18nProps } from '../../component.utils';\nimport { i18n } from '../../../theme/i18n/i18n';\nimport { SingleSelectField } from '@embeddable.com/remarkable-ui';\n\nexport const MAX_OPTIONS = 200;\n\ntype SingleSelectFieldProProps = {\n dimension: Dimension;\n optionalSecondDimension?: Dimension;\n placeholder?: string;\n results: DataResponse;\n selectedValue?: string;\n maxOptions?: number;\n setSearchValue?: (search: string) => void;\n onChange?: (selectedValue: string) => void;\n} & EditorCardHeaderProps;\n\nconst SingleSelectFieldPro = (props: SingleSelectFieldProProps) => {\n const theme: Theme = useTheme() as Theme;\n const themeFormatter = getThemeFormatter(theme);\n\n const { title, description, dimension, placeholder, tooltip } = resolveI18nProps(props);\n const { optionalSecondDimension, results, selectedValue, setSearchValue, onChange } = props;\n\n const options =\n results.data?.map((data) => {\n return {\n value: optionalSecondDimension ? data[optionalSecondDimension.name] : data[dimension.name],\n label: themeFormatter.data(dimension, data[dimension.name]),\n };\n }) ?? [];\n\n const showNoOptionsMessage = Boolean(!results.isLoading && (results.data?.length ?? 0) === 0);\n\n return (\n <EditorCard title={title} description={description} tooltip={tooltip}>\n <SingleSelectField\n clearable\n searchable\n isLoading={results.isLoading}\n value={selectedValue}\n options={options}\n placeholder={placeholder}\n noOptionsMessage={showNoOptionsMessage ? i18n.t('common.noOptionsFound') : undefined}\n onChange={(newValue: string) => onChange?.(newValue)}\n onSearch={setSearchValue}\n avoidCollisions={false}\n />\n </EditorCard>\n );\n};\n\nexport default SingleSelectFieldPro;\n"],"names":["MAX_OPTIONS","SingleSelectFieldPro","props","theme","useTheme","themeFormatter","getThemeFormatter","title","description","dimension","placeholder","tooltip","resolveI18nProps","optionalSecondDimension","results","selectedValue","setSearchValue","onChange","options","_a","data","showNoOptionsMessage","_b","jsx","EditorCard","SingleSelectField","i18n","newValue"],"mappings":";;;;;AASO,MAAMA,IAAc,KAarBC,IAAuB,CAACC,MAAqC;;AACjE,QAAMC,IAAeC,EAAA,GACfC,IAAiBC,EAAkBH,CAAK,GAExC,EAAE,OAAAI,GAAO,aAAAC,GAAa,WAAAC,GAAW,aAAAC,GAAa,SAAAC,EAAA,IAAYC,EAAiBV,CAAK,GAChF,EAAE,yBAAAW,GAAyB,SAAAC,GAAS,eAAAC,GAAe,gBAAAC,GAAgB,UAAAC,MAAaf,GAEhFgB,MACJC,IAAAL,EAAQ,SAAR,gBAAAK,EAAc,IAAI,CAACC,OACV;AAAA,IACL,OAAOP,IAA0BO,EAAKP,EAAwB,IAAI,IAAIO,EAAKX,EAAU,IAAI;AAAA,IACzF,OAAOJ,EAAe,KAAKI,GAAWW,EAAKX,EAAU,IAAI,CAAC;AAAA,EAAA,QAExD,CAAA,GAEFY,IAA+B,CAACP,EAAQ,gBAAcQ,IAAAR,EAAQ,SAAR,gBAAAQ,EAAc,WAAU,OAAO;AAE3F,SACEC,gBAAAA,EAAAA,IAACC,GAAA,EAAW,OAAAjB,GAAc,aAAAC,GAA0B,SAAAG,GAClD,UAAAY,gBAAAA,EAAAA;AAAAA,IAACE;AAAA,IAAA;AAAA,MACC,WAAS;AAAA,MACT,YAAU;AAAA,MACV,WAAWX,EAAQ;AAAA,MACnB,OAAOC;AAAA,MACP,SAAAG;AAAA,MACA,aAAAR;AAAA,MACA,kBAAkBW,IAAuBK,EAAK,EAAE,uBAAuB,IAAI;AAAA,MAC3E,UAAU,CAACC,MAAqBV,KAAA,gBAAAA,EAAWU;AAAA,MAC3C,UAAUX;AAAA,MACV,iBAAiB;AAAA,IAAA;AAAA,EAAA,GAErB;AAEJ;;;;;"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { e as f, u as E, f as O, j as x, T as A, h as N } from "./Color.type.emb-CGyFSpIN.js";
|
|
2
|
+
import { useTheme as G } from "@embeddable.com/react";
|
|
3
|
+
import { a as U, r as V, i as q } from "./component.inputs.constants-MAjey7Me.js";
|
|
4
|
+
import { C as B } from "./ChartCard-Be7mHyBp.js";
|
|
5
|
+
import { useState as F, useRef as J, useCallback as K, useEffect as d } from "react";
|
|
6
|
+
import { b as Q, c as W } from "./tables.utils-CG1MXpGj.js";
|
|
7
|
+
const X = f("--em-tablechart-cell-height", "2.5rem"), Y = f("--em-tablechart-cell-height", "2.5rem"), Z = f("--em-tablechart-pagination-height", "3rem");
|
|
8
|
+
let R;
|
|
9
|
+
const $ = (u) => {
|
|
10
|
+
const g = G();
|
|
11
|
+
U(g);
|
|
12
|
+
const [b, p] = F(!1), { title: w, description: j, tooltip: k } = V(u), {
|
|
13
|
+
hideMenu: H,
|
|
14
|
+
totalResults: a,
|
|
15
|
+
results: t,
|
|
16
|
+
allResults: l,
|
|
17
|
+
dimensionsAndMeasures: c,
|
|
18
|
+
displayNullAs: I,
|
|
19
|
+
showIndex: v,
|
|
20
|
+
clickDimension: h,
|
|
21
|
+
state: s,
|
|
22
|
+
setState: o,
|
|
23
|
+
onRowClicked: C
|
|
24
|
+
} = u, y = Q({ dimensionsAndMeasures: c, displayNullAs: I }, g), D = (t == null ? void 0 : t.data) || [], L = W({ rows: D, clickDimension: h }), m = J(null), { height: M } = E(m), r = O({
|
|
25
|
+
availableHeight: M,
|
|
26
|
+
headerHeight: X,
|
|
27
|
+
rowHeight: Y,
|
|
28
|
+
footerHeight: Z
|
|
29
|
+
}), n = K(
|
|
30
|
+
(e) => {
|
|
31
|
+
o == null || o((i) => ({
|
|
32
|
+
...i,
|
|
33
|
+
...e
|
|
34
|
+
}));
|
|
35
|
+
},
|
|
36
|
+
[o]
|
|
37
|
+
), S = (e) => {
|
|
38
|
+
p(!0), n({ isLoadingDownloadData: !0 }), R = (i) => e({
|
|
39
|
+
title: w,
|
|
40
|
+
data: i,
|
|
41
|
+
dimensionsAndMeasures: c,
|
|
42
|
+
containerRef: m,
|
|
43
|
+
theme: g
|
|
44
|
+
});
|
|
45
|
+
}, _ = (e) => {
|
|
46
|
+
var P;
|
|
47
|
+
if (!C || !h) return;
|
|
48
|
+
const i = (P = D[e]) == null ? void 0 : P[h.name];
|
|
49
|
+
C(i);
|
|
50
|
+
};
|
|
51
|
+
d(() => {
|
|
52
|
+
r && n({ pageSize: r });
|
|
53
|
+
}, [r, n]), d(() => {
|
|
54
|
+
o == null || o((e) => ({
|
|
55
|
+
...e,
|
|
56
|
+
hasTotalResults: !1
|
|
57
|
+
}));
|
|
58
|
+
}, [c, r]), d(() => {
|
|
59
|
+
a != null && a.total && (o == null || o((e) => ({
|
|
60
|
+
...e,
|
|
61
|
+
hasTotalResults: !0
|
|
62
|
+
})));
|
|
63
|
+
}, [a]), d(() => {
|
|
64
|
+
if (b) {
|
|
65
|
+
if (!l || l.isLoading)
|
|
66
|
+
return;
|
|
67
|
+
R(l.data), p(!1), n({ isLoadingDownloadData: !1 });
|
|
68
|
+
}
|
|
69
|
+
}, [b, l, n]);
|
|
70
|
+
const z = (e) => {
|
|
71
|
+
n({ sort: e });
|
|
72
|
+
}, T = (s == null ? void 0 : s.page) ?? 0;
|
|
73
|
+
return /* @__PURE__ */ x.jsx(
|
|
74
|
+
B,
|
|
75
|
+
{
|
|
76
|
+
ref: m,
|
|
77
|
+
title: w,
|
|
78
|
+
description: j,
|
|
79
|
+
tooltip: k,
|
|
80
|
+
data: t,
|
|
81
|
+
dimensionsAndMeasures: c,
|
|
82
|
+
errorMessage: t == null ? void 0 : t.error,
|
|
83
|
+
onCustomDownload: S,
|
|
84
|
+
hideMenu: H,
|
|
85
|
+
children: /* @__PURE__ */ x.jsx(
|
|
86
|
+
A,
|
|
87
|
+
{
|
|
88
|
+
onRowIndexClick: _,
|
|
89
|
+
headers: y,
|
|
90
|
+
rows: L,
|
|
91
|
+
showIndex: v,
|
|
92
|
+
page: T,
|
|
93
|
+
pageSize: r,
|
|
94
|
+
paginationLabel: q.t("charts.tablePaginated.pagination", {
|
|
95
|
+
page: T + 1,
|
|
96
|
+
totalPages: N(a == null ? void 0 : a.total, r) ?? "?"
|
|
97
|
+
}),
|
|
98
|
+
total: a == null ? void 0 : a.total,
|
|
99
|
+
sort: s == null ? void 0 : s.sort,
|
|
100
|
+
onSortChange: z,
|
|
101
|
+
onPageChange: (e) => n({ page: e })
|
|
102
|
+
}
|
|
103
|
+
)
|
|
104
|
+
}
|
|
105
|
+
);
|
|
106
|
+
}, re = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
107
|
+
__proto__: null,
|
|
108
|
+
default: $
|
|
109
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
110
|
+
export {
|
|
111
|
+
$ as T,
|
|
112
|
+
re as i
|
|
113
|
+
};
|
|
114
|
+
//# sourceMappingURL=index-BlaQtlpt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-BlaQtlpt.js","sources":["../src/components/charts/tables/TableChartPaginated/index.tsx"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { i18n, i18nSetup } from '../../../../theme/i18n/i18n';\nimport { ChartCard, ChartCardHeaderProps } from '../../shared/ChartCard/ChartCard';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { DataResponse, Dimension, DimensionOrMeasure, OrderDirection } from '@embeddable.com/core';\nimport {\n getStyleNumber,\n getTableTotalPages,\n TablePaginated,\n useTableGetRowsPerPage,\n useResizeObserver,\n TableSort,\n} from '@embeddable.com/remarkable-ui';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { getTableHeaders, getTableRows } from '../tables.utils';\nimport { ChartCardMenuOptionOnClickProps } from '../../../../theme/defaults/defaults.ChartCardMenu.constants';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nconst headerHeight = getStyleNumber('--em-tablechart-cell-height', '2.5rem') as number;\nconst rowHeight = getStyleNumber('--em-tablechart-cell-height', '2.5rem') as number;\nconst footerHeight = getStyleNumber('--em-tablechart-pagination-height', '3rem') as number;\n\nlet downloadData: (data: DataResponse['data']) => void;\n\nexport type TableChartPaginatedProOnRowClickArg = string | null;\nexport type TableChartPaginatedProState = {\n page: number;\n pageSize?: number;\n sort?: { id: string; direction: OrderDirection } | undefined;\n isLoadingDownloadData: boolean;\n hasTotalResults: boolean;\n};\n\ntype TableChartPaginatedProProps = {\n allResults?: DataResponse;\n clickDimension?: Dimension;\n\n dimensionsAndMeasures: DimensionOrMeasure[];\n displayNullAs?: string;\n results: DataResponse;\n showIndex?: boolean;\n state?: TableChartPaginatedProState;\n\n totalResults?: DataResponse;\n onRowClicked?: (rowDimensionValue: TableChartPaginatedProOnRowClickArg) => void;\n setState?: React.Dispatch<React.SetStateAction<TableChartPaginatedProState>>;\n} & ChartCardHeaderProps;\n\nconst TableChartPaginatedPro = (props: TableChartPaginatedProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const [isDownloadingData, setIsDownloadingData] = useState(false);\n\n const { title, description, tooltip } = resolveI18nProps(props);\n const {\n hideMenu,\n totalResults,\n results,\n allResults,\n dimensionsAndMeasures,\n displayNullAs,\n showIndex,\n clickDimension,\n state,\n setState,\n onRowClicked,\n } = props;\n\n const headers = getTableHeaders({ dimensionsAndMeasures, displayNullAs }, theme);\n const rows = results?.data || [];\n const tableRows = getTableRows({ rows, clickDimension });\n const cardContentRef = useRef<HTMLDivElement>(null);\n const { height } = useResizeObserver(cardContentRef);\n const pageSize = useTableGetRowsPerPage({\n availableHeight: height,\n headerHeight,\n rowHeight,\n footerHeight,\n });\n\n // Stable updater for embeddable state\n const handleUpdateEmbeddableState = useCallback(\n (newState: Partial<TableChartPaginatedProState>) => {\n setState?.((prevState) => ({\n ...prevState,\n ...newState,\n }));\n },\n [setState],\n );\n\n const handleCustomDownload = (onDownload: (props: ChartCardMenuOptionOnClickProps) => void) => {\n setIsDownloadingData(true);\n handleUpdateEmbeddableState({ isLoadingDownloadData: true });\n\n downloadData = (data: DataResponse['data']) =>\n onDownload({\n title,\n data,\n dimensionsAndMeasures,\n containerRef: cardContentRef,\n theme,\n });\n };\n\n const handleRowIndexClick = (rowIndex: number) => {\n if (!onRowClicked || !clickDimension) return;\n\n const rowDimensionValue = rows[rowIndex]?.[clickDimension.name];\n onRowClicked(rowDimensionValue);\n };\n\n // Sync page size changes to embeddable state\n useEffect(() => {\n if (pageSize) {\n handleUpdateEmbeddableState({ pageSize });\n }\n }, [pageSize, handleUpdateEmbeddableState]);\n\n // Sync total from results\n useEffect(() => {\n setState?.((prevState) => ({\n ...prevState,\n hasTotalResults: false,\n }));\n }, [dimensionsAndMeasures, pageSize]);\n\n useEffect(() => {\n if (totalResults?.total) {\n setState?.((prevState) => ({\n ...prevState,\n hasTotalResults: true,\n }));\n }\n }, [totalResults]);\n\n // Handle data download when allResults is ready\n useEffect(() => {\n if (isDownloadingData) {\n if (!allResults || allResults.isLoading) {\n // Loading data to download\n return;\n }\n\n downloadData(allResults.data);\n setIsDownloadingData(false);\n handleUpdateEmbeddableState({ isLoadingDownloadData: false });\n }\n }, [isDownloadingData, allResults, handleUpdateEmbeddableState]);\n\n const handleSortChange = (newSort: TableSort<any> | undefined) => {\n handleUpdateEmbeddableState({ sort: newSort as TableChartPaginatedProState['sort'] });\n };\n\n const currentPage = state?.page ?? 0;\n return (\n <ChartCard\n ref={cardContentRef}\n title={title}\n description={description}\n tooltip={tooltip}\n data={results}\n dimensionsAndMeasures={dimensionsAndMeasures}\n errorMessage={results?.error}\n onCustomDownload={handleCustomDownload}\n hideMenu={hideMenu}\n >\n <TablePaginated\n onRowIndexClick={handleRowIndexClick}\n headers={headers}\n rows={tableRows}\n showIndex={showIndex}\n page={currentPage}\n pageSize={pageSize}\n paginationLabel={i18n.t('charts.tablePaginated.pagination', {\n page: currentPage + 1,\n totalPages: getTableTotalPages(totalResults?.total, pageSize) ?? '?',\n })}\n total={totalResults?.total}\n sort={state?.sort}\n onSortChange={handleSortChange}\n onPageChange={(newPage) => handleUpdateEmbeddableState({ page: newPage })}\n />\n </ChartCard>\n );\n};\n\nexport default TableChartPaginatedPro;\n"],"names":["headerHeight","getStyleNumber","rowHeight","footerHeight","downloadData","TableChartPaginatedPro","props","theme","useTheme","i18nSetup","isDownloadingData","setIsDownloadingData","useState","title","description","tooltip","resolveI18nProps","hideMenu","totalResults","results","allResults","dimensionsAndMeasures","displayNullAs","showIndex","clickDimension","state","setState","onRowClicked","headers","getTableHeaders","rows","tableRows","getTableRows","cardContentRef","useRef","height","useResizeObserver","pageSize","useTableGetRowsPerPage","handleUpdateEmbeddableState","useCallback","newState","prevState","handleCustomDownload","onDownload","data","handleRowIndexClick","rowIndex","rowDimensionValue","_a","useEffect","handleSortChange","newSort","currentPage","jsx","ChartCard","TablePaginated","i18n","getTableTotalPages","newPage"],"mappings":"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"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { j as u, q as j } from "./Color.type.emb-CGyFSpIN.js";
|
|
2
|
+
import { useTheme as x } from "@embeddable.com/react";
|
|
3
|
+
import { a as O, r as S, i as G } from "./component.inputs.constants-MAjey7Me.js";
|
|
4
|
+
import { C as _ } from "./ChartCard-Be7mHyBp.js";
|
|
5
|
+
import { useRef as B } from "react";
|
|
6
|
+
import { u as c } from "./charts.fillGaps.hooks-C7KsWcZb.js";
|
|
7
|
+
import { g as f } from "./formatter.utils-BeLScsYW.js";
|
|
8
|
+
import { u as k } from "./tables.hooks-BQdyUxau.js";
|
|
9
|
+
const N = (e, t) => {
|
|
10
|
+
const o = f(t);
|
|
11
|
+
return e.measures.map((s) => {
|
|
12
|
+
var a, n;
|
|
13
|
+
return {
|
|
14
|
+
key: s.name,
|
|
15
|
+
label: o.dimensionOrMeasureTitle(s),
|
|
16
|
+
showAsPercentage: !!((a = s.inputs) != null && a.showAsPercentage),
|
|
17
|
+
percentageDecimalPlaces: ((n = s.inputs) == null ? void 0 : n.decimalPlaces) ?? 1,
|
|
18
|
+
accessor: (r) => r[s.name] == null ? e.displayNullAs : o.data(s, r[s.name])
|
|
19
|
+
};
|
|
20
|
+
});
|
|
21
|
+
}, d = (e, t) => {
|
|
22
|
+
const o = f(t);
|
|
23
|
+
return {
|
|
24
|
+
key: e.dimension.name,
|
|
25
|
+
label: o.dimensionOrMeasureTitle(e.dimension),
|
|
26
|
+
formatValue: (s) => o.data(e.dimension, s)
|
|
27
|
+
};
|
|
28
|
+
}, W = (e) => e.filter((t) => {
|
|
29
|
+
var o;
|
|
30
|
+
return (o = t.inputs) == null ? void 0 : o.showColumnTotal;
|
|
31
|
+
}).map((t) => t.name), q = (e) => e.filter((t) => {
|
|
32
|
+
var o;
|
|
33
|
+
return (o = t.inputs) == null ? void 0 : o.showRowTotal;
|
|
34
|
+
}).map((t) => t.name), z = (e) => {
|
|
35
|
+
var m;
|
|
36
|
+
const t = x();
|
|
37
|
+
O(t);
|
|
38
|
+
const { title: o, description: s, tooltip: a } = S(e), {
|
|
39
|
+
measures: n,
|
|
40
|
+
rowDimension: r,
|
|
41
|
+
columnDimension: i,
|
|
42
|
+
displayNullAs: p,
|
|
43
|
+
columnWidth: T,
|
|
44
|
+
firstColumnWidth: v,
|
|
45
|
+
hideMenu: h
|
|
46
|
+
} = e, w = Array.from(
|
|
47
|
+
new Set((e.results.data ?? []).filter(Boolean).map((l) => l[i.name]))
|
|
48
|
+
), P = Array.from(
|
|
49
|
+
new Set((e.results.data ?? []).filter(Boolean).map((l) => l[r.name]))
|
|
50
|
+
), g = c({
|
|
51
|
+
results: e.results,
|
|
52
|
+
dimension: i
|
|
53
|
+
}), F = c({
|
|
54
|
+
results: g,
|
|
55
|
+
dimension: r
|
|
56
|
+
}), C = k({
|
|
57
|
+
results: F,
|
|
58
|
+
columnOrder: w,
|
|
59
|
+
rowOrder: P,
|
|
60
|
+
columnDimension: i,
|
|
61
|
+
rowDimension: r,
|
|
62
|
+
measures: n
|
|
63
|
+
}), b = B(null), D = N({ measures: n, displayNullAs: p }, t), R = d({ dimension: r }, t), y = d({ dimension: i }, t), M = W(n), A = q(n);
|
|
64
|
+
return /* @__PURE__ */ u.jsx(
|
|
65
|
+
_,
|
|
66
|
+
{
|
|
67
|
+
ref: b,
|
|
68
|
+
title: o,
|
|
69
|
+
description: s,
|
|
70
|
+
tooltip: a,
|
|
71
|
+
data: e.results,
|
|
72
|
+
dimensionsAndMeasures: [r, i, ...n],
|
|
73
|
+
errorMessage: (m = e.results) == null ? void 0 : m.error,
|
|
74
|
+
hideMenu: h,
|
|
75
|
+
children: /* @__PURE__ */ u.jsx(
|
|
76
|
+
j,
|
|
77
|
+
{
|
|
78
|
+
firstColumnWidth: v,
|
|
79
|
+
columnWidth: T,
|
|
80
|
+
totalLabel: G.t("charts.pivotTable.total"),
|
|
81
|
+
data: C,
|
|
82
|
+
measures: D,
|
|
83
|
+
rowDimension: R,
|
|
84
|
+
columnDimension: y,
|
|
85
|
+
columnTotalsFor: M,
|
|
86
|
+
rowTotalsFor: A
|
|
87
|
+
}
|
|
88
|
+
)
|
|
89
|
+
}
|
|
90
|
+
);
|
|
91
|
+
}, U = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
92
|
+
__proto__: null,
|
|
93
|
+
default: z
|
|
94
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
95
|
+
export {
|
|
96
|
+
z as P,
|
|
97
|
+
U as i
|
|
98
|
+
};
|
|
99
|
+
//# sourceMappingURL=index-CRxhm_xI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-CRxhm_xI.js","sources":["../src/components/charts/tables/PivotTablePro/PivotPro.utils.ts","../src/components/charts/tables/PivotTablePro/index.tsx"],"sourcesContent":["import { Dimension, Measure } from '@embeddable.com/core';\nimport { Theme } from '../../../../theme/theme.types';\nimport { PivotTableProps } from '@embeddable.com/remarkable-ui';\nimport { getThemeFormatter } from '../../../../theme/formatter/formatter.utils';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport const getPivotMeasures = (\n props: { measures: Measure[]; displayNullAs?: string },\n theme: Theme,\n): PivotTableProps<any>['measures'] => {\n const themeFormatter = getThemeFormatter(theme);\n\n return props.measures.map((measure) => {\n return {\n key: measure.name,\n label: themeFormatter.dimensionOrMeasureTitle(measure),\n showAsPercentage: Boolean(measure.inputs?.showAsPercentage),\n percentageDecimalPlaces: measure.inputs?.decimalPlaces ?? 1,\n accessor: (row) => {\n const value = row[measure.name];\n\n return value == null\n ? props.displayNullAs\n : themeFormatter.data(measure, row[measure.name]);\n },\n };\n });\n};\n\nexport const getPivotDimension = (\n props: { dimension: Dimension },\n theme: Theme,\n): PivotTableProps<any>['rowDimension' | 'columnDimension'] => {\n const themeFormatter = getThemeFormatter(theme);\n\n return {\n key: props.dimension.name,\n label: themeFormatter.dimensionOrMeasureTitle(props.dimension),\n formatValue: (value: string) => themeFormatter.data(props.dimension, value),\n };\n};\n\nexport const getPivotColumnTotalsFor = (\n measures: Measure[],\n): PivotTableProps<any>['columnTotalsFor'] | undefined => {\n return measures.filter((m) => m.inputs?.showColumnTotal).map((m) => m.name);\n};\n\nexport const getPivotRowTotalsFor = (\n measures: Measure[],\n): PivotTableProps<any>['rowTotalsFor'] | undefined => {\n return measures.filter((m) => m.inputs?.showRowTotal).map((m) => m.name);\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { i18n, i18nSetup } from '../../../../theme/i18n/i18n';\nimport { ChartCard, ChartCardHeaderProps } from '../../shared/ChartCard/ChartCard';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { DataResponse, Dimension, Measure } from '@embeddable.com/core';\nimport { PivotTable } from '@embeddable.com/remarkable-ui';\nimport { useRef } from 'react';\nimport { useFillGaps } from '../../charts.fillGaps.hooks';\nimport {\n getPivotColumnTotalsFor,\n getPivotDimension,\n getPivotMeasures,\n getPivotRowTotalsFor,\n} from './PivotPro.utils';\nimport { useGetTableSortedResults } from '../tables.hooks';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\ntype PivotTableProProps = {\n results: DataResponse;\n measures: Measure[];\n rowDimension: Dimension;\n columnDimension: Dimension;\n displayNullAs?: string;\n columnWidth?: number;\n firstColumnWidth?: number;\n} & ChartCardHeaderProps;\n\nconst PivotTablePro = (props: PivotTableProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { title, description, tooltip } = resolveI18nProps(props);\n const {\n measures,\n rowDimension,\n columnDimension,\n displayNullAs,\n columnWidth,\n firstColumnWidth,\n hideMenu,\n } = props;\n\n const columnOrder = Array.from(\n new Set((props.results.data ?? []).filter(Boolean).map((d) => d[columnDimension.name])),\n );\n\n const rowOrder = Array.from(\n new Set((props.results.data ?? []).filter(Boolean).map((d) => d[rowDimension.name])),\n );\n\n // Fill gaps for the column dimension\n const resultsColumnDimensionFillGaps = useFillGaps({\n results: props.results,\n dimension: columnDimension,\n });\n\n // Fill gaps for the row dimension\n const resultsRowColumnDimensionFillGaps = useFillGaps({\n results: resultsColumnDimensionFillGaps,\n dimension: rowDimension,\n });\n\n const results = useGetTableSortedResults({\n results: resultsRowColumnDimensionFillGaps,\n columnOrder,\n rowOrder,\n columnDimension,\n rowDimension,\n measures,\n });\n\n const cardContentRef = useRef<HTMLDivElement>(null);\n\n const pivotMeasures = getPivotMeasures({ measures, displayNullAs }, theme);\n const pivotRowDimension = getPivotDimension({ dimension: rowDimension }, theme);\n const pivotColumnDimension = getPivotDimension({ dimension: columnDimension }, theme);\n const pivotColumnTotalsFor = getPivotColumnTotalsFor(measures);\n const pivotRowTotalsFor = getPivotRowTotalsFor(measures);\n return (\n <ChartCard\n ref={cardContentRef}\n title={title}\n description={description}\n tooltip={tooltip}\n data={props.results}\n dimensionsAndMeasures={[rowDimension, columnDimension, ...measures]}\n errorMessage={props.results?.error}\n hideMenu={hideMenu}\n >\n <PivotTable\n firstColumnWidth={firstColumnWidth}\n columnWidth={columnWidth}\n totalLabel={i18n.t('charts.pivotTable.total')}\n data={results}\n measures={pivotMeasures}\n rowDimension={pivotRowDimension}\n columnDimension={pivotColumnDimension}\n columnTotalsFor={pivotColumnTotalsFor}\n rowTotalsFor={pivotRowTotalsFor}\n />\n </ChartCard>\n );\n};\n\nexport default PivotTablePro;\n"],"names":["getPivotMeasures","props","theme","themeFormatter","getThemeFormatter","measure","_a","_b","row","getPivotDimension","value","getPivotColumnTotalsFor","measures","m","getPivotRowTotalsFor","PivotTablePro","useTheme","i18nSetup","title","description","tooltip","resolveI18nProps","rowDimension","columnDimension","displayNullAs","columnWidth","firstColumnWidth","hideMenu","columnOrder","d","rowOrder","resultsColumnDimensionFillGaps","useFillGaps","resultsRowColumnDimensionFillGaps","results","useGetTableSortedResults","cardContentRef","useRef","pivotMeasures","pivotRowDimension","pivotColumnDimension","pivotColumnTotalsFor","pivotRowTotalsFor","jsx","ChartCard","PivotTable","i18n"],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { m as T, j as t, B as w } from "./Color.type.emb-CGyFSpIN.js";
|
|
2
|
+
import { useTheme as z } from "@embeddable.com/react";
|
|
3
|
+
import { a as G, r as _ } from "./component.inputs.constants-MAjey7Me.js";
|
|
4
|
+
import { C as v } from "./ChartCard-Be7mHyBp.js";
|
|
5
|
+
import { b as H, a as O } from "./bars.utils-Ccwx-tAf.js";
|
|
6
|
+
import { u as R } from "./charts.fillGaps.hooks-C7KsWcZb.js";
|
|
7
|
+
import { C as k } from "./ChartGranularitySelectField-D-H0yKZH.js";
|
|
8
|
+
const D = (o) => {
|
|
9
|
+
var d, h;
|
|
10
|
+
const e = z();
|
|
11
|
+
G(e);
|
|
12
|
+
const { tooltip: i, description: n, title: l, xAxisLabel: p, yAxisLabel: c } = _(o), {
|
|
13
|
+
yAxis: r,
|
|
14
|
+
hideMenu: x,
|
|
15
|
+
groupBy: m,
|
|
16
|
+
measure: a,
|
|
17
|
+
reverseYAxis: g,
|
|
18
|
+
showLegend: C,
|
|
19
|
+
showLogarithmicScale: f,
|
|
20
|
+
showTooltips: b,
|
|
21
|
+
showTotalLabels: y,
|
|
22
|
+
showValueLabels: B,
|
|
23
|
+
xAxisRangeMax: M,
|
|
24
|
+
xAxisRangeMin: j,
|
|
25
|
+
setGranularity: A,
|
|
26
|
+
onBarClicked: S
|
|
27
|
+
} = o, s = R({
|
|
28
|
+
results: o.results,
|
|
29
|
+
dimension: r
|
|
30
|
+
}), u = H(
|
|
31
|
+
{
|
|
32
|
+
data: s.data,
|
|
33
|
+
dimension: r,
|
|
34
|
+
groupDimension: m,
|
|
35
|
+
measure: a
|
|
36
|
+
},
|
|
37
|
+
e
|
|
38
|
+
), L = T(
|
|
39
|
+
O(
|
|
40
|
+
{ measures: [a], horizontal: !0, onBarClicked: S, data: u, dimension: r },
|
|
41
|
+
e
|
|
42
|
+
),
|
|
43
|
+
((h = (d = e.charts) == null ? void 0 : d.barChartGroupedHorizontalPro) == null ? void 0 : h.options) || {}
|
|
44
|
+
), P = !l && !n && !i;
|
|
45
|
+
return /* @__PURE__ */ t.jsxs(
|
|
46
|
+
v,
|
|
47
|
+
{
|
|
48
|
+
data: s,
|
|
49
|
+
dimensionsAndMeasures: [a, r, m],
|
|
50
|
+
errorMessage: s.error,
|
|
51
|
+
description: n,
|
|
52
|
+
title: l,
|
|
53
|
+
tooltip: i,
|
|
54
|
+
hideMenu: x,
|
|
55
|
+
children: [
|
|
56
|
+
/* @__PURE__ */ t.jsx(
|
|
57
|
+
k,
|
|
58
|
+
{
|
|
59
|
+
hasMarginTop: P,
|
|
60
|
+
dimension: r,
|
|
61
|
+
onChange: A
|
|
62
|
+
}
|
|
63
|
+
),
|
|
64
|
+
/* @__PURE__ */ t.jsx(
|
|
65
|
+
w,
|
|
66
|
+
{
|
|
67
|
+
data: u,
|
|
68
|
+
showLegend: C,
|
|
69
|
+
showTooltips: b,
|
|
70
|
+
showValueLabels: B,
|
|
71
|
+
showLogarithmicScale: f,
|
|
72
|
+
xAxisLabel: p,
|
|
73
|
+
yAxisLabel: c,
|
|
74
|
+
reverseYAxis: g,
|
|
75
|
+
xAxisRangeMin: j,
|
|
76
|
+
xAxisRangeMax: M,
|
|
77
|
+
showTotalLabels: y,
|
|
78
|
+
options: L,
|
|
79
|
+
horizontal: !0
|
|
80
|
+
}
|
|
81
|
+
)
|
|
82
|
+
]
|
|
83
|
+
}
|
|
84
|
+
);
|
|
85
|
+
}, K = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
86
|
+
__proto__: null,
|
|
87
|
+
default: D
|
|
88
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
89
|
+
export {
|
|
90
|
+
D as B,
|
|
91
|
+
K as i
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=index-CzJiHUjz.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-CzJiHUjz.js","sources":["../src/components/charts/bars/BarChartGroupedHorizontalPro/index.tsx"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { ChartCard, ChartCardHeaderProps } from '../../shared/ChartCard/ChartCard';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { BarChart } from '@embeddable.com/remarkable-ui';\nimport { getBarChartProOptions, getBarStackedChartProData } from '../bars.utils';\nimport { mergician } from 'mergician';\nimport { DataResponse, Dimension, Granularity, Measure } from '@embeddable.com/core';\nimport { useFillGaps } from '../../charts.fillGaps.hooks';\nimport { ChartGranularitySelectField } from '../../shared/ChartGranularitySelectField/ChartGranularitySelectField';\n\ntype BarChartGroupedHorizontalProProps = {\n groupBy: Dimension;\n measure: Measure;\n results: DataResponse;\n reverseYAxis?: boolean;\n showLegend?: boolean;\n showLogarithmicScale?: boolean;\n showTooltips?: boolean;\n showTotalLabels?: boolean;\n showValueLabels?: boolean;\n yAxis: Dimension;\n xAxisLabel?: string;\n yAxisLabel?: string;\n xAxisRangeMax?: number;\n xAxisRangeMin?: number;\n setGranularity: (granularity: Granularity) => void;\n onBarClicked?: (args: {\n axisDimensionValue: string | null;\n groupingDimensionValue: string | null;\n }) => void;\n} & ChartCardHeaderProps;\n\nconst BarChartGroupedHorizontalPro = (props: BarChartGroupedHorizontalProProps) => {\n const theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { tooltip, description, title, xAxisLabel, yAxisLabel } = resolveI18nProps(props);\n\n const {\n yAxis,\n hideMenu,\n groupBy,\n measure,\n reverseYAxis,\n showLegend,\n showLogarithmicScale,\n showTooltips,\n showTotalLabels,\n showValueLabels,\n xAxisRangeMax,\n xAxisRangeMin,\n setGranularity,\n onBarClicked,\n } = props;\n\n const results = useFillGaps({\n results: props.results,\n dimension: yAxis,\n });\n\n const data = getBarStackedChartProData(\n {\n data: results.data,\n dimension: yAxis,\n groupDimension: groupBy,\n measure,\n },\n theme,\n );\n\n const options = mergician(\n getBarChartProOptions(\n { measures: [measure], horizontal: true, onBarClicked, data, dimension: yAxis },\n theme,\n ),\n theme.charts?.barChartGroupedHorizontalPro?.options || {},\n );\n\n const granularitySelectorHasMarginTop = !title && !description && !tooltip;\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[measure, yAxis, groupBy]}\n errorMessage={results.error}\n description={description}\n title={title}\n tooltip={tooltip}\n hideMenu={hideMenu}\n >\n <ChartGranularitySelectField\n hasMarginTop={granularitySelectorHasMarginTop}\n dimension={yAxis}\n onChange={setGranularity}\n />\n <BarChart\n data={data}\n showLegend={showLegend}\n showTooltips={showTooltips}\n showValueLabels={showValueLabels}\n showLogarithmicScale={showLogarithmicScale}\n xAxisLabel={xAxisLabel}\n yAxisLabel={yAxisLabel}\n reverseYAxis={reverseYAxis}\n xAxisRangeMin={xAxisRangeMin}\n xAxisRangeMax={xAxisRangeMax}\n showTotalLabels={showTotalLabels}\n options={options}\n horizontal\n />\n </ChartCard>\n );\n};\n\nexport default BarChartGroupedHorizontalPro;\n"],"names":["BarChartGroupedHorizontalPro","props","theme","useTheme","i18nSetup","tooltip","description","title","xAxisLabel","yAxisLabel","resolveI18nProps","yAxis","hideMenu","groupBy","measure","reverseYAxis","showLegend","showLogarithmicScale","showTooltips","showTotalLabels","showValueLabels","xAxisRangeMax","xAxisRangeMin","setGranularity","onBarClicked","results","useFillGaps","data","getBarStackedChartProData","options","mergician","getBarChartProOptions","_b","_a","granularitySelectorHasMarginTop","jsxs","ChartCard","jsx","ChartGranularitySelectField","BarChart"],"mappings":";;;;;;;AAkCA,MAAMA,IAA+B,CAACC,MAA6C;;AACjF,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,OAAAU;AAAA,IACA,UAAAC;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,eAAAC;AAAA,IACA,eAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,cAAAC;AAAA,EAAA,IACEvB,GAEEwB,IAAUC,EAAY;AAAA,IAC1B,SAASzB,EAAM;AAAA,IACf,WAAWU;AAAA,EAAA,CACZ,GAEKgB,IAAOC;AAAA,IACX;AAAA,MACE,MAAMH,EAAQ;AAAA,MACd,WAAWd;AAAA,MACX,gBAAgBE;AAAA,MAChB,SAAAC;AAAA,IAAA;AAAA,IAEFZ;AAAA,EAAA,GAGI2B,IAAUC;AAAA,IACdC;AAAA,MACE,EAAE,UAAU,CAACjB,CAAO,GAAG,YAAY,IAAM,cAAAU,GAAc,MAAAG,GAAM,WAAWhB,EAAA;AAAA,MACxET;AAAA,IAAA;AAAA,MAEF8B,KAAAC,IAAA/B,EAAM,WAAN,gBAAA+B,EAAc,iCAAd,gBAAAD,EAA4C,YAAW,CAAA;AAAA,EAAC,GAGpDE,IAAkC,CAAC3B,KAAS,CAACD,KAAe,CAACD;AAEnE,SACE8B,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAMX;AAAA,MACN,uBAAuB,CAACX,GAASH,GAAOE,CAAO;AAAA,MAC/C,cAAcY,EAAQ;AAAA,MACtB,aAAAnB;AAAA,MACA,OAAAC;AAAA,MACA,SAAAF;AAAA,MACA,UAAAO;AAAA,MAEA,UAAA;AAAA,QAAAyB,gBAAAA,EAAAA;AAAAA,UAACC;AAAA,UAAA;AAAA,YACC,cAAcJ;AAAA,YACd,WAAWvB;AAAA,YACX,UAAUY;AAAA,UAAA;AAAA,QAAA;AAAA,QAEZc,gBAAAA,EAAAA;AAAAA,UAACE;AAAA,UAAA;AAAA,YACC,MAAAZ;AAAA,YACA,YAAAX;AAAA,YACA,cAAAE;AAAA,YACA,iBAAAE;AAAA,YACA,sBAAAH;AAAA,YACA,YAAAT;AAAA,YACA,YAAAC;AAAA,YACA,cAAAM;AAAA,YACA,eAAAO;AAAA,YACA,eAAAD;AAAA,YACA,iBAAAF;AAAA,YACA,SAAAU;AAAA,YACA,YAAU;AAAA,UAAA;AAAA,QAAA;AAAA,MACZ;AAAA,IAAA;AAAA,EAAA;AAGN;;;;"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { i as g, j as i, S as v } from "./Color.type.emb-CGyFSpIN.js";
|
|
2
|
+
import { useTheme as f } from "@embeddable.com/react";
|
|
3
|
+
import { g as h, u as y, c as b } from "./dates.utils-BF32dTLi.js";
|
|
4
|
+
import { e as P, a as M, r as S, i as j } from "./component.inputs.constants-MAjey7Me.js";
|
|
5
|
+
import { E as C } from "./EditorCard-C8PKNLWT.js";
|
|
6
|
+
import { useMemo as O, useEffect as R } from "react";
|
|
7
|
+
/**
|
|
8
|
+
* @license @tabler/icons-react v3.36.1 - MIT
|
|
9
|
+
*
|
|
10
|
+
* This source code is licensed under the MIT license.
|
|
11
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
12
|
+
*/
|
|
13
|
+
const k = [["path", { d: "M11.795 21h-6.795a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v4", key: "svg-0" }], ["path", { d: "M14 18a4 4 0 1 0 8 0a4 4 0 1 0 -8 0", key: "svg-1" }], ["path", { d: "M15 3v4", key: "svg-2" }], ["path", { d: "M7 3v4", key: "svg-3" }], ["path", { d: "M3 11h16", key: "svg-4" }], ["path", { d: "M18 16.496v1.504l1 1", key: "svg-5" }]], x = g("outline", "calendar-time", "CalendarTime", k), _ = (e, a) => !e || a.some((o) => o.value === e), D = (e, a) => e.map((o) => ({
|
|
14
|
+
rightLabel: a ? h(o.getRange(a), o.dateFormat) : "",
|
|
15
|
+
value: o.value,
|
|
16
|
+
label: P(o.label)
|
|
17
|
+
})), F = (e) => {
|
|
18
|
+
const a = f();
|
|
19
|
+
M(a);
|
|
20
|
+
const { description: o, placeholder: l, title: c, tooltip: d } = S(e), { comparisonPeriod: t, onChange: s } = e, r = a.defaults.comparisonPeriodsOptions, n = O(
|
|
21
|
+
() => _(t, r),
|
|
22
|
+
[t, r]
|
|
23
|
+
);
|
|
24
|
+
R(() => {
|
|
25
|
+
n || s(void 0);
|
|
26
|
+
}, [n, s]);
|
|
27
|
+
const { dayjsLocaleReady: m } = y(), p = b(
|
|
28
|
+
e.primaryDateRange,
|
|
29
|
+
a.defaults.dateRangesOptions
|
|
30
|
+
);
|
|
31
|
+
if (!m)
|
|
32
|
+
return null;
|
|
33
|
+
const u = D(
|
|
34
|
+
r,
|
|
35
|
+
p
|
|
36
|
+
);
|
|
37
|
+
return /* @__PURE__ */ i.jsx(C, { title: c, description: o, tooltip: d, children: /* @__PURE__ */ i.jsx(
|
|
38
|
+
v,
|
|
39
|
+
{
|
|
40
|
+
startIcon: x,
|
|
41
|
+
clearable: !0,
|
|
42
|
+
placeholder: l,
|
|
43
|
+
value: n ? t : void 0,
|
|
44
|
+
onChange: s,
|
|
45
|
+
options: u,
|
|
46
|
+
noOptionsMessage: j.t("common.noOptionsAvailable"),
|
|
47
|
+
avoidCollisions: !1
|
|
48
|
+
}
|
|
49
|
+
) });
|
|
50
|
+
}, N = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
51
|
+
__proto__: null,
|
|
52
|
+
default: F
|
|
53
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
54
|
+
export {
|
|
55
|
+
F as D,
|
|
56
|
+
_ as a,
|
|
57
|
+
D as g,
|
|
58
|
+
N as i
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=index-D4RtNAm0.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-D4RtNAm0.js","sources":["../node_modules/@tabler/icons-react/dist/esm/icons/IconCalendarTime.mjs","../src/components/editors/ComparisonPeriodSelectFieldPro/ComparisonPeriodSelectFieldPro.utils.ts","../src/components/editors/ComparisonPeriodSelectFieldPro/index.tsx"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.36.1 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M11.795 21h-6.795a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v4\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M14 18a4 4 0 1 0 8 0a4 4 0 1 0 -8 0\", \"key\": \"svg-1\" }], [\"path\", { \"d\": \"M15 3v4\", \"key\": \"svg-2\" }], [\"path\", { \"d\": \"M7 3v4\", \"key\": \"svg-3\" }], [\"path\", { \"d\": \"M3 11h16\", \"key\": \"svg-4\" }], [\"path\", { \"d\": \"M18 16.496v1.504l1 1\", \"key\": \"svg-5\" }]];\nconst IconCalendarTime = createReactComponent(\"outline\", \"calendar-time\", \"CalendarTime\", __iconNode);\n\nexport { __iconNode, IconCalendarTime as default };\n//# sourceMappingURL=IconCalendarTime.mjs.map\n","import { SelectListOptionProps } from '@embeddable.com/remarkable-ui';\nimport { TimeRange } from '@embeddable.com/core';\nimport { ComparisonPeriodSelectFieldProOption } from './ComparisonPeriodSelectFieldPro.types';\nimport { resolveI18nString } from '../../component.utils';\nimport { getTimeRangeLabel } from '../dates/dates.utils';\n\n// Checks if the comparison period type is available in the embeddable types\nexport const isComparisonPeriodAvailable = (\n option: string | undefined,\n comparisonPeriodSelectFieldProOptions: ComparisonPeriodSelectFieldProOption[],\n): boolean => {\n return !option || comparisonPeriodSelectFieldProOptions.some((opt) => opt.value === option);\n};\n\nexport const getComparisonPeriodSelectFieldProOptions = (\n comparisonPeriodSelectFieldProOptions: ComparisonPeriodSelectFieldProOption[],\n toCompareTimeRange: TimeRange,\n): SelectListOptionProps[] => {\n return comparisonPeriodSelectFieldProOptions.map((option) => {\n return {\n rightLabel: toCompareTimeRange\n ? getTimeRangeLabel(option.getRange(toCompareTimeRange), option.dateFormat)\n : '',\n value: option.value,\n label: resolveI18nString(option.label),\n };\n });\n};\n","import { useTheme } from '@embeddable.com/react';\nimport { SingleSelectField } from '@embeddable.com/remarkable-ui';\nimport { Theme } from '../../../theme/theme.types';\nimport { useLoadDayjsLocale } from '../../../utils.ts/date.utils';\nimport { TimeRange } from '@embeddable.com/core';\nimport { resolveI18nProps } from '../../component.utils';\nimport { EditorCard, EditorCardHeaderProps } from '../shared/EditorCard/EditorCard';\nimport { IconCalendarTime } from '@tabler/icons-react';\nimport { i18n, i18nSetup } from '../../../theme/i18n/i18n';\nimport {\n getComparisonPeriodSelectFieldProOptions,\n isComparisonPeriodAvailable,\n} from './ComparisonPeriodSelectFieldPro.utils';\nimport { useEffect, useMemo } from 'react';\nimport { getTimeRangeFromPresets } from '../dates/dates.utils';\n\ntype DateComparisonSelectFieldPro = {\n placeholder?: string;\n primaryDateRange?: TimeRange;\n comparisonPeriod?: string;\n onChange: (newComparisonPeriod?: string) => void;\n} & EditorCardHeaderProps;\n\nconst DateComparisonSelectFieldPro = (props: DateComparisonSelectFieldPro) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { description, placeholder, title, tooltip } = resolveI18nProps(props);\n const { comparisonPeriod, onChange } = props;\n\n const comparisonPeriodOptions = theme.defaults.comparisonPeriodsOptions;\n\n const comparisonPeriodAvailable = useMemo(\n () => isComparisonPeriodAvailable(comparisonPeriod, comparisonPeriodOptions),\n [comparisonPeriod, comparisonPeriodOptions],\n );\n\n // If the current comparison period is not available, reset the field\n useEffect(() => {\n if (!comparisonPeriodAvailable) {\n onChange(undefined);\n }\n }, [comparisonPeriodAvailable, onChange]);\n\n const { dayjsLocaleReady } = useLoadDayjsLocale();\n\n // Obtain the actual range for the selected primaryDateRange\n const primaryDateRange = getTimeRangeFromPresets(\n props.primaryDateRange,\n theme.defaults.dateRangesOptions,\n );\n\n if (!dayjsLocaleReady) {\n return null;\n }\n\n const options = getComparisonPeriodSelectFieldProOptions(\n comparisonPeriodOptions,\n primaryDateRange,\n );\n\n return (\n <EditorCard title={title} description={description} tooltip={tooltip}>\n <SingleSelectField\n startIcon={IconCalendarTime}\n clearable\n placeholder={placeholder}\n value={comparisonPeriodAvailable ? comparisonPeriod : undefined}\n onChange={onChange}\n options={options}\n noOptionsMessage={i18n.t('common.noOptionsAvailable')}\n avoidCollisions={false}\n />\n </EditorCard>\n );\n};\n\nexport default DateComparisonSelectFieldPro;\n"],"names":["__iconNode","IconCalendarTime","createReactComponent","isComparisonPeriodAvailable","option","comparisonPeriodSelectFieldProOptions","opt","getComparisonPeriodSelectFieldProOptions","toCompareTimeRange","getTimeRangeLabel","resolveI18nString","DateComparisonSelectFieldPro","props","theme","useTheme","i18nSetup","description","placeholder","title","tooltip","resolveI18nProps","comparisonPeriod","onChange","comparisonPeriodOptions","comparisonPeriodAvailable","useMemo","useEffect","dayjsLocaleReady","useLoadDayjsLocale","primaryDateRange","getTimeRangeFromPresets","options","jsx","EditorCard","SingleSelectField","i18n"],"mappings":";;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa,CAAC,CAAC,QAAQ,EAAE,GAAK,2EAA2E,KAAO,SAAS,GAAG,CAAC,QAAQ,EAAE,GAAK,uCAAuC,KAAO,SAAS,GAAG,CAAC,QAAQ,EAAE,GAAK,WAAW,KAAO,QAAO,CAAE,GAAG,CAAC,QAAQ,EAAE,GAAK,UAAU,KAAO,SAAS,GAAG,CAAC,QAAQ,EAAE,GAAK,YAAY,KAAO,SAAS,GAAG,CAAC,QAAQ,EAAE,GAAK,wBAAwB,KAAO,QAAO,CAAE,CAAC,GACzYC,IAAmBC,EAAqB,WAAW,iBAAiB,gBAAgBF,CAAU,GCHvFG,IAA8B,CACzCC,GACAC,MAEO,CAACD,KAAUC,EAAsC,KAAK,CAACC,MAAQA,EAAI,UAAUF,CAAM,GAG/EG,IAA2C,CACtDF,GACAG,MAEOH,EAAsC,IAAI,CAACD,OACzC;AAAA,EACL,YAAYI,IACRC,EAAkBL,EAAO,SAASI,CAAkB,GAAGJ,EAAO,UAAU,IACxE;AAAA,EACJ,OAAOA,EAAO;AAAA,EACd,OAAOM,EAAkBN,EAAO,KAAK;AAAA,EAExC,GCHGO,IAA+B,CAACC,MAAwC;AAC5E,QAAMC,IAAeC,EAAA;AACrB,EAAAC,EAAUF,CAAK;AAEf,QAAM,EAAE,aAAAG,GAAa,aAAAC,GAAa,OAAAC,GAAO,SAAAC,EAAA,IAAYC,EAAiBR,CAAK,GACrE,EAAE,kBAAAS,GAAkB,UAAAC,EAAA,IAAaV,GAEjCW,IAA0BV,EAAM,SAAS,0BAEzCW,IAA4BC;AAAA,IAChC,MAAMtB,EAA4BkB,GAAkBE,CAAuB;AAAA,IAC3E,CAACF,GAAkBE,CAAuB;AAAA,EAAA;AAI5C,EAAAG,EAAU,MAAM;AACd,IAAKF,KACHF,EAAS,MAAS;AAAA,EAEtB,GAAG,CAACE,GAA2BF,CAAQ,CAAC;AAExC,QAAM,EAAE,kBAAAK,EAAA,IAAqBC,EAAA,GAGvBC,IAAmBC;AAAA,IACvBlB,EAAM;AAAA,IACNC,EAAM,SAAS;AAAA,EAAA;AAGjB,MAAI,CAACc;AACH,WAAO;AAGT,QAAMI,IAAUxB;AAAA,IACdgB;AAAA,IACAM;AAAA,EAAA;AAGF,SACEG,gBAAAA,EAAAA,IAACC,GAAA,EAAW,OAAAf,GAAc,aAAAF,GAA0B,SAAAG,GAClD,UAAAa,gBAAAA,EAAAA;AAAAA,IAACE;AAAA,IAAA;AAAA,MACC,WAAWjC;AAAA,MACX,WAAS;AAAA,MACT,aAAAgB;AAAA,MACA,OAAOO,IAA4BH,IAAmB;AAAA,MACtD,UAAAC;AAAA,MACA,SAAAS;AAAA,MACA,kBAAkBI,EAAK,EAAE,2BAA2B;AAAA,MACpD,iBAAiB;AAAA,IAAA;AAAA,EAAA,GAErB;AAEJ;;;;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { j as l, M as O } from "./Color.type.emb-CGyFSpIN.js";
|
|
2
|
+
import { g as b } from "./formatter.utils-BeLScsYW.js";
|
|
3
|
+
import { useTheme as j } from "@embeddable.com/react";
|
|
4
|
+
import { E as v } from "./EditorCard-C8PKNLWT.js";
|
|
5
|
+
import { r as x, i as F } from "./component.inputs.constants-MAjey7Me.js";
|
|
6
|
+
const _ = 200, P = (n) => {
|
|
7
|
+
var i, r;
|
|
8
|
+
const m = j(), c = b(m), { tooltip: d, title: u, description: p, placeholder: h } = x(n), { dimension: t, optionalSecondDimension: a, results: o, selectedValues: g, setSearchValue: f, onChange: s } = n, S = ((i = o.data) == null ? void 0 : i.map((e) => ({
|
|
9
|
+
value: a ? e[a.name] : e[t.name],
|
|
10
|
+
label: c.data(t, e[t.name])
|
|
11
|
+
}))) ?? [], M = !o.isLoading && (((r = o.data) == null ? void 0 : r.length) ?? 0) === 0;
|
|
12
|
+
return /* @__PURE__ */ l.jsx(v, { title: u, description: p, tooltip: d, children: /* @__PURE__ */ l.jsx(
|
|
13
|
+
O,
|
|
14
|
+
{
|
|
15
|
+
isClearable: !0,
|
|
16
|
+
isSearchable: !0,
|
|
17
|
+
isLoading: o.isLoading,
|
|
18
|
+
values: g ?? [],
|
|
19
|
+
options: S,
|
|
20
|
+
placeholder: h,
|
|
21
|
+
noOptionsMessage: M ? F.t("common.noOptionsFound") : void 0,
|
|
22
|
+
onChange: (e) => s == null ? void 0 : s(e),
|
|
23
|
+
onSearch: f,
|
|
24
|
+
avoidCollisions: !1
|
|
25
|
+
}
|
|
26
|
+
) });
|
|
27
|
+
}, I = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
28
|
+
__proto__: null,
|
|
29
|
+
MAX_OPTIONS: _,
|
|
30
|
+
default: P
|
|
31
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
32
|
+
export {
|
|
33
|
+
_ as M,
|
|
34
|
+
P as a,
|
|
35
|
+
I as i
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=index-DH1xtNOE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-DH1xtNOE.js","sources":["../src/components/editors/MultiSelectFieldPro/index.tsx"],"sourcesContent":["import { DataResponse, Dimension } from '@embeddable.com/core';\nimport { getThemeFormatter } from '../../../theme/formatter/formatter.utils';\nimport { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../theme/theme.types';\nimport { EditorCard, EditorCardHeaderProps } from '../shared/EditorCard/EditorCard';\nimport { resolveI18nProps } from '../../component.utils';\nimport { i18n } from '../../../theme/i18n/i18n';\nimport { MultiSelectField } from '@embeddable.com/remarkable-ui';\n\nexport const MAX_OPTIONS = 200;\n\ntype MultiSelectFieldProProps = {\n dimension: Dimension;\n optionalSecondDimension?: Dimension;\n placeholder?: string;\n results: DataResponse;\n selectedValues?: string[];\n maxOptions?: number;\n setSearchValue?: (search: string) => void;\n onChange?: (newValues: string[]) => void;\n} & EditorCardHeaderProps;\n\nconst MultiSelectFieldPro = (props: MultiSelectFieldProProps) => {\n const theme: Theme = useTheme() as Theme;\n const themeFormatter = getThemeFormatter(theme);\n\n const { tooltip, title, description, placeholder } = resolveI18nProps(props);\n const { dimension, optionalSecondDimension, results, selectedValues, setSearchValue, onChange } =\n props;\n\n const options =\n results.data?.map((data) => {\n return {\n value: optionalSecondDimension ? data[optionalSecondDimension.name] : data[dimension.name],\n label: themeFormatter.data(dimension, data[dimension.name]),\n };\n }) ?? [];\n\n const showNoOptionsMessage = Boolean(!results.isLoading && (results.data?.length ?? 0) === 0);\n\n return (\n <EditorCard title={title} description={description} tooltip={tooltip}>\n <MultiSelectField\n isClearable\n isSearchable\n isLoading={results.isLoading}\n values={selectedValues ?? []}\n options={options}\n placeholder={placeholder}\n noOptionsMessage={showNoOptionsMessage ? i18n.t('common.noOptionsFound') : undefined}\n onChange={(newValues) => onChange?.(newValues)}\n onSearch={setSearchValue}\n avoidCollisions={false}\n />\n </EditorCard>\n );\n};\n\nexport default MultiSelectFieldPro;\n"],"names":["MAX_OPTIONS","MultiSelectFieldPro","props","theme","useTheme","themeFormatter","getThemeFormatter","tooltip","title","description","placeholder","resolveI18nProps","dimension","optionalSecondDimension","results","selectedValues","setSearchValue","onChange","options","_a","data","showNoOptionsMessage","_b","jsx","EditorCard","MultiSelectField","i18n","newValues"],"mappings":";;;;;AASO,MAAMA,IAAc,KAarBC,IAAsB,CAACC,MAAoC;;AAC/D,QAAMC,IAAeC,EAAA,GACfC,IAAiBC,EAAkBH,CAAK,GAExC,EAAE,SAAAI,GAAS,OAAAC,GAAO,aAAAC,GAAa,aAAAC,EAAA,IAAgBC,EAAiBT,CAAK,GACrE,EAAE,WAAAU,GAAW,yBAAAC,GAAyB,SAAAC,GAAS,gBAAAC,GAAgB,gBAAAC,GAAgB,UAAAC,MACnFf,GAEIgB,MACJC,IAAAL,EAAQ,SAAR,gBAAAK,EAAc,IAAI,CAACC,OACV;AAAA,IACL,OAAOP,IAA0BO,EAAKP,EAAwB,IAAI,IAAIO,EAAKR,EAAU,IAAI;AAAA,IACzF,OAAOP,EAAe,KAAKO,GAAWQ,EAAKR,EAAU,IAAI,CAAC;AAAA,EAAA,QAExD,CAAA,GAEFS,IAA+B,CAACP,EAAQ,gBAAcQ,IAAAR,EAAQ,SAAR,gBAAAQ,EAAc,WAAU,OAAO;AAE3F,SACEC,gBAAAA,EAAAA,IAACC,GAAA,EAAW,OAAAhB,GAAc,aAAAC,GAA0B,SAAAF,GAClD,UAAAgB,gBAAAA,EAAAA;AAAAA,IAACE;AAAA,IAAA;AAAA,MACC,aAAW;AAAA,MACX,cAAY;AAAA,MACZ,WAAWX,EAAQ;AAAA,MACnB,QAAQC,KAAkB,CAAA;AAAA,MAC1B,SAAAG;AAAA,MACA,aAAAR;AAAA,MACA,kBAAkBW,IAAuBK,EAAK,EAAE,uBAAuB,IAAI;AAAA,MAC3E,UAAU,CAACC,MAAcV,KAAA,gBAAAA,EAAWU;AAAA,MACpC,UAAUX;AAAA,MACV,iBAAiB;AAAA,IAAA;AAAA,EAAA,GAErB;AAEJ;;;;;"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { j as n, K as j } from "./Color.type.emb-CGyFSpIN.js";
|
|
2
|
+
import { useTheme as x } from "@embeddable.com/react";
|
|
3
|
+
import { a as g, r as v } from "./component.inputs.constants-MAjey7Me.js";
|
|
4
|
+
import { C } from "./ChartCard-Be7mHyBp.js";
|
|
5
|
+
import { g as S } from "./formatter.utils-BeLScsYW.js";
|
|
6
|
+
const b = (r) => {
|
|
7
|
+
var a, s;
|
|
8
|
+
const o = x();
|
|
9
|
+
g(o);
|
|
10
|
+
const { title: i, description: m, results: e, measure: t, fontSize: u, tooltip: l } = v(r), { hideMenu: d } = r, p = (s = (a = e.data) == null ? void 0 : a[0]) == null ? void 0 : s[t.name], c = S(o), f = (h) => c.data(t, h);
|
|
11
|
+
return /* @__PURE__ */ n.jsx(
|
|
12
|
+
C,
|
|
13
|
+
{
|
|
14
|
+
data: e,
|
|
15
|
+
dimensionsAndMeasures: [t],
|
|
16
|
+
errorMessage: e.error,
|
|
17
|
+
description: m,
|
|
18
|
+
title: i,
|
|
19
|
+
tooltip: l,
|
|
20
|
+
hideMenu: d,
|
|
21
|
+
children: /* @__PURE__ */ n.jsx(j, { value: p, valueFormatter: f, valueFontSize: u })
|
|
22
|
+
}
|
|
23
|
+
);
|
|
24
|
+
}, P = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
25
|
+
__proto__: null,
|
|
26
|
+
default: b
|
|
27
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
28
|
+
export {
|
|
29
|
+
b as K,
|
|
30
|
+
P as i
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=index-DHVSgVH0.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-DHVSgVH0.js","sources":["../src/components/charts/kpis/KpiChartNumberPro/index.tsx"],"sourcesContent":["import { useTheme } from '@embeddable.com/react';\nimport { Theme } from '../../../../theme/theme.types';\nimport { DataResponse, Measure } from '@embeddable.com/core';\nimport { i18nSetup } from '../../../../theme/i18n/i18n';\nimport { resolveI18nProps } from '../../../component.utils';\nimport { ChartCard, ChartCardHeaderProps } from '../../shared/ChartCard/ChartCard';\nimport { KpiChart } from '@embeddable.com/remarkable-ui';\nimport { getThemeFormatter } from '../../../../theme/formatter/formatter.utils';\n\ntype KpiChartNumberProProp = {\n results: DataResponse;\n measure: Measure;\n fontSize?: number;\n} & ChartCardHeaderProps;\n\nconst KpiChartNumberPro = (props: KpiChartNumberProProp) => {\n const theme: Theme = useTheme() as Theme;\n i18nSetup(theme);\n\n const { title, description, results, measure, fontSize, tooltip } = resolveI18nProps(props);\n const { hideMenu } = props;\n\n const value = results.data?.[0]?.[measure.name];\n\n const themeFormatter = getThemeFormatter(theme);\n const valueFormatter = (valueToFormat: number) => themeFormatter.data(measure, valueToFormat);\n\n return (\n <ChartCard\n data={results}\n dimensionsAndMeasures={[measure]}\n errorMessage={results.error}\n description={description}\n title={title}\n tooltip={tooltip}\n hideMenu={hideMenu}\n >\n <KpiChart value={value} valueFormatter={valueFormatter} valueFontSize={fontSize} />\n </ChartCard>\n );\n};\n\nexport default KpiChartNumberPro;\n"],"names":["KpiChartNumberPro","props","theme","useTheme","i18nSetup","title","description","results","measure","fontSize","tooltip","resolveI18nProps","hideMenu","value","_b","_a","themeFormatter","getThemeFormatter","valueFormatter","valueToFormat","jsx","ChartCard","KpiChart"],"mappings":";;;;;AAeA,MAAMA,IAAoB,CAACC,MAAiC;;AAC1D,QAAMC,IAAeC,EAAA;AACrB,EAAAC,EAAUF,CAAK;AAEf,QAAM,EAAE,OAAAG,GAAO,aAAAC,GAAa,SAAAC,GAAS,SAAAC,GAAS,UAAAC,GAAU,SAAAC,EAAA,IAAYC,EAAiBV,CAAK,GACpF,EAAE,UAAAW,MAAaX,GAEfY,KAAQC,KAAAC,IAAAR,EAAQ,SAAR,gBAAAQ,EAAe,OAAf,gBAAAD,EAAoBN,EAAQ,OAEpCQ,IAAiBC,EAAkBf,CAAK,GACxCgB,IAAiB,CAACC,MAA0BH,EAAe,KAAKR,GAASW,CAAa;AAE5F,SACEC,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAMd;AAAA,MACN,uBAAuB,CAACC,CAAO;AAAA,MAC/B,cAAcD,EAAQ;AAAA,MACtB,aAAAD;AAAA,MACA,OAAAD;AAAA,MACA,SAAAK;AAAA,MACA,UAAAE;AAAA,MAEA,UAAAQ,gBAAAA,EAAAA,IAACE,GAAA,EAAS,OAAAT,GAAc,gBAAAK,GAAgC,eAAeT,EAAA,CAAU;AAAA,IAAA;AAAA,EAAA;AAGvF;;;;"}
|