@hisptz/dhis2-scorecard 1.0.12 → 1.0.13

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.
@@ -121,10 +121,14 @@ function ScorecardDownloadButton() {
121
121
  const [completed, setCompleted] = react.useState(dataEngine.isDone);
122
122
  const previewRef = react.useRef(null);
123
123
  react.useEffect(() => {
124
- return dataEngine.addOnCompleteListener(setCompleted);
124
+ return dataEngine.addOnCompleteListener((completed2) => {
125
+ startTransition(() => {
126
+ setCompleted(completed2);
127
+ });
128
+ });
125
129
  }, [dataEngine]);
126
130
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
127
- openMenu && /* @__PURE__ */ jsxRuntime.jsx(ScorecardPreviewArea.ScorecardPreviewArea, { previewRef }),
131
+ completed && /* @__PURE__ */ jsxRuntime.jsx(ScorecardPreviewArea.ScorecardPreviewArea, { previewRef }),
128
132
  /* @__PURE__ */ jsxRuntime.jsx(
129
133
  ui.DropdownButton,
130
134
  {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ScorecardPrint/components/ScorecardDownloadButton.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n\tDropdownButton,\n\tFlyoutMenu,\n\tIconDownload24,\n\tMenuItem,\n} from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport {\n\ttype RefObject,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n\tuseTransition,\n} from \"react\";\nimport { useScorecardData } from \"../../DataProvider\";\nimport { useReactToPrint } from \"react-to-print\";\nimport { useScorecardConfig } from \"../../ConfigProvider\";\nimport { ScorecardPreviewArea } from \"./ScorecardPreviewArea\";\nimport * as xlsx from \"xlsx\";\nimport { useScorecardMeta } from \"../../MetaProvider\";\nimport { downloadALMAData, downloadALMAMeta } from \"../utils/download\";\nimport { useAlert } from \"@dhis2/app-runtime\";\nimport \"../print.css\";\n\nfunction DownloadMenu({\n\tpreviewRef,\n\tonClose,\n}: {\n\tpreviewRef: RefObject<HTMLDivElement>;\n\tonClose: () => void;\n}) {\n\tconst config = useScorecardConfig();\n\tconst { show } = useAlert(\n\t\t({ message }) => message,\n\t\t({ type }) => ({ ...type, duration: 3000 }),\n\t);\n\tconst { data: dataEngine } = useScorecardData();\n\tconst meta = useScorecardMeta();\n\tconst print = useReactToPrint({\n\t\tcontentRef: previewRef,\n\t\tdocumentTitle: config.title,\n\t\tonPrintError: (errorLocation, error) => {\n\t\t\tconsole.error(`Error running ${errorLocation}`);\n\t\t\tconsole.error(error);\n\t\t\tshow({\n\t\t\t\tmessage: `${i18n.t(\"Could not open the print dialog\")}: ${\n\t\t\t\t\terror.message ?? i18n.t(\"Unknown error\")\n\t\t\t\t}`,\n\t\t\t\ttype: { info: true },\n\t\t\t});\n\t\t},\n\t});\n\n\tconst onDownload =\n\t\t(type: \"excel\" | \"csv\" | \"alma\" | \"almaMeta\" | \"pdf\") => () => {\n\t\t\tonClose();\n\t\t\tswitch (type) {\n\t\t\t\tcase \"pdf\":\n\t\t\t\t\tprint();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"csv\":\n\t\t\t\tcase \"excel\":\n\t\t\t\t\tconst extension = type === \"csv\" ? \"csv\" : \"xlsx\";\n\t\t\t\t\tconst workbook = xlsx.utils.table_to_book(\n\t\t\t\t\t\tpreviewRef.current,\n\t\t\t\t\t);\n\t\t\t\t\txlsx.writeFile(workbook, `${config.title}.${extension}`);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"almaMeta\":\n\t\t\t\t\tdownloadALMAMeta({ config, meta: meta! });\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"alma\":\n\t\t\t\t\tdownloadALMAData({\n\t\t\t\t\t\tconfig,\n\t\t\t\t\t\tmeta: meta!,\n\t\t\t\t\t\tdata: dataEngine.data,\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\n\treturn (\n\t\t<>\n\t\t\t<FlyoutMenu closeMenu={onClose}>\n\t\t\t\t<MenuItem\n\t\t\t\t\tonClick={onDownload(\"excel\")}\n\t\t\t\t\tlabel={i18n.t(\"Excel\")}\n\t\t\t\t/>\n\t\t\t\t<MenuItem onClick={onDownload(\"csv\")} label={i18n.t(\"CSV\")} />\n\t\t\t\t<MenuItem onClick={onDownload(\"pdf\")} label={i18n.t(\"PDF\")} />\n\t\t\t\t<MenuItem label={i18n.t(\"ALMA\")}>\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tonClick={onDownload(\"alma\")}\n\t\t\t\t\t\tlabel={i18n.t(\"Data(JSON)\")}\n\t\t\t\t\t/>\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tonClick={onDownload(\"almaMeta\")}\n\t\t\t\t\t\tlabel={i18n.t(\"Metadata\")}\n\t\t\t\t\t/>\n\t\t\t\t</MenuItem>\n\t\t\t</FlyoutMenu>\n\t\t</>\n\t);\n}\n\nexport function ScorecardDownloadButton() {\n\tconst [isPending, startTransition] = useTransition();\n\tconst { data: dataEngine } = useScorecardData();\n\tconst [openMenu, setOpenMenu] = useState<boolean>(false);\n\tconst [completed, setCompleted] = useState<boolean>(dataEngine.isDone);\n\tconst previewRef = useRef<HTMLDivElement | null>(null);\n\n\tuseEffect(() => {\n\t\treturn dataEngine.addOnCompleteListener(setCompleted);\n\t}, [dataEngine]);\n\n\treturn (\n\t\t<>\n\t\t\t{openMenu && <ScorecardPreviewArea previewRef={previewRef} />}\n\t\t\t<DropdownButton\n\t\t\t\ttype=\"button\"\n\t\t\t\tvalue=\"scorecard-download-button\"\n\t\t\t\tdisabled={!completed}\n\t\t\t\topen={openMenu}\n\t\t\t\tonClick={({ open }) => {\n\t\t\t\t\tstartTransition(() => {\n\t\t\t\t\t\tsetOpenMenu(open);\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\ticon={<IconDownload24 />}\n\t\t\t\tcomponent={\n\t\t\t\t\tisPending ? (\n\t\t\t\t\t\t<div>Loading</div>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<DownloadMenu\n\t\t\t\t\t\t\tonClose={() => setOpenMenu(false)}\n\t\t\t\t\t\t\tpreviewRef={previewRef}\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\t\t{!completed\n\t\t\t\t\t? i18n.t(\"Please wait...\")\n\t\t\t\t\t: isPending\n\t\t\t\t\t\t? i18n.t(\"Preparing...\")\n\t\t\t\t\t\t: i18n.t(\"Download\")}\n\t\t\t</DropdownButton>\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/components/ScorecardPrint/components/ScorecardDownloadButton.tsx"],"names":["completed"],"mappings":"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","sourcesContent":["import {\n\tDropdownButton,\n\tFlyoutMenu,\n\tIconDownload24,\n\tMenuItem,\n} from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport {\n\ttype RefObject,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n\tuseTransition,\n} from \"react\";\nimport { useScorecardData } from \"../../DataProvider\";\nimport { useReactToPrint } from \"react-to-print\";\nimport { useScorecardConfig } from \"../../ConfigProvider\";\nimport { ScorecardPreviewArea } from \"./ScorecardPreviewArea\";\nimport * as xlsx from \"xlsx\";\nimport { useScorecardMeta } from \"../../MetaProvider\";\nimport { downloadALMAData, downloadALMAMeta } from \"../utils/download\";\nimport { useAlert } from \"@dhis2/app-runtime\";\nimport \"../print.css\";\n\nfunction DownloadMenu({\n\tpreviewRef,\n\tonClose,\n}: {\n\tpreviewRef: RefObject<HTMLDivElement>;\n\tonClose: () => void;\n}) {\n\tconst config = useScorecardConfig();\n\tconst { show } = useAlert(\n\t\t({ message }) => message,\n\t\t({ type }) => ({ ...type, duration: 3000 }),\n\t);\n\tconst { data: dataEngine } = useScorecardData();\n\tconst meta = useScorecardMeta();\n\tconst print = useReactToPrint({\n\t\tcontentRef: previewRef,\n\t\tdocumentTitle: config.title,\n\t\tonPrintError: (errorLocation, error) => {\n\t\t\tconsole.error(`Error running ${errorLocation}`);\n\t\t\tconsole.error(error);\n\t\t\tshow({\n\t\t\t\tmessage: `${i18n.t(\"Could not open the print dialog\")}: ${\n\t\t\t\t\terror.message ?? i18n.t(\"Unknown error\")\n\t\t\t\t}`,\n\t\t\t\ttype: { info: true },\n\t\t\t});\n\t\t},\n\t});\n\n\tconst onDownload =\n\t\t(type: \"excel\" | \"csv\" | \"alma\" | \"almaMeta\" | \"pdf\") => () => {\n\t\t\tonClose();\n\t\t\tswitch (type) {\n\t\t\t\tcase \"pdf\":\n\t\t\t\t\tprint();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"csv\":\n\t\t\t\tcase \"excel\":\n\t\t\t\t\tconst extension = type === \"csv\" ? \"csv\" : \"xlsx\";\n\t\t\t\t\tconst workbook = xlsx.utils.table_to_book(\n\t\t\t\t\t\tpreviewRef.current,\n\t\t\t\t\t);\n\t\t\t\t\txlsx.writeFile(workbook, `${config.title}.${extension}`);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"almaMeta\":\n\t\t\t\t\tdownloadALMAMeta({ config, meta: meta! });\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"alma\":\n\t\t\t\t\tdownloadALMAData({\n\t\t\t\t\t\tconfig,\n\t\t\t\t\t\tmeta: meta!,\n\t\t\t\t\t\tdata: dataEngine.data,\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\n\treturn (\n\t\t<>\n\t\t\t<FlyoutMenu closeMenu={onClose}>\n\t\t\t\t<MenuItem\n\t\t\t\t\tonClick={onDownload(\"excel\")}\n\t\t\t\t\tlabel={i18n.t(\"Excel\")}\n\t\t\t\t/>\n\t\t\t\t<MenuItem onClick={onDownload(\"csv\")} label={i18n.t(\"CSV\")} />\n\t\t\t\t<MenuItem onClick={onDownload(\"pdf\")} label={i18n.t(\"PDF\")} />\n\t\t\t\t<MenuItem label={i18n.t(\"ALMA\")}>\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tonClick={onDownload(\"alma\")}\n\t\t\t\t\t\tlabel={i18n.t(\"Data(JSON)\")}\n\t\t\t\t\t/>\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tonClick={onDownload(\"almaMeta\")}\n\t\t\t\t\t\tlabel={i18n.t(\"Metadata\")}\n\t\t\t\t\t/>\n\t\t\t\t</MenuItem>\n\t\t\t</FlyoutMenu>\n\t\t</>\n\t);\n}\n\nexport function ScorecardDownloadButton() {\n\tconst [isPending, startTransition] = useTransition();\n\tconst { data: dataEngine } = useScorecardData();\n\tconst [openMenu, setOpenMenu] = useState<boolean>(false);\n\tconst [completed, setCompleted] = useState<boolean>(dataEngine.isDone);\n\tconst previewRef = useRef<HTMLDivElement | null>(null);\n\n\tuseEffect(() => {\n\t\treturn dataEngine.addOnCompleteListener((completed) => {\n\t\t\tstartTransition(() => {\n\t\t\t\tsetCompleted(completed);\n\t\t\t});\n\t\t});\n\t}, [dataEngine]);\n\n\treturn (\n\t\t<>\n\t\t\t{completed && <ScorecardPreviewArea previewRef={previewRef} />}\n\t\t\t<DropdownButton\n\t\t\t\ttype=\"button\"\n\t\t\t\tvalue=\"scorecard-download-button\"\n\t\t\t\tdisabled={!completed}\n\t\t\t\topen={openMenu}\n\t\t\t\tonClick={({ open }) => {\n\t\t\t\t\tstartTransition(() => {\n\t\t\t\t\t\tsetOpenMenu(open);\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\ticon={<IconDownload24 />}\n\t\t\t\tcomponent={\n\t\t\t\t\tisPending ? (\n\t\t\t\t\t\t<div>Loading</div>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<DownloadMenu\n\t\t\t\t\t\t\tonClose={() => setOpenMenu(false)}\n\t\t\t\t\t\t\tpreviewRef={previewRef}\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\t\t{!completed\n\t\t\t\t\t? i18n.t(\"Please wait...\")\n\t\t\t\t\t: isPending\n\t\t\t\t\t\t? i18n.t(\"Preparing...\")\n\t\t\t\t\t\t: i18n.t(\"Download\")}\n\t\t\t</DropdownButton>\n\t\t</>\n\t);\n}\n"]}
