@hisptz/dhis2-analytics 2.0.38 → 2.0.39

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 (76) hide show
  1. package/dist/components/Scorecard/Scorecard.js +3 -1
  2. package/dist/components/Scorecard/Scorecard.js.map +1 -1
  3. package/dist/components/Scorecard/components/ScorecardTable/ScorecardTable.js +38 -37
  4. package/dist/components/Scorecard/components/ScorecardTable/ScorecardTable.js.map +1 -1
  5. package/dist/components/Scorecard/components/ScorecardTable/components/AverageCell.js +1 -1
  6. package/dist/components/Scorecard/components/ScorecardTable/components/AverageCell.js.map +1 -1
  7. package/dist/components/Scorecard/components/ScorecardTable/components/DraggableCell.js +29 -30
  8. package/dist/components/Scorecard/components/ScorecardTable/components/DraggableCell.js.map +1 -1
  9. package/dist/components/Scorecard/components/ScorecardTable/components/DroppableCell.js +28 -16
  10. package/dist/components/Scorecard/components/ScorecardTable/components/DroppableCell.js.map +1 -1
  11. package/dist/components/Scorecard/components/ScorecardTable/components/EmptyFooterCell.js +1 -1
  12. package/dist/components/Scorecard/components/ScorecardTable/components/EmptyFooterCell.js.map +1 -1
  13. package/dist/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.js +1 -0
  14. package/dist/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.js.map +1 -1
  15. package/dist/components/Scorecard/components/ScorecardTable/components/PaginatedToolbar.js +51 -0
  16. package/dist/components/Scorecard/components/ScorecardTable/components/PaginatedToolbar.js.map +1 -0
  17. package/dist/components/Scorecard/components/ScorecardTable/components/TableBody.js +2 -1
  18. package/dist/components/Scorecard/components/ScorecardTable/components/TableBody.js.map +1 -1
  19. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js +1 -0
  20. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map +1 -1
  21. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.js +1 -0
  22. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.js.map +1 -1
  23. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/NumberCell.js +1 -0
  24. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/NumberCell.js.map +1 -1
  25. package/dist/components/Scorecard/components/TableStateProvider.js +20 -1
  26. package/dist/components/Scorecard/components/TableStateProvider.js.map +1 -1
  27. package/dist/components/Scorecard/hooks/table.js +11 -2
  28. package/dist/components/Scorecard/hooks/table.js.map +1 -1
  29. package/dist/components/Visualization/components/VisualizationDimensionSelector/index.js +1 -1
  30. package/dist/components/Visualization/components/VisualizationDimensionSelector/index.js.map +1 -1
  31. package/dist/esm/components/Scorecard/Scorecard.js +3 -1
  32. package/dist/esm/components/Scorecard/Scorecard.js.map +1 -1
  33. package/dist/esm/components/Scorecard/components/ScorecardTable/ScorecardTable.js +39 -38
  34. package/dist/esm/components/Scorecard/components/ScorecardTable/ScorecardTable.js.map +1 -1
  35. package/dist/esm/components/Scorecard/components/ScorecardTable/components/AverageCell.js +1 -1
  36. package/dist/esm/components/Scorecard/components/ScorecardTable/components/AverageCell.js.map +1 -1
  37. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DraggableCell.js +29 -30
  38. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DraggableCell.js.map +1 -1
  39. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DroppableCell.js +28 -16
  40. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DroppableCell.js.map +1 -1
  41. package/dist/esm/components/Scorecard/components/ScorecardTable/components/EmptyFooterCell.js +1 -1
  42. package/dist/esm/components/Scorecard/components/ScorecardTable/components/EmptyFooterCell.js.map +1 -1
  43. package/dist/esm/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.js +1 -0
  44. package/dist/esm/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.js.map +1 -1
  45. package/dist/esm/components/Scorecard/components/ScorecardTable/components/PaginatedToolbar.js +49 -0
  46. package/dist/esm/components/Scorecard/components/ScorecardTable/components/PaginatedToolbar.js.map +1 -0
  47. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableBody.js +3 -2
  48. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableBody.js.map +1 -1
  49. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js +1 -0
  50. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map +1 -1
  51. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.js +1 -0
  52. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.js.map +1 -1
  53. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/NumberCell.js +1 -0
  54. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/NumberCell.js.map +1 -1
  55. package/dist/esm/components/Scorecard/components/TableStateProvider.js +18 -2
  56. package/dist/esm/components/Scorecard/components/TableStateProvider.js.map +1 -1
  57. package/dist/esm/components/Scorecard/hooks/table.js +12 -3
  58. package/dist/esm/components/Scorecard/hooks/table.js.map +1 -1
  59. package/dist/esm/components/Visualization/components/VisualizationDimensionSelector/index.js +1 -1
  60. package/dist/esm/components/Visualization/components/VisualizationDimensionSelector/index.js.map +1 -1
  61. package/dist/types/components/Scorecard/Scorecard.d.ts.map +1 -1
  62. package/dist/types/components/Scorecard/components/ScorecardTable/ScorecardTable.d.ts.map +1 -1
  63. package/dist/types/components/Scorecard/components/ScorecardTable/components/DraggableCell.d.ts +2 -1
  64. package/dist/types/components/Scorecard/components/ScorecardTable/components/DraggableCell.d.ts.map +1 -1
  65. package/dist/types/components/Scorecard/components/ScorecardTable/components/DroppableCell.d.ts.map +1 -1
  66. package/dist/types/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.d.ts.map +1 -1
  67. package/dist/types/components/Scorecard/components/ScorecardTable/components/PaginatedToolbar.d.ts +2 -0
  68. package/dist/types/components/Scorecard/components/ScorecardTable/components/PaginatedToolbar.d.ts.map +1 -0
  69. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableBody.d.ts.map +1 -1
  70. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.d.ts.map +1 -1
  71. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.d.ts.map +1 -1
  72. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/NumberCell.d.ts.map +1 -1
  73. package/dist/types/components/Scorecard/components/TableStateProvider.d.ts +5 -0
  74. package/dist/types/components/Scorecard/components/TableStateProvider.d.ts.map +1 -1
  75. package/dist/types/components/Scorecard/hooks/table.d.ts.map +1 -1
  76. package/package.json +2 -4
@@ -4,9 +4,11 @@ var jsxRuntime = require('react/jsx-runtime');
4
4
  var TableStateProvider = require('./components/TableStateProvider');
5
5
  var ScorecardTable = require('./components/ScorecardTable');
6
6
  var DataProvider = require('./components/DataProvider');
7
+ var reactDndHtml5Backend = require('react-dnd-html5-backend');
8
+ var reactDnd = require('react-dnd');
7
9
 
8
10
  function Scorecard({ tableProps }) {
9
- return /* @__PURE__ */ jsxRuntime.jsx(DataProvider.ScorecardDataProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(TableStateProvider.TableStateProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(ScorecardTable.ScorecardTable, { ...tableProps ?? {} }) }) });
11
+ return /* @__PURE__ */ jsxRuntime.jsx(DataProvider.ScorecardDataProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(TableStateProvider.TableStateProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(reactDnd.DndProvider, { backend: reactDndHtml5Backend.HTML5Backend, children: /* @__PURE__ */ jsxRuntime.jsx(ScorecardTable.ScorecardTable, { ...tableProps ?? {} }) }) }) });
10
12
  }
11
13
 
12
14
  exports.Scorecard = Scorecard;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Scorecard/Scorecard.tsx"],"names":[],"mappings":"AAgBI;AAfJ,SAAS,0BAA0B;AACnC;AAAA,EACC;AAAA,OAEM;AACP,SAAS,6BAA6B;AAM/B,SAAS,UAAU,EAAE,WAAW,GAAuC;AAC7E,SACC,oBAAC,yBACA,8BAAC,sBACA,8BAAC,kBAAgB,GAAI,cAAc,CAAC,GAAI,GACzC,GACD;AAEF","sourcesContent":["import React from \"react\";\nimport { TableStateProvider } from \"./components/TableStateProvider\";\nimport {\n\tScorecardTable,\n\ttype ScorecardTableProps,\n} from \"./components/ScorecardTable\";\nimport { ScorecardDataProvider } from \"./components/DataProvider\";\n\nexport interface ScorecardProps {\n\ttableProps?: ScorecardTableProps;\n}\n\nexport function Scorecard({ tableProps }: ScorecardProps): React.ReactElement {\n\treturn (\n\t\t<ScorecardDataProvider>\n\t\t\t<TableStateProvider>\n\t\t\t\t<ScorecardTable {...(tableProps ?? {})} />\n\t\t\t</TableStateProvider>\n\t\t</ScorecardDataProvider>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../src/components/Scorecard/Scorecard.tsx"],"names":[],"mappings":"AAmBK;AAlBL,SAAS,0BAA0B;AACnC;AAAA,EACC;AAAA,OAEM;AACP,SAAS,6BAA6B;AACtC,SAAS,oBAAoB;AAC7B,SAAS,mBAAmB;AAMrB,SAAS,UAAU,EAAE,WAAW,GAAuC;AAC7E,SACC,oBAAC,yBACA,8BAAC,sBACA,8BAAC,eAAY,SAAS,cACrB,8BAAC,kBAAgB,GAAI,cAAc,CAAC,GAAI,GACzC,GACD,GACD;AAEF","sourcesContent":["import React from \"react\";\nimport { TableStateProvider } from \"./components/TableStateProvider\";\nimport {\n\tScorecardTable,\n\ttype ScorecardTableProps,\n} from \"./components/ScorecardTable\";\nimport { ScorecardDataProvider } from \"./components/DataProvider\";\nimport { HTML5Backend } from \"react-dnd-html5-backend\";\nimport { DndProvider } from \"react-dnd\";\n\nexport interface ScorecardProps {\n\ttableProps?: ScorecardTableProps;\n}\n\nexport function Scorecard({ tableProps }: ScorecardProps): React.ReactElement {\n\treturn (\n\t\t<ScorecardDataProvider>\n\t\t\t<TableStateProvider>\n\t\t\t\t<DndProvider backend={HTML5Backend}>\n\t\t\t\t\t<ScorecardTable {...(tableProps ?? {})} />\n\t\t\t\t</DndProvider>\n\t\t\t</TableStateProvider>\n\t\t</ScorecardDataProvider>\n\t);\n}\n"]}
@@ -5,14 +5,34 @@ var ui = require('@dhis2/ui');
5
5
  var TableHeader = require('./components/TableHeader');
6
6
  var TableBody = require('./components/TableBody');
7
7
  var TableFoot = require('./components/TableFoot');
8
- var core = require('@dnd-kit/core');
9
- var StateProvider = require('../StateProvider');
10
8
  var react = require('react');
9
+ var PaginatedToolbar = require('./components/PaginatedToolbar');
10
+ var reactDnd = require('react-dnd');
11
+ var StateProvider = require('../StateProvider');
11
12
 
12
13
  const ScorecardTable = react.memo(function TableComponent(props) {
13
14
  const tableRef = react.useRef(null);
15
+ const manager = reactDnd.useDragDropManager();
14
16
  const [isPending, startTransition] = react.useTransition();
15
17
  const updateState = StateProvider.useScorecardSetState();
18
+ react.useEffect(() => {
19
+ return manager.getMonitor().subscribeToStateChange(() => {
20
+ const dropResult = manager.getMonitor().getDropResult();
21
+ if (dropResult) {
22
+ startTransition(() => {
23
+ updateState((prevState) => {
24
+ return {
25
+ ...prevState,
26
+ options: {
27
+ ...prevState.options,
28
+ showDataInRows: !prevState.options.showDataInRows
29
+ }
30
+ };
31
+ });
32
+ });
33
+ }
34
+ });
35
+ }, [manager]);
16
36
  if (isPending) {
17
37
  return /* @__PURE__ */ jsxRuntime.jsx(
18
38
  "div",
@@ -28,41 +48,22 @@ const ScorecardTable = react.memo(function TableComponent(props) {
28
48
  }
29
49
  );
30
50
  }
31
- return /* @__PURE__ */ jsxRuntime.jsx(
32
- core.DndContext,
33
- {
34
- onDragEnd: (event) => {
35
- startTransition(() => {
36
- if (updateState) {
37
- if (!event.over || event.over.id === event.active.id) {
38
- updateState((prevState) => {
39
- return {
40
- ...prevState,
41
- options: {
42
- ...prevState.options,
43
- showDataInRows: !prevState.options.showDataInRows
44
- }
45
- };
46
- });
47
- }
48
- }
49
- });
50
- },
51
- children: /* @__PURE__ */ jsxRuntime.jsxs(
52
- ui.DataTable,
53
- {
54
- layout: "auto",
55
- ...props,
56
- ref: tableRef,
57
- children: [
58
- /* @__PURE__ */ jsxRuntime.jsx(TableHeader.TableHeader, {}),
59
- /* @__PURE__ */ jsxRuntime.jsx(TableBody.TableBody, { tableRef }),
60
- /* @__PURE__ */ jsxRuntime.jsx(TableFoot.TableFoot, {})
61
- ]
62
- }
63
- )
64
- }
65
- );
51
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
52
+ /* @__PURE__ */ jsxRuntime.jsxs(
53
+ ui.DataTable,
54
+ {
55
+ layout: "auto",
56
+ ...props,
57
+ ref: tableRef,
58
+ children: [
59
+ /* @__PURE__ */ jsxRuntime.jsx(TableHeader.TableHeader, {}),
60
+ /* @__PURE__ */ jsxRuntime.jsx(TableBody.TableBody, { tableRef }),
61
+ /* @__PURE__ */ jsxRuntime.jsx(TableFoot.TableFoot, {})
62
+ ]
63
+ }
64
+ ),
65
+ /* @__PURE__ */ jsxRuntime.jsx(PaginatedToolbar.PaginatedToolbar, {})
66
+ ] });
66
67
  });
