@hisptz/dhis2-analytics 2.0.51 → 2.0.53
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/components/ChartAnalytics/models/multi-series.js +4 -3
- package/dist/components/ChartAnalytics/models/multi-series.js.map +1 -1
- package/dist/components/ChartAnalytics/utils/chart.js +2 -1
- package/dist/components/ChartAnalytics/utils/chart.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/models/multi-series.js +4 -3
- package/dist/esm/components/ChartAnalytics/models/multi-series.js.map +1 -1
- package/dist/esm/components/ChartAnalytics/utils/chart.js +2 -1
- package/dist/esm/components/ChartAnalytics/utils/chart.js.map +1 -1
- package/dist/types/components/ChartAnalytics/models/multi-series.d.ts.map +1 -1
- package/dist/types/components/ChartAnalytics/utils/chart.d.ts.map +1 -1
- package/package.json +5 -5
- package/dist/components/ChartAnalytics/ChartAnalytics.stories.js +0 -287
- package/dist/components/ChartAnalytics/ChartAnalytics.stories.js.map +0 -1
- package/dist/components/CircularProgressDashboard/CircularProgressIndicator.stories.js +0 -49
- package/dist/components/CircularProgressDashboard/CircularProgressIndicator.stories.js.map +0 -1
- package/dist/components/DHIS2PivotTable/DHIS2PivotTable.stories.js +0 -40
- package/dist/components/DHIS2PivotTable/DHIS2PivotTable.stories.js.map +0 -1
- package/dist/components/Map/DHIS2Map.stories.js +0 -402
- package/dist/components/Map/DHIS2Map.stories.js.map +0 -1
- package/dist/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfigModal.stories.js +0 -39
- package/dist/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfigModal.stories.js.map +0 -1
- package/dist/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfiguration.stories.js +0 -26
- package/dist/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfiguration.stories.js.map +0 -1
- package/dist/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfigModal.stories.js +0 -29
- package/dist/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfigModal.stories.js.map +0 -1
- package/dist/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfiguration.stories.js +0 -26
- package/dist/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfiguration.stories.js.map +0 -1
- package/dist/components/SingleValueContainer/SingleValueContainer.stories.js +0 -191
- package/dist/components/SingleValueContainer/SingleValueContainer.stories.js.map +0 -1
- package/dist/esm/components/ChartAnalytics/ChartAnalytics.stories.js +0 -264
- package/dist/esm/components/ChartAnalytics/ChartAnalytics.stories.js.map +0 -1
- package/dist/esm/components/CircularProgressDashboard/CircularProgressIndicator.stories.js +0 -42
- package/dist/esm/components/CircularProgressDashboard/CircularProgressIndicator.stories.js.map +0 -1
- package/dist/esm/components/DHIS2PivotTable/DHIS2PivotTable.stories.js +0 -31
- package/dist/esm/components/DHIS2PivotTable/DHIS2PivotTable.stories.js.map +0 -1
- package/dist/esm/components/Map/DHIS2Map.stories.js +0 -388
- package/dist/esm/components/Map/DHIS2Map.stories.js.map +0 -1
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfigModal.stories.js +0 -34
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfigModal.stories.js.map +0 -1
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfiguration.stories.js +0 -21
- package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfiguration.stories.js.map +0 -1
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfigModal.stories.js +0 -24
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfigModal.stories.js.map +0 -1
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfiguration.stories.js +0 -21
- package/dist/esm/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfiguration.stories.js.map +0 -1
- package/dist/esm/components/SingleValueContainer/SingleValueContainer.stories.js +0 -182
- package/dist/esm/components/SingleValueContainer/SingleValueContainer.stories.js.map +0 -1
|
@@ -47,11 +47,11 @@ class DHIS2MultiSeriesChart extends index_js.DHIS2Chart {
|
|
|
47
47
|
const row = analytics.rows?.find(
|
|
48
48
|
(row2) => row2[categoryIndex] === item && row2[seriesIndex] === id
|
|
49
49
|
);
|
|
50
|
-
return row?.[valueIndex] ? parseFloat(row?.[valueIndex]) :
|
|
50
|
+
return row?.[valueIndex] ? parseFloat(row?.[valueIndex]) : null;
|
|
51
51
|
});
|
|
52
52
|
let cumulativeData = [];
|
|
53
53
|
if (cumulative) {
|
|
54
|
-
cumulativeData = data?.reduce((acc, curr, index) => {
|
|
54
|
+
cumulativeData = lodash.compact(data)?.reduce((acc, curr, index) => {
|
|
55
55
|
if (index === 0) {
|
|
56
56
|
return [...acc, curr];
|
|
57
57
|
}
|
|
@@ -59,6 +59,7 @@ class DHIS2MultiSeriesChart extends index_js.DHIS2Chart {
|
|
|
59
59
|
}, []) ?? [];
|
|
60
60
|
}
|
|
61
61
|
return {
|
|
62
|
+
id,
|
|
62
63
|
name: dataItem?.name,
|
|
63
64
|
data: cumulative ? cumulativeData : data,
|
|
64
65
|
type: as,
|
|
@@ -79,7 +80,7 @@ class DHIS2MultiSeriesChart extends index_js.DHIS2Chart {
|
|
|
79
80
|
};
|
|
80
81
|
}
|
|
81
82
|
getYAxis() {
|
|
82
|
-
let yAxes
|
|
83
|
+
let yAxes;
|
|
83
84
|
if (this.config.multiSeries?.yAxes) {
|
|
84
85
|
yAxes = this.config.multiSeries?.yAxes;
|
|
85
86
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ChartAnalytics/models/multi-series.ts"],"names":["DHIS2Chart","head","getDimensionHeaderIndex","compact","row","getAllCategories"],"mappings":";;;;;;AAWO,MAAM,8BAA8BA,mBAAW,CAAA;AAAA,EACrD,iBAA4B,GAAA;AAC3B,IAAO,OAAA,EAAA,CAAA;AAAA,GACR;AAAA,EAEA,cAA8B,GAAA;AAC7B,IAAO,OAAA;AAAA,MACN,QAAQ,EAAC;AAAA,MACT,MAAM,EAAC;AAAA,KACR,CAAA;AAAA,GACD;AAAA,EAEA,SAAiC,GAAA;AAChC,IAAA,MAAM,YAAY,IAAK,CAAA,SAAA,CAAA;AACvB,IAAA,MAAM,SAAS,IAAK,CAAA,MAAA,CAAA;AAEpB,IAAA,MAAM,iBAAoB,GAAAC,WAAA,CAAK,MAAO,CAAA,MAAA,CAAO,QAAQ,CAAA,CAAA;AACrD,IAAM,MAAA,YAAA,GACL,KAAK,MAAO,CAAA,WAAA,CAAA;AAEb,IAAA,MAAM,aAAgB,GAAAC,gCAAA;AAAA,MACrB,SAAA,CAAU,WAAW,EAAC;AAAA,MACtB,iBAAqB,IAAA,EAAA;AAAA,KACtB,CAAA;AACA,IAAA,MAAM,WAAc,GAAAA,gCAAA;AAAA,MACnB,SAAA,CAAU,WAAW,EAAC;AAAA,MACtBD,WAAK,CAAA,MAAA,CAAO,MAAO,CAAA,MAAM,CAAK,IAAA,EAAA;AAAA,KAC/B,CAAA;AACA,IAAA,MAAM,UAAa,GAAAC,gCAAA;AAAA,MAClB,SAAA,CAAU,WAAW,EAAC;AAAA,MACtB,OAAA;AAAA,KACD,CAAA;AAEA,IAAA,IAAI,CAAC,iBAAmB,EAAA;AACvB,MAAM,MAAA,IAAI,MAAM,6CAA6C,CAAA,CAAA;AAAA,KAC9D;AAEA,IAAA,IAAI,CAAC,YAAc,EAAA;AAClB,MAAA,MAAM,IAAI,KAAA;AAAA,QACT,4DAAA;AAAA,OACD,CAAA;AAAA,KACD;AAEA,IAAO,OAAAC,cAAA;AAAA,MACN,YAAA,EAAc,QAAQ,GAAI,CAAA,CAAC,EAAE,EAAI,EAAA,EAAA,EAAI,UAAY,EAAA,KAAA,EAAY,KAAA;AAC5D,QAAA,MAAM,QAAW,GAAA,SAAA,CAAU,QAAU,EAAA,KAAA,CAAM,EAAS,CAAA,CAAA;AACpD,QAAA,MAAM,aACL,GAAA,SAAA,CAAU,QAAU,EAAA,UAAA,CACnB,iBACD,CAAA,CAAA;AAED,QAAA,MAAM,IAAO,GAAA,aAAA,EAAe,GAAI,CAAA,CAAC,IAAiB,KAAA;AACjD,UAAM,MAAA,GAAA,GAAM,UAAU,IAAM,EAAA,IAAA;AAAA,YAC3B,CAACC,SACAA,IAAI,CAAA,aAAa,MAAM,IACvBA,IAAAA,IAAAA,CAAI,WAAW,CAAM,KAAA,EAAA;AAAA,WACvB,CAAA;AACA,UAAA,OAAO,MAAM,UAAU,CAAA,GACpB,WAAW,GAAM,GAAA,UAAU,CAAC,CAC5B,GAAA,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ChartAnalytics/models/multi-series.ts"],"names":["DHIS2Chart","head","getDimensionHeaderIndex","compact","row","getAllCategories"],"mappings":"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","file":"multi-series.js","sourcesContent":["import {\n\tPlotOptions,\n\tSeriesOptionsType,\n\tXAxisOptions,\n\tYAxisOptions,\n} from \"highcharts\";\nimport { compact, head } from \"lodash\";\nimport { MultiSeriesConfig } from \"../types/props.js\";\nimport { getAllCategories, getDimensionHeaderIndex } from \"../utils/chart.js\";\nimport { DHIS2Chart } from \"./index.js\";\n\nexport class DHIS2MultiSeriesChart extends DHIS2Chart {\n\tgetHighchartsType(): string {\n\t\treturn \"\";\n\t}\n\n\tgetPlotOptions(): PlotOptions {\n\t\treturn {\n\t\t\tcolumn: {},\n\t\t\tline: {},\n\t\t};\n\t}\n\n\tgetSeries(): SeriesOptionsType[] {\n\t\tconst analytics = this.analytics;\n\t\tconst config = this.config;\n\n\t\tconst categoryDimension = head(config.layout.category);\n\t\tconst seriesConfig: MultiSeriesConfig | undefined =\n\t\t\tthis.config.multiSeries;\n\n\t\tconst categoryIndex = getDimensionHeaderIndex(\n\t\t\tanalytics.headers ?? [],\n\t\t\tcategoryDimension ?? \"\",\n\t\t);\n\t\tconst seriesIndex = getDimensionHeaderIndex(\n\t\t\tanalytics.headers ?? [],\n\t\t\thead(config.layout.series) ?? \"\",\n\t\t);\n\t\tconst valueIndex = getDimensionHeaderIndex(\n\t\t\tanalytics.headers ?? [],\n\t\t\t\"value\",\n\t\t);\n\n\t\tif (!categoryDimension) {\n\t\t\tthrow new Error(\"At least one category dimension is required\");\n\t\t}\n\n\t\tif (!seriesConfig) {\n\t\t\tthrow new Error(\n\t\t\t\t\"MultiSeries config is required for chart type multi-series\",\n\t\t\t);\n\t\t}\n\n\t\treturn compact(\n\t\t\tseriesConfig?.series?.map(({ id, as, cumulative, yAxis }) => {\n\t\t\t\tconst dataItem = analytics.metaData?.items[id as any];\n\t\t\t\tconst categoryItems =\n\t\t\t\t\tanalytics.metaData?.dimensions[\n\t\t\t\t\t\tcategoryDimension as \"dx\" | \"ou\" | \"pe\"\n\t\t\t\t\t];\n\n\t\t\t\tconst data = categoryItems?.map((item: string) => {\n\t\t\t\t\tconst row = analytics.rows?.find(\n\t\t\t\t\t\t(row: any) =>\n\t\t\t\t\t\t\trow[categoryIndex] === item &&\n\t\t\t\t\t\t\trow[seriesIndex] === id,\n\t\t\t\t\t);\n\t\t\t\t\treturn row?.[valueIndex]\n\t\t\t\t\t\t? parseFloat(row?.[valueIndex])\n\t\t\t\t\t\t: null;\n\t\t\t\t});\n\n\t\t\t\tlet cumulativeData: number[] = [];\n\n\t\t\t\tif (cumulative) {\n\t\t\t\t\tcumulativeData =\n\t\t\t\t\t\tcompact(data)?.reduce((acc, curr, index) => {\n\t\t\t\t\t\t\tif (index === 0) {\n\t\t\t\t\t\t\t\treturn [...acc, curr];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn [...acc, acc[index - 1] + curr];\n\t\t\t\t\t\t}, [] as number[]) ?? [];\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tid,\n\t\t\t\t\tname: dataItem?.name,\n\t\t\t\t\tdata: cumulative ? cumulativeData : data,\n\t\t\t\t\ttype: as,\n\t\t\t\t\tyAxis: yAxis ?? 0,\n\t\t\t\t};\n\t\t\t}),\n\t\t) as SeriesOptionsType[];\n\t}\n\n\tgetXAxis(): XAxisOptions | undefined {\n\t\treturn {\n\t\t\ttype: \"category\",\n\t\t\tcategories: getAllCategories(this.analytics, this.config),\n\t\t\tcrosshair: true,\n\t\t\tlabels: {\n\t\t\t\tenabled: true,\n\t\t\t},\n\t\t\ttitle: { text: \"\" },\n\t\t};\n\t}\n\n\tgetYAxis(): YAxisOptions[] {\n\t\tlet yAxes: YAxisOptions[];\n\n\t\tif (this.config.multiSeries?.yAxes) {\n\t\t\tyAxes = this.config.multiSeries?.yAxes;\n\t\t} else {\n\t\t\tyAxes = super.getYAxis();\n\t\t}\n\n\t\tif (!this.config.multiSeries?.target) {\n\t\t\treturn yAxes;\n\t\t}\n\n\t\tconst { value, styles, label } = this.config.multiSeries?.target ?? {};\n\n\t\treturn [\n\t\t\t{\n\t\t\t\t...yAxes[0],\n\t\t\t\tplotLines: [\n\t\t\t\t\t...(yAxes[0].plotLines ?? []),\n\t\t\t\t\t{\n\t\t\t\t\t\tcolor: styles?.color ?? \"#00FF00\",\n\t\t\t\t\t\tdashStyle: styles?.dashStyle ?? \"Solid\",\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\twidth: styles?.width ?? 2,\n\t\t\t\t\t\tzIndex: styles?.zIndex ?? 1000,\n\t\t\t\t\t\tlabel: label,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t...yAxes.slice(1),\n\t\t];\n\t}\n}\n"]}
|
|
@@ -48,9 +48,10 @@ function getColumnSeries(analytics, header, config, highchartsType) {
|
|
|
48
48
|
analytics?.rows,
|
|
49
49
|
(row2) => row2[headerIndex ?? -1] === seriesDimensionValue && row2[categoryDimensionIndex ?? -1] === category
|
|
50
50
|
);
|
|
51
|
-
return row?.[valueIndex ?? -1] ? parseFloat(row?.[valueIndex ?? -1]) :
|
|
51
|
+
return row?.[valueIndex ?? -1] ? parseFloat(row?.[valueIndex ?? -1]) : null;
|
|
52
52
|
});
|
|
53
53
|
return {
|
|
54
|
+
id: seriesDimensionValue,
|
|
54
55
|
name: items?.[seriesDimensionValue]?.name,
|
|
55
56
|
data,
|
|
56
57
|
type: highchartsType,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ChartAnalytics/utils/chart.ts"],"names":["findIndex","header","head","find","row","compact","set","isEmpty","DHIS2ColumnChart","DHIS2BarChart","DHIS2StackedBarChart","DHIS2StackedColumnChart","DHIS2PieChart","DHIS2LineChart","DHIS2MultiSeriesChart"],"mappings":"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","file":"chart.js","sourcesContent":["import type {\n\tAnalytics,\n\tAnalyticsHeader,\n\tAnalyticsMetadata,\n} from \"@hisptz/dhis2-utils\";\nimport { compact, find, findIndex, head, isEmpty, set } from \"lodash\";\nimport { DHIS2Chart } from \"../models/index.js\";\nimport { DHIS2ColumnChart, DHIS2StackedColumnChart } from \"../models/column.js\";\nimport { DHIS2LineChart } from \"../models/line.js\";\nimport { DHIS2MultiSeriesChart } from \"../models/multi-series.js\";\nimport { DHIS2PieChart } from \"../models/pie.js\";\nimport { ChartConfig, ChartType } from \"../types/props.js\";\nimport { DHIS2BarChart, DHIS2StackedBarChart } from \"../models/bar.js\";\n\nexport function getDimensionHeaderIndex(\n\theaders: AnalyticsHeader[],\n\tname: string,\n): number {\n\treturn findIndex(headers, { name });\n}\n\nexport function getPointSeries(\n\tanalytics: Analytics,\n\tconfig: ChartConfig,\n\thighchartsType: string,\n) {\n\tconst series: string[] = config.layout.series;\n\n\treturn series.map((seriesName: string) => {\n\t\tconst header = analytics?.headers?.find(\n\t\t\t(header: any) => header.name === seriesName,\n\t\t);\n\t\tif (!header) {\n\t\t\treturn undefined;\n\t\t}\n\t\tif (analytics?.metaData) {\n\t\t\treturn getColumnSeries(analytics, header, config, highchartsType);\n\t\t}\n\t})[0];\n}\n\nexport function getColumnSeries(\n\tanalytics: Analytics,\n\theader: AnalyticsHeader,\n\tconfig: ChartConfig,\n\thighchartsType: string,\n): any {\n\tconst headerIndex = analytics?.headers?.findIndex(\n\t\t(h: { name: any }) => header.name === h.name,\n\t);\n\tconst valueIndex = analytics?.headers?.findIndex(\n\t\t(h: { name: string }) => h.name === \"value\",\n\t);\n\n\tconst colors = config.colors ?? [];\n\n\tconst { items, dimensions } = analytics?.metaData ?? {};\n\tconst categoriesDimension = config.layout.category;\n\n\tconst seriesDimensionValues: string[] =\n\t\tdimensions?.[header.name as \"dx\" | \"ou\" | \"pe\"] ?? [];\n\n\treturn head(\n\t\tcategoriesDimension?.map((categoryDimension: string) => {\n\t\t\tconst categories: string[] = dimensions?.[\n\t\t\t\tcategoryDimension as \"dx\" | \"ou\" | \"pe\"\n\t\t\t] as any;\n\t\t\tconst categoryDimensionIndex = analytics?.headers?.findIndex(\n\t\t\t\t(h: { name: string }) => h.name === categoryDimension,\n\t\t\t);\n\t\t\treturn seriesDimensionValues?.map(\n\t\t\t\t(seriesDimensionValue: string, index) => {\n\t\t\t\t\tconst data = categories?.map((category: string) => {\n\t\t\t\t\t\tconst row = find(\n\t\t\t\t\t\t\tanalytics?.rows,\n\t\t\t\t\t\t\t(row: any) =>\n\t\t\t\t\t\t\t\trow[headerIndex ?? -1] ===\n\t\t\t\t\t\t\t\t\tseriesDimensionValue &&\n\t\t\t\t\t\t\t\trow[categoryDimensionIndex ?? -1] === category,\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn row?.[valueIndex ?? -1]\n\t\t\t\t\t\t\t? parseFloat(row?.[valueIndex ?? -1])\n\t\t\t\t\t\t\t: 0;\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\tname: items?.[seriesDimensionValue as any]?.name,\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\ttype: highchartsType,\n\t\t\t\t\t\tcolor: colors[index % colors.length],\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t);\n\t\t}),\n\t);\n}\n\nfunction getCategories(\n\t{ name }: AnalyticsHeader,\n\t{ items, dimensions }: AnalyticsMetadata,\n): string[] {\n\tconst categories: string[] = dimensions?.[\n\t\tname as \"dx\" | \"ou\" | \"pe\"\n\t] as any;\n\n\treturn categories?.map((category: string) => {\n\t\treturn items[category as any]?.name ?? \"\";\n\t}) as unknown as string[];\n}\n\nexport function getAllCategories(\n\tanalytics: Analytics,\n\tconfig: ChartConfig,\n): string[] {\n\tconst categories = config.layout.category;\n\n\treturn compact(\n\t\tcategories?.map((category: string) => {\n\t\t\tconst header = analytics?.headers?.find(\n\t\t\t\t(header: any) => header.name === category,\n\t\t\t);\n\t\t\tif (!header) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tif (analytics?.metaData) {\n\t\t\t\treturn getCategories(header, analytics?.metaData);\n\t\t\t}\n\t\t}),\n\t)[0];\n}\n\nexport function updateLayout(\n\tconfig: ChartConfig,\n\t{ type }: { type: ChartType },\n) {\n\tif (type === config.type) {\n\t\treturn config.layout;\n\t}\n\n\tconst updatedLayout = { ...config.layout };\n\n\tswitch (type) {\n\t\tcase \"pie\":\n\t\t\tset(updatedLayout, \"category\", []);\n\t\t\tif (isEmpty(updatedLayout.series)) {\n\t\t\t\tif (!isEmpty(config.layout.category)) {\n\t\t\t\t\tset(updatedLayout, \"series\", [\n\t\t\t\t\t\thead(config.layout.category),\n\t\t\t\t\t]);\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(\"Invalid layout for pie chart\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (updatedLayout.series.length > 1) {\n\t\t\t\tset(updatedLayout, \"series\", [head(updatedLayout.series)]);\n\t\t\t}\n\t}\n\n\treturn updatedLayout;\n}\n\nexport function getChartInstance(\n\tid: string,\n\tanalytics: Analytics,\n\tconfig: ChartConfig,\n): DHIS2Chart {\n\tswitch (config.type) {\n\t\tcase \"column\":\n\t\t\treturn new DHIS2ColumnChart(id, analytics, config);\n\t\tcase \"bar\":\n\t\t\treturn new DHIS2BarChart(id, analytics, config);\n\t\tcase \"stacked-bar\":\n\t\t\treturn new DHIS2StackedBarChart(id, analytics, config);\n\t\tcase \"stacked-column\":\n\t\t\treturn new DHIS2StackedColumnChart(id, analytics, config);\n\t\tcase \"pie\":\n\t\t\treturn new DHIS2PieChart(id, analytics, config);\n\t\tcase \"line\":\n\t\t\treturn new DHIS2LineChart(id, analytics, config);\n\t\tcase \"multi-series\":\n\t\t\treturn new DHIS2MultiSeriesChart(id, analytics, config);\n\t\tdefault:\n\t\t\tthrow new Error(`Unsupported chart type: ${config.type}`);\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ChartAnalytics/utils/chart.ts"],"names":["findIndex","header","head","find","row","compact","set","isEmpty","DHIS2ColumnChart","DHIS2BarChart","DHIS2StackedBarChart","DHIS2StackedColumnChart","DHIS2PieChart","DHIS2LineChart","DHIS2MultiSeriesChart"],"mappings":";;;;;;;;;AAcO,SAAS,uBAAA,CACf,SACA,IACS,EAAA;AACT,EAAA,OAAOA,gBAAU,CAAA,OAAA,EAAS,EAAE,IAAA,EAAM,CAAA,CAAA;AACnC,CAAA;AAEO,SAAS,cAAA,CACf,SACA,EAAA,MAAA,EACA,cACC,EAAA;AACD,EAAM,MAAA,MAAA,GAAmB,OAAO,MAAO,CAAA,MAAA,CAAA;AAEvC,EAAO,OAAA,MAAA,CAAO,GAAI,CAAA,CAAC,UAAuB,KAAA;AACzC,IAAM,MAAA,MAAA,GAAS,WAAW,OAAS,EAAA,IAAA;AAAA,MAClC,CAACC,OAAgBA,KAAAA,OAAAA,CAAO,IAAS,KAAA,UAAA;AAAA,KAClC,CAAA;AACA,IAAA,IAAI,CAAC,MAAQ,EAAA;AACZ,MAAO,OAAA,KAAA,CAAA,CAAA;AAAA,KACR;AACA,IAAA,IAAI,WAAW,QAAU,EAAA;AACxB,MAAA,OAAO,eAAgB,CAAA,SAAA,EAAW,MAAQ,EAAA,MAAA,EAAQ,cAAc,CAAA,CAAA;AAAA,KACjE;AAAA,GACA,EAAE,CAAC,CAAA,CAAA;AACL,CAAA;AAEO,SAAS,eACf,CAAA,SAAA,EACA,MACA,EAAA,MAAA,EACA,cACM,EAAA;AACN,EAAM,MAAA,WAAA,GAAc,WAAW,OAAS,EAAA,SAAA;AAAA,IACvC,CAAC,CAAA,KAAqB,MAAO,CAAA,IAAA,KAAS,CAAE,CAAA,IAAA;AAAA,GACzC,CAAA;AACA,EAAM,MAAA,UAAA,GAAa,WAAW,OAAS,EAAA,SAAA;AAAA,IACtC,CAAC,CAAwB,KAAA,CAAA,CAAE,IAAS,KAAA,OAAA;AAAA,GACrC,CAAA;AAEA,EAAM,MAAA,MAAA,GAAS,MAAO,CAAA,MAAA,IAAU,EAAC,CAAA;AAEjC,EAAA,MAAM,EAAE,KAAO,EAAA,UAAA,EAAe,GAAA,SAAA,EAAW,YAAY,EAAC,CAAA;AACtD,EAAM,MAAA,mBAAA,GAAsB,OAAO,MAAO,CAAA,QAAA,CAAA;AAE1C,EAAA,MAAM,qBACL,GAAA,UAAA,GAAa,MAAO,CAAA,IAA0B,KAAK,EAAC,CAAA;AAErD,EAAO,OAAAC,WAAA;AAAA,IACN,mBAAA,EAAqB,GAAI,CAAA,CAAC,iBAA8B,KAAA;AACvD,MAAM,MAAA,UAAA,GAAuB,aAC5B,iBACD,CAAA,CAAA;AACA,MAAM,MAAA,sBAAA,GAAyB,WAAW,OAAS,EAAA,SAAA;AAAA,QAClD,CAAC,CAAwB,KAAA,CAAA,CAAE,IAAS,KAAA,iBAAA;AAAA,OACrC,CAAA;AACA,MAAA,OAAO,qBAAuB,EAAA,GAAA;AAAA,QAC7B,CAAC,sBAA8B,KAAU,KAAA;AACxC,UAAA,MAAM,IAAO,GAAA,UAAA,EAAY,GAAI,CAAA,CAAC,QAAqB,KAAA;AAClD,YAAA,MAAM,GAAM,GAAAC,WAAA;AAAA,cACX,SAAW,EAAA,IAAA;AAAA,cACX,CAACC,IACAA,KAAAA,IAAAA,CAAI,WAAe,IAAA,CAAA,CAAE,MACpB,oBACDA,IAAAA,IAAAA,CAAI,sBAA0B,IAAA,CAAA,CAAE,CAAM,KAAA,QAAA;AAAA,aACxC,CAAA;AACA,YAAO,OAAA,GAAA,GAAM,cAAc,CAAE,CAAA,CAAA,GAC1B,WAAW,GAAM,GAAA,UAAA,IAAc,CAAE,CAAA,CAAC,CAClC,GAAA,IAAA,CAAA;AAAA,WACH,CAAA,CAAA;AACD,UAAO,OAAA;AAAA,YACN,EAAI,EAAA,oBAAA;AAAA,YACJ,IAAA,EAAM,KAAQ,GAAA,oBAA2B,CAAG,EAAA,IAAA;AAAA,YAC5C,IAAA;AAAA,YACA,IAAM,EAAA,cAAA;AAAA,YACN,KAAO,EAAA,MAAA,CAAO,KAAQ,GAAA,MAAA,CAAO,MAAM,CAAA;AAAA,WACpC,CAAA;AAAA,SACD;AAAA,OACD,CAAA;AAAA,KACA,CAAA;AAAA,GACF,CAAA;AACD,CAAA;AAEA,SAAS,cACR,EAAE,IAAA,IACF,EAAE,KAAA,EAAO,YACE,EAAA;AACX,EAAM,MAAA,UAAA,GAAuB,aAC5B,IACD,CAAA,CAAA;AAEA,EAAO,OAAA,UAAA,EAAY,GAAI,CAAA,CAAC,QAAqB,KAAA;AAC5C,IAAO,OAAA,KAAA,CAAM,QAAe,CAAA,EAAG,IAAQ,IAAA,EAAA,CAAA;AAAA,GACvC,CAAA,CAAA;AACF,CAAA;AAEO,SAAS,gBAAA,CACf,WACA,MACW,EAAA;AACX,EAAM,MAAA,UAAA,GAAa,OAAO,MAAO,CAAA,QAAA,CAAA;AAEjC,EAAO,OAAAC,cAAA;AAAA,IACN,UAAA,EAAY,GAAI,CAAA,CAAC,QAAqB,KAAA;AACrC,MAAM,MAAA,MAAA,GAAS,WAAW,OAAS,EAAA,IAAA;AAAA,QAClC,CAACJ,OAAgBA,KAAAA,OAAAA,CAAO,IAAS,KAAA,QAAA;AAAA,OAClC,CAAA;AACA,MAAA,IAAI,CAAC,MAAQ,EAAA;AACZ,QAAO,OAAA,KAAA,CAAA,CAAA;AAAA,OACR;AACA,MAAA,IAAI,WAAW,QAAU,EAAA;AACxB,QAAO,OAAA,aAAA,CAAc,MAAQ,EAAA,SAAA,EAAW,QAAQ,CAAA,CAAA;AAAA,OACjD;AAAA,KACA,CAAA;AAAA,IACA,CAAC,CAAA,CAAA;AACJ,CAAA;AAEO,SAAS,YACf,CAAA,MAAA,EACA,EAAE,IAAA,EACD,EAAA;AACD,EAAI,IAAA,IAAA,KAAS,OAAO,IAAM,EAAA;AACzB,IAAA,OAAO,MAAO,CAAA,MAAA,CAAA;AAAA,GACf;AAEA,EAAA,MAAM,aAAgB,GAAA,EAAE,GAAG,MAAA,CAAO,MAAO,EAAA,CAAA;AAEzC,EAAA,QAAQ,IAAM;AAAA,IACb,KAAK,KAAA;AACJ,MAAIK,UAAA,CAAA,aAAA,EAAe,UAAY,EAAA,EAAE,CAAA,CAAA;AACjC,MAAI,IAAAC,cAAA,CAAQ,aAAc,CAAA,MAAM,CAAG,EAAA;AAClC,QAAA,IAAI,CAACA,cAAA,CAAQ,MAAO,CAAA,MAAA,CAAO,QAAQ,CAAG,EAAA;AACrC,UAAAD,UAAA,CAAI,eAAe,QAAU,EAAA;AAAA,YAC5BJ,WAAA,CAAK,MAAO,CAAA,MAAA,CAAO,QAAQ,CAAA;AAAA,WAC3B,CAAA,CAAA;AAAA,SACK,MAAA;AACN,UAAM,MAAA,IAAI,MAAM,8BAA8B,CAAA,CAAA;AAAA,SAC/C;AAAA,OACD;AACA,MAAI,IAAA,aAAA,CAAc,MAAO,CAAA,MAAA,GAAS,CAAG,EAAA;AACpC,QAAAI,UAAA,CAAI,eAAe,QAAU,EAAA,CAACJ,YAAK,aAAc,CAAA,MAAM,CAAC,CAAC,CAAA,CAAA;AAAA,OAC1D;AAAA,GACF;AAEA,EAAO,OAAA,aAAA,CAAA;AACR,CAAA;AAEO,SAAS,gBAAA,CACf,EACA,EAAA,SAAA,EACA,MACa,EAAA;AACb,EAAA,QAAQ,OAAO,IAAM;AAAA,IACpB,KAAK,QAAA;AACJ,MAAA,OAAO,IAAIM,0BAAA,CAAiB,EAAI,EAAA,SAAA,EAAW,MAAM,CAAA,CAAA;AAAA,IAClD,KAAK,KAAA;AACJ,MAAA,OAAO,IAAIC,oBAAA,CAAc,EAAI,EAAA,SAAA,EAAW,MAAM,CAAA,CAAA;AAAA,IAC/C,KAAK,aAAA;AACJ,MAAA,OAAO,IAAIC,2BAAA,CAAqB,EAAI,EAAA,SAAA,EAAW,MAAM,CAAA,CAAA;AAAA,IACtD,KAAK,gBAAA;AACJ,MAAA,OAAO,IAAIC,iCAAA,CAAwB,EAAI,EAAA,SAAA,EAAW,MAAM,CAAA,CAAA;AAAA,IACzD,KAAK,KAAA;AACJ,MAAA,OAAO,IAAIC,oBAAA,CAAc,EAAI,EAAA,SAAA,EAAW,MAAM,CAAA,CAAA;AAAA,IAC/C,KAAK,MAAA;AACJ,MAAA,OAAO,IAAIC,sBAAA,CAAe,EAAI,EAAA,SAAA,EAAW,MAAM,CAAA,CAAA;AAAA,IAChD,KAAK,cAAA;AACJ,MAAA,OAAO,IAAIC,oCAAA,CAAsB,EAAI,EAAA,SAAA,EAAW,MAAM,CAAA,CAAA;AAAA,IACvD;AACC,MAAA,MAAM,IAAI,KAAA,CAAM,CAA2B,wBAAA,EAAA,MAAA,CAAO,IAAI,CAAE,CAAA,CAAA,CAAA;AAAA,GAC1D;AACD","file":"chart.js","sourcesContent":["import type {\n\tAnalytics,\n\tAnalyticsHeader,\n\tAnalyticsMetadata,\n} from \"@hisptz/dhis2-utils\";\nimport { compact, find, findIndex, head, isEmpty, set } from \"lodash\";\nimport { DHIS2Chart } from \"../models/index.js\";\nimport { DHIS2ColumnChart, DHIS2StackedColumnChart } from \"../models/column.js\";\nimport { DHIS2LineChart } from \"../models/line.js\";\nimport { DHIS2MultiSeriesChart } from \"../models/multi-series.js\";\nimport { DHIS2PieChart } from \"../models/pie.js\";\nimport { ChartConfig, ChartType } from \"../types/props.js\";\nimport { DHIS2BarChart, DHIS2StackedBarChart } from \"../models/bar.js\";\n\nexport function getDimensionHeaderIndex(\n\theaders: AnalyticsHeader[],\n\tname: string,\n): number {\n\treturn findIndex(headers, { name });\n}\n\nexport function getPointSeries(\n\tanalytics: Analytics,\n\tconfig: ChartConfig,\n\thighchartsType: string,\n) {\n\tconst series: string[] = config.layout.series;\n\n\treturn series.map((seriesName: string) => {\n\t\tconst header = analytics?.headers?.find(\n\t\t\t(header: any) => header.name === seriesName,\n\t\t);\n\t\tif (!header) {\n\t\t\treturn undefined;\n\t\t}\n\t\tif (analytics?.metaData) {\n\t\t\treturn getColumnSeries(analytics, header, config, highchartsType);\n\t\t}\n\t})[0];\n}\n\nexport function getColumnSeries(\n\tanalytics: Analytics,\n\theader: AnalyticsHeader,\n\tconfig: ChartConfig,\n\thighchartsType: string,\n): any {\n\tconst headerIndex = analytics?.headers?.findIndex(\n\t\t(h: { name: any }) => header.name === h.name,\n\t);\n\tconst valueIndex = analytics?.headers?.findIndex(\n\t\t(h: { name: string }) => h.name === \"value\",\n\t);\n\n\tconst colors = config.colors ?? [];\n\n\tconst { items, dimensions } = analytics?.metaData ?? {};\n\tconst categoriesDimension = config.layout.category;\n\n\tconst seriesDimensionValues: string[] =\n\t\tdimensions?.[header.name as \"dx\" | \"ou\" | \"pe\"] ?? [];\n\n\treturn head(\n\t\tcategoriesDimension?.map((categoryDimension: string) => {\n\t\t\tconst categories: string[] = dimensions?.[\n\t\t\t\tcategoryDimension as \"dx\" | \"ou\" | \"pe\"\n\t\t\t] as any;\n\t\t\tconst categoryDimensionIndex = analytics?.headers?.findIndex(\n\t\t\t\t(h: { name: string }) => h.name === categoryDimension,\n\t\t\t);\n\t\t\treturn seriesDimensionValues?.map(\n\t\t\t\t(seriesDimensionValue: string, index) => {\n\t\t\t\t\tconst data = categories?.map((category: string) => {\n\t\t\t\t\t\tconst row = find(\n\t\t\t\t\t\t\tanalytics?.rows,\n\t\t\t\t\t\t\t(row: any) =>\n\t\t\t\t\t\t\t\trow[headerIndex ?? -1] ===\n\t\t\t\t\t\t\t\t\tseriesDimensionValue &&\n\t\t\t\t\t\t\t\trow[categoryDimensionIndex ?? -1] === category,\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn row?.[valueIndex ?? -1]\n\t\t\t\t\t\t\t? parseFloat(row?.[valueIndex ?? -1])\n\t\t\t\t\t\t\t: null;\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: seriesDimensionValue,\n\t\t\t\t\t\tname: items?.[seriesDimensionValue as any]?.name,\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\ttype: highchartsType,\n\t\t\t\t\t\tcolor: colors[index % colors.length],\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t);\n\t\t}),\n\t);\n}\n\nfunction getCategories(\n\t{ name }: AnalyticsHeader,\n\t{ items, dimensions }: AnalyticsMetadata,\n): string[] {\n\tconst categories: string[] = dimensions?.[\n\t\tname as \"dx\" | \"ou\" | \"pe\"\n\t] as any;\n\n\treturn categories?.map((category: string) => {\n\t\treturn items[category as any]?.name ?? \"\";\n\t}) as unknown as string[];\n}\n\nexport function getAllCategories(\n\tanalytics: Analytics,\n\tconfig: ChartConfig,\n): string[] {\n\tconst categories = config.layout.category;\n\n\treturn compact(\n\t\tcategories?.map((category: string) => {\n\t\t\tconst header = analytics?.headers?.find(\n\t\t\t\t(header: any) => header.name === category,\n\t\t\t);\n\t\t\tif (!header) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tif (analytics?.metaData) {\n\t\t\t\treturn getCategories(header, analytics?.metaData);\n\t\t\t}\n\t\t}),\n\t)[0];\n}\n\nexport function updateLayout(\n\tconfig: ChartConfig,\n\t{ type }: { type: ChartType },\n) {\n\tif (type === config.type) {\n\t\treturn config.layout;\n\t}\n\n\tconst updatedLayout = { ...config.layout };\n\n\tswitch (type) {\n\t\tcase \"pie\":\n\t\t\tset(updatedLayout, \"category\", []);\n\t\t\tif (isEmpty(updatedLayout.series)) {\n\t\t\t\tif (!isEmpty(config.layout.category)) {\n\t\t\t\t\tset(updatedLayout, \"series\", [\n\t\t\t\t\t\thead(config.layout.category),\n\t\t\t\t\t]);\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(\"Invalid layout for pie chart\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (updatedLayout.series.length > 1) {\n\t\t\t\tset(updatedLayout, \"series\", [head(updatedLayout.series)]);\n\t\t\t}\n\t}\n\n\treturn updatedLayout;\n}\n\nexport function getChartInstance(\n\tid: string,\n\tanalytics: Analytics,\n\tconfig: ChartConfig,\n): DHIS2Chart {\n\tswitch (config.type) {\n\t\tcase \"column\":\n\t\t\treturn new DHIS2ColumnChart(id, analytics, config);\n\t\tcase \"bar\":\n\t\t\treturn new DHIS2BarChart(id, analytics, config);\n\t\tcase \"stacked-bar\":\n\t\t\treturn new DHIS2StackedBarChart(id, analytics, config);\n\t\tcase \"stacked-column\":\n\t\t\treturn new DHIS2StackedColumnChart(id, analytics, config);\n\t\tcase \"pie\":\n\t\t\treturn new DHIS2PieChart(id, analytics, config);\n\t\tcase \"line\":\n\t\t\treturn new DHIS2LineChart(id, analytics, config);\n\t\tcase \"multi-series\":\n\t\t\treturn new DHIS2MultiSeriesChart(id, analytics, config);\n\t\tdefault:\n\t\t\tthrow new Error(`Unsupported chart type: ${config.type}`);\n\t}\n}\n"]}
|
|
@@ -45,11 +45,11 @@ class DHIS2MultiSeriesChart extends DHIS2Chart {
|
|
|
45
45
|
const row = analytics.rows?.find(
|
|
46
46
|
(row2) => row2[categoryIndex] === item && row2[seriesIndex] === id
|
|
47
47
|
);
|
|
48
|
-
return row?.[valueIndex] ? parseFloat(row?.[valueIndex]) :
|
|
48
|
+
return row?.[valueIndex] ? parseFloat(row?.[valueIndex]) : null;
|
|
49
49
|
});
|
|
50
50
|
let cumulativeData = [];
|
|
51
51
|
if (cumulative) {
|
|
52
|
-
cumulativeData = data?.reduce((acc, curr, index) => {
|
|
52
|
+
cumulativeData = compact(data)?.reduce((acc, curr, index) => {
|
|
53
53
|
if (index === 0) {
|
|
54
54
|
return [...acc, curr];
|
|
55
55
|
}
|
|
@@ -57,6 +57,7 @@ class DHIS2MultiSeriesChart extends DHIS2Chart {
|
|
|
57
57
|
}, []) ?? [];
|
|
58
58
|
}
|
|
59
59
|
return {
|
|
60
|
+
id,
|
|
60
61
|
name: dataItem?.name,
|
|
61
62
|
data: cumulative ? cumulativeData : data,
|
|
62
63
|
type: as,
|
|
@@ -77,7 +78,7 @@ class DHIS2MultiSeriesChart extends DHIS2Chart {
|
|
|
77
78
|
};
|
|
78
79
|
}
|
|
79
80
|
getYAxis() {
|
|
80
|
-
let yAxes
|
|
81
|
+
let yAxes;
|
|
81
82
|
if (this.config.multiSeries?.yAxes) {
|
|
82
83
|
yAxes = this.config.multiSeries?.yAxes;
|
|
83
84
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/ChartAnalytics/models/multi-series.ts"],"names":["row"],"mappings":";;;;AAWO,MAAM,8BAA8B,UAAW,CAAA;AAAA,EACrD,iBAA4B,GAAA;AAC3B,IAAO,OAAA,EAAA,CAAA;AAAA,GACR;AAAA,EAEA,cAA8B,GAAA;AAC7B,IAAO,OAAA;AAAA,MACN,QAAQ,EAAC;AAAA,MACT,MAAM,EAAC;AAAA,KACR,CAAA;AAAA,GACD;AAAA,EAEA,SAAiC,GAAA;AAChC,IAAA,MAAM,YAAY,IAAK,CAAA,SAAA,CAAA;AACvB,IAAA,MAAM,SAAS,IAAK,CAAA,MAAA,CAAA;AAEpB,IAAA,MAAM,iBAAoB,GAAA,IAAA,CAAK,MAAO,CAAA,MAAA,CAAO,QAAQ,CAAA,CAAA;AACrD,IAAM,MAAA,YAAA,GACL,KAAK,MAAO,CAAA,WAAA,CAAA;AAEb,IAAA,MAAM,aAAgB,GAAA,uBAAA;AAAA,MACrB,SAAA,CAAU,WAAW,EAAC;AAAA,MACtB,iBAAqB,IAAA,EAAA;AAAA,KACtB,CAAA;AACA,IAAA,MAAM,WAAc,GAAA,uBAAA;AAAA,MACnB,SAAA,CAAU,WAAW,EAAC;AAAA,MACtB,IAAK,CAAA,MAAA,CAAO,MAAO,CAAA,MAAM,CAAK,IAAA,EAAA;AAAA,KAC/B,CAAA;AACA,IAAA,MAAM,UAAa,GAAA,uBAAA;AAAA,MAClB,SAAA,CAAU,WAAW,EAAC;AAAA,MACtB,OAAA;AAAA,KACD,CAAA;AAEA,IAAA,IAAI,CAAC,iBAAmB,EAAA;AACvB,MAAM,MAAA,IAAI,MAAM,6CAA6C,CAAA,CAAA;AAAA,KAC9D;AAEA,IAAA,IAAI,CAAC,YAAc,EAAA;AAClB,MAAA,MAAM,IAAI,KAAA;AAAA,QACT,4DAAA;AAAA,OACD,CAAA;AAAA,KACD;AAEA,IAAO,OAAA,OAAA;AAAA,MACN,YAAA,EAAc,QAAQ,GAAI,CAAA,CAAC,EAAE,EAAI,EAAA,EAAA,EAAI,UAAY,EAAA,KAAA,EAAY,KAAA;AAC5D,QAAA,MAAM,QAAW,GAAA,SAAA,CAAU,QAAU,EAAA,KAAA,CAAM,EAAS,CAAA,CAAA;AACpD,QAAA,MAAM,aACL,GAAA,SAAA,CAAU,QAAU,EAAA,UAAA,CACnB,iBACD,CAAA,CAAA;AAED,QAAA,MAAM,IAAO,GAAA,aAAA,EAAe,GAAI,CAAA,CAAC,IAAiB,KAAA;AACjD,UAAM,MAAA,GAAA,GAAM,UAAU,IAAM,EAAA,IAAA;AAAA,YAC3B,CAACA,SACAA,IAAI,CAAA,aAAa,MAAM,IACvBA,IAAAA,IAAAA,CAAI,WAAW,CAAM,KAAA,EAAA;AAAA,WACvB,CAAA;AACA,UAAA,OAAO,MAAM,UAAU,CAAA,GACpB,WAAW,GAAM,GAAA,UAAU,CAAC,CAC5B,GAAA,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/ChartAnalytics/models/multi-series.ts"],"names":["row"],"mappings":"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","file":"multi-series.js","sourcesContent":["import {\n\tPlotOptions,\n\tSeriesOptionsType,\n\tXAxisOptions,\n\tYAxisOptions,\n} from \"highcharts\";\nimport { compact, head } from \"lodash\";\nimport { MultiSeriesConfig } from \"../types/props.js\";\nimport { getAllCategories, getDimensionHeaderIndex } from \"../utils/chart.js\";\nimport { DHIS2Chart } from \"./index.js\";\n\nexport class DHIS2MultiSeriesChart extends DHIS2Chart {\n\tgetHighchartsType(): string {\n\t\treturn \"\";\n\t}\n\n\tgetPlotOptions(): PlotOptions {\n\t\treturn {\n\t\t\tcolumn: {},\n\t\t\tline: {},\n\t\t};\n\t}\n\n\tgetSeries(): SeriesOptionsType[] {\n\t\tconst analytics = this.analytics;\n\t\tconst config = this.config;\n\n\t\tconst categoryDimension = head(config.layout.category);\n\t\tconst seriesConfig: MultiSeriesConfig | undefined =\n\t\t\tthis.config.multiSeries;\n\n\t\tconst categoryIndex = getDimensionHeaderIndex(\n\t\t\tanalytics.headers ?? [],\n\t\t\tcategoryDimension ?? \"\",\n\t\t);\n\t\tconst seriesIndex = getDimensionHeaderIndex(\n\t\t\tanalytics.headers ?? [],\n\t\t\thead(config.layout.series) ?? \"\",\n\t\t);\n\t\tconst valueIndex = getDimensionHeaderIndex(\n\t\t\tanalytics.headers ?? [],\n\t\t\t\"value\",\n\t\t);\n\n\t\tif (!categoryDimension) {\n\t\t\tthrow new Error(\"At least one category dimension is required\");\n\t\t}\n\n\t\tif (!seriesConfig) {\n\t\t\tthrow new Error(\n\t\t\t\t\"MultiSeries config is required for chart type multi-series\",\n\t\t\t);\n\t\t}\n\n\t\treturn compact(\n\t\t\tseriesConfig?.series?.map(({ id, as, cumulative, yAxis }) => {\n\t\t\t\tconst dataItem = analytics.metaData?.items[id as any];\n\t\t\t\tconst categoryItems =\n\t\t\t\t\tanalytics.metaData?.dimensions[\n\t\t\t\t\t\tcategoryDimension as \"dx\" | \"ou\" | \"pe\"\n\t\t\t\t\t];\n\n\t\t\t\tconst data = categoryItems?.map((item: string) => {\n\t\t\t\t\tconst row = analytics.rows?.find(\n\t\t\t\t\t\t(row: any) =>\n\t\t\t\t\t\t\trow[categoryIndex] === item &&\n\t\t\t\t\t\t\trow[seriesIndex] === id,\n\t\t\t\t\t);\n\t\t\t\t\treturn row?.[valueIndex]\n\t\t\t\t\t\t? parseFloat(row?.[valueIndex])\n\t\t\t\t\t\t: null;\n\t\t\t\t});\n\n\t\t\t\tlet cumulativeData: number[] = [];\n\n\t\t\t\tif (cumulative) {\n\t\t\t\t\tcumulativeData =\n\t\t\t\t\t\tcompact(data)?.reduce((acc, curr, index) => {\n\t\t\t\t\t\t\tif (index === 0) {\n\t\t\t\t\t\t\t\treturn [...acc, curr];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn [...acc, acc[index - 1] + curr];\n\t\t\t\t\t\t}, [] as number[]) ?? [];\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tid,\n\t\t\t\t\tname: dataItem?.name,\n\t\t\t\t\tdata: cumulative ? cumulativeData : data,\n\t\t\t\t\ttype: as,\n\t\t\t\t\tyAxis: yAxis ?? 0,\n\t\t\t\t};\n\t\t\t}),\n\t\t) as SeriesOptionsType[];\n\t}\n\n\tgetXAxis(): XAxisOptions | undefined {\n\t\treturn {\n\t\t\ttype: \"category\",\n\t\t\tcategories: getAllCategories(this.analytics, this.config),\n\t\t\tcrosshair: true,\n\t\t\tlabels: {\n\t\t\t\tenabled: true,\n\t\t\t},\n\t\t\ttitle: { text: \"\" },\n\t\t};\n\t}\n\n\tgetYAxis(): YAxisOptions[] {\n\t\tlet yAxes: YAxisOptions[];\n\n\t\tif (this.config.multiSeries?.yAxes) {\n\t\t\tyAxes = this.config.multiSeries?.yAxes;\n\t\t} else {\n\t\t\tyAxes = super.getYAxis();\n\t\t}\n\n\t\tif (!this.config.multiSeries?.target) {\n\t\t\treturn yAxes;\n\t\t}\n\n\t\tconst { value, styles, label } = this.config.multiSeries?.target ?? {};\n\n\t\treturn [\n\t\t\t{\n\t\t\t\t...yAxes[0],\n\t\t\t\tplotLines: [\n\t\t\t\t\t...(yAxes[0].plotLines ?? []),\n\t\t\t\t\t{\n\t\t\t\t\t\tcolor: styles?.color ?? \"#00FF00\",\n\t\t\t\t\t\tdashStyle: styles?.dashStyle ?? \"Solid\",\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\twidth: styles?.width ?? 2,\n\t\t\t\t\t\tzIndex: styles?.zIndex ?? 1000,\n\t\t\t\t\t\tlabel: label,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t...yAxes.slice(1),\n\t\t];\n\t}\n}\n"]}
|
|
@@ -46,9 +46,10 @@ function getColumnSeries(analytics, header, config, highchartsType) {
|
|
|
46
46
|
analytics?.rows,
|
|
47
47
|
(row2) => row2[headerIndex ?? -1] === seriesDimensionValue && row2[categoryDimensionIndex ?? -1] === category
|
|
48
48
|
);
|
|
49
|
-
return row?.[valueIndex ?? -1] ? parseFloat(row?.[valueIndex ?? -1]) :
|
|
49
|
+
return row?.[valueIndex ?? -1] ? parseFloat(row?.[valueIndex ?? -1]) : null;
|
|
50
50
|
});
|
|
51
51
|
return {
|
|
52
|
+
id: seriesDimensionValue,
|
|
52
53
|
name: items?.[seriesDimensionValue]?.name,
|
|
53
54
|
data,
|
|
54
55
|
type: highchartsType,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/ChartAnalytics/utils/chart.ts"],"names":["header","row"],"mappings":";;;;;;;AAcO,SAAS,uBAAA,CACf,SACA,IACS,EAAA;AACT,EAAA,OAAO,SAAU,CAAA,OAAA,EAAS,EAAE,IAAA,EAAM,CAAA,CAAA;AACnC,CAAA;AAEO,SAAS,cAAA,CACf,SACA,EAAA,MAAA,EACA,cACC,EAAA;AACD,EAAM,MAAA,MAAA,GAAmB,OAAO,MAAO,CAAA,MAAA,CAAA;AAEvC,EAAO,OAAA,MAAA,CAAO,GAAI,CAAA,CAAC,UAAuB,KAAA;AACzC,IAAM,MAAA,MAAA,GAAS,WAAW,OAAS,EAAA,IAAA;AAAA,MAClC,CAACA,OAAgBA,KAAAA,OAAAA,CAAO,IAAS,KAAA,UAAA;AAAA,KAClC,CAAA;AACA,IAAA,IAAI,CAAC,MAAQ,EAAA;AACZ,MAAO,OAAA,KAAA,CAAA,CAAA;AAAA,KACR;AACA,IAAA,IAAI,WAAW,QAAU,EAAA;AACxB,MAAA,OAAO,eAAgB,CAAA,SAAA,EAAW,MAAQ,EAAA,MAAA,EAAQ,cAAc,CAAA,CAAA;AAAA,KACjE;AAAA,GACA,EAAE,CAAC,CAAA,CAAA;AACL,CAAA;AAEO,SAAS,eACf,CAAA,SAAA,EACA,MACA,EAAA,MAAA,EACA,cACM,EAAA;AACN,EAAM,MAAA,WAAA,GAAc,WAAW,OAAS,EAAA,SAAA;AAAA,IACvC,CAAC,CAAA,KAAqB,MAAO,CAAA,IAAA,KAAS,CAAE,CAAA,IAAA;AAAA,GACzC,CAAA;AACA,EAAM,MAAA,UAAA,GAAa,WAAW,OAAS,EAAA,SAAA;AAAA,IACtC,CAAC,CAAwB,KAAA,CAAA,CAAE,IAAS,KAAA,OAAA;AAAA,GACrC,CAAA;AAEA,EAAM,MAAA,MAAA,GAAS,MAAO,CAAA,MAAA,IAAU,EAAC,CAAA;AAEjC,EAAA,MAAM,EAAE,KAAO,EAAA,UAAA,EAAe,GAAA,SAAA,EAAW,YAAY,EAAC,CAAA;AACtD,EAAM,MAAA,mBAAA,GAAsB,OAAO,MAAO,CAAA,QAAA,CAAA;AAE1C,EAAA,MAAM,qBACL,GAAA,UAAA,GAAa,MAAO,CAAA,IAA0B,KAAK,EAAC,CAAA;AAErD,EAAO,OAAA,IAAA;AAAA,IACN,mBAAA,EAAqB,GAAI,CAAA,CAAC,iBAA8B,KAAA;AACvD,MAAM,MAAA,UAAA,GAAuB,aAC5B,iBACD,CAAA,CAAA;AACA,MAAM,MAAA,sBAAA,GAAyB,WAAW,OAAS,EAAA,SAAA;AAAA,QAClD,CAAC,CAAwB,KAAA,CAAA,CAAE,IAAS,KAAA,iBAAA;AAAA,OACrC,CAAA;AACA,MAAA,OAAO,qBAAuB,EAAA,GAAA;AAAA,QAC7B,CAAC,sBAA8B,KAAU,KAAA;AACxC,UAAA,MAAM,IAAO,GAAA,UAAA,EAAY,GAAI,CAAA,CAAC,QAAqB,KAAA;AAClD,YAAA,MAAM,GAAM,GAAA,IAAA;AAAA,cACX,SAAW,EAAA,IAAA;AAAA,cACX,CAACC,IACAA,KAAAA,IAAAA,CAAI,WAAe,IAAA,CAAA,CAAE,MACpB,oBACDA,IAAAA,IAAAA,CAAI,sBAA0B,IAAA,CAAA,CAAE,CAAM,KAAA,QAAA;AAAA,aACxC,CAAA;AACA,YAAO,OAAA,GAAA,GAAM,cAAc,CAAE,CAAA,CAAA,GAC1B,WAAW,GAAM,GAAA,UAAA,IAAc,CAAE,CAAA,CAAC,CAClC,GAAA,CAAA,CAAA;AAAA,WACH,CAAA,CAAA;AACD,UAAO,OAAA;AAAA,YACN,IAAA,EAAM,KAAQ,GAAA,oBAA2B,CAAG,EAAA,IAAA;AAAA,YAC5C,IAAA;AAAA,YACA,IAAM,EAAA,cAAA;AAAA,YACN,KAAO,EAAA,MAAA,CAAO,KAAQ,GAAA,MAAA,CAAO,MAAM,CAAA;AAAA,WACpC,CAAA;AAAA,SACD;AAAA,OACD,CAAA;AAAA,KACA,CAAA;AAAA,GACF,CAAA;AACD,CAAA;AAEA,SAAS,cACR,EAAE,IAAA,IACF,EAAE,KAAA,EAAO,YACE,EAAA;AACX,EAAM,MAAA,UAAA,GAAuB,aAC5B,IACD,CAAA,CAAA;AAEA,EAAO,OAAA,UAAA,EAAY,GAAI,CAAA,CAAC,QAAqB,KAAA;AAC5C,IAAO,OAAA,KAAA,CAAM,QAAe,CAAA,EAAG,IAAQ,IAAA,EAAA,CAAA;AAAA,GACvC,CAAA,CAAA;AACF,CAAA;AAEO,SAAS,gBAAA,CACf,WACA,MACW,EAAA;AACX,EAAM,MAAA,UAAA,GAAa,OAAO,MAAO,CAAA,QAAA,CAAA;AAEjC,EAAO,OAAA,OAAA;AAAA,IACN,UAAA,EAAY,GAAI,CAAA,CAAC,QAAqB,KAAA;AACrC,MAAM,MAAA,MAAA,GAAS,WAAW,OAAS,EAAA,IAAA;AAAA,QAClC,CAACD,OAAgBA,KAAAA,OAAAA,CAAO,IAAS,KAAA,QAAA;AAAA,OAClC,CAAA;AACA,MAAA,IAAI,CAAC,MAAQ,EAAA;AACZ,QAAO,OAAA,KAAA,CAAA,CAAA;AAAA,OACR;AACA,MAAA,IAAI,WAAW,QAAU,EAAA;AACxB,QAAO,OAAA,aAAA,CAAc,MAAQ,EAAA,SAAA,EAAW,QAAQ,CAAA,CAAA;AAAA,OACjD;AAAA,KACA,CAAA;AAAA,IACA,CAAC,CAAA,CAAA;AACJ,CAAA;AAEO,SAAS,YACf,CAAA,MAAA,EACA,EAAE,IAAA,EACD,EAAA;AACD,EAAI,IAAA,IAAA,KAAS,OAAO,IAAM,EAAA;AACzB,IAAA,OAAO,MAAO,CAAA,MAAA,CAAA;AAAA,GACf;AAEA,EAAA,MAAM,aAAgB,GAAA,EAAE,GAAG,MAAA,CAAO,MAAO,EAAA,CAAA;AAEzC,EAAA,QAAQ,IAAM;AAAA,IACb,KAAK,KAAA;AACJ,MAAI,GAAA,CAAA,aAAA,EAAe,UAAY,EAAA,EAAE,CAAA,CAAA;AACjC,MAAI,IAAA,OAAA,CAAQ,aAAc,CAAA,MAAM,CAAG,EAAA;AAClC,QAAA,IAAI,CAAC,OAAA,CAAQ,MAAO,CAAA,MAAA,CAAO,QAAQ,CAAG,EAAA;AACrC,UAAA,GAAA,CAAI,eAAe,QAAU,EAAA;AAAA,YAC5B,IAAA,CAAK,MAAO,CAAA,MAAA,CAAO,QAAQ,CAAA;AAAA,WAC3B,CAAA,CAAA;AAAA,SACK,MAAA;AACN,UAAM,MAAA,IAAI,MAAM,8BAA8B,CAAA,CAAA;AAAA,SAC/C;AAAA,OACD;AACA,MAAI,IAAA,aAAA,CAAc,MAAO,CAAA,MAAA,GAAS,CAAG,EAAA;AACpC,QAAA,GAAA,CAAI,eAAe,QAAU,EAAA,CAAC,KAAK,aAAc,CAAA,MAAM,CAAC,CAAC,CAAA,CAAA;AAAA,OAC1D;AAAA,GACF;AAEA,EAAO,OAAA,aAAA,CAAA;AACR,CAAA;AAEO,SAAS,gBAAA,CACf,EACA,EAAA,SAAA,EACA,MACa,EAAA;AACb,EAAA,QAAQ,OAAO,IAAM;AAAA,IACpB,KAAK,QAAA;AACJ,MAAA,OAAO,IAAI,gBAAA,CAAiB,EAAI,EAAA,SAAA,EAAW,MAAM,CAAA,CAAA;AAAA,IAClD,KAAK,KAAA;AACJ,MAAA,OAAO,IAAI,aAAA,CAAc,EAAI,EAAA,SAAA,EAAW,MAAM,CAAA,CAAA;AAAA,IAC/C,KAAK,aAAA;AACJ,MAAA,OAAO,IAAI,oBAAA,CAAqB,EAAI,EAAA,SAAA,EAAW,MAAM,CAAA,CAAA;AAAA,IACtD,KAAK,gBAAA;AACJ,MAAA,OAAO,IAAI,uBAAA,CAAwB,EAAI,EAAA,SAAA,EAAW,MAAM,CAAA,CAAA;AAAA,IACzD,KAAK,KAAA;AACJ,MAAA,OAAO,IAAI,aAAA,CAAc,EAAI,EAAA,SAAA,EAAW,MAAM,CAAA,CAAA;AAAA,IAC/C,KAAK,MAAA;AACJ,MAAA,OAAO,IAAI,cAAA,CAAe,EAAI,EAAA,SAAA,EAAW,MAAM,CAAA,CAAA;AAAA,IAChD,KAAK,cAAA;AACJ,MAAA,OAAO,IAAI,qBAAA,CAAsB,EAAI,EAAA,SAAA,EAAW,MAAM,CAAA,CAAA;AAAA,IACvD;AACC,MAAA,MAAM,IAAI,KAAA,CAAM,CAA2B,wBAAA,EAAA,MAAA,CAAO,IAAI,CAAE,CAAA,CAAA,CAAA;AAAA,GAC1D;AACD","file":"chart.js","sourcesContent":["import type {\n\tAnalytics,\n\tAnalyticsHeader,\n\tAnalyticsMetadata,\n} from \"@hisptz/dhis2-utils\";\nimport { compact, find, findIndex, head, isEmpty, set } from \"lodash\";\nimport { DHIS2Chart } from \"../models/index.js\";\nimport { DHIS2ColumnChart, DHIS2StackedColumnChart } from \"../models/column.js\";\nimport { DHIS2LineChart } from \"../models/line.js\";\nimport { DHIS2MultiSeriesChart } from \"../models/multi-series.js\";\nimport { DHIS2PieChart } from \"../models/pie.js\";\nimport { ChartConfig, ChartType } from \"../types/props.js\";\nimport { DHIS2BarChart, DHIS2StackedBarChart } from \"../models/bar.js\";\n\nexport function getDimensionHeaderIndex(\n\theaders: AnalyticsHeader[],\n\tname: string,\n): number {\n\treturn findIndex(headers, { name });\n}\n\nexport function getPointSeries(\n\tanalytics: Analytics,\n\tconfig: ChartConfig,\n\thighchartsType: string,\n) {\n\tconst series: string[] = config.layout.series;\n\n\treturn series.map((seriesName: string) => {\n\t\tconst header = analytics?.headers?.find(\n\t\t\t(header: any) => header.name === seriesName,\n\t\t);\n\t\tif (!header) {\n\t\t\treturn undefined;\n\t\t}\n\t\tif (analytics?.metaData) {\n\t\t\treturn getColumnSeries(analytics, header, config, highchartsType);\n\t\t}\n\t})[0];\n}\n\nexport function getColumnSeries(\n\tanalytics: Analytics,\n\theader: AnalyticsHeader,\n\tconfig: ChartConfig,\n\thighchartsType: string,\n): any {\n\tconst headerIndex = analytics?.headers?.findIndex(\n\t\t(h: { name: any }) => header.name === h.name,\n\t);\n\tconst valueIndex = analytics?.headers?.findIndex(\n\t\t(h: { name: string }) => h.name === \"value\",\n\t);\n\n\tconst colors = config.colors ?? [];\n\n\tconst { items, dimensions } = analytics?.metaData ?? {};\n\tconst categoriesDimension = config.layout.category;\n\n\tconst seriesDimensionValues: string[] =\n\t\tdimensions?.[header.name as \"dx\" | \"ou\" | \"pe\"] ?? [];\n\n\treturn head(\n\t\tcategoriesDimension?.map((categoryDimension: string) => {\n\t\t\tconst categories: string[] = dimensions?.[\n\t\t\t\tcategoryDimension as \"dx\" | \"ou\" | \"pe\"\n\t\t\t] as any;\n\t\t\tconst categoryDimensionIndex = analytics?.headers?.findIndex(\n\t\t\t\t(h: { name: string }) => h.name === categoryDimension,\n\t\t\t);\n\t\t\treturn seriesDimensionValues?.map(\n\t\t\t\t(seriesDimensionValue: string, index) => {\n\t\t\t\t\tconst data = categories?.map((category: string) => {\n\t\t\t\t\t\tconst row = find(\n\t\t\t\t\t\t\tanalytics?.rows,\n\t\t\t\t\t\t\t(row: any) =>\n\t\t\t\t\t\t\t\trow[headerIndex ?? -1] ===\n\t\t\t\t\t\t\t\t\tseriesDimensionValue &&\n\t\t\t\t\t\t\t\trow[categoryDimensionIndex ?? -1] === category,\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn row?.[valueIndex ?? -1]\n\t\t\t\t\t\t\t? parseFloat(row?.[valueIndex ?? -1])\n\t\t\t\t\t\t\t: 0;\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\tname: items?.[seriesDimensionValue as any]?.name,\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\ttype: highchartsType,\n\t\t\t\t\t\tcolor: colors[index % colors.length],\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t);\n\t\t}),\n\t);\n}\n\nfunction getCategories(\n\t{ name }: AnalyticsHeader,\n\t{ items, dimensions }: AnalyticsMetadata,\n): string[] {\n\tconst categories: string[] = dimensions?.[\n\t\tname as \"dx\" | \"ou\" | \"pe\"\n\t] as any;\n\n\treturn categories?.map((category: string) => {\n\t\treturn items[category as any]?.name ?? \"\";\n\t}) as unknown as string[];\n}\n\nexport function getAllCategories(\n\tanalytics: Analytics,\n\tconfig: ChartConfig,\n): string[] {\n\tconst categories = config.layout.category;\n\n\treturn compact(\n\t\tcategories?.map((category: string) => {\n\t\t\tconst header = analytics?.headers?.find(\n\t\t\t\t(header: any) => header.name === category,\n\t\t\t);\n\t\t\tif (!header) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tif (analytics?.metaData) {\n\t\t\t\treturn getCategories(header, analytics?.metaData);\n\t\t\t}\n\t\t}),\n\t)[0];\n}\n\nexport function updateLayout(\n\tconfig: ChartConfig,\n\t{ type }: { type: ChartType },\n) {\n\tif (type === config.type) {\n\t\treturn config.layout;\n\t}\n\n\tconst updatedLayout = { ...config.layout };\n\n\tswitch (type) {\n\t\tcase \"pie\":\n\t\t\tset(updatedLayout, \"category\", []);\n\t\t\tif (isEmpty(updatedLayout.series)) {\n\t\t\t\tif (!isEmpty(config.layout.category)) {\n\t\t\t\t\tset(updatedLayout, \"series\", [\n\t\t\t\t\t\thead(config.layout.category),\n\t\t\t\t\t]);\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(\"Invalid layout for pie chart\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (updatedLayout.series.length > 1) {\n\t\t\t\tset(updatedLayout, \"series\", [head(updatedLayout.series)]);\n\t\t\t}\n\t}\n\n\treturn updatedLayout;\n}\n\nexport function getChartInstance(\n\tid: string,\n\tanalytics: Analytics,\n\tconfig: ChartConfig,\n): DHIS2Chart {\n\tswitch (config.type) {\n\t\tcase \"column\":\n\t\t\treturn new DHIS2ColumnChart(id, analytics, config);\n\t\tcase \"bar\":\n\t\t\treturn new DHIS2BarChart(id, analytics, config);\n\t\tcase \"stacked-bar\":\n\t\t\treturn new DHIS2StackedBarChart(id, analytics, config);\n\t\tcase \"stacked-column\":\n\t\t\treturn new DHIS2StackedColumnChart(id, analytics, config);\n\t\tcase \"pie\":\n\t\t\treturn new DHIS2PieChart(id, analytics, config);\n\t\tcase \"line\":\n\t\t\treturn new DHIS2LineChart(id, analytics, config);\n\t\tcase \"multi-series\":\n\t\t\treturn new DHIS2MultiSeriesChart(id, analytics, config);\n\t\tdefault:\n\t\t\tthrow new Error(`Unsupported chart type: ${config.type}`);\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/ChartAnalytics/utils/chart.ts"],"names":["header","row"],"mappings":";;;;;;;AAcO,SAAS,uBAAA,CACf,SACA,IACS,EAAA;AACT,EAAA,OAAO,SAAU,CAAA,OAAA,EAAS,EAAE,IAAA,EAAM,CAAA,CAAA;AACnC,CAAA;AAEO,SAAS,cAAA,CACf,SACA,EAAA,MAAA,EACA,cACC,EAAA;AACD,EAAM,MAAA,MAAA,GAAmB,OAAO,MAAO,CAAA,MAAA,CAAA;AAEvC,EAAO,OAAA,MAAA,CAAO,GAAI,CAAA,CAAC,UAAuB,KAAA;AACzC,IAAM,MAAA,MAAA,GAAS,WAAW,OAAS,EAAA,IAAA;AAAA,MAClC,CAACA,OAAgBA,KAAAA,OAAAA,CAAO,IAAS,KAAA,UAAA;AAAA,KAClC,CAAA;AACA,IAAA,IAAI,CAAC,MAAQ,EAAA;AACZ,MAAO,OAAA,KAAA,CAAA,CAAA;AAAA,KACR;AACA,IAAA,IAAI,WAAW,QAAU,EAAA;AACxB,MAAA,OAAO,eAAgB,CAAA,SAAA,EAAW,MAAQ,EAAA,MAAA,EAAQ,cAAc,CAAA,CAAA;AAAA,KACjE;AAAA,GACA,EAAE,CAAC,CAAA,CAAA;AACL,CAAA;AAEO,SAAS,eACf,CAAA,SAAA,EACA,MACA,EAAA,MAAA,EACA,cACM,EAAA;AACN,EAAM,MAAA,WAAA,GAAc,WAAW,OAAS,EAAA,SAAA;AAAA,IACvC,CAAC,CAAA,KAAqB,MAAO,CAAA,IAAA,KAAS,CAAE,CAAA,IAAA;AAAA,GACzC,CAAA;AACA,EAAM,MAAA,UAAA,GAAa,WAAW,OAAS,EAAA,SAAA;AAAA,IACtC,CAAC,CAAwB,KAAA,CAAA,CAAE,IAAS,KAAA,OAAA;AAAA,GACrC,CAAA;AAEA,EAAM,MAAA,MAAA,GAAS,MAAO,CAAA,MAAA,IAAU,EAAC,CAAA;AAEjC,EAAA,MAAM,EAAE,KAAO,EAAA,UAAA,EAAe,GAAA,SAAA,EAAW,YAAY,EAAC,CAAA;AACtD,EAAM,MAAA,mBAAA,GAAsB,OAAO,MAAO,CAAA,QAAA,CAAA;AAE1C,EAAA,MAAM,qBACL,GAAA,UAAA,GAAa,MAAO,CAAA,IAA0B,KAAK,EAAC,CAAA;AAErD,EAAO,OAAA,IAAA;AAAA,IACN,mBAAA,EAAqB,GAAI,CAAA,CAAC,iBAA8B,KAAA;AACvD,MAAM,MAAA,UAAA,GAAuB,aAC5B,iBACD,CAAA,CAAA;AACA,MAAM,MAAA,sBAAA,GAAyB,WAAW,OAAS,EAAA,SAAA;AAAA,QAClD,CAAC,CAAwB,KAAA,CAAA,CAAE,IAAS,KAAA,iBAAA;AAAA,OACrC,CAAA;AACA,MAAA,OAAO,qBAAuB,EAAA,GAAA;AAAA,QAC7B,CAAC,sBAA8B,KAAU,KAAA;AACxC,UAAA,MAAM,IAAO,GAAA,UAAA,EAAY,GAAI,CAAA,CAAC,QAAqB,KAAA;AAClD,YAAA,MAAM,GAAM,GAAA,IAAA;AAAA,cACX,SAAW,EAAA,IAAA;AAAA,cACX,CAACC,IACAA,KAAAA,IAAAA,CAAI,WAAe,IAAA,CAAA,CAAE,MACpB,oBACDA,IAAAA,IAAAA,CAAI,sBAA0B,IAAA,CAAA,CAAE,CAAM,KAAA,QAAA;AAAA,aACxC,CAAA;AACA,YAAO,OAAA,GAAA,GAAM,cAAc,CAAE,CAAA,CAAA,GAC1B,WAAW,GAAM,GAAA,UAAA,IAAc,CAAE,CAAA,CAAC,CAClC,GAAA,IAAA,CAAA;AAAA,WACH,CAAA,CAAA;AACD,UAAO,OAAA;AAAA,YACN,EAAI,EAAA,oBAAA;AAAA,YACJ,IAAA,EAAM,KAAQ,GAAA,oBAA2B,CAAG,EAAA,IAAA;AAAA,YAC5C,IAAA;AAAA,YACA,IAAM,EAAA,cAAA;AAAA,YACN,KAAO,EAAA,MAAA,CAAO,KAAQ,GAAA,MAAA,CAAO,MAAM,CAAA;AAAA,WACpC,CAAA;AAAA,SACD;AAAA,OACD,CAAA;AAAA,KACA,CAAA;AAAA,GACF,CAAA;AACD,CAAA;AAEA,SAAS,cACR,EAAE,IAAA,IACF,EAAE,KAAA,EAAO,YACE,EAAA;AACX,EAAM,MAAA,UAAA,GAAuB,aAC5B,IACD,CAAA,CAAA;AAEA,EAAO,OAAA,UAAA,EAAY,GAAI,CAAA,CAAC,QAAqB,KAAA;AAC5C,IAAO,OAAA,KAAA,CAAM,QAAe,CAAA,EAAG,IAAQ,IAAA,EAAA,CAAA;AAAA,GACvC,CAAA,CAAA;AACF,CAAA;AAEO,SAAS,gBAAA,CACf,WACA,MACW,EAAA;AACX,EAAM,MAAA,UAAA,GAAa,OAAO,MAAO,CAAA,QAAA,CAAA;AAEjC,EAAO,OAAA,OAAA;AAAA,IACN,UAAA,EAAY,GAAI,CAAA,CAAC,QAAqB,KAAA;AACrC,MAAM,MAAA,MAAA,GAAS,WAAW,OAAS,EAAA,IAAA;AAAA,QAClC,CAACD,OAAgBA,KAAAA,OAAAA,CAAO,IAAS,KAAA,QAAA;AAAA,OAClC,CAAA;AACA,MAAA,IAAI,CAAC,MAAQ,EAAA;AACZ,QAAO,OAAA,KAAA,CAAA,CAAA;AAAA,OACR;AACA,MAAA,IAAI,WAAW,QAAU,EAAA;AACxB,QAAO,OAAA,aAAA,CAAc,MAAQ,EAAA,SAAA,EAAW,QAAQ,CAAA,CAAA;AAAA,OACjD;AAAA,KACA,CAAA;AAAA,IACA,CAAC,CAAA,CAAA;AACJ,CAAA;AAEO,SAAS,YACf,CAAA,MAAA,EACA,EAAE,IAAA,EACD,EAAA;AACD,EAAI,IAAA,IAAA,KAAS,OAAO,IAAM,EAAA;AACzB,IAAA,OAAO,MAAO,CAAA,MAAA,CAAA;AAAA,GACf;AAEA,EAAA,MAAM,aAAgB,GAAA,EAAE,GAAG,MAAA,CAAO,MAAO,EAAA,CAAA;AAEzC,EAAA,QAAQ,IAAM;AAAA,IACb,KAAK,KAAA;AACJ,MAAI,GAAA,CAAA,aAAA,EAAe,UAAY,EAAA,EAAE,CAAA,CAAA;AACjC,MAAI,IAAA,OAAA,CAAQ,aAAc,CAAA,MAAM,CAAG,EAAA;AAClC,QAAA,IAAI,CAAC,OAAA,CAAQ,MAAO,CAAA,MAAA,CAAO,QAAQ,CAAG,EAAA;AACrC,UAAA,GAAA,CAAI,eAAe,QAAU,EAAA;AAAA,YAC5B,IAAA,CAAK,MAAO,CAAA,MAAA,CAAO,QAAQ,CAAA;AAAA,WAC3B,CAAA,CAAA;AAAA,SACK,MAAA;AACN,UAAM,MAAA,IAAI,MAAM,8BAA8B,CAAA,CAAA;AAAA,SAC/C;AAAA,OACD;AACA,MAAI,IAAA,aAAA,CAAc,MAAO,CAAA,MAAA,GAAS,CAAG,EAAA;AACpC,QAAA,GAAA,CAAI,eAAe,QAAU,EAAA,CAAC,KAAK,aAAc,CAAA,MAAM,CAAC,CAAC,CAAA,CAAA;AAAA,OAC1D;AAAA,GACF;AAEA,EAAO,OAAA,aAAA,CAAA;AACR,CAAA;AAEO,SAAS,gBAAA,CACf,EACA,EAAA,SAAA,EACA,MACa,EAAA;AACb,EAAA,QAAQ,OAAO,IAAM;AAAA,IACpB,KAAK,QAAA;AACJ,MAAA,OAAO,IAAI,gBAAA,CAAiB,EAAI,EAAA,SAAA,EAAW,MAAM,CAAA,CAAA;AAAA,IAClD,KAAK,KAAA;AACJ,MAAA,OAAO,IAAI,aAAA,CAAc,EAAI,EAAA,SAAA,EAAW,MAAM,CAAA,CAAA;AAAA,IAC/C,KAAK,aAAA;AACJ,MAAA,OAAO,IAAI,oBAAA,CAAqB,EAAI,EAAA,SAAA,EAAW,MAAM,CAAA,CAAA;AAAA,IACtD,KAAK,gBAAA;AACJ,MAAA,OAAO,IAAI,uBAAA,CAAwB,EAAI,EAAA,SAAA,EAAW,MAAM,CAAA,CAAA;AAAA,IACzD,KAAK,KAAA;AACJ,MAAA,OAAO,IAAI,aAAA,CAAc,EAAI,EAAA,SAAA,EAAW,MAAM,CAAA,CAAA;AAAA,IAC/C,KAAK,MAAA;AACJ,MAAA,OAAO,IAAI,cAAA,CAAe,EAAI,EAAA,SAAA,EAAW,MAAM,CAAA,CAAA;AAAA,IAChD,KAAK,cAAA;AACJ,MAAA,OAAO,IAAI,qBAAA,CAAsB,EAAI,EAAA,SAAA,EAAW,MAAM,CAAA,CAAA;AAAA,IACvD;AACC,MAAA,MAAM,IAAI,KAAA,CAAM,CAA2B,wBAAA,EAAA,MAAA,CAAO,IAAI,CAAE,CAAA,CAAA,CAAA;AAAA,GAC1D;AACD","file":"chart.js","sourcesContent":["import type {\n\tAnalytics,\n\tAnalyticsHeader,\n\tAnalyticsMetadata,\n} from \"@hisptz/dhis2-utils\";\nimport { compact, find, findIndex, head, isEmpty, set } from \"lodash\";\nimport { DHIS2Chart } from \"../models/index.js\";\nimport { DHIS2ColumnChart, DHIS2StackedColumnChart } from \"../models/column.js\";\nimport { DHIS2LineChart } from \"../models/line.js\";\nimport { DHIS2MultiSeriesChart } from \"../models/multi-series.js\";\nimport { DHIS2PieChart } from \"../models/pie.js\";\nimport { ChartConfig, ChartType } from \"../types/props.js\";\nimport { DHIS2BarChart, DHIS2StackedBarChart } from \"../models/bar.js\";\n\nexport function getDimensionHeaderIndex(\n\theaders: AnalyticsHeader[],\n\tname: string,\n): number {\n\treturn findIndex(headers, { name });\n}\n\nexport function getPointSeries(\n\tanalytics: Analytics,\n\tconfig: ChartConfig,\n\thighchartsType: string,\n) {\n\tconst series: string[] = config.layout.series;\n\n\treturn series.map((seriesName: string) => {\n\t\tconst header = analytics?.headers?.find(\n\t\t\t(header: any) => header.name === seriesName,\n\t\t);\n\t\tif (!header) {\n\t\t\treturn undefined;\n\t\t}\n\t\tif (analytics?.metaData) {\n\t\t\treturn getColumnSeries(analytics, header, config, highchartsType);\n\t\t}\n\t})[0];\n}\n\nexport function getColumnSeries(\n\tanalytics: Analytics,\n\theader: AnalyticsHeader,\n\tconfig: ChartConfig,\n\thighchartsType: string,\n): any {\n\tconst headerIndex = analytics?.headers?.findIndex(\n\t\t(h: { name: any }) => header.name === h.name,\n\t);\n\tconst valueIndex = analytics?.headers?.findIndex(\n\t\t(h: { name: string }) => h.name === \"value\",\n\t);\n\n\tconst colors = config.colors ?? [];\n\n\tconst { items, dimensions } = analytics?.metaData ?? {};\n\tconst categoriesDimension = config.layout.category;\n\n\tconst seriesDimensionValues: string[] =\n\t\tdimensions?.[header.name as \"dx\" | \"ou\" | \"pe\"] ?? [];\n\n\treturn head(\n\t\tcategoriesDimension?.map((categoryDimension: string) => {\n\t\t\tconst categories: string[] = dimensions?.[\n\t\t\t\tcategoryDimension as \"dx\" | \"ou\" | \"pe\"\n\t\t\t] as any;\n\t\t\tconst categoryDimensionIndex = analytics?.headers?.findIndex(\n\t\t\t\t(h: { name: string }) => h.name === categoryDimension,\n\t\t\t);\n\t\t\treturn seriesDimensionValues?.map(\n\t\t\t\t(seriesDimensionValue: string, index) => {\n\t\t\t\t\tconst data = categories?.map((category: string) => {\n\t\t\t\t\t\tconst row = find(\n\t\t\t\t\t\t\tanalytics?.rows,\n\t\t\t\t\t\t\t(row: any) =>\n\t\t\t\t\t\t\t\trow[headerIndex ?? -1] ===\n\t\t\t\t\t\t\t\t\tseriesDimensionValue &&\n\t\t\t\t\t\t\t\trow[categoryDimensionIndex ?? -1] === category,\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn row?.[valueIndex ?? -1]\n\t\t\t\t\t\t\t? parseFloat(row?.[valueIndex ?? -1])\n\t\t\t\t\t\t\t: null;\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: seriesDimensionValue,\n\t\t\t\t\t\tname: items?.[seriesDimensionValue as any]?.name,\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\ttype: highchartsType,\n\t\t\t\t\t\tcolor: colors[index % colors.length],\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t);\n\t\t}),\n\t);\n}\n\nfunction getCategories(\n\t{ name }: AnalyticsHeader,\n\t{ items, dimensions }: AnalyticsMetadata,\n): string[] {\n\tconst categories: string[] = dimensions?.[\n\t\tname as \"dx\" | \"ou\" | \"pe\"\n\t] as any;\n\n\treturn categories?.map((category: string) => {\n\t\treturn items[category as any]?.name ?? \"\";\n\t}) as unknown as string[];\n}\n\nexport function getAllCategories(\n\tanalytics: Analytics,\n\tconfig: ChartConfig,\n): string[] {\n\tconst categories = config.layout.category;\n\n\treturn compact(\n\t\tcategories?.map((category: string) => {\n\t\t\tconst header = analytics?.headers?.find(\n\t\t\t\t(header: any) => header.name === category,\n\t\t\t);\n\t\t\tif (!header) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tif (analytics?.metaData) {\n\t\t\t\treturn getCategories(header, analytics?.metaData);\n\t\t\t}\n\t\t}),\n\t)[0];\n}\n\nexport function updateLayout(\n\tconfig: ChartConfig,\n\t{ type }: { type: ChartType },\n) {\n\tif (type === config.type) {\n\t\treturn config.layout;\n\t}\n\n\tconst updatedLayout = { ...config.layout };\n\n\tswitch (type) {\n\t\tcase \"pie\":\n\t\t\tset(updatedLayout, \"category\", []);\n\t\t\tif (isEmpty(updatedLayout.series)) {\n\t\t\t\tif (!isEmpty(config.layout.category)) {\n\t\t\t\t\tset(updatedLayout, \"series\", [\n\t\t\t\t\t\thead(config.layout.category),\n\t\t\t\t\t]);\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(\"Invalid layout for pie chart\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (updatedLayout.series.length > 1) {\n\t\t\t\tset(updatedLayout, \"series\", [head(updatedLayout.series)]);\n\t\t\t}\n\t}\n\n\treturn updatedLayout;\n}\n\nexport function getChartInstance(\n\tid: string,\n\tanalytics: Analytics,\n\tconfig: ChartConfig,\n): DHIS2Chart {\n\tswitch (config.type) {\n\t\tcase \"column\":\n\t\t\treturn new DHIS2ColumnChart(id, analytics, config);\n\t\tcase \"bar\":\n\t\t\treturn new DHIS2BarChart(id, analytics, config);\n\t\tcase \"stacked-bar\":\n\t\t\treturn new DHIS2StackedBarChart(id, analytics, config);\n\t\tcase \"stacked-column\":\n\t\t\treturn new DHIS2StackedColumnChart(id, analytics, config);\n\t\tcase \"pie\":\n\t\t\treturn new DHIS2PieChart(id, analytics, config);\n\t\tcase \"line\":\n\t\t\treturn new DHIS2LineChart(id, analytics, config);\n\t\tcase \"multi-series\":\n\t\t\treturn new DHIS2MultiSeriesChart(id, analytics, config);\n\t\tdefault:\n\t\t\tthrow new Error(`Unsupported chart type: ${config.type}`);\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-series.d.ts","sourceRoot":"","sources":["../../../../../src/components/ChartAnalytics/models/multi-series.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,MAAM,YAAY,CAAC;AAIpB,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,qBAAa,qBAAsB,SAAQ,UAAU;IACpD,iBAAiB,IAAI,MAAM;IAI3B,cAAc,IAAI,WAAW;IAO7B,SAAS,IAAI,iBAAiB,EAAE;
|
|
1
|
+
{"version":3,"file":"multi-series.d.ts","sourceRoot":"","sources":["../../../../../src/components/ChartAnalytics/models/multi-series.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,MAAM,YAAY,CAAC;AAIpB,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,qBAAa,qBAAsB,SAAQ,UAAU;IACpD,iBAAiB,IAAI,MAAM;IAI3B,cAAc,IAAI,WAAW;IAO7B,SAAS,IAAI,iBAAiB,EAAE;IAyEhC,QAAQ,IAAI,YAAY,GAAG,SAAS;IAYpC,QAAQ,IAAI,YAAY,EAAE;CAiC1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart.d.ts","sourceRoot":"","sources":["../../../../../src/components/ChartAnalytics/utils/chart.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,SAAS,EACT,eAAe,EAEf,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAKhD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG3D,wBAAgB,uBAAuB,CACtC,OAAO,EAAE,eAAe,EAAE,EAC1B,IAAI,EAAE,MAAM,GACV,MAAM,CAER;AAED,wBAAgB,cAAc,CAC7B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,WAAW,EACnB,cAAc,EAAE,MAAM,OAetB;AAED,wBAAgB,eAAe,CAC9B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,WAAW,EACnB,cAAc,EAAE,MAAM,GACpB,GAAG,
|
|
1
|
+
{"version":3,"file":"chart.d.ts","sourceRoot":"","sources":["../../../../../src/components/ChartAnalytics/utils/chart.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,SAAS,EACT,eAAe,EAEf,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAKhD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG3D,wBAAgB,uBAAuB,CACtC,OAAO,EAAE,eAAe,EAAE,EAC1B,IAAI,EAAE,MAAM,GACV,MAAM,CAER;AAED,wBAAgB,cAAc,CAC7B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,WAAW,EACnB,cAAc,EAAE,MAAM,OAetB;AAED,wBAAgB,eAAe,CAC9B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,WAAW,EACnB,cAAc,EAAE,MAAM,GACpB,GAAG,CAiDL;AAeD,wBAAgB,gBAAgB,CAC/B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,WAAW,GACjB,MAAM,EAAE,CAgBV;AAED,wBAAgB,YAAY,CAC3B,MAAM,EAAE,WAAW,EACnB,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE;;;;EA0B7B;AAED,wBAAgB,gBAAgB,CAC/B,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,WAAW,GACjB,UAAU,CAmBZ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hisptz/dhis2-analytics",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.53",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"module": "./dist/esm/index.js",
|
|
6
6
|
"types": "./dist/types/index.d.ts",
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
"tsup": "^8.0.1",
|
|
47
47
|
"typescript": "^5.3.3",
|
|
48
48
|
"usehooks-ts": "^2.9.2",
|
|
49
|
-
"@repo/
|
|
50
|
-
"@repo/
|
|
49
|
+
"@repo/typescript-config": "0.0.0",
|
|
50
|
+
"@repo/eslint-config": "0.0.0"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
53
|
"@react-leaflet/core": "^2.1.0",
|
|
@@ -78,8 +78,8 @@
|
|
|
78
78
|
"screenfull": "^6.0.2",
|
|
79
79
|
"xlsx": "^0.18.5",
|
|
80
80
|
"zod": "^3.23.8",
|
|
81
|
-
"@hisptz/dhis2-ui": "2.0.
|
|
82
|
-
"@hisptz/dhis2-utils": "2.0.
|
|
81
|
+
"@hisptz/dhis2-ui": "2.0.31",
|
|
82
|
+
"@hisptz/dhis2-utils": "2.0.11"
|
|
83
83
|
},
|
|
84
84
|
"peerDependencies": {
|
|
85
85
|
"@dhis2/app-runtime": "^3.10.2",
|
|
@@ -1,287 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var _ = require('.');
|
|
6
|
-
var columnData = require('../../shared/resources/column-data.json');
|
|
7
|
-
var multiSeriesData = require('../../shared/resources/multi-series-data.json');
|
|
8
|
-
var stackedChartData = require('../../shared/resources/stacked-chart-data.json');
|
|
9
|
-
var pieData = require('../../shared/resources/pie-data.json');
|
|
10
|
-
var complexMultiSeriesData = require('../../shared/resources/complex-multi-series-data.json');
|
|
11
|
-
var HighCharts = require('highcharts');
|
|
12
|
-
|
|
13
|
-
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
-
|
|
15
|
-
var columnData__default = /*#__PURE__*/_interopDefault(columnData);
|
|
16
|
-
var multiSeriesData__default = /*#__PURE__*/_interopDefault(multiSeriesData);
|
|
17
|
-
var stackedChartData__default = /*#__PURE__*/_interopDefault(stackedChartData);
|
|
18
|
-
var pieData__default = /*#__PURE__*/_interopDefault(pieData);
|
|
19
|
-
var complexMultiSeriesData__default = /*#__PURE__*/_interopDefault(complexMultiSeriesData);
|
|
20
|
-
var HighCharts__default = /*#__PURE__*/_interopDefault(HighCharts);
|
|
21
|
-
|
|
22
|
-
_.setupHighchartsModules(HighCharts__default.default);
|
|
23
|
-
const meta = {
|
|
24
|
-
component: _.DHIS2Chart,
|
|
25
|
-
title: "DHIS2 Chart"
|
|
26
|
-
};
|
|
27
|
-
var ChartAnalytics_stories_default = meta;
|
|
28
|
-
const Default = {
|
|
29
|
-
name: "Column",
|
|
30
|
-
args: {
|
|
31
|
-
analytics: columnData__default.default,
|
|
32
|
-
config: {
|
|
33
|
-
layout: {
|
|
34
|
-
series: ["dx"],
|
|
35
|
-
category: ["ou"],
|
|
36
|
-
filter: ["pe"]
|
|
37
|
-
},
|
|
38
|
-
showFilterAsTitle: true,
|
|
39
|
-
type: "column"
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
const Bar = {
|
|
44
|
-
name: "Bar",
|
|
45
|
-
args: {
|
|
46
|
-
analytics: columnData__default.default,
|
|
47
|
-
config: {
|
|
48
|
-
layout: {
|
|
49
|
-
series: ["dx"],
|
|
50
|
-
category: ["ou"],
|
|
51
|
-
filter: ["pe"]
|
|
52
|
-
},
|
|
53
|
-
showFilterAsTitle: true,
|
|
54
|
-
type: "bar"
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
const MultipleColumns = {
|
|
59
|
-
name: "Multiple columns",
|
|
60
|
-
args: {
|
|
61
|
-
analytics: multiSeriesData__default.default,
|
|
62
|
-
config: {
|
|
63
|
-
layout: {
|
|
64
|
-
series: ["ou"],
|
|
65
|
-
category: ["pe"],
|
|
66
|
-
filter: ["dx"]
|
|
67
|
-
},
|
|
68
|
-
showFilterAsTitle: true,
|
|
69
|
-
type: "column"
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
};
|
|
73
|
-
const StackedColumn = {
|
|
74
|
-
name: "Stacked column",
|
|
75
|
-
args: {
|
|
76
|
-
analytics: stackedChartData__default.default,
|
|
77
|
-
config: {
|
|
78
|
-
layout: {
|
|
79
|
-
series: ["ou"],
|
|
80
|
-
category: ["pe"],
|
|
81
|
-
filter: ["dx"]
|
|
82
|
-
},
|
|
83
|
-
showFilterAsTitle: true,
|
|
84
|
-
type: "stacked-column"
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
};
|
|
88
|
-
const StackedBar = {
|
|
89
|
-
name: "Stacked bar",
|
|
90
|
-
args: {
|
|
91
|
-
analytics: stackedChartData__default.default,
|
|
92
|
-
config: {
|
|
93
|
-
layout: {
|
|
94
|
-
series: ["ou"],
|
|
95
|
-
category: ["pe"],
|
|
96
|
-
filter: ["dx"]
|
|
97
|
-
},
|
|
98
|
-
showFilterAsTitle: true,
|
|
99
|
-
type: "stacked-bar"
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
};
|
|
103
|
-
const Line = {
|
|
104
|
-
name: "Line chart",
|
|
105
|
-
args: {
|
|
106
|
-
analytics: columnData__default.default,
|
|
107
|
-
config: {
|
|
108
|
-
layout: {
|
|
109
|
-
series: ["dx"],
|
|
110
|
-
category: ["ou"],
|
|
111
|
-
filter: ["pe"]
|
|
112
|
-
},
|
|
113
|
-
showFilterAsTitle: true,
|
|
114
|
-
type: "line"
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
};
|
|
118
|
-
const MultipleLines = {
|
|
119
|
-
name: "Multi line",
|
|
120
|
-
args: {
|
|
121
|
-
analytics: multiSeriesData__default.default,
|
|
122
|
-
config: {
|
|
123
|
-
layout: {
|
|
124
|
-
series: ["ou"],
|
|
125
|
-
category: ["pe"],
|
|
126
|
-
filter: ["dx"]
|
|
127
|
-
},
|
|
128
|
-
showFilterAsTitle: true,
|
|
129
|
-
type: "line"
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
};
|
|
133
|
-
const PieChart = {
|
|
134
|
-
name: "Pie chart",
|
|
135
|
-
args: {
|
|
136
|
-
analytics: pieData__default.default,
|
|
137
|
-
config: {
|
|
138
|
-
layout: {
|
|
139
|
-
series: ["dx"],
|
|
140
|
-
category: [],
|
|
141
|
-
filter: ["pe", "ou"]
|
|
142
|
-
},
|
|
143
|
-
showFilterAsTitle: true,
|
|
144
|
-
type: "pie"
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
};
|
|
148
|
-
const MultiSeries = {
|
|
149
|
-
name: "Multi series",
|
|
150
|
-
args: {
|
|
151
|
-
analytics: multiSeriesData__default.default,
|
|
152
|
-
config: {
|
|
153
|
-
layout: {
|
|
154
|
-
series: ["ou"],
|
|
155
|
-
category: ["pe"],
|
|
156
|
-
filter: ["dx"]
|
|
157
|
-
},
|
|
158
|
-
showFilterAsTitle: true,
|
|
159
|
-
type: "multi-series",
|
|
160
|
-
multiSeries: {
|
|
161
|
-
series: [
|
|
162
|
-
{
|
|
163
|
-
id: "qhqAxPSTUXp",
|
|
164
|
-
as: "column",
|
|
165
|
-
yAxis: 0
|
|
166
|
-
},
|
|
167
|
-
{
|
|
168
|
-
id: "Vth0fbpFcsO",
|
|
169
|
-
as: "line",
|
|
170
|
-
cumulative: true,
|
|
171
|
-
yAxis: 1
|
|
172
|
-
}
|
|
173
|
-
],
|
|
174
|
-
yAxes: [
|
|
175
|
-
{
|
|
176
|
-
id: "yAxis1",
|
|
177
|
-
title: {
|
|
178
|
-
text: "Koinandugu"
|
|
179
|
-
},
|
|
180
|
-
labels: {
|
|
181
|
-
format: "{value}"
|
|
182
|
-
}
|
|
183
|
-
},
|
|
184
|
-
{
|
|
185
|
-
id: "yAxis2",
|
|
186
|
-
title: {
|
|
187
|
-
text: "Kono"
|
|
188
|
-
},
|
|
189
|
-
labels: {
|
|
190
|
-
format: "{value}"
|
|
191
|
-
},
|
|
192
|
-
opposite: true
|
|
193
|
-
}
|
|
194
|
-
],
|
|
195
|
-
target: {
|
|
196
|
-
id: "",
|
|
197
|
-
styles: {
|
|
198
|
-
color: "blue"
|
|
199
|
-
},
|
|
200
|
-
value: 45,
|
|
201
|
-
label: {
|
|
202
|
-
text: "Target",
|
|
203
|
-
textAlign: "center",
|
|
204
|
-
verticalAlign: "middle"
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
};
|
|
211
|
-
const ComplexMultiSeries = {
|
|
212
|
-
name: "Complex multi series",
|
|
213
|
-
args: {
|
|
214
|
-
analytics: complexMultiSeriesData__default.default,
|
|
215
|
-
config: {
|
|
216
|
-
layout: {
|
|
217
|
-
series: ["dx"],
|
|
218
|
-
category: ["pe"],
|
|
219
|
-
filter: ["ou"]
|
|
220
|
-
},
|
|
221
|
-
type: "multi-series",
|
|
222
|
-
showFilterAsTitle: true,
|
|
223
|
-
multiSeries: {
|
|
224
|
-
series: [
|
|
225
|
-
{
|
|
226
|
-
id: "QQkOAJFukyY",
|
|
227
|
-
as: "column",
|
|
228
|
-
yAxis: 0
|
|
229
|
-
},
|
|
230
|
-
{
|
|
231
|
-
id: "QQkOAJFukyY",
|
|
232
|
-
as: "line",
|
|
233
|
-
cumulative: true,
|
|
234
|
-
yAxis: 1
|
|
235
|
-
}
|
|
236
|
-
],
|
|
237
|
-
yAxes: [
|
|
238
|
-
{
|
|
239
|
-
id: "yAxis1",
|
|
240
|
-
title: {
|
|
241
|
-
text: "Koinandugu"
|
|
242
|
-
},
|
|
243
|
-
labels: {
|
|
244
|
-
format: "{value}"
|
|
245
|
-
}
|
|
246
|
-
},
|
|
247
|
-
{
|
|
248
|
-
id: "yAxis2",
|
|
249
|
-
title: {
|
|
250
|
-
text: "Kono"
|
|
251
|
-
},
|
|
252
|
-
labels: {
|
|
253
|
-
format: "{value}"
|
|
254
|
-
},
|
|
255
|
-
opposite: true
|
|
256
|
-
}
|
|
257
|
-
],
|
|
258
|
-
target: {
|
|
259
|
-
id: "",
|
|
260
|
-
styles: {
|
|
261
|
-
color: "blue"
|
|
262
|
-
},
|
|
263
|
-
value: 45,
|
|
264
|
-
label: {
|
|
265
|
-
text: "Target",
|
|
266
|
-
textAlign: "center",
|
|
267
|
-
verticalAlign: "middle"
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
};
|
|
274
|
-
|
|
275
|
-
exports.Bar = Bar;
|
|
276
|
-
exports.ComplexMultiSeries = ComplexMultiSeries;
|
|
277
|
-
exports.Default = Default;
|
|
278
|
-
exports.Line = Line;
|
|
279
|
-
exports.MultiSeries = MultiSeries;
|
|
280
|
-
exports.MultipleColumns = MultipleColumns;
|
|
281
|
-
exports.MultipleLines = MultipleLines;
|
|
282
|
-
exports.PieChart = PieChart;
|
|
283
|
-
exports.StackedBar = StackedBar;
|
|
284
|
-
exports.StackedColumn = StackedColumn;
|
|
285
|
-
exports.default = ChartAnalytics_stories_default;
|
|
286
|
-
//# sourceMappingURL=ChartAnalytics.stories.js.map
|
|
287
|
-
//# sourceMappingURL=ChartAnalytics.stories.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/ChartAnalytics/ChartAnalytics.stories.tsx"],"names":["setupHighchartsModules","HighCharts","DHIS2Chart","columnData","multiSeriesData","stackedChartData","pieData","complexMultiSeriesData"],"mappings":"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","file":"ChartAnalytics.stories.js","sourcesContent":["import { DHIS2Chart, setupHighchartsModules } from \".\";\nimport { Meta, StoryObj } from \"@storybook/react\";\nimport columnData from \"../../shared/resources/column-data.json\";\nimport multiSeriesData from \"../../shared/resources/multi-series-data.json\";\nimport stackedChartData from \"../../shared/resources/stacked-chart-data.json\";\nimport pieData from \"../../shared/resources/pie-data.json\";\nimport complexMultiSeriesData from \"../../shared/resources/complex-multi-series-data.json\";\nimport { Analytics } from \"@hisptz/dhis2-utils\";\nimport HighCharts from \"highcharts\";\n\nsetupHighchartsModules(HighCharts);\n\nconst meta: Meta<typeof DHIS2Chart> = {\n\tcomponent: DHIS2Chart,\n\ttitle: \"DHIS2 Chart\",\n};\n\nexport default meta;\n\ntype Story = StoryObj<typeof DHIS2Chart>;\n\nexport const Default: Story = {\n\tname: \"Column\",\n\targs: {\n\t\tanalytics: columnData as unknown as Analytics,\n\t\tconfig: {\n\t\t\tlayout: {\n\t\t\t\tseries: [\"dx\"],\n\t\t\t\tcategory: [\"ou\"],\n\t\t\t\tfilter: [\"pe\"],\n\t\t\t},\n\t\t\tshowFilterAsTitle: true,\n\t\t\ttype: \"column\",\n\t\t},\n\t},\n};\n\nexport const Bar: Story = {\n\tname: \"Bar\",\n\targs: {\n\t\tanalytics: columnData as any,\n\t\tconfig: {\n\t\t\tlayout: {\n\t\t\t\tseries: [\"dx\"],\n\t\t\t\tcategory: [\"ou\"],\n\t\t\t\tfilter: [\"pe\"],\n\t\t\t},\n\t\t\tshowFilterAsTitle: true,\n\t\t\ttype: \"bar\",\n\t\t},\n\t},\n};\nexport const MultipleColumns: Story = {\n\tname: \"Multiple columns\",\n\targs: {\n\t\tanalytics: multiSeriesData as any,\n\t\tconfig: {\n\t\t\tlayout: {\n\t\t\t\tseries: [\"ou\"],\n\t\t\t\tcategory: [\"pe\"],\n\t\t\t\tfilter: [\"dx\"],\n\t\t\t},\n\t\t\tshowFilterAsTitle: true,\n\t\t\ttype: \"column\",\n\t\t},\n\t},\n};\n\nexport const StackedColumn: Story = {\n\tname: \"Stacked column\",\n\targs: {\n\t\tanalytics: stackedChartData as any,\n\t\tconfig: {\n\t\t\tlayout: {\n\t\t\t\tseries: [\"ou\"],\n\t\t\t\tcategory: [\"pe\"],\n\t\t\t\tfilter: [\"dx\"],\n\t\t\t},\n\t\t\tshowFilterAsTitle: true,\n\t\t\ttype: \"stacked-column\",\n\t\t},\n\t},\n};\nexport const StackedBar: Story = {\n\tname: \"Stacked bar\",\n\targs: {\n\t\tanalytics: stackedChartData as any,\n\t\tconfig: {\n\t\t\tlayout: {\n\t\t\t\tseries: [\"ou\"],\n\t\t\t\tcategory: [\"pe\"],\n\t\t\t\tfilter: [\"dx\"],\n\t\t\t},\n\t\t\tshowFilterAsTitle: true,\n\t\t\ttype: \"stacked-bar\",\n\t\t},\n\t},\n};\nexport const Line: Story = {\n\tname: \"Line chart\",\n\targs: {\n\t\tanalytics: columnData as any,\n\t\tconfig: {\n\t\t\tlayout: {\n\t\t\t\tseries: [\"dx\"],\n\t\t\t\tcategory: [\"ou\"],\n\t\t\t\tfilter: [\"pe\"],\n\t\t\t},\n\t\t\tshowFilterAsTitle: true,\n\t\t\ttype: \"line\",\n\t\t},\n\t},\n};\n\nexport const MultipleLines: Story = {\n\tname: \"Multi line\",\n\targs: {\n\t\tanalytics: multiSeriesData as any,\n\t\tconfig: {\n\t\t\tlayout: {\n\t\t\t\tseries: [\"ou\"],\n\t\t\t\tcategory: [\"pe\"],\n\t\t\t\tfilter: [\"dx\"],\n\t\t\t},\n\t\t\tshowFilterAsTitle: true,\n\t\t\ttype: \"line\",\n\t\t},\n\t},\n};\n\nexport const PieChart: Story = {\n\tname: \"Pie chart\",\n\targs: {\n\t\tanalytics: pieData as any,\n\t\tconfig: {\n\t\t\tlayout: {\n\t\t\t\tseries: [\"dx\"],\n\t\t\t\tcategory: [],\n\t\t\t\tfilter: [\"pe\", \"ou\"],\n\t\t\t},\n\t\t\tshowFilterAsTitle: true,\n\t\t\ttype: \"pie\",\n\t\t},\n\t},\n};\n\nexport const MultiSeries: Story = {\n\tname: \"Multi series\",\n\targs: {\n\t\tanalytics: multiSeriesData as any,\n\t\tconfig: {\n\t\t\tlayout: {\n\t\t\t\tseries: [\"ou\"],\n\t\t\t\tcategory: [\"pe\"],\n\t\t\t\tfilter: [\"dx\"],\n\t\t\t},\n\t\t\tshowFilterAsTitle: true,\n\t\t\ttype: \"multi-series\",\n\t\t\tmultiSeries: {\n\t\t\t\tseries: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"qhqAxPSTUXp\",\n\t\t\t\t\t\tas: \"column\",\n\t\t\t\t\t\tyAxis: 0,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"Vth0fbpFcsO\",\n\t\t\t\t\t\tas: \"line\",\n\t\t\t\t\t\tcumulative: true,\n\t\t\t\t\t\tyAxis: 1,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tyAxes: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"yAxis1\",\n\t\t\t\t\t\ttitle: {\n\t\t\t\t\t\t\ttext: \"Koinandugu\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlabels: {\n\t\t\t\t\t\t\tformat: \"{value}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"yAxis2\",\n\t\t\t\t\t\ttitle: {\n\t\t\t\t\t\t\ttext: \"Kono\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlabels: {\n\t\t\t\t\t\t\tformat: \"{value}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\topposite: true,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\ttarget: {\n\t\t\t\t\tid: \"\",\n\t\t\t\t\tstyles: {\n\t\t\t\t\t\tcolor: \"blue\",\n\t\t\t\t\t},\n\t\t\t\t\tvalue: 45,\n\t\t\t\t\tlabel: {\n\t\t\t\t\t\ttext: \"Target\",\n\t\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t\t\tverticalAlign: \"middle\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n};\n\nexport const ComplexMultiSeries: Story = {\n\tname: \"Complex multi series\",\n\targs: {\n\t\tanalytics: complexMultiSeriesData as any,\n\t\tconfig: {\n\t\t\tlayout: {\n\t\t\t\tseries: [\"dx\"],\n\t\t\t\tcategory: [\"pe\"],\n\t\t\t\tfilter: [\"ou\"],\n\t\t\t},\n\t\t\ttype: \"multi-series\",\n\t\t\tshowFilterAsTitle: true,\n\t\t\tmultiSeries: {\n\t\t\t\tseries: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"QQkOAJFukyY\",\n\t\t\t\t\t\tas: \"column\",\n\t\t\t\t\t\tyAxis: 0,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"QQkOAJFukyY\",\n\t\t\t\t\t\tas: \"line\",\n\t\t\t\t\t\tcumulative: true,\n\t\t\t\t\t\tyAxis: 1,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tyAxes: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"yAxis1\",\n\t\t\t\t\t\ttitle: {\n\t\t\t\t\t\t\ttext: \"Koinandugu\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlabels: {\n\t\t\t\t\t\t\tformat: \"{value}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: \"yAxis2\",\n\t\t\t\t\t\ttitle: {\n\t\t\t\t\t\t\ttext: \"Kono\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlabels: {\n\t\t\t\t\t\t\tformat: \"{value}\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\topposite: true,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\ttarget: {\n\t\t\t\t\tid: \"\",\n\t\t\t\t\tstyles: {\n\t\t\t\t\t\tcolor: \"blue\",\n\t\t\t\t\t},\n\t\t\t\t\tvalue: 45,\n\t\t\t\t\tlabel: {\n\t\t\t\t\t\ttext: \"Target\",\n\t\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t\t\tverticalAlign: \"middle\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n};\n"]}
|