plotly.js 1.52.1 → 1.52.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.fossa.yml +58 -0
- package/.ignore +3 -0
- package/CHANGELOG.md +21 -0
- package/dist/README.md +25 -25
- package/dist/plot-schema.json +8 -8
- package/dist/plotly-basic.js +187 -54
- package/dist/plotly-basic.min.js +2 -2
- package/dist/plotly-cartesian.js +187 -54
- package/dist/plotly-cartesian.min.js +2 -2
- package/dist/plotly-finance.js +187 -54
- package/dist/plotly-finance.min.js +2 -2
- package/dist/plotly-geo-assets.js +2 -2
- package/dist/plotly-geo.js +168 -49
- package/dist/plotly-geo.min.js +2 -2
- package/dist/plotly-gl2d.js +173 -51
- package/dist/plotly-gl2d.min.js +2 -2
- package/dist/plotly-gl3d.js +668 -449
- package/dist/plotly-gl3d.min.js +2 -2
- package/dist/plotly-mapbox.js +170 -50
- package/dist/plotly-mapbox.min.js +2 -2
- package/dist/plotly-with-meta.js +823 -533
- package/dist/plotly.js +814 -525
- package/dist/plotly.min.js +2 -2
- package/package.json +24 -23
- package/src/assets/geo_assets.js +1 -1
- package/src/components/annotations/attributes.js +1 -1
- package/src/core.js +1 -1
- package/src/lib/index.js +6 -3
- package/src/plot_api/subroutines.js +6 -0
- package/src/plot_api/validate.js +4 -3
- package/src/plots/cartesian/axes.js +6 -2
- package/src/plots/cartesian/constants.js +1 -2
- package/src/plots/cartesian/layout_defaults.js +112 -27
- package/src/plots/gl3d/scene.js +361 -323
- package/src/plots/layout_attributes.js +2 -2
- package/src/plots/mapbox/layers.js +2 -1
- package/src/plots/plots.js +30 -9
- package/src/traces/bar/hover.js +6 -1
- package/src/traces/bar/plot.js +13 -4
- package/src/traces/mesh3d/convert.js +9 -5
- package/src/traces/pie/attributes.js +7 -6
- package/src/traces/treemap/plot.js +2 -0
- package/tasks/test_syntax.js +1 -1
package/dist/plotly-gl2d.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* plotly.js (gl2d) v1.52.
|
|
2
|
+
* plotly.js (gl2d) v1.52.2
|
|
3
3
|
* Copyright 2012-2020, Plotly, Inc.
|
|
4
4
|
* All rights reserved.
|
|
5
5
|
* Licensed under the MIT license
|
|
@@ -30337,8 +30337,11 @@ proto.dispose = function() {
|
|
|
30337
30337
|
}
|
|
30338
30338
|
|
|
30339
30339
|
function createSelectBuffer(gl, shape) {
|
|
30340
|
-
var
|
|
30341
|
-
var
|
|
30340
|
+
var width = shape[0]
|
|
30341
|
+
var height = shape[1]
|
|
30342
|
+
var options = {}
|
|
30343
|
+
var fbo = createFBO(gl, width, height, options)
|
|
30344
|
+
var buffer = pool.mallocUint8(width*height*4)
|
|
30342
30345
|
return new SelectBuffer(gl, fbo, buffer)
|
|
30343
30346
|
}
|
|
30344
30347
|
|
|
@@ -67751,7 +67754,7 @@ exports.svgAttrs = {
|
|
|
67751
67754
|
'use strict';
|
|
67752
67755
|
|
|
67753
67756
|
// package version injected by `npm run preprocess`
|
|
67754
|
-
exports.version = '1.52.
|
|
67757
|
+
exports.version = '1.52.2';
|
|
67755
67758
|
|
|
67756
67759
|
// inject promise polyfill
|
|
67757
67760
|
_dereq_('es6-promise').polyfill();
|
|
@@ -71478,11 +71481,14 @@ lib.templateString = function(string, obj) {
|
|
|
71478
71481
|
var getterCache = {};
|
|
71479
71482
|
|
|
71480
71483
|
return string.replace(lib.TEMPLATE_STRING_REGEX, function(dummy, key) {
|
|
71484
|
+
var v;
|
|
71481
71485
|
if(SIMPLE_PROPERTY_REGEX.test(key)) {
|
|
71482
|
-
|
|
71486
|
+
v = obj[key];
|
|
71487
|
+
} else {
|
|
71488
|
+
getterCache[key] = getterCache[key] || lib.nestedProperty(obj, key).get;
|
|
71489
|
+
v = getterCache[key]();
|
|
71483
71490
|
}
|
|
71484
|
-
|
|
71485
|
-
return getterCache[key]() || '';
|
|
71491
|
+
return lib.isValidTextValue(v) ? v : '';
|
|
71486
71492
|
});
|
|
71487
71493
|
};
|
|
71488
71494
|
|
|
@@ -81825,6 +81831,7 @@ exports.doAutoRangeAndConstraints = function(gd) {
|
|
|
81825
81831
|
var fullLayout = gd._fullLayout;
|
|
81826
81832
|
var axList = Axes.list(gd, '', true);
|
|
81827
81833
|
var matchGroups = fullLayout._axisMatchGroups || [];
|
|
81834
|
+
var axLookup = {};
|
|
81828
81835
|
var ax;
|
|
81829
81836
|
var axRng;
|
|
81830
81837
|
|
|
@@ -81832,6 +81839,7 @@ exports.doAutoRangeAndConstraints = function(gd) {
|
|
|
81832
81839
|
ax = axList[i];
|
|
81833
81840
|
cleanAxisConstraints(gd, ax);
|
|
81834
81841
|
doAutoRange(gd, ax);
|
|
81842
|
+
axLookup[ax._id] = 1;
|
|
81835
81843
|
}
|
|
81836
81844
|
|
|
81837
81845
|
enforceAxisConstraints(gd);
|
|
@@ -81844,6 +81852,10 @@ exports.doAutoRangeAndConstraints = function(gd) {
|
|
|
81844
81852
|
|
|
81845
81853
|
for(id in group) {
|
|
81846
81854
|
ax = Axes.getFromId(gd, id);
|
|
81855
|
+
|
|
81856
|
+
// skip over 'missing' axes which do not pass through doAutoRange
|
|
81857
|
+
if(!axLookup[ax._id]) continue;
|
|
81858
|
+
// if one axis has autorange false, we're done
|
|
81847
81859
|
if(ax.autorange === false) continue groupLoop;
|
|
81848
81860
|
|
|
81849
81861
|
axRng = Lib.simpleMap(ax.range, ax.r2l);
|
|
@@ -82721,13 +82733,14 @@ function crawl(objIn, objOut, schema, list, base, path) {
|
|
|
82721
82733
|
var valOut = objOut[k];
|
|
82722
82734
|
|
|
82723
82735
|
var nestedSchema = getNestedSchema(schema, k);
|
|
82724
|
-
var
|
|
82725
|
-
var
|
|
82736
|
+
var nestedValType = (nestedSchema || {}).valType;
|
|
82737
|
+
var isInfoArray = nestedValType === 'info_array';
|
|
82738
|
+
var isColorscale = nestedValType === 'colorscale';
|
|
82726
82739
|
var items = (nestedSchema || {}).items;
|
|
82727
82740
|
|
|
82728
82741
|
if(!isInSchema(schema, k)) {
|
|
82729
82742
|
list.push(format('schema', base, p));
|
|
82730
|
-
} else if(isPlainObject(valIn) && isPlainObject(valOut)) {
|
|
82743
|
+
} else if(isPlainObject(valIn) && isPlainObject(valOut) && nestedValType !== 'any') {
|
|
82731
82744
|
crawl(valIn, valOut, nestedSchema, list, base, p);
|
|
82732
82745
|
} else if(isInfoArray && isArray(valIn)) {
|
|
82733
82746
|
if(valIn.length > valOut.length) {
|
|
@@ -85532,10 +85545,14 @@ axes.drawOne = function(gd, ax, opts) {
|
|
|
85532
85545
|
var axId = ax._id;
|
|
85533
85546
|
var axLetter = axId.charAt(0);
|
|
85534
85547
|
var counterLetter = axes.counterLetter(axId);
|
|
85535
|
-
var mainLinePosition = ax._mainLinePosition;
|
|
85536
|
-
var mainMirrorPosition = ax._mainMirrorPosition;
|
|
85537
85548
|
var mainPlotinfo = fullLayout._plots[ax._mainSubplot];
|
|
85549
|
+
|
|
85550
|
+
// this happens when updating matched group with 'missing' axes
|
|
85551
|
+
if(!mainPlotinfo) return;
|
|
85552
|
+
|
|
85538
85553
|
var mainAxLayer = mainPlotinfo[axLetter + 'axislayer'];
|
|
85554
|
+
var mainLinePosition = ax._mainLinePosition;
|
|
85555
|
+
var mainMirrorPosition = ax._mainMirrorPosition;
|
|
85539
85556
|
|
|
85540
85557
|
var vals = ax._vals = axes.calcTicks(ax);
|
|
85541
85558
|
|
|
@@ -87494,11 +87511,10 @@ exports.tick0 = function(tick0, axType, calendar, dtick) {
|
|
|
87494
87511
|
*/
|
|
87495
87512
|
|
|
87496
87513
|
'use strict';
|
|
87497
|
-
var counterRegex = _dereq_('../../lib/regex').counter;
|
|
87498
87514
|
|
|
87515
|
+
var counterRegex = _dereq_('../../lib/regex').counter;
|
|
87499
87516
|
|
|
87500
87517
|
module.exports = {
|
|
87501
|
-
|
|
87502
87518
|
idRegex: {
|
|
87503
87519
|
x: counterRegex('x'),
|
|
87504
87520
|
y: counterRegex('y')
|
|
@@ -90688,6 +90704,8 @@ var axisIds = _dereq_('./axis_ids');
|
|
|
90688
90704
|
var id2name = axisIds.id2name;
|
|
90689
90705
|
var name2id = axisIds.name2id;
|
|
90690
90706
|
|
|
90707
|
+
var AX_ID_PATTERN = _dereq_('./constants').AX_ID_PATTERN;
|
|
90708
|
+
|
|
90691
90709
|
var Registry = _dereq_('../../registry');
|
|
90692
90710
|
var traceIs = Registry.traceIs;
|
|
90693
90711
|
var getComponentMethod = Registry.getComponentMethod;
|
|
@@ -90797,7 +90815,28 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
|
|
|
90797
90815
|
|
|
90798
90816
|
var bgColor = Color.combine(plotBgColor, layoutOut.paper_bgcolor);
|
|
90799
90817
|
|
|
90800
|
-
|
|
90818
|
+
// name of single axis (e.g. 'xaxis', 'yaxis2')
|
|
90819
|
+
var axName;
|
|
90820
|
+
// id of single axis (e.g. 'y', 'x5')
|
|
90821
|
+
var axId;
|
|
90822
|
+
// 'x' or 'y'
|
|
90823
|
+
var axLetter;
|
|
90824
|
+
// input layout axis container
|
|
90825
|
+
var axLayoutIn;
|
|
90826
|
+
// full layout axis container
|
|
90827
|
+
var axLayoutOut;
|
|
90828
|
+
|
|
90829
|
+
function newAxLayoutOut() {
|
|
90830
|
+
var traces = ax2traces[axName] || [];
|
|
90831
|
+
axLayoutOut._traceIndices = traces.map(function(t) { return t._expandedIndex; });
|
|
90832
|
+
axLayoutOut._annIndices = [];
|
|
90833
|
+
axLayoutOut._shapeIndices = [];
|
|
90834
|
+
axLayoutOut._imgIndices = [];
|
|
90835
|
+
axLayoutOut._subplotsWith = [];
|
|
90836
|
+
axLayoutOut._counterAxes = [];
|
|
90837
|
+
axLayoutOut._name = axLayoutOut._attr = axName;
|
|
90838
|
+
axLayoutOut._id = axId;
|
|
90839
|
+
}
|
|
90801
90840
|
|
|
90802
90841
|
function coerce(attr, dflt) {
|
|
90803
90842
|
return Lib.coerce(axLayoutIn, axLayoutOut, layoutAttributes, attr, dflt);
|
|
@@ -90811,9 +90850,6 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
|
|
|
90811
90850
|
return (axLetter === 'x') ? yIds : xIds;
|
|
90812
90851
|
}
|
|
90813
90852
|
|
|
90814
|
-
var counterAxes = {x: getCounterAxes('x'), y: getCounterAxes('y')};
|
|
90815
|
-
var allAxisIds = counterAxes.x.concat(counterAxes.y);
|
|
90816
|
-
|
|
90817
90853
|
function getOverlayableAxes(axLetter, axName) {
|
|
90818
90854
|
var list = (axLetter === 'x') ? xNames : yNames;
|
|
90819
90855
|
var out = [];
|
|
@@ -90829,9 +90865,30 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
|
|
|
90829
90865
|
return out;
|
|
90830
90866
|
}
|
|
90831
90867
|
|
|
90868
|
+
// list of available counter axis names
|
|
90869
|
+
var counterAxes = {x: getCounterAxes('x'), y: getCounterAxes('y')};
|
|
90870
|
+
// list of all x AND y axis ids
|
|
90871
|
+
var allAxisIds = counterAxes.x.concat(counterAxes.y);
|
|
90872
|
+
// lookup and list of axis ids that axes in axNames have a reference to,
|
|
90873
|
+
// even though they are missing from allAxisIds
|
|
90874
|
+
var missingMatchedAxisIdsLookup = {};
|
|
90875
|
+
var missingMatchedAxisIds = [];
|
|
90876
|
+
|
|
90877
|
+
// fill in 'missing' axis lookup when an axis is set to match an axis
|
|
90878
|
+
// not part of the allAxisIds list, save axis type so that we can propagate
|
|
90879
|
+
// it to the missing axes
|
|
90880
|
+
function addMissingMatchedAxis() {
|
|
90881
|
+
var matchesIn = axLayoutIn.matches;
|
|
90882
|
+
if(AX_ID_PATTERN.test(matchesIn) && allAxisIds.indexOf(matchesIn) === -1) {
|
|
90883
|
+
missingMatchedAxisIdsLookup[matchesIn] = axLayoutIn.type;
|
|
90884
|
+
missingMatchedAxisIds = Object.keys(missingMatchedAxisIdsLookup);
|
|
90885
|
+
}
|
|
90886
|
+
}
|
|
90887
|
+
|
|
90832
90888
|
// first pass creates the containers, determines types, and handles most of the settings
|
|
90833
90889
|
for(i = 0; i < axNames.length; i++) {
|
|
90834
90890
|
axName = axNames[i];
|
|
90891
|
+
axId = name2id(axName);
|
|
90835
90892
|
axLetter = axName.charAt(0);
|
|
90836
90893
|
|
|
90837
90894
|
if(!Lib.isPlainObject(layoutIn[axName])) {
|
|
@@ -90840,20 +90897,7 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
|
|
|
90840
90897
|
|
|
90841
90898
|
axLayoutIn = layoutIn[axName];
|
|
90842
90899
|
axLayoutOut = Template.newContainer(layoutOut, axName, axLetter + 'axis');
|
|
90843
|
-
|
|
90844
|
-
var traces = ax2traces[axName] || [];
|
|
90845
|
-
axLayoutOut._traceIndices = traces.map(function(t) { return t._expandedIndex; });
|
|
90846
|
-
axLayoutOut._annIndices = [];
|
|
90847
|
-
axLayoutOut._shapeIndices = [];
|
|
90848
|
-
axLayoutOut._imgIndices = [];
|
|
90849
|
-
axLayoutOut._subplotsWith = [];
|
|
90850
|
-
axLayoutOut._counterAxes = [];
|
|
90851
|
-
|
|
90852
|
-
// set up some private properties
|
|
90853
|
-
axLayoutOut._name = axLayoutOut._attr = axName;
|
|
90854
|
-
var id = axLayoutOut._id = name2id(axName);
|
|
90855
|
-
|
|
90856
|
-
var overlayableAxes = getOverlayableAxes(axLetter, axName);
|
|
90900
|
+
newAxLayoutOut();
|
|
90857
90901
|
|
|
90858
90902
|
var visibleDflt =
|
|
90859
90903
|
(axLetter === 'x' && !xaMustDisplay[axName] && xaMayHide[axName]) ||
|
|
@@ -90871,13 +90915,13 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
|
|
|
90871
90915
|
font: layoutOut.font,
|
|
90872
90916
|
outerTicks: outerTicks[axName],
|
|
90873
90917
|
showGrid: !noGrids[axName],
|
|
90874
|
-
data:
|
|
90918
|
+
data: ax2traces[axName] || [],
|
|
90875
90919
|
bgColor: bgColor,
|
|
90876
90920
|
calendar: layoutOut.calendar,
|
|
90877
90921
|
automargin: true,
|
|
90878
90922
|
visibleDflt: visibleDflt,
|
|
90879
90923
|
reverseDflt: reverseDflt,
|
|
90880
|
-
splomStash: ((layoutOut._splomAxes || {})[axLetter] || {})[
|
|
90924
|
+
splomStash: ((layoutOut._splomAxes || {})[axLetter] || {})[axId]
|
|
90881
90925
|
};
|
|
90882
90926
|
|
|
90883
90927
|
coerce('uirevision', layoutOut.uirevision);
|
|
@@ -90903,12 +90947,63 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
|
|
|
90903
90947
|
handlePositionDefaults(axLayoutIn, axLayoutOut, coerce, {
|
|
90904
90948
|
letter: axLetter,
|
|
90905
90949
|
counterAxes: counterAxes[axLetter],
|
|
90906
|
-
overlayableAxes:
|
|
90950
|
+
overlayableAxes: getOverlayableAxes(axLetter, axName),
|
|
90907
90951
|
grid: layoutOut.grid
|
|
90908
90952
|
});
|
|
90909
90953
|
|
|
90910
90954
|
coerce('title.standoff');
|
|
90911
90955
|
|
|
90956
|
+
addMissingMatchedAxis();
|
|
90957
|
+
|
|
90958
|
+
axLayoutOut._input = axLayoutIn;
|
|
90959
|
+
}
|
|
90960
|
+
|
|
90961
|
+
// coerce the 'missing' axes
|
|
90962
|
+
i = 0;
|
|
90963
|
+
while(i < missingMatchedAxisIds.length) {
|
|
90964
|
+
axId = missingMatchedAxisIds[i++];
|
|
90965
|
+
axName = id2name(axId);
|
|
90966
|
+
axLetter = axName.charAt(0);
|
|
90967
|
+
|
|
90968
|
+
if(!Lib.isPlainObject(layoutIn[axName])) {
|
|
90969
|
+
layoutIn[axName] = {};
|
|
90970
|
+
}
|
|
90971
|
+
|
|
90972
|
+
axLayoutIn = layoutIn[axName];
|
|
90973
|
+
axLayoutOut = Template.newContainer(layoutOut, axName, axLetter + 'axis');
|
|
90974
|
+
newAxLayoutOut();
|
|
90975
|
+
|
|
90976
|
+
var defaultOptions2 = {
|
|
90977
|
+
letter: axLetter,
|
|
90978
|
+
font: layoutOut.font,
|
|
90979
|
+
outerTicks: outerTicks[axName],
|
|
90980
|
+
showGrid: !noGrids[axName],
|
|
90981
|
+
data: [],
|
|
90982
|
+
bgColor: bgColor,
|
|
90983
|
+
calendar: layoutOut.calendar,
|
|
90984
|
+
automargin: true,
|
|
90985
|
+
visibleDflt: false,
|
|
90986
|
+
reverseDflt: false,
|
|
90987
|
+
splomStash: ((layoutOut._splomAxes || {})[axLetter] || {})[axId]
|
|
90988
|
+
};
|
|
90989
|
+
|
|
90990
|
+
coerce('uirevision', layoutOut.uirevision);
|
|
90991
|
+
|
|
90992
|
+
axLayoutOut.type = missingMatchedAxisIdsLookup[axId] || 'linear';
|
|
90993
|
+
|
|
90994
|
+
handleAxisDefaults(axLayoutIn, axLayoutOut, coerce, defaultOptions2, layoutOut);
|
|
90995
|
+
|
|
90996
|
+
handlePositionDefaults(axLayoutIn, axLayoutOut, coerce, {
|
|
90997
|
+
letter: axLetter,
|
|
90998
|
+
counterAxes: counterAxes[axLetter],
|
|
90999
|
+
overlayableAxes: getOverlayableAxes(axLetter, axName),
|
|
91000
|
+
grid: layoutOut.grid
|
|
91001
|
+
});
|
|
91002
|
+
|
|
91003
|
+
coerce('fixedrange');
|
|
91004
|
+
|
|
91005
|
+
addMissingMatchedAxis();
|
|
91006
|
+
|
|
90912
91007
|
axLayoutOut._input = axLayoutIn;
|
|
90913
91008
|
}
|
|
90914
91009
|
|
|
@@ -90959,9 +91054,12 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
|
|
|
90959
91054
|
var constraintGroups = layoutOut._axisConstraintGroups = [];
|
|
90960
91055
|
// similar to _axisConstraintGroups, but for matching axes
|
|
90961
91056
|
var matchGroups = layoutOut._axisMatchGroups = [];
|
|
91057
|
+
// make sure to include 'missing' axes here
|
|
91058
|
+
var allAxisIdsIncludingMissing = allAxisIds.concat(missingMatchedAxisIds);
|
|
91059
|
+
var axNamesIncludingMissing = axNames.concat(Lib.simpleMap(missingMatchedAxisIds, id2name));
|
|
90962
91060
|
|
|
90963
|
-
for(i = 0; i <
|
|
90964
|
-
axName =
|
|
91061
|
+
for(i = 0; i < axNamesIncludingMissing.length; i++) {
|
|
91062
|
+
axName = axNamesIncludingMissing[i];
|
|
90965
91063
|
axLetter = axName.charAt(0);
|
|
90966
91064
|
axLayoutIn = layoutIn[axName];
|
|
90967
91065
|
axLayoutOut = layoutOut[axName];
|
|
@@ -90969,15 +91067,19 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
|
|
|
90969
91067
|
var scaleanchorDflt;
|
|
90970
91068
|
if(axLetter === 'y' && !axLayoutIn.hasOwnProperty('scaleanchor') && axHasImage[axName]) {
|
|
90971
91069
|
scaleanchorDflt = axLayoutOut.anchor;
|
|
90972
|
-
} else {
|
|
91070
|
+
} else {
|
|
91071
|
+
scaleanchorDflt = undefined;
|
|
91072
|
+
}
|
|
90973
91073
|
|
|
90974
91074
|
var constrainDflt;
|
|
90975
91075
|
if(!axLayoutIn.hasOwnProperty('constrain') && axHasImage[axName]) {
|
|
90976
91076
|
constrainDflt = 'domain';
|
|
90977
|
-
} else {
|
|
91077
|
+
} else {
|
|
91078
|
+
constrainDflt = undefined;
|
|
91079
|
+
}
|
|
90978
91080
|
|
|
90979
91081
|
handleConstraintDefaults(axLayoutIn, axLayoutOut, coerce, {
|
|
90980
|
-
allAxisIds:
|
|
91082
|
+
allAxisIds: allAxisIdsIncludingMissing,
|
|
90981
91083
|
layoutOut: layoutOut,
|
|
90982
91084
|
scaleanchorDflt: scaleanchorDflt,
|
|
90983
91085
|
constrainDflt: constrainDflt
|
|
@@ -90988,7 +91090,6 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
|
|
|
90988
91090
|
var group = matchGroups[i];
|
|
90989
91091
|
var rng = null;
|
|
90990
91092
|
var autorange = null;
|
|
90991
|
-
var axId;
|
|
90992
91093
|
|
|
90993
91094
|
// find 'matching' range attrs
|
|
90994
91095
|
for(axId in group) {
|
|
@@ -91041,7 +91142,7 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
|
|
|
91041
91142
|
}
|
|
91042
91143
|
};
|
|
91043
91144
|
|
|
91044
|
-
},{"../../components/color":320,"../../lib":440,"../../plot_api/plot_template":477,"../../registry":531,"../layout_attributes":521,"./axis_defaults":489,"./axis_ids":490,"./constraints":494,"./layout_attributes":499,"./position_defaults":502,"./type_defaults":510}],501:[function(_dereq_,module,exports){
|
|
91145
|
+
},{"../../components/color":320,"../../lib":440,"../../plot_api/plot_template":477,"../../registry":531,"../layout_attributes":521,"./axis_defaults":489,"./axis_ids":490,"./constants":493,"./constraints":494,"./layout_attributes":499,"./position_defaults":502,"./type_defaults":510}],501:[function(_dereq_,module,exports){
|
|
91045
91146
|
/**
|
|
91046
91147
|
* Copyright 2012-2020, Plotly, Inc.
|
|
91047
91148
|
* All rights reserved.
|
|
@@ -97117,10 +97218,13 @@ plots.supplyTraceDefaults = function(traceIn, traceOut, colorIndex, layout, trac
|
|
|
97117
97218
|
var subplots = layout._subplots;
|
|
97118
97219
|
var subplotId = '';
|
|
97119
97220
|
|
|
97120
|
-
|
|
97121
|
-
|
|
97122
|
-
|
|
97123
|
-
|
|
97221
|
+
if(
|
|
97222
|
+
visible ||
|
|
97223
|
+
basePlotModule.name !== 'gl2d' // for now just drop empty gl2d subplots
|
|
97224
|
+
// TODO - currently if we draw an empty gl2d subplot, it draws
|
|
97225
|
+
// nothing then gets stuck and you can't get it back without newPlot
|
|
97226
|
+
// sort this out in the regl refactor?
|
|
97227
|
+
) {
|
|
97124
97228
|
if(Array.isArray(subplotAttr)) {
|
|
97125
97229
|
for(i = 0; i < subplotAttr.length; i++) {
|
|
97126
97230
|
var attri = subplotAttr[i];
|
|
@@ -98779,7 +98883,7 @@ plots.doCalcdata = function(gd, traces) {
|
|
|
98779
98883
|
calcdata[i] = cd;
|
|
98780
98884
|
}
|
|
98781
98885
|
|
|
98782
|
-
setupAxisCategories(axList, fullData);
|
|
98886
|
+
setupAxisCategories(axList, fullData, fullLayout);
|
|
98783
98887
|
|
|
98784
98888
|
// 'transform' loop - must calc container traces first
|
|
98785
98889
|
// so that if their dependent traces can get transform properly
|
|
@@ -98787,7 +98891,7 @@ plots.doCalcdata = function(gd, traces) {
|
|
|
98787
98891
|
for(i = 0; i < fullData.length; i++) transformCalci(i);
|
|
98788
98892
|
|
|
98789
98893
|
// clear stuff that should recomputed in 'regular' loop
|
|
98790
|
-
if(hasCalcTransform) setupAxisCategories(axList, fullData);
|
|
98894
|
+
if(hasCalcTransform) setupAxisCategories(axList, fullData, fullLayout);
|
|
98791
98895
|
|
|
98792
98896
|
// 'regular' loop - make sure container traces (eg carpet) calc before
|
|
98793
98897
|
// contained traces (eg contourcarpet)
|
|
@@ -98992,13 +99096,31 @@ function sortAxisCategoriesByValue(axList, gd) {
|
|
|
98992
99096
|
return affectedTraces;
|
|
98993
99097
|
}
|
|
98994
99098
|
|
|
98995
|
-
function setupAxisCategories(axList, fullData) {
|
|
98996
|
-
|
|
98997
|
-
|
|
99099
|
+
function setupAxisCategories(axList, fullData, fullLayout) {
|
|
99100
|
+
var axLookup = {};
|
|
99101
|
+
var i, ax, axId;
|
|
99102
|
+
|
|
99103
|
+
for(i = 0; i < axList.length; i++) {
|
|
99104
|
+
ax = axList[i];
|
|
99105
|
+
axId = ax._id;
|
|
99106
|
+
|
|
98998
99107
|
ax.clearCalc();
|
|
98999
99108
|
if(ax.type === 'multicategory') {
|
|
99000
99109
|
ax.setupMultiCategory(fullData);
|
|
99001
99110
|
}
|
|
99111
|
+
|
|
99112
|
+
axLookup[ax._id] = 1;
|
|
99113
|
+
}
|
|
99114
|
+
|
|
99115
|
+
// look into match groups for 'missing' axes
|
|
99116
|
+
var matchGroups = fullLayout._axisMatchGroups || [];
|
|
99117
|
+
for(i = 0; i < matchGroups.length; i++) {
|
|
99118
|
+
for(axId in matchGroups[i]) {
|
|
99119
|
+
if(!axLookup[axId]) {
|
|
99120
|
+
ax = fullLayout[axisIDs.id2name(axId)];
|
|
99121
|
+
ax.clearCalc();
|
|
99122
|
+
}
|
|
99123
|
+
}
|
|
99002
99124
|
}
|
|
99003
99125
|
}
|
|
99004
99126
|
|