From c4b4d0c848978fd3fd9815e985ad554c80479ca1 Mon Sep 17 00:00:00 2001 From: Antoine Roy-Gobeil Date: Fri, 21 Jun 2019 14:46:03 -0400 Subject: [PATCH 01/15] indicator: attributes --- src/traces/indicator/attributes.js | 408 +++++++++++++++++++++++++++++ 1 file changed, 408 insertions(+) create mode 100644 src/traces/indicator/attributes.js diff --git a/src/traces/indicator/attributes.js b/src/traces/indicator/attributes.js new file mode 100644 index 00000000000..cf18febfa5b --- /dev/null +++ b/src/traces/indicator/attributes.js @@ -0,0 +1,408 @@ +/** +* Copyright 2012-2019, 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 plotAttrs = require('../../plots/attributes'); +// var domainAttrs = require('../../plots/domain').attributes; + +var extendFlat = require('../../lib/extend').extendFlat; +var extendDeep = require('../../lib/extend').extendDeep; +var overrideAll = require('../../plot_api/edit_types').overrideAll; +var fontAttrs = require('../../plots/font_attributes'); +var colorAttrs = require('../../components/color/attributes'); +var domainAttrs = require('../../plots/domain').attributes; +var axesAttrs = require('../../plots/cartesian/layout_attributes'); +var templatedArray = require('../../plot_api/plot_template').templatedArray; +var delta = require('../../constants/delta.js'); + +var textFontAttrs = fontAttrs({ + editType: 'plot', + colorEditType: 'plot' +}); + +var gaugeBarAttrs = { + color: { + valType: 'color', + editType: 'plot', + role: 'info', + description: [ + 'Sets the background color of the arc.' + ].join(' ') + }, + line: { + color: { + valType: 'color', + role: 'info', + dflt: colorAttrs.defaultLine, + editType: 'plot', + description: [ + 'Sets the color of the line enclosing each sector.' + ].join(' ') + }, + width: { + valType: 'number', + role: 'info', + min: 0, + dflt: 0, + editType: 'plot', + description: [ + 'Sets the width (in px) of the line enclosing each sector.' + ].join(' ') + }, + editType: 'calc' + }, + thickness: { + valType: 'number', + role: 'info', + min: 0, + max: 1, + dflt: 1, + editType: 'plot', + description: [ + 'Sets the thickness of the bar as a fraction of the total thickness of the gauge.' + ].join(' ') + }, + editType: 'calc' +}; + +var stepsAttrs = templatedArray('threshold', extendDeep({}, gaugeBarAttrs, { + range: { + valType: 'info_array', + role: 'info', + items: [ + {valType: 'number', editType: 'plot'}, + {valType: 'number', editType: 'plot'} + ], + editType: 'plot', + // impliedEdits: {'autorange': false}, + description: [ + 'Sets the range of this axis.', + 'If the axis `type` is *log*, then you must take the log of your', + 'desired range (e.g. to set the range from 1 to 100,', + 'set the range from 0 to 2).', + 'If the axis `type` is *date*, it should be date strings,', + 'like date data, though Date objects and unix milliseconds', + 'will be accepted and converted to strings.', + 'If the axis `type` is *category*, it should be numbers,', + 'using the scale where each category is assigned a serial', + 'number from zero in the order it appears.' + ].join(' ') + } +})); + +module.exports = { + mode: { + valType: 'flaglist', + editType: 'calc', + role: 'info', + flags: ['number', 'delta', 'gauge'], + dflt: 'number' + }, + value: { + valType: 'number', + editType: 'calc', + role: 'info', + anim: true, + description: [ + 'Sets the number to be displayed.' + ].join(' ') + }, + align: { + valType: 'enumerated', + values: ['left', 'center', 'right'], + role: 'info', + editType: 'plot', + description: [ + 'Sets the horizontal alignment of the `text` within the box.', + 'Note that this attribute has no effect if an angular gauge is displayed:', + 'in this case, it is always centered' + ].join(' ') + }, + // position + domain: domainAttrs({name: 'indicator', trace: true, editType: 'calc'}), + + vmin: { + valType: 'number', + editType: 'calc', + role: 'info', + dflt: 0, + description: [ + 'Sets the minimum value of the gauge.' + ].join(' ') + }, + vmax: { + valType: 'number', + editType: 'calc', + role: 'info', + description: [ + 'Sets the maximum value of the gauge.' + ].join(' ') + }, + + title: { + text: { + valType: 'string', + role: 'info', + editType: 'plot', + description: [ + 'Sets the title of this indicator.' + ].join(' ') + }, + align: { + valType: 'enumerated', + values: ['left', 'center', 'right'], + role: 'info', + editType: 'plot', + description: [ + 'Sets the horizontal alignment of the title.', + 'It defaults to `center` except for bullet charts', + 'for which it defaults to right.' + ].join(' ') + }, + font: extendFlat({}, textFontAttrs, { + description: [ + 'Set the font used to display the title' + ].join(' ') + }), + editType: 'plot' + }, + number: { + valueformat: { + valType: 'string', + dflt: '.3s', + role: 'info', + editType: 'plot', + description: [ + 'Sets the value formatting rule using d3 formatting mini-language', + 'which is similar to those of Python. See', + 'https://github.com/d3/d3-format/blob/master/README.md#locale_format' + ].join(' ') + }, + font: extendFlat({}, textFontAttrs, { + description: [ + 'Set the font used to display main number' + ].join(' ') + }), + suffix: { + valType: 'string', + dflt: '', + role: 'info', + editType: 'plot', + description: [ + 'Sets a suffix appearing next to the number.' + ].join(' ') + }, + editType: 'plot' + }, + delta: { + reference: { + valType: 'number', + role: 'info', + editType: 'calc', + description: [ + 'Sets the reference value to compute the delta.' + ].join(' ') + }, + position: { + valType: 'enumerated', + values: ['top', 'bottom', 'left', 'right'], + role: 'info', + dflt: 'bottom', + editType: 'plot', + description: [ + 'Sets the position of delta with respect to the number.' + ].join(' ') + }, + relative: { + valType: 'boolean', + editType: 'plot', + role: 'info', + dflt: false, + description: [ + 'Show relative change' + ].join(' ') + }, + valueformat: { + valType: 'string', + role: 'info', + editType: 'plot', + description: [ + 'Sets the value formatting rule using d3 formatting mini-language', + 'which is similar to those of Python. See', + 'https://github.com/d3/d3-format/blob/master/README.md#locale_format' + ].join(' ') + }, + increasing: { + symbol: { + valType: 'string', + role: 'info', + dflt: delta.INCREASING.SYMBOL, + editType: 'plot', + description: [ + 'Sets the symbol to display for increasing value' + ].join(' ') + }, + color: { + valType: 'color', + role: 'info', + dflt: delta.INCREASING.COLOR, + editType: 'plot', + description: [ + 'Sets the color for increasing value.' + ].join(' ') + }, + editType: 'plot' + }, + decreasing: { + symbol: { + valType: 'string', + role: 'info', + dflt: delta.DECREASING.SYMBOL, + editType: 'plot', + description: [ + 'Sets the symbol to display for increasing value' + ].join(' ') + }, + color: { + valType: 'color', + role: 'info', + dflt: delta.DECREASING.COLOR, + editType: 'plot', + description: [ + 'Sets the color for increasing value.' + ].join(' ') + }, + editType: 'plot' + }, + font: extendFlat({}, textFontAttrs, { + description: [ + 'Set the font used to display the delta' + ].join(' ') + }), + editType: 'calc' + }, + gauge: { + shape: { + valType: 'enumerated', + editType: 'plot', + role: 'info', + dflt: 'angular', + values: ['angular', 'bullet'], + description: [ + 'Set the shape of the gauge' + ].join(' ') + }, + value: extendDeep({}, gaugeBarAttrs, { + color: {dflt: 'green'}, + description: [ + 'Set the appearance of the gauge\'s value' + ].join(' ') + }), + // Background of the gauge + bgcolor: { + valType: 'color', + role: 'info', + editType: 'plot', + description: 'Sets the gauge background color.' + }, + bordercolor: { + valType: 'color', + dflt: colorAttrs.defaultLine, + role: 'info', + editType: 'plot', + description: 'Sets the color of the border enclosing the gauge.' + }, + borderwidth: { + valType: 'number', + min: 0, + dflt: 0, + role: 'info', + editType: 'plot', + description: 'Sets the width (in px) of the border enclosing the gauge.' + }, + axis: overrideAll({ + // tick and title properties named and function exactly as in axes + tickmode: axesAttrs.tickmode, + nticks: axesAttrs.nticks, + tick0: axesAttrs.tick0, + dtick: axesAttrs.dtick, + tickvals: axesAttrs.tickvals, + ticktext: axesAttrs.ticktext, + ticks: extendFlat({}, axesAttrs.ticks, {dflt: ''}), + ticklen: axesAttrs.ticklen, + tickwidth: axesAttrs.tickwidth, + tickcolor: axesAttrs.tickcolor, + showticklabels: axesAttrs.showticklabels, + tickfont: fontAttrs({ + description: 'Sets the color bar\'s tick label font' + }), + tickangle: axesAttrs.tickangle, + tickformat: axesAttrs.tickformat, + tickformatstops: axesAttrs.tickformatstops, + tickprefix: axesAttrs.tickprefix, + showtickprefix: axesAttrs.showtickprefix, + ticksuffix: axesAttrs.ticksuffix, + showticksuffix: axesAttrs.showticksuffix, + separatethousands: axesAttrs.separatethousands, + exponentformat: axesAttrs.exponentformat, + showexponent: axesAttrs.showexponent, + editType: 'plot' + }, 'plot'), + // Steps (or ranges) and thresholds + steps: stepsAttrs, + threshold: { + line: { + color: { + valType: 'color', + role: 'info', + dflt: colorAttrs.defaultLine, + editType: 'plot', + description: [ + 'Sets the color of the threshold line.' + ].join(' ') + }, + width: { + valType: 'number', + role: 'info', + min: 0, + dflt: 1, + editType: 'plot', + description: [ + 'Sets the width (in px) of the threshold line.' + ].join(' ') + }, + editType: 'plot' + }, + thickness: { + valType: 'number', + role: 'info', + min: 0, + max: 1, + dflt: 0.85, + editType: 'plot', + description: [ + 'Sets the thickness of the threshold line as a fraction of the thickness of the gauge.' + ].join(' ') + }, + value: { + valType: 'number', + editType: 'calc', + dflt: false, + role: 'info', + description: [ + 'Sets a treshold value drawn as a line.' + ].join(' ') + }, + editType: 'plot' + }, + description: 'The gauge of the Indicator plot.', + editType: 'plot' + // TODO: in future version, add marker: (bar|needle) + } +}; From 9c68ec3074e8ab26a3e22d08297f370767f898de Mon Sep 17 00:00:00 2001 From: Antoine Roy-Gobeil Date: Fri, 21 Jun 2019 14:47:35 -0400 Subject: [PATCH 02/15] indicator: implementation --- lib/index-finance.js | 3 +- lib/index.js | 1 + lib/indicator.js | 11 + src/constants/delta.js | 20 + src/plot_api/plot_api.js | 3 + src/traces/indicator/base_plot.js | 29 ++ src/traces/indicator/calc.js | 33 ++ src/traces/indicator/constants.js | 19 + src/traces/indicator/defaults.js | 162 ++++++ src/traces/indicator/index.js | 30 ++ src/traces/indicator/plot.js | 788 ++++++++++++++++++++++++++++++ 11 files changed, 1098 insertions(+), 1 deletion(-) create mode 100644 lib/indicator.js create mode 100644 src/constants/delta.js create mode 100644 src/traces/indicator/base_plot.js create mode 100644 src/traces/indicator/calc.js create mode 100644 src/traces/indicator/constants.js create mode 100644 src/traces/indicator/defaults.js create mode 100644 src/traces/indicator/index.js create mode 100644 src/traces/indicator/plot.js diff --git a/lib/index-finance.js b/lib/index-finance.js index 4a590fde2bd..fe34318733d 100644 --- a/lib/index-finance.js +++ b/lib/index-finance.js @@ -18,7 +18,8 @@ Plotly.register([ require('./ohlc'), require('./candlestick'), require('./funnel'), - require('./waterfall') + require('./waterfall'), + require('./indicator') ]); module.exports = Plotly; diff --git a/lib/index.js b/lib/index.js index c3f2ab67bdd..325492841b2 100644 --- a/lib/index.js +++ b/lib/index.js @@ -49,6 +49,7 @@ Plotly.register([ require('./scattermapbox'), require('./sankey'), + require('./indicator'), require('./table'), diff --git a/lib/indicator.js b/lib/indicator.js new file mode 100644 index 00000000000..d9d92eab655 --- /dev/null +++ b/lib/indicator.js @@ -0,0 +1,11 @@ +/** +* Copyright 2012-2019, 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'; + +module.exports = require('../src/traces/indicator'); diff --git a/src/constants/delta.js b/src/constants/delta.js new file mode 100644 index 00000000000..bc94eedd93e --- /dev/null +++ b/src/constants/delta.js @@ -0,0 +1,20 @@ +/** +* Copyright 2012-2019, 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'; + +module.exports = { + INCREASING: { + COLOR: '#3D9970', + SYMBOL: '▲' + }, + DECREASING: { + COLOR: '#FF4136', + SYMBOL: '▼' + } +}; diff --git a/src/plot_api/plot_api.js b/src/plot_api/plot_api.js index 33a1a000cb7..12b2828b3a8 100644 --- a/src/plot_api/plot_api.js +++ b/src/plot_api/plot_api.js @@ -3779,6 +3779,9 @@ function makePlotFramework(gd) { // single sunburst layer for the whole plot fullLayout._sunburstlayer = fullLayout._paper.append('g').classed('sunburstlayer', true); + // single indicator layer for the whole plot + fullLayout._indicatorlayer = fullLayout._paper.append('g').classed('indicatorlayer', true); + // fill in image server scrape-svg fullLayout._glimages = fullLayout._paper.append('g').classed('glimages', true); diff --git a/src/traces/indicator/base_plot.js b/src/traces/indicator/base_plot.js new file mode 100644 index 00000000000..07a0e8b35de --- /dev/null +++ b/src/traces/indicator/base_plot.js @@ -0,0 +1,29 @@ +/** +* Copyright 2012-2019, 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 Registry = require('../../registry'); +var getModuleCalcData = require('../../plots/get_data').getModuleCalcData; + +var name = exports.name = 'indicator'; + +exports.plot = function(gd, traces, transitionOpts, makeOnCompleteCallback) { + var _module = Registry.getModule(name); + var cdmodule = getModuleCalcData(gd.calcdata, _module)[0]; + _module.plot(gd, cdmodule, transitionOpts, makeOnCompleteCallback); +}; + +exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) { + var had = (oldFullLayout._has && oldFullLayout._has(name)); + var has = (newFullLayout._has && newFullLayout._has(name)); + + if(had && !has) { + oldFullLayout._indicatorlayer.selectAll('g.trace').remove(); + } +}; diff --git a/src/traces/indicator/calc.js b/src/traces/indicator/calc.js new file mode 100644 index 00000000000..c86dc06ed9f --- /dev/null +++ b/src/traces/indicator/calc.js @@ -0,0 +1,33 @@ +/** +* Copyright 2012-2019, 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 Lib = require('../../lib'); + +function calc(gd, trace) { + var cd = []; + + // var singleValue = len === 1; + // var lastReading = trace.values[len - 1]; + // var secondLastReading = singleValue ? lastReading : trace.values[len - 2]; + var lastReading = trace.value; + var secondLastReading = trace.delta ? trace.delta.reference : trace._lastValue || trace.value; + cd[0] = { + y: lastReading, + lastY: secondLastReading, + + delta: lastReading - secondLastReading, + relativeDelta: (lastReading - secondLastReading) / secondLastReading, + }; + return cd; +} + +module.exports = { + calc: calc +}; diff --git a/src/traces/indicator/constants.js b/src/traces/indicator/constants.js new file mode 100644 index 00000000000..b11d4d3e5bc --- /dev/null +++ b/src/traces/indicator/constants.js @@ -0,0 +1,19 @@ +/** +* Copyright 2012-2019, 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'; + +module.exports = { + // Defaults for delta + defaultNumberFontSize: 80, + bulletNumberDomainSize: 0.25, + bulletPadding: 0.025, + innerRadius: 0.75, + valueThickness: 0.5, // thickness of value bars relative to full thickness, + titlePadding: 5 +}; diff --git a/src/traces/indicator/defaults.js b/src/traces/indicator/defaults.js new file mode 100644 index 00000000000..cfe011686e8 --- /dev/null +++ b/src/traces/indicator/defaults.js @@ -0,0 +1,162 @@ +/** +* Copyright 2012-2019, 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 Lib = require('../../lib'); +var attributes = require('./attributes'); +var handleDomainDefaults = require('../../plots/domain').defaults; +var Template = require('../../plot_api/plot_template'); +var handleArrayContainerDefaults = require('../../plots/array_container_defaults'); +var cn = require('./constants.js'); + +var handleTickValueDefaults = require('../../plots/cartesian/tick_value_defaults'); +var handleTickMarkDefaults = require('../../plots/cartesian/tick_mark_defaults'); +var handleTickLabelDefaults = require('../../plots/cartesian/tick_label_defaults'); + +function supplyDefaults(traceIn, traceOut, defaultColor, layout) { + function coerce(attr, dflt) { + return Lib.coerce(traceIn, traceOut, attributes, attr, dflt); + } + + handleDomainDefaults(traceOut, layout, coerce); + + // Mode + coerce('mode'); + traceOut._hasNumber = traceOut.mode.indexOf('number') !== -1; + traceOut._hasDelta = traceOut.mode.indexOf('delta') !== -1; + traceOut._hasGauge = traceOut.mode.indexOf('gauge') !== -1; + + coerce('value'); + coerce('vmin'); + coerce('vmax', 1.5 * traceOut.value); + + // Number attributes + var auto = []; + var bignumberFontSize; + if(traceOut._hasNumber) { + coerce('number.valueformat'); + coerce('number.font.color', layout.font.color); + coerce('number.font.family', layout.font.family); + coerce('number.font.size', 'auto'); + if(traceOut.number.font.size === 'auto') { + traceOut.number.font.size = cn.defaultNumberFontSize; + auto[0] = true; + } + coerce('number.suffix'); + bignumberFontSize = traceOut.number.font.size; + } + + // delta attributes + var deltaFontSize; + if(traceOut._hasDelta) { + coerce('delta.font.color', layout.font.color); + coerce('delta.font.family', layout.font.family); + coerce('delta.font.size', 'auto'); + if(traceOut.delta.font.size === 'auto') { + traceOut.delta.font.size = (traceOut._hasNumber ? 0.5 : 1) * (bignumberFontSize || cn.defaultNumberFontSize); + auto[1] = true; + } + coerce('delta.reference', traceOut.value); + coerce('delta.relative'); + coerce('delta.valueformat', traceOut.delta.relative ? '2%' : '.3s'); + coerce('delta.increasing.symbol'); + coerce('delta.increasing.color'); + coerce('delta.decreasing.symbol'); + coerce('delta.decreasing.color'); + coerce('delta.position'); + deltaFontSize = traceOut.delta.font.size; + } + traceOut._scaleNumbers = (!traceOut._hasNumber || auto[0]) && (!traceOut._hasDelta || auto[1]) || false; + + // Title attributes + coerce('title.font.color', layout.font.color); + coerce('title.font.family', layout.font.family); + coerce('title.font.size', 0.25 * (bignumberFontSize || deltaFontSize || cn.defaultNumberFontSize)); + coerce('title.text'); + + // Gauge attributes + var gaugeIn, gaugeOut, axisIn, axisOut; + function coerceGauge(attr, dflt) { + return Lib.coerce(gaugeIn, gaugeOut, attributes.gauge, attr, dflt); + } + function coerceGaugeAxis(attr, dflt) { + return Lib.coerce(axisIn, axisOut, attributes.gauge.axis, attr, dflt); + } + if(traceOut._hasGauge) { + gaugeIn = traceIn.gauge; + gaugeOut = Template.newContainer(traceOut, 'gauge'); + coerceGauge('shape'); + var isBullet = traceOut._isBullet = traceOut.gauge.shape === 'bullet'; + if(!isBullet) { + coerce('title.align', 'center'); + } + var isAngular = traceOut._isAngular = traceOut.gauge.shape === 'angular'; + if(!isAngular) { + coerce('align', 'center'); + } + + // gauge background + coerceGauge('bgcolor'); + coerceGauge('borderwidth'); + coerceGauge('bordercolor'); + + // gauge value indicator + coerceGauge('value.color'); + coerceGauge('value.line.color'); + coerceGauge('value.line.width'); + var defaultValueThickness = cn.valueThickness * (traceOut.gauge.shape === 'bullet' ? 0.5 : 1); + coerceGauge('value.thickness', defaultValueThickness); + + // Gauge steps + if(gaugeIn && gaugeIn.steps) { + handleArrayContainerDefaults(gaugeIn, gaugeOut, { + name: 'steps', + handleItemDefaults: stepDefaults + }); + } else { + gaugeOut.steps = []; + } + + // Gauge threshold + coerceGauge('threshold.value'); + coerceGauge('threshold.thickness'); + coerceGauge('threshold.line.width'); + coerceGauge('threshold.line.color'); + + // Gauge axis + axisIn = {}; + if(gaugeIn) axisIn = gaugeIn.axis || {}; + axisOut = Template.newContainer(gaugeOut, 'axis'); + handleTickValueDefaults(axisIn, axisOut, coerceGaugeAxis, 'linear'); + + var opts = {outerTicks: false, font: layout.font}; + handleTickLabelDefaults(axisIn, axisOut, coerceGaugeAxis, 'linear', opts); + handleTickMarkDefaults(axisIn, axisOut, coerceGaugeAxis, 'linear', opts); + } else { + coerce('title.align', 'center'); + coerce('align', 'center'); + traceOut._isAngular = traceOut._isBullet = false; + } +} + +function stepDefaults(valueIn, valueOut) { + function coerce(attr, dflt) { + return Lib.coerce(valueIn, valueOut, attributes.gauge.steps, attr, dflt); + } + + coerce('color'); + coerce('line.color'); + coerce('line.width'); + coerce('range'); + coerce('thickness'); +} + +module.exports = { + supplyDefaults: supplyDefaults +}; diff --git a/src/traces/indicator/index.js b/src/traces/indicator/index.js new file mode 100644 index 00000000000..24e93101bf3 --- /dev/null +++ b/src/traces/indicator/index.js @@ -0,0 +1,30 @@ +/** +* Copyright 2012-2019, 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'; + +module.exports = { + moduleType: 'trace', + name: 'indicator', + basePlotModule: require('./base_plot'), + categories: ['svg', 'noOpacity', 'noHover'], + animatable: true, + + attributes: require('./attributes'), + supplyDefaults: require('./defaults').supplyDefaults, + + calc: require('./calc').calc, + + plot: require('./plot'), + + meta: { + description: [ + 'TODO: add description' + ].join(' ') + } +}; diff --git a/src/traces/indicator/plot.js b/src/traces/indicator/plot.js new file mode 100644 index 00000000000..116ba597693 --- /dev/null +++ b/src/traces/indicator/plot.js @@ -0,0 +1,788 @@ +/** +* Copyright 2012-2019, 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 Lib = require('../../lib'); +var rad2deg = Lib.rad2deg; +var MID_SHIFT = require('../../constants/alignment').MID_SHIFT; +var Drawing = require('../../components/drawing'); +var cn = require('./constants'); +var svgTextUtils = require('../../lib/svg_text_utils'); + +var Axes = require('../../plots/cartesian/axes'); +var handleAxisDefaults = require('../../plots/cartesian/axis_defaults'); +var handleAxisPositionDefaults = require('../../plots/cartesian/position_defaults'); +var axisLayoutAttrs = require('../../plots/cartesian/layout_attributes'); + +var anchor = { + 'left': 'start', + 'center': 'middle', + 'right': 'end' +}; +var position = { + 'left': 0, + 'center': 0.5, + 'right': 1 +}; + +module.exports = function plot(gd, cdModule, transitionOpts, makeOnCompleteCallback) { + var fullLayout = gd._fullLayout; + var onComplete; + + // If transition config is provided, then it is only a partial replot and traces not + // updated are removed. + var hasTransition = transitionOpts && transitionOpts.duration > 0; + + if(hasTransition) { + if(makeOnCompleteCallback) { + // If it was passed a callback to register completion, make a callback. If + // this is created, then it must be executed on completion, otherwise the + // pos-transition redraw will not execute: + onComplete = makeOnCompleteCallback(); + } + } + + Lib.makeTraceGroups(fullLayout._indicatorlayer, cdModule, 'trace').each(function(cd) { + var cd0 = cd[0]; + var trace = cd0.trace; + var plotGroup = d3.select(this); + + // Elements in trace + var hasGauge = trace._hasGauge; + var isAngular = trace._isAngular; + var isBullet = trace._isBullet; + + // Domain size + var domain = trace.domain; + var size = { + w: fullLayout._size.w * (domain.x[1] - domain.x[0]), + h: fullLayout._size.h * (domain.y[1] - domain.y[0]), + l: fullLayout._size.l + fullLayout._size.w * domain.x[0], + r: fullLayout._size.r + fullLayout._size.w * (1 - domain.x[1]), + t: fullLayout._size.t + fullLayout._size.h * (1 - domain.y[1]), + b: fullLayout._size.b + fullLayout._size.h * (domain.y[0]) + }; + var centerX = size.l + size.w / 2; + var centerY = size.t + size.h / 2; + + + // Angular gauge size + var radius = Math.min(size.w / 2, size.h); // fill domain + var innerRadius = cn.innerRadius * radius; + + // Position numbers based on mode and set the scaling logic + var numbersX, numbersY, numbersScaler; + var numbersAlign = trace.align || 'center'; + + numbersY = centerY; + if(!hasGauge) { + numbersX = size.l + position[numbersAlign] * size.w; + numbersScaler = function(el) { + return fitTextInsideBox(el, 0.9 * size.w, 0.9 * size.h); + }; + } else { + if(isAngular) { + numbersX = centerX; + numbersY = centerY + radius / 2; + numbersScaler = function(el) { + return fitTextInsideCircle(el, 0.9 * innerRadius); + }; + } + if(isBullet) { + var padding = cn.bulletPadding; + var p = (1 - cn.bulletNumberDomainSize) + padding; + numbersX = size.l + (p + (1 - p) * position[numbersAlign]) * size.w; + numbersScaler = function(el) { + return fitTextInsideBox(el, (cn.bulletNumberDomainSize - padding) * size.w, size.h); + }; + } + } + + // Draw numbers + var numbersOpts = { + numbersX: numbersX, + numbersY: numbersY, + numbersScaler: numbersScaler, + hasTransition: hasTransition, + transitionOpts: transitionOpts, + onComplete: onComplete + }; + drawNumbers(gd, plotGroup, cd, numbersOpts); + + // Reexpress our gauge background attributes for drawing + var gaugeBg, gaugeOutline; + if(hasGauge) { + gaugeBg = { + range: [trace.vmin, trace.vmax], + color: trace.gauge.bgcolor, + line: { + color: trace.gauge.bordercolor, + width: 0 + }, + thickness: 1 + }; + + gaugeOutline = { + range: [trace.vmin, trace.vmax], + color: 'rgba(0, 0, 0, 0)', + line: { + color: trace.gauge.bordercolor, + width: trace.gauge.borderwidth + }, + thickness: 1 + }; + } + + // Prepare angular gauge layers + var data = cd.filter(function() {return isAngular;}); + var angularGauge = plotGroup.selectAll('g.angular').data(data); + angularGauge.exit().remove(); + var angularaxisLayer = plotGroup.selectAll('g.angularaxis').data(data); + angularaxisLayer.exit().remove(); + + var gaugeOpts = { + size: size, + radius: radius, + innerRadius: innerRadius, + gaugeBg: gaugeBg, + gaugeOutline: gaugeOutline, + angularaxisLayer: angularaxisLayer, + angularGauge: angularGauge, + hasTransition: hasTransition, + transitionOpts: transitionOpts, + onComplete: onComplete + }; + if(isAngular) drawAngularGauge(gd, plotGroup, cd, gaugeOpts); + + // Prepare bullet layers + data = cd.filter(function() {return isBullet;}); + var bulletGauge = plotGroup.selectAll('g.bullet').data(data); + bulletGauge.exit().remove(); + var bulletaxisLayer = plotGroup.selectAll('g.bulletaxis').data(data); + bulletaxisLayer.exit().remove(); + + gaugeOpts = { + size: size, + gaugeBg: gaugeBg, + gaugeOutline: gaugeOutline, + bulletGauge: bulletGauge, + bulletaxisLayer: bulletaxisLayer, + hasTransition: hasTransition, + transitionOpts: transitionOpts, + onComplete: onComplete + }; + if(isBullet) drawBulletGauge(gd, plotGroup, cd, gaugeOpts); + + // title + var title = plotGroup.selectAll('text.title').data(cd); + title.exit().remove(); + title.enter().append('text').classed('title', true); + title + .attr('text-anchor', function() { + return isBullet ? anchor.right : anchor[trace.title.align]; + }) + .text(trace.title.text) + .call(Drawing.font, trace.title.font) + .call(svgTextUtils.convertToTspans, gd); + + // Position title + title.attr('transform', function() { + var titleX = size.l + size.w * position[trace.title.align]; + var titleY; + var titlePadding = cn.titlePadding; + var titlebBox = Drawing.bBox(title.node()); + if(hasGauge) { + if(isAngular) { + // position above axis ticks/labels + var bBox = Drawing.bBox(angularaxisLayer.node()); + titleY = (bBox.top - titlePadding) - titlebBox.bottom; + } + if(isBullet) { + // position outside domain + titleY = numbersY - (titlebBox.top + titlebBox.bottom) / 2; + titleX = size.l - cn.bulletPadding * size.w; // Outside domain, on the left + } + } else { + // position above numbers + titleY = (trace._numbersTop - titlePadding) - titlebBox.bottom; + } + return strTranslate(titleX, titleY); + }); + }); +}; + +function drawBulletGauge(gd, plotGroup, cd, gaugeOpts) { + var trace = cd[0].trace; + + var bullet = gaugeOpts.bulletGauge; + var bulletaxis = gaugeOpts.bulletaxisLayer; + var gaugeBg = gaugeOpts.gaugeBg; + var gaugeOutline = gaugeOpts.gaugeOutline; + var size = gaugeOpts.size; + var domain = trace.domain; + + var hasTransition = gaugeOpts.hasTransition; + var transitionOpts = gaugeOpts.transitionOpts; + var onComplete = gaugeOpts.onComplete; + + // preparing axis + var ax, vals, transFn, tickSign, shift; + var opts = trace.gauge.axis; + + // Enter bullet, axis + bullet.enter().append('g').classed('bullet', true); + bullet.attr('transform', 'translate(' + size.l + ', ' + size.t + ')'); + + bulletaxis.enter().append('g') + .classed('bulletaxis', true) + .classed('crisp', true); + bulletaxis.selectAll('g.' + 'xbulletaxis' + 'tick,path').remove(); + + // Draw bullet + var bulletHeight = size.h; // use all vertical domain + var innerBulletHeight = trace.gauge.value.thickness * bulletHeight; + var bulletLeft = domain.x[0]; + var bulletRight = domain.x[0] + (domain.x[1] - domain.x[0]) * ((trace._hasNumber || trace._hasDelta) ? (1 - cn.bulletNumberDomainSize) : 1); + + ax = mockAxis(gd, opts, [trace.vmin, trace.vmax]); + ax._id = 'xbulletaxis'; + ax.domain = [bulletLeft, bulletRight]; + ax.setScale(); + + vals = Axes.calcTicks(ax); + transFn = Axes.makeTransFn(ax); + tickSign = Axes.getTickSigns(ax)[2]; + + shift = size.t + size.h; + if(ax.visible) { + Axes.drawTicks(gd, ax, { + vals: ax.ticks === 'inside' ? Axes.clipEnds(ax, vals) : vals, + layer: bulletaxis, + path: Axes.makeTickPath(ax, shift, tickSign), + transFn: transFn + }); + + Axes.drawLabels(gd, ax, { + vals: vals, + layer: bulletaxis, + transFn: transFn, + labelFns: Axes.makeLabelFns(ax, shift) + }); + } + + function drawRect(s) { + s + .attr('width', function(d) { return Math.max(0, ax.c2p(d.range[1] - d.range[0]));}) + .attr('x', function(d) { return ax.c2p(d.range[0]);}) + .attr('y', function(d) { return 0.5 * (1 - d.thickness) * bulletHeight;}) + .attr('height', function(d) { return d.thickness * bulletHeight; }); + } + + // Draw bullet background, steps + var boxes = [gaugeBg].concat(trace.gauge.steps); + var targetBullet = bullet.selectAll('g.targetBullet').data(boxes); + targetBullet.enter().append('g').classed('targetBullet', true).append('rect'); + targetBullet.select('rect') + .call(drawRect) + .call(styleShape); + targetBullet.exit().remove(); + + // Draw value bar with transitions + var fgBullet = bullet.selectAll('g.fgBullet').data([trace.gauge.value]); + fgBullet.enter().append('g').classed('fgBullet', true).append('rect'); + fgBullet.select('rect') + .attr('height', innerBulletHeight) + .attr('y', (bulletHeight - innerBulletHeight) / 2) + .call(styleShape); + if(hasTransition) { + fgBullet.select('rect') + .transition() + .duration(transitionOpts.duration) + .ease(transitionOpts.easing) + .each('end', function() { onComplete && onComplete(); }) + .each('interrupt', function() { onComplete && onComplete(); }) + .attr('width', Math.max(0, ax.c2p(Math.min(trace.vmax, cd[0].y)))); + } else { + fgBullet.select('rect') + .attr('width', Math.max(0, ax.c2p(Math.min(trace.vmax, cd[0].y)))); + } + fgBullet.exit().remove(); + + var data = cd.filter(function() {return trace.gauge.threshold.value;}); + var threshold = bullet.selectAll('g.threshold').data(data); + threshold.enter().append('g').classed('threshold', true).append('line'); + threshold.select('line') + .attr('x1', ax.c2p(trace.gauge.threshold.value)) + .attr('x2', ax.c2p(trace.gauge.threshold.value)) + .attr('y1', (1 - trace.gauge.threshold.thickness) / 2 * bulletHeight) + .attr('y2', (1 - (1 - trace.gauge.threshold.thickness) / 2) * bulletHeight) + .style('stroke', trace.gauge.threshold.line.color) + .style('stroke-width', trace.gauge.threshold.line.width); + threshold.exit().remove(); + + var bulletOutline = bullet.selectAll('g.bulletOutline').data([gaugeOutline]); + bulletOutline.enter().append('g').classed('bulletOutline', true).append('rect'); + bulletOutline.select('rect') + .call(drawRect) + .call(styleShape); + bulletOutline.exit().remove(); +} + +function drawAngularGauge(gd, plotGroup, cd, gaugeOpts) { + var trace = cd[0].trace; + + var size = gaugeOpts.size; + var radius = gaugeOpts.radius; + var innerRadius = gaugeOpts.innerRadius; + var gaugeBg = gaugeOpts.gaugeBg; + var gaugeOutline = gaugeOpts.gaugeOutline; + var gaugePosition = [size.l + size.w / 2, size.t + size.h / 2 + radius / 2]; + var angularGauge = gaugeOpts.angularGauge; + var angularaxisLayer = gaugeOpts.angularaxisLayer; + + var hasTransition = gaugeOpts.hasTransition; + var transitionOpts = gaugeOpts.transitionOpts; + var onComplete = gaugeOpts.onComplete; + + // circular gauge + var theta = Math.PI / 2; + function valueToAngle(v) { + var angle = (v - trace.vmin) / (trace.vmax - trace.vmin) * Math.PI - theta; + if(angle < -theta) return -theta; + if(angle > theta) return theta; + return angle; + } + + function arcPathGenerator(size) { + return d3.svg.arc() + .innerRadius((innerRadius + radius) / 2 - size / 2 * (radius - innerRadius)) + .outerRadius((innerRadius + radius) / 2 + size / 2 * (radius - innerRadius)) + .startAngle(-theta); + } + + function drawArc(p) { + p + .attr('d', function(d) { + return arcPathGenerator(d.thickness) + .startAngle(valueToAngle(d.range[0])) + .endAngle(valueToAngle(d.range[1]))(); + }); + } + + // preparing axis + var ax, vals, transFn, tickSign; + var opts = trace.gauge.axis; + + // Enter gauge and axis + angularGauge.enter().append('g').classed('angular', true); + angularGauge.attr('transform', strTranslate(gaugePosition[0], gaugePosition[1])); + + angularaxisLayer.enter().append('g') + .classed('angularaxis', true) + .classed('crisp', true); + angularaxisLayer.selectAll('g.' + 'angularaxis' + 'tick,path').remove(); + + ax = mockAxis(gd, opts); + ax.type = 'linear'; + ax.range = [trace.vmin, trace.vmax]; + ax._id = 'x'; // or 'y', but I don't think this makes a difference here + ax.setScale(); + + // 't'ick to 'g'eometric radians is used all over the place here + var t2g = function(d) { + return (ax.range[0] - d.x) / (ax.range[1] - ax.range[0]) * Math.PI + Math.PI; + }; + + var labelFns = {}; + var out = Axes.makeLabelFns(ax, 0); + var labelStandoff = out.labelStandoff; + labelFns.xFn = function(d) { + var rad = t2g(d); + return Math.cos(rad) * labelStandoff; + }; + labelFns.yFn = function(d) { + var rad = t2g(d); + var ff = Math.sin(rad) > 0 ? 0.2 : 1; + return -Math.sin(rad) * (labelStandoff + d.fontSize * ff) + + Math.abs(Math.cos(rad)) * (d.fontSize * MID_SHIFT); + }; + labelFns.anchorFn = function(d) { + var rad = t2g(d); + var cos = Math.cos(rad); + return Math.abs(cos) < 0.1 ? + 'middle' : + (cos > 0 ? 'start' : 'end'); + }; + labelFns.heightFn = function(d, a, h) { + var rad = t2g(d); + return -0.5 * (1 + Math.sin(rad)) * h; + }; + var _transFn = function(rad) { + return strTranslate(gaugePosition[0] + radius * Math.cos(rad), gaugePosition[1] - radius * Math.sin(rad)); + }; + transFn = function(d) { + return _transFn(t2g(d)); + }; + var transFn2 = function(d) { + var rad = t2g(d); + return _transFn(rad) + strRotate(-rad2deg(rad)); + }; + vals = Axes.calcTicks(ax); + tickSign; + if(ax.visible) { + tickSign = ax.ticks === 'inside' ? -1 : 1; + var pad = (ax.linewidth || 1) / 2; + Axes.drawTicks(gd, ax, { + vals: vals, + layer: angularaxisLayer, + path: 'M' + (tickSign * pad) + ',0h' + (tickSign * ax.ticklen), + transFn: transFn2, + crips: true + }); + Axes.drawLabels(gd, ax, { + vals: vals, + layer: angularaxisLayer, + transFn: transFn, + labelFns: labelFns + }); + } + + // Reexpress threshold for drawing + var v = trace.gauge.threshold.value; + var thresholdArc = { + range: [v, v], + color: trace.gauge.threshold.color, + line: { + color: trace.gauge.threshold.line.color, + width: trace.gauge.threshold.line.width + }, + thickness: trace.gauge.threshold.thickness + }; + + // Draw background + steps + var arcs = [gaugeBg].concat(trace.gauge.steps); + if(v) arcs.push(thresholdArc); + var targetArc = angularGauge.selectAll('g.targetArc').data(arcs); + targetArc.enter().append('g').classed('targetArc', true).append('path'); + targetArc.select('path').call(drawArc).call(styleShape); + targetArc.exit().remove(); + // Draw foreground with transition + var valueArcPath = arcPathGenerator(trace.gauge.value.thickness); + var fgArc = angularGauge.selectAll('g.fgArc').data([trace.gauge.value]); + fgArc.enter().append('g').classed('fgArc', true).append('path'); + var fgArcPath = fgArc.select('path'); + if(hasTransition) { + fgArcPath + .transition() + .duration(transitionOpts.duration) + .ease(transitionOpts.easing) + .each('end', function() { trace._lastValue = cd[0].y; onComplete && onComplete(); }) + .each('interrupt', function() { onComplete && onComplete(); }) + .attrTween('d', arcTween(valueArcPath, valueToAngle(cd[0].lastY), valueToAngle(cd[0].y))); + } else { + fgArcPath + .attr('d', valueArcPath.endAngle(valueToAngle(cd[0].y))); + } + fgArcPath.call(styleShape); + fgArc.exit().remove(); + var gaugeBorder = angularGauge.selectAll('g.gaugeOutline').data([gaugeOutline]); + gaugeBorder.enter().append('g').classed('gaugeOutline', true).append('path'); + gaugeBorder.select('path').call(drawArc).call(styleShape); + gaugeBorder.exit().remove(); +} + +function drawNumbers(gd, plotGroup, cd, opts) { + var trace = cd[0].trace; + var numbersX = opts.numbersX; + var numbersY = opts.numbersY; + var numbersAnchor = anchor[trace.align || 'center']; + + var hasTransition = opts.hasTransition; + var transitionOpts = opts.transitionOpts; + var onComplete = opts.onComplete; + + var bignumberFontSize, deltaFontSize; + if(trace._hasNumber) bignumberFontSize = trace.number.font.size; + if(trace._hasDelta) deltaFontSize = trace.delta.font.size; + + // Position delta relative to bignumber + var deltaDy = 0; + var deltaX = 0; + var bignumberY = 0; + + if(trace._hasDelta && trace._hasNumber) { + if(trace.delta.position === 'bottom') { + deltaDy = deltaFontSize * 1.5; + } + if(trace.delta.position === 'top') { + deltaDy = -bignumberFontSize + MID_SHIFT * deltaFontSize; + } + if(trace.delta.position === 'right') { + deltaX = undefined; + } + if(trace.delta.position === 'left') { + deltaX = undefined; + bignumberY = MID_SHIFT * bignumberFontSize / 2; + } + } + deltaDy -= MID_SHIFT * deltaFontSize; + + var numbers = plotGroup.selectAll('text.numbers').data(cd); + numbers.enter().append('text').classed('numbers', true); + + var data = []; + if(trace._hasNumber) data.push('number'); + if(trace._hasDelta) { + data.push('delta'); + if(trace.delta.position === 'left') data.reverse(); + } + var sel = numbers.selectAll('tspan').data(data); + sel.enter().append('tspan'); + sel + .attr('text-anchor', function() {return numbersAnchor;}) + .attr('class', function(d) { return d;}) + .attr('dx', function(d, i) { + // Add padding to the second tspan when it's a one-liner + if(i === 1) { + var pos = trace.delta.position; + if(pos === 'left' || pos === 'right') return 10; + } + return null; + }); + sel.exit().remove(); + + function drawBignumber() { + // bignumber + var bignumberAx = mockAxis(gd, {tickformat: trace.number.valueformat}); + var fmt = function(v) { return Axes.tickText(bignumberAx, v).text;}; + var bignumberSuffix = trace.number.suffix; + if(bignumberSuffix) bignumberSuffix = ' ' + bignumberSuffix; + + var number = numbers.select('tspan.number'); + number + .call(Drawing.font, trace.number.font) + .attr('x', null) + .attr('dy', bignumberY); + + if(hasTransition) { + number + .transition() + .duration(transitionOpts.duration) + .ease(transitionOpts.easing) + .each('end', function() { trace._lastValue = cd[0].y; onComplete && onComplete(); }) + .each('interrupt', function() { onComplete && onComplete(); }) + .attrTween('text', function() { + var that = d3.select(this); + var interpolator = d3.interpolateNumber(cd[0].lastY, cd[0].y); + return function(t) { + that.text(fmt(interpolator(t)) + bignumberSuffix); + }; + }); + } else { + number.text(fmt(cd[0].y) + bignumberSuffix); + } + } + + function drawDelta() { + // delta + var deltaAx = mockAxis(gd, {tickformat: trace.delta.valueformat}); + var deltaFmt = function(v) { return Axes.tickText(deltaAx, v).text;}; + if(!trace._deltaLastValue) trace._deltaLastValue = 0; + var deltaValue = function(d) { + var value = trace.delta.relative ? d.relativeDelta : d.delta; + return value; + }; + var deltaFormatText = function(value) { + if(value === 0) return '-'; + return (value > 0 ? trace.delta.increasing.symbol : trace.delta.decreasing.symbol) + deltaFmt(value); + }; + var deltaFill = function(d) { + return d.delta >= 0 ? trace.delta.increasing.color : trace.delta.decreasing.color; + }; + var delta = numbers.select('tspan.delta'); + delta + .call(Drawing.font, trace.delta.font) + .style('fill', deltaFill) + .attr('x', deltaX) + .attr('dy', deltaDy); + + if(hasTransition) { + delta + .transition() + .duration(transitionOpts.duration) + .ease(transitionOpts.easing) + .each('end', function(d) { trace._deltaLastValue = deltaValue(d); onComplete && onComplete(); }) + .each('interrupt', function() { onComplete && onComplete(); }) + .attrTween('text', function() { + var that = d3.select(this); + var to = deltaValue(cd[0]); + var from = trace._deltaLastValue; + var interpolator = d3.interpolateNumber(from, to); + return function(t) { + that.text(deltaFormatText(interpolator(t))); + }; + }); + } else { + delta.text(function() { + return deltaFormatText(deltaValue(cd[0])); + }); + } + } + + if(trace._hasDelta) drawDelta(); + if(trace._hasNumber) drawBignumber(); + + // Resize numbers to fit within space and position + numbers.attr('transform', function() { + var m = opts.numbersScaler(numbers); + var key = m[2]; + if(!(trace._numbersScale && trace._numbersScale.key === key)) { + trace._numbersScale = {key: key, value: 1}; + } + var scaleRatio = trace._numbersScale.value = Math.min(trace._numbersScale.value, m[0]); + var numbersbBox = m[1]; + var translateY; + if(!trace._scaleNumbers) scaleRatio = 1; + if(trace._isAngular) { + // align vertically to bottom + translateY = numbersY - scaleRatio * numbersbBox.bottom; + } else { + // align vertically to center + translateY = numbersY - scaleRatio * (numbersbBox.top + numbersbBox.bottom) / 2; + } + + // Stash the top position of numbersbBox for title positioning + trace._numbersTop = scaleRatio * (numbersbBox.top) + translateY; + + return strTranslate(numbersX, translateY) + ' scale(' + scaleRatio + ')'; + }); +} + +// Apply fill, stroke, stroke-width to SVG shape +function styleShape(p) { + p + .style('fill', function(d) { return d.color;}) + .style('stroke', function(d) { return d.line.color;}) + .style('stroke-width', function(d) { return d.line.width;}); +} + +// Returns a tween for a transition’s "d" attribute, transitioning any selected +// arcs from their current angle to the specified new angle. +function arcTween(arc, endAngle, newAngle) { + return function() { + var interpolate = d3.interpolate(endAngle, newAngle); + return function(t) { + return arc.endAngle(interpolate(t))(); + }; + }; +} + +// mocks our axis +function mockAxis(gd, opts, zrange) { + var fullLayout = gd._fullLayout; + + var axisIn = { + type: 'linear', + ticks: 'outside', + range: zrange, + tickmode: opts.tickmode, + nticks: opts.nticks, + tick0: opts.tick0, + dtick: opts.dtick, + tickvals: opts.tickvals, + ticktext: opts.ticktext, + ticklen: opts.ticklen, + tickwidth: opts.tickwidth, + tickcolor: opts.tickcolor, + showticklabels: opts.showticklabels, + tickfont: opts.tickfont, + tickangle: opts.tickangle, + tickformat: opts.tickformat, + exponentformat: opts.exponentformat, + separatethousands: opts.separatethousands, + showexponent: opts.showexponent, + showtickprefix: opts.showtickprefix, + tickprefix: opts.tickprefix, + showticksuffix: opts.showticksuffix, + ticksuffix: opts.ticksuffix, + title: opts.title, + showline: true + }; + + var axisOut = { + type: 'linear', + _id: 'x' + opts._id + }; + + var axisOptions = { + letter: 'x', + font: fullLayout.font, + noHover: true, + noTickson: true + }; + + function coerce(attr, dflt) { + return Lib.coerce(axisIn, axisOut, axisLayoutAttrs, attr, dflt); + } + + handleAxisDefaults(axisIn, axisOut, coerce, axisOptions, fullLayout); + handleAxisPositionDefaults(axisIn, axisOut, coerce, axisOptions); + + return axisOut; +} + +function strTranslate(x, y) { + return 'translate(' + x + ',' + y + ')'; +} + +function strRotate(angle) { + return 'rotate(' + angle + ')'; +} + +function fitTextInsideBox(el, width, height) { + // compute scaling ratio to have text fit within specified width and height + var textBB = Drawing.bBox(el.node()); + var ratio = Math.min(width / textBB.width, height / textBB.height); + return [ratio, textBB, width + 'x' + height]; +} + +function fitTextInsideCircle(el, radius) { + // compute scaling ratio to have text fit within specified radius + var textBB = Drawing.bBox(el.node()); + var elRadius = Math.sqrt((textBB.width / 2) * (textBB.width / 2) + textBB.height * textBB.height); + var ratio = radius / elRadius; + return [ratio, textBB, radius]; +} + +// Draw gauge's min and max in text +// var minText = gauge.selectAll('text.min').data(cd); +// minText.enter().append('text').classed('min', true); +// minText +// .call(Drawing.font, trace.number.font) +// .style('font-size', gaugeFontSize) +// .attr({ +// x: - (innerRadius + radius) / 2, +// y: gaugeFontSize, +// 'text-anchor': 'middle' +// }) +// .text(fmt(trace.vmin)); +// +// var maxText = gauge.selectAll('text.max').data(cd); +// maxText.enter().append('text').classed('max', true); +// maxText +// .call(Drawing.font, trace.number.font) +// .style('font-size', gaugeFontSize) +// .attr({ +// x: (innerRadius + radius) / 2, +// y: gaugeFontSize, +// 'text-anchor': 'middle' +// }) +// .text(fmt(trace.vmax)); From 123bbae35d49c4951327c415c08d289b563ee19b Mon Sep 17 00:00:00 2001 From: Antoine Roy-Gobeil Date: Fri, 21 Jun 2019 14:48:24 -0400 Subject: [PATCH 03/15] snapshot/tosvg: clean tspan elements for svg export --- src/snapshot/tosvg.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/snapshot/tosvg.js b/src/snapshot/tosvg.js index 507bab751fd..9249a871a45 100644 --- a/src/snapshot/tosvg.js +++ b/src/snapshot/tosvg.js @@ -88,7 +88,7 @@ module.exports = function toSVG(gd, format, scale) { // fill whatever container it's displayed in regardless of plot size. svg.node().style.background = ''; - svg.selectAll('text') + svg.selectAll('text,tspan') .attr({'data-unformatted': null, 'data-math': null}) .each(function() { var txt = d3.select(this); From 0741f9e09c994fc32c6752bfae5d2d90b579b4af Mon Sep 17 00:00:00 2001 From: Antoine Roy-Gobeil Date: Fri, 21 Jun 2019 14:49:14 -0400 Subject: [PATCH 04/15] ohlc and waterfall: use global constants for delta --- src/traces/ohlc/attributes.js | 5 +++-- src/traces/ohlc/hover.js | 5 +++-- src/traces/waterfall/defaults.js | 5 +++-- src/traces/waterfall/hover.js | 5 +++-- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/traces/ohlc/attributes.js b/src/traces/ohlc/attributes.js index c2051f24a2c..5a6167ca732 100644 --- a/src/traces/ohlc/attributes.js +++ b/src/traces/ohlc/attributes.js @@ -13,9 +13,10 @@ var extendFlat = require('../../lib').extendFlat; var scatterAttrs = require('../scatter/attributes'); var dash = require('../../components/drawing/attributes').dash; var fxAttrs = require('../../components/fx/attributes'); +var delta = require('../../constants/delta.js'); -var INCREASING_COLOR = '#3D9970'; -var DECREASING_COLOR = '#FF4136'; +var INCREASING_COLOR = delta.INCREASING.COLOR; +var DECREASING_COLOR = delta.DECREASING.COLOR; var lineAttrs = scatterAttrs.line; diff --git a/src/traces/ohlc/hover.js b/src/traces/ohlc/hover.js index 8243cacc6a8..8c88b743f7e 100644 --- a/src/traces/ohlc/hover.js +++ b/src/traces/ohlc/hover.js @@ -13,10 +13,11 @@ var Lib = require('../../lib'); var Fx = require('../../components/fx'); var Color = require('../../components/color'); var fillText = require('../../lib').fillText; +var delta = require('../../constants/delta.js'); var DIRSYMBOL = { - increasing: '▲', - decreasing: '▼' + increasing: delta.INCREASING.SYMBOL, + decreasing: delta.DECREASING.SYMBOL }; function hoverPoints(pointData, xval, yval, hovermode) { diff --git a/src/traces/waterfall/defaults.js b/src/traces/waterfall/defaults.js index b56e488a115..cbff5eb6427 100644 --- a/src/traces/waterfall/defaults.js +++ b/src/traces/waterfall/defaults.js @@ -15,9 +15,10 @@ var handleText = require('../bar/defaults').handleText; var handleXYDefaults = require('../scatter/xy_defaults'); var attributes = require('./attributes'); var Color = require('../../components/color'); +var delta = require('../../constants/delta.js'); -var INCREASING_COLOR = '#3D9970'; -var DECREASING_COLOR = '#FF4136'; +var INCREASING_COLOR = delta.INCREASING.COLOR; +var DECREASING_COLOR = delta.DECREASING.COLOR; var TOTALS_COLOR = '#4499FF'; function handleDirection(coerce, direction, defaultColor) { diff --git a/src/traces/waterfall/hover.js b/src/traces/waterfall/hover.js index 477c59b8bbb..ab82bab9215 100644 --- a/src/traces/waterfall/hover.js +++ b/src/traces/waterfall/hover.js @@ -11,10 +11,11 @@ var hoverLabelText = require('../../plots/cartesian/axes').hoverLabelText; var opacity = require('../../components/color').opacity; var hoverOnBars = require('../bar/hover').hoverOnBars; +var delta = require('../../constants/delta.js'); var DIRSYMBOL = { - increasing: '▲', - decreasing: '▼' + increasing: delta.INCREASING.SYMBOL, + decreasing: delta.DECREASING.SYMBOL }; module.exports = function hoverPoints(pointData, xval, yval, hovermode) { From 0b44789dc71675005af831538c945b4e5238981f Mon Sep 17 00:00:00 2001 From: Antoine Roy-Gobeil Date: Fri, 21 Jun 2019 14:49:41 -0400 Subject: [PATCH 05/15] indicator: tests --- test/image/baselines/indicator_bignumber.png | Bin 0 -> 60412 bytes test/image/baselines/indicator_bullet.png | Bin 0 -> 18867 bytes test/image/baselines/indicator_datacard.png | Bin 0 -> 24374 bytes test/image/baselines/indicator_datacard2.png | Bin 0 -> 9428 bytes test/image/baselines/indicator_gauge.png | Bin 0 -> 108036 bytes test/image/baselines/indicator_scatter.png | Bin 0 -> 28662 bytes test/image/mocks/indicator_bignumber.json | 197 +++++++++ test/image/mocks/indicator_bullet.json | 165 +++++++ test/image/mocks/indicator_datacard.json | 106 +++++ test/image/mocks/indicator_datacard2.json | 110 +++++ test/image/mocks/indicator_gauge.json | 252 +++++++++++ test/image/mocks/indicator_scatter.json | 52 +++ test/jasmine/tests/indicator_test.js | 438 +++++++++++++++++++ 13 files changed, 1320 insertions(+) create mode 100644 test/image/baselines/indicator_bignumber.png create mode 100644 test/image/baselines/indicator_bullet.png create mode 100644 test/image/baselines/indicator_datacard.png create mode 100644 test/image/baselines/indicator_datacard2.png create mode 100644 test/image/baselines/indicator_gauge.png create mode 100644 test/image/baselines/indicator_scatter.png create mode 100644 test/image/mocks/indicator_bignumber.json create mode 100644 test/image/mocks/indicator_bullet.json create mode 100644 test/image/mocks/indicator_datacard.json create mode 100644 test/image/mocks/indicator_datacard2.json create mode 100644 test/image/mocks/indicator_gauge.json create mode 100644 test/image/mocks/indicator_scatter.json create mode 100644 test/jasmine/tests/indicator_test.js diff --git a/test/image/baselines/indicator_bignumber.png b/test/image/baselines/indicator_bignumber.png new file mode 100644 index 0000000000000000000000000000000000000000..98bae22b7b7b47e5393335a0fad081a2e0be3cda GIT binary patch literal 60412 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 literal 0 HcmV?d00001 diff --git a/test/image/baselines/indicator_bullet.png b/test/image/baselines/indicator_bullet.png new file mode 100644 index 0000000000000000000000000000000000000000..4a9a41621a63eafe87544930b1b527e8bb4dc462 GIT binary patch literal 18867 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 literal 0 HcmV?d00001 diff --git a/test/image/baselines/indicator_datacard.png b/test/image/baselines/indicator_datacard.png new file mode 100644 index 0000000000000000000000000000000000000000..025060feaeace97541632d76a6af943069c6df56 GIT binary patch literal 24374 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

3Kk0jN0-2?{~pGSdi!09>U^->(ukpb!F3h>%JM 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 literal 0 HcmV?d00001 diff --git a/test/image/baselines/indicator_gauge.png b/test/image/baselines/indicator_gauge.png new file mode 100644 index 0000000000000000000000000000000000000000..9aa9e96b401022dba95b617db24939813b60167c GIT binary patch literal 108036 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
Subsubtitle"}, + "type": "indicator", + "mode": "number+delta", + "delta": { + "reference": 400, + "relative": true + }, + "gauge": { + "bgcolor": "rgba(255, 255, 255, 0.25)" + }, + "max": 500, + "value": 450 + } + ], + "layout": { + "width": 750, + "height": 500, + "paper_bgcolor": "black", + "font": { + "color": "white", + "family": "Dosis" + }, + "margin": { + "t": 25, + "r": 25, + "l": 25, + "b": 25 + }, + "shapes": [{ + "type": "rect", + "x0": 0, + "x1": 0.33, + "y0": 0.66, + "y1": 1, + "line": { + "color": "rgba(255, 255, 255, 0.35)", + "width": 1 + }, + "fill": "rgba(0,0,0,0)" + }, { + "type": "rect", + "x0": 0, + "x1": 0.33, + "y0": 0.33, + "y1": 0.66, + "line": { + "color": "rgba(255, 255, 255, 0.35)", + "width": 1 + }, + "fill": "rgba(0,0,0,0)" + }, { + "type": "rect", + "x0": 0, + "x1": 0.33, + "y0": 0, + "y1": 0.33, + "line": { + "color": "rgba(255, 255, 255, 0.35)", + "width": 1 + }, + "fill": "rgba(0,0,0,0)" + }, { + "type": "rect", + "x0": 0.33, + "x1": 0.66, + "y0": 0.66, + "y1": 1, + "line": { + "color": "rgba(255, 255, 255, 0.35)", + "width": 1 + }, + "fill": "rgba(0,0,0,0)" + }, { + "type": "rect", + "x0": 0.33, + "x1": 0.66, + "y0": 0, + "y1": 0.66, + "line": { + "color": "rgba(255, 255, 255, 0.35)", + "width": 1 + }, + "fill": "rgba(0,0,0,0)" + }, { + "type": "rect", + "x0": 0.66, + "x1": 1.0, + "y0": 0, + "y1": 1, + "line": { + "color": "rgba(255, 255, 255, 0.35)", + "width": 1 + }, + "fill": "rgba(0,0,0,0)" + }] + }, + "config": { + "responsive": true + } +} diff --git a/test/image/mocks/indicator_bullet.json b/test/image/mocks/indicator_bullet.json new file mode 100644 index 00000000000..0560b9d3a1f --- /dev/null +++ b/test/image/mocks/indicator_bullet.json @@ -0,0 +1,165 @@ +{ + "data": [{ + "domain": { + "x": [0.25, 1], + "y": [0.0833, 0.25] + }, + "title": { + "text": "Revenue
U.S. $ (1,000s)", + "font": {"size": 14} + }, + "type": "indicator", + "mode": "number+gauge+delta", + "vmax": 300, + "delta": {"reference": 200, "position": "right"}, + "gauge": { + "shape": "bullet", + "threshold": { + "line": { + "color": "black", + "width": 2 + }, + "thickness": 0.75, + "value": 170 + }, + "bgcolor": "rgba(0, 0, 0, 0.1)", + "borderwidth": 2, + "bordercolor": "rgba(0, 0, 0, 0.1)", + "steps": [{ + "range": [0, 150], + "color": "rgba(0, 0, 0, 0.5)" + }, { + "range": [150, 250], + "color": "rgba(0, 0, 0, 0.25)" + }], + "value": { + "color": "rgba(0, 0, 0, 1)" + } + }, + "value": 180 + }, { + "domain": { + "x": [0.25, 1], + "y": [0.4166, 0.5833] + }, + "title": {"text": "Profit", "font": {"size": 14}}, + "type": "indicator", + "mode": "number+gauge+delta", + "vmax": 100, + "delta": {"reference": 200, "position": "bottom"}, + "target": 75, + "gauge": { + "shape": "bullet", + "threshold": { + "line": { + "color": "black", + "width": 2 + }, + "thickness": 0.75, + "value": 50 + }, + "bgcolor": "rgba(0, 0, 0, 0.1)", + "borderwidth": 2, + "bordercolor": "rgba(0, 0, 0, 0.1)", + "steps": [{ + "range": [0, 25], + "color": "rgba(0, 0, 0, 0.5)" + }, { + "range": [25, 75], + "color": "rgba(0, 0, 0, 0.25)" + }], + "value": { + "color": "rgba(0, 0, 0, 1)" + } + }, + "value": 35, + "number": { + "valueformat": "0" + } + }, { + "domain": { + "x": [0.25, 1], + "y": [0.7499, 0.9166] + }, + "title": { + "text" :"Avg Order Size
U.S. $", + "font": {"size": 14} + }, + "type": "indicator", + "mode": "number+gauge+delta", + "vmax": 300, + "delta": {"reference": 200, "position": "top"}, + "gauge": { + "shape": "bullet", + "threshold": { + "line": { + "color": "black", + "width": 2 + }, + "thickness": 0.75, + "value": 210 + }, + "bgcolor": "rgba(0, 0, 0, 0.1)", + "borderwidth": 2, + "bordercolor": "rgba(0, 0, 0, 0.1)", + "steps": [{ + "range": [0, 150], + "color": "rgba(0, 0, 0, 0.5)" + }, { + "range": [150, 250], + "color": "rgba(0, 0, 0, 0.25)" + }], + "value": { + "color": "rgba(0, 0, 0, 1)" + } + }, + "value": 220 + }], + "layout": { + "width": 600, + "height": 250, + "margin": { + "t": 10, + "r": 25, + "l": 25, + "b": 10 + }, + "shapes": [{ + "type": "rect", + "x0": 0.25, + "x1": 1, + "y0": 0.0833, + "y1": 0.25, + "line": { + "color": "rgba(0, 0, 0, 0.25)", + "width": 1 + }, + "fill": "rgba(0,0,0,0)" + }, { + "type": "rect", + "x0": 0.25, + "x1": 1, + "y0": 0.4166, + "y1": 0.5833, + "line": { + "color": "rgba(0, 0, 0, 0.25)", + "width": 1 + }, + "fill": "rgba(0,0,0,0)" + }, { + "type": "rect", + "x0": 0.25, + "x1": 1, + "y0": 0.7499, + "y1": 0.9166, + "line": { + "color": "rgba(0, 0, 0, 0.25)", + "width": 1 + }, + "fill": "rgba(0,0,0,0)" + }] + }, + "config": { + "responsive": true + } +} diff --git a/test/image/mocks/indicator_datacard.json b/test/image/mocks/indicator_datacard.json new file mode 100644 index 00000000000..42f5503e7c1 --- /dev/null +++ b/test/image/mocks/indicator_datacard.json @@ -0,0 +1,106 @@ +{ + "data": [{ + "domain": {"x": [0, 0.5], "y": [0, 0.5]}, + "type": "indicator", + "mode": "number+delta", + "number": { + "align": "middle", + "suffix": "km/h" + }, + "value": 43, + "delta": { + "position": "left", + "reference": 20 + } + }, { + "domain": {"x": [0, 0.5], "y": [0.5, 1.0]}, + "type": "indicator", + "mode": "number+delta", + "number": { + "align": "middle", + "suffix": "km/h" + }, + "value": 43, + "delta": { + "position": "bottom", + "reference": 20 + } + }, { + "domain": {"x": [0.5, 1.0], "y": [0, 0.5]}, + "type": "indicator", + "mode": "number+delta", + "number": { + "align": "middle", + "suffix": "km/h" + }, + "value": 43, + "delta": { + "position": "right", + "reference": 20 + } + }, { + "domain": {"x": [0.5, 1.0], "y": [0.5, 1.0]}, + "type": "indicator", + "mode": "number+delta", + "number": { + "align": "middle", + "suffix": "km/h" + }, + "value": 43, + "delta": { + "position": "top", + "reference": 20 + } + }], + "layout": { + "paper_bgcolor": "orange", + "width": 600, + "height": 200, + "margin": {"t": 0, "b": 0, "l": 0, "r": 0}, + "shapes": [{ + "type": "rect", + "x0": 0, + "x1": 0.5, + "y0": 0.5, + "y1": 1, + "line": { + "color": "rgba(255, 255, 255, 0.35)", + "width": 1 + }, + "fill": "rgba(0,0,0,0)" + }, { + "type": "rect", + "x0": 0, + "x1": 0.5, + "y0": 0, + "y1": 0.5, + "line": { + "color": "rgba(255, 255, 255, 0.35)", + "width": 1 + }, + "fill": "rgba(0,0,0,0)" + }, { + "type": "rect", + "x0": 0.5, + "x1": 1.0, + "y0": 0.5, + "y1": 1, + "line": { + "color": "rgba(255, 255, 255, 0.35)", + "width": 1 + }, + "fill": "rgba(0,0,0,0)" + }, { + "type": "rect", + "x0": 0.5, + "x1": 1.0, + "y0": 0, + "y1": 0.5, + "line": { + "color": "rgba(255, 255, 255, 0.35)", + "width": 1 + }, + "fill": "rgba(0,0,0,0)" + }] + } +} diff --git a/test/image/mocks/indicator_datacard2.json b/test/image/mocks/indicator_datacard2.json new file mode 100644 index 00000000000..bbb0237e9d4 --- /dev/null +++ b/test/image/mocks/indicator_datacard2.json @@ -0,0 +1,110 @@ +{ + "data": [{ + "domain": {"x": [0, 0.5], "y": [0, 0.5]}, + "type": "indicator", + "mode": "number+delta", + "align": "left", + "number": { + "suffix": "km/h", + "font": {"size": 20} + }, + "value": 43, + "delta": { + "position": "left", + "reference": 20 + } + }, { + "domain": {"x": [0, 0.5], "y": [0.5, 1.0]}, + "type": "indicator", + "mode": "number+delta", + "align": "right", + "number": { + "suffix": "km/h", + "font": {"size": 20} + }, + "value": 43, + "delta": { + "position": "bottom", + "reference": 20 + } + }, { + "domain": {"x": [0.5, 1.0], "y": [0, 0.5]}, + "type": "indicator", + "mode": "number+delta", + "align": "left", + "number": { + "suffix": "km/h", + "font": {"size": 20} + }, + "value": 43, + "delta": { + "position": "right", + "reference": 20 + } + }, { + "domain": {"x": [0.5, 1.0], "y": [0.5, 1.0]}, + "type": "indicator", + "mode": "number+delta", + "align": "right", + "number": { + "suffix": "km/h", + "font": {"size": 20} + }, + "value": 43, + "delta": { + "position": "top", + "reference": 20 + } + }], + "layout": { + "paper_bgcolor": "orange", + "width": 400, + "height": 100, + "margin": {"t": 0, "b": 0, "l": 0, "r": 0}, + "shapes": [{ + "type": "rect", + "x0": 0, + "x1": 0.5, + "y0": 0.5, + "y1": 1, + "line": { + "color": "rgba(255, 255, 255, 0.35)", + "width": 1 + }, + "fill": "rgba(0,0,0,0)" + }, { + "type": "rect", + "x0": 0, + "x1": 0.5, + "y0": 0, + "y1": 0.5, + "line": { + "color": "rgba(255, 255, 255, 0.35)", + "width": 1 + }, + "fill": "rgba(0,0,0,0)" + }, { + "type": "rect", + "x0": 0.5, + "x1": 1.0, + "y0": 0.5, + "y1": 1, + "line": { + "color": "rgba(255, 255, 255, 0.35)", + "width": 1 + }, + "fill": "rgba(0,0,0,0)" + }, { + "type": "rect", + "x0": 0.5, + "x1": 1.0, + "y0": 0, + "y1": 0.5, + "line": { + "color": "rgba(255, 255, 255, 0.35)", + "width": 1 + }, + "fill": "rgba(0,0,0,0)" + }] + } +} diff --git a/test/image/mocks/indicator_gauge.json b/test/image/mocks/indicator_gauge.json new file mode 100644 index 00000000000..4f4363815ad --- /dev/null +++ b/test/image/mocks/indicator_gauge.json @@ -0,0 +1,252 @@ +{ + "data": [{ + "domain": { + "x": [0, 0.4], + "y": [0.5, 1] + }, + "value": 450, + "title": {"text": "Speed"}, + "type": "indicator", + "mode": "gauge+number", + "vmax": 500, + "delta": {"reference": 400}, + "gauge": { + "axis": { + "tickwidth": 1, + "tickcolor": "white" + }, + "bgcolor": "rgba(255, 255, 255, 0.25)", + "borderwidth": 2, + "bordercolor": "rgba(255, 255, 255, 0.5)", + "steps": [{ + "range": [0, 250], + "color": "rgba(255, 255, 0, 0.5)" + }, { + "range": [250, 400], + "color": "rgba(0, 0, 255, 0.75)" + }], + "threshold": { + "line": { + "color": "rgba(255, 0, 0, 1)", + "width": 4 + }, + "thickness": 0.75, + "value": 490 + } + } + }, { + "domain": { + "x": [0.474, 0.789], + "y": [0.5, 0.83333] + }, + "value": 450, + "title": {"text": "Speed
Subtitle"}, + "type": "indicator", + "mode": "gauge+delta", + "vmax": 500, + "delta": {"reference": 400}, + "gauge": { + "axis": { + "tickwidth": 1, + "tickcolor": "white" + }, + "bgcolor": "rgba(255, 255, 255, 0.25)", + "borderwidth": 2, + "bordercolor": "rgba(255, 255, 255, 0.5)", + "steps": [{ + "range": [0, 250], + "color": "rgba(255, 255, 0, 0.5)" + }, { + "range": [250, 400], + "color": "rgba(0, 0, 255, 0.75)" + }], + "threshold": { + "line": { + "color": "rgba(255, 0, 0, 1)", + "width": 4 + }, + "thickness": 0.75, + "value": 490 + } + } + }, { + "domain": { + "x": [0, 0.789], + "y": [0, 0.4] + }, + "value": 240, + "title": {"text": "Speed"}, + "type": "indicator", + "mode": "gauge+number+delta", + "vmax": 500, + "delta": {"reference": 400}, + "gauge": { + "axis": { + "tickwidth": 1, + "tickcolor": "white" + }, + "bgcolor": "rgba(255, 255, 255, 0.25)", + "borderwidth": 2, + "bordercolor": "rgba(255, 255, 255, 0.5)", + "steps": [{ + "range": [0, 250], + "color": "rgba(255, 255, 0, 0.5)" + }, { + "range": [250, 400], + "color": "rgba(0, 0, 255, 0.5)" + }], + "threshold": { + "line": { + "color": "rgba(255, 0, 0, 1)", + "width": 4 + }, + "thickness": 0.75, + "value": 490 + } + } + }, { + "domain": { + "x": [0.789, 1], + "y": [0.75, 1] + }, + "value": 450, + "title": {"text": "Speed"}, + "type": "indicator", + "mode": "gauge+number+delta", + "vmax": 500, + "delta": {"reference": 400}, + "gauge": { + "axis": { + "tickwidth": 1, + "tickcolor": "white" + }, + "bgcolor": "rgba(255, 255, 255, 0.25)", + "borderwidth": 2, + "bordercolor": "rgba(255, 255, 255, 0.5)", + "steps": [{ + "range": [0, 250], + "color": "rgba(255, 255, 0, 0.5)" + }, { + "range": [250, 400], + "color": "rgba(0, 0, 255, 0.75)" + }], + "threshold": { + "line": { + "color": "rgba(255, 0, 0, 1)", + "width": 4 + }, + "thickness": 0.75, + "value": 490 + } + } + },{ + "domain": { + "x": [0.789, 1], + "y": [0, 0.75] + }, + "value": 450, + "title": {"text": "Speed"}, + "type": "indicator", + "mode": "gauge+number+delta", + "vmax": 500, + "delta": {"reference": 400, "position": "top"}, + "gauge": { + "axis": { + "tickwidth": 1, + "tickcolor": "white" + }, + "bgcolor": "rgba(255, 255, 255, 0.25)", + "borderwidth": 2, + "bordercolor": "rgba(255, 255, 255, 0.5)", + "steps": [{ + "range": [0, 250], + "color": "rgba(255, 255, 0, 0.5)" + }, { + "range": [250, 400], + "color": "rgba(0, 0, 255, 0.75)" + }], + "threshold": { + "line": { + "color": "rgba(255, 0, 0, 1)", + "width": 4 + }, + "thickness": 0.75, + "value": 490 + } + } + }], + "layout": { + "width": 900, + "height": 600, + "paper_bgcolor": "black", + "margin": { + "t": 25, + "r": 25, + "l": 25, + "b": 25 + }, + "font": { + "color": "white", + "family": "Arial" + }, + "shapes": [{ + "type": "rect", + "x0": 0, + "x1": 0.4, + "y0": 0.5, + "y1": 1, + "line": { + "color": "rgba(255, 255, 255, 0.35)", + "width": 1 + }, + "fill": "rgba(0,0,0,0)" + }, { + "type": "rect", + "x0": 0.474, + "x1": 0.789, + "y0": 0.5, + "y1": 0.8333, + "line": { + "color": "rgba(255, 255, 255, 0.35)", + "width": 1 + }, + "fill": "rgba(0,0,0,0)" + },{ + "type": "rect", + "x0": 0.789, + "x1": 1.0, + "y0": 0.75, + "y1": 1.0, + "line": { + "color": "rgba(255, 255, 255, 0.35)", + "width": 1 + }, + "fill": "rgba(0,0,0,0)" + },{ + "type": "rect", + "x0": 0.789, + "x1": 1.0, + "y0": 0, + "y1": 0.75, + "line": { + "color": "rgba(255, 255, 255, 0.35)", + "width": 1 + }, + "fill": "rgba(0,0,0,0)" + },{ + "type": "rect", + "x0": 0, + "x1": 0.789, + "y0": 0, + "y1": 0.4, + "line": { + "color": "rgba(255, 255, 255, 0.35)", + "width": 1 + }, + "fill": "rgba(0,0,0,0)" + }] + }, + "config": { + "responsive": true + } +} diff --git a/test/image/mocks/indicator_scatter.json b/test/image/mocks/indicator_scatter.json new file mode 100644 index 00000000000..de3bbbcf5d8 --- /dev/null +++ b/test/image/mocks/indicator_scatter.json @@ -0,0 +1,52 @@ +{ + "data": [{ + "domain": { + "y": [0, 1], + "x": [0.25, 0.75] + }, + "title": {"text": "Users online"}, + "type": "indicator", + "mode": "number+delta", + "delta": {"reference": 512}, + "ticker": { + "showticker": true, + "showpercentage": true + }, + "vmax": 500, + "value": 492 + }, { + "name": "Users online", + "y": [325, 324, 405, 400, 424, 404, 417, 432, 419, 394, 410, 426, 413, 419, 404, 408, 401, 377, 368, 361, 356, 359, 375, 397, 394, 418, 437, 450, 430, 442, 424, 443, 420, 418, 423, 423, 426, 440, 437, 436, 447, 460, 478, 472, 450, 456, 436, 418, 429, 412, 429, 442, 464, 447, 434, 457, 474, 480, 499, 497, 480, 502, 512, 492], + "marker": { + "color": "rgba(255, 255, 255, 0.5)" + } + }], + "layout": { + "width": 400, + "height": 300, + "xaxis": { + "autorange": false, + "range": [0, 62], + "visible": false + }, + "yaxis": { + "visible": false + }, + "font": { + "color": "white", + "family": "Dosis" + }, + "paper_bgcolor": "black", + "plot_bgcolor": "black", + "margin": { + "t": 25, + "r": 25, + "l": 25, + "b": 25 + }, + "autosize": true + }, + "config": { + "responsive": true + } +} diff --git a/test/jasmine/tests/indicator_test.js b/test/jasmine/tests/indicator_test.js new file mode 100644 index 00000000000..de1b71d174e --- /dev/null +++ b/test/jasmine/tests/indicator_test.js @@ -0,0 +1,438 @@ +var Plotly = require('@lib/index'); +var Plots = require('@src/plots/plots'); +// var Lib = require('@src/lib'); + +var d3 = require('d3'); +var createGraphDiv = require('../assets/create_graph_div'); +var destroyGraphDiv = require('../assets/destroy_graph_div'); +var delay = require('../assets/delay'); +var failTest = require('../assets/fail_test'); +// var click = require('../assets/click'); +// var getClientPosition = require('../assets/get_client_position'); +// var mouseEvent = require('../assets/mouse_event'); +var supplyAllDefaults = require('../assets/supply_defaults'); +var indicatorAttrs = require('@src/traces/indicator/attributes.js'); +var cn = require('@src/traces/indicator/constants.js'); +// var rgb = require('../../../src/components/color').rgb; + +// var customAssertions = require('../assets/custom_assertions'); +// var assertHoverLabelStyle = customAssertions.assertHoverLabelStyle; +// var assertHoverLabelContent = customAssertions.assertHoverLabelContent; + +describe('Indicator defaults', function() { + function _supply(trace, layout) { + var gd = { + data: [trace], + layout: layout || {} + }; + + supplyAllDefaults(gd); + + return gd._fullData[0]; + } + + it('to number mode', function() { + var out = _supply({type: 'indicator', value: 1}); + expect(out.mode).toBe('number'); + }); + + indicatorAttrs.mode.flags.forEach(function(mode) { + it('should not coerce container ' + mode + ' if not used', function() { + var allModes = indicatorAttrs.mode.flags.slice(); + allModes.splice(allModes.indexOf(mode), 1); + var out = _supply({type: 'indicator', mode: allModes.join('+'), value: 1}); + expect(out[mode]).toBe(undefined); + }); + }); + + it('defaults to formatting numbers using SI prefix', function() { + var out = _supply({type: 'indicator', mode: 'number+delta', value: 1}); + expect(out.number.valueformat).toBe('.3s'); + expect(out.delta.valueformat).toBe('.3s'); + }); + + it('defaults to displaying relative changes in percentage', function() { + var out = _supply({type: 'indicator', mode: 'delta', delta: {relative: true}, value: 1}); + expect(out.delta.valueformat).toBe('2%'); + }); + + // text alignment + ['number'].forEach(function(mode) { + it('aligns to center', function() { + var out = _supply({ + type: 'indicator', + mode: mode, + value: 1, + gauge: {shape: 'angular'} + }); + expect(out.align).toBe('center'); + expect(out.title.align).toBe('center'); + }); + }); + + it('should NOT set number alignment when angular', function() { + var out = _supply({type: 'indicator', mode: 'number+gauge', gauge: {shape: 'angular'}, value: 1}); + expect(out.align).toBe(undefined); + expect(out.title.align).toBe('center'); + }); + + it('should NOT set title alignment when bullet', function() { + var out = _supply({type: 'indicator', mode: 'number+gauge', gauge: {shape: 'bullet'}, value: 1}); + expect(out.align).toBe('center'); + expect(out.title.align).toBe(undefined); + }); + + // font-size + it('number font size to a large value', function() { + var out = _supply({type: 'indicator', value: 1}); + expect(out.number.font.size).toBe(80); + }); + + it('delta font size to a fraction of number if present', function() { + var out = _supply({type: 'indicator', mode: 'delta+number', value: 1, number: {font: {size: 50}}}); + expect(out.number.font.size).toBe(50); + expect(out.delta.font.size).toBe(25); + }); + + it('delta font size to default number font size if no number', function() { + var out = _supply({type: 'indicator', mode: 'delta', value: 1}); + expect(out.delta.font.size).toBe(80); + }); + + it('title font size to a fraction of number font size', function() { + var out = _supply({type: 'indicator', value: 1, number: {font: {size: 50}}}); + expect(out.number.font.size).toBe(50); + expect(out.title.font.size).toBe(12.5); + }); + + it('title font size to a fraction of delta number font size', function() { + var out = _supply({type: 'indicator', mode: 'delta', value: 1, delta: {font: {size: 50}}}); + expect(out.title.font.size).toBe(12.5); + }); + + it('title font size to a fraction of default number font size if no numbers', function() { + var out = _supply({type: 'indicator', value: 1}); + expect(out.title.font.size).toBe(20); + }); + + it('will not scale numbers if either number.font.size or delta.font.size is set', function() { + var out = _supply({type: 'indicator', mode: 'number+delta', value: 1, number: {font: {size: 20}}}); + expect(out._scaleNumbers).toBe(false); + + out = _supply({type: 'indicator', mode: 'number+delta', value: 1, delta: {font: {size: 20}}}); + expect(out._scaleNumbers).toBe(false); + }); +}); + +describe('Indicator plot', function() { + var gd; + beforeEach(function() { + gd = createGraphDiv(); + }); + afterEach(destroyGraphDiv); + + describe('numbers', function() { + function checkNumbersScale(value, msg) { + var numbers = d3.selectAll('text.numbers'); + expect(numbers.length).toBe(1); + + var transform = numbers.attr('transform'); + expect(transform.match('scale')).toBeTruthy('cannot find scale attribute on text.numbers[0]'); + var scale = transform.match(/.*scale\((.*)\)/)[1]; + + expect(scale).toBeCloseTo(value, 1, msg); + } + + it('scale down to fit figure size', function(done) { + Plotly.newPlot(gd, [{ + type: 'indicator', + value: 500, + number: {valueformat: '0.f'} + }], {width: 400, height: 400}) + .then(function() { + checkNumbersScale(1, 'initialy at normal scale'); + return Plotly.relayout(gd, {width: 200, height: 200}); + }) + .then(function() { + checkNumbersScale(0.2, 'should scale down'); + return Plotly.relayout(gd, {width: 400, height: 400}); + }) + .then(function() { + checkNumbersScale(1, 'should scale up'); + }) + .catch(failTest) + .then(done); + }); + + it('scale down but never back up if domain size is constant', function(done) { + Plotly.newPlot(gd, [{ + type: 'indicator', + value: 1, + number: {valueformat: '0.f'} + }], {width: 400, height: 400}) + .then(function() { + checkNumbersScale(1, 'initialy at normal scale'); + return Plotly.restyle(gd, 'value', [1E6]); + }) + .then(function() { + checkNumbersScale(0.7, 'should scale down'); + return Plotly.restyle(gd, 'value', [1]); + }) + .then(function() { + checkNumbersScale(0.7, 'should not scale up'); + }) + .catch(failTest) + .then(done); + }); + + ['number', 'delta'].forEach(function(numberType) { + it('if ' + numberType + ' font-size is specified, never scale', function(done) { + var figure = { + type: 'indicator', + mode: 'number+delta', + value: 1, + number: {valueformat: '0.f'} + }; + figure[numberType] = {font: {size: 100}}; + Plotly.newPlot(gd, [figure], {width: 400, height: 400}) + .then(function() { + checkNumbersScale(1, 'initialy at normal scale'); + return Plotly.restyle(gd, 'value', [1E6]); + }) + .then(function() { + checkNumbersScale(1, 'should not rescale'); + return Plotly.restyle(gd, 'value', [1]); + }) + .then(function() { + checkNumbersScale(1, 'should not rescale'); + }) + .catch(failTest) + .then(done); + }); + }); + }); + + describe('number', function() { + function assertContent(txt) { + var sel = d3.selectAll('tspan.number'); + expect(sel.length).toBe(1); + expect(sel.text()).toBe(txt); + } + it('formats value via `valueformat`', function(done) { + Plotly.newPlot(gd, [{ + type: 'indicator', + mode: 'number', + value: 220, + }]) + .then(function() { + assertContent('220'); + return Plotly.restyle(gd, 'number.valueformat', '0.3f'); + }) + .then(function() { + assertContent('220.000'); + return Plotly.restyle(gd, 'number.valueformat', '$'); + }) + .then(function() { + assertContent('$220'); + }) + .catch(failTest) + .then(done); + }); + + it('supports suffix', function(done) { + Plotly.newPlot(gd, [{ + type: 'indicator', + mode: 'number', + number: {suffix: 'potatoes'}, + value: 220, + }]) + .then(function() { + assertContent('220 potatoes'); + }) + .catch(failTest) + .then(done); + }); + }); + + describe('delta', function() { + function assertContent(txt) { + var sel = d3.selectAll('tspan.delta'); + expect(sel.length).toBe(1); + expect(sel.text()).toBe(txt); + } + it('can display relative changes', function(done) { + Plotly.newPlot(gd, [{ + type: 'indicator', + mode: 'number+delta', + value: 220, + delta: {reference: 200} + }], {width: 400, height: 400}) + .then(function() { + assertContent(gd._fullData[0].delta.increasing.symbol + '20.0'); + return Plotly.restyle(gd, 'delta.relative', true); + }) + .then(function() { + assertContent(gd._fullData[0].delta.increasing.symbol + '10%'); + return Plotly.restyle(gd, 'delta.valueformat', '.3f'); + }) + .then(function() { + assertContent(gd._fullData[0].delta.increasing.symbol + '0.100'); + }) + .catch(failTest) + .then(done); + }); + }); + + describe('title', function() { + beforeEach(function() { + // hide the div + gd.style.display = 'none'; + gd.style.top = 100; + gd.style.left = 100; + }); + + it('positions it above the numbers', function(done) { + Plotly.newPlot(gd, [{ + type: 'indicator', + value: 1, + title: {text: 'Value'}, + mode: 'number' + }]) + .then(function() { + gd.style.display = 'block'; + + var t = d3.selectAll('text.title').node(); + var titleBBox = t.getBoundingClientRect(); + + var numbers = d3.selectAll('text.numbers').node(); + var numbersBBox = numbers.getBoundingClientRect(); + + expect(titleBBox.bottom).toBeCloseTo(numbersBBox.top - cn.titlePadding, 0); + }) + .catch(failTest) + .then(done); + }); + + it('position it above angular axes', function(done) { + Plotly.newPlot(gd, [{ + type: 'indicator', + value: 1, + title: {text: 'Value'}, + mode: 'gauge', + gauge: {shape: 'angular'} + }]) + .then(function() { + gd.style.display = 'block'; + var t = d3.selectAll('text.title').node(); + var titleBBox = t.getBoundingClientRect(); + + var ax = d3.selectAll('g.angularaxis').node(); + var axBBox = ax.getBoundingClientRect(); + expect(titleBBox.bottom).toBeCloseTo(axBBox.top - cn.titlePadding, 0); + }) + .catch(failTest) + .then(done); + }); + + it('position it left of bullet', function(done) { + Plotly.newPlot(gd, [{ + type: 'indicator', + value: 1, + title: {text: 'Value'}, + mode: 'gauge', + gauge: {shape: 'bullet'} + }]) + .then(function() { + gd.style.display = 'block'; + var t = d3.selectAll('text.title').node(); + var titleBBox = t.getBoundingClientRect(); + + var ax = d3.selectAll('g.bulletaxis').node(); + var axBBox = ax.getBoundingClientRect(); + expect(titleBBox.right < axBBox.left).toBe(true); + }) + .catch(failTest) + .then(done); + }); + }); + + it('restyle between modes', function(done) { + function assertElementCnt(sel, cnt) { + var el = d3.selectAll(sel); + expect(el.size()).toBe(cnt, 'selection "' + sel + '" does not have size ' + cnt); + } + function assertGauge(shape, cnt) { + assertElementCnt('g.' + shape, cnt); + assertElementCnt('g.' + shape + 'axis', cnt); + } + function assert(flags) { + // flags is an array denoting whether the figure [hasNumber, hasDelta, hasAngular, hasBullet] + assertElementCnt('tspan.number', flags[0]); + assertElementCnt('tspan.delta', flags[1]); + assertGauge('angular', flags[2]); + assertGauge('bullet', flags[3]); + } + + Plotly.newPlot(gd, [{ + type: 'indicator', + value: 100, + mode: 'number+delta+gauge' + }]) + .then(function() { + assert([1, 1, 1, 0]); + return Plotly.restyle(gd, 'mode', 'number+delta'); + }) + .then(function() { + assert([1, 1, 0, 0]); + return Plotly.restyle(gd, 'mode', 'number'); + }) + .then(function() { + assert([1, 0, 0, 0]); + return Plotly.restyle(gd, 'mode', 'delta'); + }) + .then(function() { + assert([0, 1, 0, 0]); + return Plotly.restyle(gd, 'mode', 'gauge'); + }) + .then(function() { + assert([0, 0, 1, 0]); + return Plotly.restyle(gd, 'gauge.shape', 'bullet'); + }) + .then(function() { + assert([0, 0, 0, 1]); + return Plotly.restyle(gd, 'mode', 'number+delta+gauge'); + }) + .then(function() { + assert([1, 1, 0, 1]); + }) + .catch(failTest) + .then(done); + }); +}); + +describe('Indicator animations', function() { + var gd; + beforeEach(function() { + gd = createGraphDiv(); + }); + afterEach(destroyGraphDiv); + + it('should be able to transition via `Plotly.react`', function(done) { + var mock = {data: [{type: 'indicator', value: 100}], layout: {}}; + mock.layout.transition = {duration: 200}; + + spyOn(Plots, 'transitionFromReact').and.callThrough(); + + Plotly.plot(gd, mock) + .then(function() { + gd.data[0].value = '400'; + return Plotly.react(gd, gd.data, gd.layout); + }) + .then(delay(300)) + .then(function() { + expect(Plots.transitionFromReact).toHaveBeenCalledTimes(1); + }) + .catch(failTest) + .then(done); + }); +}); From e6d8525ab07c56ca10bdbac6762b06d1d57bf830 Mon Sep 17 00:00:00 2001 From: Antoine Roy-Gobeil Date: Tue, 25 Jun 2019 19:12:52 -0400 Subject: [PATCH 06/15] add number.prefix, gauge.axis.visible, reuse Color.(fill|stroke), :lock: toSVG --- src/traces/indicator/attributes.js | 26 ++++- src/traces/indicator/calc.js | 3 - src/traces/indicator/defaults.js | 12 ++- src/traces/indicator/plot.js | 107 ++++++++----------- test/image/baselines/indicator_datacard.png | Bin 24374 -> 28754 bytes test/image/baselines/indicator_datacard2.png | Bin 9428 -> 10548 bytes test/image/mocks/indicator_bignumber.json | 6 -- test/image/mocks/indicator_datacard.json | 8 +- test/image/mocks/indicator_datacard2.json | 9 +- test/jasmine/tests/indicator_test.js | 72 ++++++++----- test/jasmine/tests/snapshot_test.js | 29 +++++ 11 files changed, 154 insertions(+), 118 deletions(-) diff --git a/src/traces/indicator/attributes.js b/src/traces/indicator/attributes.js index cf18febfa5b..c8288681ba2 100644 --- a/src/traces/indicator/attributes.js +++ b/src/traces/indicator/attributes.js @@ -8,9 +8,6 @@ 'use strict'; -// var plotAttrs = require('../../plots/attributes'); -// var domainAttrs = require('../../plots/domain').attributes; - var extendFlat = require('../../lib/extend').extendFlat; var extendDeep = require('../../lib/extend').extendDeep; var overrideAll = require('../../plot_api/edit_types').overrideAll; @@ -102,7 +99,13 @@ module.exports = { editType: 'calc', role: 'info', flags: ['number', 'delta', 'gauge'], - dflt: 'number' + dflt: 'number', + description: [ + 'Determines how the value is displayed on the graph.', + '`number` displays the value numerically in text.', + '`delta` displays the difference to a reference value in text.', + 'Finally, `gauge` displays the value graphically on an axis.', + ].join(' ') }, value: { valType: 'number', @@ -189,6 +192,15 @@ module.exports = { 'Set the font used to display main number' ].join(' ') }), + prefix: { + valType: 'string', + dflt: '', + role: 'info', + editType: 'plot', + description: [ + 'Sets a prefix appearing before the number.' + ].join(' ') + }, suffix: { valType: 'string', dflt: '', @@ -206,7 +218,8 @@ module.exports = { role: 'info', editType: 'calc', description: [ - 'Sets the reference value to compute the delta.' + 'Sets the reference value to compute the delta.', + 'By default, it is set to the current value.' ].join(' ') }, position: { @@ -327,6 +340,9 @@ module.exports = { description: 'Sets the width (in px) of the border enclosing the gauge.' }, axis: overrideAll({ + visible: extendDeep({}, axesAttrs.visible, { + dflt: true + }), // tick and title properties named and function exactly as in axes tickmode: axesAttrs.tickmode, nticks: axesAttrs.nticks, diff --git a/src/traces/indicator/calc.js b/src/traces/indicator/calc.js index c86dc06ed9f..30e9a891a8c 100644 --- a/src/traces/indicator/calc.js +++ b/src/traces/indicator/calc.js @@ -13,9 +13,6 @@ function calc(gd, trace) { var cd = []; - // var singleValue = len === 1; - // var lastReading = trace.values[len - 1]; - // var secondLastReading = singleValue ? lastReading : trace.values[len - 2]; var lastReading = trace.value; var secondLastReading = trace.delta ? trace.delta.reference : trace._lastValue || trace.value; cd[0] = { diff --git a/src/traces/indicator/defaults.js b/src/traces/indicator/defaults.js index cfe011686e8..972600586f9 100644 --- a/src/traces/indicator/defaults.js +++ b/src/traces/indicator/defaults.js @@ -37,17 +37,18 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) { coerce('vmax', 1.5 * traceOut.value); // Number attributes - var auto = []; + var auto = new Array(2); var bignumberFontSize; if(traceOut._hasNumber) { coerce('number.valueformat'); coerce('number.font.color', layout.font.color); coerce('number.font.family', layout.font.family); - coerce('number.font.size', 'auto'); - if(traceOut.number.font.size === 'auto') { + coerce('number.font.size'); + if(!traceOut.number.font.size) { traceOut.number.font.size = cn.defaultNumberFontSize; auto[0] = true; } + coerce('number.prefix'); coerce('number.suffix'); bignumberFontSize = traceOut.number.font.size; } @@ -57,8 +58,8 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) { if(traceOut._hasDelta) { coerce('delta.font.color', layout.font.color); coerce('delta.font.family', layout.font.family); - coerce('delta.font.size', 'auto'); - if(traceOut.delta.font.size === 'auto') { + coerce('delta.font.size'); + if(!traceOut.delta.font.size) { traceOut.delta.font.size = (traceOut._hasNumber ? 0.5 : 1) * (bignumberFontSize || cn.defaultNumberFontSize); auto[1] = true; } @@ -133,6 +134,7 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) { axisIn = {}; if(gaugeIn) axisIn = gaugeIn.axis || {}; axisOut = Template.newContainer(gaugeOut, 'axis'); + coerceGaugeAxis('visible'); handleTickValueDefaults(axisIn, axisOut, coerceGaugeAxis, 'linear'); var opts = {outerTicks: false, font: layout.font}; diff --git a/src/traces/indicator/plot.js b/src/traces/indicator/plot.js index 116ba597693..16caaf81871 100644 --- a/src/traces/indicator/plot.js +++ b/src/traces/indicator/plot.js @@ -22,6 +22,7 @@ var handleAxisDefaults = require('../../plots/cartesian/axis_defaults'); var handleAxisPositionDefaults = require('../../plots/cartesian/position_defaults'); var axisLayoutAttrs = require('../../plots/cartesian/layout_attributes'); +var Color = require('../../components/color'); var anchor = { 'left': 'start', 'center': 'middle', @@ -86,7 +87,7 @@ module.exports = function plot(gd, cdModule, transitionOpts, makeOnCompleteCallb if(!hasGauge) { numbersX = size.l + position[numbersAlign] * size.w; numbersScaler = function(el) { - return fitTextInsideBox(el, 0.9 * size.w, 0.9 * size.h); + return fitTextInsideBox(el, size.w, size.h); }; } else { if(isAngular) { @@ -142,10 +143,9 @@ module.exports = function plot(gd, cdModule, transitionOpts, makeOnCompleteCallb } // Prepare angular gauge layers - var data = cd.filter(function() {return isAngular;}); - var angularGauge = plotGroup.selectAll('g.angular').data(data); + var angularGauge = plotGroup.selectAll('g.angular').data(isAngular ? cd : []); angularGauge.exit().remove(); - var angularaxisLayer = plotGroup.selectAll('g.angularaxis').data(data); + var angularaxisLayer = plotGroup.selectAll('g.angularaxis').data(isAngular ? cd : []); angularaxisLayer.exit().remove(); var gaugeOpts = { @@ -163,10 +163,9 @@ module.exports = function plot(gd, cdModule, transitionOpts, makeOnCompleteCallb if(isAngular) drawAngularGauge(gd, plotGroup, cd, gaugeOpts); // Prepare bullet layers - data = cd.filter(function() {return isBullet;}); - var bulletGauge = plotGroup.selectAll('g.bullet').data(data); + var bulletGauge = plotGroup.selectAll('g.bullet').data(isBullet ? cd : []); bulletGauge.exit().remove(); - var bulletaxisLayer = plotGroup.selectAll('g.bulletaxis').data(data); + var bulletaxisLayer = plotGroup.selectAll('g.bulletaxis').data(isBullet ? cd : []); bulletaxisLayer.exit().remove(); gaugeOpts = { @@ -202,8 +201,12 @@ module.exports = function plot(gd, cdModule, transitionOpts, makeOnCompleteCallb if(hasGauge) { if(isAngular) { // position above axis ticks/labels - var bBox = Drawing.bBox(angularaxisLayer.node()); - titleY = (bBox.top - titlePadding) - titlebBox.bottom; + if(trace.gauge.axis.visible) { + var bBox = Drawing.bBox(angularaxisLayer.node()); + titleY = (bBox.top - titlePadding) - titlebBox.bottom; + } else { + titleY = size.t + size.h / 2 - radius / 2 - titlebBox.bottom - titlePadding; + } } if(isBullet) { // position outside domain @@ -244,7 +247,7 @@ function drawBulletGauge(gd, plotGroup, cd, gaugeOpts) { bulletaxis.enter().append('g') .classed('bulletaxis', true) .classed('crisp', true); - bulletaxis.selectAll('g.' + 'xbulletaxis' + 'tick,path').remove(); + bulletaxis.selectAll('g.' + 'xbulletaxis' + 'tick,path,text').remove(); // Draw bullet var bulletHeight = size.h; // use all vertical domain @@ -288,16 +291,16 @@ function drawBulletGauge(gd, plotGroup, cd, gaugeOpts) { // Draw bullet background, steps var boxes = [gaugeBg].concat(trace.gauge.steps); - var targetBullet = bullet.selectAll('g.targetBullet').data(boxes); - targetBullet.enter().append('g').classed('targetBullet', true).append('rect'); + var targetBullet = bullet.selectAll('g.target-bullet').data(boxes); + targetBullet.enter().append('g').classed('target-bullet', true).append('rect'); targetBullet.select('rect') .call(drawRect) .call(styleShape); targetBullet.exit().remove(); // Draw value bar with transitions - var fgBullet = bullet.selectAll('g.fgBullet').data([trace.gauge.value]); - fgBullet.enter().append('g').classed('fgBullet', true).append('rect'); + var fgBullet = bullet.selectAll('g.fg-bullet').data([trace.gauge.value]); + fgBullet.enter().append('g').classed('fg-bullet', true).append('rect'); fgBullet.select('rect') .attr('height', innerBulletHeight) .attr('y', (bulletHeight - innerBulletHeight) / 2) @@ -324,12 +327,12 @@ function drawBulletGauge(gd, plotGroup, cd, gaugeOpts) { .attr('x2', ax.c2p(trace.gauge.threshold.value)) .attr('y1', (1 - trace.gauge.threshold.thickness) / 2 * bulletHeight) .attr('y2', (1 - (1 - trace.gauge.threshold.thickness) / 2) * bulletHeight) - .style('stroke', trace.gauge.threshold.line.color) + .call(Color.stroke, trace.gauge.threshold.line.color) .style('stroke-width', trace.gauge.threshold.line.width); threshold.exit().remove(); - var bulletOutline = bullet.selectAll('g.bulletOutline').data([gaugeOutline]); - bulletOutline.enter().append('g').classed('bulletOutline', true).append('rect'); + var bulletOutline = bullet.selectAll('g.bullet-outline').data([gaugeOutline]); + bulletOutline.enter().append('g').classed('bullet-outline', true).append('rect'); bulletOutline.select('rect') .call(drawRect) .call(styleShape); @@ -388,12 +391,12 @@ function drawAngularGauge(gd, plotGroup, cd, gaugeOpts) { angularaxisLayer.enter().append('g') .classed('angularaxis', true) .classed('crisp', true); - angularaxisLayer.selectAll('g.' + 'angularaxis' + 'tick,path').remove(); + angularaxisLayer.selectAll('g.' + 'xangularaxis' + 'tick,path,text').remove(); ax = mockAxis(gd, opts); ax.type = 'linear'; ax.range = [trace.vmin, trace.vmax]; - ax._id = 'x'; // or 'y', but I don't think this makes a difference here + ax._id = 'xangularaxis'; // or 'y', but I don't think this makes a difference here ax.setScale(); // 't'ick to 'g'eometric radians is used all over the place here @@ -426,17 +429,20 @@ function drawAngularGauge(gd, plotGroup, cd, gaugeOpts) { return -0.5 * (1 + Math.sin(rad)) * h; }; var _transFn = function(rad) { - return strTranslate(gaugePosition[0] + radius * Math.cos(rad), gaugePosition[1] - radius * Math.sin(rad)); + return strTranslate( + gaugePosition[0] + radius * Math.cos(rad), + gaugePosition[1] - radius * Math.sin(rad) + ); }; transFn = function(d) { return _transFn(t2g(d)); }; var transFn2 = function(d) { var rad = t2g(d); - return _transFn(rad) + strRotate(-rad2deg(rad)); + return _transFn(rad) + 'rotate(' + -rad2deg(rad) + ')'; }; vals = Axes.calcTicks(ax); - tickSign; + tickSign = Axes.getTickSigns(ax)[2]; if(ax.visible) { tickSign = ax.ticks === 'inside' ? -1 : 1; var pad = (ax.linewidth || 1) / 2; @@ -444,8 +450,7 @@ function drawAngularGauge(gd, plotGroup, cd, gaugeOpts) { vals: vals, layer: angularaxisLayer, path: 'M' + (tickSign * pad) + ',0h' + (tickSign * ax.ticklen), - transFn: transFn2, - crips: true + transFn: transFn2 }); Axes.drawLabels(gd, ax, { vals: vals, @@ -470,14 +475,14 @@ function drawAngularGauge(gd, plotGroup, cd, gaugeOpts) { // Draw background + steps var arcs = [gaugeBg].concat(trace.gauge.steps); if(v) arcs.push(thresholdArc); - var targetArc = angularGauge.selectAll('g.targetArc').data(arcs); - targetArc.enter().append('g').classed('targetArc', true).append('path'); + var targetArc = angularGauge.selectAll('g.target-arc').data(arcs); + targetArc.enter().append('g').classed('target-arc', true).append('path'); targetArc.select('path').call(drawArc).call(styleShape); targetArc.exit().remove(); // Draw foreground with transition var valueArcPath = arcPathGenerator(trace.gauge.value.thickness); - var fgArc = angularGauge.selectAll('g.fgArc').data([trace.gauge.value]); - fgArc.enter().append('g').classed('fgArc', true).append('path'); + var fgArc = angularGauge.selectAll('g.fg-arc').data([trace.gauge.value]); + fgArc.enter().append('g').classed('fgarc', true).append('path'); var fgArcPath = fgArc.select('path'); if(hasTransition) { fgArcPath @@ -493,8 +498,8 @@ function drawAngularGauge(gd, plotGroup, cd, gaugeOpts) { } fgArcPath.call(styleShape); fgArc.exit().remove(); - var gaugeBorder = angularGauge.selectAll('g.gaugeOutline').data([gaugeOutline]); - gaugeBorder.enter().append('g').classed('gaugeOutline', true).append('path'); + var gaugeBorder = angularGauge.selectAll('g.gauge-outline').data([gaugeOutline]); + gaugeBorder.enter().append('g').classed('gauge-outline', true).append('path'); gaugeBorder.select('path').call(drawArc).call(styleShape); gaugeBorder.exit().remove(); } @@ -564,7 +569,7 @@ function drawNumbers(gd, plotGroup, cd, opts) { var bignumberAx = mockAxis(gd, {tickformat: trace.number.valueformat}); var fmt = function(v) { return Axes.tickText(bignumberAx, v).text;}; var bignumberSuffix = trace.number.suffix; - if(bignumberSuffix) bignumberSuffix = ' ' + bignumberSuffix; + var bignumberPrefix = trace.number.prefix; var number = numbers.select('tspan.number'); number @@ -583,11 +588,11 @@ function drawNumbers(gd, plotGroup, cd, opts) { var that = d3.select(this); var interpolator = d3.interpolateNumber(cd[0].lastY, cd[0].y); return function(t) { - that.text(fmt(interpolator(t)) + bignumberSuffix); + that.text(bignumberPrefix + fmt(interpolator(t)) + bignumberSuffix); }; }); } else { - number.text(fmt(cd[0].y) + bignumberSuffix); + number.text(bignumberPrefix + fmt(cd[0].y) + bignumberSuffix); } } @@ -610,7 +615,7 @@ function drawNumbers(gd, plotGroup, cd, opts) { var delta = numbers.select('tspan.delta'); delta .call(Drawing.font, trace.delta.font) - .style('fill', deltaFill) + .each(function(d) { Color.fill(d3.select(this), deltaFill(d));}) .attr('x', deltaX) .attr('dy', deltaDy); @@ -669,8 +674,8 @@ function drawNumbers(gd, plotGroup, cd, opts) { // Apply fill, stroke, stroke-width to SVG shape function styleShape(p) { p - .style('fill', function(d) { return d.color;}) - .style('stroke', function(d) { return d.line.color;}) + .each(function(d) { Color.stroke(d3.select(this), d.line.color);}) + .each(function(d) { Color.fill(d3.select(this), d.color);}) .style('stroke-width', function(d) { return d.line.width;}); } @@ -690,6 +695,7 @@ function mockAxis(gd, opts, zrange) { var fullLayout = gd._fullLayout; var axisIn = { + visible: opts.visible, type: 'linear', ticks: 'outside', range: zrange, @@ -743,10 +749,6 @@ function strTranslate(x, y) { return 'translate(' + x + ',' + y + ')'; } -function strRotate(angle) { - return 'rotate(' + angle + ')'; -} - function fitTextInsideBox(el, width, height) { // compute scaling ratio to have text fit within specified width and height var textBB = Drawing.bBox(el.node()); @@ -761,28 +763,3 @@ function fitTextInsideCircle(el, radius) { var ratio = radius / elRadius; return [ratio, textBB, radius]; } - -// Draw gauge's min and max in text -// var minText = gauge.selectAll('text.min').data(cd); -// minText.enter().append('text').classed('min', true); -// minText -// .call(Drawing.font, trace.number.font) -// .style('font-size', gaugeFontSize) -// .attr({ -// x: - (innerRadius + radius) / 2, -// y: gaugeFontSize, -// 'text-anchor': 'middle' -// }) -// .text(fmt(trace.vmin)); -// -// var maxText = gauge.selectAll('text.max').data(cd); -// maxText.enter().append('text').classed('max', true); -// maxText -// .call(Drawing.font, trace.number.font) -// .style('font-size', gaugeFontSize) -// .attr({ -// x: (innerRadius + radius) / 2, -// y: gaugeFontSize, -// 'text-anchor': 'middle' -// }) -// .text(fmt(trace.vmax)); diff --git a/test/image/baselines/indicator_datacard.png b/test/image/baselines/indicator_datacard.png index 025060feaeace97541632d76a6af943069c6df56..27378fcf290e7efee3495d14cdc3e754a05774b8 100644 GIT binary patch literal 28754 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 literal 24374 zcmZU5WmH@}8*NL6;>F$F-L*IrEj~Df0>!0Rad&qw?(R-;DDDo$-O6Ca?wR+y_t*Wy z8rI2VCwY>SJUe?&*k>gf6hs2VH*emce3F$^ee(te416Aje-HfS`uVfz%^R{epCrZ9 z-3-q3VH2?yo7QJ{{8#^+pQGuC`=U{yG2L!gT?`nW4y-4T-jR{>1qM=q7T@}}x39K9 z4BLZ`kE$$6kE@Q4%qFxMBa)7E?>1JNzb>{OoML`4WSfh=79^vAhllYOm8Fbb6ZCPH zc|km~_`M5yD<+C28ul-=X42AZC=JCwn2Zc4mK!B{llySJ`jNZgfW96R1Qg40`c4jZ z#D-RpN=61^RKSrdq6dni`BUTi0bdG4ff29iH7os^=Pz0-BMPrs+YJJ}5hL?NL-WTL zv7+Y0289a(MZzDk$qrcI1JR+yztw&%^A}}@7H98%vkQUsvljeDG=n^^5q0?jq8YXxwU7!f| zYGDc{E~ppvEjf6r*^I+PET@Hn3{>7y)sfjuh87I83$afsfgTBF01GHG;Iy^Z05n|^ z+Vm=&xCwq#^n1=?@|Q8&(D5Hh_8TN21)&OD;X?l9`3t#fbGFUbf;P&(B2Uf0ak@wz z*T4V37{~cq&oyO9PL|l8dF0 zAVFiCR)~N|J9F3YX(W?m&wIhLr3nfV3MAUIFutUek_MY^g2ApkwB+m*@^_J%2bx1B z_!6-eG2)(*JPeY0pZ_T|4$-~7nyq1R#RwI&f3(2ch7QFQZ2S=dFfZN$0ob)<^ZnJV zO?;)HX|9Lg`F2sdT2ftXex?O(%J`CL3*M~?VG`a!rlA{lM)Uxpuap>=^*TGV z6;*Ur@&hgRc6x)e^Q~NniqQD(w+&YS6ZRK$LWb{|=GqqG3;&2OW^PTIqWT-UDzQ0s z8gR5c?qCX$7QzwKa=oi}Oy6#d9K~i`I6(M#BoJ*-8^hV2t2?LEfyJ9Y#m@Q_GPIT{ z-NI-_KG-^Q{fA(CB#Dla5m`=p5cK>86Ml1cBcWCnU=eop)tj8)N+h=5QRd!W8 zaXu<({hXoe2c|9dHWJk=boBvq?4IBc&L%G~us@eRvh%rjmddi-KR-miJ;ZFpo*aBG zYrkmb@G#MFL5hr4>RGQv@*-1>Pm^JlA3TIXN~z! zk{g)-2w#9yJUt>1J`tEYDR4y<$i2GiQzw4uEm%FAFUBFvFynZ@owpvB#=Kcw7Gory zRqz{Yl!LZSlFa}?liEF(Hw*?PhZk`$I#Uel4PRIvEkf7AvR zc$a@J|Lg0^G~(!8imSqTP?yzo>A$e4OzYH1xrmzt;e~vyto$$Dnj}T6ppzLrEnaiy z4U%##Vy%5%*c6278oz3?wyScM$Ck#c+a;C3pU5c)lh zoi77DDzgKgYH&ACQUS*@MNukBwX{Zx?WpNSDVr{g@?a-6n>dJ0m*jW9d9F(u zQi<-Z5Cw%luM9a@Dx?vu;?EaWO6`zeDcV_LX|R=PTLb@C%HMSjw;?lAqHeFZ7^2~C z3A<&ptK**5{=Qw`N}B6sAmx{mQzN%hJy=sGwhFzEUz{r4BycxeuemkNa}ppR&6!xN{_d6*v6}!SEi7 za6MfMy}2-IzEkR6XN}A0Hiym5tB- z!L*9cWs96FT8Yb>F|XPxs&|XFpW1O&uNe-*Qv__4doSm7o#9%22tJZT34e2a5H#ek zf=6q?g2x$|4ya#kzxi``WyCIeUpb(t2NSf;ELAWbT@otvb-yj1@1TiWu6R4@rCfz) z!`18)*{GKg_XpH*+lYMJ$ON(MAs>$_nZ@)4(^6o~e|5f&q2BVb`$Q=t<8@5Zv$KxW ztsZCu8{G&&6M*0KsJ2!4J>*vRb(Q}q(TEA>WHFN_obQ|IDt`wq?ok0PIFr zTg=;-jnhWP_i=g-TO@^$Xx6k~WXUg@+q6a%Dd1E}dwR4AR<+|VPi;E3TH>fZGhI1L zDq&03PL)51#u>7t0~`-N)6>7Zntlip{{Gi`>AL{>=&jZ-2=lzX!1|5Yugc!$_XS{_ z>;9{YpUWRsmD_9)cq-lAYjF$s79~yOd5Y7_)Kfa_iVN+Zl?56$YxD$Fe1nr_kNa`| zr!1*Njix3fvUt=GUh@xX@S~ZF{lho6&R5IkY+z~lnJ^0net_xf&^lI#a;x3{$~#z| z_WYTDn`uKi6)W~Yj(9T^E@J43)(cN_cLBo0m9B;FS{S9;#Ns1+&*Fq5X}0|lW=pAN zfrKSO=AhxdN%6OodA?}sM+Uw((-JkZLg#6~wm(6eBRAp{X;Djfgb_92t(<5m)3E8T<bd3P8{_BX zS-k465DAS{{0`iY2z!*O??k>NZ?;l;AydSK9DVvpfdIQf^P7o{u1mk5T<3A@)XYt| zzIsTNpVi#pEk@5tp4Rp)*y{%6oe28TFC9>Cno-thE3JCRWX6y3V%*3@W4d$Ml{Vn5@icOVW>~(Sw;?>AWEghp!zWMfU9S9@#l8{qVw|tCYeeF0*x0+p z1A_L2StjHIjC-fnaU^Nf^SgjN;UVMa>~(l5mU))=az}yTd329Y9cj}t^l0nkj@9yS z1jANn6LdxxGR#%vT8f_C9z*1OJx-Fb2Yp=JFxU;i?Fv28}R~Z(dDxUGLC4 zL5y$UlO!6iI10Dx*e%AMMBAC2p5_$iucrS7M|W#6rvI9!XEcS({;Ul1B3TLYhh1QS}SCWHbe6)Td%^cuGtZ`vrpI zQJ7`37yA8vI)Fv9NElJ8U?blx!8kVHF!TuxRhfrI0G7AE!oH-cp7>5GwGlj+Tof8b zGR7RmwHp%1c79x&+RB1~T3?s3-8eRyw0RMw?;AH=t{=Rbt&5IYfC`6wT>8e4ecPYH zNN$pNWZ}C*JvM5}61Bf*3r59JM)_8NDeT){eHrI{S;S3SkB!ck>*)ewwBX2)HV=2P z1ti1pdb@jh-m7U3{`HUb!aSs`d*8eb4=VB2zIAW(CEeFfW43KuON*^7!3AjMs04j) zdz_m644+JrxYn%Q)(w;WkYBhnq?x3=6ZMik>IUEQm(+@%!wHS;xKq{qd?X^tHbxUZ z*?_XOjoS>N#iy2|nFb8+u4^lm*+lyXI3KDEOTn(f7XG^ab*LD=RI(7gm-HD@b&CE= z(4jl0tkPa8DE}7Yo~52Ld2gW?-$O`liDT-w3)A*cxnHzHV^VlOJJqWb&U>QT+BEmgjdG*;H`*&pb+A>p?g;VM66#*` zJ6F2krteG=S_%jyQ=8OZje@nR$xYG@8y^p3wTbu$tF0@gSO1FY*XR_o=IGBS9O_=c zW8?{21=#TE5M1A>_ZFEHVj;vpGU@hocHEpt^+iW_)ml0>zRW@fGKK4fwuaj6B!9Mr z2v^16SlK*nPN-2QN`~CXjQ;u43SzU3B~d=k)nJJ8lir*3*Il7$xM-i(70s&!JoW?8zaL#R2X!L|7qsce}(z1gDXt4Z~Hm^!_c>y(*qvANN^a5iYxZUjXH zK2GY7EIG0(MFr+M1aZnmY9F;QnMOtHhf4jXYj!p~YbMZcjSDXbVtDQmA<*C} zw=PVIo_ybIrd%*UuU)+6Kc_>sNK`LWT3fW@p;aZB5FWI{mpL?NJU%vsn!@7*zsk)A$uyAQQ+1*$E4S&>^>?&&;i3O50^b*JJ`586N1JxOP=%r7D)3b zK)pdmSJa~Ppc_~{7II7~*tHLiO?SyWgJaAZ#6F0-rp0iMX3R5c_T=TFJh{MG-l#{v z{>)GNOuwmou9D1W@JmN(J3|HUY2Hk8hY!VVYf@} zTvo!#quxc3I%bC$_z(Pg4l!%~eg&FmbTv@vy~A;l1y^Htx5s*MY!DQ_Hd?gH3BuapSk?>HLR6gEgccZEnB2@S5f> zY%;ZQx!!fMmZ|i|v&)*Lk@yd!N5?#^3`)7=>6CJHaM~x;Wfc#tp)*mg7@dD*_1?W0B7FlYQ4jTv%l_FE)D(r1<#{pEUM);|Q*Mr{OXG z_-ax`qMmA{$qlBP3Z~(qh2lDTMKfHH?`nngX<>K9&c!+`yZ6T2P87t-QkNWD)JvZQ zyaj!O-~%~&@x26`T4kiHnhmB;Sm`54G&GREuP7a6#Uc(D?ChR~N8QkSNZI#(Mur|L z@JiU_fQ!UQR!iOnc^@mUq5L>sgSX+Gg9Xo*IT$InS<=U^Ki(<0U=R|o-M=|MX&Crf zwMLTfbu>#Tfgv}Gm^CPKuzka*`lOn$h{1%RgrQ7XL@kpfU%*&s5xMkJka1@o7M40R zmF-vmTj9Y!FDEoE4xltn2a~4~*tRCxJ4(C8JmR3My?1W3pnFQ>`uSWR!OmR$2*=L1kCFR9Rt3o=1p%|+=t-d$} zPo+7GUE(D**+_*T00UoIL06{EW?n5^F96+SjKq{nowIJBc%GND4M(S<+6p*jyVD_` zon^L|j#Zk>r;2^jxR2!k_{Byd4t#)Lgy-~kzV{RYlILmi_~Bm%%I{ehlhVwwd;WsR zvG=;c8mOaL9DkQwL<1zk8Jf~u=I=VO;)_?BDU);L5MIlwx@&9by*E|<5PxkVs9zZ4 zIFtYBu7q6R{nWfLY?50QAw8q;_q5sqA^9UrwT}N@4BW7x{~n8I_Ua$!--7N5Ogo2FCDX%LcGRELc=5D3)%&F4q0zkqOk4L!ABZelkxz>_jWysJ?XeDP*N; zWCf+eMNo^AWUfzqqT@ilK-CHRw+HF8_gAcGVe$Or-Bk9L#)gh=y05$2V~;^Fs!P!@A!z^KB~ky!fhSHAFYxjVdchk{^6& z9q#$hM8|(%OxWxapPjkqSnUp;B!Tyo8jmG;FIRj}9&EpJdchOv~O*9Z3OVCMqVw+J-rKR-z z?+AY*hbqW#A+~Z~yuWtqR>Xa?osmPmZaNF?MXsQeolv?vRY+(7M9&vkC^2O=j-L4O->}tk%M% zN)=3hQ>@x4Yaa$-96@E8Eo(F6i2@l)K~{_~c78hags2r$)*R_lb@>DbNM3IZlBS*! zHr(+RyKsr5^#{6|(Oq&g3%F5$QGl}`2lw|eCk+ojUvC0RzYXV zj^&wZm9*yZ#^>Cedg|sXg>=*_ozOXjFoN!NVQbmyT z@j(0>{CjWwh2Gn1B#^VmIQewgVV#)TCUiVd1*zv`FchJO!(a1T%%+Y{^G?fqh+FVIyi3QN^qXOS`*N9 zai&VKzq%En=oJgRBY_O^((}USbM+JKnqa3eUU!ksL!iPG^CXWnQzk<4g2}G(6J9Nb zzv*r`LRJ%2Yp1KU$ElFUpClf+n){vsbC?91CwAMAS*vs`lL^k>t3-HmSF>#^_ue+d zxWXUphNdD0^pVZ@bu9qKKq6&v^O66+_0l=ke_FhnrFJ`rtki1nACMHMyFTS*d9Mr23fY_+{CkT3(v%Yp`;Pb` zd!vW?+t1akYQ0)b`k;bEAZ@m=lJD|-AZVyI^BmQJPu?h}ZdmbZ%M+oosnGtW>MjIc zdtXoxTrab_zO0hMx{`cw8Q*5r2c|50$+#guL@=F5Q6+mxT~4BD_>ShkH(7>7l)ujJ z{-=)FD9@KQllna)+ZqZn@j2*Z>H)OIH!>fPvJu)>S4Gk}z+x zKlRRd?Xi2wJ7+4zIJ^xQp?N(iS8g6B#VWR|dao&H&tti8MZMOz;Giz2pjG81vZG1F z6l0N5<~ONk?$NgBJ~e6;gaD+#8a8RH?!>f_27fe5w1vPgJ4Bap0P&Q3TJCH9YJK#} z4|k=4@C6YM_uzwV+6;c=>gVyFtiAvz^_KLq%poIgHOedvputha%; ziq9x~L^5W)L1P*$eQ~vA1d=GF zA8}FEU2yLRiRQ3X9mp9GStqQb6D9Wad~bH-~%bv&eFNCAMvuO}y+<;t%llE8!!#`G-xn!~@C!fDM zf<3;fyl=JQ?5(&&w&>QoL98h&xh{`I6+B=)sID?FZo>%!&Z`tFcaz7y`o)Obwcx`v zozJE_UMX)8W&8&sXW22^{8xp_yf{4(zy&L$nErdHmQt=`*FKHE@;b4T5Mqfsr(Bsy z($^>0$pQK*>QiEob(vpo)EyxWamR&i#tQx%k@`5|naJ%kz~7{{mF6(v1}wbVU2@d; z2k`EA_2Slj_e@*nR-3;HGJ5d&D0JmvRUrTtUFZxFfU*_`v3zwU@Hl&zc#FGCc}I+U z*;FBh-`bUEbH&Bqmw!f8~ zdi;BHSs0B6@A{^*tA>7GptMx2HapEpLFLwLg@YHF%;(~_hDf(@BdTlkmLBEQm=u?I z4PVv5_*l2feIiWB1``oNay?wY!RS`f%;Ach&n6T=14aP%rX+DIr6_xcYP^{JVNN<#p%7`~4@caWR z6(=8Uw85X*??*OqfkxVn2pKE%0b`_@^CY^;iRxcd+PVIp7T{mu{&EN~JCv4@zz#V= z+3C7}rjc=a@`ew*luB%F`dELi93DR zAc);|(dzj@WHYYv`+#XfOJy1^e+|uK(QTbd`hX5Y0OE98_8o*W`t#aNXGqN?X*V}f z!nF3n8e_s#lANPAI^KaFc&A}A$4}B}kT6iEB`jCTJpTSsr<2(@uLLE(VLccaR(sdF z_J`nq#wDVcY73x5F=mPZ_j(FRSTi0`_w!Xw>@htvayV#`?{%*Ii$*gY*dr5iFdSWM z164_{hJnj2p`<|lV)>SFn6~yEp3D6!Gj)~X^tJ`aAl{|8=k}duPI7epJj?gDii}xO zt@p@ZcO~g@>EC_HdZ)15C2ss)grox|(zUMli5xs8otqq9&w|!nb~Im}n!4qZz9n6Q z$9Y|=_MVp1<%t5dAK1$M4eXJtM0+!TSZnnsh^&P$gS2i@z*PBKTWD|PA-KM{Gb^PV6w!E7a#BbT#%U5OWaB3g zGh221sU{FFs{gSOcHA?(zm7S9g5)aY}u=xag2dq3qZ4Nq%7gjcQ;rpw*1_ zn{Q=D>rUr4U8rxb7bhetP*kqZnb8h5&818?Tl>IvKwRs^cSjcaKSzY~Hg${5cl|rK zctK+#86taXFLJiW`nSJHr!#~{?TQ*;PYHHaI4eQ>KEFYd3Nx4iYYZF<#3uilERr$@ z_)OmF<@%FEypCIKrOMX8;|%RCm7&Vj%}9q5fssm3u!AK#Qo^X(l#%!@1QfWbD1AE!_<9I64{K)JI&nnd*a9W z#Rt98uTk;798+uj?RuyzFNYrl?#gf0;x6^(hug_2a1NA1nAAYUM@PGGP3SvS;{bhx ze3rL1kY(gxWw&wu)wF!lko&789(%Br`gLb`v3$(*b-%U9fg|^vUv6`-0bOU)okAW3 zU(2~H{?Cva9~_CU&gT!KNg2=7U?BvYTr+k{^Vzo9`OV%iBb$%fFs{lMhkVTLpSoM! z9e%-71AC*vKdA-ZG;d(23OYa*5Ii3qC;WT%qV!vL)b~9z$Mz0_+1F(nIDBU=Yd1$1CX-~CMXG_ zBV*8BZOO2?D!DzM@@c3p2TcX%vK0hvTzHr}IbC_qGi8MXmoA@0*fFnETICdfD-Oxg z&j{(PH)gD!zo9mcBsk!3^mH}#=5jyBJO0IgBJ9)jXg7J|<}9W*q=cN%ao@At(#xM1 zIWDfCP6DiMlgE*Ga8tJ@xj9U;;=`39lf+E8V2`5#mN$8&pehbwOp@yFGa|((Eu54z zHf?_N(1-~&|Al$~f}7vjGP82#iC#98$2-TVo?G4x9q2BZvf={;$WP_tEZsp6w|7@! zomXHBA|c#rH{U}<7UGmBf7QzBNi#YyjMWT}so<1h0-OEZt^C031n z?T;GV7;pHZj9XWq+~<_iqOnwg!Fb#aq1=03%5^YVpTFB2KUw#xCBs>LeQk3zx6&%h?hr3Zez zSWo(8rOSQ363g_!arTgq8dq`kJW@bor-V32GCMoK>}>9ld-3s5{kf$&H)8)zKFSCi zC7h!S5J!Pv{f;HBLzX{s)Ahk}z&CpXO`W3+Ljd@#(KL2n$daH3M@jUHWK5K|&H9f% znf9RnsN;q8Znr+W#km1gD=WcZ!iBFN&v_gK)mVG-3^x0^nSj+f3jP6eGC2W=T{#33~#a524Ug<xh{LyLGg67wW<*M zoZ~g{m7YfNfy4Dc`C=BhA(n7u)h)N|Rsgx#y9lzq$TvpME7Og9CI_+waYya1s(|3- z&j&v?avtX6kS44$dtmx4 z;hp!7KVJGdD_Ae09bd=h%+93e|IG? zM6YLcPp|w+Jk4XHX~1cRLzq;Y*teC8IJ@qJKnPd2wpmdXLHbI6DR4C1c+Ex92aCs(lfK-D z>4jcVkIx={(9ci#AFFcEFFWPE#Vju9O~Scpej4w-abC9(6)yF?JW02zjNhE|So;Fu z#A+)-V`4?i!@)|>3#91r0x@{DAE$`X-ag;&<4}?CK0Kl@czouL=*hW@px&U{Q9)Ako#qjy;Mp{$~_;XA^73bO8K+qi3keAHtI`m ziu|MCid|o**@mfKCaMt!?w-B+EM@f{&yFUN^OU}128S+p1&^0REMuMmm3CKYxRjeq znU}u9RPRPy|2#hW5L3ZE7kCjFc*6c+Cd7e$ zx=S!aW0k|!JQp{{U#vPc>6VZCZtT_tw@8wAEF|N4*+AYO*SsT(-G+Gdq4$HV&`J*OXi6bRX>Ls|&%WgfR_x5%!h zaLS6PCfk8ajY6u|y4uDafX>7GH_xd_WA(?iQ=bE`v~cfJ=rZy9If4#{8B>4)$Gtwg z9BBKKM>Q46JWphEanb-AKEfXZFc}$;=_v8 zx;;6g4*#>~S$R+}7k1;ptLIN2du@~*3?v{e=!Dth1Db*c5+X;-1If$B3n2ivV3kIg zOcQ=2OviQnR^xG^p3XO_vsg35wq;drzUqWaf5=FV>z1pnbTi_Hw-1@(ZIiLf;&|<; zNuDch$ekT1@qNzsi-->Z`O0+JUwVn+TxxK=?fqzMbW%4+o-tJZ2P(rNA^X|GV|ybl zXcYc{rD>56Pc|F0Zf@2!*CJTh=5E_cv5KtvQeC8YgR)nS)2 zW0^78iK+Fb?F5&>)~%O>+yl39MQ-j5gO+$yu+qlanU7N#$d+2%sNv1LT_t4c0e9^ZRK)KPxWL;=2LK7oG$12V{QHQaRMHSNoG&)*ZC_<-KGe#nw0W-gpe!=(}WKlb9xV#G>Aowy=|BCU)U za)QRaG>5f4gv|E12L5KIFC}PwI6w>G+s$b^<6?rp+(csyE_XSEFB7A-Qe&)z}BW8P>!s8<0D+g8f z(OKq@(&>I4*=rwngvv+`8C5_z-0Re=3R>#UGnZprsk6rV5vTB`M`b=_Y~~sJa*Pz# z8Jj-@xN+-WO71#A71%L(-$RG!?|hOtvE)HB?Z9A&tgCZKDLUC`H~4_mGZWCzfFKXT zIaug9!S`}l$$q0*UxwlE-T|GTFI5YXO5kaAogImdVNgTp0xJCzsz>5LgC#tbZOW3s z;7Ib0UcDamP;bZ@g1h>d@7T}3zLZ%%v~>=NTT0Q=JZi2xBdR-%ixvrydJPCMJ~%p8 zCJ2TqOcnIWpI@j2oCtMlbisI!E{HwHwptMymSphvgTtrMR|q7pO`d<7pQQ}AQ}M)M50I< zKHoZTZ!^Xa+mRSO%&HvwE@NBjAH@kr(4lAACFSvo65qs8$m#7pAcz(3Xp=e@HI_`? zX(s-Gec2uP76>SgexA!#Qp-_W?Y-SUGN$3mVz=?^u#Egzu9d;H-)=NJazWpod0jsI zld_v$FXlr20w{FT+W36VTR}4zH<{tw`>!tBhr>QTJi9SRy%JU9abQY&FLWEz$_H0yUYt7c%~0Wyrtt<-cHg zY0LNJiIUBd0CJD`k}sUeBx9}F%|qLX!sy(>M2}wwHNc5#TI5E6y4aClSn$SADDyIS z?RSfy7ZxC;`4}%U2RnM+;n>1{=AIZj+}{#dt-{f(@nok6NRwklU^J}FlQxB;Dy`To zun6D-@p?GkCFUVJzHWBlfLn^m+}228c2NSZ)28wGy96Eo{=EE0tYkzc%3=g=%TFWNp&LwP#<}w>p z!fQl}EWREZF->?%(2_7aBBQe1$2~o` zcq9Bi)OzgGlPoSiAo>j0X1{Jik%f__xb?Z(nWmaqS_nKJk?;EhsNYAqDzp=#wY?|G z&L<%{A-0V|3Ah;9KiU&&U#(%vk`>gN9`mf9oc>xvVyD%LRzizB9Ax0U!q0X5RLsuV zU*xJm!3H%D45nKdaXI5-YbIWmCSdNdAuRX{Ctdb->_@Ae8Jyr{pYL`5D#t%y z1<7A%FrWEHzvX7t|17_T6Wci_c2A4^t$ndG(7Q5Az=-6i4WK6+D-`M#f zUL%}czv8^}T0Xu+4O1~sc1%W)fyz1Q(uLV=@9t@G3#A!*RTR5{y85DIfyyOd4k$Ew zeqIsCv8Qb=d8!4H<;%lN9=-&XKlsKy8$echEtiUSIPPmVuS4~7FymRR!`+S#r&Gkz zOByk~%k4qO=`z=``}r$^5Lde}$9L=Ks}e5dfgknb@IBj0q)g7(7UMBPa$?^}(>0-! z5u>7bzo|F;-5#-h_mV4fs{K~=|CXDSVRSvw+oWOp99tDZ#XDp6^P`K*e{LM-u8^3& zl?@7$^NAJ7cqy|u)UjcxJ3b4Y&iphthJ1j~x*EeQms5RcY+|s}{6KD)3;KIL2DVi0Wu!MeBvC^>aM@Y?|U6!H)P~XmC-pIB(Dd z2+bB`u`hie1?_q?qB?M&#(y_%m((*TkKaBIyR4+63!NpoId== z=k32yRj6MAI8;U{d;Xe_96JB_Q#T$?JC;)UQRh8y6R2CVtR}peZ+@2F^|4zm z;_OQl7~lu-2p5{lt_p}cckU%>mhL+AN8Fa_krI5`3(r18-qu7}yzha>>1ngEG(Y9n z&+(E9@}a~=T>J9BUC~2BzCDLr^kROvAp?7z-kftZ;>O*~P|7nAbQE--CK51rjppa% zfqc6v&!`=eP^UwV!rsE-PHh`ApF*?o*!vtV6iDJf&-Is01l=FI;bgqdFVKj7ii5>$ zFxgVhhOd%V9`zO*gVSE>xessI8g)DW`wdYZARJ4bgEi0EZj$xxBCeHmUB+{->(W)j z?Y6Esuai2mfUzmdR2BM)T+%%AL=DcI6^tM>xos+oK5}@xu6#@XO{dmAN(}mDg2ySO zJI|W#aZrK~)peQWm_es7q7(M6+bp{ML8mI*5lQ1a*1?C1fjq6qXI{X)A&AgTcYG=x zr2}>?iW0}k>ljq$zZ1Od)o*#@r5kvbce{1gG9q0}eI|hdcs5uVdm#_do8Nzwg${r8 z{3$3!VG`qP-i;tPFUb1K_3!(NomRjNZ}$T1s;_QJX zpne5Ujuv~NWPA`M9!Q?B-{(IKCf(&q%zu+G-?g%#8S8CXaf}@EDbUM8+>`P^QoTU2 z8>K_QQFG5;PD~(0GO&7;fbHz!a|U=!05enWHXu40P0>$r3CR0XMLXPSH-{q?s?Icq z-U33@cWjswXDoga$Qckea$&3y}MCfPa2BHe4$N5abUUwZ;bj!|A1&jbp|xI3-RDDGed zr1-l^pboG(MzS3w;M{BgRCFZ8AhddPWl(CqKxqkQFohl=MXrJv-W0YLqqS4~fc?Et zDj^qY&w7jsVG0N!Ktt>8_w5jAA7wI$g{B_IUqb;$M@bE>1q8gUoDrDvLe!>CIvsC~y|OOf9rIyZ zEVw*-n<*>&wk@Qq>c-+#DdU_U0Y~f$N~Gw zeR|Oo$p@%gD?}rnAF%tp0S3kS$N+Aqes$Y~v{q}S{%(IjCrg(YwFp(~Lzn~)1!V^# z!zNBWXst`_1i8$FS|(HCDAZ{Q-LLO9p3gi+&D#?D#~aq6N&B!pN0BDeT`^Cz*ZR@K zPZXpIq<)I6BfmY%q%*~ugyoJ>q?bcq2PXZ;V?d_|r|SppnP>;eK(xjgi(+-$7vZ+Z5q84ai{jRweYO(|v)k^4oa zb*GsfWyqhINFLn=(Vi02uu+Fzg1o175u<)a$tsLlMz!)s+0#{XQBXRnjJhCdN!#=% zO%r-rIv$CTTYw=@bKyVkSbS(QB?6rkeV=roVo-RfyAgyVRs=Odwn2{&NHi8yP*bEY zKqY(z!=?oQG{>PBV7DVlEQo?yA3;DL#EtR4VgPAb&O2b`3y8+k0H4tapaUM|9IFil zu>(LJ24!`i7Rpd4h$N195jjw?2oQ=rObUztoR|Jk5N(9C5TN3Fzzmtp8n_G1IpOhv zuLq5(4ogCHpKt);E(SUv(X9a*qPfJBq@a#QcMI*)ZHn(3piQViiC*){uSNc%4p4uk zLpRLs6RaN_)L)6moU8!&EBB$r_i=qQyU5U#pe-$)k8eeU86bQcWK<|*By-%gjS`sI z2@78npOZ>vL;+!~f8rv>zm3?A$&YK($W@fc*J?OW*tb%W9XOLp|DXrUmK zsz3(n8UN2#njA$=3|)L=Mu>pP>>Fa_Oc?NW(A&3RJ%}*F9D%?;sR6!dOyBJj4WQj~ z2l}cVQyU2#5gO?6l!~m75LzV>Fu2JQOz)uMsSPxl1L@O|4DjNq06d||^YHSoPz(Z~ z>k0v?0#LbR1TeOy?7wC@p%5Ve#C1(#HWWe!3K3BaVSz$Gw@yj6LPjVA)X|yT%a{di zZyFQ=Q}IY13IW(VlamhRHlYv

3Kk0jN0-2?{~pGSdi!09>U^->(ukpb!F3h>%JM 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 IlEwl5167{n#sB~S literal 9428 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 diff --git a/test/image/mocks/indicator_bignumber.json b/test/image/mocks/indicator_bignumber.json index ed8843b93fd..59876ba35cf 100644 --- a/test/image/mocks/indicator_bignumber.json +++ b/test/image/mocks/indicator_bignumber.json @@ -19,7 +19,6 @@ "gauge": { "bgcolor": "rgba(255, 255, 255, 0.25)" }, - "max": 500, "value": 450 }, { "domain": { @@ -36,7 +35,6 @@ "gauge": { "bgcolor": "rgba(255, 255, 255, 0.25)" }, - "max": 500, "value": 350 }, { "domain": { @@ -53,7 +51,6 @@ "gauge": { "bgcolor": "rgba(255, 255, 255, 0.25)" }, - "max": 500, "value": 430 }, { "domain": { @@ -71,7 +68,6 @@ "gauge": { "bgcolor": "rgba(255, 255, 255, 0.25)" }, - "max": 500, "value": 450 }, { "domain": { @@ -88,7 +84,6 @@ "gauge": { "bgcolor": "rgba(255, 255, 255, 0.25)" }, - "max": 500, "value": 350 }, { "domain": { @@ -105,7 +100,6 @@ "gauge": { "bgcolor": "rgba(255, 255, 255, 0.25)" }, - "max": 500, "value": 450 } ], diff --git a/test/image/mocks/indicator_datacard.json b/test/image/mocks/indicator_datacard.json index 42f5503e7c1..f2a34579967 100644 --- a/test/image/mocks/indicator_datacard.json +++ b/test/image/mocks/indicator_datacard.json @@ -5,7 +5,7 @@ "mode": "number+delta", "number": { "align": "middle", - "suffix": "km/h" + "suffix": " km/h" }, "value": 43, "delta": { @@ -18,7 +18,7 @@ "mode": "number+delta", "number": { "align": "middle", - "suffix": "km/h" + "suffix": " km/h" }, "value": 43, "delta": { @@ -31,7 +31,7 @@ "mode": "number+delta", "number": { "align": "middle", - "suffix": "km/h" + "suffix": " km/h" }, "value": 43, "delta": { @@ -44,7 +44,7 @@ "mode": "number+delta", "number": { "align": "middle", - "suffix": "km/h" + "suffix": " km/h" }, "value": 43, "delta": { diff --git a/test/image/mocks/indicator_datacard2.json b/test/image/mocks/indicator_datacard2.json index bbb0237e9d4..c9a53809e9c 100644 --- a/test/image/mocks/indicator_datacard2.json +++ b/test/image/mocks/indicator_datacard2.json @@ -5,7 +5,7 @@ "mode": "number+delta", "align": "left", "number": { - "suffix": "km/h", + "suffix": " km/h", "font": {"size": 20} }, "value": 43, @@ -19,7 +19,8 @@ "mode": "number+delta", "align": "right", "number": { - "suffix": "km/h", + "prefix": "prefix: ", + "suffix": " km/h", "font": {"size": 20} }, "value": 43, @@ -33,7 +34,7 @@ "mode": "number+delta", "align": "left", "number": { - "suffix": "km/h", + "suffix": " km/h", "font": {"size": 20} }, "value": 43, @@ -47,7 +48,7 @@ "mode": "number+delta", "align": "right", "number": { - "suffix": "km/h", + "suffix": " km/h", "font": {"size": 20} }, "value": 43, diff --git a/test/jasmine/tests/indicator_test.js b/test/jasmine/tests/indicator_test.js index de1b71d174e..44eb99d442c 100644 --- a/test/jasmine/tests/indicator_test.js +++ b/test/jasmine/tests/indicator_test.js @@ -7,17 +7,10 @@ var createGraphDiv = require('../assets/create_graph_div'); var destroyGraphDiv = require('../assets/destroy_graph_div'); var delay = require('../assets/delay'); var failTest = require('../assets/fail_test'); -// var click = require('../assets/click'); -// var getClientPosition = require('../assets/get_client_position'); -// var mouseEvent = require('../assets/mouse_event'); var supplyAllDefaults = require('../assets/supply_defaults'); +// var calc = require('@src/traces/indicator/calc').calc; var indicatorAttrs = require('@src/traces/indicator/attributes.js'); var cn = require('@src/traces/indicator/constants.js'); -// var rgb = require('../../../src/components/color').rgb; - -// var customAssertions = require('../assets/custom_assertions'); -// var assertHoverLabelStyle = customAssertions.assertHoverLabelStyle; -// var assertHoverLabelContent = customAssertions.assertHoverLabelContent; describe('Indicator defaults', function() { function _supply(trace, layout) { @@ -56,6 +49,11 @@ describe('Indicator defaults', function() { expect(out.delta.valueformat).toBe('2%'); }); + it('defaults delta.reference to current value', function() { + var out = _supply({type: 'indicator', mode: 'delta', value: 1}); + expect(out.delta.reference).toBe(1); + }); + // text alignment ['number'].forEach(function(mode) { it('aligns to center', function() { @@ -175,11 +173,11 @@ describe('Indicator plot', function() { return Plotly.restyle(gd, 'value', [1E6]); }) .then(function() { - checkNumbersScale(0.7, 'should scale down'); + checkNumbersScale(0.8, 'should scale down'); return Plotly.restyle(gd, 'value', [1]); }) .then(function() { - checkNumbersScale(0.7, 'should not scale up'); + checkNumbersScale(0.8, 'should not scale up'); }) .catch(failTest) .then(done); @@ -243,7 +241,7 @@ describe('Indicator plot', function() { Plotly.newPlot(gd, [{ type: 'indicator', mode: 'number', - number: {suffix: 'potatoes'}, + number: {suffix: ' potatoes'}, value: 220, }]) .then(function() { @@ -252,6 +250,20 @@ describe('Indicator plot', function() { .catch(failTest) .then(done); }); + + it('supports prefix', function(done) { + Plotly.newPlot(gd, [{ + type: 'indicator', + mode: 'number', + number: {prefix: 'Speed: '}, + value: 220, + }]) + .then(function() { + assertContent('Speed: 220'); + }) + .catch(failTest) + .then(done); + }); }); describe('delta', function() { @@ -417,22 +429,30 @@ describe('Indicator animations', function() { }); afterEach(destroyGraphDiv); - it('should be able to transition via `Plotly.react`', function(done) { - var mock = {data: [{type: 'indicator', value: 100}], layout: {}}; - mock.layout.transition = {duration: 200}; + [['number', ''], ['delta', ''], ['number+delta', ''], + ['gauge', 'angular'], ['gauge', 'bullet']].forEach(function(comb) { + it('should transition via `Plotly.react` in mode ' + comb[0] + ', ' + comb[1], function(done) { + var mock = {data: [{ + type: 'indicator', + mode: comb[0], + gauge: {shape: comb[1]}, + value: 100 + }], layout: {}}; + mock.layout.transition = {duration: 200}; - spyOn(Plots, 'transitionFromReact').and.callThrough(); + spyOn(Plots, 'transitionFromReact').and.callThrough(); - Plotly.plot(gd, mock) - .then(function() { - gd.data[0].value = '400'; - return Plotly.react(gd, gd.data, gd.layout); - }) - .then(delay(300)) - .then(function() { - expect(Plots.transitionFromReact).toHaveBeenCalledTimes(1); - }) - .catch(failTest) - .then(done); + Plotly.plot(gd, mock) + .then(function() { + gd.data[0].value = '400'; + return Plotly.react(gd, gd.data, gd.layout); + }) + .then(delay(300)) + .then(function() { + expect(Plots.transitionFromReact).toHaveBeenCalledTimes(1); + }) + .catch(failTest) + .then(done); + }); }); }); diff --git a/test/jasmine/tests/snapshot_test.js b/test/jasmine/tests/snapshot_test.js index 62743768fca..6c4a4dc3fb0 100644 --- a/test/jasmine/tests/snapshot_test.js +++ b/test/jasmine/tests/snapshot_test.js @@ -255,6 +255,35 @@ describe('Plotly.Snapshot', function() { expect((actual || '').substr(0, 6)).toBe('url(\"#', msg); } + it('- tspans', function(done) { + var fontFamily = '"Times New Roman"'; + Plotly.newPlot(gd, [{ + type: 'indicator', + mode: 'delta+number', + value: 10 + }], {font: {family: fontFamily}}) + .then(function() { + d3.selectAll('tspan').each(function() { + expect(this.style.fontFamily).toEqual(fontFamily); + }); + + return Plotly.Snapshot.toSVG(gd); + }) + .then(function(svg) { + var svgDOM = parser.parseFromString(svg, 'image/svg+xml'); + var i; + + var tspanElements = svgDOM.getElementsByTagName('tspan'); + expect(tspanElements.length).toEqual(2); + + for(i = 0; i < tspanElements.length; i++) { + expect(tspanElements[i].style.fontFamily).toEqual(fontFamily); + } + }) + .catch(failTest) + .then(done); + }); + it('- marker-gradient case', function(done) { Plotly.plot(gd, [{ y: [1, 2, 1], From c796e57e65477f9a283ea8f811085721e439cf55 Mon Sep 17 00:00:00 2001 From: Antoine Roy-Gobeil Date: Wed, 26 Jun 2019 13:08:26 -0400 Subject: [PATCH 07/15] modebar: do not display hover buttons when all traces are "noHover" --- src/components/modebar/manage.js | 11 +++++++++++ test/jasmine/tests/modebar_test.js | 30 ++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/src/components/modebar/manage.js b/src/components/modebar/manage.js index 89e9ce3a6c1..f4a43c9ce9e 100644 --- a/src/components/modebar/manage.js +++ b/src/components/modebar/manage.js @@ -146,6 +146,9 @@ function getButtonGroups(gd, buttonsToRemove, buttonsToAdd, showSendToCloud) { if(hasCartesian) { hoverGroup = ['toggleSpikelines', 'hoverClosestCartesian', 'hoverCompareCartesian']; } + if(hasNoHover(fullLayout)) { + hoverGroup = []; + } if((hasCartesian || hasGL2D) && !allAxesFixed) { zoomGroup = ['zoomIn2d', 'zoomOut2d', 'autoScale2d']; @@ -216,6 +219,14 @@ function isSelectable(fullData) { return selectable; } +// check whether all plot modules in fullLayout are noHover +function hasNoHover(fullLayout) { + for(var i = 0; i < fullLayout._basePlotModules.length; i++) { + if(!Registry.traceIs(fullLayout._basePlotModules[i].name, 'noHover')) return false; + } + return true; +} + function appendButtonsToGroups(groups, buttons) { if(buttons.length) { if(Array.isArray(buttons[0])) { diff --git a/test/jasmine/tests/modebar_test.js b/test/jasmine/tests/modebar_test.js index 60d08a664fb..05caf3f35f4 100644 --- a/test/jasmine/tests/modebar_test.js +++ b/test/jasmine/tests/modebar_test.js @@ -41,6 +41,7 @@ describe('ModeBar', function() { _modebardiv: d3.select(getMockModeBarTree()), _has: Plots._hasPlotType, _subplots: {xaxis: xaxes || [], yaxis: yaxes || []}, + _basePlotModules: [], modebar: { orientation: 'h', bgcolor: 'rgba(255,255,255,0.7)', @@ -719,6 +720,35 @@ describe('ModeBar', function() { checkButtons(modeBar, buttons, 1); }); + it('creates mode bar without hover button when all traces are noHover', function() { + var buttons = getButtons([ + ['toImage'] + ]); + + var gd = getMockGraphInfo(); + gd._fullLayout._basePlotModules = [{ name: 'indicator' }]; + + manageModeBar(gd); + var modeBar = gd._fullLayout._modeBar; + + checkButtons(modeBar, buttons, 1); + }); + + it('creates mode bar with hover button even in the presence of one noHover trace', function() { + var buttons = getButtons([ + ['toImage'], + ['hoverClosestPie'] + ]); + + var gd = getMockGraphInfo(); + gd._fullLayout._basePlotModules = [{ name: 'indicator' }, {name: 'pie'}]; + + manageModeBar(gd); + var modeBar = gd._fullLayout._modeBar; + + checkButtons(modeBar, buttons, 1); + }); + it('throws an error if modeBarButtonsToRemove isn\'t an array', function() { var gd = getMockGraphInfo(); gd._context.modeBarButtonsToRemove = 'not gonna work'; From aa6ba8fab5769bf56bce125c04f3c3cd3cbc5ff8 Mon Sep 17 00:00:00 2001 From: Antoine Roy-Gobeil Date: Wed, 26 Jun 2019 17:05:42 -0400 Subject: [PATCH 08/15] modebar: check traces instead of basePlotModules for noHover --- src/components/modebar/manage.js | 10 +++++----- test/jasmine/tests/modebar_test.js | 22 +++++++++++++++++++--- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/src/components/modebar/manage.js b/src/components/modebar/manage.js index f4a43c9ce9e..6c8b1884a7b 100644 --- a/src/components/modebar/manage.js +++ b/src/components/modebar/manage.js @@ -146,7 +146,7 @@ function getButtonGroups(gd, buttonsToRemove, buttonsToAdd, showSendToCloud) { if(hasCartesian) { hoverGroup = ['toggleSpikelines', 'hoverClosestCartesian', 'hoverCompareCartesian']; } - if(hasNoHover(fullLayout)) { + if(hasNoHover(fullData)) { hoverGroup = []; } @@ -219,10 +219,10 @@ function isSelectable(fullData) { return selectable; } -// check whether all plot modules in fullLayout are noHover -function hasNoHover(fullLayout) { - for(var i = 0; i < fullLayout._basePlotModules.length; i++) { - if(!Registry.traceIs(fullLayout._basePlotModules[i].name, 'noHover')) return false; +// check whether all trace are 'noHover' +function hasNoHover(fullData) { + for(var i = 0; i < fullData.length; i++) { + if(!Registry.traceIs(fullData[i], 'noHover')) return false; } return true; } diff --git a/test/jasmine/tests/modebar_test.js b/test/jasmine/tests/modebar_test.js index 05caf3f35f4..30dca4169f5 100644 --- a/test/jasmine/tests/modebar_test.js +++ b/test/jasmine/tests/modebar_test.js @@ -41,7 +41,6 @@ describe('ModeBar', function() { _modebardiv: d3.select(getMockModeBarTree()), _has: Plots._hasPlotType, _subplots: {xaxis: xaxes || [], yaxis: yaxes || []}, - _basePlotModules: [], modebar: { orientation: 'h', bgcolor: 'rgba(255,255,255,0.7)', @@ -349,6 +348,7 @@ describe('ModeBar', function() { var gd = getMockGraphInfo(['x'], ['y']); gd._fullLayout._basePlotModules = [{ name: 'cartesian' }]; gd._fullLayout.xaxis = {fixedrange: false}; + gd._fullData = [{type: 'scatter'}]; manageModeBar(gd); var modeBar = gd._fullLayout._modeBar; @@ -412,6 +412,7 @@ describe('ModeBar', function() { var gd = getMockGraphInfo(); gd._fullLayout._basePlotModules = [{ name: 'cartesian' }]; + gd._fullData = [{type: 'scatter'}]; manageModeBar(gd); var modeBar = gd._fullLayout._modeBar; @@ -429,6 +430,7 @@ describe('ModeBar', function() { var gd = getMockGraphInfo(); gd._fullLayout._basePlotModules = [{ name: 'gl3d' }]; + gd._fullData = [{type: 'scatter3d'}]; manageModeBar(gd); var modeBar = gd._fullLayout._modeBar; @@ -446,6 +448,7 @@ describe('ModeBar', function() { var gd = getMockGraphInfo(); gd._fullLayout._basePlotModules = [{ name: 'geo' }]; + gd._fullData = [{type: 'scattergeo'}]; manageModeBar(gd); var modeBar = gd._fullLayout._modeBar; @@ -486,6 +489,7 @@ describe('ModeBar', function() { var gd = getMockGraphInfo(); gd._fullLayout._basePlotModules = [{ name: 'mapbox' }]; + gd._fullData = [{type: 'scattermapbox'}]; manageModeBar(gd); var modeBar = gd._fullLayout._modeBar; @@ -527,6 +531,7 @@ describe('ModeBar', function() { var gd = getMockGraphInfo(['x'], ['y']); gd._fullLayout._basePlotModules = [{ name: 'gl2d' }]; gd._fullLayout.xaxis = {fixedrange: false}; + gd._fullData = [{type: 'scattergl'}]; manageModeBar(gd); var modeBar = gd._fullLayout._modeBar; @@ -542,6 +547,7 @@ describe('ModeBar', function() { var gd = getMockGraphInfo(); gd._fullLayout._basePlotModules = [{ name: 'pie' }]; + gd._fullData = [{type: 'pie'}]; manageModeBar(gd); var modeBar = gd._fullLayout._modeBar; @@ -559,6 +565,7 @@ describe('ModeBar', function() { var gd = getMockGraphInfo(); gd._fullLayout._basePlotModules = [{ name: 'cartesian' }, { name: 'gl3d' }]; + gd._fullData = [{type: 'scatter'}, {type: 'scatter3d'}]; manageModeBar(gd); var modeBar = gd._fullLayout._modeBar; @@ -577,6 +584,7 @@ describe('ModeBar', function() { var gd = getMockGraphInfo(['x'], ['y']); gd._fullLayout._basePlotModules = [{ name: 'cartesian' }, { name: 'geo' }]; gd._fullLayout.xaxis = {fixedrange: false}; + gd._fullData = [{type: 'scatter'}, {type: 'scattergeo'}]; manageModeBar(gd); var modeBar = gd._fullLayout._modeBar; @@ -642,6 +650,7 @@ describe('ModeBar', function() { var gd = getMockGraphInfo(); gd._fullLayout._basePlotModules = [{ name: 'geo' }, { name: 'gl3d' }]; + gd._fullData = [{type: 'scattergeo'}, {type: 'scatter3d'}]; manageModeBar(gd); var modeBar = gd._fullLayout._modeBar; @@ -658,6 +667,7 @@ describe('ModeBar', function() { var gd = getMockGraphInfo(); gd._fullLayout._basePlotModules = [{ name: 'ternary' }]; + gd._fullData = [{type: 'scatterternary'}]; manageModeBar(gd); var modeBar = gd._fullLayout._modeBar; @@ -696,6 +706,7 @@ describe('ModeBar', function() { var gd = getMockGraphInfo(); gd._fullLayout._basePlotModules = [{ name: 'ternary' }, { name: 'cartesian' }]; + gd._fullData = [{type: 'scatterternary'}, {type: 'scatter'}]; manageModeBar(gd); var modeBar = gd._fullLayout._modeBar; @@ -713,6 +724,7 @@ describe('ModeBar', function() { var gd = getMockGraphInfo(); gd._fullLayout._basePlotModules = [{ name: 'ternary' }, { name: 'gl3d' }]; + gd._fullData = [{ type: 'scatterternary' }, { type: 'scatter3d' }]; manageModeBar(gd); var modeBar = gd._fullLayout._modeBar; @@ -726,7 +738,7 @@ describe('ModeBar', function() { ]); var gd = getMockGraphInfo(); - gd._fullLayout._basePlotModules = [{ name: 'indicator' }]; + gd._fullData = [{ type: 'indicator' }]; manageModeBar(gd); var modeBar = gd._fullLayout._modeBar; @@ -741,7 +753,8 @@ describe('ModeBar', function() { ]); var gd = getMockGraphInfo(); - gd._fullLayout._basePlotModules = [{ name: 'indicator' }, {name: 'pie'}]; + gd._fullLayout._basePlotModules = [{ name: 'pie' }]; + gd._fullData = [{ type: 'indicator' }, {type: 'pie'}]; manageModeBar(gd); var modeBar = gd._fullLayout._modeBar; @@ -794,6 +807,7 @@ describe('ModeBar', function() { it('displays/hides cloud link according to showSendToCloud config arg', function() { var gd = getMockGraphInfo(); gd._fullLayout._basePlotModules = [{ name: 'pie' }]; + gd._fullData = [{type: 'pie'}]; manageModeBar(gd); checkButtons(gd._fullLayout._modeBar, getButtons([ ['toImage'], @@ -823,6 +837,7 @@ describe('ModeBar', function() { var gd = getMockGraphInfo(['x'], ['y']); gd._fullLayout._basePlotModules = [{ name: 'cartesian' }]; gd._fullLayout.xaxis = {fixedrange: false}; + gd._fullData = [{type: 'scatter'}]; return gd; } @@ -833,6 +848,7 @@ describe('ModeBar', function() { expect(countButtons(gd._fullLayout._modeBar)).toEqual(11); gd._fullLayout._basePlotModules = [{ name: 'gl3d' }]; + gd._fullData = [{type: 'scatter3d'}]; manageModeBar(gd); expect(countButtons(gd._fullLayout._modeBar)).toEqual(9); From 95de45724b62a7a1c3d22434af838bd8c690cbfe Mon Sep 17 00:00:00 2001 From: Antoine Roy-Gobeil Date: Wed, 26 Jun 2019 17:21:55 -0400 Subject: [PATCH 09/15] :hocho: v(min|max) for gauge.axis.range, rename gauge.value to gauge.bar --- src/traces/indicator/attributes.js | 92 +++++++------------ src/traces/indicator/defaults.js | 21 ++--- src/traces/indicator/plot.js | 29 +++--- test/image/baselines/indicator_bignumber.png | Bin 60412 -> 60894 bytes test/image/mocks/indicator_bullet.json | 18 ++-- test/image/mocks/indicator_gauge.json | 10 +- test/jasmine/tests/indicator_test.js | 43 +++++++-- 7 files changed, 110 insertions(+), 103 deletions(-) diff --git a/src/traces/indicator/attributes.js b/src/traces/indicator/attributes.js index c8288681ba2..d7d00f6e47e 100644 --- a/src/traces/indicator/attributes.js +++ b/src/traces/indicator/attributes.js @@ -68,29 +68,30 @@ var gaugeBarAttrs = { editType: 'calc' }; -var stepsAttrs = templatedArray('threshold', extendDeep({}, gaugeBarAttrs, { - range: { - valType: 'info_array', - role: 'info', - items: [ +var rangeAttr = { + valType: 'info_array', + role: 'info', + items: [ {valType: 'number', editType: 'plot'}, {valType: 'number', editType: 'plot'} - ], - editType: 'plot', - // impliedEdits: {'autorange': false}, - description: [ - 'Sets the range of this axis.', - 'If the axis `type` is *log*, then you must take the log of your', - 'desired range (e.g. to set the range from 1 to 100,', - 'set the range from 0 to 2).', - 'If the axis `type` is *date*, it should be date strings,', - 'like date data, though Date objects and unix milliseconds', - 'will be accepted and converted to strings.', - 'If the axis `type` is *category*, it should be numbers,', - 'using the scale where each category is assigned a serial', - 'number from zero in the order it appears.' - ].join(' ') - } + ], + editType: 'plot', + description: [ + 'Sets the range of this axis.', + 'If the axis `type` is *log*, then you must take the log of your', + 'desired range (e.g. to set the range from 1 to 100,', + 'set the range from 0 to 2).', + 'If the axis `type` is *date*, it should be date strings,', + 'like date data, though Date objects and unix milliseconds', + 'will be accepted and converted to strings.', + 'If the axis `type` is *category*, it should be numbers,', + 'using the scale where each category is assigned a serial', + 'number from zero in the order it appears.' + ].join(' ') +}; + +var stepsAttrs = templatedArray('steps', extendDeep({}, gaugeBarAttrs, { + range: rangeAttr })); module.exports = { @@ -130,24 +131,6 @@ module.exports = { // position domain: domainAttrs({name: 'indicator', trace: true, editType: 'calc'}), - vmin: { - valType: 'number', - editType: 'calc', - role: 'info', - dflt: 0, - description: [ - 'Sets the minimum value of the gauge.' - ].join(' ') - }, - vmax: { - valType: 'number', - editType: 'calc', - role: 'info', - description: [ - 'Sets the maximum value of the gauge.' - ].join(' ') - }, - title: { text: { valType: 'string', @@ -311,7 +294,7 @@ module.exports = { 'Set the shape of the gauge' ].join(' ') }, - value: extendDeep({}, gaugeBarAttrs, { + bar: extendDeep({}, gaugeBarAttrs, { color: {dflt: 'green'}, description: [ 'Set the appearance of the gauge\'s value' @@ -340,7 +323,8 @@ module.exports = { description: 'Sets the width (in px) of the border enclosing the gauge.' }, axis: overrideAll({ - visible: extendDeep({}, axesAttrs.visible, { + range: rangeAttr, + visible: extendFlat({}, axesAttrs.visible, { dflt: true }), // tick and title properties named and function exactly as in axes @@ -374,38 +358,24 @@ module.exports = { steps: stepsAttrs, threshold: { line: { - color: { - valType: 'color', - role: 'info', - dflt: colorAttrs.defaultLine, - editType: 'plot', + color: extendFlat({}, gaugeBarAttrs.line.color, { description: [ 'Sets the color of the threshold line.' ].join(' ') - }, - width: { - valType: 'number', - role: 'info', - min: 0, - dflt: 1, - editType: 'plot', + }), + width: extendFlat({}, gaugeBarAttrs.line.width, { description: [ 'Sets the width (in px) of the threshold line.' ].join(' ') - }, + }), editType: 'plot' }, - thickness: { - valType: 'number', - role: 'info', - min: 0, - max: 1, + thickness: extendFlat({}, gaugeBarAttrs.thickness, { dflt: 0.85, - editType: 'plot', description: [ 'Sets the thickness of the threshold line as a fraction of the thickness of the gauge.' ].join(' ') - }, + }), value: { valType: 'number', editType: 'calc', diff --git a/src/traces/indicator/defaults.js b/src/traces/indicator/defaults.js index 972600586f9..4a18ad5e19e 100644 --- a/src/traces/indicator/defaults.js +++ b/src/traces/indicator/defaults.js @@ -33,8 +33,6 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) { traceOut._hasGauge = traceOut.mode.indexOf('gauge') !== -1; coerce('value'); - coerce('vmin'); - coerce('vmax', 1.5 * traceOut.value); // Number attributes var auto = new Array(2); @@ -44,7 +42,7 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) { coerce('number.font.color', layout.font.color); coerce('number.font.family', layout.font.family); coerce('number.font.size'); - if(!traceOut.number.font.size) { + if(traceOut.number.font.size === undefined) { traceOut.number.font.size = cn.defaultNumberFontSize; auto[0] = true; } @@ -59,7 +57,7 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) { coerce('delta.font.color', layout.font.color); coerce('delta.font.family', layout.font.family); coerce('delta.font.size'); - if(!traceOut.delta.font.size) { + if(traceOut.delta.font.size === undefined) { traceOut.delta.font.size = (traceOut._hasNumber ? 0.5 : 1) * (bignumberFontSize || cn.defaultNumberFontSize); auto[1] = true; } @@ -107,12 +105,12 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) { coerceGauge('borderwidth'); coerceGauge('bordercolor'); - // gauge value indicator - coerceGauge('value.color'); - coerceGauge('value.line.color'); - coerceGauge('value.line.width'); - var defaultValueThickness = cn.valueThickness * (traceOut.gauge.shape === 'bullet' ? 0.5 : 1); - coerceGauge('value.thickness', defaultValueThickness); + // gauge bar indicator + coerceGauge('bar.color'); + coerceGauge('bar.line.color'); + coerceGauge('bar.line.width'); + var defaultBarThickness = cn.valueThickness * (traceOut.gauge.shape === 'bullet' ? 0.5 : 1); + coerceGauge('bar.thickness', defaultBarThickness); // Gauge steps if(gaugeIn && gaugeIn.steps) { @@ -135,8 +133,9 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) { if(gaugeIn) axisIn = gaugeIn.axis || {}; axisOut = Template.newContainer(gaugeOut, 'axis'); coerceGaugeAxis('visible'); - handleTickValueDefaults(axisIn, axisOut, coerceGaugeAxis, 'linear'); + coerceGaugeAxis('range', [0, 1.5 * traceOut.value]); + handleTickValueDefaults(axisIn, axisOut, coerceGaugeAxis, 'linear'); var opts = {outerTicks: false, font: layout.font}; handleTickLabelDefaults(axisIn, axisOut, coerceGaugeAxis, 'linear', opts); handleTickMarkDefaults(axisIn, axisOut, coerceGaugeAxis, 'linear', opts); diff --git a/src/traces/indicator/plot.js b/src/traces/indicator/plot.js index 16caaf81871..d0d3fd09173 100644 --- a/src/traces/indicator/plot.js +++ b/src/traces/indicator/plot.js @@ -122,7 +122,7 @@ module.exports = function plot(gd, cdModule, transitionOpts, makeOnCompleteCallb var gaugeBg, gaugeOutline; if(hasGauge) { gaugeBg = { - range: [trace.vmin, trace.vmax], + range: trace.gauge.axis.range, color: trace.gauge.bgcolor, line: { color: trace.gauge.bordercolor, @@ -132,7 +132,7 @@ module.exports = function plot(gd, cdModule, transitionOpts, makeOnCompleteCallb }; gaugeOutline = { - range: [trace.vmin, trace.vmax], + range: trace.gauge.axis.range, color: 'rgba(0, 0, 0, 0)', line: { color: trace.gauge.bordercolor, @@ -251,11 +251,11 @@ function drawBulletGauge(gd, plotGroup, cd, gaugeOpts) { // Draw bullet var bulletHeight = size.h; // use all vertical domain - var innerBulletHeight = trace.gauge.value.thickness * bulletHeight; + var innerBulletHeight = trace.gauge.bar.thickness * bulletHeight; var bulletLeft = domain.x[0]; var bulletRight = domain.x[0] + (domain.x[1] - domain.x[0]) * ((trace._hasNumber || trace._hasDelta) ? (1 - cn.bulletNumberDomainSize) : 1); - ax = mockAxis(gd, opts, [trace.vmin, trace.vmax]); + ax = mockAxis(gd, opts, trace.gauge.axis.range); ax._id = 'xbulletaxis'; ax.domain = [bulletLeft, bulletRight]; ax.setScale(); @@ -299,7 +299,7 @@ function drawBulletGauge(gd, plotGroup, cd, gaugeOpts) { targetBullet.exit().remove(); // Draw value bar with transitions - var fgBullet = bullet.selectAll('g.fg-bullet').data([trace.gauge.value]); + var fgBullet = bullet.selectAll('g.fg-bullet').data([trace.gauge.bar]); fgBullet.enter().append('g').classed('fg-bullet', true).append('rect'); fgBullet.select('rect') .attr('height', innerBulletHeight) @@ -312,10 +312,10 @@ function drawBulletGauge(gd, plotGroup, cd, gaugeOpts) { .ease(transitionOpts.easing) .each('end', function() { onComplete && onComplete(); }) .each('interrupt', function() { onComplete && onComplete(); }) - .attr('width', Math.max(0, ax.c2p(Math.min(trace.vmax, cd[0].y)))); + .attr('width', Math.max(0, ax.c2p(Math.min(trace.gauge.axis.range[1], cd[0].y)))); } else { fgBullet.select('rect') - .attr('width', Math.max(0, ax.c2p(Math.min(trace.vmax, cd[0].y)))); + .attr('width', Math.max(0, ax.c2p(Math.min(trace.gauge.axis.range[1], cd[0].y)))); } fgBullet.exit().remove(); @@ -358,7 +358,9 @@ function drawAngularGauge(gd, plotGroup, cd, gaugeOpts) { // circular gauge var theta = Math.PI / 2; function valueToAngle(v) { - var angle = (v - trace.vmin) / (trace.vmax - trace.vmin) * Math.PI - theta; + var min = trace.gauge.axis.range[0]; + var max = trace.gauge.axis.range[1]; + var angle = (v - min) / (max - min) * Math.PI - theta; if(angle < -theta) return -theta; if(angle > theta) return theta; return angle; @@ -395,7 +397,7 @@ function drawAngularGauge(gd, plotGroup, cd, gaugeOpts) { ax = mockAxis(gd, opts); ax.type = 'linear'; - ax.range = [trace.vmin, trace.vmax]; + ax.range = trace.gauge.axis.range; ax._id = 'xangularaxis'; // or 'y', but I don't think this makes a difference here ax.setScale(); @@ -480,8 +482,8 @@ function drawAngularGauge(gd, plotGroup, cd, gaugeOpts) { targetArc.select('path').call(drawArc).call(styleShape); targetArc.exit().remove(); // Draw foreground with transition - var valueArcPath = arcPathGenerator(trace.gauge.value.thickness); - var fgArc = angularGauge.selectAll('g.fg-arc').data([trace.gauge.value]); + var valueArcPath = arcPathGenerator(trace.gauge.bar.thickness); + var fgArc = angularGauge.selectAll('g.fg-arc').data([trace.gauge.bar]); fgArc.enter().append('g').classed('fgarc', true).append('path'); var fgArcPath = fgArc.select('path'); if(hasTransition) { @@ -540,8 +542,7 @@ function drawNumbers(gd, plotGroup, cd, opts) { } deltaDy -= MID_SHIFT * deltaFontSize; - var numbers = plotGroup.selectAll('text.numbers').data(cd); - numbers.enter().append('text').classed('numbers', true); + var numbers = Lib.ensureSingle(plotGroup, 'text', 'numbers'); var data = []; if(trace._hasNumber) data.push('number'); @@ -615,7 +616,7 @@ function drawNumbers(gd, plotGroup, cd, opts) { var delta = numbers.select('tspan.delta'); delta .call(Drawing.font, trace.delta.font) - .each(function(d) { Color.fill(d3.select(this), deltaFill(d));}) + .each(function() { Color.fill(d3.select(this), deltaFill(cd[0]));}) .attr('x', deltaX) .attr('dy', deltaDy); diff --git a/test/image/baselines/indicator_bignumber.png b/test/image/baselines/indicator_bignumber.png index 98bae22b7b7b47e5393335a0fad081a2e0be3cda..5fa8ed5f2710f6c0c1d8209b50447f0153b6d1e2 100644 GIT binary patch literal 60894 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 jrI)Jx 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 literal 60412 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 diff --git a/test/image/mocks/indicator_bullet.json b/test/image/mocks/indicator_bullet.json index 0560b9d3a1f..e7f94f8d9b1 100644 --- a/test/image/mocks/indicator_bullet.json +++ b/test/image/mocks/indicator_bullet.json @@ -10,10 +10,12 @@ }, "type": "indicator", "mode": "number+gauge+delta", - "vmax": 300, "delta": {"reference": 200, "position": "right"}, "gauge": { "shape": "bullet", + "axis": { + "range": [null, 300] + }, "threshold": { "line": { "color": "black", @@ -32,7 +34,7 @@ "range": [150, 250], "color": "rgba(0, 0, 0, 0.25)" }], - "value": { + "bar": { "color": "rgba(0, 0, 0, 1)" } }, @@ -45,11 +47,13 @@ "title": {"text": "Profit", "font": {"size": 14}}, "type": "indicator", "mode": "number+gauge+delta", - "vmax": 100, "delta": {"reference": 200, "position": "bottom"}, "target": 75, "gauge": { "shape": "bullet", + "axis": { + "range": [null, 100] + }, "threshold": { "line": { "color": "black", @@ -68,7 +72,7 @@ "range": [25, 75], "color": "rgba(0, 0, 0, 0.25)" }], - "value": { + "bar": { "color": "rgba(0, 0, 0, 1)" } }, @@ -87,10 +91,12 @@ }, "type": "indicator", "mode": "number+gauge+delta", - "vmax": 300, "delta": {"reference": 200, "position": "top"}, "gauge": { "shape": "bullet", + "axis": { + "range": [null, 300] + }, "threshold": { "line": { "color": "black", @@ -109,7 +115,7 @@ "range": [150, 250], "color": "rgba(0, 0, 0, 0.25)" }], - "value": { + "bar": { "color": "rgba(0, 0, 0, 1)" } }, diff --git a/test/image/mocks/indicator_gauge.json b/test/image/mocks/indicator_gauge.json index 4f4363815ad..de0679936ac 100644 --- a/test/image/mocks/indicator_gauge.json +++ b/test/image/mocks/indicator_gauge.json @@ -8,10 +8,10 @@ "title": {"text": "Speed"}, "type": "indicator", "mode": "gauge+number", - "vmax": 500, "delta": {"reference": 400}, "gauge": { "axis": { + "range": [null, 500], "tickwidth": 1, "tickcolor": "white" }, @@ -43,10 +43,10 @@ "title": {"text": "Speed
Subtitle"}, "type": "indicator", "mode": "gauge+delta", - "vmax": 500, "delta": {"reference": 400}, "gauge": { "axis": { + "range": [null, 500], "tickwidth": 1, "tickcolor": "white" }, @@ -78,10 +78,10 @@ "title": {"text": "Speed"}, "type": "indicator", "mode": "gauge+number+delta", - "vmax": 500, "delta": {"reference": 400}, "gauge": { "axis": { + "range": [null, 500], "tickwidth": 1, "tickcolor": "white" }, @@ -113,10 +113,10 @@ "title": {"text": "Speed"}, "type": "indicator", "mode": "gauge+number+delta", - "vmax": 500, "delta": {"reference": 400}, "gauge": { "axis": { + "range": [null, 500], "tickwidth": 1, "tickcolor": "white" }, @@ -148,10 +148,10 @@ "title": {"text": "Speed"}, "type": "indicator", "mode": "gauge+number+delta", - "vmax": 500, "delta": {"reference": 400, "position": "top"}, "gauge": { "axis": { + "range": [null, 500], "tickwidth": 1, "tickcolor": "white" }, diff --git a/test/jasmine/tests/indicator_test.js b/test/jasmine/tests/indicator_test.js index 44eb99d442c..c102a900dbb 100644 --- a/test/jasmine/tests/indicator_test.js +++ b/test/jasmine/tests/indicator_test.js @@ -9,6 +9,7 @@ var delay = require('../assets/delay'); var failTest = require('../assets/fail_test'); var supplyAllDefaults = require('../assets/supply_defaults'); // var calc = require('@src/traces/indicator/calc').calc; +var customAssertions = require('../assets/custom_assertions.js'); var indicatorAttrs = require('@src/traces/indicator/attributes.js'); var cn = require('@src/traces/indicator/constants.js'); @@ -208,6 +209,34 @@ describe('Indicator plot', function() { .then(done); }); }); + + it('always positions tspans in the right order', function(done) { + Plotly.newPlot(gd, [{ + type: 'indicator', + value: 10 + }]) + .then(function() { + customAssertions.assertMultiNodeOrder(['tspan.number']); + return Plotly.restyle(gd, 'mode', 'delta'); + }) + .then(function() { + customAssertions.assertMultiNodeOrder(['tspan.delta']); + return Plotly.restyle(gd, 'mode', 'number+delta'); + }) + .then(function() { + customAssertions.assertMultiNodeOrder(['tspan.number', 'tspan.delta']); + return Plotly.restyle(gd, 'delta.position', 'left'); + }) + .then(function() { + customAssertions.assertMultiNodeOrder(['tspan.delta', 'tspan.number']); + return Plotly.restyle(gd, 'mode', 'gauge'); + }) + .then(function() { + customAssertions.assertMultiNodeOrder([]); + }) + .catch(failTest) + .then(done); + }); }); describe('number', function() { @@ -374,15 +403,17 @@ describe('Indicator plot', function() { expect(el.size()).toBe(cnt, 'selection "' + sel + '" does not have size ' + cnt); } function assertGauge(shape, cnt) { - assertElementCnt('g.' + shape, cnt); - assertElementCnt('g.' + shape + 'axis', cnt); + assertElementCnt(shape, cnt); + assertElementCnt(shape + 'axis', cnt); } function assert(flags) { // flags is an array denoting whether the figure [hasNumber, hasDelta, hasAngular, hasBullet] - assertElementCnt('tspan.number', flags[0]); - assertElementCnt('tspan.delta', flags[1]); - assertGauge('angular', flags[2]); - assertGauge('bullet', flags[3]); + var selector = ['tspan.number', 'tspan.delta', 'g.angular', 'g.bullet']; + [0, 1].forEach(function(i) { assertElementCnt(selector[i], flags[i]);}); + [2, 3].forEach(function(i) { assertGauge(selector[i], flags[i]);}); + + var order = selector.filter(function(sel, i) { return flags[i] !== 0;}); + customAssertions.assertMultiNodeOrder(order); } Plotly.newPlot(gd, [{ From 03cb7c3b9b4fbd8cb29889457e0399363bb0c1cf Mon Sep 17 00:00:00 2001 From: Antoine Roy-Gobeil Date: Wed, 26 Jun 2019 17:22:32 -0400 Subject: [PATCH 10/15] move _indicatorLayer in fullLayout._toppaper --- src/plot_api/plot_api.js | 2 +- test/image/baselines/indicator_scatter3d.png | Bin 0 -> 36167 bytes test/image/mocks/indicator_scatter3d.json | 52 +++++++++++++++++++ 3 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 test/image/baselines/indicator_scatter3d.png create mode 100644 test/image/mocks/indicator_scatter3d.json diff --git a/src/plot_api/plot_api.js b/src/plot_api/plot_api.js index 12b2828b3a8..60cbf512bd3 100644 --- a/src/plot_api/plot_api.js +++ b/src/plot_api/plot_api.js @@ -3780,7 +3780,7 @@ function makePlotFramework(gd) { fullLayout._sunburstlayer = fullLayout._paper.append('g').classed('sunburstlayer', true); // single indicator layer for the whole plot - fullLayout._indicatorlayer = fullLayout._paper.append('g').classed('indicatorlayer', true); + fullLayout._indicatorlayer = fullLayout._toppaper.append('g').classed('indicatorlayer', true); // fill in image server scrape-svg fullLayout._glimages = fullLayout._paper.append('g').classed('glimages', true); diff --git a/test/image/baselines/indicator_scatter3d.png b/test/image/baselines/indicator_scatter3d.png new file mode 100644 index 0000000000000000000000000000000000000000..9738f8f4d4606e47738ec560982b989c9691e078 GIT binary patch literal 36167 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�J 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 BKa>Cf literal 0 HcmV?d00001 diff --git a/test/image/mocks/indicator_scatter3d.json b/test/image/mocks/indicator_scatter3d.json new file mode 100644 index 00000000000..af6a5791487 --- /dev/null +++ b/test/image/mocks/indicator_scatter3d.json @@ -0,0 +1,52 @@ +{ + "data": [{ + "domain": { + "y": [0, 1], + "x": [0.25, 0.75] + }, + "title": {"text": "Sensor"}, + "type": "indicator", + "mode": "number+delta", + "delta": {"reference": 9}, + "ticker": { + "showticker": true, + "showpercentage": true + }, + "value": 10 + }, { + "type": "scatter3d", + "name": "Sensor", + "z":[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], + "x":[0, 1, 3, 5, 7, 9, 12, 15, 13, 15], + "y":[50, 32, 12, 78, 65, 54, 69, 23, 32, 100], + "marker": { + "opacity": 1, + "color": "rgba(125, 125, 125, 0.1)" + } + }], + "layout": { + "width": 400, + "height": 300, + "scene": { + "camera": { + "eye": {"x":-1.172852145187388,"y":1.8080244316159928,"z":0.20728121045818126} + } + }, + "font": { + "color": "white", + "family": "Dosis" + }, + "paper_bgcolor": "black", + "plot_bgcolor": "black", + "margin": { + "t": 25, + "r": 25, + "l": 25, + "b": 25 + }, + "autosize": true + }, + "config": { + "responsive": true + } +} From 8e113eb68444f494cf0f12898cc5ecf18a710225 Mon Sep 17 00:00:00 2001 From: Antoine Roy-Gobeil Date: Wed, 26 Jun 2019 23:08:18 -0400 Subject: [PATCH 11/15] fix typo in d3 selection class name --- src/traces/indicator/plot.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/traces/indicator/plot.js b/src/traces/indicator/plot.js index d0d3fd09173..799ddcf0d1e 100644 --- a/src/traces/indicator/plot.js +++ b/src/traces/indicator/plot.js @@ -484,7 +484,7 @@ function drawAngularGauge(gd, plotGroup, cd, gaugeOpts) { // Draw foreground with transition var valueArcPath = arcPathGenerator(trace.gauge.bar.thickness); var fgArc = angularGauge.selectAll('g.fg-arc').data([trace.gauge.bar]); - fgArc.enter().append('g').classed('fgarc', true).append('path'); + fgArc.enter().append('g').classed('fg-arc', true).append('path'); var fgArcPath = fgArc.select('path'); if(hasTransition) { fgArcPath From 87782ba45f251bb1d7ba7a4af48609eb54b5cf7c Mon Sep 17 00:00:00 2001 From: Antoine Roy-Gobeil Date: Thu, 27 Jun 2019 13:18:44 -0400 Subject: [PATCH 12/15] :lock: down default axis range, :lock: order of elements in gauges --- src/traces/indicator/attributes.js | 22 ++--- src/traces/indicator/plot.js | 85 ++++++++++-------- ...er3d.png => gl3d_indicator_scatter3d.json} | Bin test/image/baselines/indicator_bullet.png | Bin 18867 -> 19217 bytes test/image/baselines/indicator_gauge.png | Bin 108036 -> 108095 bytes test/image/baselines/indicator_scatter.png | Bin 28662 -> 28519 bytes ...r3d.json => gl3d_indicator_scatter3d.json} | 0 test/image/mocks/indicator_bullet.json | 5 +- test/image/mocks/indicator_gauge.json | 2 +- test/image/mocks/indicator_scatter.json | 5 +- test/jasmine/tests/indicator_test.js | 57 ++++++++++++ 11 files changed, 120 insertions(+), 56 deletions(-) rename test/image/baselines/{indicator_scatter3d.png => gl3d_indicator_scatter3d.json} (100%) rename test/image/mocks/{indicator_scatter3d.json => gl3d_indicator_scatter3d.json} (100%) diff --git a/src/traces/indicator/attributes.js b/src/traces/indicator/attributes.js index d7d00f6e47e..31703de9ad4 100644 --- a/src/traces/indicator/attributes.js +++ b/src/traces/indicator/attributes.js @@ -77,16 +77,17 @@ var rangeAttr = { ], editType: 'plot', description: [ - 'Sets the range of this axis.', - 'If the axis `type` is *log*, then you must take the log of your', - 'desired range (e.g. to set the range from 1 to 100,', - 'set the range from 0 to 2).', - 'If the axis `type` is *date*, it should be date strings,', - 'like date data, though Date objects and unix milliseconds', - 'will be accepted and converted to strings.', - 'If the axis `type` is *category*, it should be numbers,', - 'using the scale where each category is assigned a serial', - 'number from zero in the order it appears.' + 'Sets the range of this axis.' + // TODO: add support for other axis type + // 'If the axis `type` is *log*, then you must take the log of your', + // 'desired range (e.g. to set the range from 1 to 100,', + // 'set the range from 0 to 2).', + // 'If the axis `type` is *date*, it should be date strings,', + // 'like date data, though Date objects and unix milliseconds', + // 'will be accepted and converted to strings.', + // 'If the axis `type` is *category*, it should be numbers,', + // 'using the scale where each category is assigned a serial', + // 'number from zero in the order it appears.' ].join(' ') }; @@ -364,6 +365,7 @@ module.exports = { ].join(' ') }), width: extendFlat({}, gaugeBarAttrs.line.width, { + dflt: 1, description: [ 'Sets the width (in px) of the threshold line.' ].join(' ') diff --git a/src/traces/indicator/plot.js b/src/traces/indicator/plot.js index 799ddcf0d1e..fe8fb1438c9 100644 --- a/src/traces/indicator/plot.js +++ b/src/traces/indicator/plot.js @@ -291,16 +291,16 @@ function drawBulletGauge(gd, plotGroup, cd, gaugeOpts) { // Draw bullet background, steps var boxes = [gaugeBg].concat(trace.gauge.steps); - var targetBullet = bullet.selectAll('g.target-bullet').data(boxes); - targetBullet.enter().append('g').classed('target-bullet', true).append('rect'); - targetBullet.select('rect') + var bgBullet = bullet.selectAll('g.bg-bullet').data(boxes); + bgBullet.enter().append('g').classed('bg-bullet', true).append('rect'); + bgBullet.select('rect') .call(drawRect) .call(styleShape); - targetBullet.exit().remove(); + bgBullet.exit().remove(); // Draw value bar with transitions - var fgBullet = bullet.selectAll('g.fg-bullet').data([trace.gauge.bar]); - fgBullet.enter().append('g').classed('fg-bullet', true).append('rect'); + var fgBullet = bullet.selectAll('g.value-bullet').data([trace.gauge.bar]); + fgBullet.enter().append('g').classed('value-bullet', true).append('rect'); fgBullet.select('rect') .attr('height', innerBulletHeight) .attr('y', (bulletHeight - innerBulletHeight) / 2) @@ -320,8 +320,8 @@ function drawBulletGauge(gd, plotGroup, cd, gaugeOpts) { fgBullet.exit().remove(); var data = cd.filter(function() {return trace.gauge.threshold.value;}); - var threshold = bullet.selectAll('g.threshold').data(data); - threshold.enter().append('g').classed('threshold', true).append('line'); + var threshold = bullet.selectAll('g.threshold-bullet').data(data); + threshold.enter().append('g').classed('threshold-bullet', true).append('line'); threshold.select('line') .attr('x1', ax.c2p(trace.gauge.threshold.value)) .attr('x2', ax.c2p(trace.gauge.threshold.value)) @@ -331,8 +331,8 @@ function drawBulletGauge(gd, plotGroup, cd, gaugeOpts) { .style('stroke-width', trace.gauge.threshold.line.width); threshold.exit().remove(); - var bulletOutline = bullet.selectAll('g.bullet-outline').data([gaugeOutline]); - bulletOutline.enter().append('g').classed('bullet-outline', true).append('rect'); + var bulletOutline = bullet.selectAll('g.gauge-outline').data([gaugeOutline]); + bulletOutline.enter().append('g').classed('gauge-outline', true).append('rect'); bulletOutline.select('rect') .call(drawRect) .call(styleShape); @@ -462,44 +462,53 @@ function drawAngularGauge(gd, plotGroup, cd, gaugeOpts) { }); } - // Reexpress threshold for drawing - var v = trace.gauge.threshold.value; - var thresholdArc = { - range: [v, v], - color: trace.gauge.threshold.color, - line: { - color: trace.gauge.threshold.line.color, - width: trace.gauge.threshold.line.width - }, - thickness: trace.gauge.threshold.thickness - }; - // Draw background + steps var arcs = [gaugeBg].concat(trace.gauge.steps); - if(v) arcs.push(thresholdArc); - var targetArc = angularGauge.selectAll('g.target-arc').data(arcs); - targetArc.enter().append('g').classed('target-arc', true).append('path'); - targetArc.select('path').call(drawArc).call(styleShape); - targetArc.exit().remove(); + var bgArc = angularGauge.selectAll('g.bg-arc').data(arcs); + bgArc.enter().append('g').classed('bg-arc', true).append('path'); + bgArc.select('path').call(drawArc).call(styleShape); + bgArc.exit().remove(); + // Draw foreground with transition - var valueArcPath = arcPathGenerator(trace.gauge.bar.thickness); - var fgArc = angularGauge.selectAll('g.fg-arc').data([trace.gauge.bar]); - fgArc.enter().append('g').classed('fg-arc', true).append('path'); - var fgArcPath = fgArc.select('path'); + var valueArcPathGenerator = arcPathGenerator(trace.gauge.bar.thickness); + var valueArc = angularGauge.selectAll('g.value-arc').data([trace.gauge.bar]); + valueArc.enter().append('g').classed('value-arc', true).append('path'); + var valueArcPath = valueArc.select('path'); if(hasTransition) { - fgArcPath + valueArcPath .transition() .duration(transitionOpts.duration) .ease(transitionOpts.easing) .each('end', function() { trace._lastValue = cd[0].y; onComplete && onComplete(); }) .each('interrupt', function() { onComplete && onComplete(); }) - .attrTween('d', arcTween(valueArcPath, valueToAngle(cd[0].lastY), valueToAngle(cd[0].y))); + .attrTween('d', arcTween(valueArcPathGenerator, valueToAngle(cd[0].lastY), valueToAngle(cd[0].y))); } else { - fgArcPath - .attr('d', valueArcPath.endAngle(valueToAngle(cd[0].y))); + valueArcPath + .attr('d', valueArcPathGenerator.endAngle(valueToAngle(cd[0].y))); } - fgArcPath.call(styleShape); - fgArc.exit().remove(); + valueArcPath.call(styleShape); + valueArc.exit().remove(); + + // Draw threshold + arcs = []; + var v = trace.gauge.threshold.value; + if(v) { + arcs.push({ + range: [v, v], + color: trace.gauge.threshold.color, + line: { + color: trace.gauge.threshold.line.color, + width: trace.gauge.threshold.line.width + }, + thickness: trace.gauge.threshold.thickness + }); + } + var thresholdArc = angularGauge.selectAll('g.threshold-arc').data(arcs); + thresholdArc.enter().append('g').classed('threshold-arc', true).append('path'); + thresholdArc.select('path').call(drawArc).call(styleShape); + thresholdArc.exit().remove(); + + // Draw border last var gaugeBorder = angularGauge.selectAll('g.gauge-outline').data([gaugeOutline]); gaugeBorder.enter().append('g').classed('gauge-outline', true).append('path'); gaugeBorder.select('path').call(drawArc).call(styleShape); @@ -616,7 +625,7 @@ function drawNumbers(gd, plotGroup, cd, opts) { var delta = numbers.select('tspan.delta'); delta .call(Drawing.font, trace.delta.font) - .each(function() { Color.fill(d3.select(this), deltaFill(cd[0]));}) + .call(Color.fill, deltaFill(cd[0])) .attr('x', deltaX) .attr('dy', deltaDy); diff --git a/test/image/baselines/indicator_scatter3d.png b/test/image/baselines/gl3d_indicator_scatter3d.json similarity index 100% rename from test/image/baselines/indicator_scatter3d.png rename to test/image/baselines/gl3d_indicator_scatter3d.json diff --git a/test/image/baselines/indicator_bullet.png b/test/image/baselines/indicator_bullet.png index 4a9a41621a63eafe87544930b1b527e8bb4dc462..ad4847f8a2fd48a3452bba512565c1d1bcb0e0ef 100644 GIT binary patch literal 19217 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 z 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 diff --git a/test/image/baselines/indicator_gauge.png b/test/image/baselines/indicator_gauge.png index 9aa9e96b401022dba95b617db24939813b60167c..6f588335d611cf149d3166480ec300b859ab912f 100644 GIT binary patch delta 55222 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 diff --git a/test/image/baselines/indicator_scatter.png b/test/image/baselines/indicator_scatter.png index 7978282930d87b7fdc9dd87a9bac6683cc405e84..29bb15d62923b20930bc9c34bae30fa84f998c6e 100644 GIT binary patch literal 28519 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

8=(l{XkvF=qj) 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 Date: Thu, 27 Jun 2019 13:25:15 -0400 Subject: [PATCH 13/15] fix baseline file extension --- ..._scatter3d.json => gl3d_indicator_scatter3d.png} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename test/image/baselines/{gl3d_indicator_scatter3d.json => gl3d_indicator_scatter3d.png} (100%) diff --git a/test/image/baselines/gl3d_indicator_scatter3d.json b/test/image/baselines/gl3d_indicator_scatter3d.png similarity index 100% rename from test/image/baselines/gl3d_indicator_scatter3d.json rename to test/image/baselines/gl3d_indicator_scatter3d.png From d87a44844b3e3009cf4c5b4eaff12f0525d76f81 Mon Sep 17 00:00:00 2001 From: Antoine Roy-Gobeil Date: Thu, 27 Jun 2019 14:47:24 -0400 Subject: [PATCH 14/15] sane defaults for gauge's background, :lock: gauge.axis.visible with mock --- src/traces/indicator/attributes.js | 2 +- src/traces/indicator/defaults.js | 2 +- .../baselines/indicator_grid_template.png | Bin 0 -> 33908 bytes test/image/mocks/indicator_grid_template.json | 40 ++++++++++++++++++ 4 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 test/image/baselines/indicator_grid_template.png create mode 100644 test/image/mocks/indicator_grid_template.json diff --git a/src/traces/indicator/attributes.js b/src/traces/indicator/attributes.js index 31703de9ad4..b36a7d0e4e2 100644 --- a/src/traces/indicator/attributes.js +++ b/src/traces/indicator/attributes.js @@ -318,7 +318,7 @@ module.exports = { borderwidth: { valType: 'number', min: 0, - dflt: 0, + dflt: 1, role: 'info', editType: 'plot', description: 'Sets the width (in px) of the border enclosing the gauge.' diff --git a/src/traces/indicator/defaults.js b/src/traces/indicator/defaults.js index 4a18ad5e19e..7a4640fdcbd 100644 --- a/src/traces/indicator/defaults.js +++ b/src/traces/indicator/defaults.js @@ -101,7 +101,7 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) { } // gauge background - coerceGauge('bgcolor'); + coerceGauge('bgcolor', layout.paper_bgcolor); coerceGauge('borderwidth'); coerceGauge('bordercolor'); diff --git a/test/image/baselines/indicator_grid_template.png b/test/image/baselines/indicator_grid_template.png new file mode 100644 index 0000000000000000000000000000000000000000..f0844a50a87b698b658ab2eb20f92f56513fb839 GIT binary patch literal 33908 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 X9oADXJ-KG@fIsrmDpF-HOoILooK~Bk literal 0 HcmV?d00001 diff --git a/test/image/mocks/indicator_grid_template.json b/test/image/mocks/indicator_grid_template.json new file mode 100644 index 00000000000..4a747be98b1 --- /dev/null +++ b/test/image/mocks/indicator_grid_template.json @@ -0,0 +1,40 @@ +{ + "data": [{ + "type": "indicator", + "value": 120, + "delta": {"reference": 60}, + "gauge": {"axis": {"visible": false}}, + "domain": {"row": 0, "column": 0} + }, { + "type": "indicator", + "value": 120, + "delta": {"reference": 60}, + "gauge": {"shape": "bullet", "axis": {"visible": false}}, + "domain": {"row": 1, "y": [0.15, 0.35]} + }, { + "type": "indicator", + "mode": "number+delta", + "value": 120, + "delta": {"reference": 60}, + "domain": {"row": 0, "column": 1} + }, { + "type": "indicator", + "mode": "delta", + "value": 40, + "delta": {"reference": 60}, + "domain": {"row": 1, "column": 1} + }], + "layout": { + "width": 700, + "height": 400, + "margin": {"t": 25, "b": 25, "l": 25, "r": 25}, + "grid": {"rows": 2, "columns": 2, "pattern": "independent"}, + "template": { + "data": { + "indicator": [{ + "mode": "number+delta+gauge" + }] + } + } + } +} From 1a991d50e28c751fdb292b66f8d89a57a1637149 Mon Sep 17 00:00:00 2001 From: Antoine Roy-Gobeil Date: Thu, 27 Jun 2019 19:58:17 -0400 Subject: [PATCH 15/15] indicator: test that it supports layout.template --- src/traces/indicator/attributes.js | 4 +- src/traces/indicator/defaults.js | 21 ++--- .../baselines/indicator_grid_template.png | Bin 33908 -> 35879 bytes test/image/mocks/indicator_grid_template.json | 9 +- test/jasmine/tests/indicator_test.js | 81 ++++++++++++++++++ 5 files changed, 97 insertions(+), 18 deletions(-) diff --git a/src/traces/indicator/attributes.js b/src/traces/indicator/attributes.js index b36a7d0e4e2..8e26eb29795 100644 --- a/src/traces/indicator/attributes.js +++ b/src/traces/indicator/attributes.js @@ -254,6 +254,7 @@ module.exports = { 'Sets the color for increasing value.' ].join(' ') }, + // TODO: add attribute to show sign editType: 'plot' }, decreasing: { @@ -275,6 +276,7 @@ module.exports = { 'Sets the color for increasing value.' ].join(' ') }, + // TODO: add attribute to hide sign editType: 'plot' }, font: extendFlat({}, textFontAttrs, { @@ -335,7 +337,7 @@ module.exports = { dtick: axesAttrs.dtick, tickvals: axesAttrs.tickvals, ticktext: axesAttrs.ticktext, - ticks: extendFlat({}, axesAttrs.ticks, {dflt: ''}), + ticks: extendFlat({}, axesAttrs.ticks, {dflt: 'outside'}), ticklen: axesAttrs.ticklen, tickwidth: axesAttrs.tickwidth, tickcolor: axesAttrs.tickcolor, diff --git a/src/traces/indicator/defaults.js b/src/traces/indicator/defaults.js index 7a4640fdcbd..4c13c5ad713 100644 --- a/src/traces/indicator/defaults.js +++ b/src/traces/indicator/defaults.js @@ -89,6 +89,7 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) { } if(traceOut._hasGauge) { gaugeIn = traceIn.gauge; + if(!gaugeIn) gaugeIn = {}; gaugeOut = Template.newContainer(traceOut, 'gauge'); coerceGauge('shape'); var isBullet = traceOut._isBullet = traceOut.gauge.shape === 'bullet'; @@ -113,14 +114,10 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) { coerceGauge('bar.thickness', defaultBarThickness); // Gauge steps - if(gaugeIn && gaugeIn.steps) { - handleArrayContainerDefaults(gaugeIn, gaugeOut, { - name: 'steps', - handleItemDefaults: stepDefaults - }); - } else { - gaugeOut.steps = []; - } + handleArrayContainerDefaults(gaugeIn, gaugeOut, { + name: 'steps', + handleItemDefaults: stepDefaults + }); // Gauge threshold coerceGauge('threshold.value'); @@ -135,10 +132,10 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) { coerceGaugeAxis('visible'); coerceGaugeAxis('range', [0, 1.5 * traceOut.value]); + var opts = {outerTicks: true}; handleTickValueDefaults(axisIn, axisOut, coerceGaugeAxis, 'linear'); - var opts = {outerTicks: false, font: layout.font}; handleTickLabelDefaults(axisIn, axisOut, coerceGaugeAxis, 'linear', opts); - handleTickMarkDefaults(axisIn, axisOut, coerceGaugeAxis, 'linear', opts); + handleTickMarkDefaults(axisIn, axisOut, coerceGaugeAxis, opts); } else { coerce('title.align', 'center'); coerce('align', 'center'); @@ -146,9 +143,9 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) { } } -function stepDefaults(valueIn, valueOut) { +function stepDefaults(stepIn, stepOut) { function coerce(attr, dflt) { - return Lib.coerce(valueIn, valueOut, attributes.gauge.steps, attr, dflt); + return Lib.coerce(stepIn, stepOut, attributes.gauge.steps, attr, dflt); } coerce('color'); diff --git a/test/image/baselines/indicator_grid_template.png b/test/image/baselines/indicator_grid_template.png index f0844a50a87b698b658ab2eb20f92f56513fb839..1ff32b2836b683ab9996f52592831a71a877442a 100644 GIT binary patch literal 35879 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 X9oADXJ-KG@fIsrmDpF-HOoILooK~Bk diff --git a/test/image/mocks/indicator_grid_template.json b/test/image/mocks/indicator_grid_template.json index 4a747be98b1..884c0303afb 100644 --- a/test/image/mocks/indicator_grid_template.json +++ b/test/image/mocks/indicator_grid_template.json @@ -8,20 +8,17 @@ }, { "type": "indicator", "value": 120, - "delta": {"reference": 60}, "gauge": {"shape": "bullet", "axis": {"visible": false}}, - "domain": {"row": 1, "y": [0.15, 0.35]} + "domain": {"x": [0.05, 0.5], "y": [0.15, 0.35]} }, { "type": "indicator", "mode": "number+delta", "value": 120, - "delta": {"reference": 60}, "domain": {"row": 0, "column": 1} }, { "type": "indicator", "mode": "delta", "value": 40, - "delta": {"reference": 60}, "domain": {"row": 1, "column": 1} }], "layout": { @@ -32,7 +29,9 @@ "template": { "data": { "indicator": [{ - "mode": "number+delta+gauge" + "title": {"text": "Title"}, + "mode": "number+delta+gauge", + "delta": {"reference": 60} }] } } diff --git a/test/jasmine/tests/indicator_test.js b/test/jasmine/tests/indicator_test.js index 440688a16e0..9b298ea32bf 100644 --- a/test/jasmine/tests/indicator_test.js +++ b/test/jasmine/tests/indicator_test.js @@ -544,3 +544,84 @@ describe('Indicator animations', function() { }); }); }); + +describe('Indicator attributes', function() { + var gd; + beforeEach(function() { + gd = createGraphDiv(); + }); + afterEach(destroyGraphDiv); + + it('are inherited from template', function(done) { + Plotly.newPlot(gd, [{ + type: 'indicator', + value: 5, + mode: 'number+delta+gauge' + }], {template: { + data: { + indicator: [{ + delta: { + valueformat: '0.9f', + reference: -100, + increasing: { + symbol: 'a', + color: 'blue' + }, + font: { + family: 'ArialDelta', + size: 20 + } + }, + number: { + valueformat: '0.8f', + suffix: 'km/h', + font: { + family: 'ArialNumber', + color: 'blue' + } + }, + gauge: { + axis: { + range: [0, 500], + tickcolor: 'white', + tickangle: 20, + tickwidth: 1 + }, + steps: [{ + range: [0, 250], + color: 'rgba(255, 255, 0, 0.5)' + }, { + range: [250, 400], + color: 'rgba(0, 0, 255, 0.75)' + }] + } + }] + } + }}) + .then(function() { + // Check number + expect(gd._fullData[0].number.valueformat).toEqual('0.8f'); + expect(gd._fullData[0].number.suffix).toEqual('km/h'); + expect(gd._fullData[0].number.font.color).toEqual('blue'); + expect(gd._fullData[0].number.font.family).toEqual('ArialNumber'); + + // Check delta + expect(gd._fullData[0].delta.valueformat).toEqual('0.9f'); + expect(gd._fullData[0].delta.reference).toEqual(-100); + expect(gd._fullData[0].delta.increasing.symbol).toEqual('a'); + expect(gd._fullData[0].delta.font.family).toEqual('ArialDelta'); + expect(gd._fullData[0].delta.font.size).toEqual(20); + + // Check gauge axis + expect(gd._fullData[0].gauge.axis.range).toEqual([0, 500], 'wrong gauge.axis.range'); + expect(gd._fullData[0].gauge.axis.tickangle).toEqual(20, 'wrong gauge.axis.tickangle'); + expect(gd._fullData[0].gauge.axis.tickcolor).toBe('white', 'wrong gauge.axis.tickcolor'); + + // TODO: check this works once handleArrayContainerDefaults supports template + // expect(gd._fullData[0].gauge.steps[0].range).toEqual([0, 250], 'wrong gauge.steps[0].range'); + // expect(gd._fullData[0].gauge.steps[0].color).toEqual('rgba(255, 255, 0, 0.5)'); + }) + .catch(failTest) + .then(done); + }); +});