@genspectrum/dashboard-components 1.11.1 → 1.13.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 (58) hide show
  1. package/README.md +0 -7
  2. package/custom-elements.json +6 -25
  3. package/dist/components.d.ts +24 -30
  4. package/dist/components.js +929 -742
  5. package/dist/components.js.map +1 -1
  6. package/dist/util.d.ts +40 -24
  7. package/package.json +1 -5
  8. package/src/lapisApi/lapisApi.ts +21 -1
  9. package/src/lapisApi/lapisTypes.ts +37 -0
  10. package/src/preact/components/annotated-mutation.tsx +2 -2
  11. package/src/preact/{mutationsOverTime/mutations-over-time-grid.tsx → components/features-over-time-grid.tsx} +45 -52
  12. package/src/preact/genomeViewer/genome-data-viewer.tsx +2 -2
  13. package/src/preact/mutationsOverTime/MutationOverTimeData.ts +6 -4
  14. package/src/preact/mutationsOverTime/__mockData__/aminoAcidMutationsByDay/aminoAcidMutations.json +5482 -0
  15. package/src/preact/mutationsOverTime/__mockData__/aminoAcidMutationsByDay/aminoAcidMutationsOverTime.json +5496 -0
  16. package/src/preact/mutationsOverTime/__mockData__/byWeek/mutationsOverTime.json +7100 -0
  17. package/src/preact/mutationsOverTime/__mockData__/byWeek/nucleotideMutations.json +10122 -0
  18. package/src/preact/mutationsOverTime/__mockData__/defaultMockData/mutationsOverTime.json +12646 -0
  19. package/src/preact/mutationsOverTime/__mockData__/defaultMockData/nucleotideMutations.json +12632 -0
  20. package/src/preact/mutationsOverTime/__mockData__/request1800s/mutationsOverTime.json +16 -0
  21. package/src/preact/mutationsOverTime/__mockData__/request1800s/nucleotideMutations.json +11 -0
  22. package/src/preact/mutationsOverTime/__mockData__/withDisplayMutations/mutationsOverTime.json +52 -0
  23. package/src/preact/mutationsOverTime/getFilteredMutationsOverTime.spec.ts +3 -3
  24. package/src/preact/mutationsOverTime/mutations-over-time-grid-tooltip.tsx +3 -6
  25. package/src/preact/mutationsOverTime/mutations-over-time.stories.tsx +199 -12
  26. package/src/preact/mutationsOverTime/mutations-over-time.tsx +30 -35
  27. package/src/preact/wastewater/mutationsOverTime/wastewater-mutations-over-time.tsx +30 -3
  28. package/src/query/queryDatesInDataset.ts +89 -0
  29. package/src/query/queryMutationsOverTime.spec.ts +526 -548
  30. package/src/query/queryMutationsOverTime.ts +22 -245
  31. package/src/query/queryQueriesOverTime.spec.ts +432 -0
  32. package/src/query/queryQueriesOverTime.ts +125 -0
  33. package/src/utilEntrypoint.ts +3 -1
  34. package/src/utils/mutations.spec.ts +6 -0
  35. package/src/utils/mutations.ts +1 -1
  36. package/src/utils/temporalClass.ts +4 -0
  37. package/src/web-components/visualization/gs-mutation-comparison.tsx +2 -2
  38. package/src/web-components/visualization/gs-mutations-over-time.spec-d.ts +0 -3
  39. package/src/web-components/visualization/gs-mutations-over-time.stories.ts +283 -17
  40. package/src/web-components/visualization/gs-mutations-over-time.tsx +0 -9
  41. package/standalone-bundle/dashboard-components.js +8935 -8780
  42. package/standalone-bundle/dashboard-components.js.map +1 -1
  43. package/dist/assets/mutationOverTimeWorker-CQQFRoK4.js.map +0 -1
  44. package/src/preact/mutationsOverTime/__mockData__/aminoAcidMutationsByDay.ts +0 -47170
  45. package/src/preact/mutationsOverTime/__mockData__/byWeek.ts +0 -54026
  46. package/src/preact/mutationsOverTime/__mockData__/defaultMockData.ts +0 -108385
  47. package/src/preact/mutationsOverTime/__mockData__/mockConversion.ts +0 -54
  48. package/src/preact/mutationsOverTime/__mockData__/noDataWhenNoMutationsAreInFilter.ts +0 -23
  49. package/src/preact/mutationsOverTime/__mockData__/noDataWhenThereAreNoDatesInFilter.ts +0 -23
  50. package/src/preact/mutationsOverTime/__mockData__/showsMessageWhenTooManyMutations.ts +0 -65527
  51. package/src/preact/mutationsOverTime/__mockData__/withDisplayMutations.ts +0 -352
  52. package/src/preact/mutationsOverTime/__mockData__/withGaps.ts +0 -298
  53. package/src/preact/mutationsOverTime/mutationOverTimeWorker.mock.ts +0 -33
  54. package/src/preact/mutationsOverTime/mutationOverTimeWorker.ts +0 -29
  55. package/src/preact/webWorkers/useWebWorker.ts +0 -74
  56. package/src/preact/webWorkers/workerFunction.ts +0 -30
  57. package/src/query/queryMutationsOverTimeNewEndpoint.spec.ts +0 -1179
  58. package/standalone-bundle/assets/mutationOverTimeWorker-DIpJukJC.js.map +0 -1
