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-mapbox.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* plotly.js (mapbox) v1.52.
|
|
2
|
+
* plotly.js (mapbox) v1.52.2
|
|
3
3
|
* Copyright 2012-2020, Plotly, Inc.
|
|
4
4
|
* All rights reserved.
|
|
5
5
|
* Licensed under the MIT license
|
|
@@ -36691,7 +36691,7 @@ exports.svgAttrs = {
|
|
|
36691
36691
|
'use strict';
|
|
36692
36692
|
|
|
36693
36693
|
// package version injected by `npm run preprocess`
|
|
36694
|
-
exports.version = '1.52.
|
|
36694
|
+
exports.version = '1.52.2';
|
|
36695
36695
|
|
|
36696
36696
|
// inject promise polyfill
|
|
36697
36697
|
_dereq_('es6-promise').polyfill();
|
|
@@ -40780,11 +40780,14 @@ lib.templateString = function(string, obj) {
|
|
|
40780
40780
|
var getterCache = {};
|
|
40781
40781
|
|
|
40782
40782
|
return string.replace(lib.TEMPLATE_STRING_REGEX, function(dummy, key) {
|
|
40783
|
+
var v;
|
|
40783
40784
|
if(SIMPLE_PROPERTY_REGEX.test(key)) {
|
|
40784
|
-
|
|
40785
|
+
v = obj[key];
|
|
40786
|
+
} else {
|
|
40787
|
+
getterCache[key] = getterCache[key] || lib.nestedProperty(obj, key).get;
|
|
40788
|
+
v = getterCache[key]();
|
|
40785
40789
|
}
|
|
40786
|
-
|
|
40787
|
-
return getterCache[key]() || '';
|
|
40790
|
+
return lib.isValidTextValue(v) ? v : '';
|
|
40788
40791
|
});
|
|
40789
40792
|
};
|
|
40790
40793
|
|
|
@@ -50970,6 +50973,7 @@ exports.doAutoRangeAndConstraints = function(gd) {
|
|
|
50970
50973
|
var fullLayout = gd._fullLayout;
|
|
50971
50974
|
var axList = Axes.list(gd, '', true);
|
|
50972
50975
|
var matchGroups = fullLayout._axisMatchGroups || [];
|
|
50976
|
+
var axLookup = {};
|
|
50973
50977
|
var ax;
|
|
50974
50978
|
var axRng;
|
|
50975
50979
|
|
|
@@ -50977,6 +50981,7 @@ exports.doAutoRangeAndConstraints = function(gd) {
|
|
|
50977
50981
|
ax = axList[i];
|
|
50978
50982
|
cleanAxisConstraints(gd, ax);
|
|
50979
50983
|
doAutoRange(gd, ax);
|
|
50984
|
+
axLookup[ax._id] = 1;
|
|
50980
50985
|
}
|
|
50981
50986
|
|
|
50982
50987
|
enforceAxisConstraints(gd);
|
|
@@ -50989,6 +50994,10 @@ exports.doAutoRangeAndConstraints = function(gd) {
|
|
|
50989
50994
|
|
|
50990
50995
|
for(id in group) {
|
|
50991
50996
|
ax = Axes.getFromId(gd, id);
|
|
50997
|
+
|
|
50998
|
+
// skip over 'missing' axes which do not pass through doAutoRange
|
|
50999
|
+
if(!axLookup[ax._id]) continue;
|
|
51000
|
+
// if one axis has autorange false, we're done
|
|
50992
51001
|
if(ax.autorange === false) continue groupLoop;
|
|
50993
51002
|
|
|
50994
51003
|
axRng = Lib.simpleMap(ax.range, ax.r2l);
|
|
@@ -51866,13 +51875,14 @@ function crawl(objIn, objOut, schema, list, base, path) {
|
|
|
51866
51875
|
var valOut = objOut[k];
|
|
51867
51876
|
|
|
51868
51877
|
var nestedSchema = getNestedSchema(schema, k);
|
|
51869
|
-
var
|
|
51870
|
-
var
|
|
51878
|
+
var nestedValType = (nestedSchema || {}).valType;
|
|
51879
|
+
var isInfoArray = nestedValType === 'info_array';
|
|
51880
|
+
var isColorscale = nestedValType === 'colorscale';
|
|
51871
51881
|
var items = (nestedSchema || {}).items;
|
|
51872
51882
|
|
|
51873
51883
|
if(!isInSchema(schema, k)) {
|
|
51874
51884
|
list.push(format('schema', base, p));
|
|
51875
|
-
} else if(isPlainObject(valIn) && isPlainObject(valOut)) {
|
|
51885
|
+
} else if(isPlainObject(valIn) && isPlainObject(valOut) && nestedValType !== 'any') {
|
|
51876
51886
|
crawl(valIn, valOut, nestedSchema, list, base, p);
|
|
51877
51887
|
} else if(isInfoArray && isArray(valIn)) {
|
|
51878
51888
|
if(valIn.length > valOut.length) {
|
|
@@ -54677,10 +54687,14 @@ axes.drawOne = function(gd, ax, opts) {
|
|
|
54677
54687
|
var axId = ax._id;
|
|
54678
54688
|
var axLetter = axId.charAt(0);
|
|
54679
54689
|
var counterLetter = axes.counterLetter(axId);
|
|
54680
|
-
var mainLinePosition = ax._mainLinePosition;
|
|
54681
|
-
var mainMirrorPosition = ax._mainMirrorPosition;
|
|
54682
54690
|
var mainPlotinfo = fullLayout._plots[ax._mainSubplot];
|
|
54691
|
+
|
|
54692
|
+
// this happens when updating matched group with 'missing' axes
|
|
54693
|
+
if(!mainPlotinfo) return;
|
|
54694
|
+
|
|
54683
54695
|
var mainAxLayer = mainPlotinfo[axLetter + 'axislayer'];
|
|
54696
|
+
var mainLinePosition = ax._mainLinePosition;
|
|
54697
|
+
var mainMirrorPosition = ax._mainMirrorPosition;
|
|
54684
54698
|
|
|
54685
54699
|
var vals = ax._vals = axes.calcTicks(ax);
|
|
54686
54700
|
|
|
@@ -56639,11 +56653,10 @@ exports.tick0 = function(tick0, axType, calendar, dtick) {
|
|
|
56639
56653
|
*/
|
|
56640
56654
|
|
|
56641
56655
|
'use strict';
|
|
56642
|
-
var counterRegex = _dereq_('../../lib/regex').counter;
|
|
56643
56656
|
|
|
56657
|
+
var counterRegex = _dereq_('../../lib/regex').counter;
|
|
56644
56658
|
|
|
56645
56659
|
module.exports = {
|
|
56646
|
-
|
|
56647
56660
|
idRegex: {
|
|
56648
56661
|
x: counterRegex('x'),
|
|
56649
56662
|
y: counterRegex('y')
|
|
@@ -59833,6 +59846,8 @@ var axisIds = _dereq_('./axis_ids');
|
|
|
59833
59846
|
var id2name = axisIds.id2name;
|
|
59834
59847
|
var name2id = axisIds.name2id;
|
|
59835
59848
|
|
|
59849
|
+
var AX_ID_PATTERN = _dereq_('./constants').AX_ID_PATTERN;
|
|
59850
|
+
|
|
59836
59851
|
var Registry = _dereq_('../../registry');
|
|
59837
59852
|
var traceIs = Registry.traceIs;
|
|
59838
59853
|
var getComponentMethod = Registry.getComponentMethod;
|
|
@@ -59942,7 +59957,28 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
|
|
|
59942
59957
|
|
|
59943
59958
|
var bgColor = Color.combine(plotBgColor, layoutOut.paper_bgcolor);
|
|
59944
59959
|
|
|
59945
|
-
|
|
59960
|
+
// name of single axis (e.g. 'xaxis', 'yaxis2')
|
|
59961
|
+
var axName;
|
|
59962
|
+
// id of single axis (e.g. 'y', 'x5')
|
|
59963
|
+
var axId;
|
|
59964
|
+
// 'x' or 'y'
|
|
59965
|
+
var axLetter;
|
|
59966
|
+
// input layout axis container
|
|
59967
|
+
var axLayoutIn;
|
|
59968
|
+
// full layout axis container
|
|
59969
|
+
var axLayoutOut;
|
|
59970
|
+
|
|
59971
|
+
function newAxLayoutOut() {
|
|
59972
|
+
var traces = ax2traces[axName] || [];
|
|
59973
|
+
axLayoutOut._traceIndices = traces.map(function(t) { return t._expandedIndex; });
|
|
59974
|
+
axLayoutOut._annIndices = [];
|
|
59975
|
+
axLayoutOut._shapeIndices = [];
|
|
59976
|
+
axLayoutOut._imgIndices = [];
|
|
59977
|
+
axLayoutOut._subplotsWith = [];
|
|
59978
|
+
axLayoutOut._counterAxes = [];
|
|
59979
|
+
axLayoutOut._name = axLayoutOut._attr = axName;
|
|
59980
|
+
axLayoutOut._id = axId;
|
|
59981
|
+
}
|
|
59946
59982
|
|
|
59947
59983
|
function coerce(attr, dflt) {
|
|
59948
59984
|
return Lib.coerce(axLayoutIn, axLayoutOut, layoutAttributes, attr, dflt);
|
|
@@ -59956,9 +59992,6 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
|
|
|
59956
59992
|
return (axLetter === 'x') ? yIds : xIds;
|
|
59957
59993
|
}
|
|
59958
59994
|
|
|
59959
|
-
var counterAxes = {x: getCounterAxes('x'), y: getCounterAxes('y')};
|
|
59960
|
-
var allAxisIds = counterAxes.x.concat(counterAxes.y);
|
|
59961
|
-
|
|
59962
59995
|
function getOverlayableAxes(axLetter, axName) {
|
|
59963
59996
|
var list = (axLetter === 'x') ? xNames : yNames;
|
|
59964
59997
|
var out = [];
|
|
@@ -59974,9 +60007,30 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
|
|
|
59974
60007
|
return out;
|
|
59975
60008
|
}
|
|
59976
60009
|
|
|
60010
|
+
// list of available counter axis names
|
|
60011
|
+
var counterAxes = {x: getCounterAxes('x'), y: getCounterAxes('y')};
|
|
60012
|
+
// list of all x AND y axis ids
|
|
60013
|
+
var allAxisIds = counterAxes.x.concat(counterAxes.y);
|
|
60014
|
+
// lookup and list of axis ids that axes in axNames have a reference to,
|
|
60015
|
+
// even though they are missing from allAxisIds
|
|
60016
|
+
var missingMatchedAxisIdsLookup = {};
|
|
60017
|
+
var missingMatchedAxisIds = [];
|
|
60018
|
+
|
|
60019
|
+
// fill in 'missing' axis lookup when an axis is set to match an axis
|
|
60020
|
+
// not part of the allAxisIds list, save axis type so that we can propagate
|
|
60021
|
+
// it to the missing axes
|
|
60022
|
+
function addMissingMatchedAxis() {
|
|
60023
|
+
var matchesIn = axLayoutIn.matches;
|
|
60024
|
+
if(AX_ID_PATTERN.test(matchesIn) && allAxisIds.indexOf(matchesIn) === -1) {
|
|
60025
|
+
missingMatchedAxisIdsLookup[matchesIn] = axLayoutIn.type;
|
|
60026
|
+
missingMatchedAxisIds = Object.keys(missingMatchedAxisIdsLookup);
|
|
60027
|
+
}
|
|
60028
|
+
}
|
|
60029
|
+
|
|
59977
60030
|
// first pass creates the containers, determines types, and handles most of the settings
|
|
59978
60031
|
for(i = 0; i < axNames.length; i++) {
|
|
59979
60032
|
axName = axNames[i];
|
|
60033
|
+
axId = name2id(axName);
|
|
59980
60034
|
axLetter = axName.charAt(0);
|
|
59981
60035
|
|
|
59982
60036
|
if(!Lib.isPlainObject(layoutIn[axName])) {
|
|
@@ -59985,20 +60039,7 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
|
|
|
59985
60039
|
|
|
59986
60040
|
axLayoutIn = layoutIn[axName];
|
|
59987
60041
|
axLayoutOut = Template.newContainer(layoutOut, axName, axLetter + 'axis');
|
|
59988
|
-
|
|
59989
|
-
var traces = ax2traces[axName] || [];
|
|
59990
|
-
axLayoutOut._traceIndices = traces.map(function(t) { return t._expandedIndex; });
|
|
59991
|
-
axLayoutOut._annIndices = [];
|
|
59992
|
-
axLayoutOut._shapeIndices = [];
|
|
59993
|
-
axLayoutOut._imgIndices = [];
|
|
59994
|
-
axLayoutOut._subplotsWith = [];
|
|
59995
|
-
axLayoutOut._counterAxes = [];
|
|
59996
|
-
|
|
59997
|
-
// set up some private properties
|
|
59998
|
-
axLayoutOut._name = axLayoutOut._attr = axName;
|
|
59999
|
-
var id = axLayoutOut._id = name2id(axName);
|
|
60000
|
-
|
|
60001
|
-
var overlayableAxes = getOverlayableAxes(axLetter, axName);
|
|
60042
|
+
newAxLayoutOut();
|
|
60002
60043
|
|
|
60003
60044
|
var visibleDflt =
|
|
60004
60045
|
(axLetter === 'x' && !xaMustDisplay[axName] && xaMayHide[axName]) ||
|
|
@@ -60016,13 +60057,13 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
|
|
|
60016
60057
|
font: layoutOut.font,
|
|
60017
60058
|
outerTicks: outerTicks[axName],
|
|
60018
60059
|
showGrid: !noGrids[axName],
|
|
60019
|
-
data:
|
|
60060
|
+
data: ax2traces[axName] || [],
|
|
60020
60061
|
bgColor: bgColor,
|
|
60021
60062
|
calendar: layoutOut.calendar,
|
|
60022
60063
|
automargin: true,
|
|
60023
60064
|
visibleDflt: visibleDflt,
|
|
60024
60065
|
reverseDflt: reverseDflt,
|
|
60025
|
-
splomStash: ((layoutOut._splomAxes || {})[axLetter] || {})[
|
|
60066
|
+
splomStash: ((layoutOut._splomAxes || {})[axLetter] || {})[axId]
|
|
60026
60067
|
};
|
|
60027
60068
|
|
|
60028
60069
|
coerce('uirevision', layoutOut.uirevision);
|
|
@@ -60048,12 +60089,63 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
|
|
|
60048
60089
|
handlePositionDefaults(axLayoutIn, axLayoutOut, coerce, {
|
|
60049
60090
|
letter: axLetter,
|
|
60050
60091
|
counterAxes: counterAxes[axLetter],
|
|
60051
|
-
overlayableAxes:
|
|
60092
|
+
overlayableAxes: getOverlayableAxes(axLetter, axName),
|
|
60052
60093
|
grid: layoutOut.grid
|
|
60053
60094
|
});
|
|
60054
60095
|
|
|
60055
60096
|
coerce('title.standoff');
|
|
60056
60097
|
|
|
60098
|
+
addMissingMatchedAxis();
|
|
60099
|
+
|
|
60100
|
+
axLayoutOut._input = axLayoutIn;
|
|
60101
|
+
}
|
|
60102
|
+
|
|
60103
|
+
// coerce the 'missing' axes
|
|
60104
|
+
i = 0;
|
|
60105
|
+
while(i < missingMatchedAxisIds.length) {
|
|
60106
|
+
axId = missingMatchedAxisIds[i++];
|
|
60107
|
+
axName = id2name(axId);
|
|
60108
|
+
axLetter = axName.charAt(0);
|
|
60109
|
+
|
|
60110
|
+
if(!Lib.isPlainObject(layoutIn[axName])) {
|
|
60111
|
+
layoutIn[axName] = {};
|
|
60112
|
+
}
|
|
60113
|
+
|
|
60114
|
+
axLayoutIn = layoutIn[axName];
|
|
60115
|
+
axLayoutOut = Template.newContainer(layoutOut, axName, axLetter + 'axis');
|
|
60116
|
+
newAxLayoutOut();
|
|
60117
|
+
|
|
60118
|
+
var defaultOptions2 = {
|
|
60119
|
+
letter: axLetter,
|
|
60120
|
+
font: layoutOut.font,
|
|
60121
|
+
outerTicks: outerTicks[axName],
|
|
60122
|
+
showGrid: !noGrids[axName],
|
|
60123
|
+
data: [],
|
|
60124
|
+
bgColor: bgColor,
|
|
60125
|
+
calendar: layoutOut.calendar,
|
|
60126
|
+
automargin: true,
|
|
60127
|
+
visibleDflt: false,
|
|
60128
|
+
reverseDflt: false,
|
|
60129
|
+
splomStash: ((layoutOut._splomAxes || {})[axLetter] || {})[axId]
|
|
60130
|
+
};
|
|
60131
|
+
|
|
60132
|
+
coerce('uirevision', layoutOut.uirevision);
|
|
60133
|
+
|
|
60134
|
+
axLayoutOut.type = missingMatchedAxisIdsLookup[axId] || 'linear';
|
|
60135
|
+
|
|
60136
|
+
handleAxisDefaults(axLayoutIn, axLayoutOut, coerce, defaultOptions2, layoutOut);
|
|
60137
|
+
|
|
60138
|
+
handlePositionDefaults(axLayoutIn, axLayoutOut, coerce, {
|
|
60139
|
+
letter: axLetter,
|
|
60140
|
+
counterAxes: counterAxes[axLetter],
|
|
60141
|
+
overlayableAxes: getOverlayableAxes(axLetter, axName),
|
|
60142
|
+
grid: layoutOut.grid
|
|
60143
|
+
});
|
|
60144
|
+
|
|
60145
|
+
coerce('fixedrange');
|
|
60146
|
+
|
|
60147
|
+
addMissingMatchedAxis();
|
|
60148
|
+
|
|
60057
60149
|
axLayoutOut._input = axLayoutIn;
|
|
60058
60150
|
}
|
|
60059
60151
|
|
|
@@ -60104,9 +60196,12 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
|
|
|
60104
60196
|
var constraintGroups = layoutOut._axisConstraintGroups = [];
|
|
60105
60197
|
// similar to _axisConstraintGroups, but for matching axes
|
|
60106
60198
|
var matchGroups = layoutOut._axisMatchGroups = [];
|
|
60199
|
+
// make sure to include 'missing' axes here
|
|
60200
|
+
var allAxisIdsIncludingMissing = allAxisIds.concat(missingMatchedAxisIds);
|
|
60201
|
+
var axNamesIncludingMissing = axNames.concat(Lib.simpleMap(missingMatchedAxisIds, id2name));
|
|
60107
60202
|
|
|
60108
|
-
for(i = 0; i <
|
|
60109
|
-
axName =
|
|
60203
|
+
for(i = 0; i < axNamesIncludingMissing.length; i++) {
|
|
60204
|
+
axName = axNamesIncludingMissing[i];
|
|
60110
60205
|
axLetter = axName.charAt(0);
|
|
60111
60206
|
axLayoutIn = layoutIn[axName];
|
|
60112
60207
|
axLayoutOut = layoutOut[axName];
|
|
@@ -60114,15 +60209,19 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
|
|
|
60114
60209
|
var scaleanchorDflt;
|
|
60115
60210
|
if(axLetter === 'y' && !axLayoutIn.hasOwnProperty('scaleanchor') && axHasImage[axName]) {
|
|
60116
60211
|
scaleanchorDflt = axLayoutOut.anchor;
|
|
60117
|
-
} else {
|
|
60212
|
+
} else {
|
|
60213
|
+
scaleanchorDflt = undefined;
|
|
60214
|
+
}
|
|
60118
60215
|
|
|
60119
60216
|
var constrainDflt;
|
|
60120
60217
|
if(!axLayoutIn.hasOwnProperty('constrain') && axHasImage[axName]) {
|
|
60121
60218
|
constrainDflt = 'domain';
|
|
60122
|
-
} else {
|
|
60219
|
+
} else {
|
|
60220
|
+
constrainDflt = undefined;
|
|
60221
|
+
}
|
|
60123
60222
|
|
|
60124
60223
|
handleConstraintDefaults(axLayoutIn, axLayoutOut, coerce, {
|
|
60125
|
-
allAxisIds:
|
|
60224
|
+
allAxisIds: allAxisIdsIncludingMissing,
|
|
60126
60225
|
layoutOut: layoutOut,
|
|
60127
60226
|
scaleanchorDflt: scaleanchorDflt,
|
|
60128
60227
|
constrainDflt: constrainDflt
|
|
@@ -60133,7 +60232,6 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
|
|
|
60133
60232
|
var group = matchGroups[i];
|
|
60134
60233
|
var rng = null;
|
|
60135
60234
|
var autorange = null;
|
|
60136
|
-
var axId;
|
|
60137
60235
|
|
|
60138
60236
|
// find 'matching' range attrs
|
|
60139
60237
|
for(axId in group) {
|
|
@@ -60186,7 +60284,7 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
|
|
|
60186
60284
|
}
|
|
60187
60285
|
};
|
|
60188
60286
|
|
|
60189
|
-
},{"../../components/color":50,"../../lib":169,"../../plot_api/plot_template":203,"../../registry":261,"../layout_attributes":243,"./axis_defaults":215,"./axis_ids":216,"./constraints":220,"./layout_attributes":225,"./position_defaults":228,"./type_defaults":236}],227:[function(_dereq_,module,exports){
|
|
60287
|
+
},{"../../components/color":50,"../../lib":169,"../../plot_api/plot_template":203,"../../registry":261,"../layout_attributes":243,"./axis_defaults":215,"./axis_ids":216,"./constants":219,"./constraints":220,"./layout_attributes":225,"./position_defaults":228,"./type_defaults":236}],227:[function(_dereq_,module,exports){
|
|
60190
60288
|
/**
|
|
60191
60289
|
* Copyright 2012-2020, Plotly, Inc.
|
|
60192
60290
|
* All rights reserved.
|
|
@@ -64363,7 +64461,8 @@ function convertOpts(opts) {
|
|
|
64363
64461
|
break;
|
|
64364
64462
|
case 'raster':
|
|
64365
64463
|
Lib.extendFlat(paint, {
|
|
64366
|
-
'raster-fade-duration': 0
|
|
64464
|
+
'raster-fade-duration': 0,
|
|
64465
|
+
'raster-opacity': opts.opacity
|
|
64367
64466
|
});
|
|
64368
64467
|
break;
|
|
64369
64468
|
}
|
|
@@ -66882,10 +66981,13 @@ plots.supplyTraceDefaults = function(traceIn, traceOut, colorIndex, layout, trac
|
|
|
66882
66981
|
var subplots = layout._subplots;
|
|
66883
66982
|
var subplotId = '';
|
|
66884
66983
|
|
|
66885
|
-
|
|
66886
|
-
|
|
66887
|
-
|
|
66888
|
-
|
|
66984
|
+
if(
|
|
66985
|
+
visible ||
|
|
66986
|
+
basePlotModule.name !== 'gl2d' // for now just drop empty gl2d subplots
|
|
66987
|
+
// TODO - currently if we draw an empty gl2d subplot, it draws
|
|
66988
|
+
// nothing then gets stuck and you can't get it back without newPlot
|
|
66989
|
+
// sort this out in the regl refactor?
|
|
66990
|
+
) {
|
|
66889
66991
|
if(Array.isArray(subplotAttr)) {
|
|
66890
66992
|
for(i = 0; i < subplotAttr.length; i++) {
|
|
66891
66993
|
var attri = subplotAttr[i];
|
|
@@ -68544,7 +68646,7 @@ plots.doCalcdata = function(gd, traces) {
|
|
|
68544
68646
|
calcdata[i] = cd;
|
|
68545
68647
|
}
|
|
68546
68648
|
|
|
68547
|
-
setupAxisCategories(axList, fullData);
|
|
68649
|
+
setupAxisCategories(axList, fullData, fullLayout);
|
|
68548
68650
|
|
|
68549
68651
|
// 'transform' loop - must calc container traces first
|
|
68550
68652
|
// so that if their dependent traces can get transform properly
|
|
@@ -68552,7 +68654,7 @@ plots.doCalcdata = function(gd, traces) {
|
|
|
68552
68654
|
for(i = 0; i < fullData.length; i++) transformCalci(i);
|
|
68553
68655
|
|
|
68554
68656
|
// clear stuff that should recomputed in 'regular' loop
|
|
68555
|
-
if(hasCalcTransform) setupAxisCategories(axList, fullData);
|
|
68657
|
+
if(hasCalcTransform) setupAxisCategories(axList, fullData, fullLayout);
|
|
68556
68658
|
|
|
68557
68659
|
// 'regular' loop - make sure container traces (eg carpet) calc before
|
|
68558
68660
|
// contained traces (eg contourcarpet)
|
|
@@ -68757,13 +68859,31 @@ function sortAxisCategoriesByValue(axList, gd) {
|
|
|
68757
68859
|
return affectedTraces;
|
|
68758
68860
|
}
|
|
68759
68861
|
|
|
68760
|
-
function setupAxisCategories(axList, fullData) {
|
|
68761
|
-
|
|
68762
|
-
|
|
68862
|
+
function setupAxisCategories(axList, fullData, fullLayout) {
|
|
68863
|
+
var axLookup = {};
|
|
68864
|
+
var i, ax, axId;
|
|
68865
|
+
|
|
68866
|
+
for(i = 0; i < axList.length; i++) {
|
|
68867
|
+
ax = axList[i];
|
|
68868
|
+
axId = ax._id;
|
|
68869
|
+
|
|
68763
68870
|
ax.clearCalc();
|
|
68764
68871
|
if(ax.type === 'multicategory') {
|
|
68765
68872
|
ax.setupMultiCategory(fullData);
|
|
68766
68873
|
}
|
|
68874
|
+
|
|
68875
|
+
axLookup[ax._id] = 1;
|
|
68876
|
+
}
|
|
68877
|
+
|
|
68878
|
+
// look into match groups for 'missing' axes
|
|
68879
|
+
var matchGroups = fullLayout._axisMatchGroups || [];
|
|
68880
|
+
for(i = 0; i < matchGroups.length; i++) {
|
|
68881
|
+
for(axId in matchGroups[i]) {
|
|
68882
|
+
if(!axLookup[axId]) {
|
|
68883
|
+
ax = fullLayout[axisIDs.id2name(axId)];
|
|
68884
|
+
ax.clearCalc();
|
|
68885
|
+
}
|
|
68886
|
+
}
|
|
68767
68887
|
}
|
|
68768
68888
|
}
|
|
68769
68889
|
|