@genspectrum/dashboard-components 0.19.4 → 0.19.5

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.
@@ -1696,11 +1696,7 @@ declare global {
1696
1696
 
1697
1697
  declare global {
1698
1698
  interface HTMLElementTagNameMap {
1699
- 'gs-date-range-filter': DateRangeFilterComponent;
1700
- }
1701
- interface HTMLElementEventMap {
1702
- [gsEventNames.dateRangeFilterChanged]: CustomEvent<Record<string, string>>;
1703
- [gsEventNames.dateRangeOptionChanged]: DateRangeOptionChangedEvent;
1699
+ 'gs-statistics': StatisticsComponent;
1704
1700
  }
1705
1701
  }
1706
1702
 
@@ -1708,7 +1704,7 @@ declare global {
1708
1704
  declare global {
1709
1705
  namespace JSX {
1710
1706
  interface IntrinsicElements {
1711
- 'gs-date-range-filter': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1707
+ 'gs-statistics': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1712
1708
  }
1713
1709
  }
1714
1710
  }
@@ -1716,10 +1712,7 @@ declare global {
1716
1712
 
1717
1713
  declare global {
1718
1714
  interface HTMLElementTagNameMap {
1719
- 'gs-location-filter': LocationFilterComponent;
1720
- }
1721
- interface HTMLElementEventMap {
1722
- [gsEventNames.locationChanged]: LocationChangedEvent;
1715
+ 'gs-wastewater-mutations-over-time': WastewaterMutationsOverTimeComponent;
1723
1716
  }
1724
1717
  }
1725
1718
 
@@ -1727,7 +1720,7 @@ declare global {
1727
1720
  declare global {
1728
1721
  namespace JSX {
1729
1722
  interface IntrinsicElements {
1730
- 'gs-location-filter': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1723
+ 'gs-wastewater-mutations-over-time': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1731
1724
  }
1732
1725
  }
1733
1726
  }
@@ -1735,7 +1728,11 @@ declare global {
1735
1728
 
1736
1729
  declare global {
1737
1730
  interface HTMLElementTagNameMap {
1738
- 'gs-statistics': StatisticsComponent;
1731
+ 'gs-date-range-filter': DateRangeFilterComponent;
1732
+ }
1733
+ interface HTMLElementEventMap {
1734
+ [gsEventNames.dateRangeFilterChanged]: CustomEvent<Record<string, string>>;
1735
+ [gsEventNames.dateRangeOptionChanged]: DateRangeOptionChangedEvent;
1739
1736
  }
1740
1737
  }
1741
1738
 
@@ -1743,7 +1740,7 @@ declare global {
1743
1740
  declare global {
1744
1741
  namespace JSX {
1745
1742
  interface IntrinsicElements {
1746
- 'gs-statistics': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1743
+ 'gs-date-range-filter': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1747
1744
  }
1748
1745
  }
1749
1746
  }
@@ -1770,10 +1767,10 @@ declare global {
1770
1767
 
1771
1768
  declare global {
1772
1769
  interface HTMLElementTagNameMap {
1773
- 'gs-lineage-filter': LineageFilterComponent;
1770
+ 'gs-location-filter': LocationFilterComponent;
1774
1771
  }
1775
1772
  interface HTMLElementEventMap {
1776
- [gsEventNames.lineageFilterChanged]: LineageFilterChangedEvent;
1773
+ [gsEventNames.locationChanged]: LocationChangedEvent;
1777
1774
  }
1778
1775
  }
1779
1776
 
@@ -1781,7 +1778,7 @@ declare global {
1781
1778
  declare global {
1782
1779
  namespace JSX {
1783
1780
  interface IntrinsicElements {
1784
- 'gs-lineage-filter': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1781
+ 'gs-location-filter': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1785
1782
  }
1786
1783
  }
1787
1784
  }
@@ -1808,11 +1805,10 @@ declare global {
1808
1805
 
1809
1806
  declare global {
1810
1807
  interface HTMLElementTagNameMap {
1811
- 'gs-number-range-filter': NumberRangeFilterComponent;
1808
+ 'gs-lineage-filter': LineageFilterComponent;
1812
1809
  }
1813
1810
  interface HTMLElementEventMap {
1814
- [gsEventNames.numberRangeFilterChanged]: NumberRangeFilterChangedEvent;
1815
- [gsEventNames.numberRangeValueChanged]: NumberRangeValueChangedEvent;
1811
+ [gsEventNames.lineageFilterChanged]: LineageFilterChangedEvent;
1816
1812
  }
1817
1813
  }
1818
1814
 
@@ -1820,7 +1816,7 @@ declare global {
1820
1816
  declare global {
1821
1817
  namespace JSX {
1822
1818
  interface IntrinsicElements {
1823
- 'gs-number-range-filter': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1819
+ 'gs-lineage-filter': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1824
1820
  }
1825
1821
  }
1826
1822
  }
@@ -1828,7 +1824,11 @@ declare global {
1828
1824
 
1829
1825
  declare global {
1830
1826
  interface HTMLElementTagNameMap {
1831
- 'gs-wastewater-mutations-over-time': WastewaterMutationsOverTimeComponent;
1827
+ 'gs-number-range-filter': NumberRangeFilterComponent;
1828
+ }
1829
+ interface HTMLElementEventMap {
1830
+ [gsEventNames.numberRangeFilterChanged]: NumberRangeFilterChangedEvent;
1831
+ [gsEventNames.numberRangeValueChanged]: NumberRangeValueChangedEvent;
1832
1832
  }
1833
1833
  }
1834
1834
 
@@ -1836,7 +1836,7 @@ declare global {
1836
1836
  declare global {
1837
1837
  namespace JSX {
1838
1838
  interface IntrinsicElements {
1839
- 'gs-wastewater-mutations-over-time': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1839
+ 'gs-number-range-filter': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
1840
1840
  }
1841
1841
  }
1842
1842
  }
@@ -7162,7 +7162,7 @@ function getFilteredMutationOverTimeData$1({
7162
7162
  if (displayMutationsSet !== null && !displayMutationsSet.has(entry.mutation.code.toUpperCase())) {
7163
7163
  return true;
7164
7164
  }
7165
- if (applySearchFilter(entry.mutation, sequenceType, mutationFilterValue, annotationProvider)) {
7165
+ if (mutationOrAnnotationDoNotMatchFilter(entry.mutation, sequenceType, mutationFilterValue, annotationProvider)) {
7166
7166
  return true;
7167
7167
  }
7168
7168
  return displayedMutationTypes.some(
@@ -7174,7 +7174,7 @@ function getFilteredMutationOverTimeData$1({
7174
7174
  });
7175
7175
  return filteredData;
7176
7176
  }
7177
- function applySearchFilter(mutation, sequenceType, filterValue, annotationProvider) {
7177
+ function mutationOrAnnotationDoNotMatchFilter(mutation, sequenceType, filterValue, annotationProvider) {
7178
7178
  if (filterValue === "") {
7179
7179
  return false;
7180
7180
  }
@@ -9371,10 +9371,16 @@ function useDisplayedSegments(mutations) {
9371
9371
  }
9372
9372
  function getFilteredMutationOverTimeData({
9373
9373
  data,
9374
- displayedSegments
9374
+ displayedSegments,
9375
+ mutationFilterValue,
9376
+ annotationProvider,
9377
+ sequenceType
9375
9378
  }) {
9376
9379
  const filteredData = new Map2dView(data);
9377
9380
  const mutationsToFilterOut = data.getFirstAxisKeys().filter((entry) => {
9381
+ if (mutationOrAnnotationDoNotMatchFilter(entry, sequenceType, mutationFilterValue, annotationProvider)) {
9382
+ return true;
9383
+ }
9378
9384
  return displayedSegments.some((segment) => segment.segment === entry.segment && !segment.checked);
9379
9385
  });
9380
9386
  mutationsToFilterOut.forEach((entry) => {
@@ -9386,6 +9392,8 @@ const MutationsOverTimeTabs = ({
9386
9392
  mutationOverTimeDataPerLocation,
9387
9393
  originalComponentProps
9388
9394
  }) => {
9395
+ const [mutationFilterValue, setMutationFilterValue] = d("");
9396
+ const annotationProvider = useMutationAnnotationsProvider();
9389
9397
  const [colorScale, setColorScale] = d({ min: 0, max: 1, color: "indigo" });
9390
9398
  const [displayedSegments, setDisplayedSegments] = useDisplayedSegments(mutationOverTimeDataPerLocation);
9391
9399
  const tabs = T$1(
@@ -9394,14 +9402,28 @@ const MutationsOverTimeTabs = ({
9394
9402
  content: /* @__PURE__ */ u$1(
9395
9403
  MutationsOverTimeGrid,
9396
9404
  {
9397
- data: getFilteredMutationOverTimeData({ data, displayedSegments }),
9405
+ data: getFilteredMutationOverTimeData({
9406
+ data,
9407
+ displayedSegments,
9408
+ mutationFilterValue,
9409
+ annotationProvider,
9410
+ sequenceType: originalComponentProps.sequenceType
9411
+ }),
9398
9412
  colorScale,
9399
9413
  pageSizes: originalComponentProps.pageSizes,
9400
9414
  sequenceType: originalComponentProps.sequenceType
9401
9415
  }
9402
9416
  )
9403
9417
  })),
9404
- [mutationOverTimeDataPerLocation, displayedSegments, colorScale, originalComponentProps]
9418
+ [
9419
+ mutationOverTimeDataPerLocation,
9420
+ displayedSegments,
9421
+ mutationFilterValue,
9422
+ annotationProvider,
9423
+ colorScale,
9424
+ originalComponentProps.pageSizes,
9425
+ originalComponentProps.sequenceType
9426
+ ]
9405
9427
  );
9406
9428
  const toolbar = /* @__PURE__ */ u$1(
9407
9429
  Toolbar,
@@ -9411,7 +9433,9 @@ const MutationsOverTimeTabs = ({
9411
9433
  originalComponentProps,
9412
9434
  data: mutationOverTimeDataPerLocation,
9413
9435
  displayedSegments,
9414
- setDisplayedSegments
9436
+ setDisplayedSegments,
9437
+ setFilterValue: setMutationFilterValue,
9438
+ mutationFilterValue
9415
9439
  }
9416
9440
  );
9417
9441
  return /* @__PURE__ */ u$1(PageSizeContextProvider, { pageSizes: originalComponentProps.pageSizes, children: /* @__PURE__ */ u$1(Tabs, { tabs, toolbar }) });
@@ -9421,9 +9445,12 @@ const Toolbar = ({
9421
9445
  setColorScale,
9422
9446
  originalComponentProps,
9423
9447
  displayedSegments,
9424
- setDisplayedSegments
9448
+ setDisplayedSegments,
9449
+ setFilterValue,
9450
+ mutationFilterValue
9425
9451
  }) => {
9426
9452
  return /* @__PURE__ */ u$1(Fragment, { children: [
9453
+ /* @__PURE__ */ u$1(MutationsOverTimeTextFilter, { setFilterValue, value: mutationFilterValue }),
9427
9454
  /* @__PURE__ */ u$1(ColorScaleSelectorDropdown, { colorScale, setColorScale }),
9428
9455
  /* @__PURE__ */ u$1(
9429
9456
  SegmentSelector,