67
68
 
68
69
  exports.ScorecardTable = ScorecardTable;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Scorecard/components/ScorecardTable/ScorecardTable.tsx"],"names":[],"mappings":"AA4BI,cA0BD,YA1BC;AA5BJ,SAAS,gBAAgB,iBAAsC;AAC/D,SAAS,mBAAmB;AAC5B,SAAS,iBAAiB;AAC1B,SAAS,iBAAiB;AAC1B,SAAS,kBAAkB;AAC3B,SAAS,4BAA4B;AACrC,SAAS,MAAM,QAAQ,qBAAqB;AAIrC,MAAM,iBAAiB,KAAK,SAAS,eAC3C,OACC;AACD,QAAM,WAAW,OAAyB,IAAI;AAC9C,QAAM,CAAC,WAAW,eAAe,IAAI,cAAc;AACnD,QAAM,cAAc,qBAAqB;AAEzC,MAAI,WAAW;AACd,WACC;AAAA,MAAC;AAAA;AAAA,QACA,OAAO;AAAA,UACN,QAAQ;AAAA,UACR,OAAO;AAAA,UACP,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,gBAAgB;AAAA,QACjB;AAAA,QAEA,8BAAC,kBAAe,OAAK,MAAC;AAAA;AAAA,IACvB;AAAA,EAEF;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAW,CAAC,UAAU;AACrB,wBAAgB,MAAM;AACrB,cAAI,aAAa;AAChB,gBAAI,CAAC,MAAM,QAAQ,MAAM,KAAK,OAAO,MAAM,OAAO,IAAI;AACrD,0BAAY,CAAC,cAAc;AAC1B,uBAAO;AAAA,kBACN,GAAG;AAAA,kBACH,SAAS;AAAA,oBACR,GAAG,UAAU;AAAA,oBACb,gBACC,CAAC,UAAU,QAAQ;AAAA,kBACrB;AAAA,gBACD;AAAA,cACD,CAAC;AAAA,YACF;AAAA,UACD;AAAA,QACD,CAAC;AAAA,MACF;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACA,QAAO;AAAA,UACN,GAAG;AAAA,UAEJ,KAAK;AAAA,UAEL;AAAA,gCAAC,eAAY;AAAA,YACb,oBAAC,aAAU,UAAoB;AAAA,YAC/B,oBAAC,aAAU;AAAA;AAAA;AAAA,MACZ;AAAA;AAAA,EACD;AAEF,CAAC","sourcesContent":["import { CircularLoader, DataTable, type DataTableProps } from \"@dhis2/ui\";\nimport { TableHeader } from \"./components/TableHeader\";\nimport { TableBody } from \"./components/TableBody\";\nimport { TableFoot } from \"./components/TableFoot\";\nimport { DndContext } from \"@dnd-kit/core\";\nimport { useScorecardSetState } from \"../StateProvider\";\nimport { memo, useRef, useTransition } from \"react\";\n\nexport interface ScorecardTableProps extends Omit<DataTableProps, \"children\"> {}\n\nexport const ScorecardTable = memo(function TableComponent(\n\tprops: ScorecardTableProps,\n) {\n\tconst tableRef = useRef<HTMLTableElement>(null);\n\tconst [isPending, startTransition] = useTransition();\n\tconst updateState = useScorecardSetState();\n\n\tif (isPending) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\theight: \"100%\",\n\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<CircularLoader small />\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<DndContext\n\t\t\tonDragEnd={(event) => {\n\t\t\t\tstartTransition(() => {\n\t\t\t\t\tif (updateState) {\n\t\t\t\t\t\tif (!event.over || event.over.id === event.active.id) {\n\t\t\t\t\t\t\tupdateState((prevState) => {\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t...prevState,\n\t\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\t\t...prevState.options,\n\t\t\t\t\t\t\t\t\t\tshowDataInRows:\n\t\t\t\t\t\t\t\t\t\t\t!prevState.options.showDataInRows,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}}\n\t\t>\n\t\t\t<DataTable\n\t\t\t\tlayout=\"auto\"\n\t\t\t\t{...props} /*\n // @ts-ignore */\n\t\t\t\tref={tableRef}\n\t\t\t>\n\t\t\t\t<TableHeader />\n\t\t\t\t<TableBody tableRef={tableRef} />\n\t\t\t\t<TableFoot />\n\t\t\t</DataTable>\n\t\t</DndContext>\n\t);\n});\n"]}
1
+ {"version":3,"sources":["../../../../../src/components/Scorecard/components/ScorecardTable/ScorecardTable.tsx"],"names":[],"mappings":"AAkDI,SAMF,UANE,KAOD,YAPC;AAlDJ,SAAS,gBAAgB,iBAAsC;AAC/D,SAAS,mBAAmB;AAC5B,SAAS,iBAAiB;AAC1B,SAAS,iBAAiB;AAC1B,SAAS,MAAM,WAAW,QAAQ,qBAAqB;AACvD,SAAS,wBAAwB;AACjC,SAAS,0BAA0B;AACnC,SAAS,4BAA4B;AAI9B,MAAM,iBAAiB,KAAK,SAAS,eAC3C,OACC;AACD,QAAM,WAAW,OAAyB,IAAI;AAC9C,QAAM,UAAU,mBAAmB;AACnC,QAAM,CAAC,WAAW,eAAe,IAAI,cAAc;AACnD,QAAM,cAAc,qBAAqB;AAEzC,YAAU,MAAM;AACf,WAAO,QAAQ,WAAW,EAAE,uBAAuB,MAAM;AACxD,YAAM,aAAa,QAAQ,WAAW,EAAE,cAAc;AACtD,UAAI,YAAY;AACf,wBAAgB,MAAM;AACrB,sBAAY,CAAC,cAAc;AAC1B,mBAAO;AAAA,cACN,GAAG;AAAA,cACH,SAAS;AAAA,gBACR,GAAG,UAAU;AAAA,gBACb,gBACC,CAAC,UAAU,QAAQ;AAAA,cACrB;AAAA,YACD;AAAA,UACD,CAAC;AAAA,QACF,CAAC;AAAA,MACF;AAAA,IACD,CAAC;AAAA,EACF,GAAG,CAAC,OAAO,CAAC;AAEZ,MAAI,WAAW;AACd,WACC;AAAA,MAAC;AAAA;AAAA,QACA,OAAO;AAAA,UACN,QAAQ;AAAA,UACR,OAAO;AAAA,UACP,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,gBAAgB;AAAA,QACjB;AAAA,QAEA,8BAAC,kBAAe,OAAK,MAAC;AAAA;AAAA,IACvB;AAAA,EAEF;AAEA,SACC,iCACC;AAAA;AAAA,MAAC;AAAA;AAAA,QACA,QAAO;AAAA,QACN,GAAG;AAAA,QAEJ,KAAK;AAAA,QAEL;AAAA,8BAAC,eAAY;AAAA,UACb,oBAAC,aAAU,UAAoB;AAAA,UAC/B,oBAAC,aAAU;AAAA;AAAA;AAAA,IACZ;AAAA,IACA,oBAAC,oBAAiB;AAAA,KACnB;AAEF,CAAC","sourcesContent":["import { CircularLoader, DataTable, type DataTableProps } from \"@dhis2/ui\";\nimport { TableHeader } from \"./components/TableHeader\";\nimport { TableBody } from \"./components/TableBody\";\nimport { TableFoot } from \"./components/TableFoot\";\nimport { memo, useEffect, useRef, useTransition } from \"react\";\nimport { PaginatedToolbar } from \"./components/PaginatedToolbar\";\nimport { useDragDropManager } from \"react-dnd\";\nimport { useScorecardSetState } from \"../StateProvider\";\n\nexport interface ScorecardTableProps extends Omit<DataTableProps, \"children\"> {}\n\nexport const ScorecardTable = memo(function TableComponent(\n\tprops: ScorecardTableProps,\n) {\n\tconst tableRef = useRef<HTMLTableElement>(null);\n\tconst manager = useDragDropManager();\n\tconst [isPending, startTransition] = useTransition();\n\tconst updateState = useScorecardSetState();\n\n\tuseEffect(() => {\n\t\treturn manager.getMonitor().subscribeToStateChange(() => {\n\t\t\tconst dropResult = manager.getMonitor().getDropResult();\n\t\t\tif (dropResult) {\n\t\t\t\tstartTransition(() => {\n\t\t\t\t\tupdateState((prevState) => {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...prevState,\n\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t...prevState.options,\n\t\t\t\t\t\t\t\tshowDataInRows:\n\t\t\t\t\t\t\t\t\t!prevState.options.showDataInRows,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}, [manager]);\n\n\tif (isPending) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\theight: \"100%\",\n\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<CircularLoader small />\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<DataTable\n\t\t\t\tlayout=\"auto\"\n\t\t\t\t{...props} /*\n // @ts-ignore */\n\t\t\t\tref={tableRef}\n\t\t\t>\n\t\t\t\t<TableHeader />\n\t\t\t\t<TableBody tableRef={tableRef} />\n\t\t\t\t<TableFoot />\n\t\t\t</DataTable>\n\t\t\t<PaginatedToolbar />\n\t\t</>\n\t);\n});\n"]}
@@ -119,7 +119,7 @@ function DataSourceAverageCell(props) {
119
119
  return /* @__PURE__ */ jsxRuntime.jsx(LinkedAverageCell, { size, dataSources });
120
120
  }
121
121
  }
122
- return /* @__PURE__ */ jsxRuntime.jsx(ui.DataTableCell, { style: { width: size } });
122
+ return /* @__PURE__ */ jsxRuntime.jsx(ui.DataTableCell, { bordered: true, style: { width: size } });
123
123
  }
