@@ -204,7 +204,7 @@ export class DataLabel {
204204 this . isDataLabelShape ( argsData ) ;
205205 this . markerHeight = series . type === 'Bubble' ? ( point . regions [ 0 ] . height / 2 ) : this . markerHeight ;
206206 if ( argsData . template !== null ) {
207- this . createDataLabelTemplate ( element , series , dataLabel , point , argsData , i , this . chart . redraw ) ;
207+ this . createDataLabelTemplate ( element , series , dataLabel , point , argsData , i , this . chart . redraw , angle ) ;
208208 } else {
209209 if ( dataLabel . enableRotation ) {
210210 textSize = rotateTextSize ( dataLabel . font , argsData . text , angle , this . chart ,
@@ -213,7 +213,7 @@ export class DataLabel {
213213 else {
214214 textSize = measureText ( argsData . text , dataLabel . font , this . chart . themeStyle . datalabelFont ) ;
215215 }
216- const rect : Rect = this . calculateTextPosition ( point , series , textSize , dataLabel , i ) ;
216+ const rect : Rect = this . calculateTextPosition ( point , series , textSize , dataLabel , i , angle ) ;
217217 const actualRect : Rect = new Rect ( rect . x + clip . x , rect . y + clip . y , rect . width , rect . height ) ;
218218 //let notOverlapping: boolean;
219219 if ( dataLabel . enableRotation ) {
@@ -600,12 +600,13 @@ export class DataLabel {
600600 * @param {ITextRenderEventArgs } data - The event data associated with rendering the data label.
601601 * @param {number } labelIndex - The index of the data label.
602602 * @param {boolean } redraw - Specifies whether to redraw the template.
603+ * @param {number } angle - Specifies the angle of rotation.
603604 * @returns {void }
604605 */
605606 private createDataLabelTemplate (
606607 parentElement : HTMLElement , series : Series ,
607608 dataLabel : DataLabelSettingsModel , point : Points , data : ITextRenderEventArgs , labelIndex : number ,
608- redraw : boolean
609+ redraw : boolean , angle : number
609610 ) : void {
610611 this . margin = { left : 0 , right : 0 , bottom : 0 , top : 0 } ;
611612 const clip : Rect = series . clipRect ;
@@ -617,16 +618,16 @@ export class DataLabel {
617618 getFontStyle ( dataLabel . font , this . chart . themeStyle . datalabelFont ) + ';border:' + data . border . width + 'px solid ' + data . border . color + ';'
618619 } ) ,
619620 point . index , ( this . chart . enableHtmlSanitizer ? this . chart . sanitize ( data . template as string ) : data . template ) , this . chart , point , series , this . chart . element . id + '_DataLabel' , labelIndex ) ;
620- this . calculateTemplateLabelSize ( parentElement , childElement , point , series , dataLabel , labelIndex , clip , redraw ) ;
621+ this . calculateTemplateLabelSize ( parentElement , childElement , point , series , dataLabel , labelIndex , clip , redraw , null , angle ) ;
621622 }
622623 public calculateTemplateLabelSize (
623624 parentElement : HTMLElement , childElement : HTMLElement , point : Points , series : Series , dataLabel : DataLabelSettingsModel ,
624- labelIndex : number , clip : Rect , redraw : boolean , isReactCallback ?: boolean
625+ labelIndex : number , clip : Rect , redraw : boolean , isReactCallback ?: boolean , angle ?: number
625626 ) : void {
626627 const elementRect : ClientRect = measureElementRect ( childElement , redraw , isReactCallback ) ;
627628 const rect : Rect = this . calculateTextPosition (
628629 point , series , { width : elementRect . width , height : elementRect . height } ,
629- dataLabel , labelIndex
630+ dataLabel , labelIndex , angle
630631 ) ;
631632 const clipWidth : number = 0 ;
632633 const clipHeight : number = 0 ;
@@ -663,7 +664,7 @@ export class DataLabel {
663664 }
664665 private calculateTextPosition (
665666 point : Points , series : Series , textSize : Size ,
666- dataLabel : DataLabelSettingsModel , labelIndex : number
667+ dataLabel : DataLabelSettingsModel , labelIndex : number , angle : number
667668 ) : Rect {
668669 let labelRegion : Rect = labelIndex > 1 ? ( series . type === 'Candle' ) ? point . regions [ 1 ] : point . regions [ 0 ] : point . regions [ 0 ] ;
669670 if ( labelIndex > 1 && series . type === 'HiloOpenClose' ) {
@@ -708,7 +709,7 @@ export class DataLabel {
708709 }
709710 const rect : Rect = calculateRect ( location , textSize , this . margin ) ;
710711 // Checking the condition whether data Label has been exist the clip rect
711- if ( ! ( dataLabel . enableRotation === true && dataLabel . angle !== 0 ) &&
712+ if ( ! ( dataLabel . enableRotation === true && ( angle !== 0 ) ) &&
712713 ! ( ( rect . y > ( clipRect . y + clipRect . height ) ) || ( rect . x > ( clipRect . x + clipRect . width ) ) ||
713714 ( rect . x + rect . width < 0 ) || ( rect . y + rect . height < 0 ) ) ) {
714715 rect . x = rect . x < 0 ? ( series . type === 'StackingColumn' && ! this . inverted ? 0 : padding ) : rect . x ;
0 commit comments