Skip to content

Commit 37b46d0

Browse files
committed
Merge branch 'master' of https://github.com/plotly/plotly.js into fix-choropleth-interactions-for-firefox
2 parents ff60f21 + 9a583b4 commit 37b46d0

File tree

91 files changed

+628
-2059
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

91 files changed

+628
-2059
lines changed

package-lock.json

Lines changed: 428 additions & 1961 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@
114114
"ndarray-linear-interpolate": "^1.0.0",
115115
"parse-svg-path": "^0.1.2",
116116
"polybooljs": "^1.2.0",
117-
"probe-image-size": "^6.0.0",
117+
"probe-image-size": "^7.1.0",
118118
"regl": "^1.6.1",
119119
"regl-error2d": "^2.0.11",
120120
"regl-line2d": "^3.1.0",
@@ -137,47 +137,47 @@
137137
"browserify-transform-tools": "^1.7.0",
138138
"bubleify": "^2.0.0",
139139
"canvas": "^2.7.0",
140-
"check-node-version": "^4.0.3",
140+
"check-node-version": "^4.1.0",
141141
"chttps": "^1.0.6",
142142
"deep-equal": "^2.0.5",
143143
"derequire": "^2.1.1",
144144
"ecstatic": "^4.1.4",
145-
"eslint": "^7.17.0",
145+
"eslint": "^7.25.0",
146146
"espree": "^7.3.1",
147-
"extra-iterable": "^2.5.14",
147+
"extra-iterable": "^2.5.22",
148148
"falafel": "^2.2.4",
149-
"fs-extra": "^9.0.1",
150-
"fuse.js": "^6.4.5",
149+
"fs-extra": "^10.0.0",
150+
"fuse.js": "^6.4.6",
151151
"glob": "^7.1.6",
152152
"gzip-size": "^6.0.0",
153153
"into-stream": "^6.0.0",
154154
"jasmine-core": "^3.5.0",
155-
"jsdom": "^16.4.0",
156-
"karma": "^5.2.3",
157-
"karma-browserify": "^7.0.0",
155+
"jsdom": "^16.5.3",
156+
"karma": "^6.3.2",
157+
"karma-browserify": "^8.0.0",
158158
"karma-chrome-launcher": "^3.1.0",
159159
"karma-firefox-launcher": "^1.3.0",
160160
"karma-ie-launcher": "^1.0.0",
161161
"karma-jasmine": "^3.3.1",
162162
"karma-jasmine-spec-tags": "^1.3.0",
163163
"karma-spec-reporter": "0.0.32",
164164
"karma-verbose-reporter": "0.0.6",
165-
"karma-viewport": "^1.0.7",
166-
"lodash": "^4.17.20",
165+
"karma-viewport": "^1.0.8",
166+
"lodash": "^4.17.21",
167167
"madge": "^4.0.2",
168168
"mathjax": "2.7.5",
169169
"minify-stream": "^2.1.0",
170170
"mkdirp": "^1.0.4",
171171
"node-sass": "^5.0.0",
172172
"npm-link-check": "^4.0.0",
173-
"open": "^7.3.0",
173+
"open": "^8.0.7",
174174
"prepend-file": "^2.0.0",
175175
"prettysize": "^2.0.0",
176-
"read-last-lines": "^1.7.2",
176+
"read-last-lines": "^1.8.0",
177177
"run-series": "^1.1.9",
178178
"sane-topojson": "^4.0.0",
179179
"through2": "^4.0.2",
180180
"true-case-path": "^2.2.1",
181-
"watchify": "^3.11.1"
181+
"watchify": "^4.0.0"
182182
}
183183
}

src/components/color/index.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
var tinycolor = require('tinycolor2');
44
var isNumeric = require('fast-isnumeric');
5+
var isTypedArray = require('../../lib/array').isTypedArray;
56

67
var color = module.exports = {};
78

@@ -116,7 +117,7 @@ color.clean = function(container) {
116117
if(!Array.isArray(el0) && el0 && typeof el0 === 'object') {
117118
for(j = 0; j < val.length; j++) color.clean(val[j]);
118119
}
119-
} else if(val && typeof val === 'object') color.clean(val);
120+
} else if(val && typeof val === 'object' && !isTypedArray(val)) color.clean(val);
120121
}
121122
};
122123

src/components/colorbar/defaults.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,21 @@ module.exports = function colorbarDefaults(containerIn, containerOut, layout) {
4848

4949
handleTickValueDefaults(colorbarIn, colorbarOut, coerce, 'linear');
5050

51-
var opts = {outerTicks: false, font: layout.font};
51+
var font = layout.font;
52+
var opts = {outerTicks: false, font: font};
5253
if(ticklabelposition.indexOf('inside') !== -1) {
5354
opts.bgColor = 'black'; // could we instead use the average of colors in the scale?
5455
}
5556
handleTickLabelDefaults(colorbarIn, colorbarOut, coerce, 'linear', opts);
5657
handleTickMarkDefaults(colorbarIn, colorbarOut, coerce, 'linear', opts);
5758

5859
coerce('title.text', layout._dfltTitle.colorbar);
59-
Lib.coerceFont(coerce, 'title.font', layout.font);
60+
61+
var tickFont = colorbarOut.tickfont;
62+
var dfltTitleFont = Lib.extendFlat({}, tickFont, {
63+
color: font.color,
64+
size: Lib.bigFont(tickFont.size)
65+
});
66+
Lib.coerceFont(coerce, 'title.font', dfltTitleFont);
6067
coerce('title.side');
6168
};