124
124
  function OrgUnitAverageCell(props) {
125
125
  const size = props.cell.column.getSize();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Scorecard/components/ScorecardTable/components/AverageCell.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { CellContext } from \"@tanstack/react-table\";\nimport type {\n\tScorecardAverageCellData,\n\tScorecardTableAverageCellConfig,\n\tScorecardTableData,\n} from \"../../../schemas/config\";\nimport { DataTableCell } from \"@dhis2/ui\";\nimport { head, isEmpty } from \"lodash\";\nimport { useScorecardConfig } from \"../../ConfigProvider\";\nimport { useMemo } from \"react\";\nimport {\n\tgetLegend,\n\tgetTextColorFromBackgroundColor,\n} from \"../../../utils/legends\";\nimport { LinkedCell } from \"./LinkedCell\";\nimport {\n\tuseDataHolderAverageCellValue,\n\tuseOrgUnitAverageCellValue,\n} from \"../../../hooks/value\";\nimport { useScorecardStateSelector } from \"../../StateProvider\";\nimport { CellLoader } from \"./CellLoader\";\n\nexport function SingleAverageCell({\n\tdataSource,\n\tsize,\n}: {\n\tdataSource: ScorecardAverageCellData;\n\tsize: number;\n}) {\n\tconst config = useScorecardConfig();\n\tconst legendDefinition = useMemo(() => {\n\t\tif (!dataSource) {\n\t\t\treturn;\n\t\t}\n\t\treturn getLegend({\n\t\t\tdataSource,\n\t\t\tconfig: config!,\n\t\t\tvalue: dataSource.data.average,\n\t\t});\n\t}, [dataSource]);\n\n\tif (!dataSource.data.average || isNaN(dataSource.data.average)) {\n\t\treturn <DataTableCell bordered />;\n\t}\n\n\treturn (\n\t\t<DataTableCell\n\t\t\tbordered\n\t\t\tstyle={{\n\t\t\t\tbackground: legendDefinition?.color,\n\t\t\t\ttextAlign: \"center\",\n\t\t\t\tminWidth: 100,\n\t\t\t\twidth: size,\n\t\t\t\theight: 48,\n\t\t\t\tcolor: legendDefinition\n\t\t\t\t\t? getTextColorFromBackgroundColor(legendDefinition?.color)\n\t\t\t\t\t: undefined,\n\t\t\t}}\n\t\t\talign=\"center\"\n\t\t>\n\t\t\t<b>{dataSource.data.average?.toFixed(2).toString()}</b>\n\t\t</DataTableCell>\n\t);\n}\n\nexport function LinkedAverageCell({\n\tdataSources,\n\tsize,\n}: {\n\tdataSources: Array<ScorecardAverageCellData>;\n\tsize: number;\n}) {\n\tconst [top, bottom] = dataSources ?? [];\n\tconst config = useScorecardConfig();\n\tconst topLegendDefinition = useMemo(() => {\n\t\tif (!top) {\n\t\t\treturn;\n\t\t}\n\t\treturn getLegend({\n\t\t\tdataSource: top,\n\t\t\tconfig: config!,\n\t\t\tvalue: top.data.average,\n\t\t});\n\t}, [top]);\n\tconst bottomLegendDefinition = useMemo(() => {\n\t\tif (!bottom) {\n\t\t\treturn;\n\t\t}\n\t\treturn getLegend({\n\t\t\tdataSource: bottom,\n\t\t\tconfig: config!,\n\t\t\tvalue: bottom.data.average,\n\t\t});\n\t}, [bottom]);\n\n\treturn (\n\t\t<LinkedCell\n\t\t\tsize={size}\n\t\t\ttop={{\n\t\t\t\tdataSource: {\n\t\t\t\t\t...top,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tcurrent: top.data.average,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tlegendDefinition: topLegendDefinition,\n\t\t\t\tvalue: top.data.average,\n\t\t\t}}\n\t\t\tbottom={{\n\t\t\t\tdataSource: {\n\t\t\t\t\t...bottom,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tcurrent: bottom.data.average,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tlegendDefinition: bottomLegendDefinition,\n\t\t\t\tvalue: bottom.data.average,\n\t\t\t}}\n\t\t/>\n\t);\n}\n\nfunction DataSourceAverageCell(\n\tprops: CellContext<ScorecardTableData, ScorecardTableAverageCellConfig>,\n) {\n\tconst size = props.cell.column.getSize();\n\tconst dataConfig = useMemo(() => props.getValue(), [props.getValue()]);\n\tconst { cellData: dataSources, loading } =\n\t\tuseDataHolderAverageCellValue(dataConfig);\n\n\tif (loading) {\n\t\treturn <CellLoader size={size} />;\n\t}\n\n\tif (!isEmpty(dataSources)) {\n\t\tif (dataSources?.length === 1) {\n\t\t\treturn (\n\t\t\t\t<SingleAverageCell\n\t\t\t\t\tsize={size}\n\t\t\t\t\tdataSource={head(dataSources)!}\n\t\t\t\t/>\n\t\t\t);\n\t\t} else {\n\t\t\treturn <LinkedAverageCell size={size} dataSources={dataSources!} />;\n\t\t}\n\t}\n\n\treturn <DataTableCell style={{ width: size }} />;\n}\n\nfunction OrgUnitAverageCell(\n\tprops: CellContext<ScorecardTableData, ScorecardTableAverageCellConfig>,\n) {\n\tconst size = props.cell.column.getSize();\n\tconst dataConfig = useMemo(() => props.getValue(), [props.getValue()]);\n\tconst { loading, average } = useOrgUnitAverageCellValue(dataConfig);\n\n\tif (loading) {\n\t\treturn <CellLoader size={size} />;\n\t}\n\n\treturn (\n\t\t<DataTableCell\n\t\t\tstyle={{ width: size }}\n\t\t\tbordered\n\t\t\talign=\"center\"\n\t\t\tkey={props.row.id}\n\t\t>\n\t\t\t<b>{average?.toFixed(2).toString()}</b>\n\t\t</DataTableCell>\n\t);\n}\n\nexport function AverageCell(\n\tprops: CellContext<ScorecardTableData, ScorecardTableAverageCellConfig>,\n) {\n\tconst showDataInRows = useScorecardStateSelector<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\n\tif (showDataInRows) {\n\t\treturn <DataSourceAverageCell {...props} />;\n\t}\n\n\treturn <OrgUnitAverageCell {...props} />;\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../src/components/Scorecard/components/ScorecardTable/components/AverageCell.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { CellContext } from \"@tanstack/react-table\";\nimport type {\n\tScorecardAverageCellData,\n\tScorecardTableAverageCellConfig,\n\tScorecardTableData,\n} from \"../../../schemas/config\";\nimport { DataTableCell } from \"@dhis2/ui\";\nimport { head, isEmpty } from \"lodash\";\nimport { useScorecardConfig } from \"../../ConfigProvider\";\nimport { useMemo } from \"react\";\nimport {\n\tgetLegend,\n\tgetTextColorFromBackgroundColor,\n} from \"../../../utils/legends\";\nimport { LinkedCell } from \"./LinkedCell\";\nimport {\n\tuseDataHolderAverageCellValue,\n\tuseOrgUnitAverageCellValue,\n} from \"../../../hooks/value\";\nimport { useScorecardStateSelector } from \"../../StateProvider\";\nimport { CellLoader } from \"./CellLoader\";\n\nexport function SingleAverageCell({\n\tdataSource,\n\tsize,\n}: {\n\tdataSource: ScorecardAverageCellData;\n\tsize: number;\n}) {\n\tconst config = useScorecardConfig();\n\tconst legendDefinition = useMemo(() => {\n\t\tif (!dataSource) {\n\t\t\treturn;\n\t\t}\n\t\treturn getLegend({\n\t\t\tdataSource,\n\t\t\tconfig: config!,\n\t\t\tvalue: dataSource.data.average,\n\t\t});\n\t}, [dataSource]);\n\n\tif (!dataSource.data.average || isNaN(dataSource.data.average)) {\n\t\treturn <DataTableCell bordered />;\n\t}\n\n\treturn (\n\t\t<DataTableCell\n\t\t\tbordered\n\t\t\tstyle={{\n\t\t\t\tbackground: legendDefinition?.color,\n\t\t\t\ttextAlign: \"center\",\n\t\t\t\tminWidth: 100,\n\t\t\t\twidth: size,\n\t\t\t\theight: 48,\n\t\t\t\tcolor: legendDefinition\n\t\t\t\t\t? getTextColorFromBackgroundColor(legendDefinition?.color)\n\t\t\t\t\t: undefined,\n\t\t\t}}\n\t\t\talign=\"center\"\n\t\t>\n\t\t\t<b>{dataSource.data.average?.toFixed(2).toString()}</b>\n\t\t</DataTableCell>\n\t);\n}\n\nexport function LinkedAverageCell({\n\tdataSources,\n\tsize,\n}: {\n\tdataSources: Array<ScorecardAverageCellData>;\n\tsize: number;\n}) {\n\tconst [top, bottom] = dataSources ?? [];\n\tconst config = useScorecardConfig();\n\tconst topLegendDefinition = useMemo(() => {\n\t\tif (!top) {\n\t\t\treturn;\n\t\t}\n\t\treturn getLegend({\n\t\t\tdataSource: top,\n\t\t\tconfig: config!,\n\t\t\tvalue: top.data.average,\n\t\t});\n\t}, [top]);\n\tconst bottomLegendDefinition = useMemo(() => {\n\t\tif (!bottom) {\n\t\t\treturn;\n\t\t}\n\t\treturn getLegend({\n\t\t\tdataSource: bottom,\n\t\t\tconfig: config!,\n\t\t\tvalue: bottom.data.average,\n\t\t});\n\t}, [bottom]);\n\n\treturn (\n\t\t<LinkedCell\n\t\t\tsize={size}\n\t\t\ttop={{\n\t\t\t\tdataSource: {\n\t\t\t\t\t...top,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tcurrent: top.data.average,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tlegendDefinition: topLegendDefinition,\n\t\t\t\tvalue: top.data.average,\n\t\t\t}}\n\t\t\tbottom={{\n\t\t\t\tdataSource: {\n\t\t\t\t\t...bottom,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tcurrent: bottom.data.average,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tlegendDefinition: bottomLegendDefinition,\n\t\t\t\tvalue: bottom.data.average,\n\t\t\t}}\n\t\t/>\n\t);\n}\n\nfunction DataSourceAverageCell(\n\tprops: CellContext<ScorecardTableData, ScorecardTableAverageCellConfig>,\n) {\n\tconst size = props.cell.column.getSize();\n\tconst dataConfig = useMemo(() => props.getValue(), [props.getValue()]);\n\tconst { cellData: dataSources, loading } =\n\t\tuseDataHolderAverageCellValue(dataConfig);\n\n\tif (loading) {\n\t\treturn <CellLoader size={size} />;\n\t}\n\n\tif (!isEmpty(dataSources)) {\n\t\tif (dataSources?.length === 1) {\n\t\t\treturn (\n\t\t\t\t<SingleAverageCell\n\t\t\t\t\tsize={size}\n\t\t\t\t\tdataSource={head(dataSources)!}\n\t\t\t\t/>\n\t\t\t);\n\t\t} else {\n\t\t\treturn <LinkedAverageCell size={size} dataSources={dataSources!} />;\n\t\t}\n\t}\n\n\treturn <DataTableCell bordered style={{ width: size }} />;\n}\n\nfunction OrgUnitAverageCell(\n\tprops: CellContext<ScorecardTableData, ScorecardTableAverageCellConfig>,\n) {\n\tconst size = props.cell.column.getSize();\n\tconst dataConfig = useMemo(() => props.getValue(), [props.getValue()]);\n\tconst { loading, average } = useOrgUnitAverageCellValue(dataConfig);\n\n\tif (loading) {\n\t\treturn <CellLoader size={size} />;\n\t}\n\n\treturn (\n\t\t<DataTableCell\n\t\t\tstyle={{ width: size }}\n\t\t\tbordered\n\t\t\talign=\"center\"\n\t\t\tkey={props.row.id}\n\t\t>\n\t\t\t<b>{average?.toFixed(2).toString()}</b>\n\t\t</DataTableCell>\n\t);\n}\n\nexport function AverageCell(\n\tprops: CellContext<ScorecardTableData, ScorecardTableAverageCellConfig>,\n) {\n\tconst showDataInRows = useScorecardStateSelector<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\n\tif (showDataInRows) {\n\t\treturn <DataSourceAverageCell {...props} />;\n\t}\n\n\treturn <OrgUnitAverageCell {...props} />;\n}\n"]}
@@ -2,44 +2,43 @@
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var ui = require('@dhis2/ui');
5
- var core = require('@dnd-kit/core');
6
- var utilities = require('@dnd-kit/utilities');
5
+ var reactDnd = require('react-dnd');
7
6
 
8
7
  function DraggableCell({
9
8
  children,
10
9
  type,
11
10
  style,
11
+ id,
12
12
  ...props
13
13
  }) {
14
- const { attributes, listeners, setNodeRef, transform, isDragging } = core.useDraggable({
15
- id: type
16
- });
17
- const transformStyle = transform ? {
18
- transform: utilities.CSS.Translate.toString(transform)
19
- } : void 0;
20
- return /* @__PURE__ */ jsxRuntime.jsx(
21
- "div",
22
- {
23
- id: type,
24
- ...props,
25
- ...attributes,
26
- ...listeners,
27
- className: "column center",
28
- style: {
29
- ...style ?? {},
30
- ...transformStyle,
31
- background: isDragging ? ui.colors?.grey400 : void 0,
32
- cursor: "move",
33
- opacity: isDragging ? 0.5 : 1,
34
- height: "100%",
35
- width: "100%",
36
- padding: "0 12px",
37
- zIndex: isDragging ? 3 : void 0
14
+ const [collected, drag, dragPreview] = reactDnd.useDrag(() => {
15
+ return {
16
+ type,
17
+ item: {
18
+ id
38
19
  },
39
- ref: setNodeRef,
40
- children
41
- }
42
- );
20
+ collect: (monitor) => {
21
+ return {
22
+ isDragging: monitor.isDragging()
23
+ };
24
+ }
25
+ };
26
+ });
27
+ if (collected.isDragging) {
28
+ return /* @__PURE__ */ jsxRuntime.jsx(
29
+ "div",
30
+ {
31
+ ref: dragPreview,
32
+ style: {
33
+ backgroundColor: ui.colors.grey400,
34
+ opacity: 0.5,
35
+ cursor: "move"
36
+ },
37
+ children
38
+ }
39
+ );
40
+ }
41
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { style: { cursor: "move" }, id: type, ref: drag, children });
43
42
  }
