@rivm-loculus-tools/common-frontend 0.6.0 → 0.8.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 (35) hide show
  1. package/dist/@types/common-frontend.d.ts +2 -0
  2. package/dist/@types/mui.d.ts +48 -0
  3. package/dist/components/fasta/FastaPageHeaderCenterComponent/FastaPageHeaderCenterComponent.d.ts +4 -0
  4. package/dist/components/fasta/FastaPageHeaderCenterComponent/index.js +18 -22
  5. package/dist/components/fasta/FastaPageHeaderCenterComponent/index.js.map +1 -1
  6. package/dist/components/fasta/FastaPageHeaderImportButton/FastaPageHeaderImportButton.d.ts +4 -0
  7. package/dist/components/fasta/FastaPageHeaderImportButton/index.js +17 -15
  8. package/dist/components/fasta/FastaPageHeaderImportButton/index.js.map +1 -1
  9. package/dist/components/ui/ButtonWithMenu/ButtonWithMenu.d.ts +7 -1
  10. package/dist/components/ui/ButtonWithMenu/index.js +32 -27
  11. package/dist/components/ui/ButtonWithMenu/index.js.map +1 -1
  12. package/dist/components/ui/PageCommonHeader/PageCommonHeader.d.ts +5 -1
  13. package/dist/components/ui/PageCommonHeader/index.js +42 -35
  14. package/dist/components/ui/PageCommonHeader/index.js.map +1 -1
  15. package/dist/components/ui/SearchBar/SearchBar.d.ts +15 -0
  16. package/dist/components/ui/SearchBar/SearchBarNodeCounter.d.ts +8 -0
  17. package/dist/components/ui/SearchBar/index.js +136 -0
  18. package/dist/components/ui/SearchBar/index.js.map +1 -0
  19. package/dist/models/config.models.d.ts +1 -5
  20. package/dist/theme/demoTheme/demoTheme.d.ts +3 -0
  21. package/dist/theme/demoTheme/index.d.ts +1 -0
  22. package/dist/theme/{index.js → demoTheme/index.js} +56 -31
  23. package/dist/theme/demoTheme/index.js.map +1 -0
  24. package/dist/utils/StandardConfigUtil/StandardConfigUtil.d.ts +1 -1
  25. package/dist/utils/StandardConfigUtil/index.js +1 -5
  26. package/dist/utils/StandardConfigUtil/index.js.map +1 -1
  27. package/package.json +16 -12
  28. package/dist/components/SearchBar/SearchBar.d.ts +0 -10
  29. package/dist/components/SearchBar/SearchBarNodeCounter.d.ts +0 -4
  30. package/dist/components/SearchBar/index.js +0 -128
  31. package/dist/components/SearchBar/index.js.map +0 -1
  32. package/dist/theme/index.d.ts +0 -1
  33. package/dist/theme/index.js.map +0 -1
  34. package/dist/theme/theme.d.ts +0 -1
  35. /package/dist/components/{SearchBar → ui/SearchBar}/index.d.ts +0 -0
@@ -1,4 +1,4 @@
1
1
  import { ConfigBase } from '../../models/config.models';
2
2
  export declare class StandardConfigUtil {
3
- static createConfig(): Pick<ConfigBase, 'nonce' | 'pageConfig' | 'spinner'>;
3
+ static createConfig(): Pick<ConfigBase, 'nonce' | 'pageConfig'>;
4
4
  }
