@vitessce/statistical-plots 3.1.3 → 3.2.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.
Files changed (2) hide show
  1. package/dist/index.js +491 -193
  2. package/package.json +6 -6
package/dist/index.js CHANGED
@@ -926,8 +926,10 @@ const ViewType$1 = {
926
926
  STATUS: "status",
927
927
  SCATTERPLOT: "scatterplot",
928
928
  SPATIAL: "spatial",
929
+ SPATIAL_BETA: "spatialBeta",
929
930
  HEATMAP: "heatmap",
930
931
  LAYER_CONTROLLER: "layerController",
932
+ LAYER_CONTROLLER_BETA: "layerControllerBeta",
931
933
  GENOMIC_PROFILES: "genomicProfiles",
932
934
  GATING: "gating",
933
935
  FEATURE_LIST: "featureList",
@@ -939,20 +941,24 @@ const ViewType$1 = {
939
941
  const DataType$1 = {
940
942
  OBS_LABELS: "obsLabels",
941
943
  OBS_EMBEDDING: "obsEmbedding",
942
- OBS_LOCATIONS: "obsLocations",
943
944
  OBS_FEATURE_MATRIX: "obsFeatureMatrix",
944
945
  OBS_SETS: "obsSets",
945
946
  FEATURE_LABELS: "featureLabels",
946
947
  IMAGE: "image",
947
948
  OBS_SEGMENTATIONS: "obsSegmentations",
948
949
  NEIGHBORHOODS: "neighborhoods",
949
- GENOMIC_PROFILES: "genomic-profiles"
950
+ GENOMIC_PROFILES: "genomic-profiles",
951
+ OBS_SPOTS: "obsSpots",
952
+ OBS_POINTS: "obsPoints",
953
+ OBS_LOCATIONS: "obsLocations"
950
954
  };
951
955
  const FileType$1 = {
952
956
  // Joint file types
953
957
  ANNDATA_ZARR: "anndata.zarr",
954
958
  // Atomic file types
955
959
  OBS_EMBEDDING_CSV: "obsEmbedding.csv",
960
+ OBS_SPOTS_CSV: "obsSpots.csv",
961
+ OBS_POINTS_CSV: "obsPoints.csv",
956
962
  OBS_LOCATIONS_CSV: "obsLocations.csv",
957
963
  OBS_LABELS_CSV: "obsLabels.csv",
958
964
  FEATURE_LABELS_CSV: "featureLabels.csv",
@@ -965,6 +971,8 @@ const FileType$1 = {
965
971
  OBS_FEATURE_MATRIX_ANNDATA_ZARR: "obsFeatureMatrix.anndata.zarr",
966
972
  OBS_SETS_ANNDATA_ZARR: "obsSets.anndata.zarr",
967
973
  OBS_EMBEDDING_ANNDATA_ZARR: "obsEmbedding.anndata.zarr",
974
+ OBS_SPOTS_ANNDATA_ZARR: "obsSpots.anndata.zarr",
975
+ OBS_POINTS_ANNDATA_ZARR: "obsPoints.anndata.zarr",
968
976
  OBS_LOCATIONS_ANNDATA_ZARR: "obsLocations.anndata.zarr",
969
977
  OBS_SEGMENTATIONS_ANNDATA_ZARR: "obsSegmentations.anndata.zarr",
970
978
  OBS_LABELS_ANNDATA_ZARR: "obsLabels.anndata.zarr",
@@ -973,6 +981,8 @@ const FileType$1 = {
973
981
  OBS_FEATURE_MATRIX_MUDATA_ZARR: "obsFeatureMatrix.mudata.zarr",
974
982
  OBS_SETS_MUDATA_ZARR: "obsSets.mudata.zarr",
975
983
  OBS_EMBEDDING_MUDATA_ZARR: "obsEmbedding.mudata.zarr",
984
+ OBS_SPOTS_MUDATA_ZARR: "obsSpots.mudata.zarr",
985
+ OBS_POINTS_MUDATA_ZARR: "obsPoints.mudata.zarr",
976
986
  OBS_LOCATIONS_MUDATA_ZARR: "obsLocations.mudata.zarr",
977
987
  OBS_SEGMENTATIONS_MUDATA_ZARR: "obsSegmentations.mudata.zarr",
978
988
  OBS_LABELS_MUDATA_ZARR: "obsLabels.mudata.zarr",
@@ -1016,10 +1026,8 @@ const FileType$1 = {
1016
1026
  ANNDATA_EXPRESSION_MATRIX_ZARR: "anndata-expression-matrix.zarr"
1017
1027
  };
1018
1028
  const CoordinationType$1 = {
1019
- // Meta coordination scopes
1020
1029
  META_COORDINATION_SCOPES: "metaCoordinationScopes",
1021
1030
  META_COORDINATION_SCOPES_BY: "metaCoordinationScopesBy",
1022
- // Other coordination scopes
1023
1031
  DATASET: "dataset",
1024
1032
  // Entity types
1025
1033
  OBS_TYPE: "obsType",
@@ -1045,6 +1053,7 @@ const CoordinationType$1 = {
1045
1053
  SPATIAL_TARGET_X: "spatialTargetX",
1046
1054
  SPATIAL_TARGET_Y: "spatialTargetY",
1047
1055
  SPATIAL_TARGET_Z: "spatialTargetZ",
1056
+ SPATIAL_TARGET_T: "spatialTargetT",
1048
1057
  SPATIAL_ROTATION_X: "spatialRotationX",
1049
1058
  SPATIAL_ROTATION_Y: "spatialRotationY",
1050
1059
  SPATIAL_ROTATION_Z: "spatialRotationZ",
@@ -1082,7 +1091,46 @@ const CoordinationType$1 = {
1082
1091
  GATING_FEATURE_SELECTION_X: "gatingFeatureSelectionX",
1083
1092
  GATING_FEATURE_SELECTION_Y: "gatingFeatureSelectionY",
1084
1093
  FEATURE_VALUE_TRANSFORM_COEFFICIENT: "featureValueTransformCoefficient",
1085
- TOOLTIPS_VISIBLE: "tooltipsVisible"
1094
+ TOOLTIPS_VISIBLE: "tooltipsVisible",
1095
+ FILE_UID: "fileUid",
1096
+ IMAGE_LAYER: "imageLayer",
1097
+ IMAGE_CHANNEL: "imageChannel",
1098
+ SEGMENTATION_LAYER: "segmentationLayer",
1099
+ SEGMENTATION_CHANNEL: "segmentationChannel",
1100
+ SPATIAL_TARGET_C: "spatialTargetC",
1101
+ SPATIAL_LAYER_VISIBLE: "spatialLayerVisible",
1102
+ SPATIAL_LAYER_OPACITY: "spatialLayerOpacity",
1103
+ SPATIAL_LAYER_COLORMAP: "spatialLayerColormap",
1104
+ SPATIAL_LAYER_TRANSPARENT_COLOR: "spatialLayerTransparentColor",
1105
+ SPATIAL_LAYER_MODEL_MATRIX: "spatialLayerModelMatrix",
1106
+ SPATIAL_SEGMENTATION_FILLED: "spatialSegmentationFilled",
1107
+ SPATIAL_SEGMENTATION_STROKE_WIDTH: "spatialSegmentationStrokeWidth",
1108
+ SPATIAL_CHANNEL_COLOR: "spatialChannelColor",
1109
+ SPATIAL_CHANNEL_VISIBLE: "spatialChannelVisible",
1110
+ SPATIAL_CHANNEL_OPACITY: "spatialChannelOpacity",
1111
+ SPATIAL_CHANNEL_WINDOW: "spatialChannelWindow",
1112
+ PHOTOMETRIC_INTERPRETATION: "photometricInterpretation",
1113
+ // For 3D volume rendering
1114
+ SPATIAL_RENDERING_MODE: "spatialRenderingMode",
1115
+ VOLUMETRIC_RENDERING_ALGORITHM: "volumetricRenderingAlgorithm",
1116
+ SPATIAL_TARGET_RESOLUTION: "spatialTargetResolution",
1117
+ // For clipping plane sliders
1118
+ SPATIAL_SLICE_X: "spatialSliceX",
1119
+ SPATIAL_SLICE_Y: "spatialSliceY",
1120
+ SPATIAL_SLICE_Z: "spatialSliceZ",
1121
+ // For spatial spot and point layers
1122
+ SPOT_LAYER: "spotLayer",
1123
+ POINT_LAYER: "pointLayer",
1124
+ SPATIAL_SPOT_RADIUS: "spatialSpotRadius",
1125
+ SPATIAL_SPOT_FILLED: "spatialSpotFilled",
1126
+ SPATIAL_SPOT_STROKE_WIDTH: "spatialSpotStrokeWidth",
1127
+ SPATIAL_LAYER_COLOR: "spatialLayerColor",
1128
+ PIXEL_HIGHLIGHT: "pixelHighlight",
1129
+ TOOLTIP_CROSSHAIRS_VISIBLE: "tooltipCrosshairsVisible",
1130
+ LEGEND_VISIBLE: "legendVisible",
1131
+ SPATIAL_CHANNEL_LABELS_VISIBLE: "spatialChannelLabelsVisible",
1132
+ SPATIAL_CHANNEL_LABELS_ORIENTATION: "spatialChannelLabelsOrientation",
1133
+ SPATIAL_CHANNEL_LABEL_SIZE: "spatialChannelLabelSize"
1086
1134
  };
1087
1135
  const COMPONENT_COORDINATION_TYPES = {
1088
1136
  [ViewType$1.SCATTERPLOT]: [
@@ -1186,6 +1234,77 @@ const COMPONENT_COORDINATION_TYPES = {
1186
1234
  CoordinationType$1.MOLECULE_HIGHLIGHT,
1187
1235
  CoordinationType$1.TOOLTIPS_VISIBLE
1188
1236
  ],
1237
+ [ViewType$1.SPATIAL_BETA]: [
1238
+ CoordinationType$1.META_COORDINATION_SCOPES,
1239
+ CoordinationType$1.META_COORDINATION_SCOPES_BY,
1240
+ CoordinationType$1.DATASET,
1241
+ CoordinationType$1.OBS_TYPE,
1242
+ CoordinationType$1.OBS_LABELS_TYPE,
1243
+ CoordinationType$1.FEATURE_TYPE,
1244
+ CoordinationType$1.FEATURE_VALUE_TYPE,
1245
+ CoordinationType$1.SPATIAL_ZOOM,
1246
+ CoordinationType$1.SPATIAL_ROTATION,
1247
+ CoordinationType$1.SPATIAL_POINT_LAYER,
1248
+ CoordinationType$1.SPATIAL_NEIGHBORHOOD_LAYER,
1249
+ CoordinationType$1.SPATIAL_TARGET_X,
1250
+ CoordinationType$1.SPATIAL_TARGET_Y,
1251
+ CoordinationType$1.SPATIAL_TARGET_Z,
1252
+ CoordinationType$1.SPATIAL_TARGET_T,
1253
+ CoordinationType$1.SPATIAL_ROTATION_X,
1254
+ CoordinationType$1.SPATIAL_ROTATION_Y,
1255
+ CoordinationType$1.SPATIAL_ROTATION_Z,
1256
+ CoordinationType$1.SPATIAL_ROTATION_ORBIT,
1257
+ CoordinationType$1.SPATIAL_ORBIT_AXIS,
1258
+ CoordinationType$1.SPATIAL_AXIS_FIXED,
1259
+ CoordinationType$1.OBS_FILTER,
1260
+ CoordinationType$1.OBS_HIGHLIGHT,
1261
+ CoordinationType$1.OBS_SET_SELECTION,
1262
+ CoordinationType$1.OBS_SET_HIGHLIGHT,
1263
+ CoordinationType$1.OBS_SET_COLOR,
1264
+ CoordinationType$1.FEATURE_HIGHLIGHT,
1265
+ CoordinationType$1.FEATURE_SELECTION,
1266
+ CoordinationType$1.FEATURE_VALUE_COLORMAP,
1267
+ CoordinationType$1.FEATURE_VALUE_COLORMAP_RANGE,
1268
+ CoordinationType$1.OBS_COLOR_ENCODING,
1269
+ CoordinationType$1.ADDITIONAL_OBS_SETS,
1270
+ CoordinationType$1.MOLECULE_HIGHLIGHT,
1271
+ CoordinationType$1.TOOLTIPS_VISIBLE,
1272
+ CoordinationType$1.FILE_UID,
1273
+ CoordinationType$1.SPATIAL_TARGET_C,
1274
+ CoordinationType$1.SPATIAL_LAYER_VISIBLE,
1275
+ CoordinationType$1.SPATIAL_LAYER_OPACITY,
1276
+ CoordinationType$1.SPATIAL_LAYER_COLORMAP,
1277
+ CoordinationType$1.SPATIAL_LAYER_TRANSPARENT_COLOR,
1278
+ CoordinationType$1.SPATIAL_LAYER_MODEL_MATRIX,
1279
+ CoordinationType$1.SPATIAL_CHANNEL_COLOR,
1280
+ CoordinationType$1.SPATIAL_SEGMENTATION_FILLED,
1281
+ CoordinationType$1.SPATIAL_SEGMENTATION_STROKE_WIDTH,
1282
+ CoordinationType$1.IMAGE_LAYER,
1283
+ CoordinationType$1.SEGMENTATION_LAYER,
1284
+ CoordinationType$1.IMAGE_CHANNEL,
1285
+ CoordinationType$1.SEGMENTATION_CHANNEL,
1286
+ CoordinationType$1.SPATIAL_CHANNEL_VISIBLE,
1287
+ CoordinationType$1.SPATIAL_CHANNEL_OPACITY,
1288
+ CoordinationType$1.SPATIAL_CHANNEL_WINDOW,
1289
+ CoordinationType$1.SPATIAL_RENDERING_MODE,
1290
+ CoordinationType$1.VOLUMETRIC_RENDERING_ALGORITHM,
1291
+ CoordinationType$1.SPATIAL_TARGET_RESOLUTION,
1292
+ CoordinationType$1.SPATIAL_SLICE_X,
1293
+ CoordinationType$1.SPATIAL_SLICE_Y,
1294
+ CoordinationType$1.SPATIAL_SLICE_Z,
1295
+ CoordinationType$1.SPOT_LAYER,
1296
+ CoordinationType$1.POINT_LAYER,
1297
+ CoordinationType$1.SPATIAL_SPOT_RADIUS,
1298
+ CoordinationType$1.SPATIAL_SPOT_FILLED,
1299
+ CoordinationType$1.SPATIAL_SPOT_STROKE_WIDTH,
1300
+ CoordinationType$1.SPATIAL_LAYER_COLOR,
1301
+ CoordinationType$1.PIXEL_HIGHLIGHT,
1302
+ CoordinationType$1.TOOLTIP_CROSSHAIRS_VISIBLE,
1303
+ CoordinationType$1.LEGEND_VISIBLE,
1304
+ CoordinationType$1.SPATIAL_CHANNEL_LABELS_VISIBLE,
1305
+ CoordinationType$1.SPATIAL_CHANNEL_LABELS_ORIENTATION,
1306
+ CoordinationType$1.SPATIAL_CHANNEL_LABEL_SIZE
1307
+ ],
1189
1308
  [ViewType$1.HEATMAP]: [
1190
1309
  CoordinationType$1.DATASET,
1191
1310
  CoordinationType$1.OBS_TYPE,
@@ -1291,6 +1410,61 @@ const COMPONENT_COORDINATION_TYPES = {
1291
1410
  CoordinationType$1.SPATIAL_ROTATION_ORBIT,
1292
1411
  CoordinationType$1.SPATIAL_ORBIT_AXIS
1293
1412
  ],
1413
+ [ViewType$1.LAYER_CONTROLLER_BETA]: [
1414
+ CoordinationType$1.META_COORDINATION_SCOPES,
1415
+ CoordinationType$1.META_COORDINATION_SCOPES_BY,
1416
+ CoordinationType$1.DATASET,
1417
+ CoordinationType$1.OBS_TYPE,
1418
+ CoordinationType$1.FEATURE_TYPE,
1419
+ CoordinationType$1.FEATURE_VALUE_TYPE,
1420
+ CoordinationType$1.SPATIAL_POINT_LAYER,
1421
+ CoordinationType$1.SPATIAL_NEIGHBORHOOD_LAYER,
1422
+ CoordinationType$1.SPATIAL_ZOOM,
1423
+ CoordinationType$1.SPATIAL_TARGET_X,
1424
+ CoordinationType$1.SPATIAL_TARGET_Y,
1425
+ CoordinationType$1.SPATIAL_TARGET_Z,
1426
+ CoordinationType$1.SPATIAL_TARGET_T,
1427
+ CoordinationType$1.SPATIAL_ROTATION_X,
1428
+ CoordinationType$1.SPATIAL_ROTATION_Y,
1429
+ CoordinationType$1.SPATIAL_ROTATION_Z,
1430
+ CoordinationType$1.SPATIAL_ROTATION_ORBIT,
1431
+ CoordinationType$1.SPATIAL_ORBIT_AXIS,
1432
+ CoordinationType$1.FILE_UID,
1433
+ CoordinationType$1.SPATIAL_TARGET_C,
1434
+ CoordinationType$1.SPATIAL_LAYER_VISIBLE,
1435
+ CoordinationType$1.SPATIAL_LAYER_OPACITY,
1436
+ CoordinationType$1.SPATIAL_LAYER_COLORMAP,
1437
+ CoordinationType$1.SPATIAL_LAYER_TRANSPARENT_COLOR,
1438
+ CoordinationType$1.SPATIAL_LAYER_MODEL_MATRIX,
1439
+ CoordinationType$1.SPATIAL_CHANNEL_COLOR,
1440
+ CoordinationType$1.SPATIAL_SEGMENTATION_FILLED,
1441
+ CoordinationType$1.SPATIAL_SEGMENTATION_STROKE_WIDTH,
1442
+ CoordinationType$1.IMAGE_CHANNEL,
1443
+ CoordinationType$1.SEGMENTATION_CHANNEL,
1444
+ CoordinationType$1.SPATIAL_CHANNEL_VISIBLE,
1445
+ CoordinationType$1.SPATIAL_CHANNEL_OPACITY,
1446
+ CoordinationType$1.SPATIAL_CHANNEL_WINDOW,
1447
+ CoordinationType$1.PHOTOMETRIC_INTERPRETATION,
1448
+ CoordinationType$1.SPATIAL_RENDERING_MODE,
1449
+ CoordinationType$1.VOLUMETRIC_RENDERING_ALGORITHM,
1450
+ CoordinationType$1.SPATIAL_TARGET_RESOLUTION,
1451
+ CoordinationType$1.SPATIAL_SLICE_X,
1452
+ CoordinationType$1.SPATIAL_SLICE_Y,
1453
+ CoordinationType$1.SPATIAL_SLICE_Z,
1454
+ CoordinationType$1.SPOT_LAYER,
1455
+ CoordinationType$1.POINT_LAYER,
1456
+ CoordinationType$1.SPATIAL_SPOT_RADIUS,
1457
+ CoordinationType$1.SPATIAL_SPOT_FILLED,
1458
+ CoordinationType$1.SPATIAL_SPOT_STROKE_WIDTH,
1459
+ CoordinationType$1.SPATIAL_LAYER_COLOR,
1460
+ CoordinationType$1.OBS_COLOR_ENCODING,
1461
+ CoordinationType$1.TOOLTIPS_VISIBLE,
1462
+ CoordinationType$1.TOOLTIP_CROSSHAIRS_VISIBLE,
1463
+ CoordinationType$1.LEGEND_VISIBLE,
1464
+ CoordinationType$1.SPATIAL_CHANNEL_LABELS_VISIBLE,
1465
+ CoordinationType$1.SPATIAL_CHANNEL_LABELS_ORIENTATION,
1466
+ CoordinationType$1.SPATIAL_CHANNEL_LABEL_SIZE
1467
+ ],
1294
1468
  [ViewType$1.GENOMIC_PROFILES]: [
1295
1469
  CoordinationType$1.DATASET,
1296
1470
  CoordinationType$1.OBS_TYPE,
@@ -9258,11 +9432,11 @@ const forEachStep$1 = (self2, fn, node, thisp) => {
9258
9432
  fn.call(thisp, hit2.value, hit2.key, self2);
9259
9433
  };
9260
9434
  var lruCache$2 = LRUCache$1;
9261
- var range$5;
9435
+ var range$6;
9262
9436
  var hasRequiredRange$1;
9263
9437
  function requireRange$1() {
9264
9438
  if (hasRequiredRange$1)
9265
- return range$5;
9439
+ return range$6;
9266
9440
  hasRequiredRange$1 = 1;
9267
9441
  class Range2 {
9268
9442
  constructor(range2, options) {
@@ -9387,7 +9561,7 @@ function requireRange$1() {
9387
9561
  return false;
9388
9562
  }
9389
9563
  }
9390
- range$5 = Range2;
9564
+ range$6 = Range2;
9391
9565
  const LRU = lruCache$2;
9392
9566
  const cache2 = new LRU({ max: 1e3 });
9393
9567
  const parseOptions2 = parseOptions_1$1;
@@ -9618,7 +9792,7 @@ function requireRange$1() {
9618
9792
  }
9619
9793
  return true;
9620
9794
  };
9621
- return range$5;
9795
+ return range$6;
9622
9796
  }
9623
9797
  var comparator$2;
9624
9798
  var hasRequiredComparator$1;
@@ -10457,6 +10631,8 @@ const annDataObsSets = z.array(z.object({
10457
10631
  ]),
10458
10632
  scorePath: z.string().optional().describe("The location in the AnnData store for the set confidence scores, like 'obs/celltype_prediction_score.'")
10459
10633
  }));
10634
+ const annDataObsSpots = annDataObsm;
10635
+ const annDataObsPoints = annDataObsm;
10460
10636
  const annDataObsLocations = annDataObsm;
10461
10637
  const annDataObsEmbedding = annDataObsm;
10462
10638
  const annDataObsSegmentations = annDataObs;
@@ -10483,10 +10659,21 @@ z.object({
10483
10659
  z.object({
10484
10660
  obsIndex: z.string(),
10485
10661
  obsEmbedding: z.array(z.string()).length(2)
10662
+ // TODO: support 3D?
10663
+ });
10664
+ z.object({
10665
+ obsIndex: z.string(),
10666
+ obsSpots: z.array(z.string()).length(2)
10667
+ // TODO: support 3D?
10668
+ });
10669
+ z.object({
10670
+ obsIndex: z.string(),
10671
+ obsPoints: z.array(z.string()).length(3)
10486
10672
  });
10487
10673
  z.object({
10488
10674
  obsIndex: z.string(),
10489
10675
  obsLocations: z.array(z.string()).length(2)
10676
+ // TODO: support 3D?
10490
10677
  });
10491
10678
  z.object({
10492
10679
  obsIndex: z.string(),
@@ -10518,6 +10705,8 @@ z.object({
10518
10705
  ]),
10519
10706
  obsFeatureMatrix: annDataObsFeatureMatrix,
10520
10707
  obsSets: annDataObsSets,
10708
+ obsSpots: annDataObsSpots,
10709
+ obsPoints: annDataObsPoints,
10521
10710
  obsLocations: annDataObsLocations,
10522
10711
  obsSegmentations: annDataObsSegmentations,
10523
10712
  obsEmbedding: z.union([
@@ -17231,29 +17420,8 @@ var json2csv_umd = { exports: {} };
17231
17420
  Object.defineProperty(exports3, "__esModule", { value: true });
17232
17421
  });
17233
17422
  })(json2csv_umd, json2csv_umd.exports);
17234
- class InternMap extends Map {
17235
- constructor(entries2, key2 = keyof) {
17236
- super();
17237
- Object.defineProperties(this, { _intern: { value: /* @__PURE__ */ new Map() }, _key: { value: key2 } });
17238
- if (entries2 != null)
17239
- for (const [key22, value2] of entries2)
17240
- this.set(key22, value2);
17241
- }
17242
- get(key2) {
17243
- return super.get(intern_get(this, key2));
17244
- }
17245
- has(key2) {
17246
- return super.has(intern_get(this, key2));
17247
- }
17248
- set(key2, value2) {
17249
- return super.set(intern_set(this, key2), value2);
17250
- }
17251
- delete(key2) {
17252
- return super.delete(intern_delete(this, key2));
17253
- }
17254
- }
17255
17423
  class InternSet extends Set {
17256
- constructor(values2, key2 = keyof) {
17424
+ constructor(values2, key2 = keyof$1) {
17257
17425
  super();
17258
17426
  Object.defineProperties(this, { _intern: { value: /* @__PURE__ */ new Map() }, _key: { value: key2 } });
17259
17427
  if (values2 != null)
@@ -17261,27 +17429,27 @@ class InternSet extends Set {
17261
17429
  this.add(value2);
17262
17430
  }
17263
17431
  has(value2) {
17264
- return super.has(intern_get(this, value2));
17432
+ return super.has(intern_get$1(this, value2));
17265
17433
  }
17266
17434
  add(value2) {
17267
- return super.add(intern_set(this, value2));
17435
+ return super.add(intern_set$1(this, value2));
17268
17436
  }
17269
17437
  delete(value2) {
17270
- return super.delete(intern_delete(this, value2));
17438
+ return super.delete(intern_delete$1(this, value2));
17271
17439
  }
17272
17440
  }
17273
- function intern_get({ _intern, _key }, value2) {
17441
+ function intern_get$1({ _intern, _key }, value2) {
17274
17442
  const key2 = _key(value2);
17275
17443
  return _intern.has(key2) ? _intern.get(key2) : value2;
17276
17444
  }
17277
- function intern_set({ _intern, _key }, value2) {
17445
+ function intern_set$1({ _intern, _key }, value2) {
17278
17446
  const key2 = _key(value2);
17279
17447
  if (_intern.has(key2))
17280
17448
  return _intern.get(key2);
17281
17449
  _intern.set(key2, value2);
17282
17450
  return value2;
17283
17451
  }
17284
- function intern_delete({ _intern, _key }, value2) {
17452
+ function intern_delete$1({ _intern, _key }, value2) {
17285
17453
  const key2 = _key(value2);
17286
17454
  if (_intern.has(key2)) {
17287
17455
  value2 = _intern.get(key2);
@@ -17289,7 +17457,7 @@ function intern_delete({ _intern, _key }, value2) {
17289
17457
  }
17290
17458
  return value2;
17291
17459
  }
17292
- function keyof(value2) {
17460
+ function keyof$1(value2) {
17293
17461
  return value2 !== null && typeof value2 === "object" ? value2.valueOf() : value2;
17294
17462
  }
17295
17463
  const schemeRdBu = [[103, 0, 31], [178, 24, 43], [214, 96, 77], [244, 165, 130], [253, 219, 199], [247, 247, 247], [209, 229, 240], [146, 197, 222], [67, 147, 195], [33, 102, 172], [5, 48, 97]];
@@ -29136,10 +29304,10 @@ function compare$9(fields, orders, opt) {
29136
29304
  });
29137
29305
  return get3.length === 0 ? null : accessor(gen(get3, ord), Object.keys(fmap));
29138
29306
  }
29139
- const ascending$3 = (u2, v) => (u2 < v || u2 == null) && v != null ? -1 : (u2 > v || v == null) && u2 != null ? 1 : (v = v instanceof Date ? +v : v, u2 = u2 instanceof Date ? +u2 : u2) !== u2 && v === v ? -1 : v !== v && u2 === u2 ? 1 : 0;
29307
+ const ascending$4 = (u2, v) => (u2 < v || u2 == null) && v != null ? -1 : (u2 > v || v == null) && u2 != null ? 1 : (v = v instanceof Date ? +v : v, u2 = u2 instanceof Date ? +u2 : u2) !== u2 && v === v ? -1 : v !== v && u2 === u2 ? 1 : 0;
29140
29308
  const comparator$1 = (fields, orders) => fields.length === 1 ? compare1(fields[0], orders[0]) : compareN(fields, orders, fields.length);
29141
29309
  const compare1 = (field2, order) => function(a2, b2) {
29142
- return ascending$3(field2(a2), field2(b2)) * order;
29310
+ return ascending$4(field2(a2), field2(b2)) * order;
29143
29311
  };
29144
29312
  const compareN = (fields, orders, n) => {
29145
29313
  orders.push(0);
@@ -29147,7 +29315,7 @@ const compareN = (fields, orders, n) => {
29147
29315
  let f, c2 = 0, i = -1;
29148
29316
  while (c2 === 0 && ++i < n) {
29149
29317
  f = fields[i];
29150
- c2 = ascending$3(f(a2), f(b2));
29318
+ c2 = ascending$4(f(a2), f(b2));
29151
29319
  }
29152
29320
  return c2 * orders[i];
29153
29321
  };
@@ -30861,20 +31029,20 @@ function extractArcs(topology, object2, filter2) {
30861
31029
  });
30862
31030
  return arcs;
30863
31031
  }
30864
- function ascending$2(a2, b2) {
31032
+ function ascending$3(a2, b2) {
30865
31033
  return a2 == null || b2 == null ? NaN : a2 < b2 ? -1 : a2 > b2 ? 1 : a2 >= b2 ? 0 : NaN;
30866
31034
  }
30867
31035
  function descending$1(a2, b2) {
30868
31036
  return a2 == null || b2 == null ? NaN : b2 < a2 ? -1 : b2 > a2 ? 1 : b2 >= a2 ? 0 : NaN;
30869
31037
  }
30870
- function bisector$1(f) {
31038
+ function bisector$2(f) {
30871
31039
  let compare12, compare2, delta;
30872
31040
  if (f.length !== 2) {
30873
- compare12 = ascending$2;
30874
- compare2 = (d, x2) => ascending$2(f(d), x2);
31041
+ compare12 = ascending$3;
31042
+ compare2 = (d, x2) => ascending$3(f(d), x2);
30875
31043
  delta = (d, x2) => f(d) - x2;
30876
31044
  } else {
30877
- compare12 = f === ascending$2 || f === descending$1 ? f : zero$3;
31045
+ compare12 = f === ascending$3 || f === descending$1 ? f : zero$3;
30878
31046
  compare2 = f;
30879
31047
  delta = f;
30880
31048
  }
@@ -30915,7 +31083,7 @@ function bisector$1(f) {
30915
31083
  function zero$3() {
30916
31084
  return 0;
30917
31085
  }
30918
- function number$6(x2) {
31086
+ function number$7(x2) {
30919
31087
  return x2 === null ? NaN : +x2;
30920
31088
  }
30921
31089
  function* numbers$2(values2, valueof) {
@@ -30934,11 +31102,11 @@ function* numbers$2(values2, valueof) {
30934
31102
  }
30935
31103
  }
30936
31104
  }
30937
- const ascendingBisect = bisector$1(ascending$2);
30938
- const bisectRight$1 = ascendingBisect.right;
30939
- const bisectLeft$1 = ascendingBisect.left;
30940
- bisector$1(number$6).center;
30941
- const bisect$1 = bisectRight$1;
31105
+ const ascendingBisect$1 = bisector$2(ascending$3);
31106
+ const bisectRight$2 = ascendingBisect$1.right;
31107
+ const bisectLeft$1 = ascendingBisect$1.left;
31108
+ bisector$2(number$7).center;
31109
+ const bisect$2 = bisectRight$2;
30942
31110
  function variance(values2, valueof) {
30943
31111
  let count2 = 0;
30944
31112
  let delta;
@@ -30969,52 +31137,11 @@ function deviation(values2, valueof) {
30969
31137
  const v = variance(values2, valueof);
30970
31138
  return v ? Math.sqrt(v) : v;
30971
31139
  }
30972
- class Adder {
30973
- constructor() {
30974
- this._partials = new Float64Array(32);
30975
- this._n = 0;
30976
- }
30977
- add(x2) {
30978
- const p = this._partials;
30979
- let i = 0;
30980
- for (let j = 0; j < this._n && j < 32; j++) {
30981
- const y2 = p[j], hi = x2 + y2, lo = Math.abs(x2) < Math.abs(y2) ? x2 - (hi - y2) : y2 - (hi - x2);
30982
- if (lo)
30983
- p[i++] = lo;
30984
- x2 = hi;
30985
- }
30986
- p[i] = x2;
30987
- this._n = i + 1;
30988
- return this;
30989
- }
30990
- valueOf() {
30991
- const p = this._partials;
30992
- let n = this._n, x2, y2, lo, hi = 0;
30993
- if (n > 0) {
30994
- hi = p[--n];
30995
- while (n > 0) {
30996
- x2 = hi;
30997
- y2 = p[--n];
30998
- hi = x2 + y2;
30999
- lo = y2 - (hi - x2);
31000
- if (lo)
31001
- break;
31002
- }
31003
- if (n > 0 && (lo < 0 && p[n - 1] < 0 || lo > 0 && p[n - 1] > 0)) {
31004
- y2 = lo * 2;
31005
- x2 = hi + y2;
31006
- if (y2 == x2 - hi)
31007
- hi = x2;
31008
- }
31009
- }
31010
- return hi;
31011
- }
31012
- }
31013
31140
  function permute(source2, keys2) {
31014
31141
  return Array.from(keys2, (key2) => source2[key2]);
31015
31142
  }
31016
- function compareDefined(compare2 = ascending$2) {
31017
- if (compare2 === ascending$2)
31143
+ function compareDefined(compare2 = ascending$3) {
31144
+ if (compare2 === ascending$3)
31018
31145
  return ascendingDefined;
31019
31146
  if (typeof compare2 !== "function")
31020
31147
  throw new TypeError("compare is not a function");
@@ -31028,51 +31155,14 @@ function compareDefined(compare2 = ascending$2) {
31028
31155
  function ascendingDefined(a2, b2) {
31029
31156
  return (a2 == null || !(a2 >= a2)) - (b2 == null || !(b2 >= b2)) || (a2 < b2 ? -1 : a2 > b2 ? 1 : 0);
31030
31157
  }
31031
- var e10 = Math.sqrt(50), e5 = Math.sqrt(10), e2 = Math.sqrt(2);
31032
- function ticks(start, stop3, count2) {
31033
- var reverse2, i = -1, n, ticks2, step;
31034
- stop3 = +stop3, start = +start, count2 = +count2;
31035
- if (start === stop3 && count2 > 0)
31036
- return [start];
31037
- if (reverse2 = stop3 < start)
31038
- n = start, start = stop3, stop3 = n;
31039
- if ((step = tickIncrement(start, stop3, count2)) === 0 || !isFinite(step))
31040
- return [];
31041
- if (step > 0) {
31042
- let r0 = Math.round(start / step), r1 = Math.round(stop3 / step);
31043
- if (r0 * step < start)
31044
- ++r0;
31045
- if (r1 * step > stop3)
31046
- --r1;
31047
- ticks2 = new Array(n = r1 - r0 + 1);
31048
- while (++i < n)
31049
- ticks2[i] = (r0 + i) * step;
31050
- } else {
31051
- step = -step;
31052
- let r0 = Math.round(start * step), r1 = Math.round(stop3 * step);
31053
- if (r0 / step < start)
31054
- ++r0;
31055
- if (r1 / step > stop3)
31056
- --r1;
31057
- ticks2 = new Array(n = r1 - r0 + 1);
31058
- while (++i < n)
31059
- ticks2[i] = (r0 + i) / step;
31060
- }
31061
- if (reverse2)
31062
- ticks2.reverse();
31063
- return ticks2;
31064
- }
31065
- function tickIncrement(start, stop3, count2) {
31066
- var step = (stop3 - start) / Math.max(0, count2), power = Math.floor(Math.log(step) / Math.LN10), error2 = step / Math.pow(10, power);
31067
- return power >= 0 ? (error2 >= e10 ? 10 : error2 >= e5 ? 5 : error2 >= e2 ? 2 : 1) * Math.pow(10, power) : -Math.pow(10, -power) / (error2 >= e10 ? 10 : error2 >= e5 ? 5 : error2 >= e2 ? 2 : 1);
31068
- }
31069
- function tickStep(start, stop3, count2) {
31158
+ var e10$1 = Math.sqrt(50), e5$1 = Math.sqrt(10), e2$1 = Math.sqrt(2);
31159
+ function tickStep$1(start, stop3, count2) {
31070
31160
  var step0 = Math.abs(stop3 - start) / Math.max(0, count2), step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)), error2 = step0 / step1;
31071
- if (error2 >= e10)
31161
+ if (error2 >= e10$1)
31072
31162
  step1 *= 10;
31073
- else if (error2 >= e5)
31163
+ else if (error2 >= e5$1)
31074
31164
  step1 *= 5;
31075
- else if (error2 >= e2)
31165
+ else if (error2 >= e2$1)
31076
31166
  step1 *= 2;
31077
31167
  return stop3 < start ? -step1 : step1;
31078
31168
  }
@@ -31165,7 +31255,7 @@ function quantile$1(values2, p, valueof) {
31165
31255
  var n, i = (n - 1) * p, i0 = Math.floor(i), value0 = max$2(quickselect(values2, i0).subarray(0, i0 + 1)), value1 = min$2(values2.subarray(i0 + 1));
31166
31256
  return value0 + (value1 - value0) * (i - i0);
31167
31257
  }
31168
- function quantileSorted(values2, p, valueof = number$6) {
31258
+ function quantileSorted$1(values2, p, valueof = number$7) {
31169
31259
  if (!(n = values2.length))
31170
31260
  return;
31171
31261
  if ((p = +p) <= 0 || n < 2)
@@ -31198,15 +31288,7 @@ function mean(values2, valueof) {
31198
31288
  function median(values2, valueof) {
31199
31289
  return quantile$1(values2, 0.5, valueof);
31200
31290
  }
31201
- function* flatten(arrays) {
31202
- for (const array2 of arrays) {
31203
- yield* array2;
31204
- }
31205
- }
31206
- function merge$2(arrays) {
31207
- return Array.from(flatten(arrays));
31208
- }
31209
- function range$4(start, stop3, step) {
31291
+ function range$5(start, stop3, step) {
31210
31292
  start = +start, stop3 = +stop3, step = (n = arguments.length) < 2 ? (stop3 = start, start = 0, 1) : n < 3 ? 1 : +step;
31211
31293
  var i = -1, n = Math.max(0, Math.ceil((stop3 - start) / step)) | 0, range2 = new Array(n);
31212
31294
  while (++i < n) {
@@ -31742,6 +31824,240 @@ utcYear.every = function(k) {
31742
31824
  };
31743
31825
  const utcYear$1 = utcYear;
31744
31826
  utcYear.range;
31827
+ function ascending$2(a2, b2) {
31828
+ return a2 < b2 ? -1 : a2 > b2 ? 1 : a2 >= b2 ? 0 : NaN;
31829
+ }
31830
+ function bisector$1(f) {
31831
+ let delta = f;
31832
+ let compare2 = f;
31833
+ if (f.length === 1) {
31834
+ delta = (d, x2) => f(d) - x2;
31835
+ compare2 = ascendingComparator(f);
31836
+ }
31837
+ function left(a2, x2, lo, hi) {
31838
+ if (lo == null)
31839
+ lo = 0;
31840
+ if (hi == null)
31841
+ hi = a2.length;
31842
+ while (lo < hi) {
31843
+ const mid = lo + hi >>> 1;
31844
+ if (compare2(a2[mid], x2) < 0)
31845
+ lo = mid + 1;
31846
+ else
31847
+ hi = mid;
31848
+ }
31849
+ return lo;
31850
+ }
31851
+ function right(a2, x2, lo, hi) {
31852
+ if (lo == null)
31853
+ lo = 0;
31854
+ if (hi == null)
31855
+ hi = a2.length;
31856
+ while (lo < hi) {
31857
+ const mid = lo + hi >>> 1;
31858
+ if (compare2(a2[mid], x2) > 0)
31859
+ hi = mid;
31860
+ else
31861
+ lo = mid + 1;
31862
+ }
31863
+ return lo;
31864
+ }
31865
+ function center(a2, x2, lo, hi) {
31866
+ if (lo == null)
31867
+ lo = 0;
31868
+ if (hi == null)
31869
+ hi = a2.length;
31870
+ const i = left(a2, x2, lo, hi - 1);
31871
+ return i > lo && delta(a2[i - 1], x2) > -delta(a2[i], x2) ? i - 1 : i;
31872
+ }
31873
+ return { left, center, right };
31874
+ }
31875
+ function ascendingComparator(f) {
31876
+ return (d, x2) => ascending$2(f(d), x2);
31877
+ }
31878
+ function number$6(x2) {
31879
+ return x2 === null ? NaN : +x2;
31880
+ }
31881
+ const ascendingBisect = bisector$1(ascending$2);
31882
+ const bisectRight$1 = ascendingBisect.right;
31883
+ bisector$1(number$6).center;
31884
+ const bisect$1 = bisectRight$1;
31885
+ class Adder {
31886
+ constructor() {
31887
+ this._partials = new Float64Array(32);
31888
+ this._n = 0;
31889
+ }
31890
+ add(x2) {
31891
+ const p = this._partials;
31892
+ let i = 0;
31893
+ for (let j = 0; j < this._n && j < 32; j++) {
31894
+ const y2 = p[j], hi = x2 + y2, lo = Math.abs(x2) < Math.abs(y2) ? x2 - (hi - y2) : y2 - (hi - x2);
31895
+ if (lo)
31896
+ p[i++] = lo;
31897
+ x2 = hi;
31898
+ }
31899
+ p[i] = x2;
31900
+ this._n = i + 1;
31901
+ return this;
31902
+ }
31903
+ valueOf() {
31904
+ const p = this._partials;
31905
+ let n = this._n, x2, y2, lo, hi = 0;
31906
+ if (n > 0) {
31907
+ hi = p[--n];
31908
+ while (n > 0) {
31909
+ x2 = hi;
31910
+ y2 = p[--n];
31911
+ hi = x2 + y2;
31912
+ lo = y2 - (hi - x2);
31913
+ if (lo)
31914
+ break;
31915
+ }
31916
+ if (n > 0 && (lo < 0 && p[n - 1] < 0 || lo > 0 && p[n - 1] > 0)) {
31917
+ y2 = lo * 2;
31918
+ x2 = hi + y2;
31919
+ if (y2 == x2 - hi)
31920
+ hi = x2;
31921
+ }
31922
+ }
31923
+ return hi;
31924
+ }
31925
+ }
31926
+ class InternMap extends Map {
31927
+ constructor(entries2, key2 = keyof) {
31928
+ super();
31929
+ Object.defineProperties(this, { _intern: { value: /* @__PURE__ */ new Map() }, _key: { value: key2 } });
31930
+ if (entries2 != null)
31931
+ for (const [key22, value2] of entries2)
31932
+ this.set(key22, value2);
31933
+ }
31934
+ get(key2) {
31935
+ return super.get(intern_get(this, key2));
31936
+ }
31937
+ has(key2) {
31938
+ return super.has(intern_get(this, key2));
31939
+ }
31940
+ set(key2, value2) {
31941
+ return super.set(intern_set(this, key2), value2);
31942
+ }
31943
+ delete(key2) {
31944
+ return super.delete(intern_delete(this, key2));
31945
+ }
31946
+ }
31947
+ function intern_get({ _intern, _key }, value2) {
31948
+ const key2 = _key(value2);
31949
+ return _intern.has(key2) ? _intern.get(key2) : value2;
31950
+ }
31951
+ function intern_set({ _intern, _key }, value2) {
31952
+ const key2 = _key(value2);
31953
+ if (_intern.has(key2))
31954
+ return _intern.get(key2);
31955
+ _intern.set(key2, value2);
31956
+ return value2;
31957
+ }
31958
+ function intern_delete({ _intern, _key }, value2) {
31959
+ const key2 = _key(value2);
31960
+ if (_intern.has(key2)) {
31961
+ value2 = _intern.get(value2);
31962
+ _intern.delete(key2);
31963
+ }
31964
+ return value2;
31965
+ }
31966
+ function keyof(value2) {
31967
+ return value2 !== null && typeof value2 === "object" ? value2.valueOf() : value2;
31968
+ }
31969
+ var e10 = Math.sqrt(50), e5 = Math.sqrt(10), e2 = Math.sqrt(2);
31970
+ function ticks(start, stop3, count2) {
31971
+ var reverse2, i = -1, n, ticks2, step;
31972
+ stop3 = +stop3, start = +start, count2 = +count2;
31973
+ if (start === stop3 && count2 > 0)
31974
+ return [start];
31975
+ if (reverse2 = stop3 < start)
31976
+ n = start, start = stop3, stop3 = n;
31977
+ if ((step = tickIncrement(start, stop3, count2)) === 0 || !isFinite(step))
31978
+ return [];
31979
+ if (step > 0) {
31980
+ let r0 = Math.round(start / step), r1 = Math.round(stop3 / step);
31981
+ if (r0 * step < start)
31982
+ ++r0;
31983
+ if (r1 * step > stop3)
31984
+ --r1;
31985
+ ticks2 = new Array(n = r1 - r0 + 1);
31986
+ while (++i < n)
31987
+ ticks2[i] = (r0 + i) * step;
31988
+ } else {
31989
+ step = -step;
31990
+ let r0 = Math.round(start * step), r1 = Math.round(stop3 * step);
31991
+ if (r0 / step < start)
31992
+ ++r0;
31993
+ if (r1 / step > stop3)
31994
+ --r1;
31995
+ ticks2 = new Array(n = r1 - r0 + 1);
31996
+ while (++i < n)
31997
+ ticks2[i] = (r0 + i) / step;
31998
+ }
31999
+ if (reverse2)
32000
+ ticks2.reverse();
32001
+ return ticks2;
32002
+ }
32003
+ function tickIncrement(start, stop3, count2) {
32004
+ var step = (stop3 - start) / Math.max(0, count2), power = Math.floor(Math.log(step) / Math.LN10), error2 = step / Math.pow(10, power);
32005
+ return power >= 0 ? (error2 >= e10 ? 10 : error2 >= e5 ? 5 : error2 >= e2 ? 2 : 1) * Math.pow(10, power) : -Math.pow(10, -power) / (error2 >= e10 ? 10 : error2 >= e5 ? 5 : error2 >= e2 ? 2 : 1);
32006
+ }
32007
+ function tickStep(start, stop3, count2) {
32008
+ var step0 = Math.abs(stop3 - start) / Math.max(0, count2), step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)), error2 = step0 / step1;
32009
+ if (error2 >= e10)
32010
+ step1 *= 10;
32011
+ else if (error2 >= e5)
32012
+ step1 *= 5;
32013
+ else if (error2 >= e2)
32014
+ step1 *= 2;
32015
+ return stop3 < start ? -step1 : step1;
32016
+ }
32017
+ function quantileSorted(values2, p, valueof = number$6) {
32018
+ if (!(n = values2.length))
32019
+ return;
32020
+ if ((p = +p) <= 0 || n < 2)
32021
+ return +valueof(values2[0], 0, values2);
32022
+ if (p >= 1)
32023
+ return +valueof(values2[n - 1], n - 1, values2);
32024
+ var n, i = (n - 1) * p, i0 = Math.floor(i), value0 = +valueof(values2[i0], i0, values2), value1 = +valueof(values2[i0 + 1], i0 + 1, values2);
32025
+ return value0 + (value1 - value0) * (i - i0);
32026
+ }
32027
+ function* flatten(arrays) {
32028
+ for (const array2 of arrays) {
32029
+ yield* array2;
32030
+ }
32031
+ }
32032
+ function merge$2(arrays) {
32033
+ return Array.from(flatten(arrays));
32034
+ }
32035
+ function range$4(start, stop3, step) {
32036
+ start = +start, stop3 = +stop3, step = (n = arguments.length) < 2 ? (stop3 = start, start = 0, 1) : n < 3 ? 1 : +step;
32037
+ var i = -1, n = Math.max(0, Math.ceil((stop3 - start) / step)) | 0, range2 = new Array(n);
32038
+ while (++i < n) {
32039
+ range2[i] = start + i * step;
32040
+ }
32041
+ return range2;
32042
+ }
32043
+ function sum$1(values2, valueof) {
32044
+ let sum2 = 0;
32045
+ if (valueof === void 0) {
32046
+ for (let value2 of values2) {
32047
+ if (value2 = +value2) {
32048
+ sum2 += value2;
32049
+ }
32050
+ }
32051
+ } else {
32052
+ let index2 = -1;
32053
+ for (let value2 of values2) {
32054
+ if (value2 = +valueof(value2, ++index2, values2)) {
32055
+ sum2 += value2;
32056
+ }
32057
+ }
32058
+ }
32059
+ return sum2;
32060
+ }
31745
32061
  function ticker(year2, month2, week2, day2, hour2, minute2) {
31746
32062
  const tickIntervals = [
31747
32063
  [utcSecond, 1, durationSecond$1],
@@ -32020,16 +32336,16 @@ const Milli = [YEAR, MONTH, DATE, HOURS, MINUTES, SECONDS, MILLISECONDS], Second
32020
32336
  const intervals = [[Seconds, 1, durationSecond], [Seconds, 5, 5 * durationSecond], [Seconds, 15, 15 * durationSecond], [Seconds, 30, 30 * durationSecond], [Minutes, 1, durationMinute], [Minutes, 5, 5 * durationMinute], [Minutes, 15, 15 * durationMinute], [Minutes, 30, 30 * durationMinute], [Hours, 1, durationHour], [Hours, 3, 3 * durationHour], [Hours, 6, 6 * durationHour], [Hours, 12, 12 * durationHour], [Day, 1, durationDay], [Week, 1, durationWeek], [Month, 1, durationMonth], [Month, 3, 3 * durationMonth], [Year, 1, durationYear]];
32021
32337
  function bin$2(opt) {
32022
32338
  const ext = opt.extent, max2 = opt.maxbins || 40, target2 = Math.abs(span(ext)) / max2;
32023
- let i = bisector$1((i2) => i2[2]).right(intervals, target2), units2, step;
32339
+ let i = bisector$2((i2) => i2[2]).right(intervals, target2), units2, step;
32024
32340
  if (i === intervals.length) {
32025
- units2 = Year, step = tickStep(ext[0] / durationYear, ext[1] / durationYear, max2);
32341
+ units2 = Year, step = tickStep$1(ext[0] / durationYear, ext[1] / durationYear, max2);
32026
32342
  } else if (i) {
32027
32343
  i = intervals[target2 / intervals[i - 1][2] < intervals[i][2] / target2 ? i - 1 : i];
32028
32344
  units2 = i[0];
32029
32345
  step = i[1];
32030
32346
  } else {
32031
32347
  units2 = Milli;
32032
- step = Math.max(tickStep(ext[0], ext[1], max2), 1);
32348
+ step = Math.max(tickStep$1(ext[0], ext[1], max2), 1);
32033
32349
  }
32034
32350
  return {
32035
32351
  units: units2,
@@ -32668,7 +32984,7 @@ function numberLocale(locale2) {
32668
32984
  },
32669
32985
  formatSpan(start, stop3, count2, specifier) {
32670
32986
  specifier = formatSpecifier(specifier == null ? ",f" : specifier);
32671
- const step = tickStep(start, stop3, count2), value2 = Math.max(Math.abs(start), Math.abs(stop3));
32987
+ const step = tickStep$1(start, stop3, count2), value2 = Math.max(Math.abs(start), Math.abs(stop3));
32672
32988
  let precision;
32673
32989
  if (specifier.precision == null) {
32674
32990
  switch (specifier.type) {
@@ -34600,8 +34916,8 @@ function* numbers$1(values2, valueof) {
34600
34916
  }
34601
34917
  function quantiles(array2, p, f) {
34602
34918
  const values2 = Float64Array.from(numbers$1(array2, f));
34603
- values2.sort(ascending$2);
34604
- return p.map((_) => quantileSorted(values2, _));
34919
+ values2.sort(ascending$3);
34920
+ return p.map((_) => quantileSorted$1(values2, _));
34605
34921
  }
34606
34922
  function quartiles(array2, f) {
34607
34923
  return quantiles(array2, [0.25, 0.5, 0.75], f);
@@ -34662,7 +34978,7 @@ function bootstrapCI(array2, samples, alpha2, f) {
34662
34978
  }
34663
34979
  mu[j] = a2 / n;
34664
34980
  }
34665
- mu.sort(ascending$2);
34981
+ mu.sort(ascending$3);
34666
34982
  return [quantile$1(mu, alpha2 / 2), quantile$1(mu, 1 - alpha2 / 2)];
34667
34983
  }
34668
34984
  function dotbin(array2, step, smooth, f) {
@@ -37570,7 +37886,7 @@ function pivotKeys(key2, limit, pulse2) {
37570
37886
  list.push(k);
37571
37887
  }
37572
37888
  });
37573
- list.sort(ascending$3);
37889
+ list.sort(ascending$4);
37574
37890
  return limit ? list.slice(0, limit) : list;
37575
37891
  }
37576
37892
  function PreFacet$1(params2) {
@@ -37708,7 +38024,7 @@ inherits(Quantile$1, Transform, {
37708
38024
  out.source = this.value;
37709
38025
  return out;
37710
38026
  }
37711
- const source2 = pulse2.materialize(pulse2.SOURCE).source, groups = partition$1$1(source2, _.groupby, _.field), names = (_.groupby || []).map(accessorName), values2 = [], step = _.step || 0.01, p = _.probs || range$4(step / 2, 1 - EPSILON$2, step), n = p.length;
38027
+ const source2 = pulse2.materialize(pulse2.SOURCE).source, groups = partition$1$1(source2, _.groupby, _.field), names = (_.groupby || []).map(accessorName), values2 = [], step = _.step || 0.01, p = _.probs || range$5(step / 2, 1 - EPSILON$2, step), n = p.length;
37712
38028
  groups.forEach((g) => {
37713
38029
  const q = quantiles(g, p);
37714
38030
  for (let i = 0; i < n; ++i) {
@@ -37872,7 +38188,7 @@ inherits(Sequence, Transform, {
37872
38188
  return;
37873
38189
  const out = pulse2.materialize().fork(pulse2.MOD), as = _.as || "data";
37874
38190
  out.rem = this.value ? pulse2.rem.concat(this.value) : pulse2.rem;
37875
- this.value = range$4(_.start, _.stop, _.step || 1).map((v) => {
38191
+ this.value = range$5(_.start, _.stop, _.step || 1).map((v) => {
37876
38192
  const t4 = {};
37877
38193
  t4[as] = v;
37878
38194
  return ingest$1(t4);
@@ -38356,7 +38672,7 @@ inherits(Window, Transform, {
38356
38672
  }
38357
38673
  });
38358
38674
  function processPartition(list, state, cmp2, _) {
38359
- const sort2 = _.sort, range2 = sort2 && !_.ignorePeers, frame2 = _.frame || [null, 0], data2 = list.data(cmp2), n = data2.length, b2 = range2 ? bisector$1(sort2) : null, w2 = {
38675
+ const sort2 = _.sort, range2 = sort2 && !_.ignorePeers, frame2 = _.frame || [null, 0], data2 = list.data(cmp2), n = data2.length, b2 = range2 ? bisector$2(sort2) : null, w2 = {
38360
38676
  i0: 0,
38361
38677
  i1: 0,
38362
38678
  p0: 0,
@@ -41424,7 +41740,7 @@ function band() {
41424
41740
  start = Math.round(start);
41425
41741
  bandwidth2 = Math.round(bandwidth2);
41426
41742
  }
41427
- const values2 = range$4(n).map((i) => start + step * i);
41743
+ const values2 = range$5(n).map((i) => start + step * i);
41428
41744
  return ordinalRange(reverse2 ? values2.reverse() : values2);
41429
41745
  }
41430
41746
  scale2.domain = function(_) {
@@ -41509,8 +41825,8 @@ function band() {
41509
41825
  }
41510
41826
  if (hi < values2[0] || lo > range$12[1 - reverse2])
41511
41827
  return;
41512
- a2 = Math.max(0, bisectRight$1(values2, lo) - 1);
41513
- b2 = lo === hi ? a2 : bisectRight$1(values2, hi) - 1;
41828
+ a2 = Math.max(0, bisectRight$2(values2, lo) - 1);
41829
+ b2 = lo === hi ? a2 : bisectRight$2(values2, hi) - 1;
41514
41830
  if (lo - values2[a2] > bandwidth2 + 1e-10)
41515
41831
  ++a2;
41516
41832
  if (reverse2) {
@@ -41549,7 +41865,7 @@ const slice$2 = Array.prototype.slice;
41549
41865
  function scaleBinOrdinal() {
41550
41866
  let domain2 = [], range2 = [];
41551
41867
  function scale2(x2) {
41552
- return x2 == null || x2 !== x2 ? void 0 : range2[(bisect$1(domain2, x2) - 1) % range2.length];
41868
+ return x2 == null || x2 !== x2 ? void 0 : range2[(bisect$2(domain2, x2) - 1) % range2.length];
41553
41869
  }
41554
41870
  scale2.domain = function(_) {
41555
41871
  if (arguments.length) {
@@ -47458,7 +47774,7 @@ Pie.Definition = {
47458
47774
  };
47459
47775
  inherits(Pie, Transform, {
47460
47776
  transform(_, pulse2) {
47461
- var as = _.as || ["startAngle", "endAngle"], startAngle = as[0], endAngle = as[1], field2 = _.field || one$2, start = _.startAngle || 0, stop3 = _.endAngle != null ? _.endAngle : 2 * Math.PI, data2 = pulse2.source, values2 = data2.map(field2), n = values2.length, a2 = start, k = (stop3 - start) / sum$2(values2), index2 = range$4(n), i, t4, v;
47777
+ var as = _.as || ["startAngle", "endAngle"], startAngle = as[0], endAngle = as[1], field2 = _.field || one$2, start = _.startAngle || 0, stop3 = _.endAngle != null ? _.endAngle : 2 * Math.PI, data2 = pulse2.source, values2 = data2.map(field2), n = values2.length, a2 = start, k = (stop3 - start) / sum$2(values2), index2 = range$5(n), i, t4, v;
47462
47778
  if (_.sort) {
47463
47779
  index2.sort((a3, b2) => values2[a3] - values2[b2]);
47464
47780
  }
@@ -47589,7 +47905,7 @@ function configureBins(scale2, _, count2) {
47589
47905
  start = step * Math.ceil(lo / step);
47590
47906
  if (stop3 > hi)
47591
47907
  stop3 = step * Math.floor(hi / step);
47592
- bins2 = range$4(start, stop3 + step / 2, step);
47908
+ bins2 = range$5(start, stop3 + step / 2, step);
47593
47909
  }
47594
47910
  if (bins2) {
47595
47911
  scale2.bins = bins2;
@@ -50267,8 +50583,8 @@ function within(p, q, r3) {
50267
50583
  }
50268
50584
  function quantize(k, nice2, zero2) {
50269
50585
  return function(values2) {
50270
- var ex = extent(values2), start = zero2 ? Math.min(ex[0], 0) : ex[0], stop3 = ex[1], span2 = stop3 - start, step = nice2 ? tickStep(start, stop3, k) : span2 / (k + 1);
50271
- return range$4(start + step, stop3, step);
50586
+ var ex = extent(values2), start = zero2 ? Math.min(ex[0], 0) : ex[0], stop3 = ex[1], span2 = stop3 - start, step = nice2 ? tickStep$1(start, stop3, k) : span2 / (k + 1);
50587
+ return range$5(start + step, stop3, step);
50272
50588
  };
50273
50589
  }
50274
50590
  function Isocontour(params2) {
@@ -54645,7 +54961,7 @@ const reg = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty(
54645
54961
  const epsilon$1 = 11102230246251565e-32;
54646
54962
  const splitter = 134217729;
54647
54963
  const resulterrbound = (3 + 8 * epsilon$1) * epsilon$1;
54648
- function sum$1(elen, e3, flen, f, h2) {
54964
+ function sum(elen, e3, flen, f, h2) {
54649
54965
  let Q, Qnew, hh, bvirt;
54650
54966
  let enow = e3[0];
54651
54967
  let fnow = f[0];
@@ -54818,7 +55134,7 @@ function orient2dadapt(ax, ay, bx, by, cx, cy, detsum) {
54818
55134
  bvirt = u3 - _j;
54819
55135
  u[2] = _j - (u3 - bvirt) + (_i - bvirt);
54820
55136
  u[3] = u3;
54821
- const C1len = sum$1(4, B, 4, u, C1);
55137
+ const C1len = sum(4, B, 4, u, C1);
54822
55138
  s1 = acx * bcytail;
54823
55139
  c2 = splitter * acx;
54824
55140
  ahi = c2 - (c2 - acx);
@@ -54848,7 +55164,7 @@ function orient2dadapt(ax, ay, bx, by, cx, cy, detsum) {
54848
55164
  bvirt = u3 - _j;
54849
55165
  u[2] = _j - (u3 - bvirt) + (_i - bvirt);
54850
55166
  u[3] = u3;
54851
- const C2len = sum$1(C1len, C1, 4, u, C2);
55167
+ const C2len = sum(C1len, C1, 4, u, C2);
54852
55168
  s1 = acxtail * bcytail;
54853
55169
  c2 = splitter * acxtail;
54854
55170
  ahi = c2 - (c2 - acxtail);
@@ -54878,7 +55194,7 @@ function orient2dadapt(ax, ay, bx, by, cx, cy, detsum) {
54878
55194
  bvirt = u3 - _j;
54879
55195
  u[2] = _j - (u3 - bvirt) + (_i - bvirt);
54880
55196
  u[3] = u3;
54881
- const Dlen = sum$1(C2len, C2, 4, u, D);
55197
+ const Dlen = sum(C2len, C2, 4, u, D);
54882
55198
  return D[Dlen - 1];
54883
55199
  }
54884
55200
  function orient2d(ax, ay, bx, by, cx, cy) {
@@ -56566,7 +56882,7 @@ function SortedIndex() {
56566
56882
  array2 = value2;
56567
56883
  n = size;
56568
56884
  }
56569
- return [bisectLeft$1(array2, range2[0], 0, n), bisectRight$1(array2, range2[1], 0, n)];
56885
+ return [bisectLeft$1(array2, range2[0], 0, n), bisectRight$2(array2, range2[1], 0, n)];
56570
56886
  }
56571
56887
  return {
56572
56888
  insert: insert2,
@@ -58974,7 +59290,7 @@ const functionContext = {
58974
59290
  hsl: hsl$2,
58975
59291
  luminance,
58976
59292
  contrast,
58977
- sequence: range$4,
59293
+ sequence: range$5,
58978
59294
  format,
58979
59295
  utcFormat,
58980
59296
  utcParse,
@@ -60010,7 +60326,7 @@ function radio(bind2, el2, param2, value2) {
60010
60326
  }
60011
60327
  function range$1(bind2, el2, param2, value2) {
60012
60328
  value2 = value2 !== void 0 ? value2 : (+param2.max + +param2.min) / 2;
60013
- const max2 = param2.max != null ? param2.max : Math.max(100, +value2) || 100, min2 = param2.min || Math.min(0, max2, +value2) || 0, step = param2.step || tickStep(min2, max2, 100);
60329
+ const max2 = param2.max != null ? param2.max : Math.max(100, +value2) || 100, min2 = param2.min || Math.min(0, max2, +value2) || 0, step = param2.step || tickStep$1(min2, max2, 100);
60014
60330
  const node = element("input", {
60015
60331
  type: "range",
60016
60332
  name: param2.signal,
@@ -64024,7 +64340,7 @@ const vegaImport = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePr
64024
64340
  accessorFields,
64025
64341
  accessorName,
64026
64342
  array: array$5,
64027
- ascending: ascending$3,
64343
+ ascending: ascending$4,
64028
64344
  bandwidthNRD: estimateBandwidth,
64029
64345
  bin: bin$1,
64030
64346
  bootstrapCI,
@@ -86044,24 +86360,6 @@ function CellSetSizesPlotSubscriber(props) {
86044
86360
  }
86045
86361
  );
86046
86362
  }
86047
- function sum(values2, valueof) {
86048
- let sum2 = 0;
86049
- if (valueof === void 0) {
86050
- for (let value2 of values2) {
86051
- if (value2 = +value2) {
86052
- sum2 += value2;
86053
- }
86054
- }
86055
- } else {
86056
- let index2 = -1;
86057
- for (let value2 of values2) {
86058
- if (value2 = +valueof(value2, ++index2, values2)) {
86059
- sum2 += value2;
86060
- }
86061
- }
86062
- }
86063
- return sum2;
86064
- }
86065
86363
  function ExpressionHistogram(props) {
86066
86364
  const {
86067
86365
  geneSelection,
@@ -86199,7 +86497,7 @@ function ExpressionHistogramSubscriber(props) {
86199
86497
  const numGenes = featureIndex.length;
86200
86498
  return obsIndex.map((cellId, cellIndex) => {
86201
86499
  const values2 = obsFeatureMatrix.data.subarray(cellIndex * numGenes, (cellIndex + 1) * numGenes);
86202
- const sumValue = sum(values2) * 100 / 255;
86500
+ const sumValue = sum$1(values2) * 100 / 255;
86203
86501
  const newItem = { value: sumValue, gene: null, cellId };
86204
86502
  return newItem;
86205
86503
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vitessce/statistical-plots",
3
- "version": "3.1.3",
3
+ "version": "3.2.0",
4
4
  "author": "Gehlenborg Lab",
5
5
  "homepage": "http://vitessce.io",
6
6
  "repository": {
@@ -19,11 +19,11 @@
19
19
  "@material-ui/core": "~4.12.3",
20
20
  "d3-array": "^2.4.0",
21
21
  "lodash-es": "^4.17.21",
22
- "@vitessce/constants-internal": "3.1.3",
23
- "@vitessce/sets-utils": "3.1.3",
24
- "@vitessce/utils": "3.1.3",
25
- "@vitessce/vega": "3.1.3",
26
- "@vitessce/vit-s": "3.1.3"
22
+ "@vitessce/constants-internal": "3.2.0",
23
+ "@vitessce/utils": "3.2.0",
24
+ "@vitessce/vega": "3.2.0",
25
+ "@vitessce/sets-utils": "3.2.0",
26
+ "@vitessce/vit-s": "3.2.0"
27
27
  },
28
28
  "devDependencies": {
29
29
  "react": "^18.0.0",