44
43
 
45
44
  exports.DraggableCell = DraggableCell;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Scorecard/components/ScorecardTable/components/DraggableCell.tsx"],"names":[],"mappings":"AA4BE;AA5BF,SAAS,cAAc;AAGvB,SAAS,oBAAoB;AAC7B,SAAS,WAAW;AAEb,SAAS,cAAc;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACJ,GAIG;AACF,QAAM,EAAE,YAAY,WAAW,YAAY,WAAW,WAAW,IAChE,aAAa;AAAA,IACZ,IAAI;AAAA,EACL,CAAC;AAEF,QAAM,iBAAiB,YACpB;AAAA,IACA,WAAW,IAAI,UAAU,SAAS,SAAS;AAAA,EAC5C,IACC;AAEH,SACC;AAAA,IAAC;AAAA;AAAA,MACA,IAAI;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACJ,WAAU;AAAA,MACV,OAAO;AAAA,QACN,GAAI,SAAS,CAAC;AAAA,QACd,GAAG;AAAA,QACH,YAAY,aAAa,QAAQ,UAAU;AAAA,QAC3C,QAAQ;AAAA,QACR,SAAS,aAAa,MAAM;AAAA,QAC5B,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,SAAS;AAAA,QACT,QAAQ,aAAa,IAAI;AAAA,MAC1B;AAAA,MACA,KAAK;AAAA,MAEJ;AAAA;AAAA,EACF;AAEF","sourcesContent":["import { colors } from \"@dhis2/ui\";\nimport React from \"react\";\nimport type { ScorecardDraggableItems } from \"../../../schemas/config\";\nimport { useDraggable } from \"@dnd-kit/core\";\nimport { CSS } from \"@dnd-kit/utilities\";\n\nexport function DraggableCell({\n\tchildren,\n\ttype,\n\tstyle,\n\t...props\n}: {\n\tchildren: React.ReactNode;\n\ttype: ScorecardDraggableItems;\n\tstyle?: React.CSSProperties;\n}) {\n\tconst { attributes, listeners, setNodeRef, transform, isDragging } =\n\t\tuseDraggable({\n\t\t\tid: type,\n\t\t});\n\n\tconst transformStyle = transform\n\t\t? {\n\t\t\t\ttransform: CSS.Translate.toString(transform),\n\t\t\t}\n\t\t: undefined;\n\n\treturn (\n\t\t<div\n\t\t\tid={type}\n\t\t\t{...props}\n\t\t\t{...attributes}\n\t\t\t{...listeners}\n\t\t\tclassName=\"column center\"\n\t\t\tstyle={{\n\t\t\t\t...(style ?? {}),\n\t\t\t\t...transformStyle,\n\t\t\t\tbackground: isDragging ? colors?.grey400 : undefined,\n\t\t\t\tcursor: \"move\",\n\t\t\t\topacity: isDragging ? 0.5 : 1,\n\t\t\t\theight: \"100%\",\n\t\t\t\twidth: \"100%\",\n\t\t\t\tpadding: \"0 12px\",\n\t\t\t\tzIndex: isDragging ? 3 : undefined,\n\t\t\t}}\n\t\t\tref={setNodeRef}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../src/components/Scorecard/components/ScorecardTable/components/DraggableCell.tsx"],"names":[],"mappings":"AAiCG;AAjCH,SAAS,cAAc;AAGvB,SAAS,eAAe;AAEjB,SAAS,cAAc;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACJ,GAKG;AACF,QAAM,CAAC,WAAW,MAAM,WAAW,IAAI,QAAQ,MAAM;AACpD,WAAO;AAAA,MACN;AAAA,MACA,MAAM;AAAA,QACL;AAAA,MACD;AAAA,MACA,SAAS,CAAC,YAAY;AACrB,eAAO;AAAA,UACN,YAAY,QAAQ,WAAW;AAAA,QAChC;AAAA,MACD;AAAA,IACD;AAAA,EACD,CAAC;AAED,MAAI,UAAU,YAAY;AACzB,WACC;AAAA,MAAC;AAAA;AAAA,QACA,KAAK;AAAA,QACL,OAAO;AAAA,UACN,iBAAiB,OAAO;AAAA,UACxB,SAAS;AAAA,UACT,QAAQ;AAAA,QACT;AAAA,QAEC;AAAA;AAAA,IACF;AAAA,EAEF;AAEA,SACC,oBAAC,SAAI,OAAO,EAAE,QAAQ,OAAO,GAAG,IAAI,MAAM,KAAK,MAC7C,UACF;AAEF","sourcesContent":["import { colors } from \"@dhis2/ui\";\nimport React from \"react\";\nimport type { ScorecardDraggableItems } from \"../../../schemas/config\";\nimport { useDrag } from \"react-dnd\";\n\nexport function DraggableCell({\n\tchildren,\n\ttype,\n\tstyle,\n\tid,\n\t...props\n}: {\n\tchildren: React.ReactNode;\n\ttype: ScorecardDraggableItems;\n\tid: string;\n\tstyle?: React.CSSProperties;\n}) {\n\tconst [collected, drag, dragPreview] = useDrag(() => {\n\t\treturn {\n\t\t\ttype,\n\t\t\titem: {\n\t\t\t\tid,\n\t\t\t},\n\t\t\tcollect: (monitor) => {\n\t\t\t\treturn {\n\t\t\t\t\tisDragging: monitor.isDragging(),\n\t\t\t\t};\n\t\t\t},\n\t\t};\n\t});\n\n\tif (collected.isDragging) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={dragPreview}\n\t\t\t\tstyle={{\n\t\t\t\t\tbackgroundColor: colors.grey400,\n\t\t\t\t\topacity: 0.5,\n\t\t\t\t\tcursor: \"move\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div style={{ cursor: \"move\" }} id={type} ref={drag}>\n\t\t\t{children}\n\t\t</div>\n\t);\n}\n"]}
@@ -2,32 +2,44 @@
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var ui = require('@dhis2/ui');
5
- var react = require('react');
6
- var core = require('@dnd-kit/core');
7
- var lodash = require('lodash');
5
+ var reactDnd = require('react-dnd');
8
6
 
9
7
  function DroppableCell({
10
8
  accept,
11
9
  children
12
10
  }) {
13
- const { setNodeRef, active } = core.useDroppable({
14
- id: lodash.head(accept)
11
+ const [collectedProps, drop] = reactDnd.useDrop(() => {
12
+ return {
13
+ accept,
14
+ collect: (monitor) => {
15
+ if (monitor.canDrop()) {
16
+ return {
17
+ style: {
18
+ border: `2px dashed ${ui.colors.grey700}`,
19
+ background: `${ui.colors.grey100}`,
20
+ width: "100%"
21
+ }
22
+ };
23
+ } else {
24
+ return {
25
+ style: {
26
+ width: "100%",
27
+ border: `2px solid transparent`
28
+ }
29
+ };
30
+ }
31
+ },
32
+ drop: (results) => {
33
+ return results;
34
+ }
35
+ };
15
36
  });
16
- const canDrop = react.useMemo(() => {
17
- if (!active)
18
- return false;
19
- return accept.includes(active.id);
20
- }, [accept, active]);
21
37
  return /* @__PURE__ */ jsxRuntime.jsx(
22
38
  "div",
23
39
  {
24
- ref: setNodeRef,
40
+ ref: drop,
25
41
  className: "column center align-items-center",
26
- style: {
27
- border: canDrop ? `2px dashed ${ui.colors.grey700}` : void 0,
28
- background: canDrop ? `${ui.colors.grey100}` : void 0,
29
- width: "100%"
30
- },
42
+ ...collectedProps,
31
43
  children
32
44
  }
33
45
  );
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Scorecard/components/ScorecardTable/components/DroppableCell.tsx"],"names":[],"mappings":"AAuBE;AAvBF,SAAS,cAAc;AACvB,SAAgB,eAAe;AAE/B,SAAS,oBAAoB;AAC7B,SAAS,YAAY;AAEN,SAAR,cAA+B;AAAA,EACrC;AAAA,EACA;AACD,GAGG;AACF,QAAM,EAAE,YAAY,OAAO,IAAI,aAAa;AAAA,IAC3C,IAAI,KAAK,MAAM;AAAA,EAChB,CAAC;AAED,QAAM,UAAU,QAAQ,MAAM;AAC7B,QAAI,CAAC;AAAQ,aAAO;AACpB,WAAO,OAAO,SAAS,OAAO,EAA6B;AAAA,EAC5D,GAAG,CAAC,QAAQ,MAAM,CAAC;AAEnB,SACC;AAAA,IAAC;AAAA;AAAA,MACA,KAAK;AAAA,MACL,WAAU;AAAA,MACV,OAAO;AAAA,QACN,QAAQ,UAAU,cAAc,OAAO,OAAO,KAAK;AAAA,QACnD,YAAY,UAAU,GAAG,OAAO,OAAO,KAAK;AAAA,QAC5C,OAAO;AAAA,MACR;AAAA,MAEC;AAAA;AAAA,EACF;AAEF","sourcesContent":["import { colors } from \"@dhis2/ui\";\nimport React, { useMemo } from \"react\";\nimport type { ScorecardDraggableItems } from \"../../../schemas/config\";\nimport { useDroppable } from \"@dnd-kit/core\";\nimport { head } from \"lodash\";\n\nexport default function DroppableCell({\n\taccept,\n\tchildren,\n}: {\n\taccept: ScorecardDraggableItems[];\n\tchildren: React.ReactNode;\n}) {\n\tconst { setNodeRef, active } = useDroppable({\n\t\tid: head(accept) as string,\n\t});\n\n\tconst canDrop = useMemo(() => {\n\t\tif (!active) return false;\n\t\treturn accept.includes(active.id as ScorecardDraggableItems);\n\t}, [accept, active]);\n\n\treturn (\n\t\t<div\n\t\t\tref={setNodeRef}\n\t\t\tclassName=\"column center align-items-center\"\n\t\t\tstyle={{\n\t\t\t\tborder: canDrop ? `2px dashed ${colors.grey700}` : undefined,\n\t\t\t\tbackground: canDrop ? `${colors.grey100}` : undefined,\n\t\t\t\twidth: \"100%\",\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../src/components/Scorecard/components/ScorecardTable/components/DroppableCell.tsx"],"names":[],"mappings":"AAwCE;AAxCF,SAAS,cAAc;AAGvB,SAAS,eAAe;AAET,SAAR,cAA+B;AAAA,EACrC;AAAA,EACA;AACD,GAGG;AACF,QAAM,CAAC,gBAAgB,IAAI,IAAI,QAAQ,MAAM;AAC5C,WAAO;AAAA,MACN;AAAA,MACA,SAAS,CAAC,YAAY;AACrB,YAAI,QAAQ,QAAQ,GAAG;AACtB,iBAAO;AAAA,YACN,OAAO;AAAA,cACN,QAAQ,cAAc,OAAO,OAAO;AAAA,cACpC,YAAY,GAAG,OAAO,OAAO;AAAA,cAC7B,OAAO;AAAA,YACR;AAAA,UACD;AAAA,QACD,OAAO;AACN,iBAAO;AAAA,YACN,OAAO;AAAA,cACN,OAAO;AAAA,cACP,QAAQ;AAAA,YACT;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,MACA,MAAM,CAAC,YAA4B;AAClC,eAAO;AAAA,MACR;AAAA,IACD;AAAA,EACD,CAAC;AAED,SACC;AAAA,IAAC;AAAA;AAAA,MACA,KAAK;AAAA,MACL,WAAU;AAAA,MACT,GAAG;AAAA,MAEH;AAAA;AAAA,EACF;AAEF","sourcesContent":["import { colors } from \"@dhis2/ui\";\nimport React from \"react\";\nimport type { ScorecardDraggableItems } from \"../../../schemas/config\";\nimport { useDrop } from \"react-dnd\";\n\nexport default function DroppableCell({\n\taccept,\n\tchildren,\n}: {\n\taccept: ScorecardDraggableItems[];\n\tchildren: React.ReactNode;\n}) {\n\tconst [collectedProps, drop] = useDrop(() => {\n\t\treturn {\n\t\t\taccept,\n\t\t\tcollect: (monitor) => {\n\t\t\t\tif (monitor.canDrop()) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\tborder: `2px dashed ${colors.grey700}`,\n\t\t\t\t\t\t\tbackground: `${colors.grey100}`,\n\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\tborder: `2px solid transparent`,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t},\n\t\t\tdrop: (results: { id: string }) => {\n\t\t\t\treturn results;\n\t\t\t},\n\t\t};\n\t});\n\n\treturn (\n\t\t<div\n\t\t\tref={drop}\n\t\t\tclassName=\"column center align-items-center\"\n\t\t\t{...collectedProps}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t);\n}\n"]}
@@ -4,7 +4,7 @@ var jsxRuntime = require('react/jsx-runtime');
4
4
  var ui = require('@dhis2/ui');
5
5
 
6
6
  function EmptyFooterCell(props) {
7
- return /* @__PURE__ */ jsxRuntime.jsx(ui.DataTableCell, {});
7
+ return /* @__PURE__ */ jsxRuntime.jsx(ui.DataTableCell, { bordered: true });
8
8
  }
9
9
 
10
10
  exports.EmptyFooterCell = EmptyFooterCell;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Scorecard/components/ScorecardTable/components/EmptyFooterCell.tsx"],"names":[],"mappings":"AAOQ;AAPR,SAAS,qBAAqB;AAIvB,SAAS,gBACf,OACC;AACD,SAAO,oBAAC,iBAAc;AACvB","sourcesContent":["import { DataTableCell } from \"@dhis2/ui\";\nimport type { HeaderContext } from \"@tanstack/react-table\";\nimport type { ScorecardTableData } from \"../../../schemas/config\";\n\nexport function EmptyFooterCell(\n\tprops: HeaderContext<ScorecardTableData, unknown>,\n) {\n\treturn <DataTableCell />;\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../src/components/Scorecard/components/ScorecardTable/components/EmptyFooterCell.tsx"],"names":[],"mappings":"AAOQ;AAPR,SAAS,qBAAqB;AAIvB,SAAS,gBACf,OACC;AACD,SAAO,oBAAC,iBAAc,UAAQ,MAAC;AAChC","sourcesContent":["import { DataTableCell } from \"@dhis2/ui\";\nimport type { HeaderContext } from \"@tanstack/react-table\";\nimport type { ScorecardTableData } from \"../../../schemas/config\";\n\nexport function EmptyFooterCell(\n\tprops: HeaderContext<ScorecardTableData, unknown>,\n) {\n\treturn <DataTableCell bordered />;\n}\n"]}
