Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | import { match } from 'ts-pattern'; import { KPIChartDisplayMode, type ChartType, type DashboardChartConfiguration, } from '@amalia/reporting/dashboards-v2/types'; import { isCombinedChartWidgetConfiguration, isKpiChartWidgetConfiguration, isTargetVsAchievementChartWidgetConfiguration, type PlanDashboardCustomChartWidgetConfiguration, } from '@amalia/reporting/plan-dashboards/types'; const emptyFilters = { periods: { isEnabled: false, values: [] }, plans: { isEnabled: false, values: [] }, teams: { isEnabled: false, values: [] }, users: { isEnabled: false, values: [] }, }; export const planDashboardChartToDashboardChart = ( planDashboardChartConfiguration: PlanDashboardCustomChartWidgetConfiguration, ): Omit<DashboardChartConfiguration, 'customReportId'> => match(planDashboardChartConfiguration) .when( isCombinedChartWidgetConfiguration, (config): Omit<DashboardChartConfiguration<ChartType.COMBINED_CHART>, 'customReportId'> => ({ name: config.label, type: config.chartType, displaySettings: { xAxis: { identifier: 'periodStartDate' }, kpis: config.seriesList.map((series) => ({ yAxis: series.yAxis, color: series.color, plot: series.seriesType, showAccumulatedValues: series.showAccumulatedValues, showAverage: series.showAverage, })), customization: config.customization, filters: emptyFilters, }, }), ) .when( isKpiChartWidgetConfiguration, (config): Omit<DashboardChartConfiguration<ChartType.KPI_CARD_CHART>, 'customReportId'> => ({ name: config.label, type: config.chartType, displaySettings: match(config.series) .with({ displayMode: KPIChartDisplayMode.KPI }, (series) => ({ displayMode: series.displayMode, kpi: series.yAxis, filters: emptyFilters, })) .with({ displayMode: KPIChartDisplayMode.DOUGHNUT }, (series) => ({ displayMode: series.displayMode, kpi: series.yAxis, color: series.color, filters: emptyFilters, })) .with({ displayMode: KPIChartDisplayMode.GAUGE }, (series) => ({ displayMode: series.displayMode, kpi: series.yAxis, segmentsValue: series.segmentsValue, filters: emptyFilters, })) .exhaustive(), }), ) .when( isTargetVsAchievementChartWidgetConfiguration, (config): Omit<DashboardChartConfiguration<ChartType.TARGET_VS_ACHIEVEMENT_CHART>, 'customReportId'> => ({ name: config.label, type: config.chartType, displaySettings: { xAxis: { identifier: 'periodStartDate' }, achievement: config.series.achievement, target: config.series.target, earningsAt100Percent: config.series.earningsAt100Percent, color: config.series.color, customization: config.customization, filters: emptyFilters, }, }), ) .exhaustive(); |