@@ -28,37 +28,40 @@ const ScorecardPreviewArea = react.memo(function ScorecardPreviewArea2({
28
28
  printMode: true
29
29
  }
30
30
  };
31
- return /* @__PURE__ */ jsxRuntime.jsx(
31
+ return /* @__PURE__ */ jsxRuntime.jsxs(
32
32
  StateProvider.ScorecardStateProvider,
33
33
  {
34
34
  withRecoilRoot: true,
35
35
  initialState: updatedState,
36
36
  config,
37
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { style: { display: "none" }, children: /* @__PURE__ */ jsxRuntime.jsxs(
38
- "div",
39
- {
40
- className: "print-preview",
41
- style: {
42
- height: "100%",
43
- display: "flex",
44
- gap: 16,
45
- flexDirection: "column"
46
- },
47
- ref: previewRef,
48
- children: [
49
- /* @__PURE__ */ jsxRuntime.jsx(ScorecardHeader.ScorecardHeader, {}),
50
- /* @__PURE__ */ jsxRuntime.jsx(ScorecardLegendsView.ScorecardLegendsView, {}),
51
- /* @__PURE__ */ jsxRuntime.jsx(TableStateProvider.TableStateProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(reactDnd.DndProvider, { backend: reactDndHtml5Backend.HTML5Backend, children: /* @__PURE__ */ jsxRuntime.jsx(
52
- ScorecardTable.ScorecardTable,
53
- {
54
- scrollHeight: "100%",
55
- scrollWidth: "100%",
56
- width: "100%"
57
- }
58
- ) }) })
59
- ]
60
- }
61
- ) })
37
+ children: [
38
+ /* @__PURE__ */ jsxRuntime.jsx("style", { type: "text/css", media: "print", children: " @page { size: landscape; margin: 32px; }" }),
39
+ /* @__PURE__ */ jsxRuntime.jsx("div", { style: { display: "none" }, children: /* @__PURE__ */ jsxRuntime.jsxs(
40
+ "div",
41
+ {
42
+ className: "print-preview",
43
+ style: {
44
+ height: "100%",
45
+ display: "flex",
46
+ gap: 16,
47
+ flexDirection: "column"
48
+ },
49
+ ref: previewRef,
50
+ children: [
51
+ /* @__PURE__ */ jsxRuntime.jsx(ScorecardHeader.ScorecardHeader, {}),
52
+ /* @__PURE__ */ jsxRuntime.jsx(ScorecardLegendsView.ScorecardLegendsView, {}),
53
+ /* @__PURE__ */ jsxRuntime.jsx(TableStateProvider.TableStateProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(reactDnd.DndProvider, { backend: reactDndHtml5Backend.HTML5Backend, children: /* @__PURE__ */ jsxRuntime.jsx(
54
+ ScorecardTable.ScorecardTable,
55
+ {
56
+ scrollHeight: "100%",
57
+ scrollWidth: "100%",
58
+ width: "100%"
59
+ }
60
+ ) }) })
61
+ ]
62
+ }
63
+ ) })
64
+ ]
62
65
  }
63
66
  );
