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