UNPKG

igniteui-react-charts

Version:

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

465 lines (458 loc) 14.4 kB
import { delegateCombine, delegateRemove } from "igniteui-react-core"; import { IgrNumericAngleAxis } from "./igr-numeric-angle-axis"; import { IgrNumericRadiusAxis } from "./igr-numeric-radius-axis"; import { TrendLineType_$type } from "igniteui-react-core"; import { ScatterItemSearchMode_$type } from "./ScatterItemSearchMode"; import { IgrAssigningPolarStyleEventArgs } from "./igr-assigning-polar-style-event-args"; import { IgrAssigningPolarMarkerStyleEventArgs } from "./igr-assigning-polar-marker-style-event-args"; import { IgrMarkerSeries } from "./igr-marker-series"; import { ensureBool, ensureEnum, brushToString, stringToBrush, toDoubleCollection, fromDoubleCollection, toPoint, fromPoint } from "igniteui-react-core"; /** * Represents the base class from which all IgxDataChartComponent polar series are derived. */ export class IgrPolarBase extends IgrMarkerSeries { /** * @hidden */ get i() { return this._implementation; } constructor(props) { super(props); this._angleAxisName = null; this._radiusAxisName = null; this._assigningPolarStyle = null; this._assigningPolarStyle_wrapped = null; this._assigningPolarMarkerStyle = null; this._assigningPolarMarkerStyle_wrapped = null; } /** * Checks if this series is a polar series */ get isPolar() { return this.i.fq; } /** * Gets or sets the path to use to find the angle values for the series. */ get angleMemberPath() { return this.i.aau; } set angleMemberPath(v) { this.i.aau = v; } /** * Gets or sets the path to use to get the radius values for the series. */ get radiusMemberPath() { return this.i.abc; } set radiusMemberPath(v) { this.i.abc = v; } /** * Gets or sets the highlighted radius value mapping property for the current series object. */ get highlightedRadiusMemberPath() { return this.i.aaz; } set highlightedRadiusMemberPath(v) { this.i.aaz = v; } /** * Gets or sets the highlighted angle value mapping property for the current series object. */ get highlightedAngleMemberPath() { return this.i.aax; } set highlightedAngleMemberPath(v) { this.i.aax = v; } /** * Gets the effective angle axis for the current series object. */ get angleAxis() { const r = this.i.y4; if (r == null) { return null; } if (!r.externalObject) { let e = IgrNumericAngleAxis._createFromInternal(r); if (e) { e._implementation = r; } r.externalObject = e; } return r.externalObject; } set angleAxis(v) { if (v != null && this._stylingContainer && v._styling) v._styling(this._stylingContainer, this, this); v == null ? this.i.y4 = null : this.i.y4 = v.i; } /** * Gets or sets the name to use to resolve angleAxis from markup. */ get angleAxisName() { return this._angleAxisName; } set angleAxisName(v) { this._angleAxisName = v; } /** * Gets the effective radius axis for the current series object. */ get radiusAxis() { const r = this.i.y5; if (r == null) { return null; } if (!r.externalObject) { let e = IgrNumericRadiusAxis._createFromInternal(r); if (e) { e._implementation = r; } r.externalObject = e; } return r.externalObject; } set radiusAxis(v) { if (v != null && this._stylingContainer && v._styling) v._styling(this._stylingContainer, this, this); v == null ? this.i.y5 = null : this.i.y5 = v.i; } /** * Gets or sets the name to use to resolve radiusAxis from markup. */ get radiusAxisName() { return this._radiusAxisName; } set radiusAxisName(v) { this._radiusAxisName = v; } /** * Gets or sets whether Cartesian Interpolation should be used rather than Archimedian * spiral based interpolation. */ get useCartesianInterpolation() { return this.i.aaa; } set useCartesianInterpolation(v) { this.i.aaa = ensureBool(v); } /** * Gets or sets the maximum number of markers displayed by the current series. * If more than the specified number of markers are visible, the polar series will automatically * choose a representative set. */ get maximumMarkers() { return this.i.aak; } set maximumMarkers(v) { this.i.aak = +v; } /** * Gets or sets the trend type for the current series object. */ get trendLineType() { return this.i.zm; } set trendLineType(v) { this.i.zm = ensureEnum(TrendLineType_$type, v); } /** * Gets or sets the brush that specifies how the current series * object's trend line is drawn. */ get trendLineBrush() { return brushToString(this.i.acj); } set trendLineBrush(v) { this.i.acj = stringToBrush(v); } /** * Gets the effective TrendLineBrush for this series. */ get actualTrendLineBrush() { return brushToString(this.i.aci); } set actualTrendLineBrush(v) { this.i.aci = stringToBrush(v); } /** * Gets or sets the thickness of the current series object's trend line. */ get trendLineThickness() { return this.i.aai; } set trendLineThickness(v) { this.i.aai = +v; } /** * Gets or sets a collection of double values that indicate the pattern of dashes and gaps that * is used to draw the trend line for the current series object. */ get trendLineDashArray() { return fromDoubleCollection(this.i.ack); } set trendLineDashArray(v) { this.i.ack = toDoubleCollection(v); } /** * Gets or sets the moving average period for the current series object. */ get trendLinePeriod() { return this.i.aal; } set trendLinePeriod(v) { this.i.aal = +v; } /** * Sets or Gets the Trendline Z index. */ get trendLineZIndex() { return this.i.aam; } set trendLineZIndex(v) { this.i.aam = +v; } /** * Gets or sets whether to clip the series to the bounds. * Setting this to true can effect performance. */ get clipSeriesToBounds() { return this.i.z0; } set clipSeriesToBounds(v) { this.i.z0 = ensureBool(v); } get actualItemSearchMode() { return this.i.zi; } set actualItemSearchMode(v) { this.i.zi = ensureEnum(ScatterItemSearchMode_$type, v); } /** * Gets or sets the mode the series will use to find the closest point to the cursor. */ get itemSearchMode() { return this.i.zk; } set itemSearchMode(v) { this.i.zk = ensureEnum(ScatterItemSearchMode_$type, v); } /** * Gets or sets the threshold to use when searching for items using ItemSearchMode. */ get itemSearchThreshold() { return this.i.aaj; } set itemSearchThreshold(v) { this.i.aaj = +v; } /** * Gets or sets whether this Polar series should allow custom style overrides of its individual visuals. */ get isCustomPolarStyleAllowed() { return this.i.z3; } set isCustomPolarStyleAllowed(v) { this.i.z3 = ensureBool(v); } /** * Gets or sets whether this Polar series should allow custom style overrides of its individual marker visuals. */ get isCustomPolarMarkerStyleAllowed() { return this.i.z2; } set isCustomPolarMarkerStyleAllowed(v) { this.i.z2 = ensureBool(v); } /** * Gets or sets the label displayed before series' radius value in the Data Legend. */ get radiusMemberAsLegendLabel() { return this.i.aa8; } set radiusMemberAsLegendLabel(v) { this.i.aa8 = v; } /** * Gets or sets the label displayed before series' angle value in the Data Legend. */ get angleMemberAsLegendLabel() { return this.i.aaq; } set angleMemberAsLegendLabel(v) { this.i.aaq = v; } /** * Gets or sets the unit displayed after series' radius value in the Data Legend. */ get radiusMemberAsLegendUnit() { return this.i.aba; } set radiusMemberAsLegendUnit(v) { this.i.aba = v; } /** * Gets or sets the unit displayed after series' angle value in the Data Legend. */ get angleMemberAsLegendUnit() { return this.i.aas; } set angleMemberAsLegendUnit(v) { this.i.aas = v; } bindAxes(axes) { super.bindAxes(axes); for (let i = 0; i < axes.length; i++) { if (this.angleAxisName && this.angleAxisName.length > 0 && axes[i].name == this.angleAxisName) { this.angleAxis = axes[i]; } } for (let i = 0; i < axes.length; i++) { if (this.radiusAxisName && this.radiusAxisName.length > 0 && axes[i].name == this.radiusAxisName) { this.radiusAxis = axes[i]; } } } findByName(name) { var baseResult = super.findByName(name); if (baseResult) { return baseResult; } if (this.angleAxis && this.angleAxis.name && this.angleAxis.name == name) { return this.angleAxis; } if (this.radiusAxis && this.radiusAxis.name && this.radiusAxis.name == name) { return this.radiusAxis; } return null; } _styling(container, component, parent) { super._styling(container, component, parent); this._inStyling = true; if (this.angleAxis && this.angleAxis._styling) { this.angleAxis._styling(container, component, this); } if (this.radiusAxis && this.radiusAxis._styling) { this.radiusAxis._styling(container, component, this); } this._inStyling = false; } /** * Scrolls the requested item into view, if possible. * @param item * The item to scroll into view. */ scrollIntoView(item) { let iv = this.i.ge(item); return (iv); } /** * Gets the item that is the best match for the specified world coordinates. * @param world * The world coordinates to use. */ getItem(world) { let iv = this.i.kr(toPoint(world)); return (iv); } /** * Gets the index of the item that resides at the provided world coordinates. * @param world * The world coordinates of the requested item. */ getItemIndex(world) { let iv = this.i.j7(toPoint(world)); return (iv); } getExactItemIndex(world) { let iv = this.i.it(toPoint(world)); return (iv); } getSeriesValuePosition(world, useInterpolation, skipUnknowns) { let iv = this.i.wn(toPoint(world), useInterpolation, skipUnknowns); return fromPoint(iv); } getItemValue(item, memberPathName) { let iv = this.i.ku(item, memberPathName); return (iv); } /** * Gets the value of a requested member path from the series. * @param memberPathName * The property name of a valid member path for the series */ getMemberPathValue(memberPathName) { let iv = this.i.mi(memberPathName); return (iv); } /** * Determine if object can be used as RadiusAxis * @param axis * The object to check */ canUseAsRadiusAxis(axis) { let iv = this.i.zz(axis); return (iv); } /** * Determine if object can be used as AngleAxis * @param axis * The object to check */ canUseAsAngleAxis(axis) { let iv = this.i.zy(axis); return (iv); } /** * Event raised when Assigning Category Style */ get assigningPolarStyle() { return this._assigningPolarStyle; } set assigningPolarStyle(ev) { if (this._assigningPolarStyle_wrapped !== null) { this.i.assigningPolarStyle = delegateRemove(this.i.assigningPolarStyle, this._assigningPolarStyle_wrapped); this._assigningPolarStyle_wrapped = null; this._assigningPolarStyle = null; } this._assigningPolarStyle = ev; this._assigningPolarStyle_wrapped = (o, e) => { let outerArgs = new IgrAssigningPolarStyleEventArgs(); outerArgs._provideImplementation(e); if (this.beforeAssigningPolarStyle) { this.beforeAssigningPolarStyle(this, outerArgs); } if (this._assigningPolarStyle) { this._assigningPolarStyle(this, outerArgs); } }; this.i.assigningPolarStyle = delegateCombine(this.i.assigningPolarStyle, this._assigningPolarStyle_wrapped); ; } /** * Event raised when Assigning Polar Marker Style */ get assigningPolarMarkerStyle() { return this._assigningPolarMarkerStyle; } set assigningPolarMarkerStyle(ev) { if (this._assigningPolarMarkerStyle_wrapped !== null) { this.i.assigningPolarMarkerStyle = delegateRemove(this.i.assigningPolarMarkerStyle, this._assigningPolarMarkerStyle_wrapped); this._assigningPolarMarkerStyle_wrapped = null; this._assigningPolarMarkerStyle = null; } this._assigningPolarMarkerStyle = ev; this._assigningPolarMarkerStyle_wrapped = (o, e) => { let outerArgs = new IgrAssigningPolarMarkerStyleEventArgs(); outerArgs._provideImplementation(e); if (this.beforeAssigningPolarMarkerStyle) { this.beforeAssigningPolarMarkerStyle(this, outerArgs); } if (this._assigningPolarMarkerStyle) { this._assigningPolarMarkerStyle(this, outerArgs); } }; this.i.assigningPolarMarkerStyle = delegateCombine(this.i.assigningPolarMarkerStyle, this._assigningPolarMarkerStyle_wrapped); ; } }