@@ -4,11 +4,7 @@ var t = class {
4
4
  static createConfig() {
5
5
  return {
6
6
  nonce: e.getInstance().document.querySelector("meta[name=\"csp-nonce\"]")?.getAttribute("content") ?? void 0,
7
- pageConfig: { appBarHeight: 48 },
8
- spinner: {
9
- DEFAULT_CIRCULAR_PROGRESS_SIZE: 40,
10
- DEFAULT_TAKING_LONGER_TIMEOUT_MS: 5e3
11
- }
7
+ pageConfig: { appBarHeight: 48 }
12
8
  };
13
9
  }
14
10
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["StandardConfigUtil","WindowService"],"sources":["../../../src/utils/StandardConfigUtil/StandardConfigUtil.ts"],"sourcesContent":["import { WindowService } from '@gen-epix/ui-core/classes/services/WindowService';\n\nimport type { ConfigBase } from '../../models/config.models';\n\nexport class StandardConfigUtil {\n public static createConfig(): Pick<ConfigBase, 'nonce' | 'pageConfig' | 'spinner'> {\n return {\n nonce: WindowService.getInstance().document.querySelector('meta[name=\"csp-nonce\"]')?.getAttribute('content') ?? undefined,\n pageConfig: {\n appBarHeight: 48,\n },\n spinner: {\n DEFAULT_CIRCULAR_PROGRESS_SIZE: 40,\n DEFAULT_TAKING_LONGER_TIMEOUT_MS: 5000,\n },\n };\n }\n}\n"],"mappings":";;AAIA,IAAaA,IAAb,MAAgC;CAC9B,OAAc,eAAqE;EACjF,OAAO;GACL,OAAOC,EAAc,YAAY,CAAC,CAAC,SAAS,cAAc,0BAAwB,CAAC,EAAE,aAAa,SAAS,KAAK,KAAA;GAChH,YAAY,EACV,cAAc,GAChB;GACA,SAAS;IACP,gCAAgC;IAChC,kCAAkC;GACpC;EACF;CACF;AACF"}
1
+ {"version":3,"file":"index.js","names":["StandardConfigUtil","WindowService"],"sources":["../../../src/utils/StandardConfigUtil/StandardConfigUtil.ts"],"sourcesContent":["import { WindowService } from '@gen-epix/ui-core/classes/services/WindowService';\n\nimport type { ConfigBase } from '../../models/config.models';\n\nexport class StandardConfigUtil {\n public static createConfig(): Pick<ConfigBase, 'nonce' | 'pageConfig'> {\n return {\n nonce: WindowService.getInstance().document.querySelector('meta[name=\"csp-nonce\"]')?.getAttribute('content') ?? undefined,\n pageConfig: {\n appBarHeight: 48,\n },\n };\n }\n}\n"],"mappings":";;AAIA,IAAaA,IAAb,MAAgC;CAC9B,OAAc,eAAyD;EACrE,OAAO;GACL,OAAOC,EAAc,YAAY,CAAC,CAAC,SAAS,cAAc,0BAAwB,CAAC,EAAE,aAAa,SAAS,KAAK,KAAA;GAChH,YAAY,EACV,cAAc,GAChB;EACF;CACF;AACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rivm-loculus-tools/common-frontend",
3
- "version": "0.6.0",
3
+ "version": "0.8.0",
4
4
  "license": "EUPL-1.2",
5
5
  "repository": {
6
6
  "type": "git",
@@ -12,7 +12,7 @@
12
12
  "@emotion/react": "*",
13
13
  "@emotion/styled": "*",
14
14
  "@gen-epix/ui-core-components": "^4.6.0",
15
- "@gen-epix/ui-core-form": "^4.5.0",
15
+ "@gen-epix/ui-core-form": "^4.5.1",
16
16
  "@gen-epix/ui-core": "^3.10.0",
17
17
  "@mui/icons-material": "*",
18
18
  "@mui/material": "*",
@@ -35,9 +35,9 @@
35
35
  "@emotion/cache": "11.14.0",
36
36
  "@emotion/react": "11.14.0",
37
37
  "@emotion/styled": "11.14.1",
38
- "@gen-epix/eslint-config": "0.8.0",
38
+ "@gen-epix/eslint-config": "0.9.0",
39
39
  "@gen-epix/ui-core-components": "4.6.0",
40
- "@gen-epix/ui-core-form": "4.5.0",
40
+ "@gen-epix/ui-core-form": "4.5.1",
41
41
  "@gen-epix/ui-core": "3.10.0",
42
42
  "@mui/icons-material": "9.5.0",
43
43
  "@mui/material": "9.5.0",
@@ -45,7 +45,7 @@
45
45
  "@mui/system": "9.5.0",
46
46
  "@mui/utils": "9.5.0",
47
47
  "@types/lodash": "4.17.27",
48
- "@types/node": "26.6.5",
48
+ "@types/node": "26.6.6",
49
49
  "@types/react-dom": "19.3.0",
50
50
  "@types/react": "19.3.0",
51
51
  "@vitejs/plugin-react": "6.1.2",
@@ -67,6 +67,10 @@
67
67
  "dist"
68
68
  ],
69
69
  "exports": {
70
+ "./types": {
71
+ "types": "./dist/@types/common-frontend.d.ts",
72
+ "import": "./dist/@types/common-frontend.d.ts"
73
+ },
70
74
  "./classes/services/EmotionCacheService": {
71
75
  "types": "./dist/classes/services/EmotionCacheService/index.d.ts",
72
76
  "import": "./dist/classes/services/EmotionCacheService/index.js"
@@ -75,10 +79,6 @@
75
79
  "types": "./dist/classes/services/FastaDataEventBusService/index.d.ts",
76
80
  "import": "./dist/classes/services/FastaDataEventBusService/index.js"
77
81
  },
78
- "./components/SearchBar": {
79
- "types": "./dist/components/SearchBar/index.d.ts",
80
- "import": "./dist/components/SearchBar/index.js"
81
- },
82
82
  "./components/app/App": {
83
83
  "types": "./dist/components/app/App/index.d.ts",
84
84
  "import": "./dist/components/app/App/index.js"
@@ -131,6 +131,10 @@
131
131
  "types": "./dist/components/ui/PageCommonHeader/index.d.ts",
132
132
  "import": "./dist/components/ui/PageCommonHeader/index.js"
133
133
  },
134
+ "./components/ui/SearchBar": {
135
+ "types": "./dist/components/ui/SearchBar/index.d.ts",
136
+ "import": "./dist/components/ui/SearchBar/index.js"
137
+ },
134
138
  "./constants/config.constants": {
135
139
  "types": "./dist/constants/config.constants.d.ts",
136
140
  "import": "./dist/constants/config.constants.js"
@@ -171,9 +175,9 @@
171
175
  "types": "./dist/stores/fastaDataStore/index.d.ts",
172
176
  "import": "./dist/stores/fastaDataStore/index.js"
173
177
  },
174
- "./theme": {
175
- "types": "./dist/theme/index.d.ts",
176
- "import": "./dist/theme/index.js"
178
+ "./theme/demoTheme": {
179
+ "types": "./dist/theme/demoTheme/index.d.ts",
180
+ "import": "./dist/theme/demoTheme/index.js"
177
181
  },
178
182
  "./utils/DependencyContainerUtil": {
179
183
  "types": "./dist/utils/DependencyContainerUtil/index.d.ts",
@@ -1,10 +0,0 @@
1
- export type SearchBarProps = {
2
- allowNavigation?: boolean;
3
- highlightedIndex?: null | number;
4
- numResults?: number;
5
- onHighlightedIndexChange?: (index: number) => void;
6
- onSearchQueryChange: (query: string) => void;
7
- searchQuery: string;
8
- truncated?: boolean;
9
- };
10
- export declare const SearchBar: ({ allowNavigation, highlightedIndex, numResults, onHighlightedIndexChange, onSearchQueryChange, searchQuery, truncated }: SearchBarProps) => import('react').JSX.Element;
@@ -1,4 +0,0 @@
1
- export type SearchBarNodeCounterProps = {
2
- numResults?: number;
3
- };
4
- export declare const SearchBarNodeCounter: ({ numResults }: SearchBarNodeCounterProps) => import('react').JSX.Element | null;
@@ -1,128 +0,0 @@
1
- import { Box as e, FilledInput as t, IconButton as n, InputAdornment as r, useTheme as i } from "@mui/material";
2
- import { Fragment as a, jsx as o, jsxs as s } from "react/jsx-runtime";
3
- import { useCallback as c, useMemo as l, useRef as u } from "react";
4
- import d from "@mui/icons-material/Search";
5
- import f from "@mui/icons-material/KeyboardArrowUp";
6
- import p from "@mui/icons-material/KeyboardArrowDown";
7
- import m from "@mui/icons-material/Close";
8
- // src/components/SearchBar/SearchBar.tsx
9
- var h = ({ allowNavigation: h, highlightedIndex: g, numResults: _ = 0, onHighlightedIndexChange: v, onSearchQueryChange: y, searchQuery: b, truncated: x }) => {
10
- let S = i(), C = u(null), w = u(null), T = u(null), E = c((e) => {
11
- let t = e.target.value;
12
- y(t);
13
- }, [y]), D = c(() => {
14
- y(""), C.current?.focus();
15
- }, [y]), O = c((e) => {
16
- if (e.key === "Enter") {
17
- if (!_) return;
18
- e.preventDefault(), v?.(0), T.current?.focus();
19
- }
20
- }, [_, v]), k = c(() => {
21
- if (!_) return;
22
- let e = g == null || Number.isNaN(g) || g <= 0 ? _ - 1 : g - 1;
23
- v?.(e);
24
- }, [
25
- _,
26
- g,
27
- v
28
- ]), A = c(() => {
29
- if (!_) return;
30
- let e = g == null || Number.isNaN(g) || g >= _ - 1 ? 0 : g + 1;
31
- v?.(e);
32
- }, [
33
- _,
34
- g,
35
- v
36
- ]), j = c((e) => {
37
- if (e.key === "ArrowRight") {
38
- e.preventDefault();
39
- let t = e.currentTarget.nextElementSibling;
40
- t && t.focus();
41
- }
42
- if (e.key === "ArrowLeft") {
43
- if (e.preventDefault(), e.target === w.current) {
44
- C.current?.focus();
45
- return;
46
- }
47
- let t = e.currentTarget.previousElementSibling;
48
- t && t.focus();
49
- }
50
- }, []), M = l(() => b ? b && (Number.isNaN(_) || _ <= 0) ? "No results" : g == null || Number.isNaN(g) || g < 0 || !h ? `${_}${x ? "+" : ""} results` : h ? `${g + 1}/${_}${x ? "+" : ""} results` : "" : "", [
51
- b,
52
- _,
53
- g,
54
- h,
55
- x
56
- ]);
57
- return /* @__PURE__ */ o(t, {
58
- endAdornment: /* @__PURE__ */ s(r, {
59
- position: "end",
60
- children: [
61
- M && /* @__PURE__ */ o(e, {
62
- "aria-atomic": "true",
63
- "aria-live": "polite",
64
- role: "status",
65
- sx: { fontSize: "1rem" },
66
- children: M
67
- }),
68
- _ > 0 && h && /* @__PURE__ */ s(a, { children: [/* @__PURE__ */ o(n, {
69
- "aria-label": "Goto previous search result",
70
- disabled: !_,
71
- edge: "end",
72
- onClick: k,
73
- onKeyDown: j,
74
- ref: w,
75
- sx: { color: S.palette.primary.main },
76
- children: /* @__PURE__ */ o(f, {})
77
- }), /* @__PURE__ */ o(n, {
78
- "aria-label": "Goto next search result",
79
- disabled: !_,
80
- edge: "end",
81
- onClick: A,
82
- onKeyDown: j,
83
- ref: T,
84
- sx: { color: S.palette.primary.main },
85
- children: /* @__PURE__ */ o(p, {})
86
- })] }),
87
- b && /* @__PURE__ */ o(n, {
88
- "aria-label": "Clear",
89
- edge: "end",
90
- onClick: D,
91
- onKeyDown: j,
92
- children: /* @__PURE__ */ o(m, {})
93
- })
94
- ]
95
- }),
96
- fullWidth: !0,
97
- inputRef: C,
98
- name: "Search",
99
- onChange: E,
100
- onKeyDown: O,
101
- placeholder: "Search",
102
- size: "small",
103
- slotProps: { input: {
104
- "aria-label": "Search",
105
- sx: {
106
- "&::-webkit-search-cancel-button": { display: "none" },
107
- fontSize: "1rem",
108
- height: S.spacing(4),
109
- outline: "none !important",
110
- paddingBottom: "0 !important",
111
- paddingTop: "0 !important"
112
- }
113
- } },
114
- startAdornment: /* @__PURE__ */ o(r, {
115
- position: "start",
116
- children: /* @__PURE__ */ o(d, { fontSize: "small" })
117
- }),
118
- sx: {
119
- backgroundColor: S.palette.background.paper,
120
- height: S.spacing(4)
121
- },
122
- type: "search",
123
- value: b
124
- });
125
- };
126
- export { h as SearchBar };
127
-
128
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["_Fragment","SearchIcon","KeyboardArrowUpIcon","KeyboardArrowDownIcon","CloseIcon","SearchBar","theme","useTheme","inputRef","useRef","arrowUpButtonRef","arrowDownButtonRef","onTextInputChange","useCallback","nextSearchText","event","onSearchQueryChange","onClearButtonClick","onTextInputKeyDown","numResults","onHighlightedIndexChange","onUpArrowButtonClick","newHighlightedIndex","highlightedIndex","onDownArrowButtonClick","onGenericKeyDown","nextFocusableElement","previousFocusableElement","searchResultStatusText","useMemo","searchQuery","allowNavigation","truncated","FilledInput","InputAdornment","Box","Fragment","IconButton"],"sources":["../../../src/components/SearchBar/SearchBar.tsx"],"sourcesContent":["import type {\n ChangeEvent,\n KeyboardEvent,\n} from 'react';\nimport {\n useCallback,\n useMemo,\n useRef,\n} from 'react';\nimport {\n Box,\n FilledInput,\n IconButton,\n InputAdornment,\n useTheme,\n} from '@mui/material';\nimport SearchIcon from '@mui/icons-material/Search';\nimport KeyboardArrowUpIcon from '@mui/icons-material/KeyboardArrowUp';\nimport KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown';\nimport CloseIcon from '@mui/icons-material/Close';\n\n\nexport type SearchBarProps = {\n allowNavigation?: boolean;\n highlightedIndex?: null | number;\n numResults?: number;\n onHighlightedIndexChange?: (index: number) => void;\n onSearchQueryChange: (query: string) => void;\n searchQuery: string;\n truncated?: boolean;\n};\n\nexport const SearchBar = ({ allowNavigation, highlightedIndex, numResults = 0, onHighlightedIndexChange, onSearchQueryChange, searchQuery, truncated }: SearchBarProps) => {\n const theme = useTheme();\n const inputRef = useRef<HTMLInputElement>(null);\n const arrowUpButtonRef = useRef<HTMLButtonElement>(null);\n const arrowDownButtonRef = useRef<HTMLButtonElement>(null);\n\n const onTextInputChange = useCallback((event: ChangeEvent<HTMLInputElement>) => {\n const nextSearchText = event.target.value;\n onSearchQueryChange(nextSearchText);\n }, [onSearchQueryChange]);\n\n const onClearButtonClick = useCallback(() => {\n onSearchQueryChange('');\n inputRef.current?.focus();\n }, [onSearchQueryChange]);\n\n const onTextInputKeyDown = useCallback((event: KeyboardEvent<HTMLInputElement>) => {\n // on enter press, highlight the first result and focus the down arrow button\n if (event.key === 'Enter') {\n if (!numResults) {\n return;\n }\n event.preventDefault();\n onHighlightedIndexChange?.(0);\n arrowDownButtonRef.current?.focus();\n }\n }, [numResults, onHighlightedIndexChange]);\n\n const onUpArrowButtonClick = useCallback(() => {\n // goto previous result\n if (!numResults) {\n return;\n }\n const newHighlightedIndex = highlightedIndex === null || highlightedIndex === undefined || Number.isNaN(highlightedIndex) || highlightedIndex <= 0 ? numResults - 1 : highlightedIndex - 1;\n\n onHighlightedIndexChange?.(newHighlightedIndex);\n }, [numResults, highlightedIndex, onHighlightedIndexChange]);\n\n const onDownArrowButtonClick = useCallback(() => {\n // goto next result\n if (!numResults) {\n return;\n }\n const newHighlightedIndex = highlightedIndex === null || highlightedIndex === undefined || Number.isNaN(highlightedIndex) || highlightedIndex >= numResults - 1 ? 0 : highlightedIndex + 1;\n onHighlightedIndexChange?.(newHighlightedIndex);\n }, [numResults, highlightedIndex, onHighlightedIndexChange]);\n\n const onGenericKeyDown = useCallback((event: KeyboardEvent<HTMLButtonElement>) => {\n // arrow right, focus the next focusable element\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n const nextFocusableElement = event.currentTarget.nextElementSibling as HTMLElement;\n if (nextFocusableElement) {\n nextFocusableElement.focus();\n }\n }\n // arrow left, focus the previous focusable element\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n if (event.target === arrowUpButtonRef.current) {\n inputRef.current?.focus();\n return;\n }\n const previousFocusableElement = event.currentTarget.previousElementSibling as HTMLElement;\n if (previousFocusableElement) {\n previousFocusableElement.focus();\n }\n }\n }, []);\n\n const searchResultStatusText = useMemo(() => {\n if (!searchQuery) {\n return '';\n }\n if (searchQuery && (Number.isNaN(numResults) || numResults <= 0)) {\n return 'No results';\n } else if (highlightedIndex === null || highlightedIndex === undefined || Number.isNaN(highlightedIndex) || highlightedIndex < 0 || !allowNavigation) {\n return `${numResults}${truncated ? '+' : ''} results`;\n } else if (allowNavigation) {\n return `${highlightedIndex + 1}/${numResults}${truncated ? '+' : ''} results`;\n }\n return '';\n }, [searchQuery, numResults, highlightedIndex, allowNavigation, truncated]);\n\n\n return (\n <FilledInput\n endAdornment={(\n <InputAdornment position={'end'}>\n {searchResultStatusText && (\n <Box\n aria-atomic={'true'}\n aria-live={'polite'}\n role={'status'}\n sx={{\n fontSize: '1rem',\n }}\n >\n {searchResultStatusText}\n </Box>\n )}\n {numResults > 0 && allowNavigation && (\n <>\n <IconButton\n aria-label={'Goto previous search result'}\n disabled={!numResults}\n edge={'end'}\n onClick={onUpArrowButtonClick}\n onKeyDown={onGenericKeyDown}\n ref={arrowUpButtonRef}\n sx={{ color: theme.palette.primary.main }}\n >\n <KeyboardArrowUpIcon />\n </IconButton>\n <IconButton\n aria-label={'Goto next search result'}\n disabled={!numResults}\n edge={'end'}\n onClick={onDownArrowButtonClick}\n onKeyDown={onGenericKeyDown}\n ref={arrowDownButtonRef}\n sx={{ color: theme.palette.primary.main }}\n >\n <KeyboardArrowDownIcon />\n </IconButton>\n </>\n )}\n {searchQuery && (\n <IconButton\n aria-label={'Clear'}\n edge={'end'}\n onClick={onClearButtonClick}\n onKeyDown={onGenericKeyDown}\n >\n <CloseIcon />\n </IconButton>\n )}\n </InputAdornment>\n )}\n fullWidth\n inputRef={inputRef}\n name={'Search'}\n onChange={onTextInputChange}\n onKeyDown={onTextInputKeyDown}\n placeholder={'Search'}\n size={'small'}\n slotProps={{\n input: {\n 'aria-label': 'Search',\n sx: {\n '&::-webkit-search-cancel-button': {\n display: 'none',\n },\n fontSize: '1rem',\n height: theme.spacing(4),\n outline: 'none !important',\n paddingBottom: '0 !important',\n paddingTop: '0 !important',\n },\n },\n }}\n startAdornment={(\n <InputAdornment position={'start'}>\n <SearchIcon fontSize={'small'} />\n </InputAdornment>\n )}\n sx={{\n backgroundColor: theme.palette.background.paper,\n height: theme.spacing(4),\n }}\n type={'search'}\n value={searchQuery}\n />\n );\n};\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- export * from './theme';