corrade-nucleus-nucleons – Blame information for rev 11

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 /**
11 office 2 * @license Highcharts JS v5.0.12 (2017-05-24)
1 office 3 *
4 * (c) 2009-2017 Torstein Honsi
5 *
6 * License: www.highcharts.com/license
7 */
8 'use strict';
9 (function(factory) {
10 if (typeof module === 'object' && module.exports) {
11 module.exports = factory;
12 } else {
13 factory(Highcharts);
14 }
15 }(function(Highcharts) {
16 (function(H) {
17 /**
18 * (c) 2009-2017 Torstein Honsi
19 *
20 * License: www.highcharts.com/license
21 */
22 /**
23 * EXPERIMENTAL Highcharts module to place labels next to a series in a natural position.
24 *
25 * TODO:
26 * - add column support (box collision detection, boxesToAvoid logic)
27 * - other series types, area etc.
28 * - avoid data labels, when data labels above, show series label below.
29 * - add more options (connector, format, formatter)
30 *
31 * http://jsfiddle.net/highcharts/L2u9rpwr/
32 * http://jsfiddle.net/highcharts/y5A37/
33 * http://jsfiddle.net/highcharts/264Nm/
34 * http://jsfiddle.net/highcharts/y5A37/
35 */
36  
37  
38 var labelDistance = 3,
39 wrap = H.wrap,
40 each = H.each,
41 extend = H.extend,
42 isNumber = H.isNumber,
43 Series = H.Series,
44 SVGRenderer = H.SVGRenderer,
45 Chart = H.Chart;
46  
47 H.setOptions({
48 plotOptions: {
49 series: {
50 label: {
51 enabled: true,
52 // Allow labels to be placed distant to the graph if necessary, and
53 // draw a connector line to the graph
54 connectorAllowed: true,
55 connectorNeighbourDistance: 24, // If the label is closer than this to a neighbour graph, draw a connector
56 styles: {
57 fontWeight: 'bold'
58 }
59 // boxesToAvoid: []
60 }
61 }
62 }
63 });
64  
65 /**
66 * Counter-clockwise, part of the fast line intersection logic
67 */
68 function ccw(x1, y1, x2, y2, x3, y3) {
69 var cw = ((y3 - y1) * (x2 - x1)) - ((y2 - y1) * (x3 - x1));
70 return cw > 0 ? true : cw < 0 ? false : true;
71 }
72  
73 /**
74 * Detect if two lines intersect
75 */
76 function intersectLine(x1, y1, x2, y2, x3, y3, x4, y4) {
77 return ccw(x1, y1, x3, y3, x4, y4) !== ccw(x2, y2, x3, y3, x4, y4) &&
78 ccw(x1, y1, x2, y2, x3, y3) !== ccw(x1, y1, x2, y2, x4, y4);
79 }
80  
81 /**
82 * Detect if a box intersects with a line
83 */
84 function boxIntersectLine(x, y, w, h, x1, y1, x2, y2) {
85 return (
86 intersectLine(x, y, x + w, y, x1, y1, x2, y2) || // top of label
87 intersectLine(x + w, y, x + w, y + h, x1, y1, x2, y2) || // right of label
88 intersectLine(x, y + h, x + w, y + h, x1, y1, x2, y2) || // bottom of label
89 intersectLine(x, y, x, y + h, x1, y1, x2, y2) // left of label
90 );
91 }
92  
93 /**
94 * General symbol definition for labels with connector
95 */
96 SVGRenderer.prototype.symbols.connector = function(x, y, w, h, options) {
97 var anchorX = options && options.anchorX,
98 anchorY = options && options.anchorY,
99 path,
100 yOffset,
101 lateral = w / 2;
102  
103 if (isNumber(anchorX) && isNumber(anchorY)) {
104  
105 path = ['M', anchorX, anchorY];
106  
107 // Prefer 45 deg connectors
108 yOffset = y - anchorY;
109 if (yOffset < 0) {
110 < 0) { yOffset = -h - yOffset;
111 < 0) { }
112 < 0) { if (yOffset < w) {
113 < 0) {< w) { lateral = anchorX < x + (w / 2) ? yOffset : w - yOffset;
114 < 0) {< w) {< x + (w / }
115  
116 < 0) {< w) {< x + (w / // Anchor below label
117 < 0) {< w) {< x + (w / if (anchorY > y + h) {
118 < 0) {< w) {< x + (w / path.push('L', x + lateral, y + h);
119  
120 < 0) {< w) {< x + (w / // Anchor above label
121 < 0) {< w) {< x + (w / } else if (anchorY < y) {
122 < 0) {< w) {< x + (w / path.push('L', x + lateral, y);
123  
124 < 0) {< w) {< x + (w / // Anchor left of label
125 < 0) {< w) {< x + (w / } else if (anchorX < x) {
126 < 0) {< w) {< x + (w / path.push('L', x, y + h / 2);
127  
128 < 0) {< w) {< x + (w / // Anchor right of label
129 < 0) {< w) {< x + (w / } else if (anchorX > x + w) {
130 < 0) {< w) {< x + (w / path.push('L', x + w, y + h / 2);
131 < 0) {< w) {< x + (w / }
132 < 0) {< w) {< x + (w / }
133 < 0) {< w) {< x + (w / return path || [];
134 < 0) {< w) {< x + (w / };
135  
136 < 0) {< w) {< x + (w / /**
137 < 0) {< w) {< x + (w / * Points to avoid. In addition to actual data points, the label should avoid
138 < 0) {< w) {< x + (w / * interpolated positions.
139 < 0) {< w) {< x + (w / */
140 < 0) {< w) {< x + (w / Series.prototype.getPointsOnGraph = function() {
141 < 0) {< w) {< x + (w / var distance = 16,
142 < 0) {< w) {< x + (w / points = this.points,
143 < 0) {< w) {< x + (w / point,
144 < 0) {< w) {< x + (w / last,
145 < 0) {< w) {< x + (w / interpolated = [],
146 < 0) {< w) {< x + (w / i,
147 < 0) {< w) {< x + (w / deltaX,
148 < 0) {< w) {< x + (w / deltaY,
149 < 0) {< w) {< x + (w / delta,
150 < 0) {< w) {< x + (w / len,
151 < 0) {< w) {< x + (w / n,
152 < 0) {< w) {< x + (w / j,
153 < 0) {< w) {< x + (w / d,
154 < 0) {< w) {< x + (w / graph = this.graph || this.area,
155 < 0) {< w) {< x + (w / node = graph.element,
156 < 0) {< w) {< x + (w / inverted = this.chart.inverted,
157 < 0) {< w) {< x + (w / paneLeft = inverted ? this.yAxis.pos : this.xAxis.pos,
158 < 0) {< w) {< x + (w / paneTop = inverted ? this.xAxis.pos : this.yAxis.pos;
159  
160 < 0) {< w) {< x + (w / // For splines, get the point at length (possible caveat: peaks are not correctly detected)
161 < 0) {< w) {< x + (w / if (this.getPointSpline && node.getPointAtLength) {
162 < 0) {< w) {< x + (w / // If it is animating towards a path definition, use that briefly, and reset
163 < 0) {< w) {< x + (w / if (graph.toD) {
164 < 0) {< w) {< x + (w / d = graph.attr('d');
165 < 0) {< w) {< x + (w / graph.attr({
166 < 0) {< w) {< x + (w / d: graph.toD
167 < 0) {< w) {< x + (w / });
168 < 0) {< w) {< x + (w / }
169 < 0) {< w) {< x + (w / len = node.getTotalLength();
170 < 0) {< w) {< x + (w / for (i = 0; i < len; i += distance) {
171 < 0) {< w) {< x + (w / point = node.getPointAtLength(i);
172 < 0) {< w) {< x + (w / interpolated.push({
173 < 0) {< w) {< x + (w / chartX: paneLeft + point.x,
174 < 0) {< w) {< x + (w / chartY: paneTop + point.y,
175 < 0) {< w) {< x + (w / plotX: point.x,
176 < 0) {< w) {< x + (w / plotY: point.y
177 < 0) {< w) {< x + (w / });
178 < 0) {< w) {< x + (w / }
179 < 0) {< w) {< x + (w / if (d) {
180 < 0) {< w) {< x + (w / graph.attr({
181 < 0) {< w) {< x + (w / d: d
182 < 0) {< w) {< x + (w / });
183 < 0) {< w) {< x + (w / }
184 < 0) {< w) {< x + (w / // Last point
185 < 0) {< w) {< x + (w / point = points[points.length - 1];
186 < 0) {< w) {< x + (w / point.chartX = paneLeft + point.plotX;
187 < 0) {< w) {< x + (w / point.chartY = paneTop + point.plotY;
188 < 0) {< w) {< x + (w / interpolated.push(point);
189  
190 < 0) {< w) {< x + (w / // Interpolate
191 < 0) {< w) {< x + (w / } else {
192 < 0) {< w) {< x + (w / len = points.length;
193 < 0) {< w) {< x + (w / for (i = 0; i < len; i += 1) {
194  
195 < 0) {< w) {< x + (w / point = points[i];
196 < 0) {< w) {< x + (w / last = points[i - 1];
197  
198 < 0) {< w) {< x + (w / // Absolute coordinates so we can compare different panes
199 < 0) {< w) {< x + (w / point.chartX = paneLeft + point.plotX;
200 < 0) {< w) {< x + (w / point.chartY = paneTop + point.plotY;
201  
202 < 0) {< w) {< x + (w / // Add interpolated points
203 < 0) {< w) {< x + (w / if (i > 0) {
204 < 0) {< w) {< x + (w / deltaX = Math.abs(point.chartX - last.chartX);
205 < 0) {< w) {< x + (w / deltaY = Math.abs(point.chartY - last.chartY);
206 < 0) {< w) {< x + (w / delta = Math.max(deltaX, deltaY);
207 < 0) {< w) {< x + (w / if (delta > distance) {
208  
209 < 0) {< w) {< x + (w / n = Math.ceil(delta / distance);
210  
211 < 0) {< w) {< x + (w / for (j = 1; j < n; j += 1) {
212 < 0) {< w) {< x + (w /< n; j += 1) { interpolated.push({
213 < 0) {< w) {< x + (w /< n; j += 1) { chartX: last.chartX + (point.chartX - last.chartX) * (j / n),
214 < 0) {< w) {< x + (w /< n; j += 1) { chartY: last.chartY + (point.chartY - last.chartY) * (j / n),
215 < 0) {< w) {< x + (w /< n; j += 1) { plotX: last.plotX + (point.plotX - last.plotX) * (j / n),
216 < 0) {< w) {< x + (w /< n; j += 1) { plotY: last.plotY + (point.plotY - last.plotY) * (j / n)
217 < 0) {< w) {< x + (w /< n; j += 1) { });
218 < 0) {< w) {< x + (w /< n; j += 1) { }
219 < 0) {< w) {< x + (w /< n; j += 1) { }
220 < 0) {< w) {< x + (w /< n; j += 1) { }
221  
222 < 0) {< w) {< x + (w /< n; j += 1) { // Add the real point in order to find positive and negative peaks
223 < 0) {< w) {< x + (w /< n; j += 1) { if (isNumber(point.plotY)) {
224 < 0) {< w) {< x + (w /< n; j += 1) { interpolated.push(point);
225 < 0) {< w) {< x + (w /< n; j += 1) { }
226 < 0) {< w) {< x + (w /< n; j += 1) { }
227 < 0) {< w) {< x + (w /< n; j += 1) { }
228 < 0) {< w) {< x + (w /< n; j += 1) { return interpolated;
229 < 0) {< w) {< x + (w /< n; j += 1) { };
230  
231 < 0) {< w) {< x + (w /< n; j += 1) { /**
232 < 0) {< w) {< x + (w /< n; j += 1) { * Check whether a proposed label position is clear of other elements
233 < 0) {< w) {< x + (w /< n; j += 1) { */
234 < 0) {< w) {< x + (w /< n; j += 1) { Series.prototype.checkClearPoint = function(x, y, bBox, checkDistance) {
235 < 0) {< w) {< x + (w /< n; j += 1) { var distToOthersSquared = Number.MAX_VALUE, // distance to other graphs
236 < 0) {< w) {< x + (w /< n; j += 1) { distToPointSquared = Number.MAX_VALUE,
237 < 0) {< w) {< x + (w /< n; j += 1) { dist,
238 < 0) {< w) {< x + (w /< n; j += 1) { connectorPoint,
239 < 0) {< w) {< x + (w /< n; j += 1) { connectorEnabled = this.options.label.connectorAllowed,
240  
241 < 0) {< w) {< x + (w /< n; j += 1) { chart = this.chart,
242 < 0) {< w) {< x + (w /< n; j += 1) { series,
243 < 0) {< w) {< x + (w /< n; j += 1) { points,
244 < 0) {< w) {< x + (w /< n; j += 1) { leastDistance = 16,
245 < 0) {< w) {< x + (w /< n; j += 1) { withinRange,
246 < 0) {< w) {< x + (w /< n; j += 1) { i,
247 < 0) {< w) {< x + (w /< n; j += 1) { j;
248  
249 < 0) {< w) {< x + (w /< n; j += 1) { function intersectRect(r1, r2) {
250 < 0) {< w) {< x + (w /< n; j += 1) { return !(r2.left > r1.right ||
251 < 0) {< w) {< x + (w /< n; j += 1) { r2.right < r1.left ||
252 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left || r2.top > r1.bottom ||
253 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left || r2.bottom < r1.top);
254 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top); }
255  
256 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top); /**
257 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top); * Get the weight in order to determine the ideal position. Larger distance to
258 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top); * other series gives more weight. Smaller distance to the actual point (connector points only)
259 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top); * gives more weight.
260 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top); */
261 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top); function getWeight(distToOthersSquared, distToPointSquared) {
262 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top); return distToOthersSquared - distToPointSquared;
263 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top); }
264  
265 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top); // First check for collision with existing labels
266 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top); for (i = 0; i < chart.boxesToAvoid.length; i += 1) {
267 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) { if (intersectRect(chart.boxesToAvoid[i], {
268 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) { left: x,
269 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) { right: x + bBox.width,
270 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) { top: y,
271 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) { bottom: y + bBox.height
272 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) { })) {
273 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) { return false;
274 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) { }
275 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) { }
276  
277 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) { // For each position, check if the lines around the label intersect with any of the
278 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) { // graphs
279 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) { for (i = 0; i < chart.series.length; i += 1) {
280 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) { series = chart.series[i];
281 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) { points = series.interpolatedPoints;
282 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) { if (series.visible && points) {
283 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) { for (j = 1; j < points.length; j += 1) {
284 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { // If any of the box sides intersect with the line, return
285 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { if (boxIntersectLine(
286 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { x,
287 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { y,
288 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { bBox.width,
289 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { bBox.height,
290 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { points[j - 1].chartX,
291 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { points[j - 1].chartY,
292 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { points[j].chartX,
293 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { points[j].chartY
294 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { )) {
295 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { return false;
296 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { }
297  
298 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { // But if it is too far away (a padded box doesn't intersect), also return
299 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { if (this === series && !withinRange && checkDistance) {
300 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { withinRange = boxIntersectLine(
301 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { x - leastDistance,
302 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { y - leastDistance,
303 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { bBox.width + 2 * leastDistance,
304 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { bBox.height + 2 * leastDistance,
305 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { points[j - 1].chartX,
306 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { points[j - 1].chartY,
307 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { points[j].chartX,
308 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { points[j].chartY
309 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { );
310 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { }
311  
312 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { // Find the squared distance from the center of the label
313 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { if (this !== series) {
314 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { distToOthersSquared = Math.min(
315 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { distToOthersSquared,
316 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { Math.pow(x + bBox.width / 2 - points[j].chartX, 2) + Math.pow(y + bBox.height / 2 - points[j].chartY, 2),
317 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { Math.pow(x - points[j].chartX, 2) + Math.pow(y - points[j].chartY, 2),
318 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { Math.pow(x + bBox.width - points[j].chartX, 2) + Math.pow(y - points[j].chartY, 2),
319 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { Math.pow(x + bBox.width - points[j].chartX, 2) + Math.pow(y + bBox.height - points[j].chartY, 2),
320 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { Math.pow(x - points[j].chartX, 2) + Math.pow(y + bBox.height - points[j].chartY, 2)
321 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { );
322 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { }
323 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { }
324  
325 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { // Do we need a connector?
326 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { if (connectorEnabled && this === series && ((checkDistance && !withinRange) ||
327 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) { distToOthersSquared < Math.pow(this.options.label.connectorNeighbourDistance, 2))) {
328 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) { for (j = 1; j < points.length; j += 1) {
329 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) { dist = Math.min(
330 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) { Math.pow(x + bBox.width / 2 - points[j].chartX, 2) + Math.pow(y + bBox.height / 2 - points[j].chartY, 2),
331 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) { Math.pow(x - points[j].chartX, 2) + Math.pow(y - points[j].chartY, 2),
332 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) { Math.pow(x + bBox.width - points[j].chartX, 2) + Math.pow(y - points[j].chartY, 2),
333 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) { Math.pow(x + bBox.width - points[j].chartX, 2) + Math.pow(y + bBox.height - points[j].chartY, 2),
334 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) { Math.pow(x - points[j].chartX, 2) + Math.pow(y + bBox.height - points[j].chartY, 2)
335 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) { );
336 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) { if (dist < distToPointSquared) {
337 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { distToPointSquared = dist;
338 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { connectorPoint = points[j];
339 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { }
340 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { }
341 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { withinRange = true;
342 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { }
343 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { }
344 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { }
345  
346 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { return !checkDistance || withinRange ? {
347 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { x: x,
348 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { y: y,
349 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { weight: getWeight(distToOthersSquared, connectorPoint ? distToPointSquared : 0),
350 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { connectorPoint: connectorPoint
351 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { } : false;
352  
353 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { };
354  
355 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { /**
356 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { * The main initiator method that runs on chart level after initiation and redraw. It runs in
357 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { * a timeout to prevent locking, and loops over all series, taking all series and labels into
358 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { * account when placing the labels.
359 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { */
360 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { Chart.prototype.drawSeriesLabels = function() {
361 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { var chart = this,
362 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { labelSeries = this.labelSeries;
363  
364 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { chart.boxesToAvoid = [];
365  
366 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { // Build the interpolated points
367 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { each(labelSeries, function(series) {
368 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { series.interpolatedPoints = series.getPointsOnGraph();
369  
370 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { each(series.options.label.boxesToAvoid || [], function(box) {
371 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { chart.boxesToAvoid.push(box);
372 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { });
373 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { });
374  
375 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { each(chart.series, function(series) {
376 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { var bBox,
377 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { x,
378 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { y,
379 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { results = [],
380 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { clearPoint,
381 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { i,
382 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { best,
383 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { inverted = chart.inverted,
384 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { paneLeft = inverted ? series.yAxis.pos : series.xAxis.pos,
385 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { paneTop = inverted ? series.xAxis.pos : series.yAxis.pos,
386 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { paneWidth = chart.inverted ? series.yAxis.len : series.xAxis.len,
387 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { paneHeight = chart.inverted ? series.xAxis.len : series.yAxis.len,
388 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { points = series.interpolatedPoints,
389 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { label = series.labelBySeries;
390  
391 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { function insidePane(x, y, bBox) {
392 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) { return x > paneLeft && x <= paneLeft + paneWidth - bBox.width &&
393 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width && y >= paneTop && y <= paneTop + paneHeight - bBox.height;
394 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; }
395  
396 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; if (series.visible && points) {
397 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; if (!label) {
398 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; series.labelBySeries = label = chart.renderer
399 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; .label(series.name, 0, -9999, 'connector')
400 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; .css(extend({
401 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; color: series.color
402 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; }, series.options.label.styles))
403 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; .attr({
404 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; padding: 0,
405 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; opacity: 0,
406 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; stroke: series.color,
407 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; 'stroke-width': 1
408 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; })
409 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; .add(series.group)
410 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; .animate({
411 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; opacity: 1
412 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; }, {
413 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; duration: 200
414 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; });
415 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; }
416  
417 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; bBox = label.getBBox();
418 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; bBox.width = Math.round(bBox.width);
419  
420 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; // Ideal positions are centered above or below a point on right side
421 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; // of chart
422 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; for (i = points.length - 1; i > 0; i -= 1) {
423  
424 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; // Right - up
425 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; x = points[i].chartX + labelDistance;
426 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; y = points[i].chartY - bBox.height - labelDistance;
427 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; if (insidePane(x, y, bBox)) {
428 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; best = series.checkClearPoint(
429 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; x,
430 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; y,
431 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; bBox
432 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; );
433 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; }
434 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; if (best) {
435 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; results.push(best);
436 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; }
437  
438 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; // Right - down
439 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; x = points[i].chartX + labelDistance;
440 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; y = points[i].chartY + labelDistance;
441 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; if (insidePane(x, y, bBox)) {
442 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; best = series.checkClearPoint(
443 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; x,
444 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; y,
445 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; bBox
446 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; );
447 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; }
448 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; if (best) {
449 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; results.push(best);
450 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; }
451  
452 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; // Left - down
453 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; x = points[i].chartX - bBox.width - labelDistance;
454 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; y = points[i].chartY + labelDistance;
455 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; if (insidePane(x, y, bBox)) {
456 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; best = series.checkClearPoint(
457 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; x,
458 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; y,
459 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; bBox
460 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; );
461 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; }
462 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; if (best) {
463 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; results.push(best);
464 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; }
465  
466 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; // Left - up
467 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; x = points[i].chartX - bBox.width - labelDistance;
468 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; y = points[i].chartY - bBox.height - labelDistance;
469 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; if (insidePane(x, y, bBox)) {
470 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; best = series.checkClearPoint(
471 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; x,
472 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; y,
473 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; bBox
474 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; );
475 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; }
476 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; if (best) {
477 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; results.push(best);
478 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; }
479  
480 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; }
481  
482 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; // Brute force, try all positions on the chart in a 16x16 grid
483 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; if (!results.length) {
484 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; for (x = paneLeft + paneWidth - bBox.width; x >= paneLeft; x -= 16) {
485 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height; for (y = paneTop; y < paneTop + paneHeight - bBox.height; y += 16) {
486 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { clearPoint = series.checkClearPoint(x, y, bBox, true);
487 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { if (clearPoint) {
488 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { results.push(clearPoint);
489 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { }
490 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { }
491 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { }
492 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { }
493  
494 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { if (results.length) {
495  
496 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { results.sort(function(a, b) {
497 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { return b.weight - a.weight;
498 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { });
499  
500 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { best = results[0];
501  
502 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { chart.boxesToAvoid.push({
503 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { left: best.x,
504 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { right: best.x + bBox.width,
505 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { top: best.y,
506 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { bottom: best.y + bBox.height
507 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { });
508  
509 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { // Move it if needed
510 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { if (Math.round(best.x) !== Math.round(label.x) ||
511 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { Math.round(best.y) !== Math.round(label.y)) {
512 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { series.labelBySeries
513 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { .attr({
514 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { opacity: 0,
515 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { x: best.x - paneLeft,
516 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { y: best.y - paneTop,
517 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { anchorX: best.connectorPoint && best.connectorPoint.plotX,
518 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { anchorY: best.connectorPoint && best.connectorPoint.plotY
519 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { })
520 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { .animate({
521 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { opacity: 1
522 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { });
523  
524 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { // Record closest point to stick to for sync redraw
525 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { series.options.kdNow = true;
526 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { series.buildKDTree();
527 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { var closest = series.searchPoint({
528 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { chartX: best.x,
529 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { chartY: best.y
530 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { }, true);
531 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { label.closest = [
532 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { closest,
533 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { best.x - paneLeft - closest.plotX,
534 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { best.y - paneTop - closest.plotY
535 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { ];
536  
537 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { }
538  
539 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { } else if (label) {
540 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { series.labelBySeries = label.destroy();
541 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { }
542 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { }
543 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { });
544 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { };
545  
546 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { /**
547 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { * Prepare drawing series labels
548 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { */
549 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { function drawLabels(proceed) {
550  
551 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { var chart = this,
552 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { delay = Math.max(
553 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { H.animObject(chart.renderer.globalAnimation).duration,
554 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { 250
555 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { ),
556 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { initial = !chart.hasRendered;
557  
558 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { proceed.apply(chart, [].slice.call(arguments, 1));
559  
560 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { chart.labelSeries = [];
561  
562 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { clearTimeout(chart.seriesLabelTimer);
563  
564 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { // Which series should have labels
565 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { each(chart.series, function(series) {
566 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { var options = series.options.label,
567 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { label = series.labelBySeries,
568 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { closest = label && label.closest;
569  
570 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { if (options.enabled && series.visible && (series.graph || series.area)) {
571 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { chart.labelSeries.push(series);
572  
573 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { // The labels are processing heavy, wait until the animation is done
574 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { if (initial) {
575 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { delay = Math.max(
576 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { delay,
577 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { H.animObject(series.options.animation).duration
578 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { );
579 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { }
580  
581 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { // Keep the position updated to the axis while redrawing
582 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { if (closest) {
583 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { if (closest[0].plotX !== undefined) {
584 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { label.animate({
585 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { x: closest[0].plotX + closest[1],
586 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { y: closest[0].plotY + closest[2]
587 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { });
588 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { } else {
589 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { label.attr({
590 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { opacity: 0
591 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { });
592 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { }
593 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { }
594 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { }
595 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { });
596  
597 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { chart.seriesLabelTimer = setTimeout(function() {
598 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { chart.drawSeriesLabels();
599 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { }, delay);
600  
601 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { }
602 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { wrap(Chart.prototype, 'render', drawLabels);
603 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { wrap(Chart.prototype, 'redraw', drawLabels);
604  
605 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) { }(Highcharts));
606 < 0) {< w) {< x + (w /< n; j += 1) {< r1.left ||< r1.top);< chart.boxesToAvoid.length; i += 1) {< chart.series.length; i += 1) {< points.length; j += 1) {< Math.pow(this.options.label.connectorNeighbourDistance, 2))) {< points.length; j += 1) {< distToPointSquared) {<= paneLeft + paneWidth - bBox.width &&<= paneTop + paneHeight - bBox.height;< paneTop + paneHeight - bBox.height; y += 16) {}));