64
67
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ScorecardPrint/components/ScorecardPreviewArea.tsx"],"names":["ScorecardPreviewArea"],"mappings":"AAuCI,SAUC,KAVD;AAvCJ,SAAgB,YAA4B;AAC5C,SAAS,0BAA0B;AACnC,SAAS,mBAAmB;AAC5B,SAAS,oBAAoB;AAC7B,SAAS,sBAAsB;AAC/B,SAAS,uBAAuB;AAChC,SAAS,4BAA4B;AACrC,SAAS,8BAA8B;AACvC,SAAS,0BAA0B;AACnC,SAAS,sBAAsB;AAC/B,SAAS,0BAA0B;AAEnC,OAAO;AAEA,MAAM,uBAAuB,KAAK,SAASA,sBAAqB;AAAA,EACtE;AACD,GAEG;AACF,QAAM,SAAS,mBAAmB;AAClC,QAAM,QAAQ,eAAe,kBAAkB;AAE/C,QAAM,eAAe;AAAA,IACpB,GAAI,SAAS,CAAC;AAAA,IACd,SAAS;AAAA,MACR,GAAI,OAAO,WAAW,CAAC;AAAA,MACvB,kBAAkB;AAAA,MAClB,mBAAmB;AAAA,MACnB,WAAW;AAAA,IACZ;AAAA,EACD;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA,gBAAc;AAAA,MACd,cAAc;AAAA,MACd;AAAA,MAEA,8BAAC,SAAI,OAAO,EAAE,SAAS,OAAO,GAC7B;AAAA,QAAC;AAAA;AAAA,UACA,WAAU;AAAA,UACV,OAAO;AAAA,YACN,QAAQ;AAAA,YACR,SAAS;AAAA,YACT,KAAK;AAAA,YACL,eAAe;AAAA,UAChB;AAAA,UACA,KAAK;AAAA,UAEL;AAAA,gCAAC,mBAAgB;AAAA,YACjB,oBAAC,wBAAqB;AAAA,YACtB,oBAAC,sBACA,8BAAC,eAAY,SAAS,cACrB;AAAA,cAAC;AAAA;AAAA,gBACA,cAAa;AAAA,gBACb,aAAY;AAAA,gBACZ,OAAM;AAAA;AAAA,YACP,GACD,GACD;AAAA;AAAA;AAAA,MACD,GACD;AAAA;AAAA,EACD;AAEF,CAAC","sourcesContent":["import React, { memo, type RefObject } from \"react\";\nimport { TableStateProvider } from \"../../TableStateProvider\";\nimport { DndProvider } from \"react-dnd\";\nimport { HTML5Backend } from \"react-dnd-html5-backend\";\nimport { ScorecardTable } from \"../../ScorecardTable\";\nimport { ScorecardHeader } from \"../../ScorecardHeader\";\nimport { ScorecardLegendsView } from \"../../ScorecardLegendsView\";\nimport { ScorecardStateProvider } from \"../../StateProvider\";\nimport { useScorecardConfig } from \"../../ConfigProvider\";\nimport { useRecoilValue } from \"recoil\";\nimport { scorecardStateAtom } from \"../../../state\";\nimport type { ScorecardState } from \"../../../schemas/config\";\nimport \"../print.css\";\n\nexport const ScorecardPreviewArea = memo(function ScorecardPreviewArea({\n\tpreviewRef,\n}: {\n\tpreviewRef: RefObject<HTMLDivElement>;\n}) {\n\tconst config = useScorecardConfig();\n\tconst state = useRecoilValue(scorecardStateAtom);\n\n\tconst updatedState = {\n\t\t...(state ?? {}),\n\t\toptions: {\n\t\t\t...(state?.options ?? {}),\n\t\t\tdisableExpanding: true,\n\t\t\tdisablePagination: true,\n\t\t\tprintMode: true,\n\t\t},\n\t} as ScorecardState;\n\n\treturn (\n\t\t<ScorecardStateProvider\n\t\t\twithRecoilRoot\n\t\t\tinitialState={updatedState}\n\t\t\tconfig={config}\n\t\t>\n\t\t\t<div style={{ display: \"none\" }}>\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"print-preview\"\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\tgap: 16,\n\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t}}\n\t\t\t\t\tref={previewRef}\n\t\t\t\t>\n\t\t\t\t\t<ScorecardHeader />\n\t\t\t\t\t<ScorecardLegendsView />\n\t\t\t\t\t<TableStateProvider>\n\t\t\t\t\t\t<DndProvider backend={HTML5Backend}>\n\t\t\t\t\t\t\t<ScorecardTable\n\t\t\t\t\t\t\t\tscrollHeight=\"100%\"\n\t\t\t\t\t\t\t\tscrollWidth=\"100%\"\n\t\t\t\t\t\t\t\twidth=\"100%\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</DndProvider>\n\t\t\t\t\t</TableStateProvider>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</ScorecardStateProvider>\n\t);\n});\n"]}
1
+ {"version":3,"sources":["../../../../src/components/ScorecardPrint/components/ScorecardPreviewArea.tsx"],"names":["ScorecardPreviewArea"],"mappings":"AAsCG,cAQC,YARD;AAtCH,SAAgB,YAA4B;AAC5C,SAAS,0BAA0B;AACnC,SAAS,mBAAmB;AAC5B,SAAS,oBAAoB;AAC7B,SAAS,sBAAsB;AAC/B,SAAS,uBAAuB;AAChC,SAAS,4BAA4B;AACrC,SAAS,8BAA8B;AACvC,SAAS,0BAA0B;AACnC,SAAS,sBAAsB;AAC/B,SAAS,0BAA0B;AAEnC,OAAO;AAEA,MAAM,uBAAuB,KAAK,SAASA,sBAAqB;AAAA,EACtE;AACD,GAEG;AACF,QAAM,SAAS,mBAAmB;AAClC,QAAM,QAAQ,eAAe,kBAAkB;AAE/C,QAAM,eAAe;AAAA,IACpB,GAAI,SAAS,CAAC;AAAA,IACd,SAAS;AAAA,MACR,GAAI,OAAO,WAAW,CAAC;AAAA,MACvB,kBAAkB;AAAA,MAClB,mBAAmB;AAAA,MACnB,WAAW;AAAA,IACZ;AAAA,EACD;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA,gBAAc;AAAA,MACd,cAAc;AAAA,MACd;AAAA,MAEA;AAAA,4BAAC,WAAM,MAAK,YAAW,OAAM,SAE3B,wDAIF;AAAA,QACA,oBAAC,SAAI,OAAO,EAAE,SAAS,OAAO,GAC7B;AAAA,UAAC;AAAA;AAAA,YACA,WAAU;AAAA,YACV,OAAO;AAAA,cACN,QAAQ;AAAA,cACR,SAAS;AAAA,cACT,KAAK;AAAA,cACL,eAAe;AAAA,YAChB;AAAA,YACA,KAAK;AAAA,YAEL;AAAA,kCAAC,mBAAgB;AAAA,cACjB,oBAAC,wBAAqB;AAAA,cACtB,oBAAC,sBACA,8BAAC,eAAY,SAAS,cACrB;AAAA,gBAAC;AAAA;AAAA,kBACA,cAAa;AAAA,kBACb,aAAY;AAAA,kBACZ,OAAM;AAAA;AAAA,cACP,GACD,GACD;AAAA;AAAA;AAAA,QACD,GACD;AAAA;AAAA;AAAA,EACD;AAEF,CAAC","sourcesContent":["import React, { memo, type RefObject } from \"react\";\nimport { TableStateProvider } from \"../../TableStateProvider\";\nimport { DndProvider } from \"react-dnd\";\nimport { HTML5Backend } from \"react-dnd-html5-backend\";\nimport { ScorecardTable } from \"../../ScorecardTable\";\nimport { ScorecardHeader } from \"../../ScorecardHeader\";\nimport { ScorecardLegendsView } from \"../../ScorecardLegendsView\";\nimport { ScorecardStateProvider } from \"../../StateProvider\";\nimport { useScorecardConfig } from \"../../ConfigProvider\";\nimport { useRecoilValue } from \"recoil\";\nimport { scorecardStateAtom } from \"../../../state\";\nimport type { ScorecardState } from \"../../../schemas/config\";\nimport \"../print.css\";\n\nexport const ScorecardPreviewArea = memo(function ScorecardPreviewArea({\n\tpreviewRef,\n}: {\n\tpreviewRef: RefObject<HTMLDivElement>;\n}) {\n\tconst config = useScorecardConfig();\n\tconst state = useRecoilValue(scorecardStateAtom);\n\n\tconst updatedState = {\n\t\t...(state ?? {}),\n\t\toptions: {\n\t\t\t...(state?.options ?? {}),\n\t\t\tdisableExpanding: true,\n\t\t\tdisablePagination: true,\n\t\t\tprintMode: true,\n\t\t},\n\t} as ScorecardState;\n\n\treturn (\n\t\t<ScorecardStateProvider\n\t\t\twithRecoilRoot\n\t\t\tinitialState={updatedState}\n\t\t\tconfig={config}\n\t\t>\n\t\t\t<style type=\"text/css\" media=\"print\">\n\t\t\t\t{\n\t\t\t\t\t\"\\\n @page { size: landscape; margin: 32px; }\\\n\"\n\t\t\t\t}\n\t\t\t</style>\n\t\t\t<div style={{ display: \"none\" }}>\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"print-preview\"\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\tgap: 16,\n\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t}}\n\t\t\t\t\tref={previewRef}\n\t\t\t\t>\n\t\t\t\t\t<ScorecardHeader />\n\t\t\t\t\t<ScorecardLegendsView />\n\t\t\t\t\t<TableStateProvider>\n\t\t\t\t\t\t<DndProvider backend={HTML5Backend}>\n\t\t\t\t\t\t\t<ScorecardTable\n\t\t\t\t\t\t\t\tscrollHeight=\"100%\"\n\t\t\t\t\t\t\t\tscrollWidth=\"100%\"\n\t\t\t\t\t\t\t\twidth=\"100%\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</DndProvider>\n\t\t\t\t\t</TableStateProvider>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</ScorecardStateProvider>\n\t);\n});\n"]}
@@ -1,13 +1,5 @@
1
- body {
2
- @media print {
3
- @page {
4
- margin: 32px !important;
5
- }
6
- }
7
- }
8
1
  .print-preview > * {
9
- padding: 32px;
10
- border: 1px solid black;
2
+ margin: 1px;
11
3
  font-size: 1em !important;
12
4
  .print-hide {
13
5
  display: none !important;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ScorecardPrint/print.css"],"sourcesContent":["\nbody {\n @media print {\n @page {\n margin: 32px !important;\n }\n }\n}\n\n.print-preview > * {\n padding: 32px;\n border: 1px solid black;\n font-size: 1em !important;\n\n .print-hide {\n display: none !important;\n }\n\n table {\n border-color: #A0ADBA !important;\n border-left: 1px solid black !important;\n border-top: 1px solid black !important;\n table-layout: fixed !important;\n }\n\n\n td {\n border-color: black !important;\n }\n\n td > div * {\n font-size: 1em !important;\n }\n\n th {\n border-color: black !important;\n border-right: 1px solid black !important;\n background: transparent !important;\n }\n\n /*tr td:first-child > svg {*/\n /* display: none !important;*/\n /*}*/\n\n button {\n display: none !important;\n }\n\n input {\n display: none !important;\n }\n\n\n @media print {\n border: unset;\n\n }\n\n\n}\n\n"],"mappings":"AACA;AACI,SAAO;AACH;AACI,cAAQ;AACZ;AACJ;AACJ;AAEA,CAAC,cAAc,EAAE;AACb,WAAS;AACT,UAAQ,IAAI,MAAM;AAClB,aAAW;AAEX,GAAC;AACG,aAAS;AACb;AAEA;AACI,kBAAc;AACd,iBAAa,IAAI,MAAM;AACvB,gBAAY,IAAI,MAAM;AACtB,kBAAc;AAClB;AAGA;AACI,kBAAc;AAClB;AAEA,KAAG,EAAE,IAAI;AACL,eAAW;AACf;AAEA;AACI,kBAAc;AACd,kBAAc,IAAI,MAAM;AACxB,gBAAY;AAChB;AAMA;AACI,aAAS;AACb;AAEA;AACI,aAAS;AACb;AAGA,SAAO;AACH,YAAQ;AAEZ;AAGJ;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/ScorecardPrint/print.css"],"sourcesContent":["\n.print-preview > * {\n margin: 1px;\n font-size: 1em !important;\n\n .print-hide {\n display: none !important;\n }\n\n table {\n border-color: #A0ADBA !important;\n border-left: 1px solid black !important;\n border-top: 1px solid black !important;\n table-layout: fixed !important;\n }\n\n\n td {\n border-color: black !important;\n }\n\n td > div * {\n font-size: 1em !important;\n }\n\n th {\n border-color: black !important;\n border-right: 1px solid black !important;\n background: transparent !important;\n }\n\n /*tr td:first-child > svg {*/\n /* display: none !important;*/\n /*}*/\n\n button {\n display: none !important;\n }\n\n input {\n display: none !important;\n }\n\n\n @media print {\n border: unset;\n\n }\n\n\n}\n\n"],"mappings":"AACA,CAAC,cAAc,EAAE;AACb,UAAQ;AACR,aAAW;AAEX,GAAC;AACG,aAAS;AACb;AAEA;AACI,kBAAc;AACd,iBAAa,IAAI,MAAM;AACvB,gBAAY,IAAI,MAAM;AACtB,kBAAc;AAClB;AAGA;AACI,kBAAc;AAClB;AAEA,KAAG,EAAE,IAAI;AACL,eAAW;AACf;AAEA;AACI,kBAAc;AACd,kBAAc,IAAI,MAAM;AACxB,gBAAY;AAChB;AAMA;AACI,aAAS;AACb;AAEA;AACI,aAAS;AACb;AAGA,SAAO;AACH,YAAQ;AAEZ;AAGJ;","names":[]}
@@ -8,6 +8,9 @@
8
8
  z-index: 1;
9
9
  padding: 10px 12px;
10
10
  }
11
+ .expandCell {
12
+ page-break-inside: avoid !important;
13
+ }
11
14
  .loading-cell {
12
15
  animation: shimmer 2s infinite linear;
13
16
  background: linear-gradient(to right, #eee 40%, #ddd 50%, #eee 80%);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ScorecardTable/ScorecardTable.module.css"],"sourcesContent":["\n.expandCell > td:first-child {\n left: 0;\n top: auto;\n text-align: left;\n width: 40px !important;\n background-color: rgb(243, 245, 247);\n position: sticky !important;\n z-index: 1;\n padding: 10px 12px;\n}\n\n\n.loading-cell {\n animation: shimmer 2s infinite linear;\n background: linear-gradient(to right, #eee 40%, #ddd 50%, #eee 80%);\n background-size: 500px 100px;\n animation-name: moving-gradient;\n animation-duration: 1s;\n animation-iteration-count: infinite;\n animation-timing-function: linear;\n animation-fill-mode: forwards;\n}\n\n@-webkit-keyframes moving-gradient {\n 0% {\n background-position: -250px 0;\n }\n 100% {\n background-position: 250px 0;\n }\n}\n\n.loader {\n position: sticky !important;\n left: 0;\n}\n\n\n"],"mappings":"AACA,CAAC,WAAW,EAAE,EAAE;AACZ,QAAM;AACN,OAAK;AACL,cAAY;AACZ,SAAO;AACP,oBAAkB,IAAI,GAAG,EAAE,GAAG,EAAE;AAChC,YAAU;AACV,WAAS;AACT,WAAS,KAAK;AAClB;AAGA,CAAC;AACG,aAAW,QAAQ,GAAG,SAAS;AAC/B,cAAY,gBAAgB,GAAG,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK;AAC/D,mBAAiB,MAAM;AACvB,kBAAgB;AAChB,sBAAoB;AACpB,6BAA2B;AAC3B,6BAA2B;AAC3B,uBAAqB;AACzB;AAEA,mBAPoB;AAQhB;AACI,yBAAqB,OAAO;AAChC;AACA;AACI,yBAAqB,MAAM;AAC/B;AACJ;AAEA,CAAC;AACG,YAAU;AACV,QAAM;AACV;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/ScorecardTable/ScorecardTable.module.css"],"sourcesContent":["\n.expandCell > td:first-child {\n left: 0;\n top: auto;\n text-align: left;\n width: 40px !important;\n background-color: rgb(243, 245, 247);\n position: sticky !important;\n z-index: 1;\n padding: 10px 12px;\n}\n\n.expandCell {\n page-break-inside: avoid !important;\n}\n\n\n.loading-cell {\n animation: shimmer 2s infinite linear;\n background: linear-gradient(to right, #eee 40%, #ddd 50%, #eee 80%);\n background-size: 500px 100px;\n animation-name: moving-gradient;\n animation-duration: 1s;\n animation-iteration-count: infinite;\n animation-timing-function: linear;\n animation-fill-mode: forwards;\n}\n\n@-webkit-keyframes moving-gradient {\n 0% {\n background-position: -250px 0;\n }\n 100% {\n background-position: 250px 0;\n }\n}\n\n.loader {\n position: sticky !important;\n left: 0;\n}\n\n\n"],"mappings":"AACA,CAAC,WAAW,EAAE,EAAE;AACZ,QAAM;AACN,OAAK;AACL,cAAY;AACZ,SAAO;AACP,oBAAkB,IAAI,GAAG,EAAE,GAAG,EAAE;AAChC,YAAU;AACV,WAAS;AACT,WAAS,KAAK;AAClB;AAEA,CAXC;AAYG,qBAAmB;AACvB;AAGA,CAAC;AACG,aAAW,QAAQ,GAAG,SAAS;AAC/B,cAAY,gBAAgB,GAAG,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK;AAC/D,mBAAiB,MAAM;AACvB,kBAAgB;AAChB,sBAAoB;AACpB,6BAA2B;AAC3B,6BAA2B;AAC3B,uBAAqB;AACzB;AAEA,mBAPoB;AAQhB;AACI,yBAAqB,OAAO;AAChC;AACA;AACI,yBAAqB,MAAM;AAC/B;AACJ;AAEA,CAAC;AACG,YAAU;AACV,QAAM;AACV;","names":[]}
@@ -96,10 +96,14 @@ function ScorecardDownloadButton() {
96
96
  const [completed, setCompleted] = useState(dataEngine.isDone);
97
97
  const previewRef = useRef(null);
98
98
  useEffect(() => {
99
- return dataEngine.addOnCompleteListener(setCompleted);
99
+ return dataEngine.addOnCompleteListener((completed2) => {
100
+ startTransition(() => {
101
+ setCompleted(completed2);
102
+ });
103
+ });
100
104
  }, [dataEngine]);
101
105
  return /* @__PURE__ */ jsxs(Fragment, { children: [
102
- openMenu && /* @__PURE__ */ jsx(ScorecardPreviewArea, { previewRef }),
106
+ completed && /* @__PURE__ */ jsx(ScorecardPreviewArea, { previewRef }),
103
107
  /* @__PURE__ */ jsx(
104
108
  DropdownButton,
105
109
  {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/ScorecardPrint/components/ScorecardDownloadButton.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n\tDropdownButton,\n\tFlyoutMenu,\n\tIconDownload24,\n\tMenuItem,\n} from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport {\n\ttype RefObject,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n\tuseTransition,\n} from \"react\";\nimport { useScorecardData } from \"../../DataProvider\";\nimport { useReactToPrint } from \"react-to-print\";\nimport { useScorecardConfig } from \"../../ConfigProvider\";\nimport { ScorecardPreviewArea } from \"./ScorecardPreviewArea\";\nimport * as xlsx from \"xlsx\";\nimport { useScorecardMeta } from \"../../MetaProvider\";\nimport { downloadALMAData, downloadALMAMeta } from \"../utils/download\";\nimport { useAlert } from \"@dhis2/app-runtime\";\nimport \"../print.css\";\n\nfunction DownloadMenu({\n\tpreviewRef,\n\tonClose,\n}: {\n\tpreviewRef: RefObject<HTMLDivElement>;\n\tonClose: () => void;\n}) {\n\tconst config = useScorecardConfig();\n\tconst { show } = useAlert(\n\t\t({ message }) => message,\n\t\t({ type }) => ({ ...type, duration: 3000 }),\n\t);\n\tconst { data: dataEngine } = useScorecardData();\n\tconst meta = useScorecardMeta();\n\tconst print = useReactToPrint({\n\t\tcontentRef: previewRef,\n\t\tdocumentTitle: config.title,\n\t\tonPrintError: (errorLocation, error) => {\n\t\t\tconsole.error(`Error running ${errorLocation}`);\n\t\t\tconsole.error(error);\n\t\t\tshow({\n\t\t\t\tmessage: `${i18n.t(\"Could not open the print dialog\")}: ${\n\t\t\t\t\terror.message ?? i18n.t(\"Unknown error\")\n\t\t\t\t}`,\n\t\t\t\ttype: { info: true },\n\t\t\t});\n\t\t},\n\t});\n\n\tconst onDownload =\n\t\t(type: \"excel\" | \"csv\" | \"alma\" | \"almaMeta\" | \"pdf\") => () => {\n\t\t\tonClose();\n\t\t\tswitch (type) {\n\t\t\t\tcase \"pdf\":\n\t\t\t\t\tprint();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"csv\":\n\t\t\t\tcase \"excel\":\n\t\t\t\t\tconst extension = type === \"csv\" ? \"csv\" : \"xlsx\";\n\t\t\t\t\tconst workbook = xlsx.utils.table_to_book(\n\t\t\t\t\t\tpreviewRef.current,\n\t\t\t\t\t);\n\t\t\t\t\txlsx.writeFile(workbook, `${config.title}.${extension}`);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"almaMeta\":\n\t\t\t\t\tdownloadALMAMeta({ config, meta: meta! });\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"alma\":\n\t\t\t\t\tdownloadALMAData({\n\t\t\t\t\t\tconfig,\n\t\t\t\t\t\tmeta: meta!,\n\t\t\t\t\t\tdata: dataEngine.data,\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\n\treturn (\n\t\t<>\n\t\t\t<FlyoutMenu closeMenu={onClose}>\n\t\t\t\t<MenuItem\n\t\t\t\t\tonClick={onDownload(\"excel\")}\n\t\t\t\t\tlabel={i18n.t(\"Excel\")}\n\t\t\t\t/>\n\t\t\t\t<MenuItem onClick={onDownload(\"csv\")} label={i18n.t(\"CSV\")} />\n\t\t\t\t<MenuItem onClick={onDownload(\"pdf\")} label={i18n.t(\"PDF\")} />\n\t\t\t\t<MenuItem label={i18n.t(\"ALMA\")}>\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tonClick={onDownload(\"alma\")}\n\t\t\t\t\t\tlabel={i18n.t(\"Data(JSON)\")}\n\t\t\t\t\t/>\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tonClick={onDownload(\"almaMeta\")}\n\t\t\t\t\t\tlabel={i18n.t(\"Metadata\")}\n\t\t\t\t\t/>\n\t\t\t\t</MenuItem>\n\t\t\t</FlyoutMenu>\n\t\t</>\n\t);\n}\n\nexport function ScorecardDownloadButton() {\n\tconst [isPending, startTransition] = useTransition();\n\tconst { data: dataEngine } = useScorecardData();\n\tconst [openMenu, setOpenMenu] = useState<boolean>(false);\n\tconst [completed, setCompleted] = useState<boolean>(dataEngine.isDone);\n\tconst previewRef = useRef<HTMLDivElement | null>(null);\n\n\tuseEffect(() => {\n\t\treturn dataEngine.addOnCompleteListener(setCompleted);\n\t}, [dataEngine]);\n\n\treturn (\n\t\t<>\n\t\t\t{openMenu && <ScorecardPreviewArea previewRef={previewRef} />}\n\t\t\t<DropdownButton\n\t\t\t\ttype=\"button\"\n\t\t\t\tvalue=\"scorecard-download-button\"\n\t\t\t\tdisabled={!completed}\n\t\t\t\topen={openMenu}\n\t\t\t\tonClick={({ open }) => {\n\t\t\t\t\tstartTransition(() => {\n\t\t\t\t\t\tsetOpenMenu(open);\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\ticon={<IconDownload24 />}\n\t\t\t\tcomponent={\n\t\t\t\t\tisPending ? (\n\t\t\t\t\t\t<div>Loading</div>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<DownloadMenu\n\t\t\t\t\t\t\tonClose={() => setOpenMenu(false)}\n\t\t\t\t\t\t\tpreviewRef={previewRef}\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\t\t{!completed\n\t\t\t\t\t? i18n.t(\"Please wait...\")\n\t\t\t\t\t: isPending\n\t\t\t\t\t\t? i18n.t(\"Preparing...\")\n\t\t\t\t\t\t: i18n.t(\"Download\")}\n\t\t\t</DropdownButton>\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../src/components/ScorecardPrint/components/ScorecardDownloadButton.tsx"],"names":["completed"],"mappings":"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","sourcesContent":["import {\n\tDropdownButton,\n\tFlyoutMenu,\n\tIconDownload24,\n\tMenuItem,\n} from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport {\n\ttype RefObject,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n\tuseTransition,\n} from \"react\";\nimport { useScorecardData } from \"../../DataProvider\";\nimport { useReactToPrint } from \"react-to-print\";\nimport { useScorecardConfig } from \"../../ConfigProvider\";\nimport { ScorecardPreviewArea } from \"./ScorecardPreviewArea\";\nimport * as xlsx from \"xlsx\";\nimport { useScorecardMeta } from \"../../MetaProvider\";\nimport { downloadALMAData, downloadALMAMeta } from \"../utils/download\";\nimport { useAlert } from \"@dhis2/app-runtime\";\nimport \"../print.css\";\n\nfunction DownloadMenu({\n\tpreviewRef,\n\tonClose,\n}: {\n\tpreviewRef: RefObject<HTMLDivElement>;\n\tonClose: () => void;\n}) {\n\tconst config = useScorecardConfig();\n\tconst { show } = useAlert(\n\t\t({ message }) => message,\n\t\t({ type }) => ({ ...type, duration: 3000 }),\n\t);\n\tconst { data: dataEngine } = useScorecardData();\n\tconst meta = useScorecardMeta();\n\tconst print = useReactToPrint({\n\t\tcontentRef: previewRef,\n\t\tdocumentTitle: config.title,\n\t\tonPrintError: (errorLocation, error) => {\n\t\t\tconsole.error(`Error running ${errorLocation}`);\n\t\t\tconsole.error(error);\n\t\t\tshow({\n\t\t\t\tmessage: `${i18n.t(\"Could not open the print dialog\")}: ${\n\t\t\t\t\terror.message ?? i18n.t(\"Unknown error\")\n\t\t\t\t}`,\n\t\t\t\ttype: { info: true },\n\t\t\t});\n\t\t},\n\t});\n\n\tconst onDownload =\n\t\t(type: \"excel\" | \"csv\" | \"alma\" | \"almaMeta\" | \"pdf\") => () => {\n\t\t\tonClose();\n\t\t\tswitch (type) {\n\t\t\t\tcase \"pdf\":\n\t\t\t\t\tprint();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"csv\":\n\t\t\t\tcase \"excel\":\n\t\t\t\t\tconst extension = type === \"csv\" ? \"csv\" : \"xlsx\";\n\t\t\t\t\tconst workbook = xlsx.utils.table_to_book(\n\t\t\t\t\t\tpreviewRef.current,\n\t\t\t\t\t);\n\t\t\t\t\txlsx.writeFile(workbook, `${config.title}.${extension}`);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"almaMeta\":\n\t\t\t\t\tdownloadALMAMeta({ config, meta: meta! });\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"alma\":\n\t\t\t\t\tdownloadALMAData({\n\t\t\t\t\t\tconfig,\n\t\t\t\t\t\tmeta: meta!,\n\t\t\t\t\t\tdata: dataEngine.data,\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\n\treturn (\n\t\t<>\n\t\t\t<FlyoutMenu closeMenu={onClose}>\n\t\t\t\t<MenuItem\n\t\t\t\t\tonClick={onDownload(\"excel\")}\n\t\t\t\t\tlabel={i18n.t(\"Excel\")}\n\t\t\t\t/>\n\t\t\t\t<MenuItem onClick={onDownload(\"csv\")} label={i18n.t(\"CSV\")} />\n\t\t\t\t<MenuItem onClick={onDownload(\"pdf\")} label={i18n.t(\"PDF\")} />\n\t\t\t\t<MenuItem label={i18n.t(\"ALMA\")}>\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tonClick={onDownload(\"alma\")}\n\t\t\t\t\t\tlabel={i18n.t(\"Data(JSON)\")}\n\t\t\t\t\t/>\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tonClick={onDownload(\"almaMeta\")}\n\t\t\t\t\t\tlabel={i18n.t(\"Metadata\")}\n\t\t\t\t\t/>\n\t\t\t\t</MenuItem>\n\t\t\t</FlyoutMenu>\n\t\t</>\n\t);\n}\n\nexport function ScorecardDownloadButton() {\n\tconst [isPending, startTransition] = useTransition();\n\tconst { data: dataEngine } = useScorecardData();\n\tconst [openMenu, setOpenMenu] = useState<boolean>(false);\n\tconst [completed, setCompleted] = useState<boolean>(dataEngine.isDone);\n\tconst previewRef = useRef<HTMLDivElement | null>(null);\n\n\tuseEffect(() => {\n\t\treturn dataEngine.addOnCompleteListener((completed) => {\n\t\t\tstartTransition(() => {\n\t\t\t\tsetCompleted(completed);\n\t\t\t});\n\t\t});\n\t}, [dataEngine]);\n\n\treturn (\n\t\t<>\n\t\t\t{completed && <ScorecardPreviewArea previewRef={previewRef} />}\n\t\t\t<DropdownButton\n\t\t\t\ttype=\"button\"\n\t\t\t\tvalue=\"scorecard-download-button\"\n\t\t\t\tdisabled={!completed}\n\t\t\t\topen={openMenu}\n\t\t\t\tonClick={({ open }) => {\n\t\t\t\t\tstartTransition(() => {\n\t\t\t\t\t\tsetOpenMenu(open);\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\ticon={<IconDownload24 />}\n\t\t\t\tcomponent={\n\t\t\t\t\tisPending ? (\n\t\t\t\t\t\t<div>Loading</div>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<DownloadMenu\n\t\t\t\t\t\t\tonClose={() => setOpenMenu(false)}\n\t\t\t\t\t\t\tpreviewRef={previewRef}\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\t\t{!completed\n\t\t\t\t\t? i18n.t(\"Please wait...\")\n\t\t\t\t\t: isPending\n\t\t\t\t\t\t? i18n.t(\"Preparing...\")\n\t\t\t\t\t\t: i18n.t(\"Download\")}\n\t\t\t</DropdownButton>\n\t\t</>\n\t);\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { jsx, jsxs } from 'react/jsx-runtime';
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { memo } from 'react';
3
3
  import { TableStateProvider } from '../../TableStateProvider';
4
4
  import { DndProvider } from 'react-dnd';
@@ -26,37 +26,40 @@ const ScorecardPreviewArea = memo(function ScorecardPreviewArea2({
26
26
  printMode: true
27
27
  }
28
28
  };
29
- return /* @__PURE__ */ jsx(
29
+ return /* @__PURE__ */ jsxs(
30
30
  ScorecardStateProvider,
31
31
  {
32
32
  withRecoilRoot: true,
33
33
  initialState: updatedState,
34
34
  config,
35
- children: /* @__PURE__ */ jsx("div", { style: { display: "none" }, children: /* @__PURE__ */ jsxs(
36
- "div",
37
- {
38
- className: "print-preview",
39
- style: {
40
- height: "100%",
41
- display: "flex",
42
- gap: 16,
43
- flexDirection: "column"
44
- },
45
- ref: previewRef,
46
- children: [
47
- /* @__PURE__ */ jsx(ScorecardHeader, {}),
48
- /* @__PURE__ */ jsx(ScorecardLegendsView, {}),
49
- /* @__PURE__ */ jsx(TableStateProvider, { children: /* @__PURE__ */ jsx(DndProvider, { backend: HTML5Backend, children: /* @__PURE__ */ jsx(
50
- ScorecardTable,
51
- {
52
- scrollHeight: "100%",
53
- scrollWidth: "100%",
54
- width: "100%"
55
- }
56
- ) }) })
57
- ]
58
- }
59
- ) })
35
+ children: [
36
+ /* @__PURE__ */ jsx("style", { type: "text/css", media: "print", children: " @page { size: landscape; margin: 32px; }" }),
37
+ /* @__PURE__ */ jsx("div", { style: { display: "none" }, children: /* @__PURE__ */ jsxs(
38
+ "div",
39
+ {
40
+ className: "print-preview",
41
+ style: {
42
+ height: "100%",
43
+ display: "flex",
44
+ gap: 16,
45
+ flexDirection: "column"
46
+ },
47
+ ref: previewRef,
48
+ children: [
49
+ /* @__PURE__ */ jsx(ScorecardHeader, {}),
50
+ /* @__PURE__ */ jsx(ScorecardLegendsView, {}),
51
+ /* @__PURE__ */ jsx(TableStateProvider, { children: /* @__PURE__ */ jsx(DndProvider, { backend: HTML5Backend, children: /* @__PURE__ */ jsx(
52
+ ScorecardTable,
53
+ {
54
+ scrollHeight: "100%",
55
+ scrollWidth: "100%",
56
+ width: "100%"
57
+ }
58
+ ) }) })
59
+ ]
60
+ }
61
+ ) })
62
+ ]
60
63
  }
61
64
  );
62
65
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/ScorecardPrint/components/ScorecardPreviewArea.tsx"],"names":["ScorecardPreviewArea"],"mappings":"AAuCI,SAUC,KAVD;AAvCJ,SAAgB,YAA4B;AAC5C,SAAS,0BAA0B;AACnC,SAAS,mBAAmB;AAC5B,SAAS,oBAAoB;AAC7B,SAAS,sBAAsB;AAC/B,SAAS,uBAAuB;AAChC,SAAS,4BAA4B;AACrC,SAAS,8BAA8B;AACvC,SAAS,0BAA0B;AACnC,SAAS,sBAAsB;AAC/B,SAAS,0BAA0B;AAEnC,OAAO;AAEA,MAAM,uBAAuB,KAAK,SAASA,sBAAqB;AAAA,EACtE;AACD,GAEG;AACF,QAAM,SAAS,mBAAmB;AAClC,QAAM,QAAQ,eAAe,kBAAkB;AAE/C,QAAM,eAAe;AAAA,IACpB,GAAI,SAAS,CAAC;AAAA,IACd,SAAS;AAAA,MACR,GAAI,OAAO,WAAW,CAAC;AAAA,MACvB,kBAAkB;AAAA,MAClB,mBAAmB;AAAA,MACnB,WAAW;AAAA,IACZ;AAAA,EACD;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA,gBAAc;AAAA,MACd,cAAc;AAAA,MACd;AAAA,MAEA,8BAAC,SAAI,OAAO,EAAE,SAAS,OAAO,GAC7B;AAAA,QAAC;AAAA;AAAA,UACA,WAAU;AAAA,UACV,OAAO;AAAA,YACN,QAAQ;AAAA,YACR,SAAS;AAAA,YACT,KAAK;AAAA,YACL,eAAe;AAAA,UAChB;AAAA,UACA,KAAK;AAAA,UAEL;AAAA,gCAAC,mBAAgB;AAAA,YACjB,oBAAC,wBAAqB;AAAA,YACtB,oBAAC,sBACA,8BAAC,eAAY,SAAS,cACrB;AAAA,cAAC;AAAA;AAAA,gBACA,cAAa;AAAA,gBACb,aAAY;AAAA,gBACZ,OAAM;AAAA;AAAA,YACP,GACD,GACD;AAAA;AAAA;AAAA,MACD,GACD;AAAA;AAAA,EACD;AAEF,CAAC","sourcesContent":["import React, { memo, type RefObject } from \"react\";\nimport { TableStateProvider } from \"../../TableStateProvider\";\nimport { DndProvider } from \"react-dnd\";\nimport { HTML5Backend } from \"react-dnd-html5-backend\";\nimport { ScorecardTable } from \"../../ScorecardTable\";\nimport { ScorecardHeader } from \"../../ScorecardHeader\";\nimport { ScorecardLegendsView } from \"../../ScorecardLegendsView\";\nimport { ScorecardStateProvider } from \"../../StateProvider\";\nimport { useScorecardConfig } from \"../../ConfigProvider\";\nimport { useRecoilValue } from \"recoil\";\nimport { scorecardStateAtom } from \"../../../state\";\nimport type { ScorecardState } from \"../../../schemas/config\";\nimport \"../print.css\";\n\nexport const ScorecardPreviewArea = memo(function ScorecardPreviewArea({\n\tpreviewRef,\n}: {\n\tpreviewRef: RefObject<HTMLDivElement>;\n}) {\n\tconst config = useScorecardConfig();\n\tconst state = useRecoilValue(scorecardStateAtom);\n\n\tconst updatedState = {\n\t\t...(state ?? {}),\n\t\toptions: {\n\t\t\t...(state?.options ?? {}),\n\t\t\tdisableExpanding: true,\n\t\t\tdisablePagination: true,\n\t\t\tprintMode: true,\n\t\t},\n\t} as ScorecardState;\n\n\treturn (\n\t\t<ScorecardStateProvider\n\t\t\twithRecoilRoot\n\t\t\tinitialState={updatedState}\n\t\t\tconfig={config}\n\t\t>\n\t\t\t<div style={{ display: \"none\" }}>\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"print-preview\"\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\tgap: 16,\n\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t}}\n\t\t\t\t\tref={previewRef}\n\t\t\t\t>\n\t\t\t\t\t<ScorecardHeader />\n\t\t\t\t\t<ScorecardLegendsView />\n\t\t\t\t\t<TableStateProvider>\n\t\t\t\t\t\t<DndProvider backend={HTML5Backend}>\n\t\t\t\t\t\t\t<ScorecardTable\n\t\t\t\t\t\t\t\tscrollHeight=\"100%\"\n\t\t\t\t\t\t\t\tscrollWidth=\"100%\"\n\t\t\t\t\t\t\t\twidth=\"100%\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</DndProvider>\n\t\t\t\t\t</TableStateProvider>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</ScorecardStateProvider>\n\t);\n});\n"]}
1
+ {"version":3,"sources":["../../../../../src/components/ScorecardPrint/components/ScorecardPreviewArea.tsx"],"names":["ScorecardPreviewArea"],"mappings":"AAsCG,cAQC,YARD;AAtCH,SAAgB,YAA4B;AAC5C,SAAS,0BAA0B;AACnC,SAAS,mBAAmB;AAC5B,SAAS,oBAAoB;AAC7B,SAAS,sBAAsB;AAC/B,SAAS,uBAAuB;AAChC,SAAS,4BAA4B;AACrC,SAAS,8BAA8B;AACvC,SAAS,0BAA0B;AACnC,SAAS,sBAAsB;AAC/B,SAAS,0BAA0B;AAEnC,OAAO;AAEA,MAAM,uBAAuB,KAAK,SAASA,sBAAqB;AAAA,EACtE;AACD,GAEG;AACF,QAAM,SAAS,mBAAmB;AAClC,QAAM,QAAQ,eAAe,kBAAkB;AAE/C,QAAM,eAAe;AAAA,IACpB,GAAI,SAAS,CAAC;AAAA,IACd,SAAS;AAAA,MACR,GAAI,OAAO,WAAW,CAAC;AAAA,MACvB,kBAAkB;AAAA,MAClB,mBAAmB;AAAA,MACnB,WAAW;AAAA,IACZ;AAAA,EACD;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA,gBAAc;AAAA,MACd,cAAc;AAAA,MACd;AAAA,MAEA;AAAA,4BAAC,WAAM,MAAK,YAAW,OAAM,SAE3B,wDAIF;AAAA,QACA,oBAAC,SAAI,OAAO,EAAE,SAAS,OAAO,GAC7B;AAAA,UAAC;AAAA;AAAA,YACA,WAAU;AAAA,YACV,OAAO;AAAA,cACN,QAAQ;AAAA,cACR,SAAS;AAAA,cACT,KAAK;AAAA,cACL,eAAe;AAAA,YAChB;AAAA,YACA,KAAK;AAAA,YAEL;AAAA,kCAAC,mBAAgB;AAAA,cACjB,oBAAC,wBAAqB;AAAA,cACtB,oBAAC,sBACA,8BAAC,eAAY,SAAS,cACrB;AAAA,gBAAC;AAAA;AAAA,kBACA,cAAa;AAAA,kBACb,aAAY;AAAA,kBACZ,OAAM;AAAA;AAAA,cACP,GACD,GACD;AAAA;AAAA;AAAA,QACD,GACD;AAAA;AAAA;AAAA,EACD;AAEF,CAAC","sourcesContent":["import React, { memo, type RefObject } from \"react\";\nimport { TableStateProvider } from \"../../TableStateProvider\";\nimport { DndProvider } from \"react-dnd\";\nimport { HTML5Backend } from \"react-dnd-html5-backend\";\nimport { ScorecardTable } from \"../../ScorecardTable\";\nimport { ScorecardHeader } from \"../../ScorecardHeader\";\nimport { ScorecardLegendsView } from \"../../ScorecardLegendsView\";\nimport { ScorecardStateProvider } from \"../../StateProvider\";\nimport { useScorecardConfig } from \"../../ConfigProvider\";\nimport { useRecoilValue } from \"recoil\";\nimport { scorecardStateAtom } from \"../../../state\";\nimport type { ScorecardState } from \"../../../schemas/config\";\nimport \"../print.css\";\n\nexport const ScorecardPreviewArea = memo(function ScorecardPreviewArea({\n\tpreviewRef,\n}: {\n\tpreviewRef: RefObject<HTMLDivElement>;\n}) {\n\tconst config = useScorecardConfig();\n\tconst state = useRecoilValue(scorecardStateAtom);\n\n\tconst updatedState = {\n\t\t...(state ?? {}),\n\t\toptions: {\n\t\t\t...(state?.options ?? {}),\n\t\t\tdisableExpanding: true,\n\t\t\tdisablePagination: true,\n\t\t\tprintMode: true,\n\t\t},\n\t} as ScorecardState;\n\n\treturn (\n\t\t<ScorecardStateProvider\n\t\t\twithRecoilRoot\n\t\t\tinitialState={updatedState}\n\t\t\tconfig={config}\n\t\t>\n\t\t\t<style type=\"text/css\" media=\"print\">\n\t\t\t\t{\n\t\t\t\t\t\"\\\n @page { size: landscape; margin: 32px; }\\\n\"\n\t\t\t\t}\n\t\t\t</style>\n\t\t\t<div style={{ display: \"none\" }}>\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"print-preview\"\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\tgap: 16,\n\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t}}\n\t\t\t\t\tref={previewRef}\n\t\t\t\t>\n\t\t\t\t\t<ScorecardHeader />\n\t\t\t\t\t<ScorecardLegendsView />\n\t\t\t\t\t<TableStateProvider>\n\t\t\t\t\t\t<DndProvider backend={HTML5Backend}>\n\t\t\t\t\t\t\t<ScorecardTable\n\t\t\t\t\t\t\t\tscrollHeight=\"100%\"\n\t\t\t\t\t\t\t\tscrollWidth=\"100%\"\n\t\t\t\t\t\t\t\twidth=\"100%\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</DndProvider>\n\t\t\t\t\t</TableStateProvider>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</ScorecardStateProvider>\n\t);\n});\n"]}
@@ -1,13 +1,5 @@
1
- body {
2
- @media print {
3
- @page {
4
- margin: 32px !important;
5
- }
6
- }
7
- }
8
1
  .print-preview > * {
9
- padding: 32px;
10
- border: 1px solid black;
2
+ margin: 1px;
11
3
  font-size: 1em !important;
12
4
  .print-hide {
13
5
  display: none !important;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ScorecardPrint/print.css"],"sourcesContent":["\nbody {\n @media print {\n @page {\n margin: 32px !important;\n }\n }\n}\n\n.print-preview > * {\n padding: 32px;\n border: 1px solid black;\n font-size: 1em !important;\n\n .print-hide {\n display: none !important;\n }\n\n table {\n border-color: #A0ADBA !important;\n border-left: 1px solid black !important;\n border-top: 1px solid black !important;\n table-layout: fixed !important;\n }\n\n\n td {\n border-color: black !important;\n }\n\n td > div * {\n font-size: 1em !important;\n }\n\n th {\n border-color: black !important;\n border-right: 1px solid black !important;\n background: transparent !important;\n }\n\n /*tr td:first-child > svg {*/\n /* display: none !important;*/\n /*}*/\n\n button {\n display: none !important;\n }\n\n input {\n display: none !important;\n }\n\n\n @media print {\n border: unset;\n\n }\n\n\n}\n\n"],"mappings":"AACA;AACI,SAAO;AACH;AACI,cAAQ;AACZ;AACJ;AACJ;AAEA,CAAC,cAAc,EAAE;AACb,WAAS;AACT,UAAQ,IAAI,MAAM;AAClB,aAAW;AAEX,GAAC;AACG,aAAS;AACb;AAEA;AACI,kBAAc;AACd,iBAAa,IAAI,MAAM;AACvB,gBAAY,IAAI,MAAM;AACtB,kBAAc;AAClB;AAGA;AACI,kBAAc;AAClB;AAEA,KAAG,EAAE,IAAI;AACL,eAAW;AACf;AAEA;AACI,kBAAc;AACd,kBAAc,IAAI,MAAM;AACxB,gBAAY;AAChB;AAMA;AACI,aAAS;AACb;AAEA;AACI,aAAS;AACb;AAGA,SAAO;AACH,YAAQ;AAEZ;AAGJ;","names":[]}
1
+ {"version":3,"sources":["../../../../src/components/ScorecardPrint/print.css"],"sourcesContent":["\n.print-preview > * {\n margin: 1px;\n font-size: 1em !important;\n\n .print-hide {\n display: none !important;\n }\n\n table {\n border-color: #A0ADBA !important;\n border-left: 1px solid black !important;\n border-top: 1px solid black !important;\n table-layout: fixed !important;\n }\n\n\n td {\n border-color: black !important;\n }\n\n td > div * {\n font-size: 1em !important;\n }\n\n th {\n border-color: black !important;\n border-right: 1px solid black !important;\n background: transparent !important;\n }\n\n /*tr td:first-child > svg {*/\n /* display: none !important;*/\n /*}*/\n\n button {\n display: none !important;\n }\n\n input {\n display: none !important;\n }\n\n\n @media print {\n border: unset;\n\n }\n\n\n}\n\n"],"mappings":"AACA,CAAC,cAAc,EAAE;AACb,UAAQ;AACR,aAAW;AAEX,GAAC;AACG,aAAS;AACb;AAEA;AACI,kBAAc;AACd,iBAAa,IAAI,MAAM;AACvB,gBAAY,IAAI,MAAM;AACtB,kBAAc;AAClB;AAGA;AACI,kBAAc;AAClB;AAEA,KAAG,EAAE,IAAI;AACL,eAAW;AACf;AAEA;AACI,kBAAc;AACd,kBAAc,IAAI,MAAM;AACxB,gBAAY;AAChB;AAMA;AACI,aAAS;AACb;AAEA;AACI,aAAS;AACb;AAGA,SAAO;AACH,YAAQ;AAEZ;AAGJ;","names":[]}
@@ -8,6 +8,9 @@
8
8
  z-index: 1;
9
9
  padding: 10px 12px;
10
10
  }
11
+ .expandCell {
12
+ page-break-inside: avoid !important;
13
+ }
11
14
  .loading-cell {
12
15
  animation: shimmer 2s infinite linear;
13
16
  background: linear-gradient(to right, #eee 40%, #ddd 50%, #eee 80%);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ScorecardTable/ScorecardTable.module.css"],"sourcesContent":["\n.expandCell > td:first-child {\n left: 0;\n top: auto;\n text-align: left;\n width: 40px !important;\n background-color: rgb(243, 245, 247);\n position: sticky !important;\n z-index: 1;\n padding: 10px 12px;\n}\n\n\n.loading-cell {\n animation: shimmer 2s infinite linear;\n background: linear-gradient(to right, #eee 40%, #ddd 50%, #eee 80%);\n background-size: 500px 100px;\n animation-name: moving-gradient;\n animation-duration: 1s;\n animation-iteration-count: infinite;\n animation-timing-function: linear;\n animation-fill-mode: forwards;\n}\n\n@-webkit-keyframes moving-gradient {\n 0% {\n background-position: -250px 0;\n }\n 100% {\n background-position: 250px 0;\n }\n}\n\n.loader {\n position: sticky !important;\n left: 0;\n}\n\n\n"],"mappings":"AACA,CAAC,WAAW,EAAE,EAAE;AACZ,QAAM;AACN,OAAK;AACL,cAAY;AACZ,SAAO;AACP,oBAAkB,IAAI,GAAG,EAAE,GAAG,EAAE;AAChC,YAAU;AACV,WAAS;AACT,WAAS,KAAK;AAClB;AAGA,CAAC;AACG,aAAW,QAAQ,GAAG,SAAS;AAC/B,cAAY,gBAAgB,GAAG,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK;AAC/D,mBAAiB,MAAM;AACvB,kBAAgB;AAChB,sBAAoB;AACpB,6BAA2B;AAC3B,6BAA2B;AAC3B,uBAAqB;AACzB;AAEA,mBAPoB;AAQhB;AACI,yBAAqB,OAAO;AAChC;AACA;AACI,yBAAqB,MAAM;AAC/B;AACJ;AAEA,CAAC;AACG,YAAU;AACV,QAAM;AACV;","names":[]}
1
+ {"version":3,"sources":["../../../../src/components/ScorecardTable/ScorecardTable.module.css"],"sourcesContent":["\n.expandCell > td:first-child {\n left: 0;\n top: auto;\n text-align: left;\n width: 40px !important;\n background-color: rgb(243, 245, 247);\n position: sticky !important;\n z-index: 1;\n padding: 10px 12px;\n}\n\n.expandCell {\n page-break-inside: avoid !important;\n}\n\n\n.loading-cell {\n animation: shimmer 2s infinite linear;\n background: linear-gradient(to right, #eee 40%, #ddd 50%, #eee 80%);\n background-size: 500px 100px;\n animation-name: moving-gradient;\n animation-duration: 1s;\n animation-iteration-count: infinite;\n animation-timing-function: linear;\n animation-fill-mode: forwards;\n}\n\n@-webkit-keyframes moving-gradient {\n 0% {\n background-position: -250px 0;\n }\n 100% {\n background-position: 250px 0;\n }\n}\n\n.loader {\n position: sticky !important;\n left: 0;\n}\n\n\n"],"mappings":"AACA,CAAC,WAAW,EAAE,EAAE;AACZ,QAAM;AACN,OAAK;AACL,cAAY;AACZ,SAAO;AACP,oBAAkB,IAAI,GAAG,EAAE,GAAG,EAAE;AAChC,YAAU;AACV,WAAS;AACT,WAAS,KAAK;AAClB;AAEA,CAXC;AAYG,qBAAmB;AACvB;AAGA,CAAC;AACG,aAAW,QAAQ,GAAG,SAAS;AAC/B,cAAY,gBAAgB,GAAG,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK;AAC/D,mBAAiB,MAAM;AACvB,kBAAgB;AAChB,sBAAoB;AACpB,6BAA2B;AAC3B,6BAA2B;AAC3B,uBAAqB;AACzB;AAEA,mBAPoB;AAQhB;AACI,yBAAqB,OAAO;AAChC;AACA;AACI,yBAAqB,MAAM;AAC/B;AACJ;AAEA,CAAC;AACG,YAAU;AACV,QAAM;AACV;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ScorecardDownloadButton.d.ts","sourceRoot":"","sources":["../../../../../src/components/ScorecardPrint/components/ScorecardDownloadButton.tsx"],"names":[],"mappings":"AAsBA,OAAO,cAAc,CAAC;AAmFtB,wBAAgB,uBAAuB,4CA4CtC"}
1
+ {"version":3,"file":"ScorecardDownloadButton.d.ts","sourceRoot":"","sources":["../../../../../src/components/ScorecardPrint/components/ScorecardDownloadButton.tsx"],"names":[],"mappings":"AAsBA,OAAO,cAAc,CAAC;AAmFtB,wBAAgB,uBAAuB,4CAgDtC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ScorecardPreviewArea.d.ts","sourceRoot":"","sources":["../../../../../src/components/ScorecardPrint/components/ScorecardPreviewArea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAQ,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAYpD,OAAO,cAAc,CAAC;AAEtB,eAAO,MAAM,oBAAoB;gBAGpB,UAAU,cAAc,CAAC;EA+CpC,CAAC"}
1
+ {"version":3,"file":"ScorecardPreviewArea.d.ts","sourceRoot":"","sources":["../../../../../src/components/ScorecardPrint/components/ScorecardPreviewArea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAQ,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAYpD,OAAO,cAAc,CAAC;AAEtB,eAAO,MAAM,oBAAoB;gBAGpB,UAAU,cAAc,CAAC;EAsDpC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hisptz/dhis2-scorecard",
3
- "version": "1.0.12",
3
+ "version": "1.0.13",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/esm/index.js",
6
6
  "types": "./dist/types/index.d.ts",
@@ -46,8 +46,8 @@
46
46
  "tsup": "^8.0.1",
47
47
  "typescript": "^5.3.3",
48
48
  "usehooks-ts": "^2.9.2",
49
- "@repo/eslint-config": "0.0.0",
50
- "@repo/typescript-config": "0.0.0"
49
+ "@repo/typescript-config": "0.0.0",
50
+ "@repo/eslint-config": "0.0.0"
51
51
  },
52
52
  "dependencies": {
53
53
  "@tanstack/react-table": "^8.19.3",
@@ -62,9 +62,9 @@
62
62
  "recoil": "^0.7.7",
63
63
  "xlsx": "^0.18.5",
64
64
  "zod": "^3.23.8",
65
+ "@hisptz/dhis2-analytics": "2.0.46",
65
66
  "@hisptz/dhis2-ui": "2.0.27",
66
- "@hisptz/dhis2-utils": "2.0.8",
67
- "@hisptz/dhis2-analytics": "2.0.46"
67
+ "@hisptz/dhis2-utils": "2.0.8"
68
68
  },
69
69
  "peerDependencies": {
70
70
  "@dhis2/app-runtime": "^3.10.2",