@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.
185 lines (145 loc) • 6.19 kB
TypeScript
import { Component, Complex, NotifyPropertyChanges, INotifyPropertyChanged, Property } from '@syncfusion/ej2-base';import { isNullOrUndefined, Browser, ModuleDeclaration } from '@syncfusion/ej2-base';import { createElement, remove, Event, EmitType, EventHandler } from '@syncfusion/ej2-base';import { createSvg, RectOption, measureText, TextOption, renderTextElement } from '../smithchart/utils/helper';import { removeElement, textTrim } from '../smithchart/utils/helper';import { SmithchartRect, SmithchartSize } from '../smithchart/utils/utils';import { SmithchartMarginModel, SmithchartBorderModel, SmithchartFontModel } from '../smithchart/utils/utils-model';import { SmithchartMargin, SmithchartBorder, SmithchartFont } from '../smithchart/utils/utils';import { TitleModel, SubtitleModel } 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 { getThemeColor } from '../smithchart/model/theme';import { SmithchartLegendSettings } from '../smithchart/legend/legend';import { SmithchartAxis } from '../smithchart/axis/axis';import { Title } from '../smithchart/title/title';import { SmithchartSeriesModel } from '../smithchart/series/series-model';import { SmithchartSeries } from '../smithchart/series/series';import { AreaBounds } from '../smithchart/utils/area';import { AxisRender } from '../smithchart/axis/axisrender';import { SmithchartLegend } from '../smithchart/legend/legendrender';import { SeriesRender } from '../smithchart/series/seriesrender';import { Collection } from '@syncfusion/ej2-base';import { getSeriesColor } from '../smithchart/model/theme';import { SmithchartTheme, RenderType } from '../smithchart/utils/enum';import { Tooltip, SvgRenderer } from '@syncfusion/ej2-svg-base';import { ExportUtils } from '../smithchart/utils/export';import { SmithchartExportType } from '../smithchart/utils/enum';import { PdfPageOrientation } from '@syncfusion/ej2-pdf-export';import { titleRender, subtitleRender, load, loaded } from '../smithchart/model/constant';import { getElement } from '../common/utils/helper';
import {ComponentModel} from '@syncfusion/ej2-base';
/**
* Interface for a class Smithchart
*/
export interface SmithchartModel extends ComponentModel{
/**
* 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;
/**
* 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;
/**
* 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>;
}