plotly.js 2.16.2 → 2.16.4

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
  /**
2
- * plotly.js (mapbox) v2.16.2
2
+ * plotly.js (mapbox) v2.16.4
3
3
  * Copyright 2012-2022, Plotly, Inc.
4
4
  * All rights reserved.
5
5
  * Licensed under the MIT license
@@ -70794,7 +70794,7 @@ module.exports = {
70794
70794
  calc: _dereq_('./calc'),
70795
70795
 
70796
70796
  // ./scales.js is required in lib/coerce.js ;
70797
- // it needs to be a separate module to avoid circular a dependency
70797
+ // it needs to be a separate module to avoid a circular dependency
70798
70798
  scales: scales.scales,
70799
70799
  defaultScale: scales.defaultScale,
70800
70800
  getScale: scales.get,
@@ -75982,7 +75982,17 @@ function createHoverText(hoverData, opts) {
75982
75982
  var xa = c0.xa;
75983
75983
  var ya = c0.ya;
75984
75984
  var axLetter = hovermode.charAt(0);
75985
- var t0 = c0[axLetter + 'Label'];
75985
+ var axLabel = axLetter + 'Label';
75986
+ var t0 = c0[axLabel];
75987
+
75988
+ // search in array for the label
75989
+ if(t0 === undefined && xa.type === 'multicategory') {
75990
+ for(var q = 0; q < hoverData.length; q++) {
75991
+ t0 = hoverData[q][axLabel];
75992
+ if(t0 !== undefined) break;
75993
+ }
75994
+ }
75995
+
75986
75996
  var outerContainerBB = getBoundingClientRect(gd, outerContainer);
75987
75997
  var outerTop = outerContainerBB.top;
75988
75998
  var outerWidth = outerContainerBB.width;
@@ -77161,7 +77171,7 @@ function getCoord(axLetter, winningPoint, fullLayout) {
77161
77171
 
77162
77172
  var cd0 = winningPoint.cd[0];
77163
77173
 
77164
- if(ax.type === 'category') val = ax._categoriesMap[val];
77174
+ if(ax.type === 'category' || ax.type === 'multicategory') val = ax._categoriesMap[val];
77165
77175
  else if(ax.type === 'date') {
77166
77176
  var periodalignment = winningPoint.trace[axLetter + 'periodalignment'];
77167
77177
  if(periodalignment) {
@@ -131524,11 +131534,12 @@ var ORDER = {
131524
131534
  nonCluster: ['fill', 'line', 'circle', 'symbol'],
131525
131535
  };
131526
131536
 
131527
- function ScatterMapbox(subplot, uid, clusterEnabled) {
131537
+ function ScatterMapbox(subplot, uid, clusterEnabled, isHidden) {
131528
131538
  this.type = 'scattermapbox';
131529
131539
  this.subplot = subplot;
131530
131540
  this.uid = uid;
131531
131541
  this.clusterEnabled = clusterEnabled;
131542
+ this.isHidden = isHidden;
131532
131543
 
131533
131544
  this.sourceIds = {
131534
131545
  fill: 'source-' + uid + '-fill',
@@ -131601,51 +131612,96 @@ proto.update = function update(calcTrace) {
131601
131612
  var map = subplot.map;
131602
131613
  var optsAll = convert(subplot.gd, calcTrace);
131603
131614
  var below = subplot.belowLookup['trace-' + this.uid];
131604
- var i, k, opts;
131605
131615
  var hasCluster = !!(trace.cluster && trace.cluster.enabled);
131606
131616
  var hadCluster = !!this.clusterEnabled;
131617
+ var lThis = this;
131607
131618
 
131608
- if(below !== this.below) {
131609
- var order = ORDER.nonCluster;
131610
-
131611
- for(i = order.length - 1; i >= 0; i--) {
131612
- k = order[i];
131613
- map.removeLayer(this.layerIds[k]);
131614
- }
131615
- for(i = 0; i < order.length; i++) {
131616
- k = order[i];
131617
- opts = optsAll[k];
131618
- this.addLayer(k, opts, below);
131619
+ function addCluster(noSource) {
131620
+ if(!noSource) lThis.addSource('circle', optsAll.circle, trace.cluster);
131621
+ var order = ORDER.cluster;
131622
+ for(var i = 0; i < order.length; i++) {
131623
+ var k = order[i];
131624
+ var opts = optsAll[k];
131625
+ lThis.addLayer(k, opts, below);
131619
131626
  }
131620
- this.below = below;
131621
- } else if(hasCluster && !hadCluster) {
131622
- for(i = ORDER.nonCluster.length - 1; i >= 0; i--) {
131623
- k = ORDER.nonCluster[i];
131624
- map.removeLayer(this.layerIds[k]);
131625
- map.removeSource(this.sourceIds[k]);
131627
+ }
131628
+
131629
+ function removeCluster(noSource) {
131630
+ var order = ORDER.cluster;
131631
+ for(var i = order.length - 1; i >= 0; i--) {
131632
+ var k = order[i];
131633
+ map.removeLayer(lThis.layerIds[k]);
131626
131634
  }
131627
- this.addSource('circle', optsAll.circle, trace.cluster);
131628
- for(i = 0; i < ORDER.cluster.length; i++) {
131629
- k = ORDER.cluster[i];
131630
- opts = optsAll[k];
131631
- this.addLayer(k, opts, below);
131635
+ if(!noSource) map.removeSource(lThis.sourceIds.circle);
131636
+ }
131637
+
131638
+ function addNonCluster(noSource) {
131639
+ var order = ORDER.nonCluster;
131640
+ for(var i = 0; i < order.length; i++) {
131641
+ var k = order[i];
131642
+ var opts = optsAll[k];
131643
+ if(!noSource) lThis.addSource(k, opts);
131644
+ lThis.addLayer(k, opts, below);
131632
131645
  }
131633
- this.clusterEnabled = hasCluster;
131634
- } else if(!hasCluster && hadCluster) {
131635
- for(i = 0; i < ORDER.cluster.length; i++) {
131636
- k = ORDER.cluster[i];
131637
- map.removeLayer(this.layerIds[k]);
131646
+ }
131647
+
131648
+ function removeNonCluster(noSource) {
131649
+ var order = ORDER.nonCluster;
131650
+ for(var i = order.length - 1; i >= 0; i--) {
131651
+ var k = order[i];
131652
+ map.removeLayer(lThis.layerIds[k]);
131653
+ if(!noSource) map.removeSource(lThis.sourceIds[k]);
131638
131654
  }
131639
- map.removeSource(this.sourceIds.circle);
131640
- for(i = 0; i < ORDER.nonCluster.length; i++) {
131641
- k = ORDER.nonCluster[i];
131642
- opts = optsAll[k];
131643
- this.addSource(k, opts, trace.cluster);
131644
- this.addLayer(k, opts, below);
131655
+ }
131656
+
131657
+ function remove(noSource) {
131658
+ if(hadCluster) removeCluster(noSource); else removeNonCluster(noSource);
131659
+ }
131660
+
131661
+ function add(noSource) {
131662
+ if(hasCluster) addCluster(noSource); else addNonCluster(noSource);
131663
+ }
131664
+
131665
+ function repaint() {
131666
+ var order = hasCluster ? ORDER.cluster : ORDER.nonCluster;
131667
+ for(var i = 0; i < order.length; i++) {
131668
+ var k = order[i];
131669
+ var opts = optsAll[k];
131670
+ if(!opts) continue;
131671
+
131672
+ subplot.setOptions(lThis.layerIds[k], 'setLayoutProperty', opts.layout);
131673
+
131674
+ if(opts.layout.visibility === 'visible') {
131675
+ if(k !== 'cluster') {
131676
+ lThis.setSourceData(k, opts);
131677
+ }
131678
+ subplot.setOptions(lThis.layerIds[k], 'setPaintProperty', opts.paint);
131679
+ }
131645
131680
  }
131646
- this.clusterEnabled = hasCluster;
131647
131681
  }
131648
131682
 
131683
+ var wasHidden = this.isHidden;
131684
+ var isHidden = trace.visible !== true;
131685
+
131686
+ if(isHidden) {
131687
+ if(!wasHidden) remove();
131688
+ } else if(wasHidden) {
131689
+ if(!isHidden) add();
131690
+ } else if(hadCluster !== hasCluster) {
131691
+ remove();
131692
+ add();
131693
+ } else if(this.below !== below) {
131694
+ remove(true);
131695
+ add(true);
131696
+ repaint();
131697
+ } else {
131698
+ repaint();
131699
+ }
131700
+
131701
+ this.clusterEnabled = hasCluster;
131702
+ this.isHidden = isHidden;
131703
+ this.below = below;
131704
+
131649
131705
  // link ref for quick update during selections
131650
131706
  calcTrace[0].trace._glTrace = this;
131651
131707
  };
@@ -131663,10 +131719,13 @@ proto.dispose = function dispose() {
131663
131719
  module.exports = function createScatterMapbox(subplot, calcTrace) {
131664
131720
  var trace = calcTrace[0].trace;
131665
131721
  var hasCluster = trace.cluster && trace.cluster.enabled;
131722
+ var isHidden = trace.visible !== true;
131723
+
131666
131724
  var scatterMapbox = new ScatterMapbox(
131667
131725
  subplot,
131668
131726
  trace.uid,
131669
- hasCluster
131727
+ hasCluster,
131728
+ isHidden
131670
131729
  );
131671
131730
 
131672
131731
  var optsAll = convert(subplot.gd, calcTrace);
@@ -132810,7 +132869,7 @@ function getSortFunc(opts, d2c) {
132810
132869
  'use strict';
132811
132870
 
132812
132871
  // package version injected by `npm run preprocess`
132813
- exports.version = '2.16.2';
132872
+ exports.version = '2.16.4';
132814
132873
 
132815
132874
  },{}]},{},[9])(9)
132816
132875
  });