UNPKG

igniteui-react-charts

Version:

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

347 lines (342 loc) 10.2 kB
import { IgrCategoryAxisBase } from "./igr-category-axis-base"; import { IgrNumericYAxis } from "./igr-numeric-y-axis"; import { IgrRangeCategorySeries } from "./igr-range-category-series"; import { toPoint, fromPoint } from "igniteui-react-core"; /** * Base class for ranged category series with a category X-axis and a numeric Y-axis. * * Instantiate HorizontalAnchoredCategorySeries * * ```ts * <IgrDataChart * dataSource={this.state.dataSource} > * * <IgrCategoryXAxis name="xAxis" /> * <IgrNumericYAxis name="yAxis" /> * * <IgrColumnSeries * name="series1" * xAxisName="xAxis" * yAxisName="yAxis" * valueMemberPath="Value" /> * </IgrDataChart> * ``` * * ```ts * this.columnSeries1 = new IgrColumnSeries({ name: "colSeries1" }); * this.columnSeries1.dataSource = this.categoryData; * this.columnSeries1.xAxis = this.categoryXAxis; * this.columnSeries1.yAxis = this.numericYAxis; * this.columnSeries1.xAxisName = "categoryXAxis"; * this.columnSeries1.yAxisName = "numericYAxis"; * this.columnSeries1.valueMemberPath = "USA"; * ``` */ export class IgrHorizontalRangeCategorySeries extends IgrRangeCategorySeries { /** * @hidden */ get i() { return this._implementation; } constructor(props) { super(props); this._xAxisName = null; this._yAxisName = null; } /** * Gets or sets the effective x-axis for the current CategorySeries object. * * Instantiate xAxis * * ```ts * this.columnSeries1 = new IgrColumnSeries({ name: "colSeries1" }); * this.columnSeries1.dataSource = this.categoryData; * this.columnSeries1.xAxis = this.categoryXAxis; * this.columnSeries1.yAxis = this.numericYAxis; * this.columnSeries1.xAxisName = "categoryXAxis"; * this.columnSeries1.yAxisName = "numericYAxis"; * this.columnSeries1.valueMemberPath = "USA"; * ``` * * ```ts * <IgrDataChart * dataSource={this.state.dataSource} > * * <IgrCategoryXAxis name="xAxis" /> * <IgrNumericYAxis name="yAxis" /> * * <IgrColumnSeries * name="series1" * xAxisName="xAxis" * yAxisName="yAxis" * valueMemberPath="Value" /> * </IgrDataChart> * ``` */ get xAxis() { const r = this.i.xAxis; if (r == null) { return null; } if (!r.externalObject) { let e = IgrCategoryAxisBase._createFromInternal(r); if (e) { e._implementation = r; } r.externalObject = e; } return r.externalObject; } set xAxis(v) { if (v != null && this._stylingContainer && v._styling) v._styling(this._stylingContainer, this, this); v == null ? this.i.xAxis = null : this.i.xAxis = v.i; } /** * Gets or sets the name to use to resolve xAxis from markup. */ get xAxisName() { return this._xAxisName; } set xAxisName(v) { this._xAxisName = v; } /** * Gets or sets the effective y-axis for the current CategorySeries object. * * Instantiate yAxis * * ```ts * <IgrDataChart * dataSource={this.state.dataSource} > * * <IgrCategoryXAxis name="xAxis" /> * <IgrNumericYAxis name="yAxis" /> * * <IgrColumnSeries * name="series1" * xAxisName="xAxis" * yAxisName="yAxis" * valueMemberPath="Value" /> * </IgrDataChart> * ``` * * ```ts * this.columnSeries1 = new IgrColumnSeries({ name: "colSeries1" }); * this.columnSeries1.dataSource = this.categoryData; * this.columnSeries1.xAxis = this.categoryXAxis; * this.columnSeries1.yAxis = this.numericYAxis; * this.columnSeries1.xAxisName = "categoryXAxis"; * this.columnSeries1.yAxisName = "numericYAxis"; * this.columnSeries1.valueMemberPath = "USA"; * ``` */ get yAxis() { const r = this.i.yAxis; if (r == null) { return null; } if (!r.externalObject) { let e = IgrNumericYAxis._createFromInternal(r); if (e) { e._implementation = r; } r.externalObject = e; } return r.externalObject; } set yAxis(v) { if (v != null && this._stylingContainer && v._styling) v._styling(this._stylingContainer, this, this); v == null ? this.i.yAxis = null : this.i.yAxis = v.i; } /** * Gets or sets the name to use to resolve yAxis from markup. */ get yAxisName() { return this._yAxisName; } set yAxisName(v) { this._yAxisName = v; } /** * Checks if this series is a range series * * You can use the `IsRange` to get the current series is a range type series. * * <!-- Angular JS --> * * ```ts * var r = this.series.isRange; * ``` */ get isRange() { return this.i.fv; } /** * Gets or sets the label displayed before series' Low value in the Data Legend. */ get lowMemberAsLegendLabel() { return this.i.ab1; } set lowMemberAsLegendLabel(v) { this.i.ab1 = v; } /** * Gets or sets the label displayed before series' High value in the Data Legend. */ get highMemberAsLegendLabel() { return this.i.abx; } set highMemberAsLegendLabel(v) { this.i.abx = v; } /** * Gets or sets the unit displayed after series' Low value in the Data Legend. */ get lowMemberAsLegendUnit() { return this.i.ab3; } set lowMemberAsLegendUnit(v) { this.i.ab3 = v; } /** * Gets or sets the unit displayed after series' High value in the Data Legend. */ get highMemberAsLegendUnit() { return this.i.abz; } set highMemberAsLegendUnit(v) { this.i.abz = v; } bindAxes(axes) { super.bindAxes(axes); for (let i = 0; i < axes.length; i++) { if (this.xAxisName && this.xAxisName.length > 0 && axes[i].name == this.xAxisName) { this.xAxis = axes[i]; } } for (let i = 0; i < axes.length; i++) { if (this.yAxisName && this.yAxisName.length > 0 && axes[i].name == this.yAxisName) { this.yAxis = axes[i]; } } } findByName(name) { var baseResult = super.findByName(name); if (baseResult) { return baseResult; } if (this.xAxis && this.xAxis.name && this.xAxis.name == name) { return this.xAxis; } if (this.yAxis && this.yAxis.name && this.yAxis.name == name) { return this.yAxis; } return null; } _styling(container, component, parent) { super._styling(container, component, parent); this._inStyling = true; if (this.xAxis && this.xAxis._styling) { this.xAxis._styling(container, component, this); } if (this.yAxis && this.yAxis._styling) { this.yAxis._styling(container, component, this); } this._inStyling = false; } /** * Returns the offset value for this series if grouped on a category axis. * * You can use the `GetOffsetValue` to get the offset value for this series if grouped on a category axis. * * <!-- Angular JS --> * * var g = series.getOffsetValue(); * * <!-- Ignite JS --> * * N/A */ getOffsetValue() { let iv = this.i.getOffsetValue(); return (iv); } /** * Returns the width of the category grouping this series is in. * * You can use the `GetCategoryWidth` to get the width of the category grouping a series is in. * * <!-- Angular JS --> * * var x = this.financialSeries.CanUseAsXAxis(this.xAxis); * * <!-- Ignite JS --> * * N/A */ getCategoryWidth() { let iv = this.i.getCategoryWidth(); return (iv); } getNextOrExactIndex(world, skipUnknowns) { let iv = this.i.kc(toPoint(world), skipUnknowns); return (iv); } getPreviousOrExactIndex(world, skipUnknowns) { let iv = this.i.ke(toPoint(world), skipUnknowns); return (iv); } getSeriesValue(world, useInterpolation, skipUnknowns) { let iv = this.i.i8(toPoint(world), useInterpolation, skipUnknowns); return (iv); } getSeriesLowValue(world, useInterpolation, skipUnknowns) { let iv = this.i.i6(toPoint(world), useInterpolation, skipUnknowns); return (iv); } getSeriesHighValue(world, useInterpolation, skipUnknowns) { let iv = this.i.i4(toPoint(world), useInterpolation, skipUnknowns); return (iv); } getSeriesHighValuePosition(world, useInterpolation, skipUnknowns) { let iv = this.i.wj(toPoint(world), useInterpolation, skipUnknowns); return fromPoint(iv); } getSeriesLowValuePosition(world, useInterpolation, skipUnknowns) { let iv = this.i.wl(toPoint(world), useInterpolation, skipUnknowns); return fromPoint(iv); } getSeriesValuePosition(world, useInterpolation, skipUnknowns) { let iv = this.i.wn(toPoint(world), useInterpolation, skipUnknowns); return fromPoint(iv); } /** * Determine if object can be used as YAxis * @param axis * The object to check * * You can use the `CanUseAsYAxis` method to determine if object can be used as YAxis */ canUseAsYAxis(axis) { let iv = this.i.abw(axis); return (iv); } /** * Determine if object can be used as XAxis * @param axis * The object to check * * You can use the `CanUseAsXAxis` method to determine if object can be used as XAxis * * <!-- Angular JS --> * * var x = this.financialSeries.CanUseAsXAxis(this.xAxis); */ canUseAsXAxis(axis) { let iv = this.i.abv(axis); return (iv); } }