@hisptz/dhis2-scorecard 1.0.5 → 1.0.7

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.
Files changed (102) hide show
  1. package/dist/Scorecard.stories.js +2 -2
  2. package/dist/Scorecard.stories.js.map +1 -1
  3. package/dist/components/ColGroup.js +3 -3
  4. package/dist/components/ColGroup.js.map +1 -1
  5. package/dist/components/ScorecardHeader.js +3 -3
  6. package/dist/components/ScorecardHeader.js.map +1 -1
  7. package/dist/components/ScorecardLegendsView/components/ArrowLegendView.js +2 -2
  8. package/dist/components/ScorecardLegendsView/components/ArrowLegendView.js.map +1 -1
  9. package/dist/components/ScorecardTable/ScorecardTable.js +2 -2
  10. package/dist/components/ScorecardTable/ScorecardTable.js.map +1 -1
  11. package/dist/components/ScorecardTable/components/AverageCell.js +2 -2
  12. package/dist/components/ScorecardTable/components/AverageCell.js.map +1 -1
  13. package/dist/components/ScorecardTable/components/DataFooterCell.js +2 -2
  14. package/dist/components/ScorecardTable/components/DataFooterCell.js.map +1 -1
  15. package/dist/components/ScorecardTable/components/DataValue.js +2 -2
  16. package/dist/components/ScorecardTable/components/DataValue.js.map +1 -1
  17. package/dist/components/ScorecardTable/components/ExpandedScorecardTable.js +3 -3
  18. package/dist/components/ScorecardTable/components/ExpandedScorecardTable.js.map +1 -1
  19. package/dist/components/ScorecardTable/components/MetaFooterCell.js +2 -2
  20. package/dist/components/ScorecardTable/components/MetaFooterCell.js.map +1 -1
  21. package/dist/components/ScorecardTable/components/TableFoot.js +2 -2
  22. package/dist/components/ScorecardTable/components/TableFoot.js.map +1 -1
  23. package/dist/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js +3 -3
  24. package/dist/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js.map +1 -1
  25. package/dist/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js +2 -2
  26. package/dist/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map +1 -1
  27. package/dist/components/ScorecardTable/components/TableHeader/components/FilterArea.js +2 -2
  28. package/dist/components/ScorecardTable/components/TableHeader/components/FilterArea.js.map +1 -1
  29. package/dist/components/ScorecardTable/components/TableHeader/components/LabelCell.js +4 -4
  30. package/dist/components/ScorecardTable/components/TableHeader/components/LabelCell.js.map +1 -1
  31. package/dist/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js +3 -3
  32. package/dist/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js.map +1 -1
  33. package/dist/components/StateProvider.js +2 -2
  34. package/dist/components/StateProvider.js.map +1 -1
  35. package/dist/components/index.js +14 -0
  36. package/dist/components/index.js.map +1 -1
  37. package/dist/esm/Scorecard.stories.js +1 -1
  38. package/dist/esm/Scorecard.stories.js.map +1 -1
  39. package/dist/esm/components/ColGroup.js +1 -1
  40. package/dist/esm/components/ColGroup.js.map +1 -1
  41. package/dist/esm/components/ScorecardHeader.js +1 -1
  42. package/dist/esm/components/ScorecardHeader.js.map +1 -1
  43. package/dist/esm/components/ScorecardLegendsView/components/ArrowLegendView.js +1 -1
  44. package/dist/esm/components/ScorecardLegendsView/components/ArrowLegendView.js.map +1 -1
  45. package/dist/esm/components/ScorecardTable/ScorecardTable.js +1 -1
  46. package/dist/esm/components/ScorecardTable/ScorecardTable.js.map +1 -1
  47. package/dist/esm/components/ScorecardTable/components/AverageCell.js +1 -1
  48. package/dist/esm/components/ScorecardTable/components/AverageCell.js.map +1 -1
  49. package/dist/esm/components/ScorecardTable/components/DataFooterCell.js +1 -1
  50. package/dist/esm/components/ScorecardTable/components/DataFooterCell.js.map +1 -1
  51. package/dist/esm/components/ScorecardTable/components/DataValue.js +1 -1
  52. package/dist/esm/components/ScorecardTable/components/DataValue.js.map +1 -1
  53. package/dist/esm/components/ScorecardTable/components/ExpandedScorecardTable.js +1 -1
  54. package/dist/esm/components/ScorecardTable/components/ExpandedScorecardTable.js.map +1 -1
  55. package/dist/esm/components/ScorecardTable/components/MetaFooterCell.js +1 -1
  56. package/dist/esm/components/ScorecardTable/components/MetaFooterCell.js.map +1 -1
  57. package/dist/esm/components/ScorecardTable/components/TableFoot.js +1 -1
  58. package/dist/esm/components/ScorecardTable/components/TableFoot.js.map +1 -1
  59. package/dist/esm/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js +1 -1
  60. package/dist/esm/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js.map +1 -1
  61. package/dist/esm/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js +1 -1
  62. package/dist/esm/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map +1 -1
  63. package/dist/esm/components/ScorecardTable/components/TableHeader/components/FilterArea.js +1 -1
  64. package/dist/esm/components/ScorecardTable/components/TableHeader/components/FilterArea.js.map +1 -1
  65. package/dist/esm/components/ScorecardTable/components/TableHeader/components/LabelCell.js +1 -1
  66. package/dist/esm/components/ScorecardTable/components/TableHeader/components/LabelCell.js.map +1 -1
  67. package/dist/esm/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js +1 -1
  68. package/dist/esm/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js.map +1 -1
  69. package/dist/esm/components/StateProvider.js +1 -1
  70. package/dist/esm/components/StateProvider.js.map +1 -1
  71. package/dist/esm/components/index.js +2 -0
  72. package/dist/esm/components/index.js.map +1 -1
  73. package/dist/esm/hooks/columns.js +1 -1
  74. package/dist/esm/hooks/columns.js.map +1 -1
  75. package/dist/esm/hooks/metadata.js +1 -1
  76. package/dist/esm/hooks/metadata.js.map +1 -1
  77. package/dist/esm/hooks/table.js +1 -1
  78. package/dist/esm/hooks/table.js.map +1 -1
  79. package/dist/esm/index.js +1 -0
  80. package/dist/esm/index.js.map +1 -1
  81. package/dist/esm/state/{scorecardState.js → index.js} +13 -3
  82. package/dist/esm/state/index.js.map +1 -0
  83. package/dist/hooks/columns.js +6 -6
  84. package/dist/hooks/columns.js.map +1 -1
  85. package/dist/hooks/metadata.js +3 -3
  86. package/dist/hooks/metadata.js.map +1 -1
  87. package/dist/hooks/table.js +10 -10
  88. package/dist/hooks/table.js.map +1 -1
  89. package/dist/index.js +7 -0
  90. package/dist/index.js.map +1 -1
  91. package/dist/state/{scorecardState.js → index.js} +13 -1
  92. package/dist/state/index.js.map +1 -0
  93. package/dist/types/components/index.d.ts +2 -0
  94. package/dist/types/components/index.d.ts.map +1 -1
  95. package/dist/types/index.d.ts +1 -0
  96. package/dist/types/index.d.ts.map +1 -1
  97. package/dist/types/state/{scorecardState.d.ts → index.d.ts} +31 -1
  98. package/dist/types/state/index.d.ts.map +1 -0
  99. package/package.json +5 -5
  100. package/dist/esm/state/scorecardState.js.map +0 -1
  101. package/dist/state/scorecardState.js.map +0 -1
  102. package/dist/types/state/scorecardState.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/columns.ts"],"names":[],"mappings":"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","sourcesContent":["import { type ColumnDef, createColumnHelper } from \"@tanstack/react-table\";\nimport { useScorecardConfig, useScorecardMeta } from \"../components\";\nimport { useMemo } from \"react\";\nimport {\n\ttype ScorecardState,\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 { useScorecardData } from \"../components/DataProvider\";\nimport { useScorecardStateSelectorValue } from \"../state/scorecardState\";\nimport { ExpandCell } from \"../components/ScorecardTable/components/TableHeader/components/ExpandCell\";\n\nconst columnHelper = createColumnHelper<ScorecardTableData>();\n\nexport function useMetaColumns() {\n\tconst showDataInRows = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\n\tconst disableExpanding = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"disableExpanding\",\n\t]);\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\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\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 = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\tconst periodSelection =\n\t\tuseScorecardStateSelectorValue<ScorecardState[\"periodSelection\"]>(\n\t\t\t\"periodSelection\",\n\t\t);\n\n\tconst orgUnitSelection =\n\t\tuseScorecardStateSelectorValue<ScorecardState[\"orgUnitSelection\"]>(\n\t\t\t\"orgUnitSelection\",\n\t\t);\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":[],"mappings":"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","sourcesContent":["import { type ColumnDef, createColumnHelper } from \"@tanstack/react-table\";\nimport { useScorecardConfig, useScorecardMeta } from \"../components\";\nimport { useMemo } from \"react\";\nimport {\n\ttype ScorecardState,\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 { useScorecardData } from \"../components/DataProvider\";\nimport { useScorecardStateSelectorValue } from \"../state\";\nimport { ExpandCell } from \"../components/ScorecardTable/components/TableHeader/components/ExpandCell\";\n\nconst columnHelper = createColumnHelper<ScorecardTableData>();\n\nexport function useMetaColumns() {\n\tconst showDataInRows = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\n\tconst disableExpanding = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"disableExpanding\",\n\t]);\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\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\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 = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\tconst periodSelection =\n\t\tuseScorecardStateSelectorValue<ScorecardState[\"periodSelection\"]>(\n\t\t\t\"periodSelection\",\n\t\t);\n\n\tconst orgUnitSelection =\n\t\tuseScorecardStateSelectorValue<ScorecardState[\"orgUnitSelection\"]>(\n\t\t\t\"orgUnitSelection\",\n\t\t);\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"]}
