@genspectrum/dashboard-components 1.16.0 → 1.17.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 (36) hide show
  1. package/custom-elements.json +3 -3
  2. package/dist/components.d.ts +4 -4
  3. package/dist/components.js +449 -246
  4. package/dist/components.js.map +1 -1
  5. package/dist/util.d.ts +6 -6
  6. package/package.json +1 -1
  7. package/src/preact/MutationAnnotationsContext.tsx +1 -1
  8. package/src/preact/components/csv-download-button.tsx +22 -14
  9. package/src/preact/components/features-over-time-grid.tsx +189 -43
  10. package/src/preact/components/mutations-over-time-mutations-filter.stories.tsx +1 -1
  11. package/src/preact/components/mutations-over-time-mutations-filter.tsx +1 -1
  12. package/src/preact/mutationsOverTime/__mockData__/aminoAcidMutationsByDay/aminoAcidMutationsOverTimePage1.json +52 -0
  13. package/src/preact/mutationsOverTime/__mockData__/byWeek/mutationsOverTimePage1.json +76 -0
  14. package/src/preact/mutationsOverTime/__mockData__/defaultMockData/mockDefaultMutationsOverTimeWithFilter.json +43 -0
  15. package/src/preact/mutationsOverTime/__mockData__/defaultMockData/mutationsOverTimePage1.json +126 -0
  16. package/src/preact/mutationsOverTime/__mockData__/defaultMockData/mutationsOverTimePage2.json +116 -0
  17. package/src/preact/mutationsOverTime/__mockData__/defaultMockData/mutationsOverTimePageSize20.json +216 -0
  18. package/src/preact/mutationsOverTime/getFilteredMutationCodes.spec.ts +236 -0
  19. package/src/preact/mutationsOverTime/{getFilteredMutationsOverTimeData.ts → getFilteredMutationCodes.ts} +29 -44
  20. package/src/preact/mutationsOverTime/mutations-over-time.stories.tsx +128 -23
  21. package/src/preact/mutationsOverTime/mutations-over-time.tsx +139 -74
  22. package/src/preact/mutationsOverTime/useMutationsOverTimePageData.ts +111 -0
  23. package/src/preact/shared/tanstackTable/pagination-context.tsx +5 -2
  24. package/src/preact/shared/tanstackTable/pagination.tsx +11 -9
  25. package/src/preact/shared/tanstackTable/tanstackTable.tsx +7 -4
  26. package/src/preact/wastewater/mutationsOverTime/wastewater-mutations-over-time.tsx +1 -1
  27. package/src/query/queryMutationsOverTime.spec.ts +187 -662
  28. package/src/query/queryMutationsOverTime.ts +46 -33
  29. package/src/utils/useControlledState.ts +15 -0
  30. package/src/web-components/visualization/gs-mutations-over-time.stories.ts +78 -22
  31. package/standalone-bundle/dashboard-components.js +6872 -6690
  32. package/standalone-bundle/dashboard-components.js.map +1 -1
  33. package/src/preact/mutationsOverTime/__mockData__/aminoAcidMutationsByDay/aminoAcidMutationsOverTime.json +0 -5496
  34. package/src/preact/mutationsOverTime/__mockData__/byWeek/mutationsOverTime.json +0 -7100
  35. package/src/preact/mutationsOverTime/__mockData__/defaultMockData/mutationsOverTime.json +0 -12646
  36. package/src/preact/mutationsOverTime/getFilteredMutationsOverTime.spec.ts +0 -417
@@ -2717,7 +2717,7 @@
2717
2717
  "type": {
2718
2718
  "text": "Meta<Required<MutationsOverTimeProps>>"
2719
2719
  },
