@genspectrum/dashboard-components 0.7.1 → 0.8.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 +1 -24
- package/dist/assets/mutationOverTimeWorker-BOCXtKzd.js.map +1 -1
- package/dist/dashboard-components.js +28 -27
- package/dist/dashboard-components.js.map +1 -1
- package/dist/genspectrum-components.d.ts +39 -50
- package/package.json +2 -2
- package/src/operator/SlidingOperator.ts +3 -0
- package/src/preact/components/error-display.tsx +1 -0
- package/src/preact/mutationFilter/mutation-filter.stories.tsx +5 -34
- package/src/preact/mutationFilter/mutation-filter.tsx +0 -13
- package/src/preact/mutationsOverTime/mutations-over-time.tsx +10 -4
- package/src/preact/prevalenceOverTime/__mockData__/numeratorFilterNoData.json +11 -0
- package/src/preact/prevalenceOverTime/prevalence-over-time-bar-chart.tsx +13 -6
- package/src/preact/prevalenceOverTime/prevalence-over-time-bubble-chart.tsx +13 -6
- package/src/preact/prevalenceOverTime/prevalence-over-time-line-chart.tsx +13 -6
- package/src/preact/prevalenceOverTime/prevalence-over-time.stories.tsx +74 -11
- package/src/preact/prevalenceOverTime/prevalence-over-time.tsx +1 -1
- package/src/preact/relativeGrowthAdvantage/relative-growth-advantage.stories.tsx +12 -5
- package/src/preact/webWorkers/useWebWorker.ts +4 -8
- package/src/web-components/input/gs-mutation-filter.stories.ts +1 -27
- package/src/web-components/input/gs-mutation-filter.tsx +0 -11
- package/standalone-bundle/dashboard-components.js +2384 -2383
- package/standalone-bundle/dashboard-components.js.map +1 -1
|
@@ -5779,12 +5779,15 @@ const PrevalenceOverTimeBarChart = ({
|
|
|
5779
5779
|
confidenceIntervalMethod,
|
|
5780
5780
|
yAxisMaxConfig
|
|
5781
5781
|
}) => {
|
|
5782
|
-
const nullFirstData = data.map((variantData) => {
|
|
5782
|
+
const nullFirstData = data.filter((prevalenceOverTimeData) => prevalenceOverTimeData.content.length > 0).map((variantData) => {
|
|
5783
5783
|
return {
|
|
5784
5784
|
content: variantData.content.sort(sortNullToBeginningThenByDate),
|
|
5785
5785
|
displayName: variantData.displayName
|
|
5786
5786
|
};
|
|
5787
5787
|
});
|
|
5788
|
+
if (nullFirstData.length === 0) {
|
|
5789
|
+
return /* @__PURE__ */ u$1(NoDataDisplay, {});
|
|
5790
|
+
}
|
|
5788
5791
|
const datasets2 = nullFirstData.map((graphData, index) => getDataset$1(graphData, index, confidenceIntervalMethod));
|
|
5789
5792
|
const maxY = yAxisScaleType !== "logit" ? getYAxisMax(maxInData(nullFirstData), yAxisMaxConfig == null ? void 0 : yAxisMaxConfig[yAxisScaleType]) : void 0;
|
|
5790
5793
|
const config = {
|
|
@@ -6811,12 +6814,15 @@ const PrevalenceOverTimeBubbleChart = ({
|
|
|
6811
6814
|
yAxisScaleType,
|
|
6812
6815
|
yAxisMaxConfig
|
|
6813
6816
|
}) => {
|
|
6814
|
-
const nonNullDateRangeData = data.map((variantData) => {
|
|
6817
|
+
const nonNullDateRangeData = data.filter((prevalenceOverTimeData) => prevalenceOverTimeData.content.length > 0).map((variantData) => {
|
|
6815
6818
|
return {
|
|
6816
6819
|
content: variantData.content.filter((dataPoint) => dataPoint.dateRange !== null),
|
|
6817
6820
|
displayName: variantData.displayName
|
|
6818
6821
|
};
|
|
6819
6822
|
});
|
|
6823
|
+
if (nonNullDateRangeData.length === 0) {
|
|
6824
|
+
return /* @__PURE__ */ u$1(NoDataDisplay, {});
|
|
6825
|
+
}
|
|
6820
6826
|
const firstDate = nonNullDateRangeData[0].content[0].dateRange;
|
|
6821
6827
|
const total = nonNullDateRangeData.map((graphData) => graphData.content.map((dataPoint) => dataPoint.total)).flat();
|
|
6822
6828
|
const [minTotal, maxTotal] = getMinMaxNumber(total);
|
|
@@ -6887,12 +6893,15 @@ const PrevalenceOverTimeLineChart = ({
|
|
|
6887
6893
|
confidenceIntervalMethod,
|
|
6888
6894
|
yAxisMaxConfig
|
|
6889
6895
|
}) => {
|
|
6890
|
-
const nonNullDateRangeData = data.map((variantData) => {
|
|
6896
|
+
const nonNullDateRangeData = data.filter((prevalenceOverTimeData) => prevalenceOverTimeData.content.length > 0).map((variantData) => {
|
|
6891
6897
|
return {
|
|
6892
6898
|
content: variantData.content.filter((dataPoint) => dataPoint.dateRange !== null),
|
|
6893
6899
|
displayName: variantData.displayName
|
|
6894
6900
|
};
|
|
6895
6901
|
});
|
|
6902
|
+
if (nonNullDateRangeData.length === 0) {
|
|
6903
|
+
return /* @__PURE__ */ u$1(NoDataDisplay, {});
|
|
6904
|
+
}
|
|
6896
6905
|
const datasets2 = nonNullDateRangeData.map((graphData, index) => getDataset(graphData, index, confidenceIntervalMethod)).flat();
|
|
6897
6906
|
const maxY = yAxisScaleType !== "logit" ? getYAxisMax(maxInData(nonNullDateRangeData), yAxisMaxConfig == null ? void 0 : yAxisMaxConfig[yAxisScaleType]) : void 0;
|
|
6898
6907
|
const config = {
|
|
@@ -7159,6 +7168,9 @@ class SlidingOperator {
|
|
|
7159
7168
|
async evaluate(lapis, signal) {
|
|
7160
7169
|
const childEvaluated = await this.child.evaluate(lapis, signal);
|
|
7161
7170
|
const content = new Array();
|
|
7171
|
+
if (childEvaluated.content.length === 0) {
|
|
7172
|
+
return { content };
|
|
7173
|
+
}
|
|
7162
7174
|
const numberOfWindows = Math.max(childEvaluated.content.length - this.windowSize, 0) + 1;
|
|
7163
7175
|
for (let i2 = 0; i2 < numberOfWindows; i2++) {
|
|
7164
7176
|
content.push(this.aggregate(childEvaluated.content.slice(i2, i2 + this.windowSize)));
|
|
@@ -7339,7 +7351,7 @@ const PrevalenceOverTimeInner = (componentProps) => {
|
|
|
7339
7351
|
if (error !== null) {
|
|
7340
7352
|
return /* @__PURE__ */ u$1(ErrorDisplay, { error });
|
|
7341
7353
|
}
|
|
7342
|
-
if (data === null) {
|
|
7354
|
+
if (data === null || data.every((variant) => variant.content.length === 0)) {
|
|
7343
7355
|
return /* @__PURE__ */ u$1(NoDataDisplay, {});
|
|
7344
7356
|
}
|
|
7345
7357
|
return /* @__PURE__ */ u$1(PrevalenceOverTimeTabs, { data, ...componentProps });
|
|
@@ -8888,13 +8900,10 @@ function useWebWorker(messageToWorker, worker) {
|
|
|
8888
8900
|
setError(new Error(`Worker received a message that it cannot deserialize: ${event.data}`));
|
|
8889
8901
|
setIsLoading(false);
|
|
8890
8902
|
};
|
|
8891
|
-
|
|
8892
|
-
|
|
8893
|
-
};
|
|
8894
|
-
}, []);
|
|
8895
|
-
T(() => {
|
|
8903
|
+
}, [worker]);
|
|
8904
|
+
y(() => {
|
|
8896
8905
|
worker.postMessage(messageToWorker);
|
|
8897
|
-
}, [messageToWorker]);
|
|
8906
|
+
}, [messageToWorker, worker]);
|
|
8898
8907
|
return { data, error, isLoading };
|
|
8899
8908
|
}
|
|
8900
8909
|
const MutationsOverTime = (componentProps) => {
|
|
@@ -8905,15 +8914,19 @@ const MutationsOverTime = (componentProps) => {
|
|
|
8905
8914
|
const MutationsOverTimeInner = (componentProps) => {
|
|
8906
8915
|
const lapis = x(LapisUrlContext);
|
|
8907
8916
|
const { lapisFilter, sequenceType, granularity, lapisDateField } = componentProps;
|
|
8908
|
-
const
|
|
8909
|
-
{
|
|
8917
|
+
const messageToWorker = T(() => {
|
|
8918
|
+
return {
|
|
8910
8919
|
lapisFilter,
|
|
8911
8920
|
sequenceType,
|
|
8912
8921
|
granularity,
|
|
8913
8922
|
lapisDateField,
|
|
8914
8923
|
lapis
|
|
8915
|
-
}
|
|
8916
|
-
|
|
8924
|
+
};
|
|
8925
|
+
}, [granularity, lapis, lapisDateField, lapisFilter, sequenceType]);
|
|
8926
|
+
const worker = T(() => new WorkerWrapper(), []);
|
|
8927
|
+
const { data, error, isLoading } = useWebWorker(
|
|
8928
|
+
messageToWorker,
|
|
8929
|
+
worker
|
|
8917
8930
|
);
|
|
8918
8931
|
if (isLoading) {
|
|
8919
8932
|
return /* @__PURE__ */ u$1(LoadingDisplay, {});
|
|
@@ -9960,17 +9973,6 @@ const MutationFilterInner = ({ initialValue }) => {
|
|
|
9960
9973
|
})
|
|
9961
9974
|
);
|
|
9962
9975
|
};
|
|
9963
|
-
const handleOnBlur = () => {
|
|
9964
|
-
var _a;
|
|
9965
|
-
const detail = mapToMutationFilterStrings(selectedFilters);
|
|
9966
|
-
(_a = formRef.current) == null ? void 0 : _a.dispatchEvent(
|
|
9967
|
-
new CustomEvent("gs-mutation-filter-on-blur", {
|
|
9968
|
-
detail,
|
|
9969
|
-
bubbles: true,
|
|
9970
|
-
composed: true
|
|
9971
|
-
})
|
|
9972
|
-
);
|
|
9973
|
-
};
|
|
9974
9976
|
const handleInputChange = (event) => {
|
|
9975
9977
|
setInputValue(event.target.value);
|
|
9976
9978
|
setIsError(false);
|
|
@@ -9998,8 +10000,7 @@ const MutationFilterInner = ({ initialValue }) => {
|
|
|
9998
10000
|
type: "text",
|
|
9999
10001
|
value: inputValue,
|
|
10000
10002
|
onInput: handleInputChange,
|
|
10001
|
-
placeholder: getPlaceholder(referenceGenome)
|
|
10002
|
-
onBlur: handleOnBlur
|
|
10003
|
+
placeholder: getPlaceholder(referenceGenome)
|
|
10003
10004
|
}
|
|
10004
10005
|
),
|
|
10005
10006
|
/* @__PURE__ */ u$1("button", { type: "submit", className: "btn btn-xs m-1", children: "+" })
|