@rivm-loculus-tools/common-frontend 0.1.3 → 0.2.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 (126) hide show
  1. package/dist/_chunks/FastaDataImportDialog.js +309 -0
  2. package/dist/_chunks/FastaDataImportDialog.js.map +1 -0
  3. package/dist/_chunks/react.js +11 -0
  4. package/dist/_chunks/react.js.map +1 -0
  5. package/dist/classes/services/FastaDataEventBusService/FastaDataEventBusService.d.ts +10 -0
  6. package/dist/classes/services/FastaDataEventBusService/index.js +16 -0
  7. package/dist/classes/services/FastaDataEventBusService/index.js.map +1 -0
  8. package/dist/components/FastaDataImportDialog/FastaDataImportDialog.d.ts +12 -0
  9. package/dist/components/FastaDataImportDialog/index.js +1 -0
  10. package/dist/components/FastaDataImportDialogLoader/FastaDataImportDialogLoader.d.ts +8 -0
  11. package/dist/components/FastaDataImportDialogLoader/index.js +70 -0
  12. package/dist/components/FastaDataImportDialogLoader/index.js.map +1 -0
  13. package/dist/components/FastaNotLoaded/FastaNotLoaded.d.ts +7 -0
  14. package/dist/components/FastaNotLoaded/index.js +53 -0
  15. package/dist/components/FastaNotLoaded/index.js.map +1 -0
  16. package/dist/components/FastaPageHeaderCenterComponent/FastaPageHeaderCenterComponent.d.ts +6 -0
  17. package/dist/components/FastaPageHeaderCenterComponent/index.js +37 -0
  18. package/dist/components/FastaPageHeaderCenterComponent/index.js.map +1 -0
  19. package/dist/components/FastaPageHeaderImportButton/FastaPageHeaderImportButton.d.ts +1 -0
  20. package/dist/components/FastaPageHeaderImportButton/index.js +26 -0
  21. package/dist/components/FastaPageHeaderImportButton/index.js.map +1 -0
  22. package/dist/components/FastaPageHeaderResetButton/FastaPageHeaderResetButton.d.ts +4 -0
  23. package/dist/components/FastaPageHeaderResetButton/index.js +35 -0
  24. package/dist/components/FastaPageHeaderResetButton/index.js.map +1 -0
  25. package/dist/components/I18nWrapper/I18nWrapper.d.ts +4 -0
  26. package/dist/components/I18nWrapper/index.js +21 -0
  27. package/dist/components/I18nWrapper/index.js.map +1 -0
  28. package/dist/components/PageHeaderDocumentationButton/PageHeaderDocumentationButton.d.ts +1 -0
  29. package/dist/components/PageHeaderDocumentationButton/index.js +24 -0
  30. package/dist/components/PageHeaderDocumentationButton/index.js.map +1 -0
  31. package/dist/components/SearchBar/SearchBar.d.ts +10 -0
  32. package/dist/components/SearchBar/SearchBarNodeCounter.d.ts +4 -0
  33. package/dist/components/SearchBar/index.js +129 -0
  34. package/dist/components/SearchBar/index.js.map +1 -0
  35. package/dist/components/page/ErrorPageCommon.d.ts +4 -0
  36. package/dist/components/page/PageCommon.d.ts +8 -0
  37. package/dist/components/page/PageCommonContext.d.ts +7 -0
  38. package/dist/components/page/PageCommonContextProvider.d.ts +3 -0
  39. package/dist/components/page/PageCommonDrawer.d.ts +5 -0
  40. package/dist/components/page/PageCommonHeader.d.ts +8 -0
  41. package/dist/components/page/index.js +207 -0
  42. package/dist/components/page/index.js.map +1 -0
  43. package/dist/constants/page.d.ts +1 -0
  44. package/dist/constants/page.js +6 -0
  45. package/dist/constants/page.js.map +1 -0
  46. package/dist/models/fasta.d.ts +23 -0
  47. package/dist/models/fasta.js +8 -0
  48. package/dist/models/fasta.js.map +1 -0
  49. package/dist/models/metadata.d.ts +9 -0
  50. package/dist/stores/fastaDataStore/fastaDataStore.d.ts +32 -0
  51. package/dist/stores/fastaDataStore/index.js +57 -0
  52. package/dist/stores/fastaDataStore/index.js.map +1 -0
  53. package/dist/theme/index.js +257 -0
  54. package/dist/theme/index.js.map +1 -0
  55. package/dist/theme/theme.d.ts +1 -0
  56. package/dist/utils/DownloadUtil/DownloadUtil.d.ts +3 -0
  57. package/dist/utils/DownloadUtil/index.js +10 -0
  58. package/dist/utils/DownloadUtil/index.js.map +1 -0
  59. package/dist/utils/ErrorUtil/ErrorUtil.d.ts +3 -0
  60. package/dist/utils/ErrorUtil/index.js +10 -0
  61. package/dist/utils/ErrorUtil/index.js.map +1 -0
  62. package/dist/utils/FastaUtil/FastaUtil.d.ts +6 -0
  63. package/dist/utils/FastaUtil/index.js +56 -0
  64. package/dist/utils/FastaUtil/index.js.map +1 -0
  65. package/dist/utils/MetaDataUtil/MetaDataUtil.d.ts +20 -0
  66. package/dist/utils/MetaDataUtil/index.js +133 -0
  67. package/dist/utils/MetaDataUtil/index.js.map +1 -0
  68. package/dist/utils/UrlUtil/UrlUtil.d.ts +5 -0
  69. package/dist/utils/UrlUtil/index.js +30 -0
  70. package/dist/utils/UrlUtil/index.js.map +1 -0
  71. package/package.json +27 -28
  72. package/CHANGELOG.md +0 -29
  73. package/eslint.config.js +0 -16
  74. package/scripts/update-exports.js +0 -9
  75. package/src/classes/services/FastaDataEventBusService/FastaDataEventBusService.ts +0 -22
  76. package/src/components/FastaDataImportDialog/FastaDataImportDialog.tsx +0 -364
  77. package/src/components/FastaDataImportDialogLoader/FastaDataImportDialogLoader.tsx +0 -124
  78. package/src/components/FastaNotLoaded/FastaNotLoaded.tsx +0 -62
  79. package/src/components/FastaPageHeaderCenterComponent/FastaPageHeaderCenterComponent.tsx +0 -50
  80. package/src/components/FastaPageHeaderImportButton/FastaPageHeaderImportButton.tsx +0 -28
  81. package/src/components/FastaPageHeaderResetButton/FastaPageHeaderResetButton.tsx +0 -50
  82. package/src/components/I18nWrapper/I18nWrapper.tsx +0 -39
  83. package/src/components/PageHeaderDocumentationButton/PageHeaderDocumentationButton.tsx +0 -25
  84. package/src/components/SearchBar/SearchBar.tsx +0 -207
  85. package/src/components/SearchBar/SearchBarNodeCounter.tsx +0 -23
  86. package/src/components/page/ErrorPageCommon.tsx +0 -51
  87. package/src/components/page/PageCommon.tsx +0 -76
  88. package/src/components/page/PageCommonContext.ts +0 -15
  89. package/src/components/page/PageCommonContextProvider.tsx +0 -30
  90. package/src/components/page/PageCommonDrawer.tsx +0 -35
  91. package/src/components/page/PageCommonHeader.tsx +0 -99
  92. package/src/constants/page.ts +0 -1
  93. package/src/index.ts +0 -21
  94. package/src/models/fasta.ts +0 -22
  95. package/src/models/metadata.ts +0 -10
  96. package/src/stores/fastaDataStore/fastaDataStore.ts +0 -103
  97. package/src/theme/fonts/RobotoFlex.woff2 +0 -0
  98. package/src/theme/theme.ts +0 -368
  99. package/src/utils/DownloadUtil/DownloadUtil.ts +0 -10
  100. package/src/utils/ErrorUtil/ErrorUtil.ts +0 -5
  101. package/src/utils/FastaUtil/FastaUtil.ts +0 -109
  102. package/src/utils/MetaDataUtil/MetaDataUtil.ts +0 -292
  103. package/src/utils/UrlUtil/UrlUtil.ts +0 -35
  104. package/tsconfig.build.json +0 -14
  105. package/tsconfig.json +0 -32
  106. package/vite.config.ts +0 -137
  107. /package/{src → dist}/@types/vite-env.d.ts +0 -0
  108. /package/{src/classes/services/FastaDataEventBusService/index.ts → dist/classes/services/FastaDataEventBusService/index.d.ts} +0 -0
  109. /package/{src/components/FastaDataImportDialog/index.ts → dist/components/FastaDataImportDialog/index.d.ts} +0 -0
  110. /package/{src/components/FastaDataImportDialogLoader/index.ts → dist/components/FastaDataImportDialogLoader/index.d.ts} +0 -0
  111. /package/{src/components/FastaNotLoaded/index.ts → dist/components/FastaNotLoaded/index.d.ts} +0 -0
  112. /package/{src/components/FastaPageHeaderCenterComponent/index.ts → dist/components/FastaPageHeaderCenterComponent/index.d.ts} +0 -0
  113. /package/{src/components/FastaPageHeaderImportButton/index.ts → dist/components/FastaPageHeaderImportButton/index.d.ts} +0 -0
  114. /package/{src/components/FastaPageHeaderResetButton/index.ts → dist/components/FastaPageHeaderResetButton/index.d.ts} +0 -0
  115. /package/{src/components/I18nWrapper/index.ts → dist/components/I18nWrapper/index.d.ts} +0 -0
  116. /package/{src/components/PageHeaderDocumentationButton/index.ts → dist/components/PageHeaderDocumentationButton/index.d.ts} +0 -0
  117. /package/{src/components/SearchBar/index.ts → dist/components/SearchBar/index.d.ts} +0 -0
  118. /package/{src/components/page/index.ts → dist/components/page/index.d.ts} +0 -0
  119. /package/{src/.gitkeep → dist/models/metadata.js} +0 -0
  120. /package/{src/stores/fastaDataStore/index.ts → dist/stores/fastaDataStore/index.d.ts} +0 -0
  121. /package/{src/theme/index.ts → dist/theme/index.d.ts} +0 -0
  122. /package/{src/utils/DownloadUtil/index.ts → dist/utils/DownloadUtil/index.d.ts} +0 -0
  123. /package/{src/utils/ErrorUtil/index.ts → dist/utils/ErrorUtil/index.d.ts} +0 -0
  124. /package/{src/utils/FastaUtil/index.ts → dist/utils/FastaUtil/index.d.ts} +0 -0
  125. /package/{src/utils/MetaDataUtil/index.ts → dist/utils/MetaDataUtil/index.d.ts} +0 -0
  126. /package/{src/utils/UrlUtil/index.ts → dist/utils/UrlUtil/index.d.ts} +0 -0