2720
- "default": "{ title: 'Visualization/Mutations over time', component: 'gs-mutations-over-time', argTypes: { lapisFilter: { control: 'object' }, sequenceType: { options: ['nucleotide', 'amino acid'], control: { type: 'radio' }, }, views: { options: ['grid'], control: { type: 'check' }, }, width: { control: 'text' }, height: { control: 'text' }, granularity: { options: ['day', 'week', 'month', 'year'], control: { type: 'radio' }, }, lapisDateField: { control: 'text' }, displayMutations: { control: 'object' }, initialMeanProportionInterval: { control: 'object' }, hideGaps: { control: 'boolean' }, pageSizes: { control: 'object' }, customColumns: { control: 'object' }, }, args: { lapisFilter: { pangoLineage: 'JN.1*', dateFrom: '2024-01-15', dateTo: '2024-07-10' }, sequenceType: 'nucleotide', views: ['grid'], width: '100%', granularity: 'month', lapisDateField: 'date', initialMeanProportionInterval: { min: 0.05, max: 0.9 }, hideGaps: false, pageSizes: [10, 20, 30, 40, 50], }, parameters: withComponentDocs({ componentDocs: { opensShadowDom: true, expectsChildren: false, codeExample, }, fetchMock: { mocks: [ { matcher: { url: `${LAPIS_URL}/sample/nucleotideMutations`, body: { pangoLineage: 'JN.1*', dateFrom: '2024-01-01', dateTo: '2024-07-31', minProportion: 0.001, }, response: { status: 200, body: mockDefaultNucleotideMutations, }, }, }, { matcher: { url: `${LAPIS_URL}/component/nucleotideMutationsOverTime`, body: { filters: { pangoLineage: 'JN.1*', dateFrom: '2024-01-15', dateTo: '2024-07-10', }, dateRanges: [ { dateFrom: '2024-01-01', dateTo: '2024-01-31' }, { dateFrom: '2024-02-01', dateTo: '2024-02-29' }, { dateFrom: '2024-03-01', dateTo: '2024-03-31' }, { dateFrom: '2024-04-01', dateTo: '2024-04-30' }, { dateFrom: '2024-05-01', dateTo: '2024-05-31' }, { dateFrom: '2024-06-01', dateTo: '2024-06-30' }, { dateFrom: '2024-07-01', dateTo: '2024-07-31' }, ], dateField: 'date', }, matchPartialBody: true, response: { status: 200, body: mockDefaultMutationsOverTime, }, }, }, ], }, }), tags: ['autodocs'], }"
2720
+ "default": "{ title: 'Visualization/Mutations over time', component: 'gs-mutations-over-time', argTypes: { lapisFilter: { control: 'object' }, sequenceType: { options: ['nucleotide', 'amino acid'], control: { type: 'radio' }, }, views: { options: ['grid'], control: { type: 'check' }, }, width: { control: 'text' }, height: { control: 'text' }, granularity: { options: ['day', 'week', 'month', 'year'], control: { type: 'radio' }, }, lapisDateField: { control: 'text' }, displayMutations: { control: 'object' }, initialMeanProportionInterval: { control: 'object' }, hideGaps: { control: 'boolean' }, pageSizes: { control: 'object' }, customColumns: { control: 'object' }, }, args: { lapisFilter: { pangoLineage: 'JN.1*', dateFrom: '2024-01-15', dateTo: '2024-07-10' }, sequenceType: 'nucleotide', views: ['grid'], width: '100%', granularity: 'month', lapisDateField: 'date', initialMeanProportionInterval: { min: 0.05, max: 0.9 }, hideGaps: false, pageSizes: [10, 20, 30, 40, 50], }, parameters: withComponentDocs({ componentDocs: { opensShadowDom: true, expectsChildren: false, codeExample, }, fetchMock: { mocks: [ { matcher: { url: `${LAPIS_URL}/sample/nucleotideMutations`, body: { pangoLineage: 'JN.1*', dateFrom: '2024-01-01', dateTo: '2024-07-31', minProportion: 0.001, }, response: { status: 200, body: mockDefaultNucleotideMutations, }, }, }, { matcher: { url: `${LAPIS_URL}/component/nucleotideMutationsOverTime`, body: { filters: { pangoLineage: 'JN.1*', dateFrom: '2024-01-15', dateTo: '2024-07-10' }, dateRanges: [ { dateFrom: '2024-01-01', dateTo: '2024-01-31' }, { dateFrom: '2024-02-01', dateTo: '2024-02-29' }, { dateFrom: '2024-03-01', dateTo: '2024-03-31' }, { dateFrom: '2024-04-01', dateTo: '2024-04-30' }, { dateFrom: '2024-05-01', dateTo: '2024-05-31' }, { dateFrom: '2024-06-01', dateTo: '2024-06-30' }, { dateFrom: '2024-07-01', dateTo: '2024-07-31' }, ], includeMutations: [ 'C44T', 'C774T', 'C7113T', 'C12616T', 'A13121T', 'G15372T', 'G17334T', 'T18453C', 'A19722G', 'T21653-', ], dateField: 'date', }, response: { status: 200, body: mockDefaultMutationsOverTimePage1, }, }, }, { matcher: { name: 'downloadData', url: `${LAPIS_URL}/component/nucleotideMutationsOverTime`, body: { filters: { pangoLineage: 'JN.1*', dateFrom: '2024-01-15', dateTo: '2024-07-10' }, dateRanges: [ { dateFrom: '2024-01-01', dateTo: '2024-01-31' }, { dateFrom: '2024-02-01', dateTo: '2024-02-29' }, { dateFrom: '2024-03-01', dateTo: '2024-03-31' }, { dateFrom: '2024-04-01', dateTo: '2024-04-30' }, { dateFrom: '2024-05-01', dateTo: '2024-05-31' }, { dateFrom: '2024-06-01', dateTo: '2024-06-30' }, { dateFrom: '2024-07-01', dateTo: '2024-07-31' }, ], includeMutations: [ 'C44T', 'C774T', 'C7113T', 'C12616T', 'A13121T', 'G15372T', 'G17334T', 'T18453C', 'A19722G', 'T21653-', 'C21654-', 'T21655-', 'G22111T', 'G22599C', 'T22928C', 'T23011-', 'C23039G', 'C23277T', 'G24872T', ], dateField: 'date', }, response: { status: 200, body: mockDefaultMutationsOverTimePageSize20, }, }, }, ], }, }), tags: ['autodocs'], }"
2721
2721
  },
