@syncfusion/ej2-charts
Version:
Feature-rich chart control with built-in support for over 25 chart types, technical indictors, trendline, zooming, tooltip, selection, crosshair and trackball.
168 lines (167 loc) • 5.91 kB
TypeScript
/**
* MultiLevel Labels src
*/
import { Chart } from '../chart';
import { Axis } from '../axis/axis';
import { FontModel } from '../../common/model/base-model';
import { TextOption, Rect } from '@syncfusion/ej2-svg-base';
import { IAxisMultiLabelRenderEventArgs, IMultiLevelLabelClickEventArgs } from '../../chart/model/chart-interface';
import { Alignment } from '../../common/utils/enum';
/**
* The `MultiLevelLabel` module is used to render multi-level labels in charts.
*/
export declare class MultiLevelLabel {
/** @private */
chart: Chart;
/** @private */
xAxisPrevHeight: number[];
/** @private */
xAxisMultiLabelHeight: number[];
/** @private */
yAxisPrevHeight: number[];
/** @private */
yAxisMultiLabelHeight: number[];
/** @private */
multiElements: Element;
/** @private */
labelElement: Element;
/** @private */
multiLevelLabelRectXRegion: Rect[];
/** @private */
xLabelCollection: TextOption[];
/**
* Constructor for the logerithmic module.
*
* @private
* @param {Chart} chart - Specifies the chart.
*/
constructor(chart: Chart);
/**
* Binding events for multi level module.
*
* @returns {void}
*/
private addEventListener;
/**
* Gets the height of multilevel labels for the axis.
*
* @private
* @param {Axis} axis - The axis.
* @returns {void}
*/
getMultilevelLabelsHeight(axis: Axis): void;
/**
* Renders the multilevel labels for the X-axis.
*
* @private
* @param {Axis} axis - The X-axis.
* @param {number} index - The index of the axis.
* @param {Element} parent - The parent element to render the multilevel labels.
* @param {Rect} axisRect - The axis rectangle.
* @returns {void}
*/
renderXAxisMultiLevelLabels(axis: Axis, index: number, parent: Element, axisRect: Rect): void;
/**
* Renders the border for the X-axis labels.
*
* @private
* @param {number} labelIndex - The index of the label.
* @param {number} gap - The gap between labels.
* @param {Axis} axis - The X-axis.
* @param {number} startX - The starting X-coordinate.
* @param {number} startY - The starting Y-coordinate.
* @param {Size} labelSize - The size of the label.
* @param {TextOption} textOptions - The text options for the label.
* @param {Rect} axisRect - The axis rectangle.
* @param {Alignment} alignment - The alignment of the label.
* @param {string} path - The SVG path.
* @param {boolean} isOutside - Indicates if the label is outside the axis.
* @param {boolean} opposedPosition - Indicates if the axis is in the opposed position.
* @param {number} categoryIndex - The index of the category.
* @returns {string} - The SVG path.
*/
private renderXAxisLabelBorder;
/**
* Renders the multi-level labels for the Y-axis.
*
* @private
* @param {Axis} axis - The Y-axis.
* @param {number} index - The index of the axis.
* @param {Element} parent - The parent element to which the labels are appended.
* @param {Rect} rect - The axis rectangle.
* @returns {void}
*/
renderYAxisMultiLevelLabels(axis: Axis, index: number, parent: Element, rect: Rect): void;
/**
* Renders the border for the Y-axis labels.
*
* @param {number} labelIndex - The index of the label.
* @param {number} gap - The gap between labels.
* @param {Axis} axis - The Y-axis.
* @param {number} endY - The end Y-coordinate.
* @param {number} startX - The start X-coordinate.
* @param {number} startY - The start Y-coordinate.
* @param {Size} labelSize - The size of the label.
* @param {TextOption} textOptions - The text options for the label.
* @param {Rect} rect - The axis rectangle.
* @param {Alignment} alignment - The alignment of the label.
* @param {string} path - The path for rendering.
* @param {boolean} isOutside - Indicates whether the label is outside.
* @param {boolean} opposedPosition - Indicates whether the label position is opposed.
* @param {number} categoryIndex - The index of the category.
* @returns {string} - The path for rendering the label border.
*/
private renderYAxisLabelBorder;
/**
* create cliprect
*
* @returns {void}
* @private
*/
createClipRect(x: number, y: number, height: number, width: number, clipId: string, axisId: string): void;
/**
* create borer element
*
* @returns {void}
* @private
*/
createBorderElement(borderIndex: number, axisIndex: number, axis: Axis, path: string, pointIndex?: number): void;
/**
* Triggers the event.
*
* @returns {void}
* @private
*/
triggerMultiLabelRender(axis: Axis, text: string, textStyle: FontModel, textAlignment: Alignment, customAttributes: object): IAxisMultiLabelRenderEventArgs;
/**
* Handles the click event for multi-level labels.
*
* @private
* @param {string} labelIndex - The index of the clicked label.
* @param {number} axisIndex - The index of the axis.
* @returns {IMultiLevelLabelClickEventArgs} - The event arguments for multi-level label click.
*/
MultiLevelLabelClick(labelIndex: string, axisIndex: number): IMultiLevelLabelClickEventArgs;
/**
* To click the multi level label
*
* @param {Event} event - The click event.
* @returns {void}
* @private
*/
click(event: Event): void;
/**
* To get the module name for `MultiLevelLabel`.
*
* @private
* @returns {string} - Returns the module name.
*/
getModuleName(): string;
/**
* To destroy the `MultiLevelLabel` module.
*
* @private
* @returns {void}
*/
destroy(): void;
}