@hisptz/dhis2-scorecard 1.0.5 → 1.0.6

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 (96) 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/esm/Scorecard.stories.js +1 -1
  36. package/dist/esm/Scorecard.stories.js.map +1 -1
  37. package/dist/esm/components/ColGroup.js +1 -1
  38. package/dist/esm/components/ColGroup.js.map +1 -1
  39. package/dist/esm/components/ScorecardHeader.js +1 -1
  40. package/dist/esm/components/ScorecardHeader.js.map +1 -1
  41. package/dist/esm/components/ScorecardLegendsView/components/ArrowLegendView.js +1 -1
  42. package/dist/esm/components/ScorecardLegendsView/components/ArrowLegendView.js.map +1 -1
  43. package/dist/esm/components/ScorecardTable/ScorecardTable.js +1 -1
  44. package/dist/esm/components/ScorecardTable/ScorecardTable.js.map +1 -1
  45. package/dist/esm/components/ScorecardTable/components/AverageCell.js +1 -1
  46. package/dist/esm/components/ScorecardTable/components/AverageCell.js.map +1 -1
  47. package/dist/esm/components/ScorecardTable/components/DataFooterCell.js +1 -1
  48. package/dist/esm/components/ScorecardTable/components/DataFooterCell.js.map +1 -1
  49. package/dist/esm/components/ScorecardTable/components/DataValue.js +1 -1
  50. package/dist/esm/components/ScorecardTable/components/DataValue.js.map +1 -1
  51. package/dist/esm/components/ScorecardTable/components/ExpandedScorecardTable.js +1 -1
  52. package/dist/esm/components/ScorecardTable/components/ExpandedScorecardTable.js.map +1 -1
  53. package/dist/esm/components/ScorecardTable/components/MetaFooterCell.js +1 -1
  54. package/dist/esm/components/ScorecardTable/components/MetaFooterCell.js.map +1 -1
  55. package/dist/esm/components/ScorecardTable/components/TableFoot.js +1 -1
  56. package/dist/esm/components/ScorecardTable/components/TableFoot.js.map +1 -1
  57. package/dist/esm/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js +1 -1
  58. package/dist/esm/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js.map +1 -1
  59. package/dist/esm/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js +1 -1
  60. package/dist/esm/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map +1 -1
  61. package/dist/esm/components/ScorecardTable/components/TableHeader/components/FilterArea.js +1 -1
  62. package/dist/esm/components/ScorecardTable/components/TableHeader/components/FilterArea.js.map +1 -1
  63. package/dist/esm/components/ScorecardTable/components/TableHeader/components/LabelCell.js +1 -1
  64. package/dist/esm/components/ScorecardTable/components/TableHeader/components/LabelCell.js.map +1 -1
  65. package/dist/esm/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js +1 -1
  66. package/dist/esm/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js.map +1 -1
  67. package/dist/esm/components/StateProvider.js +1 -1
  68. package/dist/esm/components/StateProvider.js.map +1 -1
  69. package/dist/esm/hooks/columns.js +1 -1
  70. package/dist/esm/hooks/columns.js.map +1 -1
  71. package/dist/esm/hooks/metadata.js +1 -1
  72. package/dist/esm/hooks/metadata.js.map +1 -1
  73. package/dist/esm/hooks/table.js +1 -1
  74. package/dist/esm/hooks/table.js.map +1 -1
  75. package/dist/esm/index.js +1 -0
  76. package/dist/esm/index.js.map +1 -1
  77. package/dist/esm/state/{scorecardState.js → index.js} +13 -3
  78. package/dist/esm/state/index.js.map +1 -0
  79. package/dist/hooks/columns.js +6 -6
  80. package/dist/hooks/columns.js.map +1 -1
  81. package/dist/hooks/metadata.js +3 -3
  82. package/dist/hooks/metadata.js.map +1 -1
  83. package/dist/hooks/table.js +10 -10
  84. package/dist/hooks/table.js.map +1 -1
  85. package/dist/index.js +7 -0
  86. package/dist/index.js.map +1 -1
  87. package/dist/state/{scorecardState.js → index.js} +13 -1
  88. package/dist/state/index.js.map +1 -0
  89. package/dist/types/index.d.ts +1 -0
  90. package/dist/types/index.d.ts.map +1 -1
  91. package/dist/types/state/{scorecardState.d.ts → index.d.ts} +31 -1
  92. package/dist/types/state/index.d.ts.map +1 -0
  93. package/package.json +1 -1
  94. package/dist/esm/state/scorecardState.js.map +0 -1
  95. package/dist/state/scorecardState.js.map +0 -1
  96. package/dist/types/state/scorecardState.d.ts.map +0 -1
@@ -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"]}
@@ -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.6",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/esm/index.js",
6
6
  "types": "./dist/types/index.d.ts",
@@ -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"}