2722
2722
  {
2723
2723
  "kind": "variable",
@@ -2749,7 +2749,7 @@
2749
2749
  "type": {
2750
2750
  "text": "StoryObj<Required<MutationsOverTimeProps>>"
2751
2751
  },
2752
- "default": "{ ...Template, args: { ...Template.args, lapisFilter: { pangoLineage: 'JN.1*', dateFrom: '2024-01-15', dateTo: '2024-02-11' }, granularity: 'week', }, parameters: { fetchMock: { mocks: [ { matcher: { url: `${LAPIS_URL}/sample/nucleotideMutations`, body: { pangoLineage: 'JN.1*', dateFrom: '2024-01-15', dateTo: '2024-02-11', minProportion: 0.001, }, response: { status: 200, body: mockByWeekNucleotideMutations, }, }, }, { matcher: { url: `${LAPIS_URL}/component/nucleotideMutationsOverTime`, body: { filters: { pangoLineage: 'JN.1*', dateFrom: '2024-01-15', dateTo: '2024-02-11', }, dateRanges: [ { dateFrom: '2024-01-15', dateTo: '2024-01-21' }, { dateFrom: '2024-01-22', dateTo: '2024-01-28' }, { dateFrom: '2024-01-29', dateTo: '2024-02-04' }, { dateFrom: '2024-02-05', dateTo: '2024-02-11' }, ], dateField: 'date', }, matchPartialBody: true, response: { status: 200, body: mockByWeekMutationsOverTime, }, }, }, ], }, }, }"
2752
+ "default": "{ ...Template, args: { ...Template.args, lapisFilter: { pangoLineage: 'JN.1*', dateFrom: '2024-01-15', dateTo: '2024-02-11' }, granularity: 'week', }, parameters: { fetchMock: { mocks: [ { matcher: { url: `${LAPIS_URL}/sample/nucleotideMutations`, body: { pangoLineage: 'JN.1*', dateFrom: '2024-01-15', dateTo: '2024-02-11', minProportion: 0.001, }, response: { status: 200, body: mockByWeekNucleotideMutations, }, }, }, { matcher: { url: `${LAPIS_URL}/component/nucleotideMutationsOverTime`, body: { filters: { pangoLineage: 'JN.1*', dateFrom: '2024-01-15', dateTo: '2024-02-11' }, dateRanges: [ { dateFrom: '2024-01-15', dateTo: '2024-01-21' }, { dateFrom: '2024-01-22', dateTo: '2024-01-28' }, { dateFrom: '2024-01-29', dateTo: '2024-02-04' }, { dateFrom: '2024-02-05', dateTo: '2024-02-11' }, ], includeMutations: [ 'C44T', 'C774T', 'C1762A', 'C11747T', 'G17562T', 'T18453C', 'G21641T', 'C23277T', 'C29870A', ], dateField: 'date', }, matchPartialBody: true, response: { status: 200, body: mockByWeekMutationsOverTimePage1, }, }, }, ], }, }, }"
2753
2753
  },
