UNPKG

igniteui-angular-charts

Version:

Ignite UI Angular charting components for building rich data visualizations for modern web apps.

1,436 lines 207 kB
import { Component, EventEmitter, Output, Input } from '@angular/core'; import { HorizontalAlignment_$type } from "igniteui-angular-core"; import { UnknownValuePlotting_$type } from "igniteui-angular-core"; import { TrendLineType_$type } from "igniteui-angular-core"; import { IgxChartSeriesEventArgs } from './igx-chart-series-event-args'; import { toPoint, arrayFindByName, brushToString, stringToBrush, toBrushCollection, fromBrushCollection, fromRect, toRect, ensureBool, ensureEnum, toSpinal, initializePropertiesFromCss, NamePatcher } from "igniteui-angular-core"; import { MarkerType_$type } from "./MarkerType"; import { delegateCombine } from "igniteui-angular-core"; import { IgxDomainChartSeriesPointerEventArgs } from './igx-domain-chart-series-pointer-event-args'; import { MarkerTypeCollection as MarkerTypeCollection_internal } from './MarkerTypeCollection'; import { IgxMarkerTypeCollection } from './igx-marker-type-collection'; import { SyncableObservableCollection$1 } from "igniteui-angular-core"; import { ToolTipType_$type } from "./ToolTipType"; import { CrosshairsDisplayMode_$type } from "./CrosshairsDisplayMode"; import { IgxCalloutStyleUpdatingEventArgs } from "./igx-callout-style-updating-event-args"; import { ComputedPlotAreaMarginMode_$type } from './ComputedPlotAreaMarginMode'; import { SeriesHighlightingMode_$type } from './SeriesHighlightingMode'; import { SeriesHighlightingBehavior_$type } from './SeriesHighlightingBehavior'; import { LegendHighlightingMode_$type } from './LegendHighlightingMode'; import { SeriesOutlineMode_$type } from './SeriesOutlineMode'; import { MarkerOutlineMode_$type } from './MarkerOutlineMode'; import { MarkerFillMode_$type } from './MarkerFillMode'; import { MarkerAutomaticBehavior_$type } from './MarkerAutomaticBehavior'; import { LegendItemBadgeMode_$type } from "igniteui-angular-core"; import { LegendItemBadgeShape_$type } from "igniteui-angular-core"; import { DataAbbreviationMode_$type } from "igniteui-angular-core"; import { DataLegendValueMode_$type } from "igniteui-angular-core"; import { DataLegendHeaderDateMode_$type } from "igniteui-angular-core"; import { DataLegendHeaderTimeMode_$type } from "igniteui-angular-core"; import { DataLegendUnitsMode_$type } from "igniteui-angular-core"; import { DataLegendLabelMode_$type } from "igniteui-angular-core"; import { DataLegendSummaryType_$type } from "igniteui-angular-core"; import { Thickness } from "igniteui-angular-core"; import { FontInfo } from "igniteui-angular-core"; import { SeriesPlotAreaMarginHorizontalMode_$type } from './SeriesPlotAreaMarginHorizontalMode'; import { SeriesPlotAreaMarginVerticalMode_$type } from './SeriesPlotAreaMarginVerticalMode'; import { IgxCalloutPlacementPositionsCollection } from './igx-callout-placement-positions-collection'; import { CalloutPlacementPositions_$type } from './CalloutPlacementPositions'; import { SeriesViewerScrollbarMode_$type } from './SeriesViewerScrollbarMode'; import { SeriesViewerHorizontalScrollbarPosition_$type } from './SeriesViewerHorizontalScrollbarPosition'; import { SeriesViewerVerticalScrollbarPosition_$type } from './SeriesViewerVerticalScrollbarPosition'; import { IgxCalloutRenderStyleUpdatingEventArgs } from './igx-callout-render-style-updating-event-args'; import { CalloutPlacementPositionsCollection as CalloutPlacementPositionsCollection_internal } from './CalloutPlacementPositionsCollection'; import { DataToolTipLayerGroupingMode_$type } from "igniteui-angular-core"; import { DataTooltipGroupedPositionX_$type } from "igniteui-angular-core"; import { DataTooltipGroupedPositionY_$type } from "igniteui-angular-core"; import { IgxChartSummaryDescriptionCollection } from './igx-chart-summary-description-collection'; import { IgxChartSortDescriptionCollection } from './igx-chart-sort-description-collection'; import { IgxFilterExpressionCollection } from "igniteui-angular-core"; import { ValueModeCollection as ValueModeCollection_internal } from './ValueModeCollection'; import { IgxValueModeCollection } from './igx-value-mode-collection'; import { ValueLayerValueMode_$type } from './ValueLayerValueMode'; import { IgxFilterStringErrorsParsingEventArgs } from './igx-filter-string-errors-parsing-event-args'; import { SeriesHighlightedValuesDisplayMode_$type } from "igniteui-angular-core"; import { SeriesSelectionMode_$type } from './SeriesSelectionMode'; import { SeriesSelectionBehavior_$type } from './SeriesSelectionBehavior'; import { ChartSelectedItemCollection as ChartSelectedItemCollection_internal } from "./ChartSelectedItemCollection"; import { ChartSelection } from "./ChartSelection"; import { IgxSeriesViewerSelectedSeriesItemsChangedEventArgs } from "./igx-series-viewer-selected-series-items-changed-event-args"; import { IgxChartSelectedItemCollection } from "./igx-chart-selected-item-collection"; import { CalloutCollisionMode_$type } from "igniteui-angular-core"; import { Visibility_$type } from "igniteui-angular-core"; import { IgxDomainChartPlotAreaPointerEventArgs } from './igx-domain-chart-plot-area-pointer-event-args'; import { IgxTrendLineTypeCollection } from './igx-trend-line-type-collection'; import { TrendLineTypeCollection as TrendLineTypeCollection_internal } from './TrendLineTypeCollection'; import { IgxDomainChartTestingInfo } from './igx-domain-chart-testing-info'; import { IgxCalloutLabelUpdatingEventArgs } from './igx-callout-label-updating-event-args'; import { IgxUserAnnotationInformationEventArgs } from "./igx-user-annotation-information-event-args"; import { IgxUserAnnotationToolTipContentUpdatingEventArgs } from "./igx-user-annotation-tool-tip-content-updating-event-args"; import * as i0 from "@angular/core"; /** * Represents a base class for all domain charts that can plot scatter data and shapefiles * * ```html * <igx-category-chart * yAxisMinimumValue="0" * [dataSource]="data" * bottomMargin= 20> * </igx-category-chart> * ``` */ export let IgxDomainChartComponent = /*@__PURE__*/ (() => { class IgxDomainChartComponent { constructor() { this._calloutsDataSource = null; this._selectedSeriesItems = null; this._focusedSeriesItems = null; this._markerTypes = null; this._trendLineTypes = null; this._calloutsAllowedPositions = null; this._valueLines = null; this.__p = null; this._hasUserValues = new Set(); this._stylingContainer = null; this._stylingParent = null; this._inStyling = false; this._userAnnotationInformationRequested = null; this._userAnnotationToolTipContentUpdating = null; this._seriesAdded = null; this._seriesRemoved = null; this._seriesPointerEnter = null; this._seriesPointerLeave = null; this._seriesPointerMove = null; this._seriesPointerDown = null; this._seriesPointerUp = null; this._seriesClick = null; this._plotAreaPointerEnter = null; this._plotAreaPointerLeave = null; this._plotAreaPointerMove = null; this._plotAreaPointerDown = null; this._plotAreaPointerUp = null; this._calloutStyleUpdating = null; this._calloutRenderStyleUpdating = null; this._calloutLabelUpdating = null; this._selectedSeriesItemsChanged = null; this._focusedSeriesItemsChanged = null; this._filterStringErrorsParsing = null; this._zoneRunner = null; if (this._styling) { NamePatcher.ensureStylablePatched(Object.getPrototypeOf(this)); } this._implementation = this.createImplementation(); this._implementation.externalObject = this; this.onImplementationCreated(); } createImplementation() { return null; } ngOnInit() { } get i() { return this._implementation; } onImplementationCreated() { } /** * Sets or gets the template reference to use for tooltips for all the series. * * */ get tooltipTemplate() { return this.i.tooltipTemplate; } set tooltipTemplate(v) { this.i.tooltipTemplate = v; } /** * Sets or gets the template references to use for tooltips for all the series, in order. * * */ get tooltipTemplates() { let ret = []; if (this.i.tooltipTemplates) { for (let ii = 0; ii < this.i.tooltipTemplates.count; ii++) { ret.push(this.i.tooltipTemplates.item(ii)); } } return ret; } set tooltipTemplates(v) { this.i.tooltipTemplates.clear(); if (v) { for (let ii = 0; ii < v.length; ii++) { this.i.tooltipTemplates.add(v[ii]); } } } get legend() { if (this.i.legend != null) return this.i.legend.externalObject; } set legend(v) { if (v != undefined && v != null) this.i.legend = v.i; } set calloutsDataSource(value) { this._calloutsDataSource = value; this.bindCalloutsData(); } get calloutsDataSource() { return this._calloutsDataSource; } bindCalloutsData() { if (this.i != null && this.i !== undefined) { this.i.calloutsItemsSource = this._calloutsDataSource; } } /** * Gets or sets the scaling value used to affect the pixel density of the control. * A higher scaling ratio will produce crisper visuals at the expense of memory. Lower values will cause the control * to appear blurry. */ get pixelScalingRatio() { return this.i.kj; } set pixelScalingRatio(v) { this.i.kj = +v; } /** * Gets or sets the left margin of chart title * * Use `titleLeftMargin` property for the left margin of chart title. * * ```html * <igx-category-chart * yAxisMinimumValue="0" * [dataSource]="data" * titleLeftMargin= 10> * </igx-category-chart> * ``` * * ```ts * this.chart.titleLeftMargin = 10; * ``` */ get titleLeftMargin() { return this.i.kw; } set titleLeftMargin(v) { this.i.kw = +v; } /** * Gets or sets the right margin of chart title * * Use `titleLeftMargin` property for the right margin of chart title. * * ```html * <igx-category-chart * yAxisMinimumValue="0" * [dataSource]="data" * titleRightMargin= 10> * </igx-category-chart> * ``` * * ```ts * this.chart.titleRightMargin = 10; * ``` */ get titleRightMargin() { return this.i.kx; } set titleRightMargin(v) { this.i.kx = +v; } /** * Gets or sets the top margin of chart title * * Use `titleTopMargin` property for the top margin of chart title. * * ```html * <igx-category-chart * yAxisMinimumValue="0" * [dataSource]="data" * title="Countries" * titleTopMargin=10 > * </igx-category-chart> * ``` * * ```ts * this.chart.titleTopMargin = 10; * ``` */ get titleTopMargin() { return this.i.ky; } set titleTopMargin(v) { this.i.ky = +v; } /** * Gets or sets the bottom margin of chart title * * Use `titleBottomMargin` property for the bottom margin of chart title. * * ```html * <igx-category-chart * yAxisMinimumValue="0" * [dataSource]="data" * titleBottomMargin= 10 > * </igx-category-chart> * ``` * * ```ts * this.chart.titleBottomMargin = 5; * ``` */ get titleBottomMargin() { return this.i.kv; } set titleBottomMargin(v) { this.i.kv = +v; } /** * Gets or sets the left margin of chart subtitle * * Use `subtitleLeftMargin` property for the left margin of chart subtitle. * * ```html * <igx-category-chart * yAxisMinimumValue="0" * [dataSource]="data" * subtitleLeftMargin= 20> * </igx-category-chart> * ``` * * ```ts * this.chart.subtitleLeftMargin = 20 ; * ``` */ get subtitleLeftMargin() { return this.i.kr; } set subtitleLeftMargin(v) { this.i.kr = +v; } /** * Gets or sets the top margin of chart subtitle * * Use `subtitleTopMargin` property for the top margin of chart subtitle. * * ```html * <igx-category-chart * yAxisMinimumValue="0" * [dataSource]="data" * subtitle= "This is a subtitle" * subtitleTopMargin=10> * </igx-category-chart> * ``` * * ```ts * this.chart.subtitleTopMargin = 10; * ``` */ get subtitleTopMargin() { return this.i.kt; } set subtitleTopMargin(v) { this.i.kt = +v; } /** * Gets or sets the right margin of chart subtitle * * Use `subtitleRightMargin` property for the right margin of chart subtitle. * * ```html * <igx-category-chart * yAxisMinimumValue="0" * [dataSource]="data" * subtitleRightMargin= 10> * </igx-category-chart> * ``` * * ```ts * this.chart.subtitleRightMargin = 20 ; * ``` */ get subtitleRightMargin() { return this.i.ks; } set subtitleRightMargin(v) { this.i.ks = +v; } /** * Gets or sets the bottom margin of chart subtitle * * Use `subtitleBottomMargin` property for the bottom margin of chart subtitle. * * ```html * <igx-category-chart * yAxisMinimumValue="0" * [dataSource]="data" * subtitleBottomMargin=10> * </igx-category-chart> * ``` * * ```ts * this.chart.subtitleBottomMargin = 10 ; * ``` */ get subtitleBottomMargin() { return this.i.kq; } set subtitleBottomMargin(v) { this.i.kq = +v; } /** * Gets or sets color of chart subtitle * * Use `subtitleTextColor` property to color the subtitle. * * ```html * <igx-category-chart * yAxisMinimumValue="0" * [dataSource]="data" * subtitle= "This is a subtitle" * subtitleTextColor= 'blue'> * </igx-category-chart> * ``` * * ```ts * this.chart.subtitleTextColor = "#ff0000" ; * ``` */ get subtitleTextColor() { return brushToString(this.i.aaf); } set subtitleTextColor(v) { this.i.aaf = stringToBrush(v); } /** * Gets or sets color of chart title * * Use `titleTextColor` property to color the chart title * * ```html * <igx-category-chart * yAxisMinimumValue="0" * [dataSource]="data" * titleTextColor= "red"> * </igx-category-chart> * ``` * * ```ts * this.chart.titleTextColor="red" ; * ``` */ get titleTextColor() { return brushToString(this.i.aag); } set titleTextColor(v) { this.i.aag = stringToBrush(v); } /** * Gets or sets the left margin of the chart content. * * Use the 'leftMargin' property for the left margin of the chart content. * * ```html * <igx-category-chart * yAxisMinimumValue="0" * [dataSource]="data" * leftMargin=20> * </igx-category-chart> * ``` * * ```ts * this.chart.leftMargin = 20; * ``` */ get leftMargin() { return this.i.kg; } set leftMargin(v) { this.i.kg = +v; } /** * Gets or sets the top margin of the chart content. * * Use `topMargin` property for the margin of the chart content. * * ```html * <igx-category-chart * yAxisMinimumValue="0" * [dataSource]="data" * topMargin= 20> * </igx-category-chart> * ``` * * ```ts * this.chart.topMargin=20; * ``` */ get topMargin() { return this.i.kz; } set topMargin(v) { this.i.kz = +v; } /** * Gets or sets the right margin of the chart content. * * Use `rightMargin` property for the right margin of the chart content. * * ```html * <igx-category-chart * yAxisMinimumValue="0" * [dataSource]="data" * rightMargin=20> * </igx-category-chart> * ``` * * ```ts * this.chart.rightMargin = 20 ; * ``` */ get rightMargin() { return this.i.kp; } set rightMargin(v) { this.i.kp = +v; } /** * Gets or sets the bottom margin around the chart content. * * Use the `bottomMargin` property for the bottom margin around the chart content. * * ```html * <igx-category-chart * yAxisMinimumValue="0" * [dataSource]="data" * bottomMargin= 20> * </igx-category-chart> * ``` * * ```ts * this.chart.bottomMargin=20; * ``` */ get bottomMargin() { return this.i.j1; } set bottomMargin(v) { this.i.j1 = +v; } /** * Gets or sets the duration used for animating series plots when the data is changing * * Use the `TransitionDuration` property to animating between data values. * * ```html * <igx-category-chart * yAxisMinimumValue="0" * [dataSource]="data" * transitionDuration="500"> * </igx-category-chart> * ``` * * ```ts * this.chart.transitionDuratio= 500; * ``` */ get transitionDuration() { return this.i.l8; } set transitionDuration(v) { this.i.l8 = +v; } /** * Gets or sets the easing function used for animating series plots when the data is changing. * This can be set to one of the known values "linear" or "cubic," or it can be set to an easing function which takes a single numeric parameter and returns a number. * * The 'transitionInEasingFunction' property used for easing function for animating series plots when the chart is loading into view. * * ```html * <igx-category-chart * yAxisMinimumValue="0" * [dataSource]="data" * transitionInEasingFunction= "cubic"> * </igx-category-chart> * ``` * * ```ts * this.chart.transitionInEasingFunction= this.cubicFunc; * * cubicFunc(time: number) : number * { * return time; * } * ``` */ get transitionEasingFunction() { return this.i.ey; } set transitionEasingFunction(v) { this.i.ey = v; } /** * Gets or sets the duration used for animating highlighting changes */ get highlightingTransitionDuration() { return this.i.l4; } set highlightingTransitionDuration(v) { this.i.l4 = +v; } /** * Gets or sets the duration used for animating Selection changes */ get selectionTransitionDuration() { return this.i.l7; } set selectionTransitionDuration(v) { this.i.l7 = +v; } /** * Gets or sets the duration used for animating Focus changes */ get focusTransitionDuration() { return this.i.l2; } set focusTransitionDuration(v) { this.i.l2 = +v; } /** * Gets or sets CSS font property for the chart subtitle * * Use `subtitleTextStyle` property for the CSS font of the chart subtitle. * * ```html * <igx-category-chart * yAxisMinimumValue="0" * [dataSource]="data" * subtitle= "This is a subtitle" * subtitleTextStyle ="16pt Verdona"> * </igx-category-chart> * ``` * * ```ts * this.chart.subtitleTextStyle= "16pt Verdona"; * ``` */ get subtitleTextStyle() { return this.i.tt; } set subtitleTextStyle(v) { this.i.tt = v; } /** * Gets or sets CSS font property for the chart title * * Use `titleTextStyle` property for the CSS font property of the chart title * * ```html * <igx-category-chart * yAxisMinimumValue="0" * [dataSource]="data" * titleTextStyle= "24pt Verdona"> * </igx-category-chart> * ``` * * ```ts * this.chart.xAxisTitleTextStyle = "24pt Verdona"; * ``` */ get titleTextStyle() { return this.i.t4; } set titleTextStyle(v) { this.i.t4 = v; } get isDetached() { return this.i.isDetached; } get dataToolTipGroupingMode() { return this.i.b0; } set dataToolTipGroupingMode(v) { this.i.b0 = ensureEnum(DataToolTipLayerGroupingMode_$type, v); } /** * Gets or sets the offset of the tooltip layer on the X axis. */ get dataToolTipPositionOffsetX() { return this.i.j6; } set dataToolTipPositionOffsetX(v) { this.i.j6 = +v; } /** * Gets or sets the offset of the tooltip layer on the Y axis. */ get dataToolTipPositionOffsetY() { return this.i.j7; } set dataToolTipPositionOffsetY(v) { this.i.j7 = +v; } /** * Gets or sets the offset of the tooltip layer on the X axis. */ get dataToolTipDefaultPositionOffsetX() { return this.i.j4; } set dataToolTipDefaultPositionOffsetX(v) { this.i.j4 = +v; } /** * Gets or sets the offset of the tooltip layer on the Y axis. */ get dataToolTipDefaultPositionOffsetY() { return this.i.j5; } set dataToolTipDefaultPositionOffsetY(v) { this.i.j5 = +v; } /** * Gets or sets the tooltip position mode on the X axis for grouped series. */ get dataToolTipGroupedPositionModeX() { return this.i.bw; } set dataToolTipGroupedPositionModeX(v) { this.i.bw = ensureEnum(DataTooltipGroupedPositionX_$type, v); } /** * Gets or sets the tooltip position mode on the Y axis for grouped series. */ get dataToolTipGroupedPositionModeY() { return this.i.by; } set dataToolTipGroupedPositionModeY(v) { this.i.by = ensureEnum(DataTooltipGroupedPositionY_$type, v); } /** * Gets or sets whether the data legend should update when the series data is mutated. */ get dataToolTipShouldUpdateWhenSeriesDataChanges() { return this.i.g3; } set dataToolTipShouldUpdateWhenSeriesDataChanges(v) { this.i.g3 = ensureBool(v); } /** * Gets or sets indexes, titles, or names of series to include in displaying in the data tooltip, e.g. "0, 1" or "Series1 Title, Series2 Title" * The DataToolTipExcludedSeries property takes precedence over values of DataToolTipIncludedSeries property */ get dataToolTipIncludedSeries() { return this.i.m; } set dataToolTipIncludedSeries(v) { if (v && !Array.isArray(v) && typeof (v) == "string") { const re = /\s*(?:,|\s|$)\s*/gm; v = v.split(re); } this.i.m = v; } /** * Gets or sets indexes, titles, or names of series to exclude from displaying in the data tooltip, e.g. "0, 1" or "Series1 Title, Series2 Title" * The DataToolTipExcludedSeries property takes precedence over values of DataToolTipIncludedSeries property */ get dataToolTipExcludedSeries() { return this.i.j; } set dataToolTipExcludedSeries(v) { if (v && !Array.isArray(v) && typeof (v) == "string") { const re = /\s*(?:,|\s|$)\s*/gm; v = v.split(re); } this.i.j = v; } /** * Gets or sets names of data columns or their labels to include in displaying in the data legend, e.g. "High, Low" or "H, L" * The DataToolTipExcludedColumns property takes precedence over values of DataToolTipIncludedColumns property */ get dataToolTipIncludedColumns() { return this.i.l; } set dataToolTipIncludedColumns(v) { if (v && !Array.isArray(v) && typeof (v) == "string") { const re = /\s*(?:,|\s|$)\s*/gm; v = v.split(re); } this.i.l = v; } /** * Gets or sets names of data columns or their labels to exclude from displaying in the data legend, e.g. "High, Low" or "H, L" * The DataToolTipExcludedColumns property takes precedence over values of DataToolTipIncludedColumns property */ get dataToolTipExcludedColumns() { return this.i.i; } set dataToolTipExcludedColumns(v) { if (v && !Array.isArray(v) && typeof (v) == "string") { const re = /\s*(?:,|\s|$)\s*/gm; v = v.split(re); } this.i.i = v; } /** * Gets or sets mode for abbreviating large numbers displayed in the legend * This property is ignored when setting ValueFormatSpecifiers or ValueFormatString properties */ get dataToolTipValueFormatAbbreviation() { return this.i.be; } set dataToolTipValueFormatAbbreviation(v) { this.i.be = ensureEnum(DataAbbreviationMode_$type, v); } /** * Gets or sets maximum digits for formatting numbers displayed in the legend * This property is ignored when setting ValueFormatSpecifiers or ValueFormatString properties */ get dataToolTipValueFormatMaxFractions() { return this.i.ly; } set dataToolTipValueFormatMaxFractions(v) { this.i.ly = +v; } /** * Gets or sets minimum digits for formatting numbers displayed in the legend * This property is ignored when setting ValueFormatSpecifiers or ValueFormatString properties */ get dataToolTipValueFormatMinFractions() { return this.i.lz; } set dataToolTipValueFormatMinFractions(v) { this.i.lz = +v; } /** * Gets or sets the mode for displaying values in the data legend, e.g. Currency ($500.25), Decimal (500.25), Integer (500) */ get dataToolTipValueFormatMode() { return this.i.bu; } set dataToolTipValueFormatMode(v) { this.i.bu = ensureEnum(DataLegendValueMode_$type, v); } /** * Gets or sets globalization culture when displaying values as currencies, e.g. use "en-GB" to display British pound symbol when the ValueFormatMode property is set to 'Currency' mode * This property is ignored when setting ValueFormatSpecifiers or ValueFormatString properties */ get dataToolTipValueFormatCulture() { return this.i.qp; } set dataToolTipValueFormatCulture(v) { this.i.qp = v; } /** * Gets or sets whether or not use grouping separator, e.g, 15,000 for 15000 * This property is ignored when setting ValueFormatSpecifiers or ValueFormatString properties */ get dataToolTipValueFormatUseGrouping() { return this.i.g4; } set dataToolTipValueFormatUseGrouping(v) { this.i.g4 = ensureBool(v); } /** * Gets or sets the format string for values displayed in the data legend. */ get dataToolTipValueFormatString() { return this.i.qv; } set dataToolTipValueFormatString(v) { this.i.qv = v; } /** * Gets or sets the format specifiers to use with the ValueFormatString string. */ get dataToolTipValueFormatSpecifiers() { return this.i.n; } set dataToolTipValueFormatSpecifiers(v) { if (v && !Array.isArray(v) && typeof (v) == "string") { const re = /\s*(?:,|\s|$)\s*/gm; v = v.split(re); } this.i.n = v; } get dataToolTipValueRowMarginBottom() { return this.i.aa9 ? this.i.aa9.bottom : NaN; } set dataToolTipValueRowMarginBottom(v) { this.ensureDataToolTipValueRowMargin(); this.i.aa9.bottom = +v; this.i.aa9 = this.i.aa9; } get dataToolTipValueRowMarginLeft() { return this.i.aa9 ? this.i.aa9.left : NaN; } set dataToolTipValueRowMarginLeft(v) { this.ensureDataToolTipValueRowMargin(); this.i.aa9.left = +v; this.i.aa9 = this.i.aa9; } get dataToolTipValueRowMarginRight() { return this.i.aa9 ? this.i.aa9.right : NaN; } set dataToolTipValueRowMarginRight(v) { this.ensureDataToolTipValueRowMargin(); this.i.aa9.right = +v; this.i.aa9 = this.i.aa9; } get dataToolTipValueRowMarginTop() { return this.i.aa9 ? this.i.aa9.top : NaN; } set dataToolTipValueRowMarginTop(v) { this.ensureDataToolTipValueRowMargin(); this.i.aa9.top = +v; this.i.aa9 = this.i.aa9; } ensureDataToolTipValueRowMargin() { if (this.i.aa9) { return; } this.i.aa9 = new Thickness(2); } /** * Gets or sets whether to show series rows. */ get dataToolTipValueRowVisible() { return this.i.g5; } set dataToolTipValueRowVisible(v) { this.i.g5 = ensureBool(v); } /** * Gets or sets text displayed when data column is missing a value, e.g. "no data" */ get dataToolTipValueTextWhenMissingData() { return this.i.q4; } set dataToolTipValueTextWhenMissingData(v) { this.i.q4 = v; } /** * Gets or sets whether to use series colors when displaying values in the legend */ get dataToolTipValueTextUseSeriesColors() { return this.i.g6; } set dataToolTipValueTextUseSeriesColors(v) { this.i.g6 = ensureBool(v); } get dataToolTipValueTextMarginBottom() { return this.i.aba ? this.i.aba.bottom : NaN; } set dataToolTipValueTextMarginBottom(v) { this.ensureDataToolTipValueTextMargin(); this.i.aba.bottom = +v; this.i.aba = this.i.aba; } get dataToolTipValueTextMarginLeft() { return this.i.aba ? this.i.aba.left : NaN; } set dataToolTipValueTextMarginLeft(v) { this.ensureDataToolTipValueTextMargin(); this.i.aba.left = +v; this.i.aba = this.i.aba; } get dataToolTipValueTextMarginRight() { return this.i.aba ? this.i.aba.right : NaN; } set dataToolTipValueTextMarginRight(v) { this.ensureDataToolTipValueTextMargin(); this.i.aba.right = +v; this.i.aba = this.i.aba; } get dataToolTipValueTextMarginTop() { return this.i.aba ? this.i.aba.top : NaN; } set dataToolTipValueTextMarginTop(v) { this.ensureDataToolTipValueTextMargin(); this.i.aba.top = +v; this.i.aba = this.i.aba; } ensureDataToolTipValueTextMargin() { if (this.i.aba) { return; } this.i.aba = new Thickness(2); } /** * Gets or sets the units text color. */ get dataToolTipValueTextColor() { return brushToString(this.i.z3); } set dataToolTipValueTextColor(v) { this.i.z3 = stringToBrush(v); } /** * Gets or Sets the style to use for the units text. */ get dataToolTipValueTextStyle() { if (this.i.fk == null) { return null; } return this.i.fk.fontString; } set dataToolTipValueTextStyle(v) { let fi = new FontInfo(); fi.fontString = v; this.i.fk = fi; } /** * Gets or sets the format string for header text displayed in the data legend. */ get dataToolTipHeaderFormatString() { return this.i.pf; } set dataToolTipHeaderFormatString(v) { this.i.pf = v; } /** * Gets or sets the format specifiers to use with the HeaderFormatString string. */ get dataToolTipHeaderFormatSpecifiers() { return this.i.k; } set dataToolTipHeaderFormatSpecifiers(v) { if (v && !Array.isArray(v) && typeof (v) == "string") { const re = /\s*(?:,|\s|$)\s*/gm; v = v.split(re); } this.i.k = v; } /** * Gets or sets globalization culture when displaying header as date time * This property is ignored when setting HeaderFormatSpecifiers or HeaderFormatString properties */ get dataToolTipHeaderFormatCulture() { return this.i.pb; } set dataToolTipHeaderFormatCulture(v) { this.i.pb = v; } /** * Gets or sets date format for the header * This property is ignored when setting HeaderFormatSpecifiers or HeaderFormatString properties */ get dataToolTipHeaderFormatDate() { return this.i.bk; } set dataToolTipHeaderFormatDate(v) { this.i.bk = ensureEnum(DataLegendHeaderDateMode_$type, v); } /** * Gets or sets time format for the header * This property is ignored when setting HeaderFormatSpecifiers or HeaderFormatString properties */ get dataToolTipHeaderFormatTime() { return this.i.bm; } set dataToolTipHeaderFormatTime(v) { this.i.bm = ensureEnum(DataLegendHeaderTimeMode_$type, v); } /** * Gets or sets the HeaderText for the data legend. */ get dataToolTipHeaderText() { return this.i.pk; } set dataToolTipHeaderText(v) { this.i.pk = v; } /** * Gets or sets the header text color. */ get dataToolTipHeaderTextColor() { return brushToString(this.i.zv); } set dataToolTipHeaderTextColor(v) { this.i.zv = stringToBrush(v); } get dataToolTipHeaderTextMarginBottom() { return this.i.aa3 ? this.i.aa3.bottom : NaN; } set dataToolTipHeaderTextMarginBottom(v) { this.ensureDataToolTipHeaderTextMargin(); this.i.aa3.bottom = +v; this.i.aa3 = this.i.aa3; } get dataToolTipHeaderTextMarginLeft() { return this.i.aa3 ? this.i.aa3.left : NaN; } set dataToolTipHeaderTextMarginLeft(v) { this.ensureDataToolTipHeaderTextMargin(); this.i.aa3.left = +v; this.i.aa3 = this.i.aa3; } get dataToolTipHeaderTextMarginRight() { return this.i.aa3 ? this.i.aa3.right : NaN; } set dataToolTipHeaderTextMarginRight(v) { this.ensureDataToolTipHeaderTextMargin(); this.i.aa3.right = +v; this.i.aa3 = this.i.aa3; } get dataToolTipHeaderTextMarginTop() { return this.i.aa3 ? this.i.aa3.top : NaN; } set dataToolTipHeaderTextMarginTop(v) { this.ensureDataToolTipHeaderTextMargin(); this.i.aa3.top = +v; this.i.aa3 = this.i.aa3; } ensureDataToolTipHeaderTextMargin() { if (this.i.aa3) { return; } this.i.aa3 = new Thickness(2); } get dataToolTipHeaderRowMarginBottom() { return this.i.aa2 ? this.i.aa2.bottom : NaN; } set dataToolTipHeaderRowMarginBottom(v) { this.ensureDataToolTipHeaderRowMargin(); this.i.aa2.bottom = +v; this.i.aa2 = this.i.aa2; } get dataToolTipHeaderRowMarginLeft() { return this.i.aa2 ? this.i.aa2.left : NaN; } set dataToolTipHeaderRowMarginLeft(v) { this.ensureDataToolTipHeaderRowMargin(); this.i.aa2.left = +v; this.i.aa2 = this.i.aa2; } get dataToolTipHeaderRowMarginRight() { return this.i.aa2 ? this.i.aa2.right : NaN; } set dataToolTipHeaderRowMarginRight(v) { this.ensureDataToolTipHeaderRowMargin(); this.i.aa2.right = +v; this.i.aa2 = this.i.aa2; } get dataToolTipHeaderRowMarginTop() { return this.i.aa2 ? this.i.aa2.top : NaN; } set dataToolTipHeaderRowMarginTop(v) { this.ensureDataToolTipHeaderRowMargin(); this.i.aa2.top = +v; this.i.aa2 = this.i.aa2; } ensureDataToolTipHeaderRowMargin() { if (this.i.aa2) { return; } this.i.aa2 = new Thickness(2); } /** * Gets or sets whether to show Header row. */ get dataToolTipHeaderRowVisible() { return this.i.g2; } set dataToolTipHeaderRowVisible(v) { this.i.g2 = ensureBool(v); } /** * Gets or Sets the style to use for the header text. */ get dataToolTipHeaderTextStyle() { if (this.i.fc == null) { return null; } return this.i.fc.fontString; } set dataToolTipHeaderTextStyle(v) { let fi = new FontInfo(); fi.fontString = v; this.i.fc = fi; } /** * Gets or sets the Group text color. */ get dataToolTipGroupTextColor() { return brushToString(this.i.zu); } set dataToolTipGroupTextColor(v) { this.i.zu = stringToBrush(v); } get dataToolTipGroupTextMarginBottom() { return this.i.aa1 ? this.i.aa1.bottom : NaN; } set dataToolTipGroupTextMarginBottom(v) { this.ensureDataToolTipGroupTextMargin(); this.i.aa1.bottom = +v; this.i.aa1 = this.i.aa1; } get dataToolTipGroupTextMarginLeft() { return this.i.aa1 ? this.i.aa1.left : NaN; } set dataToolTipGroupTextMarginLeft(v) { this.ensureDataToolTipGroupTextMargin(); this.i.aa1.left = +v; this.i.aa1 = this.i.aa1; } get dataToolTipGroupTextMarginRight() { return this.i.aa1 ? this.i.aa1.right : NaN; } set dataToolTipGroupTextMarginRight(v) { this.ensureDataToolTipGroupTextMargin(); this.i.aa1.right = +v; this.i.aa1 = this.i.aa1; } get dataToolTipGroupTextMarginTop() { return this.i.aa1 ? this.i.aa1.top : NaN; } set dataToolTipGroupTextMarginTop(v) { this.ensureDataToolTipGroupTextMargin(); this.i.aa1.top = +v; this.i.aa1 = this.i.aa1; } ensureDataToolTipGroupTextMargin() { if (this.i.aa1) { return; } this.i.aa1 = new Thickness(2); } get dataToolTipGroupRowMarginBottom() { return this.i.aa0 ? this.i.aa0.bottom : NaN; } set dataToolTipGroupRowMarginBottom(v) { this.ensureDataToolTipGroupRowMargin(); this.i.aa0.bottom = +v; this.i.aa0 = this.i.aa0; } get dataToolTipGroupRowMarginLeft() { return this.i.aa0 ? this.i.aa0.left : NaN; } set dataToolTipGroupRowMarginLeft(v) { this.ensureDataToolTipGroupRowMargin(); this.i.aa0.left = +v; this.i.aa0 = this.i.aa0; } get dataToolTipGroupRowMarginRight() { return this.i.aa0 ? this.i.aa0.right : NaN; } set dataToolTipGroupRowMarginRight(v) { this.ensureDataToolTipGroupRowMargin(); this.i.aa0.right = +v; this.i.aa0 = this.i.aa0; } get dataToolTipGroupRowMarginTop() { return this.i.aa0 ? this.i.aa0.top : NaN; } set dataToolTipGroupRowMarginTop(v) { this.ensureDataToolTipGroupRowMargin(); this.i.aa0.top = +v; this.i.aa0 = this.i.aa0; } ensureDataToolTipGroupRowMargin() { if (this.i.aa0) { return; } this.i.aa0 = new Thickness(2); } /** * Gets or sets whether to show Group row. */ get dataToolTipGroupRowVisible() { return this.i.g1; } set dataToolTipGroupRowVisible(v) { this.i.g1 = ensureBool(v); } /** * Gets or Sets the style to use for the Group text. */ get dataToolTipGroupTextStyle() { if (this.i.fb == null) { return null; } return this.i.fb.fontString; } set dataToolTipGroupTextStyle(v) { let fi = new FontInfo(); fi.fontString = v; this.i.fb = fi; } /** * Gets or sets the summary text color. */ get dataToolTipSummaryTitleTextColor() { return brushToString(this.i.zy); } set dataToolTipSummaryTitleTextColor(v) { this.i.zy = stringToBrush(v); } /** * Gets or Sets the style to use for the summary text. */ get dataToolTipSummaryTitleTextStyle() { if (this.i.ff == null) { return null; } return this.i.ff.fontString; } set dataToolTipSummaryTitleTextStyle(v) { let fi = new FontInfo(); fi.fontString = v; this.i.ff = fi; } /** * Gets or sets the SummaryType for the data legend. */ get dataToolTipSummaryType() { return this.i.bq; } set dataToolTipSummaryType(v) { this.i.bq = ensureEnum(DataLegendSummaryType_$type, v); } /** * Gets or sets the SummaryTitleText for the data legend. */ get dataToolTipSummaryTitleText() { return this.i.p3; } set dataToolTipSummaryTitleText(v) { this.i.p3 = v; } get dataToolTipSummaryTitleTextMarginBottom() { return this.i.aa6 ? this.i.aa6.bottom : NaN; } set dataToolTipSummaryTitleTextMarginBottom(v) { this.ensureDataToolTipSummaryTitleTextMargin(); this.i.aa6.bottom = +v; this.i.aa6 = this.i.aa6; } get dataToolTipSummaryTitleTextMarginLeft() { return this.i.aa6 ? this.i.aa6.left : NaN; } set dataToolTipSummaryTitleTextMarginLeft(v) { this.ensureDataToolTipSummaryTitleTextMargin(); this.i.aa6.left = +v; this.i.aa6 = this.i.aa6; } get dataToolTipSummaryTitleTextMarginRight() { return this.i.aa6 ? this.i.aa6.right : NaN; } set dataToolTipSummaryTitleTextMarginRight(v) { this.ensureDataToolTipSummaryTitleTextMargin(); this.i.aa6.right = +v; this.i.aa6 = this.i.aa6; } get dataToolTipSummaryTitleTextMarginTop() { return this.i.aa6 ? this.i.aa6.top : NaN; } set dataToolTipSummaryTitleTextMarginTop(v) { this.ensureDataToolTipSummaryTitleTextMargin(); this.i.aa6.top = +v; this.i.aa6 = this.i.aa6; } ensureDataToolTipSummaryTitleTextMargin() { if (this.i.aa6) { return; } this.i.aa6 = new Thickness(2); } get dataToolTipSummaryRowMarginBottom() { return this.i.aa5 ? this.i.aa5.bottom : NaN; } set dataToolTipSummaryRowMarginBottom(v) { this.ensureDataToolTipSummaryRowMargin(); this.i.aa5.bottom = +v; this.i.aa5 = this.i.aa5; } get dataToolTipSummaryRowMarginLeft() { return this.i.aa5 ? this.i.aa5.left : NaN; } set dataToolTipSummaryRowMarginLeft(v) { this.ensureDataToolTipSummaryRowMargin(); this.i.aa5.left = +v; this.i.aa5 = this.i.aa5; } get dataToolTipSummaryRowMarginRight() { return this.i.aa5 ? this.i.aa5.right : NaN; } set dataToolTipSummaryRowMarginRight(v) { this.ensureDataToolTipSummaryRowMargin(); this.i.aa5.right = +v; this.i.aa5 = this.i.aa5; } get dataToolTipSummaryRowMarginTop() { return this.i.aa5 ? this.i.aa5.top : NaN; } set dataToolTipSummaryRowMarginTop(v) { this.ensureDataToolTipSummaryRowMargin(); this.i.aa5.top = +v; this.i.aa5 = this.i.aa5; } ensureDataToolTipSummaryRowMargin() { if (this.i.aa5) { return; } this.i.aa5 = new Thickness(2); } /** * Gets or sets the units text color. */ get dataToolTipSummaryValueTextColor() { return brushToString(this.i.z0); } set dataToolTipSummaryValueTextColor(v) { this.i.z0 = stringToBrush(v); } /** * Gets or Sets the style to use for the units text. */ get dataToolTipSummaryValueTextStyle() { if (this.i.fh == null) { return null; } return this.i.fh.fontString; } set dataToolTipSummaryValueTextStyle(v) { let fi = new FontInfo(); fi.fontString = v; this.i.fh = fi; } /** * Gets or sets the units text for the data legend. */ get dataToolTipSummaryLabelText() { return this.i.py; } set dataToolTipSummaryLabelText(v) { this.i.py = v; } /** * Gets or sets the units text color. */ get dataToolTipSummaryLabelTextColor() { return brushToString(this.i.zx); } set dataToolTipSummaryLabelTextColor(v) { this.i.zx = stringToBrush(v); } /** * Gets or Sets the style to use for the units text. */ get dataToolTipSummaryLabelTextStyle() { if (this.i.fe == null) { return null; } return this.i.fe.fontString; } set dataToolTipSummaryLabelTextStyle(v) { let fi = new FontInfo(); fi.fontString = v; this.i.fe = fi; } /** * Gets or sets the units text for the data l