UNPKG

igniteui-react-charts

Version:

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

484 lines (475 loc) 15.5 kB
import { delegateCombine, delegateRemove } from "igniteui-react-core"; import { IgrNumericXAxis } from "./igr-numeric-x-axis"; import { IgrNumericYAxis } from "./igr-numeric-y-axis"; import { TrendLineType_$type } from "igniteui-react-core"; import { CollisionAvoidanceType_$type } from "./CollisionAvoidanceType"; import { ScatterItemSearchMode_$type } from "./ScatterItemSearchMode"; import { IgrAssigningScatterStyleEventArgs } from "./igr-assigning-scatter-style-event-args"; import { IgrAssigningScatterMarkerStyleEventArgs } from "./igr-assigning-scatter-marker-style-event-args"; import { IgrMarkerSeries } from "./igr-marker-series"; import { ensureBool, ensureEnum, brushToString, stringToBrush, toDoubleCollection, fromDoubleCollection, toPoint, fromRect, fromPoint } from "igniteui-react-core"; /** * Represents the base class for all IgxDataChartComponent scatter series */ export class IgrScatterBase extends IgrMarkerSeries { /** * @hidden */ get i() { return this._implementation; } constructor(props) { super(props); this._xAxisName = null; this._yAxisName = null; this._assigningScatterStyle = null; this._assigningScatterStyle_wrapped = null; this._assigningScatterMarkerStyle = null; this._assigningScatterMarkerStyle_wrapped = null; } /** * Checks if this series is a scatter series */ get isScatter() { return this.i.fx; } /** * Gets or sets the effective x-axis for the current object. */ get xAxis() { const r = this.i.xAxis; if (r == null) { return null; } if (!r.externalObject) { let e = IgrNumericXAxis._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 object. */ 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; } /** * Gets or sets the value mapping property for the current series object. */ get xMemberPath() { return this.i.aay; } set xMemberPath(v) { this.i.aay = v; } /** * Gets or sets the value mapping property for the current series object. */ get yMemberPath() { return this.i.aa6; } set yMemberPath(v) { this.i.aa6 = v; } /** * Gets or sets the highlighted X value mapping property for the current series object. */ get highlightedXMemberPath() { return this.i.aai; } set highlightedXMemberPath(v) { this.i.aai = v; } /** * Gets or sets the highlighted Y value mapping property for the current series object. */ get highlightedYMemberPath() { return this.i.aak; } set highlightedYMemberPath(v) { this.i.aak = v; } /** * Gets or sets the label displayed before series X value in the Data Legend. */ get xMemberAsLegendLabel() { return this.i.aau; } set xMemberAsLegendLabel(v) { this.i.aau = v; } /** * Gets or sets the label displayed before series Y value in the Data Legend. */ get yMemberAsLegendLabel() { return this.i.aa2; } set yMemberAsLegendLabel(v) { this.i.aa2 = v; } /** * Gets or sets the unit after displayed after series X value in the Data Legend. */ get xMemberAsLegendUnit() { return this.i.aaw; } set xMemberAsLegendUnit(v) { this.i.aaw = v; } /** * Gets or sets the unit after displayed after series Y value in the Data Legend. */ get yMemberAsLegendUnit() { return this.i.aa4; } set yMemberAsLegendUnit(v) { this.i.aa4 = v; } /** * Gets or sets the trend type for the current scatter series. */ get trendLineType() { return this.i.trendLineType; } set trendLineType(v) { this.i.trendLineType = ensureEnum(TrendLineType_$type, v); } /** * Gets or sets the brush to use to draw the trend line. */ get trendLineBrush() { return brushToString(this.i.trendLineBrush); } set trendLineBrush(v) { this.i.trendLineBrush = stringToBrush(v); } /** * Gets the effective TrendLineBrush for this series. */ get actualTrendLineBrush() { return brushToString(this.i.acn); } set actualTrendLineBrush(v) { this.i.acn = stringToBrush(v); } /** * Gets or sets the thickness of the current scatter series object's trend line. */ get trendLineThickness() { return this.i.trendLineThickness; } set trendLineThickness(v) { this.i.trendLineThickness = +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 scatter series object. */ get trendLineDashArray() { return fromDoubleCollection(this.i.aco); } set trendLineDashArray(v) { this.i.aco = toDoubleCollection(v); } /** * Gets or sets the moving average period for the current scatter series object. * The typical, and initial, value for trend line period is 7. */ get trendLinePeriod() { return this.i.trendLinePeriod; } set trendLinePeriod(v) { this.i.trendLinePeriod = +v; } /** * The desired behavior for markers in this series which are placed too close together for the current view, resulting in a collision. */ get markerCollisionAvoidance() { return this.i.yy; } set markerCollisionAvoidance(v) { this.i.yy = ensureEnum(CollisionAvoidanceType_$type, v); } /** * Gets or sets the Z-Index of the trend line. Values greater than 1000 will result in the trend line being rendered in front of the series data. */ get trendLineZIndex() { return this.i.aaf; } set trendLineZIndex(v) { this.i.aaf = +v; } /** * Gets or sets the maximum number of markerItems displayed by the current series. * If more than the specified number of markerItems are visible, the series will automatically * choose a representative set. */ get maximumMarkers() { return this.i.aae; } set maximumMarkers(v) { this.i.aae = +v; } /** * Gets or sets the mode the series will use to find the closest point to the cursor. */ get itemSearchMode() { return this.i.zd; } set itemSearchMode(v) { this.i.zd = ensureEnum(ScatterItemSearchMode_$type, v); } /** * Gets or sets the threshold to use when searching for items using ItemSearchMode. */ get itemSearchThreshold() { return this.i.aad; } set itemSearchThreshold(v) { this.i.aad = +v; } get actualItemSearchMode() { return this.i.zb; } set actualItemSearchMode(v) { this.i.zb = ensureEnum(ScatterItemSearchMode_$type, v); } /** * Gets or sets whether this Scatter series should allow custom style overrides of its individual visuals. */ get isCustomScatterStyleAllowed() { return this.i.zu; } set isCustomScatterStyleAllowed(v) { this.i.zu = ensureBool(v); } /** * Gets or sets whether this Scatter series should allow custom style overrides of its individual marker visuals. */ get isCustomScatterMarkerStyleAllowed() { return this.i.zt; } set isCustomScatterMarkerStyleAllowed(v) { this.i.zt = ensureBool(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; } getItemValue(item, memberPathName) { let iv = this.i.kr(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.mf(memberPathName); return (iv); } /** * If possible, will return the best available value marker bounding box within the series that has the best value match for the world position provided. * @param world * The world coordinates for which to get a value marker bounding box for */ getSeriesValueMarkerBoundingBox(world) { let iv = this.i.wu(toPoint(world)); return fromRect(iv); } /** * Determine if object can be used as YAxis * @param axis * The object to check */ canUseAsYAxis(axis) { let iv = this.i.zs(axis); return (iv); } /** * Determine if object can be used as XAxis * @param axis * The object to check */ canUseAsXAxis(axis) { let iv = this.i.zr(axis); 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.ko(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.j4(toPoint(world)); return (iv); } getExactItemIndex(world) { let iv = this.i.is(toPoint(world)); return (iv); } getSeriesValuePosition(world, useInterpolation, skipUnknowns) { let iv = this.i.wh(toPoint(world), useInterpolation, skipUnknowns); return fromPoint(iv); } /** * Scrolls the series to display the item for the specified data item. * The series is scrolled by the minimum amount required to place the specified data item within * the central 80% of the visible axis. * @param item * The data item (item) to scroll to. */ scrollIntoView(item) { let iv = this.i.ge(item); return (iv); } /** * Gets the numeric values from the X and Y axis associated with this scatter series that matches the desired * value mode. * @param mode * The type of value desired from the series numeric axis. */ getSeriesValueType(mode) { let iv = this.i.aq((mode == null ? null : mode)); return (iv); } getSeriesValueTypePositionFromValue(values) { let iv = this.i.wl(values); return fromPoint(iv); } getSeriesValueTypePosition(mode) { let iv = this.i.wk((mode == null ? null : mode)); return fromPoint(iv); } /** * Event raised when Assigning Category Style */ get assigningScatterStyle() { return this._assigningScatterStyle; } set assigningScatterStyle(ev) { if (this._assigningScatterStyle_wrapped !== null) { this.i.assigningScatterStyle = delegateRemove(this.i.assigningScatterStyle, this._assigningScatterStyle_wrapped); this._assigningScatterStyle_wrapped = null; this._assigningScatterStyle = null; } this._assigningScatterStyle = ev; this._assigningScatterStyle_wrapped = (o, e) => { let outerArgs = new IgrAssigningScatterStyleEventArgs(); outerArgs._provideImplementation(e); if (this.beforeAssigningScatterStyle) { this.beforeAssigningScatterStyle(this, outerArgs); } if (this._assigningScatterStyle) { this._assigningScatterStyle(this, outerArgs); } }; this.i.assigningScatterStyle = delegateCombine(this.i.assigningScatterStyle, this._assigningScatterStyle_wrapped); ; } /** * Event raised when Assigning Scatter Marker Style */ get assigningScatterMarkerStyle() { return this._assigningScatterMarkerStyle; } set assigningScatterMarkerStyle(ev) { if (this._assigningScatterMarkerStyle_wrapped !== null) { this.i.assigningScatterMarkerStyle = delegateRemove(this.i.assigningScatterMarkerStyle, this._assigningScatterMarkerStyle_wrapped); this._assigningScatterMarkerStyle_wrapped = null; this._assigningScatterMarkerStyle = null; } this._assigningScatterMarkerStyle = ev; this._assigningScatterMarkerStyle_wrapped = (o, e) => { let outerArgs = new IgrAssigningScatterMarkerStyleEventArgs(); outerArgs._provideImplementation(e); if (this.beforeAssigningScatterMarkerStyle) { this.beforeAssigningScatterMarkerStyle(this, outerArgs); } if (this._assigningScatterMarkerStyle) { this._assigningScatterMarkerStyle(this, outerArgs); } }; this.i.assigningScatterMarkerStyle = delegateCombine(this.i.assigningScatterMarkerStyle, this._assigningScatterMarkerStyle_wrapped); ; } }