@@ -1,29 +0,0 @@
1
- import {
2
- type MutationOverTimeMutationValue,
3
- type MutationOverTimeQuery,
4
- queryMutationsOverTimeData,
5
- } from '../../query/queryMutationsOverTime';
6
- import type { SubstitutionOrDeletionEntry } from '../../types';
7
- import { type Map2DContents } from '../../utils/map2d';
8
- import type { Deletion, Substitution } from '../../utils/mutations';
9
- import type { Temporal } from '../../utils/temporalClass';
10
- import { workerFunction } from '../webWorkers/workerFunction';
11
-
12
- export type MutationOverTimeWorkerResponse = {
13
- overallMutationData: SubstitutionOrDeletionEntry<Substitution, Deletion>[];
14
- mutationOverTimeSerialized: Map2DContents<Substitution | Deletion, Temporal, MutationOverTimeMutationValue>;
15
- };
16
-
17
- export async function getMutationOverTimeWorkerFunction(event: MessageEvent<MutationOverTimeQuery>) {
18
- const mutationOverTimeData = await queryMutationsOverTimeData(event.data);
19
-
20
- const workerResponse: MutationOverTimeWorkerResponse = {
21
- overallMutationData: mutationOverTimeData.overallMutationData,
22
- mutationOverTimeSerialized: mutationOverTimeData.mutationOverTimeData.getContents(),
23
- };
24
- return workerResponse;
25
- }
26
-
27
- self.onmessage = async function (event: MessageEvent<MutationOverTimeQuery>) {
28
- await workerFunction(() => getMutationOverTimeWorkerFunction(event));
29
- };
@@ -1,74 +0,0 @@
1
- import { useEffect, useMemo, useState } from 'preact/hooks';
2
-
3
- import { UserFacingError } from '../components/error-display';
4
-
5
- export type LoadingWorkerStatus = {
6
- status: 'loading';
7
- };
8
- export type SuccessWorkerStatus<Response> = {
9
- status: 'success';
10
- data: Response;
11
- };
12
- export type ErrorWorkerStatus =
13
- | {
14
- status: 'error';
15
- userFacing: false;
16
- error: Error;
17
- }
18
- | {
19
- status: 'error';
20
- userFacing: true;
21
- headline: string;
22
- error: Error;
23
- };
24
- export type WorkerStatus<Response> = LoadingWorkerStatus | SuccessWorkerStatus<Response> | ErrorWorkerStatus;
25
-
26
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters -- We need the return type
27
- export function useWebWorker<Response>(messageToWorker: unknown, WorkerConstructor: new () => Worker) {
28
- const [data, setData] = useState<Response | undefined>(undefined);
29
- const [error, setError] = useState<Error | undefined>(undefined);
30
- const [isLoading, setIsLoading] = useState(true);
31
-
32
- const worker = useMemo(() => {
33
- const worker = new WorkerConstructor();
34
-
35
- worker.onmessage = (event: MessageEvent<WorkerStatus<Response>>) => {
36
- const eventData = event.data;
37
- const status = eventData.status;
38
-
39
- switch (status) {
40
- case 'loading':
41
- setIsLoading(true);
42
- break;
43
- case 'success':
44
- setData(eventData.data);
45
- setError(undefined);
46
- setIsLoading(false);
47
- break;
48
- case 'error':
49
- setError(
50
- eventData.userFacing
51
- ? new UserFacingError(eventData.headline, eventData.error.message)
52
- : eventData.error,
53
- );
54
- setIsLoading(false);
55
- break;
56
- default:
57
- throw new Error(`Unknown status: ${status}`);
58
- }
59
- };
60
-
61
- worker.onmessageerror = (event: MessageEvent) => {
62
- setError(new Error(`Worker received a message that it cannot deserialize: ${event.data}`));
63
- setIsLoading(false);
64
- };
65
-
66
- return worker;
67
- }, [WorkerConstructor]);
68
-
69
- useEffect(() => {
70
- worker.postMessage(messageToWorker);
71
- }, [messageToWorker, worker]);
72
-
73
- return { data, error, isLoading };
74
- }
@@ -1,30 +0,0 @@
1
- import { type ErrorWorkerStatus, type LoadingWorkerStatus, type SuccessWorkerStatus } from './useWebWorker';
2
- import { UserFacingError } from '../components/error-display';
3
-
4
- export async function workerFunction(queryFunction: () => unknown) {
5
- try {
6
- postMessage({ status: 'loading' } satisfies LoadingWorkerStatus);
7
-
8
- const workerResponse = await queryFunction();
9
-
10
- postMessage({
11
- status: 'success',
12
- data: workerResponse,
13
- } satisfies SuccessWorkerStatus<unknown>);
14
- } catch (error) {
15
- postMessage(
16
- (error instanceof UserFacingError
17
- ? {
18
- status: 'error',
19
- userFacing: true,
20
- headline: error.headline,
21
- error,
22
- }
23
- : {
24
- status: 'error',
25
- userFacing: false,
26
- error: error instanceof Error ? error : new Error(`${error}`),
27
- }) satisfies ErrorWorkerStatus,
28
- );
29
- }
30
- }