igniteui-react-charts
Version:
Ignite UI React charting components for building rich data visualizations using TypeScript APIs.
242 lines (239 loc) • 6.83 kB
JavaScript
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);
}
}