UNPKG

igniteui-react-charts

Version:

Ignite UI React charting components for building rich data visualizations using TypeScript APIs.

242 lines (239 loc) 6.83 kB
import { IgrHorizontalAnchoredCategorySeries } from "./igr-horizontal-anchored-category-series"; import { WaterfallSeries } from "./WaterfallSeries"; import { brushToString, stringToBrush, toPoint, fromRect } from "igniteui-react-core"; /** * Represents a IgxDataChartComponent waterfall column series. * * `WaterfallSeries` belongs to a group of `CategorySeries` and it is rendered using a collection of vertical columns that show the difference between consecutive data points. * * ```ts * <IgrDataChart * dataSource={this.state.dataSource} > * * <IgrCategoryXAxis name="xAxis" /> * <IgrNumericYAxis name="yAxis" /> * * <IgrWaterfallSeries * name="series1" * xAxisName="xAxis" * yAxisName="yAxis" * valueMemberPath="Value"/> * </IgrDataChart> * ``` * * ```ts * let series= new IgrWaterfallSeries({name: "series"}); * series.xAxis = this.xAxis; * series.yAxis = this.yAxis; * series.valueMemberPath = "value"; * this.chart.series.add(series); * ``` */ export class IgrWaterfallSeries extends IgrHorizontalAnchoredCategorySeries { createImplementation() { return new WaterfallSeries(); } /** * @hidden */ get i() { return this._implementation; } constructor(props) { super(props); } /** * Gets whether the current series shows a waterfall column shape. */ get isWaterfall() { return this.i.f7; } /** * Overridden by derived series classes to indicate when marker-less display is preferred or not. */ get isMarkerlessDisplayPreferred() { return this.i.fm; } /** * Gets whether the series is financial waterfall */ get isFinancialWaterfall() { return this.i.fc; } /** * Overridden by derived series classes to indicate when negative colors are supported or not. */ get isNegativeColorSupported() { return this.i.fn; } /** * Gets or sets the brush to use for negative portions of the series. * * Gets or sets the color used to draw negative declines in values for this `WaterfallSeries`. * * ```ts * <IgrDataChart * dataSource={this.state.dataSource} > * * <IgrCategoryXAxis name="xAxis" /> * <IgrNumericYAxis name="yAxis" /> * * <IgrWaterfallSeries * name="series1" * xAxisName="xAxis" * yAxisName="yAxis" * negativeBrush="#ff0000" * valueMemberPath="Value"/> * </IgrDataChart> * ``` * * ```ts * series.xAxis = this.xAxis; * series.yAxis = this.yAxis; * series.valueMemberPath = "value"; * series.negativeBrush = "#ff0000"; * this.chart.series.add(series); * ``` */ get negativeBrush() { return brushToString(this.i.adk); } set negativeBrush(v) { this.i.adk = stringToBrush(v); } /** * Gets or sets the x-radius of the ellipse that is used to round the corners of the column. * * Gets or sets the amount to round corners in the direction of the X axis in this series. * * ```ts * <IgrDataChart * dataSource={this.state.dataSource} > * * <IgrCategoryXAxis name="xAxis" /> * <IgrNumericYAxis name="yAxis" /> * * <IgrWaterfallSeries * name="series1" * xAxisName="xAxis" * yAxisName="yAxis" * radiusX="15" * radiusY="15" * valueMemberPath="Value"/> * </IgrDataChart> * ``` * * ```ts * series.xAxis = this.xAxis; * series.yAxis = this.yAxis; * series.valueMemberPath = "value"; * series.radiusX = 15; * series.radiusY = 15; * this.chart.series.add(series); * ``` */ get radiusX() { return this.i.ada; } set radiusX(v) { this.i.ada = +v; } /** * Gets or sets the y-radius of the ellipse that is used to round the corners of the column. * * Gets or sets the amount to round corners in the direction of the Y axis in this series. * * ```ts * <IgrDataChart * dataSource={this.state.dataSource} > * * <IgrCategoryXAxis name="xAxis" /> * <IgrNumericYAxis name="yAxis" /> * * <IgrWaterfallSeries * name="series1" * xAxisName="xAxis" * yAxisName="yAxis" * radiusX="15" * radiusY="15" * valueMemberPath="Value"/> * </IgrDataChart> * ``` * * ```ts * series.xAxis = this.xAxis; * series.yAxis = this.yAxis; * series.valueMemberPath = "value"; * series.radiusX = 15; * series.radiusY = 15; * this.chart.series.add(series); * ``` */ get radiusY() { return this.i.adb; } set radiusY(v) { this.i.adb = +v; } /** * Brush to use for outlining negative elements in the waterfall series. * * Gets or sets the color used to draw borders of negative declines in values for this `WaterfallSeries`. * * ```ts * <IgrDataChart * dataSource={this.state.dataSource} > * * <IgrCategoryXAxis name="xAxis" /> * <IgrNumericYAxis name="yAxis" /> * * <IgrWaterfallSeries * name="series1" * xAxisName="xAxis" * yAxisName="yAxis" * negativeOutline="#ff0000" * valueMemberPath="Value"/> * </IgrDataChart> * ``` * * ```ts * series.xAxis = this.xAxis; * series.yAxis = this.yAxis; * series.valueMemberPath = "value"; * series.negativeOutline = "#ff0000"; * this.chart.series.add(series); * ``` */ get negativeOutline() { return brushToString(this.i.adl); } set negativeOutline(v) { this.i.adl = stringToBrush(v); } setNegativeColors(negativeBrush, negativeOutline) { this.i.sc(stringToBrush(negativeBrush), stringToBrush(negativeOutline)); } /** * If possible, will return the best available value bounding box within the series that has the best value match for the world position provided. * @param world * The world coordinate for which to get a value bounding box for * * Returns a bounding box `Rect` for a data value given a `Point`. */ getSeriesValueBoundingBox(world) { let iv = this.i.wy(toPoint(world)); return fromRect(iv); } /** * For a category plotted series, returns the current width of the items within the categories. This only returns a value if the items have some form of width (e.g. columns, bars, etc.) otherwise 0 is returned. * * Returns the width of items in the `WaterfallSeries`. * * ```ts * let itemSpan: number = series.GetItemSpan(); * ``` */ getItemSpan() { let iv = this.i.iy(); return (iv); } }