ZoomCharts Documentation

Version: 1.21.20 (2026-09-08)
Switch to Version 2.0 (BETA)

ZoomCharts.Configuration.BaseLabelLayoutBase

Methods

addLine: (g: CanvasRenderingContext2D, label: BaseLabel, line: string, row: number, addEllipsis: boolean): void

Add rows, recalculate offsets, add ellipsis if necessary

Parameters
g: CanvasRenderingContext2D
label: BaseLabel
line: string
row: number
addEllipsis: boolean
adjustLabelPositionForBounds: (label: BaseLayoutableLabel, left: number, right: number): void

Adjusts label position to ensure it stays within screen boundaries after ellipsis is applied.

Parameters
left: number
right: number
applyEllipsisToRows: (g: CanvasRenderingContext2D, label: BaseLabel, maxWidth: number): BaseLabelApplyEllipsisToRowsResult

Apply ellipsis to label rows that exceed the specified maxWidth. This method modifies the label's rows in-place to truncate text with ellipsis.

Parameters
g: CanvasRenderingContext2D
label: BaseLabel
maxWidth: number
Return value
borderRadiusInset: (borderRadius: number, halfHeight: number, padding: number): number

Horizontal space the rounded corners on one side of a label background take away from its text. A label that must fit its text between both of its sides therefore needs twice this.

Parameters
borderRadius: number
halfHeight: number
padding: number
Return value
Data type: number
borderRadiusInsetExact: (borderRadius: number, halfHeight: number, padding: number): number

Exact-geometry counterpart to borderRadiusInset. padding is the label's total padding, which both sets how far the text sits from the box edge and supplies part of the clearance the corner needs.

Parameters
borderRadius: number
halfHeight: number
padding: number
Return value
Data type: number
fitLabelInLines: (g: CanvasRenderingContext2D, label: BaseLabel, x: number, y: number, align: string, noSpaceAlign: string, leftRightFromXY: (x: number, y: number) => [number, number]): number

places label

Parameters
g: CanvasRenderingContext2D
label: BaseLabel
align: string
noSpaceAlign: string
leftRightFromXY: (x: number, y: number) => [number, number]
Parameters
Return value
Data type: [number, number]
Return value
Data type: number
fitLabelInRect: (g: CanvasRenderingContext2D, label: BaseLabel, locationFromHeight: BaseLabelLocationDelegate, storePosition?: boolean): number

places label locationFromHeight(halfHeight) -> [centerX, centerY, directionX, directionY, width]

Parameters
g: CanvasRenderingContext2D
label: BaseLabel
locationFromHeight: BaseLabelLocationDelegate
storePosition: boolean
Return value
Data type: number
fitLabelInRectWithDetails: (g: CanvasRenderingContext2D, label: BaseLabel, locationFromHeight: BaseLabelLocationDelegate, storePosition?: boolean, forceAlign?: "center" | "right" | "left", preserveLeadingWhitespace?: boolean): BaseLabelFitInRectResult
Parameters
g: CanvasRenderingContext2D
label: BaseLabel
locationFromHeight: BaseLabelLocationDelegate
storePosition: boolean
forceAlign: "center" | "right" | "left"
preserveLeadingWhitespace: boolean
Return value
getAvailableWidth: (label: BaseLabel, locationFromHeight: BaseLabelLocationDelegate): number
Parameters
label: BaseLabel
locationFromHeight: BaseLabelLocationDelegate
Return value
Data type: number
getFormatedText: (g: CanvasRenderingContext2D, label: BaseLabel, availableWidth: number, availableHeight: number, locationFromHeight: BaseLabelLocationDelegate2, defaultLabelText: string): void

Format full or partial multi line label text based on available space. It will add elipsis to any row if it does not fit in available space.

Parameters
g: CanvasRenderingContext2D
label: BaseLabel
availableWidth: number
availableHeight: number
locationFromHeight: BaseLabelLocationDelegate2
defaultLabelText: string
getIncludingPart: (g: CanvasRenderingContext2D, textStyle: BaseSettingsTextStyle, t: string, subText: string, availableWidth: number, subWidth: number): string

Binary split words and measure whether it exceeds available width.

Parameters
g: CanvasRenderingContext2D
subText: string
availableWidth: number
subWidth: number
Return value
Data type: string

word part or full word that fits in available width.

splitWordsToLines: (words: Array<BaseLabelWord>, breaks: Array<number>, lineCount: number, availableWidthFunc: (lineNo: number) => number): { prop: number; actualWidthForLines: Array<number>; positions: Array<number>; }
Parameters
breaks: Array<number>
lineCount: number
availableWidthFunc: (lineNo: number) => number
Parameters
lineNo: number
Return value
Data type: number
Return value
Data type: anonymous type
Properties
prop: number
actualWidthForLines: Array<number>
positions: Array<number>
stringsByFont: (words: Array<BaseLabelWord>, bestLineBreaks: Array<number>): { subLines: Array<BaseLabelLine>; rowWidths: Array<number>; }
Parameters
bestLineBreaks: Array<number>
Return value
Data type: anonymous type
Properties
subLines: Array<BaseLabelLine>
rowWidths: Array<number>
styleTagParser: (g: CanvasRenderingContext2D, label: BaseLabel, preserveLeadingWhitespace?: boolean): BaseLabelTagParserResult
Parameters
g: CanvasRenderingContext2D
label: BaseLabel
preserveLeadingWhitespace: boolean
Return value
styleTagParser2: (g: CanvasRenderingContext2D, text: string, textStyle: BaseSettingsTextStyle, preserveLeadingWhitespace?: boolean): BaseLabelTagParserResult
Parameters
g: CanvasRenderingContext2D
text: string
preserveLeadingWhitespace: boolean
Return value
totalPadding: (style: BaseSettingsLabelStyle): number

Calculates the total padding of the given label that includes the border width.

Parameters
Return value
Data type: number

Properties

This type does not define any properties.
X