@@ -0,0 +1,8 @@
1
+ //#region src/models/fasta.ts
2
+ var e = /* @__PURE__ */ function(e) {
3
+ return e.ERROR = "ERROR", e.IDLE = "IDLE", e.LOADING = "LOADING", e.SUCCESS = "SUCCESS", e;
4
+ }({});
5
+ //#endregion
6
+ export { e as LOADING_STATUS };
7
+
8
+ //# sourceMappingURL=fasta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fasta.js","names":["LOADING_STATUS","\"ERROR\"","\"IDLE\"","\"LOADING\"","\"SUCCESS\""],"sources":["../../src/models/fasta.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"}
@@ -0,0 +1,9 @@
1
+ export interface MetadataParseResult {
2
+ columns: string[];
3
+ error?: string;
4
+ records: MetadataRecord[];
5
+ recordsByAccession: Record<string, MetadataRecord>;
6
+ recordsByColumn: Record<string, Record<string, MetadataRecord>>;
7
+ recordsBySampleId: Record<string, MetadataRecord>;
8
+ }
9
+ export type MetadataRecord = Record<string, string>;
@@ -0,0 +1,32 @@
1
+ import { StoreApi } from 'zustand';
2
+ import { FastaParseResult, LOADING_STATUS } from '../../models/fasta';
3
+ import { MetadataParseResult } from '../../models/metadata';
4
+ export type FastaDataStore = FastaDataStoreActions & FastaDataStoreState;
5
+ export interface FastaDataStoreActions {
6
+ resetDataset: () => void;
7
+ setColumnMatchCounts: (counts: Record<string, number>) => void;
8
+ setData: (fasta: string, tsv?: string) => Promise<{
9
+ fastaResult: FastaParseResult;
10
+ metadataResult?: MetadataParseResult;
11
+ }>;
12
+ setLoadingStatus: (status: LOADING_STATUS) => void;
13
+ setMatchKeyField: (field: null | string) => void;
14
+ }
15
+ export interface FastaDataStoreState {
16
+ columnMatchCounts: Record<string, number>;
17
+ loadingError: null | string;
18
+ loadingStatus: LOADING_STATUS;
19
+ matchKeyField: null | string;
20
+ parsedFasta: FastaParseResult | null;
21
+ parsedMetadata: MetadataParseResult | null;
22
+ rawFasta: string;
23
+ rawMetadata: string;
24
+ }
25
+ export declare const createFastaDataStoreInitialState: () => FastaDataStoreState;
26
+ type Get<T extends FastaDataStore> = StoreApi<T>['getState'];
27
+ type Set<T extends FastaDataStore> = StoreApi<T>['setState'];
28
+ export declare const createFastaDataStoreActions: <T extends FastaDataStore>(kwArgs: {
29
+ get: Get<T>;
30
+ set: Set<T>;
31
+ }) => FastaDataStoreActions;
32
+ export {};
@@ -0,0 +1,57 @@
1
+ import { MetaDataUtil as e } from "../../utils/MetaDataUtil/index.js";
2
+ import { FastaUtil as t } from "../../utils/FastaUtil/index.js";
3
+ import { LOADING_STATUS as n } from "../../models/fasta.js";
4
+ //#region src/stores/fastaDataStore/fastaDataStore.ts
5
+ var r = () => ({
6
+ columnMatchCounts: {},
7
+ loadingError: null,
8
+ loadingStatus: n.IDLE,
9
+ matchKeyField: null,
10
+ parsedFasta: null,
11
+ parsedMetadata: null,
12
+ rawFasta: "",
13
+ rawMetadata: ""
14
+ }), i = (i) => {
15
+ let { get: a, set: o } = i, s = (e) => o(e);
16
+ return {
17
+ resetDataset: () => s(r()),
18
+ setColumnMatchCounts: (e) => s({ columnMatchCounts: e }),
19
+ setData: async (r, i) => {
20
+ let o = t.parseFasta(r);
21
+ if (o.error) throw s({
22
+ loadingError: o.error,
23
+ loadingStatus: n.ERROR
24
+ }), Error(o.error);
25
+ s({
26
+ parsedFasta: o,
27
+ rawFasta: r
28
+ });
29
+ let c;
30
+ if (i) {
31
+ if (c = e.parseTsv(i), c.error) throw s({
32
+ loadingError: c.error,
33
+ loadingStatus: n.ERROR
34
+ }), Error(c.error);
35
+ s({
36
+ parsedMetadata: c,
37
+ rawMetadata: i
38
+ });
39
+ let t = o.sequences.map((e) => e.id), { bestColumn: r, matchCounts: l } = e.findBestMatchingColumn(c.columns, c.recordsByColumn, t);
40
+ a().setColumnMatchCounts(l), a().setMatchKeyField(r);
41
+ }
42
+ return s({
43
+ loadingError: null,
44
+ loadingStatus: n.SUCCESS
45
+ }), Promise.resolve({
46
+ fastaResult: o,
47
+ metadataResult: c
48
+ });
49
+ },
50
+ setLoadingStatus: (e) => s({ loadingStatus: e }),
51
+ setMatchKeyField: (e) => s({ matchKeyField: e })
52
+ };
53
+ };
54
+ //#endregion
55
+ export { i as createFastaDataStoreActions, r as createFastaDataStoreInitialState };
56
+
57
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["createFastaDataStoreInitialState","LOADING_STATUS","createFastaDataStoreActions","kwArgs","setBaseState","set","partial","counts","parsedFasta","FastaUtil","fasta","parsedMetadata","tsv","MetaDataUtil","fastaIds","s","get","matchCounts","bestColumn","status","field"],"sources":["../../../src/stores/fastaDataStore/fastaDataStore.ts"],"sourcesContent":["import type { StoreApi } from 'zustand';\n\nimport type { FastaParseResult } from '../../models/fasta';\nimport { LOADING_STATUS } from '../../models/fasta';\nimport type { MetadataParseResult } from '../../models/metadata';\nimport { FastaUtil } from '../../utils/FastaUtil';\nimport { MetaDataUtil } from '../../utils/MetaDataUtil';\n\nexport type FastaDataStore = FastaDataStoreActions & FastaDataStoreState;\n\nexport interface FastaDataStoreActions {\n resetDataset: () => void;\n setColumnMatchCounts: (counts: Record<string, number>) => void;\n setData: (fasta: string, tsv?: string) => Promise<{ fastaResult: FastaParseResult; metadataResult?: MetadataParseResult }>;\n setLoadingStatus: (status: LOADING_STATUS) => void;\n setMatchKeyField: (field: null | string) => void;\n}\n\nexport interface FastaDataStoreState {\n columnMatchCounts: Record<string, number>;\n loadingError: null | string;\n loadingStatus: LOADING_STATUS;\n matchKeyField: null | string;\n parsedFasta: FastaParseResult | null;\n parsedMetadata: MetadataParseResult | null;\n rawFasta: string;\n rawMetadata: string;\n}\n\nexport const createFastaDataStoreInitialState = (): FastaDataStoreState => ({\n columnMatchCounts: {},\n loadingError: null,\n loadingStatus: LOADING_STATUS.IDLE,\n matchKeyField: null,\n parsedFasta: null,\n parsedMetadata: null,\n rawFasta: '',\n rawMetadata: '',\n});\n\n\ntype Get<T extends FastaDataStore> = StoreApi<T>['getState'];\ntype Set<T extends FastaDataStore> = StoreApi<T>['setState'];\n\nexport const createFastaDataStoreActions = <T extends FastaDataStore>(kwArgs: { get: Get<T>; set: Set<T> }): FastaDataStoreActions => {\n const { get, set } = kwArgs;\n const setBaseState = (partial: Partial<FastaDataStoreState>) => set(partial as Partial<T>);\n\n return {\n resetDataset: () => setBaseState(createFastaDataStoreInitialState()),\n setColumnMatchCounts: (counts: Record<string, number>) => setBaseState({ columnMatchCounts: counts }),\n setData: async (fasta: string, tsv?: string) => {\n const parsedFasta = FastaUtil.parseFasta(fasta);\n\n if (parsedFasta.error) {\n setBaseState({\n loadingError: parsedFasta.error,\n loadingStatus: LOADING_STATUS.ERROR,\n });\n throw new Error(parsedFasta.error);\n }\n\n setBaseState({\n parsedFasta,\n rawFasta: fasta,\n });\n\n let parsedMetadata: MetadataParseResult | undefined;\n if (tsv) {\n parsedMetadata = MetaDataUtil.parseTsv(tsv);\n if (parsedMetadata.error) {\n setBaseState({\n loadingError: parsedMetadata.error,\n loadingStatus: LOADING_STATUS.ERROR,\n });\n throw new Error(parsedMetadata.error);\n }\n\n setBaseState({\n parsedMetadata,\n rawMetadata: tsv,\n });\n\n const fastaIds = parsedFasta.sequences.map((s) => s.id);\n const { bestColumn, matchCounts } = MetaDataUtil.findBestMatchingColumn(\n parsedMetadata.columns,\n parsedMetadata.recordsByColumn,\n fastaIds,\n );\n get().setColumnMatchCounts(matchCounts);\n get().setMatchKeyField(bestColumn);\n }\n\n setBaseState({\n loadingError: null,\n loadingStatus: LOADING_STATUS.SUCCESS,\n });\n return Promise.resolve({ fastaResult: parsedFasta, metadataResult: parsedMetadata });\n },\n setLoadingStatus: (status: LOADING_STATUS) => setBaseState({ loadingStatus: status }),\n setMatchKeyField: (field: null | string) => setBaseState({ matchKeyField: field }),\n };\n};\n"],"mappings":";;;;AA6BA,IAAaA,WAA+D;CAC1E,mBAAmB,CAAC;CACpB,cAAc;CACd,eAAeC,EAAe;CAC9B,eAAe;CACf,aAAa;CACb,gBAAgB;CAChB,UAAU;CACV,aAAa;AACf,IAMaC,KAAyD,MAAgE;CACpI,IAAM,EAAE,QAAK,WAAQC,GACfC,KAAgB,MAA0CC,EAAIC,CAAqB;CAEzF,OAAO;EACL,oBAAoBF,EAAaJ,EAAiC,CAAC;EACnE,uBAAuB,MAAmCI,EAAa,EAAE,mBAAmBG,EAAO,CAAC;EACpG,SAAS,OAAO,GAAe,MAAiB;GAC9C,IAAMC,IAAcC,EAAU,WAAWC,CAAK;GAE9C,IAAIF,EAAY,OAKd,MAJAJ,EAAa;IACX,cAAcI,EAAY;IAC1B,eAAeP,EAAe;GAChC,CAAC,GACS,MAAMO,EAAY,KAAK;GAGnC,EAAa;IACX;IACA,UAAUE;GACZ,CAAC;GAED,IAAIC;GACJ,IAAIC,GAAK;IAEP,IADA,IAAiBC,EAAa,SAASD,CAAG,GACtCD,EAAe,OAKjB,MAJAP,EAAa;KACX,cAAcO,EAAe;KAC7B,eAAeV,EAAe;IAChC,CAAC,GACS,MAAMU,EAAe,KAAK;IAGtC,EAAa;KACX;KACA,aAAaC;IACf,CAAC;IAED,IAAME,IAAWN,EAAY,UAAU,KAAK,MAAMO,EAAE,EAAE,GAChD,EAAE,eAAY,mBAAgBF,EAAa,uBAC/CF,EAAe,SACfA,EAAe,iBACfG,CACF;IAEA,AADAE,EAAI,CAAC,CAAC,qBAAqBC,CAAW,GACtCD,EAAI,CAAC,CAAC,iBAAiBE,CAAU;GACnC;GAMA,OAJAd,EAAa;IACX,cAAc;IACd,eAAeH,EAAe;GAChC,CAAC,GACM,QAAQ,QAAQ;IAAE,aAAaO;IAAa,gBAAgBG;GAAe,CAAC;EACrF;EACA,mBAAmB,MAA2BP,EAAa,EAAE,eAAee,EAAO,CAAC;EACpF,mBAAmB,MAAyBf,EAAa,EAAE,eAAegB,EAAM,CAAC;CACnF;AACF"}