From 8b07cc2f28b042ab0706d8ee9f5a8d5adb3ca2a5 Mon Sep 17 00:00:00 2001 From: Akihiko Kusanagi Date: Sun, 10 Feb 2019 06:07:54 +0800 Subject: [PATCH] Implement scriptable options for points in radar charts (#6041) --- docs/charts/radar.md | 116 +++++--- src/controllers/controller.line.js | 16 +- src/controllers/controller.radar.js | 198 ++++++++----- .../backgroundColor/indexable.js | 58 ++++ .../backgroundColor/indexable.png | Bin 0 -> 13114 bytes .../backgroundColor/scriptable.js | 56 ++++ .../backgroundColor/scriptable.png | Bin 0 -> 12508 bytes .../controller.radar/backgroundColor/value.js | 44 +++ .../backgroundColor/value.png | Bin 0 -> 12403 bytes .../controller.radar/borderColor/indexable.js | 58 ++++ .../borderColor/indexable.png | Bin 0 -> 15373 bytes .../borderColor/scriptable.js | 56 ++++ .../borderColor/scriptable.png | Bin 0 -> 14650 bytes .../controller.radar/borderColor/value.js | 44 +++ .../controller.radar/borderColor/value.png | Bin 0 -> 14526 bytes .../controller.radar/borderWidth/indexable.js | 50 ++++ .../borderWidth/indexable.png | Bin 0 -> 14295 bytes .../borderWidth/scriptable.js | 56 ++++ .../borderWidth/scriptable.png | Bin 0 -> 14107 bytes .../controller.radar/borderWidth/value.js | 46 +++ .../controller.radar/borderWidth/value.png | Bin 0 -> 13944 bytes .../controller.radar/pointStyle/indexable.js | 62 ++++ .../controller.radar/pointStyle/indexable.png | Bin 0 -> 10783 bytes .../controller.radar/pointStyle/scriptable.js | 60 ++++ .../pointStyle/scriptable.png | Bin 0 -> 10878 bytes .../controller.radar/pointStyle/value.js | 46 +++ .../controller.radar/pointStyle/value.png | Bin 0 -> 11268 bytes .../controller.radar/radius/indexable.js | 49 ++++ .../controller.radar/radius/indexable.png | Bin 0 -> 10267 bytes .../controller.radar/radius/scriptable.js | 55 ++++ .../controller.radar/radius/scriptable.png | Bin 0 -> 11034 bytes .../fixtures/controller.radar/radius/value.js | 45 +++ .../controller.radar/radius/value.png | Bin 0 -> 10490 bytes .../controller.radar/rotation/indexable.js | 51 ++++ .../controller.radar/rotation/indexable.png | Bin 0 -> 19221 bytes .../controller.radar/rotation/scriptable.js | 57 ++++ .../controller.radar/rotation/scriptable.png | Bin 0 -> 10351 bytes .../controller.radar/rotation/value.js | 47 ++++ .../controller.radar/rotation/value.png | Bin 0 -> 9857 bytes test/specs/controller.radar.tests.js | 264 ++++++++---------- 40 files changed, 1261 insertions(+), 273 deletions(-) create mode 100644 test/fixtures/controller.radar/backgroundColor/indexable.js create mode 100644 test/fixtures/controller.radar/backgroundColor/indexable.png create mode 100644 test/fixtures/controller.radar/backgroundColor/scriptable.js create mode 100644 test/fixtures/controller.radar/backgroundColor/scriptable.png create mode 100644 test/fixtures/controller.radar/backgroundColor/value.js create mode 100644 test/fixtures/controller.radar/backgroundColor/value.png create mode 100644 test/fixtures/controller.radar/borderColor/indexable.js create mode 100644 test/fixtures/controller.radar/borderColor/indexable.png create mode 100644 test/fixtures/controller.radar/borderColor/scriptable.js create mode 100644 test/fixtures/controller.radar/borderColor/scriptable.png create mode 100644 test/fixtures/controller.radar/borderColor/value.js create mode 100644 test/fixtures/controller.radar/borderColor/value.png create mode 100644 test/fixtures/controller.radar/borderWidth/indexable.js create mode 100644 test/fixtures/controller.radar/borderWidth/indexable.png create mode 100644 test/fixtures/controller.radar/borderWidth/scriptable.js create mode 100644 test/fixtures/controller.radar/borderWidth/scriptable.png create mode 100644 test/fixtures/controller.radar/borderWidth/value.js create mode 100644 test/fixtures/controller.radar/borderWidth/value.png create mode 100644 test/fixtures/controller.radar/pointStyle/indexable.js create mode 100644 test/fixtures/controller.radar/pointStyle/indexable.png create mode 100644 test/fixtures/controller.radar/pointStyle/scriptable.js create mode 100644 test/fixtures/controller.radar/pointStyle/scriptable.png create mode 100644 test/fixtures/controller.radar/pointStyle/value.js create mode 100644 test/fixtures/controller.radar/pointStyle/value.png create mode 100644 test/fixtures/controller.radar/radius/indexable.js create mode 100644 test/fixtures/controller.radar/radius/indexable.png create mode 100644 test/fixtures/controller.radar/radius/scriptable.js create mode 100644 test/fixtures/controller.radar/radius/scriptable.png create mode 100644 test/fixtures/controller.radar/radius/value.js create mode 100644 test/fixtures/controller.radar/radius/value.png create mode 100644 test/fixtures/controller.radar/rotation/indexable.js create mode 100644 test/fixtures/controller.radar/rotation/indexable.png create mode 100644 test/fixtures/controller.radar/rotation/scriptable.js create mode 100644 test/fixtures/controller.radar/rotation/scriptable.png create mode 100644 test/fixtures/controller.radar/rotation/value.js create mode 100644 test/fixtures/controller.radar/rotation/value.png diff --git a/docs/charts/radar.md b/docs/charts/radar.md index b1e31d78b..1b1c7ef07 100644 --- a/docs/charts/radar.md +++ b/docs/charts/radar.md @@ -64,46 +64,80 @@ var myRadarChart = new Chart(ctx, { The radar chart allows a number of properties to be specified for each dataset. These are used to set display properties for a specific dataset. For example, the colour of a line is generally set this way. -All `point*` properties can be specified as an array. If these are set to an array value, the first value applies to the first point, the second value to the second point, and so on. - -| Name | Type | Description -| ---- | ---- | ----------- -| `label` | `string` | The label for the dataset which appears in the legend and tooltips. -| `backgroundColor` | `Color` | The fill color under the line. See [Colors](../general/colors.md#colors). -| `borderColor` | `Color` | The color of the line. See [Colors](../general/colors.md#colors). -| `borderWidth` | `number` | The width of the line in pixels. -| `borderDash` | `number[]` | Length and spacing of dashes. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/setLineDash). -| `borderDashOffset` | `number` | Offset for line dashes. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineDashOffset). -| `borderCapStyle` | `string` | Cap style of the line. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineCap). -| `borderJoinStyle` | `string` | Line joint style. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin). -| `fill` | boolean|string | How to fill the area under the line. See [area charts](area.md). -| `lineTension` | `number` | Bezier curve tension of the line. Set to 0 to draw straightlines. -| `pointBackgroundColor` | Color|Color[] | The fill color for points. -| `pointBorderColor` | Color|Color[] | The border color for points. -| `pointBorderWidth` | number|number[] | The width of the point border in pixels. -| `pointRadius` | number|number[] | The radius of the point shape. If set to 0, the point is not rendered. -| `pointRotation` | number|number[] | The rotation of the point in degrees. -| `pointStyle` | string|string[]|Image|Image[] | Style of the point. [more...](#pointstyle) -| `pointHitRadius` | number|number[] | The pixel size of the non-displayed point that reacts to mouse events. -| `pointHoverBackgroundColor` | Color|Color[] | Point background color when hovered. -| `pointHoverBorderColor` | Color|Color[] | Point border color when hovered. -| `pointHoverBorderWidth` | number|number[] | Border width of point when hovered. -| `pointHoverRadius` | number|number[] | The radius of the point when hovered. - -### pointStyle -The style of point. Options are: -* `'circle'` -* `'cross'` -* `'crossRot'` -* `'dash'.` -* `'line'` -* `'rect'` -* `'rectRounded'` -* `'rectRot'` -* `'star'` -* `'triangle'` - -If the option is an image, that image is drawn on the canvas using [drawImage](https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/drawImage). +| Name | Type | [Scriptable](../general/options.md#scriptable-options) | [Indexable](../general/options.md#indexable-options) | Default +| ---- | ---- | :----: | :----: | ---- +| [`backgroundColor`](#line-styling) | [`Color`](../general/colors.md) | - | - | `'rgba(0, 0, 0, 0.1)'` +| [`borderCapStyle`](#line-styling) | `string` | - | - | `'butt'` +| [`borderColor`](#line-styling) | [`Color`](../general/colors.md) | - | - | `'rgba(0, 0, 0, 0.1)'` +| [`borderDash`](#line-styling) | `number[]` | - | - | `[]` +| [`borderDashOffset`](#line-styling) | `number` | - | - | `0.0` +| [`borderJoinStyle`](#line-styling) | `string` | - | - | `'miter'` +| [`borderWidth`](#line-styling) | `number` | - | - | `3` +| [`fill`](#line-styling) | boolean|string | - | - | `true` +| [`label`](#general) | `string` | - | - | `''` +| [`lineTension`](#line-styling) | `number` | - | - | `0.4` +| [`pointBackgroundColor`](#point-styling) | `Color` | Yes | Yes | `'rgba(0, 0, 0, 0.1)'` +| [`pointBorderColor`](#point-styling) | `Color` | Yes | Yes | `'rgba(0, 0, 0, 0.1)'` +| [`pointBorderWidth`](#point-styling) | `number` | Yes | Yes | `1` +| [`pointHitRadius`](#point-styling) | `number` | Yes | Yes | `1` +| [`pointHoverBackgroundColor`](#interactions) | `Color` | Yes | Yes | `undefined` +| [`pointHoverBorderColor`](#interactions) | `Color` | Yes | Yes | `undefined` +| [`pointHoverBorderWidth`](#interactions) | `number` | Yes | Yes | `1` +| [`pointHoverRadius`](#interactions) | `number` | Yes | Yes | `4` +| [`pointRadius`](#point-styling) | `number` | Yes | Yes | `3` +| [`pointRotation`](#point-styling) | `number` | Yes | Yes | `0` +| [`pointStyle`](#point-styling) | string|Image | Yes | Yes | `'circle'` + +### General + +| Name | Description +| ---- | ---- +| `label` | The label for the dataset which appears in the legend and tooltips. + +### Point Styling + +The style of each point can be controlled with the following properties: + +| Name | Description +| ---- | ---- +| `pointBackgroundColor` | The fill color for points. +| `pointBorderColor` | The border color for points. +| `pointBorderWidth` | The width of the point border in pixels. +| `pointHitRadius` | The pixel size of the non-displayed point that reacts to mouse events. +| `pointRadius` | The radius of the point shape. If set to 0, the point is not rendered. +| `pointRotation` | The rotation of the point in degrees. +| `pointStyle` | Style of the point. [more...](../configuration/elements#point-styles) + +All these values, if `undefined`, fallback first to the dataset options then to the associated [`elements.point.*`](../configuration/elements.md#point-configuration) options. + +### Line Styling + +The style of the line can be controlled with the following properties: + +| Name | Description +| ---- | ---- +| `backgroundColor` | The line fill color. +| `borderCapStyle` | Cap style of the line. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineCap). +| `borderColor` | The line color. +| `borderDash` | Length and spacing of dashes. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/setLineDash). +| `borderDashOffset` | Offset for line dashes. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineDashOffset). +| `borderJoinStyle` | Line joint style. See [MDN](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin). +| `borderWidth` | The line width (in pixels). +| `fill` | How to fill the area under the line. See [area charts](area.md). +| `lineTension` | Bezier curve tension of the line. Set to 0 to draw straightlines. + +All these values, if `undefined`, fallback to the associated [`elements.line.*`](../configuration/elements.md#line-configuration) options. + +### Interactions + +The interaction with each point can be controlled with the following properties: + +| Name | Description +| ---- | ----------- +| `pointHoverBackgroundColor` | Point background color when hovered. +| `pointHoverBorderColor` | Point border color when hovered. +| `pointHoverBorderWidth` | Border width of point when hovered. +| `pointHoverRadius` | The radius of the point when hovered. ## Configuration Options @@ -128,7 +162,7 @@ It is common to want to apply a configuration setting to all created radar chart ## Data Structure -The `data` property of a dataset for a radar chart is specified as an array of numbers. Each point in the data array corresponds to the label at the same index on the x axis. +The `data` property of a dataset for a radar chart is specified as an array of numbers. Each point in the data array corresponds to the label at the same index. ```javascript data: [20, 10] diff --git a/src/controllers/controller.line.js b/src/controllers/controller.line.js index 5341ac1e6..49665e229 100644 --- a/src/controllers/controller.line.js +++ b/src/controllers/controller.line.js @@ -91,6 +91,7 @@ module.exports = DatasetController.extend({ var value = dataset.data[index]; var yScale = me.getScaleForId(meta.yAxisID); var xScale = me.getScaleForId(meta.xAxisID); + var lineModel = meta.dataset._model; var x, y; var options = me._resolvePointOptions(point, index); @@ -117,10 +118,10 @@ module.exports = DatasetController.extend({ backgroundColor: options.backgroundColor, borderColor: options.borderColor, borderWidth: options.borderWidth, - tension: meta.dataset._model ? meta.dataset._model.tension : 0, - steppedLine: meta.dataset._model ? meta.dataset._model.steppedLine : false, + tension: valueOrDefault(custom.tension, lineModel ? lineModel.tension : 0), + steppedLine: lineModel ? lineModel.steppedLine : false, // Tooltip - hitRadius: options.hitRadius, + hitRadius: options.hitRadius }; }, @@ -155,7 +156,7 @@ module.exports = DatasetController.extend({ hoverRadius: 'pointHoverRadius', pointStyle: 'pointStyle', radius: 'pointRadius', - rotation: 'pointRotation', + rotation: 'pointRotation' }; var keys = Object.keys(ELEMENT_OPTIONS); @@ -210,7 +211,7 @@ module.exports = DatasetController.extend({ // to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158 // This option gives lines the ability to span gaps values.spanGaps = valueOrDefault(dataset.spanGaps, options.spanGaps); - values.tension = resolve([custom.tension, dataset.lineTension, elementOptions.tension]); + values.tension = valueOrDefault(dataset.lineTension, elementOptions.tension); values.steppedLine = resolve([custom.steppedLine, dataset.steppedLine, elementOptions.stepped]); return values; @@ -256,7 +257,7 @@ module.exports = DatasetController.extend({ var lineModel = meta.dataset._model; var area = chart.chartArea; var points = meta.data || []; - var i, ilen, point, model, controlPoints; + var i, ilen, model, controlPoints; // Only consider points that are drawn in case the spanGaps option is used if (lineModel.spanGaps) { @@ -273,8 +274,7 @@ module.exports = DatasetController.extend({ helpers.splineCurveMonotone(points); } else { for (i = 0, ilen = points.length; i < ilen; ++i) { - point = points[i]; - model = point._model; + model = points[i]._model; controlPoints = helpers.splineCurve( helpers.previousItem(points, i)._model, model, diff --git a/src/controllers/controller.radar.js b/src/controllers/controller.radar.js index 500a40d34..770ddc51a 100644 --- a/src/controllers/controller.radar.js +++ b/src/controllers/controller.radar.js @@ -5,6 +5,7 @@ var defaults = require('../core/core.defaults'); var elements = require('../elements/index'); var helpers = require('../helpers/index'); +var valueOrDefault = helpers.valueOrDefault; var resolve = helpers.options.resolve; defaults._set('radar', { @@ -31,10 +32,8 @@ module.exports = DatasetController.extend({ var meta = me.getMeta(); var line = meta.dataset; var points = meta.data || []; - var custom = line.custom || {}; - var dataset = me.getDataset(); - var lineElementOptions = me.chart.options.elements.line; var scale = me.chart.scale; + var dataset = me.getDataset(); var i, ilen; // Compatibility: If the properties are defined with only the old name, use those values @@ -42,32 +41,19 @@ module.exports = DatasetController.extend({ dataset.lineTension = dataset.tension; } - helpers.extend(meta.dataset, { - // Utility - _datasetIndex: me.index, - _scale: scale, - // Data - _children: points, - _loop: true, - // Model - _model: { - // Appearance - tension: resolve([custom.tension, dataset.lineTension, lineElementOptions.tension]), - backgroundColor: resolve([custom.backgroundColor, dataset.backgroundColor, lineElementOptions.backgroundColor]), - borderWidth: resolve([custom.borderWidth, dataset.borderWidth, lineElementOptions.borderWidth]), - borderColor: resolve([custom.borderColor, dataset.borderColor, lineElementOptions.borderColor]), - fill: resolve([custom.fill, dataset.fill, lineElementOptions.fill]), - borderCapStyle: resolve([custom.borderCapStyle, dataset.borderCapStyle, lineElementOptions.borderCapStyle]), - borderDash: resolve([custom.borderDash, dataset.borderDash, lineElementOptions.borderDash]), - borderDashOffset: resolve([custom.borderDashOffset, dataset.borderDashOffset, lineElementOptions.borderDashOffset]), - borderJoinStyle: resolve([custom.borderJoinStyle, dataset.borderJoinStyle, lineElementOptions.borderJoinStyle]), - } - }); - - meta.dataset.pivot(); + // Utility + line._scale = scale; + line._datasetIndex = me.index; + // Data + line._children = points; + line._loop = true; + // Model + line._model = me._resolveLineOptions(line); + + line.pivot(); // Update Points - for (i = 0, ilen = points.length; i < ilen; i++) { + for (i = 0, ilen = points.length; i < ilen; ++i) { me.updateElement(points[i], i, reset); } @@ -75,7 +61,7 @@ module.exports = DatasetController.extend({ me.updateBezierControlPoints(); // Now pivot the point for animation - for (i = 0, ilen = points.length; i < ilen; i++) { + for (i = 0, ilen = points.length; i < ilen; ++i) { points[i].pivot(); } }, @@ -85,43 +71,120 @@ module.exports = DatasetController.extend({ var custom = point.custom || {}; var dataset = me.getDataset(); var scale = me.chart.scale; - var pointElementOptions = me.chart.options.elements.point; var pointPosition = scale.getPointPositionForValue(index, dataset.data[index]); + var options = me._resolvePointOptions(point, index); + var lineModel = me.getMeta().dataset._model; + var x = reset ? scale.xCenter : pointPosition.x; + var y = reset ? scale.yCenter : pointPosition.y; + + // Utility + point._scale = scale; + point._options = options; + point._datasetIndex = me.index; + point._index = index; + + // Desired view properties + point._model = { + x: x, // value not used in dataset scale, but we want a consistent API between scales + y: y, + skip: custom.skip || isNaN(x) || isNaN(y), + // Appearance + radius: options.radius, + pointStyle: options.pointStyle, + rotation: options.rotation, + backgroundColor: options.backgroundColor, + borderColor: options.borderColor, + borderWidth: options.borderWidth, + tension: valueOrDefault(custom.tension, lineModel ? lineModel.tension : 0), + + // Tooltip + hitRadius: options.hitRadius + }; + }, - // Compatibility: If the properties are defined with only the old name, use those values - if ((dataset.radius !== undefined) && (dataset.pointRadius === undefined)) { - dataset.pointRadius = dataset.radius; + /** + * @private + */ + _resolvePointOptions: function(element, index) { + var me = this; + var chart = me.chart; + var dataset = chart.data.datasets[me.index]; + var custom = element.custom || {}; + var options = chart.options.elements.point; + var values = {}; + var i, ilen, key; + + // Scriptable options + var context = { + chart: chart, + dataIndex: index, + dataset: dataset, + datasetIndex: me.index + }; + + var ELEMENT_OPTIONS = { + backgroundColor: 'pointBackgroundColor', + borderColor: 'pointBorderColor', + borderWidth: 'pointBorderWidth', + hitRadius: 'pointHitRadius', + hoverBackgroundColor: 'pointHoverBackgroundColor', + hoverBorderColor: 'pointHoverBorderColor', + hoverBorderWidth: 'pointHoverBorderWidth', + hoverRadius: 'pointHoverRadius', + pointStyle: 'pointStyle', + radius: 'pointRadius', + rotation: 'pointRotation' + }; + var keys = Object.keys(ELEMENT_OPTIONS); + + for (i = 0, ilen = keys.length; i < ilen; ++i) { + key = keys[i]; + values[key] = resolve([ + custom[key], + dataset[ELEMENT_OPTIONS[key]], + dataset[key], + options[key] + ], context, index); } - if ((dataset.hitRadius !== undefined) && (dataset.pointHitRadius === undefined)) { - dataset.pointHitRadius = dataset.hitRadius; + + return values; + }, + + /** + * @private + */ + _resolveLineOptions: function(element) { + var me = this; + var chart = me.chart; + var dataset = chart.data.datasets[me.index]; + var custom = element.custom || {}; + var options = chart.options.elements.line; + var values = {}; + var i, ilen, key; + + var keys = [ + 'backgroundColor', + 'borderWidth', + 'borderColor', + 'borderCapStyle', + 'borderDash', + 'borderDashOffset', + 'borderJoinStyle', + 'fill' + ]; + + for (i = 0, ilen = keys.length; i < ilen; ++i) { + key = keys[i]; + values[key] = resolve([ + custom[key], + dataset[key], + options[key] + ]); } - helpers.extend(point, { - // Utility - _datasetIndex: me.index, - _index: index, - _scale: scale, - - // Desired view properties - _model: { - x: reset ? scale.xCenter : pointPosition.x, // value not used in dataset scale, but we want a consistent API between scales - y: reset ? scale.yCenter : pointPosition.y, - - // Appearance - tension: resolve([custom.tension, dataset.lineTension, me.chart.options.elements.line.tension]), - radius: resolve([custom.radius, dataset.pointRadius, pointElementOptions.radius], undefined, index), - backgroundColor: resolve([custom.backgroundColor, dataset.pointBackgroundColor, pointElementOptions.backgroundColor], undefined, index), - borderColor: resolve([custom.borderColor, dataset.pointBorderColor, pointElementOptions.borderColor], undefined, index), - borderWidth: resolve([custom.borderWidth, dataset.pointBorderWidth, pointElementOptions.borderWidth], undefined, index), - pointStyle: resolve([custom.pointStyle, dataset.pointStyle, pointElementOptions.pointStyle], undefined, index), - rotation: resolve([custom.rotation, dataset.pointRotation, pointElementOptions.rotation], undefined, index), - - // Tooltip - hitRadius: resolve([custom.hitRadius, dataset.pointHitRadius, pointElementOptions.hitRadius], undefined, index) - } - }); - - point._model.skip = custom.skip || isNaN(point._model.x) || isNaN(point._model.y); + values.tension = valueOrDefault(dataset.lineTension, options.tension); + + return values; }, updateBezierControlPoints: function() { @@ -135,7 +198,7 @@ module.exports = DatasetController.extend({ return Math.max(Math.min(pt, max), min); } - for (i = 0, ilen = points.length; i < ilen; i++) { + for (i = 0, ilen = points.length; i < ilen; ++i) { model = points[i]._model; controlPoints = helpers.splineCurve( helpers.previousItem(points, i, true)._model, @@ -153,11 +216,8 @@ module.exports = DatasetController.extend({ }, setHoverStyle: function(point) { - // Point - var dataset = this.chart.data.datasets[point._datasetIndex]; - var custom = point.custom || {}; - var index = point._index; var model = point._model; + var options = point._options; var getHoverColor = helpers.getHoverColor; point.$previousStyle = { @@ -167,9 +227,9 @@ module.exports = DatasetController.extend({ radius: model.radius }; - model.radius = resolve([custom.hoverRadius, dataset.pointHoverRadius, this.chart.options.elements.point.hoverRadius], undefined, index); - model.backgroundColor = resolve([custom.hoverBackgroundColor, dataset.pointHoverBackgroundColor, getHoverColor(model.backgroundColor)], undefined, index); - model.borderColor = resolve([custom.hoverBorderColor, dataset.pointHoverBorderColor, getHoverColor(model.borderColor)], undefined, index); - model.borderWidth = resolve([custom.hoverBorderWidth, dataset.pointHoverBorderWidth, model.borderWidth], undefined, index); + model.backgroundColor = valueOrDefault(options.hoverBackgroundColor, getHoverColor(options.backgroundColor)); + model.borderColor = valueOrDefault(options.hoverBorderColor, getHoverColor(options.borderColor)); + model.borderWidth = valueOrDefault(options.hoverBorderWidth, options.borderWidth); + model.radius = valueOrDefault(options.hoverRadius, options.radius); } }); diff --git a/test/fixtures/controller.radar/backgroundColor/indexable.js b/test/fixtures/controller.radar/backgroundColor/indexable.js new file mode 100644 index 000000000..cd59ce44a --- /dev/null +++ b/test/fixtures/controller.radar/backgroundColor/indexable.js @@ -0,0 +1,58 @@ +module.exports = { + config: { + type: 'radar', + data: { + labels: [0, 1, 2, 3, 4, 5], + datasets: [ + { + // option in dataset + data: [0, 5, 10, null, -10, -5], + pointBackgroundColor: [ + '#ff0000', + '#00ff00', + '#0000ff', + '#ffff00', + '#ff00ff', + '#000000' + ] + }, + { + // option in element (fallback) + data: [4, -5, -10, null, 10, 5], + } + ] + }, + options: { + legend: false, + title: false, + elements: { + line: { + fill: false, + }, + point: { + backgroundColor: [ + '#ff88ff', + '#888888', + '#ff8800', + '#00ff88', + '#8800ff', + '#ffff88' + ], + radius: 10 + } + }, + scale: { + display: false, + ticks: { + min: -15 + } + } + } + }, + options: { + canvas: { + height: 512, + width: 512 + } + } +}; diff --git a/test/fixtures/controller.radar/backgroundColor/indexable.png b/test/fixtures/controller.radar/backgroundColor/indexable.png new file mode 100644 index 0000000000000000000000000000000000000000..6141ca8015bdd04a8aa6e4a8745481323b7bdcf9 GIT binary patch literal 13114 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 literal 0 Hc-jL100001 diff --git a/test/fixtures/controller.radar/backgroundColor/scriptable.js b/test/fixtures/controller.radar/backgroundColor/scriptable.js new file mode 100644 index 000000000..cf2a074e5 --- /dev/null +++ b/test/fixtures/controller.radar/backgroundColor/scriptable.js @@ -0,0 +1,56 @@ +module.exports = { + config: { + type: 'radar', + data: { + labels: [0, 1, 2, 3, 4, 5], + datasets: [ + { + // option in dataset + data: [0, 5, 10, null, -10, -5], + pointBackgroundColor: function(ctx) { + var value = ctx.dataset.data[ctx.dataIndex] || 0; + return value > 8 ? '#ff0000' + : value > 0 ? '#00ff00' + : value > -8 ? '#0000ff' + : '#ff00ff'; + } + }, + { + // option in element (fallback) + data: [4, -5, -10, null, 10, 5], + } + ] + }, + options: { + legend: false, + title: false, + elements: { + line: { + fill: false, + }, + point: { + backgroundColor: function(ctx) { + var value = ctx.dataset.data[ctx.dataIndex] || 0; + return value > 8 ? '#ff00ff' + : value > 0 ? '#0000ff' + : value > -8 ? '#ff0000' + : '#00ff00'; + }, + radius: 10, + } + }, + scale: { + display: false, + ticks: { + min: -15 + } + } + } + }, + options: { + canvas: { + height: 512, + width: 512 + } + } +}; diff --git a/test/fixtures/controller.radar/backgroundColor/scriptable.png b/test/fixtures/controller.radar/backgroundColor/scriptable.png new file mode 100644 index 0000000000000000000000000000000000000000..b1e6d6e5aee23b8b42c90284c4cf8ded91b81706 GIT binary patch literal 12508 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 literal 0 Hc-jL100001 diff --git a/test/fixtures/controller.radar/borderColor/indexable.js b/test/fixtures/controller.radar/borderColor/indexable.js new file mode 100644 index 000000000..11297f2db --- /dev/null +++ b/test/fixtures/controller.radar/borderColor/indexable.js @@ -0,0 +1,58 @@ +module.exports = { + config: { + type: 'radar', + data: { + labels: [0, 1, 2, 3, 4, 5], + datasets: [ + { + // option in dataset + data: [0, 5, 10, null, -10, -5], + pointBorderColor: [ + '#ff0000', + '#00ff00', + '#0000ff', + '#ffff00', + '#ff00ff', + '#000000' + ] + }, + { + // option in element (fallback) + data: [4, -5, -10, null, 10, 5], + } + ] + }, + options: { + legend: false, + title: false, + elements: { + line: { + fill: false, + }, + point: { + borderColor: [ + '#ff88ff', + '#888888', + '#ff8800', + '#00ff88', + '#8800ff', + '#ffff88' + ], + radius: 10 + } + }, + scale: { + display: false, + ticks: { + min: -15 + } + } + } + }, + options: { + canvas: { + height: 512, + width: 512 + } + } +}; diff --git a/test/fixtures/controller.radar/borderColor/indexable.png b/test/fixtures/controller.radar/borderColor/indexable.png new file mode 100644 index 0000000000000000000000000000000000000000..00fe42652010d43ca387ff8962a797f33e62a5e5 GIT binary patch literal 15373 zc-rk-WmjB5lfFQZK+r&d5Znpw?he5nf&~c>Ai-g^b{k?_thxySu8Z>UpZV``oz^8fpsIn6EJb0KisKl+^+NWZ>Ti0}b(Yv+{W%S1Q*>D<|~^ku^LP&%svNrHqrG-;aUvOt)7szNVat(7+h9erxR*{<*EF{u z*5uwCxtm#f7QbuN4^J8m=S`aL&RNd(FMvxd?v!cDB+gZWl zR1O?MJpaDy1YR=HL^kBxdkRGc0+B|GxCOfX4wfAi#zif^wTV1f4%N3)v~P)|b~TD_ zSvg(R4gi3;B)I&lAb|aGFPUZfe2>yO;OO{iVWrKxOQIS9;X}$7?sXr>O^4LV(aG*T zFW1dX6`t~OX^ABq0D$$f3W(Tfr4!FiA^L`kxNFniPT;KNA^|{|5kqq8Zn* zG_=8i!bA~0MA086eI(8w<8(W;b6M?dl|&4my7vKdKg$QUK`vV_KMDZI!z`H?2f1%n zM(O^PSyuwTQF3j6^3=Q0bOX)~`}B!3`FW;}E)lWUz|g!znbPEFeyv; zGQOLl$wsNU8N2SkwB8R}n;bp5$6Y-5elW;I_TP@iSR@Q~citX5oIZ?p5|6E(6IY;e z>YgC=5yIh>943Aq4C!{4_pAsX<-RGuu04r`_r;kBR=%BW)@wa@N@wBjT=#<%tReNB zKyOqtz1N%4H7Rnj0D$SkTcza+=Th-C5Ww{43|13AhrcJI|4T zz`q&vF}jFnNzKwoL@CgZtyS*^NTTdw0(P&|f=y{BD*B3Z~NUp8Kj0jJa z$>{8&5wR+y=SzkS4RYm<3olAI8MPhgb4&!-_4<{rc^0{*HKrmy^Z#zPE3r)9U-g1< zPY!+-Y;nZpobPk3N`NY1IRpsrY`zycCLQfxiaa^Cb(?W*rKwwIje9nzLDLaA(h2t( z6xjK%E}cjNiklg`SY9mns|4Z7y$Hu%T|p1 z^J4?Dih3!UEZ(-Jl2l|^BiNAapmAc?t})bI?V|Z)+OUN^=zZUg1cY~>Dbdos(?LL6 zE7>96icZ__YmWdu9!zEDKy-3D^fq;I%DLZ~{*~5Owr>dbx%BVgG&L5U1Vf7)ZAsr8 zyBY%kMzICU+Bxn`{rh6xu~j{eAUuTPXZraRt);UqdS^FFaS0%AM1e}uXwryt`5GW~ zdJEzmCa>h|Ti*o$JXIp1!{_PwF1ZRLGyMSYOKCRLM|x1arCz)R6#&-xD!uY^90{{a zcNkh-QJz^;(f~lt5%Y|8S0+0fu)+W&2l_M+_uoc3x2Pe@ zZ;$}4S0xB(b4JnETmPIaGa|vdei0ropYgTynw-w_lWbP18~{)gK&8cWxxjaZ2l%v( zykKG4Y5_31;ejUY#L-?HIrB{*v)23z0FO-*VR3x4+mHBhiQ-BNi;2g~xKHbspU_vhFyQ#sL9UoMdVk~*zWpMvkT-Eq-w%MwK)n6|7C*LxYGjCiN& zi}_FVH_g$OuVev93~asg*nlRQg>w}xBYQt>qY6xsr<^Ue5hayW{ktQG55|_gE26?( zsheP4U&Y6#bg;fJVEH$M$j%};I8eS71$mJV2{})u;B%qW8&TSe&iD9T1J5V5ww1{?2F_U+@4tSHeT) ze#O0~+$Mtok*ARa8#}PRM&>>db^y4R%g@0i zIcT~DtLyjzb?q<@L{Su@KW@`&>r{a$OJwrQ!8$*{L25vt7mHq*ZGlU0kYe#MITNj4 z!F!|pzU(I_7tf1n`eQ0P+Z`KJ*o$YTsVDc%SKd28%nD^~*@W+0hHQWNe?tQ_Ov|Ok z;>YIAROFXF?!iyRJv7%RyEQ)byijVSn^;s|l6c!p?6vxA=f^F!?%j<=$jT}CDH)KL zhX7qZ5~rxDX$DGsU~+BRp6=rLC{l6u;_K0Eu-hNugLPdmv_aE#%2Jb0^7V^IAS!{1 z!BQ*$qm`Ovv4f_9_2Ebw-IBu;zNG4-wy z#kkzFj$iPUuU>KZ8NkGr66$kUtpamtcPm}Veqz;KxC>xz?-H?;S1A-MS$G)L>T6q@SyHvTYi13K==^YThbs3ayg?xCl|_?|S}J-n_F z_?+=EpZ|1QVFM$zD58t9li#$>EK!SnPtM^6`|~-CneW)3`}`Gwh(2pKJbqJa^4%5! z7C@2INv`-!T!}EHevC>zA^Fv!BISglqoJLyo=-m9z`BT^_8|)0@u+;YF3RV_OAn28 zxMhM%qg4Md2mpkrm1FwVv(9WGfu{VTT&9ntc(q!g?{uA_Ec1PF?{3BvxeT5KN;+tq zWBP3oZApu{+w845YdX!*m%ZLz6XVosWqhz06}wAavJup5HH@{e48s7PNh6dJ9+ubk zx_D+-47YbDuV_Es_2$YXk&)(&n131+Enu zLB|4*h=x++Ul-J904UH<{~etG_rm}MS~srjX;%hzeI?{X4m5bHUlvBkw$@lWZk%N7 z5`hfT;OWAV=tfN5Pc%tS1d!liUO$`0Yt6N4Id2i-o29yO`sRcCiG|sGhKGc-c%|9a z1CX@REMxqcv2#+U?3ju5RwVroowvYmR^1+^06jsJ0yUXd^!r?y!KO~ zcgeq*x&t-K7m+YYkTB>GldPwJyAH7pqAsRw6IX5u*O6jlMt2yQ1VlJB|EWMGJbaF; zZ)Y~}fq#(Qo>#LssC{=0nU<95r&Ae3eDDI$=K$>6v*eWu?Nm{g$S8Wn$i4ZGm-9!Y8WG59$ zzUA!dJIi#l!B^Etg)n0yLW>B75dCDqer(LqzkNbgc$TD!K!H!UN}4j%r;i#^>~}P> z_8h;NH2#s0lZKiYP-?|R6wVOi;FW9>0~LfRRIRy5g&oGl8OZX5vPiU4Dc{1S#WXES z&2s1p`msovJ@<&i)TY?Yb=c*&P@@A$@-)<&wo{=o7t_a*yu)I0;^6h&+aP3lNmafm zgy73raM!h^b6i%D*ZL*GM$15Hu|I@6h(;^iph5%u`feukXR;WG~fqXlr7SL{%gs?2C(~Vmb;>K(n?xOyXT*Oooh`$jmj{x`Z^>$7{jE~*A zPlHI~AMqA?)r=%ENzEP%3;^@`S6C;AmL1`CvEfNKQI1jNJQX5_T}=9Aj8)!Kng&__ z(H!d1G36M6jOe+GR^olVGPxVt+zA((S3O%k9Q%LqnSX7qjIuDgHC=< z^+3kwnNMst@bQfr{@2?Sl8rG99zljZ!yhZ6*)>v~wDbbBjBegm+9v;*IcT;b8=n?>HEiAmQMaTn)03E)Lo8YE3GNA#4Mc+1w{06n2wLIMScXa zC13A3BGDEeC;hpEnZ4Kg>v>J#;2zUpG<&*^UNk+DD{=lyUtNP z>w!?zq19CBLu zc|}}tkG5Oc1Uk24gNi1lg+4CExh$HxhvnMqUU9I(JKA1dG}n}5B3iP&jRGu@mf#u zU8dn<6w&cyRG*^J#>!+`OCQB_ZZGE^SF&rgau?$c46Luo;--)-re~Ae;1!jzE5^m> zK;upq(v3zu+2_mMIWyA4g~_AKz*4jbaF>)7x@AHDwQ6*Ued9?AXwd!J#owy!#~196 z=@0LZOW7Y<=1aeRAFPN^vQk zbSpgK^!I)I8O>jIYkS12Br^73XmZa3N)|6={Tj$bo2cZscThSdVp!}f3OX#`f9DCQ zclA&$O~eKH;hd@FgS%L7o<)%-2}!+}?4zyLU7GJKGTK;p-Q+tce*j)7LsMu|g4hyk+p*QwVDXKoM+x+@bf>J)MsrDE9Fm?H zL1WJI1`JE%KNKgT1Qr?_I+<7Y>;&8ol}JZtn;YG!Y2$9ek6J&+Q`*5;@*i<7?MOzGVxGB%0r2I4y;`%}TT?^@pG&iDhpn2< zm>|~S^S=jNRfsKtDANq#EBVHxSstUx(<9XET30@m)|<~IgZ7jY)0#d~j)%W%XNoiL zo!Du9rMRD`m7jU%Z)XM`{kF{1 zitdW>vXD0UPh9ex4EJb-4DMK&_R)3V+PtTAQ`q`DSzbrOr`0-Yx#W7U1^E*;D^ad* zX2C0CLWGW(jZkqEx4d0QdH-|7L3S;#$=MA%8Du_GrS@}iBxm?CFr%?D3jcxJ&jbBW zfypzWf&qV*qCoARi{2F9U@Na=zjrzfCs{OM$Aj9}`5*bw-4o0P;$vw$cRA?Mj^Jxx z*~|7CK>>YU1jJovW8`>>xyTsRC!8Q|BR3ys>){EtjPmS zMAGj6Q=h!D+>^HYwR1U4jm`vOz?RUQ&k)WYQ*saPf?S8q2nYZUBb$~IRrSH>C^n}Y z1WGEt@GstZ#FkN*P|zgw}c~RmV$6;W4NO_WaNT zc{BYiJe0E7PxCowH_kDC(*oV4p(+fiG547w9)T0WBX0@KNU>Ynbf!0uis~&tCoJh2 zsS_NOO>2%Fyp>R8-cfSA;TPtD3#X*#Wcw}DG$ICs8cW0v)_W0YOn>G2dejcY7WRHn z{enn5B6cOH4~b?=sW)9lUz5LxG9P%37Kyv?I(aQ*px0AH6j zQ^yP8sA=PTns?s|3S^`|&d{#)e^f2z8|hq)`y<|Aj{aO*pC%15g^K)DldHX8h6F*R zznIBT>mO*Q^(Yey&J>~^T#S}{8eAd?Sr1*ka&~67<(elefE5<@D-pfmG%B6(6N9qX zd)2{oY~QbBl;)M%^uUV=Hrt)C;4Tbg(2vgvMT0wIsZ)x@T4wHV_Lg*5uEmDF=n2NU zDj6Fue|_ZV^Y}qv%>M@$T9#9)?3~4TV4)PJ1S=`RqRU=+SXWZwP=Tcv1;m4_B$Qr& zH)_8m7^z7-TureXHf$4@>l_x#MZIcfH>fk;6xz#j1rHFL`S#MMnlvz_tBS`f7gN|f zIKVU3v120`T5U1DHlRgh4mxyycS|ffa5>$Yl88;Z3NLatHltNQx#$0Q{&(OhU6C$F z@M4%&J%#t3+{vb4qs@dW9f3fpR(bn_gHzQRXIRC;fp|K9MQv}wBaK}^^2seIwme~1 z5%#r6MYfpZnWTfmkq{O!dxsu)<>bSU(UmdAY&S5YR{6|jgly3M6|7-8h(|lTK|Znv zzqX?oQ=GLu?wJ0#d<}Pzj9zF>fOJ1uxwyup!|ObN$un+J@ARQHadc%`f!uw@GA~a|521NkIZ_JR{lrq%v5uNnznWJlU1vPiRbAf%rODyylpd(jy`cjo#TDm72{#2 zx~Imen6N^tl*0%J9)!g%NSmzeHx#xz6e?CYmg1CTT}#R(rcVh{_K{9@e`FhVzlB~M zZlBar7Mc8}+Gs^!w*6&@Jhj`mIn(EK*05sZQH>!{y;!S!wL>DZ(Px?n8xhb)l!NQbriFl`jRz}YT}|)F9lI; zMXyeb>Zp;^8p{u(5N1R`eR!wzD=d3Hw9koYbj?idYaEP(*{*Zc^O0u;PHl9kbjYjZ z>Ft9Sj^Lg@pYvJ=NBQkTdzjDZ>U-sXdZM-j$!gmUSuA4@`zIlzKP(94PWEBTa;+f} z#o~CSqpNqP27jBwl#C7zNU5L*C^^)H4~o>wZ~cViPC#DD5%WKqe*6$`@V&dZ|CCyW zEn-ZYEUig6TX^UUQmRF4mZ$>A-EAV~DH!dNOKk%eT;J@~^Gu0eUb6U`?Q)r066VV833_5HK9OI)*!e+-ob%<)9?bi4H@o65ih+o& z+@hr9&=*rhI)WIAT=^_jtKc4yN1ILe8*aszBpJm@) z*;|6Pj06!xEWYX|1zkdKBPnciym$A=hrCxV6T?#-XF(I_@Re83e$O3tN-1&~o9!vJ zN$;Qo)4KlT?#T-c&*SI`B2wn&=E8LRj|1$#&i{;6;pl9d{gTxvCK2I9TD|6=wrF!@ zk(x@r>uUVhJkce6dK4Skru=q#26;yr4JAjVSW9360Y90`dZGuo;=S(fV-BCgoa)dQ z{@dU8KS|js&NTYGuGgq$Qfj-k=^olgae*KD=f7CuB5yFo4eKoj^bm=UPn1)iL2D~r*623JgtCLulc|ZN&_@ePd2yWBp!S2F84S-Iyj6mB#vnNI(`ww-wO>2 z$HV@nLf1)kAhlC+8^C1O>_YTJk#t3L-KB1IC9U!4z<|ANzhL^!koUhLm!Vv&_Ycnz ztBafJ>S|o!*h~GPFI}6SA3lt)9mrL9e(I(8W1dc9C!rL^l&alnt6@Xz@V8SMZ(%IV zxFn^v<6?9Z;oyxGw|Cu^ARIwsr&C*6>XGcDP)p~9AXd#yF1=q4RDzH&berO!7)i;i zKUHg)L85!I~Gx^?{ zDTl7VABT?O$kiARfKqZhcx_suo5vsqg(I>g`QycBy9Cf39v8pj$_tB>Zqz8!H#5eM zdOFA>eM6?=R=b>o-y#`@>lzzD^-(C-Hl>O54j%;6M_9OG4# zu*e58ZQrt2qzr{qIM3cdT#YxV;m_mUJ3o$2Ev`YFUGZq{dW&Qu6cXQK=8)!))GOTd z`#NDA4ozPDtVWa`FAZyM3P{4=8TW8}kWU(8|Nf}@MxQzE&O&w{T|71KC?uVN0?(30 z0{FfW_p!0`jv@SpY+$D}i9tfK3I7F!j0d*2yx*VHZnp2Z?t~v0!z}7ZaG@@^jlEo) zCROlXF%LOB)lt$HW6F&tgt#7mIoB>p>efHgNNn}T!l~-8?jYlN<1Yro9zOTP){)ee z`YympDLqcme|Yq!1UPdNy`h9Aa0*#i213-&ttEEiS5U;W}oC%HK1jTXCK6o|Ib~2w4IAa%lCR~ZwEPFv_0nPbrFFBI9E$jDqg1YRwaCDcRpt=M06Zoe!mQt%qOZ z6FD1ytbKQ!q=2uMmzFCIub%?B=&kOYXe6tWcU$1=rd zC@qTfzUpay3{J!Rwz?Jwkx$&g4bOQPBNw@k%TAecC@XB8@ng69C07>ztjofs58K%| zwZ7(eE2(=IW-vb8Z~Y>(&1$Z2ICSuD>Wqa1)<#$|;|bBqKH=FxGbm|Auj-!8Xs4;G zI6>97*6^m(nSamQf0p_!RSKkcI$b@!IHc+3)G0#qCBXw3hLirqu#77*ybx9o0x2GHb^Qxd@P>a2GI zgUukXSM&cpsTvwfkI!5le}selDEMq_k*r_gg)ZPm#HT%%jTP&BdBA42FCd~ITh+?hC3Bz!ndrwOgMNRy09!O zlTEU#$Fq0x4|1ack!ut>a@vDmCtGPJwM4!Tj;G@Wu9fMH;G@ejYS1@E{)k)+J`s(q z+wU0lEnXqeU~+fcTKq76J_v$=qyKcs`-xoo(UVuN#Y#L0w!!%{Ujy4iUccC{d01?4 z3CoFIQbW;!!T`cVN_vXXV@ZKDzZ(CuU}opCmX}ZAMg6la{ZB0?v`JY^SdqLf;>M5V# zuJv#Kl@zA|_{zEa=kjR#+QK7tE6Rg-&4maGG?j?zHY(uLP23I#O z;w2^3Pj_6^m3^ajxOS4k$=1)GUIK{_(9d~wt0Ix@uU2X|&M= z9^2(~o9Yz3VwUHubP7WVME?EHn+l?tNvrQgc872)aTU~{S1)ZQ_jTWEo3;PTnbH;R zV+WSG^L615Yn_y;aCm>V$h}z~M7Qk2dI{X~r_JlOWrC#RW)JREDx4)eU+4vX;~+J^ zN!6aYIRrF(da#{?G?L@u*$1i!nml1>oR69EeD^Uxh{yg?hOD&1ds&2MZUs6S&4=rl zb+PM^j(@Oj%TUuk0`Xe~mN!Z{*_Nq(LPE?}WTuD-N>WLVt)G9Nnji3 z`jb!NjqZQSDW9vJDdGTHK?%Rl)E!_AQRsX1Gs3(9{Q>d@iwnfUsA`;s$LhiUytXAN z*(duxKm1$H_V$rhK{9JLaV1*=|*#jWbVvkBvw zHbQ#pUk+jk>CB*1lG4r_T#U8vW1HQyTy}Mv(9!j0S2g(fB2{bBmLdd)vb!p z!LG&YAE_?OYetdePnAy(@8g2^(V~+>EHduRRhY(fQhbKu8s)!ORaQ15xf@ zl}(J58s)L4*EraII3qK<{k_osYvId>+}ETR47vQ)81 zMM@Jmjx0T5^c~wtMc4FSWAKgqiUyIISw~dSrcJt$aH5Zibxo38)A|juCzmi;JVWT58HcNpc_8GYV?hv? zx%@8V+NfK)^G5g4qa~eXMf2Us<758%{7v_D?3%Z9XSpjQ^O}?c_UQXyG5U%3e)&1} zVyam5~M7*1IvPDgB7IqCaW z`e){O5Jmd9@u??e}w$;$;8dmx&lZ-L!B6eCAS0?+i!ZH{Kup%ypUnX?3=ffpyia zs;rMV@rTpEEfQ9(sLj=v>jGY)r07C7ORr|mS?bB(frseHE4s4hOh=DB*Dri%FTcj; zkADFBiu(QSX2f2Ut=QxcmH;5V@A8d}!!}J4Z61kWHmCe{bt( zCu1Ugv#4i|ntG{Q@gCz>riR2(Ic70WI?W+cK3glb#XM|JCgO;$QkciRNV)IOEKT{2 zI&3=K&^loEPU)G++@Dd2tlHYLh9g14Rvd`{DozFPc#O)m>vYLWF^T80$=Q11lini8 zQ|ud@lZaK2M(^XmzDM(ueCXJ+-o;GYjzMMfJV|S4Ynsu9zu8GP{$s=5c z%-6e%LToRwYQDe*(&rNF=Y*wPry|%e82Qy+%k%wN%hlX$Wiw3Va5X?&ch+5x?QQeL z_o{|~vwK!)nxlP=mfWgfogMdN-gm2aBotyQ^I`((Pc>_N#utGIE`u-n|0!IM?{p?y zuKI0;J$lSgU;1byJ`*;TRq1-8eNC2(T3wvC8 z+EKY$?x-RqH%cf!Re{Oq%x6&EmeVS`4IM4!XhEnb6G#ve-FwdqtIsQCdI zvmi=Gi&9B&a{d6szZTqIvy5bhpMeuT6ZskIYCW5}=e==yC}<>`sQ`{|aXx`&Fcwq>*HdGDj96A%J^TPqvT zXNq{s6bCi_;=Or#w_`Jo8E>=I+7_nYHHo~}ZBs{uwH#VUyLw{Zl@8hnB<$a|+M*qo zn`pHcXhHjtP=~nS++0{Ff*Q?-%r?-(*0^IGS>DG3|r~KU6*@wOh!&YEri7d_C zSG2A=4;d7=CAzs2f^E%ji_ORs(%nu11WL8rmIdv3#+n>LCF~_n`7EdW6{)&d10e$8 zitm!N_RBvfpxx?xv>JR(8Z>eEi-a$2Ch!n+H4fb#LQl#%M%wo8u?jN;7PWaHv$E6! zbD={KcAbKDdgt&!NIugqQ%i;+RUp3l`2cU^@aHRCx1q3b+(0s^T_hXlX(}_GPyMr= z$Els0`RNTTow#* z;tt5>MLz4_@eu}G>)MaK>die<&Ts1b#1<2VU(o%W5M&>VZ|Fv(vLvlZe4CGuOi+0JJG^GUfH}+0obDO#Jtv7SyU~`H{Hr{KT6%1*qE#ICo(% zpI!()7t6Uhhe)F5pn``aT6%h4txggjtz(E>;X*Niwa11KiU{SRF?ZT491f@FmXZR@6mk-akUqnGXCJV=3?+EuC?t#kNt#rC=y9)iA# z5~n=voc)4`%p4`kd__+C;|mQeW81XNs`YIaq&m05S-eh#C-$P1jj474eckIEJ>-_O zst>95MM!@yyVTT+SX>B`@my4JRJnSdU`k(~U7F8&?Z01|q(J`gkhTPs>zut@h6QHH zVbfWrTf;x=zg_&F^wZFOo!s)oLh1A_`tOYAoQ2u+Dl7cbz>; zxQi+!%JWat#bSp`C1ro4Xec#Zklu~6JW5WILbb2eS+w|Te{aDdml!oDV`XunULJ0J z$OT;MRzWyL96A&@+i)Sr#M>57y?U{+qyy9r?FtB|O2Jw~sziFkd0=+nS7p^Tl7he1 zJ|jkGw}narV>sHSYh=)CTeKMz4@`NQ@uNy5gj`S!VkWfxYwOY?$^%zp%U+xiizH*p zqEpnqu%^DX#wc*ibt_xFBw+5R+5QHj7A;yOhWk-6N zp9JA4(srSXea2+8vfbOyLCR6_dQU_u4AL-Dsx}`mX5z2PA3q3qrgQ2P>Qv2iYjuP* z!8gd~J$sUld=Zj8ZCf-ql(YfBUE1?1a`^fI2$6)2!e)aki_`X^$^fOy=Z00`UROj$V!s5+9Yo`X9O zsf>s_NN-3@OCfpbHSMaU-8O)(;V|>89LMhP=okCXe@o%B5pyEby;4k)KqF>7BDW3$ zy{1Lux2^1aR;ea$c3h2v@{~@}FyOce7&^c;r)(&t;9xj9&dB?U9MXi>4TaiU9XS(8 zZ-DOlZG#2QYty)Yl+=P~+M4j_CS#6LpFaaQ_#*SRd?#E^+oZ91hgUZT-qkw_ZT)h> z03Kf#_1T4PwH^Pol_VVMs$fTZn^RaJAD@OIDVU@z`l^&v8E(N=(>Tk=XL4?=PtC^| z$jOrIBZ?y*<<*?g!0~YgWfhZXZ=dw`mmMKCRfkVx+)hC3K>lsoL(gbz^Xu^bB;|7V zrm`HKz>f}k_kU9%^bRg_Gm=S-Z#7GZC1(c8A)i-*=Nv}Y^zfVSMn3OQ0ugHZJH?%H>4N(^!CzCcDU|(wcvKlb*nd#yZ;PRMR#C zG-8<8Lzf1Q24O2H8dxA;gOjMMwY(e~5W;53((@|lYfW9lc~<1>CxNZyg#r|ccA^5; zc*WLQpm~(~_Ya&pCvFKAzv&S4=#flPe)}e6at6n3yRn-RK{#YIu^6jh#dR#8S%;26MV*Y0vPqwlO57zKd>~K!-e`&3=ArA4 z`@LAaMcmvWQLiD3K}ZNTfF~AnA^x*{5hk`gci<`e?Y)Ax7P-H_MoSa`bZlNjPjZlk z=t*`L z>do(6#K3RLVwV9OG8ukTBlo7Ozo=S6p$S3?+_~|p_m+Q_ti)4v<}np){G^WsOlxlR zOsbwzVJT}S-sO+p`pSzpn%#YsH9esGQs`N5;gznE`yrZ}V6Cpx_4w&Z zX*braHf`Df#o|3R{=tX8G zRGtBI(~GAzetzi5ke7|8$~IMdwweyH+|`%Yhb=ljKwY8_$9U}O&`QULDLwc5#rX8y zYasy8$VjJl^fzr~e!PElP`EzcQ@)A_=vEzNJ-;WkpU{NXK9!J(mw-_K5uomOeN@p% z>cQ$My>-{gof1Mg;qKej310%k+j-mM!)Xug5%KdBlp;v3m_(?N^6;lshUpqGB9xeM zX+8z?rB@v%($zvkn!Ba{d3mbX`t-YAZtj~|2Ta}G}601zPtVy|jvEt+H5&u|y+pG(RIKo*I{tEo?v8B-$fIR~^>I!O=8Wg*b~@3O=b0>Yl41D8o$fQ zeFgyZ=}|?V-L;r7?j2YMfe6y$QKFVd^SrHwYb>`4amqTH!Jl|7SSx=z^ZyJd)!J*U zkTRR^#OB<*CY>=+wlP*%Y~ky{a>;*m(^Fm)`OiCJEb*NxFqwKE0o^x?%?XQxaOk|0 za(XD%6BDHgf)W0&f#xx_LS zAbCA*p#{Z0NJa&RHtIBO1#FuYPwo|6aZ4BG5`F?bQHq6=(OIJ5_0y{Gk6Sfq#XeGv)i-qoVzjlv8cMuKWn( z*i%K!GkN@X(s+FA_#$)qr8c*j2}5J;IwG_3evEe|+$C7;D(!w6c|!q{l>q+#`d_=g bTs 8 ? '#ff0000' + : value > 0 ? '#00ff00' + : value > -8 ? '#0000ff' + : '#ff00ff'; + } + }, + { + // option in element (fallback) + data: [4, -5, -10, null, 10, 5], + } + ] + }, + options: { + legend: false, + title: false, + elements: { + line: { + fill: false, + }, + point: { + borderColor: function(ctx) { + var value = ctx.dataset.data[ctx.dataIndex] || 0; + return value > 8 ? '#ff00ff' + : value > 0 ? '#0000ff' + : value > -8 ? '#ff0000' + : '#00ff00'; + }, + radius: 10, + } + }, + scale: { + display: false, + ticks: { + min: -15 + } + } + } + }, + options: { + canvas: { + height: 512, + width: 512 + } + } +}; diff --git a/test/fixtures/controller.radar/borderColor/scriptable.png b/test/fixtures/controller.radar/borderColor/scriptable.png new file mode 100644 index 0000000000000000000000000000000000000000..ea9bb5c303186545e1a31e22b542aa233b4427de GIT binary patch literal 14650 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

`HlfPqFRLDs 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 literal 0 Hc-jL100001 diff --git a/test/fixtures/controller.radar/borderWidth/indexable.js b/test/fixtures/controller.radar/borderWidth/indexable.js new file mode 100644 index 000000000..262d9d56d --- /dev/null +++ b/test/fixtures/controller.radar/borderWidth/indexable.js @@ -0,0 +1,50 @@ +module.exports = { + config: { + type: 'radar', + data: { + labels: [0, 1, 2, 3, 4, 5], + datasets: [ + { + // option in dataset + data: [0, 5, 10, null, -10, -5], + pointBorderColor: '#00ff00', + pointBorderWidth: [ + 1, 2, 3, 4, 5, 6 + ] + }, + { + // option in element (fallback) + data: [4, -5, -10, null, 10, 5], + } + ] + }, + options: { + legend: false, + title: false, + elements: { + line: { + fill: false, + }, + point: { + borderColor: '#ff0000', + borderWidth: [ + 6, 5, 4, 3, 2, 1 + ], + radius: 10 + } + }, + scale: { + display: false, + ticks: { + min: -15 + } + } + } + }, + options: { + canvas: { + height: 512, + width: 512 + } + } +}; diff --git a/test/fixtures/controller.radar/borderWidth/indexable.png b/test/fixtures/controller.radar/borderWidth/indexable.png new file mode 100644 index 0000000000000000000000000000000000000000..73d3493e24841e58ed5cbe7e7c8e5160748379c7 GIT binary patch literal 14295 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 HL&X0BPB8qw literal 0 Hc-jL100001 diff --git a/test/fixtures/controller.radar/borderWidth/scriptable.js b/test/fixtures/controller.radar/borderWidth/scriptable.js new file mode 100644 index 000000000..8d321b5fc --- /dev/null +++ b/test/fixtures/controller.radar/borderWidth/scriptable.js @@ -0,0 +1,56 @@ +module.exports = { + config: { + type: 'radar', + data: { + labels: [0, 1, 2, 3, 4, 5], + datasets: [ + { + // option in dataset + data: [0, 5, 10, null, -10, -5], + pointBorderColor: '#0000ff', + pointBorderWidth: function(ctx) { + var value = ctx.dataset.data[ctx.dataIndex] || 0; + return value > 4 ? 10 + : value > -4 ? 5 + : 2; + } + }, + { + // option in element (fallback) + data: [4, -5, -10, null, 10, 5], + } + ] + }, + options: { + legend: false, + title: false, + elements: { + line: { + fill: false, + }, + point: { + borderColor: '#ff0000', + borderWidth: function(ctx) { + var value = ctx.dataset.data[ctx.dataIndex] || 0; + return value > 4 ? 2 + : value > -4 ? 5 + : 10; + }, + radius: 10, + } + }, + scale: { + display: false, + ticks: { + min: -15 + } + } + } + }, + options: { + canvas: { + height: 512, + width: 512 + } + } +}; diff --git a/test/fixtures/controller.radar/borderWidth/scriptable.png b/test/fixtures/controller.radar/borderWidth/scriptable.png new file mode 100644 index 0000000000000000000000000000000000000000..2fccea7488dddb700ec6f7d5a04b91be7478ec7f GIT binary patch literal 14107 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 Tx`6lQ-#tWHNvcM|B>4XT=Z_j7 literal 0 Hc-jL100001 diff --git a/test/fixtures/controller.radar/pointStyle/indexable.js b/test/fixtures/controller.radar/pointStyle/indexable.js new file mode 100644 index 000000000..835cd2350 --- /dev/null +++ b/test/fixtures/controller.radar/pointStyle/indexable.js @@ -0,0 +1,62 @@ +module.exports = { + config: { + type: 'radar', + data: { + labels: [0, 1, 2, 3, 4, 5], + datasets: [ + { + // option in dataset + data: [0, 5, 10, null, -10, -5], + pointBackgroundColor: '#ff0000', + pointBorderColor: '#ff0000', + pointStyle: [ + 'circle', + 'cross', + 'crossRot', + 'dash', + 'line', + 'rect', + ] + }, + { + // option in element (fallback) + data: [4, -5, -10, null, 10, 5], + } + ] + }, + options: { + legend: false, + title: false, + elements: { + line: { + fill: false, + }, + point: { + backgroundColor: '#00ff00', + borderColor: '#00ff00', + pointStyle: [ + 'line', + 'rect', + 'rectRounded', + 'rectRot', + 'star', + 'triangle' + ], + radius: 10 + } + }, + scale: { + display: false, + ticks: { + min: -15 + } + } + } + }, + options: { + canvas: { + height: 512, + width: 512 + } + } +}; diff --git a/test/fixtures/controller.radar/pointStyle/indexable.png b/test/fixtures/controller.radar/pointStyle/indexable.png new file mode 100644 index 0000000000000000000000000000000000000000..3182e522a9e83ec867b43cad9ae9256cc92b4779 GIT binary patch literal 10783 zc-rN9_dnZT{O{W+O3`i8VbqM8HA7p}o(YQ360=6FHdd&Q>M&}ADnhGvjM_7(swOtE zSC!bR4MD8j^n3698}1MH{dk;5l5<|?y!P|F&UxpxnTZ}dD=#Ym0POk??ppu=J@Buw zFws7CpA!xN;2NNRU)$<=*4At&rfkiD>(4e8J)PB)6|mep>8!J=<>8f-ak;BRJC9z1 zQAAkue8~&cJEz-4PM_WR8yRB}Md z`&%N^IG348p*x8?1xHkk?VVD4@5637;Ho(>z_KC~p}9{AoBP4GPo=i1gLihixqv|x zJAE0k#_Xjep7EIPzc~P#;xb`Qm&10dUox}UX=rK2G$Q~dTIfa})1)^gyZK^%3UNX&!HeUc0$AXxQn!jaFm8=}Nzwg1af- z0m$u3_{kPwhq0jSG5|>X$>93tMK-a5nUflUD!=UL=nVi9 zmDzEwdm~Jze75sXTgwO=%=We;`*Z;7G|v{1CWx$3CEdxkYE=DKRZ2LSy} zL%JH?W>B7%u|KVVmY75DW>i}l@!7sb+qkjtb$TsOR=&9@pS^K-C_V7r`AU4ql#?Xc zKBlK{jsvI}Dd8j6bi@#l36NAlrbw8LTOL~J7P5|yeVz?a@Bvlxk=5Uy_NG0vs9+y_ znfC^$e7dNsk-|W2$o3I3T!oovq<@q|oCEw^jTP5D-jeQjj=tPJ1B{ik|KkHD=d^Cq zaRLmr*}=5oXs=>06EMiYHuPG6|&=B z=#BGXxd5AoTzup#eUyE1KWyxoGI{3Jb>FwZ;B^OILUpPH<+lU{C4ne2&~y~3u)>u> zNJ$ciZSl5E6oH`trr`?g8anclr9K;A3k^yn5R^a2LI;pFu9Y@Xr0p2GUMgk{J!Jse zdHTEvBe5YT-Bvi}(k1x-rc>O8JcJY_($+^I2=!<}wHb4x_vAxq?ib`Z*0&I$RvG-3 zx_yvdN(XLQs+T;vK4X7k$^g9OGsr_bmn_AasvIO%q|?5n9i&Yci!rJy(zSnQ|6)E6 z4k0B-AWqLkQx8JQ4d$A@)nijbG<87MP{2Lsqw>0bvK7v>%;}GiBh?4z>nLgsvpX?m z2J{rxRjfopA^y)|=-OL78!az{7K2Zt5u0=q{P7{8R=Aw9WK)bRaNvRpBPZ8CRV0&e zK;=bVa<7@lylp(|F-8J-o^OD4#!XKcoHVLm_ zbkpkAYc^oaFb{pk3RiEPN5ayE9a}QPrp0|%bl3IY1C^Dw@gY8LmoM*@JlVE|;DjoY zP0J*JhD`O70GzUGsu4n^C;Rh+z6RL&kE8;S^@J9(bE6xM`By4{FwGHbhjREXfA+4r zy~#=AP79svXp63f^}GsRuw{ZzC-$ zL#K<}97>k_729^^zgAP%-6tbJdD^G01wzeP_5ycu@|?VpzXF)d-<^%5FijS@&6W&3 zZHG4jCNP?b_InRVc06a8#{Eg_?eY9)IEd!P0Fx((EcLfTVSVyl_WXm>@2%#RIdEnw z&3ks~2e43{E%Jb!z;nxFkRd5wAA2h=7l@>r?AzrCk9H?iU$;}4d4`mubSNhmrgIkrJJ(=7@Bvl3FNAX+ z%`dC70BiV(Au#vJ5N5$ShsjhI(n@0- zeY6ggS*Cj(X#d`~F<59maJW@)Iss1oZDlBB8a

gHYq~c9UvS^}7zGK`t$AT)hiV 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 B|6Kq8 literal 0 Hc-jL100001 diff --git a/test/fixtures/controller.radar/pointStyle/scriptable.js b/test/fixtures/controller.radar/pointStyle/scriptable.js new file mode 100644 index 000000000..9301672fb --- /dev/null +++ b/test/fixtures/controller.radar/pointStyle/scriptable.js @@ -0,0 +1,60 @@ +module.exports = { + config: { + type: 'radar', + data: { + labels: [0, 1, 2, 3, 4, 5], + datasets: [ + { + // option in dataset + data: [0, 5, 10, null, -10, -5], + pointBackgroundColor: '#ff0000', + pointBorderColor: '#ff0000', + pointStyle: function(ctx) { + var value = ctx.dataset.data[ctx.dataIndex] || 0; + return value > 8 ? 'rect' + : value > 0 ? 'star' + : value > -8 ? 'cross' + : 'triangle'; + } + }, + { + // option in element (fallback) + data: [4, -5, -10, null, 10, 5], + } + ] + }, + options: { + legend: false, + title: false, + elements: { + line: { + fill: false, + }, + point: { + backgroundColor: '#0000ff', + borderColor: '#0000ff', + pointStyle: function(ctx) { + var value = ctx.dataset.data[ctx.dataIndex] || 0; + return value > 8 ? 'triangle' + : value > 0 ? 'cross' + : value > -8 ? 'star' + : 'rect'; + }, + radius: 10, + } + }, + scale: { + display: false, + ticks: { + min: -15 + } + } + } + }, + options: { + canvas: { + height: 512, + width: 512 + } + } +}; diff --git a/test/fixtures/controller.radar/pointStyle/scriptable.png b/test/fixtures/controller.radar/pointStyle/scriptable.png new file mode 100644 index 0000000000000000000000000000000000000000..35179a3032db957c6218ae6e1e58324696d7160c GIT binary patch literal 10878 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 CgdSl4 literal 0 Hc-jL100001 diff --git a/test/fixtures/controller.radar/pointStyle/value.js b/test/fixtures/controller.radar/pointStyle/value.js new file mode 100644 index 000000000..31c2ff941 --- /dev/null +++ b/test/fixtures/controller.radar/pointStyle/value.js @@ -0,0 +1,46 @@ +module.exports = { + config: { + type: 'radar', + data: { + labels: [0, 1, 2, 3, 4, 5], + datasets: [ + { + // option in dataset + data: [0, 5, 10, null, -10, -5], + pointBorderColor: '#ff0000', + pointStyle: 'star', + }, + { + // option in element (fallback) + data: [4, -5, -10, null, 10, 5], + } + ] + }, + options: { + legend: false, + title: false, + elements: { + line: { + fill: false, + }, + point: { + backgroundColor: '#00ff00', + pointStyle: 'rect', + radius: 10, + } + }, + scale: { + display: false, + ticks: { + min: -15 + } + } + } + }, + options: { + canvas: { + height: 512, + width: 512 + } + } +}; diff --git a/test/fixtures/controller.radar/pointStyle/value.png b/test/fixtures/controller.radar/pointStyle/value.png new file mode 100644 index 0000000000000000000000000000000000000000..654d4ed825742b622588b89dd774567afe1df677 GIT binary patch literal 11268 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 MYI@JAp4h+sKb|okegFUf literal 0 Hc-jL100001 diff --git a/test/fixtures/controller.radar/radius/scriptable.js b/test/fixtures/controller.radar/radius/scriptable.js new file mode 100644 index 000000000..bbc5cdeb2 --- /dev/null +++ b/test/fixtures/controller.radar/radius/scriptable.js @@ -0,0 +1,55 @@ +module.exports = { + config: { + type: 'radar', + data: { + labels: [0, 1, 2, 3, 4, 5], + datasets: [ + { + // option in dataset + data: [0, 5, 10, null, -10, -5], + pointBackgroundColor: '#0000ff', + pointRadius: function(ctx) { + var value = ctx.dataset.data[ctx.dataIndex] || 0; + return value > 4 ? 10 + : value > -4 ? 5 + : 2; + } + }, + { + // option in element (fallback) + data: [4, -5, -10, null, 10, 5], + } + ] + }, + options: { + legend: false, + title: false, + elements: { + line: { + fill: false, + }, + point: { + backgroundColor: '#ff0000', + radius: function(ctx) { + var value = ctx.dataset.data[ctx.dataIndex] || 0; + return value > 4 ? 2 + : value > -4 ? 5 + : 10; + }, + } + }, + scale: { + display: false, + ticks: { + min: -15 + } + } + } + }, + options: { + canvas: { + height: 512, + width: 512 + } + } +}; diff --git a/test/fixtures/controller.radar/radius/scriptable.png b/test/fixtures/controller.radar/radius/scriptable.png new file mode 100644 index 0000000000000000000000000000000000000000..8b58d8881638ff8e63b7bec729a7001edea5097c GIT binary patch literal 11034 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

_^yi{~#_Ww;{` z@}6M_(|N2y``mF~f~5_T$1I-v6ox3@yuNH93jg!t)tP)bwD_>)Uf;6M^YOdaEABUQ zoGmg(N?rfV8AHq)37XE9?G@;JO-9}kl5!5OBNJ&zVk zP!nezfNpS_CpuqZgeN`lIC+}&F+@ynpfB^KF=Azr{e4#=Ge621p1>r>a`d|G@aBmjfpeV3 zF)k`Y)JdSl3XEL-!}4KX>C@`va)lpw4ntr=^zq`NuUWW`ij^N&{&QK*|98WGb)(wpY)NpMZE&i*lL;1Ln5 z)-_o71W~)SN#)X(v@w0nQ~Que;5qv8nt~ytaiaAln}NJ@_DS)xhlhC*CZHS_8f>)~ z-%s&XfPVCe_8?v~Z8XKyMt+lRd4!I;AT8x~Q;xyezi2x4ekvNE-nXe}FrcAZlk*T; zX;8F~NXSjFPvT7AXaD=7Ftj4k-B6RnAWHYo^Z(wagmksX=-v|wn>nx}84|5?q_ zg+@2~_1!y)93=NzG4NokaH9cNe`W11$FLOVN?GZ=6Kc*$%Y;_ufUi|zFf zot&h<37P)2LrlW*d#HN24=!)%cJ0#!gT7XFXc$?SKeMtJsz1lNzkKugmMIHLj-#qP zE+%)y$>}1#ChRlkWA>4%Ks^CC-^r-;P_lhkrCKbHl+6Sm?AZE2seaV@+SaS5pQXd_ zD+?xWO3hoo9TUSZ?Ti4G_*FhH`C6JT3%Qok9g=T#Vypgzd#xd{<0JSB?P~Aq0k+RZ z-CrSNZ)eI>71Q07F;dSX4_km!+49m?mTV((Lql*1FE&C#U`?RV}s0MGNv6!etQ?h&9S^DQ#&+b1vQz|&dzp;q>6L%Y*fyGYG; zRgb;Mi7_70hZBCHe{hFsljH6l$6tF~O@ZLSg!JMvZl`*~=^G*^pAxPN3PZ~q#aO4N zYh+)x)S-=gxkjdI8_mPiQpe!AtCbyg5)jzCyfl&CHGMyW#;KGm+1oMBfgumgGAx^B zddp;sUn1F_CL``QF|Rt>htYb$O{&dU*!>t`_mboCLwPp*pEKuOpM$uRoPKt9 z+~9{&&8y2~z;lX|sL)_PDoZHc;+mc<;y0JuMrt2l46{-&4b7bV5>prCs*bs_*R_A8 z38*lu7VA8`@yOoSJ4kvX-}c2gM+`N#8=cMevQ2$=l#>WH@ks5iv=96oAkiu{C{C~A zKP#*Bo;Biyhi!f9Y)x;)sw}}->zQFTuN}!y!9Vmu< z3y=Rpi8g2#LCp0Ts8tG;igi2Zo>i({>QB5l2WW_c(khIWccO zEhDt>lW{YM#;vLEzx|1`03tz+jZ)g34;u*M9H-LeMd~>28Pwjx=6in96 zAr$A_c|y}FirMpC{8An)4cNW9*AP&c$<$u`_nolY$z{oz_o(d?PwykAzYUv>{OnaU zl$8O@clqIT%liBE%M_UER>OT&qgUY5G{Rx2E7@Ew(2lrJ=nBvQ5||*EPG;F_x}64i z{xZ|%xLN`^q=Dvm8>4P809OU}qnX;vT9gp;uJN%diBW1P&7y3fz=P%fBt_cEmW4DH zj&s0wY>04OCk&90@xZvk%3bMpCf%Mw!hpfoe$Qyhebe$`JLCt+uU`GNiY4 zPLu63i&Sf%pn`13Z4WsA$lL~2BGlDT$k)_itXoJ2!AGRNqVcw5j&X#Wq& zz6j!X89`NjbpIk9P>VP?z;xTE&4g+bcb2<3&Z&4vQu~A?)}z#sFKe0^!e(*5zIC2G n(}@vKx|MPc{C{%c_b4=y;PB21Uwrfb-s?Ou)GT}K@bCWt(8R^c literal 0 Hc-jL100001 diff --git a/test/fixtures/controller.radar/radius/value.js b/test/fixtures/controller.radar/radius/value.js new file mode 100644 index 000000000..d7f85687b --- /dev/null +++ b/test/fixtures/controller.radar/radius/value.js @@ -0,0 +1,45 @@ +module.exports = { + config: { + type: 'radar', + data: { + labels: [0, 1, 2, 3, 4, 5], + datasets: [ + { + // option in dataset + data: [0, 5, 10, null, -10, -5], + pointBackgroundColor: '#0000ff', + pointRadius: 6 + }, + { + // option in element (fallback) + data: [4, -5, -10, null, 10, 5], + } + ] + }, + options: { + legend: false, + title: false, + elements: { + line: { + fill: false, + }, + point: { + backgroundColor: '#00ff00', + radius: 3, + } + }, + scale: { + display: false, + ticks: { + min: -15 + } + } + } + }, + options: { + canvas: { + height: 512, + width: 512 + } + } +}; diff --git a/test/fixtures/controller.radar/radius/value.png b/test/fixtures/controller.radar/radius/value.png new file mode 100644 index 0000000000000000000000000000000000000000..55abc14fe2ac26d7cf6fbc2fe801bf727691de02 GIT binary patch literal 10490 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 literal 0 Hc-jL100001 diff --git a/test/fixtures/controller.radar/rotation/indexable.js b/test/fixtures/controller.radar/rotation/indexable.js new file mode 100644 index 000000000..f516ce75f --- /dev/null +++ b/test/fixtures/controller.radar/rotation/indexable.js @@ -0,0 +1,51 @@ +module.exports = { + config: { + type: 'radar', + data: { + labels: [0, 1, 2, 3, 4, 5], + datasets: [ + { + // option in dataset + data: [0, 5, 10, null, -10, -5], + pointBorderColor: '#00ff00', + pointRotation: [ + 0, 30, 60, 90, 120, 150 + ] + }, + { + // option in element (fallback) + data: [4, -5, -10, null, 10, 5], + } + ] + }, + options: { + legend: false, + title: false, + elements: { + line: { + fill: false, + }, + point: { + borderColor: '#ff0000', + borderWidth: 10, + pointStyle: 'line', + rotation: [ + 150, 120, 90, 60, 30, 0 + ], + } + }, + scale: { + display: false, + ticks: { + min: -15 + } + } + } + }, + options: { + canvas: { + height: 512, + width: 512 + } + } +}; diff --git a/test/fixtures/controller.radar/rotation/indexable.png b/test/fixtures/controller.radar/rotation/indexable.png new file mode 100644 index 0000000000000000000000000000000000000000..403aa7f869fd35274d0cc4fa1616e4e978ac9d15 GIT binary patch literal 19221 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 4 ? 120 + : value > -4 ? 60 + : 0; + } + }, + { + // option in element (fallback) + data: [4, -5, -10, null, 10, 5], + } + ] + }, + options: { + legend: false, + title: false, + elements: { + line: { + fill: false, + }, + point: { + borderColor: '#ff0000', + rotation: function(ctx) { + var value = ctx.dataset.data[ctx.dataIndex] || 0; + return value > 4 ? 0 + : value > -4 ? 60 + : 120; + }, + pointStyle: 'line', + radius: 10, + } + }, + scale: { + display: false, + ticks: { + min: -15 + } + } + } + }, + options: { + canvas: { + height: 512, + width: 512 + } + } +}; diff --git a/test/fixtures/controller.radar/rotation/scriptable.png b/test/fixtures/controller.radar/rotation/scriptable.png new file mode 100644 index 0000000000000000000000000000000000000000..69958a77f2d7c431c09cb15142a51b9f5ae7858e GIT binary patch literal 10351 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℘#2*kIankT@8j~HWN~~OE2S|{pnUhK9 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 BV(b6_ literal 0 Hc-jL100001 diff --git a/test/fixtures/controller.radar/rotation/value.js b/test/fixtures/controller.radar/rotation/value.js new file mode 100644 index 000000000..4b9b17d08 --- /dev/null +++ b/test/fixtures/controller.radar/rotation/value.js @@ -0,0 +1,47 @@ +module.exports = { + config: { + type: 'radar', + data: { + labels: [0, 1, 2, 3, 4, 5], + datasets: [ + { + // option in dataset + data: [0, 5, 10, null, -10, -5], + pointBorderColor: '#0000ff', + pointRotation: 90 + }, + { + // option in element (fallback) + data: [4, -5, -10, null, 10, 5], + } + ] + }, + options: { + legend: false, + title: false, + elements: { + line: { + fill: false, + }, + point: { + borderColor: '#00ff00', + pointStyle: 'line', + radius: 10, + rotation: 0, + } + }, + scale: { + display: false, + ticks: { + min: -15 + } + } + } + }, + options: { + canvas: { + height: 512, + width: 512 + } + } +}; diff --git a/test/fixtures/controller.radar/rotation/value.png b/test/fixtures/controller.radar/rotation/value.png new file mode 100644 index 0000000000000000000000000000000000000000..5a5cd5977099a3f002b58e19c2dcbfc76b63cb2f GIT binary patch literal 9857 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 literal 0 Hc-jL100001 diff --git a/test/specs/controller.radar.tests.js b/test/specs/controller.radar.tests.js index a911f9302..6b2c75454 100644 --- a/test/specs/controller.radar.tests.js +++ b/test/specs/controller.radar.tests.js @@ -127,7 +127,6 @@ describe('Chart.controllers.radar', function() { borderJoinStyle: 'bevel', borderWidth: 1.2, fill: true, - tension: 0.1, })); [ @@ -210,7 +209,6 @@ describe('Chart.controllers.radar', function() { borderJoinStyle: 'miter', borderWidth: 0.55, fill: false, - tension: 0, })); // Since tension is now 0, we don't care about the control points @@ -237,7 +235,6 @@ describe('Chart.controllers.radar', function() { // Use custom styles for lines & first point meta.dataset.custom = { - tension: 0.25, backgroundColor: 'rgb(55, 55, 54)', borderColor: 'rgb(8, 7, 6)', borderWidth: 0.3, @@ -270,7 +267,6 @@ describe('Chart.controllers.radar', function() { borderJoinStyle: 'round', borderWidth: 0.3, fill: true, - tension: 0.25, })); expect(meta.data[0]._model.x).toBeCloseToPixel(256); @@ -290,165 +286,123 @@ describe('Chart.controllers.radar', function() { })); }); - it('should set point hover styles', function() { - var chart = window.acquireChart({ - type: 'radar', - data: { - datasets: [{ - data: [10, 15, 0, 4] - }], - labels: ['label1', 'label2', 'label3', 'label4'] - }, - options: { - showLines: true, - elements: { - line: { - backgroundColor: 'rgb(255, 0, 0)', - borderCapStyle: 'round', - borderColor: 'rgb(0, 255, 0)', - borderDash: [], - borderDashOffset: 0.1, - borderJoinStyle: 'bevel', - borderWidth: 1.2, - fill: true, - skipNull: true, - tension: 0.1, - }, - point: { - backgroundColor: 'rgb(255, 255, 0)', - borderWidth: 1, - borderColor: 'rgb(255, 255, 255)', - hitRadius: 1, - hoverRadius: 4, - hoverBorderWidth: 1, - radius: 3, + describe('Interactions', function() { + beforeEach(function() { + this.chart = window.acquireChart({ + type: 'radar', + data: { + labels: ['label1', 'label2', 'label3', 'label4'], + datasets: [{ + data: [10, 15, 0, 4] + }] + }, + options: { + elements: { + point: { + backgroundColor: 'rgb(100, 150, 200)', + borderColor: 'rgb(50, 100, 150)', + borderWidth: 2, + radius: 3 + } } } - } + }); }); - var meta = chart.getDatasetMeta(0); - - meta.controller.update(); // reset first - - var point = meta.data[0]; - - meta.controller.setHoverStyle(point); - expect(point._model.backgroundColor).toBe('rgb(229, 230, 0)'); - expect(point._model.borderColor).toBe('rgb(230, 230, 230)'); - expect(point._model.borderWidth).toBe(1); - expect(point._model.radius).toBe(4); - - // Can set hover style per dataset - chart.data.datasets[0].pointHoverRadius = 3.3; - chart.data.datasets[0].pointHoverBackgroundColor = 'rgb(77, 79, 81)'; - chart.data.datasets[0].pointHoverBorderColor = 'rgb(123, 125, 127)'; - chart.data.datasets[0].pointHoverBorderWidth = 2.1; - - meta.controller.setHoverStyle(point); - expect(point._model.backgroundColor).toBe('rgb(77, 79, 81)'); - expect(point._model.borderColor).toBe('rgb(123, 125, 127)'); - expect(point._model.borderWidth).toBe(2.1); - expect(point._model.radius).toBe(3.3); - - // Custom style - point.custom = { - hoverRadius: 4.4, - hoverBorderWidth: 5.5, - hoverBackgroundColor: 'rgb(0, 0, 0)', - hoverBorderColor: 'rgb(10, 10, 10)' - }; - - meta.controller.setHoverStyle(point); - expect(point._model.backgroundColor).toBe('rgb(0, 0, 0)'); - expect(point._model.borderColor).toBe('rgb(10, 10, 10)'); - expect(point._model.borderWidth).toBe(5.5); - expect(point._model.radius).toBe(4.4); - }); - - - it('should remove hover styles', function() { - var chart = window.acquireChart({ - type: 'radar', - data: { - datasets: [{ - data: [10, 15, 0, 4] - }], - labels: ['label1', 'label2', 'label3', 'label4'] - }, - options: { - showLines: true, - elements: { - line: { - backgroundColor: 'rgb(255, 0, 0)', - borderCapStyle: 'round', - borderColor: 'rgb(0, 255, 0)', - borderDash: [], - borderDashOffset: 0.1, - borderJoinStyle: 'bevel', - borderWidth: 1.2, - fill: true, - skipNull: true, - tension: 0.1, - }, - point: { - backgroundColor: 'rgb(255, 255, 0)', - borderWidth: 1, - borderColor: 'rgb(255, 255, 255)', - hitRadius: 1, - hoverRadius: 4, - hoverBorderWidth: 1, - radius: 3, - } - } - } + it ('should handle default hover styles', function() { + var chart = this.chart; + var point = chart.getDatasetMeta(0).data[0]; + + jasmine.triggerMouseEvent(chart, 'mousemove', point); + expect(point._model.backgroundColor).toBe('rgb(49, 135, 221)'); + expect(point._model.borderColor).toBe('rgb(22, 89, 156)'); + expect(point._model.borderWidth).toBe(1); + expect(point._model.radius).toBe(4); + + jasmine.triggerMouseEvent(chart, 'mouseout', point); + expect(point._model.backgroundColor).toBe('rgb(100, 150, 200)'); + expect(point._model.borderColor).toBe('rgb(50, 100, 150)'); + expect(point._model.borderWidth).toBe(2); + expect(point._model.radius).toBe(3); }); - var meta = chart.getDatasetMeta(0); - - meta.controller.update(); // reset first - - var point = meta.data[0]; - - chart.options.elements.point.backgroundColor = 'rgb(45, 46, 47)'; - chart.options.elements.point.borderColor = 'rgb(50, 51, 52)'; - chart.options.elements.point.borderWidth = 10.1; - chart.options.elements.point.radius = 1.01; + it ('should handle hover styles defined via dataset properties', function() { + var chart = this.chart; + var point = chart.getDatasetMeta(0).data[0]; + + Chart.helpers.merge(chart.data.datasets[0], { + hoverBackgroundColor: 'rgb(200, 100, 150)', + hoverBorderColor: 'rgb(150, 50, 100)', + hoverBorderWidth: 8.4, + hoverRadius: 4.2 + }); + + chart.update(); + + jasmine.triggerMouseEvent(chart, 'mousemove', point); + expect(point._model.backgroundColor).toBe('rgb(200, 100, 150)'); + expect(point._model.borderColor).toBe('rgb(150, 50, 100)'); + expect(point._model.borderWidth).toBe(8.4); + expect(point._model.radius).toBe(4.2); + + jasmine.triggerMouseEvent(chart, 'mouseout', point); + expect(point._model.backgroundColor).toBe('rgb(100, 150, 200)'); + expect(point._model.borderColor).toBe('rgb(50, 100, 150)'); + expect(point._model.borderWidth).toBe(2); + expect(point._model.radius).toBe(3); + }); - meta.controller.removeHoverStyle(point); - chart.update(); - expect(point._model.backgroundColor).toBe('rgb(45, 46, 47)'); - expect(point._model.borderColor).toBe('rgb(50, 51, 52)'); - expect(point._model.borderWidth).toBe(10.1); - expect(point._model.radius).toBe(1.01); - - // Can set hover style per dataset - chart.data.datasets[0].pointRadius = 3.3; - chart.data.datasets[0].pointBackgroundColor = 'rgb(77, 79, 81)'; - chart.data.datasets[0].pointBorderColor = 'rgb(123, 125, 127)'; - chart.data.datasets[0].pointBorderWidth = 2.1; - - meta.controller.removeHoverStyle(point); - chart.update(); - expect(point._model.backgroundColor).toBe('rgb(77, 79, 81)'); - expect(point._model.borderColor).toBe('rgb(123, 125, 127)'); - expect(point._model.borderWidth).toBe(2.1); - expect(point._model.radius).toBe(3.3); - - // Custom style - point.custom = { - radius: 4.4, - borderWidth: 5.5, - backgroundColor: 'rgb(0, 0, 0)', - borderColor: 'rgb(10, 10, 10)' - }; + it ('should handle hover styles defined via element options', function() { + var chart = this.chart; + var point = chart.getDatasetMeta(0).data[0]; + + Chart.helpers.merge(chart.options.elements.point, { + hoverBackgroundColor: 'rgb(200, 100, 150)', + hoverBorderColor: 'rgb(150, 50, 100)', + hoverBorderWidth: 8.4, + hoverRadius: 4.2 + }); + + chart.update(); + + jasmine.triggerMouseEvent(chart, 'mousemove', point); + expect(point._model.backgroundColor).toBe('rgb(200, 100, 150)'); + expect(point._model.borderColor).toBe('rgb(150, 50, 100)'); + expect(point._model.borderWidth).toBe(8.4); + expect(point._model.radius).toBe(4.2); + + jasmine.triggerMouseEvent(chart, 'mouseout', point); + expect(point._model.backgroundColor).toBe('rgb(100, 150, 200)'); + expect(point._model.borderColor).toBe('rgb(50, 100, 150)'); + expect(point._model.borderWidth).toBe(2); + expect(point._model.radius).toBe(3); + }); - meta.controller.removeHoverStyle(point); - chart.update(); - expect(point._model.backgroundColor).toBe('rgb(0, 0, 0)'); - expect(point._model.borderColor).toBe('rgb(10, 10, 10)'); - expect(point._model.borderWidth).toBe(5.5); - expect(point._model.radius).toBe(4.4); + it ('should handle hover styles defined via element custom', function() { + var chart = this.chart; + var point = chart.getDatasetMeta(0).data[0]; + + point.custom = { + hoverBackgroundColor: 'rgb(200, 100, 150)', + hoverBorderColor: 'rgb(150, 50, 100)', + hoverBorderWidth: 8.4, + hoverRadius: 4.2 + }; + + chart.update(); + + jasmine.triggerMouseEvent(chart, 'mousemove', point); + expect(point._model.backgroundColor).toBe('rgb(200, 100, 150)'); + expect(point._model.borderColor).toBe('rgb(150, 50, 100)'); + expect(point._model.borderWidth).toBe(8.4); + expect(point._model.radius).toBe(4.2); + + jasmine.triggerMouseEvent(chart, 'mouseout', point); + expect(point._model.backgroundColor).toBe('rgb(100, 150, 200)'); + expect(point._model.borderColor).toBe('rgb(50, 100, 150)'); + expect(point._model.borderWidth).toBe(2); + expect(point._model.radius).toBe(3); + }); }); it('should allow pointBorderWidth to be set to 0', function() { -- 2.47.3