example/public/ueditor/third-party/highcharts/highcharts.src.js
function (point, dataLabel, options, alignTo, isNew) {
		var chart = this.chart,
			inverted = chart.inverted,
			plotX = pick(point.plotX, -999),
			plotY = pick(point.plotY, -999),
			bBox = dataLabel.getBBox(),
			visible = this.visible && chart.isInsidePlot(point.plotX, point.plotY, inverted),
			alignAttr; // the final position;
				
		if (visible) {

			// The alignment box is a singular point
			alignTo = extend({
				x: inverted ? chart.plotWidth - plotY : plotX,
				y: mathRound(inverted ? chart.plotHeight - plotX : plotY),
				width: 0,
				height: 0
			}, alignTo);
			
			// Add the text size for alignment calculation
			extend(options, {
				width: bBox.width,
				height: bBox.height
			});

			// Allow a hook for changing alignment in the last moment, then do the alignment
			if (options.rotation) { // Fancy box alignment isn't supported for rotated text
				alignAttr = {
					align: options.align,
					x: alignTo.x + options.x + alignTo.width / 2,
					y: alignTo.y + options.y + alignTo.height / 2
				};
				dataLabel[isNew ? 'attr' : 'animate'](alignAttr);
			} else {
				dataLabel.align(options, null, alignTo);
				alignAttr = dataLabel.alignAttr;

				// Handle justify or crop
				if (pick(options.overflow, 'justify') === 'justify') { // docs: overflow: justify, also crop only applies when not justify
					this.justifyDataLabel(dataLabel, options, alignAttr, bBox, alignTo, isNew);
				
				} else if (pick(options.crop, true)) {
					// Now check that the data label is within the plot area
					visible = chart.isInsidePlot(alignAttr.x, alignAttr.y) && chart.isInsidePlot(alignAttr.x + bBox.width, alignAttr.y + bBox.height);
				
				}
			}		
		}

		// Show or hide based on the final aligned position
		if (!visible) {
			dataLabel.attr({ y: -999 });
		}
				
	}
function (point, dataLabel, options, alignTo, isNew) {
		var chart = this.chart,
			inverted = chart.inverted,
			plotX = pick(point.plotX, -999),
			plotY = pick(point.plotY, -999),
			bBox = dataLabel.getBBox(),
			visible = this.visible && chart.isInsidePlot(point.plotX, point.plotY, inverted),
			alignAttr; // the final position;
				
		if (visible) {

			// The alignment box is a singular point
			alignTo = extend({
				x: inverted ? chart.plotWidth - plotY : plotX,
				y: mathRound(inverted ? chart.plotHeight - plotX : plotY),
				width: 0,
				height: 0
			}, alignTo);
			
			// Add the text size for alignment calculation
			extend(options, {
				width: bBox.width,
				height: bBox.height
			});

			// Allow a hook for changing alignment in the last moment, then do the alignment
			if (options.rotation) { // Fancy box alignment isn't supported for rotated text
				alignAttr = {
					align: options.align,
					x: alignTo.x + options.x + alignTo.width / 2,
					y: alignTo.y + options.y + alignTo.height / 2
				};
				dataLabel[isNew ? 'attr' : 'animate'](alignAttr);
			} else {
				dataLabel.align(options, null, alignTo);
				alignAttr = dataLabel.alignAttr;

				// Handle justify or crop
				if (pick(options.overflow, 'justify') === 'justify') { // docs: overflow: justify, also crop only applies when not justify
					this.justifyDataLabel(dataLabel, options, alignAttr, bBox, alignTo, isNew);
				
				} else if (pick(options.crop, true)) {
					// Now check that the data label is within the plot area
					visible = chart.isInsidePlot(alignAttr.x, alignAttr.y) && chart.isInsidePlot(alignAttr.x + bBox.width, alignAttr.y + bBox.height);
				
				}
			}		
		}

		// Show or hide based on the final aligned position
		if (!visible) {
			dataLabel.attr({ y: -999 });
		}
				
	}
function ( point , dataLabel , options , alignTo , isNew ) { var chart = this . chart , inverted = chart . inverted , plotX = pick ( point . plotX , - 999 ) , plotY = pick ( point . plotY , - 999 ) , bBox = dataLabel . getBBox ( ) , visible = this . visible && chart . isInsidePlot ( point . plotX , point . plotY , inverted ) , alignAttr ; // the final position; if ( visible ) { // The alignment box is a singular point alignTo = extend ( { x : inverted ? chart . plotWidth - plotY : plotX , y : mathRound ( inverted ? chart . plotHeight - plotX : plotY ) , width : 0 , height : 0 } , alignTo ) ; // Add the text size for alignment calculation extend ( options , { width : bBox . width , height : bBox . height } ) ; // Allow a hook for changing alignment in the last moment, then do the alignment if ( options . rotation ) { // Fancy box alignment isn't supported for rotated text alignAttr = { align : options . align , x : alignTo . x + options . x + alignTo . width / 2 , y : alignTo . y + options . y + alignTo . height / 2 } ; dataLabel [ isNew ? 'attr' : 'animate' ] ( alignAttr ) ; } else { dataLabel . align ( options , null , alignTo ) ; alignAttr = dataLabel . alignAttr ; // Handle justify or crop if ( pick ( options . overflow , 'justify' ) === 'justify' ) { // docs: overflow: justify, also crop only applies when not justify this . justifyDataLabel ( dataLabel , options , alignAttr , bBox , alignTo , isNew ) ; } else if ( pick ( options . crop , true ) ) { // Now check that the data label is within the plot area visible = chart . isInsidePlot ( alignAttr . x , alignAttr . y ) && chart . isInsidePlot ( alignAttr . x + bBox . width , alignAttr . y + bBox . height ) ; } } } // Show or hide based on the final aligned position if ( ! visible ) { dataLabel . attr ( { y : - 999 } ) ; } }
Align each individual data label
Align each individual data label