@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.
@@ -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
- return () => {
8892
- worker.terminate();
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 { data, error, isLoading } = useWebWorker(
8909
- {
8917
+ const messageToWorker = T(() => {
8918
+ return {
8910
8919
  lapisFilter,
8911
8920
  sequenceType,
8912
8921
  granularity,
8913
8922
  lapisDateField,
8914
8923
  lapis
8915
- },
8916
- new WorkerWrapper()
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: "+" })