@genspectrum/dashboard-components 0.16.3 → 0.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.
- package/custom-elements.json +86 -61
- package/dist/{LineageFilterChangedEvent-COWV-Y0k.js → LineageFilterChangedEvent-DkvWdq_G.js} +2 -2
- package/dist/LineageFilterChangedEvent-DkvWdq_G.js.map +1 -0
- package/dist/assets/{mutationOverTimeWorker-DJcZmEH9.js.map → mutationOverTimeWorker-CPfQDLe6.js.map} +1 -1
- package/dist/components.d.ts +64 -51
- package/dist/components.js +1134 -937
- package/dist/components.js.map +1 -1
- package/dist/style.css +81 -9
- package/dist/util.d.ts +76 -34
- package/dist/util.js +1 -1
- package/package.json +2 -1
- package/src/preact/components/annotated-mutation.stories.tsx +2 -1
- package/src/preact/components/annotated-mutation.tsx +6 -2
- package/src/preact/components/clearable-select.stories.tsx +75 -0
- package/src/preact/components/clearable-select.tsx +76 -0
- package/src/preact/components/downshift-combobox.tsx +9 -7
- package/src/preact/dateRangeFilter/computeInitialValues.spec.ts +31 -33
- package/src/preact/dateRangeFilter/computeInitialValues.ts +2 -15
- package/src/preact/dateRangeFilter/date-picker.tsx +66 -0
- package/src/preact/dateRangeFilter/date-range-filter.stories.tsx +69 -31
- package/src/preact/dateRangeFilter/date-range-filter.tsx +136 -139
- package/src/preact/dateRangeFilter/dateRangeOption.ts +11 -11
- package/src/preact/mutationComparison/mutation-comparison-table.tsx +14 -1
- package/src/preact/mutationComparison/mutation-comparison-venn.tsx +39 -8
- package/src/preact/mutationComparison/mutation-comparison.stories.tsx +36 -12
- package/src/preact/mutationComparison/mutation-comparison.tsx +2 -0
- package/src/preact/mutations/mutations.stories.tsx +3 -9
- package/src/preact/mutationsOverTime/mutations-over-time.stories.tsx +3 -8
- package/src/preact/shared/WithClassName/WithClassName.ts +1 -0
- package/src/preact/shared/icons/DeleteIcon.tsx +3 -0
- package/src/preact/shared/stories/expectMutationAnnotation.ts +13 -0
- package/src/preact/shared/stories/expectOptionSelected.tsx +7 -0
- package/src/utilEntrypoint.ts +3 -1
- package/src/web-components/MutationAnnotations.mdx +33 -0
- package/src/web-components/ResizeContainer.mdx +1 -1
- package/src/web-components/errorHandling.mdx +1 -1
- package/src/web-components/gs-app.ts +2 -2
- package/src/web-components/input/gs-date-range-filter.stories.ts +38 -32
- package/src/web-components/input/gs-date-range-filter.tsx +8 -2
- package/src/web-components/input/gs-lineage-filter.tsx +1 -1
- package/src/web-components/input/gs-location-filter.tsx +1 -1
- package/src/web-components/input/gs-mutation-filter.tsx +1 -1
- package/src/web-components/input/gs-text-filter.tsx +1 -1
- package/src/web-components/visualization/gs-aggregate.tsx +2 -2
- package/src/web-components/visualization/gs-mutation-comparison.stories.ts +18 -1
- package/src/web-components/visualization/gs-mutation-comparison.tsx +24 -10
- package/src/web-components/visualization/gs-mutations-over-time.stories.ts +2 -1
- package/src/web-components/visualization/gs-mutations-over-time.tsx +5 -2
- package/src/web-components/visualization/gs-mutations.stories.ts +2 -1
- package/src/web-components/visualization/gs-mutations.tsx +5 -2
- package/src/web-components/visualization/gs-number-sequences-over-time.tsx +2 -2
- package/src/web-components/visualization/gs-prevalence-over-time.tsx +2 -2
- package/src/web-components/visualization/gs-relative-growth-advantage.tsx +2 -2
- package/src/web-components/visualization/gs-sequences-by-location.tsx +2 -2
- package/src/web-components/visualization/gs-statistics.tsx +2 -2
- package/src/web-components/wastewaterVisualization/gs-wastewater-mutations-over-time.tsx +2 -2
- package/standalone-bundle/assets/mutationOverTimeWorker-CERZSdcA.js.map +1 -1
- package/standalone-bundle/dashboard-components.js +13293 -12635
- package/standalone-bundle/dashboard-components.js.map +1 -1
- package/standalone-bundle/style.css +1 -1
- package/dist/LineageFilterChangedEvent-COWV-Y0k.js.map +0 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { expect, userEvent, waitFor, within } from '@storybook/test';
|
|
2
|
+
|
|
3
|
+
export async function expectMutationAnnotation(canvasElement: HTMLElement, mutation: string) {
|
|
4
|
+
const canvas = within(canvasElement);
|
|
5
|
+
|
|
6
|
+
await waitFor(async () => {
|
|
7
|
+
const annotatedMutation = canvas.getAllByText(mutation)[0];
|
|
8
|
+
await expect(annotatedMutation).toBeVisible();
|
|
9
|
+
await userEvent.click(annotatedMutation);
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
await waitFor(() => expect(canvas.getByText(`Annotations for ${mutation}`)).toBeVisible());
|
|
13
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { expect, within } from '@storybook/test';
|
|
2
|
+
|
|
3
|
+
export const expectOptionSelected = async (canvasElement: HTMLElement, option: string) => {
|
|
4
|
+
const canvas = within(canvasElement);
|
|
5
|
+
const placeholderOption = canvas.getByRole('combobox').querySelector('option:checked');
|
|
6
|
+
await expect(placeholderOption).toHaveTextContent(option);
|
|
7
|
+
};
|
package/src/utilEntrypoint.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export {
|
|
2
2
|
type DateRangeOption,
|
|
3
|
-
type
|
|
3
|
+
type DateRangeValue,
|
|
4
4
|
dateRangeOptionPresets,
|
|
5
5
|
DateRangeOptionChangedEvent,
|
|
6
6
|
} from './preact/dateRangeFilter/dateRangeOption';
|
|
@@ -36,3 +36,5 @@ export type { AxisMax, YAxisMaxConfig } from './preact/shared/charts/getYAxisMax
|
|
|
36
36
|
export { LocationChangedEvent } from './preact/locationFilter/LocationChangedEvent';
|
|
37
37
|
export { LineageFilterChangedEvent } from './preact/lineageFilter/LineageFilterChangedEvent';
|
|
38
38
|
export { TextFilterChangedEvent } from './preact/textFilter/TextFilterChangedEvent';
|
|
39
|
+
|
|
40
|
+
export type { MutationAnnotations, MutationAnnotation } from './web-components/mutation-annotations-context';
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Meta } from '@storybook/blocks';
|
|
2
|
+
|
|
3
|
+
<Meta title='Concepts/Mutation Annotations' />
|
|
4
|
+
|
|
5
|
+
# Mutation Annotations
|
|
6
|
+
|
|
7
|
+
Organism data usually has a lot of mutations.
|
|
8
|
+
It can be challenging for users to find out which mutations are relevant to investigate.
|
|
9
|
+
To guide the user to the most interesting mutations, we provide a mutation annotation feature.
|
|
10
|
+
|
|
11
|
+
The mutation annotations can be (optionally) supplied to `gs-app` as a JSON object:
|
|
12
|
+
|
|
13
|
+
```html
|
|
14
|
+
<gs-app
|
|
15
|
+
lapis="https://your.lapis.url"
|
|
16
|
+
mutationAnnotations="[
|
|
17
|
+
{
|
|
18
|
+
name: 'I am an annotation!',
|
|
19
|
+
description: 'This describes what is special about these mutations.',
|
|
20
|
+
symbol: '+',
|
|
21
|
+
nucleotideMutations: ['C44T', 'C774T', 'G24872T', 'T23011-'],
|
|
22
|
+
aminoAcidMutations: ['S:501Y', 'S:S31-', 'ORF1a:S4286C'],
|
|
23
|
+
},
|
|
24
|
+
]"
|
|
25
|
+
>
|
|
26
|
+
{/* children... */}
|
|
27
|
+
</gs-app>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
The mutation annotations are then distributed to child components.
|
|
31
|
+
Whenever we display a mutation (e.g. in the `gs-mutations` table view)
|
|
32
|
+
we will append the `symbol` of all matching annotations: <span>C44T<sup class='text-red-600'>+</sup></span>.
|
|
33
|
+
Users can click on the mutation to open a modal that shows the `name` and `description` of the annotation.
|
|
@@ -44,8 +44,8 @@ export class AppComponent extends LitElement {
|
|
|
44
44
|
|
|
45
45
|
/**
|
|
46
46
|
* Supply lists of mutations that are especially relevant for the current organism.
|
|
47
|
-
*
|
|
48
|
-
*
|
|
47
|
+
*
|
|
48
|
+
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/concepts-mutation-annotations--docs for more information.
|
|
49
49
|
*/
|
|
50
50
|
@provide({ context: mutationAnnotationsContext })
|
|
51
51
|
@property({ type: Array })
|
|
@@ -19,6 +19,7 @@ const codeExample = String.raw`
|
|
|
19
19
|
value="Year 2021"
|
|
20
20
|
width="100%"
|
|
21
21
|
lapisDateField="myDateColumn"
|
|
22
|
+
placeholder="My date column"
|
|
22
23
|
></gs-date-range-filter>`;
|
|
23
24
|
|
|
24
25
|
const customDateRange = { label: 'CustomDateRange', dateFrom: '2021-01-01', dateTo: '2021-12-31' };
|
|
@@ -39,25 +40,20 @@ const meta: Meta<Required<DateRangeFilterProps>> = {
|
|
|
39
40
|
}),
|
|
40
41
|
argTypes: {
|
|
41
42
|
value: {
|
|
42
|
-
control: {
|
|
43
|
-
type: 'object',
|
|
44
|
-
},
|
|
43
|
+
control: { type: 'object' },
|
|
45
44
|
},
|
|
46
45
|
lapisDateField: { control: { type: 'text' } },
|
|
47
46
|
dateRangeOptions: {
|
|
48
|
-
control: {
|
|
49
|
-
type: 'object',
|
|
50
|
-
},
|
|
47
|
+
control: { type: 'object' },
|
|
51
48
|
},
|
|
52
49
|
earliestDate: {
|
|
53
|
-
control: {
|
|
54
|
-
type: 'text',
|
|
55
|
-
},
|
|
50
|
+
control: { type: 'text' },
|
|
56
51
|
},
|
|
57
52
|
width: {
|
|
58
|
-
control: {
|
|
59
|
-
|
|
60
|
-
|
|
53
|
+
control: { type: 'text' },
|
|
54
|
+
},
|
|
55
|
+
placeholder: {
|
|
56
|
+
control: { type: 'text' },
|
|
61
57
|
},
|
|
62
58
|
},
|
|
63
59
|
args: {
|
|
@@ -72,6 +68,7 @@ const meta: Meta<Required<DateRangeFilterProps>> = {
|
|
|
72
68
|
value: dateRangeOptionPresets.lastMonth.label,
|
|
73
69
|
lapisDateField: 'aDateColumn',
|
|
74
70
|
width: '100%',
|
|
71
|
+
placeholder: 'Date range',
|
|
75
72
|
},
|
|
76
73
|
tags: ['autodocs'],
|
|
77
74
|
};
|
|
@@ -88,6 +85,7 @@ export const Default: StoryObj<Required<DateRangeFilterProps>> = {
|
|
|
88
85
|
.value=${args.value}
|
|
89
86
|
.width=${args.width}
|
|
90
87
|
.lapisDateField=${args.lapisDateField}
|
|
88
|
+
.placeholder=${args.placeholder}
|
|
91
89
|
></gs-date-range-filter>
|
|
92
90
|
</div>
|
|
93
91
|
</gs-app>`,
|
|
@@ -103,14 +101,15 @@ export const TestRenderAttributesInHtmlInsteadOfUsingPropertyExpression: StoryOb
|
|
|
103
101
|
value="${args.value}"
|
|
104
102
|
width="${args.width}"
|
|
105
103
|
lapisDateField="${args.lapisDateField}"
|
|
104
|
+
placeholder="${args.placeholder}"
|
|
106
105
|
></gs-date-range-filter>
|
|
107
106
|
</div>
|
|
108
107
|
</gs-app>`,
|
|
109
108
|
play: async ({ canvasElement }) => {
|
|
110
|
-
const canvas = await withinShadowRoot(canvasElement, 'gs-date-range-filter');
|
|
111
|
-
|
|
112
109
|
await waitFor(async () => {
|
|
113
|
-
await
|
|
110
|
+
const canvas = await withinShadowRoot(canvasElement, 'gs-date-range-filter');
|
|
111
|
+
const placeholderOption = canvas.getByRole('combobox').querySelector('option:checked');
|
|
112
|
+
await expect(placeholderOption).toHaveTextContent('Last month');
|
|
114
113
|
});
|
|
115
114
|
},
|
|
116
115
|
argTypes: {
|
|
@@ -150,7 +149,10 @@ export const FiresEvents: StoryObj<Required<DateRangeFilterProps>> = {
|
|
|
150
149
|
});
|
|
151
150
|
|
|
152
151
|
await step('Expect last 6 months to be selected', async () => {
|
|
153
|
-
await
|
|
152
|
+
await waitFor(async () => {
|
|
153
|
+
const placeholderOption = canvas.getByRole('combobox').querySelector('option:checked');
|
|
154
|
+
await expect(placeholderOption).toHaveTextContent('Last month');
|
|
155
|
+
});
|
|
154
156
|
await waitFor(async () => {
|
|
155
157
|
await expect(dateToPicker(canvas)).toHaveValue(toYYYYMMDD(new Date()));
|
|
156
158
|
});
|
|
@@ -158,22 +160,26 @@ export const FiresEvents: StoryObj<Required<DateRangeFilterProps>> = {
|
|
|
158
160
|
|
|
159
161
|
await step('Expect event to be fired when selecting a different value', async () => {
|
|
160
162
|
await userEvent.selectOptions(selectField(canvas), 'CustomDateRange');
|
|
161
|
-
await
|
|
162
|
-
|
|
163
|
-
await
|
|
164
|
-
expect.
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
163
|
+
await userEvent.click(canvas.getByText('CustomDateRange'));
|
|
164
|
+
|
|
165
|
+
await waitFor(async () => {
|
|
166
|
+
await expect(dateToPicker(canvas)).toHaveValue(customDateRange.dateTo);
|
|
167
|
+
|
|
168
|
+
await expect(filterChangedListenerMock).toHaveBeenCalledWith(
|
|
169
|
+
expect.objectContaining({
|
|
170
|
+
detail: {
|
|
171
|
+
aDateColumnFrom: customDateRange.dateFrom,
|
|
172
|
+
aDateColumnTo: customDateRange.dateTo,
|
|
173
|
+
},
|
|
174
|
+
}),
|
|
175
|
+
);
|
|
176
|
+
|
|
177
|
+
await expect(optionChangedListenerMock).toHaveBeenCalledWith(
|
|
178
|
+
expect.objectContaining({
|
|
179
|
+
detail: customDateRange.label,
|
|
180
|
+
}),
|
|
181
|
+
);
|
|
182
|
+
});
|
|
177
183
|
});
|
|
178
184
|
},
|
|
179
185
|
};
|
|
@@ -73,7 +73,6 @@ export class DateRangeFilterComponent extends PreactLitAdapter {
|
|
|
73
73
|
* - If it is a string, then it must be a valid label from the `dateRangeOptions`.
|
|
74
74
|
* - If it is an object, then it accepts dates in the format `YYYY-MM-DD` for the keys `dateFrom` and `dateTo`.
|
|
75
75
|
* Keys that are not set will default to the `earliestDate` or the current date respectively.
|
|
76
|
-
* - If the attribute is not set, the component will default to the range `earliestDate` until today.
|
|
77
76
|
*
|
|
78
77
|
* The `detail` of the `gs-date-range-option-changed` event can be used for this attribute,
|
|
79
78
|
* if you want to control this component in your JS application.
|
|
@@ -99,11 +98,17 @@ export class DateRangeFilterComponent extends PreactLitAdapter {
|
|
|
99
98
|
/**
|
|
100
99
|
* The width of the component.
|
|
101
100
|
*
|
|
102
|
-
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/
|
|
101
|
+
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/concepts-size-of-components--docs for more information.
|
|
103
102
|
*/
|
|
104
103
|
@property({ type: String })
|
|
105
104
|
width: string = '100%';
|
|
106
105
|
|
|
106
|
+
/**
|
|
107
|
+
* The placeholder to display on the select dropdown.
|
|
108
|
+
*/
|
|
109
|
+
@property({ type: String })
|
|
110
|
+
placeholder: string | undefined = undefined;
|
|
111
|
+
|
|
107
112
|
/**
|
|
108
113
|
* The name of the metadata field in LAPIS that contains the date information.
|
|
109
114
|
*/
|
|
@@ -118,6 +123,7 @@ export class DateRangeFilterComponent extends PreactLitAdapter {
|
|
|
118
123
|
value={this.value}
|
|
119
124
|
lapisDateField={this.lapisDateField}
|
|
120
125
|
width={this.width}
|
|
126
|
+
placeholder={this.placeholder}
|
|
121
127
|
/>
|
|
122
128
|
);
|
|
123
129
|
}
|
|
@@ -67,7 +67,7 @@ export class LineageFilterComponent extends PreactLitAdapter {
|
|
|
67
67
|
/**
|
|
68
68
|
* The width of the component.
|
|
69
69
|
*
|
|
70
|
-
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/
|
|
70
|
+
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/concepts-size-of-components--docs for more information.
|
|
71
71
|
*/
|
|
72
72
|
@property({ type: String })
|
|
73
73
|
width: string = '100%';
|
|
@@ -65,7 +65,7 @@ export class LocationFilterComponent extends PreactLitAdapter {
|
|
|
65
65
|
/**
|
|
66
66
|
* The width of the component.
|
|
67
67
|
*
|
|
68
|
-
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/
|
|
68
|
+
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/concepts-size-of-components--docs for more information.
|
|
69
69
|
*/
|
|
70
70
|
@property({ type: String })
|
|
71
71
|
width: string = '100%';
|
|
@@ -75,7 +75,7 @@ export class MutationFilterComponent extends PreactLitAdapter {
|
|
|
75
75
|
/**
|
|
76
76
|
* The width of the component.
|
|
77
77
|
*
|
|
78
|
-
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/
|
|
78
|
+
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/concepts-size-of-components--docs for more information.
|
|
79
79
|
*/
|
|
80
80
|
@property({ type: String })
|
|
81
81
|
width: string = '100%';
|
|
@@ -61,7 +61,7 @@ export class TextFilterComponent extends PreactLitAdapter {
|
|
|
61
61
|
/**
|
|
62
62
|
* The width of the component.
|
|
63
63
|
*
|
|
64
|
-
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/
|
|
64
|
+
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/concepts-size-of-components--docs for more information.
|
|
65
65
|
*/
|
|
66
66
|
@property({ type: String })
|
|
67
67
|
width: string = '100%';
|
|
@@ -64,7 +64,7 @@ export class AggregateComponent extends PreactLitAdapterWithGridJsStyles {
|
|
|
64
64
|
/**
|
|
65
65
|
* The width of the component.
|
|
66
66
|
*
|
|
67
|
-
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/
|
|
67
|
+
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/concepts-size-of-components--docs for more information.
|
|
68
68
|
*/
|
|
69
69
|
@property({ type: String })
|
|
70
70
|
width: string = '100%';
|
|
@@ -72,7 +72,7 @@ export class AggregateComponent extends PreactLitAdapterWithGridJsStyles {
|
|
|
72
72
|
/**
|
|
73
73
|
* The height of the component.
|
|
74
74
|
*
|
|
75
|
-
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/
|
|
75
|
+
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/concepts-size-of-components--docs for more information.
|
|
76
76
|
*/
|
|
77
77
|
@property({ type: String })
|
|
78
78
|
height: string | undefined = undefined;
|
|
@@ -50,9 +50,26 @@ const meta: Meta<Required<MutationComparisonProps>> = {
|
|
|
50
50
|
|
|
51
51
|
export default meta;
|
|
52
52
|
|
|
53
|
+
const mutationAnnotations = [
|
|
54
|
+
{
|
|
55
|
+
name: 'I am a mutation annotation!',
|
|
56
|
+
description: 'This describes what is special about these mutations.',
|
|
57
|
+
symbol: '#',
|
|
58
|
+
nucleotideMutations: ['G199-', 'C3037T'],
|
|
59
|
+
aminoAcidMutations: ['N:G204R'],
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: 'I am another mutation annotation!',
|
|
63
|
+
description: 'This describes what is special about these other mutations.',
|
|
64
|
+
symbol: '+',
|
|
65
|
+
nucleotideMutations: ['C3037T', 'A23403G'],
|
|
66
|
+
aminoAcidMutations: ['ORF1a:I2230T'],
|
|
67
|
+
},
|
|
68
|
+
];
|
|
69
|
+
|
|
53
70
|
const Template: StoryObj<Required<MutationComparisonProps>> = {
|
|
54
71
|
render: (args) => html`
|
|
55
|
-
<gs-app lapis="${LAPIS_URL}">
|
|
72
|
+
<gs-app lapis="${LAPIS_URL}" .mutationAnnotations=${mutationAnnotations}>
|
|
56
73
|
<gs-mutation-comparison
|
|
57
74
|
.lapisFilters=${args.lapisFilters}
|
|
58
75
|
.sequenceType=${args.sequenceType}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
import { consume } from '@lit/context';
|
|
1
2
|
import { customElement, property } from 'lit/decorators.js';
|
|
2
3
|
import type { DetailedHTMLProps, HTMLAttributes } from 'react';
|
|
3
4
|
|
|
5
|
+
import { MutationAnnotationsContextProvider } from '../../preact/MutationAnnotationsContext';
|
|
4
6
|
import { MutationComparison, type MutationComparisonProps } from '../../preact/mutationComparison/mutation-comparison';
|
|
5
7
|
import { type Equals, type Expect } from '../../utils/typeAssertions';
|
|
6
8
|
import { PreactLitAdapterWithGridJsStyles } from '../PreactLitAdapterWithGridJsStyles';
|
|
9
|
+
import { type MutationAnnotations, mutationAnnotationsContext } from '../mutation-annotations-context';
|
|
7
10
|
|
|
8
11
|
/**
|
|
9
12
|
* ## Context
|
|
@@ -13,6 +16,9 @@ import { PreactLitAdapterWithGridJsStyles } from '../PreactLitAdapterWithGridJsS
|
|
|
13
16
|
*
|
|
14
17
|
* It only shows substitutions and deletions, it does not show insertions.
|
|
15
18
|
*
|
|
19
|
+
* This component supports mutations annotations.
|
|
20
|
+
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/concepts-mutation-annotations--docs for more information.
|
|
21
|
+
*
|
|
16
22
|
* ## Views
|
|
17
23
|
*
|
|
18
24
|
* ### Table View
|
|
@@ -68,7 +74,7 @@ export class MutationComparisonComponent extends PreactLitAdapterWithGridJsStyle
|
|
|
68
74
|
/**
|
|
69
75
|
* The width of the component.
|
|
70
76
|
*
|
|
71
|
-
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/
|
|
77
|
+
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/concepts-size-of-components--docs for more information.
|
|
72
78
|
*/
|
|
73
79
|
@property({ type: String })
|
|
74
80
|
width: string = '100%';
|
|
@@ -76,7 +82,7 @@ export class MutationComparisonComponent extends PreactLitAdapterWithGridJsStyle
|
|
|
76
82
|
/**
|
|
77
83
|
* The height of the component.
|
|
78
84
|
*
|
|
79
|
-
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/
|
|
85
|
+
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/concepts-size-of-components--docs for more information.
|
|
80
86
|
*/
|
|
81
87
|
@property({ type: String })
|
|
82
88
|
height: string | undefined = undefined;
|
|
@@ -88,16 +94,24 @@ export class MutationComparisonComponent extends PreactLitAdapterWithGridJsStyle
|
|
|
88
94
|
@property({ type: Object })
|
|
89
95
|
pageSize: boolean | number = false;
|
|
90
96
|
|
|
97
|
+
/**
|
|
98
|
+
* @internal
|
|
99
|
+
*/
|
|
100
|
+
@consume({ context: mutationAnnotationsContext, subscribe: true })
|
|
101
|
+
mutationAnnotations: MutationAnnotations = [];
|
|
102
|
+
|
|
91
103
|
override render() {
|
|
92
104
|
return (
|
|
93
|
-
<
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
105
|
+
<MutationAnnotationsContextProvider value={this.mutationAnnotations}>
|
|
106
|
+
<MutationComparison
|
|
107
|
+
lapisFilters={this.lapisFilters}
|
|
108
|
+
sequenceType={this.sequenceType}
|
|
109
|
+
views={this.views}
|
|
110
|
+
width={this.width}
|
|
111
|
+
height={this.height}
|
|
112
|
+
pageSize={this.pageSize}
|
|
113
|
+
/>
|
|
114
|
+
</MutationAnnotationsContextProvider>
|
|
101
115
|
);
|
|
102
116
|
}
|
|
103
117
|
}
|
|
@@ -67,7 +67,8 @@ export default meta;
|
|
|
67
67
|
const mutationAnnotations = [
|
|
68
68
|
{
|
|
69
69
|
name: 'I am a mutation annotation!',
|
|
70
|
-
description:
|
|
70
|
+
description:
|
|
71
|
+
'This describes what is special about these mutations. <a class="link" href="/">And it has a link.</a>',
|
|
71
72
|
symbol: '#',
|
|
72
73
|
nucleotideMutations: ['C44T', 'C774T', 'G24872T', 'T23011-'],
|
|
73
74
|
aminoAcidMutations: ['S:501Y', 'S:S31-', 'ORF1a:S4286C'],
|
|
@@ -15,6 +15,9 @@ import { type MutationAnnotations, mutationAnnotationsContext } from '../mutatio
|
|
|
15
15
|
* The shown date range is determined by the date field in the LAPIS filter.
|
|
16
16
|
* If the date field is not set, the date range is determined by all available dates in the dataset.
|
|
17
17
|
*
|
|
18
|
+
* This component supports mutations annotations.
|
|
19
|
+
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/concepts-mutation-annotations--docs for more information.
|
|
20
|
+
*
|
|
18
21
|
* ## Views
|
|
19
22
|
*
|
|
20
23
|
* ### Grid View
|
|
@@ -65,7 +68,7 @@ export class MutationsOverTimeComponent extends PreactLitAdapterWithGridJsStyles
|
|
|
65
68
|
/**
|
|
66
69
|
* The width of the component.
|
|
67
70
|
*
|
|
68
|
-
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/
|
|
71
|
+
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/concepts-size-of-components--docs for more information.
|
|
69
72
|
*/
|
|
70
73
|
@property({ type: String })
|
|
71
74
|
width: string = '100%';
|
|
@@ -73,7 +76,7 @@ export class MutationsOverTimeComponent extends PreactLitAdapterWithGridJsStyles
|
|
|
73
76
|
/**
|
|
74
77
|
* The height of the component.
|
|
75
78
|
*
|
|
76
|
-
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/
|
|
79
|
+
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/concepts-size-of-components--docs for more information.
|
|
77
80
|
*/
|
|
78
81
|
@property({ type: String })
|
|
79
82
|
height: string | undefined = undefined;
|
|
@@ -71,7 +71,8 @@ export default meta;
|
|
|
71
71
|
const mutationAnnotations = [
|
|
72
72
|
{
|
|
73
73
|
name: 'I am a mutation annotation!',
|
|
74
|
-
description:
|
|
74
|
+
description:
|
|
75
|
+
'This describes what is special about these mutations. <a class="link" href="/">And it has a link.</a>',
|
|
75
76
|
symbol: '#',
|
|
76
77
|
nucleotideMutations: ['C241T', 'C3037T'],
|
|
77
78
|
aminoAcidMutations: ['S:501Y', 'S:S31-', 'ORF1a:S4286C'],
|
|
@@ -13,6 +13,9 @@ import { type MutationAnnotations, mutationAnnotationsContext } from '../mutatio
|
|
|
13
13
|
*
|
|
14
14
|
* This component displays mutations (substitutions, deletions and insertions) for a dataset selected by a LAPIS filter.
|
|
15
15
|
*
|
|
16
|
+
* This component supports mutations annotations.
|
|
17
|
+
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/concepts-mutation-annotations--docs for more information.
|
|
18
|
+
*
|
|
16
19
|
* ## Views
|
|
17
20
|
*
|
|
18
21
|
* ### Table View
|
|
@@ -103,7 +106,7 @@ export class MutationsComponent extends PreactLitAdapterWithGridJsStyles {
|
|
|
103
106
|
/**
|
|
104
107
|
* The width of the component.
|
|
105
108
|
*
|
|
106
|
-
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/
|
|
109
|
+
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/concepts-size-of-components--docs for more information.
|
|
107
110
|
*/
|
|
108
111
|
@property({ type: String })
|
|
109
112
|
width: string = '100%';
|
|
@@ -111,7 +114,7 @@ export class MutationsComponent extends PreactLitAdapterWithGridJsStyles {
|
|
|
111
114
|
/**
|
|
112
115
|
* The height of the component.
|
|
113
116
|
*
|
|
114
|
-
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/
|
|
117
|
+
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/concepts-size-of-components--docs for more information.
|
|
115
118
|
*/
|
|
116
119
|
@property({ type: String })
|
|
117
120
|
height: string | undefined = undefined;
|
|
@@ -61,7 +61,7 @@ export class NumberSequencesOverTimeComponent extends PreactLitAdapterWithGridJs
|
|
|
61
61
|
/**
|
|
62
62
|
* The width of the component.
|
|
63
63
|
*
|
|
64
|
-
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/
|
|
64
|
+
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/concepts-size-of-components--docs for more information.
|
|
65
65
|
*/
|
|
66
66
|
@property({ type: String })
|
|
67
67
|
width: string = '100%';
|
|
@@ -69,7 +69,7 @@ export class NumberSequencesOverTimeComponent extends PreactLitAdapterWithGridJs
|
|
|
69
69
|
/**
|
|
70
70
|
* The height of the component.
|
|
71
71
|
*
|
|
72
|
-
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/
|
|
72
|
+
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/concepts-size-of-components--docs for more information.
|
|
73
73
|
*/
|
|
74
74
|
@property({ type: String })
|
|
75
75
|
height: string | undefined = undefined;
|
|
@@ -112,7 +112,7 @@ export class PrevalenceOverTimeComponent extends PreactLitAdapterWithGridJsStyle
|
|
|
112
112
|
/**
|
|
113
113
|
* The width of the component.
|
|
114
114
|
*
|
|
115
|
-
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/
|
|
115
|
+
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/concepts-size-of-components--docs for more information.
|
|
116
116
|
*/
|
|
117
117
|
@property({ type: String })
|
|
118
118
|
width: string = '100%';
|
|
@@ -120,7 +120,7 @@ export class PrevalenceOverTimeComponent extends PreactLitAdapterWithGridJsStyle
|
|
|
120
120
|
/**
|
|
121
121
|
* The height of the component.
|
|
122
122
|
*
|
|
123
|
-
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/
|
|
123
|
+
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/concepts-size-of-components--docs for more information.
|
|
124
124
|
*/
|
|
125
125
|
@property({ type: String })
|
|
126
126
|
height: string | undefined = undefined;
|
|
@@ -76,7 +76,7 @@ export class RelativeGrowthAdvantageComponent extends PreactLitAdapter {
|
|
|
76
76
|
/**
|
|
77
77
|
* The width of the component.
|
|
78
78
|
*
|
|
79
|
-
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/
|
|
79
|
+
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/concepts-size-of-components--docs for more information.
|
|
80
80
|
*/
|
|
81
81
|
@property({ type: String })
|
|
82
82
|
width: string = '100%';
|
|
@@ -84,7 +84,7 @@ export class RelativeGrowthAdvantageComponent extends PreactLitAdapter {
|
|
|
84
84
|
/**
|
|
85
85
|
* The height of the component.
|
|
86
86
|
*
|
|
87
|
-
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/
|
|
87
|
+
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/concepts-size-of-components--docs for more information.
|
|
88
88
|
*/
|
|
89
89
|
@property({ type: String })
|
|
90
90
|
height: string | undefined = undefined;
|
|
@@ -140,7 +140,7 @@ export class SequencesByLocationComponent extends PreactLitAdapterWithGridJsStyl
|
|
|
140
140
|
* Not that the map in the map view is not responsive
|
|
141
141
|
* (i.e. does not adjust its size when the component is resized).
|
|
142
142
|
*
|
|
143
|
-
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/
|
|
143
|
+
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/concepts-size-of-components--docs for more information.
|
|
144
144
|
*/
|
|
145
145
|
@property({ type: String })
|
|
146
146
|
width: string = '100%';
|
|
@@ -148,7 +148,7 @@ export class SequencesByLocationComponent extends PreactLitAdapterWithGridJsStyl
|
|
|
148
148
|
/**
|
|
149
149
|
* The height of the component.
|
|
150
150
|
*
|
|
151
|
-
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/
|
|
151
|
+
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/concepts-size-of-components--docs for more information.
|
|
152
152
|
*/
|
|
153
153
|
@property({ type: String })
|
|
154
154
|
height: string | undefined = undefined;
|
|
@@ -40,7 +40,7 @@ export class StatisticsComponent extends PreactLitAdapterWithGridJsStyles {
|
|
|
40
40
|
/**
|
|
41
41
|
* The width of the component.
|
|
42
42
|
*
|
|
43
|
-
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/
|
|
43
|
+
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/concepts-size-of-components--docs for more information.
|
|
44
44
|
*/
|
|
45
45
|
@property({ type: String })
|
|
46
46
|
width: string = '100%';
|
|
@@ -48,7 +48,7 @@ export class StatisticsComponent extends PreactLitAdapterWithGridJsStyles {
|
|
|
48
48
|
/**
|
|
49
49
|
* The height of the component.
|
|
50
50
|
*
|
|
51
|
-
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/
|
|
51
|
+
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/concepts-size-of-components--docs for more information.
|
|
52
52
|
*/
|
|
53
53
|
@property({ type: String })
|
|
54
54
|
height: string | undefined = undefined;
|
|
@@ -55,7 +55,7 @@ export class WastewaterMutationsOverTimeComponent extends PreactLitAdapterWithGr
|
|
|
55
55
|
/**
|
|
56
56
|
* The width of the component.
|
|
57
57
|
*
|
|
58
|
-
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/
|
|
58
|
+
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/concepts-size-of-components--docs for more information.
|
|
59
59
|
*/
|
|
60
60
|
@property({ type: String })
|
|
61
61
|
width: string = '100%';
|
|
@@ -63,7 +63,7 @@ export class WastewaterMutationsOverTimeComponent extends PreactLitAdapterWithGr
|
|
|
63
63
|
/**
|
|
64
64
|
* The height of the component.
|
|
65
65
|
*
|
|
66
|
-
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/
|
|
66
|
+
* Visit https://genspectrum.github.io/dashboard-components/?path=/docs/concepts-size-of-components--docs for more information.
|
|
67
67
|
*/
|
|
68
68
|
@property({ type: String })
|
|
69
69
|
height: string | undefined = undefined;
|