@hisptz/dhis2-analytics 2.0.32 → 2.0.33
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/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.js.map +1 -1
- package/dist/components/Scorecard/Scorecard.stories.js +150 -879
- package/dist/components/Scorecard/Scorecard.stories.js.map +1 -1
- package/dist/components/Scorecard/ScorecardContext.stories.js +422 -0
- package/dist/components/Scorecard/ScorecardContext.stories.js.map +1 -0
- package/dist/components/Scorecard/components/DataProvider.js +4 -19
- package/dist/components/Scorecard/components/DataProvider.js.map +1 -1
- package/dist/components/Scorecard/components/LoadingIndicator.js +27 -0
- package/dist/components/Scorecard/components/LoadingIndicator.js.map +1 -0
- package/dist/components/Scorecard/components/MetaProvider.js +10 -2
- package/dist/components/Scorecard/components/MetaProvider.js.map +1 -1
- package/dist/components/Scorecard/components/ScorecardContext.js +52 -1
- package/dist/components/Scorecard/components/ScorecardContext.js.map +1 -1
- package/dist/components/Scorecard/components/ScorecardTable/ScorecardTable.js +33 -14
- package/dist/components/Scorecard/components/ScorecardTable/ScorecardTable.js.map +1 -1
- package/dist/components/Scorecard/components/ScorecardTable/ScorecardTable.module.css +18 -0
- package/dist/components/Scorecard/components/ScorecardTable/ScorecardTable.module.css.map +1 -1
- package/dist/components/Scorecard/components/ScorecardTable/components/AverageCell.js +47 -14
- package/dist/components/Scorecard/components/ScorecardTable/components/AverageCell.js.map +1 -1
- package/dist/components/Scorecard/components/ScorecardTable/components/AverageFooterCell.js +39 -8
- package/dist/components/Scorecard/components/ScorecardTable/components/AverageFooterCell.js.map +1 -1
- package/dist/components/Scorecard/components/ScorecardTable/components/CellLoader.js +12 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/CellLoader.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/DataContainer.js +24 -4
- package/dist/components/Scorecard/components/ScorecardTable/components/DataContainer.js.map +1 -1
- package/dist/components/Scorecard/components/ScorecardTable/components/DataFooterCell.js +125 -32
- package/dist/components/Scorecard/components/ScorecardTable/components/DataFooterCell.js.map +1 -1
- package/dist/components/Scorecard/components/ScorecardTable/components/DataRow.js +17 -7
- package/dist/components/Scorecard/components/ScorecardTable/components/DataRow.js.map +1 -1
- package/dist/components/Scorecard/components/ScorecardTable/components/DataValue.js +8 -5
- package/dist/components/Scorecard/components/ScorecardTable/components/DataValue.js.map +1 -1
- package/dist/components/Scorecard/components/ScorecardTable/components/ExpandedScorecardTable.js +16 -3
- package/dist/components/Scorecard/components/ScorecardTable/components/ExpandedScorecardTable.js.map +1 -1
- package/dist/components/Scorecard/components/ScorecardTable/components/LinkedCell.js +8 -2
- package/dist/components/Scorecard/components/ScorecardTable/components/LinkedCell.js.map +1 -1
- package/dist/components/Scorecard/components/ScorecardTable/components/LinkedDataCell.js.map +1 -1
- package/dist/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.js +5 -3
- package/dist/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.js.map +1 -1
- package/dist/components/Scorecard/components/ScorecardTable/components/SingleDataCell.js +2 -2
- package/dist/components/Scorecard/components/ScorecardTable/components/SingleDataCell.js.map +1 -1
- package/dist/components/Scorecard/components/ScorecardTable/components/TableBody.js +8 -3
- package/dist/components/Scorecard/components/ScorecardTable/components/TableBody.js.map +1 -1
- package/dist/components/Scorecard/components/ScorecardTable/components/TableFoot.js +8 -5
- package/dist/components/Scorecard/components/ScorecardTable/components/TableFoot.js.map +1 -1
- package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.js +7 -8
- package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.js.map +1 -1
- package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js +6 -8
- package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js.map +1 -1
- package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js +13 -4
- package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map +1 -1
- package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/FilterArea.js +4 -2
- package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/FilterArea.js.map +1 -1
- package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.js +4 -2
- package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.js.map +1 -1
- package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js +6 -7
- package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js.map +1 -1
- package/dist/components/Scorecard/components/StateProvider.js +8 -0
- package/dist/components/Scorecard/components/StateProvider.js.map +1 -1
- package/dist/components/Scorecard/hooks/cellData.js +3 -4
- package/dist/components/Scorecard/hooks/cellData.js.map +1 -1
- package/dist/components/Scorecard/hooks/columns.js +106 -89
- package/dist/components/Scorecard/hooks/columns.js.map +1 -1
- package/dist/components/Scorecard/hooks/data.js +126 -31
- package/dist/components/Scorecard/hooks/data.js.map +1 -1
- package/dist/components/Scorecard/hooks/metadata.js +23 -13
- package/dist/components/Scorecard/hooks/metadata.js.map +1 -1
- package/dist/components/Scorecard/hooks/table.js +137 -5
- package/dist/components/Scorecard/hooks/table.js.map +1 -1
- package/dist/components/Scorecard/hooks/value.js +198 -0
- package/dist/components/Scorecard/hooks/value.js.map +1 -0
- package/dist/components/Scorecard/schemas/config.js +27 -12
- package/dist/components/Scorecard/schemas/config.js.map +1 -1
- package/dist/components/Scorecard/utils/analytics.js +4 -3
- package/dist/components/Scorecard/utils/analytics.js.map +1 -1
- package/dist/components/Scorecard/utils/columns.js +66 -104
- package/dist/components/Scorecard/utils/columns.js.map +1 -1
- package/dist/components/Scorecard/utils/data.js +10 -100
- package/dist/components/Scorecard/utils/data.js.map +1 -1
- package/dist/components/Scorecard/utils/dataEngine.js +35 -0
- package/dist/components/Scorecard/utils/dataEngine.js.map +1 -0
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.js.map +1 -1
- package/dist/esm/components/Scorecard/Scorecard.stories.js +148 -876
- package/dist/esm/components/Scorecard/Scorecard.stories.js.map +1 -1
- package/dist/esm/components/Scorecard/ScorecardContext.stories.js +417 -0
- package/dist/esm/components/Scorecard/ScorecardContext.stories.js.map +1 -0
- package/dist/esm/components/Scorecard/components/DataProvider.js +4 -19
- package/dist/esm/components/Scorecard/components/DataProvider.js.map +1 -1
- package/dist/esm/components/Scorecard/components/LoadingIndicator.js +25 -0
- package/dist/esm/components/Scorecard/components/LoadingIndicator.js.map +1 -0
- package/dist/esm/components/Scorecard/components/MetaProvider.js +6 -2
- package/dist/esm/components/Scorecard/components/MetaProvider.js.map +1 -1
- package/dist/esm/components/Scorecard/components/ScorecardContext.js +49 -2
- package/dist/esm/components/Scorecard/components/ScorecardContext.js.map +1 -1
- package/dist/esm/components/Scorecard/components/ScorecardTable/ScorecardTable.js +34 -15
- package/dist/esm/components/Scorecard/components/ScorecardTable/ScorecardTable.js.map +1 -1
- package/dist/esm/components/Scorecard/components/ScorecardTable/ScorecardTable.module.css +18 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/ScorecardTable.module.css.map +1 -1
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/AverageCell.js +47 -14
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/AverageCell.js.map +1 -1
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/AverageFooterCell.js +40 -9
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/AverageFooterCell.js.map +1 -1
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/CellLoader.js +10 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/CellLoader.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataContainer.js +25 -5
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataContainer.js.map +1 -1
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataFooterCell.js +127 -34
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataFooterCell.js.map +1 -1
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataRow.js +18 -8
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataRow.js.map +1 -1
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataValue.js +10 -7
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataValue.js.map +1 -1
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/ExpandedScorecardTable.js +16 -3
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/ExpandedScorecardTable.js.map +1 -1
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/LinkedCell.js +8 -2
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/LinkedCell.js.map +1 -1
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/LinkedDataCell.js.map +1 -1
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.js +6 -4
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.js.map +1 -1
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/SingleDataCell.js +2 -2
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/SingleDataCell.js.map +1 -1
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableBody.js +9 -4
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableBody.js.map +1 -1
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableFoot.js +9 -6
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableFoot.js.map +1 -1
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.js +7 -8
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.js.map +1 -1
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js +7 -9
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js.map +1 -1
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js +14 -6
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map +1 -1
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/FilterArea.js +5 -3
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/FilterArea.js.map +1 -1
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.js +5 -3
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.js.map +1 -1
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js +7 -8
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js.map +1 -1
- package/dist/esm/components/Scorecard/components/StateProvider.js +9 -2
- package/dist/esm/components/Scorecard/components/StateProvider.js.map +1 -1
- package/dist/esm/components/Scorecard/hooks/cellData.js +1 -2
- package/dist/esm/components/Scorecard/hooks/cellData.js.map +1 -1
- package/dist/esm/components/Scorecard/hooks/columns.js +107 -90
- package/dist/esm/components/Scorecard/hooks/columns.js.map +1 -1
- package/dist/esm/components/Scorecard/hooks/data.js +130 -35
- package/dist/esm/components/Scorecard/hooks/data.js.map +1 -1
- package/dist/esm/components/Scorecard/hooks/metadata.js +24 -14
- package/dist/esm/components/Scorecard/hooks/metadata.js.map +1 -1
- package/dist/esm/components/Scorecard/hooks/table.js +138 -6
- package/dist/esm/components/Scorecard/hooks/table.js.map +1 -1
- package/dist/esm/components/Scorecard/hooks/value.js +194 -0
- package/dist/esm/components/Scorecard/hooks/value.js.map +1 -0
- package/dist/esm/components/Scorecard/schemas/config.js +24 -12
- package/dist/esm/components/Scorecard/schemas/config.js.map +1 -1
- package/dist/esm/components/Scorecard/utils/analytics.js +4 -3
- package/dist/esm/components/Scorecard/utils/analytics.js.map +1 -1
- package/dist/esm/components/Scorecard/utils/columns.js +67 -106
- package/dist/esm/components/Scorecard/utils/columns.js.map +1 -1
- package/dist/esm/components/Scorecard/utils/data.js +11 -101
- package/dist/esm/components/Scorecard/utils/data.js.map +1 -1
- package/dist/esm/components/Scorecard/utils/dataEngine.js +33 -0
- package/dist/esm/components/Scorecard/utils/dataEngine.js.map +1 -0
- package/dist/types/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.d.ts +1 -1
- package/dist/types/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.d.ts.map +1 -1
- package/dist/types/components/Scorecard/components/DataProvider.d.ts +3 -3
- package/dist/types/components/Scorecard/components/DataProvider.d.ts.map +1 -1
- package/dist/types/components/Scorecard/components/LoadingIndicator.d.ts +2 -0
- package/dist/types/components/Scorecard/components/LoadingIndicator.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/MetaProvider.d.ts.map +1 -1
- package/dist/types/components/Scorecard/components/ScorecardContext.d.ts +1 -1
- package/dist/types/components/Scorecard/components/ScorecardContext.d.ts.map +1 -1
- package/dist/types/components/Scorecard/components/ScorecardTable/ScorecardTable.d.ts +2 -1
- package/dist/types/components/Scorecard/components/ScorecardTable/ScorecardTable.d.ts.map +1 -1
- package/dist/types/components/Scorecard/components/ScorecardTable/components/AverageCell.d.ts +4 -13
- package/dist/types/components/Scorecard/components/ScorecardTable/components/AverageCell.d.ts.map +1 -1
- package/dist/types/components/Scorecard/components/ScorecardTable/components/AverageFooterCell.d.ts.map +1 -1
- package/dist/types/components/Scorecard/components/ScorecardTable/components/CellLoader.d.ts +2 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/CellLoader.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/DataContainer.d.ts +2 -2
- package/dist/types/components/Scorecard/components/ScorecardTable/components/DataContainer.d.ts.map +1 -1
- package/dist/types/components/Scorecard/components/ScorecardTable/components/DataFooterCell.d.ts +2 -2
- package/dist/types/components/Scorecard/components/ScorecardTable/components/DataFooterCell.d.ts.map +1 -1
- package/dist/types/components/Scorecard/components/ScorecardTable/components/DataRow.d.ts.map +1 -1
- package/dist/types/components/Scorecard/components/ScorecardTable/components/DataValue.d.ts +6 -5
- package/dist/types/components/Scorecard/components/ScorecardTable/components/DataValue.d.ts.map +1 -1
- package/dist/types/components/Scorecard/components/ScorecardTable/components/ExpandedScorecardTable.d.ts +2 -1
- package/dist/types/components/Scorecard/components/ScorecardTable/components/ExpandedScorecardTable.d.ts.map +1 -1
- package/dist/types/components/Scorecard/components/ScorecardTable/components/LinkedCell.d.ts +3 -3
- package/dist/types/components/Scorecard/components/ScorecardTable/components/LinkedCell.d.ts.map +1 -1
- package/dist/types/components/Scorecard/components/ScorecardTable/components/LinkedDataCell.d.ts +2 -2
- package/dist/types/components/Scorecard/components/ScorecardTable/components/LinkedDataCell.d.ts.map +1 -1
- package/dist/types/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.d.ts +1 -3
- package/dist/types/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.d.ts.map +1 -1
- package/dist/types/components/Scorecard/components/ScorecardTable/components/SingleDataCell.d.ts +2 -2
- package/dist/types/components/Scorecard/components/ScorecardTable/components/SingleDataCell.d.ts.map +1 -1
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableBody.d.ts +2 -1
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableBody.d.ts.map +1 -1
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableFoot.d.ts.map +1 -1
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.d.ts +2 -1
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.d.ts.map +1 -1
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.d.ts +1 -1
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.d.ts.map +1 -1
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.d.ts +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.d.ts.map +1 -1
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/FilterArea.d.ts.map +1 -1
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.d.ts.map +1 -1
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.d.ts.map +1 -1
- package/dist/types/components/Scorecard/components/StateProvider.d.ts +1 -0
- package/dist/types/components/Scorecard/components/StateProvider.d.ts.map +1 -1
- package/dist/types/components/Scorecard/components/TableStateProvider.d.ts +0 -6
- package/dist/types/components/Scorecard/components/TableStateProvider.d.ts.map +1 -1
- package/dist/types/components/Scorecard/hooks/cellData.d.ts +2 -2
- package/dist/types/components/Scorecard/hooks/cellData.d.ts.map +1 -1
- package/dist/types/components/Scorecard/hooks/columns.d.ts +2 -8
- package/dist/types/components/Scorecard/hooks/columns.d.ts.map +1 -1
- package/dist/types/components/Scorecard/hooks/data.d.ts +11 -53
- package/dist/types/components/Scorecard/hooks/data.d.ts.map +1 -1
- package/dist/types/components/Scorecard/hooks/metadata.d.ts +1 -0
- package/dist/types/components/Scorecard/hooks/metadata.d.ts.map +1 -1
- package/dist/types/components/Scorecard/hooks/table.d.ts.map +1 -1
- package/dist/types/components/Scorecard/hooks/value.d.ts +87 -0
- package/dist/types/components/Scorecard/hooks/value.d.ts.map +1 -0
- package/dist/types/components/Scorecard/schemas/config.d.ts +666 -62
- package/dist/types/components/Scorecard/schemas/config.d.ts.map +1 -1
- package/dist/types/components/Scorecard/utils/analytics.d.ts +3 -2
- package/dist/types/components/Scorecard/utils/analytics.d.ts.map +1 -1
- package/dist/types/components/Scorecard/utils/columns.d.ts +19 -59
- package/dist/types/components/Scorecard/utils/columns.d.ts.map +1 -1
- package/dist/types/components/Scorecard/utils/data.d.ts +6 -4
- package/dist/types/components/Scorecard/utils/data.d.ts.map +1 -1
- package/dist/types/components/Scorecard/utils/dataEngine.d.ts +14 -0
- package/dist/types/components/Scorecard/utils/dataEngine.d.ts.map +1 -0
- package/package.json +3 -3
- package/dist/components/Scorecard/components/ScorecardTable/components/LinkedDataFooterCell.js +0 -45
- package/dist/components/Scorecard/components/ScorecardTable/components/LinkedDataFooterCell.js.map +0 -1
- package/dist/components/Scorecard/components/ScorecardTable/components/SingleDataFooterCell.js +0 -38
- package/dist/components/Scorecard/components/ScorecardTable/components/SingleDataFooterCell.js.map +0 -1
- package/dist/components/Scorecard/hooks/average.js +0 -50
- package/dist/components/Scorecard/hooks/average.js.map +0 -1
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/LinkedDataFooterCell.js +0 -43
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/LinkedDataFooterCell.js.map +0 -1
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/SingleDataFooterCell.js +0 -36
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/SingleDataFooterCell.js.map +0 -1
- package/dist/esm/components/Scorecard/hooks/average.js +0 -48
- package/dist/esm/components/Scorecard/hooks/average.js.map +0 -1
- package/dist/types/components/Scorecard/components/ScorecardTable/components/LinkedDataFooterCell.d.ts +0 -6
- package/dist/types/components/Scorecard/components/ScorecardTable/components/LinkedDataFooterCell.d.ts.map +0 -1
- package/dist/types/components/Scorecard/components/ScorecardTable/components/SingleDataFooterCell.d.ts +0 -6
- package/dist/types/components/Scorecard/components/ScorecardTable/components/SingleDataFooterCell.d.ts.map +0 -1
- package/dist/types/components/Scorecard/hooks/average.d.ts +0 -14
- package/dist/types/components/Scorecard/hooks/average.d.ts.map +0 -1
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var react = require('react');
|
|
4
|
+
var DataProvider = require('../components/DataProvider');
|
|
5
|
+
var columns = require('../utils/columns');
|
|
6
|
+
var lodash = require('lodash');
|
|
7
|
+
|
|
8
|
+
function getDataValues({
|
|
9
|
+
data,
|
|
10
|
+
dataConfig
|
|
11
|
+
}) {
|
|
12
|
+
return dataConfig.dataSources.map((dataSource) => {
|
|
13
|
+
const filteredData = data.filter((data2) => {
|
|
14
|
+
return data2.dx === dataSource.id && data2.ou === dataConfig.orgUnit.uid && [dataConfig.currentPeriod, dataConfig.previousPeriod].includes(
|
|
15
|
+
data2.pe
|
|
16
|
+
);
|
|
17
|
+
});
|
|
18
|
+
const value = columns.getValues({
|
|
19
|
+
currentPeriod: dataConfig.currentPeriod,
|
|
20
|
+
previousPeriod: dataConfig.previousPeriod,
|
|
21
|
+
values: filteredData
|
|
22
|
+
});
|
|
23
|
+
if (!value.current) {
|
|
24
|
+
return {
|
|
25
|
+
...dataSource,
|
|
26
|
+
data: {
|
|
27
|
+
current: void 0,
|
|
28
|
+
previous: void 0
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
...dataSource,
|
|
34
|
+
data: value
|
|
35
|
+
};
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
function useCellValue(dataConfig) {
|
|
39
|
+
const { data: scorecardEngine } = DataProvider.useScorecardData();
|
|
40
|
+
const [loading, setLoading] = react.useState(false);
|
|
41
|
+
const [cellData, setCellData] = react.useState([]);
|
|
42
|
+
react.useEffect(() => {
|
|
43
|
+
setLoading(true);
|
|
44
|
+
const listener = (data) => {
|
|
45
|
+
if (data === "done") {
|
|
46
|
+
setLoading(false);
|
|
47
|
+
setCellData((prevState) => {
|
|
48
|
+
return prevState.map((value) => {
|
|
49
|
+
if (!value.data) {
|
|
50
|
+
return {
|
|
51
|
+
...value,
|
|
52
|
+
data: {
|
|
53
|
+
current: void 0,
|
|
54
|
+
previous: void 0
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
return value;
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
} else {
|
|
62
|
+
const values = getDataValues({ data, dataConfig });
|
|
63
|
+
const hasValues = lodash.every(values, (value) => !!value.data);
|
|
64
|
+
setCellData(values);
|
|
65
|
+
if (hasValues) {
|
|
66
|
+
scorecardEngine.removeListener(listener);
|
|
67
|
+
setLoading(false);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
if (scorecardEngine.isDone) {
|
|
72
|
+
const values = getDataValues({
|
|
73
|
+
data: scorecardEngine.data,
|
|
74
|
+
dataConfig
|
|
75
|
+
});
|
|
76
|
+
setCellData(values);
|
|
77
|
+
setLoading(false);
|
|
78
|
+
} else {
|
|
79
|
+
scorecardEngine.addListener(listener);
|
|
80
|
+
}
|
|
81
|
+
return () => {
|
|
82
|
+
scorecardEngine.removeListener(listener);
|
|
83
|
+
};
|
|
84
|
+
}, [dataConfig]);
|
|
85
|
+
return {
|
|
86
|
+
loading,
|
|
87
|
+
cellData
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
function getDataHolderAverageValues({
|
|
91
|
+
data,
|
|
92
|
+
dataConfig
|
|
93
|
+
}) {
|
|
94
|
+
return dataConfig.dataHolder?.dataSources.map((source) => {
|
|
95
|
+
const dataValues = data.filter((datum) => {
|
|
96
|
+
return datum.dx === source.id;
|
|
97
|
+
});
|
|
98
|
+
const average = lodash.meanBy(
|
|
99
|
+
dataValues,
|
|
100
|
+
(value) => parseFloat(value.value)
|
|
101
|
+
);
|
|
102
|
+
return {
|
|
103
|
+
...source,
|
|
104
|
+
data: {
|
|
105
|
+
average
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
}) ?? [];
|
|
109
|
+
}
|
|
110
|
+
function useDataHolderAverageCellValue(dataConfig) {
|
|
111
|
+
const { data: scorecardEngine } = DataProvider.useScorecardData();
|
|
112
|
+
const [loading, setLoading] = react.useState(false);
|
|
113
|
+
const [cellData, setCellData] = react.useState([]);
|
|
114
|
+
react.useEffect(() => {
|
|
115
|
+
setLoading(true);
|
|
116
|
+
const listener = (data) => {
|
|
117
|
+
if (data === "done") {
|
|
118
|
+
setLoading(false);
|
|
119
|
+
setCellData(
|
|
120
|
+
getDataHolderAverageValues({
|
|
121
|
+
data: scorecardEngine.data,
|
|
122
|
+
dataConfig
|
|
123
|
+
})
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
if (scorecardEngine.isDone) {
|
|
128
|
+
setLoading(false);
|
|
129
|
+
setCellData(
|
|
130
|
+
getDataHolderAverageValues({
|
|
131
|
+
data: scorecardEngine.data,
|
|
132
|
+
dataConfig
|
|
133
|
+
})
|
|
134
|
+
);
|
|
135
|
+
} else {
|
|
136
|
+
scorecardEngine.addListener(listener);
|
|
137
|
+
}
|
|
138
|
+
return () => {
|
|
139
|
+
scorecardEngine.removeListener(listener);
|
|
140
|
+
};
|
|
141
|
+
}, [dataConfig]);
|
|
142
|
+
return {
|
|
143
|
+
loading,
|
|
144
|
+
cellData
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
function getOrgUnitAverageValues({
|
|
148
|
+
data,
|
|
149
|
+
dataConfig
|
|
150
|
+
}) {
|
|
151
|
+
const dataValues = data.filter((datum) => {
|
|
152
|
+
return datum.ou === dataConfig.orgUnit.uid;
|
|
153
|
+
});
|
|
154
|
+
return lodash.meanBy(dataValues, (value) => parseFloat(value.value));
|
|
155
|
+
}
|
|
156
|
+
function useOrgUnitAverageCellValue(dataConfig) {
|
|
157
|
+
const { data: scorecardEngine } = DataProvider.useScorecardData();
|
|
158
|
+
const [loading, setLoading] = react.useState(false);
|
|
159
|
+
const [average, setAverage] = react.useState(null);
|
|
160
|
+
react.useEffect(() => {
|
|
161
|
+
setLoading(true);
|
|
162
|
+
const listener = (data) => {
|
|
163
|
+
if (data === "done") {
|
|
164
|
+
setLoading(false);
|
|
165
|
+
setAverage(
|
|
166
|
+
getOrgUnitAverageValues({
|
|
167
|
+
data: scorecardEngine.data,
|
|
168
|
+
dataConfig
|
|
169
|
+
})
|
|
170
|
+
);
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
if (scorecardEngine.isDone) {
|
|
174
|
+
setLoading(false);
|
|
175
|
+
setAverage(
|
|
176
|
+
getOrgUnitAverageValues({
|
|
177
|
+
data: scorecardEngine.data,
|
|
178
|
+
dataConfig
|
|
179
|
+
})
|
|
180
|
+
);
|
|
181
|
+
} else {
|
|
182
|
+
scorecardEngine.addListener(listener);
|
|
183
|
+
}
|
|
184
|
+
return () => {
|
|
185
|
+
scorecardEngine.removeListener(listener);
|
|
186
|
+
};
|
|
187
|
+
}, [dataConfig]);
|
|
188
|
+
return {
|
|
189
|
+
loading,
|
|
190
|
+
average
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
exports.useCellValue = useCellValue;
|
|
195
|
+
exports.useDataHolderAverageCellValue = useDataHolderAverageCellValue;
|
|
196
|
+
exports.useOrgUnitAverageCellValue = useOrgUnitAverageCellValue;
|
|
197
|
+
//# sourceMappingURL=out.js.map
|
|
198
|
+
//# sourceMappingURL=value.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Scorecard/hooks/value.ts"],"names":["data"],"mappings":"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","sourcesContent":["import { useEffect, useState } from \"react\";\nimport type {\n\tScorecardAverageCellData,\n\tScorecardCellData,\n\tScorecardTableAverageCellConfig,\n\tScorecardTableCellConfig,\n} from \"../schemas/config\";\nimport { useScorecardData } from \"../components/DataProvider\";\nimport type { DataEngineListener } from \"../utils/dataEngine\";\nimport type { AnalyticsData } from \"../utils/data\";\nimport { getValues } from \"../utils/columns\";\nimport { every, meanBy } from \"lodash\";\n\nfunction getDataValues({\n\tdata,\n\tdataConfig,\n}: {\n\tdataConfig: ScorecardTableCellConfig;\n\tdata: AnalyticsData[];\n}): ScorecardCellData[] {\n\treturn dataConfig.dataSources.map((dataSource) => {\n\t\tconst filteredData = data.filter((data) => {\n\t\t\treturn (\n\t\t\t\tdata.dx === dataSource.id &&\n\t\t\t\tdata.ou === dataConfig.orgUnit.uid &&\n\t\t\t\t[dataConfig.currentPeriod, dataConfig.previousPeriod].includes(\n\t\t\t\t\tdata.pe,\n\t\t\t\t)\n\t\t\t);\n\t\t});\n\n\t\tconst value = getValues({\n\t\t\tcurrentPeriod: dataConfig.currentPeriod!,\n\t\t\tpreviousPeriod: dataConfig.previousPeriod,\n\t\t\tvalues: filteredData,\n\t\t});\n\n\t\tif (!value.current) {\n\t\t\treturn {\n\t\t\t\t...dataSource,\n\t\t\t\tdata: {\n\t\t\t\t\tcurrent: undefined,\n\t\t\t\t\tprevious: undefined,\n\t\t\t\t},\n\t\t\t} as ScorecardCellData;\n\t\t}\n\n\t\treturn {\n\t\t\t...dataSource,\n\t\t\tdata: value,\n\t\t} as ScorecardCellData;\n\t});\n}\n\nexport function useCellValue(dataConfig: ScorecardTableCellConfig) {\n\tconst { data: scorecardEngine } = useScorecardData();\n\tconst [loading, setLoading] = useState<boolean>(false);\n\tconst [cellData, setCellData] = useState<ScorecardCellData[]>([]);\n\n\tuseEffect(() => {\n\t\tsetLoading(true);\n\t\tconst listener: DataEngineListener = (data) => {\n\t\t\tif (data === \"done\") {\n\t\t\t\tsetLoading(false);\n\t\t\t\tsetCellData((prevState) => {\n\t\t\t\t\treturn prevState.map((value) => {\n\t\t\t\t\t\tif (!value.data) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...value,\n\t\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\t\tcurrent: undefined,\n\t\t\t\t\t\t\t\t\tprevious: undefined,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconst values = getDataValues({ data, dataConfig });\n\t\t\t\tconst hasValues = every(values, (value) => !!value.data);\n\t\t\t\tsetCellData(values);\n\t\t\t\tif (hasValues) {\n\t\t\t\t\tscorecardEngine.removeListener(listener);\n\t\t\t\t\tsetLoading(false);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tif (scorecardEngine.isDone) {\n\t\t\tconst values = getDataValues({\n\t\t\t\tdata: scorecardEngine.data,\n\t\t\t\tdataConfig,\n\t\t\t});\n\t\t\tsetCellData(values);\n\t\t\tsetLoading(false);\n\t\t} else {\n\t\t\tscorecardEngine.addListener(listener);\n\t\t}\n\t\treturn () => {\n\t\t\tscorecardEngine.removeListener(listener);\n\t\t};\n\t}, [dataConfig]);\n\n\treturn {\n\t\tloading,\n\t\tcellData,\n\t};\n}\n\nfunction getDataHolderAverageValues({\n\tdata,\n\tdataConfig,\n}: {\n\tdataConfig: ScorecardTableAverageCellConfig;\n\tdata: AnalyticsData[];\n}): ScorecardAverageCellData[] {\n\treturn (\n\t\tdataConfig.dataHolder?.dataSources.map((source) => {\n\t\t\tconst dataValues = data.filter((datum) => {\n\t\t\t\treturn datum.dx === source.id;\n\t\t\t});\n\t\t\tconst average = meanBy(dataValues, (value) =>\n\t\t\t\tparseFloat(value.value!),\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\t...source,\n\t\t\t\tdata: {\n\t\t\t\t\taverage,\n\t\t\t\t},\n\t\t\t};\n\t\t}) ?? []\n\t);\n}\n\nexport function useDataHolderAverageCellValue(\n\tdataConfig: ScorecardTableAverageCellConfig,\n) {\n\tconst { data: scorecardEngine } = useScorecardData();\n\tconst [loading, setLoading] = useState<boolean>(false);\n\tconst [cellData, setCellData] = useState<ScorecardAverageCellData[]>([]);\n\n\tuseEffect(() => {\n\t\tsetLoading(true);\n\t\tconst listener: DataEngineListener = (data) => {\n\t\t\tif (data === \"done\") {\n\t\t\t\tsetLoading(false);\n\t\t\t\tsetCellData(\n\t\t\t\t\tgetDataHolderAverageValues({\n\t\t\t\t\t\tdata: scorecardEngine.data,\n\t\t\t\t\t\tdataConfig,\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t}\n\t\t};\n\t\tif (scorecardEngine.isDone) {\n\t\t\tsetLoading(false);\n\t\t\tsetCellData(\n\t\t\t\tgetDataHolderAverageValues({\n\t\t\t\t\tdata: scorecardEngine.data,\n\t\t\t\t\tdataConfig,\n\t\t\t\t}),\n\t\t\t);\n\t\t} else {\n\t\t\tscorecardEngine.addListener(listener);\n\t\t}\n\t\treturn () => {\n\t\t\tscorecardEngine.removeListener(listener);\n\t\t};\n\t}, [dataConfig]);\n\n\treturn {\n\t\tloading,\n\t\tcellData,\n\t};\n}\n\nfunction getOrgUnitAverageValues({\n\tdata,\n\tdataConfig,\n}: {\n\tdataConfig: ScorecardTableAverageCellConfig;\n\tdata: AnalyticsData[];\n}): number {\n\tconst dataValues = data.filter((datum) => {\n\t\treturn datum.ou === dataConfig.orgUnit!.uid;\n\t});\n\n\treturn meanBy(dataValues, (value) => parseFloat(value.value!));\n}\n\nexport function useOrgUnitAverageCellValue(\n\tdataConfig: ScorecardTableAverageCellConfig,\n) {\n\tconst { data: scorecardEngine } = useScorecardData();\n\tconst [loading, setLoading] = useState<boolean>(false);\n\tconst [average, setAverage] = useState<number | null>(null);\n\n\tuseEffect(() => {\n\t\tsetLoading(true);\n\t\tconst listener: DataEngineListener = (data) => {\n\t\t\tif (data === \"done\") {\n\t\t\t\tsetLoading(false);\n\t\t\t\tsetAverage(\n\t\t\t\t\tgetOrgUnitAverageValues({\n\t\t\t\t\t\tdata: scorecardEngine.data,\n\t\t\t\t\t\tdataConfig,\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t}\n\t\t};\n\t\tif (scorecardEngine.isDone) {\n\t\t\tsetLoading(false);\n\t\t\tsetAverage(\n\t\t\t\tgetOrgUnitAverageValues({\n\t\t\t\t\tdata: scorecardEngine.data,\n\t\t\t\t\tdataConfig,\n\t\t\t\t}),\n\t\t\t);\n\t\t} else {\n\t\t\tscorecardEngine.addListener(listener);\n\t\t}\n\t\treturn () => {\n\t\t\tscorecardEngine.removeListener(listener);\n\t\t};\n\t}, [dataConfig]);\n\n\treturn {\n\t\tloading,\n\t\taverage,\n\t};\n}\n"]}
|
|
@@ -135,7 +135,6 @@ const scorecardAnalyticsData = zod.z.object({
|
|
|
135
135
|
});
|
|
136
136
|
const scorecardTableData = zod.z.object({
|
|
137
137
|
label: zod.z.string(),
|
|
138
|
-
dataValues: zod.z.array(scorecardAnalyticsData),
|
|
139
138
|
dataHolder: dataHolderSchema.optional(),
|
|
140
139
|
orgUnit: zod.z.object({
|
|
141
140
|
uid: zod.z.string(),
|
|
@@ -144,21 +143,34 @@ const scorecardTableData = zod.z.object({
|
|
|
144
143
|
}).optional(),
|
|
145
144
|
expand: zod.z.boolean().optional()
|
|
146
145
|
});
|
|
147
|
-
const
|
|
148
|
-
dataSources: zod.z.array(
|
|
149
|
-
dataSourceSchema.extend({
|
|
150
|
-
data: zod.z.object({
|
|
151
|
-
previous: zod.z.number().optional(),
|
|
152
|
-
current: zod.z.number().optional()
|
|
153
|
-
})
|
|
154
|
-
})
|
|
155
|
-
),
|
|
146
|
+
const scorecardTableCellConfig = zod.z.object({
|
|
147
|
+
dataSources: zod.z.array(dataSourceSchema),
|
|
156
148
|
orgUnit: zod.z.object({
|
|
157
149
|
uid: zod.z.string(),
|
|
158
150
|
name: zod.z.string(),
|
|
159
151
|
hierarchy: zod.z.string()
|
|
160
152
|
}),
|
|
161
|
-
|
|
153
|
+
previousPeriod: zod.z.string().optional(),
|
|
154
|
+
currentPeriod: zod.z.string().optional()
|
|
155
|
+
});
|
|
156
|
+
const scorecardTableAverageCellConfig = zod.z.object({
|
|
157
|
+
dataHolder: dataHolderSchema.optional(),
|
|
158
|
+
orgUnit: zod.z.object({
|
|
159
|
+
uid: zod.z.string(),
|
|
160
|
+
name: zod.z.string(),
|
|
161
|
+
hierarchy: zod.z.string()
|
|
162
|
+
}).optional()
|
|
163
|
+
});
|
|
164
|
+
const scorecardCellDataSchema = dataSourceSchema.extend({
|
|
165
|
+
data: zod.z.object({
|
|
166
|
+
previous: zod.z.number().optional(),
|
|
167
|
+
current: zod.z.number().optional()
|
|
168
|
+
})
|
|
169
|
+
});
|
|
170
|
+
const scorecardAverageCellDataSchema = dataSourceSchema.extend({
|
|
171
|
+
data: zod.z.object({
|
|
172
|
+
average: zod.z.number().optional()
|
|
173
|
+
})
|
|
162
174
|
});
|
|
163
175
|
var ScorecardTableOrientation = /* @__PURE__ */ ((ScorecardTableOrientation2) => {
|
|
164
176
|
ScorecardTableOrientation2["ORG_UNIT_VS_DATA"] = "orgUnitsVsData";
|
|
@@ -190,8 +202,11 @@ exports.orgUnitLevelLegendSchema = orgUnitLevelLegendSchema;
|
|
|
190
202
|
exports.organisationUnitSelectionSchema = organisationUnitSelectionSchema;
|
|
191
203
|
exports.periodSelectionSchema = periodSelectionSchema;
|
|
192
204
|
exports.scorecardAnalyticsData = scorecardAnalyticsData;
|
|
205
|
+
exports.scorecardAverageCellDataSchema = scorecardAverageCellDataSchema;
|
|
206
|
+
exports.scorecardCellDataSchema = scorecardCellDataSchema;
|
|
193
207
|
exports.scorecardSharing = scorecardSharing;
|
|
194
|
-
exports.
|
|
208
|
+
exports.scorecardTableAverageCellConfig = scorecardTableAverageCellConfig;
|
|
209
|
+
exports.scorecardTableCellConfig = scorecardTableCellConfig;
|
|
195
210
|
exports.scorecardTableData = scorecardTableData;
|
|
196
211
|
exports.scorecardViewOptionsSchema = scorecardViewOptionsSchema;
|
|
197
212
|
exports.specificTargetSchema = specificTargetSchema;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Scorecard/schemas/config.ts"],"names":["ScorecardTableOrientation","ScorecardTableDimension","ScorecardDraggableItems"],"mappings":"AAAA,SAAS,SAAS;AAGX,MAAM,uBAAuB,EAAE,KAAK;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,CAAC;AAEM,MAAM,mBAAmB,EAAE,OAAO;AAAA,EACxC,OAAO,EAAE,OAAO;AAAA,EAChB,UAAU,EAAE,QAAQ;AAAA,EACpB,QAAQ,EAAE,OAAO;AAAA,EACjB,OAAO,EAAE;AAAA,IACR,EAAE,OAAO;AAAA,IACT,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC;AAAA,EAChD;AAAA,EACA,YAAY,EAAE;AAAA,IACb,EAAE,OAAO;AAAA,IACT,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC;AAAA,EAChD;AACD,CAAC;AAMM,MAAM,yBAAyB,EAAE,OAAO;AAAA,EAC9C,IAAI,EAAE,OAAO;AAAA,EACb,OAAO,EAAE,OAAO;AAAA,EAChB,MAAM,EAAE,OAAO;AAAA,EACf,WAAW,EAAE,QAAQ,EAAE,SAAS;AACjC,CAAC;AAIM,MAAM,6BAA6B,EAAE,OAAO;AAAA,EAClD,eAAe,EAAE,QAAQ,EAAE,SAAS;AAAA,EACpC,oBAAoB,EAClB,KAAK,CAAC,OAAO,iBAAiB,eAAe,CAAC,EAC9C,SAAS;AAAA,EACX,YAAY,EAAE,QAAQ,EAAE,SAAS;AAAA,EACjC,WAAW,EAAE,QAAQ,EAAE,SAAS;AAAA,EAChC,uBAAuB,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC5C,YAAY,EAAE,QAAQ,EAAE,SAAS;AAAA,EACjC,QAAQ,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC7B,eAAe,EAAE,QAAQ,EAAE,SAAS;AAAA,EACpC,OAAO,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC5B,QAAQ,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC7B,gBAAgB,EAAE,QAAQ,EAAE,SAAS;AAAA,EACrC,kBAAkB,EAAE,QAAQ,EAAE,SAAS;AACxC,CAAC;AAIM,MAAM,kCAAkC,EAAE,OAAO;AAAA,EACvD,aAAa,EAAE,QAAQ,EAAE,SAAS;AAAA,EAClC,aAAa,EAAE,QAAQ,EAAE,SAAS;AAAA,EAClC,eAAe,EAAE,QAAQ,EAAE,SAAS;AAAA,EACpC,UAAU,EAAE;AAAA,IACX,EAAE,OAAO;AAAA,MACR,IAAI,EAAE,OAAO;AAAA,IACd,CAAC;AAAA,EACF;AAAA,EACA,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACrC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS;AACtC,CAAC;AAIM,MAAM,wBAAwB,EAAE,OAAO;AAAA,EAC7C,SAAS,EAAE;AAAA,IACV,EAAE,OAAO;AAAA,MACR,IAAI,EAAE,OAAO;AAAA,IACd,CAAC;AAAA,EACF;AAAA,EACA,MAAM,EAAE,OAAO,EAAE,SAAS;AAC3B,CAAC;AAIM,MAAM,eAAe,EAAE,OAAO;AAAA,EACpC,oBAAoB,EAAE,OAAO;AAAA,EAC7B,IAAI,EAAE,OAAO;AAAA,EACb,YAAY,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,CAAC;AAAA,EAC5C,UAAU,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC;AAIM,MAAM,uBAAuB,EAAE,OAAO;AAAA,EAC5C,MAAM,EAAE,KAAK,CAAC,WAAW,SAAS,CAAC;AAAA,EACnC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC;AAAA,EACzB,SAAS,EAAE,MAAM,YAAY;AAC9B,CAAC;AAIM,MAAM,2BAA2B,EAAE;AAAA,EACzC,EAAE,OAAO;AAAA,EACT,EAAE,MAAM,YAAY;AACrB;AAIO,MAAM,mBAAmB,EAAE,OAAO;AAAA,EACxC,IAAI,EAAE,OAAO;AAAA,EACb,MAAM,EAAE,OAAO;AAAA,EACf,OAAO,EAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,MAAM;AAAA,EACN,eAAe,EAAE,QAAQ;AAAA,EACzB,YAAY,EAAE,QAAQ;AAAA,EACtB,cAAc,EAAE,OAAO;AAAA,EACvB,YAAY,EAAE,QAAQ;AAAA,EACtB,QAAQ,EAAE,OAAO;AAAA,EACjB,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,YAAY,GAAG,wBAAwB,CAAC;AAAA,EAClE,iBAAiB,EAAE,MAAM,oBAAoB,EAAE,SAAS;AAAA,EACxD,oBAAoB,EAAE,QAAQ,EAAE,SAAS;AAAA,EACzC,aAAa,EAAE,OAAO,EAAE,SAAS;AAClC,CAAC;AAIM,MAAM,mBAAmB,EAAE,OAAO;AAAA,EACxC,IAAI,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,CAAC;AAAA,EACpC,aAAa,EAAE,MAAM,gBAAgB;AACtC,CAAC;AAIM,MAAM,kBAAkB,EAAE,OAAO;AAAA,EACvC,IAAI,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,CAAC;AAAA,EACpC,aAAa,EAAE,MAAM,gBAAgB;AAAA,EACrC,OAAO,EAAE,OAAO,CAAC,CAAC;AAAA,EAClB,OAAO,EAAE,OAAO;AACjB,CAAC;AAID,MAAM,kBAAkB,EAAE,OAAO;AAAA,EAChC,IAAI,EAAE,OAAO;AAAA,EACb,OAAO,EAAE,OAAO;AAAA,EAChB,UAAU,EAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,cAAc,EAAE,OAAO,EAAE,SAAS;AAAA,EAClC,aAAa,EAAE,OAAO,EAAE,SAAS;AAAA,EACjC,mBAAmB,EAAE,MAAM,sBAAsB;AAAA,EACjD,SAAS;AAAA,EACT,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,eAAe,EAAE,OAAO;AAAA,IACvB,YAAY,EAAE,MAAM,eAAe;AAAA,EACpC,CAAC;AAAA,EACD,uBAAuB,EAAE,MAAM,gBAAgB;AAAA,EAC/C,kBAAkB,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EAC/C,SAAS;AACV,CAAC;AAID,MAAM,uBAAuB,EAAE,OAAO;AAAA,EACrC,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,QAAQ,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC7B,cAAc,EAAE,QAAQ,EAAE,SAAS;AACpC,CAAC;AAIM,MAAM,yBAAyB,EAAE,OAAO;AAAA,EAC9C,IAAI,EAAE,OAAO,EAAE,SAAS;AAAA,EACxB,IAAI,EAAE,OAAO,EAAE,SAAS;AAAA,EACxB,IAAI,EAAE,OAAO,EAAE,SAAS;AAAA,EACxB,OAAO,EAAE,OAAO,EAAE,SAAS;AAC5B,CAAC;AAIM,MAAM,qBAAqB,EAAE,OAAO;AAAA,EAC1C,OAAO,EAAE,OAAO;AAAA,EAChB,YAAY,EAAE,MAAM,sBAAsB;AAAA,EAC1C,YAAY,iBAAiB,SAAS;AAAA,EACtC,SAAS,EACP,OAAO;AAAA,IACP,KAAK,EAAE,OAAO;AAAA,IACd,MAAM,EAAE,OAAO;AAAA,IACf,WAAW,EAAE,OAAO;AAAA,EACrB,CAAC,EACA,SAAS;AAAA,EACX,QAAQ,EAAE,QAAQ,EAAE,SAAS;AAC9B,CAAC;AAIM,MAAM,yBAAyB,EAAE,OAAO;AAAA,EAC9C,aAAa,EAAE;AAAA,IACd,iBAAiB,OAAO;AAAA,MACvB,MAAM,EAAE,OAAO;AAAA,QACd,UAAU,EAAE,OAAO,EAAE,SAAS;AAAA,QAC9B,SAAS,EAAE,OAAO,EAAE,SAAS;AAAA,MAC9B,CAAC;AAAA,IACF,CAAC;AAAA,EACF;AAAA,EACA,SAAS,EAAE,OAAO;AAAA,IACjB,KAAK,EAAE,OAAO;AAAA,IACd,MAAM,EAAE,OAAO;AAAA,IACf,WAAW,EAAE,OAAO;AAAA,EACrB,CAAC;AAAA,EACD,QAAQ,EAAE,OAAO;AAClB,CAAC;AAMM,IAAK,4BAAL,kBAAKA,+BAAL;AACN,EAAAA,2BAAA,sBAAmB;AACnB,EAAAA,2BAAA,sBAAmB;AAFR,SAAAA;AAAA,GAAA;AAKL,IAAK,0BAAL,kBAAKC,6BAAL;AACN,EAAAA,yBAAA,WAAQ;AACR,EAAAA,yBAAA,eAAY;AACZ,EAAAA,yBAAA,aAAU;AACV,EAAAA,yBAAA,UAAO;AAJI,SAAAA;AAAA,GAAA;AAOL,IAAK,0BAAL,kBAAKC,6BAAL;AACN,EAAAA,yBAAA,QAAK;AACL,EAAAA,yBAAA,UAAO;AAFI,SAAAA;AAAA,GAAA","sourcesContent":["import { z } from \"zod\";\nimport type { RowData } from \"@tanstack/react-table\";\n\nexport const supportedDataSources = z.enum([\n\t\"indicator\",\n\t\"programIndicator\",\n\t\"dataSet\",\n\t\"dataElement\",\n\t\"customFunction\",\n\t\"sqlView\",\n]);\n\nexport const scorecardSharing = z.object({\n\towner: z.string(),\n\texternal: z.boolean(),\n\tpublic: z.string(),\n\tusers: z.record(\n\t\tz.string(),\n\t\tz.object({ access: z.string(), id: z.string() }),\n\t),\n\tuserGroups: z.record(\n\t\tz.string(),\n\t\tz.object({ access: z.string(), id: z.string() }),\n\t),\n});\n\nexport type ScorecardSharing = z.infer<typeof scorecardSharing>;\n\nexport type SupportedDataSources = z.infer<typeof supportedDataSources>;\n\nexport const legendDefinitionSchema = z.object({\n\tid: z.string(),\n\tcolor: z.string(),\n\tname: z.string(),\n\tisDefault: z.boolean().optional(),\n});\n\nexport type LegendDefinition = z.infer<typeof legendDefinitionSchema>;\n\nexport const scorecardViewOptionsSchema = z.object({\n\taverageColumn: z.boolean().optional(),\n\taverageDisplayType: z\n\t\t.enum([\"ALL\", \"ABOVE_AVERAGE\", \"BELOW_AVERAGE\"])\n\t\t.optional(),\n\taverageRow: z.boolean().optional(),\n\temptyRows: z.boolean().optional(),\n\thighlightedIndicators: z.boolean().optional(),\n\titemNumber: z.boolean().optional(),\n\tlegend: z.boolean().optional(),\n\tshowHierarchy: z.boolean().optional(),\n\ttitle: z.boolean().optional(),\n\tarrows: z.boolean().optional(),\n\tshowDataInRows: z.boolean().optional(),\n\tdisableExpanding: z.boolean().optional(),\n});\n\nexport type ScorecardViewOptions = z.infer<typeof scorecardViewOptionsSchema>;\n\nexport const organisationUnitSelectionSchema = z.object({\n\tuserOrgUnit: z.boolean().optional(),\n\tuserSubUnit: z.boolean().optional(),\n\tuserSubX2Unit: z.boolean().optional(),\n\torgUnits: z.array(\n\t\tz.object({\n\t\t\tid: z.string(),\n\t\t}),\n\t),\n\tgroups: z.array(z.string()).optional(),\n\tlevels: z.array(z.string()).optional(),\n});\n\nexport type OrgUnitSelection = z.infer<typeof organisationUnitSelectionSchema>;\n\nexport const periodSelectionSchema = z.object({\n\tperiods: z.array(\n\t\tz.object({\n\t\t\tid: z.string(),\n\t\t}),\n\t),\n\ttype: z.string().optional(),\n});\n\nexport type PeriodSelection = z.infer<typeof periodSelectionSchema>;\n\nexport const legendSchema = z.object({\n\tlegendDefinitionId: z.string(),\n\tid: z.string(),\n\tstartValue: z.union([z.string(), z.number()]),\n\tendValue: z.union([z.string(), z.number()]),\n});\n\nexport type ScorecardLegend = z.infer<typeof legendSchema>;\n\nexport const specificTargetSchema = z.object({\n\ttype: z.enum([\"periods\", \"orgUnit\"]),\n\titems: z.array(z.string()),\n\tlegends: z.array(legendSchema),\n});\n\nexport type SpecificTarget = z.infer<typeof specificTargetSchema>;\n\nexport const orgUnitLevelLegendSchema = z.record(\n\tz.string(),\n\tz.array(legendSchema),\n);\n\nexport type OrgUnitLevelLegend = z.infer<typeof orgUnitLevelLegendSchema>;\n\nexport const dataSourceSchema = z.object({\n\tid: z.string(),\n\tname: z.string(),\n\tlabel: z.string().optional(),\n\ttype: supportedDataSources,\n\tdisplayArrows: z.boolean(),\n\thighIsGood: z.boolean(),\n\teffectiveGap: z.number(),\n\tshowColors: z.boolean(),\n\tweight: z.number(),\n\tlegends: z.union([z.array(legendSchema), orgUnitLevelLegendSchema]),\n\tspecificTargets: z.array(specificTargetSchema).optional(),\n\tspecificTargetsSet: z.boolean().optional(),\n\tdescription: z.string().optional(),\n});\n\nexport type ScorecardDataSource = z.infer<typeof dataSourceSchema>;\n\nexport const dataHolderSchema = z.object({\n\tid: z.union([z.number(), z.string()]),\n\tdataSources: z.array(dataSourceSchema),\n});\n\nexport type ScorecardDataHolder = z.infer<typeof dataHolderSchema>;\n\nexport const dataGroupSchema = z.object({\n\tid: z.union([z.number(), z.string()]),\n\tdataHolders: z.array(dataHolderSchema),\n\tstyle: z.object({}),\n\ttitle: z.string(),\n});\n\nexport type ScorecardDataGroup = z.infer<typeof dataGroupSchema>;\n\nconst scorecardConfig = z.object({\n\tid: z.string(),\n\ttitle: z.string(),\n\tsubtitle: z.string().optional(),\n\tcustomHeader: z.string().optional(),\n\tdescription: z.string().optional(),\n\tlegendDefinitions: z.array(legendDefinitionSchema),\n\toptions: scorecardViewOptionsSchema,\n\torgUnitSelection: organisationUnitSelectionSchema,\n\tperiodSelection: periodSelectionSchema,\n\tdataSelection: z.object({\n\t\tdataGroups: z.array(dataGroupSchema),\n\t}),\n\thighlightedIndicators: z.array(dataSourceSchema),\n\tadditionalLabels: z.array(z.string()).optional(),\n\tsharing: scorecardSharing,\n});\n\nexport type ScorecardConfig = z.infer<typeof scorecardConfig>;\n\nconst scorecardStateSchema = z.object({\n\torgUnitSelection: organisationUnitSelectionSchema,\n\tperiodSelection: periodSelectionSchema,\n\toptions: scorecardViewOptionsSchema,\n\tnested: z.boolean().optional(),\n\thasOnePeriod: z.boolean().optional(),\n});\n\nexport type ScorecardState = z.infer<typeof scorecardStateSchema>;\n\nexport const scorecardAnalyticsData = z.object({\n\tdx: z.string().optional(),\n\tpe: z.string().optional(),\n\tou: z.string().optional(),\n\tvalue: z.string().optional(),\n});\n\nexport type ScorecardAnalyticsData = z.infer<typeof scorecardAnalyticsData>;\n\nexport const scorecardTableData = z.object({\n\tlabel: z.string(),\n\tdataValues: z.array(scorecardAnalyticsData),\n\tdataHolder: dataHolderSchema.optional(),\n\torgUnit: z\n\t\t.object({\n\t\t\tuid: z.string(),\n\t\t\tname: z.string(),\n\t\t\thierarchy: z.string(),\n\t\t})\n\t\t.optional(),\n\texpand: z.boolean().optional(),\n});\n\nexport type ScorecardTableData = z.infer<typeof scorecardTableData> & RowData;\n\nexport const scorecardTableCellData = z.object({\n\tdataSources: z.array(\n\t\tdataSourceSchema.extend({\n\t\t\tdata: z.object({\n\t\t\t\tprevious: z.number().optional(),\n\t\t\t\tcurrent: z.number().optional(),\n\t\t\t}),\n\t\t}),\n\t),\n\torgUnit: z.object({\n\t\tuid: z.string(),\n\t\tname: z.string(),\n\t\thierarchy: z.string(),\n\t}),\n\tperiod: z.string(),\n});\n\nexport type ScorecardTableCellData = z.infer<typeof scorecardTableCellData>;\n\nexport type SanitizedScorecardTableData = z.infer<typeof scorecardTableData>;\n\nexport enum ScorecardTableOrientation {\n\tORG_UNIT_VS_DATA = \"orgUnitsVsData\",\n\tDATA_VS_ORG_UNIT = \"dataVsOrgUnits\",\n}\n\nexport enum ScorecardTableDimension {\n\tGROUP = \"group\",\n\tORG_UNITS = \"orgUnits\",\n\tPERIODS = \"periods\",\n\tDATA = \"data\",\n}\n\nexport enum ScorecardDraggableItems {\n\tou = \"ou\",\n\tdata = \"data\",\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Scorecard/schemas/config.ts"],"names":["ScorecardTableOrientation","ScorecardTableDimension","ScorecardDraggableItems"],"mappings":"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","sourcesContent":["import { z } from \"zod\";\nimport type { RowData } from \"@tanstack/react-table\";\n\nexport const supportedDataSources = z.enum([\n\t\"indicator\",\n\t\"programIndicator\",\n\t\"dataSet\",\n\t\"dataElement\",\n\t\"customFunction\",\n\t\"sqlView\",\n]);\n\nexport const scorecardSharing = z.object({\n\towner: z.string(),\n\texternal: z.boolean(),\n\tpublic: z.string(),\n\tusers: z.record(\n\t\tz.string(),\n\t\tz.object({ access: z.string(), id: z.string() }),\n\t),\n\tuserGroups: z.record(\n\t\tz.string(),\n\t\tz.object({ access: z.string(), id: z.string() }),\n\t),\n});\n\nexport type ScorecardSharing = z.infer<typeof scorecardSharing>;\n\nexport type SupportedDataSources = z.infer<typeof supportedDataSources>;\n\nexport const legendDefinitionSchema = z.object({\n\tid: z.string(),\n\tcolor: z.string(),\n\tname: z.string(),\n\tisDefault: z.boolean().optional(),\n});\n\nexport type LegendDefinition = z.infer<typeof legendDefinitionSchema>;\n\nexport const scorecardViewOptionsSchema = z.object({\n\taverageColumn: z.boolean().optional(),\n\taverageDisplayType: z\n\t\t.enum([\"ALL\", \"ABOVE_AVERAGE\", \"BELOW_AVERAGE\"])\n\t\t.optional(),\n\taverageRow: z.boolean().optional(),\n\temptyRows: z.boolean().optional(),\n\thighlightedIndicators: z.boolean().optional(),\n\titemNumber: z.boolean().optional(),\n\tlegend: z.boolean().optional(),\n\tshowHierarchy: z.boolean().optional(),\n\ttitle: z.boolean().optional(),\n\tarrows: z.boolean().optional(),\n\tshowDataInRows: z.boolean().optional(),\n\tdisableExpanding: z.boolean().optional(),\n});\n\nexport type ScorecardViewOptions = z.infer<typeof scorecardViewOptionsSchema>;\n\nexport const organisationUnitSelectionSchema = z.object({\n\tuserOrgUnit: z.boolean().optional(),\n\tuserSubUnit: z.boolean().optional(),\n\tuserSubX2Unit: z.boolean().optional(),\n\torgUnits: z.array(\n\t\tz.object({\n\t\t\tid: z.string(),\n\t\t}),\n\t),\n\tgroups: z.array(z.string()).optional(),\n\tlevels: z.array(z.string()).optional(),\n});\n\nexport type OrgUnitSelection = z.infer<typeof organisationUnitSelectionSchema>;\n\nexport const periodSelectionSchema = z.object({\n\tperiods: z.array(\n\t\tz.object({\n\t\t\tid: z.string(),\n\t\t}),\n\t),\n\ttype: z.string().optional(),\n});\n\nexport type PeriodSelection = z.infer<typeof periodSelectionSchema>;\n\nexport const legendSchema = z.object({\n\tlegendDefinitionId: z.string(),\n\tid: z.string(),\n\tstartValue: z.union([z.string(), z.number()]),\n\tendValue: z.union([z.string(), z.number()]),\n});\n\nexport type ScorecardLegend = z.infer<typeof legendSchema>;\n\nexport const specificTargetSchema = z.object({\n\ttype: z.enum([\"periods\", \"orgUnit\"]),\n\titems: z.array(z.string()),\n\tlegends: z.array(legendSchema),\n});\n\nexport type SpecificTarget = z.infer<typeof specificTargetSchema>;\n\nexport const orgUnitLevelLegendSchema = z.record(\n\tz.string(),\n\tz.array(legendSchema),\n);\n\nexport type OrgUnitLevelLegend = z.infer<typeof orgUnitLevelLegendSchema>;\n\nexport const dataSourceSchema = z.object({\n\tid: z.string(),\n\tname: z.string(),\n\tlabel: z.string().optional(),\n\ttype: supportedDataSources,\n\tdisplayArrows: z.boolean(),\n\thighIsGood: z.boolean(),\n\teffectiveGap: z.number(),\n\tshowColors: z.boolean(),\n\tweight: z.number(),\n\tlegends: z.union([z.array(legendSchema), orgUnitLevelLegendSchema]),\n\tspecificTargets: z.array(specificTargetSchema).optional(),\n\tspecificTargetsSet: z.boolean().optional(),\n\tdescription: z.string().optional(),\n});\n\nexport type ScorecardDataSource = z.infer<typeof dataSourceSchema>;\n\nexport const dataHolderSchema = z.object({\n\tid: z.union([z.number(), z.string()]),\n\tdataSources: z.array(dataSourceSchema),\n});\n\nexport type ScorecardDataHolder = z.infer<typeof dataHolderSchema>;\n\nexport const dataGroupSchema = z.object({\n\tid: z.union([z.number(), z.string()]),\n\tdataHolders: z.array(dataHolderSchema),\n\tstyle: z.object({}),\n\ttitle: z.string(),\n});\n\nexport type ScorecardDataGroup = z.infer<typeof dataGroupSchema>;\n\nconst scorecardConfig = z.object({\n\tid: z.string(),\n\ttitle: z.string(),\n\tsubtitle: z.string().optional(),\n\tcustomHeader: z.string().optional(),\n\tdescription: z.string().optional(),\n\tlegendDefinitions: z.array(legendDefinitionSchema),\n\toptions: scorecardViewOptionsSchema,\n\torgUnitSelection: organisationUnitSelectionSchema,\n\tperiodSelection: periodSelectionSchema,\n\tdataSelection: z.object({\n\t\tdataGroups: z.array(dataGroupSchema),\n\t}),\n\thighlightedIndicators: z.array(dataSourceSchema),\n\tadditionalLabels: z.array(z.string()).optional(),\n\tsharing: scorecardSharing,\n});\n\nexport type ScorecardConfig = z.infer<typeof scorecardConfig>;\n\nconst scorecardStateSchema = z.object({\n\torgUnitSelection: organisationUnitSelectionSchema,\n\tperiodSelection: periodSelectionSchema,\n\toptions: scorecardViewOptionsSchema,\n\tnested: z.boolean().optional(),\n\thasOnePeriod: z.boolean().optional(),\n});\n\nexport type ScorecardState = z.infer<typeof scorecardStateSchema>;\n\nexport const scorecardAnalyticsData = z.object({\n\tdx: z.string().optional(),\n\tpe: z.string().optional(),\n\tou: z.string().optional(),\n\tvalue: z.string().optional(),\n});\n\nexport type ScorecardAnalyticsData = z.infer<typeof scorecardAnalyticsData>;\n\nexport const scorecardTableData = z.object({\n\tlabel: z.string(),\n\tdataHolder: dataHolderSchema.optional(),\n\torgUnit: z\n\t\t.object({\n\t\t\tuid: z.string(),\n\t\t\tname: z.string(),\n\t\t\thierarchy: z.string(),\n\t\t})\n\t\t.optional(),\n\texpand: z.boolean().optional(),\n});\n\nexport type ScorecardTableData = z.infer<typeof scorecardTableData> & RowData;\n\nexport const scorecardTableCellConfig = z.object({\n\tdataSources: z.array(dataSourceSchema),\n\torgUnit: z.object({\n\t\tuid: z.string(),\n\t\tname: z.string(),\n\t\thierarchy: z.string(),\n\t}),\n\tpreviousPeriod: z.string().optional(),\n\tcurrentPeriod: z.string().optional(),\n});\nexport type ScorecardTableCellConfig = z.infer<typeof scorecardTableCellConfig>;\n\nexport const scorecardTableAverageCellConfig = z.object({\n\tdataHolder: dataHolderSchema.optional(),\n\torgUnit: z\n\t\t.object({\n\t\t\tuid: z.string(),\n\t\t\tname: z.string(),\n\t\t\thierarchy: z.string(),\n\t\t})\n\t\t.optional(),\n});\nexport type ScorecardTableAverageCellConfig = z.infer<\n\ttypeof scorecardTableAverageCellConfig\n>;\n\nexport const scorecardCellDataSchema = dataSourceSchema.extend({\n\tdata: z.object({\n\t\tprevious: z.number().optional(),\n\t\tcurrent: z.number().optional(),\n\t}),\n});\nexport type ScorecardCellData = z.infer<typeof scorecardCellDataSchema>;\n\nexport const scorecardAverageCellDataSchema = dataSourceSchema.extend({\n\tdata: z.object({\n\t\taverage: z.number().optional(),\n\t}),\n});\nexport type ScorecardAverageCellData = z.infer<\n\ttypeof scorecardAverageCellDataSchema\n>;\n\nexport type SanitizedScorecardTableData = z.infer<typeof scorecardTableData>;\n\nexport enum ScorecardTableOrientation {\n\tORG_UNIT_VS_DATA = \"orgUnitsVsData\",\n\tDATA_VS_ORG_UNIT = \"dataVsOrgUnits\",\n}\n\nexport enum ScorecardTableDimension {\n\tGROUP = \"group\",\n\tORG_UNITS = \"orgUnits\",\n\tPERIODS = \"periods\",\n\tDATA = \"data\",\n}\n\nexport enum ScorecardDraggableItems {\n\tou = \"ou\",\n\tdata = \"data\",\n}\n"]}
|
|
@@ -5,16 +5,17 @@ var orgUnits = require('./orgUnits');
|
|
|
5
5
|
|
|
6
6
|
function getDimensions({
|
|
7
7
|
config,
|
|
8
|
-
|
|
8
|
+
orgUnitSelection,
|
|
9
|
+
periodSelection
|
|
9
10
|
}) {
|
|
10
11
|
const dataItemObjects = dataSources.getDataSourcesFromGroups(
|
|
11
12
|
config?.dataSelection?.dataGroups ?? []
|
|
12
13
|
);
|
|
13
14
|
const dataItemsIds = dataItemObjects?.map((item) => item?.id);
|
|
14
15
|
const orgUnitsIds = orgUnits.getOrgUnitsForAnalytics(
|
|
15
|
-
|
|
16
|
+
orgUnitSelection ?? config?.orgUnitSelection
|
|
16
17
|
);
|
|
17
|
-
const periodsIds =
|
|
18
|
+
const periodsIds = periodSelection.periods.map((period) => period.id);
|
|
18
19
|
return {
|
|
19
20
|
dataItemsIds,
|
|
20
21
|
orgUnitsIds,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Scorecard/utils/analytics.ts"],"names":[],"mappings":"AACA,SAAS,gCAAgC;AACzC,SAAS,+BAA+B;AAGjC,SAAS,cAAc;AAAA,EAC7B;AAAA,EACA;AACD,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Scorecard/utils/analytics.ts"],"names":[],"mappings":"AACA,SAAS,gCAAgC;AACzC,SAAS,+BAA+B;AAGjC,SAAS,cAAc;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AACD,GAIG;AACF,QAAM,kBAAkB;AAAA,IACvB,QAAQ,eAAe,cAAc,CAAC;AAAA,EACvC;AAEA,QAAM,eAAe,iBAAiB,IAAI,CAAC,SAAS,MAAM,EAAE;AAC5D,QAAM,cAAc;AAAA,IACnB,oBAAoB,QAAQ;AAAA,EAC7B;AACA,QAAM,aAAa,gBAAgB,QAAQ,IAAI,CAAC,WAAW,OAAO,EAAE;AAEpE,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;AAEO,SAAS,sBAAsB,EAAE,KAAK,GAA4B;AACxE,QAAM,eAAe,KAAK,UAAU,IAAI,CAAC,SAAS,KAAK,GAAG;AAC1D,QAAM,cAAc,KAAK,SAAS,IAAI,CAAC,YAAY,QAAQ,GAAG;AAC9D,QAAM,aAAa,KAAK,QAAQ,IAAI,CAAC,WAAW,OAAO,GAAG;AAE1D,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD","sourcesContent":["import type { ScorecardConfig, ScorecardState } from \"../schemas/config\";\nimport { getDataSourcesFromGroups } from \"./dataSources\";\nimport { getOrgUnitsForAnalytics } from \"./orgUnits\";\nimport type { ScorecardMeta } from \"../components\";\n\nexport function getDimensions({\n\tconfig,\n\torgUnitSelection,\n\tperiodSelection,\n}: {\n\tconfig: ScorecardConfig;\n\torgUnitSelection: ScorecardState[\"orgUnitSelection\"];\n\tperiodSelection: ScorecardState[\"periodSelection\"];\n}) {\n\tconst dataItemObjects = getDataSourcesFromGroups(\n\t\tconfig?.dataSelection?.dataGroups ?? [],\n\t);\n\n\tconst dataItemsIds = dataItemObjects?.map((item) => item?.id);\n\tconst orgUnitsIds = getOrgUnitsForAnalytics(\n\t\torgUnitSelection ?? config?.orgUnitSelection,\n\t);\n\tconst periodsIds = periodSelection.periods.map((period) => period.id);\n\n\treturn {\n\t\tdataItemsIds,\n\t\torgUnitsIds,\n\t\tperiodsIds,\n\t};\n}\n\nexport function getDimensionsFromMeta({ meta }: { meta: ScorecardMeta }) {\n\tconst dataItemsIds = meta.dataItems.map((item) => item.uid);\n\tconst orgUnitsIds = meta.orgUnits.map((orgUnit) => orgUnit.uid);\n\tconst periodsIds = meta.periods.map((period) => period.uid);\n\n\treturn {\n\t\tdataItemsIds,\n\t\torgUnitsIds,\n\t\tperiodsIds,\n\t};\n}\n"]}
|
|
@@ -11,15 +11,44 @@ var DataFooterCell = require('../components/ScorecardTable/components/DataFooter
|
|
|
11
11
|
var AverageFooterCell = require('../components/ScorecardTable/components/AverageFooterCell');
|
|
12
12
|
|
|
13
13
|
const columnHelper = reactTable.createColumnHelper();
|
|
14
|
-
function
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
14
|
+
function getValueFromConfig({
|
|
15
|
+
config,
|
|
16
|
+
data
|
|
17
|
+
}) {
|
|
18
|
+
const dataValues = data.filter((datum) => {
|
|
19
|
+
return config.orgUnit.uid === datum.ou && config.currentPeriod === datum.pe && datum.dx === lodash.head(config.dataSources).id;
|
|
20
|
+
});
|
|
21
|
+
return {
|
|
22
|
+
...lodash.head(config.dataSources),
|
|
23
|
+
data: getValues({
|
|
24
|
+
values: dataValues,
|
|
25
|
+
currentPeriod: config.currentPeriod,
|
|
26
|
+
previousPeriod: config.previousPeriod
|
|
27
|
+
})
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
function getSortingFunction(dataEngine) {
|
|
31
|
+
return function sortingFunction(rowA, rowB, columnId) {
|
|
32
|
+
if (!dataEngine.isDone) {
|
|
33
|
+
return 0;
|
|
34
|
+
}
|
|
35
|
+
const dataA = rowA.getValue(columnId);
|
|
36
|
+
const dataB = rowB.getValue(columnId);
|
|
37
|
+
const dataAValue = getValueFromConfig({
|
|
38
|
+
config: dataA,
|
|
39
|
+
data: dataEngine.data
|
|
40
|
+
});
|
|
41
|
+
const dataBValue = getValueFromConfig({
|
|
42
|
+
config: dataB,
|
|
43
|
+
data: dataEngine.data
|
|
44
|
+
});
|
|
45
|
+
const valueA = dataAValue.data.current ?? 0;
|
|
46
|
+
const valueB = dataBValue.data.current ?? 0;
|
|
47
|
+
if (valueA === valueB) {
|
|
48
|
+
return 0;
|
|
49
|
+
}
|
|
50
|
+
return valueA > valueB ? 1 : -1;
|
|
51
|
+
};
|
|
23
52
|
}
|
|
24
53
|
function getAverageValue({
|
|
25
54
|
dataValues,
|
|
@@ -51,7 +80,8 @@ function getValues({
|
|
|
51
80
|
}
|
|
52
81
|
function getOrgUnitColumnHeaders({
|
|
53
82
|
meta,
|
|
54
|
-
calendar
|
|
83
|
+
calendar,
|
|
84
|
+
dataEngine
|
|
55
85
|
}) {
|
|
56
86
|
const orgUnits = meta.orgUnits ?? [];
|
|
57
87
|
const periods = meta.periods ?? [];
|
|
@@ -76,30 +106,10 @@ function getOrgUnitColumnHeaders({
|
|
|
76
106
|
steps: -1
|
|
77
107
|
})
|
|
78
108
|
)?.id;
|
|
79
|
-
const
|
|
80
|
-
return ou === orgUnit.uid;
|
|
81
|
-
});
|
|
82
|
-
const dataSources = rowData.dataHolder?.dataSources?.map(
|
|
83
|
-
(dataSource) => {
|
|
84
|
-
const dataSourceValues = values.filter(
|
|
85
|
-
(value) => {
|
|
86
|
-
return value.dx === dataSource.id;
|
|
87
|
-
}
|
|
88
|
-
);
|
|
89
|
-
const data = getValues({
|
|
90
|
-
currentPeriod,
|
|
91
|
-
previousPeriod,
|
|
92
|
-
values: dataSourceValues
|
|
93
|
-
});
|
|
94
|
-
return {
|
|
95
|
-
...dataSource,
|
|
96
|
-
data
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
);
|
|
109
|
+
const dataSources = rowData.dataHolder?.dataSources;
|
|
100
110
|
return {
|
|
101
|
-
|
|
102
|
-
|
|
111
|
+
currentPeriod,
|
|
112
|
+
previousPeriod,
|
|
103
113
|
dataSources,
|
|
104
114
|
orgUnit
|
|
105
115
|
};
|
|
@@ -112,7 +122,7 @@ function getOrgUnitColumnHeaders({
|
|
|
112
122
|
cell: DataContainer.DataContainer,
|
|
113
123
|
id: `${orgUnit.uid}-${uid}`,
|
|
114
124
|
enableSorting: true,
|
|
115
|
-
sortingFn:
|
|
125
|
+
sortingFn: getSortingFunction(dataEngine),
|
|
116
126
|
footer: DataFooterCell.DataFooterCell
|
|
117
127
|
}
|
|
118
128
|
)
|
|
@@ -120,9 +130,7 @@ function getOrgUnitColumnHeaders({
|
|
|
120
130
|
});
|
|
121
131
|
});
|
|
122
132
|
}
|
|
123
|
-
function getAverageColumn({
|
|
124
|
-
meta
|
|
125
|
-
}) {
|
|
133
|
+
function getAverageColumn({}) {
|
|
126
134
|
return columnHelper.group({
|
|
127
135
|
id: "average-header",
|
|
128
136
|
header: AverageHeaderCell.AverageHeaderCell,
|
|
@@ -130,25 +138,7 @@ function getAverageColumn({
|
|
|
130
138
|
columnHelper.accessor(
|
|
131
139
|
(rowData) => {
|
|
132
140
|
return {
|
|
133
|
-
...rowData
|
|
134
|
-
dataSources: rowData.dataHolder?.dataSources?.map(
|
|
135
|
-
(dataSource) => {
|
|
136
|
-
const dataValues = rowData.dataValues.filter(
|
|
137
|
-
({ dx }) => dx === dataSource.id
|
|
138
|
-
);
|
|
139
|
-
return {
|
|
140
|
-
...dataSource,
|
|
141
|
-
average: getAverageValue({
|
|
142
|
-
dataValues,
|
|
143
|
-
meta
|
|
144
|
-
})
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
),
|
|
148
|
-
average: getAverageValue({
|
|
149
|
-
dataValues: rowData.dataValues,
|
|
150
|
-
meta
|
|
151
|
-
})
|
|
141
|
+
...rowData
|
|
152
142
|
};
|
|
153
143
|
},
|
|
154
144
|
{
|
|
@@ -166,13 +156,11 @@ function getDataHolderColumn({
|
|
|
166
156
|
hasOnePeriod,
|
|
167
157
|
dataHolder,
|
|
168
158
|
periods,
|
|
169
|
-
calendar
|
|
159
|
+
calendar,
|
|
160
|
+
dataEngine
|
|
170
161
|
}) {
|
|
171
162
|
const { id, dataSources } = dataHolder;
|
|
172
|
-
const header = dataSources.length === 1 ? lodash.head(dataSources)?.label : dataSources.reduce(
|
|
173
|
-
(acc, { label, id: id2 }) => `${acc} / ${label}`,
|
|
174
|
-
""
|
|
175
|
-
);
|
|
163
|
+
const header = dataSources.length === 1 ? lodash.head(dataSources)?.label : dataSources.reduce((acc, { label }) => `${acc} / ${label}`, "");
|
|
176
164
|
if (hasOnePeriod) {
|
|
177
165
|
return columnHelper.accessor(
|
|
178
166
|
(rowData) => {
|
|
@@ -187,24 +175,11 @@ function getDataHolderColumn({
|
|
|
187
175
|
steps: -1
|
|
188
176
|
})
|
|
189
177
|
)?.id;
|
|
190
|
-
const dataSourceWithValues = dataSources.map((dataSource) => {
|
|
191
|
-
const values = rowData.dataValues.filter(({ dx }) => {
|
|
192
|
-
return dx === dataSource.id;
|
|
193
|
-
});
|
|
194
|
-
const data = getValues({
|
|
195
|
-
currentPeriod,
|
|
196
|
-
previousPeriod,
|
|
197
|
-
values
|
|
198
|
-
});
|
|
199
|
-
return {
|
|
200
|
-
...dataSource,
|
|
201
|
-
data
|
|
202
|
-
};
|
|
203
|
-
});
|
|
204
178
|
return {
|
|
205
179
|
...rowData,
|
|
206
|
-
dataSources
|
|
207
|
-
|
|
180
|
+
dataSources,
|
|
181
|
+
previousPeriod,
|
|
182
|
+
currentPeriod
|
|
208
183
|
};
|
|
209
184
|
},
|
|
210
185
|
{
|
|
@@ -215,7 +190,7 @@ function getDataHolderColumn({
|
|
|
215
190
|
id: id.toString(),
|
|
216
191
|
cell: DataContainer.DataContainer,
|
|
217
192
|
enableSorting: true,
|
|
218
|
-
sortingFn:
|
|
193
|
+
sortingFn: getSortingFunction(dataEngine),
|
|
219
194
|
footer: DataFooterCell.DataFooterCell
|
|
220
195
|
}
|
|
221
196
|
);
|
|
@@ -236,28 +211,11 @@ function getDataHolderColumn({
|
|
|
236
211
|
steps: -1
|
|
237
212
|
})
|
|
238
213
|
)?.id;
|
|
239
|
-
const dataSourceWithValues = dataSources.map(
|
|
240
|
-
(dataSource) => {
|
|
241
|
-
const values = rowData.dataValues.filter(
|
|
242
|
-
({ dx }) => {
|
|
243
|
-
return dx === dataSource.id;
|
|
244
|
-
}
|
|
245
|
-
);
|
|
246
|
-
const data = getValues({
|
|
247
|
-
currentPeriod,
|
|
248
|
-
previousPeriod,
|
|
249
|
-
values
|
|
250
|
-
});
|
|
251
|
-
return {
|
|
252
|
-
...dataSource,
|
|
253
|
-
data
|
|
254
|
-
};
|
|
255
|
-
}
|
|
256
|
-
);
|
|
257
214
|
return {
|
|
258
215
|
...rowData,
|
|
259
|
-
dataSources
|
|
260
|
-
|
|
216
|
+
dataSources,
|
|
217
|
+
currentPeriod,
|
|
218
|
+
previousPeriod
|
|
261
219
|
};
|
|
262
220
|
},
|
|
263
221
|
{
|
|
@@ -268,7 +226,7 @@ function getDataHolderColumn({
|
|
|
268
226
|
cell: DataContainer.DataContainer,
|
|
269
227
|
id: `${id.toString()}-${uid}`,
|
|
270
228
|
enableSorting: true,
|
|
271
|
-
sortingFn:
|
|
229
|
+
sortingFn: getSortingFunction(dataEngine),
|
|
272
230
|
footer: DataFooterCell.DataFooterCell
|
|
273
231
|
}
|
|
274
232
|
)
|
|
@@ -278,13 +236,14 @@ function getDataHolderColumn({
|
|
|
278
236
|
},
|
|
279
237
|
header: DataHeaderCell.DataHeaderCell,
|
|
280
238
|
enableSorting: true,
|
|
281
|
-
sortingFn:
|
|
239
|
+
sortingFn: getSortingFunction(dataEngine)
|
|
282
240
|
});
|
|
283
241
|
}
|
|
284
242
|
function getDataColumnHeaders({
|
|
285
243
|
meta,
|
|
286
244
|
config,
|
|
287
|
-
calendar
|
|
245
|
+
calendar,
|
|
246
|
+
dataEngine
|
|
288
247
|
}) {
|
|
289
248
|
const dataGroups = config.dataSelection.dataGroups ?? [];
|
|
290
249
|
const hasOneGroup = dataGroups.length === 1;
|
|
@@ -294,7 +253,7 @@ function getDataColumnHeaders({
|
|
|
294
253
|
return dataGroups.map(({ title, dataHolders, id }) => {
|
|
295
254
|
return columnHelper.group({
|
|
296
255
|
id: id.toString(),
|
|
297
|
-
header: DataHeaderCell.
|
|
256
|
+
header: DataHeaderCell.EmptyDataHeaderCell,
|
|
298
257
|
meta: {
|
|
299
258
|
label: title,
|
|
300
259
|
bold: true
|
|
@@ -304,7 +263,8 @@ function getDataColumnHeaders({
|
|
|
304
263
|
hasOnePeriod,
|
|
305
264
|
dataHolder,
|
|
306
265
|
periods,
|
|
307
|
-
calendar
|
|
266
|
+
calendar,
|
|
267
|
+
dataEngine
|
|
308
268
|
});
|
|
309
269
|
}),
|
|
310
270
|
enableSorting: false,
|
|
@@ -325,7 +285,8 @@ function getDataColumnHeaders({
|
|
|
325
285
|
hasOnePeriod,
|
|
326
286
|
dataHolder,
|
|
327
287
|
periods,
|
|
328
|
-
calendar
|
|
288
|
+
calendar,
|
|
289
|
+
dataEngine
|
|
329
290
|
});
|
|
330
291
|
}),
|
|
331
292
|
enableSorting: false,
|
|
@@ -339,5 +300,6 @@ exports.getAverageColumn = getAverageColumn;
|
|
|
339
300
|
exports.getAverageValue = getAverageValue;
|
|
340
301
|
exports.getDataColumnHeaders = getDataColumnHeaders;
|
|
341
302
|
exports.getOrgUnitColumnHeaders = getOrgUnitColumnHeaders;
|
|
303
|
+
exports.getValues = getValues;
|
|
342
304
|
//# sourceMappingURL=out.js.map
|
|
343
305
|
//# sourceMappingURL=columns.js.map
|