@hisptz/dhis2-scorecard 1.2.22 → 1.2.24
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/Scorecard.js.map +1 -1
- package/dist/components/ColGroup.js.map +1 -1
- package/dist/components/ConfigProvider.js.map +1 -1
- package/dist/components/DataProvider.js.map +1 -1
- package/dist/components/LoadingIndicator.js.map +1 -1
- package/dist/components/MetaProvider.js.map +1 -1
- package/dist/components/ScorecardContext.js.map +1 -1
- package/dist/components/ScorecardHeader.js.map +1 -1
- package/dist/components/ScorecardLegendsView/ScorecardLegendsView.js.map +1 -1
- package/dist/components/ScorecardLegendsView/components/ArrowLegendView.js.map +1 -1
- package/dist/components/ScorecardLegendsView/components/LegendView.js.map +1 -1
- package/dist/components/ScorecardLegendsView/components/OrgUnitLevelSpecificTargetView.js.map +1 -1
- package/dist/components/ScorecardLegendsView/components/OrgUnitSpecificTargetView.js.map +1 -1
- package/dist/components/ScorecardLegendsView/components/PeriodSpecificTargetView.js.map +1 -1
- package/dist/components/ScorecardLegendsView/components/SpecificTargetLegendsView.js.map +1 -1
- package/dist/components/ScorecardPrint/ScorecardPrint.js.map +1 -1
- package/dist/components/ScorecardPrint/components/ScorecardDownloadButton.js.map +1 -1
- package/dist/components/ScorecardPrint/components/ScorecardPreviewArea.js.map +1 -1
- package/dist/components/ScorecardPrint/utils/download.js.map +1 -1
- package/dist/components/ScorecardTable/FurtherAnalysisDictionary/FurtherAnalysisDictionary.js.map +1 -1
- package/dist/components/ScorecardTable/FurtherAnalysisDictionary/components/ConfigProvider.js.map +1 -1
- package/dist/components/ScorecardTable/FurtherAnalysisDictionary/components/DetailsProvider.js.map +1 -1
- package/dist/components/ScorecardTable/FurtherAnalysisVisualization.js.map +1 -1
- package/dist/components/ScorecardTable/ScorecardTable.js.map +1 -1
- package/dist/components/ScorecardTable/components/AverageCell.js.map +1 -1
- package/dist/components/ScorecardTable/components/AverageFooterCell.js.map +1 -1
- package/dist/components/ScorecardTable/components/CellLoader.js.map +1 -1
- package/dist/components/ScorecardTable/components/DataContainer.js.map +1 -1
- package/dist/components/ScorecardTable/components/DataFooterCell.js.map +1 -1
- package/dist/components/ScorecardTable/components/DataRow.js.map +1 -1
- package/dist/components/ScorecardTable/components/DataValue.js.map +1 -1
- package/dist/components/ScorecardTable/components/DraggableCell.js.map +1 -1
- package/dist/components/ScorecardTable/components/DroppableCell.js.map +1 -1
- package/dist/components/ScorecardTable/components/EmptyFooterCell.js.map +1 -1
- package/dist/components/ScorecardTable/components/ExpandedScorecardTable.js.map +1 -1
- package/dist/components/ScorecardTable/components/FurtherAnalysisMenu.js.map +1 -1
- package/dist/components/ScorecardTable/components/FurtherAnalysisModal.js.map +1 -1
- package/dist/components/ScorecardTable/components/LinkedCell.js.map +1 -1
- package/dist/components/ScorecardTable/components/LinkedDataCell.js.map +1 -1
- package/dist/components/ScorecardTable/components/MetaFooterCell.js.map +1 -1
- package/dist/components/ScorecardTable/components/PaginatedToolbar.js.map +1 -1
- package/dist/components/ScorecardTable/components/SingleDataCell.js.map +1 -1
- package/dist/components/ScorecardTable/components/TableBody.js.map +1 -1
- package/dist/components/ScorecardTable/components/TableFoot.js.map +1 -1
- package/dist/components/ScorecardTable/components/TableHeader/TableHeader.js.map +1 -1
- package/dist/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js.map +1 -1
- package/dist/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map +1 -1
- package/dist/components/ScorecardTable/components/TableHeader/components/ExpandCell.js.map +1 -1
- package/dist/components/ScorecardTable/components/TableHeader/components/FilterArea.js.map +1 -1
- package/dist/components/ScorecardTable/components/TableHeader/components/LabelCell.js.map +1 -1
- package/dist/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js.map +1 -1
- package/dist/components/ScorecardTable/components/TableHeader/components/NumberCell.js.map +1 -1
- package/dist/components/StateProvider.js.map +1 -1
- package/dist/components/TableStateProvider.js.map +1 -1
- package/dist/esm/Scorecard.js.map +1 -1
- package/dist/esm/components/ColGroup.js.map +1 -1
- package/dist/esm/components/ConfigProvider.js.map +1 -1
- package/dist/esm/components/DataProvider.js.map +1 -1
- package/dist/esm/components/LoadingIndicator.js.map +1 -1
- package/dist/esm/components/MetaProvider.js.map +1 -1
- package/dist/esm/components/ScorecardContext.js.map +1 -1
- package/dist/esm/components/ScorecardHeader.js.map +1 -1
- package/dist/esm/components/ScorecardLegendsView/ScorecardLegendsView.js.map +1 -1
- package/dist/esm/components/ScorecardLegendsView/components/ArrowLegendView.js.map +1 -1
- package/dist/esm/components/ScorecardLegendsView/components/LegendView.js.map +1 -1
- package/dist/esm/components/ScorecardLegendsView/components/OrgUnitLevelSpecificTargetView.js.map +1 -1
- package/dist/esm/components/ScorecardLegendsView/components/OrgUnitSpecificTargetView.js.map +1 -1
- package/dist/esm/components/ScorecardLegendsView/components/PeriodSpecificTargetView.js.map +1 -1
- package/dist/esm/components/ScorecardLegendsView/components/SpecificTargetLegendsView.js.map +1 -1
- package/dist/esm/components/ScorecardPrint/ScorecardPrint.js.map +1 -1
- package/dist/esm/components/ScorecardPrint/components/ScorecardDownloadButton.js.map +1 -1
- package/dist/esm/components/ScorecardPrint/components/ScorecardPreviewArea.js.map +1 -1
- package/dist/esm/components/ScorecardPrint/utils/download.js.map +1 -1
- package/dist/esm/components/ScorecardTable/FurtherAnalysisDictionary/FurtherAnalysisDictionary.js.map +1 -1
- package/dist/esm/components/ScorecardTable/FurtherAnalysisDictionary/components/ConfigProvider.js.map +1 -1
- package/dist/esm/components/ScorecardTable/FurtherAnalysisDictionary/components/DetailsProvider.js.map +1 -1
- package/dist/esm/components/ScorecardTable/FurtherAnalysisVisualization.js.map +1 -1
- package/dist/esm/components/ScorecardTable/ScorecardTable.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/AverageCell.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/AverageFooterCell.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/CellLoader.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/DataContainer.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/DataFooterCell.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/DataRow.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/DataValue.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/DraggableCell.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/DroppableCell.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/EmptyFooterCell.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/ExpandedScorecardTable.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/FurtherAnalysisMenu.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/FurtherAnalysisModal.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/LinkedCell.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/LinkedDataCell.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/MetaFooterCell.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/PaginatedToolbar.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/SingleDataCell.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/TableBody.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/TableFoot.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/TableHeader/TableHeader.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/TableHeader/components/ExpandCell.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/TableHeader/components/FilterArea.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/TableHeader/components/LabelCell.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/TableHeader/components/NumberCell.js.map +1 -1
- package/dist/esm/components/StateProvider.js.map +1 -1
- package/dist/esm/components/TableStateProvider.js.map +1 -1
- package/dist/esm/hooks/cellData.js.map +1 -1
- package/dist/esm/hooks/columns.js.map +1 -1
- package/dist/esm/hooks/data.js.map +1 -1
- package/dist/esm/hooks/dataItem.js.map +1 -1
- package/dist/esm/hooks/metadata.js.map +1 -1
- package/dist/esm/hooks/orgUnit.js.map +1 -1
- package/dist/esm/hooks/table.js.map +1 -1
- package/dist/esm/hooks/value.js.map +1 -1
- package/dist/esm/schemas/config.js.map +1 -1
- package/dist/esm/utils/analytics.js.map +1 -1
- package/dist/esm/utils/columns.js.map +1 -1
- package/dist/esm/utils/data.js.map +1 -1
- package/dist/esm/utils/dataEngine.js.map +1 -1
- package/dist/esm/utils/dataSources.js.map +1 -1
- package/dist/esm/utils/dimensionState.js.map +1 -1
- package/dist/esm/utils/legends.js.map +1 -1
- package/dist/esm/utils/orgUnits.js.map +1 -1
- package/dist/esm/utils/state.js.map +1 -1
- package/dist/esm/utils/viewState.js.map +1 -1
- package/dist/hooks/cellData.js.map +1 -1
- package/dist/hooks/columns.js.map +1 -1
- package/dist/hooks/data.js.map +1 -1
- package/dist/hooks/dataItem.js.map +1 -1
- package/dist/hooks/metadata.js.map +1 -1
- package/dist/hooks/orgUnit.js.map +1 -1
- package/dist/hooks/table.js.map +1 -1
- package/dist/hooks/value.js.map +1 -1
- package/dist/package.json +59 -0
- package/dist/schemas/config.js.map +1 -1
- package/dist/utils/analytics.js.map +1 -1
- package/dist/utils/columns.js.map +1 -1
- package/dist/utils/data.js.map +1 -1
- package/dist/utils/dataEngine.js.map +1 -1
- package/dist/utils/dataSources.js.map +1 -1
- package/dist/utils/dimensionState.js.map +1 -1
- package/dist/utils/legends.js.map +1 -1
- package/dist/utils/orgUnits.js.map +1 -1
- package/dist/utils/state.js.map +1 -1
- package/dist/utils/viewState.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/dataEngine.ts"],"names":[],"mappings":"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","file":"dataEngine.js","sourcesContent":["import type { AnalyticsData } from \"./data\";\nimport { asyncify, queue } from \"async-es\";\nimport { chunk, maxBy } from \"lodash\";\nimport type { QueueObject } from \"async\";\n\nexport type RemoveListener = () => void;\nexport type DataEngineListener = (data: AnalyticsData[]) => void;\nexport type OnCompleteDataEngineListener = (completed: boolean) => void;\nexport type ProgressListeners = (progress: number) => void;\n\nconst chunkSize = 5;\n\nexport type ScorecardDataEngine = ReturnType<typeof createScorecardDataEngine>;\n\nexport function createScorecardDataEngine() {\n\treturn {\n\t\tqueue: queue(async () => Promise.resolve([])) as QueueObject<{\n\t\t\tperiods: string[];\n\t\t\torgUnits: string[];\n\t\t\tdataItems: string[];\n\t\t}>,\n\t\tdata: [] as AnalyticsData[],\n\t\ttotalRequests: 0,\n\t\tcompletedRequests: 0,\n\t\tisDone: false,\n\t\tinitialized: false,\n\t\tdataListeners: [] as DataEngineListener[],\n\t\tonCompleteListeners: [] as OnCompleteDataEngineListener[],\n\t\tprogressListeners: [] as ProgressListeners[],\n\t\tdimensions: {\n\t\t\torgUnits: [] as string[],\n\t\t\tperiods: [] as string[],\n\t\t\tdataItems: [] as string[],\n\t\t},\n\t\tupdateProgress() {\n\t\t\tconst progress = this.completedRequests / this.totalRequests;\n\t\t\tfor (const listener of this.progressListeners) {\n\t\t\t\tlistener(progress);\n\t\t\t}\n\t\t},\n\t\tupdateTotalRequests(value: number) {\n\t\t\tthis.totalRequests = value;\n\t\t\tthis.updateProgress();\n\t\t},\n\t\tupdateCompleteRequests(value: number) {\n\t\t\tthis.completedRequests = value;\n\t\t\tthis.updateProgress();\n\t\t},\n\t\taddDataListener(listener: DataEngineListener): RemoveListener {\n\t\t\tthis.dataListeners.push(listener);\n\t\t\treturn () => {\n\t\t\t\tthis.dataListeners.filter((l) => l !== listener);\n\t\t\t};\n\t\t},\n\t\taddOnCompleteListener(\n\t\t\tlistener: OnCompleteDataEngineListener,\n\t\t): RemoveListener {\n\t\t\tthis.onCompleteListeners.push(listener);\n\t\t\treturn () => {\n\t\t\t\tthis.onCompleteListeners.filter((l) => l !== listener);\n\t\t\t};\n\t\t},\n\t\taddProgressListener(listener: ProgressListeners): RemoveListener {\n\t\t\tthis.progressListeners.push(listener);\n\t\t\treturn () => {\n\t\t\t\tthis.progressListeners.filter((l) => l !== listener);\n\t\t\t};\n\t\t},\n\t\tremoveListener(listener: DataEngineListener) {\n\t\t\treturn this.dataListeners.filter((l) => l !== listener);\n\t\t},\n\t\tupdateData(data: AnalyticsData[]) {\n\t\t\tthis.data = [...this.data, ...data];\n\t\t\tfor (const listener of this.dataListeners) {\n\t\t\t\tlistener(this.data);\n\t\t\t}\n\t\t},\n\t\tcomplete() {\n\t\t\tthis.isDone = true;\n\t\t\tfor (const listener of this.onCompleteListeners) {\n\t\t\t\tlistener(this.isDone);\n\t\t\t}\n\t\t},\n\t\tclear() {\n\t\t\tthis.data = [];\n\t\t\tthis.isDone = false;\n\t\t\tthis.initialized = false;\n\t\t},\n\t\tsetupDataFetch() {\n\t\t\tconst getTheLongestDimension = () => {\n\t\t\t\tconst dimensions = [\n\t\t\t\t\t{\n\t\t\t\t\t\tdimension: \"pe\",\n\t\t\t\t\t\tlength: this.dimensions.periods.length,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tdimension: \"dx\",\n\t\t\t\t\t\tlength: this.dimensions.dataItems.length,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tdimension: \"ou\",\n\t\t\t\t\t\tlength: this.dimensions.orgUnits.length,\n\t\t\t\t\t},\n\t\t\t\t] as const;\n\n\t\t\t\treturn maxBy(dimensions, \"length\")!.dimension;\n\t\t\t};\n\t\t\tconst getChunkedData = async (maxItem: \"dx\" | \"pe\" | \"ou\") => {\n\t\t\t\tswitch (maxItem) {\n\t\t\t\t\tcase \"dx\":\n\t\t\t\t\t\tconst dataItemChunks = chunk(\n\t\t\t\t\t\t\tthis.dimensions.dataItems,\n\t\t\t\t\t\t\tchunkSize,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.updateTotalRequests(dataItemChunks.length);\n\t\t\t\t\t\tfor (const dataItemChunk of dataItemChunks) {\n\t\t\t\t\t\t\tthis.queue\n\t\t\t\t\t\t\t\t.push({\n\t\t\t\t\t\t\t\t\tperiods: this.dimensions.periods,\n\t\t\t\t\t\t\t\t\tdataItems: dataItemChunk,\n\t\t\t\t\t\t\t\t\torgUnits: this.dimensions.orgUnits,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t.then((data) => {\n\t\t\t\t\t\t\t\t\tthis.updateData(data as AnalyticsData[]);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t.then((data) => {\n\t\t\t\t\t\t\t\t\tthis.updateCompleteRequests(\n\t\t\t\t\t\t\t\t\t\tthis.completedRequests + 1,\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\treturn data;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"pe\":\n\t\t\t\t\t\tconst periodChunks = chunk(\n\t\t\t\t\t\t\tthis.dimensions.periods,\n\t\t\t\t\t\t\tchunkSize,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.updateTotalRequests(periodChunks.length);\n\t\t\t\t\t\tfor (const periodChunk of periodChunks) {\n\t\t\t\t\t\t\tthis.queue\n\t\t\t\t\t\t\t\t.push({\n\t\t\t\t\t\t\t\t\tperiods: periodChunk,\n\t\t\t\t\t\t\t\t\tdataItems: this.dimensions.dataItems,\n\t\t\t\t\t\t\t\t\torgUnits: this.dimensions.orgUnits,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t.then((data) => {\n\t\t\t\t\t\t\t\t\tthis.updateData(data as AnalyticsData[]);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t.then((data) => {\n\t\t\t\t\t\t\t\t\tthis.updateCompleteRequests(\n\t\t\t\t\t\t\t\t\t\tthis.completedRequests + 1,\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\treturn data;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"ou\":\n\t\t\t\t\t\tconst orgUnitChunks = chunk(\n\t\t\t\t\t\t\tthis.dimensions.orgUnits,\n\t\t\t\t\t\t\tchunkSize,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.updateTotalRequests(orgUnitChunks.length);\n\t\t\t\t\t\tfor (const orgUnitChunk of orgUnitChunks) {\n\t\t\t\t\t\t\tthis.queue\n\t\t\t\t\t\t\t\t.push({\n\t\t\t\t\t\t\t\t\tperiods: this.dimensions.periods,\n\t\t\t\t\t\t\t\t\tdataItems: this.dimensions.dataItems,\n\t\t\t\t\t\t\t\t\torgUnits: orgUnitChunk,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t.then((data) => {\n\t\t\t\t\t\t\t\t\tthis.updateData(data as AnalyticsData[]);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t.then((data) => {\n\t\t\t\t\t\t\t\t\tthis.updateCompleteRequests(\n\t\t\t\t\t\t\t\t\t\tthis.completedRequests + 1,\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\treturn data;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t};\n\t\t\tthis.queue.remove(() => true);\n\t\t\tif (\n\t\t\t\tthis.dimensions.periods.length < 5 &&\n\t\t\t\tthis.dimensions.dataItems.length < 5 &&\n\t\t\t\tthis.dimensions.orgUnits.length < 5\n\t\t\t) {\n\t\t\t\tconst { orgUnits, periods, dataItems } = this.dimensions;\n\t\t\t\tthis.updateTotalRequests(1);\n\t\t\t\tthis.updateCompleteRequests(0);\n\t\t\t\tthis.queue\n\t\t\t\t\t.push({\n\t\t\t\t\t\tperiods,\n\t\t\t\t\t\torgUnits,\n\t\t\t\t\t\tdataItems,\n\t\t\t\t\t})\n\t\t\t\t\t.then((data) => {\n\t\t\t\t\t\tthis.updateData(data as AnalyticsData[]);\n\t\t\t\t\t\tthis.updateCompleteRequests(1);\n\t\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst dimensionWithMaxItems = getTheLongestDimension();\n\t\t\tgetChunkedData(dimensionWithMaxItems);\n\t\t},\n\t\tinitialize(\n\t\t\tfetch: (dimensions: {\n\t\t\t\tperiods: string[];\n\t\t\t\torgUnits: string[];\n\t\t\t\tdataItems: string[];\n\t\t\t}) => Promise<AnalyticsData[]>,\n\t\t\t{\n\t\t\t\tdimensions,\n\t\t\t}: {\n\t\t\t\tdimensions: {\n\t\t\t\t\tdataItems: string[];\n\t\t\t\t\torgUnits: string[];\n\t\t\t\t\tperiods: string[];\n\t\t\t\t};\n\t\t\t},\n\t\t) {\n\t\t\tthis.dimensions = dimensions;\n\t\t\tthis.queue = queue(asyncify(fetch));\n\t\t\tthis.queue.drain(() => {\n\t\t\t\tthis.complete();\n\t\t\t});\n\t\t\tthis.initialized = true;\n\t\t\tthis.clear();\n\t\t\tthis.setupDataFetch();\n\t\t},\n\t};\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/dataEngine.ts"],"names":[],"mappings":"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","file":"dataEngine.js","sourcesContent":["import type { AnalyticsData } from \"./data\";\nimport { asyncify, queue } from \"async-es\";\nimport { chunk, maxBy } from \"lodash\";\nimport type { QueueObject } from \"async\";\n\nexport type RemoveListener = () => void;\nexport type DataEngineListener = (data: AnalyticsData[]) => void;\nexport type OnCompleteDataEngineListener = (completed: boolean) => void;\nexport type ProgressListeners = (progress: number) => void;\n\nconst chunkSize = 5;\n\nexport type ScorecardDataEngine = ReturnType<typeof createScorecardDataEngine>;\n\nexport function createScorecardDataEngine() {\n\treturn {\n\t\tqueue: queue(async () => Promise.resolve([])) as QueueObject<{\n\t\t\tperiods: string[];\n\t\t\torgUnits: string[];\n\t\t\tdataItems: string[];\n\t\t}>,\n\t\tdata: [] as AnalyticsData[],\n\t\ttotalRequests: 0,\n\t\tcompletedRequests: 0,\n\t\tisDone: false,\n\t\tinitialized: false,\n\t\tdataListeners: [] as DataEngineListener[],\n\t\tonCompleteListeners: [] as OnCompleteDataEngineListener[],\n\t\tprogressListeners: [] as ProgressListeners[],\n\t\tdimensions: {\n\t\t\torgUnits: [] as string[],\n\t\t\tperiods: [] as string[],\n\t\t\tdataItems: [] as string[],\n\t\t},\n\t\tupdateProgress() {\n\t\t\tconst progress = this.completedRequests / this.totalRequests;\n\t\t\tfor (const listener of this.progressListeners) {\n\t\t\t\tlistener(progress);\n\t\t\t}\n\t\t},\n\t\tupdateTotalRequests(value: number) {\n\t\t\tthis.totalRequests = value;\n\t\t\tthis.updateProgress();\n\t\t},\n\t\tupdateCompleteRequests(value: number) {\n\t\t\tthis.completedRequests = value;\n\t\t\tthis.updateProgress();\n\t\t},\n\t\taddDataListener(listener: DataEngineListener): RemoveListener {\n\t\t\tthis.dataListeners.push(listener);\n\t\t\treturn () => {\n\t\t\t\tthis.dataListeners.filter((l) => l !== listener);\n\t\t\t};\n\t\t},\n\t\taddOnCompleteListener(\n\t\t\tlistener: OnCompleteDataEngineListener,\n\t\t): RemoveListener {\n\t\t\tthis.onCompleteListeners.push(listener);\n\t\t\treturn () => {\n\t\t\t\tthis.onCompleteListeners.filter((l) => l !== listener);\n\t\t\t};\n\t\t},\n\t\taddProgressListener(listener: ProgressListeners): RemoveListener {\n\t\t\tthis.progressListeners.push(listener);\n\t\t\treturn () => {\n\t\t\t\tthis.progressListeners.filter((l) => l !== listener);\n\t\t\t};\n\t\t},\n\t\tremoveListener(listener: DataEngineListener) {\n\t\t\treturn this.dataListeners.filter((l) => l !== listener);\n\t\t},\n\t\tupdateData(data: AnalyticsData[]) {\n\t\t\tthis.data = [...this.data, ...data];\n\t\t\tfor (const listener of this.dataListeners) {\n\t\t\t\tlistener(this.data);\n\t\t\t}\n\t\t},\n\t\tcomplete() {\n\t\t\tthis.isDone = true;\n\t\t\tfor (const listener of this.onCompleteListeners) {\n\t\t\t\tlistener(this.isDone);\n\t\t\t}\n\t\t},\n\t\tclear() {\n\t\t\tthis.data = [];\n\t\t\tthis.isDone = false;\n\t\t\tthis.initialized = false;\n\t\t},\n\t\tsetupDataFetch() {\n\t\t\tconst getTheLongestDimension = () => {\n\t\t\t\tconst dimensions = [\n\t\t\t\t\t{\n\t\t\t\t\t\tdimension: \"pe\",\n\t\t\t\t\t\tlength: this.dimensions.periods.length,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tdimension: \"dx\",\n\t\t\t\t\t\tlength: this.dimensions.dataItems.length,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tdimension: \"ou\",\n\t\t\t\t\t\tlength: this.dimensions.orgUnits.length,\n\t\t\t\t\t},\n\t\t\t\t] as const;\n\n\t\t\t\treturn maxBy(dimensions, \"length\")!.dimension;\n\t\t\t};\n\t\t\tconst getChunkedData = async (maxItem: \"dx\" | \"pe\" | \"ou\") => {\n\t\t\t\tswitch (maxItem) {\n\t\t\t\t\tcase \"dx\":\n\t\t\t\t\t\tconst dataItemChunks = chunk(\n\t\t\t\t\t\t\tthis.dimensions.dataItems,\n\t\t\t\t\t\t\tchunkSize,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.updateTotalRequests(dataItemChunks.length);\n\t\t\t\t\t\tfor (const dataItemChunk of dataItemChunks) {\n\t\t\t\t\t\t\tthis.queue\n\t\t\t\t\t\t\t\t.push({\n\t\t\t\t\t\t\t\t\tperiods: this.dimensions.periods,\n\t\t\t\t\t\t\t\t\tdataItems: dataItemChunk,\n\t\t\t\t\t\t\t\t\torgUnits: this.dimensions.orgUnits,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t.then((data) => {\n\t\t\t\t\t\t\t\t\tthis.updateData(data as AnalyticsData[]);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t.then((data) => {\n\t\t\t\t\t\t\t\t\tthis.updateCompleteRequests(\n\t\t\t\t\t\t\t\t\t\tthis.completedRequests + 1,\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\treturn data;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"pe\":\n\t\t\t\t\t\tconst periodChunks = chunk(\n\t\t\t\t\t\t\tthis.dimensions.periods,\n\t\t\t\t\t\t\tchunkSize,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.updateTotalRequests(periodChunks.length);\n\t\t\t\t\t\tfor (const periodChunk of periodChunks) {\n\t\t\t\t\t\t\tthis.queue\n\t\t\t\t\t\t\t\t.push({\n\t\t\t\t\t\t\t\t\tperiods: periodChunk,\n\t\t\t\t\t\t\t\t\tdataItems: this.dimensions.dataItems,\n\t\t\t\t\t\t\t\t\torgUnits: this.dimensions.orgUnits,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t.then((data) => {\n\t\t\t\t\t\t\t\t\tthis.updateData(data as AnalyticsData[]);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t.then((data) => {\n\t\t\t\t\t\t\t\t\tthis.updateCompleteRequests(\n\t\t\t\t\t\t\t\t\t\tthis.completedRequests + 1,\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\treturn data;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"ou\":\n\t\t\t\t\t\tconst orgUnitChunks = chunk(\n\t\t\t\t\t\t\tthis.dimensions.orgUnits,\n\t\t\t\t\t\t\tchunkSize,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.updateTotalRequests(orgUnitChunks.length);\n\t\t\t\t\t\tfor (const orgUnitChunk of orgUnitChunks) {\n\t\t\t\t\t\t\tthis.queue\n\t\t\t\t\t\t\t\t.push({\n\t\t\t\t\t\t\t\t\tperiods: this.dimensions.periods,\n\t\t\t\t\t\t\t\t\tdataItems: this.dimensions.dataItems,\n\t\t\t\t\t\t\t\t\torgUnits: orgUnitChunk,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t.then((data) => {\n\t\t\t\t\t\t\t\t\tthis.updateData(data as AnalyticsData[]);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t.then((data) => {\n\t\t\t\t\t\t\t\t\tthis.updateCompleteRequests(\n\t\t\t\t\t\t\t\t\t\tthis.completedRequests + 1,\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\treturn data;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t};\n\t\t\tthis.queue.remove(() => true);\n\t\t\tif (\n\t\t\t\tthis.dimensions.periods.length < 5 &&\n\t\t\t\tthis.dimensions.dataItems.length < 5 &&\n\t\t\t\tthis.dimensions.orgUnits.length < 5\n\t\t\t) {\n\t\t\t\tconst { orgUnits, periods, dataItems } = this.dimensions;\n\t\t\t\tthis.updateTotalRequests(1);\n\t\t\t\tthis.updateCompleteRequests(0);\n\t\t\t\tthis.queue\n\t\t\t\t\t.push({\n\t\t\t\t\t\tperiods,\n\t\t\t\t\t\torgUnits,\n\t\t\t\t\t\tdataItems,\n\t\t\t\t\t})\n\t\t\t\t\t.then((data) => {\n\t\t\t\t\t\tthis.updateData(data as AnalyticsData[]);\n\t\t\t\t\t\tthis.updateCompleteRequests(1);\n\t\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst dimensionWithMaxItems = getTheLongestDimension();\n\t\t\tgetChunkedData(dimensionWithMaxItems);\n\t\t},\n\t\tinitialize(\n\t\t\tfetch: (dimensions: {\n\t\t\t\tperiods: string[];\n\t\t\t\torgUnits: string[];\n\t\t\t\tdataItems: string[];\n\t\t\t}) => Promise<AnalyticsData[]>,\n\t\t\t{\n\t\t\t\tdimensions,\n\t\t\t}: {\n\t\t\t\tdimensions: {\n\t\t\t\t\tdataItems: string[];\n\t\t\t\t\torgUnits: string[];\n\t\t\t\t\tperiods: string[];\n\t\t\t\t};\n\t\t\t},\n\t\t) {\n\t\t\tthis.dimensions = dimensions;\n\t\t\tthis.queue = queue(asyncify(fetch));\n\t\t\tthis.queue.drain(() => {\n\t\t\t\tthis.complete();\n\t\t\t});\n\t\t\tthis.initialized = true;\n\t\t\tthis.clear();\n\t\t\tthis.setupDataFetch();\n\t\t},\n\t};\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/dataSources.ts"],"names":[],"mappings":";;AAMO,SAAS,qBACf,
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/dataSources.ts"],"names":[],"mappings":";;AAMO,SAAS,qBACf,UAAA,EACwB;AACxB,EAAA,OAAO,WAAA,CAAY,UAAA,EAAY,GAAA,CAAI,CAAC,EAAE,aAAY,KAAM,WAAW,CAAA,IAAK,EAAE,CAAA;AAC3E;AAEO,SAAS,yBAAyB,UAAA,EAAkC;AAC1E,EAAA,MAAM,WAAA,GAAc,OAAA,CAAQ,oBAAA,CAAqB,UAAU,CAAC,CAAA;AAC5D,EAAA,OAAO,WAAA,CAAY,aAAa,GAAA,CAAI,CAAC,EAAE,WAAA,EAAY,KAAM,WAAW,CAAC,CAAA;AACtE","file":"dataSources.js","sourcesContent":["import { compact, flattenDeep } from \"lodash\";\nimport type {\n\tScorecardDataGroup,\n\tScorecardDataHolder,\n} from \"../schemas/config\";\n\nexport function getHoldersFromGroups(\n\tdataGroups: ScorecardDataGroup[],\n): ScorecardDataHolder[] {\n\treturn flattenDeep(dataGroups?.map(({ dataHolders }) => dataHolders) ?? []);\n}\n\nexport function getDataSourcesFromGroups(dataGroups: ScorecardDataGroup[]) {\n\tconst dataHolders = compact(getHoldersFromGroups(dataGroups));\n\treturn flattenDeep(dataHolders?.map(({ dataSources }) => dataSources));\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/dimensionState.ts"],"names":["orgUnitSelection","periodSelection"],"mappings":";;;AAgCO,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/dimensionState.ts"],"names":["orgUnitSelection","periodSelection"],"mappings":"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","file":"dimensionState.js","sourcesContent":["import type { OrgUnitSelection, PeriodSelection } from \"../schemas/config\";\nimport {\n\tuseScorecardDimensionStateEngine,\n\tuseScorecardMeta,\n} from \"../components\";\nimport { useEffect, useState } from \"react\";\n\nexport type DimensionState = {\n\torgUnitSelection: OrgUnitSelection;\n\tperiodSelection: PeriodSelection;\n};\nexport type OrgUnitListener = {\n\ttype: \"orgUnit\";\n\tlistener: (orgUnitSelection: OrgUnitSelection) => void;\n};\nexport type PeriodListener = {\n\ttype: \"period\";\n\tlistener: (periodSelection: PeriodSelection) => void;\n};\nexport type AllDimensionListener = {\n\ttype: \"all\";\n\tlistener: (dimensionState: DimensionState) => void;\n};\nexport type DimensionListener =\n\t| OrgUnitListener\n\t| PeriodListener\n\t| AllDimensionListener;\n\nexport type DimensionStateEngine = ReturnType<\n\ttypeof createDimensionStateEngine\n>;\n\nexport function createDimensionStateEngine({\n\torgUnitSelection,\n\tperiodSelection,\n}: DimensionState) {\n\treturn {\n\t\torgUnitSelection,\n\t\tperiodSelection,\n\t\tlisteners: [] as DimensionListener[],\n\t\taddListener(listener: DimensionListener) {\n\t\t\tthis.listeners.push(listener);\n\t\t\treturn () => {\n\t\t\t\tthis.listeners = this.listeners.filter(\n\t\t\t\t\t(l: DimensionListener) => l !== listener,\n\t\t\t\t);\n\t\t\t};\n\t\t},\n\t\tremoveListener(listener: DimensionListener) {\n\t\t\tthis.listeners = this.listeners.filter(\n\t\t\t\t(l: DimensionListener) => l !== listener,\n\t\t\t);\n\t\t},\n\t\tupdate({ orgUnitSelection, periodSelection }: DimensionState) {\n\t\t\tthis.orgUnitSelection = orgUnitSelection;\n\t\t\tthis.periodSelection = periodSelection;\n\t\t\tfor (const listener of this.listeners) {\n\t\t\t\tif (listener.type === \"orgUnit\") {\n\t\t\t\t\tlistener.listener(orgUnitSelection);\n\t\t\t\t}\n\t\t\t\tif (listener.type === \"period\") {\n\t\t\t\t\tlistener.listener(periodSelection);\n\t\t\t\t}\n\t\t\t\tif (listener.type === \"all\") {\n\t\t\t\t\tlistener.listener({\n\t\t\t\t\t\torgUnitSelection,\n\t\t\t\t\t\tperiodSelection,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tupdatePeriodSelection(periodSelection: PeriodSelection) {\n\t\t\tthis.periodSelection = periodSelection;\n\t\t\tfor (const listener of this.listeners) {\n\t\t\t\tif (listener.type === \"period\") {\n\t\t\t\t\tlistener.listener(periodSelection);\n\t\t\t\t}\n\t\t\t\tif (listener.type === \"all\") {\n\t\t\t\t\tlistener.listener({\n\t\t\t\t\t\torgUnitSelection: this.orgUnitSelection,\n\t\t\t\t\t\tperiodSelection,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tupdateOrgUnitSelection(orgUnitSelection: OrgUnitSelection) {\n\t\t\tthis.orgUnitSelection = orgUnitSelection;\n\t\t\tfor (const listener of this.listeners) {\n\t\t\t\tif (listener.type === \"orgUnit\") {\n\t\t\t\t\tlistener.listener(orgUnitSelection);\n\t\t\t\t}\n\t\t\t\tif (listener.type === \"all\") {\n\t\t\t\t\tlistener.listener({\n\t\t\t\t\t\torgUnitSelection: orgUnitSelection,\n\t\t\t\t\t\tperiodSelection: this.periodSelection,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t};\n}\n\nexport function useUpdateDimensionState(type: \"orgUnit\" | \"period\" | \"all\") {\n\tconst dimensionEngine = useScorecardDimensionStateEngine();\n\treturn (value: OrgUnitSelection | PeriodSelection | DimensionState) => {\n\t\tswitch (type) {\n\t\t\tcase \"orgUnit\":\n\t\t\t\tdimensionEngine.updateOrgUnitSelection(\n\t\t\t\t\tvalue as OrgUnitSelection,\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase \"period\":\n\t\t\t\tdimensionEngine.updatePeriodSelection(value as PeriodSelection);\n\t\t\t\tbreak;\n\t\t\tcase \"all\":\n\t\t\t\tdimensionEngine.update(value as DimensionState);\n\t\t}\n\t};\n}\n\nexport function usePeriodSelectionValue() {\n\tconst dimensionEngine = useScorecardDimensionStateEngine();\n\tconst [periodSelection, setPeriodSelection] = useState<PeriodSelection>(\n\t\tdimensionEngine.periodSelection,\n\t);\n\n\tuseEffect(() => {\n\t\tconst unsubscribe = dimensionEngine.addListener({\n\t\t\ttype: \"period\",\n\t\t\tlistener: (periodSelection) => {\n\t\t\t\tsetPeriodSelection(periodSelection);\n\t\t\t},\n\t\t});\n\n\t\treturn () => {\n\t\t\tunsubscribe();\n\t\t};\n\t}, []);\n\n\treturn periodSelection;\n}\n\nexport function useHasOnePeriod() {\n\tconst scorecardMeta = useScorecardMeta();\n\tconst periodSelection = usePeriodSelectionValue();\n\tif (scorecardMeta) {\n\t\treturn scorecardMeta.periods.length === 1;\n\t}\n\treturn periodSelection.periods.length === 1;\n}\n\nexport function useOrgUnitSelectionValue() {\n\tconst dimensionEngine = useScorecardDimensionStateEngine();\n\tconst [orgUnitSelection, setOrgUnitSelection] = useState<OrgUnitSelection>(\n\t\tdimensionEngine.orgUnitSelection,\n\t);\n\n\tuseEffect(() => {\n\t\tconst unsubscribe = dimensionEngine.addListener({\n\t\t\ttype: \"orgUnit\",\n\t\t\tlistener: (periodSelection) => {\n\t\t\t\tsetOrgUnitSelection(periodSelection);\n\t\t\t},\n\t\t});\n\n\t\treturn () => {\n\t\t\tunsubscribe();\n\t\t};\n\t}, []);\n\n\treturn orgUnitSelection;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/legends.ts"],"names":[],"mappings":";;AAWA,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/legends.ts"],"names":[],"mappings":"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","file":"legends.js","sourcesContent":["import type {\n\tLegendDefinition,\n\tOrgUnitLevelLegend,\n\tScorecardConfig,\n\tScorecardDataSource,\n\tScorecardLegend,\n\tSpecificTarget,\n} from \"../schemas/config\";\nimport { find, head, isEmpty } from \"lodash\";\nimport type { ItemMeta } from \"../hooks/metadata\";\n\nfunction findLegend({\n\tmax,\n\tlegendDefinitions,\n\tvalue,\n\tlegends,\n}: {\n\tmax: number;\n\tlegendDefinitions: LegendDefinition[];\n\tlegends: ScorecardLegend[];\n\tvalue?: number;\n}): LegendDefinition | undefined {\n\tif (!value) {\n\t\treturn find(legendDefinitions, { id: \"No Data\" });\n\t}\n\tconst numericValue = value;\n\tif (numericValue > max) {\n\t\treturn find(legendDefinitions, { id: \"N/A\" });\n\t}\n\tif (isNaN(numericValue)) {\n\t\treturn find(legendDefinitions, { id: \"No Data\" });\n\t}\n\n\tconst { legendDefinitionId } =\n\t\tfind(legends, (legend) => {\n\t\t\tif (legend) {\n\t\t\t\tconst { startValue, endValue } = legend;\n\t\t\t\tif (+endValue === max) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t+startValue <= numericValue && +endValue >= numericValue\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn +startValue <= numericValue && +endValue > numericValue;\n\t\t\t}\n\t\t\treturn false;\n\t\t}) ?? {};\n\n\treturn find(legendDefinitions, [\"id\", legendDefinitionId]);\n}\n\nfunction getSpecificTargetLegends(specificTarget: SpecificTarget, id: string) {\n\tif (specificTarget.items.includes(id)) {\n\t\treturn specificTarget.legends;\n\t}\n}\n\nfunction getLegendByOrgUnitLevel({\n\torgUnit,\n\torgUnitLevels,\n\tlegends,\n}: {\n\torgUnit: ItemMeta & { hierarchy: string };\n\tlegends: Record<string, ScorecardLegend[]>;\n\torgUnitLevels: Array<{\n\t\tid: string;\n\t\tlevel: number;\n\t}>;\n}): ScorecardLegend[] {\n\tconst orgUnitLevel = orgUnitLevels.find(({ id, level }) => {\n\t\tconst ouLevel = orgUnit.hierarchy.split(\"/\").filter(Boolean).length;\n\t\treturn level === ouLevel;\n\t});\n\n\tif (!orgUnitLevel) {\n\t\tthrow new Error(\"Invalid orgUnitId\");\n\t}\n\n\treturn legends[orgUnitLevel.id];\n}\n\nexport function getLegend({\n\tdataSource,\n\tconfig,\n\tvalue,\n\tperiodId,\n\torgUnit,\n\torgUnitLevels,\n}: {\n\tdataSource: ScorecardDataSource;\n\tvalue?: number;\n\tconfig: ScorecardConfig;\n\tperiodId?: string;\n\torgUnit?: ItemMeta & { hierarchy: string };\n\torgUnitLevels?: Array<{\n\t\tid: string;\n\t\tlevel: number;\n\t}>;\n}) {\n\tlet legends: ScorecardLegend[] = [];\n\n\tif (periodId && orgUnit && orgUnitLevels) {\n\t\tif (!Array.isArray(dataSource.legends)) {\n\t\t\tlegends = getLegendByOrgUnitLevel({\n\t\t\t\torgUnit,\n\t\t\t\torgUnitLevels,\n\t\t\t\tlegends: dataSource.legends as OrgUnitLevelLegend,\n\t\t\t});\n\t\t} else {\n\t\t\tconst specificTargets = dataSource.specificTargets;\n\t\t\tif (!isEmpty(specificTargets)) {\n\t\t\t\tconst specificTarget = head(specificTargets)!;\n\t\t\t\tswitch (specificTarget.type) {\n\t\t\t\t\tcase \"periods\":\n\t\t\t\t\t\tconst targetLegends = getSpecificTargetLegends(\n\t\t\t\t\t\t\tspecificTarget,\n\t\t\t\t\t\t\tperiodId,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tlegends = targetLegends ?? dataSource.legends;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"orgUnit\":\n\t\t\t\t\t\tconst targetOrgUnitLegends = getSpecificTargetLegends(\n\t\t\t\t\t\t\tspecificTarget,\n\t\t\t\t\t\t\torgUnit.uid,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tlegends = targetOrgUnitLegends ?? dataSource.legends;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tlegends = dataSource.legends;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tlegends = dataSource.legends;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (Array.isArray(dataSource.legends)) {\n\t\t\tlegends = dataSource.legends;\n\t\t}\n\t}\n\n\treturn findLegend({\n\t\tlegends,\n\t\tvalue: value,\n\t\tmax: dataSource.weight,\n\t\tlegendDefinitions: config.legendDefinitions,\n\t});\n}\n\nexport function getTextColorFromBackgroundColor(background: string): string {\n\t// Remove the hash at the start if it's there\n\tbackground = background.replace(/^#/, \"\");\n\n\t// Convert hex to RGB\n\tlet r = parseInt(background.substring(0, 2), 16);\n\tlet g = parseInt(background.substring(2, 4), 16);\n\tlet b = parseInt(background.substring(4, 6), 16);\n\n\t// Calculate the YIQ value\n\tlet yiq = (r * 299 + g * 587 + b * 114) / 1000;\n\n\t// Return black for light backgrounds and white for dark backgrounds\n\treturn yiq >= 128 ? \"#000000\" : \"#FFFFFF\";\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/orgUnits.ts"],"names":[],"mappings":"AAGO,SAAS,wBACf,
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/orgUnits.ts"],"names":[],"mappings":"AAGO,SAAS,wBACf,gBAAA,EACW;AACX,EAAA,MAAM;AAAA,IACL,WAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAA;AAAA,IACA,aAAA;AAAA,IACA,MAAA;AAAA,IACA;AAAA,GACD,GAAI,oBAAoB,EAAC;AACzB,EAAA,MAAM,UAAU,EAAC;AAEjB,EAAA,IAAI,WAAA,EAAa;AAChB,IAAA,OAAA,CAAQ,KAAK,cAAc,CAAA;AAAA,EAC5B;AACA,EAAA,IAAI,WAAA,EAAa;AAChB,IAAA,OAAA,CAAQ,KAAK,uBAAuB,CAAA;AAAA,EACrC;AACA,EAAA,IAAI,aAAA,EAAe;AAClB,IAAA,OAAA,CAAQ,KAAK,4BAA4B,CAAA;AAAA,EAC1C;AAEA,EAAA,IAAI,QAAA,EAAU;AACb,IAAA,OAAA,CAAQ,IAAA,CAAK,GAAG,QAAA,CAAS,GAAA,CAAI,CAAC,OAAA,KAAY,OAAA,CAAQ,EAAE,CAAC,CAAA;AAAA,EACtD;AACA,EAAA,IAAI,MAAA,EAAQ;AACX,IAAA,OAAA,CAAQ,IAAA,CAAK,GAAG,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,KAAU,CAAA,SAAA,EAAY,KAAK,CAAA,CAAE,CAAC,CAAA;AAAA,EAC3D;AACA,EAAA,IAAI,MAAA,EAAQ;AACX,IAAA,OAAA,CAAQ,IAAA,CAAK,GAAG,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,KAAU,CAAA,MAAA,EAAS,KAAK,CAAA,CAAE,CAAC,CAAA;AAAA,EACxD;AACA,EAAA,OAAO,OAAA;AACR;AAEO,SAAS,gBAAgB,OAAA,EAA2C;AAC1E,EAAA,OAAO,QAAQ,SAAA,CAAU,KAAA,CAAM,GAAG,CAAA,CAAE,MAAA,CAAO,OAAO,CAAA,CAAE,MAAA;AACrD","file":"orgUnits.js","sourcesContent":["import type { OrgUnitSelection } from \"../schemas/config\";\nimport type { ItemMeta } from \"../hooks/metadata\";\n\nexport function getOrgUnitsForAnalytics(\n\torgUnitSelection: OrgUnitSelection,\n): string[] {\n\tconst {\n\t\tuserOrgUnit,\n\t\torgUnits,\n\t\tuserSubUnit,\n\t\tuserSubX2Unit,\n\t\tlevels,\n\t\tgroups,\n\t} = orgUnitSelection ?? {};\n\tconst results = [];\n\n\tif (userOrgUnit) {\n\t\tresults.push(\"USER_ORGUNIT\");\n\t}\n\tif (userSubUnit) {\n\t\tresults.push(\"USER_ORGUNIT_CHILDREN\");\n\t}\n\tif (userSubX2Unit) {\n\t\tresults.push(\"USER_ORGUNIT_GRANDCHILDREN\");\n\t}\n\n\tif (orgUnits) {\n\t\tresults.push(...orgUnits.map((orgUnit) => orgUnit.id));\n\t}\n\tif (groups) {\n\t\tresults.push(...groups.map((group) => `OU_GROUP-${group}`));\n\t}\n\tif (levels) {\n\t\tresults.push(...levels.map((level) => `LEVEL-${level}`));\n\t}\n\treturn results;\n}\n\nexport function getOrgUnitLevel(orgUnit: ItemMeta & { hierarchy: string }) {\n\treturn orgUnit.hierarchy.split(\"/\").filter(Boolean).length;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/state.ts"],"names":[],"mappings":"AAEO,SAAS,yBAAA,CACf,QACA,
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/state.ts"],"names":[],"mappings":"AAEO,SAAS,yBAAA,CACf,QACA,OAAA,EACiB;AACjB,EAAA,OAAO;AAAA,IACN,iBAAiB,MAAA,CAAO,eAAA;AAAA,IACxB,kBAAkB,MAAA,CAAO,gBAAA;AAAA,IACzB,SAAS,MAAA,CAAO,OAAA;AAAA,IAChB,MAAA,EAAQ,SAAS,MAAA,IAAU,KAAA;AAAA,IAC3B,YAAA,EAAc,MAAA,CAAO,eAAA,CAAgB,OAAA,CAAQ,MAAA,KAAW;AAAA,GACzD;AACD","file":"state.js","sourcesContent":["import type { ScorecardConfig, ScorecardState } from \"../schemas/config\";\n\nexport function getInitialStateFromConfig(\n\tconfig: ScorecardConfig,\n\toptions?: { nested: boolean },\n): ScorecardState {\n\treturn {\n\t\tperiodSelection: config.periodSelection,\n\t\torgUnitSelection: config.orgUnitSelection,\n\t\toptions: config.options,\n\t\tnested: options?.nested ?? false,\n\t\thasOnePeriod: config.periodSelection.periods.length === 1,\n\t};\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/viewState.ts"],"names":["value"],"mappings":";;;;AAgBO,SAAS,+BACf,
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/viewState.ts"],"names":["value"],"mappings":"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","file":"viewState.js","sourcesContent":["import type { ScorecardViewOptions } from \"../schemas/config\";\nimport { get, set } from \"lodash\";\nimport { useScorecardViewStateEngine } from \"../components\";\nimport { useEffect, useState } from \"react\";\n\nexport type ViewOptionListener = {\n\tkey: keyof ScorecardViewOptions;\n\tlistener: (\n\t\tvalue?: ScorecardViewOptions[keyof ScorecardViewOptions],\n\t) => void;\n};\n\nexport type ScorecardViewStateEngine = ReturnType<\n\ttypeof createScorecardViewStateEngine\n>;\n\nexport function createScorecardViewStateEngine(\n\tdefaultOptions: ScorecardViewOptions,\n) {\n\treturn {\n\t\toptions: defaultOptions as ScorecardViewOptions,\n\t\tlisteners: [] as ViewOptionListener[],\n\t\toptionsListeners: [] as Array<(options: ScorecardViewOptions) => void>,\n\t\tupdateOption(\n\t\t\tkey: keyof ScorecardViewOptions,\n\t\t\tvalue: ScorecardViewOptions[keyof ScorecardViewOptions],\n\t\t) {\n\t\t\tset(this.options, key, value);\n\t\t\tconst listeners: ViewOptionListener[] = this.listeners.filter(\n\t\t\t\t(listener: ViewOptionListener) => listener.key === key,\n\t\t\t);\n\t\t\tfor (const listener of listeners) {\n\t\t\t\tlistener.listener(value);\n\t\t\t}\n\t\t\tfor (const listener of this.optionsListeners) {\n\t\t\t\tlistener(this.options);\n\t\t\t}\n\t\t},\n\t\tupdateOptions(options: ScorecardViewOptions) {\n\t\t\tthis.options = {\n\t\t\t\t...this.options,\n\t\t\t\t...options,\n\t\t\t};\n\t\t\tfor (const listener of this.listeners) {\n\t\t\t\tlistener.listener(options[listener.key]);\n\t\t\t}\n\t\t\tfor (const listener of this.optionsListeners) {\n\t\t\t\tlistener(this.options);\n\t\t\t}\n\t\t},\n\t\taddOptionListener(listener: (options: ScorecardViewOptions) => void) {\n\t\t\tthis.optionsListeners.push(listener);\n\n\t\t\treturn () => {\n\t\t\t\tthis.optionsListeners = this.optionsListeners.filter(\n\t\t\t\t\t(l: (options: ScorecardViewOptions) => void) =>\n\t\t\t\t\t\tl !== listener,\n\t\t\t\t);\n\t\t\t};\n\t\t},\n\t\taddListener(listener: ViewOptionListener) {\n\t\t\tthis.listeners.push(listener);\n\t\t\treturn () => {\n\t\t\t\tthis.listeners = this.listeners.filter(\n\t\t\t\t\t(l: ViewOptionListener) => l !== listener,\n\t\t\t\t);\n\t\t\t};\n\t\t},\n\t\tremoveListener(listener: ViewOptionListener) {\n\t\t\tthis.listeners = this.listeners.filter(\n\t\t\t\t(l: ViewOptionListener) => listener !== l,\n\t\t\t);\n\t\t},\n\t};\n}\n\nexport function useScorecardViewStateValue<\n\tValueType extends ScorecardViewOptions[keyof ScorecardViewOptions],\n>(key: keyof ScorecardViewOptions) {\n\tconst viewEngine = useScorecardViewStateEngine();\n\tconst [value, setValue] = useState<ValueType>(\n\t\tget(viewEngine.options, key) as ValueType,\n\t);\n\tuseEffect(() => {\n\t\tconst unsubscribe = viewEngine.addListener({\n\t\t\tkey,\n\t\t\tlistener(value) {\n\t\t\t\tsetValue(value as ValueType);\n\t\t\t},\n\t\t});\n\t\treturn () => {\n\t\t\tunsubscribe();\n\t\t};\n\t}, []);\n\treturn value;\n}\n\nexport function useScorecardViewOptions() {\n\tconst viewEngine = useScorecardViewStateEngine();\n\tconst [options, setOptions] = useState<ScorecardViewOptions>(\n\t\tviewEngine.options,\n\t);\n\n\tuseEffect(() => {\n\t\tconst unsubscribe = viewEngine.addOptionListener(setOptions);\n\n\t\treturn () => {\n\t\t\tunsubscribe();\n\t\t};\n\t}, []);\n\n\treturn options;\n}\n\nexport function useUpdateScorecardViewState(key: keyof ScorecardViewOptions) {\n\tconst viewEngine = useScorecardViewStateEngine();\n\treturn (value: ScorecardViewOptions[keyof ScorecardViewOptions]) => {\n\t\tviewEngine.updateOption(key, value);\n\t};\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/cellData.ts"],"names":["useScorecardConfig","useScorecardMeta","useMemo","getLegend"],"mappings":";;;;;;AAMO,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/cellData.ts"],"names":["useScorecardConfig","useScorecardMeta","useMemo","getLegend"],"mappings":";;;;;;AAMO,SAAS,WAAA,CAAY;AAAA,EAC3B,UAAA;AAAA,EACA,OAAA;AAAA,EACA;AACD,CAAA,EAIG;AACF,EAAA,MAAM,SAASA,6BAAA,EAAmB;AAClC,EAAA,MAAM,OAAOC,2BAAA,EAAiB;AAE9B,EAAA,MAAM,YAAA,GAAe,YAAY,IAAA,CAAK,OAAA;AAEtC,EAAA,MAAM,gBAAA,GAAmBC,cAAQ,MAAM;AACtC,IAAA,IAAI,CAAC,UAAA,EAAY;AACjB,IAAA,OAAOC,iBAAA,CAAU;AAAA,MAChB,UAAA;AAAA,MACA,KAAA,EAAO,YAAA;AAAA,MACP,eAAe,IAAA,CAAM,aAAA;AAAA,MACrB,MAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA,EAAU;AAAA,KACV,CAAA;AAAA,EACF,GAAG,CAAC,UAAA,EAAY,cAAc,IAAA,EAAM,OAAA,EAAS,MAAM,CAAC,CAAA;AAEpD,EAAA,OAAO;AAAA,IACN,YAAA;AAAA,IACA;AAAA,GACD;AACD","file":"cellData.js","sourcesContent":["import type { ScorecardCellData } from \"../schemas/config\";\nimport { useScorecardConfig, useScorecardMeta } from \"../components\";\nimport { useMemo } from \"react\";\nimport { getLegend } from \"../utils/legends\";\nimport type { ItemMeta } from \"./metadata\";\n\nexport function useCellData({\n\tdataSource,\n\torgUnit,\n\tperiod,\n}: {\n\tdataSource?: ScorecardCellData;\n\torgUnit: ItemMeta & { hierarchy: string };\n\tperiod: string;\n}) {\n\tconst config = useScorecardConfig();\n\tconst meta = useScorecardMeta();\n\n\tconst currentValue = dataSource?.data.current;\n\n\tconst legendDefinition = useMemo(() => {\n\t\tif (!dataSource) return;\n\t\treturn getLegend({\n\t\t\tdataSource,\n\t\t\tvalue: currentValue,\n\t\t\torgUnitLevels: meta!.orgUnitLevels,\n\t\t\tconfig: config!,\n\t\t\torgUnit,\n\t\t\tperiodId: period,\n\t\t});\n\t}, [dataSource, currentValue, meta, orgUnit, period]);\n\n\treturn {\n\t\tcurrentValue,\n\t\tlegendDefinition,\n\t};\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/columns.ts"],"names":["createColumnHelper","useScorecardViewStateValue","useLowestOrgUnitLevel","useMemo","getOrgUnitLevel","ExpandCell","NumberCell","LabelCell","MetaFooterCell","useScorecardConfig","useScorecardData","useScorecardMeta","useCalendar","usePeriodSelectionValue","useOrgUnitSelectionValue","columns","MetaHeaderCell","getOrgUnitColumnHeaders","getDataColumnHeaders","getAverageColumn"],"mappings":"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","file":"columns.js","sourcesContent":["import { type ColumnDef, createColumnHelper } from \"@tanstack/react-table\";\nimport {\n\tuseScorecardConfig,\n\tuseScorecardData,\n\tuseScorecardMeta,\n} from \"../components\";\nimport { useMemo } from \"react\";\nimport {\n\ttype ScorecardTableCellConfig,\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 { 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\";\nimport { ExpandCell } from \"../components/ScorecardTable/components/TableHeader/components/ExpandCell\";\nimport { useScorecardViewStateValue } from \"../utils/viewState\";\nimport {\n\tuseOrgUnitSelectionValue,\n\tusePeriodSelectionValue,\n} from \"../utils/dimensionState\";\n\nconst columnHelper = createColumnHelper<ScorecardTableData>();\n\nexport function useMetaColumns() {\n\tconst showDataInRows =\n\t\tuseScorecardViewStateValue<boolean>(\"showDataInRows\");\n\n\tconst disableExpanding =\n\t\tuseScorecardViewStateValue<boolean>(\"disableExpanding\");\n\n\tconst lowestLevel = useLowestOrgUnitLevel();\n\n\treturn useMemo(() => {\n\t\tconst metaColumns: ColumnDef<ScorecardTableData, any>[] = [\n\t\t\tcolumnHelper.accessor(\n\t\t\t\t(rowData) => {\n\t\t\t\t\tif (disableExpanding) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (showDataInRows) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!lowestLevel) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst orgUnit = rowData.orgUnit;\n\t\t\t\t\tif (!orgUnit) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tconst ouLevel = getOrgUnitLevel(orgUnit);\n\n\t\t\t\t\treturn ouLevel !== lowestLevel.level;\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"expand\",\n\t\t\t\t\theader: () => null,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tisMeta: true,\n\t\t\t\t\t\tfixed: true,\n\t\t\t\t\t\tlabel: \"\",\n\t\t\t\t\t},\n\t\t\t\t\tenableHiding: true,\n\t\t\t\t\tenableColumnFilter: false,\n\t\t\t\t\tcell: ExpandCell,\n\t\t\t\t\tsize: 48,\n\t\t\t\t\tfooter: () => null,\n\t\t\t\t},\n\t\t\t),\n\t\t\tcolumnHelper.accessor(\n\t\t\t\t(_, index) => {\n\t\t\t\t\treturn index + 1;\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"count\",\n\t\t\t\t\theader: () => null,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tisMeta: true,\n\t\t\t\t\t\tfixed: true,\n\t\t\t\t\t\tlabel: \"\",\n\t\t\t\t\t},\n\t\t\t\t\tenableHiding: true,\n\t\t\t\t\tenableColumnFilter: false,\n\t\t\t\t\tcell: NumberCell,\n\t\t\t\t\tsize: 48,\n\t\t\t\t\tfooter: () => null,\n\t\t\t\t},\n\t\t\t),\n\t\t];\n\n\t\tif (showDataInRows) {\n\t\t\tmetaColumns.push(\n\t\t\t\tcolumnHelper.accessor(\n\t\t\t\t\t(rowData) => {\n\t\t\t\t\t\treturn rowData;\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: () => null,\n\t\t\t\t\t\tid: \"dataItems\",\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tfilterable: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tenableColumnFilter: true,\n\t\t\t\t\t\tfilterFn: (row, columnId, filterValue) => {\n\t\t\t\t\t\t\treturn row\n\t\t\t\t\t\t\t\t.getValue<{ label: string }>(columnId)\n\t\t\t\t\t\t\t\t?.label.toLowerCase()\n\t\t\t\t\t\t\t\t.includes(filterValue.toLowerCase());\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcell: LabelCell,\n\t\t\t\t\t\tsize: 300,\n\t\t\t\t\t\tfooter: MetaFooterCell,\n\t\t\t\t\t},\n\t\t\t\t),\n\t\t\t);\n\t\t} else {\n\t\t\tmetaColumns.push(\n\t\t\t\tcolumnHelper.accessor(\n\t\t\t\t\t(rowData) => {\n\t\t\t\t\t\treturn rowData;\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: () => null,\n\t\t\t\t\t\tid: \"orgUnits\",\n\t\t\t\t\t\tenableColumnFilter: true,\n\t\t\t\t\t\tfilterFn: (row, columnId, filterValue) => {\n\t\t\t\t\t\t\treturn row\n\t\t\t\t\t\t\t\t.getValue<{ label: string }>(columnId)\n\t\t\t\t\t\t\t\t?.label.toLowerCase()\n\t\t\t\t\t\t\t\t.includes(filterValue.toLowerCase());\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tisMeta: true,\n\t\t\t\t\t\t\tfixed: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcell: LabelCell,\n\t\t\t\t\t\tsize: 300,\n\t\t\t\t\t\tfooter: MetaFooterCell,\n\t\t\t\t\t},\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\n\t\treturn metaColumns;\n\t}, [showDataInRows, disableExpanding]);\n}\n\nexport function useTableColumns(): ColumnDef<\n\tScorecardTableData,\n\tScorecardTableCellConfig\n>[] {\n\tconst config = useScorecardConfig();\n\tconst { data: dataEngine } = useScorecardData();\n\tconst meta = useScorecardMeta();\n\tconst metaColumns = useMetaColumns();\n\tconst calendar = useCalendar();\n\tconst showDataInRows =\n\t\tuseScorecardViewStateValue<boolean>(\"showDataInRows\");\n\tconst periodSelection = usePeriodSelectionValue();\n\tconst orgUnitSelection = useOrgUnitSelectionValue();\n\n\tif (!config || !meta) {\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 (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\tdataEngine,\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\tdataEngine,\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}, [showDataInRows, periodSelection, orgUnitSelection]);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/columns.ts"],"names":["createColumnHelper","useScorecardViewStateValue","useLowestOrgUnitLevel","useMemo","getOrgUnitLevel","ExpandCell","NumberCell","LabelCell","MetaFooterCell","useScorecardConfig","useScorecardData","useScorecardMeta","useCalendar","usePeriodSelectionValue","useOrgUnitSelectionValue","columns","MetaHeaderCell","getOrgUnitColumnHeaders","getDataColumnHeaders","getAverageColumn"],"mappings":"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","file":"columns.js","sourcesContent":["import { type ColumnDef, createColumnHelper } from \"@tanstack/react-table\";\nimport {\n\tuseScorecardConfig,\n\tuseScorecardData,\n\tuseScorecardMeta,\n} from \"../components\";\nimport { useMemo } from \"react\";\nimport {\n\ttype ScorecardTableCellConfig,\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 { 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\";\nimport { ExpandCell } from \"../components/ScorecardTable/components/TableHeader/components/ExpandCell\";\nimport { useScorecardViewStateValue } from \"../utils/viewState\";\nimport {\n\tuseOrgUnitSelectionValue,\n\tusePeriodSelectionValue,\n} from \"../utils/dimensionState\";\n\nconst columnHelper = createColumnHelper<ScorecardTableData>();\n\nexport function useMetaColumns() {\n\tconst showDataInRows =\n\t\tuseScorecardViewStateValue<boolean>(\"showDataInRows\");\n\n\tconst disableExpanding =\n\t\tuseScorecardViewStateValue<boolean>(\"disableExpanding\");\n\n\tconst lowestLevel = useLowestOrgUnitLevel();\n\n\treturn useMemo(() => {\n\t\tconst metaColumns: ColumnDef<ScorecardTableData, any>[] = [\n\t\t\tcolumnHelper.accessor(\n\t\t\t\t(rowData) => {\n\t\t\t\t\tif (disableExpanding) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (showDataInRows) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!lowestLevel) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst orgUnit = rowData.orgUnit;\n\t\t\t\t\tif (!orgUnit) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tconst ouLevel = getOrgUnitLevel(orgUnit);\n\n\t\t\t\t\treturn ouLevel !== lowestLevel.level;\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"expand\",\n\t\t\t\t\theader: () => null,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tisMeta: true,\n\t\t\t\t\t\tfixed: true,\n\t\t\t\t\t\tlabel: \"\",\n\t\t\t\t\t},\n\t\t\t\t\tenableHiding: true,\n\t\t\t\t\tenableColumnFilter: false,\n\t\t\t\t\tcell: ExpandCell,\n\t\t\t\t\tsize: 48,\n\t\t\t\t\tfooter: () => null,\n\t\t\t\t},\n\t\t\t),\n\t\t\tcolumnHelper.accessor(\n\t\t\t\t(_, index) => {\n\t\t\t\t\treturn index + 1;\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"count\",\n\t\t\t\t\theader: () => null,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tisMeta: true,\n\t\t\t\t\t\tfixed: true,\n\t\t\t\t\t\tlabel: \"\",\n\t\t\t\t\t},\n\t\t\t\t\tenableHiding: true,\n\t\t\t\t\tenableColumnFilter: false,\n\t\t\t\t\tcell: NumberCell,\n\t\t\t\t\tsize: 48,\n\t\t\t\t\tfooter: () => null,\n\t\t\t\t},\n\t\t\t),\n\t\t];\n\n\t\tif (showDataInRows) {\n\t\t\tmetaColumns.push(\n\t\t\t\tcolumnHelper.accessor(\n\t\t\t\t\t(rowData) => {\n\t\t\t\t\t\treturn rowData;\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: () => null,\n\t\t\t\t\t\tid: \"dataItems\",\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tfilterable: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tenableColumnFilter: true,\n\t\t\t\t\t\tfilterFn: (row, columnId, filterValue) => {\n\t\t\t\t\t\t\treturn row\n\t\t\t\t\t\t\t\t.getValue<{ label: string }>(columnId)\n\t\t\t\t\t\t\t\t?.label.toLowerCase()\n\t\t\t\t\t\t\t\t.includes(filterValue.toLowerCase());\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcell: LabelCell,\n\t\t\t\t\t\tsize: 300,\n\t\t\t\t\t\tfooter: MetaFooterCell,\n\t\t\t\t\t},\n\t\t\t\t),\n\t\t\t);\n\t\t} else {\n\t\t\tmetaColumns.push(\n\t\t\t\tcolumnHelper.accessor(\n\t\t\t\t\t(rowData) => {\n\t\t\t\t\t\treturn rowData;\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: () => null,\n\t\t\t\t\t\tid: \"orgUnits\",\n\t\t\t\t\t\tenableColumnFilter: true,\n\t\t\t\t\t\tfilterFn: (row, columnId, filterValue) => {\n\t\t\t\t\t\t\treturn row\n\t\t\t\t\t\t\t\t.getValue<{ label: string }>(columnId)\n\t\t\t\t\t\t\t\t?.label.toLowerCase()\n\t\t\t\t\t\t\t\t.includes(filterValue.toLowerCase());\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tisMeta: true,\n\t\t\t\t\t\t\tfixed: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcell: LabelCell,\n\t\t\t\t\t\tsize: 300,\n\t\t\t\t\t\tfooter: MetaFooterCell,\n\t\t\t\t\t},\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\n\t\treturn metaColumns;\n\t}, [showDataInRows, disableExpanding]);\n}\n\nexport function useTableColumns(): ColumnDef<\n\tScorecardTableData,\n\tScorecardTableCellConfig\n>[] {\n\tconst config = useScorecardConfig();\n\tconst { data: dataEngine } = useScorecardData();\n\tconst meta = useScorecardMeta();\n\tconst metaColumns = useMetaColumns();\n\tconst calendar = useCalendar();\n\tconst showDataInRows =\n\t\tuseScorecardViewStateValue<boolean>(\"showDataInRows\");\n\tconst periodSelection = usePeriodSelectionValue();\n\tconst orgUnitSelection = useOrgUnitSelectionValue();\n\n\tif (!config || !meta) {\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 (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\tdataEngine,\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\tdataEngine,\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}, [showDataInRows, periodSelection, orgUnitSelection]);\n}\n"]}
|
package/dist/hooks/data.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/data.ts"],"names":["useDataEngine","useAlert","sanitizeAnalyticsData","useCallback","FetchError","i18n","useScorecardConfig","useScorecardMeta","useCalendar","useMemo","getDimensionsFromMeta","getAdjacentFixedPeriods","createFixedPeriodFromPeriodId","uniq","useEffect"],"mappings":";;;;;;;;;;;;;;;;AAcA,MAAM,
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/data.ts"],"names":["useDataEngine","useAlert","sanitizeAnalyticsData","useCallback","FetchError","i18n","useScorecardConfig","useScorecardMeta","useCalendar","useMemo","getDimensionsFromMeta","getAdjacentFixedPeriods","createFixedPeriodFromPeriodId","uniq","useEffect"],"mappings":"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","file":"data.js","sourcesContent":["import { useScorecardConfig, useScorecardMeta } from \"../components\";\nimport { useCallback, useEffect, useMemo } from \"react\";\nimport { getDimensionsFromMeta } from \"../utils/analytics\";\nimport { FetchError, useAlert, useDataEngine } from \"@dhis2/app-runtime\";\nimport {\n\tcreateFixedPeriodFromPeriodId,\n\tgetAdjacentFixedPeriods,\n} from \"@dhis2/multi-calendar-dates\";\nimport { uniq } from \"lodash\";\nimport { useCalendar } from \"./metadata\";\nimport type { ScorecardDataEngine } from \"../utils/dataEngine\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { sanitizeAnalyticsData } from \"../utils/data\";\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(dataEngine: ScorecardDataEngine) {\n\tconst engine = useDataEngine();\n\tconst { show, hide: hideAlert } = useAlert(\n\t\t({ message }) => message,\n\t\t({ type, actions }) => ({ ...type, actions, duration: 3000 }),\n\t);\n\tconst getTableData = (rawAnalyticsData: ScorecardDataQueryResponse) => {\n\t\treturn sanitizeAnalyticsData(rawAnalyticsData);\n\t};\n\tconst fetchData = useCallback(\n\t\tasync ({\n\t\t\tperiods,\n\t\t\tdataItems,\n\t\t\torgUnits,\n\t\t}: {\n\t\t\tperiods: string[];\n\t\t\torgUnits: string[];\n\t\t\tdataItems: string[];\n\t\t}) => {\n\t\t\ttry {\n\t\t\t\tconst rawAnalyticsData = (await engine.query(query, {\n\t\t\t\t\tvariables: {\n\t\t\t\t\t\tperiods,\n\t\t\t\t\t\tdataItems,\n\t\t\t\t\t\torgUnits,\n\t\t\t\t\t},\n\t\t\t\t})) as unknown as ScorecardDataQueryResponse;\n\t\t\t\tif (!rawAnalyticsData) return [];\n\t\t\t\treturn getTableData(rawAnalyticsData);\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof Error || error instanceof FetchError) {\n\t\t\t\t\tshow({\n\t\t\t\t\t\tmessage: `${i18n.t(\"Error getting scorecard data\")}: ${\n\t\t\t\t\t\t\terror.message\n\t\t\t\t\t\t}`,\n\t\t\t\t\t\ttype: { critical: true },\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error(error);\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t},\n\t\t[engine, show, hideAlert],\n\t);\n\tconst config = useScorecardConfig();\n\tconst meta = useScorecardMeta();\n\tconst calendar = useCalendar();\n\tif (!config || !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 } = useMemo(\n\t\t() =>\n\t\t\tgetDimensionsFromMeta({\n\t\t\t\tmeta,\n\t\t\t}),\n\t\t[meta],\n\t);\n\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\tuseEffect(() => {\n\t\tdataEngine.initialize(fetchData, {\n\t\t\tdimensions: {\n\t\t\t\tdataItems: dataItemsIds,\n\t\t\t\tperiods: analyticsPeriod,\n\t\t\t\torgUnits: orgUnitsIds,\n\t\t\t},\n\t\t});\n\t}, [dataEngine, dataItemsIds, analyticsPeriod, orgUnitsIds]);\n\n\treturn {};\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/dataItem.ts"],"names":["useScorecardMeta"],"mappings":";;;;AAIO,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/dataItem.ts"],"names":["useScorecardMeta"],"mappings":";;;;AAIO,SAAS,qBAAA,GAAwB;AACvC,EAAA,MAAM,OAAOA,2BAAA,EAAiB;AAC9B,EAAA,OAAO,CAAC,UAAA,KAAoC;AAC3C,IAAA,IAAI,WAAW,KAAA,EAAO;AACrB,MAAA,OAAO,UAAA,CAAW,KAAA;AAAA,IACnB;AACA,IAAA,MAAM,QAAA,GAAiC,MAAM,SAAA,CAAU,IAAA;AAAA,MACtD,CAAC,IAAA,KAAS,IAAA,CAAK,GAAA,KAAQ,UAAA,CAAW;AAAA,KACnC;AAEA,IAAA,OAAO,UAAU,IAAA,IAAQ,EAAA;AAAA,EAC1B,CAAA;AACD","file":"dataItem.js","sourcesContent":["import { useScorecardMeta } from \"../components\";\nimport type { ScorecardDataSource } from \"../schemas/config\";\nimport type { ItemMeta } from \"./metadata\";\n\nexport function useGetDataSourceLabel() {\n\tconst meta = useScorecardMeta();\n\treturn (dataSource: ScorecardDataSource) => {\n\t\tif (dataSource.label) {\n\t\t\treturn dataSource.label;\n\t\t}\n\t\tconst itemMeta: ItemMeta | undefined = meta?.dataItems.find(\n\t\t\t(item) => item.uid === dataSource.id,\n\t\t);\n\n\t\treturn itemMeta?.name ?? \"\";\n\t};\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/metadata.ts"],"names":["useScorecardConfig","useAlert","useOrgUnitSelectionValue","usePeriodSelectionValue","useMemo","getDimensions","useDataQuery","i18n","useEffect","useConfig"],"mappings":";;;;;;;;;;;;;AAWA,MAAM,
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/metadata.ts"],"names":["useScorecardConfig","useAlert","useOrgUnitSelectionValue","usePeriodSelectionValue","useMemo","getDimensions","useDataQuery","i18n","useEffect","useConfig"],"mappings":"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","file":"metadata.js","sourcesContent":["import { useScorecardConfig } from \"../components\";\nimport { useAlert, useConfig, useDataQuery } from \"@dhis2/app-runtime\";\nimport { useEffect, useMemo } from \"react\";\nimport { getDimensions } from \"../utils/analytics\";\nimport type { SupportedCalendar } from \"@dhis2/multi-calendar-dates/build/types/types\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport {\n\tuseOrgUnitSelectionValue,\n\tusePeriodSelectionValue,\n} from \"../utils/dimensionState\";\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\tdisplayName: string;\n\t\t}>;\n\t};\n};\n\nexport function useGetScorecardMeta() {\n\tconst config = useScorecardConfig();\n\n\tconst { show } = useAlert(\n\t\t({ message }) => message,\n\t\t({ type }) => ({ ...type, duration: 3000 }),\n\t);\n\n\tconst orgUnitSelection = useOrgUnitSelectionValue();\n\tconst periodSelection = usePeriodSelectionValue();\n\n\tconst { dataItemsIds, orgUnitsIds, periodsIds } = useMemo(\n\t\t() =>\n\t\t\tgetDimensions({\n\t\t\t\tconfig,\n\t\t\t\torgUnitSelection,\n\t\t\t\tperiodSelection,\n\t\t\t}),\n\t\t[config, orgUnitSelection, periodSelection],\n\t);\n\n\tconst { loading, data, refetch, called } = useDataQuery<MetaResponse>(\n\t\tquery,\n\t\t{\n\t\t\tvariables: {\n\t\t\t\tperiods: periodsIds,\n\t\t\t\torgUnits: orgUnitsIds,\n\t\t\t\tdataItems: dataItemsIds,\n\t\t\t},\n\t\t\tlazy: true,\n\t\t\tonError: (error) => {\n\t\t\t\tshow({\n\t\t\t\t\tmessage: `${i18n.t(\"Error getting scorecard data\")}: ${\n\t\t\t\t\t\terror.message\n\t\t\t\t\t}`,\n\t\t\t\t\ttype: { critical: true },\n\t\t\t\t});\n\t\t\t},\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 {\n\t\t\t\t\t\t...data?.meta?.metaData.items[dx],\n\t\t\t\t\t\tuid: dx,\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 orgUnitLevels = useMemo(\n\t\t() => data?.ouLevel?.organisationUnitLevels ?? [],\n\t\t[data?.ouLevel?.organisationUnitLevels],\n\t);\n\n\tuseEffect(() => {\n\t\trefetch({\n\t\t\tperiods: periodsIds,\n\t\t\torgUnits: orgUnitsIds,\n\t\t\tdataItems: dataItemsIds,\n\t\t});\n\t}, [periodsIds, orgUnitsIds, dataItemsIds]);\n\n\treturn {\n\t\tloading,\n\t\torgUnits,\n\t\tperiods,\n\t\tdataItems,\n\t\torgUnitLevels,\n\t\tcalled,\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"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/orgUnit.ts"],"names":["useScorecardMeta","useMemo","sortBy","last","useDataQuery","isEmpty","useUpdateEffect","useEffect"],"mappings":";;;;;;;;AAUO,SAAS,
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/orgUnit.ts"],"names":["useScorecardMeta","useMemo","sortBy","last","useDataQuery","isEmpty","useUpdateEffect","useEffect"],"mappings":";;;;;;;;AAUO,SAAS,qBAAA,GAAwB;AACvC,EAAA,MAAM,OAAOA,2BAAA,EAAiB;AAE9B,EAAA,OAAOC,cAAQ,MAAM;AACpB,IAAA,MAAM,sBAAsBC,aAAA,CAAO,IAAA,EAAM,aAAA,IAAiB,IAAI,OAAO,CAAA;AACrE,IAAA,OAAOC,YAAK,mBAAmB,CAAA;AAAA,EAChC,CAAA,EAAG,CAAC,IAAA,EAAM,aAAa,CAAC,CAAA;AACzB;AAEA,MAAM,YAAA,GAAoB;AAAA,EACzB,EAAA,EAAI;AAAA,IACH,QAAA,EAAU,CAAA,iBAAA,CAAA;AAAA,IACV,MAAA,EAAQ,CAAC,EAAE,GAAA,EAAI,KAAyB;AACvC,MAAA,OAAO;AAAA,QACN,MAAA,EAAQ,CAAA,OAAA,EAAU,GAAA,CAAI,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA,CAAA;AAAA,QAC/B,MAAA,EAAQ,CAAC,IAAA,EAAM,aAAA,EAAe,QAAQ,OAAO;AAAA,OAC9C;AAAA,IACD;AAAA;AAEF,CAAA;AAQO,SAAS,YAAY,UAAA,EAAuB;AAClD,EAAA,MAAM,EAAE,OAAA,EAAS,IAAA,EAAM,OAAA,EAAQ,GAAIC,uBAAA;AAAA,IAClC,YAAA;AAAA,IACA;AAAA,MACC,SAAA,EAAW;AAAA,QACV,GAAA,EAAK;AAAA,OACN;AAAA,MACA,IAAA,EAAMC,eAAQ,UAAU;AAAA;AACzB,GACD;AAEA,EAAAC,0BAAA,CAAgB,MAAM;AACrB,IAAA,IAAI,UAAA,EAAY;AACf,MAAA,OAAA,CAAQ,EAAE,GAAA,EAAK,UAAA,EAAY,CAAA,CAAE,KAAA,CAAM,QAAQ,KAAK,CAAA;AAAA,IACjD;AAAA,EACD,CAAA,EAAG,CAAC,OAAA,EAAS,UAAU,CAAC,CAAA;AAExB,EAAA,OAAO;AAAA,IACN,OAAA;AAAA,IACA,QAAA,EAAU,MAAM,EAAA,EAAI,iBAAA;AAAA,IACpB;AAAA,GAGD;AACD;AAEA,MAAM,iBAAA,GAAoB;AAAA,EACzB,KAAA,EAAO;AAAA,IACN,QAAA,EAAU,wBAAA;AAAA,IACV,MAAA,EAAQ,CAAC,EAAE,GAAA,EAAI,KAAW;AACzB,MAAA,OAAO;AAAA,QACN,MAAA,EAAQ,CAAC,IAAA,EAAM,aAAA,EAAe,OAAO,CAAA;AAAA,QACrC,QAAQ,CAAC,CAAA,OAAA,EAAU,IAAI,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA,CAAG;AAAA,OACpC;AAAA,IACD;AAAA;AAEF,CAAA;AAEO,SAAS,iBAAiB,UAAA,EAA8B;AAC9D,EAAA,MAAM,EAAE,OAAA,EAAS,IAAA,EAAM,OAAA,EAAQ,GAAIF,wBAEhC,iBAAA,EAAmB;AAAA,IACrB,SAAA,EAAW;AAAA,MACV,EAAA,EAAI;AAAA,KACL;AAAA,IACA,IAAA,EAAM;AAAA,GACN,CAAA;AAED,EAAAG,eAAA,CAAU,MAAM;AACf,IAAA,IAAI,CAACF,cAAA,CAAQ,UAAU,CAAA,EAAG;AACzB,MAAA,OAAA,CAAQ,EAAE,GAAA,EAAK,UAAA,EAAY,CAAA,CAAE,KAAA,CAAM,QAAQ,KAAK,CAAA;AAAA,IACjD;AAAA,EACD,CAAA,EAAG,CAAC,OAAA,EAAS,UAAU,CAAC,CAAA;AAExB,EAAA,OAAO;AAAA,IACN,OAAA;AAAA,IACA,MAAA,EAAQ,MAAM,KAAA,EAAO,sBAAA;AAAA,IACrB;AAAA,GAGD;AACD","file":"orgUnit.js","sourcesContent":["import { useScorecardMeta } from \"../components\";\nimport { useEffect, useMemo } from \"react\";\nimport { isEmpty, last, sortBy } from \"lodash\";\nimport type {\n\tOrganisationUnit,\n\tOrganisationUnitLevel,\n} from \"@hisptz/dhis2-utils\";\nimport { useDataQuery } from \"@dhis2/app-runtime\";\nimport { useUpdateEffect } from \"usehooks-ts\";\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\nconst orgUnitQuery: any = {\n\tou: {\n\t\tresource: `organisationUnits`,\n\t\tparams: ({ ids }: { ids: string[] }) => {\n\t\t\treturn {\n\t\t\t\tfilter: `id:in:[${ids.join(\",\")}]`,\n\t\t\t\tfields: [\"id\", \"displayName\", \"path\", \"level\"],\n\t\t\t};\n\t\t},\n\t},\n};\n\ntype OrgUnitResponse = {\n\tou: {\n\t\torganisationUnits: Array<OrganisationUnit>;\n\t};\n};\n\nexport function useOrgUnits(initialIds?: string[]) {\n\tconst { refetch, data, loading } = useDataQuery<OrgUnitResponse>(\n\t\torgUnitQuery,\n\t\t{\n\t\t\tvariables: {\n\t\t\t\tids: initialIds,\n\t\t\t},\n\t\t\tlazy: isEmpty(initialIds),\n\t\t},\n\t);\n\n\tuseUpdateEffect(() => {\n\t\tif (initialIds) {\n\t\t\trefetch({ ids: initialIds }).catch(console.error);\n\t\t}\n\t}, [refetch, initialIds]);\n\n\treturn {\n\t\tloading,\n\t\torgUnits: data?.ou?.organisationUnits,\n\t\trefetch: refetch as unknown as (\n\t\t\tvariables: Record<string, any>,\n\t\t) => OrgUnitResponse,\n\t};\n}\n\nconst orgUnitLevelQuery = {\n\tlevel: {\n\t\tresource: \"organisationUnitLevels\",\n\t\tparams: ({ ids }: any) => {\n\t\t\treturn {\n\t\t\t\tfields: [\"id\", \"displayName\", \"level\"],\n\t\t\t\tfilter: [`id:in:[${ids.join(\",\")}]`],\n\t\t\t};\n\t\t},\n\t},\n};\n\nexport function useOrgUnitLevels(initialIds?: string[] | null) {\n\tconst { refetch, data, loading } = useDataQuery<{\n\t\tlevel: { organisationUnitLevels: OrganisationUnitLevel[] };\n\t}>(orgUnitLevelQuery, {\n\t\tvariables: {\n\t\t\tid: initialIds,\n\t\t},\n\t\tlazy: true,\n\t});\n\n\tuseEffect(() => {\n\t\tif (!isEmpty(initialIds)) {\n\t\t\trefetch({ ids: initialIds }).catch(console.error);\n\t\t}\n\t}, [refetch, initialIds]);\n\n\treturn {\n\t\tloading,\n\t\tlevels: data?.level?.organisationUnitLevels,\n\t\trefetch: refetch as unknown as (variables: Record<string, any>) => {\n\t\t\tlevel: { organisationUnitLevels: OrganisationUnitLevel[] };\n\t\t},\n\t};\n}\n"]}
|
package/dist/hooks/table.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/table.ts"],"names":["meanBy","emptyRows","isEmpty","getAverageValue","useScorecardMeta","useScorecardData","useScorecardViewStateValue","useScorecardConfig","useState","useMemo","rows","getRowsFromMeta","useEffect","useCallback","useTableColumns","getCoreRowModel","getFilteredRowModel","getExpandedRowModel","getPaginationRowModel","getSortedRowModel"],"mappings":"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","file":"table.js","sourcesContent":["import {\n\ttype ColumnFiltersState,\n\ttype ExpandedState,\n\tgetCoreRowModel,\n\tgetExpandedRowModel,\n\tgetFilteredRowModel,\n\tgetPaginationRowModel,\n\tgetSortedRowModel,\n\ttype PaginationState,\n\ttype Row,\n\ttype SortingState,\n\ttype TableOptions,\n\ttype VisibilityState,\n} from \"@tanstack/react-table\";\nimport { useTableColumns } from \"./columns\";\nimport type {\n\tScorecardTableData,\n\tScorecardViewOptions,\n} from \"../schemas/config\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport {\n\ttype ScorecardMeta,\n\tuseScorecardConfig,\n\tuseScorecardData,\n\tuseScorecardMeta,\n} from \"../components\";\nimport { type AnalyticsData, getRowsFromMeta } from \"../utils/data\";\nimport { isEmpty, meanBy } from \"lodash\";\nimport type { ScorecardDataEngine } from \"../utils/dataEngine\";\nimport { getAverageValue } from \"../utils/columns\";\nimport { useScorecardViewStateValue } from \"../utils/viewState\";\n\nexport function getRowValues({\n\tdata,\n\tshowDataInRows,\n\trow,\n}: {\n\trow: ScorecardTableData;\n\tdata: AnalyticsData[];\n\tshowDataInRows: boolean;\n}): AnalyticsData[] {\n\treturn data.filter((datum) => {\n\t\tif (showDataInRows) {\n\t\t\treturn row\n\t\t\t\t.dataHolder!.dataSources.map(({ id }) => id)\n\t\t\t\t.includes(datum.dx!);\n\t\t}\n\t\treturn datum.ou === row.orgUnit!.uid;\n\t});\n}\n\nexport function filterRows({\n\trows,\n\temptyRows,\n\tdataEngine,\n\tshowDataInRows,\n\taverageDisplayType,\n\tmeta,\n}: {\n\temptyRows: ScorecardViewOptions[\"emptyRows\"];\n\tshowDataInRows: boolean;\n\taverageDisplayType: ScorecardViewOptions[\"averageDisplayType\"];\n\tdataEngine: ScorecardDataEngine;\n\trows: ScorecardTableData[];\n\tmeta: ScorecardMeta;\n}) {\n\tif (!dataEngine.isDone) {\n\t\treturn [];\n\t}\n\tconst hiddenRows: number[] = [];\n\tconst rowsWithDataValues = rows.map((row, index) => {\n\t\tconst values = getRowValues({\n\t\t\trow,\n\t\t\tdata: dataEngine.data,\n\t\t\tshowDataInRows,\n\t\t});\n\t\tconst average = meanBy(values, ({ value }) => parseFloat(value!));\n\t\treturn {\n\t\t\trow,\n\t\t\tindex,\n\t\t\tvalues,\n\t\t\taverage,\n\t\t};\n\t});\n\tif (!emptyRows) {\n\t\t//Filter out all e\n\t\tconst emptyRows = rowsWithDataValues\n\t\t\t.filter(({ values }) => isEmpty(values))\n\t\t\t.map(({ index }) => index);\n\t\thiddenRows.push(...emptyRows);\n\t}\n\n\tif (averageDisplayType !== \"ALL\") {\n\t\tconst average = getAverageValue({\n\t\t\tdataValues: dataEngine.data,\n\t\t\tmeta,\n\t\t});\n\t\tif (averageDisplayType === \"BELOW_AVERAGE\") {\n\t\t\tconst aboveAverageRows = rowsWithDataValues\n\t\t\t\t.filter(({ average: rowAverage }) => rowAverage > average)\n\t\t\t\t.map(({ index }) => index);\n\t\t\thiddenRows.push(...aboveAverageRows);\n\t\t} else {\n\t\t\tconst belowAverageRows = rowsWithDataValues\n\t\t\t\t.filter(({ average: rowAverage }) => rowAverage < average)\n\t\t\t\t.map(({ index }) => index);\n\t\t\thiddenRows.push(...belowAverageRows);\n\t\t}\n\t}\n\n\treturn hiddenRows;\n}\n\nexport function useTableRows(): ScorecardTableData[] {\n\tconst meta = useScorecardMeta();\n\tconst { data: dataEngine } = useScorecardData();\n\tconst showDataInRows =\n\t\tuseScorecardViewStateValue<boolean>(\"showDataInRows\") ?? false;\n\tconst emptyRows = useScorecardViewStateValue<boolean>(\"emptyRows\");\n\tconst averageDisplayType =\n\t\tuseScorecardViewStateValue<ScorecardViewOptions[\"averageDisplayType\"]>(\n\t\t\t\"averageDisplayType\",\n\t\t);\n\n\tconst config = useScorecardConfig();\n\n\tconst [hiddenRowIndexes, setHiddenRowIndexes] = useState<number[]>([]);\n\n\tif (meta == null) return [];\n\n\tconst rows = useMemo(() => {\n\t\tconst rows = getRowsFromMeta({\n\t\t\tmeta,\n\t\t\tshowDataInRows,\n\t\t\tconfig,\n\t\t});\n\n\t\tif (isEmpty(hiddenRowIndexes)) {\n\t\t\treturn rows;\n\t\t}\n\n\t\treturn rows.filter((_, index) => !hiddenRowIndexes.includes(index));\n\t}, [meta, showDataInRows, config, hiddenRowIndexes]);\n\n\tuseEffect(() => {\n\t\tconst listener = (completed: boolean) => {\n\t\t\tif (completed) {\n\t\t\t\tsetHiddenRowIndexes(\n\t\t\t\t\tfilterRows({\n\t\t\t\t\t\tmeta,\n\t\t\t\t\t\tdataEngine,\n\t\t\t\t\t\tshowDataInRows,\n\t\t\t\t\t\trows,\n\t\t\t\t\t\taverageDisplayType,\n\t\t\t\t\t\temptyRows,\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\t\tif (dataEngine.isDone) {\n\t\t\tsetHiddenRowIndexes(\n\t\t\t\tfilterRows({\n\t\t\t\t\tmeta,\n\t\t\t\t\tdataEngine,\n\t\t\t\t\tshowDataInRows,\n\t\t\t\t\trows,\n\t\t\t\t\taverageDisplayType,\n\t\t\t\t\temptyRows,\n\t\t\t\t}),\n\t\t\t);\n\t\t} else {\n\t\t\treturn dataEngine.addOnCompleteListener(listener);\n\t\t}\n\t}, [averageDisplayType, emptyRows, showDataInRows]);\n\n\treturn rows;\n}\n\nexport function useColumnVisibility() {\n\tconst showAverageColumn =\n\t\tuseScorecardViewStateValue<boolean>(\"averageColumn\") ?? false;\n\tconst showItemNumber =\n\t\tuseScorecardViewStateValue<boolean>(\"itemNumber\") ?? false;\n\tconst showDataInRows =\n\t\tuseScorecardViewStateValue<boolean>(\"showDataInRows\");\n\n\tconst disableExpanding =\n\t\tuseScorecardViewStateValue<boolean>(\"disableExpanding\") ?? false;\n\n\tconst [columnVisibility, setColumnVisibility] = useState<VisibilityState>({\n\t\taverage: showAverageColumn,\n\t\tcount: showItemNumber,\n\t\texpand: !disableExpanding,\n\t});\n\n\tuseEffect(() => {\n\t\tsetColumnVisibility({\n\t\t\taverage: showAverageColumn,\n\t\t\tcount: showItemNumber,\n\t\t\texpand: !disableExpanding && !showDataInRows,\n\t\t});\n\t}, [showAverageColumn, showItemNumber, disableExpanding, showDataInRows]);\n\n\treturn {\n\t\tcolumnVisibility,\n\t\tsetColumnVisibility,\n\t};\n}\n\nexport function useRowExpanding() {\n\tconst [expanded, setExpanded] = useState<ExpandedState>({});\n\tconst disableExpanding =\n\t\tuseScorecardViewStateValue<boolean>(\"disableExpanding\") ?? false;\n\n\tconst getRowCanExpand = useCallback((row: Row<ScorecardTableData>) => {\n\t\tconst expandCell = row\n\t\t\t.getVisibleCells()\n\t\t\t.find(({ id }) => id.includes(\"expand\"));\n\n\t\tif (!expandCell) return false;\n\t\treturn expandCell.getValue() as boolean;\n\t}, []);\n\n\treturn {\n\t\texpanded,\n\t\tonExpandedChange: disableExpanding ? undefined : setExpanded,\n\t\tgetRowCanExpand,\n\t};\n}\n\nexport function useTableSetup(): TableOptions<ScorecardTableData> {\n\tconst [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);\n\tconst disablePagination =\n\t\tuseScorecardViewStateValue<boolean>(\"disablePagination\");\n\tconst [pagination, setPagination] = useState<PaginationState>({\n\t\tpageSize: 50,\n\t\tpageIndex: 0,\n\t});\n\n\tconst { columnVisibility, setColumnVisibility } = useColumnVisibility();\n\tconst { expanded, onExpandedChange, getRowCanExpand } = useRowExpanding();\n\n\tconst [sorting, setSorting] = useState<SortingState>([]);\n\tconst columns = useTableColumns();\n\tconst data = useTableRows();\n\n\treturn useMemo(\n\t\t() => ({\n\t\t\tcolumns,\n\t\t\tdata,\n\t\t\tstate: {\n\t\t\t\tcolumnFilters,\n\t\t\t\tsorting,\n\t\t\t\tcolumnVisibility,\n\t\t\t\texpanded,\n\t\t\t\t...(disablePagination ? {} : { pagination }),\n\t\t\t},\n\t\t\tmeta: {\n\t\t\t\tdisablePagination,\n\t\t\t},\n\t\t\tautoResetPageIndex: true,\n\t\t\tonExpandedChange: onExpandedChange,\n\t\t\trowCount: data.length,\n\t\t\tgetRowCanExpand,\n\t\t\tonColumnFiltersChange: setColumnFilters,\n\t\t\tonSortingChange: setSorting,\n\t\t\tgetCoreRowModel: getCoreRowModel(),\n\t\t\tgetFilteredRowModel: getFilteredRowModel(),\n\t\t\tgetExpandedRowModel: getExpandedRowModel(),\n\t\t\tgetPaginationRowModel: disablePagination\n\t\t\t\t? undefined\n\t\t\t\t: getPaginationRowModel(),\n\t\t\tgetSortedRowModel: getSortedRowModel(),\n\t\t\tonColumnVisibilityChange: setColumnVisibility,\n\t\t\tonPaginationChange: disablePagination ? undefined : setPagination,\n\t\t}),\n\t\t[\n\t\t\tcolumns,\n\t\t\tdata,\n\t\t\tcolumnFilters,\n\t\t\tsorting,\n\t\t\tcolumnVisibility,\n\t\t\tpagination,\n\t\t\tgetRowCanExpand,\n\t\t\texpanded,\n\t\t],\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/table.ts"],"names":["meanBy","emptyRows","isEmpty","getAverageValue","useScorecardMeta","useScorecardData","useScorecardViewStateValue","useScorecardConfig","useState","useMemo","rows","getRowsFromMeta","useEffect","useCallback","useTableColumns","getCoreRowModel","getFilteredRowModel","getExpandedRowModel","getPaginationRowModel","getSortedRowModel"],"mappings":"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","file":"table.js","sourcesContent":["import {\n\ttype ColumnFiltersState,\n\ttype ExpandedState,\n\tgetCoreRowModel,\n\tgetExpandedRowModel,\n\tgetFilteredRowModel,\n\tgetPaginationRowModel,\n\tgetSortedRowModel,\n\ttype PaginationState,\n\ttype Row,\n\ttype SortingState,\n\ttype TableOptions,\n\ttype VisibilityState,\n} from \"@tanstack/react-table\";\nimport { useTableColumns } from \"./columns\";\nimport type {\n\tScorecardTableData,\n\tScorecardViewOptions,\n} from \"../schemas/config\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport {\n\ttype ScorecardMeta,\n\tuseScorecardConfig,\n\tuseScorecardData,\n\tuseScorecardMeta,\n} from \"../components\";\nimport { type AnalyticsData, getRowsFromMeta } from \"../utils/data\";\nimport { isEmpty, meanBy } from \"lodash\";\nimport type { ScorecardDataEngine } from \"../utils/dataEngine\";\nimport { getAverageValue } from \"../utils/columns\";\nimport { useScorecardViewStateValue } from \"../utils/viewState\";\n\nexport function getRowValues({\n\tdata,\n\tshowDataInRows,\n\trow,\n}: {\n\trow: ScorecardTableData;\n\tdata: AnalyticsData[];\n\tshowDataInRows: boolean;\n}): AnalyticsData[] {\n\treturn data.filter((datum) => {\n\t\tif (showDataInRows) {\n\t\t\treturn row\n\t\t\t\t.dataHolder!.dataSources.map(({ id }) => id)\n\t\t\t\t.includes(datum.dx!);\n\t\t}\n\t\treturn datum.ou === row.orgUnit!.uid;\n\t});\n}\n\nexport function filterRows({\n\trows,\n\temptyRows,\n\tdataEngine,\n\tshowDataInRows,\n\taverageDisplayType,\n\tmeta,\n}: {\n\temptyRows: ScorecardViewOptions[\"emptyRows\"];\n\tshowDataInRows: boolean;\n\taverageDisplayType: ScorecardViewOptions[\"averageDisplayType\"];\n\tdataEngine: ScorecardDataEngine;\n\trows: ScorecardTableData[];\n\tmeta: ScorecardMeta;\n}) {\n\tif (!dataEngine.isDone) {\n\t\treturn [];\n\t}\n\tconst hiddenRows: number[] = [];\n\tconst rowsWithDataValues = rows.map((row, index) => {\n\t\tconst values = getRowValues({\n\t\t\trow,\n\t\t\tdata: dataEngine.data,\n\t\t\tshowDataInRows,\n\t\t});\n\t\tconst average = meanBy(values, ({ value }) => parseFloat(value!));\n\t\treturn {\n\t\t\trow,\n\t\t\tindex,\n\t\t\tvalues,\n\t\t\taverage,\n\t\t};\n\t});\n\tif (!emptyRows) {\n\t\t//Filter out all e\n\t\tconst emptyRows = rowsWithDataValues\n\t\t\t.filter(({ values }) => isEmpty(values))\n\t\t\t.map(({ index }) => index);\n\t\thiddenRows.push(...emptyRows);\n\t}\n\n\tif (averageDisplayType !== \"ALL\") {\n\t\tconst average = getAverageValue({\n\t\t\tdataValues: dataEngine.data,\n\t\t\tmeta,\n\t\t});\n\t\tif (averageDisplayType === \"BELOW_AVERAGE\") {\n\t\t\tconst aboveAverageRows = rowsWithDataValues\n\t\t\t\t.filter(({ average: rowAverage }) => rowAverage > average)\n\t\t\t\t.map(({ index }) => index);\n\t\t\thiddenRows.push(...aboveAverageRows);\n\t\t} else {\n\t\t\tconst belowAverageRows = rowsWithDataValues\n\t\t\t\t.filter(({ average: rowAverage }) => rowAverage < average)\n\t\t\t\t.map(({ index }) => index);\n\t\t\thiddenRows.push(...belowAverageRows);\n\t\t}\n\t}\n\n\treturn hiddenRows;\n}\n\nexport function useTableRows(): ScorecardTableData[] {\n\tconst meta = useScorecardMeta();\n\tconst { data: dataEngine } = useScorecardData();\n\tconst showDataInRows =\n\t\tuseScorecardViewStateValue<boolean>(\"showDataInRows\") ?? false;\n\tconst emptyRows = useScorecardViewStateValue<boolean>(\"emptyRows\");\n\tconst averageDisplayType =\n\t\tuseScorecardViewStateValue<ScorecardViewOptions[\"averageDisplayType\"]>(\n\t\t\t\"averageDisplayType\",\n\t\t);\n\n\tconst config = useScorecardConfig();\n\n\tconst [hiddenRowIndexes, setHiddenRowIndexes] = useState<number[]>([]);\n\n\tif (meta == null) return [];\n\n\tconst rows = useMemo(() => {\n\t\tconst rows = getRowsFromMeta({\n\t\t\tmeta,\n\t\t\tshowDataInRows,\n\t\t\tconfig,\n\t\t});\n\n\t\tif (isEmpty(hiddenRowIndexes)) {\n\t\t\treturn rows;\n\t\t}\n\n\t\treturn rows.filter((_, index) => !hiddenRowIndexes.includes(index));\n\t}, [meta, showDataInRows, config, hiddenRowIndexes]);\n\n\tuseEffect(() => {\n\t\tconst listener = (completed: boolean) => {\n\t\t\tif (completed) {\n\t\t\t\tsetHiddenRowIndexes(\n\t\t\t\t\tfilterRows({\n\t\t\t\t\t\tmeta,\n\t\t\t\t\t\tdataEngine,\n\t\t\t\t\t\tshowDataInRows,\n\t\t\t\t\t\trows,\n\t\t\t\t\t\taverageDisplayType,\n\t\t\t\t\t\temptyRows,\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\t\tif (dataEngine.isDone) {\n\t\t\tsetHiddenRowIndexes(\n\t\t\t\tfilterRows({\n\t\t\t\t\tmeta,\n\t\t\t\t\tdataEngine,\n\t\t\t\t\tshowDataInRows,\n\t\t\t\t\trows,\n\t\t\t\t\taverageDisplayType,\n\t\t\t\t\temptyRows,\n\t\t\t\t}),\n\t\t\t);\n\t\t} else {\n\t\t\treturn dataEngine.addOnCompleteListener(listener);\n\t\t}\n\t}, [averageDisplayType, emptyRows, showDataInRows]);\n\n\treturn rows;\n}\n\nexport function useColumnVisibility() {\n\tconst showAverageColumn =\n\t\tuseScorecardViewStateValue<boolean>(\"averageColumn\") ?? false;\n\tconst showItemNumber =\n\t\tuseScorecardViewStateValue<boolean>(\"itemNumber\") ?? false;\n\tconst showDataInRows =\n\t\tuseScorecardViewStateValue<boolean>(\"showDataInRows\");\n\n\tconst disableExpanding =\n\t\tuseScorecardViewStateValue<boolean>(\"disableExpanding\") ?? false;\n\n\tconst [columnVisibility, setColumnVisibility] = useState<VisibilityState>({\n\t\taverage: showAverageColumn,\n\t\tcount: showItemNumber,\n\t\texpand: !disableExpanding,\n\t});\n\n\tuseEffect(() => {\n\t\tsetColumnVisibility({\n\t\t\taverage: showAverageColumn,\n\t\t\tcount: showItemNumber,\n\t\t\texpand: !disableExpanding && !showDataInRows,\n\t\t});\n\t}, [showAverageColumn, showItemNumber, disableExpanding, showDataInRows]);\n\n\treturn {\n\t\tcolumnVisibility,\n\t\tsetColumnVisibility,\n\t};\n}\n\nexport function useRowExpanding() {\n\tconst [expanded, setExpanded] = useState<ExpandedState>({});\n\tconst disableExpanding =\n\t\tuseScorecardViewStateValue<boolean>(\"disableExpanding\") ?? false;\n\n\tconst getRowCanExpand = useCallback((row: Row<ScorecardTableData>) => {\n\t\tconst expandCell = row\n\t\t\t.getVisibleCells()\n\t\t\t.find(({ id }) => id.includes(\"expand\"));\n\n\t\tif (!expandCell) return false;\n\t\treturn expandCell.getValue() as boolean;\n\t}, []);\n\n\treturn {\n\t\texpanded,\n\t\tonExpandedChange: disableExpanding ? undefined : setExpanded,\n\t\tgetRowCanExpand,\n\t};\n}\n\nexport function useTableSetup(): TableOptions<ScorecardTableData> {\n\tconst [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);\n\tconst disablePagination =\n\t\tuseScorecardViewStateValue<boolean>(\"disablePagination\");\n\tconst [pagination, setPagination] = useState<PaginationState>({\n\t\tpageSize: 50,\n\t\tpageIndex: 0,\n\t});\n\n\tconst { columnVisibility, setColumnVisibility } = useColumnVisibility();\n\tconst { expanded, onExpandedChange, getRowCanExpand } = useRowExpanding();\n\n\tconst [sorting, setSorting] = useState<SortingState>([]);\n\tconst columns = useTableColumns();\n\tconst data = useTableRows();\n\n\treturn useMemo(\n\t\t() => ({\n\t\t\tcolumns,\n\t\t\tdata,\n\t\t\tstate: {\n\t\t\t\tcolumnFilters,\n\t\t\t\tsorting,\n\t\t\t\tcolumnVisibility,\n\t\t\t\texpanded,\n\t\t\t\t...(disablePagination ? {} : { pagination }),\n\t\t\t},\n\t\t\tmeta: {\n\t\t\t\tdisablePagination,\n\t\t\t},\n\t\t\tautoResetPageIndex: true,\n\t\t\tonExpandedChange: onExpandedChange,\n\t\t\trowCount: data.length,\n\t\t\tgetRowCanExpand,\n\t\t\tonColumnFiltersChange: setColumnFilters,\n\t\t\tonSortingChange: setSorting,\n\t\t\tgetCoreRowModel: getCoreRowModel(),\n\t\t\tgetFilteredRowModel: getFilteredRowModel(),\n\t\t\tgetExpandedRowModel: getExpandedRowModel(),\n\t\t\tgetPaginationRowModel: disablePagination\n\t\t\t\t? undefined\n\t\t\t\t: getPaginationRowModel(),\n\t\t\tgetSortedRowModel: getSortedRowModel(),\n\t\t\tonColumnVisibilityChange: setColumnVisibility,\n\t\t\tonPaginationChange: disablePagination ? undefined : setPagination,\n\t\t}),\n\t\t[\n\t\t\tcolumns,\n\t\t\tdata,\n\t\t\tcolumnFilters,\n\t\t\tsorting,\n\t\t\tcolumnVisibility,\n\t\t\tpagination,\n\t\t\tgetRowCanExpand,\n\t\t\texpanded,\n\t\t],\n\t);\n}\n"]}
|
package/dist/hooks/value.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/value.ts"],"names":["data","getValues","useScorecardData","useState","useEffect","every","isEqual","meanBy"],"mappings":"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","file":"value.js","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 {\n\tDataEngineListener,\n\tOnCompleteDataEngineListener,\n} from \"../utils/dataEngine\";\nimport type { AnalyticsData } from \"../utils/data\";\nimport { getValues } from \"../utils/columns\";\nimport { every, isEqual, 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\treturn scorecardEngine.addOnCompleteListener((completed) => {\n\t\t\tif (completed) {\n\t\t\t\tsetLoading(false);\n\t\t\t}\n\t\t});\n\t}, []);\n\n\tuseEffect(() => {\n\t\tsetLoading(true);\n\t\tconst listener: DataEngineListener = (data) => {\n\t\t\tconst values = getDataValues({ data, dataConfig });\n\t\t\tconst hasValues = every(values, (value) => !!value.data);\n\t\t\tsetCellData((prevState) => {\n\t\t\t\tif (isEqual(prevState, values)) {\n\t\t\t\t\treturn prevState;\n\t\t\t\t} else {\n\t\t\t\t\treturn values;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (hasValues) {\n\t\t\t\tscorecardEngine.removeListener(listener);\n\t\t\t\tsetLoading(false);\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\n\t\t\tsetCellData(values);\n\t\t\tsetLoading(false);\n\t\t} else {\n\t\t\treturn scorecardEngine.addDataListener(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: OnCompleteDataEngineListener = (completed) => {\n\t\t\tif (completed) {\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}\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\treturn scorecardEngine.addOnCompleteListener(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: OnCompleteDataEngineListener = (completed) => {\n\t\t\tif (completed) {\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\treturn scorecardEngine.addOnCompleteListener(listener);\n\t\t}\n\t}, [dataConfig]);\n\n\treturn {\n\t\tloading,\n\t\taverage,\n\t};\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/value.ts"],"names":["data","getValues","useScorecardData","useState","useEffect","every","isEqual","meanBy"],"mappings":"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","file":"value.js","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 {\n\tDataEngineListener,\n\tOnCompleteDataEngineListener,\n} from \"../utils/dataEngine\";\nimport type { AnalyticsData } from \"../utils/data\";\nimport { getValues } from \"../utils/columns\";\nimport { every, isEqual, 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\treturn scorecardEngine.addOnCompleteListener((completed) => {\n\t\t\tif (completed) {\n\t\t\t\tsetLoading(false);\n\t\t\t}\n\t\t});\n\t}, []);\n\n\tuseEffect(() => {\n\t\tsetLoading(true);\n\t\tconst listener: DataEngineListener = (data) => {\n\t\t\tconst values = getDataValues({ data, dataConfig });\n\t\t\tconst hasValues = every(values, (value) => !!value.data);\n\t\t\tsetCellData((prevState) => {\n\t\t\t\tif (isEqual(prevState, values)) {\n\t\t\t\t\treturn prevState;\n\t\t\t\t} else {\n\t\t\t\t\treturn values;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (hasValues) {\n\t\t\t\tscorecardEngine.removeListener(listener);\n\t\t\t\tsetLoading(false);\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\n\t\t\tsetCellData(values);\n\t\t\tsetLoading(false);\n\t\t} else {\n\t\t\treturn scorecardEngine.addDataListener(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: OnCompleteDataEngineListener = (completed) => {\n\t\t\tif (completed) {\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}\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\treturn scorecardEngine.addOnCompleteListener(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: OnCompleteDataEngineListener = (completed) => {\n\t\t\tif (completed) {\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\treturn scorecardEngine.addOnCompleteListener(listener);\n\t\t}\n\t}, [dataConfig]);\n\n\treturn {\n\t\tloading,\n\t\taverage,\n\t};\n}\n"]}
|