UNPKG

igniteui-react-charts

Version:

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

251 lines (246 loc) 7.41 kB
import { IgrAxis } from "./igr-axis"; import { IgrSeries } from "./igr-series"; import { ValueOverlay } from "./ValueOverlay"; import { ensureBool, brushToString, stringToBrush, toPoint, fromPoint } from "igniteui-react-core"; /** * Represents the class of the value overlay. The value overlay is a line or circle representing a value on an axis. */ export class IgrValueOverlay extends IgrSeries { createImplementation() { return new ValueOverlay(); } /** * @hidden */ get i() { return this._implementation; } constructor(props) { super(props); this._axisName = null; } /** * Gets or sets the axis used by the value overlay. */ get axis() { const r = this.i.w0; if (r == null) { return null; } if (!r.externalObject) { let e = IgrAxis._createFromInternal(r); if (e) { e._implementation = r; } r.externalObject = e; } return r.externalObject; } set axis(v) { if (v != null && this._stylingContainer && v._styling) v._styling(this._stylingContainer, this, this); v == null ? this.i.w0 = null : this.i.w0 = v.i; } /** * Gets or sets the name to use to resolve axis from markup. */ get axisName() { return this._axisName; } set axisName(v) { this._axisName = v; } /** * Gets or sets the value of the overlay. */ get value() { return this.i.xj; } set value(v) { this.i.xj = +v; } /** * Gets or sets whether to draw annotations over the axes where the crosshair meets with them. */ get isAxisAnnotationEnabled() { return this.i.w4; } set isAxisAnnotationEnabled(v) { this.i.w4 = ensureBool(v); } /** * Sets or gets a function which takes an object that produces a formatted label for the axis annotation. */ get axisAnnotationFormatLabel() { return this.i.w2; } set axisAnnotationFormatLabel(v) { this.i.w2 = v; } /** * Gets or sets the color to use for the axis annotation text. Leave unset for an automatic value. */ get axisAnnotationTextColor() { return brushToString(this.i.yj); } set axisAnnotationTextColor(v) { this.i.yj = stringToBrush(v); } /** * Gets or sets the color to use for the axis annotation backing. Leave unset for an automatic value. */ get axisAnnotationBackground() { return brushToString(this.i.yh); } set axisAnnotationBackground(v) { this.i.yh = stringToBrush(v); } /** * Gets or sets the corner radius to use for the axis annotation backing. Leave unset for an automatic value. */ get axisAnnotationBackgroundCornerRadius() { return this.i.w8; } set axisAnnotationBackgroundCornerRadius(v) { this.i.w8 = +v; } /** * Gets or sets the precision to use displaying values for interpolated positions. */ get axisAnnotationInterpolatedValuePrecision() { return this.i.xk; } set axisAnnotationInterpolatedValuePrecision(v) { this.i.xk = +v; } /** * Gets or sets the color to use for the axis annotation outline. Leave unset for an automatic value. */ get axisAnnotationOutline() { return brushToString(this.i.yi); } set axisAnnotationOutline(v) { this.i.yi = stringToBrush(v); } /** * Gets or sets the padding to use withing the axis annotation callout. Leaving this NaN will use an automatic value related to the axis label margins. */ get axisAnnotationPaddingLeft() { return this.i.xa; } set axisAnnotationPaddingLeft(v) { this.i.xa = +v; } /** * Gets or sets the padding to use withing the axis annotation callout. Leaving this NaN will use an automatic value related to the axis label margins. */ get axisAnnotationPaddingTop() { return this.i.xc; } set axisAnnotationPaddingTop(v) { this.i.xc = +v; } /** * Gets or sets the padding to use withing the axis annotation callout. Leaving this NaN will use an automatic value related to the axis label margins. */ get axisAnnotationPaddingRight() { return this.i.xb; } set axisAnnotationPaddingRight(v) { this.i.xb = +v; } /** * Gets or sets the padding to use withing the axis annotation callout. Leaving this NaN will use an automatic value related to the axis label margins. */ get axisAnnotationPaddingBottom() { return this.i.w9; } set axisAnnotationPaddingBottom(v) { this.i.w9 = +v; } /** * Gets or sets the stroke thickness for the axis annotation backing. Leave unset for an automatic value. */ get axisAnnotationStrokeThickness() { return this.i.xd; } set axisAnnotationStrokeThickness(v) { this.i.xd = +v; } /** * Gets whether the series is a value overlay. */ get isValueOverlay() { return this.i.isValueOverlay; } get labelResolved() { return this.i.xz; } bindAxes(axes) { super.bindAxes(axes); for (let i = 0; i < axes.length; i++) { if (this.axisName && this.axisName.length > 0 && axes[i].name == this.axisName) { this.axis = axes[i]; } } } findByName(name) { var baseResult = super.findByName(name); if (baseResult) { return baseResult; } if (this.axis && this.axis.name && this.axis.name == name) { return this.axis; } return null; } _styling(container, component, parent) { super._styling(container, component, parent); this._inStyling = true; if (this.axis && this.axis._styling) { this.axis._styling(container, component, this); } this._inStyling = false; } getSeriesValue(world, useInterpolation, skipUnknowns) { let iv = this.i.i5(toPoint(world), useInterpolation, skipUnknowns); return (iv); } getSeriesValuePosition(world, useInterpolation, skipUnknowns) { let iv = this.i.we(toPoint(world), useInterpolation, skipUnknowns); return fromPoint(iv); } /** * Gets the item index associated with the specified world position * @param world */ getItemIndex(world) { let iv = this.i.j3(toPoint(world)); 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.kn(toPoint(world)); return (iv); } /** * Requests that the provided item should be brought into view if possible. * @param item * The item to attempt to bring into view. */ scrollIntoView(item) { let iv = this.i.gd(item); return (iv); } /** * Gets the label for a data item. * @param value * The unscaled value to get a label for. */ getLabel(value) { let iv = this.i.xx(value); return (iv); } }