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