@vitessce/all 3.5.4 → 3.5.6

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.
@@ -1,5 +1,5 @@
1
1
  import { i as inflate_1 } from "./pako.esm-68f84e2a.js";
2
- import { aP as BaseDecoder } from "./index-af9740fa.js";
2
+ import { aP as BaseDecoder } from "./index-7925c6be.js";
3
3
  import "react";
4
4
  import "@vitessce/vit-s";
5
5
  import "react-dom";
@@ -1,6 +1,6 @@
1
1
  import React__default, { createElement, isValidElement, PureComponent, Component } from "react";
2
2
  import ReactDOM__default, { findDOMNode as findDOMNode$1 } from "react-dom";
3
- import { aS as commonjsGlobal$1, aT as objectAssign, g as getDefaultExportFromCjs$1, aU as earcut } from "./index-af9740fa.js";
3
+ import { aS as commonjsGlobal$1, aT as objectAssign, g as getDefaultExportFromCjs$1, aU as earcut } from "./index-7925c6be.js";
4
4
  import "@vitessce/vit-s";
5
5
  var promise = {};
6
6
  (function(exports2) {
@@ -9936,7 +9936,8 @@ const ViewType$1 = {
9936
9936
  DOT_PLOT: "dotPlot",
9937
9937
  FEATURE_BAR_PLOT: "featureBarPlot",
9938
9938
  BIOMARKER_SELECT: "biomarkerSelect",
9939
- LINK_CONTROLLER: "linkController"
9939
+ LINK_CONTROLLER: "linkController",
9940
+ DUAL_SCATTERPLOT: "dualScatterplot"
9940
9941
  };
9941
9942
  const DataType$3 = {
9942
9943
  OBS_LABELS: "obsLabels",
@@ -10137,15 +10138,23 @@ const CoordinationType$1 = {
10137
10138
  HEATMAP_ZOOM_Y: "heatmapZoomY",
10138
10139
  HEATMAP_TARGET_X: "heatmapTargetX",
10139
10140
  HEATMAP_TARGET_Y: "heatmapTargetY",
10140
- OBS_FILTER: "obsFilter",
10141
10141
  OBS_HIGHLIGHT: "obsHighlight",
10142
+ OBS_SELECTION: "obsSelection",
10142
10143
  OBS_SET_SELECTION: "obsSetSelection",
10144
+ OBS_SELECTION_MODE: "obsSelectionMode",
10145
+ OBS_FILTER: "obsFilter",
10146
+ OBS_SET_FILTER: "obsSetFilter",
10147
+ OBS_FILTER_MODE: "obsFilterMode",
10143
10148
  OBS_SET_HIGHLIGHT: "obsSetHighlight",
10144
10149
  OBS_SET_EXPANSION: "obsSetExpansion",
10145
10150
  OBS_SET_COLOR: "obsSetColor",
10146
- FEATURE_FILTER: "featureFilter",
10147
10151
  FEATURE_HIGHLIGHT: "featureHighlight",
10148
10152
  FEATURE_SELECTION: "featureSelection",
10153
+ FEATURE_SET_SELECTION: "featureSetSelection",
10154
+ FEATURE_SELECTION_MODE: "featureSelectionMode",
10155
+ FEATURE_FILTER: "featureFilter",
10156
+ FEATURE_SET_FILTER: "featureSetFilter",
10157
+ FEATURE_FILTER_MODE: "featureFilterMode",
10149
10158
  FEATURE_VALUE_COLORMAP: "featureValueColormap",
10150
10159
  FEATURE_VALUE_TRANSFORM: "featureValueTransform",
10151
10160
  FEATURE_VALUE_COLORMAP_RANGE: "featureValueColormapRange",
@@ -10212,7 +10221,12 @@ const CoordinationType$1 = {
10212
10221
  SPATIAL_CHANNEL_LABEL_SIZE: "spatialChannelLabelSize",
10213
10222
  // Multi-sample / comparative
10214
10223
  SAMPLE_TYPE: "sampleType",
10224
+ SAMPLE_SELECTION: "sampleSelection",
10215
10225
  SAMPLE_SET_SELECTION: "sampleSetSelection",
10226
+ SAMPLE_SELECTION_MODE: "sampleSelectionMode",
10227
+ SAMPLE_FILTER: "sampleFilter",
10228
+ SAMPLE_SET_FILTER: "sampleSetFilter",
10229
+ SAMPLE_FILTER_MODE: "sampleFilterMode",
10216
10230
  SAMPLE_SET_COLOR: "sampleSetColor",
10217
10231
  EMBEDDING_POINTS_VISIBLE: "embeddingPointsVisible",
10218
10232
  EMBEDDING_CONTOURS_VISIBLE: "embeddingContoursVisible",
@@ -10324,6 +10338,50 @@ const COMPONENT_COORDINATION_TYPES = {
10324
10338
  CoordinationType$1.OBS_FILTER,
10325
10339
  CoordinationType$1.OBS_HIGHLIGHT,
10326
10340
  CoordinationType$1.OBS_SET_SELECTION,
10341
+ CoordinationType$1.OBS_SET_FILTER,
10342
+ CoordinationType$1.OBS_SET_HIGHLIGHT,
10343
+ CoordinationType$1.OBS_SET_COLOR,
10344
+ CoordinationType$1.FEATURE_HIGHLIGHT,
10345
+ CoordinationType$1.FEATURE_SELECTION,
10346
+ CoordinationType$1.FEATURE_VALUE_COLORMAP,
10347
+ CoordinationType$1.FEATURE_VALUE_COLORMAP_RANGE,
10348
+ CoordinationType$1.OBS_COLOR_ENCODING,
10349
+ CoordinationType$1.ADDITIONAL_OBS_SETS,
10350
+ CoordinationType$1.TOOLTIPS_VISIBLE,
10351
+ CoordinationType$1.SAMPLE_TYPE,
10352
+ CoordinationType$1.SAMPLE_SET_SELECTION,
10353
+ CoordinationType$1.SAMPLE_SET_FILTER,
10354
+ CoordinationType$1.SAMPLE_SET_COLOR,
10355
+ CoordinationType$1.EMBEDDING_POINTS_VISIBLE,
10356
+ CoordinationType$1.EMBEDDING_CONTOURS_VISIBLE,
10357
+ CoordinationType$1.EMBEDDING_CONTOURS_FILLED,
10358
+ CoordinationType$1.EMBEDDING_CONTOUR_PERCENTILES,
10359
+ CoordinationType$1.CONTOUR_COLOR_ENCODING,
10360
+ CoordinationType$1.CONTOUR_COLOR
10361
+ ],
10362
+ [ViewType$1.DUAL_SCATTERPLOT]: [
10363
+ CoordinationType$1.DATASET,
10364
+ CoordinationType$1.OBS_TYPE,
10365
+ CoordinationType$1.FEATURE_TYPE,
10366
+ CoordinationType$1.FEATURE_VALUE_TYPE,
10367
+ CoordinationType$1.OBS_LABELS_TYPE,
10368
+ CoordinationType$1.EMBEDDING_TYPE,
10369
+ CoordinationType$1.EMBEDDING_ZOOM,
10370
+ CoordinationType$1.EMBEDDING_ROTATION,
10371
+ CoordinationType$1.EMBEDDING_TARGET_X,
10372
+ CoordinationType$1.EMBEDDING_TARGET_Y,
10373
+ CoordinationType$1.EMBEDDING_TARGET_Z,
10374
+ CoordinationType$1.EMBEDDING_OBS_SET_POLYGONS_VISIBLE,
10375
+ CoordinationType$1.EMBEDDING_OBS_SET_LABELS_VISIBLE,
10376
+ CoordinationType$1.EMBEDDING_OBS_SET_LABEL_SIZE,
10377
+ CoordinationType$1.EMBEDDING_OBS_RADIUS,
10378
+ CoordinationType$1.EMBEDDING_OBS_RADIUS_MODE,
10379
+ CoordinationType$1.EMBEDDING_OBS_OPACITY,
10380
+ CoordinationType$1.EMBEDDING_OBS_OPACITY_MODE,
10381
+ CoordinationType$1.OBS_FILTER,
10382
+ CoordinationType$1.OBS_HIGHLIGHT,
10383
+ CoordinationType$1.OBS_SET_SELECTION,
10384
+ CoordinationType$1.OBS_SET_FILTER,
10327
10385
  CoordinationType$1.OBS_SET_HIGHLIGHT,
10328
10386
  CoordinationType$1.OBS_SET_COLOR,
10329
10387
  CoordinationType$1.FEATURE_HIGHLIGHT,
@@ -10335,6 +10393,7 @@ const COMPONENT_COORDINATION_TYPES = {
10335
10393
  CoordinationType$1.TOOLTIPS_VISIBLE,
10336
10394
  CoordinationType$1.SAMPLE_TYPE,
10337
10395
  CoordinationType$1.SAMPLE_SET_SELECTION,
10396
+ CoordinationType$1.SAMPLE_SET_FILTER,
10338
10397
  CoordinationType$1.SAMPLE_SET_COLOR,
10339
10398
  CoordinationType$1.EMBEDDING_POINTS_VISIBLE,
10340
10399
  CoordinationType$1.EMBEDDING_CONTOURS_VISIBLE,
@@ -10401,6 +10460,7 @@ const COMPONENT_COORDINATION_TYPES = {
10401
10460
  CoordinationType$1.OBS_FILTER,
10402
10461
  CoordinationType$1.OBS_HIGHLIGHT,
10403
10462
  CoordinationType$1.OBS_SET_SELECTION,
10463
+ CoordinationType$1.OBS_SET_FILTER,
10404
10464
  CoordinationType$1.OBS_SET_HIGHLIGHT,
10405
10465
  CoordinationType$1.OBS_SET_COLOR,
10406
10466
  CoordinationType$1.FEATURE_HIGHLIGHT,
@@ -10437,6 +10497,7 @@ const COMPONENT_COORDINATION_TYPES = {
10437
10497
  CoordinationType$1.OBS_FILTER,
10438
10498
  CoordinationType$1.OBS_HIGHLIGHT,
10439
10499
  CoordinationType$1.OBS_SET_SELECTION,
10500
+ CoordinationType$1.OBS_SET_FILTER,
10440
10501
  CoordinationType$1.OBS_SET_HIGHLIGHT,
10441
10502
  CoordinationType$1.OBS_SET_COLOR,
10442
10503
  CoordinationType$1.FEATURE_HIGHLIGHT,
@@ -10496,6 +10557,7 @@ const COMPONENT_COORDINATION_TYPES = {
10496
10557
  CoordinationType$1.OBS_FILTER,
10497
10558
  CoordinationType$1.OBS_HIGHLIGHT,
10498
10559
  CoordinationType$1.OBS_SET_SELECTION,
10560
+ CoordinationType$1.OBS_SET_FILTER,
10499
10561
  CoordinationType$1.OBS_SET_HIGHLIGHT,
10500
10562
  CoordinationType$1.OBS_SET_COLOR,
10501
10563
  CoordinationType$1.FEATURE_FILTER,
@@ -10511,6 +10573,7 @@ const COMPONENT_COORDINATION_TYPES = {
10511
10573
  CoordinationType$1.DATASET,
10512
10574
  CoordinationType$1.OBS_TYPE,
10513
10575
  CoordinationType$1.OBS_SET_SELECTION,
10576
+ CoordinationType$1.OBS_SET_FILTER,
10514
10577
  CoordinationType$1.OBS_SET_EXPANSION,
10515
10578
  CoordinationType$1.OBS_SET_HIGHLIGHT,
10516
10579
  CoordinationType$1.OBS_SET_COLOR,
@@ -10522,6 +10585,7 @@ const COMPONENT_COORDINATION_TYPES = {
10522
10585
  CoordinationType$1.DATASET,
10523
10586
  CoordinationType$1.OBS_TYPE,
10524
10587
  CoordinationType$1.OBS_SET_SELECTION,
10588
+ CoordinationType$1.OBS_SET_FILTER,
10525
10589
  CoordinationType$1.OBS_SET_EXPANSION,
10526
10590
  CoordinationType$1.OBS_SET_HIGHLIGHT,
10527
10591
  CoordinationType$1.OBS_SET_COLOR,
@@ -10554,6 +10618,7 @@ const COMPONENT_COORDINATION_TYPES = {
10554
10618
  CoordinationType$1.FEATURE_VALUE_TRANSFORM,
10555
10619
  CoordinationType$1.FEATURE_VALUE_TRANSFORM_COEFFICIENT,
10556
10620
  CoordinationType$1.OBS_SET_SELECTION,
10621
+ CoordinationType$1.OBS_SET_FILTER,
10557
10622
  CoordinationType$1.OBS_SET_HIGHLIGHT,
10558
10623
  CoordinationType$1.OBS_SET_COLOR,
10559
10624
  CoordinationType$1.ADDITIONAL_OBS_SETS,
@@ -10570,7 +10635,8 @@ const COMPONENT_COORDINATION_TYPES = {
10570
10635
  CoordinationType$1.ADDITIONAL_OBS_SETS,
10571
10636
  CoordinationType$1.OBS_SET_COLOR,
10572
10637
  CoordinationType$1.OBS_COLOR_ENCODING,
10573
- CoordinationType$1.OBS_SET_SELECTION
10638
+ CoordinationType$1.OBS_SET_SELECTION,
10639
+ CoordinationType$1.OBS_SET_FILTER
10574
10640
  ],
10575
10641
  [ViewType$1.LAYER_CONTROLLER]: [
10576
10642
  CoordinationType$1.DATASET,
@@ -10685,11 +10751,13 @@ const COMPONENT_COORDINATION_TYPES = {
10685
10751
  CoordinationType$1.FEATURE_VALUE_POSITIVITY_THRESHOLD,
10686
10752
  CoordinationType$1.FEATURE_VALUE_COLORMAP,
10687
10753
  CoordinationType$1.OBS_SET_SELECTION,
10754
+ CoordinationType$1.OBS_SET_FILTER,
10688
10755
  CoordinationType$1.OBS_SET_HIGHLIGHT,
10689
10756
  CoordinationType$1.OBS_SET_COLOR,
10690
10757
  CoordinationType$1.ADDITIONAL_OBS_SETS,
10691
10758
  CoordinationType$1.SAMPLE_TYPE,
10692
10759
  CoordinationType$1.SAMPLE_SET_SELECTION,
10760
+ CoordinationType$1.SAMPLE_SET_FILTER,
10693
10761
  CoordinationType$1.SAMPLE_SET_COLOR
10694
10762
  ],
10695
10763
  higlass: [
@@ -10720,7 +10788,10 @@ const COMPONENT_COORDINATION_TYPES = {
10720
10788
  [ViewType$1.LINK_CONTROLLER]: [],
10721
10789
  [ViewType$1.BIOMARKER_SELECT]: [
10722
10790
  CoordinationType$1.FEATURE_SELECTION,
10723
- CoordinationType$1.SAMPLE_SET_SELECTION
10791
+ CoordinationType$1.SAMPLE_SET_SELECTION,
10792
+ CoordinationType$1.SAMPLE_SET_FILTER,
10793
+ CoordinationType$1.OBS_SET_SELECTION,
10794
+ CoordinationType$1.OBS_SET_FILTER
10724
10795
  // TODO: create coordination types for internal state of the biomarker selection view?
10725
10796
  ]
10726
10797
  };
@@ -172592,16 +172663,16 @@ async function getDecoder(fileDirectory) {
172592
172663
  const Decoder = await importFn();
172593
172664
  return new Decoder(fileDirectory);
172594
172665
  }
172595
- addDecoder([void 0, 1], () => import("./raw-5c0afb89.js").then((m2) => m2.default));
172596
- addDecoder(5, () => import("./lzw-ab54a798.js").then((m2) => m2.default));
172666
+ addDecoder([void 0, 1], () => import("./raw-f68bddd1.js").then((m2) => m2.default));
172667
+ addDecoder(5, () => import("./lzw-bc73fdec.js").then((m2) => m2.default));
172597
172668
  addDecoder(6, () => {
172598
172669
  throw new Error("old style JPEG compression is not supported.");
172599
172670
  });
172600
- addDecoder(7, () => import("./jpeg-7d2f2798.js").then((m2) => m2.default));
172601
- addDecoder([8, 32946], () => import("./deflate-db3c0a2f.js").then((m2) => m2.default));
172602
- addDecoder(32773, () => import("./packbits-bc646376.js").then((m2) => m2.default));
172603
- addDecoder(34887, () => import("./lerc-85a406f3.js").then((m2) => m2.default));
172604
- addDecoder(50001, () => import("./webimage-14cbc289.js").then((m2) => m2.default));
172671
+ addDecoder(7, () => import("./jpeg-8b9a25d4.js").then((m2) => m2.default));
172672
+ addDecoder([8, 32946], () => import("./deflate-35fbdf1d.js").then((m2) => m2.default));
172673
+ addDecoder(32773, () => import("./packbits-2a588df1.js").then((m2) => m2.default));
172674
+ addDecoder(34887, () => import("./lerc-34155be5.js").then((m2) => m2.default));
172675
+ addDecoder(50001, () => import("./webimage-1743d05f.js").then((m2) => m2.default));
172605
172676
  function copyNewSize(array2, width2, height2, samplesPerPixel = 1) {
172606
172677
  return new (Object.getPrototypeOf(array2)).constructor(width2 * height2 * samplesPerPixel);
172607
172678
  }
@@ -192716,14 +192787,17 @@ function EmbeddingScatterplotSubscriber(props) {
192716
192787
  title: titleOverride,
192717
192788
  helpText = ViewHelpMapping.SCATTERPLOT,
192718
192789
  // Average fill density for dynamic opacity calculation.
192719
- averageFillDensity
192790
+ averageFillDensity,
192791
+ // For the dual scatterplot:
192792
+ sampleSetSelection: sampleSetSelectionFromProps
192720
192793
  } = props;
192721
192794
  const loaders = useLoaders();
192722
192795
  const setComponentHover = useSetComponentHover();
192723
192796
  const setComponentViewInfo = useSetComponentViewInfo(uuid);
192724
- const [{ dataset, obsType, featureType, featureValueType, sampleType, embeddingZoom: zoom2, embeddingTargetX: targetX2, embeddingTargetY: targetY2, embeddingTargetZ: targetZ, embeddingType: mapping, obsFilter: cellFilter, obsHighlight: cellHighlight, featureSelection: geneSelection, obsSetSelection: cellSetSelection, obsSetColor: cellSetColor, obsColorEncoding: cellColorEncoding, additionalObsSets: additionalCellSets, embeddingObsSetPolygonsVisible: cellSetPolygonsVisible, embeddingObsSetLabelsVisible: cellSetLabelsVisible, embeddingObsSetLabelSize: cellSetLabelSize, embeddingObsRadius: cellRadiusFixed, embeddingObsRadiusMode: cellRadiusMode, embeddingObsOpacity: cellOpacityFixed, embeddingObsOpacityMode: cellOpacityMode, featureValueColormap: geneExpressionColormap, featureValueColormapRange: geneExpressionColormapRange, tooltipsVisible, sampleSetSelection, sampleSetColor, embeddingPointsVisible, embeddingContoursVisible, embeddingContoursFilled, embeddingContourPercentiles: contourPercentiles, contourColorEncoding, contourColor }, { setEmbeddingZoom: setZoom, setEmbeddingTargetX: setTargetX, setEmbeddingTargetY: setTargetY, setEmbeddingTargetZ: setTargetZ, setObsFilter: setCellFilter, setObsSetSelection: setCellSetSelection, setObsHighlight: setCellHighlight, setObsSetColor: setCellSetColor, setObsColorEncoding: setCellColorEncoding, setAdditionalObsSets: setAdditionalCellSets, setEmbeddingObsSetPolygonsVisible: setCellSetPolygonsVisible, setEmbeddingObsSetLabelsVisible: setCellSetLabelsVisible, setEmbeddingObsSetLabelSize: setCellSetLabelSize, setEmbeddingObsRadius: setCellRadiusFixed, setEmbeddingObsRadiusMode: setCellRadiusMode, setEmbeddingObsOpacity: setCellOpacityFixed, setEmbeddingObsOpacityMode: setCellOpacityMode, setFeatureValueColormap: setGeneExpressionColormap, setFeatureValueColormapRange: setGeneExpressionColormapRange, setTooltipsVisible, setEmbeddingPointsVisible, setEmbeddingContoursVisible, setEmbeddingContoursFilled, setEmbeddingContourPercentiles: setContourPercentiles, setContourColorEncoding }] = useCoordination(COMPONENT_COORDINATION_TYPES[ViewType$1.SCATTERPLOT], coordinationScopes);
192797
+ const [{ dataset, obsType, featureType, featureValueType, sampleType, embeddingZoom: zoom2, embeddingTargetX: targetX2, embeddingTargetY: targetY2, embeddingTargetZ: targetZ, embeddingType: mapping, obsFilter: cellFilter, obsHighlight: cellHighlight, featureSelection: geneSelection, obsSetSelection: cellSetSelection, obsSetColor: cellSetColor, obsColorEncoding: cellColorEncoding, additionalObsSets: additionalCellSets, embeddingObsSetPolygonsVisible: cellSetPolygonsVisible, embeddingObsSetLabelsVisible: cellSetLabelsVisible, embeddingObsSetLabelSize: cellSetLabelSize, embeddingObsRadius: cellRadiusFixed, embeddingObsRadiusMode: cellRadiusMode, embeddingObsOpacity: cellOpacityFixed, embeddingObsOpacityMode: cellOpacityMode, featureValueColormap: geneExpressionColormap, featureValueColormapRange: geneExpressionColormapRange, tooltipsVisible, sampleSetSelection: sampleSetSelectionFromCoordination, sampleSetColor, embeddingPointsVisible, embeddingContoursVisible, embeddingContoursFilled, embeddingContourPercentiles: contourPercentiles, contourColorEncoding, contourColor }, { setEmbeddingZoom: setZoom, setEmbeddingTargetX: setTargetX, setEmbeddingTargetY: setTargetY, setEmbeddingTargetZ: setTargetZ, setObsFilter: setCellFilter, setObsSetSelection: setCellSetSelection, setObsHighlight: setCellHighlight, setObsSetColor: setCellSetColor, setObsColorEncoding: setCellColorEncoding, setAdditionalObsSets: setAdditionalCellSets, setEmbeddingObsSetPolygonsVisible: setCellSetPolygonsVisible, setEmbeddingObsSetLabelsVisible: setCellSetLabelsVisible, setEmbeddingObsSetLabelSize: setCellSetLabelSize, setEmbeddingObsRadius: setCellRadiusFixed, setEmbeddingObsRadiusMode: setCellRadiusMode, setEmbeddingObsOpacity: setCellOpacityFixed, setEmbeddingObsOpacityMode: setCellOpacityMode, setFeatureValueColormap: setGeneExpressionColormap, setFeatureValueColormapRange: setGeneExpressionColormapRange, setTooltipsVisible, setEmbeddingPointsVisible, setEmbeddingContoursVisible, setEmbeddingContoursFilled, setEmbeddingContourPercentiles: setContourPercentiles, setContourColorEncoding }] = useCoordination(COMPONENT_COORDINATION_TYPES[ViewType$1.SCATTERPLOT], coordinationScopes);
192725
192798
  const { embeddingZoom: initialZoom, embeddingTargetX: initialTargetX, embeddingTargetY: initialTargetY } = useInitialCoordination(COMPONENT_COORDINATION_TYPES[ViewType$1.SCATTERPLOT], coordinationScopes);
192726
192799
  const observationsLabel = observationsLabelOverride || obsType;
192800
+ const sampleSetSelection = sampleSetSelectionFromProps || sampleSetSelectionFromCoordination;
192727
192801
  const [width2, height2, deckRef] = useDeckCanvasSize();
192728
192802
  const title2 = titleOverride || `Scatterplot (${mapping})`;
192729
192803
  const [obsLabelsTypes, obsLabelsData] = useMultiObsLabels(coordinationScopes, obsType, loaders, dataset);
@@ -193012,6 +193086,13 @@ function EmbeddingScatterplotSubscriber(props) {
193012
193086
  contourThresholds
193013
193087
  })] });
193014
193088
  }
193089
+ function DualEmbeddingScatterplotSubscriber(props) {
193090
+ const { coordinationScopes } = props;
193091
+ const [{ sampleSetSelection }] = useCoordination(COMPONENT_COORDINATION_TYPES[ViewType$1.DUAL_SCATTERPLOT], coordinationScopes);
193092
+ const caseSampleSetSelection = useMemo(() => (sampleSetSelection == null ? void 0 : sampleSetSelection[0]) ? [sampleSetSelection[0]] : null, [sampleSetSelection]);
193093
+ const ctrlSampleSetSelection = useMemo(() => (sampleSetSelection == null ? void 0 : sampleSetSelection[1]) ? [sampleSetSelection[1]] : null, [sampleSetSelection]);
193094
+ return jsxRuntimeExports.jsxs("div", { style: { width: "100%", height: "100%", display: "flex", flexDirection: "row" }, children: [jsxRuntimeExports.jsx("div", { style: { width: "50%", display: "flex", flexDirection: "column" }, children: jsxRuntimeExports.jsx(EmbeddingScatterplotSubscriber, { ...props, sampleSetSelection: caseSampleSetSelection }) }), jsxRuntimeExports.jsx("div", { style: { width: "50%", display: "flex", flexDirection: "column" }, children: jsxRuntimeExports.jsx(EmbeddingScatterplotSubscriber, { ...props, title: "", sampleSetSelection: ctrlSampleSetSelection }) })] });
193095
+ }
193015
193096
  function GatingScatterplotOptions(props) {
193016
193097
  const { featureType, gatingFeatureSelectionX, setGatingFeatureSelectionX, gatingFeatureSelectionY, setGatingFeatureSelectionY, gatingFeatureValueTransform, setGatingFeatureValueTransform, gatingFeatureValueTransformCoefficient, setGatingFeatureValueTransformCoefficient, geneSelectOptions, transformOptions } = props;
193017
193098
  const gatingScatterplotOptionsId = $bdb11010cef70236$export$f680877a34711e37();
@@ -212932,13 +213013,21 @@ class Spatial2 extends AbstractSpatialOrScatterplot {
212932
213013
  coordinateSystem: COORDINATE_SYSTEM.CARTESIAN,
212933
213014
  pickable: true,
212934
213015
  autoHighlight: AUTO_HIGHLIGHT,
212935
- filled: spatialSegmentationFilled,
213016
+ filled: true,
212936
213017
  stroked: !spatialSegmentationFilled,
212937
213018
  backgroundColor: [0, 0, 0],
212938
213019
  // isSelected: getCellIsSelected,
212939
213020
  getPolygon,
212940
- getFillColor: isStaticColor ? staticColor : getCellColor,
212941
- getLineColor: isStaticColor ? staticColor : getCellColor,
213021
+ getFillColor: (object2, { index: index2 }) => {
213022
+ const color2 = isStaticColor ? staticColor : getCellColor(object2, { index: index2 });
213023
+ color2[3] = spatialSegmentationFilled ? opacity2 * 255 : 0;
213024
+ return color2;
213025
+ },
213026
+ getLineColor: (object2, { index: index2 }) => {
213027
+ const color2 = isStaticColor ? staticColor : getCellColor(object2, { index: index2 });
213028
+ color2[3] = spatialSegmentationFilled ? 0 : opacity2 * 255;
213029
+ return color2;
213030
+ },
212942
213031
  onClick: (info2) => {
212943
213032
  },
212944
213033
  onHover: (info2) => delegateHover(info2, "segmentation-polygon", layerScope),
@@ -212954,8 +213043,20 @@ class Spatial2 extends AbstractSpatialOrScatterplot {
212954
213043
  isExpressionMode: obsColorEncoding === "geneSelection",
212955
213044
  colormap: featureValueColormap,
212956
213045
  updateTriggers: {
212957
- getFillColor: [obsColorEncoding, staticColor, layerColors],
212958
- getLineColor: [obsColorEncoding, staticColor, layerColors]
213046
+ getFillColor: [
213047
+ opacity2,
213048
+ spatialSegmentationFilled,
213049
+ obsColorEncoding,
213050
+ staticColor,
213051
+ layerColors
213052
+ ],
213053
+ getLineColor: [
213054
+ opacity2,
213055
+ spatialSegmentationFilled,
213056
+ obsColorEncoding,
213057
+ staticColor,
213058
+ layerColors
213059
+ ]
212959
213060
  /*
212960
213061
  getLineWidth: [stroked],
212961
213062
  isSelected: cellSelection,
@@ -214031,7 +214132,7 @@ class ErrorBoundary extends React__default.Component {
214031
214132
  }
214032
214133
  }
214033
214134
  const LazySpatialThree = React__default.lazy(async () => {
214034
- const { SpatialWrapper: SpatialWrapper2 } = await import("./index-688bbda8.js");
214135
+ const { SpatialWrapper: SpatialWrapper2 } = await import("./index-91aca3e4.js");
214035
214136
  return { default: SpatialWrapper2 };
214036
214137
  });
214037
214138
  const SpatialThreeAdapter = React__default.forwardRef((props, ref2) => jsxRuntimeExports.jsx("div", { ref: ref2, style: { width: "100%", height: "100%" }, children: jsxRuntimeExports.jsx(ErrorBoundary, { children: jsxRuntimeExports.jsx(Suspense, { fallback: jsxRuntimeExports.jsx("div", { children: "Loading..." }), children: jsxRuntimeExports.jsx(LazySpatialThree, { ...props }) }) }) }));
@@ -223792,7 +223893,7 @@ const useStyles$3 = makeStyles((theme) => ({
223792
223893
  }));
223793
223894
  register({ dataFetcher: ZarrMultivecDataFetcher_default, config: ZarrMultivecDataFetcher_default.config }, { pluginType: "dataFetcher" });
223794
223895
  const LazyHiGlassComponent = React__default.lazy(async () => {
223795
- const { HiGlassComponent } = await import("./higlass-0ef762be.js");
223896
+ const { HiGlassComponent } = await import("./higlass-6360c0eb.js");
223796
223897
  return { default: HiGlassComponent };
223797
223898
  });
223798
223899
  const HG_SIZE = 800;
@@ -340216,8 +340317,8 @@ function BiomarkerSelectSubscriber(props) {
340216
340317
  const { coordinationScopes, stratificationOptions } = props;
340217
340318
  useCoordination(COMPONENT_COORDINATION_TYPES[ViewType$1.BIOMARKER_SELECT], coordinationScopes);
340218
340319
  const viewConfigStoreApi = useViewConfigStoreApi();
340219
- useViewConfig();
340220
- useSetViewConfig(viewConfigStoreApi);
340320
+ const viewConfig = useViewConfig();
340321
+ const setViewConfig = useSetViewConfig(viewConfigStoreApi);
340221
340322
  const [isSelecting, setIsSelecting] = useState(true);
340222
340323
  const [mode, setMode] = useState(null);
340223
340324
  const [step2, setStep] = useState(null);
@@ -340229,7 +340330,20 @@ function BiomarkerSelectSubscriber(props) {
340229
340330
  const autocompleteNode = useCallback(async (inputValue) => autocompleteFeature2(inputValue), [autocompleteFeature2]);
340230
340331
  const getEdges = useCallback(async (node2, targetModality) => transformFeature2(node2, targetModality), [transformFeature2]);
340231
340332
  return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: isSelecting ? jsxRuntimeExports.jsx(ScmdUi, { mode, setMode, step: step2, setStep, currentModalityAgnosticSelection, setCurrentModalityAgnosticSelection, currentModalitySpecificSelection, setCurrentModalitySpecificSelection, currentStratificationSelection, setCurrentStratificationSelection, autocompleteNode, getEdges, stratifications: stratificationOptions, onFinish: () => {
340232
- console.log("Done selecting");
340333
+ setViewConfig({
340334
+ ...viewConfig,
340335
+ coordinationSpace: {
340336
+ ...viewConfig.coordinationSpace,
340337
+ sampleSetFilter: {
340338
+ ...viewConfig.coordinationSpace.sampleSetFilter,
340339
+ "case-control": currentStratificationSelection == null ? void 0 : currentStratificationSelection.sampleSets
340340
+ },
340341
+ sampleSetSelection: {
340342
+ ...viewConfig.coordinationSpace.sampleSetSelection,
340343
+ "case-control": currentStratificationSelection == null ? void 0 : currentStratificationSelection.sampleSets
340344
+ }
340345
+ }
340346
+ });
340233
340347
  } }) : null });
340234
340348
  }
340235
340349
  function isArray3(value2) {
@@ -341912,6 +342026,7 @@ const baseViewTypes = [
341912
342026
  makeViewType(ViewType$1.DESCRIPTION, DescriptionSubscriber),
341913
342027
  makeViewType(ViewType$1.OBS_SETS, ObsSetsManagerSubscriber),
341914
342028
  makeViewType(ViewType$1.SCATTERPLOT, EmbeddingScatterplotSubscriber),
342029
+ makeViewType(ViewType$1.DUAL_SCATTERPLOT, DualEmbeddingScatterplotSubscriber),
341915
342030
  makeViewType(ViewType$1.GATING, GatingSubscriber),
341916
342031
  makeViewType(ViewType$1.SPATIAL, SpatialSubscriber$1),
341917
342032
  makeViewType(ViewType$1.SPATIAL_BETA, SpatialSubscriber),
@@ -342087,11 +342202,19 @@ const baseCoordinationTypes = [
342087
342202
  new PluginCoordinationType(CoordinationType$1.HEATMAP_TARGET_Y, 0, z.number()),
342088
342203
  new PluginCoordinationType(CoordinationType$1.OBS_FILTER, null, z.array(z.string()).nullable()),
342089
342204
  new PluginCoordinationType(CoordinationType$1.OBS_HIGHLIGHT, null, z.string().nullable()),
342205
+ new PluginCoordinationType(CoordinationType$1.OBS_SELECTION, null, z.array(z.string()).nullable()),
342090
342206
  new PluginCoordinationType(
342091
342207
  CoordinationType$1.OBS_SET_SELECTION,
342092
342208
  null,
342093
342209
  z.array(obsSetPath).nullable()
342094
342210
  ),
342211
+ new PluginCoordinationType(CoordinationType$1.OBS_SELECTION_MODE, null, z.enum(["obsSelection", "obsSetSelection"]).nullable()),
342212
+ new PluginCoordinationType(
342213
+ CoordinationType$1.OBS_SET_FILTER,
342214
+ null,
342215
+ z.array(obsSetPath).nullable()
342216
+ ),
342217
+ new PluginCoordinationType(CoordinationType$1.OBS_FILTER_MODE, null, z.enum(["obsFilter", "obsSetFilter"]).nullable()),
342095
342218
  new PluginCoordinationType(
342096
342219
  CoordinationType$1.OBS_SET_EXPANSION,
342097
342220
  null,
@@ -342118,6 +342241,18 @@ const baseCoordinationTypes = [
342118
342241
  null,
342119
342242
  z.array(z.string()).nullable()
342120
342243
  ),
342244
+ new PluginCoordinationType(
342245
+ CoordinationType$1.FEATURE_SET_SELECTION,
342246
+ null,
342247
+ z.array(obsSetPath).nullable()
342248
+ ),
342249
+ new PluginCoordinationType(CoordinationType$1.FEATURE_SELECTION_MODE, null, z.enum(["featureSelection", "featureSetSelection"]).nullable()),
342250
+ new PluginCoordinationType(
342251
+ CoordinationType$1.FEATURE_SET_FILTER,
342252
+ null,
342253
+ z.array(obsSetPath).nullable()
342254
+ ),
342255
+ new PluginCoordinationType(CoordinationType$1.FEATURE_FILTER_MODE, null, z.enum(["featureFilter", "featureSetFilter"]).nullable()),
342121
342256
  new PluginCoordinationType(
342122
342257
  CoordinationType$1.FEATURE_VALUE_TRANSFORM,
342123
342258
  null,
@@ -342206,7 +342341,12 @@ const baseCoordinationTypes = [
342206
342341
  new PluginCoordinationType(CoordinationType$1.SPATIAL_CHANNEL_LABEL_SIZE, 14, z.number()),
342207
342342
  new PluginCoordinationType(CoordinationType$1.SAMPLE_TYPE, "sample", z.string().nullable()),
342208
342343
  // TODO: remove one array level and use multi-coordination for sampleSetSelection?
342344
+ new PluginCoordinationType(CoordinationType$1.SAMPLE_FILTER, null, z.array(z.string()).nullable()),
342345
+ new PluginCoordinationType(CoordinationType$1.SAMPLE_SELECTION, null, z.array(z.string()).nullable()),
342209
342346
  new PluginCoordinationType(CoordinationType$1.SAMPLE_SET_SELECTION, null, z.array(z.array(z.string())).nullable()),
342347
+ new PluginCoordinationType(CoordinationType$1.SAMPLE_SET_FILTER, null, z.array(z.array(z.string())).nullable()),
342348
+ new PluginCoordinationType(CoordinationType$1.SAMPLE_SELECTION_MODE, null, z.enum(["sampleSelection", "sampleSetSelection"]).nullable()),
342349
+ new PluginCoordinationType(CoordinationType$1.SAMPLE_FILTER_MODE, null, z.enum(["sampleFilter", "sampleSetFilter"]).nullable()),
342210
342350
  new PluginCoordinationType(
342211
342351
  CoordinationType$1.SAMPLE_SET_COLOR,
342212
342352
  null,
@@ -1,4 +1,4 @@
1
- import { g as getDefaultExportFromCjs, R as Raycaster, O as OrthographicCamera, P as PerspectiveCamera, S as Scene, a as PCFSoftShadowMap, N as NoToneMapping, A as ACESFilmicToneMapping, V as Vector2, b as Vector3, L as Layers, T as Texture, c as RGBAFormat, U as UnsignedByteType, W as WebGLRenderer, C as Camera, B as BasicShadowMap, d as PCFShadowMap, e as VSMShadowMap, f as BufferGeometry, M as Material, h as Color, i as Clock, _ as _extends, j as THREE, G as Group, k as Matrix4, l as TrianglesDrawMode, m as TriangleFanDrawMode, n as TriangleStripDrawMode, o as REVISION, p as Ray$1, q as Plane, E as EventDispatcher, r as MOUSE, s as TOUCH, Q as Quaternion, t as Spherical, u as Loader, v as LoaderUtils, F as FileLoader, w as SpotLight, x as PointLight, D as DirectionalLight, y as MeshBasicMaterial, z as MeshPhysicalMaterial, I as InstancedMesh, H as Object3D, J as TextureLoader, K as ImageBitmapLoader, X as BufferAttribute, Y as InterleavedBuffer, Z as LinearFilter, $ as LinearMipmapLinearFilter, a0 as RepeatWrapping, a1 as PointsMaterial, a2 as LineBasicMaterial, a3 as MeshStandardMaterial, a4 as DoubleSide, a5 as PropertyBinding, a6 as SkinnedMesh, a7 as Mesh, a8 as LineSegments, a9 as Line$1, aa as LineLoop, ab as Points, ac as MathUtils, ad as Skeleton, ae as InterpolateLinear, af as AnimationClip, ag as Bone, ah as NearestFilter, ai as NearestMipmapNearestFilter, aj as LinearMipmapNearestFilter, ak as NearestMipmapLinearFilter, al as ClampToEdgeWrapping, am as MirroredRepeatWrapping, an as InterpolateDiscrete, ao as FrontSide, ap as InterleavedBufferAttribute, aq as VectorKeyframeTrack, ar as QuaternionKeyframeTrack, as as NumberKeyframeTrack, at as Box3, au as Sphere, av as Interpolant, aw as InstancedBufferGeometry, ax as Float32BufferAttribute, ay as InstancedInterleavedBuffer, az as WireframeGeometry, aA as ShaderMaterial, aB as UniformsUtils, aC as UniformsLib, aD as Vector4, aE as Line3, aF as SphereGeometry, aG as Triangle, aH as BackSide, aI as jsxRuntimeExports, aJ as Matrix3, aK as CoordinationType, aL as Data3DTexture, aM as RedFormat, aN as FloatType, aO as getImageSize } from "./index-af9740fa.js";
1
+ import { g as getDefaultExportFromCjs, R as Raycaster, O as OrthographicCamera, P as PerspectiveCamera, S as Scene, a as PCFSoftShadowMap, N as NoToneMapping, A as ACESFilmicToneMapping, V as Vector2, b as Vector3, L as Layers, T as Texture, c as RGBAFormat, U as UnsignedByteType, W as WebGLRenderer, C as Camera, B as BasicShadowMap, d as PCFShadowMap, e as VSMShadowMap, f as BufferGeometry, M as Material, h as Color, i as Clock, _ as _extends, j as THREE, G as Group, k as Matrix4, l as TrianglesDrawMode, m as TriangleFanDrawMode, n as TriangleStripDrawMode, o as REVISION, p as Ray$1, q as Plane, E as EventDispatcher, r as MOUSE, s as TOUCH, Q as Quaternion, t as Spherical, u as Loader, v as LoaderUtils, F as FileLoader, w as SpotLight, x as PointLight, D as DirectionalLight, y as MeshBasicMaterial, z as MeshPhysicalMaterial, I as InstancedMesh, H as Object3D, J as TextureLoader, K as ImageBitmapLoader, X as BufferAttribute, Y as InterleavedBuffer, Z as LinearFilter, $ as LinearMipmapLinearFilter, a0 as RepeatWrapping, a1 as PointsMaterial, a2 as LineBasicMaterial, a3 as MeshStandardMaterial, a4 as DoubleSide, a5 as PropertyBinding, a6 as SkinnedMesh, a7 as Mesh, a8 as LineSegments, a9 as Line$1, aa as LineLoop, ab as Points, ac as MathUtils, ad as Skeleton, ae as InterpolateLinear, af as AnimationClip, ag as Bone, ah as NearestFilter, ai as NearestMipmapNearestFilter, aj as LinearMipmapNearestFilter, ak as NearestMipmapLinearFilter, al as ClampToEdgeWrapping, am as MirroredRepeatWrapping, an as InterpolateDiscrete, ao as FrontSide, ap as InterleavedBufferAttribute, aq as VectorKeyframeTrack, ar as QuaternionKeyframeTrack, as as NumberKeyframeTrack, at as Box3, au as Sphere, av as Interpolant, aw as InstancedBufferGeometry, ax as Float32BufferAttribute, ay as InstancedInterleavedBuffer, az as WireframeGeometry, aA as ShaderMaterial, aB as UniformsUtils, aC as UniformsLib, aD as Vector4, aE as Line3, aF as SphereGeometry, aG as Triangle, aH as BackSide, aI as jsxRuntimeExports, aJ as Matrix3, aK as CoordinationType, aL as Data3DTexture, aM as RedFormat, aN as FloatType, aO as getImageSize } from "./index-7925c6be.js";
2
2
  import * as React from "react";
3
3
  import React__default, { useReducer, useRef, useDebugValue, useEffect, useLayoutEffect, useState, useMemo, forwardRef } from "react";
4
4
  import "@vitessce/vit-s";
@@ -23800,7 +23800,7 @@ const Text = /* @__PURE__ */ React.forwardRef(({
23800
23800
  const {
23801
23801
  Text: TextMeshImpl,
23802
23802
  preloadFont
23803
- } = suspend(async () => import("./troika-three-text.esm-37beeb83.js"), []);
23803
+ } = suspend(async () => import("./troika-three-text.esm-2879f126.js"), []);
23804
23804
  const invalidate2 = useThree(({
23805
23805
  invalidate: invalidate3
23806
23806
  }) => invalidate3);
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { b4, b2, b0, b3, b1, a$, b5 } from "./index-af9740fa.js";
1
+ import { b4, b2, b0, b3, b1, a$, b5 } from "./index-7925c6be.js";
2
2
  import { useComplexCoordination, useComplexCoordinationSecondary, useCoordination, useCoordinationScopes, useCoordinationScopesBy, useGridItemSize, useMultiCoordinationScopesNonNull, useMultiCoordinationScopesSecondaryNonNull, usePageModeView } from "@vitessce/vit-s";
3
3
  import "react";
4
4
  import "react-dom";
@@ -1,4 +1,4 @@
1
- import { aP as BaseDecoder } from "./index-af9740fa.js";
1
+ import { aP as BaseDecoder } from "./index-7925c6be.js";
2
2
  import "react";
3
3
  import "@vitessce/vit-s";
4
4
  import "react-dom";
@@ -1,5 +1,5 @@
1
1
  import { i as inflate_1 } from "./pako.esm-68f84e2a.js";
2
- import { g as getDefaultExportFromCjs, aP as BaseDecoder, aQ as LercParameters, aR as LercAddCompression } from "./index-af9740fa.js";
2
+ import { g as getDefaultExportFromCjs, aP as BaseDecoder, aQ as LercParameters, aR as LercAddCompression } from "./index-7925c6be.js";
3
3
  import "react";
4
4
  import "@vitessce/vit-s";
5
5
  import "react-dom";
@@ -1,4 +1,4 @@
1
- import { aP as BaseDecoder } from "./index-af9740fa.js";
1
+ import { aP as BaseDecoder } from "./index-7925c6be.js";
2
2
  import "react";
3
3
  import "@vitessce/vit-s";
4
4
  import "react-dom";
@@ -1,4 +1,4 @@
1
- import { aP as BaseDecoder } from "./index-af9740fa.js";
1
+ import { aP as BaseDecoder } from "./index-7925c6be.js";
2
2
  import "react";
3
3
  import "@vitessce/vit-s";
4
4
  import "react-dom";
@@ -1,4 +1,4 @@
1
- import { aP as BaseDecoder } from "./index-af9740fa.js";
1
+ import { aP as BaseDecoder } from "./index-7925c6be.js";
2
2
  import "react";
3
3
  import "@vitessce/vit-s";
4
4
  import "react-dom";
@@ -1,4 +1,4 @@
1
- import { aB as UniformsUtils, aV as MeshDepthMaterial, aW as RGBADepthPacking, aX as MeshDistanceMaterial, aY as ShaderChunk, T as Texture, Z as LinearFilter, aw as InstancedBufferGeometry, au as Sphere, at as Box3, aH as BackSide, a4 as DoubleSide, aZ as InstancedBufferAttribute, V as Vector2, aD as Vector4, h as Color, aJ as Matrix3, a7 as Mesh, ao as FrontSide, a_ as PlaneGeometry, f as BufferGeometry, ax as Float32BufferAttribute, y as MeshBasicMaterial, k as Matrix4, b as Vector3 } from "./index-af9740fa.js";
1
+ import { aB as UniformsUtils, aV as MeshDepthMaterial, aW as RGBADepthPacking, aX as MeshDistanceMaterial, aY as ShaderChunk, T as Texture, Z as LinearFilter, aw as InstancedBufferGeometry, au as Sphere, at as Box3, aH as BackSide, a4 as DoubleSide, aZ as InstancedBufferAttribute, V as Vector2, aD as Vector4, h as Color, aJ as Matrix3, a7 as Mesh, ao as FrontSide, a_ as PlaneGeometry, f as BufferGeometry, ax as Float32BufferAttribute, y as MeshBasicMaterial, k as Matrix4, b as Vector3 } from "./index-7925c6be.js";
2
2
  import "react";
3
3
  import "@vitessce/vit-s";
4
4
  import "react-dom";
@@ -1,4 +1,4 @@
1
- import { aP as BaseDecoder } from "./index-af9740fa.js";
1
+ import { aP as BaseDecoder } from "./index-7925c6be.js";
2
2
  import "react";
3
3
  import "@vitessce/vit-s";
4
4
  import "react-dom";
@@ -885,7 +885,7 @@ export declare const baseCoordinationTypes: (PluginCoordinationType<z.ZodNullabl
885
885
  visible: boolean;
886
886
  }, {
887
887
  visible: boolean;
888
- }>>> | PluginCoordinationType<z.ZodNullable<z.ZodArray<z.ZodString, "many">>> | PluginCoordinationType<z.ZodNullable<z.ZodArray<z.ZodArray<z.ZodString, "many">, "many">>> | PluginCoordinationType<z.ZodNullable<z.ZodArray<z.ZodObject<{
888
+ }>>> | PluginCoordinationType<z.ZodNullable<z.ZodArray<z.ZodString, "many">>> | PluginCoordinationType<z.ZodNullable<z.ZodArray<z.ZodArray<z.ZodString, "many">, "many">>> | PluginCoordinationType<z.ZodNullable<z.ZodEnum<["obsSelection", "obsSetSelection"]>>> | PluginCoordinationType<z.ZodNullable<z.ZodEnum<["obsFilter", "obsSetFilter"]>>> | PluginCoordinationType<z.ZodNullable<z.ZodArray<z.ZodObject<{
889
889
  path: z.ZodArray<z.ZodString, "many">;
890
890
  color: z.ZodArray<z.ZodNumber, "many">;
891
891
  }, "strip", z.ZodTypeAny, {
@@ -894,7 +894,7 @@ export declare const baseCoordinationTypes: (PluginCoordinationType<z.ZodNullabl
894
894
  }, {
895
895
  path: string[];
896
896
  color: number[];
897
- }>, "many">>> | PluginCoordinationType<z.ZodEnum<["geneSelection", "cellSetSelection", "spatialChannelColor", "spatialLayerColor", "obsLabels"]>> | PluginCoordinationType<z.ZodNullable<z.ZodEnum<["log1p", "arcsinh"]>>> | PluginCoordinationType<z.ZodArray<z.ZodNumber, "many">> | PluginCoordinationType<z.ZodNullable<z.ZodEffects<z.ZodUnion<[z.ZodObject<{
897
+ }>, "many">>> | PluginCoordinationType<z.ZodEnum<["geneSelection", "cellSetSelection", "spatialChannelColor", "spatialLayerColor", "obsLabels"]>> | PluginCoordinationType<z.ZodNullable<z.ZodEnum<["featureSelection", "featureSetSelection"]>>> | PluginCoordinationType<z.ZodNullable<z.ZodEnum<["featureFilter", "featureSetFilter"]>>> | PluginCoordinationType<z.ZodNullable<z.ZodEnum<["log1p", "arcsinh"]>>> | PluginCoordinationType<z.ZodArray<z.ZodNumber, "many">> | PluginCoordinationType<z.ZodNullable<z.ZodEffects<z.ZodUnion<[z.ZodObject<{
898
898
  version: z.ZodLiteral<"0.1.3">;
899
899
  tree: z.ZodArray<z.ZodType<{
900
900
  name: string;
@@ -1053,6 +1053,6 @@ export declare const baseCoordinationTypes: (PluginCoordinationType<z.ZodNullabl
1053
1053
  color?: number[] | undefined;
1054
1054
  }>;
1055
1055
  })[];
1056
- }>>> | PluginCoordinationType<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>> | PluginCoordinationType<z.ZodNullable<z.ZodArray<z.ZodNumber, "many">>> | PluginCoordinationType<z.ZodNullable<z.ZodEnum<["BlackIsZero", "RGB"]>>> | PluginCoordinationType<z.ZodNullable<z.ZodEnum<["2D", "3D"]>>> | PluginCoordinationType<z.ZodEnum<["maximumIntensityProjection", "additive"]>> | PluginCoordinationType<z.ZodEnum<["vertical", "horizontal"]>> | PluginCoordinationType<z.ZodEnum<["cellSetSelection", "sampleSetSelection", "contourColor"]>>)[];
1056
+ }>>> | PluginCoordinationType<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>> | PluginCoordinationType<z.ZodNullable<z.ZodArray<z.ZodNumber, "many">>> | PluginCoordinationType<z.ZodNullable<z.ZodEnum<["BlackIsZero", "RGB"]>>> | PluginCoordinationType<z.ZodNullable<z.ZodEnum<["2D", "3D"]>>> | PluginCoordinationType<z.ZodEnum<["maximumIntensityProjection", "additive"]>> | PluginCoordinationType<z.ZodEnum<["vertical", "horizontal"]>> | PluginCoordinationType<z.ZodNullable<z.ZodEnum<["sampleSelection", "sampleSetSelection"]>>> | PluginCoordinationType<z.ZodNullable<z.ZodEnum<["sampleFilter", "sampleSetFilter"]>>> | PluginCoordinationType<z.ZodEnum<["cellSetSelection", "sampleSetSelection", "contourColor"]>>)[];
1057
1057
  export declare const baseAsyncFunctions: PluginAsyncFunction[];
1058
1058
  //# sourceMappingURL=base-plugins.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-plugins.d.ts","sourceRoot":"","sources":["../src/base-plugins.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,CAAC,EA6CF,MAAM,mBAAmB,CAAC;AAuJ3B,eAAO,MAAM,aAAa,kBAqBzB,CAAC;AAEF,eAAO,MAAM,aAAa,wDAqEzB,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAkDf,CAAC;gCAAsD,CAAC;;;yBACf,CAAC;gCAC9B,CAAC;;;;;;;;;iBAIzB,CAAC;;;;iBACgD,CAAC;;;;;;;YAG7C,CAAC;;;YAAmE,CAAC;;;;;;;YAGhD,CAAC;;;YAC7B,CAAA;;;;;;;YAEyC,CAAC;;;YACjC,CAAC;;;;;;;;;;;;;;YAiBC,CAAC;;;YACX,CAAC;;;;;;;;YAGyC,CAAC;;;;YACC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;yBAoBjC,CAAC;gCAEZ,CAAJ;;;;;iBAG4B,CAAC;;;;YACP,CAAC;;;;YACA,CAAC;;;;YAKtB,CAAA;;;;;;;YAME,CAAH;;;;YAIa,CAAC;;;;;;;;;;;;;;;;;;;;yBAkBK,CAAC;gCAGhB,CAAC;;;;;iBAMF,CAAF;;;;YAGoD,CAAC;;;;YACiB,CAAC;;;;YAEvE,CAAC;;;;;;;YACyE,CAAC;;;;YACD,CAAC;;;;;;;;;;;wBAiEypC,CAAC;;;wBAA6E,CAAC;;;;;;;;iBAA8Q,CAAC;wBAA8C,CAAC;;;iBAAsE,CAAC;wBAA8C,CAAC;;;;;;;;;;yBAAkZ,CAAC;gCAAsD,CAAC;cAAoC,CAAC;wBAA8C,CAAC;;;yBAA8E,CAAC;gCAAsD,CAAC;cAAoC,CAAC;wBAA8C,CAAC;;;;;;;;iBAAgR,CAAC;wBAA8C,CAAC;;;iBAAsE,CAAC;wBAA8C,CAAC;;;;;;;;;;;;qBAAygB,CAAC;;;;qBAA2J,CAAC;;;;;;qBAAsN,CAAC;;cAAiD,CAAC;iBAAuC,CAAC;;;;;qBAA0K,CAAC;;cAAiD,CAAC;iBAAuC,CAAC;;;;;;wBAAwL,CAAC;;;;iBAA+F,CAAC;wBAA8C,CAAC;;;;yBAAiH,CAAC;gCAAsD,CAAC;cAAoC,CAAC;wBAA8C,CAAC;;;;iBAAiG,CAAC;wBAA8C,CAAC;;;;;;qBAAoM,CAAC;;cAAiD,CAAC;iBAAuC,CAAC;;;;;;wBAAqJ,CAAC;;;;iBAA+F,CAAC;wBAA8C,CAAC;;;;yBAAiH,CAAC;gCAAsD,CAAC;cAAoC,CAAC;wBAA8C,CAAC;;;;iBAAiG,CAAC;wBAA8C,CAAC;;;;;;qBAAoM,CAAC;;cAAiD,CAAC;iBAAuC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAhd9iM,CAAC;;;;;qBAGH,CAAC;qBAA6C,CAAA;;;;;;;;;qBASzC,CAAC;6BAIT,CAAC;;sBAGN,CAAF;;;;;qBASW,CAAC;qBAEgB,CAAC;;;;;;;;;qBASvB,CAAC;6BACmB,CAAC;;;;;;;;;;;;;kBAwBb,CAAC;mBAIH,CAAC;gBAED,CAAC;gBAEL,CAAC;uBAEP,CAAA;iBACY,CAAC;oBAEf,CAAC;oBAGC,CAAD;qBACQ,CAAC;;kBAGV,CAAC;mBAGM,CAAC;gBAIH,CAAC;gBACS,CAAC;uBAEE,CAAC;iBAEF,CAAC;oBAEJ,CAAC;oBAEJ,CAAC;qBAEE,CAAC;;;;;;gBAMP,CAAC;sBACJ,CAAC;;;;;qBAQuB,CAAC;qBACZ,CAAC;;;;;;;;;qBAIyF,CAAC;6BAAoD,CAAC;;mBAC/G,CAAC;kBAAsB,CAAC;mBAEnE,CAAC;gBAAmD,CAAC;gBAC9C,CAAC;uBAA6C,CAAC;iBAAuC,CAAC;oBAA0C,CAAC;oBAC9I,CAAC;qBAA2C,CAAC;;;;;;gBAG5B,CAAC;sBAA0B,CAAC;;;;;qBAII,CAAC;qBAA6C,CAAA;;;;;;;;;qBAQ9C,CAAC;6BAClB,CAAC;;mBACa,CAAC;kBAC/B,CAAC;mBAClB,CAAF;gBAAmD,CAAC;gBACd,CAAA;uBACjB,CAAC;iBAAuC,CAAC;oBAC5B,CAAC;oBAA0C,CAAC;qBACpC,CAAC;;;;;;;;;gBAGA,CAAC;sBAA0B,CAAC;;;;;qBAIjE,CAAC;qBAA4C,CAAC;;;;;;;;;qBAON,CAAC;6BAAoD,CAAC;;mBACzC,CAAC;kBAAsB,CAAC;mBACjF,CAAF;gBAAmD,CAAC;gBAAsC,CAAC;uBAChE,CAAC;iBAAuC,CAAC;oBAA0C,CAAC;oBACvE,CAAC;qBAA2C,CAAC;;;;;;;;;;;gBAEmC,CAAC;sBACpG,CAAC;;;;;qBACyE,CAAA;qBACzE,CAAC;;;;;;;;;qBAGN,CAAA;6BACwB,CAAC;;mBAAgE,CAAC;kBAAsB,CAAC;mBAC7F,CAAC;gBAAmD,CAAC;gBAAsC,CAAC;uBAC7G,CAAC;iBAAuC,CAAC;oBAA0C,CAAC;oBAChG,CAAC;qBAA2C,CAAC;;;;;;;;;;;;;;OAsEpD,CAAC;AAIF,eAAO,MAAM,qBAAqB;;;;;;;;aA1TtB,CAAC;cAGX,CAAD;eAES,CAAC;;;aAIH,CAAC;cAEP,CAAF;eACgB,CAAC;;;;;;;;;;;;;;;;;;;aAmCd,CAAC;cACqB,CAAC;eAGnB,CAAA;;;;;;;;;;;;;;;;;;;aASgC,CAAC;cAAsC,CAAC;eAC1C,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA7D1B,CAAC;cAGX,CAAD;eAES,CAAC;;;aAIH,CAAC;cAEP,CAAF;eACgB,CAAC;;;;;;;;;;;;;;;;;;;aAmCd,CAAC;cACqB,CAAC;eAGnB,CAAA;;;;;;;;;;;;;;;;;;;aASgC,CAAC;cAAsC,CAAC;eAC1C,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4hBAucrC,CAAC;AAEF,eAAO,MAAM,kBAAkB,uBAK9B,CAAC"}
1
+ {"version":3,"file":"base-plugins.d.ts","sourceRoot":"","sources":["../src/base-plugins.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { z, obsEmbeddingCsvSchema, obsSetsCsvSchema, obsSpotsCsvSchema, obsPoint
4
4
  // Register view type plugins
5
5
  import { DescriptionSubscriber } from '@vitessce/description';
6
6
  import { ObsSetsManagerSubscriber } from '@vitessce/obs-sets-manager';
7
- import { EmbeddingScatterplotSubscriber } from '@vitessce/scatterplot-embedding';
7
+ import { EmbeddingScatterplotSubscriber, DualEmbeddingScatterplotSubscriber, } from '@vitessce/scatterplot-embedding';
8
8
  import { GatingSubscriber } from '@vitessce/scatterplot-gating';
9
9
  import { SpatialSubscriber } from '@vitessce/spatial';
10
10
  import { SpatialBetaSubscriber } from '@vitessce/spatial-beta';
@@ -68,6 +68,7 @@ export const baseViewTypes = [
68
68
  makeViewType(ViewType.DESCRIPTION, DescriptionSubscriber),
69
69
  makeViewType(ViewType.OBS_SETS, ObsSetsManagerSubscriber),
70
70
  makeViewType(ViewType.SCATTERPLOT, EmbeddingScatterplotSubscriber),
71
+ makeViewType(ViewType.DUAL_SCATTERPLOT, DualEmbeddingScatterplotSubscriber),
71
72
  makeViewType(ViewType.GATING, GatingSubscriber),
72
73
  makeViewType(ViewType.SPATIAL, SpatialSubscriber),
73
74
  makeViewType(ViewType.SPATIAL_BETA, SpatialBetaSubscriber),
@@ -220,7 +221,11 @@ export const baseCoordinationTypes = [
220
221
  new PluginCoordinationType(CoordinationType.HEATMAP_TARGET_Y, 0, z.number()),
221
222
  new PluginCoordinationType(CoordinationType.OBS_FILTER, null, z.array(z.string()).nullable()),
222
223
  new PluginCoordinationType(CoordinationType.OBS_HIGHLIGHT, null, z.string().nullable()),
224
+ new PluginCoordinationType(CoordinationType.OBS_SELECTION, null, z.array(z.string()).nullable()),
223
225
  new PluginCoordinationType(CoordinationType.OBS_SET_SELECTION, null, z.array(obsSetPath).nullable()),
226
+ new PluginCoordinationType(CoordinationType.OBS_SELECTION_MODE, null, z.enum(['obsSelection', 'obsSetSelection']).nullable()),
227
+ new PluginCoordinationType(CoordinationType.OBS_SET_FILTER, null, z.array(obsSetPath).nullable()),
228
+ new PluginCoordinationType(CoordinationType.OBS_FILTER_MODE, null, z.enum(['obsFilter', 'obsSetFilter']).nullable()),
224
229
  new PluginCoordinationType(CoordinationType.OBS_SET_EXPANSION, null, z.array(obsSetPath).nullable()),
225
230
  new PluginCoordinationType(CoordinationType.OBS_SET_HIGHLIGHT, null, obsSetPath.nullable()),
226
231
  new PluginCoordinationType(CoordinationType.OBS_SET_COLOR, null, z.array(z.object({
@@ -231,6 +236,10 @@ export const baseCoordinationTypes = [
231
236
  new PluginCoordinationType(CoordinationType.FEATURE_FILTER, null, z.array(z.string()).nullable()),
232
237
  new PluginCoordinationType(CoordinationType.FEATURE_HIGHLIGHT, null, z.string().nullable()),
233
238
  new PluginCoordinationType(CoordinationType.FEATURE_SELECTION, null, z.array(z.string()).nullable()),
239
+ new PluginCoordinationType(CoordinationType.FEATURE_SET_SELECTION, null, z.array(obsSetPath).nullable()),
240
+ new PluginCoordinationType(CoordinationType.FEATURE_SELECTION_MODE, null, z.enum(['featureSelection', 'featureSetSelection']).nullable()),
241
+ new PluginCoordinationType(CoordinationType.FEATURE_SET_FILTER, null, z.array(obsSetPath).nullable()),
242
+ new PluginCoordinationType(CoordinationType.FEATURE_FILTER_MODE, null, z.enum(['featureFilter', 'featureSetFilter']).nullable()),
234
243
  new PluginCoordinationType(CoordinationType.FEATURE_VALUE_TRANSFORM, null, z.enum(['log1p', 'arcsinh']).nullable()),
235
244
  new PluginCoordinationType(CoordinationType.FEATURE_VALUE_TRANSFORM_COEFFICIENT, 1, z.number()),
236
245
  new PluginCoordinationType(CoordinationType.FEATURE_VALUE_POSITIVITY_THRESHOLD, 0, z.number()),
@@ -286,7 +295,12 @@ export const baseCoordinationTypes = [
286
295
  new PluginCoordinationType(CoordinationType.SPATIAL_CHANNEL_LABEL_SIZE, 14, z.number()),
287
296
  new PluginCoordinationType(CoordinationType.SAMPLE_TYPE, 'sample', z.string().nullable()),
288
297
  // TODO: remove one array level and use multi-coordination for sampleSetSelection?
298
+ new PluginCoordinationType(CoordinationType.SAMPLE_FILTER, null, z.array(z.string()).nullable()),
299
+ new PluginCoordinationType(CoordinationType.SAMPLE_SELECTION, null, z.array(z.string()).nullable()),
289
300
  new PluginCoordinationType(CoordinationType.SAMPLE_SET_SELECTION, null, z.array(z.array(z.string())).nullable()),
301
+ new PluginCoordinationType(CoordinationType.SAMPLE_SET_FILTER, null, z.array(z.array(z.string())).nullable()),
302
+ new PluginCoordinationType(CoordinationType.SAMPLE_SELECTION_MODE, null, z.enum(['sampleSelection', 'sampleSetSelection']).nullable()),
303
+ new PluginCoordinationType(CoordinationType.SAMPLE_FILTER_MODE, null, z.enum(['sampleFilter', 'sampleSetFilter']).nullable()),
290
304
  new PluginCoordinationType(CoordinationType.SAMPLE_SET_COLOR, null, z.array(z.object({
291
305
  path: obsSetPath,
292
306
  color: rgbArray,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vitessce/all",
3
- "version": "3.5.4",
3
+ "version": "3.5.6",
4
4
  "author": "HIDIVE Lab at HMS",
5
5
  "homepage": "http://vitessce.io",
6
6
  "repository": {
@@ -18,33 +18,33 @@
18
18
  "dependencies": {
19
19
  "@material-ui/core": "~4.12.3",
20
20
  "zod": "^3.21.4",
21
- "@vitessce/constants-internal": "3.5.4",
22
- "@vitessce/abstract": "3.5.4",
23
- "@vitessce/csv": "3.5.4",
24
- "@vitessce/description": "3.5.4",
25
- "@vitessce/feature-list": "3.5.4",
26
- "@vitessce/genomic-profiles": "3.5.4",
27
- "@vitessce/heatmap": "3.5.4",
28
- "@vitessce/glb": "3.5.4",
29
- "@vitessce/json": "3.5.4",
30
- "@vitessce/layer-controller": "3.5.4",
31
- "@vitessce/layer-controller-beta": "3.5.4",
32
- "@vitessce/link-controller": "3.5.4",
33
- "@vitessce/obs-sets-manager": "3.5.4",
34
- "@vitessce/ome-tiff": "3.5.4",
35
- "@vitessce/plugins": "3.5.4",
36
- "@vitessce/scatterplot-embedding": "3.5.4",
37
- "@vitessce/scatterplot-gating": "3.5.4",
38
- "@vitessce/schemas": "3.5.4",
39
- "@vitessce/spatial": "3.5.4",
40
- "@vitessce/spatial-beta": "3.5.4",
41
- "@vitessce/statistical-plots": "3.5.4",
42
- "@vitessce/status": "3.5.4",
43
- "@vitessce/vit-s": "3.5.4",
44
- "@vitessce/zarr": "3.5.4",
45
- "@vitessce/spatial-zarr": "3.5.4",
46
- "@vitessce/spatial-three": "3.5.4",
47
- "@vitessce/biomarker-select": "3.5.4"
21
+ "@vitessce/constants-internal": "3.5.6",
22
+ "@vitessce/abstract": "3.5.6",
23
+ "@vitessce/csv": "3.5.6",
24
+ "@vitessce/description": "3.5.6",
25
+ "@vitessce/feature-list": "3.5.6",
26
+ "@vitessce/genomic-profiles": "3.5.6",
27
+ "@vitessce/heatmap": "3.5.6",
28
+ "@vitessce/glb": "3.5.6",
29
+ "@vitessce/json": "3.5.6",
30
+ "@vitessce/layer-controller": "3.5.6",
31
+ "@vitessce/layer-controller-beta": "3.5.6",
32
+ "@vitessce/link-controller": "3.5.6",
33
+ "@vitessce/obs-sets-manager": "3.5.6",
34
+ "@vitessce/ome-tiff": "3.5.6",
35
+ "@vitessce/plugins": "3.5.6",
36
+ "@vitessce/scatterplot-embedding": "3.5.6",
37
+ "@vitessce/scatterplot-gating": "3.5.6",
38
+ "@vitessce/schemas": "3.5.6",
39
+ "@vitessce/spatial": "3.5.6",
40
+ "@vitessce/spatial-beta": "3.5.6",
41
+ "@vitessce/statistical-plots": "3.5.6",
42
+ "@vitessce/status": "3.5.6",
43
+ "@vitessce/vit-s": "3.5.6",
44
+ "@vitessce/zarr": "3.5.6",
45
+ "@vitessce/spatial-zarr": "3.5.6",
46
+ "@vitessce/spatial-three": "3.5.6",
47
+ "@vitessce/biomarker-select": "3.5.6"
48
48
  },
49
49
  "devDependencies": {
50
50
  "@types/react": "^18.0.28",
@@ -71,7 +71,10 @@ import {
71
71
  // Register view type plugins
72
72
  import { DescriptionSubscriber } from '@vitessce/description';
73
73
  import { ObsSetsManagerSubscriber } from '@vitessce/obs-sets-manager';
74
- import { EmbeddingScatterplotSubscriber } from '@vitessce/scatterplot-embedding';
74
+ import {
75
+ EmbeddingScatterplotSubscriber,
76
+ DualEmbeddingScatterplotSubscriber,
77
+ } from '@vitessce/scatterplot-embedding';
75
78
  import { GatingSubscriber } from '@vitessce/scatterplot-gating';
76
79
  import { SpatialSubscriber } from '@vitessce/spatial';
77
80
  import { SpatialBetaSubscriber } from '@vitessce/spatial-beta';
@@ -221,6 +224,7 @@ export const baseViewTypes = [
221
224
  makeViewType(ViewType.DESCRIPTION, DescriptionSubscriber),
222
225
  makeViewType(ViewType.OBS_SETS, ObsSetsManagerSubscriber),
223
226
  makeViewType(ViewType.SCATTERPLOT, EmbeddingScatterplotSubscriber),
227
+ makeViewType(ViewType.DUAL_SCATTERPLOT, DualEmbeddingScatterplotSubscriber),
224
228
  makeViewType(ViewType.GATING, GatingSubscriber),
225
229
  makeViewType(ViewType.SPATIAL, SpatialSubscriber),
226
230
  makeViewType(ViewType.SPATIAL_BETA, SpatialBetaSubscriber),
@@ -401,11 +405,19 @@ export const baseCoordinationTypes = [
401
405
  new PluginCoordinationType(CoordinationType.HEATMAP_TARGET_Y, 0, z.number()),
402
406
  new PluginCoordinationType(CoordinationType.OBS_FILTER, null, z.array(z.string()).nullable()),
403
407
  new PluginCoordinationType(CoordinationType.OBS_HIGHLIGHT, null, z.string().nullable()),
408
+ new PluginCoordinationType(CoordinationType.OBS_SELECTION, null, z.array(z.string()).nullable()),
404
409
  new PluginCoordinationType(
405
410
  CoordinationType.OBS_SET_SELECTION,
406
411
  null,
407
412
  z.array(obsSetPath).nullable(),
408
413
  ),
414
+ new PluginCoordinationType(CoordinationType.OBS_SELECTION_MODE, null, z.enum(['obsSelection', 'obsSetSelection']).nullable()),
415
+ new PluginCoordinationType(
416
+ CoordinationType.OBS_SET_FILTER,
417
+ null,
418
+ z.array(obsSetPath).nullable(),
419
+ ),
420
+ new PluginCoordinationType(CoordinationType.OBS_FILTER_MODE, null, z.enum(['obsFilter', 'obsSetFilter']).nullable()),
409
421
  new PluginCoordinationType(
410
422
  CoordinationType.OBS_SET_EXPANSION,
411
423
  null,
@@ -432,6 +444,18 @@ export const baseCoordinationTypes = [
432
444
  null,
433
445
  z.array(z.string()).nullable(),
434
446
  ),
447
+ new PluginCoordinationType(
448
+ CoordinationType.FEATURE_SET_SELECTION,
449
+ null,
450
+ z.array(obsSetPath).nullable(),
451
+ ),
452
+ new PluginCoordinationType(CoordinationType.FEATURE_SELECTION_MODE, null, z.enum(['featureSelection', 'featureSetSelection']).nullable()),
453
+ new PluginCoordinationType(
454
+ CoordinationType.FEATURE_SET_FILTER,
455
+ null,
456
+ z.array(obsSetPath).nullable(),
457
+ ),
458
+ new PluginCoordinationType(CoordinationType.FEATURE_FILTER_MODE, null, z.enum(['featureFilter', 'featureSetFilter']).nullable()),
435
459
  new PluginCoordinationType(
436
460
  CoordinationType.FEATURE_VALUE_TRANSFORM,
437
461
  null,
@@ -519,7 +543,12 @@ export const baseCoordinationTypes = [
519
543
  new PluginCoordinationType(CoordinationType.SPATIAL_CHANNEL_LABEL_SIZE, 14, z.number()),
520
544
  new PluginCoordinationType(CoordinationType.SAMPLE_TYPE, 'sample', z.string().nullable()),
521
545
  // TODO: remove one array level and use multi-coordination for sampleSetSelection?
546
+ new PluginCoordinationType(CoordinationType.SAMPLE_FILTER, null, z.array(z.string()).nullable()),
547
+ new PluginCoordinationType(CoordinationType.SAMPLE_SELECTION, null, z.array(z.string()).nullable()),
522
548
  new PluginCoordinationType(CoordinationType.SAMPLE_SET_SELECTION, null, z.array(z.array(z.string())).nullable()),
549
+ new PluginCoordinationType(CoordinationType.SAMPLE_SET_FILTER, null, z.array(z.array(z.string())).nullable()),
550
+ new PluginCoordinationType(CoordinationType.SAMPLE_SELECTION_MODE, null, z.enum(['sampleSelection', 'sampleSetSelection']).nullable()),
551
+ new PluginCoordinationType(CoordinationType.SAMPLE_FILTER_MODE, null, z.enum(['sampleFilter', 'sampleSetFilter']).nullable()),
523
552
  new PluginCoordinationType(
524
553
  CoordinationType.SAMPLE_SET_COLOR,
525
554
  null,