@@ -17,6 +17,7 @@ function MetaFooterCell() {
17
17
  return /* @__PURE__ */ jsxRuntime.jsx(
18
18
  ui.DataTableCell,
19
19
  {
20
+ bordered: true,
20
21
  width: "300px",
21
22
  style: {
22
23
  width: "fit-content",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.tsx"],"names":[],"mappings":"AAwBG;AAxBH,SAAS,qBAAqB;AAC9B,OAAO,UAAU;AACjB,SAAS,iCAAiC;AAEnC,SAAS,iBAAiB;AAChC,QAAM,aAAa,0BAAmC;AAAA,IACrD;AAAA,IACA;AAAA,EACD,CAAC;AAED,SACC;AAAA,IAAC;AAAA;AAAA,MACA,OAAM;AAAA,MACN,OAAO;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,MACX;AAAA,MACA,OAAM;AAAA,MACN,SAAS,aAAa,MAAM;AAAA,MAC5B,OAAK;AAAA,MAGL,MAAK;AAAA,MAEL,8BAAC,OAAE,OAAO,EAAE,SAAS,QAAQ,GAAI,eAAK,EAAE,SAAS,GAAE;AAAA;AAAA,EACpD;AAEF","sourcesContent":["import { DataTableCell } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useScorecardStateSelector } from \"../../StateProvider\";\n\nexport function MetaFooterCell() {\n\tconst itemNumber = useScorecardStateSelector<boolean>([\n\t\t\"options\",\n\t\t\"itemNumber\",\n\t]);\n\n\treturn (\n\t\t<DataTableCell\n\t\t\twidth=\"300px\"\n\t\t\tstyle={{\n\t\t\t\twidth: \"fit-content\",\n\t\t\t\tminWidth: 300,\n\t\t\t}}\n\t\t\talign=\"center\"\n\t\t\tcolSpan={itemNumber ? \"3\" : \"2\"}\n\t\t\tfixed\n\t\t\t/*\n // @ts-ignore */\n\t\t\tleft=\"0\"\n\t\t>\n\t\t\t<b style={{ padding: \"8px 0\" }}>{i18n.t(\"Average\")}</b>\n\t\t</DataTableCell>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../src/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.tsx"],"names":[],"mappings":"AAyBG;AAzBH,SAAS,qBAAqB;AAC9B,OAAO,UAAU;AACjB,SAAS,iCAAiC;AAEnC,SAAS,iBAAiB;AAChC,QAAM,aAAa,0BAAmC;AAAA,IACrD;AAAA,IACA;AAAA,EACD,CAAC;AAED,SACC;AAAA,IAAC;AAAA;AAAA,MACA,UAAQ;AAAA,MACR,OAAM;AAAA,MACN,OAAO;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,MACX;AAAA,MACA,OAAM;AAAA,MACN,SAAS,aAAa,MAAM;AAAA,MAC5B,OAAK;AAAA,MAGL,MAAK;AAAA,MAEL,8BAAC,OAAE,OAAO,EAAE,SAAS,QAAQ,GAAI,eAAK,EAAE,SAAS,GAAE;AAAA;AAAA,EACpD;AAEF","sourcesContent":["import { DataTableCell } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useScorecardStateSelector } from \"../../StateProvider\";\n\nexport function MetaFooterCell() {\n\tconst itemNumber = useScorecardStateSelector<boolean>([\n\t\t\"options\",\n\t\t\"itemNumber\",\n\t]);\n\n\treturn (\n\t\t<DataTableCell\n\t\t\tbordered\n\t\t\twidth=\"300px\"\n\t\t\tstyle={{\n\t\t\t\twidth: \"fit-content\",\n\t\t\t\tminWidth: 300,\n\t\t\t}}\n\t\t\talign=\"center\"\n\t\t\tcolSpan={itemNumber ? \"3\" : \"2\"}\n\t\t\tfixed\n\t\t\t/*\n // @ts-ignore */\n\t\t\tleft=\"0\"\n\t\t>\n\t\t\t<b style={{ padding: \"8px 0\" }}>{i18n.t(\"Average\")}</b>\n\t\t</DataTableCell>\n\t);\n}\n"]}
@@ -0,0 +1,51 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var ui = require('@dhis2/ui');
5
+ var TableStateProvider = require('../../TableStateProvider');
6
+ var react = require('react');
7
+ var usehooksTs = require('usehooks-ts');
8
+
9
+ function PaginatedToolbar() {
10
+ const [isPending, startTransition] = react.useTransition();
11
+ const table = TableStateProvider.useTableState();
12
+ const rowCount = table.getRowCount();
13
+ const page = table.getState().pagination.pageIndex + 1;
14
+ const pageSize = table.getState().pagination.pageSize;
15
+ const pageCount = table.getPageCount();
16
+ const toggleTableLoading = TableStateProvider.useToggleTableLoadingState();
17
+ const onPageChange = (page2) => {
18
+ startTransition(() => {
19
+ table.setPageIndex(page2 - 1);
20
+ });
21
+ };
22
+ const onPageSizeChange = (pageSize2) => {
23
+ startTransition(() => {
24
+ table.setPageSize(pageSize2);
25
+ });
26
+ };
27
+ usehooksTs.useUpdateEffect(() => {
28
+ toggleTableLoading();
29
+ }, [isPending]);
30
+ if (rowCount <= 50) {
31
+ return null;
32
+ }
33
+ return /* @__PURE__ */ jsxRuntime.jsx(ui.DataTableToolbar, { position: "bottom", children: /* @__PURE__ */ jsxRuntime.jsx("div", { style: { width: "100%" }, children: /* @__PURE__ */ jsxRuntime.jsx(
34
+ ui.Pagination,
35
+ {
36
+ total: rowCount,
37
+ pageCount,
38
+ pageSizes: [10, 20, 30, 40, 50, 100].map(
39
+ (size) => size.toString()
40
+ ),
41
+ page,
42
+ pageSize,
43
+ onPageChange,
44
+ onPageSizeChange
45
+ }
46
+ ) }) });
47
+ }
48
+
49
+ exports.PaginatedToolbar = PaginatedToolbar;
50
+ //# sourceMappingURL=out.js.map
51
+ //# sourceMappingURL=PaginatedToolbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/components/Scorecard/components/ScorecardTable/components/PaginatedToolbar.tsx"],"names":["page","pageSize"],"mappings":"AAuCI;AAvCJ,SAAS,kBAAkB,kBAAkB;AAC7C;AAAA,EACC;AAAA,EACA;AAAA,OACM;AACP,SAAS,qBAAqB;AAC9B,SAAS,uBAAuB;AAEzB,SAAS,mBAAmB;AAClC,QAAM,CAAC,WAAW,eAAe,IAAI,cAAc;AACnD,QAAM,QAAQ,cAAc;AAC5B,QAAM,WAAW,MAAM,YAAY;AACnC,QAAM,OAAO,MAAM,SAAS,EAAE,WAAW,YAAY;AACrD,QAAM,WAAW,MAAM,SAAS,EAAE,WAAW;AAC7C,QAAM,YAAY,MAAM,aAAa;AACrC,QAAM,qBAAqB,2BAA2B;AAEtD,QAAM,eAAe,CAACA,UAAiB;AACtC,oBAAgB,MAAM;AACrB,YAAM,aAAaA,QAAO,CAAC;AAAA,IAC5B,CAAC;AAAA,EACF;AACA,QAAM,mBAAmB,CAACC,cAAqB;AAC9C,oBAAgB,MAAM;AACrB,YAAM,YAAYA,SAAQ;AAAA,IAC3B,CAAC;AAAA,EACF;AAEA,kBAAgB,MAAM;AACrB,uBAAmB;AAAA,EACpB,GAAG,CAAC,SAAS,CAAC;AAEd,MAAI,YAAY,IAAI;AACnB,WAAO;AAAA,EACR;AAEA,SACC,oBAAC,oBAAiB,UAAS,UAC1B,8BAAC,SAAI,OAAO,EAAE,OAAO,OAAO,GAC3B;AAAA,IAAC;AAAA;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA,WAAW,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE;AAAA,QAAI,CAAC,SACzC,KAAK,SAAS;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,EACD,GACD,GACD;AAEF","sourcesContent":["import { DataTableToolbar, Pagination } from \"@dhis2/ui\";\nimport {\n\tuseTableState,\n\tuseToggleTableLoadingState,\n} from \"../../TableStateProvider\";\nimport { useTransition } from \"react\";\nimport { useUpdateEffect } from \"usehooks-ts\";\n\nexport function PaginatedToolbar() {\n\tconst [isPending, startTransition] = useTransition();\n\tconst table = useTableState();\n\tconst rowCount = table.getRowCount();\n\tconst page = table.getState().pagination.pageIndex + 1;\n\tconst pageSize = table.getState().pagination.pageSize;\n\tconst pageCount = table.getPageCount();\n\tconst toggleTableLoading = useToggleTableLoadingState();\n\n\tconst onPageChange = (page: number) => {\n\t\tstartTransition(() => {\n\t\t\ttable.setPageIndex(page - 1);\n\t\t});\n\t};\n\tconst onPageSizeChange = (pageSize: number) => {\n\t\tstartTransition(() => {\n\t\t\ttable.setPageSize(pageSize);\n\t\t});\n\t};\n\n\tuseUpdateEffect(() => {\n\t\ttoggleTableLoading();\n\t}, [isPending]);\n\n\tif (rowCount <= 50) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<DataTableToolbar position=\"bottom\">\n\t\t\t<div style={{ width: \"100%\" }}>\n\t\t\t\t<Pagination\n\t\t\t\t\ttotal={rowCount}\n\t\t\t\t\tpageCount={pageCount}\n\t\t\t\t\tpageSizes={[10, 20, 30, 40, 50, 100].map((size) =>\n\t\t\t\t\t\tsize.toString(),\n\t\t\t\t\t)}\n\t\t\t\t\tpage={page}\n\t\t\t\t\tpageSize={pageSize}\n\t\t\t\t\tonPageChange={onPageChange}\n\t\t\t\t\tonPageSizeChange={onPageSizeChange}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</DataTableToolbar>\n\t);\n}\n"]}
@@ -12,13 +12,14 @@ const TableBody = react.memo(function TableBody2({
12
12
  tableRef
13
13
  }) {
14
14
  const table = TableStateProvider.useTableState();
15
+ const loading = TableStateProvider.useTableLoadingState();
15
16
  const rows = react.useMemo(
16
17
  () => table.getRowModel().rows,
17
18
  [table.getRowModel().rows]
18
19
  );
19
20
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
20
21
  /* @__PURE__ */ jsxRuntime.jsx("thead", { children: /* @__PURE__ */ jsxRuntime.jsx(DataProvider.ScorecardDataFetchProgressProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(LoadingIndicator.LoadingIndicator, { tableRef }) }) }),
21
- /* @__PURE__ */ jsxRuntime.jsx(ui.DataTableBody, { children: rows.map((row) => /* @__PURE__ */ jsxRuntime.jsx(DataRow.TableRow, { row }, row.id)) })
22
+ /* @__PURE__ */ jsxRuntime.jsx(ui.DataTableBody, { loading, children: rows.map((row) => /* @__PURE__ */ jsxRuntime.jsx(DataRow.TableRow, { row }, row.id)) })
22
23
  ] });
