@genspectrum/dashboard-components 0.6.10 → 0.6.11
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/dist/dashboard-components.js +229 -60
- package/dist/dashboard-components.js.map +1 -1
- package/dist/style.css +34 -1
- package/package.json +1 -1
- package/src/preact/aggregatedData/aggregate.tsx +12 -4
- package/src/preact/components/info.tsx +88 -1
- package/src/preact/mutations/mutations.tsx +32 -2
- package/src/preact/numberSequencesOverTime/number-sequences-over-time.tsx +40 -6
- package/src/preact/prevalenceOverTime/prevalence-over-time.stories.tsx +2 -1
- package/src/preact/prevalenceOverTime/prevalence-over-time.tsx +44 -53
- package/src/web-components/visualization/gs-prevalence-over-time.tsx +2 -4
|
@@ -5025,7 +5025,7 @@ function P$1() {
|
|
|
5025
5025
|
}
|
|
5026
5026
|
function S$2(n3, l2, u2, t2, i3, o2, r2, f2, e3, c2, s6) {
|
|
5027
5027
|
var a2, v2, y2, d2, w2, _2 = t2 && t2.__k || p$2, g2 = l2.length;
|
|
5028
|
-
for (u2.__d = e3, $$1(u2, l2, _2), e3 = u2.__d, a2 = 0; a2 < g2; a2++) null != (y2 = u2.__k[a2]) && "boolean" != typeof y2 && "function" != typeof y2 && (v2 = -1 === y2.__i ? h$2 : _2[y2.__i] || h$2, y2.__i = a2, O$1(n3, y2, v2, i3, o2, r2, f2, e3, c2, s6), d2 = y2.__e, y2.ref && v2.ref != y2.ref && (v2.ref && N$1(v2.ref, null, y2), s6.push(y2.ref, y2.__c || d2, y2)), null == w2 && null != d2 && (w2 = d2), 65536 & y2.__u || v2.__k === y2.__k ?
|
|
5028
|
+
for (u2.__d = e3, $$1(u2, l2, _2), e3 = u2.__d, a2 = 0; a2 < g2; a2++) null != (y2 = u2.__k[a2]) && "boolean" != typeof y2 && "function" != typeof y2 && (v2 = -1 === y2.__i ? h$2 : _2[y2.__i] || h$2, y2.__i = a2, O$1(n3, y2, v2, i3, o2, r2, f2, e3, c2, s6), d2 = y2.__e, y2.ref && v2.ref != y2.ref && (v2.ref && N$1(v2.ref, null, y2), s6.push(y2.ref, y2.__c || d2, y2)), null == w2 && null != d2 && (w2 = d2), 65536 & y2.__u || v2.__k === y2.__k ? e3 = I$1(y2, e3, n3) : "function" == typeof y2.type && void 0 !== y2.__d ? e3 = y2.__d : d2 && (e3 = d2.nextSibling), y2.__d = void 0, y2.__u &= -196609);
|
|
5029
5029
|
u2.__d = e3, u2.__e = w2;
|
|
5030
5030
|
}
|
|
5031
5031
|
function $$1(n3, l2, u2) {
|
|
@@ -5039,7 +5039,7 @@ function I$1(n3, l2, u2) {
|
|
|
5039
5039
|
for (t2 = n3.__k, i3 = 0; t2 && i3 < t2.length; i3++) t2[i3] && (t2[i3].__ = n3, l2 = I$1(t2[i3], l2, u2));
|
|
5040
5040
|
return l2;
|
|
5041
5041
|
}
|
|
5042
|
-
n3.__e != l2 && (u2.insertBefore(n3.__e, l2 || null), l2 = n3.__e);
|
|
5042
|
+
n3.__e != l2 && (l2 && n3.type && !u2.contains(l2) && (l2 = x$2(n3)), u2.insertBefore(n3.__e, l2 || null), l2 = n3.__e);
|
|
5043
5043
|
do {
|
|
5044
5044
|
l2 = l2 && l2.nextSibling;
|
|
5045
5045
|
} while (null != l2 && 8 === l2.nodeType);
|
|
@@ -5117,7 +5117,11 @@ function O$1(n3, u2, t2, i3, o2, r2, f2, e3, c2, s6) {
|
|
|
5117
5117
|
} while (h3.__d && ++I3 < 25);
|
|
5118
5118
|
h3.state = h3.__s, null != h3.getChildContext && (i3 = d$2(d$2({}, i3), h3.getChildContext())), x2 && !p2 && null != h3.getSnapshotBeforeUpdate && (_2 = h3.getSnapshotBeforeUpdate(v2, w2)), S$2(n3, y$2(L3 = null != a2 && a2.type === k$1 && null == a2.key ? a2.props.children : a2) ? L3 : [L3], u2, t2, i3, o2, r2, f2, e3, c2, s6), h3.base = u2.__e, u2.__u &= -161, h3.__h.length && f2.push(h3), g2 && (h3.__E = h3.__ = null);
|
|
5119
5119
|
} catch (n4) {
|
|
5120
|
-
u2.__v = null, c2 || null != r2
|
|
5120
|
+
if (u2.__v = null, c2 || null != r2) {
|
|
5121
|
+
for (u2.__u |= c2 ? 160 : 32; e3 && 8 === e3.nodeType && e3.nextSibling; ) e3 = e3.nextSibling;
|
|
5122
|
+
r2[r2.indexOf(e3)] = null, u2.__e = e3;
|
|
5123
|
+
} else u2.__e = t2.__e, u2.__k = t2.__k;
|
|
5124
|
+
l$2.__e(n4, u2, t2);
|
|
5121
5125
|
}
|
|
5122
5126
|
else null == r2 && u2.__v === t2.__v ? (u2.__k = t2.__k, u2.__e = t2.__e) : u2.__e = z$2(t2.__e, u2, t2, i3, o2, r2, f2, c2, s6);
|
|
5123
5127
|
(a2 = l$2.diffed) && a2(u2);
|
|
@@ -5165,7 +5169,10 @@ function z$2(l2, u2, t2, i3, o2, r2, f2, e3, c2) {
|
|
|
5165
5169
|
}
|
|
5166
5170
|
function N$1(n3, u2, t2) {
|
|
5167
5171
|
try {
|
|
5168
|
-
"function" == typeof n3
|
|
5172
|
+
if ("function" == typeof n3) {
|
|
5173
|
+
var i3 = "function" == typeof n3.__u;
|
|
5174
|
+
i3 && n3.__u(), i3 && null == u2 || (n3.__u = n3(u2));
|
|
5175
|
+
} else n3.current = u2;
|
|
5169
5176
|
} catch (n4) {
|
|
5170
5177
|
l$2.__e(n4, t2);
|
|
5171
5178
|
}
|
|
@@ -27392,7 +27399,7 @@ const Info = ({ children }) => {
|
|
|
27392
27399
|
return /* @__PURE__ */ u$2("div", { className: "relative", children: [
|
|
27393
27400
|
/* @__PURE__ */ u$2("button", { type: "button", className: "btn btn-xs", onClick: toggleHelp, children: "?" }),
|
|
27394
27401
|
/* @__PURE__ */ u$2("dialog", { ref: dialogRef, className: "modal modal-bottom sm:modal-middle", children: [
|
|
27395
|
-
/* @__PURE__ */ u$2("div", { className: "modal-box", children: [
|
|
27402
|
+
/* @__PURE__ */ u$2("div", { className: "modal-box sm:max-w-5xl", children: [
|
|
27396
27403
|
/* @__PURE__ */ u$2("form", { method: "dialog", children: /* @__PURE__ */ u$2("button", { className: "btn btn-sm btn-circle btn-ghost absolute right-2 top-2", children: "✕" }) }),
|
|
27397
27404
|
/* @__PURE__ */ u$2("div", { className: "flex flex-col", children }),
|
|
27398
27405
|
/* @__PURE__ */ u$2("div", { className: "modal-action", children: /* @__PURE__ */ u$2("form", { method: "dialog", children: /* @__PURE__ */ u$2("button", { className: "float-right underline text-sm hover:text-blue-700 mr-2", children: "Close" }) }) })
|
|
@@ -27413,6 +27420,73 @@ const InfoParagraph = ({ children }) => {
|
|
|
27413
27420
|
const InfoLink = ({ children, href }) => {
|
|
27414
27421
|
return /* @__PURE__ */ u$2("a", { className: "text-blue-600 hover:text-blue-800", href, target: "_blank", rel: "noopener noreferrer", children });
|
|
27415
27422
|
};
|
|
27423
|
+
const InfoComponentCode = ({ componentName, params, lapisUrl }) => {
|
|
27424
|
+
const componentCode = componentParametersToCode(componentName, params, lapisUrl);
|
|
27425
|
+
const codePenData = {
|
|
27426
|
+
title: "GenSpectrum dashboard component",
|
|
27427
|
+
html: generateFullExampleCode(componentCode, componentName),
|
|
27428
|
+
layout: "left",
|
|
27429
|
+
editors: "100"
|
|
27430
|
+
};
|
|
27431
|
+
return /* @__PURE__ */ u$2(k$1, { children: [
|
|
27432
|
+
/* @__PURE__ */ u$2(InfoHeadline2, { children: "Use this component yourself" }),
|
|
27433
|
+
/* @__PURE__ */ u$2(InfoParagraph, { children: [
|
|
27434
|
+
"This component was created using the following parameters:",
|
|
27435
|
+
/* @__PURE__ */ u$2("div", { className: "p-4 border border-gray-200 rounded-lg overflow-x-auto", children: /* @__PURE__ */ u$2("pre", { children: /* @__PURE__ */ u$2("code", { children: componentCode }) }) })
|
|
27436
|
+
] }),
|
|
27437
|
+
/* @__PURE__ */ u$2(InfoParagraph, { children: [
|
|
27438
|
+
"You can add this component to your own website using the",
|
|
27439
|
+
" ",
|
|
27440
|
+
/* @__PURE__ */ u$2(InfoLink, { href: "https://github.com/GenSpectrum/dashboard-components", children: "GenSpectrum dashboard components library" }),
|
|
27441
|
+
" ",
|
|
27442
|
+
"and the code from above."
|
|
27443
|
+
] }),
|
|
27444
|
+
/* @__PURE__ */ u$2(InfoParagraph, { children: /* @__PURE__ */ u$2("form", { action: "https://codepen.io/pen/define", method: "POST", target: "_blank", children: [
|
|
27445
|
+
/* @__PURE__ */ u$2(
|
|
27446
|
+
"input",
|
|
27447
|
+
{
|
|
27448
|
+
type: "hidden",
|
|
27449
|
+
name: "data",
|
|
27450
|
+
value: JSON.stringify(codePenData).replace(/"/g, """).replace(/'/g, "'")
|
|
27451
|
+
}
|
|
27452
|
+
),
|
|
27453
|
+
/* @__PURE__ */ u$2("button", { className: "text-blue-600 hover:text-blue-800", type: "submit", children: "Click here to try it out on CodePen." })
|
|
27454
|
+
] }) })
|
|
27455
|
+
] });
|
|
27456
|
+
};
|
|
27457
|
+
function componentParametersToCode(componentName, params, lapisUrl) {
|
|
27458
|
+
const stringifyIfNeeded = (value) => {
|
|
27459
|
+
return typeof value === "object" ? JSON.stringify(value) : value;
|
|
27460
|
+
};
|
|
27461
|
+
const attributes = indentLines(
|
|
27462
|
+
Object.entries(params).map(([key, value]) => `${key}='${stringifyIfNeeded(value)}'`).join("\n"),
|
|
27463
|
+
4
|
|
27464
|
+
);
|
|
27465
|
+
return `<gs-app lapis="${lapisUrl}">
|
|
27466
|
+
<gs-${componentName}
|
|
27467
|
+
${attributes}
|
|
27468
|
+
/>
|
|
27469
|
+
</gs-app>`;
|
|
27470
|
+
}
|
|
27471
|
+
function generateFullExampleCode(componentCode, componentName) {
|
|
27472
|
+
const storyBookPath = `/docs/visualization-${componentName}--docs`;
|
|
27473
|
+
return `<html>
|
|
27474
|
+
<head>
|
|
27475
|
+
<script type="module" src="https://unpkg.com/@genspectrum/dashboard-components@latest/dist/dashboard-components.js"><\/script>
|
|
27476
|
+
<link rel="stylesheet" href="https://unpkg.com/@genspectrum/dashboard-components@latest/dist/style.css" />
|
|
27477
|
+
</head>
|
|
27478
|
+
|
|
27479
|
+
<body>
|
|
27480
|
+
<!-- Component documentation: https://genspectrum.github.io/dashboard-components/?path=${storyBookPath} -->
|
|
27481
|
+
${indentLines(componentCode, 2)}
|
|
27482
|
+
</body>
|
|
27483
|
+
</html>
|
|
27484
|
+
`;
|
|
27485
|
+
}
|
|
27486
|
+
function indentLines(text, numberSpaces) {
|
|
27487
|
+
const spaces = " ".repeat(numberSpaces);
|
|
27488
|
+
return text.split("\n").map((line) => spaces + line).join("\n");
|
|
27489
|
+
}
|
|
27416
27490
|
const LoadingDisplay = () => {
|
|
27417
27491
|
return /* @__PURE__ */ u$2("div", { "aria-label": "Loading", className: "h-full w-full skeleton" });
|
|
27418
27492
|
};
|
|
@@ -27798,7 +27872,7 @@ const Toolbar$5 = ({
|
|
|
27798
27872
|
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 */';
|
|
27799
27873
|
const minMaxPercentSliderCss = 'input[type=range]::-webkit-slider-thumb {\n -webkit-appearance: none;\n pointer-events: all;\n width: 24px;\n height: 24px;\n background-color: #fff;\n border-radius: 50%;\n box-shadow: 0 0 0 1px #C6C6C6;\n cursor: pointer;\n}\n\ninput[type=range]::-moz-range-thumb {\n -webkit-appearance: none;\n pointer-events: all;\n width: 24px;\n height: 24px;\n background-color: #fff;\n border-radius: 50%;\n box-shadow: 0 0 0 1px #C6C6C6;\n cursor: pointer;\n}\n\ninput[type=range]::-webkit-slider-thumb:hover {\n background: #f7f7f7;\n}\n\ninput[type=range]::-webkit-slider-thumb:active {\n box-shadow: inset 0 0 3px #387bbe, 0 0 9px #387bbe;\n -webkit-box-shadow: inset 0 0 3px #387bbe, 0 0 9px #387bbe;\n}\n\ninput[type="range"] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n height: 2px;\n width: 100%;\n position: absolute;\n background-color: #C6C6C6;\n pointer-events: none;\n}';
|
|
27800
27874
|
const tailwindStyle = `/*
|
|
27801
|
-
! tailwindcss v3.4.
|
|
27875
|
+
! tailwindcss v3.4.7 | MIT License | https://tailwindcss.com
|
|
27802
27876
|
*//*
|
|
27803
27877
|
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
|
|
27804
27878
|
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
|
|
@@ -28784,6 +28858,10 @@ html {
|
|
|
28784
28858
|
border-radius: inherit;
|
|
28785
28859
|
}
|
|
28786
28860
|
}
|
|
28861
|
+
.link {
|
|
28862
|
+
cursor: pointer;
|
|
28863
|
+
text-decoration-line: underline;
|
|
28864
|
+
}
|
|
28787
28865
|
.menu li.disabled {
|
|
28788
28866
|
cursor: not-allowed;
|
|
28789
28867
|
-webkit-user-select: none;
|
|
@@ -29280,6 +29358,14 @@ input.tab:checked + .tab-content,
|
|
|
29280
29358
|
.join > :where(*:not(:first-child)):is(.btn) {
|
|
29281
29359
|
margin-inline-start: calc(var(--border-btn) * -1);
|
|
29282
29360
|
}
|
|
29361
|
+
.link:focus {
|
|
29362
|
+
outline: 2px solid transparent;
|
|
29363
|
+
outline-offset: 2px;
|
|
29364
|
+
}
|
|
29365
|
+
.link:focus-visible {
|
|
29366
|
+
outline: 2px solid currentColor;
|
|
29367
|
+
outline-offset: 2px;
|
|
29368
|
+
}
|
|
29283
29369
|
.loading {
|
|
29284
29370
|
pointer-events: none;
|
|
29285
29371
|
display: inline-block;
|
|
@@ -30306,6 +30392,9 @@ input.tab:checked + .tab-content,
|
|
|
30306
30392
|
.ml-1 {
|
|
30307
30393
|
margin-left: 0.25rem;
|
|
30308
30394
|
}
|
|
30395
|
+
.ml-2 {
|
|
30396
|
+
margin-left: 0.5rem;
|
|
30397
|
+
}
|
|
30309
30398
|
.ml-2\\.5 {
|
|
30310
30399
|
margin-left: 0.625rem;
|
|
30311
30400
|
}
|
|
@@ -30399,6 +30488,12 @@ input.tab:checked + .tab-content,
|
|
|
30399
30488
|
.resize {
|
|
30400
30489
|
resize: both;
|
|
30401
30490
|
}
|
|
30491
|
+
.list-inside {
|
|
30492
|
+
list-style-position: inside;
|
|
30493
|
+
}
|
|
30494
|
+
.list-disc {
|
|
30495
|
+
list-style-type: disc;
|
|
30496
|
+
}
|
|
30402
30497
|
.flex-row {
|
|
30403
30498
|
flex-direction: row;
|
|
30404
30499
|
}
|
|
@@ -30429,6 +30524,9 @@ input.tab:checked + .tab-content,
|
|
|
30429
30524
|
.overflow-auto {
|
|
30430
30525
|
overflow: auto;
|
|
30431
30526
|
}
|
|
30527
|
+
.overflow-x-auto {
|
|
30528
|
+
overflow-x: auto;
|
|
30529
|
+
}
|
|
30432
30530
|
.whitespace-nowrap {
|
|
30433
30531
|
white-space: nowrap;
|
|
30434
30532
|
}
|
|
@@ -30438,6 +30536,9 @@ input.tab:checked + .tab-content,
|
|
|
30438
30536
|
.rounded-full {
|
|
30439
30537
|
border-radius: 9999px;
|
|
30440
30538
|
}
|
|
30539
|
+
.rounded-lg {
|
|
30540
|
+
border-radius: 0.5rem;
|
|
30541
|
+
}
|
|
30441
30542
|
.rounded-md {
|
|
30442
30543
|
border-radius: 0.375rem;
|
|
30443
30544
|
}
|
|
@@ -30693,6 +30794,12 @@ input.tab:checked + .tab-content,
|
|
|
30693
30794
|
}
|
|
30694
30795
|
.peer:hover ~ .peer-hover\\:visible {
|
|
30695
30796
|
visibility: visible;
|
|
30797
|
+
}
|
|
30798
|
+
@media (min-width: 640px) {
|
|
30799
|
+
|
|
30800
|
+
.sm\\:max-w-5xl {
|
|
30801
|
+
max-width: 64rem;
|
|
30802
|
+
}
|
|
30696
30803
|
}`;
|
|
30697
30804
|
var __defProp$c = Object.defineProperty;
|
|
30698
30805
|
var __decorateClass$c = (decorators, target, key, kind) => {
|
|
@@ -31184,10 +31291,39 @@ const Toolbar$4 = ({
|
|
|
31184
31291
|
filename: "insertions.csv"
|
|
31185
31292
|
}
|
|
31186
31293
|
),
|
|
31187
|
-
/* @__PURE__ */ u$2(
|
|
31294
|
+
/* @__PURE__ */ u$2(MutationsInfo, {}),
|
|
31188
31295
|
/* @__PURE__ */ u$2(Fullscreen, {})
|
|
31189
31296
|
] });
|
|
31190
31297
|
};
|
|
31298
|
+
const MutationsInfo = () => /* @__PURE__ */ u$2(Info, { children: [
|
|
31299
|
+
/* @__PURE__ */ u$2(InfoHeadline1, { children: "Mutations" }),
|
|
31300
|
+
/* @__PURE__ */ u$2(InfoParagraph, { children: [
|
|
31301
|
+
"This shows mutations of a variant. There are three types of mutations:",
|
|
31302
|
+
" ",
|
|
31303
|
+
/* @__PURE__ */ u$2(InfoLink, { href: "https://www.genome.gov/genetics-glossary/Substitution", children: "substitutions" }),
|
|
31304
|
+
",",
|
|
31305
|
+
" ",
|
|
31306
|
+
/* @__PURE__ */ u$2(InfoLink, { href: "https://www.genome.gov/genetics-glossary/Deletion", children: "deletions" }),
|
|
31307
|
+
" and",
|
|
31308
|
+
" ",
|
|
31309
|
+
/* @__PURE__ */ u$2(InfoLink, { href: "https://www.genome.gov/genetics-glossary/Insertion", children: "insertions" }),
|
|
31310
|
+
"."
|
|
31311
|
+
] }),
|
|
31312
|
+
/* @__PURE__ */ u$2(InfoHeadline2, { children: "Proportion calculation" }),
|
|
31313
|
+
/* @__PURE__ */ u$2(InfoParagraph, { children: "The proportion of a mutation is calculated by dividing the number of sequences with the mutation by the total number of sequences with a non-ambiguous symbol at the position." }),
|
|
31314
|
+
/* @__PURE__ */ u$2(InfoParagraph, { children: [
|
|
31315
|
+
/* @__PURE__ */ u$2("b", { children: "Example:" }),
|
|
31316
|
+
" Assume we look at nucleotide mutations at position 5 where the reference has a T and assume there are 10 sequences in total:",
|
|
31317
|
+
/* @__PURE__ */ u$2("ul", { className: "list-disc list-inside ml-2", children: [
|
|
31318
|
+
/* @__PURE__ */ u$2("li", { children: "3 sequences have a C," }),
|
|
31319
|
+
/* @__PURE__ */ u$2("li", { children: "2 sequences have a T," }),
|
|
31320
|
+
/* @__PURE__ */ u$2("li", { children: "1 sequence has a G," }),
|
|
31321
|
+
/* @__PURE__ */ u$2("li", { children: "3 sequences have an N," }),
|
|
31322
|
+
/* @__PURE__ */ u$2("li", { children: "1 sequence has a Y (which means T or C)," })
|
|
31323
|
+
] }),
|
|
31324
|
+
"then the proportion of the T5C mutation is 50%. The 4 sequences that have an N or Y are excluded from the calculation."
|
|
31325
|
+
] })
|
|
31326
|
+
] });
|
|
31191
31327
|
var __defProp$a = Object.defineProperty;
|
|
31192
31328
|
var __getOwnPropDesc$a = Object.getOwnPropertyDescriptor;
|
|
31193
31329
|
var __decorateClass$a = (decorators, target, key, kind) => {
|
|
@@ -33539,21 +33675,13 @@ const ScalingSelector = ({
|
|
|
33539
33675
|
}
|
|
33540
33676
|
);
|
|
33541
33677
|
};
|
|
33542
|
-
const PrevalenceOverTime = (
|
|
33678
|
+
const PrevalenceOverTime = (componentProps) => {
|
|
33679
|
+
const { width, height } = componentProps;
|
|
33543
33680
|
const size = { height, width };
|
|
33544
|
-
return /* @__PURE__ */ u$2(ErrorBoundary, { size, children: /* @__PURE__ */ u$2(ResizeContainer, { size, children: /* @__PURE__ */ u$2(PrevalenceOverTimeInner, { ...
|
|
33681
|
+
return /* @__PURE__ */ u$2(ErrorBoundary, { size, children: /* @__PURE__ */ u$2(ResizeContainer, { size, children: /* @__PURE__ */ u$2(PrevalenceOverTimeInner, { ...componentProps }) }) });
|
|
33545
33682
|
};
|
|
33546
|
-
const PrevalenceOverTimeInner = ({
|
|
33547
|
-
numeratorFilter,
|
|
33548
|
-
denominatorFilter,
|
|
33549
|
-
granularity,
|
|
33550
|
-
smoothingWindow,
|
|
33551
|
-
views,
|
|
33552
|
-
confidenceIntervalMethods,
|
|
33553
|
-
lapisDateField,
|
|
33554
|
-
pageSize,
|
|
33555
|
-
yAxisMaxConfig
|
|
33556
|
-
}) => {
|
|
33683
|
+
const PrevalenceOverTimeInner = (componentProps) => {
|
|
33684
|
+
const { numeratorFilter, denominatorFilter, granularity, smoothingWindow, lapisDateField } = componentProps;
|
|
33557
33685
|
const lapis = x$1(LapisUrlContext);
|
|
33558
33686
|
const { data, error, isLoading } = useQuery(
|
|
33559
33687
|
() => queryPrevalenceOverTime(
|
|
@@ -33575,30 +33703,15 @@ const PrevalenceOverTimeInner = ({
|
|
|
33575
33703
|
if (data === null) {
|
|
33576
33704
|
return /* @__PURE__ */ u$2(NoDataDisplay, {});
|
|
33577
33705
|
}
|
|
33578
|
-
return /* @__PURE__ */ u$2(
|
|
33579
|
-
PrevalenceOverTimeTabs,
|
|
33580
|
-
{
|
|
33581
|
-
views,
|
|
33582
|
-
data,
|
|
33583
|
-
granularity,
|
|
33584
|
-
confidenceIntervalMethods,
|
|
33585
|
-
pageSize,
|
|
33586
|
-
yAxisMaxConfig
|
|
33587
|
-
}
|
|
33588
|
-
);
|
|
33706
|
+
return /* @__PURE__ */ u$2(PrevalenceOverTimeTabs, { data, ...componentProps });
|
|
33589
33707
|
};
|
|
33590
|
-
const PrevalenceOverTimeTabs = ({
|
|
33591
|
-
views,
|
|
33592
|
-
data,
|
|
33593
|
-
granularity,
|
|
33594
|
-
confidenceIntervalMethods,
|
|
33595
|
-
pageSize,
|
|
33596
|
-
yAxisMaxConfig
|
|
33597
|
-
}) => {
|
|
33708
|
+
const PrevalenceOverTimeTabs = ({ data, ...componentProps }) => {
|
|
33709
|
+
const { views, granularity, confidenceIntervalMethods, pageSize, yAxisMaxLinear, yAxisMaxLogarithmic } = componentProps;
|
|
33598
33710
|
const [yAxisScaleType, setYAxisScaleType] = h$1("linear");
|
|
33599
33711
|
const [confidenceIntervalMethod, setConfidenceIntervalMethod] = h$1(
|
|
33600
33712
|
confidenceIntervalMethods.length > 0 ? confidenceIntervalMethods[0] : "none"
|
|
33601
33713
|
);
|
|
33714
|
+
const yAxisMaxConfig = { linear: yAxisMaxLinear, logarithmic: yAxisMaxLogarithmic };
|
|
33602
33715
|
const getTab = (view) => {
|
|
33603
33716
|
switch (view) {
|
|
33604
33717
|
case "bar":
|
|
@@ -33654,10 +33767,9 @@ const PrevalenceOverTimeTabs = ({
|
|
|
33654
33767
|
yAxisScaleType,
|
|
33655
33768
|
setYAxisScaleType,
|
|
33656
33769
|
data,
|
|
33657
|
-
granularity,
|
|
33658
|
-
confidenceIntervalMethods,
|
|
33659
33770
|
confidenceIntervalMethod,
|
|
33660
|
-
setConfidenceIntervalMethod
|
|
33771
|
+
setConfidenceIntervalMethod,
|
|
33772
|
+
...componentProps
|
|
33661
33773
|
}
|
|
33662
33774
|
);
|
|
33663
33775
|
return /* @__PURE__ */ u$2(Tabs, { tabs, toolbar });
|
|
@@ -33666,12 +33778,12 @@ const Toolbar$3 = ({
|
|
|
33666
33778
|
activeTab,
|
|
33667
33779
|
yAxisScaleType,
|
|
33668
33780
|
setYAxisScaleType,
|
|
33669
|
-
confidenceIntervalMethods,
|
|
33670
33781
|
confidenceIntervalMethod,
|
|
33671
33782
|
setConfidenceIntervalMethod,
|
|
33672
33783
|
data,
|
|
33673
|
-
|
|
33784
|
+
...componentProps
|
|
33674
33785
|
}) => {
|
|
33786
|
+
const { confidenceIntervalMethods, granularity } = componentProps;
|
|
33675
33787
|
return /* @__PURE__ */ u$2(k$1, { children: [
|
|
33676
33788
|
activeTab !== "Table" && /* @__PURE__ */ u$2(ScalingSelector, { yAxisScaleType, setYAxisScaleType }),
|
|
33677
33789
|
(activeTab === "Bar" || activeTab === "Line") && /* @__PURE__ */ u$2(
|
|
@@ -33690,14 +33802,34 @@ const Toolbar$3 = ({
|
|
|
33690
33802
|
filename: "prevalence_over_time.csv"
|
|
33691
33803
|
}
|
|
33692
33804
|
),
|
|
33693
|
-
/* @__PURE__ */ u$2(PrevalenceOverTimeInfo, {}),
|
|
33805
|
+
/* @__PURE__ */ u$2(PrevalenceOverTimeInfo, { ...componentProps }),
|
|
33694
33806
|
/* @__PURE__ */ u$2(Fullscreen, {})
|
|
33695
33807
|
] });
|
|
33696
33808
|
};
|
|
33697
|
-
const PrevalenceOverTimeInfo = () => {
|
|
33809
|
+
const PrevalenceOverTimeInfo = (componentProps) => {
|
|
33810
|
+
const { granularity, smoothingWindow, views } = componentProps;
|
|
33811
|
+
const lapis = x$1(LapisUrlContext);
|
|
33698
33812
|
return /* @__PURE__ */ u$2(Info, { children: [
|
|
33699
33813
|
/* @__PURE__ */ u$2(InfoHeadline1, { children: "Prevalence over time" }),
|
|
33700
|
-
/* @__PURE__ */ u$2(InfoParagraph, { children:
|
|
33814
|
+
/* @__PURE__ */ u$2(InfoParagraph, { children: [
|
|
33815
|
+
"This presents the proportion of one or more variants per ",
|
|
33816
|
+
/* @__PURE__ */ u$2("b", { children: granularity }),
|
|
33817
|
+
smoothingWindow > 0 && `, smoothed using a ${smoothingWindow}-${granularity} sliding window`,
|
|
33818
|
+
". The proportion is calculated as the number of sequences of the variant(s) divided by the number of sequences that match the ",
|
|
33819
|
+
/* @__PURE__ */ u$2("code", { children: "denominatorFilter" }),
|
|
33820
|
+
" (see below)."
|
|
33821
|
+
] }),
|
|
33822
|
+
/* @__PURE__ */ u$2(InfoParagraph, { children: 'Sequences that have no assigned date will not be shown in the line and bubble chart. They will show up in the bar and table view with date "unknown".' }),
|
|
33823
|
+
views.includes("bubble") && /* @__PURE__ */ u$2(k$1, { children: [
|
|
33824
|
+
/* @__PURE__ */ u$2(InfoHeadline2, { children: "Bubble chart" }),
|
|
33825
|
+
/* @__PURE__ */ u$2(InfoParagraph, { children: [
|
|
33826
|
+
"The size of the bubble scales with the total number of available sequences from the",
|
|
33827
|
+
" ",
|
|
33828
|
+
granularity,
|
|
33829
|
+
"."
|
|
33830
|
+
] })
|
|
33831
|
+
] }),
|
|
33832
|
+
/* @__PURE__ */ u$2(InfoComponentCode, { componentName: "prevalence-over-time", params: componentProps, lapisUrl: lapis })
|
|
33701
33833
|
] });
|
|
33702
33834
|
};
|
|
33703
33835
|
const maxInData = (data) => Math.max(...data.flatMap((variant) => variant.content.map((dataPoint) => dataPoint.prevalence)));
|
|
@@ -33741,10 +33873,8 @@ let PrevalenceOverTimeComponent = class extends PreactLitAdapterWithGridJsStyles
|
|
|
33741
33873
|
height: this.height,
|
|
33742
33874
|
lapisDateField: this.lapisDateField,
|
|
33743
33875
|
pageSize: this.pageSize,
|
|
33744
|
-
|
|
33745
|
-
|
|
33746
|
-
logarithmic: this.yAxisMaxLogarithmic
|
|
33747
|
-
}
|
|
33876
|
+
yAxisMaxLinear: this.yAxisMaxLinear,
|
|
33877
|
+
yAxisMaxLogarithmic: this.yAxisMaxLogarithmic
|
|
33748
33878
|
}
|
|
33749
33879
|
);
|
|
33750
33880
|
}
|
|
@@ -34268,12 +34398,20 @@ const AggregatedDataTabs = ({ data, views, fields, pageSize }) => {
|
|
|
34268
34398
|
}
|
|
34269
34399
|
};
|
|
34270
34400
|
const tabs = views.map((view) => getTab(view));
|
|
34271
|
-
return /* @__PURE__ */ u$2(Tabs, { tabs, toolbar: /* @__PURE__ */ u$2(Toolbar$2, { data }) });
|
|
34401
|
+
return /* @__PURE__ */ u$2(Tabs, { tabs, toolbar: /* @__PURE__ */ u$2(Toolbar$2, { data, fields }) });
|
|
34272
34402
|
};
|
|
34273
|
-
const Toolbar$2 = ({ data }) => {
|
|
34403
|
+
const Toolbar$2 = ({ data, fields }) => {
|
|
34274
34404
|
return /* @__PURE__ */ u$2("div", { class: "flex flex-row", children: [
|
|
34275
34405
|
/* @__PURE__ */ u$2(CsvDownloadButton, { className: "mx-1 btn btn-xs", getData: () => data, filename: "aggregate.csv" }),
|
|
34276
|
-
/* @__PURE__ */ u$2(Info, { children:
|
|
34406
|
+
/* @__PURE__ */ u$2(Info, { children: [
|
|
34407
|
+
/* @__PURE__ */ u$2(InfoHeadline1, { children: "Aggregated data" }),
|
|
34408
|
+
/* @__PURE__ */ u$2(InfoParagraph, { children: [
|
|
34409
|
+
"This table shows the number and proportion of sequences stratified by the following fields:",
|
|
34410
|
+
" ",
|
|
34411
|
+
fields.join(", "),
|
|
34412
|
+
". The proportion is calculated with respect to the total count within the filtered dataset."
|
|
34413
|
+
] })
|
|
34414
|
+
] }),
|
|
34277
34415
|
/* @__PURE__ */ u$2(Fullscreen, {})
|
|
34278
34416
|
] });
|
|
34279
34417
|
};
|
|
@@ -34523,9 +34661,24 @@ const NumberSequencesOverTimeInner = ({
|
|
|
34523
34661
|
if (data === null) {
|
|
34524
34662
|
return /* @__PURE__ */ u$2(NoDataDisplay, {});
|
|
34525
34663
|
}
|
|
34526
|
-
return /* @__PURE__ */ u$2(
|
|
34664
|
+
return /* @__PURE__ */ u$2(
|
|
34665
|
+
NumberSequencesOverTimeTabs,
|
|
34666
|
+
{
|
|
34667
|
+
views,
|
|
34668
|
+
data,
|
|
34669
|
+
granularity,
|
|
34670
|
+
smoothingWindow,
|
|
34671
|
+
pageSize
|
|
34672
|
+
}
|
|
34673
|
+
);
|
|
34527
34674
|
};
|
|
34528
|
-
const NumberSequencesOverTimeTabs = ({
|
|
34675
|
+
const NumberSequencesOverTimeTabs = ({
|
|
34676
|
+
views,
|
|
34677
|
+
data,
|
|
34678
|
+
granularity,
|
|
34679
|
+
smoothingWindow,
|
|
34680
|
+
pageSize
|
|
34681
|
+
}) => {
|
|
34529
34682
|
const [yAxisScaleType, setYAxisScaleType] = h$1("linear");
|
|
34530
34683
|
const getTab = (view) => {
|
|
34531
34684
|
switch (view) {
|
|
@@ -34558,6 +34711,7 @@ const NumberSequencesOverTimeTabs = ({ views, data, granularity, pageSize }) =>
|
|
|
34558
34711
|
activeTab,
|
|
34559
34712
|
data,
|
|
34560
34713
|
granularity,
|
|
34714
|
+
smoothingWindow,
|
|
34561
34715
|
yAxisScaleType,
|
|
34562
34716
|
setYAxisScaleType
|
|
34563
34717
|
}
|
|
@@ -34565,7 +34719,14 @@ const NumberSequencesOverTimeTabs = ({ views, data, granularity, pageSize }) =>
|
|
|
34565
34719
|
}
|
|
34566
34720
|
);
|
|
34567
34721
|
};
|
|
34568
|
-
const Toolbar$1 = ({
|
|
34722
|
+
const Toolbar$1 = ({
|
|
34723
|
+
activeTab,
|
|
34724
|
+
data,
|
|
34725
|
+
granularity,
|
|
34726
|
+
yAxisScaleType,
|
|
34727
|
+
setYAxisScaleType,
|
|
34728
|
+
smoothingWindow
|
|
34729
|
+
}) => {
|
|
34569
34730
|
return /* @__PURE__ */ u$2(k$1, { children: [
|
|
34570
34731
|
activeTab !== "Table" && /* @__PURE__ */ u$2(
|
|
34571
34732
|
ScalingSelector,
|
|
@@ -34583,13 +34744,21 @@ const Toolbar$1 = ({ activeTab, data, granularity, yAxisScaleType, setYAxisScale
|
|
|
34583
34744
|
filename: "number_of_sequences_over_time.csv"
|
|
34584
34745
|
}
|
|
34585
34746
|
),
|
|
34586
|
-
/* @__PURE__ */ u$2(NumberSequencesOverTimeInfo, {}),
|
|
34747
|
+
/* @__PURE__ */ u$2(NumberSequencesOverTimeInfo, { granularity, smoothingWindow }),
|
|
34587
34748
|
/* @__PURE__ */ u$2(Fullscreen, {})
|
|
34588
34749
|
] });
|
|
34589
34750
|
};
|
|
34590
|
-
const NumberSequencesOverTimeInfo = (
|
|
34751
|
+
const NumberSequencesOverTimeInfo = ({
|
|
34752
|
+
granularity,
|
|
34753
|
+
smoothingWindow
|
|
34754
|
+
}) => /* @__PURE__ */ u$2(Info, { children: [
|
|
34591
34755
|
/* @__PURE__ */ u$2(InfoHeadline1, { children: "Number of sequences over time" }),
|
|
34592
|
-
/* @__PURE__ */ u$2(InfoParagraph, { children:
|
|
34756
|
+
/* @__PURE__ */ u$2(InfoParagraph, { children: [
|
|
34757
|
+
"This presents the number of available sequences of a variant per ",
|
|
34758
|
+
/* @__PURE__ */ u$2("b", { children: granularity }),
|
|
34759
|
+
smoothingWindow > 0 && `, smoothed using a ${smoothingWindow}-${granularity} sliding window`,
|
|
34760
|
+
"."
|
|
34761
|
+
] })
|
|
34593
34762
|
] });
|
|
34594
34763
|
var __defProp$6 = Object.defineProperty;
|
|
34595
34764
|
var __getOwnPropDesc$6 = Object.getOwnPropertyDescriptor;
|