2754
2754
  {
2755
2755
  "kind": "variable",
@@ -2757,7 +2757,7 @@
2757
2757
  "type": {
2758
2758
  "text": "StoryObj<Required<MutationsOverTimeProps>>"
2759
2759
  },
2760
- "default": "{ ...Template, args: { ...Template.args, lapisFilter: { pangoLineage: 'JN.1*', dateFrom: '2024-01-20', dateTo: '2024-01-26' }, granularity: 'day', sequenceType: 'amino acid', }, parameters: { fetchMock: { mocks: [ { matcher: { url: `${LAPIS_URL}/sample/aminoAcidMutations`, body: { pangoLineage: 'JN.1*', dateFrom: '2024-01-20', dateTo: '2024-01-26', minProportion: 0.001, }, response: { status: 200, body: mockAminoAcidMutationsByDayAminoAcidMutations, }, }, }, { matcher: { url: `${LAPIS_URL}/component/aminoAcidMutationsOverTime`, body: { filters: { pangoLineage: 'JN.1*', dateFrom: '2024-01-20', dateTo: '2024-01-26', }, dateRanges: [ { dateFrom: '2024-01-20', dateTo: '2024-01-20' }, { dateFrom: '2024-01-21', dateTo: '2024-01-21' }, { dateFrom: '2024-01-22', dateTo: '2024-01-22' }, { dateFrom: '2024-01-23', dateTo: '2024-01-23' }, { dateFrom: '2024-01-24', dateTo: '2024-01-24' }, { dateFrom: '2024-01-25', dateTo: '2024-01-25' }, { dateFrom: '2024-01-26', dateTo: '2024-01-26' }, ], dateField: 'date', }, matchPartialBody: true, response: { status: 200, body: mockAminoAcidMutationsByDayAminoAcidMutationsOverTime, }, }, }, ], }, }, }"
2760
+ "default": "{ ...Template, args: { ...Template.args, lapisFilter: { pangoLineage: 'JN.1*', dateFrom: '2024-01-20', dateTo: '2024-01-26' }, granularity: 'day', sequenceType: 'amino acid', }, parameters: { fetchMock: { mocks: [ { matcher: { url: `${LAPIS_URL}/sample/aminoAcidMutations`, body: { pangoLineage: 'JN.1*', dateFrom: '2024-01-20', dateTo: '2024-01-26', minProportion: 0.001, }, response: { status: 200, body: mockAminoAcidMutationsByDayAminoAcidMutations, }, }, }, { matcher: { url: `${LAPIS_URL}/component/aminoAcidMutationsOverTime`, body: { filters: { pangoLineage: 'JN.1*', dateFrom: '2024-01-20', dateTo: '2024-01-26' }, dateRanges: [ { dateFrom: '2024-01-20', dateTo: '2024-01-20' }, { dateFrom: '2024-01-21', dateTo: '2024-01-21' }, { dateFrom: '2024-01-22', dateTo: '2024-01-22' }, { dateFrom: '2024-01-23', dateTo: '2024-01-23' }, { dateFrom: '2024-01-24', dateTo: '2024-01-24' }, { dateFrom: '2024-01-25', dateTo: '2024-01-25' }, { dateFrom: '2024-01-26', dateTo: '2024-01-26' }, ], includeMutations: ['ORF1a:T170I', 'ORF1a:F499L', 'S:T572I'], dateField: 'date', }, matchPartialBody: true, response: { status: 200, body: mockAminoAcidMutationsByDayAminoAcidMutationsOverTimePage1, }, }, }, ], }, }, }"
2761
2761
  },
2762
2762
  {
2763
2763
  "kind": "variable",
@@ -1856,7 +1856,7 @@ declare global {
1856
1856
 
1857
1857
  declare global {
1858
1858
  interface HTMLElementTagNameMap {
1859
- 'gs-number-sequences-over-time': NumberSequencesOverTimeComponent;
1859
+ 'gs-aggregate': AggregateComponent;
1860
1860
  }
1861
1861
  }
1862
1862
 
@@ -1864,7 +1864,7 @@ declare global {
1864
1864
  declare global {
1865
1865
  namespace React.JSX {
1866
1866
  interface IntrinsicElements {
1867
- 'gs-number-sequences-over-time': NumberSequencesOverTimeComponent;
1867
+ 'gs-aggregate': AggregateComponent;
1868
1868
  }
1869
1869
  }
1870
1870
  }
@@ -1872,7 +1872,7 @@ declare global {
1872
1872
 
1873
1873
  declare global {
1874
1874
  interface HTMLElementTagNameMap {
1875
- 'gs-aggregate': AggregateComponent;
1875
+ 'gs-number-sequences-over-time': NumberSequencesOverTimeComponent;
1876
1876
  }
1877
1877
  }
1878
1878
 
@@ -1880,7 +1880,7 @@ declare global {
1880
1880
  declare global {
1881
1881
  namespace React.JSX {
1882
1882
  interface IntrinsicElements {
1883
- 'gs-aggregate': AggregateComponent;
1883
+ 'gs-number-sequences-over-time': NumberSequencesOverTimeComponent;
1884
1884
  }
1885
1885
  }
1886
1886
  }