From 82c68a207b29bd19d1b30e809e597267da7a6014 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikl=C3=B3s=20Tusz?= Date: Fri, 6 May 2016 16:28:03 -0400 Subject: [PATCH 01/20] Shapes/Images: Reorganize above/below/subplot layers --- src/components/shapes/index.js | 4 ++-- src/plot_api/plot_api.js | 23 +++++++++++++++++------ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/components/shapes/index.js b/src/components/shapes/index.js index a3eebd52ff9..0e493e7a287 100644 --- a/src/components/shapes/index.js +++ b/src/components/shapes/index.js @@ -98,7 +98,7 @@ shapes.drawAll = function(gd) { // Remove previous shapes before drawing new in shapes in fullLayout.shapes fullLayout._shapeUpperLayer.selectAll('path').remove(); fullLayout._shapeLowerLayer.selectAll('path').remove(); - fullLayout._subplotShapeLayer.selectAll('path').remove(); + fullLayout._shapeSubplotLayer.selectAll('path').remove(); for(var i = 0; i < fullLayout.shapes.length; i++) { shapes.draw(gd, i); @@ -356,7 +356,7 @@ function getShapeLayer(gd, index) { else if(shape.layer === 'below') { shapeLayer = (shape.xref === 'paper' && shape.yref === 'paper') ? gd._fullLayout._shapeLowerLayer : - gd._fullLayout._subplotShapeLayer; + gd._fullLayout._shapeSubplotLayer; } return shapeLayer; diff --git a/src/plot_api/plot_api.js b/src/plot_api/plot_api.js index ab707c30cf2..a0b6b57f1f4 100644 --- a/src/plot_api/plot_api.js +++ b/src/plot_api/plot_api.js @@ -2646,6 +2646,8 @@ function makePlotFramework(gd) { .classed('layer-below', true); fullLayout._shapeLowerLayer = layerBelow.append('g') .classed('shapelayer', true); + fullLayout._imageLowerLayer = layerBelow.append('g') + .classed('imagelayer', true); var subplots = Plotly.Axes.getSubplots(gd); if(subplots.join('') !== Object.keys(gd._fullLayout._plots || {}).join('')) { @@ -2658,8 +2660,9 @@ function makePlotFramework(gd) { fullLayout._ternarylayer = fullLayout._paper.append('g').classed('ternarylayer', true); // shape layers in subplots - fullLayout._subplotShapeLayer = fullLayout._paper - .selectAll('.shapelayer-subplot'); + var layerSubplot = fullLayout._paper.selectAll('.layer-subplot'); + fullLayout._shapeSubplotLayer = layerSubplot.selectAll('.shapelayer'); + fullLayout._imageSubplotLayer = layerSubplot.selectAll('.imagelayer'); // upper shape layer // (only for shapes to be drawn above the whole plot, including subplots) @@ -2667,6 +2670,8 @@ function makePlotFramework(gd) { .classed('layer-above', true); fullLayout._shapeUpperLayer = layerAbove.append('g') .classed('shapelayer', true); + fullLayout._imageUpperLayer = layerAbove.append('g') + .classed('imagelayer', true); // single pie layer for the whole plot fullLayout._pielayer = fullLayout._paper.append('g').classed('pielayer', true); @@ -2797,10 +2802,16 @@ function makeCartesianPlotFramwork(gd, subplots) { // the plot and containers for overlays plotinfo.bg = plotgroup.append('rect') .style('stroke-width', 0); - // shape layer - // (only for shapes to be drawn below a subplot) - plotinfo.shapelayer = plotgroup.append('g') - .classed('shapelayer shapelayer-subplot', true); + + // back layer for shapes and images to + // be drawn below a subplot + var backlayer = plotgroup.append('g') + .classed('layer-subplot', true); + + plotinfo.shapelayer = backlayer.append('g') + .classed('shapelayer', true); + plotinfo.imagelayer = backlayer.append('g') + .classed('imagelayer', true); plotinfo.gridlayer = plotgroup.append('g'); plotinfo.overgrid = plotgroup.append('g'); plotinfo.zerolinelayer = plotgroup.append('g'); From a9d98609c7b0d5bf3b4fdc7266d12afe843fdfc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikl=C3=B3s=20Tusz?= Date: Fri, 6 May 2016 16:30:10 -0400 Subject: [PATCH 02/20] Images: Create image attributes and defaults As well as creating the attributes and defaults, a default argument has been added to `axes.coerceRef`. --- src/components/images/attributes.js | 158 +++++++++++++++++++++++++ src/components/images/defaults.js | 65 ++++++++++ src/components/images/index.js | 17 +++ src/components/rangeslider/defaults.js | 3 +- src/plots/cartesian/axes.js | 4 +- 5 files changed, 243 insertions(+), 4 deletions(-) create mode 100644 src/components/images/attributes.js create mode 100644 src/components/images/defaults.js create mode 100644 src/components/images/index.js diff --git a/src/components/images/attributes.js b/src/components/images/attributes.js new file mode 100644 index 00000000000..647333b4b91 --- /dev/null +++ b/src/components/images/attributes.js @@ -0,0 +1,158 @@ +/** +* Copyright 2012-2016, Plotly, Inc. +* All rights reserved. +* +* This source code is licensed under the MIT license found in the +* LICENSE file in the root directory of this source tree. +*/ + +'use strict'; + +var cartesianConstants = require('../../plots/cartesian/constants'); + + +module.exports = { + _isLinkedToArray: true, + + source: { + valType: 'string', + role: 'info', + description: [ + 'Specifies the URL of the image to be used.', + 'The URL must be accessible from the domain where the', + 'plot code is run, and can be either relative or absolute.' + + ].join(' ') + }, + + layer: { + valType: 'enumerated', + values: ['below', 'above'], + dflt: 'above', + role: 'info', + description: [ + 'Specifies whether images are drawn below or above traces.', + 'When `xref` and `yref` are both set to `paper`,', + 'image is drawn below the entire plot area.' + ].join(' ') + }, + + width: { + valType: 'number', + role: 'info', + dflt: 0, + description: [ + 'Sets the image container width.', + 'The image will be sized based on the `position` value.', + 'When `xref` is set to `paper`, units are sized relative', + 'to the plot width.' + ].join(' ') + }, + + height: { + valType: 'number', + role: 'info', + dflt: 0, + description: [ + 'Sets the image container height.', + 'The image will be sized based on the `position` value.', + 'When `yref` is set to `paper`, units are sized relative', + 'to the plot height.' + ].join(' ') + }, + + sizing: { + valType: 'enumerated', + values: ['fill', 'contain', 'stretch'], + dflt: 'contain', + role: 'info', + description: [ + 'Specifies which dimension of the image to constrain.' + ].join(' ') + }, + + opacity: { + valType: 'number', + role: 'info', + min: 0, + max: 1, + dflt: 1, + description: 'Sets the opacity of the image.' + }, + + x: { + valType: 'number', + role: 'info', + dflt: 0, + description: [ + 'Sets the image\'s x position.', + 'When `xref` is set to `paper`, units are sized relative', + 'to the plot height.', + 'See `xref` for more info' + ].join(' ') + }, + + y: { + valType: 'number', + role: 'info', + dflt: 0, + description: [ + 'Sets the image\'s y position.', + 'When `yref` is set to `paper`, units are sized relative', + 'to the plot height.', + 'See `yref` for more info' + ].join(' ') + }, + + xanchor: { + valType: 'enumerated', + values: ['left', 'center', 'right'], + dflt: 'left', + role: 'info', + description: 'Sets the anchor for the x position' + }, + + yanchor: { + valType: 'enumerated', + values: ['top', 'middle', 'bottom'], + dflt: 'top', + role: 'info', + description: 'Sets the anchor for the y position.' + }, + + xref: { + valType: 'enumerated', + values: [ + 'paper', + cartesianConstants.idRegex.x.toString() + ], + dflt: 'paper', + role: 'info', + description: [ + 'Sets the images\'s x coordinate axis.', + 'If set to a x axis id (e.g. *x* or *x2*), the `x` position', + 'refers to an x data coordinate', + 'If set to *paper*, the `x` position refers to the distance from', + 'the left of plot in normalized coordinates', + 'where *0* (*1*) corresponds to the left (right).' + ].join(' ') + }, + + yref: { + valType: 'enumerated', + values: [ + 'paper', + cartesianConstants.idRegex.y.toString() + ], + dflt: 'paper', + role: 'info', + description: [ + 'Sets the images\'s y coordinate axis.', + 'If set to a y axis id (e.g. *y* or *y2*), the `y` position', + 'refers to a y data coordinate.', + 'If set to *paper*, the `y` position refers to the distance from', + 'the bottom of the plot in normalized coordinates', + 'where *0* (*1*) corresponds to the bottom (top).' + ].join(' ') + } +}; diff --git a/src/components/images/defaults.js b/src/components/images/defaults.js new file mode 100644 index 00000000000..8e858f178ed --- /dev/null +++ b/src/components/images/defaults.js @@ -0,0 +1,65 @@ +/** +* Copyright 2012-2016, Plotly, Inc. +* All rights reserved. +* +* This source code is licensed under the MIT license found in the +* LICENSE file in the root directory of this source tree. +*/ + +'use strict'; + +var Axes = require('../../plots/cartesian/axes'); +var Lib = require('../../lib'); +var attributes = require('./attributes'); + + +module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) { + + if(!layoutIn.images) return; + + + var containerIn = Array.isArray(layoutIn.images) ? + layoutIn.images : [layoutIn.images], + containerOut = layoutOut.images = []; + + + for(var i = 0; i < containerIn.length; i++) { + var image = containerIn[i]; + + if(!image.source) continue; + + var defaulted = imageDefaults(containerIn[i] || {}, containerOut[i] || {}, layoutOut); + containerOut.push(defaulted); + } +}; + + +function imageDefaults(imageIn, imageOut, fullLayout) { + + imageOut = imageOut || {}; + + function coerce(attr, dflt) { + return Lib.coerce(imageIn, imageOut, attributes, attr, dflt); + } + + coerce('source'); + coerce('layer'); + coerce('x'); + coerce('y'); + coerce('xanchor'); + coerce('yanchor'); + coerce('width'); + coerce('height'); + coerce('sizing'); + coerce('opacity'); + + for(var i = 0; i < 2; i++) { + var tdMock = { _fullLayout: fullLayout }, + axLetter = ['x', 'y'][i]; + + // 'paper' is the fallback axref + Axes.coerceRef(imageIn, imageOut, tdMock, axLetter, 'paper'); + } + + return imageOut; +} diff --git a/src/components/images/index.js b/src/components/images/index.js new file mode 100644 index 00000000000..7e750313b9e --- /dev/null +++ b/src/components/images/index.js @@ -0,0 +1,17 @@ +/** +* Copyright 2012-2016, Plotly, Inc. +* All rights reserved. +* +* This source code is licensed under the MIT license found in the +* LICENSE file in the root directory of this source tree. +*/ + +'use strict'; + + +var supplyLayoutDefaults = require('./defaults'); + + +module.exports = { + supplyLayoutDefaults: supplyLayoutDefaults +}; diff --git a/src/components/rangeslider/defaults.js b/src/components/rangeslider/defaults.js index f0d0efeebd7..0095c7b243e 100644 --- a/src/components/rangeslider/defaults.js +++ b/src/components/rangeslider/defaults.js @@ -21,8 +21,7 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, axName, coun containerOut = layoutOut[axName].rangeslider = {}; function coerce(attr, dflt) { - return Lib.coerce(containerIn, containerOut, - attributes, attr, dflt); + return Lib.coerce(containerIn, containerOut, attributes, attr, dflt); } coerce('bgcolor'); diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index 42f898387e7..461bb077744 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -38,7 +38,7 @@ axes.getFromTrace = axisIds.getFromTrace; // find the list of possible axes to reference with an xref or yref attribute // and coerce it to that list -axes.coerceRef = function(containerIn, containerOut, gd, axLetter) { +axes.coerceRef = function(containerIn, containerOut, gd, axLetter, dflt) { var axlist = gd._fullLayout._has('gl2d') ? [] : axes.listIds(gd, axLetter), refAttr = axLetter + 'ref', attrDef = {}; @@ -48,7 +48,7 @@ axes.coerceRef = function(containerIn, containerOut, gd, axLetter) { attrDef[refAttr] = { valType: 'enumerated', values: axlist.concat(['paper']), - dflt: axlist[0] || 'paper' + dflt: dflt || axlist[0] || 'paper' }; // xref, yref From 28a44b3625ad8b978ea6f83e8ab263b0f5b58698 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikl=C3=B3s=20Tusz?= Date: Fri, 6 May 2016 16:30:50 -0400 Subject: [PATCH 03/20] Images: Add draw method --- src/components/images/draw.js | 125 +++++++++++++++++++++++++++++++++ src/components/images/index.js | 2 + 2 files changed, 127 insertions(+) create mode 100644 src/components/images/draw.js diff --git a/src/components/images/draw.js b/src/components/images/draw.js new file mode 100644 index 00000000000..af59cbd8828 --- /dev/null +++ b/src/components/images/draw.js @@ -0,0 +1,125 @@ +/** +* Copyright 2012-2016, Plotly, Inc. +* All rights reserved. +* +* This source code is licensed under the MIT license found in the +* LICENSE file in the root directory of this source tree. +*/ + +'use strict'; + +var d3 = require('d3'); +var Drawing = require('../drawing'); +var Axes = require('../../plots/cartesian/axes'); + +module.exports = function draw(gd) { + + var fullLayout = gd._fullLayout, + imageDataAbove = [], + imageDataSubplot = [], + imageDataBelow = []; + + if(!fullLayout.images) return; + + + // Sort into top, subplot, and bottom layers + for(var i = 0; i < fullLayout.images.length; i++) { + var img = fullLayout.images[i]; + + if(img.layer === 'below' && img.xref !== 'paper' && img.yref !== 'paper') { + imageDataSubplot.push(img); + } else if(img.layer === 'above') { + imageDataAbove.push(img); + } else { + imageDataBelow.push(img); + } + } + + + var anchors = { + x: { + left: { sizing: 'xMin', offset: 0 }, + center: { sizing: 'xMid', offset: -1 / 2 }, + right: { sizing: 'xMax', offset: -1 } + }, + y: { + top: { sizing: 'YMin', offset: 0 }, + middle: { sizing: 'YMid', offset: -1 / 2 }, + bottom: { sizing: 'YMax', offset: -1 } + } + }; + + + function applyAttributes(d) { + + var thisImage = d3.select(this); + + // Axes if specified + var xref = Axes.getFromId(gd, d.xref), + yref = Axes.getFromId(gd, d.yref); + + var size = fullLayout._size, + width = xref ? Math.abs(xref.l2p(d.width) - xref.l2p(0)) : d.width * size.w, + height = yref ? Math.abs(yref.l2p(d.height) - yref.l2p(0)) : d.width * size.h; + + // Offsets for anchor positioning + var xOffset = width * anchors.x[d.xanchor].offset + size.l, + yOffset = height * anchors.y[d.yanchor].offset + size.t; + + var sizing = anchors.x[d.xanchor].sizing + anchors.y[d.yanchor].sizing; + + // Final positions + var xPos = (xref ? xref.l2p(d.x) : d.x * width) + xOffset, + yPos = (yref ? yref.l2p(d.y) : -d.y * width) + yOffset; + + + // Construct the proper aspectRatio attribute + switch(d.sizing) { + case 'fill': + sizing += ' slice'; + break; + + case 'stretch': + sizing = 'none'; + break; + } + + thisImage.attr({ + href: d.source, + x: xPos, + y: yPos, + width: width, + height: height, + preserveAspectRatio: sizing, + opacity: d.opacity + }); + + + // Set proper clipping on images + var xId = xref ? xref._id : '', + yId = yref ? yref._id : '', + clipAxes = xId + yId; + + thisImage.call(Drawing.setClipUrl, 'clip' + fullLayout._uid + clipAxes); + } + + + var imagesBelow = fullLayout._imageLowerLayer.selectAll('image') + .data(imageDataBelow), + imagesSubplot = fullLayout._imageSubplotLayer.selectAll('image') + .data(imageDataSubplot), + imagesAbove = fullLayout._imageUpperLayer.selectAll('image') + .data(imageDataAbove); + + imagesBelow.enter().append('image'); + imagesSubplot.enter().append('image'); + imagesAbove.enter().append('image'); + + imagesBelow.exit().remove(); + imagesSubplot.exit().remove(); + imagesAbove.exit().remove(); + + imagesBelow.each(applyAttributes); + imagesSubplot.each(applyAttributes); + imagesAbove.each(applyAttributes); +}; diff --git a/src/components/images/index.js b/src/components/images/index.js index 7e750313b9e..9ea6816a08a 100644 --- a/src/components/images/index.js +++ b/src/components/images/index.js @@ -9,9 +9,11 @@ 'use strict'; +var draw = require('./draw'); var supplyLayoutDefaults = require('./defaults'); module.exports = { + draw: draw, supplyLayoutDefaults: supplyLayoutDefaults }; From c2636ba059b2973cde9654660d28510e877b9c21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikl=C3=B3s=20Tusz?= Date: Fri, 6 May 2016 16:31:34 -0400 Subject: [PATCH 04/20] Images: Call Images.draw in plot step and while dragging --- src/plot_api/plot_api.js | 2 ++ src/plotly.js | 1 + src/plots/cartesian/dragbox.js | 1 + src/plots/plots.js | 2 +- src/traces/heatmap/style.js | 2 +- 5 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/plot_api/plot_api.js b/src/plot_api/plot_api.js index a0b6b57f1f4..7a27bae9e3d 100644 --- a/src/plot_api/plot_api.js +++ b/src/plot_api/plot_api.js @@ -24,6 +24,7 @@ var Fx = require('../plots/cartesian/graph_interact'); var Color = require('../components/color'); var Drawing = require('../components/drawing'); var ErrorBars = require('../components/errorbars'); +var Images = require('../components/images'); var Legend = require('../components/legend'); var RangeSlider = require('../components/rangeslider'); var RangeSelector = require('../components/rangeselector'); @@ -301,6 +302,7 @@ Plotly.plot = function(gd, data, layout, config) { // be set to false before these will work properly. function finalDraw() { Shapes.drawAll(gd); + Images.draw(gd); Plotly.Annotations.drawAll(gd); Legend.draw(gd); RangeSlider.draw(gd); diff --git a/src/plotly.js b/src/plotly.js index 3ae37158882..5ceb2019839 100644 --- a/src/plotly.js +++ b/src/plotly.js @@ -49,6 +49,7 @@ exports.ErrorBars = require('./components/errorbars'); exports.Annotations = require('./components/annotations'); exports.Shapes = require('./components/shapes'); exports.Legend = require('./components/legend'); +exports.Images = require('./components/images'); exports.ModeBar = require('./components/modebar'); exports.register = function register(_modules) { diff --git a/src/plots/cartesian/dragbox.js b/src/plots/cartesian/dragbox.js index a539e3d7e1b..6dc13c6ad01 100644 --- a/src/plots/cartesian/dragbox.js +++ b/src/plots/cartesian/dragbox.js @@ -520,6 +520,7 @@ module.exports = function dragBox(gd, plotinfo, x, y, w, h, ns, ew) { redrawObjs(fullLayout.annotations || [], Plotly.Annotations); redrawObjs(fullLayout.shapes || [], Plotly.Shapes); + redrawObjs(fullLayout.images || [], Plotly.Images); } function doubleClick() { diff --git a/src/plots/plots.js b/src/plots/plots.js index f71e4733d72..2c2d365f094 100644 --- a/src/plots/plots.js +++ b/src/plots/plots.js @@ -781,7 +781,7 @@ plots.supplyLayoutModuleDefaults = function(layoutIn, layoutOut, fullData) { // TODO register these // Legend must come after traces (e.g. it depends on 'barmode') - var moduleLayoutDefaults = ['Fx', 'Annotations', 'Shapes', 'Legend']; + var moduleLayoutDefaults = ['Fx', 'Annotations', 'Shapes', 'Legend', 'Images']; for(i = 0; i < moduleLayoutDefaults.length; i++) { _module = moduleLayoutDefaults[i]; diff --git a/src/traces/heatmap/style.js b/src/traces/heatmap/style.js index 2a466860377..2d1fdb3f431 100644 --- a/src/traces/heatmap/style.js +++ b/src/traces/heatmap/style.js @@ -12,7 +12,7 @@ var d3 = require('d3'); module.exports = function style(gd) { - d3.select(gd).selectAll('image') + d3.select(gd).selectAll('.hm image') .style('opacity', function(d) { return d.trace.opacity; }); From 7f85775c9b0fad1e2a9e1770631ec101b7143510 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikl=C3=B3s=20Tusz?= Date: Fri, 6 May 2016 17:21:24 -0400 Subject: [PATCH 05/20] Images: Add mock --- test/image/mocks/layout_image.json | 60 ++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 test/image/mocks/layout_image.json diff --git a/test/image/mocks/layout_image.json b/test/image/mocks/layout_image.json new file mode 100644 index 00000000000..ee6ada23d03 --- /dev/null +++ b/test/image/mocks/layout_image.json @@ -0,0 +1,60 @@ +{ + "data": [ + { + "x": [1,2,3], + "y": [1,2,3] + } + ], + "layout": { + "images": [ + { + "source": "http://www.placekitten.com/100", + "xref": "paper", + "yref": "paper", + "x": 0, + "y": 0, + "width": 0.2, + "height": 0.2, + "xanchor": "right", + "yanchor": "bottom" + }, + { + "source": "http://www.placekitten.com/300", + "xref": "x", + "yref": "y", + "x": 2.5, + "y": 2, + "width": 1, + "height": 1, + "xanchor": "center", + "yanchor": "middle", + "layer": "below" + }, + { + "source": "http://www.placekitten.com/400", + "xref": "x", + "yref": "y", + "x": 1, + "y": 3, + "width": 2, + "height": 2, + "sizing": "stretch", + "opacity": 0.4 + }, + { + "source": "http://www.placekitten.com/300", + "xref": "x", + "yref": "paper", + "x": 2.75, + "y": 0, + "width": 0.5, + "height": 1, + "opacity": 1, + "xanchor": "left", + "yanchor": "top" + } + ], + "width": 800, + "height": 500 + } +} From dd2fed7b8091080f7413a9e5ecec1f26d1bb8d0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikl=C3=B3s=20Tusz?= Date: Mon, 9 May 2016 12:52:17 -0400 Subject: [PATCH 06/20] Images: Add jasmine tests --- test/jasmine/tests/layout_images_test.js | 217 +++++++++++++++++++++++ 1 file changed, 217 insertions(+) create mode 100644 test/jasmine/tests/layout_images_test.js diff --git a/test/jasmine/tests/layout_images_test.js b/test/jasmine/tests/layout_images_test.js new file mode 100644 index 00000000000..bbb5fb05d9f --- /dev/null +++ b/test/jasmine/tests/layout_images_test.js @@ -0,0 +1,217 @@ +var Plotly = require('@lib/index'); +var Images = require('@src/components/images'); +var createGraphDiv = require('../assets/create_graph_div'); +var destroyGraphDiv = require('../assets/destroy_graph_div'); +var mouseEvent = require('../assets/mouse_event'); + +describe('Layout images', function() { + + describe('supplyLayoutDefaults', function() { + + var layoutIn, + layoutOut; + + beforeEach(function() { + layoutIn = { images: [] }; + layoutOut = {}; + }); + + it('should reject when there is no `source`', function() { + layoutIn.images[0] = { opacity: 0.5, width: 0.2, height: 0.2 }; + + Images.supplyLayoutDefaults(layoutIn, layoutOut); + + expect(layoutOut.images.length).toEqual(0); + }); + + it('should coerce the correct defaults', function() { + layoutIn.images[0] = { source: 'http://www.someimagesource.com' }; + + var expected = { + source: 'http://www.someimagesource.com', + layer: 'above', + x: 0, + y: 0, + xanchor: 'left', + yanchor: 'top', + width: 0, + height: 0, + sizing: 'contain', + opacity: 1, + xref: 'paper', + yref: 'paper' + }; + + Images.supplyLayoutDefaults(layoutIn, layoutOut); + + expect(layoutOut.images[0]).toEqual(expected); + }); + + }); + + describe('drawing', function() { + + var gd, + data = [{ x: [1,2,3], y: [1,2,3] }]; + + beforeEach(function() { + gd = createGraphDiv(); + }); + + afterEach(destroyGraphDiv); + + it('should draw images on the right layers', function() { + + var layer; + + Plotly.plot(gd, data, { images: [{ + source: 'imageabove', + layer: 'above' + }]}); + + layer = gd._fullLayout._imageUpperLayer; + expect(layer.length).toBe(1); + + destroyGraphDiv(); + gd = createGraphDiv(); + Plotly.plot(gd, data, { images: [{ + source: 'imagebelow', + layer: 'below' + }]}); + + layer = gd._fullLayout._imageLowerLayer; + expect(layer.length).toBe(1); + + destroyGraphDiv(); + gd = createGraphDiv(); + Plotly.plot(gd, data, { images: [{ + source: 'imagesubplot', + layer: 'below', + xref: 'x', + yref: 'y' + }]}); + + layer = gd._fullLayout._imageSubplotLayer; + expect(layer.length).toBe(1); + }); + + describe('with anchors and sizing', function() { + + function testAspectRatio(xAnchor, yAnchor, sizing, expected) { + var anchorName = xAnchor + yAnchor; + Plotly.plot(gd, data, { images: [{ + source: anchorName, + xanchor: xAnchor, + yanchor: yAnchor, + sizing: sizing + }]}); + + var image = Plotly.d3.select('[href="' + anchorName + '"]'), + parValue = image.attr('preserveAspectRatio'); + + expect(parValue).toBe(expected); + } + + it('should work for center middle', function() { + testAspectRatio('center', 'middle', undefined, 'xMidYMid'); + }); + + it('should work for left top', function() { + testAspectRatio('left', 'top', undefined, 'xMinYMin'); + }); + + it('should work for right bottom', function() { + testAspectRatio('right', 'bottom', undefined, 'xMaxYMax'); + }); + + it('should work for stretch sizing', function() { + testAspectRatio('middle', 'center', 'stretch', 'none'); + }); + + it('should work for fill sizing', function() { + testAspectRatio('invalid', 'invalid', 'fill', 'xMinYMin slice'); + }); + + }); + + }); + + describe('when the plot is dragged', function() { + var gd, + data = [{ x: [1,2,3], y: [1,2,3] }]; + + beforeEach(function() { + gd = createGraphDiv(); + }); + + afterEach(destroyGraphDiv); + + it('should not move when referencing the paper', function(done) { + var source = 'http://www.placekitten.com/200', + image = { + source: source, + xref: 'paper', + yref: 'paper', + x: 0, + y: 0, + width: 0.1, + height: 0.1 + }; + + Plotly.plot(gd, data, { + images: [image], + dragmode: 'pan', + width: 600, + height: 400 + }).then(function() { + var img = Plotly.d3.select('[href="' + source + '"]').node(), + oldPos = img.getBoundingClientRect(); + + mouseEvent('mousedown', 250, 200); + mouseEvent('mousemove', 300, 250); + + var newPos = img.getBoundingClientRect(); + + expect(newPos.left).toBe(oldPos.left); + expect(newPos.top).toBe(oldPos.top); + + mouseEvent('mouseup', 300, 250); + }).then(done); + }); + + it('should move when referencing axes', function(done) { + var source = 'http://www.placekitten.com/200', + image = { + source: source, + xref: 'x', + yref: 'y', + x: 2, + y: 2, + width: 1, + height: 1 + }; + + Plotly.plot(gd, data, { + images: [image], + dragmode: 'pan', + width: 600, + height: 400 + }).then(function() { + var img = Plotly.d3.select('[href="' + source + '"]').node(), + oldPos = img.getBoundingClientRect(); + + mouseEvent('mousedown', 250, 200); + mouseEvent('mousemove', 300, 250); + + var newPos = img.getBoundingClientRect(); + + expect(newPos.left).toBe(oldPos.left + 50); + expect(newPos.top).toBe(oldPos.top + 50); + + mouseEvent('mouseup', 300, 250); + }).then(done); + }); + + }); + +}); From 0059c983db857fb900210b7e9945f657ac9efec0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikl=C3=B3s=20Tusz?= Date: Mon, 9 May 2016 17:13:46 +0000 Subject: [PATCH 07/20] Images: Add baseline test images --- test/image/baselines/layout_image.png | Bin 0 -> 25135 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 test/image/baselines/layout_image.png diff --git a/test/image/baselines/layout_image.png b/test/image/baselines/layout_image.png new file mode 100644 index 0000000000000000000000000000000000000000..6f9bf42d0f671b80512db6ae2074fa7a78ef7343 GIT binary patch literal 25135 zcmeFZc|6qX`^Vo*Q-+EeiR^DnC_=~*F|ubVvXnL1_v||(vSugQk1U1k*|&)76xp}3 zMwaYr{O&oOPIXS__x<w3Ok*Bx+ELFyC%1;LRcM^4E|iz^*D zauhmp1h$Sm4*sVRBja@B2y{e7TvXXfd$AfnN=qfS^iWkPmUT@?O$CmRkgg}WmUR=R zXikArL@7g=M51wzbqD=<&~tc9Y3K5<{+^ML?%3jYQOkWwi=*ttoHh z6a{IrT#y-cT@u(^_?k4E+c@8Av*|IuwPSIKXg0z11O+7}-M{xf< zfgnJkPDGuD{rsQEvv4F55BB{#e||k*@(8TJH}2YB$Nlva@OtuZzw`YkU!XCV7bzL2 zUrvL?-ar29Y0VHQl-cw1h+obMK?%Qn#=N3{AsQ%52}J+CT-<4pNTXjqqyBek-=F@U z5BYyj?SEtK#}oM94E-fo{4aR?5@P=sa{oWDP(A&0(tNDy&J~9RmWK}?24>ugD#JG) ztxy>%v0$aXV&`8;vd2oFZ!ye!o`r?;u>IpvFLV5bk@8y(i$mwMD(qSu@cTtE4$ET~ zhfA$uo<5~FW}(AkS@5~e9)&5AWHc(GP(k@;qOV~{9-3H_AR6e+CDKtS30)5%0{Byw zTL^K*C!|uM7`A#4T8by+Vw#Ig`X3PQW};{QBu=m`>5AbLmV6hd4l zV+5ucb^f2n^-QoJ{UrthuhT(+^;3lYHJoU0zF&^xWx9qjzuBjD6kOtYM+}KUAUNMI z$GzkyfZs!xJXOM7V)@ah9CEnx{e0Xnx7JFHl8B`T=lkWjUv6#b|2L1MIGeYn`*M7m z`8p(VE8Ud@F?D1I&-0Jk*(BGgMlu~9wNo@gw{xpjudjJ(?L!cI#)QWWr2igy`2Zb! z;@*X&Egx)Ia=00_$Kk=9)q#cdjGQrv#pySBH0(MQ+^>px=a{A7$YvNeN2^jb<3=(& zbFy2Z-KV#rG|p4#SOMFN{ry>yE_6|18yY2;P^=<~d3ny%hz8L>Xk?*+LRkd75$vMX z&W)x_cFDUFj=46r-No@n}KV3ASiOOqZ+ z0s;a}lK^2M2$c~3p&eo5M}#Om_xA1EyX?~=`m&Ec!{K%1Cg$c*B^JYQ1U!fMiQ5)c z?48=&Mtesce(g7>=KAJ$`8ilFTnMyv-Ed`q?nqYYzCOOwVdcS)o}O+q<~(bldW=J| zd=>v7SbuMGaR;xG)yt{7DTG?EotA#M*lbp&>E#^U>%$0Qf?}Wh&(ov!tqi}Yfv*&4 z)!UzE%=h@rUOpM^Qoh)@L*KoslO^oAfzS2A=$Uv62`MR)`uNraQkoS%_jbWG_R0k= ze8kify^wIT+;YhZ$K@scC7}n?`fQzijSROtrKa?~fBqO{>}^)M5Y;+=WoMjB#B@Hj zKyixuhJC^%%diobrET%OG^YauDvXW%_~F}=+LE2~cr z>I@2lu{pUiV%rrxey~~E{p?0EmD(Fm0XVUUUho+dDme3v$mt&+e3MOf-YnXT1Rt6g z)ald;Du!H~i{9zlp$_}~1N;PV>gdjwAG zOJRlzvrG1pFe|;jBhT>?`{k2Cr2fcTn!ShK*iV9dAhgJ#K|ocfItD91YABxn5mFtV zD}Rm4S>4eoCJAji%#jN@+r3M+2SJ1n$rV|V(&CWTz;T#0-LXR#3}(Nr{b2|iMW*y6 z4-e5$+rBzi=Fm$jurfoYVZJg|8`JVcG$*KO>>*NG_2%W92a|i#TrPK)L?HkF<7yTDcwaRgKh;+2Q7$oU zlq)1kxHNv*P6{b)Y}d&yj!6h++IoWu8;LErhJbw}@d2xhPs$q#g!nAEljES|PHRqY zhp*uBfG$^hmAK^k#a35i1f!Ktrv(PHiD5Ws?*#D%YRzpAQ*ynxaB4ZkqmrWP1#ee}Kns2ZBk#)qi$_>S zU*X+)r1ZL6Pd)=Y!Z#{484U|aGNEt~$L!1P6z|%vZjAGhg$Aw?$115_I9loW$ejhj z=+Mx20)qO&o77OSfY6+oL^P^n?hPL$oS0UlLy!UTNEb}C%t^4_TQ`*V-11RcvvID? zT>k4l`$QwmAi#khvLB9DwB~^=Dp$pd`ff?RccWp4Y;&M75c`@U??& z)1q3}xmhV`i8}%7?DKcsk%)#Xs{<$Kp#p{yHBhiOsoy$>5Wf|-X()rH7UbCd8zW{zT`?`x)R9+DyWBK3K-c?pszIG0USp znnE7y(PH{GcLGRC&P!)xQf1MDV6i%-glLHTqtN6uti_kO-|g`cczrBV>!5xb)ohKEdv>~j`=e$|7-|CAGN;=qMjG(sVNK=5U5|V zDT?Wic2w@6hZMu*`h}6wRn8(pW&xTTF@qg}`%{lzPYIs(YtrDK8AXRZfidS_g-0A& zFS||;S%>#lbHJYpj+bSKVJ7IaU3CzQNp7@G?&13%>I6D?4+qtVV%C^X20i;@S__S8 zdv!5N48w*gQGvq>B-GWY!6Z&9$q>buhxe)A!2)=@_Keu0XodG3isU^#`p~N#dVZ1` zEFVWvVLnIwQ-t8eN8hKFh+`t?mmReb4a@rx^E5D-z^ZY3beQpKrO_LB`BJ!JoP|Tr zpj0zoNZ&acS3GgdQvp8q#Ru53D9NO12y%wY&DkIr)9Yphc;OMuucFwcFsmmHx_Zc( zH$pFyg~rzktJXNY58LN;aJvkjaKg|HiD9l`Z0+&k6Q*32TMw~iiJ{q}bWkqSq=ODp zy3B3KEnVAVe|w~T;`MRInDYkbR(n^xUt4?{yntvZdR1sl25W&waKu1R4db+GGSXke zdAl3TP+29*jR5S_ETV6gwLumKuLIIp_^cZ_X>q;{rsevkR}tUljiP6AF4sn?lp=3%4`cg2P(ICqz&W~_a~Ou zxX7rlRy~tD&k=o#i1O~Gb6X&DUNVTV0s*`RL9HH&4$YfMR;GNhX{QqL}iiwcys~-_u`J}zb?^IQn|%^xYl)}VbaHY?>Y#Eh{Kq!1AOr8 z6!89|#_48(K$^reVLg0;)<7E1@yY{1nz}?H;hfVLjJna(@EN4PRRHxLIzQI(zssX; zMkt$aISiL!eU)9~_VIQUeBdbb!13y~{*5EBmZWG7HF_{gq9u}%(xhQ!X~#e&A%^}d zljw#ZR$fa!N1=l+HWo}@J`BHjU{y>|Ga7hf31np>vE?;znDx~Zs$DUR4Yo0z9AsmD zbbn=I#-w2elqIo(G+u5CUlFzA==~6>FRnCh_28Q8i)`)B;l?)I?lmyb^#UM>>H#PC zNzV7TQx!3!dBcV^3R@v28?jh#9kyh!T21=LgX!CV?4vJm zzbiM&gp{7A57obmU?hH&IV|pteV;Q%AKhDQ)Ai_K?0(G^k9_Cy{rtMoTcD`)LW81m zu@8e;SPdzrfD^N77soR|rm4a9oCrqMDpS6#I~Za0^1-Tc>+yE*cFm+tU8X}X%pAGbFjf97u(XA#1yzc0qBU~OGq(67v z9jq-+m*xIrIyFkbVvFxr?_3#Wo?&YXD>GIqK!?&@6}*!smiZNs`SnClZvVDiFJpxA zIBqkm^cJsfIX*T*B9kB?4~e;Ro=wU{x=-_2s^I^rx;H$byOSI7+0S4m!~9HGPJZ&h{_6OAAzh5D6eQ zNS`%*A)|!J=+e>CX7^mGW?C`sFL@<=0_53EWF zgsX$DG)H}K6l#@C7t^H->QTJF4xX&0e&jG2OeVyADjE&avy6KnB|dXWN|+H&EYPiN zel{KZBaqZR(hG(Ff=ZDxZB)%Y{6q2 zvpz>3$sFBW%1pSGboA&Hkh)reV~D`YEu0o*5DMzzKgwQ^gD8IVdlWB3ht<~9G>@z} zdG0VBH5ad?Ukhp4IgJW^nFImAwE7<}TObTO!pDsYRo^k5Htcy<_qCE@g@0>6msBt< zDhLd5vRf^A%m_vi4}}~_OhVx6ctaG*>ZwhZBBCLazskf=2ab!PN_Vta?Xydt2uKnw z7o_yygdu!~+FmaM;g1R#iQwEr?M zZ)>t48?WcZ;rwbDq2rE`CqgJMJPVnNvE-KZYv9kaJuI6biqgH(dlJE%KI{lZwAfQyYhyYD)ernuWI8PK}Wvk z_a^pWL@{Uc@dY#$oU3l94($qEI1j+G;w5IW0lHTVw;lM0UqqO~2J>~j!$UvhzA3Yw zES&J@6qs$cC>>>T-(7E+cZmnsf!E}7=0ohKmhKrwq`&;o!TX^S+fZ~Uh)I2xgC-Or zxi3q>BG}yGw;p5ef!C01GWY&_kWgZU>S+7&syEf~$5x*3Ti@$z09S8bzSb$2{`@)1 z=gTDkKzyq&-bFvlF+rg;(!M?~GH9~Qj8o+R%T}T8FniB>TDUt%PMAXurl^S!4WU9> zpNV1C7sL1WWWb#8{7|t}@tH9!Kqivua%!2|j?LP0mHTS?9dVau^1O+JZ$BXWMC0@U z=Db+k-(GsJd|MQwDcATl35D9?wkZ%pG&CwNY`wG|W{f%P(($W!|pz^D3YaM*?l~k;1Q9@hd z-@O32QIwWtqVV%3<2BV(E}v3t=F(%X=V@0b2;n3BBMbP)N#GN1;tIU}Sbp-L;*36v z(eo<3_A}PmIfC&u=*6|vU62z_<1HSd4G<0L;=maIWliwBPE*3HHxBTi;ZH9QI?Z0g zOiX9nJ0ir*3h|Q6I%cSq?%ZO&Wj1fnw8XT+KNp4(x<0*)uGVFO!NMlzyBjx*EgTq%ru&)|S9-nErE0S9@%nAh)CE@!Ob1KLwB zvNA6_3Qvt{66hdEfI-j8AB2_=*zaQhjIiXLLd$sPf_+>rTf4{M zN5sPsLo2}MxH3?Q4}ZEh(r}p?PE0m9wJCv#(4%!WKrq^*We%WVG7|0KL|`U{ybm}< zmOE-%bA2m!?gZD@{m%oUfc((w`E52=O5uoA=ExD)J2JuFoj$`Kq_g)tguX1PiJ(Kd zn}~SFP3^ZoEQOy6!ixKHsZi2EyAzWCPVBDKC)Ao2fy{R-_5}A)_r+#9kl%^nIRv>$ zf4{zWWZeHgK_Tp0-0eA}-I%Coj2R`UiZ)F!#i=UG%_mQ}yrVrlE^- z_TsQHSRLy4NR5v3Z#_u?R8E<2UX5h$CQ^FAUxgH;gN;Bh`DbRaPhh*$eF|KipV7q@ z9*;2}T^trmcdxunc^o)E)K%yZ;wlM-XaAiOOh`SkCAH$Lom>H8K&)@=RqHaa!cL4O z<`4n4A(i_SfT2%d#6{PXsX`xXwthGst~{zjAf+p zia7;A+HV|QW&EZL*U;^Jp<&iAIal5$uV+EfAY^#PEpZ8JNu6i{C@T{|9)&2TDv&kX z5FPe{bH^GDpO8|>wGY6SJ@%*l3PF}r>!ynonJ;o9XU8;jDK406+|_0yqA8vqF82PL zPgNNsVJq|*331{WoBHX^MsQC%Wkb~8VFY7**UM1VctM)3E)5fkxtjxTMpmA)aD;1X z4KaU*RFigkNdKM{A5%gY{=<$A38a5~dD++*_=L+f%S}H3sbn|&vO)BY5x#9e@oA(c zr+gUQEEU?h7-4e3FAFJ6m|w;NnAAJRv%i_tqntW!p3$Ii0B|tAUV@sSV>ARK1ajGz z!*Vpes4$@q=}thQ<8b@;Yrn_b?pagX?cc<@*8k+es9>>K#U#kvwTAW>Xk1O`AcxN2 zk_$-x67e0nYbpWsAT+(?Jqf>esyOQ!KvdSkdrJhMz=|d>Hj_{JP#uyXm2*8!ud-x? zG}PJ=!6;c4SSpEGf7teKWlma1_h2${dS-gHe?Gn;^@buI19jb`>f%sIz_aI#091XK zJ$F`slK4+X&p5=H?B*J)tkT~Sf1*D&c+c@fL+adTyW!&^^C?r_KtSzYJ&W`=_(0l9 z2a!U<7rd|o^f}pt@TaUdGrqihta3vQbR zfLb_2Z+;XOfHLgXpo3(XKNx|Wt7{};i2~Mg(F;$Ts3BE#=Hj?M>0^-go-sIQb71}2 zcDQ*BoU`kw+;evXBi)xvj{)lOF>^Homv2qIfkIIW3?;!~Eg{=q^DahY&8zR+pEfMI zs}J(t=e>NP)Q?Axw}J{f>X@ks6{3OIILH7eI#05LL|^{)>;clhQ*$zj04Bis(bb5J zr*=}Y(ln_2KB&XNGq9q%%ClsgFh&crzCvRZFNV_@z)%OG!_q}@%t%{mI&BGo9D1E5%cQyBbf-v2vDNZ)z_*2?x}CpN9xj{QTh zR)n38ygs#V?M;$SJ<5WVwqxsgc^XU*i+@fK<+x*MDT?iU>c>LWFOHXurnyXgNx~Ib z2@Z$}>p%2BakuM-{if1i1S&n7SBWABwBMz1UZ(4**ab^tAn2)sXPqT4cydNB(6wc% z@Sea%z87!4tIko_ig3O7aSVpIj>b$82TmOLqySRsQ#u8E7m+q90DzUC1K-&>STgr14T$QJpFvayf`>K`Jg5t*!Pz z6xaQdFUSx!Sfy90tP1kWjK#`R?^nHd;~a%*I4hE`HWRSYK?GvOoW$^Zu)=9#+FSUa9;-cY-YffZc%iY zwDpw&a`=S!$#*x`*9b&b>y`Sdjr-pZ5aRfgqc;WOZ zPKQgN?jpSQ4MJGviDE`NnV&78!V>OVuQcKK1o#sLLVsf>apqF?2kUGtSBjIq95h2Z zOgAos2Qaw!)z!zTf=Y-g{2Oc=(e?&t`Gx{O%K{%K?jd}*!|-6q$Mko67rE@!d#FRN z)`hzGH^;m=$;lCOgGE$mm7g?+T>_&n(Qs@J!UBbk^hd0EDEOy~VmcKR>8fMvIjZ)t zj5Rjf7$7#$OPyNIWTAEh&W(|dH`ARcR7?+kKaiM0;v+#QVAiv)IsdKHddm#E^U@(( zE>V@kQEpFMNP$vN`aA#BAqv*ne zW$F}3Wc0mnOU~#wVgX8WKFHP@!j>+D>kc0USc#uj7d!#o=jGKv%oI#cr~vG;zOj)O zU`c)gU1S*>1gr+Ky)RwLXM2yuzU#bVim8_FOQ=&pMMsY1-(!vT+)d`(grTY1D&Sjn@-cQ2!xv9ovHWK z@QBmw><3T4pA?Z|ua3c-9p@z1>???B3i!F}olpCcubh2XD*L41_GxaQksH3cUMhuI zKNj@QMC!T{W=y+K6g;&S90BzA0Mh1+Mo!=!M8i(YjcAy*8(BOBv*wG>Po#r%TLj7o zVb+`^MC#WtLdcdn(nwTTDQONLM~sLtNN37EfPBbiCto{}I!#Ao=#!)RygfQ*QCnT>CXfS{pj96hpfcAz?yK5mZu7)<6ypQ1t_ zR$QhhxEh7xv+++m@s0K(U@}@$;U}q{VcVZ;F+^XsUtOqVmCJi*K@iuFS|z?~zlf4K zG>^dHZ1SZVH3^K{jeLW{ALIR-exAvXn2O%XPS2`PI1sQ(r|YfB4=x|ZA+_qDA=alc zV~VJ-b;IPYDWHU}k7x#A%VK4p=c2-H4k*ChK4H$Iz~_tQrw%RZkf4J& zs%x)9b-kP;^2>&m8r4!fP7H4X?Ltu@q4hF5!j?csZ&D+(EYuQmQN%^U$wuZN)`&tAw3^njk_*audespXiK{4 znpReJJGW-nbZ)pbFOnJd6JIJn?zz9Mx%2sRP@4NNug%PMolQd+4Va8GAd7Oru|p8f z>Q)*%Hx$HLzzd3)UN*BwH1tnxj`P87uyTABLyVq#!{bx!++9(fiGppTj^h{Y?d@&8 zZuAQ}6aO4+O*z9t1$8pVjczo$S3KDgtg#=t|I8(W+z~wczjf)qBnR8x{hhVxjCjk4 zVXNA!MW(<>B(Q*5POlRgIC0_xpjS02OxoQQ4&%jUF(f1;Pl{gS!E@03t8d5*K6hU2 zU^mma2_4!GvFyAF_g2^F9KRvp^}*x;KvpLGA+&LFJBrOF`@sH0++E|om(bVfZ2e3j zabiUK>li2n&>{!hlakkfxvRB3>w|!?nlRFzRc58>ol)9Z zIlY!vP~f~slQ`6}e#lZfjyhA#fWzbR+#c0w`z6ox-C&3l-g;1Jn#62$%yPb5`?d$l)_39nf?1yHharAn} z?IX_{q;naq>>6^UFwm|T{9$2)5Z8F>FasOB{*vVp?@JS{uxpeALoDHKICwA_Bdcc!XOQANva z$%$?F?fNvur0-@JaES;k`akA~VSxG=loU}gMRe*09SZfiS&zdXOLb%=@`mvF(lHma zAS=9z>Bk!S>!02g_(ht5Q>)$6qy_Q5+nsQehbL}J5WaJ}+{Dkz8W@|vWKkoeEz{vg zN>_Br56q#%@~67134tS0IVm&5Rm}% znEx9+p4p^8G%UK=%oD;|@X5$PqITt|hQq?awqo{`!7}%lSoiK`9CZTun2n*=kJs_r zl?@%HoZyAw#i_KeG+sW4WROJy+e@aKrSkaOlc=z_pOmTr^2yye`C_<2Hp|pB*bNb?bu76nbRN7N1UzCHh@LTbukfB`%GAtX(?JC(D%F?ZPp^!9gF^8G zZ;;aWKBaOz!isnCoD!smJTj{Ezw+8P>CL~aXg_iYGDrp*DZ*v)A1Fxq4aK()Ib@)L zhaof%`e9b8yuYXl(*0budG6q3Vat3V(y)O7DF5#&-am^!=ae`0wwOf@3KaJC`wvlJ z+vH|1fQu*G^y~b^nQXgd4|~y!k9i@qY(UcR4vfM+l1nnzPLH>n}T z)xGC*pl%AFy7FA(n_X$Ef)hSr?-p=56lc^bsYgni8!uWt!VVbarqF}+J&^XrfO*3t zN8ZI&p6%dNzgAE*kza)bRtAPo!Y5|Rt*coP4I4fq3q&|Gom<5<%xcQ)fI3bJ7Xnha zHS2TdHa-~x`y8R|HxqJt<3bKkz+%LPx3N4gSA_KER&?q`!Y5QTJ9&a|CN=$Fpn#{y zc`zUtcTT!39D!Lg6qn2L0ey?sW9{?`{~^c#r&qgcBrJJ$GTBi-3(Yu!6;VYAEA4*17hNycvHcLJGfe$gPdzAhB+xaX<) zcP*CO&dPvdU}GlIkm@*M!gYgT)jF0>ea@NZ}@>c%rN3p0_fJ*cobdiH`RnTy8#&&;2Uz3z`SIp z>T<)WhLIycHH`3RC`O0*du8YgA{dAM&^fpptt_7%88fD1z`N94^Hy34q6M@osO0to zU_QXF-zwvQPgpzQmjLqtQY51rDJ^$5a)1;j^PuAJGH^C=x#^Bw$4LiSBA|-Rr9RQ2 zrwVWtU~Q@AC*HDuH{?tx-X<YR9U@f`4kyzF!-aXyFr&oEdEM-dJ&0*Tw;z_dsa zpuImOZlGAlkIxY1Nn)r7n?Cm8lyd8`%ZP@L_pg=sVto*^6I?j$Vq_T~h9C2e+cpMQ zip45czA=BBE$fPdR-uFsE$S`i-vO&rYCe_e8JIQ8$xwAsj1U29n<_etO?2lzsI0}V zFKze(t5eJP_#Iq|s9M{{wg4b!cnC(AV3=g8B(_P70iyAXx%(L@{ou=0_F$|N)tHC6 z)K55E+95yrNzwbN$(5N0_J(x;vWj?=S1Bt^QIp?BN;}N@X2;>GM)ZFcl!R_1G|AQP z!Jr1l&-fGGI;?p}4@~|G#$F?k`+pDrvK!X`7vKN6vKZuBkTSd&4%n5m(VV1h9he8e zq(nxeV}6O+Q5HC*3@2@jkp69RWy6&42}@pGK`~5ygzbI6Xz#Mny!65H5Y46Vk;;PA zv#QiQa)+|9y7GxsPL2D>eWLD{{q*pAp~V^3k^UJxiyaTJ19}$OfN2E1e0T-vf2^56 z7J}qc4uA7@Khrm?#nBF$b>^IZg} zTr>ZpsKuxsn@ajC6$3Jc^dp+Lz5Cb?{h>7VgUt^>etnFQ-2|uq-u!Jyc&3aw;He%H zGA+Kls4Dj1t>`Ea+jInpSDL45Ns!X)FUuT&v&EqtpS3_bSK03a}WUQ<1U-|CHCMyPTV znC$F(QdR#HNiQ{4w+qq$(F)@t7NQG0P{*I29{{#y(dJ8!{ILy3E`J0LIpB0G1on_~ z9qS9}qL`B9p|ut2&?|Q;4W8j!T{GcW13w`2($fVrnwd;Fc;GQ zRO_zkHXEeju*5rVd}d^2Am1Vee-_Aez!8*WCoSTxD**JpiJNC>iXUK|NFIv;zaHU3 z^gq1iUjRb07`GT(M$(iH0Tkz@?QxTqfhL)@x4#x8v~U)-!pVcD4#Eer?lmb2MI>gH zZtw$RPDEl~0P5!t3@&=0@bK-PC0t@XGks3U0|m@M14#J2$dV+G0wu9oD1d>VX7P*^ ze$THc8ZiGe?el@#5LD+%Ezc3t-x@M{ipl%5)D|}&UlfB(xeX!eM5w2H%^4(7N z0jD)3$1@Pl5<;2=XEaH}RN@_;R8mKS_vd;eRo7{i?rR5i=;U=*!8V>#!E}&`w7@Po zI_y(yhOQKt^{qce|dfe zw_FsOpMkXyM-j!)0k_PQb|^1Ge{5BLhB_2a`%qk{Q^4>!c>Es@v_`$JN#%g*`a9^n z&-U9qUxW$u3|m!co(i-mzcI~(kM3gyuiH~q8Fop-y>LJ_^tEihJ%Ukmn0U*B1{4kf-aD!gI?;0*}MLnu0 z#`%M~YAWe_<{WRZT;_<``Wy(}Jx75Ot}3Wze}r|S*7>d9|49(Gipw*&d~&60OVv=a zc72TjC?24(;13ucx4sN;MG=$4Tn4rOeds^lU05(y*|Tg2tjMkbIud zo9j+_o4sSqO9RYsLYl?Pfmq`k{7E~gFsCx6a$Mz5-WsjM*xzqnpwa8?m=CQWXqJyx$aDNjaj1< zQCD!Wt}iaDT*L6Bn^=(|8feTkqJhJONO=1XxnyCj6031`H7)yIk7H94K^%{DzRs(4 zSGziD#QNlVf3p{QVTBIsD0X@tHF6bMTKF~+-JrH;NOjkZS6!Eqqy z9tXc&WYqQelHMEX`+k#!ZS2E&*aXKhXPd68Tlz~_w@oDCkkfwpbh9$>GNoB)9LN{5 z#+HpWiOl3iW%kVLZ%zcqs^;x<*V)uH=qe3l%;nP3A{T;Qjd^YsTXn^t?q4fpM(vB* zbR}KwPB}Ur7jyM;?#a&fT&>D9Jt@bUnMBXcX-D>3tdMJgmUZJ9o1N*HWi`y7b}&HW zcHZTLGf1`Kc+Sz|C!24M7aGWV;ER`C0k$lN)|Hkl=)PHrlH>>4<=lu$Z7oLI$8Oh! z6v)qy3p;SmO5N$R4nDo_1#N%f5SpNWVLJ{87yiKowka*HMEoXh6+OLFv|3E3dVC7 z<%J<%U2x4lW28<_eZ)W`u#K_g_Mg0W|AtO82Y=OKJ0 zA5mcgZ<$Ii!6QoWpW&p4iDLsL98U!rcz#Pw<0=DxA%cfH^B4m1|>T`i%2gO={9Ud)P z-I^bf&=+jg=8)NpMuFy^t(*~ZH@3PoS#CY+ZNp>bjXe%5&A?<*e^b{S`qCe%T zf@s)6M9$FyL|wV8f<}#>HXjs$uad)Jxs5_bfRAa0y{R>tb=sHGG7NM5ft4Wt`dhK- zZds0K?P?c+Z&1i0(q{Y6s>n0J{3%mwJCsR=k`Jc`(qX&BW04y=P`}7#fD;v0emrPPXzmZ8=$@DSjeS@Yn45vS z^qaZ4h-$i1ZGO5bw5vnYec;0qj*&GHb=u&4Jh%Qr#`@zkz_Jqj{&L6Tdiaih&lyU% zTE91PWG~ z(x&q8@W$nJe;vHFY;dr&t$P)Oq@IwoXI-5BwfN$g)jP7kL0vM1!B*1oHI<6m?Y*jY zPnUI|6od6g;i@@iObq0<406-QkQ4px{3jk9X)9An>MTWvE(u%y_qBPD`!x zhN>sJN!v{nINBn_o5~BW9)sVDFAH%&`iD?i+yGt(CK}JH2u6=LeHVc8d$UQ&7`Wkp zrHr-KW9fDKfdRwblbE(z&MY0a%ii*6FyOPs&cYO_t$yNF9NORBSF*0>9v15CWiqt4JLnsI`;m{UoVwS_I=9V*f=bb~{$1TMI~; z-~Aed?}1$ewC6YEaFYFK-gxui@8*sB8Fvs3u`E@l2-wO6_HTW3_1TgrRNh2u7JwhD zavqwXLp!|Z!DWqLr+t&%2XbQ1LaFt&*=YqEr~w0`f=|3DU&#TjAEgZ=pU42N!W*x^ zVBBP1Yi%;iyEZUE^OaBiIIQ6>b+7u8*B6VMt{ zulw(mrhszhr|yl|`XAjJ4)HCi6#pvxWLK0x`oH~cDhuk?l!7EuH5=EsasEf+Mq!V* zj|wUbsheTUieQw`mEykuC#GvBu>i)^6O?~e0K`^LaISKiVi*0s2)Psxb|Zo4e15Ly z+}OmWr4VcbQf;LV=|6E_kLuKS`sDuc+nAidU(0Fy48THYZ86WS51`>LKCg#*tkPCU z;^I=^?>9(Tn*>`l;D*;bUjeg^E?^}AVKS(irgSt&hKFx_{_}>zjO*Rp>#pGP_S)Jap(5Qc9#UU&RFArTLWfoZM*J=z z{v~LiOS`yYJR^a5`teDL7N~gwzU9uVCu|Kz)p0H?qnX@hbGsG%bdZQ0j9!^3Eq@Js zL4N}!DodbQ^Hce0hym8btZ#;tmcGx<4nRpdm-_()kf?2!-9g&tX6XZrzS7B02|w~~ z7z2yicc%4g|Cu=GKO;s9KNclPH z`p{vBk4?%HumF5>;$eDdP|*`KaI7YR&Qz`aWoByqhE&&Q4ucj?KV1N`?|0i<{BYU` za88qr>6|AUT~RLz%H`jIGFe!opN2f-rMD?O4xhla*#js^8yhGQzvr!GbZD{NSfkYm~=eEulK<0H&G93)hwd7_^;k z5268w^PjNh?LP*$k3iy@|QTab_dGQaTU_uu5fvoLt zaf~lMrDloMuQ_U!*yPsDy9{s+Gn_&4*OcO$cT#lf6yVwn@|Le(5;RX*U5xguwNmB& z0;IxfPtScIp9)OI}&wG60@u{P;RRgOT{Oaw^jQmbG~INjNdSBp~Xh?~Y{0bb~uJJ&DxqszH;c?@S5Gd&&VYRDG#nZ~*D&b8Vrd&r&L zcVcJKAMXQq*edz<01Q5%XWFs_n#z;CLa8B0IK$yX(w_&S!$4~tbht4f*bz}aonUR# zw_O+5ZDRyBYe{5tn+Ngz{6$9>3Cu`K{WAp=D!IEgR}H}^sGzMmU5Oo8xn8~R8QNv> zX1C9_sf~Q{xO3fjKj>rAiIgp|LNMMrs8N-|xXH5*)}X`mcbXIdG50pT=DN!Q1qTNM zPg3>%dVpiR;@+aOR4eE@mGjrHXax;`t%6x5=&J#zA#UxA|&A+r#A@sTLqahVh-?ZN@chTxHGO_W^<3#wYgVIJ@;64y3aN+1Wfv48AV4A}TUvl2xk@Qm26ljrDq6Er_6pT(&8C-%}TM^{ZD`ygV3KW(E=e+M`TO1hN$ZH2yZ$uXF;#W1HINCE$J6$GzGL2>M*I6qR{-V>NzO#9VT->lTyr zj;K4yyFPBP`wp{gd?fVGwh0GQ;F;yu$c#wC0-09qg4z6(BS)td@8{~nS$+WzaVyrf zTZ~iynNpR$%)5r^_JG%SgkpUrA8)FF)1JoR03LkUopO^(oVRt6qo0>yCuUh83jbU+ z$-7=ba9X}$e&%01cD~pK8NS$RFh0tflzKC;Y{U6lKq*ZxtjHZ?Bhs{~qPjK0{di}9 z=Ql;P>G&BiaX4`khZ0_>Kgx?+Mg%i@`53moY=y)y_|ee_(*Omt>3zg9IZQ_QD6JsK zG2|}pBmwlo?O$;e!D#vve~IiFmQAx#MWJl&A!*N5he1Yi!Ix4GZr!?~18S!lL{B+r z5jR@eQ3%FP$#N!s#$|!HwJTT*Gp}kD&ar>UQS!%nXxwC?9ZfQ+jWZXC{*mEle!CSe68 zI)F_SMD`bu(oPO0+F%SHm`bl?Ib9yft3%T~rPW|B_5y*0>)d*LR1pHl) z+&}&gzCtF60cI8Ga8=~;#d#smjoI{_Q`_&6YP(I+ z3y6EYz&~Sxoems;jvTki&AE#iZW~g}EkGGMBj3fM3y#ulNp}Udyruou3SgX{i&?S< z<9r{;Qe26b^n6F0CWCF-E|xa?qZtZs>mEjkRB5tubZXEYb+wDKq7l?|;Nxj6_jD?j zV93*QEL>k4s`Kzxwgbi6&t@;2fclfc-sIRYXb58Id3Gaaak#WiMNMlu4eR#TK1UtQ zCgvpPS(^8ath5g$=6ciJpNrMgkAgQby7T7G=94?4d-PDnTCmv_1S5N4%VH4rWxWSz z#N#q-KU+Q%XEp^8jTs#TV9a&)tLQsrmhlO8vTftbC=-%!xbxx=hcwXkh!?{rEKd&< z==tF`H5w|OOejl?(ilB9%d~Cx=@qp~X@qrU{0E|lIvr}kRb>9KOnL7p@If(#^(!Qf zI2%PDcC;@)f}lIAl@o!iQ>$$pR&;>GlgW4(a*VNzSJb-e}w z93v{~6^_D{wiq!n@A4?y$cvY9PaqMq83hH3U^}uCD5SnT#LrzfXgxPVa%P30;||!` z-~@OTbBi}Hg_<;<4WvfDyZ~XV=uR-L`!uS2+o${X=fZMAxX^=i2C3m&UyzS2Ca%n{ zARpt(NWf!C0-AJ)U@Z{^pzC>kWO_AKYOGVb8LVP0IkO>MHeBqof*{l_GD9Q#NNIjc z6P<_Hw66%Ccv={KQ^&Lla30M8f2pg~^Vm}5;~Pu3MioPWGclr=U$&_EIi!cNt*wY+ z3U|(}vo%c@k^m~KMB?C+O8;9mTAv&^M9#6WuZ4i|qNT6E^9ak2_I8xVbwbaGzef6> zz9c?`fD@nZ)aRQd1cp3!V948!(=2ocdzY+k6$6>x%%)`%^q{nfgv=wQsgzF-orcLE zt7Z*;vfC%cNc>=*ICOL532)Ff){b)`2<->pVDctkPb}~bVTbEr50ZRmuFD2(slei)P2;Nx- zSJ9}iBt3vf;CA-~aB8it29W+DWVgWV8{P3sq=DhfvX6cSdpOO~IsjtFCg2GA(3cD& zZHTfO>3^bn_}?M=n*kS%>cr3h(EY7nCSu~t+F5E?%h9A% zS&*fAr(8t-*m@Uf3>uY<<)UMMY}Sc@KCl37=-pl86F+ahO96r)#VrG-pAY804*VrN zXNMmAxsC6)zhEW7$`zp;!*+)rwBA-HI1HKC^xZK!9~*e-DPvd%c{$kYYkH}2`7zk} zEUp{3m)Yl>Qpv&NuFeV{UK5E#i5#qi;`(-}1s$UDJimUn*`0glDtu;9N(LGR#m}9jZnjSmTSnpTD_*GvwhYR(Z z2nFV!r|JVtJ(GMHkJ>IQ!F8z|wUz+pt}|A2Z)0O)X8i2cjrX^@i_O#!;-VRfp<#>U zJA+*wh6ff7z@H0+o$@+7SU!AwOF=+_Nj@&BV_Gxv8hlTX;fBzP&kLPe?V61otMo7e zkk)+Jo(zqz%o{&E*m})o6f6dA)33g{H2MRt!PXMkV#iJNg7)|j`A*m2{*5~?jl*~N z1n#p=5FrR+vUN< z&HY&8=sYoCvJ^`^9=mF*eax}g`G4=KPk1f4^W!n;)I%+tMVCC)ciPLyMyYh?c9pLuhyF>^3{&iSOuZC=eM&&vOQzdv2IdR{c`ye za2NPVUh_K#wqLZE6Fg~ctEKY6&wmeYm#ckWecyXiX_mE*!Vk0K@_%2rySe=M;R`%l z!Fqq%-RHmByQb0>gX@YT7+^`?N%3~ajprvf+;!n@@`d=blQKf9kP z3Qh{n4<5G5PkXT5!LI4M-LZc8{D0*uSFGUhng^U+vf-cbO%dsw@CU-cQfc{?7oy0e z(x^gMSw0#(@JeVjQBasD`h!nTVPIgq1iB*t+AtUmQwqa$Foffe`nnSbt}{PL+XB1@ Og2B_(&t;ucLK6U{6>;wX literal 0 HcmV?d00001 From a4b33d94fe1d7846896f7cabf777c60f787e0369 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikl=C3=B3s=20Tusz?= Date: Mon, 9 May 2016 14:52:57 -0400 Subject: [PATCH 08/20] Shapes: Update shapes tests for reorganized layers --- test/jasmine/tests/shapes_test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/jasmine/tests/shapes_test.js b/test/jasmine/tests/shapes_test.js index 74993cf628f..c553b55a396 100644 --- a/test/jasmine/tests/shapes_test.js +++ b/test/jasmine/tests/shapes_test.js @@ -58,7 +58,7 @@ describe('Test shapes:', function() { } function countShapeLayerNodesInSubplots() { - return d3.selectAll('.shapelayer-subplot').size(); + return d3.selectAll('.layer-subplot').size(); } function countSubplots(gd) { @@ -74,7 +74,7 @@ describe('Test shapes:', function() { } function countShapePathsInSubplots() { - return d3.selectAll('.shapelayer-subplot > path').size(); + return d3.selectAll('.layer-subplot > .shapelayer > path').size(); } describe('*shapeLowerLayer*', function() { From e62b27db7114296cb7e24bd25fb6a7dc0ecb7100 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikl=C3=B3s=20Tusz?= Date: Mon, 9 May 2016 19:02:08 -0400 Subject: [PATCH 09/20] Images: Return promise for image loading --- src/components/images/draw.js | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/components/images/draw.js b/src/components/images/draw.js index af59cbd8828..d90275658f6 100644 --- a/src/components/images/draw.js +++ b/src/components/images/draw.js @@ -85,7 +85,6 @@ module.exports = function draw(gd) { } thisImage.attr({ - href: d.source, x: xPos, y: yPos, width: width, @@ -95,6 +94,22 @@ module.exports = function draw(gd) { }); + // Images load async so we must add the promise to the list + var imagePromise = new Promise(function(resolve) { + + thisImage.on('load', resolve); + thisImage.on('error', function() { + thisImage.remove(); + console.log('Image with source ' + d.source + ' could not be loaded.'); + resolve(); + }); + + thisImage.attr('href', d.source); + }); + + gd._promises.push(imagePromise); + + // Set proper clipping on images var xId = xref ? xref._id : '', yId = yref ? yref._id : '', From 66c87029c7445f7a71d1877f878018b1df58424e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikl=C3=B3s=20Tusz?= Date: Mon, 9 May 2016 19:09:13 -0400 Subject: [PATCH 10/20] Images: Reject non-array images attribute --- src/components/images/defaults.js | 5 ++--- test/jasmine/tests/layout_images_test.js | 13 +++++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/components/images/defaults.js b/src/components/images/defaults.js index 8e858f178ed..61b70b8fb6d 100644 --- a/src/components/images/defaults.js +++ b/src/components/images/defaults.js @@ -15,11 +15,10 @@ var attributes = require('./attributes'); module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) { - if(!layoutIn.images) return; + if(!layoutIn.images || !Array.isArray(layoutIn.images)) return; - var containerIn = Array.isArray(layoutIn.images) ? - layoutIn.images : [layoutIn.images], + var containerIn = layoutIn.images, containerOut = layoutOut.images = []; diff --git a/test/jasmine/tests/layout_images_test.js b/test/jasmine/tests/layout_images_test.js index bbb5fb05d9f..33a67b439f5 100644 --- a/test/jasmine/tests/layout_images_test.js +++ b/test/jasmine/tests/layout_images_test.js @@ -24,6 +24,19 @@ describe('Layout images', function() { expect(layoutOut.images.length).toEqual(0); }); + it('should reject when not an array', function() { + layoutIn.images = { + source: 'http://www.someimagesource.com', + opacity: 0.5, + width: 0.2, + height: 0.2 + }; + + Images.supplyLayoutDefaults(layoutIn, layoutOut); + + expect(layoutOut.images).not.toBeDefined(); + }); + it('should coerce the correct defaults', function() { layoutIn.images[0] = { source: 'http://www.someimagesource.com' }; From 47c320c9be87f2a9ff636945baaf77f40ab20a30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikl=C3=B3s=20Tusz?= Date: Wed, 11 May 2016 16:45:13 -0400 Subject: [PATCH 11/20] Images: Change width/height to sizex/sizey --- src/components/images/attributes.js | 8 ++++---- src/components/images/defaults.js | 4 ++-- src/components/images/draw.js | 2 ++ 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/components/images/attributes.js b/src/components/images/attributes.js index 647333b4b91..347d6a20ef0 100644 --- a/src/components/images/attributes.js +++ b/src/components/images/attributes.js @@ -37,24 +37,24 @@ module.exports = { ].join(' ') }, - width: { + sizey: { valType: 'number', role: 'info', dflt: 0, description: [ - 'Sets the image container width.', + 'Sets the image container size horizontally.', 'The image will be sized based on the `position` value.', 'When `xref` is set to `paper`, units are sized relative', 'to the plot width.' ].join(' ') }, - height: { + sizex: { valType: 'number', role: 'info', dflt: 0, description: [ - 'Sets the image container height.', + 'Sets the image container size vertically.', 'The image will be sized based on the `position` value.', 'When `yref` is set to `paper`, units are sized relative', 'to the plot height.' diff --git a/src/components/images/defaults.js b/src/components/images/defaults.js index 61b70b8fb6d..1be89b4f05a 100644 --- a/src/components/images/defaults.js +++ b/src/components/images/defaults.js @@ -47,8 +47,8 @@ function imageDefaults(imageIn, imageOut, fullLayout) { coerce('y'); coerce('xanchor'); coerce('yanchor'); - coerce('width'); - coerce('height'); + coerce('sizex'); + coerce('sizey'); coerce('sizing'); coerce('opacity'); diff --git a/src/components/images/draw.js b/src/components/images/draw.js index d90275658f6..e5e1bdf5c2f 100644 --- a/src/components/images/draw.js +++ b/src/components/images/draw.js @@ -61,6 +61,8 @@ module.exports = function draw(gd) { var size = fullLayout._size, width = xref ? Math.abs(xref.l2p(d.width) - xref.l2p(0)) : d.width * size.w, height = yref ? Math.abs(yref.l2p(d.height) - yref.l2p(0)) : d.width * size.h; + width = xref ? Math.abs(xref.l2p(d.sizex) - xref.l2p(0)) : d.sizex * size.w, + height = yref ? Math.abs(yref.l2p(d.sizey) - yref.l2p(0)) : d.sizey * size.h; // Offsets for anchor positioning var xOffset = width * anchors.x[d.xanchor].offset + size.l, From 049b3a969ffcde6f6463797cbfa43b4a11121caa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikl=C3=B3s=20Tusz?= Date: Wed, 11 May 2016 16:46:08 -0400 Subject: [PATCH 12/20] Images: Export attributes for plotSchema creation --- src/components/images/index.js | 2 ++ src/plots/layout_attributes.js | 1 + 2 files changed, 3 insertions(+) diff --git a/src/components/images/index.js b/src/components/images/index.js index 9ea6816a08a..227b2ee1b03 100644 --- a/src/components/images/index.js +++ b/src/components/images/index.js @@ -11,9 +11,11 @@ var draw = require('./draw'); var supplyLayoutDefaults = require('./defaults'); +var attributes = require('./attributes'); module.exports = { draw: draw, + layoutAttributes: attributes, supplyLayoutDefaults: supplyLayoutDefaults }; diff --git a/src/plots/layout_attributes.js b/src/plots/layout_attributes.js index 52f016e8af5..06b4ab0913c 100644 --- a/src/plots/layout_attributes.js +++ b/src/plots/layout_attributes.js @@ -182,6 +182,7 @@ module.exports = { 'legend': 'Legend', 'annotations': 'Annotations', 'shapes': 'Shapes', + 'images': 'Images', 'ternary': 'ternary' } }; From c3a0a20041cb5bef7664f22751e7cd8ccf5e41ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikl=C3=B3s=20Tusz?= Date: Wed, 11 May 2016 16:46:50 -0400 Subject: [PATCH 13/20] Lib: Add method for converting a string path to a nested object --- src/lib/index.js | 55 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/src/lib/index.js b/src/lib/index.js index 9f8d40b0928..d2fe1719ae9 100644 --- a/src/lib/index.js +++ b/src/lib/index.js @@ -486,3 +486,58 @@ lib.setTranslate = function(element, x, y) { lib.isIE = function() { return typeof window.navigator.msSaveBlob !== 'undefined'; }; + + +/** + * Converts a string path to an object. + * + * When given a string containing an array element, it will create a `null` + * filled array of the given size. + * + * @example + * lib.toObject('nested.test[2].path', 'value'); + * // returns { nested: { test: [null, null, { path: 'value' }]} + * + * @param {string} path to nested value + * @param {*} any value to be set + * + * @return {Object} the constructed object with a full nested path + */ +lib.toObject = function(path, value) { + var keys = path.split('.'), + tmpObj, + obj = tmpObj = {}; + + for(var i = 0; i < keys.length; i++) { + var key = keys[i]; + var el = null; + + var parts = keys[i].match(/(.*)\[([0-9]+)\]/); + + if(parts) { + key = parts[1]; + el = parts[2]; + + tmpObj = tmpObj[key] = []; + + if(i === keys.length - 1) { + tmpObj[el] = value; + } else { + tmpObj[el] = {}; + } + + tmpObj = tmpObj[el]; + } else { + + if(i === keys.length - 1) { + tmpObj[key] = value; + } else { + tmpObj[key] = {}; + } + + tmpObj = tmpObj[key]; + } + } + + return obj; +}; From 62a4792a570c826db8f0c98239c3c51f89f203c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikl=C3=B3s=20Tusz?= Date: Wed, 11 May 2016 16:47:39 -0400 Subject: [PATCH 14/20] Images: Update images on relayout --- src/plot_api/plot_api.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/plot_api/plot_api.js b/src/plot_api/plot_api.js index 7a27bae9e3d..d7c874354c2 100644 --- a/src/plot_api/plot_api.js +++ b/src/plot_api/plot_api.js @@ -2299,6 +2299,12 @@ Plotly.relayout = function relayout(gd, astr, val) { // as it is we get separate calls for x and y (or ax and ay) on move objModule.draw(gd, objNum, p.parts.slice(2).join('.'), aobj[ai]); delete aobj[ai]; + } else if(p.parts[0] === 'images') { + var update = Lib.toObject(astr, vi); + Lib.extendDeepAll(gd.layout, update); + + Images.supplyLayoutDefaults(gd.layout, gd._fullLayout); + Images.draw(gd); } // alter gd.layout else { From 3cbb4c2f0e712e8a6d575ebc9b1c8b5e7a91aebd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikl=C3=B3s=20Tusz?= Date: Wed, 11 May 2016 16:48:04 -0400 Subject: [PATCH 15/20] Images: Only fetch image on enter selection --- src/components/images/draw.js | 78 ++++++++++++++++++++++++----------- 1 file changed, 54 insertions(+), 24 deletions(-) diff --git a/src/components/images/draw.js b/src/components/images/draw.js index e5e1bdf5c2f..5d6425f292d 100644 --- a/src/components/images/draw.js +++ b/src/components/images/draw.js @@ -50,6 +50,48 @@ module.exports = function draw(gd) { }; + // Images must be converted to dataURL's for exporting. + function setImage(d) { + + var thisImage = d3.select(this); + + var imagePromise = new Promise(function(resolve) { + + var img = new Image(); + + // If not set, a `tainted canvas` error is thrown + img.setAttribute('crossOrigin', 'anonymous'); + img.onerror = errorHandler; + img.onload = function() { + + var canvas = document.createElement('canvas'); + canvas.width = this.width; + canvas.height = this.height; + + var ctx = canvas.getContext('2d'); + ctx.drawImage(this, 0, 0); + + var dataURL = canvas.toDataURL('image/png'); + + thisImage.attr('xlink:href', dataURL); + }; + + + thisImage.on('error', errorHandler); + thisImage.on('load', resolve); + + img.src = d.source; + + function errorHandler() { + thisImage.remove(); + resolve(); + } + }); + + gd._promises.push(imagePromise); + } + + function applyAttributes(d) { var thisImage = d3.select(this); @@ -59,8 +101,6 @@ module.exports = function draw(gd) { yref = Axes.getFromId(gd, d.yref); var size = fullLayout._size, - width = xref ? Math.abs(xref.l2p(d.width) - xref.l2p(0)) : d.width * size.w, - height = yref ? Math.abs(yref.l2p(d.height) - yref.l2p(0)) : d.width * size.h; width = xref ? Math.abs(xref.l2p(d.sizex) - xref.l2p(0)) : d.sizex * size.w, height = yref ? Math.abs(yref.l2p(d.sizey) - yref.l2p(0)) : d.sizey * size.h; @@ -96,22 +136,6 @@ module.exports = function draw(gd) { }); - // Images load async so we must add the promise to the list - var imagePromise = new Promise(function(resolve) { - - thisImage.on('load', resolve); - thisImage.on('error', function() { - thisImage.remove(); - console.log('Image with source ' + d.source + ' could not be loaded.'); - resolve(); - }); - - thisImage.attr('href', d.source); - }); - - gd._promises.push(imagePromise); - - // Set proper clipping on images var xId = xref ? xref._id : '', yId = yref ? yref._id : '', @@ -121,16 +145,22 @@ module.exports = function draw(gd) { } + // Required for updating images + function keyFunction(d) { + return d.source; + } + + var imagesBelow = fullLayout._imageLowerLayer.selectAll('image') - .data(imageDataBelow), + .data(imageDataBelow, keyFunction), imagesSubplot = fullLayout._imageSubplotLayer.selectAll('image') - .data(imageDataSubplot), + .data(imageDataSubplot, keyFunction), imagesAbove = fullLayout._imageUpperLayer.selectAll('image') - .data(imageDataAbove); + .data(imageDataAbove, keyFunction); - imagesBelow.enter().append('image'); - imagesSubplot.enter().append('image'); - imagesAbove.enter().append('image'); + imagesBelow.enter().append('image').each(setImage); + imagesSubplot.enter().append('image').each(setImage); + imagesAbove.enter().append('image').each(setImage); imagesBelow.exit().remove(); imagesSubplot.exit().remove(); From 5b9077c4ca500a79968a620da7ef053d6af1f50c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikl=C3=B3s=20Tusz?= Date: Wed, 11 May 2016 16:48:16 -0400 Subject: [PATCH 16/20] Images: Update test mock --- test/image/mocks/layout_image.json | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/test/image/mocks/layout_image.json b/test/image/mocks/layout_image.json index ee6ada23d03..d57fac8d1f1 100644 --- a/test/image/mocks/layout_image.json +++ b/test/image/mocks/layout_image.json @@ -8,47 +8,47 @@ "layout": { "images": [ { - "source": "http://www.placekitten.com/100", + "source": "https://images.plot.ly/language-icons/api-home/python-logo.png", "xref": "paper", "yref": "paper", "x": 0, "y": 0, - "width": 0.2, - "height": 0.2, + "sizex": 0.2, + "sizey": 0.2, "xanchor": "right", "yanchor": "bottom" }, { - "source": "http://www.placekitten.com/300", + "source": "https://images.plot.ly/language-icons/api-home/js-logo.png", "xref": "x", "yref": "y", "x": 2.5, "y": 2, - "width": 1, - "height": 1, + "sizex": 1, + "sizey": 1, "xanchor": "center", "yanchor": "middle", "layer": "below" }, { - "source": "http://www.placekitten.com/400", + "source": "https://images.plot.ly/language-icons/api-home/r-logo.png", "xref": "x", "yref": "y", "x": 1, "y": 3, - "width": 2, - "height": 2, + "sizex": 2, + "sizey": 2, "sizing": "stretch", "opacity": 0.4 }, { - "source": "http://www.placekitten.com/300", + "source": "https://images.plot.ly/language-icons/api-home/matlab-logo.png", "xref": "x", "yref": "paper", "x": 2.75, "y": 0, - "width": 0.5, - "height": 1, + "sizex": 0.5, + "sizey": 1, "opacity": 1, "xanchor": "left", "yanchor": "top" From af2453b8403827cbd34a0ead3fa719abd62c34b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikl=C3=B3s=20Tusz?= Date: Wed, 11 May 2016 17:56:52 -0400 Subject: [PATCH 17/20] Images: Add test for relayout on images --- test/jasmine/tests/layout_images_test.js | 109 ++++++++++++++++------- 1 file changed, 77 insertions(+), 32 deletions(-) diff --git a/test/jasmine/tests/layout_images_test.js b/test/jasmine/tests/layout_images_test.js index 33a67b439f5..4a885ac3dba 100644 --- a/test/jasmine/tests/layout_images_test.js +++ b/test/jasmine/tests/layout_images_test.js @@ -1,9 +1,13 @@ var Plotly = require('@lib/index'); +var Plots = require('@src/plots/plots'); var Images = require('@src/components/images'); var createGraphDiv = require('../assets/create_graph_div'); var destroyGraphDiv = require('../assets/destroy_graph_div'); var mouseEvent = require('../assets/mouse_event'); +var jsLogo = 'https://images.plot.ly/language-icons/api-home/js-logo.png'; +var pythonLogo = 'https://images.plot.ly/language-icons/api-home/python-logo.png'; + describe('Layout images', function() { describe('supplyLayoutDefaults', function() { @@ -13,11 +17,11 @@ describe('Layout images', function() { beforeEach(function() { layoutIn = { images: [] }; - layoutOut = {}; + layoutOut = { _has: Plots._hasPlotType }; }); it('should reject when there is no `source`', function() { - layoutIn.images[0] = { opacity: 0.5, width: 0.2, height: 0.2 }; + layoutIn.images[0] = { opacity: 0.5, sizex: 0.2, sizey: 0.2 }; Images.supplyLayoutDefaults(layoutIn, layoutOut); @@ -26,10 +30,10 @@ describe('Layout images', function() { it('should reject when not an array', function() { layoutIn.images = { - source: 'http://www.someimagesource.com', + source: jsLogo, opacity: 0.5, - width: 0.2, - height: 0.2 + sizex: 0.2, + sizey: 0.2 }; Images.supplyLayoutDefaults(layoutIn, layoutOut); @@ -38,17 +42,17 @@ describe('Layout images', function() { }); it('should coerce the correct defaults', function() { - layoutIn.images[0] = { source: 'http://www.someimagesource.com' }; + layoutIn.images[0] = { source: jsLogo }; var expected = { - source: 'http://www.someimagesource.com', + source: jsLogo, layer: 'above', x: 0, y: 0, xanchor: 'left', yanchor: 'top', - width: 0, - height: 0, + sizex: 0, + sizey: 0, sizing: 'contain', opacity: 1, xref: 'paper', @@ -119,7 +123,7 @@ describe('Layout images', function() { sizing: sizing }]}); - var image = Plotly.d3.select('[href="' + anchorName + '"]'), + var image = Plotly.d3.select('image'), parValue = image.attr('preserveAspectRatio'); expect(parValue).toBe(expected); @@ -160,16 +164,15 @@ describe('Layout images', function() { afterEach(destroyGraphDiv); it('should not move when referencing the paper', function(done) { - var source = 'http://www.placekitten.com/200', - image = { - source: source, - xref: 'paper', - yref: 'paper', - x: 0, - y: 0, - width: 0.1, - height: 0.1 - }; + var image = { + source: jsLogo, + xref: 'paper', + yref: 'paper', + x: 0, + y: 0, + sizex: 0.1, + sizey: 0.1 + }; Plotly.plot(gd, data, { images: [image], @@ -177,7 +180,7 @@ describe('Layout images', function() { width: 600, height: 400 }).then(function() { - var img = Plotly.d3.select('[href="' + source + '"]').node(), + var img = Plotly.d3.select('image').node(), oldPos = img.getBoundingClientRect(); mouseEvent('mousedown', 250, 200); @@ -193,16 +196,15 @@ describe('Layout images', function() { }); it('should move when referencing axes', function(done) { - var source = 'http://www.placekitten.com/200', - image = { - source: source, - xref: 'x', - yref: 'y', - x: 2, - y: 2, - width: 1, - height: 1 - }; + var image = { + source: jsLogo, + xref: 'x', + yref: 'y', + x: 2, + y: 2, + sizex: 1, + sizey: 1 + }; Plotly.plot(gd, data, { images: [image], @@ -210,7 +212,7 @@ describe('Layout images', function() { width: 600, height: 400 }).then(function() { - var img = Plotly.d3.select('[href="' + source + '"]').node(), + var img = Plotly.d3.select('image').node(), oldPos = img.getBoundingClientRect(); mouseEvent('mousedown', 250, 200); @@ -227,4 +229,47 @@ describe('Layout images', function() { }); + describe('when relayout', function() { + + var gd, + data = [{ x: [1,2,3], y: [1,2,3] }]; + + beforeEach(function(done) { + gd = createGraphDiv(); + Plotly.plot(gd, data, { + images: [{ + source: jsLogo, + x: 2, + y: 2, + sizex: 1, + sizey: 1 + }] + }).then(done); + }); + + afterEach(destroyGraphDiv); + + it('should update the image if changed', function(done) { + var img = Plotly.d3.select('image'), + url = img.attr('xlink:href'); + + Plotly.relayout(gd, 'images[0].source', pythonLogo).then(function() { + var newImg = Plotly.d3.select('image'), + newUrl = newImg.attr('xlink:href'); + expect(url).not.toBe(newUrl); + }).then(done); + }); + + it('should remove the image tag if an invalid source', function(done) { + + var selection = Plotly.d3.select('image'); + expect(selection.size()).toBe(1); + + Plotly.relayout(gd, 'images[0].source', 'invalidUrl').then(function() { + var newSelection = Plotly.d3.select('image'); + expect(newSelection.size()).toBe(0); + }).then(done); + }); + }); + }); From 4cbc117bd621dc6a0ef0a12aac9fb14d3cf6623f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikl=C3=B3s=20Tusz?= Date: Wed, 11 May 2016 22:16:55 +0000 Subject: [PATCH 18/20] Images: Add baseline image --- test/image/baselines/layout_image.png | Bin 25135 -> 77859 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/image/baselines/layout_image.png b/test/image/baselines/layout_image.png index 6f9bf42d0f671b80512db6ae2074fa7a78ef7343..9da91d052cb65cc82b2a808259658aa61fd9cb70 100644 GIT binary patch literal 77859 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 D+>V|M literal 25135 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 Og2B_(&t;ucLK6U{6>;wX From ad37e554e42a27f97212b825dbdb12468c2b10ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikl=C3=B3s=20Tusz?= Date: Thu, 12 May 2016 15:23:55 -0400 Subject: [PATCH 19/20] Images: Fixes before merge! --- src/components/images/attributes.js | 4 +-- src/components/images/draw.js | 5 ++-- src/lib/index.js | 4 +-- src/plot_api/plot_api.js | 12 ++++----- test/image/mocks/layout_image.json | 32 ++++++++++++++++-------- test/jasmine/tests/lib_test.js | 35 ++++++++++++++++++++++++++- test/jasmine/tests/plotschema_test.js | 2 +- 7 files changed, 69 insertions(+), 25 deletions(-) diff --git a/src/components/images/attributes.js b/src/components/images/attributes.js index 347d6a20ef0..a7f35575256 100644 --- a/src/components/images/attributes.js +++ b/src/components/images/attributes.js @@ -37,7 +37,7 @@ module.exports = { ].join(' ') }, - sizey: { + sizex: { valType: 'number', role: 'info', dflt: 0, @@ -49,7 +49,7 @@ module.exports = { ].join(' ') }, - sizex: { + sizey: { valType: 'number', role: 'info', dflt: 0, diff --git a/src/components/images/draw.js b/src/components/images/draw.js index 5d6425f292d..a489c9eb026 100644 --- a/src/components/images/draw.js +++ b/src/components/images/draw.js @@ -91,7 +91,6 @@ module.exports = function draw(gd) { gd._promises.push(imagePromise); } - function applyAttributes(d) { var thisImage = d3.select(this); @@ -111,8 +110,8 @@ module.exports = function draw(gd) { var sizing = anchors.x[d.xanchor].sizing + anchors.y[d.yanchor].sizing; // Final positions - var xPos = (xref ? xref.l2p(d.x) : d.x * width) + xOffset, - yPos = (yref ? yref.l2p(d.y) : -d.y * width) + yOffset; + var xPos = (xref ? xref.l2p(d.x) : d.x * size.w) + xOffset, + yPos = (yref ? yref.l2p(d.y) : size.h - d.y * size.h) + yOffset; // Construct the proper aspectRatio attribute diff --git a/src/lib/index.js b/src/lib/index.js index d2fe1719ae9..eb4f17d844c 100644 --- a/src/lib/index.js +++ b/src/lib/index.js @@ -495,7 +495,7 @@ lib.isIE = function() { * filled array of the given size. * * @example - * lib.toObject('nested.test[2].path', 'value'); + * lib.objectFromPath('nested.test[2].path', 'value'); * // returns { nested: { test: [null, null, { path: 'value' }]} * * @param {string} path to nested value @@ -503,7 +503,7 @@ lib.isIE = function() { * * @return {Object} the constructed object with a full nested path */ -lib.toObject = function(path, value) { +lib.objectFromPath = function(path, value) { var keys = path.split('.'), tmpObj, obj = tmpObj = {}; diff --git a/src/plot_api/plot_api.js b/src/plot_api/plot_api.js index d7c874354c2..d43276ff186 100644 --- a/src/plot_api/plot_api.js +++ b/src/plot_api/plot_api.js @@ -2300,7 +2300,7 @@ Plotly.relayout = function relayout(gd, astr, val) { objModule.draw(gd, objNum, p.parts.slice(2).join('.'), aobj[ai]); delete aobj[ai]; } else if(p.parts[0] === 'images') { - var update = Lib.toObject(astr, vi); + var update = Lib.objectFromPath(astr, vi); Lib.extendDeepAll(gd.layout, update); Images.supplyLayoutDefaults(gd.layout, gd._fullLayout); @@ -2652,10 +2652,10 @@ function makePlotFramework(gd) { // (only for shapes to be drawn below the whole plot) var layerBelow = fullLayout._paper.append('g') .classed('layer-below', true); - fullLayout._shapeLowerLayer = layerBelow.append('g') - .classed('shapelayer', true); fullLayout._imageLowerLayer = layerBelow.append('g') .classed('imagelayer', true); + fullLayout._shapeLowerLayer = layerBelow.append('g') + .classed('shapelayer', true); var subplots = Plotly.Axes.getSubplots(gd); if(subplots.join('') !== Object.keys(gd._fullLayout._plots || {}).join('')) { @@ -2669,17 +2669,17 @@ function makePlotFramework(gd) { // shape layers in subplots var layerSubplot = fullLayout._paper.selectAll('.layer-subplot'); - fullLayout._shapeSubplotLayer = layerSubplot.selectAll('.shapelayer'); fullLayout._imageSubplotLayer = layerSubplot.selectAll('.imagelayer'); + fullLayout._shapeSubplotLayer = layerSubplot.selectAll('.shapelayer'); // upper shape layer // (only for shapes to be drawn above the whole plot, including subplots) var layerAbove = fullLayout._paper.append('g') .classed('layer-above', true); - fullLayout._shapeUpperLayer = layerAbove.append('g') - .classed('shapelayer', true); fullLayout._imageUpperLayer = layerAbove.append('g') .classed('imagelayer', true); + fullLayout._shapeUpperLayer = layerAbove.append('g') + .classed('shapelayer', true); // single pie layer for the whole plot fullLayout._pielayer = fullLayout._paper.append('g').classed('pielayer', true); diff --git a/test/image/mocks/layout_image.json b/test/image/mocks/layout_image.json index d57fac8d1f1..71951fd3a2e 100644 --- a/test/image/mocks/layout_image.json +++ b/test/image/mocks/layout_image.json @@ -12,23 +12,22 @@ "xref": "paper", "yref": "paper", "x": 0, - "y": 0, + "y": 1, "sizex": 0.2, "sizey": 0.2, "xanchor": "right", - "yanchor": "bottom" + "yanchor": "bottom" }, { "source": "https://images.plot.ly/language-icons/api-home/js-logo.png", "xref": "x", "yref": "y", - "x": 2.5, + "x": 1.5, "y": 2, "sizex": 1, "sizey": 1, - "xanchor": "center", - "yanchor": "middle", - "layer": "below" + "xanchor": "right", + "yanchor": "bottom" }, { "source": "https://images.plot.ly/language-icons/api-home/r-logo.png", @@ -39,19 +38,32 @@ "sizex": 2, "sizey": 2, "sizing": "stretch", - "opacity": 0.4 + "opacity": 0.4, + "layer": "below" }, { "source": "https://images.plot.ly/language-icons/api-home/matlab-logo.png", "xref": "x", "yref": "paper", - "x": 2.75, + "x": 3, "y": 0, "sizex": 0.5, "sizey": 1, "opacity": 1, - "xanchor": "left", - "yanchor": "top" + "xanchor": "right", + "yanchor": "middle" + }, + { + "source": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANwAAAD1CAMAAAAMJ2tNAAAC9FBMVEUAAABEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEettEets5iYiFAAAA+3RSTlMAABVISkcS8/nwPvY/AUZraWpLAwSrtgZSmJZ7DIzRFIvQCAkXqcHAwlce4XQCI7G/L+z+X+sfBx0K5OWEMNTeN/H8VPuXy8jMdiW5ycc6wzJtyqQPho8FGLBbK73FQgsODVxWWRnZLUAqG876pfeFvDbupyYRXn+mvodoO1qauqNiNRD9tSETet9QVbPpb2dyGvXiIuO4M/jTYNZ1YdLmJy7nUbKOrbehU5mD2JFsT0lOMeCBfqLccZXdiETyOO/Pu9tzgCQ5zeqgqImc1xzGKUxF9EOTeRZ3rCB96NpNbp+SXZR8m7SqY6+NncQoLGWugpDtWD3VNDxwZtDaXE4AAAAJcEhZcwAALiMAAC4jAXilP3YAAAu4SURBVHja7Z15fEzXHsDzIyLBtIkZhmna1ExIJQZPyEYsIYKHR2jHTlQsEbEm9n2ndqlYaq21qK3UmvcoLX1FUBTP0r7XV6V9S9u3dP55c3/nZrZ77ph7eTXvvt/vD5+P+zv3nPO995zf+Z3f79xMUBAJCQkJCQkJCQkJCQkJCQkJyS8lUKZssFTKhYAm4MqWD5VKWAVtwAWH2qVSsRLBERzBERzBERzBERzBERzBEdz/KxzoXngxXCIRlfWgBThDFc5N9qpGgiM4giM4giM4giM4giM4giM4ggsAOKhW3SSR6i9FgibgXuYRvBKlDbhXeQQ1CI7gCI7gCI7gCI7gCI7gCI7gCI7gCI7gCI7gCI7gCI7gCI7gCI7g/qfgQGe2cMQAmoCLrlkrRiKv1dYGXGwcT1WH4AiO4AiO4AiO4AiO4AiO4Ajuv0Zg5e4gha8wNQBXtx5nB1m/nDbgftWA02B8Q43ANSI4giM4giM4giM4giM4giM47cOBLjohViIJwp++DQw4SEyK5UiyP9xgrpkSJ5HGTQIHLrWptH9xzYL9grPE8Ko1BQ5c8xYcTVpLDcO1IjiCIziCIziCIziCIziCCxy4Z5fCeuX57AoS01tnSKRNW6Hadr9uL1V1EHZS0PE3Uk37Wp0EVWdOfZldujoI9K9zVK3fsDlU3bpncu7qIdTXsxenF737+AUHfftxxCxUq8/iqWyCysDT9BPOJIOZp4nUOQggmadKBofKym3K6LsXJCQkJCQkJCQkJIEpENk/Ijw84k3zM/ZaIXmAUG//yOfpDYvbLmHn+WzrzR4o1BsXS3AER3AER3BYgW7Q4MFDdKBNuJyhobnD9BqFK5dnt1cxaBIOYLhdu3CRIzQMN3KUhuE62zULB4bRzxcOQG+2mA0AauBAZ7RYEq0gpx4T9wvDQX5CbGwS26FB8qCCseNGxIyvMmHipHxpH33AAWT1nNx2StWYmKnTxk6fMVNys6NAn9GzhNtnz3EeLMxh+Qx3OIAQ4YxkQrQOuM9+rg+ttPi8lLi4+QuEarsufGvRrNIMWIuMxbHePZSFA13CkqmL0pw5vFG9l46xgkeBZQVTyzPtcufBwhWtV3LglhQ6VIVvc4cHmIcJJyhTmvgJh8nC4QCwqnuRR4Jv1uo1FvALDvJfXDvLK0fZbN1c17MB/Tvrczk5xA0bJXBBkNpY+E9eZS7cps2o3OLfAGZw79pgwXxJ23lbZ8KT4QDabWvFSX5uH+Skk8nf8uEMw1C3Q88b/EtRl5GvBO615J2NxUeeG5ob7+zgrq7wJDiA5pmutx0amuZKhFcqpVMCFwS1MSc9vx0HLovV8x4ogdvdshlOtKl79r6/b/9e01BxELVq4p7C5MEBHFgvgh0cdqhHcPCADw4fEQF3dxQ7AbYPq5tMR7vjCz7m/G2b9OPRPLgofFizJnIs2omTgqrRKT/NKoMr2uD4p/jopEisECB6zW9Z/8IWuDXBhSvzO1by9JkxbCCBdWXEK+xaRoLHO65U0Z+lAOAjvLlXpNTist/FecusCA6f6E5XqwArq7DBmdHNJxzoj2O5+O2pbvYDzk5js3BKIiiGC4IDOEWKz0nKRX2MbU0EpXCfvO9xC2RXZdPOrSYe3IwN7MDFMk8j0/U8W1Aqu794f+FsF/DmTyVLUTWcjUfq+rvYO+HG6rxs4KbTeL13vg84MPweC33W06sjcPESg+6rAg4m45Rfv8yrTl11rHOXVSncam/fB+AMDriiar7gLhcKV3IjJA8ZSnDun7yiHM5pUt7xrBWSPhMuX73mt5dWCie1rpDDzMLnruXKGw7gOhZpc0Nq2CzdUVXdNSD8h4ObeO8XRs81Zzp6Ch3ylcJdrQD8fbNjXGbJw1nYxDzOmeHQH8fW6TnK4YKgZ4pwYfMqDzhbTWzsOiiFa9qN073BywXVok3ycLcOotmowGkOEnDpLCqnBs6GmyP7bXcOuIw+1J1U//cOItwIztIBObtx6PeXh7uG+H9YxoNLrIc1z1MBFwR383DQuLl/APeULXIuuPscNxss41HXWR5uHWsvkQcHD5htc01ZBXBRbfAc4F03OPNs9Jm+BMVwY3nds3ZB3QSniyiB+woLpHPbg8WM3KgGDv4oMUczFnnNYb/hJnK71wR103QycADpWOAN/r59P1qUoSEq4Er3NgPnuAzzPGzrT1bFcPEFIBvQsX9tlIOzst3JS3y4jrg7nZ+kCs74Z09PC+bi2rf8BSWhCAaXtpALtwaX8foWOTjbu56T0vPuVDxp23iMGrggWFDkYT7gBD6qzBAVcG9y4QoQLkYWzsiWuXA+HDsjLe7ZFMPdQCe5waRSl+xTcZAoh5MZlt+wvYdZ9s09xAKLfb65durgYKxdDICwIk3Ru++kKEAmGpQlXLgzqKtnk4PTnZc1tQ7tJBxIxy6qgnM8mzvCxbU5DG4/LnwXbGrgrnNXqm9R9whkraVJ9D65NW/BPV2bfJVwxm3ok6M1ACu2lPalssimCGfieYfiqBsrv4izm6fw1zm2wj+0qYQTd2+H8cT4rWP4GhNUwfH+yDdEPkZdhDxcQ7Q4vZK57917hVcGFwRlOghXCwVrC7VxFGwFVXAdsjhw36Fv3qqaPNwmNIjNeHHw0h3DTTW+pduy7djVOfbE55Uvci64O99z4Lagi3GwrjxcVA10AXkBVFiJhfOuqIULggNoUraZAc5iXTH56uA4H8eAfgdbCSw+Nqu72NDjud1/wQDf2iRvuL/6DWeYhgvlZYD+WNc6UAdnHydtMhVDCPa/ye/EHVuTq7jnWSl9NJFv491HwRtuhMXfLA8sFExK/HSwHcZF7oDSLFAp3IYZ3jXr2EIQNthXDCWkg9cDcNk6xG7hFvCACgi3NtpvuOjWwvUu+lvzVSxy7tGvHWav6XzlE7w+O9kXHOxFM1Y4yTv6Fcti7F+7R78GYY0NVvkNB7fRXuW0FCZ/WoHi9J0TruI9vYf3szGDBVdKfMcto3pjscwhnlHPEJwu9uJ97nHLmazKjySvWS75CKuEx5F39+8YnL+lHs5eXCfLNbtgUC129Yu+viPOUPIDlvu4gmujBbqNVVi64HOPVAOwuGPKYO/XLAvHTMqe1fgvqITLE3pYNLtkrpgryN57hLHFdXpSrkB/iEXONx8fJOZJrbc+ZPFc++OLnkP9R1Z0d2Uba8ZsA99pY1goDMhGgl8Z9pPypDKDK6yDe/i8jPR1LffdjTDVEBNuLRoCPCmFlTWFvaX4DVWGF1QO/vH2jtNilucfI72iqtlismvUhXsl+2rfPPrwn0+Cy25TOrBi+qmFO/mvgkWln4O65eda/NvwxPxcEORvzePm59p39B5+0OOq3ZkGTBM/BPUJx0yKIG1BLZyjlZ0DJbnBwm8MfmRWHY7WXmlW1p53fqU0iJ34XpHkK1efpxlgSIrYl+9UHHUQ51wfgO8f/eDRu6sXRur8zIlD6iOvL5NDH/fnetOWtpuVwYnhWRWLnBMud7/DOzX+9GBg6bApijscLPUkci6tEA4aSF08sJ06vj6sdDgvb9ZlYYjMURbrufuFYto2vjizJ4O7Ub8wLm7FpRze46iGYz50spozKgyOuZagX3Ztybw96V99EF4yhxNoBUNOQmxsQraVG+Qsc2r60ldNppfb/nwiycevJIGxbst7r5tMExavGRnFhoajXaHeHN6PDEHzURjuz35auAAUgOP4lh+AFuGicVNVXEFV/wIdbgCa1/pZGoQDY00xVaRFuBkY+0y5rPIQZCDDARzCFzfapkW4s5j+LF+i9mhuAMOBgZ0Ymp2lPTiHnx2GfuB+1d8xBCwc6Huwk4TjkjUDB/pEq/ArkImdTOh42VesUt23wIM7tf3+oTrrvp0qbh/ywkFDcJ5/3yh3wlN8/hvgcCebPM0nyAENl1aj9lP9xGzgwZ3bzUIR8YvGd74I8HR1RYSHhy+pG0DWMqHsz44uhTdM7Qv0N6JISEhISEhISEhISEhISEieg/wHXMU13xThNeUAAABhdEVYdGNvbW1lbnQARmlsZSBzb3VyY2U6IGh0dHA6Ly9jb21tb25zLndpa2ltZWRpYS5vcmcvd2lraS9GaWxlOlBsb3RseV9sb2dvX2Zvcl9kaWdpdGFsX2ZpbmFsXyg2KS5wbmetqmbcAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE0LTA5LTIxVDAzOjM1OjExKzAwOjAwKhOa5QAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNC0wOS0yMVQwMzozNToxMSswMDowMFtOIlkAAABGdEVYdHNvZnR3YXJlAEltYWdlTWFnaWNrIDYuNi45LTcgMjAxNC0wMy0wNiBRMTYgaHR0cDovL3d3dy5pbWFnZW1hZ2ljay5vcmeB07PDAAAAGHRFWHRUaHVtYjo6RG9jdW1lbnQ6OlBhZ2VzADGn/7svAAAAGXRFWHRUaHVtYjo6SW1hZ2U6OmhlaWdodAAxNzA0VsMjbQAAABh0RVh0VGh1bWI6OkltYWdlOjpXaWR0aAAxNTMxndUDgQAAABl0RVh0VGh1bWI6Ok1pbWV0eXBlAGltYWdlL3BuZz+yVk4AAAAXdEVYdFRodW1iOjpNVGltZQAxNDExMjcwNTEx0Rvi6AAAABN0RVh0VGh1bWI6OlNpemUAMjkuOUtCQvmCzmYAAAAzdEVYdFRodW1iOjpVUkkAZmlsZTovLy90bXAvbG9jYWxjb3B5X2UwNDYwYmM4MDVlYS0xLnBuZ1YfjUoAAAAASUVORK5CYII=", + "xref": "paper", + "yref": "paper", + "x": 0.5, + "y": 1, + "sizex": 0.2, + "sizey": 0.2, + "opacity": 1, + "xanchor": "middle", + "yanchor": "bottom" } ], "width": 800, diff --git a/test/jasmine/tests/lib_test.js b/test/jasmine/tests/lib_test.js index e30a7378e6f..d91328e1dc2 100644 --- a/test/jasmine/tests/lib_test.js +++ b/test/jasmine/tests/lib_test.js @@ -441,6 +441,40 @@ describe('Test lib.js:', function() { }); }); + describe('objectFromPath', function() { + + it('should return an object', function() { + var obj = Lib.objectFromPath('test', 'object'); + + expect(obj).toEqual({ test: 'object' }); + }); + + it('should work for deep objects', function() { + var obj = Lib.objectFromPath('deep.nested.test', 'object'); + + expect(obj).toEqual({ deep: { nested: { test: 'object' }}}); + }); + + it('should work for arrays', function() { + var obj = Lib.objectFromPath('nested[2].array', 'object'); + + expect(Object.keys(obj)).toEqual(['nested']); + expect(Array.isArray(obj.nested)).toBe(true); + expect(obj.nested[0]).toBe(undefined); + expect(obj.nested[2]).toEqual({ array: 'object' }); + }); + + it('should work for any given value', function() { + var obj = Lib.objectFromPath('test.type', { an: 'object' }); + + expect(obj).toEqual({ test: { type: { an: 'object' }}}); + + obj = Lib.objectFromPath('test.type', [42]); + + expect(obj).toEqual({ test: { type: [42] }}); + }); + }); + describe('coerce', function() { var coerce = Lib.coerce, out; @@ -811,7 +845,6 @@ describe('Test lib.js:', function() { el.attr('transform', 'rotate(20)'); expect(Lib.getTranslate(el)).toEqual({ x: 0, y: 0 }); }); - }); describe('setTranslate', function() { diff --git a/test/jasmine/tests/plotschema_test.js b/test/jasmine/tests/plotschema_test.js index 7064557f0af..d4ea5dda49f 100644 --- a/test/jasmine/tests/plotschema_test.js +++ b/test/jasmine/tests/plotschema_test.js @@ -115,7 +115,7 @@ describe('plot schema', function() { it('should convert _isLinkedToArray attributes to items object', function() { var astrs = [ - 'annotations', 'shapes', + 'annotations', 'shapes', 'images', 'xaxis.rangeselector.buttons', 'yaxis.rangeselector.buttons' ]; From 1f409e483a3ef8d0aa81660939a5426b0eb58fb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikl=C3=B3s=20Tusz?= Date: Thu, 12 May 2016 19:29:08 +0000 Subject: [PATCH 20/20] Update baseline image --- test/image/baselines/layout_image.png | Bin 77859 -> 81590 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/image/baselines/layout_image.png b/test/image/baselines/layout_image.png index 9da91d052cb65cc82b2a808259658aa61fd9cb70..bff7bdaa0561e1895f6c3fa1d7cff5a77399ec67 100644 GIT binary patch literal 81590 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

AG1)zLr-HlcrUt{c3V%d>0wIpLv}UJ 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%0APi9XN6|>>uk~>5i2Hu%S89wP5=Ht)RFc zLBNn)F+X3w)eZS8|K}N%HN)$4C^zbxs*k0o4Zx2-aqzNrXI4nEWs>Cd7F{wSpv7 zBl;+d4mP#-V^+fQFRFfG_C$szmNOSN5D9r;`D{H}S$QG!C>x|zY_Rj><6hMR@+#=+ zYQPlG%m?Ak2^nCwSAKfBQk&%#@e(_zoLlKCgsni8UPxwesd=UINqybE) zDVf;=nz&s_C_@juyYF5>Q9+7K!7t&0gl7{E6h)IZq+c#a^?OU8s2qRx>0~_+vV+;s zfu8R$%o3zdh4;IM9s^cN3xLGMy~-<$>o0Yt?|vBKY@Y}$l9>Zp2keNZTQCABf7%I3 zHGwdZC-l)1yt@5&|Et~__kvC&oXAA3z0I&4Z{xg>_{*>z9TtZ^`H`1VpvF8Bvqh_q!yqF8$|&2XxX-zz*-e1t<@HI719?_hQ~KpaC#^- zj5z=gAM)4~0j`P&K+KStAhFaxU08Co?wgL@cXOiKD-HpcU0t*wQa8G@`90_OgG(Up z^7WW^z16p5zWAXBE|6#Oy!}lfP1Ekko6CM&_&b``z2#s*8^qzi9Z$Pj4d>>&gp@k{ z02~l9TFy=FjRM=?7U?lAv0iA2^|dA6_xf|>5-cx|*M%0B6D+!xV?BJtY^up#|2Z$D zeF`OX3z+^g>r-prz1F{}_0SX6U9K{Lfw7`HNtovKWLdls&7};pkhG?ay0BqPxsMU6 z$^{tS9e{wT;w?%DGFWJjqyTuJXjR0zzi1smv%BN*CNiw;BvLvE0%mc^rL`_oE1rPK z;M1a0A1bi?i@KlDQnQ#YS1EKZOOUv+(|`_91a&?d-``g5B)NgT3?BW{vhVn_BuRwq zcmSsq#7ugX{y%@)K!dtke?xn5d#vj6On_E2LIRrLLyIBaF|DNYshE!)O28h#vW&SQ zHW}Ph1-qFlvoWYv$w8IKt>R&5Y`Vo#k6YiQ$)ym%DL@ft;>!0J)J!ONxH_V&#)}qU zc-*#(mN>z^@`#54oNQG*CMM}G-kh-4pOHXIo2`@#7S|O!qof`;!PK)3dT+&p`gQ06 zcAgD3JqF_+>38_?cb=6!TV0K$r-LChaLUMC9qIAb<_}}{mlWrsD7jS}GV0#7ebV1~Gcn zlb$*;dZiXrN24a;8^KrBqjw$e)g?-V>zXR|M6gWRv8H0I)*ozCUo(QNgqg!6Il7)L z$%pIbfK=x@DQ8ht-#3TB&h)(DU`eoY>_5i-XX0x9NilG5@sm#liRDs*Y{U7wGi{>C zzU7%xYt>HA!UB)9pmg07e*1J`EfNnFDb3JMhi7SvK=mMj2>uSm7m;LQsas({cwv|+ zsZAlpWN*9g=J>?{dW%cs%fj-kPC^~8jKUJ-6hKPS8%BnP;DKtI;qv{+snYlSh?I>( zgDaxcgV)N477+l$_7Sv?6uYSITNEANYc@Y+KO{?0D4LVgz;Dq5>AjEiQs39C=hDw& zw@Ub>9V;?_sPKDMZE?N=BmPvXGb5mIdX#(MwJI1C7epUe`n)ahygcn{ROg+$pNYh0 zanco14*$_torj@X^(P-%#cORNNox{o*DJ>(%`Pw27L$n1Dx)G}Tv@i&4|R{!^9lWW z^;X|&Sdb{Wmq@mdc{UOe791%+(+H-m z4O7LTuEfIPEXg#$9zk>sMqwkCET+Q`PIJ=gD@p5SF&TBubU3rQz%*ddSJIFxkUsDR zA<;fOIKZm^Kb$uOtwRtB(YweW&3s?++o4&2Q9>6~7 zj=*99n

{zC0?*Zlk#boybd7f-ym#?UJtFw0CI2?3m> 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 H%aH#Ak-l&W literal 77859 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 D+>V|M