@genspectrum/dashboard-components 0.19.2 → 0.19.4
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.
- package/custom-elements.json +383 -10
- package/dist/{LineageFilterChangedEvent-ixHQkq8y.js → LineageFilterChangedEvent-GgkxoF3X.js} +17 -5
- package/dist/LineageFilterChangedEvent-GgkxoF3X.js.map +1 -0
- package/dist/assets/mutationOverTimeWorker-ChQTFL68.js.map +1 -1
- package/dist/components.d.ts +184 -21
- package/dist/components.js +9352 -8683
- package/dist/components.js.map +1 -1
- package/dist/util.d.ts +69 -21
- package/dist/util.js +2 -1
- package/package.json +1 -1
- package/src/componentsEntrypoint.ts +3 -1
- package/src/preact/components/error-display.stories.tsx +2 -1
- package/src/preact/components/error-display.tsx +2 -3
- package/src/preact/components/min-max-range-slider.tsx +19 -4
- package/src/preact/components/resize-container.tsx +7 -10
- package/src/preact/components/tooltip.tsx +7 -4
- package/src/preact/dateRangeFilter/date-range-filter.stories.tsx +9 -5
- package/src/preact/dateRangeFilter/date-range-filter.tsx +2 -1
- package/src/preact/dateRangeFilter/dateRangeOption.ts +2 -1
- package/src/preact/genomeViewer/CDSPlot.tsx +219 -0
- package/src/preact/genomeViewer/genome-data-viewer.stories.tsx +113 -0
- package/src/preact/genomeViewer/genome-data-viewer.tsx +69 -0
- package/src/preact/genomeViewer/loadGff3.spec.ts +61 -0
- package/src/preact/genomeViewer/loadGff3.ts +180 -0
- package/src/preact/lineageFilter/LineageFilterChangedEvent.ts +3 -1
- package/src/preact/lineageFilter/lineage-filter.stories.tsx +3 -2
- package/src/preact/locationFilter/LocationChangedEvent.ts +2 -1
- package/src/preact/locationFilter/location-filter.stories.tsx +3 -2
- package/src/preact/mutationFilter/mutation-filter.stories.tsx +3 -2
- package/src/preact/mutationFilter/mutation-filter.tsx +2 -1
- package/src/preact/numberRangeFilter/NumberRangeFilterChangedEvent.ts +31 -0
- package/src/preact/numberRangeFilter/number-range-filter.stories.tsx +383 -0
- package/src/preact/numberRangeFilter/number-range-filter.tsx +159 -0
- package/src/preact/numberRangeFilter/useSelectedRangeReducer.ts +137 -0
- package/src/preact/shared/charts/colors.ts +1 -1
- package/src/preact/textFilter/TextFilterChangedEvent.ts +3 -1
- package/src/preact/textFilter/text-filter.stories.tsx +4 -3
- package/src/utilEntrypoint.ts +2 -0
- package/src/utils/gsEventNames.ts +11 -0
- package/src/web-components/input/gs-date-range-filter.stories.ts +4 -3
- package/src/web-components/input/gs-date-range-filter.tsx +3 -2
- package/src/web-components/input/gs-lineage-filter.stories.ts +3 -2
- package/src/web-components/input/gs-lineage-filter.tsx +2 -1
- package/src/web-components/input/gs-location-filter.stories.ts +3 -2
- package/src/web-components/input/gs-location-filter.tsx +2 -1
- package/src/web-components/input/gs-mutation-filter.stories.ts +3 -2
- package/src/web-components/input/gs-mutation-filter.tsx +2 -1
- package/src/web-components/input/gs-number-range-filter.spec.ts +27 -0
- package/src/web-components/input/gs-number-range-filter.stories.ts +96 -0
- package/src/web-components/input/gs-number-range-filter.tsx +148 -0
- package/src/web-components/input/gs-text-filter.stories.ts +5 -4
- package/src/web-components/input/gs-text-filter.tsx +2 -1
- package/src/web-components/input/index.ts +1 -0
- package/src/web-components/visualization/gs-genome-data-viewer.spec-d.ts +18 -0
- package/src/web-components/visualization/gs-genome-data-viewer.stories.ts +108 -0
- package/src/web-components/visualization/gs-genome-data-viewer.tsx +59 -0
- package/src/web-components/visualization/index.ts +1 -0
- package/standalone-bundle/assets/mutationOverTimeWorker-jChgWnwp.js.map +1 -1
- package/standalone-bundle/dashboard-components.js +9613 -9059
- package/standalone-bundle/dashboard-components.js.map +1 -1
- package/dist/LineageFilterChangedEvent-ixHQkq8y.js.map +0 -1
package/dist/components.d.ts
CHANGED
|
@@ -233,6 +233,36 @@ declare class ErrorEvent_2 extends Event {
|
|
|
233
233
|
}
|
|
234
234
|
export { ErrorEvent_2 as ErrorEvent }
|
|
235
235
|
|
|
236
|
+
/**
|
|
237
|
+
* ## Context
|
|
238
|
+
*
|
|
239
|
+
* This component shows the Coding Sequence (CDS) of a genome using a gff3 file as input.
|
|
240
|
+
* The CDS shows which parts of the genome are translated into proteins.
|
|
241
|
+
*
|
|
242
|
+
*/
|
|
243
|
+
export declare class GenomeDataViewerComponent extends PreactLitAdapter {
|
|
244
|
+
/**
|
|
245
|
+
* Required
|
|
246
|
+
*
|
|
247
|
+
* The source of the gff3 file. Any spec-compliant gff3 should be accepted, however we use the same format as Nextclade.
|
|
248
|
+
* See https://docs.nextstrain.org/projects/nextclade/en/stable/user/input-files/03-genome-annotation.html for more information.
|
|
249
|
+
* We only use the CDS and gene features from the gff3 file, if you have other features in the gff3 file they will be ignored.
|
|
250
|
+
* Also note that if a CDS has a gene feature as a parent, the gene feature will be ignored.
|
|
251
|
+
*/
|
|
252
|
+
gff3Source: string;
|
|
253
|
+
/**
|
|
254
|
+
* The length of the genome, if this is not given it will be computed from the `sequence-region` line of the start of the gff3 file.
|
|
255
|
+
*/
|
|
256
|
+
genomeLength: number | undefined;
|
|
257
|
+
/**
|
|
258
|
+
* The width of the component.
|
|
259
|
+
*
|
|
260
|
+
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/concepts-size-of-components--docs for more information.
|
|
261
|
+
*/
|
|
262
|
+
width: string;
|
|
263
|
+
render(): JSX_2.Element;
|
|
264
|
+
}
|
|
265
|
+
|
|
236
266
|
/**
|
|
237
267
|
*
|
|
238
268
|
* ## Context
|
|
@@ -722,6 +752,103 @@ export declare class MutationsOverTimeComponent extends PreactLitAdapterWithGrid
|
|
|
722
752
|
render(): JSX_2.Element;
|
|
723
753
|
}
|
|
724
754
|
|
|
755
|
+
/**
|
|
756
|
+
*
|
|
757
|
+
* ## Context
|
|
758
|
+
*
|
|
759
|
+
* This component lets the user specify filters for a `float` or `int` field in LAPIS.
|
|
760
|
+
* It consists of two text input fields and a slider.
|
|
761
|
+
*
|
|
762
|
+
* The slider must be restricted to a certain range.
|
|
763
|
+
* Users can however still enter values outside of this range in the text input fields.
|
|
764
|
+
*
|
|
765
|
+
* @fires {CustomEvent<Record<string, string | undefined>>} gs-number-range-filter-changed
|
|
766
|
+
* Fired when the slider is released,
|
|
767
|
+
* `onBlur` on the input fields after the user has typed a valid range in the input fields,
|
|
768
|
+
* or when one of the input fields is cleared.
|
|
769
|
+
* The `details` of this event contain an object with `${lapisField}From` and `${lapisField}To` as keys.
|
|
770
|
+
* The values are the numbers from the input fields or `undefined` if the input field is empty:
|
|
771
|
+
* ```
|
|
772
|
+
* {
|
|
773
|
+
* [`${lapisField}From`]: number | undefined
|
|
774
|
+
* [`${lapisField}To`]: number | undefined
|
|
775
|
+
* }
|
|
776
|
+
* ```
|
|
777
|
+
* Example:
|
|
778
|
+
* ```
|
|
779
|
+
* {
|
|
780
|
+
* ageFrom: 18,
|
|
781
|
+
* ageTo: undefined
|
|
782
|
+
* }
|
|
783
|
+
* ```
|
|
784
|
+
*
|
|
785
|
+
* @fires {CustomEvent<Record<string, string | undefined>>} gs-number-range-value-changed
|
|
786
|
+
* Similar to the `gs-number-range-filter-changed` event,
|
|
787
|
+
* but contains an `event.detail` that has a fixed format:
|
|
788
|
+
* ```
|
|
789
|
+
* {
|
|
790
|
+
* min: number | undefined
|
|
791
|
+
* max: number | undefined
|
|
792
|
+
* }
|
|
793
|
+
* ```
|
|
794
|
+
* This event should be used when you want to control this component externally.
|
|
795
|
+
* The `event.detail` can be used as the value of the component.
|
|
796
|
+
* Example:
|
|
797
|
+
* ```
|
|
798
|
+
* {
|
|
799
|
+
* min: 18,
|
|
800
|
+
* max: undefined
|
|
801
|
+
* }
|
|
802
|
+
* ```
|
|
803
|
+
*/
|
|
804
|
+
export declare class NumberRangeFilterComponent extends PreactLitAdapter {
|
|
805
|
+
/**
|
|
806
|
+
* The value to use for this number filter.
|
|
807
|
+
*
|
|
808
|
+
* Must be of the form:
|
|
809
|
+
* ```
|
|
810
|
+
* {
|
|
811
|
+
* [`${lapisField}From`]: number | undefined
|
|
812
|
+
* [`${lapisField}To`]: number | undefined
|
|
813
|
+
* }
|
|
814
|
+
* ```
|
|
815
|
+
*
|
|
816
|
+
* This is the same format that the `gs-number-value-changed` event will emit.
|
|
817
|
+
*/
|
|
818
|
+
value: {
|
|
819
|
+
min?: number;
|
|
820
|
+
max?: number;
|
|
821
|
+
};
|
|
822
|
+
/**
|
|
823
|
+
* Required.
|
|
824
|
+
*
|
|
825
|
+
* The LAPIS field name to use for this text filter.
|
|
826
|
+
* The field must exist on this LAPIS instance.
|
|
827
|
+
*/
|
|
828
|
+
lapisField: string;
|
|
829
|
+
/**
|
|
830
|
+
* The `min` value to use for the slider.
|
|
831
|
+
*/
|
|
832
|
+
sliderMin: number;
|
|
833
|
+
/**
|
|
834
|
+
* The `max` value to use for the slider.
|
|
835
|
+
*/
|
|
836
|
+
sliderMax: number;
|
|
837
|
+
/**
|
|
838
|
+
* The `step` value to use for the slider.
|
|
839
|
+
*
|
|
840
|
+
* This attribute has no effect on the text input.
|
|
841
|
+
*/
|
|
842
|
+
sliderStep: number;
|
|
843
|
+
/**
|
|
844
|
+
* The width of the component.
|
|
845
|
+
*
|
|
846
|
+
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/concepts-size-of-components--docs for more information.
|
|
847
|
+
*/
|
|
848
|
+
width: string;
|
|
849
|
+
render(): JSX_2.Element;
|
|
850
|
+
}
|
|
851
|
+
|
|
725
852
|
/**
|
|
726
853
|
* ## Context
|
|
727
854
|
*
|
|
@@ -1402,7 +1529,7 @@ export { }
|
|
|
1402
1529
|
|
|
1403
1530
|
declare global {
|
|
1404
1531
|
interface HTMLElementEventMap {
|
|
1405
|
-
|
|
1532
|
+
[gsEventNames.error]: ErrorEvent;
|
|
1406
1533
|
}
|
|
1407
1534
|
}
|
|
1408
1535
|
|
|
@@ -1423,6 +1550,22 @@ declare global {
|
|
|
1423
1550
|
}
|
|
1424
1551
|
|
|
1425
1552
|
|
|
1553
|
+
declare global {
|
|
1554
|
+
interface HTMLElementTagNameMap {
|
|
1555
|
+
'gs-genome-data-viewer': GenomeDataViewerComponent;
|
|
1556
|
+
}
|
|
1557
|
+
}
|
|
1558
|
+
|
|
1559
|
+
|
|
1560
|
+
declare global {
|
|
1561
|
+
namespace JSX {
|
|
1562
|
+
interface IntrinsicElements {
|
|
1563
|
+
'gs-genome-data-viewer': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
|
|
1564
|
+
}
|
|
1565
|
+
}
|
|
1566
|
+
}
|
|
1567
|
+
|
|
1568
|
+
|
|
1426
1569
|
declare global {
|
|
1427
1570
|
interface HTMLElementTagNameMap {
|
|
1428
1571
|
'gs-mutation-comparison-component': MutationComparisonComponent;
|
|
@@ -1553,7 +1696,11 @@ declare global {
|
|
|
1553
1696
|
|
|
1554
1697
|
declare global {
|
|
1555
1698
|
interface HTMLElementTagNameMap {
|
|
1556
|
-
'gs-
|
|
1699
|
+
'gs-date-range-filter': DateRangeFilterComponent;
|
|
1700
|
+
}
|
|
1701
|
+
interface HTMLElementEventMap {
|
|
1702
|
+
[gsEventNames.dateRangeFilterChanged]: CustomEvent<Record<string, string>>;
|
|
1703
|
+
[gsEventNames.dateRangeOptionChanged]: DateRangeOptionChangedEvent;
|
|
1557
1704
|
}
|
|
1558
1705
|
}
|
|
1559
1706
|
|
|
@@ -1561,7 +1708,7 @@ declare global {
|
|
|
1561
1708
|
declare global {
|
|
1562
1709
|
namespace JSX {
|
|
1563
1710
|
interface IntrinsicElements {
|
|
1564
|
-
'gs-
|
|
1711
|
+
'gs-date-range-filter': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
|
|
1565
1712
|
}
|
|
1566
1713
|
}
|
|
1567
1714
|
}
|
|
@@ -1569,7 +1716,10 @@ declare global {
|
|
|
1569
1716
|
|
|
1570
1717
|
declare global {
|
|
1571
1718
|
interface HTMLElementTagNameMap {
|
|
1572
|
-
'gs-
|
|
1719
|
+
'gs-location-filter': LocationFilterComponent;
|
|
1720
|
+
}
|
|
1721
|
+
interface HTMLElementEventMap {
|
|
1722
|
+
[gsEventNames.locationChanged]: LocationChangedEvent;
|
|
1573
1723
|
}
|
|
1574
1724
|
}
|
|
1575
1725
|
|
|
@@ -1577,7 +1727,7 @@ declare global {
|
|
|
1577
1727
|
declare global {
|
|
1578
1728
|
namespace JSX {
|
|
1579
1729
|
interface IntrinsicElements {
|
|
1580
|
-
'gs-
|
|
1730
|
+
'gs-location-filter': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
|
|
1581
1731
|
}
|
|
1582
1732
|
}
|
|
1583
1733
|
}
|
|
@@ -1585,10 +1735,7 @@ declare global {
|
|
|
1585
1735
|
|
|
1586
1736
|
declare global {
|
|
1587
1737
|
interface HTMLElementTagNameMap {
|
|
1588
|
-
'gs-
|
|
1589
|
-
}
|
|
1590
|
-
interface HTMLElementEventMap {
|
|
1591
|
-
'gs-location-changed': LocationChangedEvent;
|
|
1738
|
+
'gs-statistics': StatisticsComponent;
|
|
1592
1739
|
}
|
|
1593
1740
|
}
|
|
1594
1741
|
|
|
@@ -1596,7 +1743,7 @@ declare global {
|
|
|
1596
1743
|
declare global {
|
|
1597
1744
|
namespace JSX {
|
|
1598
1745
|
interface IntrinsicElements {
|
|
1599
|
-
'gs-
|
|
1746
|
+
'gs-statistics': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
|
|
1600
1747
|
}
|
|
1601
1748
|
}
|
|
1602
1749
|
}
|
|
@@ -1604,11 +1751,10 @@ declare global {
|
|
|
1604
1751
|
|
|
1605
1752
|
declare global {
|
|
1606
1753
|
interface HTMLElementTagNameMap {
|
|
1607
|
-
'gs-
|
|
1754
|
+
'gs-text-filter': TextFilterComponent;
|
|
1608
1755
|
}
|
|
1609
1756
|
interface HTMLElementEventMap {
|
|
1610
|
-
|
|
1611
|
-
'gs-date-range-option-changed': DateRangeOptionChangedEvent;
|
|
1757
|
+
[gsEventNames.textFilterChanged]: TextFilterChangedEvent;
|
|
1612
1758
|
}
|
|
1613
1759
|
}
|
|
1614
1760
|
|
|
@@ -1616,7 +1762,7 @@ declare global {
|
|
|
1616
1762
|
declare global {
|
|
1617
1763
|
namespace JSX {
|
|
1618
1764
|
interface IntrinsicElements {
|
|
1619
|
-
'gs-
|
|
1765
|
+
'gs-text-filter': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
|
|
1620
1766
|
}
|
|
1621
1767
|
}
|
|
1622
1768
|
}
|
|
@@ -1624,10 +1770,10 @@ declare global {
|
|
|
1624
1770
|
|
|
1625
1771
|
declare global {
|
|
1626
1772
|
interface HTMLElementTagNameMap {
|
|
1627
|
-
'gs-
|
|
1773
|
+
'gs-lineage-filter': LineageFilterComponent;
|
|
1628
1774
|
}
|
|
1629
1775
|
interface HTMLElementEventMap {
|
|
1630
|
-
|
|
1776
|
+
[gsEventNames.lineageFilterChanged]: LineageFilterChangedEvent;
|
|
1631
1777
|
}
|
|
1632
1778
|
}
|
|
1633
1779
|
|
|
@@ -1635,7 +1781,7 @@ declare global {
|
|
|
1635
1781
|
declare global {
|
|
1636
1782
|
namespace JSX {
|
|
1637
1783
|
interface IntrinsicElements {
|
|
1638
|
-
'gs-
|
|
1784
|
+
'gs-lineage-filter': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
|
|
1639
1785
|
}
|
|
1640
1786
|
}
|
|
1641
1787
|
}
|
|
@@ -1646,7 +1792,7 @@ declare global {
|
|
|
1646
1792
|
'gs-mutation-filter': MutationFilterComponent;
|
|
1647
1793
|
}
|
|
1648
1794
|
interface HTMLElementEventMap {
|
|
1649
|
-
|
|
1795
|
+
[gsEventNames.mutationFilterChanged]: CustomEvent<MutationsFilter>;
|
|
1650
1796
|
}
|
|
1651
1797
|
}
|
|
1652
1798
|
|
|
@@ -1662,10 +1808,11 @@ declare global {
|
|
|
1662
1808
|
|
|
1663
1809
|
declare global {
|
|
1664
1810
|
interface HTMLElementTagNameMap {
|
|
1665
|
-
'gs-
|
|
1811
|
+
'gs-number-range-filter': NumberRangeFilterComponent;
|
|
1666
1812
|
}
|
|
1667
1813
|
interface HTMLElementEventMap {
|
|
1668
|
-
|
|
1814
|
+
[gsEventNames.numberRangeFilterChanged]: NumberRangeFilterChangedEvent;
|
|
1815
|
+
[gsEventNames.numberRangeValueChanged]: NumberRangeValueChangedEvent;
|
|
1669
1816
|
}
|
|
1670
1817
|
}
|
|
1671
1818
|
|
|
@@ -1673,7 +1820,23 @@ declare global {
|
|
|
1673
1820
|
declare global {
|
|
1674
1821
|
namespace JSX {
|
|
1675
1822
|
interface IntrinsicElements {
|
|
1676
|
-
'gs-
|
|
1823
|
+
'gs-number-range-filter': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
|
|
1824
|
+
}
|
|
1825
|
+
}
|
|
1826
|
+
}
|
|
1827
|
+
|
|
1828
|
+
|
|
1829
|
+
declare global {
|
|
1830
|
+
interface HTMLElementTagNameMap {
|
|
1831
|
+
'gs-wastewater-mutations-over-time': WastewaterMutationsOverTimeComponent;
|
|
1832
|
+
}
|
|
1833
|
+
}
|
|
1834
|
+
|
|
1835
|
+
|
|
1836
|
+
declare global {
|
|
1837
|
+
namespace JSX {
|
|
1838
|
+
interface IntrinsicElements {
|
|
1839
|
+
'gs-wastewater-mutations-over-time': DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>;
|
|
1677
1840
|
}
|
|
1678
1841
|
}
|
|
1679
1842
|
}
|