@@ -5,7 +5,7 @@ var appRuntime = require('@dhis2/app-runtime');
5
5
  var react = require('react');
6
6
  var analytics = require('../utils/analytics');
7
7
  var i18n = require('@dhis2/d2-i18n');
8
- var scorecardState = require('../state/scorecardState');
8
+ var state = require('../state');
9
9
 
10
10
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
11
 
@@ -46,10 +46,10 @@ function useGetScorecardMeta() {
46
46
  ({ message }) => message,
47
47
  ({ type }) => ({ ...type, duration: 3e3 })
48
48
  );
49
- const orgUnitSelection = scorecardState.useScorecardStateSelectorValue(
49
+ const orgUnitSelection = state.useScorecardStateSelectorValue(
50
50
  "orgUnitSelection"
51
51
  );
52
- const periodSelection = scorecardState.useScorecardStateSelectorValue(
52
+ const periodSelection = state.useScorecardStateSelectorValue(
53
53
  "periodSelection"
54
54
  );
55
55
  const { dataItemsIds, orgUnitsIds, periodsIds } = react.useMemo(
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/metadata.ts"],"names":[],"mappings":"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","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 type { ScorecardState } from \"../schemas/config\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useScorecardStateSelectorValue } from \"../state/scorecardState\";\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 =\n\t\tuseScorecardStateSelectorValue<ScorecardState[\"orgUnitSelection\"]>(\n\t\t\t\"orgUnitSelection\",\n\t\t);\n\tconst periodSelection =\n\t\tuseScorecardStateSelectorValue<ScorecardState[\"periodSelection\"]>(\n\t\t\t\"periodSelection\",\n\t\t);\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
+ {"version":3,"sources":["../../src/hooks/metadata.ts"],"names":[],"mappings":"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","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 type { ScorecardState } from \"../schemas/config\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useScorecardStateSelectorValue } from \"../state\";\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 =\n\t\tuseScorecardStateSelectorValue<ScorecardState[\"orgUnitSelection\"]>(\n\t\t\t\"orgUnitSelection\",\n\t\t);\n\tconst periodSelection =\n\t\tuseScorecardStateSelectorValue<ScorecardState[\"periodSelection\"]>(\n\t\t\t\"periodSelection\",\n\t\t);\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"]}
@@ -8,7 +8,7 @@ var data = require('../utils/data');
8
8
  var lodash = require('lodash');
9
9
  var columns = require('../utils/columns');
10
10
  var DataProvider = require('../components/DataProvider');
11
- var scorecardState = require('../state/scorecardState');
11
+ var state = require('../state');
12
12
 
13
13
  function getRowValues({
14
14
  data,
@@ -70,15 +70,15 @@ function filterRows({
70
70
  function useTableRows() {
71
71
  const meta = components.useScorecardMeta();
72
72
  const { data: dataEngine } = DataProvider.useScorecardData();
73
- const showDataInRows = scorecardState.useScorecardStateSelectorValue([
73
+ const showDataInRows = state.useScorecardStateSelectorValue([
74
74
  "options",
75
75
  "showDataInRows"
76
76
  ]);
77
- const emptyRows = scorecardState.useScorecardStateSelectorValue([
77
+ const emptyRows = state.useScorecardStateSelectorValue([
78
78
  "options",
79
79
  "emptyRows"
80
80
  ]);
81
- const averageDisplayType = scorecardState.useScorecardStateSelectorValue(["options", "averageDisplayType"]);
81
+ const averageDisplayType = state.useScorecardStateSelectorValue(["options", "averageDisplayType"]);
82
82
  const config = components.useScorecardConfig();
83
83
  const [hiddenRowIndexes, setHiddenRowIndexes] = react.useState([]);
84
84
  if (meta == null)
@@ -127,19 +127,19 @@ function useTableRows() {
127
127
  return rows;
128
128
  }
129
129
  function useColumnVisibility() {
130
- const showAverageColumn = scorecardState.useScorecardStateSelectorValue([
130
+ const showAverageColumn = state.useScorecardStateSelectorValue([
131
131
  "options",
132
132
  "averageColumn"
133
133
  ]);
134
- const showItemNumber = scorecardState.useScorecardStateSelectorValue([
134
+ const showItemNumber = state.useScorecardStateSelectorValue([
135
135
  "options",
136
136
  "itemNumber"
137
137
  ]);
138
- const showDataInRows = scorecardState.useScorecardStateSelectorValue([
138
+ const showDataInRows = state.useScorecardStateSelectorValue([
139
139
  "options",
140
140
  "showDataInRows"
141
141
  ]);
142
- const disableExpanding = scorecardState.useScorecardStateSelectorValue([
142
+ const disableExpanding = state.useScorecardStateSelectorValue([
143
143
  "options",
144
144
  "disableExpanding"
145
145
  ]) ?? false;
@@ -162,7 +162,7 @@ function useColumnVisibility() {
162
162
  }
163
163
  function useRowExpanding() {
164
164
  const [expanded, setExpanded] = react.useState({});
165
- const disableExpanding = scorecardState.useScorecardStateSelectorValue([
165
+ const disableExpanding = state.useScorecardStateSelectorValue([
166
166
  "options",
167
167
  "disableExpanding"
168
168
  ]) ?? false;
@@ -180,7 +180,7 @@ function useRowExpanding() {
180
180
  }
181
181
  function useTableSetup() {
182
182
  const [columnFilters, setColumnFilters] = react.useState([]);
183
- const disablePagination = scorecardState.useScorecardStateSelectorValue([
183
+ const disablePagination = state.useScorecardStateSelectorValue([
184
184
  "options",
185
185
  "disablePagination"
186
186
  ]);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/table.ts"],"names":["emptyRows","rows"],"mappings":"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","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\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 { useScorecardData } from \"../components/DataProvider\";\nimport { useScorecardStateSelectorValue } from \"../state/scorecardState\";\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 = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\tconst emptyRows = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"emptyRows\",\n\t]);\n\tconst averageDisplayType = useScorecardStateSelectorValue<\n\t\tScorecardViewOptions[\"averageDisplayType\"]\n\t>([\"options\", \"averageDisplayType\"]);\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 = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"averageColumn\",\n\t]);\n\tconst showItemNumber = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"itemNumber\",\n\t]);\n\tconst showDataInRows = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\n\tconst disableExpanding =\n\t\tuseScorecardStateSelectorValue<boolean>([\n\t\t\t\"options\",\n\t\t\t\"disableExpanding\",\n\t\t]) ?? 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\tuseScorecardStateSelectorValue<boolean>([\n\t\t\t\"options\",\n\t\t\t\"disableExpanding\",\n\t\t]) ?? 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 = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"disablePagination\",\n\t]);\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":["emptyRows","rows"],"mappings":"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","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\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 { useScorecardData } from \"../components/DataProvider\";\nimport { useScorecardStateSelectorValue } from \"../state\";\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 = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\tconst emptyRows = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"emptyRows\",\n\t]);\n\tconst averageDisplayType = useScorecardStateSelectorValue<\n\t\tScorecardViewOptions[\"averageDisplayType\"]\n\t>([\"options\", \"averageDisplayType\"]);\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 = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"averageColumn\",\n\t]);\n\tconst showItemNumber = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"itemNumber\",\n\t]);\n\tconst showDataInRows = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\n\tconst disableExpanding =\n\t\tuseScorecardStateSelectorValue<boolean>([\n\t\t\t\"options\",\n\t\t\t\"disableExpanding\",\n\t\t]) ?? 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\tuseScorecardStateSelectorValue<boolean>([\n\t\t\t\"options\",\n\t\t\t\"disableExpanding\",\n\t\t]) ?? 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 = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"disablePagination\",\n\t]);\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/index.js CHANGED
@@ -5,6 +5,7 @@ var config = require('./schemas/config');
5
5
  var components = require('./components');
6
6
  var hooks = require('./hooks');
7
7
  var utils = require('./utils');
8
+ var state = require('./state');
8
9
 
9
10
 
10
11
 
@@ -38,5 +39,11 @@ Object.keys(utils).forEach(function (k) {
38
39
  get: function () { return utils[k]; }
39
40
  });
40
41
  });
42
+ Object.keys(state).forEach(function (k) {
43
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
44
+ enumerable: true,
45
+ get: function () { return state[k]; }
46
+ });
47
+ });
41
48
  //# sourceMappingURL=out.js.map
42
49
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc","sourcesContent":["export * from \"./Scorecard\";\nexport * from \"./schemas/config\";\nexport * from \"./components\";\nexport * from \"./hooks\";\nexport * from \"./utils\";\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc","sourcesContent":["export * from \"./Scorecard\";\nexport * from \"./schemas/config\";\nexport * from \"./components\";\nexport * from \"./hooks\";\nexport * from \"./utils\";\nexport * from \"./state\";\n"]}
@@ -24,6 +24,16 @@ const scorecardStateSelector = recoil.selectorFamily({
24
24
  function useScorecardStateValue() {
25
25
  return recoil.useRecoilValue(scorecardStateAtom);
26
26
  }
27
+ function useScorecardOrgUnitSelectionState() {
28
+ return recoil.useRecoilState(
29
+ scorecardStateSelector("orgUnitSelection")
30
+ );
31
+ }
32
+ function useScorecardPeriodState() {
33
+ return recoil.useRecoilState(
34
+ scorecardStateSelector("periodSelection")
35
+ );
36
+ }
27
37
  function useSetScorecardStateSelector(path) {
28
38
  return recoil.useSetRecoilState(scorecardStateSelector(path));
29
39
  }
@@ -42,10 +52,12 @@ function useScorecardStateSelector(path) {
42
52
 
43
53
  exports.scorecardStateAtom = scorecardStateAtom;
44
54
  exports.scorecardStateSelector = scorecardStateSelector;
55
+ exports.useScorecardOrgUnitSelectionState = useScorecardOrgUnitSelectionState;
56
+ exports.useScorecardPeriodState = useScorecardPeriodState;
45
57
  exports.useScorecardStateSelector = useScorecardStateSelector;
46
58
  exports.useScorecardStateSelectorValue = useScorecardStateSelectorValue;
47
59
  exports.useScorecardStateValue = useScorecardStateValue;
48
60
  exports.useScorecardViewOptionValue = useScorecardViewOptionValue;
49
61
  exports.useSetScorecardStateSelector = useSetScorecardStateSelector;
50
62
  //# sourceMappingURL=out.js.map
51
- //# sourceMappingURL=scorecardState.js.map
63
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/state/index.ts"],"names":[],"mappings":"AAAA;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAOP,SAAS,OAAO,MAAM,OAAO,YAAY;AAElC,MAAM,qBAAqB,KAA4B;AAAA,EAC7D,KAAK;AAAA,EACL,SAAS;AAAA,EACT,4BAA4B;AAC7B,CAAC;AAEM,MAAM,yBAAyB,eAAe;AAAA,EACpD,KAAK;AAAA,EACL,KACC,CAAC,SACD,CAAC,EAAE,IAAI,MAAM;AACZ,WAAO,KAAK,IAAI,kBAAkB,GAAG,IAAI;AAAA,EAC1C;AAAA,EACD,KACC,CAAC,SACD,CAAC,EAAE,IAAI,GAAG,aAAa;AACtB,QAAI,oBAAoB,CAAC,cAAc;AACtC,YAAM,cAAc,EAAE,GAAG,UAAU;AACnC,WAAK,aAAa,MAAM,QAAQ;AAChC,aAAO;AAAA,IACR,CAAC;AAAA,EACF;AACF,CAAC;AAEM,SAAS,yBAAyB;AACxC,SAAO,eAAe,kBAAkB;AACzC;AAEO,SAAS,oCAAoC;AACnD,SAAO;AAAA,IACN,uBAAuB,kBAAkB;AAAA,EAC1C;AACD;AAEO,SAAS,0BAA0B;AACzC,SAAO;AAAA,IACN,uBAAuB,iBAAiB;AAAA,EACzC;AACD;AAEO,SAAS,6BACf,MACC;AACD,SAAO,kBAA8B,uBAAuB,IAAI,CAAC;AAClE;AAEO,SAAS,+BACf,MACC;AACD,SAAO,eAA2B,uBAAuB,IAAI,CAAC;AAC/D;AAEO,SAAS,4BAA4B,KAAiC;AAC5E,SAAO,+BAA+B;AAAA,IACrC;AAAA,IACA;AAAA,EACD,CAAC;AACF;AAEO,SAAS,0BAAsC,MAAyB;AAC9E,SAAO,eAAe,uBAAuB,IAAI,CAAC;AACnD","sourcesContent":["import {\n\tatom,\n\tselectorFamily,\n\tuseRecoilState,\n\tuseRecoilValue,\n\tuseSetRecoilState,\n} from \"recoil\";\nimport type {\n\tOrgUnitSelection,\n\tPeriodSelection,\n\tScorecardState,\n\tScorecardViewOptions,\n} from \"../schemas/config\";\nimport { get as _get, set as _set } from \"lodash\";\n\nexport const scorecardStateAtom = atom<ScorecardState | null>({\n\tkey: \"scorecardState\",\n\tdefault: null,\n\tdangerouslyAllowMutability: true,\n});\n\nexport const scorecardStateSelector = selectorFamily({\n\tkey: \"scorecardStateSelector\",\n\tget:\n\t\t(path: string | string[]) =>\n\t\t({ get }) => {\n\t\t\treturn _get(get(scorecardStateAtom), path);\n\t\t},\n\tset:\n\t\t(path: string | string[]) =>\n\t\t({ set }, newValue) => {\n\t\t\tset(scorecardStateAtom, (prevValue) => {\n\t\t\t\tconst updateState = { ...prevValue };\n\t\t\t\t_set(updateState, path, newValue);\n\t\t\t\treturn updateState as ScorecardState;\n\t\t\t});\n\t\t},\n});\n\nexport function useScorecardStateValue() {\n\treturn useRecoilValue(scorecardStateAtom);\n}\n\nexport function useScorecardOrgUnitSelectionState() {\n\treturn useRecoilState<OrgUnitSelection>(\n\t\tscorecardStateSelector(\"orgUnitSelection\"),\n\t);\n}\n\nexport function useScorecardPeriodState() {\n\treturn useRecoilState<PeriodSelection>(\n\t\tscorecardStateSelector(\"periodSelection\"),\n\t);\n}\n\nexport function useSetScorecardStateSelector<ConfigType>(\n\tpath: string | string[],\n) {\n\treturn useSetRecoilState<ConfigType>(scorecardStateSelector(path));\n}\n\nexport function useScorecardStateSelectorValue<ConfigType>(\n\tpath: string | string[],\n) {\n\treturn useRecoilValue<ConfigType>(scorecardStateSelector(path));\n}\n\nexport function useScorecardViewOptionValue(key: keyof ScorecardViewOptions) {\n\treturn useScorecardStateSelectorValue([\n\t\t\"options\",\n\t\tkey,\n\t]) as ScorecardViewOptions[typeof key];\n}\n\nexport function useScorecardStateSelector<ConfigType>(path: string | string[]) {\n\treturn useRecoilState(scorecardStateSelector(path));\n}\n"]}
@@ -4,4 +4,6 @@ export * from "./MetaProvider";
4
4
  export * from "./ScorecardPrint/ScorecardPrint";
5
5
  export * from "./ScorecardHeader";
6
6
  export * from "./ScorecardLegendsView";
7
+ export * from "./StateProvider";
8
+ export * from "./TableStateProvider";
7
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iCAAiC,CAAC;AAChD,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iCAAiC,CAAC;AAChD,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC"}
@@ -3,4 +3,5 @@ export * from "./schemas/config";
3
3
  export * from "./components";
4
4
  export * from "./hooks";
5
5
  export * from "./utils";
6
+ export * from "./state";
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
@@ -72,8 +72,38 @@ export declare function useScorecardStateValue(): {
72
72
  nested?: boolean | undefined;
73
73
  hasOnePeriod?: boolean | undefined;
74
74
  } | null;
75
+ export declare function useScorecardOrgUnitSelectionState(): [{
76
+ orgUnits: {
77
+ id: string;
78
+ }[];
79
+ userOrgUnit?: boolean | undefined;
80
+ userSubUnit?: boolean | undefined;
81
+ userSubX2Unit?: boolean | undefined;
82
+ groups?: string[] | undefined;
83
+ levels?: string[] | undefined;
84
+ }, import("recoil").SetterOrUpdater<{
85
+ orgUnits: {
86
+ id: string;
87
+ }[];
88
+ userOrgUnit?: boolean | undefined;
89
+ userSubUnit?: boolean | undefined;
90
+ userSubX2Unit?: boolean | undefined;
91
+ groups?: string[] | undefined;
92
+ levels?: string[] | undefined;
93
+ }>];
94
+ export declare function useScorecardPeriodState(): [{
95
+ periods: {
96
+ id: string;
97
+ }[];
98
+ type?: string | undefined;
99
+ }, import("recoil").SetterOrUpdater<{
100
+ periods: {
101
+ id: string;
102
+ }[];
103
+ type?: string | undefined;
104
+ }>];
75
105
  export declare function useSetScorecardStateSelector<ConfigType>(path: string | string[]): import("recoil").SetterOrUpdater<ConfigType>;
76
106
  export declare function useScorecardStateSelectorValue<ConfigType>(path: string | string[]): ConfigType;
77
107
  export declare function useScorecardViewOptionValue(key: keyof ScorecardViewOptions): boolean | "ALL" | "ABOVE_AVERAGE" | "BELOW_AVERAGE" | undefined;
78
108
  export declare function useScorecardStateSelector<ConfigType>(path: string | string[]): [any, import("recoil").SetterOrUpdater<any>];
79
- //# sourceMappingURL=scorecardState.d.ts.map
109
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/state/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAIX,oBAAoB,EACpB,MAAM,mBAAmB,CAAC;AAG3B,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAI7B,CAAC;AAEH,eAAO,MAAM,sBAAsB,iEAgBjC,CAAC;AAEH,wBAAgB,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAErC;AAED,wBAAgB,iCAAiC;;;;;;;;;;;;;;;;;;IAIhD;AAED,wBAAgB,uBAAuB;;;;;;;;;;IAItC;AAED,wBAAgB,4BAA4B,CAAC,UAAU,EACtD,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,gDAGvB;AAED,wBAAgB,8BAA8B,CAAC,UAAU,EACxD,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,cAGvB;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,oBAAoB,mEAK1E;AAED,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,gDAE5E"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hisptz/dhis2-scorecard",
3
- "version": "1.0.5",
3
+ "version": "1.0.7",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/esm/index.js",
6
6
  "types": "./dist/types/index.d.ts",
@@ -46,8 +46,8 @@
46
46
  "tsup": "^8.0.1",
47
47
  "typescript": "^5.3.3",
48
48
  "usehooks-ts": "^2.9.2",
49
- "@repo/typescript-config": "0.0.0",
50
- "@repo/eslint-config": "0.0.0"
49
+ "@repo/eslint-config": "0.0.0",
50
+ "@repo/typescript-config": "0.0.0"
51
51
  },
52
52
  "dependencies": {
53
53
  "@tanstack/react-table": "^8.19.3",
@@ -62,8 +62,8 @@
62
62
  "xlsx": "^0.18.5",
63
63
  "zod": "^3.23.8",
64
64
  "@hisptz/dhis2-ui": "2.0.27",
65
- "@hisptz/dhis2-analytics": "2.0.46",
66
- "@hisptz/dhis2-utils": "2.0.8"
65
+ "@hisptz/dhis2-utils": "2.0.8",
66
+ "@hisptz/dhis2-analytics": "2.0.46"
67
67
  },
68
68
  "peerDependencies": {
69
69
  "@dhis2/app-runtime": "^3.10.2",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/state/scorecardState.ts"],"names":[],"mappings":"AAAA;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAEP,SAAS,OAAO,MAAM,OAAO,YAAY;AAElC,MAAM,qBAAqB,KAA4B;AAAA,EAC7D,KAAK;AAAA,EACL,SAAS;AAAA,EACT,4BAA4B;AAC7B,CAAC;AAEM,MAAM,yBAAyB,eAAe;AAAA,EACpD,KAAK;AAAA,EACL,KACC,CAAC,SACD,CAAC,EAAE,IAAI,MAAM;AACZ,WAAO,KAAK,IAAI,kBAAkB,GAAG,IAAI;AAAA,EAC1C;AAAA,EACD,KACC,CAAC,SACD,CAAC,EAAE,IAAI,GAAG,aAAa;AACtB,QAAI,oBAAoB,CAAC,cAAc;AACtC,YAAM,cAAc,EAAE,GAAG,UAAU;AACnC,WAAK,aAAa,MAAM,QAAQ;AAChC,aAAO;AAAA,IACR,CAAC;AAAA,EACF;AACF,CAAC;AAEM,SAAS,yBAAyB;AACxC,SAAO,eAAe,kBAAkB;AACzC;AAEO,SAAS,6BACf,MACC;AACD,SAAO,kBAA8B,uBAAuB,IAAI,CAAC;AAClE;AAEO,SAAS,+BACf,MACC;AACD,SAAO,eAA2B,uBAAuB,IAAI,CAAC;AAC/D;AAEO,SAAS,4BAA4B,KAAiC;AAC5E,SAAO,+BAA+B;AAAA,IACrC;AAAA,IACA;AAAA,EACD,CAAC;AACF;AAEO,SAAS,0BAAsC,MAAyB;AAC9E,SAAO,eAAe,uBAAuB,IAAI,CAAC;AACnD","sourcesContent":["import {\n\tatom,\n\tselectorFamily,\n\tuseRecoilState,\n\tuseRecoilValue,\n\tuseSetRecoilState,\n} from \"recoil\";\nimport type { ScorecardState, ScorecardViewOptions } from \"../schemas/config\";\nimport { get as _get, set as _set } from \"lodash\";\n\nexport const scorecardStateAtom = atom<ScorecardState | null>({\n\tkey: \"scorecardState\",\n\tdefault: null,\n\tdangerouslyAllowMutability: true,\n});\n\nexport const scorecardStateSelector = selectorFamily({\n\tkey: \"scorecardStateSelector\",\n\tget:\n\t\t(path: string | string[]) =>\n\t\t({ get }) => {\n\t\t\treturn _get(get(scorecardStateAtom), path);\n\t\t},\n\tset:\n\t\t(path: string | string[]) =>\n\t\t({ set }, newValue) => {\n\t\t\tset(scorecardStateAtom, (prevValue) => {\n\t\t\t\tconst updateState = { ...prevValue };\n\t\t\t\t_set(updateState, path, newValue);\n\t\t\t\treturn updateState as ScorecardState;\n\t\t\t});\n\t\t},\n});\n\nexport function useScorecardStateValue() {\n\treturn useRecoilValue(scorecardStateAtom);\n}\n\nexport function useSetScorecardStateSelector<ConfigType>(\n\tpath: string | string[],\n) {\n\treturn useSetRecoilState<ConfigType>(scorecardStateSelector(path));\n}\n\nexport function useScorecardStateSelectorValue<ConfigType>(\n\tpath: string | string[],\n) {\n\treturn useRecoilValue<ConfigType>(scorecardStateSelector(path));\n}\n\nexport function useScorecardViewOptionValue(key: keyof ScorecardViewOptions) {\n\treturn useScorecardStateSelectorValue([\n\t\t\"options\",\n\t\tkey,\n\t]) as ScorecardViewOptions[typeof key];\n}\n\nexport function useScorecardStateSelector<ConfigType>(path: string | string[]) {\n\treturn useRecoilState(scorecardStateSelector(path));\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/state/scorecardState.ts"],"names":[],"mappings":"AAAA;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAEP,SAAS,OAAO,MAAM,OAAO,YAAY;AAElC,MAAM,qBAAqB,KAA4B;AAAA,EAC7D,KAAK;AAAA,EACL,SAAS;AAAA,EACT,4BAA4B;AAC7B,CAAC;AAEM,MAAM,yBAAyB,eAAe;AAAA,EACpD,KAAK;AAAA,EACL,KACC,CAAC,SACD,CAAC,EAAE,IAAI,MAAM;AACZ,WAAO,KAAK,IAAI,kBAAkB,GAAG,IAAI;AAAA,EAC1C;AAAA,EACD,KACC,CAAC,SACD,CAAC,EAAE,IAAI,GAAG,aAAa;AACtB,QAAI,oBAAoB,CAAC,cAAc;AACtC,YAAM,cAAc,EAAE,GAAG,UAAU;AACnC,WAAK,aAAa,MAAM,QAAQ;AAChC,aAAO;AAAA,IACR,CAAC;AAAA,EACF;AACF,CAAC;AAEM,SAAS,yBAAyB;AACxC,SAAO,eAAe,kBAAkB;AACzC;AAEO,SAAS,6BACf,MACC;AACD,SAAO,kBAA8B,uBAAuB,IAAI,CAAC;AAClE;AAEO,SAAS,+BACf,MACC;AACD,SAAO,eAA2B,uBAAuB,IAAI,CAAC;AAC/D;AAEO,SAAS,4BAA4B,KAAiC;AAC5E,SAAO,+BAA+B;AAAA,IACrC;AAAA,IACA;AAAA,EACD,CAAC;AACF;AAEO,SAAS,0BAAsC,MAAyB;AAC9E,SAAO,eAAe,uBAAuB,IAAI,CAAC;AACnD","sourcesContent":["import {\n\tatom,\n\tselectorFamily,\n\tuseRecoilState,\n\tuseRecoilValue,\n\tuseSetRecoilState,\n} from \"recoil\";\nimport type { ScorecardState, ScorecardViewOptions } from \"../schemas/config\";\nimport { get as _get, set as _set } from \"lodash\";\n\nexport const scorecardStateAtom = atom<ScorecardState | null>({\n\tkey: \"scorecardState\",\n\tdefault: null,\n\tdangerouslyAllowMutability: true,\n});\n\nexport const scorecardStateSelector = selectorFamily({\n\tkey: \"scorecardStateSelector\",\n\tget:\n\t\t(path: string | string[]) =>\n\t\t({ get }) => {\n\t\t\treturn _get(get(scorecardStateAtom), path);\n\t\t},\n\tset:\n\t\t(path: string | string[]) =>\n\t\t({ set }, newValue) => {\n\t\t\tset(scorecardStateAtom, (prevValue) => {\n\t\t\t\tconst updateState = { ...prevValue };\n\t\t\t\t_set(updateState, path, newValue);\n\t\t\t\treturn updateState as ScorecardState;\n\t\t\t});\n\t\t},\n});\n\nexport function useScorecardStateValue() {\n\treturn useRecoilValue(scorecardStateAtom);\n}\n\nexport function useSetScorecardStateSelector<ConfigType>(\n\tpath: string | string[],\n) {\n\treturn useSetRecoilState<ConfigType>(scorecardStateSelector(path));\n}\n\nexport function useScorecardStateSelectorValue<ConfigType>(\n\tpath: string | string[],\n) {\n\treturn useRecoilValue<ConfigType>(scorecardStateSelector(path));\n}\n\nexport function useScorecardViewOptionValue(key: keyof ScorecardViewOptions) {\n\treturn useScorecardStateSelectorValue([\n\t\t\"options\",\n\t\tkey,\n\t]) as ScorecardViewOptions[typeof key];\n}\n\nexport function useScorecardStateSelector<ConfigType>(path: string | string[]) {\n\treturn useRecoilState(scorecardStateSelector(path));\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"scorecardState.d.ts","sourceRoot":"","sources":["../../../src/state/scorecardState.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAkB,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAG9E,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAI7B,CAAC;AAEH,eAAO,MAAM,sBAAsB,iEAgBjC,CAAC;AAEH,wBAAgB,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAErC;AAED,wBAAgB,4BAA4B,CAAC,UAAU,EACtD,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,gDAGvB;AAED,wBAAgB,8BAA8B,CAAC,UAAU,EACxD,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,cAGvB;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,oBAAoB,mEAK1E;AAED,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,gDAE5E"}