@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.
368 lines (367 loc) • 10.6 kB
TypeScript
import { Component, INotifyPropertyChanged } from '@syncfusion/ej2-base';
import { ModuleDeclaration } from '@syncfusion/ej2-base';
import { EmitType } from '@syncfusion/ej2-base';
import { SmithchartRect, SmithchartSize } from '../smithchart/utils/utils';
import { SmithchartMarginModel, SmithchartBorderModel, SmithchartFontModel } from '../smithchart/utils/utils-model';
import { TitleModel } from '../smithchart/title/title-model';
import { SmithchartLegendSettingsModel } from '../smithchart/legend/legend-model';
import { SmithchartAxisModel } from '../smithchart/axis/axis-model';
import { TooltipRender } from '../smithchart/series/tooltip';
import { ISmithchartLoadedEventArgs, ISmithchartLoadEventArgs, ISmithchartThemeStyle } from '../smithchart/model/interface';
import { ISmithchartLegendRenderEventArgs, ITitleRenderEventArgs, ISubTitleRenderEventArgs } from '../smithchart/model/interface';
import { ISmithchartAxisLabelRenderEventArgs, ISmithchartPrintEventArgs, ISmithChartTooltipEventArgs } from '../smithchart/model/interface';
import { ISmithchartSeriesRenderEventArgs, ISmithchartAnimationCompleteEventArgs } from '../smithchart/model/interface';
import { ISmithchartTextRenderEventArgs } from '../smithchart/model/interface';
import { SmithchartSeriesModel } from '../smithchart/series/series-model';
import { SmithchartLegend } from '../smithchart/legend/legendrender';
import { SeriesRender } from '../smithchart/series/seriesrender';
import { SmithchartTheme, RenderType } from '../smithchart/utils/enum';
import { SvgRenderer } from '@syncfusion/ej2-svg-base';
import { SmithchartExportType } from '../smithchart/utils/enum';
import { PdfPageOrientation } from '@syncfusion/ej2-pdf-export';
import { SmithchartModel } from '../smithchart/smithchart-model';
/**
* Represents the Smithchart control.
* ```html
* <div id="smithchart"/>
* <script>
* var chartObj = new Smithchart({ isResponsive : true });
* chartObj.appendTo("#smithchart");
* </script>
* ```
*/
export declare class Smithchart extends Component<HTMLElement> implements INotifyPropertyChanged {
/**
* legend bounds
*/
legendBounds: SmithchartRect;
/**
* area bounds
*/
bounds: SmithchartRect;
/**
* `smithchartLegendModule` is used to add legend to the smithchart.
*/
smithchartLegendModule: SmithchartLegend;
/**
* `tooltipRenderModule` is used to add tooltip to the smithchart.
*/
tooltipRenderModule: TooltipRender;
/**
* render type of smithchart.
*
* @default Impedance
*/
renderType: RenderType;
/**
* width for smithchart.
*
* @default ''
*/
width: string;
/**
* height for smithchart.
*
* @default ''
*/
height: string;
/**
* theme for smithchart.
*
* @default Material
*/
theme: SmithchartTheme;
/** @private */
seriesrender: SeriesRender;
/** @private */
themeStyle: ISmithchartThemeStyle;
/** @private */
availableSize: SmithchartSize;
/**
* options for customizing margin.
*/
margin: SmithchartMarginModel;
/**
* options for customizing margin.
*/
font: SmithchartFontModel;
/**
* options for customizing border.
*/
border: SmithchartBorderModel;
/**
* options for customizing title.
*/
title: TitleModel;
/**
* options for customizing series.
*/
series: SmithchartSeriesModel[];
/**
* options for customizing legend.
*/
legendSettings: SmithchartLegendSettingsModel;
/**
* Options to configure the horizontal axis.
*/
horizontalAxis: SmithchartAxisModel;
/**
* Options to configure the vertical axis.
*/
radialAxis: SmithchartAxisModel;
/**
* svg renderer object.
*
* @private
*/
renderer: SvgRenderer;
/** @private */
svgObject: Element;
/** @private */
animateSeries: boolean;
/** @private */
seriesColors: string[];
chartArea: SmithchartRect;
/** @private */
isLegendClicked: boolean;
private previousTargetId;
private currentPointIndex;
private currentSeriesIndex;
private currentLegendIndex;
/** @private */
delayRedraw: boolean;
/**
* Resize the smithchart
*/
private resizeTo;
private isTouch;
private fadeoutTo;
/**
* The background color of the smithchart.
*/
background: string;
/**
* Spacing between elements.
*
* @default 10
*/
elementSpacing: number;
/**
* Spacing between elements.
*
* @default 1
*/
radius: number;
/**
* Triggers before the prints gets started.
*
* @event beforePrint
*/
beforePrint: EmitType<ISmithchartPrintEventArgs>;
/**
* Triggers after the animation completed.
*
* @event animationComplete
*/
animationComplete: EmitType<ISmithchartAnimationCompleteEventArgs>;
/**
* Triggers before smithchart rendered.
*
* @event load
*/
load: EmitType<ISmithchartLoadEventArgs>;
/**
* Triggers after smithchart rendered.
*
* @event loaded
*/
loaded: EmitType<ISmithchartLoadedEventArgs>;
/**
* Triggers before the legend is rendered.
*
* @event legendRender
*/
legendRender: EmitType<ISmithchartLegendRenderEventArgs>;
/**
* Triggers before the title is rendered.
*
* @event titleRender
*/
titleRender: EmitType<ITitleRenderEventArgs>;
/**
* Triggers before the sub-title is rendered.
*
* @event subtitleRender
*/
subtitleRender: EmitType<ISubTitleRenderEventArgs>;
/**
* Triggers before the datalabel text is rendered.
*
* @event textRender
*/
textRender: EmitType<ISmithchartTextRenderEventArgs>;
/**
* Triggers before the axis label is rendered.
*
* @event axisLabelRender
*/
axisLabelRender: EmitType<ISmithchartAxisLabelRenderEventArgs>;
/**
* Triggers before the series is rendered.
*
* @event seriesRender
*/
seriesRender: EmitType<ISmithchartSeriesRenderEventArgs>;
/**
* Triggers before the tooltip rendering.
*
* @event tooltipRender
*/
tooltipRender: EmitType<ISmithChartTooltipEventArgs>;
/**
* Get component name.
*
* @returns {string} - Returns the module name.
*/
getModuleName(): string;
/**
* Get the properties to be maintained in the persisted state.
*
* @private
* @returns {string} - The persisted state data.
*/
getPersistData(): string;
/**
* Method to create SVG element.
*/
private createChartSvg;
private renderTitle;
private renderSubtitle;
/**
* Render the smithchart border.
*
* @private
* @returns {void}
*/
private renderBorder;
/**
* Called internally if any of the property value changed.
*
* @private
* @param {SmithchartModel} newProp - The new properties for configuring the SmithChart.
* @returns {void}
*/
onPropertyChanged(newProp: SmithchartModel): void;
/**
* Constructor for creating the Smithchart widget.
*
* @param {SmithchartModel} options - The options for configuring the SmithChart.
* @param {string | HTMLElement} element - The element where the SmithChart will be created.
*/
constructor(options?: SmithchartModel, element?: string | HTMLElement);
/**
* Initialize the event handler.
*/
protected preRender(): void;
private initPrivateVariable;
/**
* Handles to set style for key event on the document.
*
* @param {target} target - element which currently focused.
* @returns {void}
* @private
*/
private setNavigationStyle;
/**
* Handles to remove style for key event on the document.
*
* @returns {void}
* @private
*/
private removeNavigationStyle;
/**
* To Initialize the control rendering.
*
* @returns {void}
*/
private setTheme;
protected render(): void;
private createSecondaryElement;
/**
* To destroy the widget.
*
* @returns {void}.
*/
destroy(): void;
/**
* To bind event handlers for smithchart.
*
* @returns {void}
*/
private wireEVents;
mouseMove(e: PointerEvent): void;
mouseEnd(e: PointerEvent): void;
/**
* To handle the click event for the smithchart.
*
* @param {Event | PointerEvent} e - The event.
* @returns {void}
*/
smithchartOnClick(e: Event | PointerEvent): void;
/**
* To unbind event handlers from smithchart.
*
* @returns {void}
*/
private unWireEVents;
print(id?: string[] | string | Element): void;
/**
* Handles the export method for the smith chart control.
*
* @param {SmithchartExportType} type - The smith chart export type.
* @param {string} fileName - The filename of the exported smith chart.
* @param {PdfPageOrientation} orientation - The page orientation for PDF export.
* @returns {void}
*/
export(type: SmithchartExportType, fileName: string, orientation?: PdfPageOrientation): void;
/**
* Handles the keyboard onkeydown event on the smith chart.
*
* @param {KeyboardEvent} e - The keyboard event.
* @returns {boolean} - Indicates whether the keydown event is handled.
* @private
*/
chartKeyDown(e: KeyboardEvent): boolean;
/**
* Handles the keyboard keyup event on the smith chart.
*
* @param {KeyboardEvent} e - The keyboard event.
* @returns {boolean} - Indicates whether the keyup event is handled.
* @private
*/
chartKeyUp(e: KeyboardEvent): boolean;
private smithchartKeyboardNavigations;
setTabIndex(previousElement: HTMLElement, currentElement: HTMLElement): void;
private getActualIndex;
private focusChild;
/**
* To handle the window resize event on smithchart.
*
* @returns {boolean} - Indicates whether the resize event is handled.
*/
smithchartOnResize(): boolean;
/**
* To provide the array of modules needed for smithchart rendering.
*
* @private
* @returns {ModuleDeclaration[]} - The array of required modules.
*/
requiredModules(): ModuleDeclaration[];
/**
* To Remove the SVG.
*
* @private
* @returns {void}
*/
removeSvg(): void;
}