Skip to content

Commit d7a3fe1

Browse files
committed
Merge remote-tracking branch 'upstream/master'
2 parents 93f1781 + 7882ba5 commit d7a3fe1

28 files changed

+736
-204
lines changed

.eslintrc

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
"rules": {
1010
"no-trailing-spaces": [2],
1111
"no-multiple-empty-lines": [2, {"max": 2, "maxEOF": 1}],
12+
"eol-last": [2],
1213
"linebreak-style": [2, "unix"],
1314
"indent": [2, 4, {"SwitchCase": 1}],
1415
"max-len": [0, 80],
@@ -32,9 +33,12 @@
3233
"space-before-function-paren": [2, "never"],
3334
"space-before-blocks": [2],
3435
"no-multi-spaces": [2],
36+
"no-whitespace-before-property": [2],
37+
"no-unexpected-multiline": [2],
3538
"space-infix-ops": [0, {"int32Hint": false}],
3639
"quotes": [2, "single"],
3740
"dot-notation": [2, {"allowKeywords": false}],
41+
"operator-linebreak": [2, "after"],
3842
"eqeqeq": [2],
3943
"new-cap": [0],
4044
"no-redeclare": [2, {"builtinGlobals": true}],
@@ -44,7 +48,6 @@
4448
"no-use-before-define": [2, "nofunc"],
4549
"no-loop-func": [2],
4650
"no-console": [0],
47-
"no-unexpected-multiline": [2],
4851
"no-unused-labels": [2]
4952
},
5053
}

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@ https://github.com/plotly/plotly.js/compare/vX.Y.Z...master
99

1010
where X.Y.Z is the semver of most recent plotly.js release.
1111