src/components/drawing/index.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -943,7 +943,8 @@ drawing.textPointStyle = function(s, trace, gd) {
943943
}
944944

945945
if(texttemplate) {
946-
var labels = trace._module.formatLabels ? trace._module.formatLabels(d, trace, fullLayout) : {};
946+
var fn = trace._module.formatLabels;
947+
var labels = fn ? fn(d, trace, fullLayout) : {};
947948
var pointValues = {};
948949
appendArrayPointValue(pointValues, trace, d.i);
949950
var meta = trace._meta || {};

src/components/legend/attributes.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,8 @@ module.exports = {
189189
font: fontAttrs({
190190
editType: 'legend',
191191
description: [
192-
'Sets this legend\'s title font.'
192+
'Sets this legend\'s title font.',
193+
'Defaults to `legend.font` with its size increased about 20%.'
193194
].join(' '),
194195
}),
195196
side: {

src/components/legend/defaults.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,12 +77,13 @@ module.exports = function legendDefaults(layoutIn, layoutOut, fullData) {
7777
coerce('bgcolor', layoutOut.paper_bgcolor);
7878
coerce('bordercolor');
7979
coerce('borderwidth');
80-
Lib.coerceFont(coerce, 'font', layoutOut.font);
80+
var itemFont = Lib.coerceFont(coerce, 'font', layoutOut.font);
8181

8282
var orientation = coerce('orientation');
83+
var isHorizontal = orientation === 'h';
8384
var defaultX, defaultY, defaultYAnchor;
8485

85-
if(orientation === 'h') {
86+
if(isHorizontal) {
8687
defaultX = 0;
8788

8889
if(Registry.getComponentMethod('rangeslider', 'isVisible')(layoutIn.xaxis)) {
@@ -119,7 +120,11 @@ module.exports = function legendDefaults(layoutIn, layoutOut, fullData) {
119120

120121
var titleText = coerce('title.text');
121122
if(titleText) {
122-
coerce('title.side', orientation === 'h' ? 'left' : 'top');
123-
Lib.coerceFont(coerce, 'title.font', layoutOut.font);
123+
coerce('title.side', isHorizontal ? 'left' : 'top');
124+
var dfltTitleFont = Lib.extendFlat({}, itemFont, {
125+
size: Lib.bigFont(itemFont.size)
126+
});
127+
128+
Lib.coerceFont(coerce, 'title.font', dfltTitleFont);
124129
}
125130
};

src/components/legend/draw.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -539,6 +539,11 @@ function computeTextDimensions(g, gd, legendObj, aTitle) {
539539
// approximation to height offset to center the font
540540
// to avoid getBoundingClientRect
541541
if(aTitle === MAIN_TITLE) {
542+
if(legendObj.title.side === 'left') {
543+
// add extra space between legend title and itmes
544+
width += constants.itemGap * 2;
545+
}
546+
542547
svgTextUtils.positionText(textEl,
543548
bw + constants.titlePad,
544549
bw + lineHeight

src/constants/numerical.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ module.exports = {
1515
* to avoid glitches: Make sure that even when you multiply it by the
1616
* number of pixels on a giant screen it still works
1717
*/
18-
FP_SAFE: Number.MAX_VALUE / 10000,
18+
FP_SAFE: Number.MAX_VALUE * 1e-4,
1919

2020
/*
2121
* conversion of date units to milliseconds

src/lib/index.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ var utcFormat = require('d3-time-format').utcFormat;
55
var isNumeric = require('fast-isnumeric');
66

77
var numConstants = require('../constants/numerical');
8-
var FP_SAFE = numConstants.FP_SAFE;
8+
var MAX_SAFE = numConstants.FP_SAFE;
9+
var MIN_SAFE = -MAX_SAFE;
910
var BADNUM = numConstants.BADNUM;
1011

1112
var lib = module.exports = {};
@@ -166,8 +167,7 @@ lib.cleanNumber = require('./clean_number');
166167
lib.ensureNumber = function ensureNumber(v) {
167168
if(!isNumeric(v)) return BADNUM;
168169
v = Number(v);
169-
if(v < -FP_SAFE || v > FP_SAFE) return BADNUM;
170-
return isNumeric(v) ? Number(v) : BADNUM;
170+
return (v > MAX_SAFE || v < MIN_SAFE) ? BADNUM : v;
171171
};
172172

173173
/**
@@ -1276,6 +1276,10 @@ lib.join2 = function(arr, mainSeparator, lastSeparator) {
12761276
return arr.join(mainSeparator);
12771277
};
12781278

1279+
lib.bigFont = function(size) {
1280+
return Math.round(1.2 * size);
1281+
};
1282+
12791283
/**
12801284
* Return the mouse position from the last event registered by D3.
12811285
* @returns An array with two numbers, representing the x and y coordinates of the mouse pointer

0 commit comments

Comments
 (0)