@genspectrum/dashboard-components 0.6.9 → 0.6.10
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 +3 -3
- package/dist/dashboard-components.js +141 -19
- package/dist/dashboard-components.js.map +1 -1
- package/dist/genspectrum-components.d.ts +2 -2
- package/dist/style.css +31 -0
- package/package.json +4 -1
- package/src/preact/aggregatedData/aggregate.tsx +2 -0
- package/src/preact/components/chart.tsx +14 -1
- package/src/preact/components/fullscreen.tsx +57 -0
- package/src/preact/components/resize-container.tsx +5 -1
- package/src/preact/mutationComparison/mutation-comparison.tsx +2 -0
- package/src/preact/mutations/mutations.tsx +2 -0
- package/src/preact/mutationsOverTime/__mockData__/aminoAcidMutations_byDayOverall.json +4726 -0
- package/src/preact/mutationsOverTime/__mockData__/nucleotideMutations_byMonthOverall.json +11143 -0
- package/src/preact/mutationsOverTime/__mockData__/nucleotideMutations_byWeekOverall.json +9154 -0
- package/src/preact/mutationsOverTime/getFilteredMutationsOverTime.spec.ts +66 -22
- package/src/preact/mutationsOverTime/getFilteredMutationsOverTimeData.ts +16 -7
- package/src/preact/mutationsOverTime/mutations-over-time.stories.tsx +17 -0
- package/src/preact/mutationsOverTime/mutations-over-time.tsx +28 -4
- package/src/preact/numberSequencesOverTime/number-sequences-over-time.tsx +2 -0
- package/src/preact/prevalenceOverTime/prevalence-over-time.tsx +2 -0
- package/src/preact/relativeGrowthAdvantage/relative-growth-advantage.tsx +2 -0
- package/src/query/queryMutationsOverTime.ts +10 -1
- package/src/web-components/visualization/gs-mutations-over-time.stories.ts +51 -1
package/custom-elements.json
CHANGED
|
@@ -1795,7 +1795,7 @@
|
|
|
1795
1795
|
"type": {
|
|
1796
1796
|
"text": "StoryObj<Required<MutationsOverTimeProps>>"
|
|
1797
1797
|
},
|
|
1798
|
-
"default": "{ ...Template, parameters: { fetchMock: { mocks: [ { matcher: { name: 'aggregated_dates', url: AGGREGATED_ENDPOINT, body: { dateFrom: '2024-01-15', dateTo: '2024-07-10', fields: ['date'], pangoLineage: 'JN.1*', }, }, response: { status: 200, body: aggregated_date, }, }, { matcher: { name: 'nucleotideMutations_01', url: NUCLEOTIDE_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-01-01', dateTo: '2024-01-31', minProportion: 0.001, }, }, response: { status: 200, body: nucleotideMutation_01, }, }, { matcher: { name: 'nucleotideMutations_02', url: NUCLEOTIDE_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-02-01', dateTo: '2024-02-29', minProportion: 0.001, }, }, response: { status: 200, body: nucleotideMutation_02, }, }, { matcher: { name: 'nucleotideMutations_03', url: NUCLEOTIDE_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-03-01', dateTo: '2024-03-31', minProportion: 0.001, }, response: { status: 200, body: nucleotideMutation_03, }, }, }, { matcher: { name: 'nucleotideMutations_04', url: NUCLEOTIDE_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-04-01', dateTo: '2024-04-30', minProportion: 0.001, }, response: { status: 200, body: nucleotideMutation_04, }, }, }, { matcher: { name: 'nucleotideMutations_05', url: NUCLEOTIDE_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-05-01', dateTo: '2024-05-31', minProportion: 0.001, }, response: { status: 200, body: nucleotideMutation_05, }, }, }, { matcher: { name: 'nucleotideMutations_06', url: NUCLEOTIDE_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-06-01', dateTo: '2024-06-30', minProportion: 0.001, }, response: { status: 200, body: nucleotideMutation_06, }, }, }, { matcher: { name: 'nucleotideMutations_07', url: NUCLEOTIDE_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-07-01', dateTo: '2024-07-31', minProportion: 0.001, }, response: { status: 200, body: nucleotideMutation_07, }, }, }, ], }, }, }"
|
|
1798
|
+
"default": "{ ...Template, parameters: { fetchMock: { mocks: [ { matcher: { name: 'aggregated_dates', url: AGGREGATED_ENDPOINT, body: { dateFrom: '2024-01-15', dateTo: '2024-07-10', fields: ['date'], pangoLineage: 'JN.1*', }, }, response: { status: 200, body: aggregated_date, }, }, { matcher: { name: 'nucleotideMutations_overall', url: NUCLEOTIDE_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-01-15', dateTo: '2024-07-10', minProportion: 0.001, }, }, response: { status: 200, body: nucleotideMutations_byMonthOverall, }, }, { matcher: { name: 'nucleotideMutations_01', url: NUCLEOTIDE_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-01-01', dateTo: '2024-01-31', minProportion: 0.001, }, }, response: { status: 200, body: nucleotideMutation_01, }, }, { matcher: { name: 'nucleotideMutations_02', url: NUCLEOTIDE_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-02-01', dateTo: '2024-02-29', minProportion: 0.001, }, }, response: { status: 200, body: nucleotideMutation_02, }, }, { matcher: { name: 'nucleotideMutations_03', url: NUCLEOTIDE_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-03-01', dateTo: '2024-03-31', minProportion: 0.001, }, response: { status: 200, body: nucleotideMutation_03, }, }, }, { matcher: { name: 'nucleotideMutations_04', url: NUCLEOTIDE_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-04-01', dateTo: '2024-04-30', minProportion: 0.001, }, response: { status: 200, body: nucleotideMutation_04, }, }, }, { matcher: { name: 'nucleotideMutations_05', url: NUCLEOTIDE_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-05-01', dateTo: '2024-05-31', minProportion: 0.001, }, response: { status: 200, body: nucleotideMutation_05, }, }, }, { matcher: { name: 'nucleotideMutations_06', url: NUCLEOTIDE_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-06-01', dateTo: '2024-06-30', minProportion: 0.001, }, response: { status: 200, body: nucleotideMutation_06, }, }, }, { matcher: { name: 'nucleotideMutations_07', url: NUCLEOTIDE_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-07-01', dateTo: '2024-07-31', minProportion: 0.001, }, response: { status: 200, body: nucleotideMutation_07, }, }, }, ], }, }, }"
|
|
1799
1799
|
},
|
|
1800
1800
|
{
|
|
1801
1801
|
"kind": "variable",
|
|
@@ -1803,7 +1803,7 @@
|
|
|
1803
1803
|
"type": {
|
|
1804
1804
|
"text": "StoryObj<Required<MutationsOverTimeProps>>"
|
|
1805
1805
|
},
|
|
1806
|
-
"default": "{ ...Template, args: { ...Template.args, lapisFilter: { pangoLineage: 'JN.1*', dateFrom: '2024-01-15', dateTo: '2024-02-11' }, granularity: 'week', }, parameters: { fetchMock: { mocks: [ { matcher: { name: 'aggregated_dates', url: AGGREGATED_ENDPOINT, body: { dateFrom: '2024-01-15', dateTo: '2024-02-11', fields: ['date'], pangoLineage: 'JN.1*', }, }, response: { status: 200, body: aggregated_byWeek, }, }, { matcher: { name: 'nucleotideMutation_week3', url: NUCLEOTIDE_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-01-15', dateTo: '2024-01-21', minProportion: 0.001, }, }, response: { status: 200, body: nucleotideMutation_week3, }, }, { matcher: { name: 'nucleotideMutation_week4', url: NUCLEOTIDE_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-01-22', dateTo: '2024-01-28', minProportion: 0.001, }, }, response: { status: 200, body: nucleotideMutation_week4, }, }, { matcher: { name: 'nucleotideMutation_week5', url: NUCLEOTIDE_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-01-29', dateTo: '2024-02-04', minProportion: 0.001, }, }, response: { status: 200, body: nucleotideMutation_week5, }, }, { matcher: { name: 'nucleotideMutation_week6', url: NUCLEOTIDE_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-02-05', dateTo: '2024-02-11', minProportion: 0.001, }, }, response: { status: 200, body: nucleotideMutation_week6, }, }, ], }, }, }"
|
|
1806
|
+
"default": "{ ...Template, args: { ...Template.args, lapisFilter: { pangoLineage: 'JN.1*', dateFrom: '2024-01-15', dateTo: '2024-02-11' }, granularity: 'week', }, parameters: { fetchMock: { mocks: [ { matcher: { name: 'aggregated_dates', url: AGGREGATED_ENDPOINT, body: { dateFrom: '2024-01-15', dateTo: '2024-02-11', fields: ['date'], pangoLineage: 'JN.1*', }, }, response: { status: 200, body: aggregated_byWeek, }, }, { matcher: { name: 'nucleotideMutation_overall', url: NUCLEOTIDE_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-01-15', dateTo: '2024-02-11', minProportion: 0.001, }, }, response: { status: 200, body: nucleotideMutations_byWeekOverall, }, }, { matcher: { name: 'nucleotideMutation_week3', url: NUCLEOTIDE_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-01-15', dateTo: '2024-01-21', minProportion: 0.001, }, }, response: { status: 200, body: nucleotideMutation_week3, }, }, { matcher: { name: 'nucleotideMutation_week4', url: NUCLEOTIDE_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-01-22', dateTo: '2024-01-28', minProportion: 0.001, }, }, response: { status: 200, body: nucleotideMutation_week4, }, }, { matcher: { name: 'nucleotideMutation_week5', url: NUCLEOTIDE_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-01-29', dateTo: '2024-02-04', minProportion: 0.001, }, }, response: { status: 200, body: nucleotideMutation_week5, }, }, { matcher: { name: 'nucleotideMutation_week6', url: NUCLEOTIDE_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-02-05', dateTo: '2024-02-11', minProportion: 0.001, }, }, response: { status: 200, body: nucleotideMutation_week6, }, }, ], }, }, }"
|
|
1807
1807
|
},
|
|
1808
1808
|
{
|
|
1809
1809
|
"kind": "variable",
|
|
@@ -1811,7 +1811,7 @@
|
|
|
1811
1811
|
"type": {
|
|
1812
1812
|
"text": "StoryObj<Required<MutationsOverTimeProps>>"
|
|
1813
1813
|
},
|
|
1814
|
-
"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: { name: 'aggregated_byDay', url: AGGREGATED_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-01-20', dateTo: '2024-01-26', fields: ['date'] }, }, response: { status: 200, body: aggregated_byDay, }, }, { matcher: { name: 'aminoAcidMutations_20_01_2024', url: AMINO_ACID_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-01-20', dateTo: '2024-01-20', minProportion: 0.001, }, }, response: { status: 200, body: aminoAcidMutations_20_01_2024, }, }, { matcher: { name: 'aminoAcidMutations_21_01_2024', url: AMINO_ACID_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-01-21', dateTo: '2024-01-21', minProportion: 0.001, }, }, response: { status: 200, body: aminoAcidMutations_21_01_2024, }, }, { matcher: { name: 'aminoAcidMutations_22_01_2024', url: AMINO_ACID_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-01-22', dateTo: '2024-01-22', minProportion: 0.001, }, }, response: { status: 200, body: aminoAcidMutations_22_01_2024, }, }, { matcher: { name: 'aminoAcidMutations_23_01_2024', url: AMINO_ACID_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-01-23', dateTo: '2024-01-23', minProportion: 0.001, }, }, response: { status: 200, body: aminoAcidMutations_23_01_2024, }, }, { matcher: { name: 'aminoAcidMutations_24_01_2024', url: AMINO_ACID_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-01-24', dateTo: '2024-01-24', minProportion: 0.001, }, }, response: { status: 200, body: aminoAcidMutations_24_01_2024, }, }, { matcher: { name: 'aminoAcidMutations_25_01_2024', url: AMINO_ACID_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-01-25', dateTo: '2024-01-25', minProportion: 0.001, }, }, response: { status: 200, body: aminoAcidMutations_25_01_2024, }, }, { matcher: { name: 'aminoAcidMutations_26_01_2024', url: AMINO_ACID_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-01-26', dateTo: '2024-01-26', minProportion: 0.001, }, }, response: { status: 200, body: aminoAcidMutations_26_01_2024, }, }, ], }, }, }"
|
|
1814
|
+
"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: { name: 'aggregated_byDay', url: AGGREGATED_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-01-20', dateTo: '2024-01-26', fields: ['date'] }, }, response: { status: 200, body: aggregated_byDay, }, }, { matcher: { name: 'aminoAcidMutations_overall', url: AMINO_ACID_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-01-20', dateTo: '2024-01-26', minProportion: 0.001, }, }, response: { status: 200, body: aminoAcidMutations_byDayOverall, }, }, { matcher: { name: 'aminoAcidMutations_20_01_2024', url: AMINO_ACID_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-01-20', dateTo: '2024-01-20', minProportion: 0.001, }, }, response: { status: 200, body: aminoAcidMutations_20_01_2024, }, }, { matcher: { name: 'aminoAcidMutations_21_01_2024', url: AMINO_ACID_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-01-21', dateTo: '2024-01-21', minProportion: 0.001, }, }, response: { status: 200, body: aminoAcidMutations_21_01_2024, }, }, { matcher: { name: 'aminoAcidMutations_22_01_2024', url: AMINO_ACID_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-01-22', dateTo: '2024-01-22', minProportion: 0.001, }, }, response: { status: 200, body: aminoAcidMutations_22_01_2024, }, }, { matcher: { name: 'aminoAcidMutations_23_01_2024', url: AMINO_ACID_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-01-23', dateTo: '2024-01-23', minProportion: 0.001, }, }, response: { status: 200, body: aminoAcidMutations_23_01_2024, }, }, { matcher: { name: 'aminoAcidMutations_24_01_2024', url: AMINO_ACID_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-01-24', dateTo: '2024-01-24', minProportion: 0.001, }, }, response: { status: 200, body: aminoAcidMutations_24_01_2024, }, }, { matcher: { name: 'aminoAcidMutations_25_01_2024', url: AMINO_ACID_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-01-25', dateTo: '2024-01-25', minProportion: 0.001, }, }, response: { status: 200, body: aminoAcidMutations_25_01_2024, }, }, { matcher: { name: 'aminoAcidMutations_26_01_2024', url: AMINO_ACID_MUTATIONS_ENDPOINT, body: { pangoLineage: 'JN.1*', dateFrom: '2024-01-26', dateTo: '2024-01-26', minProportion: 0.001, }, }, response: { status: 200, body: aminoAcidMutations_26_01_2024, }, }, ], }, }, }"
|
|
1815
1815
|
},
|
|
1816
1816
|
{
|
|
1817
1817
|
"kind": "variable",
|
|
@@ -25667,6 +25667,7 @@ const GsChart = ({ configuration }) => {
|
|
|
25667
25667
|
return;
|
|
25668
25668
|
}
|
|
25669
25669
|
chartRef.current = new Chart(ctx, configuration);
|
|
25670
|
+
resizeChartAfterFullscreenChange(chartRef, ctx, configuration);
|
|
25670
25671
|
return () => {
|
|
25671
25672
|
var _a2;
|
|
25672
25673
|
(_a2 = chartRef.current) == null ? void 0 : _a2.destroy();
|
|
@@ -25674,6 +25675,13 @@ const GsChart = ({ configuration }) => {
|
|
|
25674
25675
|
}, [canvasRef, configuration]);
|
|
25675
25676
|
return /* @__PURE__ */ u$2("canvas", { ref: canvasRef });
|
|
25676
25677
|
};
|
|
25678
|
+
const resizeChartAfterFullscreenChange = (chartRef, ctx, configuration) => {
|
|
25679
|
+
document.addEventListener("fullscreenchange", () => {
|
|
25680
|
+
var _a2;
|
|
25681
|
+
(_a2 = chartRef.current) == null ? void 0 : _a2.destroy();
|
|
25682
|
+
chartRef.current = new Chart(ctx, configuration);
|
|
25683
|
+
});
|
|
25684
|
+
};
|
|
25677
25685
|
Chart.register(...registerables, VennDiagramController, ArcSlice);
|
|
25678
25686
|
const MutationComparisonVenn = ({
|
|
25679
25687
|
data,
|
|
@@ -27312,7 +27320,7 @@ const ErrorDisplay = ({ error }) => {
|
|
|
27312
27320
|
] });
|
|
27313
27321
|
};
|
|
27314
27322
|
const ResizeContainer = ({ children, size }) => {
|
|
27315
|
-
return /* @__PURE__ */ u$2("div", { style: size, children });
|
|
27323
|
+
return /* @__PURE__ */ u$2("div", { style: size, className: "bg-white", children });
|
|
27316
27324
|
};
|
|
27317
27325
|
const ErrorBoundary = ({ size, children }) => {
|
|
27318
27326
|
const [internalError] = b$1();
|
|
@@ -27321,6 +27329,60 @@ const ErrorBoundary = ({ size, children }) => {
|
|
|
27321
27329
|
}
|
|
27322
27330
|
return /* @__PURE__ */ u$2(k$1, { children });
|
|
27323
27331
|
};
|
|
27332
|
+
const Fullscreen = () => {
|
|
27333
|
+
const element = A$1(null);
|
|
27334
|
+
const isFullscreen = useFullscreenStatus();
|
|
27335
|
+
return /* @__PURE__ */ u$2(
|
|
27336
|
+
"button",
|
|
27337
|
+
{
|
|
27338
|
+
ref: element,
|
|
27339
|
+
onClick: async () => {
|
|
27340
|
+
if (element.current) {
|
|
27341
|
+
if (isFullscreen) {
|
|
27342
|
+
await document.exitFullscreen();
|
|
27343
|
+
} else {
|
|
27344
|
+
const componentRoot = findComponentRoot(element.current);
|
|
27345
|
+
if (componentRoot) {
|
|
27346
|
+
await componentRoot.requestFullscreen();
|
|
27347
|
+
}
|
|
27348
|
+
}
|
|
27349
|
+
}
|
|
27350
|
+
},
|
|
27351
|
+
className: `mt-0.5 iconify text-2xl ${isFullscreen ? "mdi--fullscreen-exit hover:scale-90" : "mdi--fullscreen hover:scale-110"}`,
|
|
27352
|
+
title: isFullscreen ? "Exit fullscreen" : "Enter fullscreen"
|
|
27353
|
+
}
|
|
27354
|
+
);
|
|
27355
|
+
};
|
|
27356
|
+
function findComponentRoot(element) {
|
|
27357
|
+
var _a2;
|
|
27358
|
+
return (_a2 = findShadowRoot(element)) == null ? void 0 : _a2.children[0];
|
|
27359
|
+
}
|
|
27360
|
+
function findShadowRoot(element) {
|
|
27361
|
+
let current = element;
|
|
27362
|
+
while (current) {
|
|
27363
|
+
if (current instanceof ShadowRoot) {
|
|
27364
|
+
return current;
|
|
27365
|
+
}
|
|
27366
|
+
if (current.parentNode === null) {
|
|
27367
|
+
return null;
|
|
27368
|
+
}
|
|
27369
|
+
current = current.parentNode;
|
|
27370
|
+
}
|
|
27371
|
+
return null;
|
|
27372
|
+
}
|
|
27373
|
+
function useFullscreenStatus() {
|
|
27374
|
+
const [isFullscreen, setIsFullscreen] = h$1(document.fullscreenElement !== null);
|
|
27375
|
+
y$1(() => {
|
|
27376
|
+
const handleFullscreenChange = () => {
|
|
27377
|
+
setIsFullscreen(document.fullscreenElement !== null);
|
|
27378
|
+
};
|
|
27379
|
+
document.addEventListener("fullscreenchange", handleFullscreenChange);
|
|
27380
|
+
return () => {
|
|
27381
|
+
document.removeEventListener("fullscreenchange", handleFullscreenChange);
|
|
27382
|
+
};
|
|
27383
|
+
}, []);
|
|
27384
|
+
return isFullscreen;
|
|
27385
|
+
}
|
|
27324
27386
|
const Info = ({ children }) => {
|
|
27325
27387
|
const dialogRef = A$1(null);
|
|
27326
27388
|
const toggleHelp = () => {
|
|
@@ -27729,7 +27791,8 @@ const Toolbar$5 = ({
|
|
|
27729
27791
|
filename: "mutation_comparison.csv"
|
|
27730
27792
|
}
|
|
27731
27793
|
),
|
|
27732
|
-
/* @__PURE__ */ u$2(Info, { children: "Info for mutation comparison" })
|
|
27794
|
+
/* @__PURE__ */ u$2(Info, { children: "Info for mutation comparison" }),
|
|
27795
|
+
/* @__PURE__ */ u$2(Fullscreen, {})
|
|
27733
27796
|
] });
|
|
27734
27797
|
};
|
|
27735
27798
|
const gridJsStyle = '.gridjs-head button, .gridjs-footer button {\n cursor: pointer;\n background-color: transparent;\n background-image: none;\n padding: 0;\n margin: 0;\n border: none;\n outline: none;\n}\n\n.gridjs-temp {\n position: relative;\n}\n\n.gridjs-head {\n width: 100%;\n margin-bottom: 5px;\n padding: 5px 1px;\n}\n.gridjs-head::after {\n content: "";\n display: block;\n clear: both;\n}\n.gridjs-head:empty {\n padding: 0;\n border: none;\n}\n\n.gridjs-container {\n overflow: hidden;\n display: inline-block;\n padding: 2px;\n color: #000;\n position: relative;\n z-index: 0;\n}\n\n.gridjs-footer {\n display: block;\n position: relative;\n width: 100%;\n z-index: 5;\n padding: 12px 24px;\n border-top: 1px solid #e5e7eb;\n background-color: #fff;\n box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.26);\n border-radius: 0 0 8px 8px;\n border-bottom-width: 1px;\n border-color: #e5e7eb;\n}\n.gridjs-footer:empty {\n padding: 0;\n border: none;\n}\n\ninput.gridjs-input {\n outline: none;\n background-color: #fff;\n border: 1px solid #d2d6dc;\n border-radius: 5px;\n padding: 10px 13px;\n font-size: 14px;\n line-height: 1.45;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\ninput.gridjs-input:focus {\n box-shadow: 0 0 0 3px rgba(149, 189, 243, 0.5);\n border-color: #9bc2f7;\n}\n\n.gridjs-pagination {\n color: #3d4044;\n}\n.gridjs-pagination::after {\n content: "";\n display: block;\n clear: both;\n}\n.gridjs-pagination .gridjs-summary {\n float: left;\n margin-top: 5px;\n}\n.gridjs-pagination .gridjs-pages {\n float: right;\n}\n.gridjs-pagination .gridjs-pages button {\n padding: 5px 14px;\n border: 1px solid #d2d6dc;\n background-color: #fff;\n border-right: none;\n outline: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n.gridjs-pagination .gridjs-pages button:focus {\n box-shadow: 0 0 0 2px rgba(149, 189, 243, 0.5);\n position: relative;\n margin-right: -1px;\n border-right: 1px solid #d2d6dc;\n}\n.gridjs-pagination .gridjs-pages button:hover {\n background-color: #f7f7f7;\n color: rgb(60, 66, 87);\n outline: none;\n}\n.gridjs-pagination .gridjs-pages button:disabled,\n.gridjs-pagination .gridjs-pages button[disabled],\n.gridjs-pagination .gridjs-pages button:hover:disabled {\n cursor: default;\n background-color: #fff;\n color: #6b7280;\n}\n.gridjs-pagination .gridjs-pages button.gridjs-spread {\n cursor: default;\n box-shadow: none;\n background-color: #fff;\n}\n.gridjs-pagination .gridjs-pages button.gridjs-currentPage {\n background-color: #f7f7f7;\n font-weight: bold;\n}\n.gridjs-pagination .gridjs-pages button:last-child {\n border-bottom-right-radius: 6px;\n border-top-right-radius: 6px;\n border-right: 1px solid #d2d6dc;\n}\n.gridjs-pagination .gridjs-pages button:first-child {\n border-bottom-left-radius: 6px;\n border-top-left-radius: 6px;\n}\n.gridjs-pagination .gridjs-pages button:last-child:focus {\n margin-right: 0;\n}\n\nbutton.gridjs-sort {\n float: right;\n height: 24px;\n width: 13px;\n background-color: transparent;\n background-repeat: no-repeat;\n background-position-x: center;\n cursor: pointer;\n padding: 0;\n margin: 0;\n border: none;\n outline: none;\n background-size: contain;\n}\nbutton.gridjs-sort-neutral {\n opacity: 0.3;\n background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHdpZHRoPSI0MDEuOTk4cHgiIGhlaWdodD0iNDAxLjk5OHB4IiB2aWV3Qm94PSIwIDAgNDAxLjk5OCA0MDEuOTk4IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA0MDEuOTk4IDQwMS45OTg7IgoJIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxnPgoJCTxwYXRoIGQ9Ik03My4wOTIsMTY0LjQ1MmgyNTUuODEzYzQuOTQ5LDAsOS4yMzMtMS44MDcsMTIuODQ4LTUuNDI0YzMuNjEzLTMuNjE2LDUuNDI3LTcuODk4LDUuNDI3LTEyLjg0NwoJCQljMC00Ljk0OS0xLjgxMy05LjIyOS01LjQyNy0xMi44NUwyMTMuODQ2LDUuNDI0QzIxMC4yMzIsMS44MTIsMjA1Ljk1MSwwLDIwMC45OTksMHMtOS4yMzMsMS44MTItMTIuODUsNS40MjRMNjAuMjQyLDEzMy4zMzEKCQkJYy0zLjYxNywzLjYxNy01LjQyNCw3LjkwMS01LjQyNCwxMi44NWMwLDQuOTQ4LDEuODA3LDkuMjMxLDUuNDI0LDEyLjg0N0M2My44NjMsMTYyLjY0NSw2OC4xNDQsMTY0LjQ1Miw3My4wOTIsMTY0LjQ1MnoiLz4KCQk8cGF0aCBkPSJNMzI4LjkwNSwyMzcuNTQ5SDczLjA5MmMtNC45NTIsMC05LjIzMywxLjgwOC0xMi44NSw1LjQyMWMtMy42MTcsMy42MTctNS40MjQsNy44OTgtNS40MjQsMTIuODQ3CgkJCWMwLDQuOTQ5LDEuODA3LDkuMjMzLDUuNDI0LDEyLjg0OEwxODguMTQ5LDM5Ni41N2MzLjYyMSwzLjYxNyw3LjkwMiw1LjQyOCwxMi44NSw1LjQyOHM5LjIzMy0xLjgxMSwxMi44NDctNS40MjhsMTI3LjkwNy0xMjcuOTA2CgkJCWMzLjYxMy0zLjYxNCw1LjQyNy03Ljg5OCw1LjQyNy0xMi44NDhjMC00Ljk0OC0xLjgxMy05LjIyOS01LjQyNy0xMi44NDdDMzM4LjEzOSwyMzkuMzUzLDMzMy44NTQsMjM3LjU0OSwzMjguOTA1LDIzNy41NDl6Ii8+Cgk8L2c+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+");\n background-position-y: center;\n}\nbutton.gridjs-sort-asc {\n background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHdpZHRoPSIyOTIuMzYycHgiIGhlaWdodD0iMjkyLjM2MXB4IiB2aWV3Qm94PSIwIDAgMjkyLjM2MiAyOTIuMzYxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyOTIuMzYyIDI5Mi4zNjE7IgoJIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxwYXRoIGQ9Ik0yODYuOTM1LDE5Ny4yODdMMTU5LjAyOCw2OS4zODFjLTMuNjEzLTMuNjE3LTcuODk1LTUuNDI0LTEyLjg0Ny01LjQyNHMtOS4yMzMsMS44MDctMTIuODUsNS40MjRMNS40MjQsMTk3LjI4NwoJCUMxLjgwNywyMDAuOTA0LDAsMjA1LjE4NiwwLDIxMC4xMzRzMS44MDcsOS4yMzMsNS40MjQsMTIuODQ3YzMuNjIxLDMuNjE3LDcuOTAyLDUuNDI1LDEyLjg1LDUuNDI1aDI1NS44MTMKCQljNC45NDksMCw5LjIzMy0xLjgwOCwxMi44NDgtNS40MjVjMy42MTMtMy42MTMsNS40MjctNy44OTgsNS40MjctMTIuODQ3UzI5MC41NDgsMjAwLjkwNCwyODYuOTM1LDE5Ny4yODd6Ii8+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+");\n background-position-y: 35%;\n background-size: 10px;\n}\nbutton.gridjs-sort-desc {\n background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHdpZHRoPSIyOTIuMzYycHgiIGhlaWdodD0iMjkyLjM2MnB4IiB2aWV3Qm94PSIwIDAgMjkyLjM2MiAyOTIuMzYyIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyOTIuMzYyIDI5Mi4zNjI7IgoJIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxwYXRoIGQ9Ik0yODYuOTM1LDY5LjM3N2MtMy42MTQtMy42MTctNy44OTgtNS40MjQtMTIuODQ4LTUuNDI0SDE4LjI3NGMtNC45NTIsMC05LjIzMywxLjgwNy0xMi44NSw1LjQyNAoJCUMxLjgwNyw3Mi45OTgsMCw3Ny4yNzksMCw4Mi4yMjhjMCw0Ljk0OCwxLjgwNyw5LjIyOSw1LjQyNCwxMi44NDdsMTI3LjkwNywxMjcuOTA3YzMuNjIxLDMuNjE3LDcuOTAyLDUuNDI4LDEyLjg1LDUuNDI4CgkJczkuMjMzLTEuODExLDEyLjg0Ny01LjQyOEwyODYuOTM1LDk1LjA3NGMzLjYxMy0zLjYxNyw1LjQyNy03Ljg5OCw1LjQyNy0xMi44NDdDMjkyLjM2Miw3Ny4yNzksMjkwLjU0OCw3Mi45OTgsMjg2LjkzNSw2OS4zNzd6Ii8+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+");\n background-position-y: 65%;\n background-size: 10px;\n}\nbutton.gridjs-sort:focus {\n outline: none;\n}\n\ntable.gridjs-table {\n width: 100%;\n max-width: 100%;\n border-collapse: collapse;\n text-align: left;\n display: table;\n margin: 0;\n padding: 0;\n overflow: auto;\n table-layout: fixed;\n}\n\n.gridjs-tbody {\n background-color: #fff;\n}\n\ntd.gridjs-td {\n border: 1px solid #e5e7eb;\n padding: 12px 24px;\n background-color: #fff;\n box-sizing: content-box;\n}\ntd.gridjs-td:first-child {\n border-left: none;\n}\ntd.gridjs-td:last-child {\n border-right: none;\n}\ntd.gridjs-message {\n text-align: center;\n}\n\nth.gridjs-th {\n position: relative;\n color: #6b7280;\n background-color: #f9fafb;\n border: 1px solid #e5e7eb;\n border-top: none;\n padding: 14px 24px;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n box-sizing: border-box;\n white-space: nowrap;\n outline: none;\n vertical-align: middle;\n}\nth.gridjs-th .gridjs-th-content {\n text-overflow: ellipsis;\n overflow: hidden;\n width: 100%;\n float: left;\n}\nth.gridjs-th-sort {\n cursor: pointer;\n}\nth.gridjs-th-sort .gridjs-th-content {\n width: calc(100% - 15px);\n}\nth.gridjs-th-sort:hover {\n background-color: #e5e7eb;\n}\nth.gridjs-th-sort:focus {\n background-color: #e5e7eb;\n}\nth.gridjs-th-fixed {\n position: sticky;\n box-shadow: 0 1px 0 0 #e5e7eb;\n}\n@supports (-moz-appearance: none) {\n th.gridjs-th-fixed {\n box-shadow: 0 0 0 1px #e5e7eb;\n }\n}\nth.gridjs-th:first-child {\n border-left: none;\n}\nth.gridjs-th:last-child {\n border-right: none;\n}\n\n.gridjs-tr {\n border: none;\n}\n.gridjs-tr-selected td {\n background-color: #ebf5ff;\n}\n.gridjs-tr:last-child td {\n border-bottom: 0;\n}\n\n.gridjs *,\n.gridjs :after,\n.gridjs :before {\n box-sizing: border-box;\n}\n\n.gridjs-wrapper {\n position: relative;\n z-index: 1;\n overflow: auto;\n width: 100%;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.26);\n border-radius: 8px 8px 0 0;\n display: block;\n border-top-width: 1px;\n border-color: #e5e7eb;\n}\n.gridjs-wrapper:nth-last-of-type(2) {\n border-radius: 8px;\n border-bottom-width: 1px;\n}\n\n.gridjs-search {\n float: left;\n}\n.gridjs-search-input {\n width: 250px;\n}\n\n.gridjs-loading-bar {\n z-index: 10;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background-color: #fff;\n opacity: 0.5;\n}\n.gridjs-loading-bar::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n transform: translateX(-100%);\n background-image: linear-gradient(90deg, rgba(204, 204, 204, 0) 0, rgba(204, 204, 204, 0.2) 20%, rgba(204, 204, 204, 0.5) 60%, rgba(204, 204, 204, 0));\n animation: shimmer 2s infinite;\n content: "";\n}\n@keyframes shimmer {\n 100% {\n transform: translateX(100%);\n }\n}\n\n.gridjs-td .gridjs-checkbox {\n display: block;\n margin: auto;\n cursor: pointer;\n}\n\n.gridjs-resizable {\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n width: 5px;\n}\n.gridjs-resizable:hover {\n cursor: ew-resize;\n background-color: #9bc2f7;\n}\n/*# sourceMappingURL=mermaid.css?inline.map */';
|
|
@@ -30136,6 +30199,18 @@ input.tab:checked + .tab-content,
|
|
|
30136
30199
|
right: auto;
|
|
30137
30200
|
bottom: var(--tooltip-tail-offset);
|
|
30138
30201
|
}
|
|
30202
|
+
.iconify {
|
|
30203
|
+
display: inline-block;
|
|
30204
|
+
width: 1em;
|
|
30205
|
+
height: 1em;
|
|
30206
|
+
background-color: currentColor;
|
|
30207
|
+
-webkit-mask-image: var(--svg);
|
|
30208
|
+
mask-image: var(--svg);
|
|
30209
|
+
-webkit-mask-repeat: no-repeat;
|
|
30210
|
+
mask-repeat: no-repeat;
|
|
30211
|
+
-webkit-mask-size: 100% 100%;
|
|
30212
|
+
mask-size: 100% 100%;
|
|
30213
|
+
}
|
|
30139
30214
|
.visible {
|
|
30140
30215
|
visibility: visible;
|
|
30141
30216
|
}
|
|
@@ -30243,6 +30318,9 @@ input.tab:checked + .tab-content,
|
|
|
30243
30318
|
.mr-2 {
|
|
30244
30319
|
margin-right: 0.5rem;
|
|
30245
30320
|
}
|
|
30321
|
+
.mt-0\\.5 {
|
|
30322
|
+
margin-top: 0.125rem;
|
|
30323
|
+
}
|
|
30246
30324
|
.mt-1 {
|
|
30247
30325
|
margin-top: 0.25rem;
|
|
30248
30326
|
}
|
|
@@ -30542,6 +30620,12 @@ input.tab:checked + .tab-content,
|
|
|
30542
30620
|
.duration-150 {
|
|
30543
30621
|
transition-duration: 150ms;
|
|
30544
30622
|
}
|
|
30623
|
+
.mdi--fullscreen {
|
|
30624
|
+
--svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='black' d='M5 5h5v2H7v3H5zm9 0h5v5h-2V7h-3zm3 9h2v5h-5v-2h3zm-7 3v2H5v-5h2v3z'/%3E%3C/svg%3E");
|
|
30625
|
+
}
|
|
30626
|
+
.mdi--fullscreen-exit {
|
|
30627
|
+
--svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='black' d='M14 14h5v2h-3v3h-2zm-9 0h5v5H8v-3H5zm3-9h2v5H5V8h3zm11 3v2h-5V5h2v3z'/%3E%3C/svg%3E");
|
|
30628
|
+
}
|
|
30545
30629
|
@media (min-width: 640px) {
|
|
30546
30630
|
|
|
30547
30631
|
.sm\\:modal-middle {
|
|
@@ -30565,6 +30649,16 @@ input.tab:checked + .tab-content,
|
|
|
30565
30649
|
--tw-border-opacity: 1;
|
|
30566
30650
|
border-color: rgb(156 163 175 / var(--tw-border-opacity));
|
|
30567
30651
|
}
|
|
30652
|
+
.hover\\:scale-110:hover {
|
|
30653
|
+
--tw-scale-x: 1.1;
|
|
30654
|
+
--tw-scale-y: 1.1;
|
|
30655
|
+
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
|
30656
|
+
}
|
|
30657
|
+
.hover\\:scale-90:hover {
|
|
30658
|
+
--tw-scale-x: .9;
|
|
30659
|
+
--tw-scale-y: .9;
|
|
30660
|
+
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
|
30661
|
+
}
|
|
30568
30662
|
.hover\\:bg-gray-100:hover {
|
|
30569
30663
|
--tw-bg-opacity: 1;
|
|
30570
30664
|
background-color: rgb(243 244 246 / var(--tw-bg-opacity));
|
|
@@ -31090,7 +31184,8 @@ const Toolbar$4 = ({
|
|
|
31090
31184
|
filename: "insertions.csv"
|
|
31091
31185
|
}
|
|
31092
31186
|
),
|
|
31093
|
-
/* @__PURE__ */ u$2(Info, { children: "Info for mutations" })
|
|
31187
|
+
/* @__PURE__ */ u$2(Info, { children: "Info for mutations" }),
|
|
31188
|
+
/* @__PURE__ */ u$2(Fullscreen, {})
|
|
31094
31189
|
] });
|
|
31095
31190
|
};
|
|
31096
31191
|
var __defProp$a = Object.defineProperty;
|
|
@@ -33595,7 +33690,8 @@ const Toolbar$3 = ({
|
|
|
33595
33690
|
filename: "prevalence_over_time.csv"
|
|
33596
33691
|
}
|
|
33597
33692
|
),
|
|
33598
|
-
/* @__PURE__ */ u$2(PrevalenceOverTimeInfo, {})
|
|
33693
|
+
/* @__PURE__ */ u$2(PrevalenceOverTimeInfo, {}),
|
|
33694
|
+
/* @__PURE__ */ u$2(Fullscreen, {})
|
|
33599
33695
|
] });
|
|
33600
33696
|
};
|
|
33601
33697
|
const PrevalenceOverTimeInfo = () => {
|
|
@@ -33989,7 +34085,8 @@ const RelativeGrowthAdvantageToolbar = ({
|
|
|
33989
34085
|
}) => {
|
|
33990
34086
|
return /* @__PURE__ */ u$2(k$1, { children: [
|
|
33991
34087
|
/* @__PURE__ */ u$2(ScalingSelector, { yAxisScaleType, setYAxisScaleType }),
|
|
33992
|
-
/* @__PURE__ */ u$2(RelativeGrowthAdvantageInfo, { generationTime })
|
|
34088
|
+
/* @__PURE__ */ u$2(RelativeGrowthAdvantageInfo, { generationTime }),
|
|
34089
|
+
/* @__PURE__ */ u$2(Fullscreen, {})
|
|
33993
34090
|
] });
|
|
33994
34091
|
};
|
|
33995
34092
|
const RelativeGrowthAdvantageInfo = ({ generationTime }) => {
|
|
@@ -34176,7 +34273,8 @@ const AggregatedDataTabs = ({ data, views, fields, pageSize }) => {
|
|
|
34176
34273
|
const Toolbar$2 = ({ data }) => {
|
|
34177
34274
|
return /* @__PURE__ */ u$2("div", { class: "flex flex-row", children: [
|
|
34178
34275
|
/* @__PURE__ */ u$2(CsvDownloadButton, { className: "mx-1 btn btn-xs", getData: () => data, filename: "aggregate.csv" }),
|
|
34179
|
-
/* @__PURE__ */ u$2(Info, { children: "Info for aggregate" })
|
|
34276
|
+
/* @__PURE__ */ u$2(Info, { children: "Info for aggregate" }),
|
|
34277
|
+
/* @__PURE__ */ u$2(Fullscreen, {})
|
|
34180
34278
|
] });
|
|
34181
34279
|
};
|
|
34182
34280
|
var __defProp$7 = Object.defineProperty;
|
|
@@ -34485,7 +34583,8 @@ const Toolbar$1 = ({ activeTab, data, granularity, yAxisScaleType, setYAxisScale
|
|
|
34485
34583
|
filename: "number_of_sequences_over_time.csv"
|
|
34486
34584
|
}
|
|
34487
34585
|
),
|
|
34488
|
-
/* @__PURE__ */ u$2(NumberSequencesOverTimeInfo, {})
|
|
34586
|
+
/* @__PURE__ */ u$2(NumberSequencesOverTimeInfo, {}),
|
|
34587
|
+
/* @__PURE__ */ u$2(Fullscreen, {})
|
|
34489
34588
|
] });
|
|
34490
34589
|
};
|
|
34491
34590
|
const NumberSequencesOverTimeInfo = () => /* @__PURE__ */ u$2(Info, { children: [
|
|
@@ -34557,11 +34656,11 @@ __decorateClass$6([
|
|
|
34557
34656
|
NumberSequencesOverTimeComponent = __decorateClass$6([
|
|
34558
34657
|
t$2("gs-number-sequences-over-time")
|
|
34559
34658
|
], NumberSequencesOverTimeComponent);
|
|
34560
|
-
function getFilteredMutationOverTimeData(data, displayedSegments, displayedMutationTypes, proportionInterval) {
|
|
34659
|
+
function getFilteredMutationOverTimeData(data, overallMutationData, displayedSegments, displayedMutationTypes, proportionInterval) {
|
|
34561
34660
|
const filteredData = data.copy();
|
|
34562
34661
|
filterDisplayedSegments(displayedSegments, filteredData);
|
|
34563
34662
|
filterMutationTypes(displayedMutationTypes, filteredData);
|
|
34564
|
-
filterProportion(filteredData, proportionInterval);
|
|
34663
|
+
filterProportion(filteredData, overallMutationData, proportionInterval);
|
|
34565
34664
|
return filteredData;
|
|
34566
34665
|
}
|
|
34567
34666
|
function filterDisplayedSegments(displayedSegments, data) {
|
|
@@ -34586,12 +34685,17 @@ function filterMutationTypes(displayedMutationTypes, data) {
|
|
|
34586
34685
|
}
|
|
34587
34686
|
});
|
|
34588
34687
|
}
|
|
34589
|
-
function filterProportion(data, proportionInterval) {
|
|
34688
|
+
function filterProportion(data, overallMutationData, proportionInterval) {
|
|
34689
|
+
const overallProportionsByMutation = overallMutationData.content.reduce(
|
|
34690
|
+
(acc, { mutation, proportion }) => ({
|
|
34691
|
+
...acc,
|
|
34692
|
+
[mutation.toString()]: proportion
|
|
34693
|
+
}),
|
|
34694
|
+
{}
|
|
34695
|
+
);
|
|
34590
34696
|
data.getFirstAxisKeys().forEach((mutation) => {
|
|
34591
|
-
const
|
|
34592
|
-
if (
|
|
34593
|
-
(value) => value.proportion >= proportionInterval.min && value.proportion <= proportionInterval.max
|
|
34594
|
-
)) {
|
|
34697
|
+
const overallProportion = overallProportionsByMutation[mutation.toString()] || -1;
|
|
34698
|
+
if (overallProportion < proportionInterval.min || overallProportion > proportionInterval.max) {
|
|
34595
34699
|
data.deleteRow(mutation);
|
|
34596
34700
|
}
|
|
34597
34701
|
});
|
|
@@ -35671,6 +35775,9 @@ class Map2d {
|
|
|
35671
35775
|
}
|
|
35672
35776
|
}
|
|
35673
35777
|
const MAX_NUMBER_OF_GRID_COLUMNS = 200;
|
|
35778
|
+
async function queryOverallMutationData(lapisFilter, sequenceType, lapis, signal) {
|
|
35779
|
+
return fetchAndPrepareSubstitutionsOrDeletions(lapisFilter, sequenceType).evaluate(lapis, signal);
|
|
35780
|
+
}
|
|
35674
35781
|
async function queryMutationsOverTimeData(lapisFilter, sequenceType, lapis, lapisDateField, granularity, signal) {
|
|
35675
35782
|
const allDates = await getDatesInDataset(lapisFilter, lapis, granularity, lapisDateField, signal);
|
|
35676
35783
|
if (allDates.length > MAX_NUMBER_OF_GRID_COLUMNS) {
|
|
@@ -35782,7 +35889,11 @@ const MutationsOverTimeInner = ({
|
|
|
35782
35889
|
}) => {
|
|
35783
35890
|
const lapis = x$1(LapisUrlContext);
|
|
35784
35891
|
const { data, error, isLoading } = useQuery(async () => {
|
|
35785
|
-
|
|
35892
|
+
const [mutationOverTimeData, overallMutationData] = await Promise.all([
|
|
35893
|
+
queryMutationsOverTimeData(lapisFilter, sequenceType, lapis, lapisDateField, granularity),
|
|
35894
|
+
queryOverallMutationData(lapisFilter, sequenceType, lapis)
|
|
35895
|
+
]);
|
|
35896
|
+
return { mutationOverTimeData, overallMutationData };
|
|
35786
35897
|
}, [lapisFilter, sequenceType, lapis, granularity, lapisDateField]);
|
|
35787
35898
|
if (isLoading) {
|
|
35788
35899
|
return /* @__PURE__ */ u$2(LoadingDisplay, {});
|
|
@@ -35793,12 +35904,21 @@ const MutationsOverTimeInner = ({
|
|
|
35793
35904
|
if (data === null) {
|
|
35794
35905
|
return /* @__PURE__ */ u$2(NoDataDisplay, {});
|
|
35795
35906
|
}
|
|
35796
|
-
return /* @__PURE__ */ u$2(
|
|
35907
|
+
return /* @__PURE__ */ u$2(
|
|
35908
|
+
MutationsOverTimeTabs,
|
|
35909
|
+
{
|
|
35910
|
+
overallMutationData: data.overallMutationData,
|
|
35911
|
+
mutationOverTimeData: data.mutationOverTimeData,
|
|
35912
|
+
sequenceType,
|
|
35913
|
+
views
|
|
35914
|
+
}
|
|
35915
|
+
);
|
|
35797
35916
|
};
|
|
35798
35917
|
const MutationsOverTimeTabs = ({
|
|
35799
35918
|
mutationOverTimeData,
|
|
35800
35919
|
sequenceType,
|
|
35801
|
-
views
|
|
35920
|
+
views,
|
|
35921
|
+
overallMutationData
|
|
35802
35922
|
}) => {
|
|
35803
35923
|
const [proportionInterval, setProportionInterval] = h$1({ min: 0.05, max: 0.9 });
|
|
35804
35924
|
const [colorScale, setColorScale] = h$1({ min: 0, max: 1, color: "indigo" });
|
|
@@ -35810,11 +35930,12 @@ const MutationsOverTimeTabs = ({
|
|
|
35810
35930
|
const filteredData = T$1(
|
|
35811
35931
|
() => getFilteredMutationOverTimeData(
|
|
35812
35932
|
mutationOverTimeData,
|
|
35933
|
+
overallMutationData,
|
|
35813
35934
|
displayedSegments,
|
|
35814
35935
|
displayedMutationTypes,
|
|
35815
35936
|
proportionInterval
|
|
35816
35937
|
),
|
|
35817
|
-
[mutationOverTimeData, displayedSegments, displayedMutationTypes, proportionInterval]
|
|
35938
|
+
[mutationOverTimeData, overallMutationData, displayedSegments, displayedMutationTypes, proportionInterval]
|
|
35818
35939
|
);
|
|
35819
35940
|
const getTab = (view) => {
|
|
35820
35941
|
switch (view) {
|
|
@@ -35881,7 +36002,8 @@ const Toolbar = ({
|
|
|
35881
36002
|
filename: "mutations_over_time.csv"
|
|
35882
36003
|
}
|
|
35883
36004
|
),
|
|
35884
|
-
/* @__PURE__ */ u$2(Info, { children: "Info for mutations over time" })
|
|
36005
|
+
/* @__PURE__ */ u$2(Info, { children: "Info for mutations over time" }),
|
|
36006
|
+
/* @__PURE__ */ u$2(Fullscreen, {})
|
|
35885
36007
|
] });
|
|
35886
36008
|
};
|
|
35887
36009
|
function getDownloadData(filteredData) {
|