@rivm-loculus-tools/common-frontend 0.2.0 → 0.4.0

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 (147) hide show
  1. package/dist/_chunks/EmotionCacheService.js +33 -0
  2. package/dist/_chunks/EmotionCacheService.js.map +1 -0
  3. package/dist/_chunks/decorate.js +9 -0
  4. package/dist/classes/services/EmotionCacheService/EmotionCacheService.d.ts +7 -0
  5. package/dist/classes/services/EmotionCacheService/index.d.ts +1 -0
  6. package/dist/classes/services/EmotionCacheService/index.js +1 -0
  7. package/dist/classes/services/FastaDataEventBusService/FastaDataEventBusService.d.ts +1 -3
  8. package/dist/classes/services/FastaDataEventBusService/index.js +6 -8
  9. package/dist/classes/services/FastaDataEventBusService/index.js.map +1 -1
  10. package/dist/components/app/App/App.d.ts +6 -0
  11. package/dist/components/app/App/index.d.ts +1 -0
  12. package/dist/components/app/App/index.js +104 -0
  13. package/dist/components/app/App/index.js.map +1 -0
  14. package/dist/{_chunks/FastaDataImportDialog.js → components/fasta/FastaDataImportDialog/index.js} +3 -3
  15. package/dist/components/fasta/FastaDataImportDialog/index.js.map +1 -0
  16. package/dist/components/{FastaDataImportDialogLoader → fasta/FastaDataImportDialogLoader}/FastaDataImportDialogLoader.d.ts +2 -2
  17. package/dist/components/fasta/FastaDataImportDialogLoader/index.js +71 -0
  18. package/dist/components/fasta/FastaDataImportDialogLoader/index.js.map +1 -0
  19. package/dist/components/fasta/FastaNotLoaded/index.js +54 -0
  20. package/dist/components/fasta/FastaNotLoaded/index.js.map +1 -0
  21. package/dist/components/{FastaPageHeaderCenterComponent → fasta/FastaPageHeaderCenterComponent}/FastaPageHeaderCenterComponent.d.ts +1 -1
  22. package/dist/components/{FastaPageHeaderCenterComponent → fasta/FastaPageHeaderCenterComponent}/index.js +2 -2
  23. package/dist/components/fasta/FastaPageHeaderCenterComponent/index.js.map +1 -0
  24. package/dist/components/fasta/FastaPageHeaderImportButton/index.js +27 -0
  25. package/dist/components/fasta/FastaPageHeaderImportButton/index.js.map +1 -0
  26. package/dist/components/{FastaPageHeaderResetButton → fasta/FastaPageHeaderResetButton}/index.js +1 -1
  27. package/dist/components/fasta/FastaPageHeaderResetButton/index.js.map +1 -0
  28. package/dist/components/ui/ButtonWithMenu/ButtonWithMenu.d.ts +12 -0
  29. package/dist/components/ui/ButtonWithMenu/index.d.ts +1 -0
  30. package/dist/components/ui/ButtonWithMenu/index.js +47 -0
  31. package/dist/components/ui/ButtonWithMenu/index.js.map +1 -0
  32. package/dist/components/ui/GenericErrorMessage/GenericErrorMessage.d.ts +4 -0
  33. package/dist/components/ui/GenericErrorMessage/index.d.ts +1 -0
  34. package/dist/components/ui/GenericErrorMessage/index.js +44 -0
  35. package/dist/components/ui/GenericErrorMessage/index.js.map +1 -0
  36. package/dist/components/ui/I18nWrapper/index.js +21 -0
  37. package/dist/components/ui/I18nWrapper/index.js.map +1 -0
  38. package/dist/components/ui/PageCommon/PageCommon.d.ts +7 -0
  39. package/dist/components/ui/PageCommon/index.d.ts +1 -0
  40. package/dist/components/ui/PageCommon/index.js +55 -0
  41. package/dist/components/ui/PageCommon/index.js.map +1 -0
  42. package/dist/components/ui/PageCommonDrawer/index.d.ts +1 -0
  43. package/dist/components/ui/PageCommonDrawer/index.js +30 -0
  44. package/dist/components/ui/PageCommonDrawer/index.js.map +1 -0
  45. package/dist/components/{page → ui/PageCommonHeader}/PageCommonHeader.d.ts +1 -2
  46. package/dist/components/ui/PageCommonHeader/index.d.ts +1 -0
  47. package/dist/components/ui/PageCommonHeader/index.js +107 -0
  48. package/dist/components/ui/PageCommonHeader/index.js.map +1 -0
  49. package/dist/constants/config.constants.d.ts +9 -0
  50. package/dist/constants/config.constants.js +6 -0
  51. package/dist/constants/config.constants.js.map +1 -0
  52. package/dist/constants/page.constants.js +6 -0
  53. package/dist/constants/page.constants.js.map +1 -0
  54. package/dist/context/commonConfigContext/CommonConfigContext.d.ts +9 -0
  55. package/dist/context/commonConfigContext/CommonConfigContextProvider.d.ts +6 -0
  56. package/dist/context/commonConfigContext/index.d.ts +3 -0
  57. package/dist/context/commonConfigContext/index.js +34 -0
  58. package/dist/context/commonConfigContext/index.js.map +1 -0
  59. package/dist/context/commonConfigContext/useCommonConfigContext.d.ts +3 -0
  60. package/dist/context/pageCommonContext/PageCommonContext.d.ts +17 -0
  61. package/dist/context/pageCommonContext/PageCommonContextProvider.d.ts +4 -0
  62. package/dist/context/pageCommonContext/index.d.ts +2 -0
  63. package/dist/context/pageCommonContext/index.js +26 -0
  64. package/dist/context/pageCommonContext/index.js.map +1 -0
  65. package/dist/hooks/useConfig/index.d.ts +1 -0
  66. package/dist/hooks/useConfig/index.js +7 -0
  67. package/dist/hooks/useConfig/index.js.map +1 -0
  68. package/dist/hooks/useConfig/useConfig.d.ts +2 -0
  69. package/dist/hooks/useUpdateDocumentTitle/index.d.ts +1 -0
  70. package/dist/hooks/useUpdateDocumentTitle/index.js +13 -0
  71. package/dist/hooks/useUpdateDocumentTitle/index.js.map +1 -0
  72. package/dist/hooks/useUpdateDocumentTitle/useUpdateDocumentTitle.d.ts +1 -0
  73. package/dist/models/config.models.d.ts +16 -0
  74. package/dist/models/{fasta.js → fasta.models.js} +2 -2
  75. package/dist/models/fasta.models.js.map +1 -0
  76. package/dist/models/metadata.models.js +0 -0
  77. package/dist/pages/ErrorPage/ErrorPage.d.ts +4 -0
  78. package/dist/pages/ErrorPage/index.d.ts +1 -0
  79. package/dist/pages/ErrorPage/index.js +17 -0
  80. package/dist/pages/ErrorPage/index.js.map +1 -0
  81. package/dist/stores/fastaDataStore/fastaDataStore.d.ts +2 -2
  82. package/dist/stores/fastaDataStore/index.js +17 -15
  83. package/dist/stores/fastaDataStore/index.js.map +1 -1
  84. package/dist/theme/index.js +17 -17
  85. package/dist/theme/index.js.map +1 -1
  86. package/dist/utils/DependencyContainerUtil/DependencyContainerUtil.d.ts +6 -0
  87. package/dist/utils/DependencyContainerUtil/index.d.ts +1 -0
  88. package/dist/utils/DependencyContainerUtil/index.js +18 -0
  89. package/dist/utils/DependencyContainerUtil/index.js.map +1 -0
  90. package/dist/utils/ExportUtil/ExportUtil.d.ts +6 -0
  91. package/dist/utils/ExportUtil/index.d.ts +1 -0
  92. package/dist/utils/ExportUtil/index.js +42 -0
  93. package/dist/utils/ExportUtil/index.js.map +1 -0
  94. package/dist/utils/FastaUtil/FastaUtil.d.ts +1 -1
  95. package/dist/utils/FastaUtil/index.js.map +1 -1
  96. package/dist/utils/MetaDataUtil/MetaDataUtil.d.ts +1 -1
  97. package/dist/utils/MetaDataUtil/index.js.map +1 -1
  98. package/dist/utils/StandardConfigUtil/StandardConfigUtil.d.ts +4 -0
  99. package/dist/utils/StandardConfigUtil/index.d.ts +1 -0
  100. package/dist/utils/StandardConfigUtil/index.js +18 -0
  101. package/dist/utils/StandardConfigUtil/index.js.map +1 -0
  102. package/dist/utils/UrlUtil/index.js +6 -5
  103. package/dist/utils/UrlUtil/index.js.map +1 -1
  104. package/package.json +111 -47
  105. package/dist/_chunks/FastaDataImportDialog.js.map +0 -1
  106. package/dist/components/FastaDataImportDialog/index.js +0 -1
  107. package/dist/components/FastaDataImportDialogLoader/index.js +0 -70
  108. package/dist/components/FastaDataImportDialogLoader/index.js.map +0 -1
  109. package/dist/components/FastaNotLoaded/index.js +0 -53
  110. package/dist/components/FastaNotLoaded/index.js.map +0 -1
  111. package/dist/components/FastaPageHeaderCenterComponent/index.js.map +0 -1
  112. package/dist/components/FastaPageHeaderImportButton/index.js +0 -26
  113. package/dist/components/FastaPageHeaderImportButton/index.js.map +0 -1
  114. package/dist/components/FastaPageHeaderResetButton/index.js.map +0 -1
  115. package/dist/components/I18nWrapper/index.js +0 -21
  116. package/dist/components/I18nWrapper/index.js.map +0 -1
  117. package/dist/components/PageHeaderDocumentationButton/PageHeaderDocumentationButton.d.ts +0 -1
  118. package/dist/components/PageHeaderDocumentationButton/index.d.ts +0 -1
  119. package/dist/components/PageHeaderDocumentationButton/index.js +0 -24
  120. package/dist/components/PageHeaderDocumentationButton/index.js.map +0 -1
  121. package/dist/components/page/ErrorPageCommon.d.ts +0 -4
  122. package/dist/components/page/PageCommon.d.ts +0 -8
  123. package/dist/components/page/PageCommonContext.d.ts +0 -7
  124. package/dist/components/page/PageCommonContextProvider.d.ts +0 -3
  125. package/dist/components/page/index.d.ts +0 -6
  126. package/dist/components/page/index.js +0 -207
  127. package/dist/components/page/index.js.map +0 -1
  128. package/dist/constants/page.js +0 -6
  129. package/dist/constants/page.js.map +0 -1
  130. package/dist/models/fasta.js.map +0 -1
  131. /package/dist/components/{FastaDataImportDialog → fasta/FastaDataImportDialog}/FastaDataImportDialog.d.ts +0 -0
  132. /package/dist/components/{FastaDataImportDialog → fasta/FastaDataImportDialog}/index.d.ts +0 -0
  133. /package/dist/components/{FastaDataImportDialogLoader → fasta/FastaDataImportDialogLoader}/index.d.ts +0 -0
  134. /package/dist/components/{FastaNotLoaded → fasta/FastaNotLoaded}/FastaNotLoaded.d.ts +0 -0
  135. /package/dist/components/{FastaNotLoaded → fasta/FastaNotLoaded}/index.d.ts +0 -0
  136. /package/dist/components/{FastaPageHeaderCenterComponent → fasta/FastaPageHeaderCenterComponent}/index.d.ts +0 -0
  137. /package/dist/components/{FastaPageHeaderImportButton → fasta/FastaPageHeaderImportButton}/FastaPageHeaderImportButton.d.ts +0 -0
  138. /package/dist/components/{FastaPageHeaderImportButton → fasta/FastaPageHeaderImportButton}/index.d.ts +0 -0
  139. /package/dist/components/{FastaPageHeaderResetButton → fasta/FastaPageHeaderResetButton}/FastaPageHeaderResetButton.d.ts +0 -0
  140. /package/dist/components/{FastaPageHeaderResetButton → fasta/FastaPageHeaderResetButton}/index.d.ts +0 -0
  141. /package/dist/components/{I18nWrapper → ui/I18nWrapper}/I18nWrapper.d.ts +0 -0
  142. /package/dist/components/{I18nWrapper → ui/I18nWrapper}/index.d.ts +0 -0
  143. /package/dist/components/{page → ui/PageCommonDrawer}/PageCommonDrawer.d.ts +0 -0
  144. /package/dist/constants/{page.d.ts → page.constants.d.ts} +0 -0
  145. /package/dist/models/{metadata.js → config.models.js} +0 -0
  146. /package/dist/models/{fasta.d.ts → fasta.models.d.ts} +0 -0
  147. /package/dist/models/{metadata.d.ts → metadata.models.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_Fragment","ButtonWithMenu","anchorElement","setAnchorElement","useState","isMenuOpen","onClickMenu","useCallback","event","onCloseMenu","Fragment","Button","label","Menu","items","itemLabel","MenuItem","onClick","ListItemIcon","icon","ListItemText"],"sources":["../../../../src/components/ui/ButtonWithMenu/ButtonWithMenu.tsx"],"sourcesContent":["import {\n Button,\n ListItemIcon,\n ListItemText,\n Menu,\n MenuItem,\n} from '@mui/material';\nimport {\n useCallback,\n useState,\n} from 'react';\nimport type {\n MouseEvent,\n ReactElement,\n} from 'react';\n\nexport type ButtonWithMenuProps = {\n disabled?: boolean;\n items: Array<{\n icon: ReactElement;\n label: string;\n onClick: () => void;\n }>;\n label: string;\n startIcon?: ReactElement;\n};\n\nexport const ButtonWithMenu = ({ disabled, items, label, startIcon }: ButtonWithMenuProps) => {\n const [anchorElement, setAnchorElement] = useState<HTMLElement | null>(null);\n const isMenuOpen = Boolean(anchorElement);\n\n const onClickMenu = useCallback((event: MouseEvent<HTMLButtonElement>) => {\n setAnchorElement(event.currentTarget);\n }, []);\n\n const onCloseMenu = useCallback(() => {\n setAnchorElement(null);\n }, []);\n\n return (\n <>\n <Button\n color={'inherit'}\n disabled={disabled}\n onClick={onClickMenu}\n size={'small'}\n startIcon={startIcon}\n sx={{\n '&:hover': {\n backgroundColor: 'rgba(255, 255, 255, 0.25)',\n },\n backgroundColor: 'rgba(255, 255, 255, 0.15)',\n color: '#FFFFFF',\n }}\n variant={'contained'}\n >\n {label}\n </Button>\n <Menu\n anchorEl={anchorElement}\n anchorOrigin={{ horizontal: 'right', vertical: 'bottom' }}\n onClose={onCloseMenu}\n open={isMenuOpen}\n transformOrigin={{ horizontal: 'right', vertical: 'top' }}\n >\n {items.map(({ icon, label: itemLabel, onClick }) => (\n <MenuItem\n key={itemLabel}\n // eslint-disable-next-line @eslint-react/kit/jsx-no-bind\n onClick={() => {\n onCloseMenu();\n onClick();\n }}\n >\n <ListItemIcon>\n {icon}\n </ListItemIcon>\n <ListItemText primary={itemLabel} />\n </MenuItem>\n ))}\n </Menu>\n </>\n );\n};\n"],"mappings":";;;;AA2BA,IAAaC,KAAkB,EAAE,aAAU,UAAO,UAAO,mBAAqC;CAC5F,IAAM,CAACC,GAAeC,KAAoBC,EAA6B,IAAI,GACrEC,IAAa,EAAQH,GAErBI,IAAcC,GAAa,MAAyC;EACxE,EAAiBC,EAAM,aAAa;CACtC,GAAG,CAAC,CAAC,GAECC,IAAcF,QAAkB;EACpC,EAAiB,IAAI;CACvB,GAAG,CAAC,CAAC;CAEL,OACE,kBAAAP,GAAA,EAAA,UAAA,CACE,kBAACW,GAAD;EACE,OAAO;EACG;EACV,SAASL;EACT,MAAM;EACK;EACX,IAAI;GACF,WAAW,EACT,iBAAiB,4BACnB;GACA,iBAAiB;GACjB,OAAO;EACT;EACA,SAAS;EAER,UAAAM;CACK,CAAA,GACR,kBAACC,GAAD;EACE,UAAUX;EACV,cAAc;GAAE,YAAY;GAAS,UAAU;EAAS;EACxD,SAASO;EACT,MAAMJ;EACN,iBAAiB;GAAE,YAAY;GAAS,UAAU;EAAM;EAEvD,UAAAS,EAAM,KAAK,EAAE,SAAM,OAAOC,GAAW,iBACpC,kBAACC,GAAD;GAGE,eAAe;IAEb,AADAP,EAAY,GACZQ,EAAQ;GACV;GANF,UAAA,CAQE,kBAACC,GAAD,EAAA,UACGC,EACW,CAAA,GACd,kBAACC,GAAD,EAAc,SAASL,EAAY,CAAA,CAC3B;EAXH,GAAAA,CAWG,CACX;CACG,CAAA,CACN,EAAA,CAAA;AAEN"}
@@ -0,0 +1,4 @@
1
+ export type GenericErrorMessageProps = {
2
+ error: unknown;
3
+ };
4
+ export declare const GenericErrorMessage: ({ error }: GenericErrorMessageProps) => import('react').JSX.Element;
@@ -0,0 +1 @@
1
+ export * from './GenericErrorMessage';
@@ -0,0 +1,44 @@
1
+ import { Box as e, Typography as t } from "@mui/material";
2
+ import { t as n } from "i18next";
3
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
4
+ //#region src/components/ui/GenericErrorMessage/GenericErrorMessage.tsx
5
+ var a = ({ error: a }) => /* @__PURE__ */ i(e, {
6
+ sx: {
7
+ alignItems: "center",
8
+ display: "flex",
9
+ flexDirection: "column",
10
+ justifyContent: "center",
11
+ width: "100%"
12
+ },
13
+ children: [
14
+ /* @__PURE__ */ r(e, {
15
+ sx: { padding: 1 },
16
+ children: /* @__PURE__ */ r(t, {
17
+ variant: "h1",
18
+ children: n`Something went wrong`
19
+ })
20
+ }),
21
+ /* @__PURE__ */ r(e, {
22
+ sx: { padding: 1 },
23
+ children: /* @__PURE__ */ r(t, {
24
+ variant: "body2",
25
+ children: a instanceof Error ? a.message : n`An unexpected error occurred.`
26
+ })
27
+ }),
28
+ /* @__PURE__ */ i(e, {
29
+ sx: { padding: 1 },
30
+ children: [/* @__PURE__ */ r(t, {
31
+ variant: "h6",
32
+ children: n`Details for our technicians`
33
+ }), /* @__PURE__ */ r(e, {
34
+ component: "pre",
35
+ sx: { fontSize: "0.8rem" },
36
+ children: a?.stack
37
+ })]
38
+ })
39
+ ]
40
+ });
41
+ //#endregion
42
+ export { a as GenericErrorMessage };
43
+
44
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["GenericErrorMessage","Box","Typography","error"],"sources":["../../../../src/components/ui/GenericErrorMessage/GenericErrorMessage.tsx"],"sourcesContent":["import {\n Box,\n Typography,\n} from '@mui/material';\nimport { t } from 'i18next';\n\nexport type GenericErrorMessageProps = {\n error: unknown;\n};\n\nexport const GenericErrorMessage = ({ error }: GenericErrorMessageProps) => {\n return (\n <Box\n sx={{\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n width: '100%',\n }}\n >\n <Box sx={{ padding: 1 }}>\n <Typography\n variant={'h1'}\n >\n {t`Something went wrong`}\n </Typography>\n </Box>\n <Box sx={{ padding: 1 }}>\n <Typography\n variant={'body2'}\n >\n {error instanceof Error ? error.message : t`An unexpected error occurred.`}\n </Typography>\n </Box>\n <Box sx={{ padding: 1 }}>\n <Typography variant={'h6'}>\n {t`Details for our technicians`}\n </Typography>\n <Box\n component={'pre'}\n sx={{\n fontSize: '0.8rem',\n }}\n >\n {(error as Error)?.stack}\n </Box>\n </Box>\n </Box>\n );\n};\n"],"mappings":";;;;AAUA,IAAaA,KAAuB,EAAE,eAElC,kBAACC,GAAD;CACE,IAAI;EACF,YAAY;EACZ,SAAS;EACT,eAAe;EACf,gBAAgB;EAChB,OAAO;CACT;CAPF,UAAA;EASE,kBAACA,GAAD;GAAK,IAAI,EAAE,SAAS,EAAE;GACpB,UAAA,kBAACC,GAAD;IACE,SAAS;IAER,UAAA,CAAC;GACQ,CAAA;EACT,CAAA;EACL,kBAACD,GAAD;GAAK,IAAI,EAAE,SAAS,EAAE;GACpB,UAAA,kBAACC,GAAD;IACE,SAAS;IAER,UAAAC,aAAiB,QAAQA,EAAM,UAAU,CAAC;GACjC,CAAA;EACT,CAAA;EACL,kBAACF,GAAD;GAAK,IAAI,EAAE,SAAS,EAAE;GAAtB,UAAA,CACE,kBAACC,GAAD;IAAY,SAAS;IAClB,UAAA,CAAC;GACQ,CAAA,GACZ,kBAACD,GAAD;IACE,WAAW;IACX,IAAI,EACF,UAAU,SACZ;IAEE,UAAAE,GAAiB;GAChB,CAAA,CACF;;CACF"}
@@ -0,0 +1,21 @@
1
+ import { initReactI18next as e } from "react-i18next";
2
+ import t from "i18next";
3
+ import { Fragment as n, jsx as r } from "react/jsx-runtime";
4
+ import { useEffect as i, useState as a } from "react";
5
+ //#region src/components/ui/I18nWrapper/I18nWrapper.tsx
6
+ var o = ({ children: o }) => {
7
+ let [s, c] = a(!1);
8
+ return i(() => {
9
+ (async () => {
10
+ await t.use(e).init({
11
+ interpolation: { escapeValue: !1 },
12
+ lng: "en",
13
+ resources: { en: { translation: {} } }
14
+ }), c(!0);
15
+ })();
16
+ }, []), /* @__PURE__ */ r(n, { children: s ? o : null });
17
+ };
18
+ //#endregion
19
+ export { o as I18nWrapper };
20
+
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_Fragment","i18n","I18nWrapper","isInitialized","setIsInitialized","useState","useEffect","initReactI18next","Fragment","children"],"sources":["../../../../src/components/ui/I18nWrapper/I18nWrapper.tsx"],"sourcesContent":["import {\n useEffect,\n useState,\n} from 'react';\nimport type { ReactNode } from 'react';\nimport i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\n\nexport const I18nWrapper = ({ children }: { children: ReactNode }) => {\n const [isInitialized, setIsInitialized] = useState(false);\n\n useEffect(() => {\n const performInitialization = async () => {\n await i18n\n .use(initReactI18next) // passes i18n down to react-i18next\n .init({\n interpolation: {\n escapeValue: false, // react already safes from xss\n },\n lng: 'en',\n resources: {\n en: {\n translation: {\n },\n },\n },\n });\n setIsInitialized(true);\n };\n void performInitialization();\n }, []);\n\n\n return (\n <>\n {isInitialized ? children : null}\n </>\n );\n};\n"],"mappings":";;;;;AAQA,IAAaE,KAAe,EAAE,kBAAwC;CACpE,IAAM,CAACC,GAAeC,KAAoBC,EAAS,EAAK;CAwBxD,OAtBAC,QAAgB;EAkBd,aAjB0C;GAexC,AAdA,MAAML,EACH,IAAIM,CAAgB,CAAC,CACrB,KAAK;IACJ,eAAe,EACb,aAAa,GACf;IACA,KAAK;IACL,WAAW,EACT,IAAI,EACF,aAAa,CACb,EACF,EACF;GACF,CAAC,GACHH,EAAiB,EAAI;EACvB,EACK,CAAsB;CAC7B,GAAG,CAAC,CAAC,GAIH,kBAAAJ,GAAA,EAAA,UACGG,IAAgBM,IAAW,KAC5B,CAAA;AAEN"}
@@ -0,0 +1,7 @@
1
+ import { ReactNode } from 'react';
2
+ export type PageCommonProps = {
3
+ readonly children: ReactNode;
4
+ readonly isNoInteraction?: boolean;
5
+ readonly title: string;
6
+ };
7
+ export declare const PageCommon: ({ children, isNoInteraction, title }: PageCommonProps) => import('react').JSX.Element;
@@ -0,0 +1 @@
1
+ export * from './PageCommon';
@@ -0,0 +1,55 @@
1
+ import "../../../constants/page.constants.js";
2
+ import { PageCommonContext as e } from "../../../context/pageCommonContext/index.js";
3
+ import { useConfig as t } from "../../../hooks/useConfig/index.js";
4
+ import { useUpdateDocumentTitle as n } from "../../../hooks/useUpdateDocumentTitle/index.js";
5
+ import { Box as r, useTheme as i } from "@mui/material";
6
+ import { jsx as a, jsxs as o } from "react/jsx-runtime";
7
+ import { use as s, useEffect as c } from "react";
8
+ //#region src/components/ui/PageCommon/PageCommon.tsx
9
+ var l = ({ children: l, isNoInteraction: u, title: d }) => {
10
+ let { drawerComponent: f, headerComponent: p } = t();
11
+ n(d);
12
+ let m = i(), { drawerContainerId: h, isDrawerOpen: g, setIsNoInteraction: _ } = s(e);
13
+ return c(() => {
14
+ _(!!u);
15
+ }, [u, _]), /* @__PURE__ */ o(r, {
16
+ sx: {
17
+ display: "grid",
18
+ gridTemplateRows: "max-content auto",
19
+ height: "100vh",
20
+ overflow: "hidden",
21
+ position: "relative",
22
+ width: "100vw"
23
+ },
24
+ children: [p && /* @__PURE__ */ a(p, {}), /* @__PURE__ */ o(r, {
25
+ id: h,
26
+ sx: {
27
+ display: "flex",
28
+ flex: 1,
29
+ height: "100%",
30
+ overflow: "hidden",
31
+ position: "relative",
32
+ width: "100%"
33
+ },
34
+ children: [f && /* @__PURE__ */ a(f, {}), /* @__PURE__ */ a(r, {
35
+ component: "main",
36
+ sx: {
37
+ flexGrow: 1,
38
+ height: "100%",
39
+ overflow: "hidden",
40
+ position: "relative",
41
+ transition: () => m.transitions.create(["margin", "width"], {
42
+ duration: m.transitions.duration.leavingScreen,
43
+ easing: m.transitions.easing.sharp
44
+ }),
45
+ width: g ? "calc(100% - 340px)" : "100%"
46
+ },
47
+ children: l
48
+ })]
49
+ })]
50
+ });
51
+ };
52
+ //#endregion
53
+ export { l as PageCommon };
54
+
55
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["PageCommon","DrawerComponent","HeaderComponent","useConfig","title","theme","useTheme","use","PageCommonContext","useEffect","isNoInteraction","setIsNoInteraction","Box","drawerContainerId","isDrawerOpen"],"sources":["../../../../src/components/ui/PageCommon/PageCommon.tsx"],"sourcesContent":["import {\n Box,\n useTheme,\n} from '@mui/material';\nimport {\n use,\n useEffect,\n} from 'react';\nimport type { ReactNode } from 'react';\n\nimport { DRAWER_WIDTH } from '../../../constants/page.constants';\nimport { PageCommonContext } from '../../../context/pageCommonContext';\nimport { useUpdateDocumentTitle } from '../../../hooks/useUpdateDocumentTitle';\nimport { useConfig } from '../../../hooks/useConfig';\n\nexport type PageCommonProps = {\n readonly children: ReactNode;\n readonly isNoInteraction?: boolean;\n readonly title: string;\n};\n\n\nexport const PageCommon = ({ children, isNoInteraction, title }: PageCommonProps) => {\n const { drawerComponent: DrawerComponent, headerComponent: HeaderComponent } = useConfig();\n\n useUpdateDocumentTitle(title);\n const theme = useTheme();\n const { drawerContainerId, isDrawerOpen, setIsNoInteraction } = use(PageCommonContext);\n\n useEffect(() => {\n setIsNoInteraction(!!isNoInteraction);\n }, [isNoInteraction, setIsNoInteraction]);\n\n return (\n <Box\n sx={{\n display: 'grid',\n gridTemplateRows: 'max-content auto',\n height: '100vh',\n overflow: 'hidden',\n position: 'relative',\n width: '100vw',\n }}\n >\n {HeaderComponent && <HeaderComponent />}\n <Box\n id={drawerContainerId}\n sx={{\n display: 'flex',\n flex: 1,\n height: '100%',\n overflow: 'hidden',\n position: 'relative',\n width: '100%',\n }}\n >\n {DrawerComponent && <DrawerComponent />}\n <Box\n component={'main'}\n sx={{\n flexGrow: 1,\n height: '100%',\n overflow: 'hidden',\n position: 'relative',\n transition: () =>\n theme.transitions.create(['margin', 'width'], {\n duration: theme.transitions.duration.leavingScreen,\n easing: theme.transitions.easing.sharp,\n }),\n width: isDrawerOpen ? `calc(100% - ${DRAWER_WIDTH}px)` : '100%',\n }}\n >\n {children}\n </Box>\n\n </Box>\n </Box>\n );\n};\n"],"mappings":";;;;;;;;AAsBA,IAAaA,KAAc,EAAE,aAAU,oBAAiB,eAA6B;CACnF,IAAM,EAAE,iBAAiBC,GAAiB,iBAAiBC,MAAoBC,EAAU;CAEzF,EAAuBC,CAAK;CAC5B,IAAMC,IAAQC,EAAS,GACjB,EAAE,sBAAmB,iBAAc,0BAAuBC,EAAIC,CAAiB;CAMrF,OAJAC,QAAgB;EACd,EAAmB,CAAC,CAACC,CAAe;CACtC,GAAG,CAACA,GAAiBC,CAAkB,CAAC,GAGtC,kBAACC,GAAD;EACE,IAAI;GACF,SAAS;GACT,kBAAkB;GAClB,QAAQ;GACR,UAAU;GACV,UAAU;GACV,OAAO;EACT;EARF,UAAA,CAUGV,KAAmB,kBAACA,GAAD,CAAkB,CAAA,GACtC,kBAACU,GAAD;GACE,IAAIC;GACJ,IAAI;IACF,SAAS;IACT,MAAM;IACN,QAAQ;IACR,UAAU;IACV,UAAU;IACV,OAAO;GACT;GATF,UAAA,CAWGZ,KAAmB,kBAACA,GAAD,CAAkB,CAAA,GACtC,kBAACW,GAAD;IACE,WAAW;IACX,IAAI;KACF,UAAU;KACV,QAAQ;KACR,UAAU;KACV,UAAU;KACV,kBACEP,EAAM,YAAY,OAAO,CAAC,UAAU,OAAO,GAAG;MAC5C,UAAUA,EAAM,YAAY,SAAS;MACrC,QAAQA,EAAM,YAAY,OAAO;KACnC,CAAC;KACH,OAAOS,IAAe,uBAAmC;IAC3D;IAEC;GACE,CAAA,CAEF;EACF,CAAA,CAAA;;AAET"}
@@ -0,0 +1 @@
1
+ export * from './PageCommonDrawer';
@@ -0,0 +1,30 @@
1
+ import "../../../constants/page.constants.js";
2
+ import { PageCommonContext as e } from "../../../context/pageCommonContext/index.js";
3
+ import { Drawer as t } from "@mui/material";
4
+ import { jsx as n } from "react/jsx-runtime";
5
+ import { use as r } from "react";
6
+ //#region src/components/ui/PageCommonDrawer/PageCommonDrawer.tsx
7
+ var i = ({ children: i }) => {
8
+ let { drawerContainerId: a, isDrawerOpen: o } = r(e);
9
+ return /* @__PURE__ */ n(t, {
10
+ anchor: "left",
11
+ ModalProps: {
12
+ container: () => document.getElementById(a),
13
+ style: { position: "absolute" }
14
+ },
15
+ open: o,
16
+ sx: { "& .MuiDrawer-paper": {
17
+ flexShrink: 0,
18
+ height: "100%",
19
+ overflowY: "auto",
20
+ position: "absolute",
21
+ width: o ? 340 : 0
22
+ } },
23
+ variant: "persistent",
24
+ children: i
25
+ });
26
+ };
27
+ //#endregion
28
+ export { i as PageCommonDrawer };
29
+
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["PageCommonDrawer","use","PageCommonContext","Drawer","drawerContainerId","isDrawerOpen"],"sources":["../../../../src/components/ui/PageCommonDrawer/PageCommonDrawer.tsx"],"sourcesContent":["import { Drawer } from '@mui/material';\nimport { use } from 'react';\nimport type { ReactNode } from 'react';\n\nimport { DRAWER_WIDTH } from '../../../constants/page.constants';\nimport { PageCommonContext } from '../../../context/pageCommonContext';\n\nexport type PageCommonDrawerProps = {\n readonly children: ReactNode;\n};\n\nexport const PageCommonDrawer = ({ children }: PageCommonDrawerProps) => {\n const { drawerContainerId, isDrawerOpen } = use(PageCommonContext);\n\n return (\n <Drawer\n anchor={'left'}\n ModalProps={{\n container: () => document.getElementById(drawerContainerId),\n style: { position: 'absolute' }, // Forces modal overlay to stay inside the container\n }}\n open={isDrawerOpen}\n sx={{\n '& .MuiDrawer-paper': {\n flexShrink: 0,\n height: '100%',\n overflowY: 'auto',\n position: 'absolute',\n width: isDrawerOpen ? DRAWER_WIDTH : 0,\n },\n }}\n variant={'persistent'}\n >\n {children}\n </Drawer>\n );\n};\n"],"mappings":";;;;;;AAWA,IAAaA,KAAoB,EAAE,kBAAsC;CACvE,IAAM,EAAE,sBAAmB,oBAAiBC,EAAIC,CAAiB;CAEjE,OACE,kBAACC,GAAD;EACE,QAAQ;EACR,YAAY;GACV,iBAAiB,SAAS,eAAeC,CAAiB;GAC1D,OAAO,EAAE,UAAU,WAAW;EAChC;EACA,MAAMC;EACN,IAAI,EACF,sBAAsB;GACpB,YAAY;GACZ,QAAQ;GACR,WAAW;GACX,UAAU;GACV,OAAOA,IAAA,MAA8B;EACvC,EACF;EACA,SAAS;EAER;CACK,CAAA;AAEZ"}
@@ -1,8 +1,7 @@
1
1
  import { ReactNode } from 'react';
2
2
  export type PageCommonHeaderProps = {
3
3
  readonly centerComponent?: ReactNode;
4
- readonly icon?: ReactNode;
5
4
  readonly rightComponent?: ReactNode;
6
5
  readonly title: string;
7
6
  };
8
- export declare const PageCommonHeader: ({ centerComponent, icon, rightComponent, title }: PageCommonHeaderProps) => import('react').JSX.Element;
7
+ export declare const PageCommonHeader: ({ centerComponent, rightComponent, title }: PageCommonHeaderProps) => import('react').JSX.Element;
@@ -0,0 +1 @@
1
+ export * from './PageCommonHeader';
@@ -0,0 +1,107 @@
1
+ import { PageCommonContext as e } from "../../../context/pageCommonContext/index.js";
2
+ import { AppBar as t, Box as n, IconButton as r, Toolbar as i, Typography as a, useTheme as o } from "@mui/material";
3
+ import { Fragment as s, jsx as c, jsxs as l } from "react/jsx-runtime";
4
+ import { use as u, useCallback as d } from "react";
5
+ import f from "@mui/icons-material/Menu";
6
+ //#region src/components/ui/PageCommonHeader/PageCommonHeader.tsx
7
+ var p = ({ centerComponent: p, rightComponent: m, title: h }) => {
8
+ let g = o(), { afterAppBarComponent: _, afterAppBarRightComponent: v, appBarHeight: y = 48, appBarIcon: b, beforeAppBarComponent: x, beforeAppBarRightComponent: S, isDrawerOpen: C, isNoInteraction: w, setIsDrawerOpen: T } = u(e), E = d(() => {
9
+ T(!C);
10
+ }, [C, T]);
11
+ return /* @__PURE__ */ l(n, { children: [
12
+ x,
13
+ /* @__PURE__ */ c(t, {
14
+ elevation: 1,
15
+ position: "static",
16
+ sx: {
17
+ backgroundColor: "primary.main",
18
+ color: "#FFFFFF",
19
+ height: y,
20
+ justifyContent: "center",
21
+ zIndex: g.zIndex.drawer + 1
22
+ },
23
+ children: /* @__PURE__ */ l(i, {
24
+ sx: {
25
+ display: "flex",
26
+ justifyContent: "space-between",
27
+ px: `${g.spacing(1)} !important`
28
+ },
29
+ variant: "dense",
30
+ children: [/* @__PURE__ */ l(n, {
31
+ sx: {
32
+ alignItems: "center",
33
+ display: "flex",
34
+ gap: 1.5
35
+ },
36
+ children: [
37
+ !w && /* @__PURE__ */ c(r, {
38
+ "aria-label": "open drawer",
39
+ color: "inherit",
40
+ edge: "start",
41
+ onClick: E,
42
+ size: "small",
43
+ children: /* @__PURE__ */ c(f, {})
44
+ }),
45
+ b && /* @__PURE__ */ c(s, { children: b }),
46
+ /* @__PURE__ */ c(a, {
47
+ component: "div",
48
+ noWrap: !0,
49
+ sx: {
50
+ color: "inherit",
51
+ fontSize: "1.05rem",
52
+ fontWeight: 700,
53
+ letterSpacing: "-0.01em"
54
+ },
55
+ variant: "h6",
56
+ children: h
57
+ })
58
+ ]
59
+ }), !w && /* @__PURE__ */ l(s, { children: [/* @__PURE__ */ c(n, {
60
+ sx: {
61
+ alignItems: "center",
62
+ display: "flex",
63
+ gap: 1
64
+ },
65
+ children: p
66
+ }), /* @__PURE__ */ l(n, {
67
+ sx: {
68
+ alignItems: "center",
69
+ display: "flex",
70
+ gap: 1
71
+ },
72
+ children: [
73
+ S && /* @__PURE__ */ c(n, {
74
+ sx: {
75
+ alignItems: "center",
76
+ display: "flex",
77
+ gap: 1
78
+ },
79
+ children: S
80
+ }),
81
+ /* @__PURE__ */ c(n, {
82
+ sx: {
83
+ alignItems: "center",
84
+ display: "flex",
85
+ gap: 1
86
+ },
87
+ children: m
88
+ }),
89
+ v && /* @__PURE__ */ c(n, {
90
+ sx: {
91
+ alignItems: "center",
92
+ display: "flex",
93
+ gap: 1
94
+ },
95
+ children: v
96
+ })
97
+ ]
98
+ })] })]
99
+ })
100
+ }),
101
+ _
102
+ ] });
103
+ };
104
+ //#endregion
105
+ export { p as PageCommonHeader };
106
+
107
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_Fragment","MenuIcon","PageCommonHeader","theme","useTheme","use","PageCommonContext","onToggleDrawerButtonClick","useCallback","isDrawerOpen","setIsDrawerOpen","Box","beforeAppBarComponent","AppBar","appBarHeight","Toolbar","isNoInteraction","IconButton","appBarIcon","Fragment","Typography","title","centerComponent","beforeAppBarRightComponent","rightComponent","afterAppBarRightComponent","afterAppBarComponent"],"sources":["../../../../src/components/ui/PageCommonHeader/PageCommonHeader.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport {\n use,\n useCallback,\n} from 'react';\nimport {\n AppBar,\n Box,\n IconButton,\n Toolbar,\n Typography,\n useTheme,\n} from '@mui/material';\nimport MenuIcon from '@mui/icons-material/Menu';\n\nimport { PageCommonContext } from '../../../context/pageCommonContext';\n\n\nexport type PageCommonHeaderProps = {\n readonly centerComponent?: ReactNode;\n readonly rightComponent?: ReactNode;\n readonly title: string;\n};\n\nexport const PageCommonHeader = ({ centerComponent, rightComponent, title }: PageCommonHeaderProps) => {\n const theme = useTheme();\n const { afterAppBarComponent, afterAppBarRightComponent, appBarHeight = 48, appBarIcon, beforeAppBarComponent, beforeAppBarRightComponent, isDrawerOpen, isNoInteraction, setIsDrawerOpen } = use(PageCommonContext);\n\n const onToggleDrawerButtonClick = useCallback(() => {\n setIsDrawerOpen(!isDrawerOpen);\n }, [isDrawerOpen, setIsDrawerOpen]);\n\n return (\n <Box>\n {beforeAppBarComponent}\n <AppBar\n elevation={1}\n position={'static'}\n sx={{\n backgroundColor: 'primary.main',\n color: '#FFFFFF',\n height: appBarHeight,\n justifyContent: 'center',\n zIndex: theme.zIndex.drawer + 1,\n }}\n >\n <Toolbar\n sx={{\n display: 'flex',\n justifyContent: 'space-between',\n px: `${theme.spacing(1)} !important`, // using !important to override media queries\n }}\n variant={'dense'}\n >\n {/* Left: Menu toggle and App Branding */}\n <Box sx={{ alignItems: 'center', display: 'flex', gap: 1.5 }}>\n {!isNoInteraction && (\n <IconButton\n aria-label={'open drawer'}\n color={'inherit'}\n edge={'start'}\n onClick={onToggleDrawerButtonClick}\n size={'small'}\n >\n <MenuIcon />\n </IconButton>\n )}\n {appBarIcon && (\n <>\n {appBarIcon}\n </>\n )}\n <Typography\n component={'div'}\n noWrap\n sx={{ color: 'inherit', fontSize: '1.05rem', fontWeight: 700, letterSpacing: '-0.01em' }}\n variant={'h6'}\n >\n {title}\n </Typography>\n </Box>\n {!isNoInteraction && (\n <>\n <Box sx={{ alignItems: 'center', display: 'flex', gap: 1 }}>\n {centerComponent}\n </Box>\n <Box sx={{ alignItems: 'center', display: 'flex', gap: 1 }}>\n {beforeAppBarRightComponent && (\n <Box sx={{ alignItems: 'center', display: 'flex', gap: 1 }}>\n {beforeAppBarRightComponent}\n </Box>\n )}\n <Box sx={{ alignItems: 'center', display: 'flex', gap: 1 }}>\n {rightComponent}\n </Box>\n {afterAppBarRightComponent && (\n <Box sx={{ alignItems: 'center', display: 'flex', gap: 1 }}>\n {afterAppBarRightComponent}\n </Box>\n )}\n </Box>\n </>\n )}\n </Toolbar>\n </AppBar>\n {afterAppBarComponent}\n </Box>\n );\n};\n"],"mappings":";;;;;;AAwBA,IAAaE,KAAoB,EAAE,oBAAiB,mBAAgB,eAAmC;CACrG,IAAMC,IAAQC,EAAS,GACjB,EAAE,yBAAsB,8BAA2B,kBAAe,IAAI,eAAY,0BAAuB,+BAA4B,iBAAc,oBAAiB,uBAAoBC,EAAIC,CAAiB,GAE7MC,IAA4BC,QAAkB;EAClD,EAAgB,CAACC,CAAY;CAC/B,GAAG,CAACA,GAAcC,CAAe,CAAC;CAElC,OACE,kBAACC,GAAD,EAAA,UAAA;EACGC;EACD,kBAACC,GAAD;GACE,WAAW;GACX,UAAU;GACV,IAAI;IACF,iBAAiB;IACjB,OAAO;IACP,QAAQC;IACR,gBAAgB;IAChB,QAAQX,EAAM,OAAO,SAAS;GAChC;GAEA,UAAA,kBAACY,GAAD;IACE,IAAI;KACF,SAAS;KACT,gBAAgB;KAChB,IAAI,GAAGZ,EAAM,QAAQ,CAAC,EAAE;IAC1B;IACA,SAAS;IANX,UAAA,CASE,kBAACQ,GAAD;KAAK,IAAI;MAAE,YAAY;MAAU,SAAS;MAAQ,KAAK;KAAI;KAA3D,UAAA;MACG,CAACK,KACA,kBAACC,GAAD;OACE,cAAY;OACZ,OAAO;OACP,MAAM;OACN,SAASV;OACT,MAAM;OAEN,UAAA,kBAACN,GAAD,CAAW,CAAA;MACD,CAAA;MAEbiB,KACC,kBAAAlB,GAAA,EAAA,UACGkB,EACD,CAAA;MAEJ,kBAACE,GAAD;OACE,WAAW;OACX,QAAA;OACA,IAAI;QAAE,OAAO;QAAW,UAAU;QAAW,YAAY;QAAK,eAAe;OAAU;OACvF,SAAS;OAER,UAAAC;MACS,CAAA;KACT;IACJ,CAAA,GAAA,CAACL,KACA,kBAAAhB,GAAA,EAAA,UAAA,CACE,kBAACW,GAAD;KAAK,IAAI;MAAE,YAAY;MAAU,SAAS;MAAQ,KAAK;KAAE;KACtD,UAAAW;IACE,CAAA,GACL,kBAACX,GAAD;KAAK,IAAI;MAAE,YAAY;MAAU,SAAS;MAAQ,KAAK;KAAE;KAAzD,UAAA;MACGY,KACC,kBAACZ,GAAD;OAAK,IAAI;QAAE,YAAY;QAAU,SAAS;QAAQ,KAAK;OAAE;OACtD,UAAAY;MACE,CAAA;MAEP,kBAACZ,GAAD;OAAK,IAAI;QAAE,YAAY;QAAU,SAAS;QAAQ,KAAK;OAAE;OACtD,UAAAa;MACE,CAAA;MACJC,KACC,kBAACd,GAAD;OAAK,IAAI;QAAE,YAAY;QAAU,SAAS;QAAQ,KAAK;OAAE;OACtD,UAAAc;MACE,CAAA;KAEJ;IACL,CAAA,CAAA,EAAA,CAAA,CAEG;;EACH,CAAA;EACPC;CACE,EAAA,CAAA;AAET"}
@@ -0,0 +1,9 @@
1
+ import { InjectionToken } from 'tsyringe';
2
+ import { WindowService } from '@gen-epix/ui-core/classes/services/WindowService';
3
+ import { DevicePixelRatioService } from '@gen-epix/ui-core/classes/services/DevicePixelRatioService';
4
+ import { KeyboardShortcutService } from '@gen-epix/ui-core/classes/services/KeyboardShortcutService';
5
+ import { ConfigBase } from '../models/config.models';
6
+ export declare const CONFIG_TOKEN: InjectionToken<ConfigBase>;
7
+ export declare const WINDOW_SERVICE_TOKEN: InjectionToken<WindowService>;
8
+ export declare const DEVICE_PIXEL_RATIO_SERVICE_TOKEN: InjectionToken<DevicePixelRatioService>;
9
+ export declare const KEYBOARD_SHORTCUT_SERVICE_TOKEN: InjectionToken<KeyboardShortcutService>;
@@ -0,0 +1,6 @@
1
+ //#region src/constants/config.constants.ts
2
+ var e = Symbol("CONFIG_TOKEN"), t = Symbol("WINDOW_SERVICE_TOKEN"), n = Symbol("DEVICE_PIXEL_RATIO_SERVICE_TOKEN"), r = Symbol("KEYBOARD_SHORTCUT_SERVICE_TOKEN");
3
+ //#endregion
4
+ export { e as CONFIG_TOKEN, n as DEVICE_PIXEL_RATIO_SERVICE_TOKEN, r as KEYBOARD_SHORTCUT_SERVICE_TOKEN, t as WINDOW_SERVICE_TOKEN };
5
+
6
+ //# sourceMappingURL=config.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.constants.js","names":["CONFIG_TOKEN","WINDOW_SERVICE_TOKEN","DEVICE_PIXEL_RATIO_SERVICE_TOKEN","KEYBOARD_SHORTCUT_SERVICE_TOKEN"],"sources":["../../src/constants/config.constants.ts"],"sourcesContent":["import type { InjectionToken } from 'tsyringe';\nimport type { WindowService } from '@gen-epix/ui-core/classes/services/WindowService';\nimport type { DevicePixelRatioService } from '@gen-epix/ui-core/classes/services/DevicePixelRatioService';\nimport type { KeyboardShortcutService } from '@gen-epix/ui-core/classes/services/KeyboardShortcutService';\n\nimport type { ConfigBase } from '../models/config.models';\n\nexport const CONFIG_TOKEN: InjectionToken<ConfigBase> = Symbol('CONFIG_TOKEN');\nexport const WINDOW_SERVICE_TOKEN: InjectionToken<WindowService> = Symbol('WINDOW_SERVICE_TOKEN');\nexport const DEVICE_PIXEL_RATIO_SERVICE_TOKEN: InjectionToken<DevicePixelRatioService> = Symbol('DEVICE_PIXEL_RATIO_SERVICE_TOKEN');\nexport const KEYBOARD_SHORTCUT_SERVICE_TOKEN: InjectionToken<KeyboardShortcutService> = Symbol('KEYBOARD_SHORTCUT_SERVICE_TOKEN');\n"],"mappings":";AAOA,IAAaA,IAA2C,OAAO,cAAc,GAChEC,IAAsD,OAAO,sBAAsB,GACnFC,IAA4E,OAAO,kCAAkC,GACrHC,IAA2E,OAAO,iCAAiC"}
@@ -0,0 +1,6 @@
1
+ //#region src/constants/page.constants.ts
2
+ var e = 340;
3
+ //#endregion
4
+ export { e as DRAWER_WIDTH };
5
+
6
+ //# sourceMappingURL=page.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page.constants.js","names":["DRAWER_WIDTH"],"sources":["../../src/constants/page.constants.ts"],"sourcesContent":["export const DRAWER_WIDTH = 340;\n"],"mappings":";AAAA,IAAaA,IAAe"}
@@ -0,0 +1,9 @@
1
+ import { CoreComponentsConfig } from '@gen-epix/ui-core-components/context/CoreComponentsConfigContext';
2
+ import { DependencyContainer } from 'tsyringe';
3
+ import { ConfigBase } from '../../models/config.models';
4
+ export type CommonConfig<TConfig extends ConfigBase = ConfigBase> = {
5
+ config: TConfig;
6
+ container: DependencyContainer;
7
+ genEpixCoreComponentsConfig: CoreComponentsConfig;
8
+ };
9
+ export declare const CommonConfigContext: import('react').Context<CommonConfig<ConfigBase> | null>;
@@ -0,0 +1,6 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { DependencyContainer } from 'tsyringe';
3
+ export type CommonConfigContextProviderProps = PropsWithChildren<{
4
+ readonly container: DependencyContainer;
5
+ }>;
6
+ export declare const CommonConfigContextProvider: (props: CommonConfigContextProviderProps) => import('react').JSX.Element;
@@ -0,0 +1,3 @@
1
+ export * from './CommonConfigContext';
2
+ export * from './CommonConfigContextProvider';
3
+ export * from './useCommonConfigContext';
@@ -0,0 +1,34 @@
1
+ import { DependencyContainerUtil as e } from "../../utils/DependencyContainerUtil/index.js";
2
+ import { jsx as t } from "react/jsx-runtime";
3
+ import { createContext as n, use as r, useMemo as i } from "react";
4
+ import { CoreComponentsConfigContext as a } from "@gen-epix/ui-core-components/context/CoreComponentsConfigContext";
5
+ //#region src/context/commonConfigContext/CommonConfigContext.tsx
6
+ var o = n(null), s = (n) => {
7
+ let { children: r, container: s } = n, c = e.resolveConfig(s), l = i(() => ({ spinner: {
8
+ defaultCircularProgressSize: c.spinner.DEFAULT_CIRCULAR_PROGRESS_SIZE,
9
+ defaultTakingLongerTimeoutMs: c.spinner.DEFAULT_TAKING_LONGER_TIMEOUT_MS
10
+ } }), [c.spinner]), u = i(() => ({
11
+ config: c,
12
+ container: s,
13
+ genEpixCoreComponentsConfig: l
14
+ }), [
15
+ c,
16
+ s,
17
+ l
18
+ ]);
19
+ return /* @__PURE__ */ t(a, {
20
+ value: l,
21
+ children: /* @__PURE__ */ t(o, {
22
+ value: u,
23
+ children: r
24
+ })
25
+ });
26
+ }, c = () => {
27
+ let e = r(o);
28
+ if (!e) throw Error("CommonConfigContext is not available");
29
+ return e;
30
+ };
31
+ //#endregion
32
+ export { o as CommonConfigContext, s as CommonConfigContextProvider, c as useCommonConfigContext };
33
+
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["CommonConfigContext","createContext","CommonConfigContextProvider","props","config","DependencyContainerUtil","container","genEpixCoreComponentsConfig","useMemo","CommonConfig","CoreComponentsConfigContext","useCommonConfigContext","use"],"sources":["../../../src/context/commonConfigContext/CommonConfigContext.tsx","../../../src/context/commonConfigContext/CommonConfigContextProvider.tsx","../../../src/context/commonConfigContext/useCommonConfigContext.tsx"],"sourcesContent":["import type { CoreComponentsConfig } from '@gen-epix/ui-core-components/context/CoreComponentsConfigContext';\nimport { createContext } from 'react';\nimport type { DependencyContainer } from 'tsyringe';\n\nimport type { ConfigBase } from '../../models/config.models';\n\nexport type CommonConfig<TConfig extends ConfigBase = ConfigBase> = {\n config: TConfig;\n container: DependencyContainer;\n genEpixCoreComponentsConfig: CoreComponentsConfig;\n};\n\nexport const CommonConfigContext = createContext<CommonConfig | null>(null);\n","import { useMemo } from 'react';\nimport type { PropsWithChildren } from 'react';\nimport { CoreComponentsConfigContext } from '@gen-epix/ui-core-components/context/CoreComponentsConfigContext';\nimport type { DependencyContainer } from 'tsyringe';\n\nimport { DependencyContainerUtil } from '../../utils/DependencyContainerUtil';\nimport type { ConfigBase } from '../../models/config.models';\n\nimport type { CommonConfig } from './CommonConfigContext';\nimport { CommonConfigContext } from './CommonConfigContext';\n\n\nexport type CommonConfigContextProviderProps = PropsWithChildren<{\n readonly container: DependencyContainer;\n}>;\n\nexport const CommonConfigContextProvider = (\n props: CommonConfigContextProviderProps,\n) => {\n const { children, container } = props;\n const config = DependencyContainerUtil.resolveConfig<ConfigBase>(container);\n const genEpixCoreComponentsConfig = useMemo<CommonConfig['genEpixCoreComponentsConfig']>(() => ({\n spinner: {\n defaultCircularProgressSize: config.spinner.DEFAULT_CIRCULAR_PROGRESS_SIZE!,\n defaultTakingLongerTimeoutMs: config.spinner.DEFAULT_TAKING_LONGER_TIMEOUT_MS,\n },\n }), [config.spinner]);\n const CommonConfig = useMemo(() => ({ config, container, genEpixCoreComponentsConfig }), [config, container, genEpixCoreComponentsConfig]);\n\n return (\n <CoreComponentsConfigContext value={genEpixCoreComponentsConfig}>\n <CommonConfigContext value={CommonConfig}>\n {children}\n </CommonConfigContext>\n </CoreComponentsConfigContext>\n );\n};\n","import { use } from 'react';\n\nimport type { ConfigBase } from '../../models/config.models';\n\nimport type { CommonConfig } from './CommonConfigContext';\nimport { CommonConfigContext } from './CommonConfigContext';\n\nexport const useCommonConfigContext = <TConfig extends ConfigBase = ConfigBase>(): CommonConfig<TConfig> => {\n const config = use(CommonConfigContext);\n if (!config) {\n throw new Error('CommonConfigContext is not available');\n }\n return config as CommonConfig<TConfig>;\n};\n"],"mappings":";;;;;AAYA,IAAaA,IAAsBC,EAAmC,IAAI,GCI7DC,KACX,MACG;CACH,IAAM,EAAE,aAAU,iBAAcC,GAC1BC,IAASC,EAAwB,cAA0BC,CAAS,GACpEC,IAA8BC,SAA4D,EAC9F,SAAS;EACP,6BAA6BJ,EAAO,QAAQ;EAC5C,8BAA8BA,EAAO,QAAQ;CAC/C,EACF,IAAI,CAACA,EAAO,OAAO,CAAC,GACdK,IAAeD,SAAe;EAAE;EAAQ;EAAW;CAA4B,IAAI;EAACJ;EAAQE;EAAWC;CAA2B,CAAC;CAEzI,OACE,kBAACG,GAAD;EAA6B,OAAOH;EAClC,UAAA,kBAACP,GAAD;GAAqB,OAAOS;GACzB;EACkB,CAAA;CACM,CAAA;AAEjC,GC7BaE,UAA+F;CAC1G,IAAMP,IAASQ,EAAIZ,CAAmB;CACtC,IAAI,CAACI,GACH,MAAU,MAAM,sCAAsC;CAExD,OAAOA;AACT"}
@@ -0,0 +1,3 @@
1
+ import { ConfigBase } from '../../models/config.models';
2
+ import { CommonConfig } from './CommonConfigContext';
3
+ export declare const useCommonConfigContext: <TConfig extends ConfigBase = ConfigBase>() => CommonConfig<TConfig>;
@@ -0,0 +1,17 @@
1
+ import { ReactNode } from 'react';
2
+ export type PageCommonConfig = {
3
+ readonly afterAppBarComponent?: ReactNode;
4
+ readonly afterAppBarRightComponent?: ReactNode;
5
+ readonly appBarHeight?: number;
6
+ readonly appBarIcon?: ReactNode;
7
+ readonly beforeAppBarComponent?: ReactNode;
8
+ readonly beforeAppBarRightComponent?: ReactNode;
9
+ };
10
+ export type PageCommonContextData = {
11
+ readonly drawerContainerId: string;
12
+ readonly isDrawerOpen: boolean;
13
+ readonly isNoInteraction: boolean;
14
+ readonly setIsDrawerOpen: (open: boolean) => void;
15
+ readonly setIsNoInteraction: (open: boolean) => void;
16
+ } & PageCommonConfig;
17
+ export declare const PageCommonContext: import('react').Context<PageCommonContextData>;
@@ -0,0 +1,4 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { PageCommonConfig } from './PageCommonContext';
3
+ export type PageCommonContextProviderProps = PropsWithChildren<PageCommonConfig>;
4
+ export declare const PageCommonContextProvider: ({ children, ...props }: PageCommonContextProviderProps) => import('react').JSX.Element;
@@ -0,0 +1,2 @@
1
+ export * from './PageCommonContext';
2
+ export * from './PageCommonContextProvider';
@@ -0,0 +1,26 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import { createContext as t, useId as n, useMemo as r, useState as i } from "react";
3
+ //#region src/context/pageCommonContext/PageCommonContext.ts
4
+ var a = t({}), o = ({ children: t, ...o }) => {
5
+ let [s, c] = i(!1), [l, u] = i(!1), d = n(), f = r(() => ({
6
+ ...o,
7
+ drawerContainerId: d,
8
+ isDrawerOpen: s,
9
+ isNoInteraction: l,
10
+ setIsDrawerOpen: c,
11
+ setIsNoInteraction: u
12
+ }), [
13
+ s,
14
+ l,
15
+ d,
16
+ o
17
+ ]);
18
+ return /* @__PURE__ */ e(a, {
19
+ value: f,
20
+ children: t
21
+ });
22
+ };
23
+ //#endregion
24
+ export { a as PageCommonContext, o as PageCommonContextProvider };
25
+
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["PageCommonContext","createContext","PageCommonContextProvider","props","isDrawerOpen","setIsDrawerOpen","useState","isNoInteraction","setIsNoInteraction","drawerContainerId","useId","contextValue","useMemo"],"sources":["../../../src/context/pageCommonContext/PageCommonContext.ts","../../../src/context/pageCommonContext/PageCommonContextProvider.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { createContext } from 'react';\n\nexport type PageCommonConfig = {\n readonly afterAppBarComponent?: ReactNode;\n readonly afterAppBarRightComponent?: ReactNode;\n readonly appBarHeight?: number;\n readonly appBarIcon?: ReactNode;\n readonly beforeAppBarComponent?: ReactNode;\n readonly beforeAppBarRightComponent?: ReactNode;\n};\n\nexport type PageCommonContextData = {\n readonly drawerContainerId: string;\n readonly isDrawerOpen: boolean;\n readonly isNoInteraction: boolean;\n readonly setIsDrawerOpen: (open: boolean) => void;\n readonly setIsNoInteraction: (open: boolean) => void;\n} & PageCommonConfig;\n\nexport const PageCommonContext = createContext<PageCommonContextData>({} as PageCommonContextData);\n","import {\n useId,\n useMemo,\n useState,\n} from 'react';\nimport type { PropsWithChildren } from 'react';\n\nimport type {\n PageCommonConfig,\n PageCommonContextData,\n} from './PageCommonContext';\nimport { PageCommonContext } from './PageCommonContext';\n\nexport type PageCommonContextProviderProps = PropsWithChildren<PageCommonConfig>;\n\nexport const PageCommonContextProvider = ({ children, ...props }: PageCommonContextProviderProps) => {\n const [isDrawerOpen, setIsDrawerOpen] = useState(false);\n const [isNoInteraction, setIsNoInteraction] = useState(false);\n const drawerContainerId = useId();\n\n const contextValue = useMemo<PageCommonContextData>(() => {\n return {\n ...props,\n drawerContainerId,\n isDrawerOpen,\n isNoInteraction,\n setIsDrawerOpen,\n setIsNoInteraction,\n };\n }, [isDrawerOpen, isNoInteraction, drawerContainerId, props]);\n\n return (\n <PageCommonContext value={contextValue}>\n { children }\n </PageCommonContext>\n );\n};\n"],"mappings":";;;AAoBA,IAAaA,IAAoBC,EAAqC,CAAC,CAA0B,GCLpFC,KAA6B,EAAE,aAAU,GAAGC,QAA4C;CACnG,IAAM,CAACC,GAAcC,KAAmBC,EAAS,EAAK,GAChD,CAACC,GAAiBC,KAAsBF,EAAS,EAAK,GACtDG,IAAoBC,EAAM,GAE1BC,IAAeC,SACZ;EACL,GAAGT;EACH;EACA;EACA;EACA;EACA;CACF,IACC;EAACC;EAAcG;EAAiBE;EAAmBN;CAAK,CAAC;CAE5D,OACE,kBAACH,GAAD;EAAmB,OAAOW;EACtB;CACe,CAAA;AAEvB"}
@@ -0,0 +1 @@
1
+ export * from './useConfig';
@@ -0,0 +1,7 @@
1
+ import { useCommonConfigContext as e } from "../../context/commonConfigContext/index.js";
2
+ //#region src/hooks/useConfig/useConfig.ts
3
+ var t = () => e().config;
4
+ //#endregion
5
+ export { t as useConfig };
6
+
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["useConfig","useCommonConfigContext"],"sources":["../../../src/hooks/useConfig/useConfig.ts"],"sourcesContent":["import type { ConfigBase } from '../../models/config.models';\nimport { useCommonConfigContext } from '../../context/commonConfigContext';\n\nexport const useConfig = <TConfig extends ConfigBase = ConfigBase>(): TConfig => {\n return useCommonConfigContext<TConfig>().config;\n};\n"],"mappings":";;AAGA,IAAaA,UACJC,EAAgC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { ConfigBase } from '../../models/config.models';
2
+ export declare const useConfig: <TConfig extends ConfigBase = ConfigBase>() => TConfig;
@@ -0,0 +1 @@
1
+ export * from './useUpdateDocumentTitle';
@@ -0,0 +1,13 @@
1
+ import { useConfig as e } from "../useConfig/index.js";
2
+ import { useEffect as t } from "react";
3
+ //#region src/hooks/useUpdateDocumentTitle/useUpdateDocumentTitle.ts
4
+ var n = (n) => {
5
+ let r = e();
6
+ t(() => {
7
+ document.title = `${r.applicationName} - ${n}`;
8
+ }, [r.applicationName, n]);
9
+ };
10
+ //#endregion
11
+ export { n as useUpdateDocumentTitle };
12
+
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["useUpdateDocumentTitle","config","useConfig","title"],"sources":["../../../src/hooks/useUpdateDocumentTitle/useUpdateDocumentTitle.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nimport { useConfig } from '../useConfig';\n\n\nexport const useUpdateDocumentTitle = (title: string) => {\n const config = useConfig();\n\n useEffect(() => {\n document.title = `${config.applicationName} - ${title}`;\n }, [config.applicationName, title]);\n};\n"],"mappings":";;;AAKA,IAAaA,KAA0B,MAAkB;CACvD,IAAMC,IAASC,EAAU;CAEzB,QAAgB;EACd,SAAS,QAAQ,GAAGD,EAAO,gBAAgB,KAAKE;CAClD,GAAG,CAACF,EAAO,iBAAiBE,CAAK,CAAC;AACpC"}
@@ -0,0 +1 @@
1
+ export declare const useUpdateDocumentTitle: (title: string) => void;
@@ -0,0 +1,16 @@
1
+ import { ReactElement } from 'react';
2
+ import { CircularProgressProps, Theme } from '@mui/material';
3
+ import { PageCommonConfig } from '../context/pageCommonContext';
4
+ export interface ConfigBase {
5
+ applicationName: string;
6
+ readonly drawerComponent?: () => ReactElement;
7
+ getTouchIconUrl?: () => string | undefined;
8
+ readonly headerComponent?: () => ReactElement;
9
+ nonce?: string;
10
+ pageConfig?: PageCommonConfig;
11
+ spinner: {
12
+ DEFAULT_CIRCULAR_PROGRESS_SIZE: CircularProgressProps['size'];
13
+ DEFAULT_TAKING_LONGER_TIMEOUT_MS: number;
14
+ };
15
+ theme: Theme;
16
+ }
@@ -1,8 +1,8 @@
1
- //#region src/models/fasta.ts
1
+ //#region src/models/fasta.models.ts
2
2
  var e = /* @__PURE__ */ function(e) {
3
3
  return e.ERROR = "ERROR", e.IDLE = "IDLE", e.LOADING = "LOADING", e.SUCCESS = "SUCCESS", e;
4
4
  }({});
5
5
  //#endregion
6
6
  export { e as LOADING_STATUS };
7
7
 
8
- //# sourceMappingURL=fasta.js.map
8
+ //# sourceMappingURL=fasta.models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fasta.models.js","names":["LOADING_STATUS","\"ERROR\"","\"IDLE\"","\"LOADING\"","\"SUCCESS\""],"sources":["../../src/models/fasta.models.ts"],"sourcesContent":["export enum LOADING_STATUS {\n ERROR = 'ERROR',\n IDLE = 'IDLE',\n LOADING = 'LOADING',\n SUCCESS = 'SUCCESS',\n}\n\nexport type FastaParseResult = {\n error?: string;\n expectedLength: number;\n invalidSequences?: { id: string; length: number }[];\n isAligned: boolean;\n sequences: FastaSequence[];\n};\n\nexport type FastaSequence = {\n accessionVersion: string;\n header: string;\n id: string;\n length: number;\n sequence: string;\n};\n"],"mappings":";AAAA,IAAYA,IAAL,yBAAA,GAAA;QACL,EAAAC,QAAA,SACA,EAAAC,OAAA,QACA,EAAAC,UAAA,WACA,EAAAC,UAAA;AACF,EAAA,CAAA,CAAA"}
File without changes
@@ -0,0 +1,4 @@
1
+ export type ErrorPageProps = {
2
+ readonly error?: unknown;
3
+ };
4
+ export declare const ErrorPage: ({ error }: ErrorPageProps) => import('react').JSX.Element;