@hisptz/dhis2-analytics 2.0.14 → 2.0.16
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/Scorecard/Scorecard.js +22 -0
- package/dist/components/Scorecard/Scorecard.js.map +1 -0
- package/dist/components/Scorecard/Scorecard.stories.js +1188 -0
- package/dist/components/Scorecard/Scorecard.stories.js.map +1 -0
- package/dist/components/Scorecard/components/ConfigProvider.js +17 -0
- package/dist/components/Scorecard/components/ConfigProvider.js.map +1 -0
- package/dist/components/Scorecard/components/DataProvider.js +39 -0
- package/dist/components/Scorecard/components/DataProvider.js.map +1 -0
- package/dist/components/Scorecard/components/MetaProvider.js +45 -0
- package/dist/components/Scorecard/components/MetaProvider.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/FurtherAnalysisDictionary.js +29 -0
- package/dist/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/FurtherAnalysisDictionary.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/components/ConfigProvider.js +30 -0
- package/dist/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/components/ConfigProvider.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/components/DetailsProvider.js +62 -0
- package/dist/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/components/DetailsProvider.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/index.js +14 -0
- package/dist/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/index.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/FurtherAnalysisVisualization.js +77 -0
- package/dist/components/Scorecard/components/ScorecardTable/FurtherAnalysisVisualization.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/ScorecardTable.js +42 -0
- package/dist/components/Scorecard/components/ScorecardTable/ScorecardTable.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/ScorecardTable.module.css +11 -0
- package/dist/components/Scorecard/components/ScorecardTable/ScorecardTable.module.css.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/AverageCell.js +102 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/AverageCell.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/AverageFooterCell.js +24 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/AverageFooterCell.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/DataContainer.js +27 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/DataContainer.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/DataFooterCell.js +50 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/DataFooterCell.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/DataRow.js +50 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/DataRow.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/DataValue.js +66 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/DataValue.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/DraggableCell.js +47 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/DraggableCell.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/DroppableCell.js +38 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/DroppableCell.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/EmptyFooterCell.js +12 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/EmptyFooterCell.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/ExpandedScorecardTable.js +56 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/ExpandedScorecardTable.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/FurtherAnalysisMenu.js +152 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/FurtherAnalysisMenu.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/FurtherAnalysisModal.js +58 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/FurtherAnalysisModal.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/LinkedCell.js +100 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/LinkedCell.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/LinkedDataCell.js +95 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/LinkedDataCell.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/LinkedDataFooterCell.js +45 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/LinkedDataFooterCell.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.js +20 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/SingleDataCell.js +98 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/SingleDataCell.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/SingleDataFooterCell.js +38 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/SingleDataFooterCell.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/TableBody.js +15 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/TableBody.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/TableFoot.js +28 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/TableFoot.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.js +20 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.module.css +12 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.module.css.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js +40 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js +62 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/ExpandCell.js +16 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/ExpandCell.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/FilterArea.js +37 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/FilterArea.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.js +49 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js +63 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/NumberCell.js +24 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/NumberCell.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/index.js +14 -0
- package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/index.js.map +1 -0
- package/dist/components/Scorecard/components/ScorecardTable/index.js +14 -0
- package/dist/components/Scorecard/components/ScorecardTable/index.js.map +1 -0
- package/dist/components/Scorecard/components/StateProvider.js +26 -0
- package/dist/components/Scorecard/components/StateProvider.js.map +1 -0
- package/dist/components/Scorecard/components/StateSetProvider.js +17 -0
- package/dist/components/Scorecard/components/StateSetProvider.js.map +1 -0
- package/dist/components/Scorecard/components/TableStateProvider.js +26 -0
- package/dist/components/Scorecard/components/TableStateProvider.js.map +1 -0
- package/dist/components/Scorecard/hooks/average.js +50 -0
- package/dist/components/Scorecard/hooks/average.js.map +1 -0
- package/dist/components/Scorecard/hooks/cellData.js +36 -0
- package/dist/components/Scorecard/hooks/cellData.js.map +1 -0
- package/dist/components/Scorecard/hooks/columns.js +150 -0
- package/dist/components/Scorecard/hooks/columns.js.map +1 -0
- package/dist/components/Scorecard/hooks/data.js +97 -0
- package/dist/components/Scorecard/hooks/data.js.map +1 -0
- package/dist/components/Scorecard/hooks/metadata.js +95 -0
- package/dist/components/Scorecard/hooks/metadata.js.map +1 -0
- package/dist/components/Scorecard/hooks/orgUnit.js +17 -0
- package/dist/components/Scorecard/hooks/orgUnit.js.map +1 -0
- package/dist/components/Scorecard/hooks/period.js +15 -0
- package/dist/components/Scorecard/hooks/period.js.map +1 -0
- package/dist/components/Scorecard/hooks/table.js +40 -0
- package/dist/components/Scorecard/hooks/table.js.map +1 -0
- package/dist/components/Scorecard/index.js +21 -0
- package/dist/components/Scorecard/index.js.map +1 -0
- package/dist/components/Scorecard/schemas/config.js +181 -0
- package/dist/components/Scorecard/schemas/config.js.map +1 -0
- package/dist/components/Scorecard/utils/analytics.js +27 -0
- package/dist/components/Scorecard/utils/analytics.js.map +1 -0
- package/dist/components/Scorecard/utils/columns.js +331 -0
- package/dist/components/Scorecard/utils/columns.js.map +1 -0
- package/dist/components/Scorecard/utils/data.js +147 -0
- package/dist/components/Scorecard/utils/data.js.map +1 -0
- package/dist/components/Scorecard/utils/dataSources.js +16 -0
- package/dist/components/Scorecard/utils/dataSources.js.map +1 -0
- package/dist/components/Scorecard/utils/engine.js +20 -0
- package/dist/components/Scorecard/utils/engine.js.map +1 -0
- package/dist/components/Scorecard/utils/legends.js +118 -0
- package/dist/components/Scorecard/utils/legends.js.map +1 -0
- package/dist/components/Scorecard/utils/orgUnits.js +40 -0
- package/dist/components/Scorecard/utils/orgUnits.js.map +1 -0
- package/dist/esm/components/Scorecard/Scorecard.js +20 -0
- package/dist/esm/components/Scorecard/Scorecard.js.map +1 -0
- package/dist/esm/components/Scorecard/Scorecard.stories.js +1178 -0
- package/dist/esm/components/Scorecard/Scorecard.stories.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ConfigProvider.js +14 -0
- package/dist/esm/components/Scorecard/components/ConfigProvider.js.map +1 -0
- package/dist/esm/components/Scorecard/components/DataProvider.js +36 -0
- package/dist/esm/components/Scorecard/components/DataProvider.js.map +1 -0
- package/dist/esm/components/Scorecard/components/MetaProvider.js +42 -0
- package/dist/esm/components/Scorecard/components/MetaProvider.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/FurtherAnalysisDictionary.js +23 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/FurtherAnalysisDictionary.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/components/ConfigProvider.js +27 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/components/ConfigProvider.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/components/DetailsProvider.js +55 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/components/DetailsProvider.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/index.js +3 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/index.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/FurtherAnalysisVisualization.js +75 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/FurtherAnalysisVisualization.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/ScorecardTable.js +40 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/ScorecardTable.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/ScorecardTable.module.css +11 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/ScorecardTable.module.css.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/AverageCell.js +98 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/AverageCell.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/AverageFooterCell.js +22 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/AverageFooterCell.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataContainer.js +25 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataContainer.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataFooterCell.js +48 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataFooterCell.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataRow.js +44 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataRow.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataValue.js +64 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataValue.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/DraggableCell.js +45 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/DraggableCell.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/DroppableCell.js +36 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/DroppableCell.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/EmptyFooterCell.js +10 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/EmptyFooterCell.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/ExpandedScorecardTable.js +54 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/ExpandedScorecardTable.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/FurtherAnalysisMenu.js +146 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/FurtherAnalysisMenu.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/FurtherAnalysisModal.js +52 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/FurtherAnalysisModal.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/LinkedCell.js +94 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/LinkedCell.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/LinkedDataCell.js +93 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/LinkedDataCell.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/LinkedDataFooterCell.js +43 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/LinkedDataFooterCell.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.js +14 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/SingleDataCell.js +96 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/SingleDataCell.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/SingleDataFooterCell.js +36 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/SingleDataFooterCell.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableBody.js +13 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableBody.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableFoot.js +26 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableFoot.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.js +18 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.module.css +12 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.module.css.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js +33 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js +54 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/ExpandCell.js +14 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/ExpandCell.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/FilterArea.js +31 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/FilterArea.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.js +42 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js +56 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/NumberCell.js +22 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/NumberCell.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/index.js +3 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/index.js.map +1 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/index.js +3 -0
- package/dist/esm/components/Scorecard/components/ScorecardTable/index.js.map +1 -0
- package/dist/esm/components/Scorecard/components/StateProvider.js +23 -0
- package/dist/esm/components/Scorecard/components/StateProvider.js.map +1 -0
- package/dist/esm/components/Scorecard/components/StateSetProvider.js +14 -0
- package/dist/esm/components/Scorecard/components/StateSetProvider.js.map +1 -0
- package/dist/esm/components/Scorecard/components/TableStateProvider.js +23 -0
- package/dist/esm/components/Scorecard/components/TableStateProvider.js.map +1 -0
- package/dist/esm/components/Scorecard/hooks/average.js +48 -0
- package/dist/esm/components/Scorecard/hooks/average.js.map +1 -0
- package/dist/esm/components/Scorecard/hooks/cellData.js +34 -0
- package/dist/esm/components/Scorecard/hooks/cellData.js.map +1 -0
- package/dist/esm/components/Scorecard/hooks/columns.js +147 -0
- package/dist/esm/components/Scorecard/hooks/columns.js.map +1 -0
- package/dist/esm/components/Scorecard/hooks/data.js +95 -0
- package/dist/esm/components/Scorecard/hooks/data.js.map +1 -0
- package/dist/esm/components/Scorecard/hooks/metadata.js +92 -0
- package/dist/esm/components/Scorecard/hooks/metadata.js.map +1 -0
- package/dist/esm/components/Scorecard/hooks/orgUnit.js +15 -0
- package/dist/esm/components/Scorecard/hooks/orgUnit.js.map +1 -0
- package/dist/esm/components/Scorecard/hooks/period.js +13 -0
- package/dist/esm/components/Scorecard/hooks/period.js.map +1 -0
- package/dist/esm/components/Scorecard/hooks/table.js +38 -0
- package/dist/esm/components/Scorecard/hooks/table.js.map +1 -0
- package/dist/esm/components/Scorecard/index.js +4 -0
- package/dist/esm/components/Scorecard/index.js.map +1 -0
- package/dist/esm/components/Scorecard/schemas/config.js +163 -0
- package/dist/esm/components/Scorecard/schemas/config.js.map +1 -0
- package/dist/esm/components/Scorecard/utils/analytics.js +25 -0
- package/dist/esm/components/Scorecard/utils/analytics.js.map +1 -0
- package/dist/esm/components/Scorecard/utils/columns.js +326 -0
- package/dist/esm/components/Scorecard/utils/columns.js.map +1 -0
- package/dist/esm/components/Scorecard/utils/data.js +144 -0
- package/dist/esm/components/Scorecard/utils/data.js.map +1 -0
- package/dist/esm/components/Scorecard/utils/dataSources.js +13 -0
- package/dist/esm/components/Scorecard/utils/dataSources.js.map +1 -0
- package/dist/esm/components/Scorecard/utils/engine.js +18 -0
- package/dist/esm/components/Scorecard/utils/engine.js.map +1 -0
- package/dist/esm/components/Scorecard/utils/legends.js +115 -0
- package/dist/esm/components/Scorecard/utils/legends.js.map +1 -0
- package/dist/esm/components/Scorecard/utils/orgUnits.js +37 -0
- package/dist/esm/components/Scorecard/utils/orgUnits.js.map +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/types/components/Scorecard/Scorecard.d.ts +10 -0
- package/dist/types/components/Scorecard/Scorecard.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ConfigProvider.d.ts +125 -0
- package/dist/types/components/Scorecard/components/ConfigProvider.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/DataProvider.d.ts +13 -0
- package/dist/types/components/Scorecard/components/DataProvider.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/MetaProvider.d.ts +18 -0
- package/dist/types/components/Scorecard/components/MetaProvider.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/FurtherAnalysisDictionary.d.ts +6 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/FurtherAnalysisDictionary.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/components/ConfigProvider.d.ts +12 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/components/ConfigProvider.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/components/DetailsProvider.d.ts +9 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/components/DetailsProvider.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/index.d.ts +2 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/index.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/FurtherAnalysisVisualization.d.ts +6 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/FurtherAnalysisVisualization.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/ScorecardTable.d.ts +2 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/ScorecardTable.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/AverageCell.d.ts +19 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/AverageCell.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/AverageFooterCell.d.ts +4 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/AverageFooterCell.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/DataContainer.d.ts +7 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/DataContainer.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/DataFooterCell.d.ts +4 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/DataFooterCell.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/DataRow.d.ts +8 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/DataRow.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/DataValue.d.ts +6 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/DataValue.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/DraggableCell.d.ts +8 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/DraggableCell.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/DroppableCell.d.ts +7 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/DroppableCell.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/EmptyFooterCell.d.ts +4 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/EmptyFooterCell.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/ExpandedScorecardTable.d.ts +7 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/ExpandedScorecardTable.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/FurtherAnalysisMenu.d.ts +15 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/FurtherAnalysisMenu.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/FurtherAnalysisModal.d.ts +13 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/FurtherAnalysisModal.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/LinkedCell.d.ts +19 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/LinkedCell.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/LinkedDataCell.d.ts +14 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/LinkedDataCell.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/LinkedDataFooterCell.d.ts +6 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/LinkedDataFooterCell.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.d.ts +4 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/SingleDataCell.d.ts +14 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/SingleDataCell.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/SingleDataFooterCell.d.ts +6 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/SingleDataFooterCell.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableBody.d.ts +2 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableBody.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableFoot.d.ts +2 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableFoot.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.d.ts +2 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.d.ts +4 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.d.ts +5 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/ExpandCell.d.ts +4 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/ExpandCell.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/FilterArea.d.ts +7 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/FilterArea.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.d.ts +6 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.d.ts +7 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/NumberCell.d.ts +7 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/NumberCell.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/index.d.ts +2 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/index.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/index.d.ts +2 -0
- package/dist/types/components/Scorecard/components/ScorecardTable/index.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/StateProvider.d.ts +41 -0
- package/dist/types/components/Scorecard/components/StateProvider.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/StateSetProvider.d.ts +9 -0
- package/dist/types/components/Scorecard/components/StateSetProvider.d.ts.map +1 -0
- package/dist/types/components/Scorecard/components/TableStateProvider.d.ts +55 -0
- package/dist/types/components/Scorecard/components/TableStateProvider.d.ts.map +1 -0
- package/dist/types/components/Scorecard/hooks/average.d.ts +14 -0
- package/dist/types/components/Scorecard/hooks/average.d.ts.map +1 -0
- package/dist/types/components/Scorecard/hooks/cellData.d.ts +18 -0
- package/dist/types/components/Scorecard/hooks/cellData.d.ts.map +1 -0
- package/dist/types/components/Scorecard/hooks/columns.d.ts +54 -0
- package/dist/types/components/Scorecard/hooks/columns.d.ts.map +1 -0
- package/dist/types/components/Scorecard/hooks/data.d.ts +70 -0
- package/dist/types/components/Scorecard/hooks/data.d.ts.map +1 -0
- package/dist/types/components/Scorecard/hooks/metadata.d.ts +34 -0
- package/dist/types/components/Scorecard/hooks/metadata.d.ts.map +1 -0
- package/dist/types/components/Scorecard/hooks/orgUnit.d.ts +5 -0
- package/dist/types/components/Scorecard/hooks/orgUnit.d.ts.map +1 -0
- package/dist/types/components/Scorecard/hooks/period.d.ts +2 -0
- package/dist/types/components/Scorecard/hooks/period.d.ts.map +1 -0
- package/dist/types/components/Scorecard/hooks/table.d.ts +4 -0
- package/dist/types/components/Scorecard/hooks/table.d.ts.map +1 -0
- package/dist/types/components/Scorecard/index.d.ts +3 -0
- package/dist/types/components/Scorecard/index.d.ts.map +1 -0
- package/dist/types/components/Scorecard/schemas/config.d.ts +2522 -0
- package/dist/types/components/Scorecard/schemas/config.d.ts.map +1 -0
- package/dist/types/components/Scorecard/utils/analytics.d.ts +10 -0
- package/dist/types/components/Scorecard/utils/analytics.d.ts.map +1 -0
- package/dist/types/components/Scorecard/utils/columns.d.ts +71 -0
- package/dist/types/components/Scorecard/utils/columns.d.ts.map +1 -0
- package/dist/types/components/Scorecard/utils/data.d.ts +16 -0
- package/dist/types/components/Scorecard/utils/data.d.ts.map +1 -0
- package/dist/types/components/Scorecard/utils/dataSources.d.ts +35 -0
- package/dist/types/components/Scorecard/utils/dataSources.d.ts.map +1 -0
- package/dist/types/components/Scorecard/utils/engine.d.ts +14 -0
- package/dist/types/components/Scorecard/utils/engine.d.ts.map +1 -0
- package/dist/types/components/Scorecard/utils/legends.d.ts +22 -0
- package/dist/types/components/Scorecard/utils/legends.d.ts.map +1 -0
- package/dist/types/components/Scorecard/utils/orgUnits.d.ts +7 -0
- package/dist/types/components/Scorecard/utils/orgUnits.d.ts.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +10 -3
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { createColumnHelper } from '@tanstack/react-table';
|
|
2
|
+
import { useScorecardConfig } from '../components/ConfigProvider';
|
|
3
|
+
import { useScorecardMeta } from '../components/MetaProvider';
|
|
4
|
+
import { useScorecardState } from '../components/StateProvider';
|
|
5
|
+
import { useMemo } from 'react';
|
|
6
|
+
import { getOrgUnitColumnHeaders, getDataColumnHeaders, getAverageColumn } from '../utils/columns';
|
|
7
|
+
import { LabelCell } from '../components/ScorecardTable/components/TableHeader/components/LabelCell';
|
|
8
|
+
import { ExpandCell } from '../components/ScorecardTable/components/TableHeader/components/ExpandCell';
|
|
9
|
+
import { NumberCell } from '../components/ScorecardTable/components/TableHeader/components/NumberCell';
|
|
10
|
+
import { MetaHeaderCell } from '../components/ScorecardTable/components/TableHeader/components/MetaHeaderCell';
|
|
11
|
+
import { useCalendar } from './metadata';
|
|
12
|
+
import { MetaFooterCell } from '../components/ScorecardTable/components/MetaFooterCell';
|
|
13
|
+
import { getOrgUnitLevel } from '../utils/orgUnits';
|
|
14
|
+
import { useLowestOrgUnitLevel } from './orgUnit';
|
|
15
|
+
|
|
16
|
+
const columnHelper = createColumnHelper();
|
|
17
|
+
function useMetaColumns() {
|
|
18
|
+
const state = useScorecardState();
|
|
19
|
+
const lowestLevel = useLowestOrgUnitLevel();
|
|
20
|
+
const metaColumns = [
|
|
21
|
+
columnHelper.accessor(
|
|
22
|
+
(rowData) => {
|
|
23
|
+
if (state?.options?.disableExpanding) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
const dataInRows = state?.options?.showDataInRows;
|
|
27
|
+
if (dataInRows) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
if (!lowestLevel) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
const orgUnit = rowData.orgUnit;
|
|
34
|
+
if (!orgUnit) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
const ouLevel = getOrgUnitLevel(orgUnit);
|
|
38
|
+
return ouLevel !== lowestLevel.level;
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
id: "expand",
|
|
42
|
+
header: () => null,
|
|
43
|
+
meta: {
|
|
44
|
+
isMeta: true,
|
|
45
|
+
fixed: true,
|
|
46
|
+
label: ""
|
|
47
|
+
},
|
|
48
|
+
enableColumnFilter: false,
|
|
49
|
+
cell: ExpandCell,
|
|
50
|
+
footer: () => null
|
|
51
|
+
}
|
|
52
|
+
),
|
|
53
|
+
columnHelper.accessor(
|
|
54
|
+
(_, index) => {
|
|
55
|
+
return index + 1;
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
id: "count",
|
|
59
|
+
header: () => null,
|
|
60
|
+
meta: {
|
|
61
|
+
isMeta: true,
|
|
62
|
+
fixed: true,
|
|
63
|
+
label: ""
|
|
64
|
+
},
|
|
65
|
+
enableColumnFilter: false,
|
|
66
|
+
cell: NumberCell,
|
|
67
|
+
footer: () => null
|
|
68
|
+
}
|
|
69
|
+
)
|
|
70
|
+
];
|
|
71
|
+
if (state?.options?.showDataInRows) {
|
|
72
|
+
metaColumns.push(
|
|
73
|
+
columnHelper.accessor("label", {
|
|
74
|
+
header: () => null,
|
|
75
|
+
id: "dataItems",
|
|
76
|
+
meta: {
|
|
77
|
+
filterable: true
|
|
78
|
+
},
|
|
79
|
+
enableColumnFilter: true,
|
|
80
|
+
cell: LabelCell,
|
|
81
|
+
footer: MetaFooterCell
|
|
82
|
+
})
|
|
83
|
+
);
|
|
84
|
+
} else {
|
|
85
|
+
metaColumns.push(
|
|
86
|
+
columnHelper.accessor("label", {
|
|
87
|
+
header: () => null,
|
|
88
|
+
id: "orgUnits",
|
|
89
|
+
enableColumnFilter: true,
|
|
90
|
+
meta: {
|
|
91
|
+
isMeta: true,
|
|
92
|
+
fixed: true
|
|
93
|
+
},
|
|
94
|
+
cell: LabelCell,
|
|
95
|
+
footer: MetaFooterCell
|
|
96
|
+
})
|
|
97
|
+
);
|
|
98
|
+
}
|
|
99
|
+
return metaColumns;
|
|
100
|
+
}
|
|
101
|
+
function useTableColumns() {
|
|
102
|
+
const config = useScorecardConfig();
|
|
103
|
+
const meta = useScorecardMeta();
|
|
104
|
+
const state = useScorecardState();
|
|
105
|
+
const metaColumns = useMetaColumns();
|
|
106
|
+
const calendar = useCalendar();
|
|
107
|
+
if (!config || !meta || !state) {
|
|
108
|
+
return [];
|
|
109
|
+
}
|
|
110
|
+
return useMemo(() => {
|
|
111
|
+
const columns = [
|
|
112
|
+
columnHelper.group({
|
|
113
|
+
id: "metaHeader",
|
|
114
|
+
columns: metaColumns,
|
|
115
|
+
header: MetaHeaderCell,
|
|
116
|
+
footer: () => null
|
|
117
|
+
})
|
|
118
|
+
];
|
|
119
|
+
if (state.options.showDataInRows) {
|
|
120
|
+
columns.push(
|
|
121
|
+
...getOrgUnitColumnHeaders({
|
|
122
|
+
meta,
|
|
123
|
+
calendar
|
|
124
|
+
})
|
|
125
|
+
);
|
|
126
|
+
} else {
|
|
127
|
+
columns.push(
|
|
128
|
+
...getDataColumnHeaders({
|
|
129
|
+
meta,
|
|
130
|
+
config,
|
|
131
|
+
calendar
|
|
132
|
+
})
|
|
133
|
+
);
|
|
134
|
+
}
|
|
135
|
+
columns.push(
|
|
136
|
+
getAverageColumn({
|
|
137
|
+
meta,
|
|
138
|
+
config
|
|
139
|
+
})
|
|
140
|
+
);
|
|
141
|
+
return columns;
|
|
142
|
+
}, [state.options.showDataInRows]);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
export { useMetaColumns, useTableColumns };
|
|
146
|
+
//# sourceMappingURL=out.js.map
|
|
147
|
+
//# sourceMappingURL=columns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Scorecard/hooks/columns.ts"],"names":[],"mappings":"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","sourcesContent":["import { type ColumnDef, createColumnHelper } from \"@tanstack/react-table\";\nimport { useScorecardConfig } from \"../components/ConfigProvider\";\nimport { useScorecardMeta } from \"../components/MetaProvider\";\nimport { useScorecardState } from \"../components/StateProvider\";\nimport { useMemo } from \"react\";\nimport {\n\ttype ScorecardTableCellData,\n\ttype ScorecardTableData,\n} from \"../schemas/config\";\nimport {\n\tgetAverageColumn,\n\tgetDataColumnHeaders,\n\tgetOrgUnitColumnHeaders,\n} from \"../utils/columns\";\nimport { LabelCell } from \"../components/ScorecardTable/components/TableHeader/components/LabelCell\";\nimport { ExpandCell } from \"../components/ScorecardTable/components/TableHeader/components/ExpandCell\";\nimport { NumberCell } from \"../components/ScorecardTable/components/TableHeader/components/NumberCell\";\nimport { MetaHeaderCell } from \"../components/ScorecardTable/components/TableHeader/components/MetaHeaderCell\";\nimport { useCalendar } from \"./metadata\";\nimport { MetaFooterCell } from \"../components/ScorecardTable/components/MetaFooterCell\";\nimport { getOrgUnitLevel } from \"../utils/orgUnits\";\nimport { useLowestOrgUnitLevel } from \"./orgUnit\";\n\nconst columnHelper = createColumnHelper<ScorecardTableData>();\n\nexport function useMetaColumns() {\n\tconst state = useScorecardState();\n\n\tconst lowestLevel = useLowestOrgUnitLevel();\n\n\tconst metaColumns: ColumnDef<ScorecardTableData, any>[] = [\n\t\tcolumnHelper.accessor(\n\t\t\t(rowData) => {\n\t\t\t\tif (state?.options?.disableExpanding) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tconst dataInRows = state?.options?.showDataInRows;\n\t\t\t\tif (dataInRows) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tif (!lowestLevel) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tconst orgUnit = rowData.orgUnit;\n\t\t\t\tif (!orgUnit) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tconst ouLevel = getOrgUnitLevel(orgUnit);\n\n\t\t\t\treturn ouLevel !== lowestLevel.level;\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"expand\",\n\t\t\t\theader: () => null,\n\t\t\t\tmeta: {\n\t\t\t\t\tisMeta: true,\n\t\t\t\t\tfixed: true,\n\t\t\t\t\tlabel: \"\",\n\t\t\t\t},\n\t\t\t\tenableColumnFilter: false,\n\t\t\t\tcell: ExpandCell,\n\t\t\t\tfooter: () => null,\n\t\t\t},\n\t\t),\n\t\tcolumnHelper.accessor(\n\t\t\t(_, index) => {\n\t\t\t\treturn index + 1;\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"count\",\n\t\t\t\theader: () => null,\n\t\t\t\tmeta: {\n\t\t\t\t\tisMeta: true,\n\t\t\t\t\tfixed: true,\n\t\t\t\t\tlabel: \"\",\n\t\t\t\t},\n\t\t\t\tenableColumnFilter: false,\n\t\t\t\tcell: NumberCell,\n\t\t\t\tfooter: () => null,\n\t\t\t},\n\t\t),\n\t];\n\n\tif (state?.options?.showDataInRows) {\n\t\tmetaColumns.push(\n\t\t\tcolumnHelper.accessor(\"label\", {\n\t\t\t\theader: () => null,\n\t\t\t\tid: \"dataItems\",\n\t\t\t\tmeta: {\n\t\t\t\t\tfilterable: true,\n\t\t\t\t},\n\t\t\t\tenableColumnFilter: true,\n\t\t\t\tcell: LabelCell,\n\t\t\t\tfooter: MetaFooterCell,\n\t\t\t}),\n\t\t);\n\t} else {\n\t\tmetaColumns.push(\n\t\t\tcolumnHelper.accessor(\"label\", {\n\t\t\t\theader: () => null,\n\t\t\t\tid: \"orgUnits\",\n\t\t\t\tenableColumnFilter: true,\n\t\t\t\tmeta: {\n\t\t\t\t\tisMeta: true,\n\t\t\t\t\tfixed: true,\n\t\t\t\t},\n\t\t\t\tcell: LabelCell,\n\t\t\t\tfooter: MetaFooterCell,\n\t\t\t}),\n\t\t);\n\t}\n\n\treturn metaColumns;\n}\n\nexport function useTableColumns(): ColumnDef<\n\tScorecardTableData,\n\tScorecardTableCellData\n>[] {\n\tconst config = useScorecardConfig();\n\tconst meta = useScorecardMeta();\n\tconst state = useScorecardState();\n\tconst metaColumns = useMetaColumns();\n\tconst calendar = useCalendar();\n\n\tif (!config || !meta || !state) {\n\t\treturn [];\n\t}\n\treturn useMemo(() => {\n\t\tconst columns: ColumnDef<ScorecardTableData, any>[] = [\n\t\t\tcolumnHelper.group({\n\t\t\t\tid: \"metaHeader\",\n\t\t\t\tcolumns: metaColumns,\n\t\t\t\theader: MetaHeaderCell,\n\t\t\t\tfooter: () => null,\n\t\t\t}),\n\t\t];\n\n\t\tif (state.options.showDataInRows) {\n\t\t\tcolumns.push(\n\t\t\t\t...getOrgUnitColumnHeaders({\n\t\t\t\t\tmeta,\n\t\t\t\t\tcalendar,\n\t\t\t\t}),\n\t\t\t);\n\t\t} else {\n\t\t\tcolumns.push(\n\t\t\t\t...getDataColumnHeaders({\n\t\t\t\t\tmeta,\n\t\t\t\t\tconfig,\n\t\t\t\t\tcalendar,\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\tcolumns.push(\n\t\t\tgetAverageColumn({\n\t\t\t\tmeta,\n\t\t\t\tconfig,\n\t\t\t}),\n\t\t);\n\n\t\treturn columns;\n\t}, [state.options.showDataInRows]);\n}\n"]}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { useScorecardState } from '../components/StateProvider';
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
import { getDimensions } from '../utils/analytics';
|
|
4
|
+
import { useScorecardConfig } from '../components/ConfigProvider';
|
|
5
|
+
import { useDataQuery } from '@dhis2/app-runtime';
|
|
6
|
+
import { getAdjacentFixedPeriods, createFixedPeriodFromPeriodId } from '@dhis2/multi-calendar-dates';
|
|
7
|
+
import { uniq, isEmpty } from 'lodash';
|
|
8
|
+
import { useScorecardMeta } from '../components/MetaProvider';
|
|
9
|
+
import { sanitizeAnalyticsData, getTableDataFromAnalytics } from '../utils/data';
|
|
10
|
+
import { useCalendar } from './metadata';
|
|
11
|
+
|
|
12
|
+
const query = {
|
|
13
|
+
data: {
|
|
14
|
+
resource: "analytics",
|
|
15
|
+
params: ({
|
|
16
|
+
periods,
|
|
17
|
+
orgUnits,
|
|
18
|
+
dataItems
|
|
19
|
+
}) => {
|
|
20
|
+
return {
|
|
21
|
+
skipMeta: true,
|
|
22
|
+
dimension: [
|
|
23
|
+
`pe:${periods.join(";")}`,
|
|
24
|
+
`dx:${dataItems.join(";")}`,
|
|
25
|
+
`ou:${orgUnits.join(";")}`
|
|
26
|
+
]
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
function useGetScorecardData() {
|
|
32
|
+
const config = useScorecardConfig();
|
|
33
|
+
const meta = useScorecardMeta();
|
|
34
|
+
const state = useScorecardState();
|
|
35
|
+
const calendar = useCalendar();
|
|
36
|
+
if (!config || !state || !meta) {
|
|
37
|
+
throw new Error(
|
|
38
|
+
"Invalid scorecard setup. Make sure the valid config and state props are passed."
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
const { dataItemsIds, orgUnitsIds, periodsIds } = getDimensions({
|
|
42
|
+
config,
|
|
43
|
+
state
|
|
44
|
+
});
|
|
45
|
+
const analyticsPeriod = useMemo(() => {
|
|
46
|
+
const pastPeriods = periodsIds.map((periodId) => {
|
|
47
|
+
const pe = getAdjacentFixedPeriods({
|
|
48
|
+
calendar,
|
|
49
|
+
steps: -1,
|
|
50
|
+
period: createFixedPeriodFromPeriodId({
|
|
51
|
+
calendar,
|
|
52
|
+
periodId
|
|
53
|
+
})
|
|
54
|
+
});
|
|
55
|
+
return pe.map(({ id }) => id);
|
|
56
|
+
}).flat();
|
|
57
|
+
return uniq([...periodsIds, ...pastPeriods]);
|
|
58
|
+
}, [periodsIds]);
|
|
59
|
+
const { loading, data: rawAnalyticsData } = useDataQuery(query, {
|
|
60
|
+
variables: {
|
|
61
|
+
periods: analyticsPeriod,
|
|
62
|
+
dataItems: dataItemsIds,
|
|
63
|
+
orgUnits: orgUnitsIds
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
const rawData = useMemo(() => {
|
|
67
|
+
if (!rawAnalyticsData)
|
|
68
|
+
return [];
|
|
69
|
+
return sanitizeAnalyticsData(rawAnalyticsData);
|
|
70
|
+
}, [rawAnalyticsData]);
|
|
71
|
+
const data = useMemo(() => {
|
|
72
|
+
if (rawAnalyticsData) {
|
|
73
|
+
const data2 = getTableDataFromAnalytics(rawAnalyticsData, {
|
|
74
|
+
meta,
|
|
75
|
+
state,
|
|
76
|
+
config
|
|
77
|
+
});
|
|
78
|
+
if (!!state.options.emptyRows) {
|
|
79
|
+
return data2;
|
|
80
|
+
} else {
|
|
81
|
+
return data2.filter(({ dataValues }) => !isEmpty(dataValues));
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return [];
|
|
85
|
+
}, [rawAnalyticsData, meta]);
|
|
86
|
+
return {
|
|
87
|
+
loading,
|
|
88
|
+
data,
|
|
89
|
+
rawData
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export { useGetScorecardData };
|
|
94
|
+
//# sourceMappingURL=out.js.map
|
|
95
|
+
//# sourceMappingURL=data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Scorecard/hooks/data.ts"],"names":["data"],"mappings":"AAAA,SAAS,yBAAyB;AAClC,SAAS,eAAe;AACxB,SAAS,qBAAqB;AAC9B,SAAS,0BAA0B;AACnC,SAAS,oBAAoB;AAC7B;AAAA,EACC;AAAA,EACA;AAAA,OACM;AACP,SAAS,SAAS,YAAY;AAC9B,SAAS,wBAAwB;AACjC;AAAA,EACC;AAAA,EACA;AAAA,OACM;AACP,SAAS,mBAAmB;AAE5B,MAAM,QAAa;AAAA,EAClB,MAAM;AAAA,IACL,UAAU;AAAA,IACV,QAAQ,CAAC;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,IACD,MAIM;AACL,aAAO;AAAA,QACN,UAAU;AAAA,QACV,WAAW;AAAA,UACV,MAAM,QAAQ,KAAK,GAAG,CAAC;AAAA,UACvB,MAAM,UAAU,KAAK,GAAG,CAAC;AAAA,UACzB,MAAM,SAAS,KAAK,GAAG,CAAC;AAAA,QACzB;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD;AAkBO,SAAS,sBAAsB;AACrC,QAAM,SAAS,mBAAmB;AAClC,QAAM,OAAO,iBAAiB;AAC9B,QAAM,QAAQ,kBAAkB;AAChC,QAAM,WAAW,YAAY;AAC7B,MAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM;AAC/B,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AACA,QAAM,EAAE,cAAc,aAAa,WAAW,IAAI,cAAc;AAAA,IAC/D;AAAA,IACA;AAAA,EACD,CAAC;AAED,QAAM,kBAAkB,QAAQ,MAAM;AACrC,UAAM,cAAc,WAClB,IAAI,CAAC,aAAa;AAClB,YAAM,KAAK,wBAAwB;AAAA,QAClC;AAAA,QACA,OAAO;AAAA,QACP,QAAQ,8BAA8B;AAAA,UACrC;AAAA,UACA;AAAA,QACD,CAAC;AAAA,MACF,CAAC;AACD,aAAO,GAAG,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE;AAAA,IAC7B,CAAC,EACA,KAAK;AAEP,WAAO,KAAK,CAAC,GAAG,YAAY,GAAG,WAAW,CAAC;AAAA,EAC5C,GAAG,CAAC,UAAU,CAAC;AAEf,QAAM,EAAE,SAAS,MAAM,iBAAiB,IACvC,aAAyC,OAAO;AAAA,IAC/C,WAAW;AAAA,MACV,SAAS;AAAA,MACT,WAAW;AAAA,MACX,UAAU;AAAA,IACX;AAAA,EACD,CAAC;AAEF,QAAM,UAAU,QAAQ,MAAM;AAC7B,QAAI,CAAC;AAAkB,aAAO,CAAC;AAC/B,WAAO,sBAAsB,gBAAgB;AAAA,EAC9C,GAAG,CAAC,gBAAgB,CAAC;AAErB,QAAM,OAAO,QAAQ,MAAM;AAC1B,QAAI,kBAAkB;AACrB,YAAMA,QAAO,0BAA0B,kBAAkB;AAAA,QACxD;AAAA,QACA;AAAA,QACA;AAAA,MACD,CAAC;AACD,UAAI,CAAC,CAAC,MAAM,QAAQ,WAAW;AAC9B,eAAOA;AAAA,MACR,OAAO;AACN,eAAOA,MAAK,OAAO,CAAC,EAAE,WAAW,MAAM,CAAC,QAAQ,UAAU,CAAC;AAAA,MAC5D;AAAA,IACD;AACA,WAAO,CAAC;AAAA,EACT,GAAG,CAAC,kBAAkB,IAAI,CAAC;AAE3B,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD","sourcesContent":["import { useScorecardState } from \"../components/StateProvider\";\nimport { useMemo } from \"react\";\nimport { getDimensions } from \"../utils/analytics\";\nimport { useScorecardConfig } from \"../components/ConfigProvider\";\nimport { useDataQuery } from \"@dhis2/app-runtime\";\nimport {\n\tcreateFixedPeriodFromPeriodId,\n\tgetAdjacentFixedPeriods,\n} from \"@dhis2/multi-calendar-dates\";\nimport { isEmpty, uniq } from \"lodash\";\nimport { useScorecardMeta } from \"../components/MetaProvider\";\nimport {\n\tgetTableDataFromAnalytics,\n\tsanitizeAnalyticsData,\n} from \"../utils/data\";\nimport { useCalendar } from \"./metadata\";\n\nconst query: any = {\n\tdata: {\n\t\tresource: \"analytics\",\n\t\tparams: ({\n\t\t\tperiods,\n\t\t\torgUnits,\n\t\t\tdataItems,\n\t\t}: {\n\t\t\tperiods: string[];\n\t\t\torgUnits: string[];\n\t\t\tdataItems: string[];\n\t\t}) => {\n\t\t\treturn {\n\t\t\t\tskipMeta: true,\n\t\t\t\tdimension: [\n\t\t\t\t\t`pe:${periods.join(\";\")}`,\n\t\t\t\t\t`dx:${dataItems.join(\";\")}`,\n\t\t\t\t\t`ou:${orgUnits.join(\";\")}`,\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t},\n};\n\nexport interface ScorecardDataQueryResponse {\n\tdata: {\n\t\theaderWidth: number;\n\t\theaders: Array<{\n\t\t\tname: string;\n\t\t\thidden: boolean;\n\t\t\tmeta: boolean;\n\t\t\tcolumn: string;\n\t\t\tvalueType: string;\n\t\t}>;\n\t\trows: Array<Array<string>>;\n\t\theight: number;\n\t\twidth: number;\n\t};\n}\n\nexport function useGetScorecardData() {\n\tconst config = useScorecardConfig();\n\tconst meta = useScorecardMeta();\n\tconst state = useScorecardState();\n\tconst calendar = useCalendar();\n\tif (!config || !state || !meta) {\n\t\tthrow new Error(\n\t\t\t\"Invalid scorecard setup. Make sure the valid config and state props are passed.\",\n\t\t);\n\t}\n\tconst { dataItemsIds, orgUnitsIds, periodsIds } = getDimensions({\n\t\tconfig,\n\t\tstate,\n\t});\n\t//We need to make sure each period has a past period\n\tconst analyticsPeriod = useMemo(() => {\n\t\tconst pastPeriods = periodsIds\n\t\t\t.map((periodId) => {\n\t\t\t\tconst pe = getAdjacentFixedPeriods({\n\t\t\t\t\tcalendar,\n\t\t\t\t\tsteps: -1,\n\t\t\t\t\tperiod: createFixedPeriodFromPeriodId({\n\t\t\t\t\t\tcalendar,\n\t\t\t\t\t\tperiodId,\n\t\t\t\t\t}),\n\t\t\t\t});\n\t\t\t\treturn pe.map(({ id }) => id);\n\t\t\t})\n\t\t\t.flat();\n\n\t\treturn uniq([...periodsIds, ...pastPeriods]);\n\t}, [periodsIds]);\n\n\tconst { loading, data: rawAnalyticsData } =\n\t\tuseDataQuery<ScorecardDataQueryResponse>(query, {\n\t\t\tvariables: {\n\t\t\t\tperiods: analyticsPeriod,\n\t\t\t\tdataItems: dataItemsIds,\n\t\t\t\torgUnits: orgUnitsIds,\n\t\t\t},\n\t\t});\n\n\tconst rawData = useMemo(() => {\n\t\tif (!rawAnalyticsData) return [];\n\t\treturn sanitizeAnalyticsData(rawAnalyticsData);\n\t}, [rawAnalyticsData]);\n\n\tconst data = useMemo(() => {\n\t\tif (rawAnalyticsData) {\n\t\t\tconst data = getTableDataFromAnalytics(rawAnalyticsData, {\n\t\t\t\tmeta,\n\t\t\t\tstate,\n\t\t\t\tconfig,\n\t\t\t});\n\t\t\tif (!!state.options.emptyRows) {\n\t\t\t\treturn data;\n\t\t\t} else {\n\t\t\t\treturn data.filter(({ dataValues }) => !isEmpty(dataValues));\n\t\t\t}\n\t\t}\n\t\treturn [];\n\t}, [rawAnalyticsData, meta]);\n\n\treturn {\n\t\tloading,\n\t\tdata,\n\t\trawData,\n\t};\n}\n"]}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { useScorecardConfig } from '../components/ConfigProvider';
|
|
2
|
+
import { useScorecardState } from '../components/StateProvider';
|
|
3
|
+
import { useDataQuery, useConfig } from '@dhis2/app-runtime';
|
|
4
|
+
import { useMemo } from 'react';
|
|
5
|
+
import { getDimensions } from '../utils/analytics';
|
|
6
|
+
|
|
7
|
+
const query = {
|
|
8
|
+
meta: {
|
|
9
|
+
resource: "analytics",
|
|
10
|
+
params: ({
|
|
11
|
+
periods,
|
|
12
|
+
orgUnits,
|
|
13
|
+
dataItems
|
|
14
|
+
}) => {
|
|
15
|
+
return {
|
|
16
|
+
skipData: true,
|
|
17
|
+
hierarchyData: true,
|
|
18
|
+
showHierarchy: true,
|
|
19
|
+
enhancedConditions: true,
|
|
20
|
+
includeMetadataDetails: true,
|
|
21
|
+
dimension: [
|
|
22
|
+
`pe:${periods.join(";")}`,
|
|
23
|
+
`dx:${dataItems.join(";")}`,
|
|
24
|
+
`ou:${orgUnits.join(";")}`
|
|
25
|
+
]
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
ouLevel: {
|
|
30
|
+
resource: "organisationUnitLevels",
|
|
31
|
+
params: {
|
|
32
|
+
fields: ["id", "displayName", "level"]
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
function useGetScorecardMeta() {
|
|
37
|
+
const config = useScorecardConfig();
|
|
38
|
+
const state = useScorecardState();
|
|
39
|
+
if (!config || !state) {
|
|
40
|
+
throw new Error(
|
|
41
|
+
"Invalid scorecard setup. Make sure the valid config and state props are passed."
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
const { dataItemsIds, orgUnitsIds, periodsIds } = getDimensions({
|
|
45
|
+
config,
|
|
46
|
+
state
|
|
47
|
+
});
|
|
48
|
+
const { loading, data } = useDataQuery(query, {
|
|
49
|
+
variables: {
|
|
50
|
+
periods: periodsIds,
|
|
51
|
+
orgUnits: orgUnitsIds,
|
|
52
|
+
dataItems: dataItemsIds
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
const orgUnits = useMemo(() => {
|
|
56
|
+
return data?.meta?.metaData.dimensions["ou"].map((ou) => {
|
|
57
|
+
return {
|
|
58
|
+
...data?.meta?.metaData.items[ou],
|
|
59
|
+
hierarchy: data?.meta?.metaData?.ouNameHierarchy[ou]
|
|
60
|
+
};
|
|
61
|
+
}).filter(Boolean) ?? [];
|
|
62
|
+
}, [data?.meta]);
|
|
63
|
+
const periods = useMemo(() => {
|
|
64
|
+
return data?.meta?.metaData.dimensions["pe"].map((pe) => {
|
|
65
|
+
return data?.meta?.metaData.items[pe];
|
|
66
|
+
}).filter(Boolean) ?? [];
|
|
67
|
+
}, [data?.meta]);
|
|
68
|
+
const dataItems = useMemo(() => {
|
|
69
|
+
return data?.meta?.metaData.dimensions["dx"].map((dx) => {
|
|
70
|
+
return data?.meta?.metaData.items[dx];
|
|
71
|
+
}).filter(Boolean) ?? [];
|
|
72
|
+
}, [data?.meta]);
|
|
73
|
+
const orgUnitLevels = useMemo(
|
|
74
|
+
() => data?.ouLevel?.organisationUnitLevels ?? [],
|
|
75
|
+
[data?.ouLevel?.organisationUnitLevels]
|
|
76
|
+
);
|
|
77
|
+
return {
|
|
78
|
+
loading,
|
|
79
|
+
orgUnits,
|
|
80
|
+
periods,
|
|
81
|
+
dataItems,
|
|
82
|
+
orgUnitLevels
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
function useCalendar() {
|
|
86
|
+
const { systemInfo } = useConfig();
|
|
87
|
+
return systemInfo?.calendar ?? "iso8601";
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export { useCalendar, useGetScorecardMeta };
|
|
91
|
+
//# sourceMappingURL=out.js.map
|
|
92
|
+
//# sourceMappingURL=metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Scorecard/hooks/metadata.ts"],"names":[],"mappings":"AAAA,SAAS,0BAA0B;AACnC,SAAS,yBAAyB;AAClC,SAAS,WAAW,oBAAoB;AACxC,SAAS,eAAe;AACxB,SAAS,qBAAqB;AAG9B,MAAM,QAAa;AAAA,EAClB,MAAM;AAAA,IACL,UAAU;AAAA,IACV,QAAQ,CAAC;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,IACD,MAIM;AACL,aAAO;AAAA,QACN,UAAU;AAAA,QACV,eAAe;AAAA,QACf,eAAe;AAAA,QACf,oBAAoB;AAAA,QACpB,wBAAwB;AAAA,QACxB,WAAW;AAAA,UACV,MAAM,QAAQ,KAAK,GAAG,CAAC;AAAA,UACvB,MAAM,UAAU,KAAK,GAAG,CAAC;AAAA,UACzB,MAAM,SAAS,KAAK,GAAG,CAAC;AAAA,QACzB;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAAA,EACA,SAAS;AAAA,IACR,UAAU;AAAA,IACV,QAAQ;AAAA,MACP,QAAQ,CAAC,MAAM,eAAe,OAAO;AAAA,IACtC;AAAA,EACD;AACD;AA6CO,SAAS,sBAAsB;AACrC,QAAM,SAAS,mBAAmB;AAClC,QAAM,QAAQ,kBAAkB;AAEhC,MAAI,CAAC,UAAU,CAAC,OAAO;AACtB,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,QAAM,EAAE,cAAc,aAAa,WAAW,IAAI,cAAc;AAAA,IAC/D;AAAA,IACA;AAAA,EACD,CAAC;AAED,QAAM,EAAE,SAAS,KAAK,IAAI,aAA2B,OAAO;AAAA,IAC3D,WAAW;AAAA,MACV,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,IACZ;AAAA,EACD,CAAC;AAED,QAAM,WAAW,QAAQ,MAAM;AAC9B,WACC,MAAM,MAAM,SAAS,WAAW,IAAI,EAClC,IAAI,CAAC,OAAO;AACZ,aAAO;AAAA,QACN,GAAG,MAAM,MAAM,SAAS,MAAM,EAAE;AAAA,QAChC,WAAW,MAAM,MAAM,UAAU,gBAAgB,EAAE;AAAA,MACpD;AAAA,IACD,CAAC,EACA,OAAO,OAAO,KAAK,CAAC;AAAA,EAExB,GAAG,CAAC,MAAM,IAAI,CAAC;AACf,QAAM,UAAU,QAAQ,MAAM;AAC7B,WACC,MAAM,MAAM,SAAS,WAAW,IAAI,EAClC,IAAI,CAAC,OAAO;AACZ,aAAO,MAAM,MAAM,SAAS,MAAM,EAAE;AAAA,IACrC,CAAC,EACA,OAAO,OAAO,KAAK,CAAC;AAAA,EAExB,GAAG,CAAC,MAAM,IAAI,CAAC;AACf,QAAM,YAAY,QAAQ,MAAM;AAC/B,WACC,MAAM,MAAM,SAAS,WAAW,IAAI,EAClC,IAAI,CAAC,OAAO;AACZ,aAAO,MAAM,MAAM,SAAS,MAAM,EAAE;AAAA,IACrC,CAAC,EACA,OAAO,OAAO,KAAK,CAAC;AAAA,EAExB,GAAG,CAAC,MAAM,IAAI,CAAC;AACf,QAAM,gBAAgB;AAAA,IACrB,MAAM,MAAM,SAAS,0BAA0B,CAAC;AAAA,IAChD,CAAC,MAAM,SAAS,sBAAsB;AAAA,EACvC;AAEA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;AAEO,SAAS,cAAc;AAC7B,QAAM,EAAE,WAAW,IAAI,UAAU;AACjC,SACE,YAA4D,YAC7D;AAEF","sourcesContent":["import { useScorecardConfig } from \"../components/ConfigProvider\";\nimport { useScorecardState } from \"../components/StateProvider\";\nimport { useConfig, useDataQuery } from \"@dhis2/app-runtime\";\nimport { useMemo } from \"react\";\nimport { getDimensions } from \"../utils/analytics\";\nimport type { SupportedCalendar } from \"@dhis2/multi-calendar-dates/build/types/types\";\n\nconst query: any = {\n\tmeta: {\n\t\tresource: \"analytics\",\n\t\tparams: ({\n\t\t\tperiods,\n\t\t\torgUnits,\n\t\t\tdataItems,\n\t\t}: {\n\t\t\tperiods: string[];\n\t\t\torgUnits: string[];\n\t\t\tdataItems: string[];\n\t\t}) => {\n\t\t\treturn {\n\t\t\t\tskipData: true,\n\t\t\t\thierarchyData: true,\n\t\t\t\tshowHierarchy: true,\n\t\t\t\tenhancedConditions: true,\n\t\t\t\tincludeMetadataDetails: true,\n\t\t\t\tdimension: [\n\t\t\t\t\t`pe:${periods.join(\";\")}`,\n\t\t\t\t\t`dx:${dataItems.join(\";\")}`,\n\t\t\t\t\t`ou:${orgUnits.join(\";\")}`,\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t},\n\touLevel: {\n\t\tresource: \"organisationUnitLevels\",\n\t\tparams: {\n\t\t\tfields: [\"id\", \"displayName\", \"level\"],\n\t\t},\n\t},\n};\n\nexport type ItemMeta = {\n\tuid: string;\n\tname: string;\n\tcode?: string;\n\tdescription?: string;\n\tvalueType?: string;\n\ttotalAggregationType?: string;\n\taggregationType?: string;\n\t[key: string]: string | number | undefined;\n};\n\ntype MetaResponse = {\n\tmeta: {\n\t\tcolumns: any[];\n\t\trows: [];\n\t\theaders: [];\n\t\tmetaData: {\n\t\t\tdimensions: {\n\t\t\t\tdx: string[];\n\t\t\t\tou: string[];\n\t\t\t\tpe: string[];\n\t\t\t\tco: string[];\n\t\t\t\t[key: string]: string[];\n\t\t\t};\n\t\t\titems: {\n\t\t\t\t[key: string]: ItemMeta;\n\t\t\t};\n\t\t\touNameHierarchy: {\n\t\t\t\t[key: string]: string;\n\t\t\t};\n\t\t};\n\t};\n\touLevel: {\n\t\torganisationUnitLevels: Array<{\n\t\t\tid: string;\n\t\t\tlevel: number;\n\t\t\torganisationUnits: Array<{\n\t\t\t\tid: string;\n\t\t\t}>;\n\t\t}>;\n\t};\n};\n\nexport function useGetScorecardMeta() {\n\tconst config = useScorecardConfig();\n\tconst state = useScorecardState();\n\n\tif (!config || !state) {\n\t\tthrow new Error(\n\t\t\t\"Invalid scorecard setup. Make sure the valid config and state props are passed.\",\n\t\t);\n\t}\n\n\tconst { dataItemsIds, orgUnitsIds, periodsIds } = getDimensions({\n\t\tconfig,\n\t\tstate,\n\t});\n\n\tconst { loading, data } = useDataQuery<MetaResponse>(query, {\n\t\tvariables: {\n\t\t\tperiods: periodsIds,\n\t\t\torgUnits: orgUnitsIds,\n\t\t\tdataItems: dataItemsIds,\n\t\t},\n\t});\n\n\tconst orgUnits = useMemo(() => {\n\t\treturn (\n\t\t\tdata?.meta?.metaData.dimensions[\"ou\"]\n\t\t\t\t.map((ou) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...data?.meta?.metaData.items[ou],\n\t\t\t\t\t\thierarchy: data?.meta?.metaData?.ouNameHierarchy[ou],\n\t\t\t\t\t};\n\t\t\t\t})\n\t\t\t\t.filter(Boolean) ?? []\n\t\t);\n\t}, [data?.meta]);\n\tconst periods = useMemo(() => {\n\t\treturn (\n\t\t\tdata?.meta?.metaData.dimensions[\"pe\"]\n\t\t\t\t.map((pe) => {\n\t\t\t\t\treturn data?.meta?.metaData.items[pe];\n\t\t\t\t})\n\t\t\t\t.filter(Boolean) ?? []\n\t\t);\n\t}, [data?.meta]);\n\tconst dataItems = useMemo(() => {\n\t\treturn (\n\t\t\tdata?.meta?.metaData.dimensions[\"dx\"]\n\t\t\t\t.map((dx) => {\n\t\t\t\t\treturn data?.meta?.metaData.items[dx];\n\t\t\t\t})\n\t\t\t\t.filter(Boolean) ?? []\n\t\t);\n\t}, [data?.meta]);\n\tconst orgUnitLevels = useMemo(\n\t\t() => data?.ouLevel?.organisationUnitLevels ?? [],\n\t\t[data?.ouLevel?.organisationUnitLevels],\n\t);\n\n\treturn {\n\t\tloading,\n\t\torgUnits,\n\t\tperiods,\n\t\tdataItems,\n\t\torgUnitLevels,\n\t};\n}\n\nexport function useCalendar() {\n\tconst { systemInfo } = useConfig();\n\treturn (\n\t\t(systemInfo as unknown as { calendar?: SupportedCalendar })?.calendar ??\n\t\t\"iso8601\"\n\t);\n}\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { useScorecardMeta } from '../components/MetaProvider';
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
import { sortBy, last } from 'lodash';
|
|
4
|
+
|
|
5
|
+
function useLowestOrgUnitLevel() {
|
|
6
|
+
const meta = useScorecardMeta();
|
|
7
|
+
return useMemo(() => {
|
|
8
|
+
const sortedOrgUnitLevels = sortBy(meta?.orgUnitLevels ?? [], "level");
|
|
9
|
+
return last(sortedOrgUnitLevels);
|
|
10
|
+
}, [meta?.orgUnitLevels]);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export { useLowestOrgUnitLevel };
|
|
14
|
+
//# sourceMappingURL=out.js.map
|
|
15
|
+
//# sourceMappingURL=orgUnit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Scorecard/hooks/orgUnit.ts"],"names":[],"mappings":"AAAA,SAAS,wBAAwB;AACjC,SAAS,eAAe;AACxB,SAAS,MAAM,cAAc;AAEtB,SAAS,wBAAwB;AACvC,QAAM,OAAO,iBAAiB;AAE9B,SAAO,QAAQ,MAAM;AACpB,UAAM,sBAAsB,OAAO,MAAM,iBAAiB,CAAC,GAAG,OAAO;AACrE,WAAO,KAAK,mBAAmB;AAAA,EAChC,GAAG,CAAC,MAAM,aAAa,CAAC;AACzB","sourcesContent":["import { useScorecardMeta } from \"../components/MetaProvider\";\nimport { useMemo } from \"react\";\nimport { last, sortBy } from \"lodash\";\n\nexport function useLowestOrgUnitLevel() {\n\tconst meta = useScorecardMeta();\n\n\treturn useMemo(() => {\n\t\tconst sortedOrgUnitLevels = sortBy(meta?.orgUnitLevels ?? [], \"level\");\n\t\treturn last(sortedOrgUnitLevels);\n\t}, [meta?.orgUnitLevels]);\n}\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { useScorecardConfig } from '../components/ConfigProvider';
|
|
2
|
+
|
|
3
|
+
function usePeriodSelection() {
|
|
4
|
+
const config = useScorecardConfig();
|
|
5
|
+
if (!config) {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
config.periodSelection;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export { usePeriodSelection };
|
|
12
|
+
//# sourceMappingURL=out.js.map
|
|
13
|
+
//# sourceMappingURL=period.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Scorecard/hooks/period.ts"],"names":[],"mappings":"AAAA,SAAS,0BAA0B;AAE5B,SAAS,qBAAqB;AACpC,QAAM,SAAS,mBAAmB;AAElC,MAAI,CAAC,QAAQ;AACZ,WAAO;AAAA,EACR;AACA,QAAM,kBAAkB,OAAO;AAChC","sourcesContent":["import { useScorecardConfig } from \"../components/ConfigProvider\";\n\nexport function usePeriodSelection() {\n\tconst config = useScorecardConfig();\n\n\tif (!config) {\n\t\treturn null;\n\t}\n\tconst periodSelection = config.periodSelection;\n}\n"]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { getCoreRowModel, getFilteredRowModel, getSortedRowModel } from '@tanstack/react-table';
|
|
2
|
+
import { useTableColumns } from './columns';
|
|
3
|
+
import { useScorecardData } from '../components/DataProvider';
|
|
4
|
+
import { useState } from 'react';
|
|
5
|
+
import { useScorecardState } from '../components/StateProvider';
|
|
6
|
+
|
|
7
|
+
function useTableSetup() {
|
|
8
|
+
const state = useScorecardState();
|
|
9
|
+
const showAverageColumn = state?.options?.averageColumn ?? false;
|
|
10
|
+
const showItemNumber = state?.options?.itemNumber ?? false;
|
|
11
|
+
const [columnFilters, setColumnFilters] = useState([]);
|
|
12
|
+
const [columnVisibility, setColumnVisibility] = useState({
|
|
13
|
+
average: showAverageColumn,
|
|
14
|
+
count: showItemNumber
|
|
15
|
+
});
|
|
16
|
+
const [sorting, setSorting] = useState([]);
|
|
17
|
+
const columns = useTableColumns();
|
|
18
|
+
const { data } = useScorecardData();
|
|
19
|
+
return {
|
|
20
|
+
columns,
|
|
21
|
+
data,
|
|
22
|
+
state: {
|
|
23
|
+
columnFilters,
|
|
24
|
+
sorting,
|
|
25
|
+
columnVisibility
|
|
26
|
+
},
|
|
27
|
+
onColumnFiltersChange: setColumnFilters,
|
|
28
|
+
onSortingChange: setSorting,
|
|
29
|
+
getCoreRowModel: getCoreRowModel(),
|
|
30
|
+
getFilteredRowModel: getFilteredRowModel(),
|
|
31
|
+
getSortedRowModel: getSortedRowModel(),
|
|
32
|
+
onColumnVisibilityChange: setColumnVisibility
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export { useTableSetup };
|
|
37
|
+
//# sourceMappingURL=out.js.map
|
|
38
|
+
//# sourceMappingURL=table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Scorecard/hooks/table.ts"],"names":[],"mappings":"AAAA;AAAA,EAEC;AAAA,EACA;AAAA,EACA;AAAA,OAIM;AACP,SAAS,uBAAuB;AAEhC,SAAS,wBAAwB;AACjC,SAAS,gBAAgB;AACzB,SAAS,yBAAyB;AAE3B,SAAS,gBAAkD;AACjE,QAAM,QAAQ,kBAAkB;AAEhC,QAAM,oBAAoB,OAAO,SAAS,iBAAiB;AAC3D,QAAM,iBAAiB,OAAO,SAAS,cAAc;AAErD,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAA6B,CAAC,CAAC;AACzE,QAAM,CAAC,kBAAkB,mBAAmB,IAAI,SAA0B;AAAA,IACzE,SAAS;AAAA,IACT,OAAO;AAAA,EACR,CAAC;AAED,QAAM,CAAC,SAAS,UAAU,IAAI,SAAuB,CAAC,CAAC;AACvD,QAAM,UAAU,gBAAgB;AAChC,QAAM,EAAE,KAAK,IAAI,iBAAiB;AAElC,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA,OAAO;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,IACA,uBAAuB;AAAA,IACvB,iBAAiB;AAAA,IACjB,iBAAiB,gBAAgB;AAAA,IACjC,qBAAqB,oBAAoB;AAAA,IACzC,mBAAmB,kBAAkB;AAAA,IACrC,0BAA0B;AAAA,EAC3B;AACD","sourcesContent":["import {\n\ttype ColumnFiltersState,\n\tgetCoreRowModel,\n\tgetFilteredRowModel,\n\tgetSortedRowModel,\n\ttype SortingState,\n\ttype TableOptions,\n\ttype VisibilityState,\n} from \"@tanstack/react-table\";\nimport { useTableColumns } from \"./columns\";\nimport type { ScorecardTableData } from \"../schemas/config\";\nimport { useScorecardData } from \"../components/DataProvider\";\nimport { useState } from \"react\";\nimport { useScorecardState } from \"../components/StateProvider\";\n\nexport function useTableSetup(): TableOptions<ScorecardTableData> {\n\tconst state = useScorecardState();\n\n\tconst showAverageColumn = state?.options?.averageColumn ?? false;\n\tconst showItemNumber = state?.options?.itemNumber ?? false;\n\t// const [expanded, setExpanded] = useState<ExpandedState>({});\n\tconst [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);\n\tconst [columnVisibility, setColumnVisibility] = useState<VisibilityState>({\n\t\taverage: showAverageColumn,\n\t\tcount: showItemNumber,\n\t});\n\n\tconst [sorting, setSorting] = useState<SortingState>([]);\n\tconst columns = useTableColumns();\n\tconst { data } = useScorecardData();\n\n\treturn {\n\t\tcolumns,\n\t\tdata,\n\t\tstate: {\n\t\t\tcolumnFilters,\n\t\t\tsorting,\n\t\t\tcolumnVisibility,\n\t\t},\n\t\tonColumnFiltersChange: setColumnFilters,\n\t\tonSortingChange: setSorting,\n\t\tgetCoreRowModel: getCoreRowModel(),\n\t\tgetFilteredRowModel: getFilteredRowModel(),\n\t\tgetSortedRowModel: getSortedRowModel(),\n\t\tonColumnVisibilityChange: setColumnVisibility,\n\t};\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Scorecard/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,cAAc","sourcesContent":["export * from \"./Scorecard\";\nexport * from \"./schemas/config\";\n"]}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
const supportedDataSources = z.enum([
|
|
4
|
+
"indicator",
|
|
5
|
+
"dataElement",
|
|
6
|
+
"dataSet",
|
|
7
|
+
""
|
|
8
|
+
]);
|
|
9
|
+
const legendDefinitionSchema = z.object({
|
|
10
|
+
id: z.string(),
|
|
11
|
+
color: z.string(),
|
|
12
|
+
name: z.string(),
|
|
13
|
+
isDefault: z.boolean().optional()
|
|
14
|
+
});
|
|
15
|
+
const scorecardViewOptionsSchema = z.object({
|
|
16
|
+
averageColumn: z.boolean(),
|
|
17
|
+
averageDisplayType: z.enum(["ALL", "ABOVE_AVERAGE", "BELOW_AVERAGE"]),
|
|
18
|
+
averageRow: z.boolean(),
|
|
19
|
+
emptyRows: z.boolean(),
|
|
20
|
+
highlightedIndicators: z.boolean(),
|
|
21
|
+
itemNumber: z.boolean(),
|
|
22
|
+
legend: z.boolean(),
|
|
23
|
+
showHierarchy: z.boolean(),
|
|
24
|
+
title: z.boolean(),
|
|
25
|
+
arrows: z.boolean(),
|
|
26
|
+
showDataInRows: z.boolean(),
|
|
27
|
+
disableExpanding: z.boolean().optional()
|
|
28
|
+
});
|
|
29
|
+
const organisationUnitSelectionSchema = z.object({
|
|
30
|
+
userOrgUnit: z.boolean().optional(),
|
|
31
|
+
userSubUnit: z.boolean().optional(),
|
|
32
|
+
userSubX2Unit: z.boolean().optional(),
|
|
33
|
+
orgUnits: z.array(
|
|
34
|
+
z.object({
|
|
35
|
+
id: z.string()
|
|
36
|
+
})
|
|
37
|
+
),
|
|
38
|
+
groups: z.array(z.string()),
|
|
39
|
+
levels: z.array(z.string())
|
|
40
|
+
});
|
|
41
|
+
const periodSelectionSchema = z.object({
|
|
42
|
+
periods: z.array(
|
|
43
|
+
z.object({
|
|
44
|
+
id: z.string()
|
|
45
|
+
})
|
|
46
|
+
),
|
|
47
|
+
type: z.string().optional()
|
|
48
|
+
});
|
|
49
|
+
const legendSchema = z.object({
|
|
50
|
+
legendDefinitionId: z.string(),
|
|
51
|
+
id: z.string(),
|
|
52
|
+
startValue: z.union([z.string(), z.number()]),
|
|
53
|
+
endValue: z.union([z.string(), z.number()])
|
|
54
|
+
});
|
|
55
|
+
const specificTargetSchema = z.object({
|
|
56
|
+
type: z.enum(["period", "orgUnit"]),
|
|
57
|
+
items: z.array(z.string()),
|
|
58
|
+
legends: z.array(legendSchema)
|
|
59
|
+
});
|
|
60
|
+
const orgUnitLevelLegendSchema = z.record(
|
|
61
|
+
z.string(),
|
|
62
|
+
z.array(legendSchema)
|
|
63
|
+
);
|
|
64
|
+
const dataSourceSchema = z.object({
|
|
65
|
+
id: z.string(),
|
|
66
|
+
label: z.string().optional(),
|
|
67
|
+
type: supportedDataSources,
|
|
68
|
+
displayArrows: z.boolean(),
|
|
69
|
+
highIsGood: z.boolean(),
|
|
70
|
+
effectiveGap: z.number(),
|
|
71
|
+
showColors: z.boolean(),
|
|
72
|
+
weight: z.number(),
|
|
73
|
+
legends: z.union([z.array(legendSchema), orgUnitLevelLegendSchema]),
|
|
74
|
+
specificTargets: z.array(specificTargetSchema),
|
|
75
|
+
description: z.string().optional()
|
|
76
|
+
});
|
|
77
|
+
const dataHolderSchema = z.object({
|
|
78
|
+
id: z.union([z.number(), z.string()]),
|
|
79
|
+
dataSources: z.array(dataSourceSchema)
|
|
80
|
+
});
|
|
81
|
+
const dataGroupSchema = z.object({
|
|
82
|
+
id: z.union([z.number(), z.string()]),
|
|
83
|
+
dataHolders: z.array(dataHolderSchema),
|
|
84
|
+
style: z.object({}),
|
|
85
|
+
title: z.string()
|
|
86
|
+
});
|
|
87
|
+
z.object({
|
|
88
|
+
id: z.string(),
|
|
89
|
+
title: z.string(),
|
|
90
|
+
subtitle: z.string(),
|
|
91
|
+
customHeader: z.string(),
|
|
92
|
+
description: z.string().optional(),
|
|
93
|
+
legendDefinitions: z.array(legendDefinitionSchema),
|
|
94
|
+
options: scorecardViewOptionsSchema,
|
|
95
|
+
orgUnitSelection: organisationUnitSelectionSchema,
|
|
96
|
+
periodSelection: periodSelectionSchema,
|
|
97
|
+
dataSelection: z.object({
|
|
98
|
+
dataGroups: z.array(dataGroupSchema)
|
|
99
|
+
}),
|
|
100
|
+
highlightedIndicators: z.array(dataSourceSchema),
|
|
101
|
+
additionalLabels: z.array(z.string())
|
|
102
|
+
});
|
|
103
|
+
z.object({
|
|
104
|
+
orgUnitSelection: organisationUnitSelectionSchema,
|
|
105
|
+
periodSelection: periodSelectionSchema,
|
|
106
|
+
options: scorecardViewOptionsSchema,
|
|
107
|
+
nested: z.boolean().optional(),
|
|
108
|
+
hasOnePeriod: z.boolean().optional()
|
|
109
|
+
});
|
|
110
|
+
const scorecardAnalyticsData = z.object({
|
|
111
|
+
dx: z.string().optional(),
|
|
112
|
+
pe: z.string().optional(),
|
|
113
|
+
ou: z.string().optional(),
|
|
114
|
+
value: z.string().optional()
|
|
115
|
+
});
|
|
116
|
+
const scorecardTableData = z.object({
|
|
117
|
+
label: z.string(),
|
|
118
|
+
dataValues: z.array(scorecardAnalyticsData),
|
|
119
|
+
dataHolder: dataHolderSchema.optional(),
|
|
120
|
+
orgUnit: z.object({
|
|
121
|
+
uid: z.string(),
|
|
122
|
+
name: z.string(),
|
|
123
|
+
hierarchy: z.string()
|
|
124
|
+
}).optional(),
|
|
125
|
+
expand: z.boolean().optional()
|
|
126
|
+
});
|
|
127
|
+
const scorecardTableCellData = z.object({
|
|
128
|
+
dataSources: z.array(
|
|
129
|
+
dataSourceSchema.extend({
|
|
130
|
+
data: z.object({
|
|
131
|
+
previous: z.number().optional(),
|
|
132
|
+
current: z.number().optional()
|
|
133
|
+
})
|
|
134
|
+
})
|
|
135
|
+
),
|
|
136
|
+
orgUnit: z.object({
|
|
137
|
+
uid: z.string(),
|
|
138
|
+
name: z.string(),
|
|
139
|
+
hierarchy: z.string()
|
|
140
|
+
}),
|
|
141
|
+
period: z.string()
|
|
142
|
+
});
|
|
143
|
+
var ScorecardTableOrientation = /* @__PURE__ */ ((ScorecardTableOrientation2) => {
|
|
144
|
+
ScorecardTableOrientation2["ORG_UNIT_VS_DATA"] = "orgUnitsVsData";
|
|
145
|
+
ScorecardTableOrientation2["DATA_VS_ORG_UNIT"] = "dataVsOrgUnits";
|
|
146
|
+
return ScorecardTableOrientation2;
|
|
147
|
+
})(ScorecardTableOrientation || {});
|
|
148
|
+
var ScorecardTableDimension = /* @__PURE__ */ ((ScorecardTableDimension2) => {
|
|
149
|
+
ScorecardTableDimension2["GROUP"] = "group";
|
|
150
|
+
ScorecardTableDimension2["ORG_UNITS"] = "orgUnits";
|
|
151
|
+
ScorecardTableDimension2["PERIODS"] = "periods";
|
|
152
|
+
ScorecardTableDimension2["DATA"] = "data";
|
|
153
|
+
return ScorecardTableDimension2;
|
|
154
|
+
})(ScorecardTableDimension || {});
|
|
155
|
+
var ScorecardDraggableItems = /* @__PURE__ */ ((ScorecardDraggableItems2) => {
|
|
156
|
+
ScorecardDraggableItems2["ou"] = "ou";
|
|
157
|
+
ScorecardDraggableItems2["data"] = "data";
|
|
158
|
+
return ScorecardDraggableItems2;
|
|
159
|
+
})(ScorecardDraggableItems || {});
|
|
160
|
+
|
|
161
|
+
export { ScorecardDraggableItems, ScorecardTableDimension, ScorecardTableOrientation, dataGroupSchema, dataHolderSchema, dataSourceSchema, legendDefinitionSchema, legendSchema, orgUnitLevelLegendSchema, organisationUnitSelectionSchema, periodSelectionSchema, scorecardAnalyticsData, scorecardTableCellData, scorecardTableData, scorecardViewOptionsSchema, specificTargetSchema, supportedDataSources };
|
|
162
|
+
//# sourceMappingURL=out.js.map
|
|
163
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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\"dataElement\",\n\t\"dataSet\",\n\t\"\",\n]);\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(),\n\taverageDisplayType: z.enum([\"ALL\", \"ABOVE_AVERAGE\", \"BELOW_AVERAGE\"]),\n\taverageRow: z.boolean(),\n\temptyRows: z.boolean(),\n\thighlightedIndicators: z.boolean(),\n\titemNumber: z.boolean(),\n\tlegend: z.boolean(),\n\tshowHierarchy: z.boolean(),\n\ttitle: z.boolean(),\n\tarrows: z.boolean(),\n\tshowDataInRows: z.boolean(),\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()),\n\tlevels: z.array(z.string()),\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([\"period\", \"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\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),\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(),\n\tcustomHeader: z.string(),\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()),\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"]}
|