UNPKG

igniteui-react-charts

Version:

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

734 lines (728 loc) 25.2 kB
import { delegateCombine, delegateRemove } from "igniteui-react-core"; import { IgrSeries } from "./igr-series"; import { IgrCalloutPlacementPositionsCollection } from "./igr-callout-placement-positions-collection"; import { HighlightedValueLabelMode_$type } from "igniteui-react-core"; import { AutoCalloutVisibilityMode_$type } from "./AutoCalloutVisibilityMode"; import { CalloutCollisionMode_$type } from "igniteui-react-core"; import { IgrCalloutStyleUpdatingEventArgs } from "./igr-callout-style-updating-event-args"; import { IgrCalloutRenderStyleUpdatingEventArgs } from "./igr-callout-render-style-updating-event-args"; import { IgrCalloutContentUpdatingEventArgs } from "./igr-callout-content-updating-event-args"; import { IgrCalloutLabelUpdatingEventArgs } from "./igr-callout-label-updating-event-args"; import { IgrCalloutSeriesSelectingEventArgs } from "./igr-callout-series-selecting-event-args"; import { IgrAnnotationLayer } from "./igr-annotation-layer"; import { CalloutLayer } from "./CalloutLayer"; import { ensureBool, ensureEnum, brushToString, stringToBrush, arrayFindByName } from "igniteui-react-core"; import { CalloutPlacementPositionsCollection as CalloutPlacementPositionsCollection_internal } from "./CalloutPlacementPositionsCollection"; import { CalloutPlacementPositions_$type } from "./CalloutPlacementPositions"; import { SyncableObservableCollection$1 } from "igniteui-react-core"; /** * Represents an annotation layer that displays crosshair lines that cross through the closest value of the target series under the cursor. */ export class IgrCalloutLayer extends IgrAnnotationLayer { createImplementation() { return new CalloutLayer(); } /** * @hidden */ get i() { return this._implementation; } constructor(props) { super(props); this._allowedPositions = null; this._calloutStyleUpdating = null; this._calloutStyleUpdating_wrapped = null; this._calloutRenderStyleUpdating = null; this._calloutRenderStyleUpdating_wrapped = null; this._calloutContentUpdating = null; this._calloutContentUpdating_wrapped = null; this._calloutLabelUpdating = null; this._calloutLabelUpdating_wrapped = null; this._calloutSeriesSelecting = null; this._calloutSeriesSelecting_wrapped = null; } /** * Gets whether the series is an callout annotation layer. */ get isAnnotationCalloutLayer() { return this.i.eq; } /** * Gets or sets whether or not callouts expand axis buffer for extra space for their render around data points. */ get calloutExpandsAxisBufferEnabled() { return this.i.abt; } set calloutExpandsAxisBufferEnabled(v) { this.i.abt = ensureBool(v); } /** * Gets or sets whether or not callouts expand axis buffer only when callouts are visible in the chart. * This property is not used when the CalloutExpandsAxisBufferEnabled property is false or AutoCalloutVisibilityMode is not Dedicated. */ get calloutExpandsAxisBufferOnlyWhenVisible() { return this.i.abv; } set calloutExpandsAxisBufferOnlyWhenVisible(v) { this.i.abv = ensureBool(v); } /** * Gets or sets whether or not recalculate callouts expand axis buffer on rendering frame. * This property is not used when the CalloutExpandsAxisBufferEnabled property is false or AutoCalloutVisibilityMode is not Dedicated. */ get calloutExpandsAxisBufferOnInitialVisibility() { return this.i.abu; } set calloutExpandsAxisBufferOnInitialVisibility(v) { this.i.abu = ensureBool(v); } /** * Gets or sets whether or not suspend refresh of callouts while they shift from hidden to visible */ get calloutSuspendedWhenShiftingToVisible() { return this.i.abw; } set calloutSuspendedWhenShiftingToVisible(v) { this.i.abw = ensureBool(v); } /** * Gets or sets the minimum vertical axis buffer for positioning callouts. * This property does not take precedence over the CalloutExpandsAxisBufferMaxHeight property. */ get calloutExpandsAxisBufferMinHeight() { return this.i.aco; } set calloutExpandsAxisBufferMinHeight(v) { this.i.aco = +v; } /** * Gets or sets the maximum vertical axis buffer for positioning callouts. * This property takes precedence over the CalloutExpandsAxisBufferMinHeight property. */ get calloutExpandsAxisBufferMaxHeight() { return this.i.acm; } set calloutExpandsAxisBufferMaxHeight(v) { this.i.acm = +v; } /** * Gets or sets the minimum horizontal axis buffer for positioning callouts. * This property does not take precedence over the CalloutExpandsAxisBufferMaxWidth property. */ get calloutExpandsAxisBufferMinWidth() { return this.i.acp; } set calloutExpandsAxisBufferMinWidth(v) { this.i.acp = +v; } /** * Gets or sets the maximum horizontal axis buffer for positioning callouts. * This property takes precedence over the CalloutExpandsAxisBufferMinWidth property. */ get calloutExpandsAxisBufferMaxWidth() { return this.i.acn; } set calloutExpandsAxisBufferMaxWidth(v) { this.i.acn = +v; } /** * Gets or sets the label mapping property for the callouts. */ get labelMemberPath() { return this.i.aeb; } set labelMemberPath(v) { this.i.aeb = v; } /** * Gets or sets the label mapping property for the callouts. */ get xMemberPath() { return this.i.aer; } set xMemberPath(v) { this.i.aer = v; } /** * Gets or sets the label mapping property for the callouts. */ get yMemberPath() { return this.i.aeu; } set yMemberPath(v) { this.i.aeu = v; } /** * Gets or sets the key mapping property for the callouts. */ get keyMemberPath() { return this.i.ad5; } set keyMemberPath(v) { this.i.ad5 = v; } /** * Gets or sets whether to allow the callouts to be variable distances from the target points, for supporting collision modes. */ get isCalloutOffsettingEnabled() { return this.i.aby; } set isCalloutOffsettingEnabled(v) { this.i.aby = ensureBool(v); } /** * Gets or sets the label format string to use for the label. */ get labelFormat() { return this.i.ad8; } set labelFormat(v) { this.i.ad8 = v; } /** * Gets or sets the format specifiers to use with the LabelFormat string. */ get labelFormatSpecifiers() { return this.i.aah; } set labelFormatSpecifiers(v) { if (v && !Array.isArray(v) && typeof (v) == "string") { const re = /\s*(?:,|\s|$)\s*/gm; v = v.split(re); } this.i.aah = v; } /** * Gets or sets the content mapping property for the callouts. */ get contentMemberPath() { return this.i.adx; } set contentMemberPath(v) { this.i.adx = v; } /** * Gets or sets the name of the series series to target this annotation to. If null, this annotation targets all series simultaneously. */ get targetSeriesName() { return this.i.aee; } set targetSeriesName(v) { this.i.aee = v; } /** * Gets or sets the series to target this annotation to. If null, this annotation targets all series simultaneously. */ get targetSeries() { const r = this.i.aay; if (r == null) { return null; } if (!r.externalObject) { let e = IgrSeries._createFromInternal(r); if (e) { e._implementation = r; } r.externalObject = e; } return r.externalObject; } set targetSeries(v) { if (v != null && this._stylingContainer && v._styling) v._styling(this._stylingContainer, this, this); v == null ? this.i.aay = null : this.i.aay = v.i; } /** * Gets or sets a channel name to identify other callout layers within the chart to share collision information with. */ get collisionChannel() { return this.i.adu; } set collisionChannel(v) { this.i.adu = v; } /** * Gets or sets the allowed positions that the callout layer is allowed to use. */ get allowedPositions() { if (this._allowedPositions === null) { let coll = new IgrCalloutPlacementPositionsCollection(); let innerColl = this.i.aat; if (!innerColl) { innerColl = new CalloutPlacementPositionsCollection_internal(); } this._allowedPositions = coll._fromInner(innerColl); this.i.aat = innerColl; } return this._allowedPositions; } set allowedPositions(v) { if (this._allowedPositions !== null) { this._allowedPositions._setSyncTarget(null); this._allowedPositions = null; } let coll = new IgrCalloutPlacementPositionsCollection(); this._allowedPositions = coll._fromOuter(v); let syncColl = new SyncableObservableCollection$1(CalloutPlacementPositions_$type); let innerColl = this.i.aat; if (!innerColl) { innerColl = new CalloutPlacementPositionsCollection_internal(); } syncColl._inner = innerColl; syncColl.clear(); this._allowedPositions._setSyncTarget(syncColl); this.i.aat = innerColl; } /** * Gets or sets how to select the final value to annotate. */ get isAutoCalloutBehaviorEnabled() { return this.i.abx; } set isAutoCalloutBehaviorEnabled(v) { this.i.abx = ensureBool(v); } /** * Gets or sets whether to use values, rather than labels for auto callout labels. */ get useInterpolatedValueForAutoCalloutLabels() { return this.i.ab3; } set useInterpolatedValueForAutoCalloutLabels(v) { this.i.ab3 = ensureBool(v); } /** * Gets or sets whether to the series color as the outline of the callout. */ get useSeriesColorForOutline() { return this.i.ab6; } set useSeriesColorForOutline(v) { this.i.ab6 = ensureBool(v); } /** * Gets or sets whether to the label color is automatically decided between a light and dark option for contrast. */ get useAutoContrastingLabelColors() { return this.i.ab2; } set useAutoContrastingLabelColors(v) { this.i.ab2 = ensureBool(v); } /** * Gets or sets whether to the series color as the outline of the callout. */ get useItemColorForFill() { return this.i.ab4; } set useItemColorForFill(v) { this.i.ab4 = ensureBool(v); } /** * Gets or sets whether to the series item color as the outline of the callout. */ get useItemColorForOutline() { return this.i.ab5; } set useItemColorForOutline(v) { this.i.ab5 = ensureBool(v); } /** * Gets or sets whether to use values, rather than labels for auto callout labels. */ get useValueForAutoCalloutLabels() { return this.i.ab7; } set useValueForAutoCalloutLabels(v) { this.i.ab7 = ensureBool(v); } /** * Gets or sets whether to use values, rather than labels for auto callout labels. */ get highlightedValueLabelMode() { return this.i.aax; } set highlightedValueLabelMode(v) { this.i.aax = ensureEnum(HighlightedValueLabelMode_$type, v); } /** * Gets or sets the rules for when the callouts should be visible. */ get autoCalloutVisibilityMode() { return this.i.aam; } set autoCalloutVisibilityMode(v) { this.i.aam = ensureEnum(AutoCalloutVisibilityMode_$type, v); } /** * Gets or sets the corner radius to use for the callout borders. */ get calloutCornerRadius() { return this.i.acl; } set calloutCornerRadius(v) { this.i.acl = +v; } /** * Gets or sets whether to allow for custom callout styles. */ get isCustomCalloutStyleEnabled() { return this.i.ab0; } set isCustomCalloutStyleEnabled(v) { this.i.ab0 = ensureBool(v); } /** * Gets or sets whether to allow for custom callout styles. */ get isCustomCalloutRenderStyleEnabled() { return this.i.abz; } set isCustomCalloutRenderStyleEnabled(v) { this.i.abz = ensureBool(v); } /** * Gets or sets the precision to use when values are used for the auto callout labels. */ get autoCalloutLabelPrecision() { return this.i.acz; } set autoCalloutLabelPrecision(v) { this.i.acz = +v; } /** * Gets or sets the color to use for the callout text. Leave unset for an automatic value. */ get calloutTextColor() { return brushToString(this.i.agw); } set calloutTextColor(v) { this.i.agw = stringToBrush(v); } /** * Gets or sets the light color to use for the callout text. Leave unset for an automatic value. */ get calloutLightTextColor() { return brushToString(this.i.agu); } set calloutLightTextColor(v) { this.i.agu = stringToBrush(v); } /** * Gets or sets the dark color to use for the callout text. Leave unset for an automatic value. */ get calloutDarkTextColor() { return brushToString(this.i.ags); } set calloutDarkTextColor(v) { this.i.ags = stringToBrush(v); } /** * Gets or sets the brush that specifies how the backgrounds for the callouts of the layer are painted. Leave unset for an automatic value. */ get calloutBackground() { return brushToString(this.i.agr); } set calloutBackground(v) { this.i.agr = stringToBrush(v); } /** * Gets or sets whether the callouts that collide with the boundary should be truncated. */ get shouldTruncateOnBoundaryCollisions() { return this.i.ab1; } set shouldTruncateOnBoundaryCollisions(v) { this.i.ab1 = ensureBool(v); } /** * Gets or sets the precision to use displaying values for interpolated crosshair positions. */ get calloutInterpolatedValuePrecision() { return this.i.ac0; } set calloutInterpolatedValuePrecision(v) { this.i.ac0 = +v; } /** * Gets or sets the brush that specifies how the outlines for the callouts of the layer are painted. */ get calloutOutline() { return brushToString(this.i.agv); } set calloutOutline(v) { this.i.agv = stringToBrush(v); } /** * Gets or sets the brush that specifies how the leader lines for the callouts of the layer are painted. */ get calloutLeaderBrush() { return brushToString(this.i.agt); } set calloutLeaderBrush(v) { this.i.agt = stringToBrush(v); } /** * Gets or sets the left padding to use withing the callout. Leaving this NaN will use an automatic value related to the axis label margins. */ get calloutPaddingLeft() { return this.i.acr; } set calloutPaddingLeft(v) { this.i.acr = +v; } /** * Gets or sets the top padding to use within the callout. Leaving this NaN will use an automatic value related to the axis label margins. */ get calloutPaddingTop() { return this.i.act; } set calloutPaddingTop(v) { this.i.act = +v; } /** * Gets or sets the right padding to use within the callout. Leaving this NaN will use an automatic value related to the axis label margins. */ get calloutPaddingRight() { return this.i.acs; } set calloutPaddingRight(v) { this.i.acs = +v; } /** * Gets or sets the bottom padding to use within the callout. Leaving this NaN will use an automatic value related to the axis label margins. */ get calloutPaddingBottom() { return this.i.acq; } set calloutPaddingBottom(v) { this.i.acq = +v; } /** * Gets or sets the strategy to use for avoiding collisions between the callouts in this layer. Leave unset for an automatic value. */ get calloutCollisionMode() { return this.i.aao; } set calloutCollisionMode(v) { this.i.aao = ensureEnum(CalloutCollisionMode_$type, v); } /** * Gets or sets the padding to add to the callout positioning. Leave unset for an automatic value. */ get calloutPositionPadding() { return this.i.acu; } set calloutPositionPadding(v) { this.i.acu = +v; } /** * Gets or sets the stroke thickness for the callout backing. Leave unset for an automatic value. */ get calloutStrokeThickness() { return this.i.acv; } set calloutStrokeThickness(v) { this.i.acv = +v; } /** * Gets or sets the stroke thickness for the axis annotation backing. Leave unset for an automatic value. */ get textStyle() { return this.i.aeh; } set textStyle(v) { this.i.aeh = v; } findByName(name) { var baseResult = super.findByName(name); if (baseResult) { return baseResult; } if (this.labelFormatSpecifiers != null && arrayFindByName(this.labelFormatSpecifiers, name)) { return arrayFindByName(this.labelFormatSpecifiers, name); } if (this.targetSeries && this.targetSeries.name && this.targetSeries.name == name) { return this.targetSeries; } if (this.allowedPositions != null && this.allowedPositions.findByName && this.allowedPositions.findByName(name)) { return this.allowedPositions.findByName(name); } return null; } _styling(container, component, parent) { super._styling(container, component, parent); this._inStyling = true; if (this.targetSeries && this.targetSeries._styling) { this.targetSeries._styling(container, component, this); } this._inStyling = false; } 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); } /** * Invalidates content of callout layer */ invalidateCalloutContent() { this.i.ae4(); } /** * Resets actual visiable range margin */ recalculateAxisRangeBuffer() { this.i.ae8(); } /** * Refresh axis buffer and callouts rendering */ refreshAxisBufferAndCalloutPositions() { this.i.ae9(); } /** * Force the callout labels to reevaluate their positions. */ refreshLabelPositions() { this.i.afa(); } /** * Event raised when updating style of callout layer */ get calloutStyleUpdating() { return this._calloutStyleUpdating; } set calloutStyleUpdating(ev) { if (this._calloutStyleUpdating_wrapped !== null) { this.i.calloutStyleUpdating = delegateRemove(this.i.calloutStyleUpdating, this._calloutStyleUpdating_wrapped); this._calloutStyleUpdating_wrapped = null; this._calloutStyleUpdating = null; } this._calloutStyleUpdating = ev; this._calloutStyleUpdating_wrapped = (o, e) => { let outerArgs = new IgrCalloutStyleUpdatingEventArgs(); outerArgs._provideImplementation(e); if (this.beforeCalloutStyleUpdating) { this.beforeCalloutStyleUpdating(this, outerArgs); } if (this._calloutStyleUpdating) { this._calloutStyleUpdating(this, outerArgs); } }; this.i.calloutStyleUpdating = delegateCombine(this.i.calloutStyleUpdating, this._calloutStyleUpdating_wrapped); ; } /** * Event raised when updating style of callout layer */ get calloutRenderStyleUpdating() { return this._calloutRenderStyleUpdating; } set calloutRenderStyleUpdating(ev) { if (this._calloutRenderStyleUpdating_wrapped !== null) { this.i.calloutRenderStyleUpdating = delegateRemove(this.i.calloutRenderStyleUpdating, this._calloutRenderStyleUpdating_wrapped); this._calloutRenderStyleUpdating_wrapped = null; this._calloutRenderStyleUpdating = null; } this._calloutRenderStyleUpdating = ev; this._calloutRenderStyleUpdating_wrapped = (o, e) => { let outerArgs = new IgrCalloutRenderStyleUpdatingEventArgs(); outerArgs._provideImplementation(e); if (this.beforeCalloutRenderStyleUpdating) { this.beforeCalloutRenderStyleUpdating(this, outerArgs); } if (this._calloutRenderStyleUpdating) { this._calloutRenderStyleUpdating(this, outerArgs); } }; this.i.calloutRenderStyleUpdating = delegateCombine(this.i.calloutRenderStyleUpdating, this._calloutRenderStyleUpdating_wrapped); ; } /** * Raised to allow you to decide on the content for an automatically created callout. */ get calloutContentUpdating() { return this._calloutContentUpdating; } set calloutContentUpdating(ev) { if (this._calloutContentUpdating_wrapped !== null) { this.i.calloutContentUpdating = delegateRemove(this.i.calloutContentUpdating, this._calloutContentUpdating_wrapped); this._calloutContentUpdating_wrapped = null; this._calloutContentUpdating = null; } this._calloutContentUpdating = ev; this._calloutContentUpdating_wrapped = (o, e) => { let outerArgs = new IgrCalloutContentUpdatingEventArgs(); outerArgs._provideImplementation(e); if (this.beforeCalloutContentUpdating) { this.beforeCalloutContentUpdating(this, outerArgs); } if (this._calloutContentUpdating) { this._calloutContentUpdating(this, outerArgs); } }; this.i.calloutContentUpdating = delegateCombine(this.i.calloutContentUpdating, this._calloutContentUpdating_wrapped); ; } /** * Raised to allow you to decide on the label for an automatically created callout. */ get calloutLabelUpdating() { return this._calloutLabelUpdating; } set calloutLabelUpdating(ev) { if (this._calloutLabelUpdating_wrapped !== null) { this.i.calloutLabelUpdating = delegateRemove(this.i.calloutLabelUpdating, this._calloutLabelUpdating_wrapped); this._calloutLabelUpdating_wrapped = null; this._calloutLabelUpdating = null; } this._calloutLabelUpdating = ev; this._calloutLabelUpdating_wrapped = (o, e) => { let outerArgs = new IgrCalloutLabelUpdatingEventArgs(); outerArgs._provideImplementation(e); if (this.beforeCalloutLabelUpdating) { this.beforeCalloutLabelUpdating(this, outerArgs); } if (this._calloutLabelUpdating) { this._calloutLabelUpdating(this, outerArgs); } }; this.i.calloutLabelUpdating = delegateCombine(this.i.calloutLabelUpdating, this._calloutLabelUpdating_wrapped); ; } /** * Raised to allow you to select a target series for a data bound callout. */ get calloutSeriesSelecting() { return this._calloutSeriesSelecting; } set calloutSeriesSelecting(ev) { if (this._calloutSeriesSelecting_wrapped !== null) { this.i.calloutSeriesSelecting = delegateRemove(this.i.calloutSeriesSelecting, this._calloutSeriesSelecting_wrapped); this._calloutSeriesSelecting_wrapped = null; this._calloutSeriesSelecting = null; } this._calloutSeriesSelecting = ev; this._calloutSeriesSelecting_wrapped = (o, e) => { let outerArgs = new IgrCalloutSeriesSelectingEventArgs(); outerArgs._provideImplementation(e); if (this.beforeCalloutSeriesSelecting) { this.beforeCalloutSeriesSelecting(this, outerArgs); } if (this._calloutSeriesSelecting) { this._calloutSeriesSelecting(this, outerArgs); } }; this.i.calloutSeriesSelecting = delegateCombine(this.i.calloutSeriesSelecting, this._calloutSeriesSelecting_wrapped); ; } }