23
24
  });
24
25
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Scorecard/components/ScorecardTable/components/TableBody.tsx"],"names":["TableBody"],"mappings":"AAmBE,mBAGG,KAHH;AAnBF,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,gBAAgB;AACzB,SAAS,MAAsB,eAAe;AAC9C,SAAS,wBAAwB;AACjC,SAAS,0CAA0C;AAE5C,MAAM,YAAY,KAAK,SAASA,WAAU;AAAA,EAChD;AACD,GAEG;AACF,QAAM,QAAQ,cAAc;AAC5B,QAAM,OAAO;AAAA,IACZ,MAAM,MAAM,YAAY,EAAE;AAAA,IAC1B,CAAC,MAAM,YAAY,EAAE,IAAI;AAAA,EAC1B;AAEA,SACC,iCACC;AAAA,wBAAC,WACA,8BAAC,sCACA,8BAAC,oBAAiB,UAAoB,GACvC,GACD;AAAA,IACA,oBAAC,iBACC,eAAK,IAAI,CAAC,QACV,oBAAC,YAAsB,OAAR,IAAI,EAAc,CACjC,GACF;AAAA,KACD;AAEF,CAAC","sourcesContent":["import { DataTableBody } from \"@dhis2/ui\";\nimport { useTableState } from \"../../TableStateProvider\";\nimport { TableRow } from \"./DataRow\";\nimport { memo, type RefObject, useMemo } from \"react\";\nimport { LoadingIndicator } from \"../../LoadingIndicator\";\nimport { ScorecardDataFetchProgressProvider } from \"../../DataProvider\";\n\nexport const TableBody = memo(function TableBody({\n\ttableRef,\n}: {\n\ttableRef: RefObject<HTMLTableElement>;\n}) {\n\tconst table = useTableState();\n\tconst rows = useMemo(\n\t\t() => table.getRowModel().rows,\n\t\t[table.getRowModel().rows],\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<thead>\n\t\t\t\t<ScorecardDataFetchProgressProvider>\n\t\t\t\t\t<LoadingIndicator tableRef={tableRef} />\n\t\t\t\t</ScorecardDataFetchProgressProvider>\n\t\t\t</thead>\n\t\t\t<DataTableBody>\n\t\t\t\t{rows.map((row) => (\n\t\t\t\t\t<TableRow key={row.id} row={row} />\n\t\t\t\t))}\n\t\t\t</DataTableBody>\n\t\t</>\n\t);\n});\n"]}
1
+ {"version":3,"sources":["../../../../../../src/components/Scorecard/components/ScorecardTable/components/TableBody.tsx"],"names":["TableBody"],"mappings":"AAqBE,mBAGG,KAHH;AArBF,SAAS,qBAAqB;AAC9B,SAAS,sBAAsB,qBAAqB;AACpD,SAAS,gBAAgB;AACzB,SAAS,MAAsB,eAAe;AAC9C,SAAS,wBAAwB;AACjC,SAAS,0CAA0C;AAE5C,MAAM,YAAY,KAAK,SAASA,WAAU;AAAA,EAChD;AACD,GAEG;AACF,QAAM,QAAQ,cAAc;AAC5B,QAAM,UAAU,qBAAqB;AAErC,QAAM,OAAO;AAAA,IACZ,MAAM,MAAM,YAAY,EAAE;AAAA,IAC1B,CAAC,MAAM,YAAY,EAAE,IAAI;AAAA,EAC1B;AAEA,SACC,iCACC;AAAA,wBAAC,WACA,8BAAC,sCACA,8BAAC,oBAAiB,UAAoB,GACvC,GACD;AAAA,IACA,oBAAC,iBAAc,SACb,eAAK,IAAI,CAAC,QACV,oBAAC,YAAsB,OAAR,IAAI,EAAc,CACjC,GACF;AAAA,KACD;AAEF,CAAC","sourcesContent":["import { DataTableBody } from \"@dhis2/ui\";\nimport { useTableLoadingState, useTableState } from \"../../TableStateProvider\";\nimport { TableRow } from \"./DataRow\";\nimport { memo, type RefObject, useMemo } from \"react\";\nimport { LoadingIndicator } from \"../../LoadingIndicator\";\nimport { ScorecardDataFetchProgressProvider } from \"../../DataProvider\";\n\nexport const TableBody = memo(function TableBody({\n\ttableRef,\n}: {\n\ttableRef: RefObject<HTMLTableElement>;\n}) {\n\tconst table = useTableState();\n\tconst loading = useTableLoadingState();\n\n\tconst rows = useMemo(\n\t\t() => table.getRowModel().rows,\n\t\t[table.getRowModel().rows],\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<thead>\n\t\t\t\t<ScorecardDataFetchProgressProvider>\n\t\t\t\t\t<LoadingIndicator tableRef={tableRef} />\n\t\t\t\t</ScorecardDataFetchProgressProvider>\n\t\t\t</thead>\n\t\t\t<DataTableBody loading={loading}>\n\t\t\t\t{rows.map((row) => (\n\t\t\t\t\t<TableRow key={row.id} row={row} />\n\t\t\t\t))}\n\t\t\t</DataTableBody>\n\t\t</>\n\t);\n});\n"]}
@@ -52,6 +52,7 @@ function DataHeaderCellComponent({
52
52
  children: /* @__PURE__ */ jsxRuntime.jsx(
53
53
  DraggableCell.DraggableCell,
54
54
  {
55
+ id: label,
55
56
  type: dataInRows ? config.ScorecardDraggableItems.ou : config.ScorecardDraggableItems.data,
56
57
  children: bold ? /* @__PURE__ */ jsxRuntime.jsx("b", { children: label }) : label
57
58
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../src/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.tsx"],"names":[],"mappings":"AAeQ;AAdR;AAAA,EACC;AAAA,OAEM;AACP,SAAS,6BAA0D;AACnE,OAAO,UAAU;AACjB,SAAS,qBAAqB;AAC9B,OAAO,mBAAmB;AAC1B,SAAS,iCAAiC;AAEnC,SAAS,oBAAoB;AAAA,EACnC;AACD,GAA2C;AAC1C,QAAM,UAAU,OAAO,QAAQ,SAAS;AACxC,SAAO,oBAAC,yBAAsB,SAAkB;AACjD;AAEO,SAAS,wBAAwB;AAAA,EACvC;AAAA,EACA;AACD,GAA2C;AAC1C,QAAM,aAAa,0BAAmC;AAAA,IACrD;AAAA,IACA;AAAA,EACD,CAAC;AACD,QAAM,QACJ,OAAO,OAAO,UAAU,KAA2B,SACnD,OAAO,UAAU,KAA2B;AAE9C,QAAM,OACJ,OAAO,OAAO,UAAU,KAA4B,QACpD,OAAO,UAAU,KAA4B;AAE/C,QAAM,UAAU,OAAO,QAAQ,SAAS;AAExC,QAAM,gBAAgB,CAAC,QAAQ,YAAY,IACxC,YACC,OAAQ,YAAY;AACxB,QAAM,eACL,QAAQ,oBAAoB,MAAM,QAC/B,KAAK,EAAE,oBAAoB,IAC3B,QAAQ,oBAAoB,MAAM,SACjC,KAAK,EAAE,qBAAqB,IAC5B,KAAK,EAAE,SAAS;AAErB,SACC;AAAA,IAAC;AAAA;AAAA,MAEA,eAAe,KAAK,EAAE,yBAAyB,EAAE,aAAa,CAAC;AAAA,MAC/D,iBACC,OAAO,QAAQ,WAAW,KAAK,OAAO,WAAW,IAC9C,CAAC,GAAG,MAAM;AACV,cAAM,OAAO,OAAQ,wBAAwB;AAC7C,YAAI,MAAM;AACT,eAAK,CAAC;AAAA,QACP;AAAA,MACD,IACC;AAAA,MAEJ,eACC,OAAO,QAAQ,WAAW,KAAK,OAAO,WAAW,IAC9C,gBACA;AAAA,MAEJ,OAAM;AAAA,MACN;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACA,QACC,aACG,CAAC,wBAAwB,IAAI,IAC7B,CAAC,wBAAwB,EAAE;AAAA,UAG/B;AAAA,YAAC;AAAA;AAAA,cACA,MACC,aACG,wBAAwB,KACxB,wBAAwB;AAAA,cAG3B,iBAAO,oBAAC,OAAG,iBAAM,IAAO;AAAA;AAAA,UAC1B;AAAA;AAAA,MACD;AAAA;AAAA,IApCK,GAAG,KAAK;AAAA,EAqCd;AAEF;AAEO,MAAM,iBAAiB","sourcesContent":["import type { HeaderContext } from \"@tanstack/react-table\";\nimport {\n\tScorecardDraggableItems,\n\ttype ScorecardTableData,\n} from \"../../../../../schemas/config\";\nimport { DataTableColumnHeader, type DataTableSortDirection } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { DraggableCell } from \"../../DraggableCell\";\nimport DroppableCell from \"../../DroppableCell\";\nimport { useScorecardStateSelector } from \"../../../../StateProvider\";\n\nexport function EmptyDataHeaderCell({\n\theader,\n}: HeaderContext<ScorecardTableData, any>) {\n\tconst colSpan = header.colSpan.toString();\n\treturn <DataTableColumnHeader colSpan={colSpan} />;\n}\n\nexport function DataHeaderCellComponent({\n\tcolumn,\n\theader,\n}: HeaderContext<ScorecardTableData, any>) {\n\tconst dataInRows = useScorecardStateSelector<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\tconst label =\n\t\t(header.column.columnDef.meta as { label: string }).label ??\n\t\t(column.columnDef.meta as { label: string }).label;\n\n\tconst bold =\n\t\t(header.column.columnDef.meta as { bold?: boolean }).bold ??\n\t\t(column.columnDef.meta as { bold?: boolean }).bold;\n\n\tconst colSpan = header.colSpan.toString();\n\n\tconst sortDirection = !column?.getIsSorted()\n\t\t? \"default\"\n\t\t: (column!.getIsSorted() as DataTableSortDirection);\n\tconst nextSortType =\n\t\tcolumn?.getNextSortingOrder() === \"asc\"\n\t\t\t? i18n.t(\"in ascending order\")\n\t\t\t: column?.getNextSortingOrder() === \"desc\"\n\t\t\t\t? i18n.t(\"in descending order\")\n\t\t\t\t: i18n.t(\"disable\");\n\n\treturn (\n\t\t<DataTableColumnHeader\n\t\t\tkey={`${label}`}\n\t\t\tsortIconTitle={i18n.t(\"Sort {{nextSortType}}\", { nextSortType })}\n\t\t\tonSortIconClick={\n\t\t\t\theader.column?.getCanSort() || column.getCanSort()\n\t\t\t\t\t? (_, e) => {\n\t\t\t\t\t\t\tconst sort = column!.getToggleSortingHandler();\n\t\t\t\t\t\t\tif (sort) {\n\t\t\t\t\t\t\t\tsort(e);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tsortDirection={\n\t\t\t\theader.column?.getCanSort() || column.getCanSort()\n\t\t\t\t\t? sortDirection\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\talign=\"center\"\n\t\t\tcolSpan={colSpan}\n\t\t>\n\t\t\t<DroppableCell\n\t\t\t\taccept={\n\t\t\t\t\tdataInRows\n\t\t\t\t\t\t? [ScorecardDraggableItems.data]\n\t\t\t\t\t\t: [ScorecardDraggableItems.ou]\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<DraggableCell\n\t\t\t\t\ttype={\n\t\t\t\t\t\tdataInRows\n\t\t\t\t\t\t\t? ScorecardDraggableItems.ou\n\t\t\t\t\t\t\t: ScorecardDraggableItems.data\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{bold ? <b>{label}</b> : label}\n\t\t\t\t</DraggableCell>\n\t\t\t</DroppableCell>\n\t\t</DataTableColumnHeader>\n\t);\n}\n\nexport const DataHeaderCell = DataHeaderCellComponent;\n"]}
1
+ {"version":3,"sources":["../../../../../../../../src/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.tsx"],"names":[],"mappings":"AAeQ;AAdR;AAAA,EACC;AAAA,OAEM;AACP,SAAS,6BAA0D;AACnE,OAAO,UAAU;AACjB,SAAS,qBAAqB;AAC9B,OAAO,mBAAmB;AAC1B,SAAS,iCAAiC;AAEnC,SAAS,oBAAoB;AAAA,EACnC;AACD,GAA2C;AAC1C,QAAM,UAAU,OAAO,QAAQ,SAAS;AACxC,SAAO,oBAAC,yBAAsB,SAAkB;AACjD;AAEO,SAAS,wBAAwB;AAAA,EACvC;AAAA,EACA;AACD,GAA2C;AAC1C,QAAM,aAAa,0BAAmC;AAAA,IACrD;AAAA,IACA;AAAA,EACD,CAAC;AACD,QAAM,QACJ,OAAO,OAAO,UAAU,KAA2B,SACnD,OAAO,UAAU,KAA2B;AAE9C,QAAM,OACJ,OAAO,OAAO,UAAU,KAA4B,QACpD,OAAO,UAAU,KAA4B;AAE/C,QAAM,UAAU,OAAO,QAAQ,SAAS;AAExC,QAAM,gBAAgB,CAAC,QAAQ,YAAY,IACxC,YACC,OAAQ,YAAY;AACxB,QAAM,eACL,QAAQ,oBAAoB,MAAM,QAC/B,KAAK,EAAE,oBAAoB,IAC3B,QAAQ,oBAAoB,MAAM,SACjC,KAAK,EAAE,qBAAqB,IAC5B,KAAK,EAAE,SAAS;AAErB,SACC;AAAA,IAAC;AAAA;AAAA,MAEA,eAAe,KAAK,EAAE,yBAAyB,EAAE,aAAa,CAAC;AAAA,MAC/D,iBACC,OAAO,QAAQ,WAAW,KAAK,OAAO,WAAW,IAC9C,CAAC,GAAG,MAAM;AACV,cAAM,OAAO,OAAQ,wBAAwB;AAC7C,YAAI,MAAM;AACT,eAAK,CAAC;AAAA,QACP;AAAA,MACD,IACC;AAAA,MAEJ,eACC,OAAO,QAAQ,WAAW,KAAK,OAAO,WAAW,IAC9C,gBACA;AAAA,MAEJ,OAAM;AAAA,MACN;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACA,QACC,aACG,CAAC,wBAAwB,IAAI,IAC7B,CAAC,wBAAwB,EAAE;AAAA,UAG/B;AAAA,YAAC;AAAA;AAAA,cACA,IAAI;AAAA,cACJ,MACC,aACG,wBAAwB,KACxB,wBAAwB;AAAA,cAG3B,iBAAO,oBAAC,OAAG,iBAAM,IAAO;AAAA;AAAA,UAC1B;AAAA;AAAA,MACD;AAAA;AAAA,IArCK,GAAG,KAAK;AAAA,EAsCd;AAEF;AAEO,MAAM,iBAAiB","sourcesContent":["import type { HeaderContext } from \"@tanstack/react-table\";\nimport {\n\tScorecardDraggableItems,\n\ttype ScorecardTableData,\n} from \"../../../../../schemas/config\";\nimport { DataTableColumnHeader, type DataTableSortDirection } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { DraggableCell } from \"../../DraggableCell\";\nimport DroppableCell from \"../../DroppableCell\";\nimport { useScorecardStateSelector } from \"../../../../StateProvider\";\n\nexport function EmptyDataHeaderCell({\n\theader,\n}: HeaderContext<ScorecardTableData, any>) {\n\tconst colSpan = header.colSpan.toString();\n\treturn <DataTableColumnHeader colSpan={colSpan} />;\n}\n\nexport function DataHeaderCellComponent({\n\tcolumn,\n\theader,\n}: HeaderContext<ScorecardTableData, any>) {\n\tconst dataInRows = useScorecardStateSelector<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\tconst label =\n\t\t(header.column.columnDef.meta as { label: string }).label ??\n\t\t(column.columnDef.meta as { label: string }).label;\n\n\tconst bold =\n\t\t(header.column.columnDef.meta as { bold?: boolean }).bold ??\n\t\t(column.columnDef.meta as { bold?: boolean }).bold;\n\n\tconst colSpan = header.colSpan.toString();\n\n\tconst sortDirection = !column?.getIsSorted()\n\t\t? \"default\"\n\t\t: (column!.getIsSorted() as DataTableSortDirection);\n\tconst nextSortType =\n\t\tcolumn?.getNextSortingOrder() === \"asc\"\n\t\t\t? i18n.t(\"in ascending order\")\n\t\t\t: column?.getNextSortingOrder() === \"desc\"\n\t\t\t\t? i18n.t(\"in descending order\")\n\t\t\t\t: i18n.t(\"disable\");\n\n\treturn (\n\t\t<DataTableColumnHeader\n\t\t\tkey={`${label}`}\n\t\t\tsortIconTitle={i18n.t(\"Sort {{nextSortType}}\", { nextSortType })}\n\t\t\tonSortIconClick={\n\t\t\t\theader.column?.getCanSort() || column.getCanSort()\n\t\t\t\t\t? (_, e) => {\n\t\t\t\t\t\t\tconst sort = column!.getToggleSortingHandler();\n\t\t\t\t\t\t\tif (sort) {\n\t\t\t\t\t\t\t\tsort(e);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tsortDirection={\n\t\t\t\theader.column?.getCanSort() || column.getCanSort()\n\t\t\t\t\t? sortDirection\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\talign=\"center\"\n\t\t\tcolSpan={colSpan}\n\t\t>\n\t\t\t<DroppableCell\n\t\t\t\taccept={\n\t\t\t\t\tdataInRows\n\t\t\t\t\t\t? [ScorecardDraggableItems.data]\n\t\t\t\t\t\t: [ScorecardDraggableItems.ou]\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<DraggableCell\n\t\t\t\t\tid={label}\n\t\t\t\t\ttype={\n\t\t\t\t\t\tdataInRows\n\t\t\t\t\t\t\t? ScorecardDraggableItems.ou\n\t\t\t\t\t\t\t: ScorecardDraggableItems.data\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{bold ? <b>{label}</b> : label}\n\t\t\t\t</DraggableCell>\n\t\t\t</DroppableCell>\n\t\t</DataTableColumnHeader>\n\t);\n}\n\nexport const DataHeaderCell = DataHeaderCellComponent;\n"]}
@@ -52,6 +52,7 @@ function LabelCellComponent(props) {
52
52
  children: /* @__PURE__ */ jsxRuntime.jsx(
53
53
  DraggableCell.DraggableCell,
54
54
  {
55
+ id: data,
55
56
  type: dataInRows ? config.ScorecardDraggableItems.data : config.ScorecardDraggableItems.ou,
56
57
  children: data
57
58
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../src/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.tsx"],"names":["left"],"mappings":"AA2DI;AA1DJ;AAAA,EACC;AAAA,OAEM;AACP,SAAS,qBAAqB;AAC9B,OAAO,mBAAmB;AAC1B,SAAS,qBAAqB;AAC9B,SAAS,iCAAiC;AAC1C,SAAS,MAAM,eAAe;AAC9B,SAAS,YAAY;AAEd,SAAS,mBACf,OACC;AACD,QAAM,OAAO,MAAM,SAAS,EAAE,SAAS;AACvC,QAAM,OAAO,MAAM,KAAK,OAAO,QAAQ;AACvC,QAAM,aAAa,0BAAmC;AAAA,IACrD;AAAA,IACA;AAAA,EACD,CAAC;AAED,QAAM,aAAa,0BAAmC;AAAA,IACrD;AAAA,IACA;AAAA,EACD,CAAC;AAED,QAAM,YAAY,QAAQ,MAAM;AAC/B,UAAM,aAAa,KAAK,MAAM,IAAI,gBAAgB,CAAC;AACnD,WAAQ,YAAY,SAAS,KAAiB;AAAA,EAC/C,GAAG,CAAC,CAAC;AAEL,QAAM,OAAO,QAAQ,MAAM;AAC1B,QAAIA,QAAO;AACX,QAAI,YAAY;AACf,MAAAA;AAAA,IACD;AACA,WAAOA,QAAO;AAAA,EACf,GAAG,CAAC,WAAW,UAAU,CAAC;AAE1B,SACC;AAAA,IAAC;AAAA;AAAA,MACA,OAAO,GAAG,IAAI;AAAA,MACd,OAAO;AAAA,QACN,OAAO;AAAA,MACR;AAAA,MACA,OAAK;AAAA,MAGL,MAAM,GAAG,IAAI;AAAA,MACb,UAAQ;AAAA,MAER;AAAA,QAAC;AAAA;AAAA,UACA,QACC,aACG,CAAC,wBAAwB,EAAE,IAC3B,CAAC,wBAAwB,IAAI;AAAA,UAGjC;AAAA,YAAC;AAAA;AAAA,cACA,MACC,aACG,wBAAwB,OACxB,wBAAwB;AAAA,cAG3B;AAAA;AAAA,UACF;AAAA;AAAA,MACD;AAAA;AAAA,EACD;AAEF;AAEO,MAAM,YAAY,KAAK,kBAAkB","sourcesContent":["import type { CellContext } from \"@tanstack/react-table\";\nimport {\n\tScorecardDraggableItems,\n\ttype ScorecardTableData,\n} from \"../../../../../schemas/config\";\nimport { DataTableCell } from \"@dhis2/ui\";\nimport DroppableCell from \"../../DroppableCell\";\nimport { DraggableCell } from \"../../DraggableCell\";\nimport { useScorecardStateSelector } from \"../../../../StateProvider\";\nimport { memo, useMemo } from \"react\";\nimport { head } from \"lodash\";\n\nexport function LabelCellComponent(\n\tprops: CellContext<ScorecardTableData, string | number>,\n) {\n\tconst data = props.getValue().toString();\n\tconst size = props.cell.column.getSize();\n\tconst dataInRows = useScorecardStateSelector<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\n\tconst itemNumber = useScorecardStateSelector<boolean>([\n\t\t\"options\",\n\t\t\"itemNumber\",\n\t]);\n\n\tconst canExpand = useMemo(() => {\n\t\tconst expandCell = head(props.row.getVisibleCells());\n\t\treturn (expandCell?.getValue() as boolean) ?? false;\n\t}, []);\n\n\tconst left = useMemo(() => {\n\t\tlet left = 1;\n\t\tif (itemNumber) {\n\t\t\tleft++;\n\t\t}\n\t\treturn left * 48;\n\t}, [canExpand, itemNumber]);\n\n\treturn (\n\t\t<DataTableCell\n\t\t\twidth={`${size}px`}\n\t\t\tstyle={{\n\t\t\t\twidth: size,\n\t\t\t}}\n\t\t\tfixed\n\t\t\t/*\n // @ts-ignore */\n\t\t\tleft={`${left}px`}\n\t\t\tbordered\n\t\t>\n\t\t\t<DroppableCell\n\t\t\t\taccept={\n\t\t\t\t\tdataInRows\n\t\t\t\t\t\t? [ScorecardDraggableItems.ou]\n\t\t\t\t\t\t: [ScorecardDraggableItems.data]\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<DraggableCell\n\t\t\t\t\ttype={\n\t\t\t\t\t\tdataInRows\n\t\t\t\t\t\t\t? ScorecardDraggableItems.data\n\t\t\t\t\t\t\t: ScorecardDraggableItems.ou\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{data}\n\t\t\t\t</DraggableCell>\n\t\t\t</DroppableCell>\n\t\t</DataTableCell>\n\t);\n}\n\nexport const LabelCell = memo(LabelCellComponent);\n"]}
1
+ {"version":3,"sources":["../../../../../../../../src/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.tsx"],"names":["left"],"mappings":"AA2DI;AA1DJ;AAAA,EACC;AAAA,OAEM;AACP,SAAS,qBAAqB;AAC9B,OAAO,mBAAmB;AAC1B,SAAS,qBAAqB;AAC9B,SAAS,iCAAiC;AAC1C,SAAS,MAAM,eAAe;AAC9B,SAAS,YAAY;AAEd,SAAS,mBACf,OACC;AACD,QAAM,OAAO,MAAM,SAAS,EAAE,SAAS;AACvC,QAAM,OAAO,MAAM,KAAK,OAAO,QAAQ;AACvC,QAAM,aAAa,0BAAmC;AAAA,IACrD;AAAA,IACA;AAAA,EACD,CAAC;AAED,QAAM,aAAa,0BAAmC;AAAA,IACrD;AAAA,IACA;AAAA,EACD,CAAC;AAED,QAAM,YAAY,QAAQ,MAAM;AAC/B,UAAM,aAAa,KAAK,MAAM,IAAI,gBAAgB,CAAC;AACnD,WAAQ,YAAY,SAAS,KAAiB;AAAA,EAC/C,GAAG,CAAC,CAAC;AAEL,QAAM,OAAO,QAAQ,MAAM;AAC1B,QAAIA,QAAO;AACX,QAAI,YAAY;AACf,MAAAA;AAAA,IACD;AACA,WAAOA,QAAO;AAAA,EACf,GAAG,CAAC,WAAW,UAAU,CAAC;AAE1B,SACC;AAAA,IAAC;AAAA;AAAA,MACA,OAAO,GAAG,IAAI;AAAA,MACd,OAAO;AAAA,QACN,OAAO;AAAA,MACR;AAAA,MACA,OAAK;AAAA,MAGL,MAAM,GAAG,IAAI;AAAA,MACb,UAAQ;AAAA,MAER;AAAA,QAAC;AAAA;AAAA,UACA,QACC,aACG,CAAC,wBAAwB,EAAE,IAC3B,CAAC,wBAAwB,IAAI;AAAA,UAGjC;AAAA,YAAC;AAAA;AAAA,cACA,IAAI;AAAA,cACJ,MACC,aACG,wBAAwB,OACxB,wBAAwB;AAAA,cAG3B;AAAA;AAAA,UACF;AAAA;AAAA,MACD;AAAA;AAAA,EACD;AAEF;AAEO,MAAM,YAAY,KAAK,kBAAkB","sourcesContent":["import type { CellContext } from \"@tanstack/react-table\";\nimport {\n\tScorecardDraggableItems,\n\ttype ScorecardTableData,\n} from \"../../../../../schemas/config\";\nimport { DataTableCell } from \"@dhis2/ui\";\nimport DroppableCell from \"../../DroppableCell\";\nimport { DraggableCell } from \"../../DraggableCell\";\nimport { useScorecardStateSelector } from \"../../../../StateProvider\";\nimport { memo, useMemo } from \"react\";\nimport { head } from \"lodash\";\n\nexport function LabelCellComponent(\n\tprops: CellContext<ScorecardTableData, string | number>,\n) {\n\tconst data = props.getValue().toString();\n\tconst size = props.cell.column.getSize();\n\tconst dataInRows = useScorecardStateSelector<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\n\tconst itemNumber = useScorecardStateSelector<boolean>([\n\t\t\"options\",\n\t\t\"itemNumber\",\n\t]);\n\n\tconst canExpand = useMemo(() => {\n\t\tconst expandCell = head(props.row.getVisibleCells());\n\t\treturn (expandCell?.getValue() as boolean) ?? false;\n\t}, []);\n\n\tconst left = useMemo(() => {\n\t\tlet left = 1;\n\t\tif (itemNumber) {\n\t\t\tleft++;\n\t\t}\n\t\treturn left * 48;\n\t}, [canExpand, itemNumber]);\n\n\treturn (\n\t\t<DataTableCell\n\t\t\twidth={`${size}px`}\n\t\t\tstyle={{\n\t\t\t\twidth: size,\n\t\t\t}}\n\t\t\tfixed\n\t\t\t/*\n // @ts-ignore */\n\t\t\tleft={`${left}px`}\n\t\t\tbordered\n\t\t>\n\t\t\t<DroppableCell\n\t\t\t\taccept={\n\t\t\t\t\tdataInRows\n\t\t\t\t\t\t? [ScorecardDraggableItems.ou]\n\t\t\t\t\t\t: [ScorecardDraggableItems.data]\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<DraggableCell\n\t\t\t\t\tid={data}\n\t\t\t\t\ttype={\n\t\t\t\t\t\tdataInRows\n\t\t\t\t\t\t\t? ScorecardDraggableItems.data\n\t\t\t\t\t\t\t: ScorecardDraggableItems.ou\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{data}\n\t\t\t\t</DraggableCell>\n\t\t\t</DroppableCell>\n\t\t</DataTableCell>\n\t);\n}\n\nexport const LabelCell = memo(LabelCellComponent);\n"]}
@@ -10,6 +10,7 @@ function NumberCellComponent(props) {
10
10
  return /* @__PURE__ */ jsxRuntime.jsx(
11
11
  ui.DataTableCell,
12
12
  {
13
+ bordered: true,
13
14
  width: `${size}px`,
14
15
  style: {
15
16
  width: size,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../src/components/Scorecard/components/ScorecardTable/components/TableHeader/components/NumberCell.tsx"],"names":[],"mappings":"AAYE;AAVF,SAAS,qBAAqB;AAC9B,SAAS,YAAY;AAErB,SAAS,oBACR,OACC;AACD,QAAM,OAAO,MAAM,SAAS,EAAE,SAAS;AACvC,QAAM,OAAO,MAAM,KAAK,OAAO,QAAQ;AAEvC,SACC;AAAA,IAAC;AAAA;AAAA,MACA,OAAO,GAAG,IAAI;AAAA,MACd,OAAO;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,QACV,UAAU;AAAA,QACV,QAAQ;AAAA,MACT;AAAA,MACA,OAAK;AAAA,MAGL,MAAK;AAAA,MAEJ;AAAA;AAAA,EACF;AAEF;AAEO,MAAM,aAAa,KAAK,mBAAmB","sourcesContent":["import type { CellContext } from \"@tanstack/react-table\";\nimport type { ScorecardTableData } from \"../../../../../schemas/config\";\nimport { DataTableCell } from \"@dhis2/ui\";\nimport { memo } from \"react\";\n\nfunction NumberCellComponent(\n\tprops: CellContext<ScorecardTableData, string | number>,\n) {\n\tconst data = props.getValue().toString();\n\tconst size = props.cell.column.getSize();\n\n\treturn (\n\t\t<DataTableCell\n\t\t\twidth={`${size}px`}\n\t\t\tstyle={{\n\t\t\t\twidth: size,\n\t\t\t\tminWidth: size,\n\t\t\t\tmaxWidth: 48,\n\t\t\t\theight: 48,\n\t\t\t}}\n\t\t\tfixed\n\t\t\t/*\n // @ts-ignore */\n\t\t\tleft=\"48px\"\n\t\t>\n\t\t\t{data}\n\t\t</DataTableCell>\n\t);\n}\n\nexport const NumberCell = memo(NumberCellComponent);\n"]}
1
+ {"version":3,"sources":["../../../../../../../../src/components/Scorecard/components/ScorecardTable/components/TableHeader/components/NumberCell.tsx"],"names":[],"mappings":"AAYE;AAVF,SAAS,qBAAqB;AAC9B,SAAS,YAAY;AAErB,SAAS,oBACR,OACC;AACD,QAAM,OAAO,MAAM,SAAS,EAAE,SAAS;AACvC,QAAM,OAAO,MAAM,KAAK,OAAO,QAAQ;AAEvC,SACC;AAAA,IAAC;AAAA;AAAA,MACA,UAAQ;AAAA,MACR,OAAO,GAAG,IAAI;AAAA,MACd,OAAO;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,QACV,UAAU;AAAA,QACV,QAAQ;AAAA,MACT;AAAA,MACA,OAAK;AAAA,MAGL,MAAK;AAAA,MAEJ;AAAA;AAAA,EACF;AAEF;AAEO,MAAM,aAAa,KAAK,mBAAmB","sourcesContent":["import type { CellContext } from \"@tanstack/react-table\";\nimport type { ScorecardTableData } from \"../../../../../schemas/config\";\nimport { DataTableCell } from \"@dhis2/ui\";\nimport { memo } from \"react\";\n\nfunction NumberCellComponent(\n\tprops: CellContext<ScorecardTableData, string | number>,\n) {\n\tconst data = props.getValue().toString();\n\tconst size = props.cell.column.getSize();\n\n\treturn (\n\t\t<DataTableCell\n\t\t\tbordered\n\t\t\twidth={`${size}px`}\n\t\t\tstyle={{\n\t\t\t\twidth: size,\n\t\t\t\tminWidth: size,\n\t\t\t\tmaxWidth: 48,\n\t\t\t\theight: 48,\n\t\t\t}}\n\t\t\tfixed\n\t\t\t/*\n // @ts-ignore */\n\t\t\tleft=\"48px\"\n\t\t>\n\t\t\t{data}\n\t\t</DataTableCell>\n\t);\n}\n\nexport const NumberCell = memo(NumberCellComponent);\n"]}
@@ -4,6 +4,7 @@ var jsxRuntime = require('react/jsx-runtime');
4
4
  var react = require('react');
5
5
  var reactTable = require('@tanstack/react-table');
6
6
  var table = require('../hooks/table');
7
+ var usehooksTs = require('usehooks-ts');
7
8
 
8
9
  const TableStateContext = react.createContext({
9
10
  state: {},
@@ -11,16 +12,34 @@ const TableStateContext = react.createContext({
11
12
  getCoreRowModel: reactTable.getCoreRowModel(),
12
13
  data: []
13
14
  });
15
+ const TableLoadingStateContext = react.createContext(false);
16
+ const TableLoadingStateToggleContext = react.createContext(() => {
17
+ });
14
18
  function useTableState() {
15
19
  const context = react.useContext(TableStateContext);
16
20
  return reactTable.useReactTable(context);
17
21
  }
22
+ function useToggleTableLoadingState() {
23
+ return react.useContext(TableLoadingStateToggleContext);
24
+ }
25
+ function useTableLoadingState() {
26
+ return react.useContext(TableLoadingStateContext);
27
+ }
28
+ function TableLoadingStateProvider({
29
+ children
30
+ }) {
31
+ const { value: loading, toggle } = usehooksTs.useBoolean(false);
32
+ return /* @__PURE__ */ jsxRuntime.jsx(TableLoadingStateToggleContext.Provider, { value: toggle, children: /* @__PURE__ */ jsxRuntime.jsx(TableLoadingStateContext.Provider, { value: loading, children }) });
33
+ }
18
34
  function TableStateProvider({ children }) {
19
35
  const options = table.useTableSetup();
20
- return /* @__PURE__ */ jsxRuntime.jsx(TableStateContext.Provider, { value: options, children });
36
+ return /* @__PURE__ */ jsxRuntime.jsx(TableStateContext.Provider, { value: options, children: /* @__PURE__ */ jsxRuntime.jsx(TableLoadingStateProvider, { children }) });
21
37
  }
22
38
 
39
+ exports.TableLoadingStateProvider = TableLoadingStateProvider;
23
40
  exports.TableStateProvider = TableStateProvider;
41
+ exports.useTableLoadingState = useTableLoadingState;
24
42
  exports.useTableState = useTableState;
43
+ exports.useToggleTableLoadingState = useToggleTableLoadingState;
25
44
  //# sourceMappingURL=out.js.map
26
45
  //# sourceMappingURL=TableStateProvider.js.map