12+
## [1.6.3] -- 2016-03-07
13+
14+
### Fixed
15+
- Argument parsing for vertex and face colors of mesh3d traces is now
16+
functional [#287]
17+
1218

1319
## [1.6.2] -- 2016-03-03
1420

CONTRIBUTING.md

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,15 @@ We use the following [labels](https://github.com/plotly/plotly.js/labels) to tra
2020

2121
| Label | Purpose |
2222
|--------|---------|
23-
| bug | bug report confirmed by a plotly team member |
24-
| enhancement | planned feature or task |
25-
| community | issue left open for community input and pull requests |
26-
| cleanup | source code cleanup resulting in no enhancement for users |
27-
| duplicate | *self-explanatory* |
28-
| wontfix | *self-explanatory* |
23+
| `type: bug` | bug report confirmed by a plotly team member |
24+
| `type: enhancement` | planned feature or task |
25+
| `type: community` | issue left open for community input and pull requests |
26+
| `type: maintenace` | source code cleanup resulting in no enhancement for users |
27+
| `type: duplicate` | *self-explanatory* |
28+
| `type: wontfix` | *self-explanatory* |
29+
| `status: in progress` | PRs that required some intial feedback but not ready to merge |
30+
| `status: reviewable` | PRs that are completed from the author's perspective |
31+
| `status: on hold` | PRs that are put on hold |
2932

3033
### Development
3134

devtools/test_dashboard/buttons.js

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
var Lib = require('@src/lib');
44

5-
var plotlist = document.getElementById('plot-list');
5+
var plotList = document.getElementById('plot-list');
66
var anchor = document.getElementById('embedded-graph');
77
var image = document.getElementById('embedded-image');
88

@@ -14,31 +14,30 @@ anchor.style.height = '600px';
1414
anchor.style.width = '1000px';
1515

1616
function plotButtons(plots, figDir) {
17-
1817
Object.keys(plots).forEach(function(plotname) {
19-
2018
var button = document.createElement('button');
2119

2220
button.style.cssFloat = 'left';
2321
button.style.width = '100px';
2422
button.style.height = '40px';
25-
2623
button.innerHTML = plotname;
2724

28-
plotlist.appendChild(button);
25+
plotList.appendChild(button);
2926

3027
button.addEventListener('click', function() {
31-
3228
var myImage = new Image();
3329
myImage.src = figDir + plotname + '.png';
3430

3531
image.innerHTML = '';
3632
image.appendChild(myImage);
3733

38-
39-
anchor.innerHTML = '';
34+
var currentGraphDiv = Tabs.getGraph();
35+
if(currentGraphDiv) Plotly.purge(currentGraphDiv);
4036

4137
gd = document.createElement('div');
38+
gd.id = 'graph';
39+
40+
anchor.innerHTML = '';
4241
anchor.appendChild(gd);
4342

4443
var plot = plots[plotname];
@@ -58,7 +57,7 @@ function plotButtons(plots, figDir) {
5857
snapshot.innerHTML = 'snapshot';
5958
snapshot.style.background = 'blue';
6059

61-
plotlist.appendChild(snapshot);
60+
plotList.appendChild(snapshot);
6261

6362
snapshot.addEventListener('click', function() {
6463

@@ -111,7 +110,7 @@ function plotButtons(plots, figDir) {
111110
pummelButton.style.marginLeft = '25px';
112111
pummelButton.innerHTML = 'pummel3d';
113112
pummelButton.style.background = 'blue';
114-
plotlist.appendChild(pummelButton);
113+
plotList.appendChild(pummelButton);
115114

116115
var i = 0;
117116
var mock = require('@mocks/gl3d_marker-color.json');
@@ -147,7 +146,7 @@ function plotButtons(plots, figDir) {
147146
scrapeButton.style.marginLeft = '25px';
148147
scrapeButton.innerHTML = 'scrape SVG';
149148
scrapeButton.style.background = 'blue';
150-
plotlist.appendChild(scrapeButton);
149+
plotList.appendChild(scrapeButton);
151150

152151
scrapeButton.addEventListener('click', function() {
153152
Plotly.Snapshot.toSVG(Tabs.get());

devtools/test_dashboard/index.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
getGraph: function() {
2828
return document.getElementById('embedded-graph').children[0];
2929
},
30+
3031
fresh: function() {
3132
var anchor = document.getElementById('embedded-graph'),
3233
graphDiv = Tabs.getGraph();
@@ -37,6 +38,7 @@
3738

3839
return graphDiv;
3940
},
41+
4042
plotMock: function(mockName) {
4143
var mockURL = '../../test/image/mocks/' + mockName + '.json';
4244

dist/plotly-geo-assets.js

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

dist/plotly-with-meta.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
* plotly.js v1.6.2
2+
* plotly.js v1.6.3
33
* Copyright 2012-2016, Plotly, Inc.
44
* All rights reserved.
55
* Licensed under the MIT license
@@ -57537,7 +57537,7 @@ exports.svgAttrs = {
5753757537
var Plotly = require('./plotly');
5753857538

5753957539
// package version injected by `npm run preprocess`
57540-
exports.version = '1.6.2';
57540+
exports.version = '1.6.3';
5754157541

5754257542
// plot api
5754357543
exports.plot = Plotly.plot;
@@ -85077,13 +85077,13 @@ proto.update = function(data) {
8507785077
config.vertexIntensity = data.intensity;
8507885078
config.colormap = parseColorScale(data.colorscale);
8507985079
}
85080-
else if(data.vertexColor) {
85081-
this.color = data.vertexColor[0];
85082-
config.vertexColors = parseColorArray(data.vertexColor);
85080+
else if(data.vertexcolor) {
85081+
this.color = data.vertexcolors[0];
85082+
config.vertexColors = parseColorArray(data.vertexcolor);
8508385083
}
85084-
else if(data.faceColor) {
85085-
this.color = data.faceColor[0];
85086-
config.cellColors = parseColorArray(data.faceColor);
85084+
else if(data.facecolor) {
85085+
this.color = data.facecolor[0];
85086+
config.cellColors = parseColorArray(data.facecolor);
8508785087
}
8508885088
else {
8508985089
this.color = data.color;
@@ -85185,8 +85185,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
8518585185
else {
8518685186
traceOut.showscale = false;
8518785187

85188-
if('vertexColor' in traceIn) coerce('vertexColor');
85189-
else if('faceColor' in traceIn) coerce('faceColor');
85188+
if('vertexcolor' in traceIn) coerce('vertexcolor');
85189+
else if('facecolor' in traceIn) coerce('facecolor');
8519085190
else coerce('color', defaultColor);
8519185191
}
8519285192

dist/plotly.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
* plotly.js v1.6.2
2+
* plotly.js v1.6.3
33
* Copyright 2012-2016, Plotly, Inc.
44
* All rights reserved.
55
* Licensed under the MIT license
@@ -57269,7 +57269,7 @@ exports.svgAttrs = {
5726957269
var Plotly = require('./plotly');
5727057270

5727157271
// package version injected by `npm run preprocess`
57272-
exports.version = '1.6.2';
57272+
exports.version = '1.6.3';
5727357273

5727457274
// plot api
5727557275
exports.plot = Plotly.plot;
@@ -84124,13 +84124,13 @@ proto.update = function(data) {
8412484124
config.vertexIntensity = data.intensity;
8412584125
config.colormap = parseColorScale(data.colorscale);
8412684126
}
84127-
else if(data.vertexColor) {
84128-
this.color = data.vertexColor[0];
84129-
config.vertexColors = parseColorArray(data.vertexColor);
84127+
else if(data.vertexcolor) {
84128+
this.color = data.vertexcolors[0];
84129+
config.vertexColors = parseColorArray(data.vertexcolor);
8413084130
}
84131-
else if(data.faceColor) {
84132-
this.color = data.faceColor[0];
84133-
config.cellColors = parseColorArray(data.faceColor);
84131+
else if(data.facecolor) {
84132+
this.color = data.facecolor[0];
84133+
config.cellColors = parseColorArray(data.facecolor);
8413484134
}
8413584135
else {
8413684136
this.color = data.color;
@@ -84232,8 +84232,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
8423284232
else {
8423384233
traceOut.showscale = false;
8423484234

84235-
if('vertexColor' in traceIn) coerce('vertexColor');
84236-
else if('faceColor' in traceIn) coerce('faceColor');
84235+
if('vertexcolor' in traceIn) coerce('vertexcolor');
84236+
else if('facecolor' in traceIn) coerce('facecolor');
8423784237
else coerce('color', defaultColor);
8423884238
}
8423984239

dist/plotly.min.js

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

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "plotly.js",
3-
"version": "1.6.2",
3+
"version": "1.6.3",
44
"description": "The open source javascript graphing library that powers plotly",
55
"license": "MIT",
66
"main": "./lib/index.js",

src/assets/geo_assets.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@ var saneTopojson = require('sane-topojson');
1212

1313

1414
// package version injected by `npm run preprocess`
15-
exports.version = '1.6.2';
15+
exports.version = '1.6.3';
1616

1717
exports.topojson = saneTopojson;

src/core.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
var Plotly = require('./plotly');
1616

1717
// package version injected by `npm run preprocess`
18-
exports.version = '1.6.2';
18+
exports.version = '1.6.3';
1919

2020
// plot api
2121
exports.plot = Plotly.plot;
@@ -28,6 +28,7 @@ exports.prependTraces = Plotly.prependTraces;
2828
exports.addTraces = Plotly.addTraces;
2929
exports.deleteTraces = Plotly.deleteTraces;
3030
exports.moveTraces = Plotly.moveTraces;
31+
exports.purge = Plotly.purge;
3132
exports.setPlotConfig = require('./plot_api/set_plot_config');
3233
exports.register = Plotly.register;
3334

src/lib/events.js

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ var Events = {
5353
* events.
5454
*/
5555
plotObj.emit = function(event, data) {
56-
if(typeof $ !== 'undefined') {
56+
if(typeof jQuery !== 'undefined') {
5757
$(plotObj).trigger(event, data);
5858
}
5959

@@ -76,7 +76,7 @@ var Events = {
7676
* If Jquery exists run all its handlers for this event and
7777
* collect the return value of the LAST handler function
7878
*/
79-
if(typeof $ !== 'undefined') {
79+
if(typeof jQuery !== 'undefined') {
8080
jQueryHandlerValue = $(plotObj).triggerHandler(event, data);
8181
}
8282

@@ -114,7 +114,19 @@ var Events = {
114114
*/
115115
return jQueryHandlerValue !== undefined ? jQueryHandlerValue :
116116
nodeEventHandlerValue;
117+
},
118+
119+
purge: function(plotObj) {
120+
delete plotObj._ev;
121+
delete plotObj.on;
122+
delete plotObj.once;
123+
delete plotObj.removeListener;
124+
delete plotObj.removeAllListeners;
125+
delete plotObj.emit;
126+
127+
return plotObj;
117128
}
129+
118130
};
119131

120132
module.exports = Events;

src/plot_api/plot_api.js

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2406,6 +2406,39 @@ Plotly.relayout = function relayout(gd, astr, val) {
24062406
});
24072407
};
24082408

2409+
/**
2410+
* Purge a graph container div back to its initial pre-Plotly.plot state
2411+
*
2412+
* @param {string id or DOM element} gd
2413+
* the id or DOM element of the graph container div
2414+
*/
2415+
Plotly.purge = function purge(gd) {
2416+
gd = getGraphDiv(gd);
2417+
2418+
var fullLayout = gd._fullLayout || {},
2419+
fullData = gd._fullData || [];
2420+
2421+
// remove gl contexts
2422+
Plots.cleanPlot([], {}, fullData, fullLayout);
2423+
2424+
// purge properties
2425+
Plots.purge(gd);
2426+
2427+
// purge event emitter methods
2428+
Events.purge(gd);
2429+
2430+
// remove plot container
2431+
if(fullLayout._container) fullLayout._container.remove();
2432+
2433+
delete gd._context;
2434+
delete gd._replotPending;
2435+
delete gd._mouseDownTime;
2436+
delete gd._hmpixcount;
2437+
delete gd._hmlumcount;
2438+
2439+
return gd;
2440+
};
2441+
24092442
/**
24102443
* Reduce all reserved margin objects to a single required margin reservation.
24112444
*
@@ -2505,7 +2538,7 @@ function makePlotFramework(gd) {
25052538
// Make the svg container
25062539
fullLayout._paperdiv = fullLayout._container.selectAll('.svg-container').data([0]);
25072540
fullLayout._paperdiv.enter().append('div')
2508-
.classed('svg-container',true)
2541+
.classed('svg-container', true)
25092542
.style('position','relative');
25102543

25112544
// Initial autosize

0 commit comments

Comments
 (0)