From 82d6436d8560c6dd6d132c293c81ec8967253ef8 Mon Sep 17 00:00:00 2001 From: andylhansen Date: Thu, 1 Sep 2016 12:03:16 -0600 Subject: [PATCH 1/3] Dragging after mouse has left chart area --- draggable-points.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/draggable-points.js b/draggable-points.js index c3f01a7..5540dd6 100644 --- a/draggable-points.js +++ b/draggable-points.js @@ -217,13 +217,12 @@ chart.redraw(); // Add'em - addEvent(container, 'mousemove', mouseMove); - addEvent(container, 'touchmove', mouseMove); + addEvent(document, 'mousemove', mouseMove); + addEvent(document, 'touchmove', mouseMove); addEvent(container, 'mousedown', mouseDown); addEvent(container, 'touchstart', mouseDown); addEvent(document, 'mouseup', drop); addEvent(document, 'touchend', drop); - addEvent(container, 'mouseleave', drop); }); /** From befffac283773f81762e0c3f1594464f267043f4 Mon Sep 17 00:00:00 2001 From: andylhansen Date: Wed, 14 Sep 2016 13:54:24 -0600 Subject: [PATCH 2/3] Keep from going over max y --- draggable-points.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/draggable-points.js b/draggable-points.js index 5540dd6..ecd30e4 100644 --- a/draggable-points.js +++ b/draggable-points.js @@ -38,6 +38,8 @@ newY = dragMin; } else if (newY > dragMax) { newY = dragMax; + } else if (newY > series.yAxis.max) { + newY = series.yAxis.max; } return newY; } From 3473cf3906eed6d559ff750056cc9ab9a75d2798 Mon Sep 17 00:00:00 2001 From: andylhansen Date: Sat, 8 Oct 2016 16:05:58 -0600 Subject: [PATCH 3/3] Add files via upload --- draggable-points.js | 37 +++++++++++++++++++++++++++++-------- toggle_icon.png | Bin 0 -> 350 bytes toggle_icon_red.png | Bin 0 -> 351 bytes 3 files changed, 29 insertions(+), 8 deletions(-) create mode 100644 toggle_icon.png create mode 100644 toggle_icon_red.png diff --git a/draggable-points.js b/draggable-points.js index ecd30e4..9f7e405 100644 --- a/draggable-points.js +++ b/draggable-points.js @@ -6,6 +6,11 @@ */ /*global document, Highcharts */ +/* eslint-disable */ + +var toggle = require('./toggle_icon.png'); +var toggleRed = require('./toggle_icon_red.png'); + (function (factory) { if (typeof module === 'object' && module.exports) { module.exports = factory; @@ -31,7 +36,7 @@ precision = pick(options['dragPrecision' + XOrY], undefined); if(!isNaN(precision)) { - newY = Math.round(newY / precision) * precision; + newY = Math.round(newY / precision) * precision; } if (newY < dragMin) { @@ -159,7 +164,7 @@ */ function mouseMove(e) { - e.preventDefault(); + //e.preventDefault(); if (dragPoint) { @@ -225,6 +230,7 @@ addEvent(container, 'touchstart', mouseDown); addEvent(document, 'mouseup', drop); addEvent(document, 'touchend', drop); + //addEvent(container, 'mouseleave', drop); }); /** @@ -236,9 +242,9 @@ }; Highcharts.seriesTypes.column.prototype.dragHandlePath = function (shapeArgs, strokeW) { - var x1 = shapeArgs.x, + var x1 = shapeArgs.x - 10, y = shapeArgs.y, - x2 = shapeArgs.x + shapeArgs.width; + x2 = shapeArgs.x + shapeArgs.width + 10; return [ 'M', x1, y + 6 * strokeW, @@ -266,9 +272,10 @@ each(series.points, function (point) { var path = (options.dragHandlePath || series.dragHandlePath)(point.shapeArgs, strokeW); + var x = series.index === 0 ? -19 : 8; if (!point.handle) { - point.handle = series.chart.renderer.path(path) + /*point.handle = series.chart.renderer.path(path) .attr({ fill: options.dragHandleFill || 'rgba(0,0,0,0.5)', 'class': 'highcharts-handle', @@ -278,14 +285,28 @@ .css({ cursor: 'ns-resize' }) - .add(series.group); + .add(series.group);*/ + var image = series.index === 0 ? toggle : toggleRed; + + point.handle = series.chart.renderer.image(image, point.shapeArgs.x + x, point.shapeArgs.y - 7, 19, 15) + .attr({ + 'class': 'highcharts-handle', + }) + .css({ + cursor: 'ns-resize', + }) + .add(series.group); point.handle.element.point = point; } else { - point.handle.attr({ d: path }); + //point.handle.attr({ d: path }); + point.handle.attr({ + x: point.shapeArgs.x + x, + y: point.shapeArgs.y - 7, + }); } }); } }); -})); +})); \ No newline at end of file diff --git a/toggle_icon.png b/toggle_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ed6ce2db49cc47b4751bd8a81a7eb35e76733533 GIT binary patch literal 350 zcmV-k0iphhP)Px$7)eAyR5%f1l&L-$$jHiG!@$Ze#6TkW_v7QD^( z{qD*8$JLsO=!($!a;-P+GYd-NH;h$CMo_l(`h9fG=zOTl(1jV8&_x&-2t#B&%v}6p zvb86gL1GkplaZa5i$zGjK(^*MBZ^^^dK1MkkW)dPBnABc`T5)5caJ7KZn3OIF^rtp z{QK?WtH;e2poEJWW>obiC?T>4%3!1)bZ-OIVFgV8e|>w0Rfb5xe?PzehACxX`1`y0 w_w(z$OdNa|X%40c7ybYDk9UlJ|F*#70n(6avS`hvK>z>%07*qoM6N<$g5CP2Px$8A(JzR5%f1WPpN80nP!83=BQo%q+|>F=FYT|Ng%F^Y32^3rqtmBV(;J7pF3e zPa>`G@XOaOCYUC6CMF>mn;e>(g_Q;FGE@T?Kfd|#<2|YvCQpQeLy&>tKR-+ct6^_` z{Cuypc9$Yd5ia^(u-knR4tD&80Tl?|3wFPc%Mh42NFC5+FfIewWtRe6nz>n7#o(e~ z20{_4IBp)xMSqtTaSrx;PG%-9n6g3PO(y+~dum?(_&MSG-+$j=E`!h@ZxX_&I)I5D z0-!OY0OGy*@#}%o+MUG4CR`8Jq(M<^f?R_N{_~4)u))(0svI&8HOArD>Fb|Ae~^`t x%KrK9-&