import { Component, forwardRef, Input, ChangeDetectionStrategy } from '@angular/core';
import { IgxAxisComponent } from "./igx-axis-component";
import { DataToolTipLayerGroupingMode_$type } from "igniteui-angular-core";
import { DataTooltipGroupedPositionX_$type } from "igniteui-angular-core";
import { DataTooltipGroupedPositionY_$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 { DataLegendSummaryType_$type } from "igniteui-angular-core";
import { LegendItemBadgeShape_$type } from "igniteui-angular-core";
import { DataLegendLayoutMode_$type } from "igniteui-angular-core";
import { DataLegendUnitsMode_$type } from "igniteui-angular-core";
import { DataLegendLabelMode_$type } from "igniteui-angular-core";
import { IgxAnnotationLayerComponent } from "./igx-annotation-layer-component";
import { IgxSeriesComponent } from "./igx-series-component";
import { DataToolTipLayer } from "./DataToolTipLayer";
import { ensureBool, ensureEnum, brushToString, stringToBrush, arrayFindByName } from "igniteui-angular-core";
import { Thickness } from "igniteui-angular-core";
import { FontInfo } from "igniteui-angular-core";
import * as i0 from "@angular/core";
/**
 * Represents an annotation layer that displays grouped tooltips with summaries for series.
*/
export let IgxDataToolTipLayerComponent = /*@__PURE__*/ (() => {
    class IgxDataToolTipLayerComponent extends IgxAnnotationLayerComponent {
        constructor() {
            super();
        }
        createImplementation() {
            return new DataToolTipLayer();
        }
        /**
                                     * @hidden
                                     */
        get i() {
            return this._implementation;
        }
        /**
         * Gets whether the series is an annotation layer displayed only when hovering over the chart.
        */
        get isAnnotationHoverLayer() {
            return this.i.et;
        }
        /**
         * Gets whether the default tooltip behaviors for the chart are disabled if this layer is present.
        */
        get isDefaultTooltipBehaviorDisabled() {
            return this.i.e4;
        }
        /**
         * Gets or sets the Axis to target this annotation to. If null, this annotation layer will not render content.
        */
        get targetAxis() {
            const r = this.i.aao;
            if (r == null) {
                return null;
            }
            if (!r.externalObject) {
                let e = IgxAxisComponent._createFromInternal(r);
                if (e) {
                    e._implementation = r;
                }
                r.externalObject = e;
            }
            return r.externalObject;
        }
        set targetAxis(v) {
            if (v != null && this._stylingContainer && v._styling)
                v._styling(this._stylingContainer, this, this);
            v == null ? this.i.aao = null : this.i.aao = v.i;
        }
        /**
         * Gets or sets whether to use value interpolation when drawing the tooltips.
        */
        get useInterpolation() {
            return this.i.ab6;
        }
        set useInterpolation(v) {
            this.i.ab6 = ensureBool(v);
        }
        /**
         * Gets or sets the grouping mode to apply to use for the tooltip layer.
        */
        get groupingMode() {
            return this.i.aa7;
        }
        set groupingMode(v) {
            this.i.aa7 = ensureEnum(DataToolTipLayerGroupingMode_$type, v);
        }
        /**
         * Gets the actual resolved tooltip layer grouping mode.
        */
        get actualGroupingMode() {
            return this.i.aa6;
        }
        set actualGroupingMode(v) {
            this.i.aa6 = ensureEnum(DataToolTipLayerGroupingMode_$type, v);
        }
        /**
         * Gets or sets the offset of the tooltip layer on the X axis.
        */
        get positionOffsetX() {
            return this.i.acf;
        }
        set positionOffsetX(v) {
            this.i.acf = +v;
        }
        /**
         * Gets or sets the offset of the tooltip layer on the Y axis.
        */
        get positionOffsetY() {
            return this.i.acg;
        }
        set positionOffsetY(v) {
            this.i.acg = +v;
        }
        /**
         * Gets or sets the default offset of the tooltip layer on the X axis.
        */
        get defaultPositionOffsetX() {
            return this.i.acd;
        }
        set defaultPositionOffsetX(v) {
            this.i.acd = +v;
        }
        /**
         * Gets or sets the default offset of the tooltip layer on the Y axis.
        */
        get defaultPositionOffsetY() {
            return this.i.ace;
        }
        set defaultPositionOffsetY(v) {
            this.i.ace = +v;
        }
        /**
         * Gets or sets the tooltip position mode on the X axis for grouped series.
        */
        get groupedPositionModeX() {
            return this.i.aaz;
        }
        set groupedPositionModeX(v) {
            this.i.aaz = ensureEnum(DataTooltipGroupedPositionX_$type, v);
        }
        /**
         * Gets the actual resolved tooltip position mode on the X axis for grouped series.
        */
        get actualGroupedPositionModeX() {
            return this.i.aay;
        }
        set actualGroupedPositionModeX(v) {
            this.i.aay = ensureEnum(DataTooltipGroupedPositionX_$type, v);
        }
        /**
         * Gets or sets the tooltip position mode on the Y axis for grouped series.
        */
        get groupedPositionModeY() {
            return this.i.aa3;
        }
        set groupedPositionModeY(v) {
            this.i.aa3 = ensureEnum(DataTooltipGroupedPositionY_$type, v);
        }
        /**
         * Gets the actual resolved tooltip position mode on the Y axis for grouped series.
        */
        get actualGroupedPositionModeY() {
            return this.i.aa2;
        }
        set actualGroupedPositionModeY(v) {
            this.i.aa2 = ensureEnum(DataTooltipGroupedPositionY_$type, v);
        }
        /**
         * Gets or sets whether the data legend should update when the series data is mutated.
        */
        get shouldUpdateWhenSeriesDataChanges() {
            return this.i.ab5;
        }
        set shouldUpdateWhenSeriesDataChanges(v) {
            this.i.ab5 = ensureBool(v);
        }
        /**
         * Gets or sets indexes, titles, or names of series to include in displaying in the data legend, e.g. "0, 1" or "Series1 Title, Series2 Title"
         * The ExcludedSeries property takes precedence over values of IncludedSeries property
        */
        get includedSeries() {
            return this.i.aal;
        }
        set includedSeries(v) {
            if (v && !Array.isArray(v) && typeof (v) == "string") {
                const re = /\s*(?:,|\s|$)\s*/gm;
                v = v.split(re);
            }
            this.i.aal = v;
        }
        /**
         * Gets or sets indexes, titles, or names of series to exclude from displaying in the data legend, e.g. "0, 1" or "Series1 Title, Series2 Title"
         * The ExcludedSeries property takes precedence over values of IncludedSeries property
        */
        get excludedSeries() {
            return this.i.aag;
        }
        set excludedSeries(v) {
            if (v && !Array.isArray(v) && typeof (v) == "string") {
                const re = /\s*(?:,|\s|$)\s*/gm;
                v = v.split(re);
            }
            this.i.aag = v;
        }
        /**
         * Gets or sets names of data columns or their labels to include in displaying in the data tooltip, e.g. "High, Low" or "H, L"
         * The ExcludedColumns property takes precedence over values of IncludedColumns property
        */
        get includedColumns() {
            return this.i.aak;
        }
        set includedColumns(v) {
            if (v && !Array.isArray(v) && typeof (v) == "string") {
                const re = /\s*(?:,|\s|$)\s*/gm;
                v = v.split(re);
            }
            this.i.aak = v;
        }
        /**
         * Gets or sets names of data columns or their labels to exclude from displaying in the data tooltip, e.g. "High, Low" or "H, L"
         * The ExcludedColumns property takes precedence over values of IncludedColumns property
        */
        get excludedColumns() {
            return this.i.aaf;
        }
        set excludedColumns(v) {
            if (v && !Array.isArray(v) && typeof (v) == "string") {
                const re = /\s*(?:,|\s|$)\s*/gm;
                v = v.split(re);
            }
            this.i.aaf = v;
        }
        /**
         * Gets or sets mode for abbreviating large numbers displayed in the legend
         * This property is ignored when setting ValueFormatSpecifiers or ValueFormatString properties
        */
        get valueFormatAbbreviation() {
            return this.i.aap;
        }
        set valueFormatAbbreviation(v) {
            this.i.aap = 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 valueFormatMaxFractions() {
            return this.i.adg;
        }
        set valueFormatMaxFractions(v) {
            this.i.adg = +v;
        }
        /**
         * Gets or sets minimum digits for formatting numbers displayed in the legend
         * This property is ignored when setting ValueFormatSpecifiers or ValueFormatString properties
        */
        get valueFormatMinFractions() {
            return this.i.adh;
        }
        set valueFormatMinFractions(v) {
            this.i.adh = +v;
        }
        /**
         * Gets or sets the mode for displaying values in the data legend, e.g. Currency ($500.25), Decimal (500.25), Integer (500)
        */
        get valueFormatMode() {
            return this.i.aaw;
        }
        set valueFormatMode(v) {
            this.i.aaw = 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 valueFormatCulture() {
            return this.i.afk;
        }
        set valueFormatCulture(v) {
            this.i.afk = 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 valueFormatUseGrouping() {
            return this.i.ab7;
        }
        set valueFormatUseGrouping(v) {
            this.i.ab7 = ensureBool(v);
        }
        /**
         * Gets or sets the format string for values displayed in the data legend.
        */
        get valueFormatString() {
            return this.i.afq;
        }
        set valueFormatString(v) {
            this.i.afq = v;
        }
        /**
         * Gets or sets the format specifiers to use with the ValueFormatString string.
        */
        get valueFormatSpecifiers() {
            return this.i.aam;
        }
        set valueFormatSpecifiers(v) {
            if (v && !Array.isArray(v) && typeof (v) == "string") {
                const re = /\s*(?:,|\s|$)\s*/gm;
                v = v.split(re);
            }
            this.i.aam = v;
        }
        get valueRowMarginBottom() {
            return this.i.aiu ? this.i.aiu.bottom : NaN;
        }
        set valueRowMarginBottom(v) {
            this.ensureValueRowMargin();
            this.i.aiu.bottom = +v;
            this.i.aiu = this.i.aiu;
        }
        get valueRowMarginLeft() {
            return this.i.aiu ? this.i.aiu.left : NaN;
        }
        set valueRowMarginLeft(v) {
            this.ensureValueRowMargin();
            this.i.aiu.left = +v;
            this.i.aiu = this.i.aiu;
        }
        get valueRowMarginRight() {
            return this.i.aiu ? this.i.aiu.right : NaN;
        }
        set valueRowMarginRight(v) {
            this.ensureValueRowMargin();
            this.i.aiu.right = +v;
            this.i.aiu = this.i.aiu;
        }
        get valueRowMarginTop() {
            return this.i.aiu ? this.i.aiu.top : NaN;
        }
        set valueRowMarginTop(v) {
            this.ensureValueRowMargin();
            this.i.aiu.top = +v;
            this.i.aiu = this.i.aiu;
        }
        ensureValueRowMargin() {
            if (this.i.aiu) {
                return;
            }
            this.i.aiu = new Thickness(2);
        }
        /**
         * Gets or sets whether to show series rows.
        */
        get valueRowVisible() {
            return this.i.ab8;
        }
        set valueRowVisible(v) {
            this.i.ab8 = ensureBool(v);
        }
        /**
         * Gets or sets text displayed when data column is missing a value, e.g. "no data"
        */
        get valueTextWhenMissingData() {
            return this.i.afz;
        }
        set valueTextWhenMissingData(v) {
            this.i.afz = v;
        }
        /**
         * Gets or sets whether to use series colors when displaying values in the legend
        */
        get valueTextUseSeriesColors() {
            return this.i.ab9;
        }
        set valueTextUseSeriesColors(v) {
            this.i.ab9 = ensureBool(v);
        }
        get valueTextMarginBottom() {
            return this.i.aiv ? this.i.aiv.bottom : NaN;
        }
        set valueTextMarginBottom(v) {
            this.ensureValueTextMargin();
            this.i.aiv.bottom = +v;
            this.i.aiv = this.i.aiv;
        }
        get valueTextMarginLeft() {
            return this.i.aiv ? this.i.aiv.left : NaN;
        }
        set valueTextMarginLeft(v) {
            this.ensureValueTextMargin();
            this.i.aiv.left = +v;
            this.i.aiv = this.i.aiv;
        }
        get valueTextMarginRight() {
            return this.i.aiv ? this.i.aiv.right : NaN;
        }
        set valueTextMarginRight(v) {
            this.ensureValueTextMargin();
            this.i.aiv.right = +v;
            this.i.aiv = this.i.aiv;
        }
        get valueTextMarginTop() {
            return this.i.aiv ? this.i.aiv.top : NaN;
        }
        set valueTextMarginTop(v) {
            this.ensureValueTextMargin();
            this.i.aiv.top = +v;
            this.i.aiv = this.i.aiv;
        }
        ensureValueTextMargin() {
            if (this.i.aiv) {
                return;
            }
            this.i.aiv = new Thickness(2);
        }
        /**
         * Gets or sets the units text color.
        */
        get valueTextColor() {
            return brushToString(this.i.aid);
        }
        set valueTextColor(v) {
            this.i.aid = stringToBrush(v);
        }
        /**
         * Gets or Sets the style to use for the units text.
        */
        get valueTextStyle() {
            if (this.i.abv == null) {
                return null;
            }
            return this.i.abv.fontString;
        }
        set valueTextStyle(v) {
            let fi = new FontInfo();
            fi.fontString = v;
            this.i.abv = fi;
        }
        /**
         * Gets or sets the format string for header text displayed in the data legend.
        */
        get headerFormatString() {
            return this.i.ad4;
        }
        set headerFormatString(v) {
            this.i.ad4 = v;
        }
        /**
         * Gets or sets the format specifiers to use with the HeaderFormatString string.
        */
        get headerFormatSpecifiers() {
            return this.i.aaj;
        }
        set headerFormatSpecifiers(v) {
            if (v && !Array.isArray(v) && typeof (v) == "string") {
                const re = /\s*(?:,|\s|$)\s*/gm;
                v = v.split(re);
            }
            this.i.aaj = v;
        }
        /**
         * Gets or sets globalization culture when displaying header as date time
         * This property is ignored when setting HeaderFormatSpecifiers or HeaderFormatString properties
        */
        get headerFormatCulture() {
            return this.i.ad0;
        }
        set headerFormatCulture(v) {
            this.i.ad0 = v;
        }
        /**
         * Gets or sets date format for the header
         * This property is ignored when setting HeaderFormatSpecifiers or HeaderFormatString properties
        */
        get headerFormatDate() {
            return this.i.aaq;
        }
        set headerFormatDate(v) {
            this.i.aaq = ensureEnum(DataLegendHeaderDateMode_$type, v);
        }
        /**
         * Gets or sets time format for the header
         * This property is ignored when setting HeaderFormatSpecifiers or HeaderFormatString properties
        */
        get headerFormatTime() {
            return this.i.aar;
        }
        set headerFormatTime(v) {
            this.i.aar = ensureEnum(DataLegendHeaderTimeMode_$type, v);
        }
        /**
         * Gets or sets the HeaderText for the data legend.
        */
        get headerText() {
            return this.i.ad9;
        }
        set headerText(v) {
            this.i.ad9 = v;
        }
        /**
         * Gets or sets the header text color.
        */
        get headerTextColor() {
            return brushToString(this.i.ah3);
        }
        set headerTextColor(v) {
            this.i.ah3 = stringToBrush(v);
        }
        get headerTextMarginBottom() {
            return this.i.aio ? this.i.aio.bottom : NaN;
        }
        set headerTextMarginBottom(v) {
            this.ensureHeaderTextMargin();
            this.i.aio.bottom = +v;
            this.i.aio = this.i.aio;
        }
        get headerTextMarginLeft() {
            return this.i.aio ? this.i.aio.left : NaN;
        }
        set headerTextMarginLeft(v) {
            this.ensureHeaderTextMargin();
            this.i.aio.left = +v;
            this.i.aio = this.i.aio;
        }
        get headerTextMarginRight() {
            return this.i.aio ? this.i.aio.right : NaN;
        }
        set headerTextMarginRight(v) {
            this.ensureHeaderTextMargin();
            this.i.aio.right = +v;
            this.i.aio = this.i.aio;
        }
        get headerTextMarginTop() {
            return this.i.aio ? this.i.aio.top : NaN;
        }
        set headerTextMarginTop(v) {
            this.ensureHeaderTextMargin();
            this.i.aio.top = +v;
            this.i.aio = this.i.aio;
        }
        ensureHeaderTextMargin() {
            if (this.i.aio) {
                return;
            }
            this.i.aio = new Thickness(2);
        }
        get headerRowMarginBottom() {
            return this.i.ain ? this.i.ain.bottom : NaN;
        }
        set headerRowMarginBottom(v) {
            this.ensureHeaderRowMargin();
            this.i.ain.bottom = +v;
            this.i.ain = this.i.ain;
        }
        get headerRowMarginLeft() {
            return this.i.ain ? this.i.ain.left : NaN;
        }
        set headerRowMarginLeft(v) {
            this.ensureHeaderRowMargin();
            this.i.ain.left = +v;
            this.i.ain = this.i.ain;
        }
        get headerRowMarginRight() {
            return this.i.ain ? this.i.ain.right : NaN;
        }
        set headerRowMarginRight(v) {
            this.ensureHeaderRowMargin();
            this.i.ain.right = +v;
            this.i.ain = this.i.ain;
        }
        get headerRowMarginTop() {
            return this.i.ain ? this.i.ain.top : NaN;
        }
        set headerRowMarginTop(v) {
            this.ensureHeaderRowMargin();
            this.i.ain.top = +v;
            this.i.ain = this.i.ain;
        }
        ensureHeaderRowMargin() {
            if (this.i.ain) {
                return;
            }
            this.i.ain = new Thickness(2);
        }
        /**
         * Gets or sets whether to show Header row.
        */
        get headerRowVisible() {
            return this.i.aby;
        }
        set headerRowVisible(v) {
            this.i.aby = ensureBool(v);
        }
        /**
         * Gets or Sets the style to use for the header text.
        */
        get headerTextStyle() {
            if (this.i.abn == null) {
                return null;
            }
            return this.i.abn.fontString;
        }
        set headerTextStyle(v) {
            let fi = new FontInfo();
            fi.fontString = v;
            this.i.abn = fi;
        }
        /**
         * Gets or sets whether to show Header row.
        */
        get groupRowVisible() {
            return this.i.abx;
        }
        set groupRowVisible(v) {
            this.i.abx = ensureBool(v);
        }
        /**
         * Gets or sets the Group text color.
        */
        get groupTextColor() {
            return brushToString(this.i.ah2);
        }
        set groupTextColor(v) {
            this.i.ah2 = stringToBrush(v);
        }
        get groupTextMarginBottom() {
            return this.i.aim ? this.i.aim.bottom : NaN;
        }
        set groupTextMarginBottom(v) {
            this.ensureGroupTextMargin();
            this.i.aim.bottom = +v;
            this.i.aim = this.i.aim;
        }
        get groupTextMarginLeft() {
            return this.i.aim ? this.i.aim.left : NaN;
        }
        set groupTextMarginLeft(v) {
            this.ensureGroupTextMargin();
            this.i.aim.left = +v;
            this.i.aim = this.i.aim;
        }
        get groupTextMarginRight() {
            return this.i.aim ? this.i.aim.right : NaN;
        }
        set groupTextMarginRight(v) {
            this.ensureGroupTextMargin();
            this.i.aim.right = +v;
            this.i.aim = this.i.aim;
        }
        get groupTextMarginTop() {
            return this.i.aim ? this.i.aim.top : NaN;
        }
        set groupTextMarginTop(v) {
            this.ensureGroupTextMargin();
            this.i.aim.top = +v;
            this.i.aim = this.i.aim;
        }
        ensureGroupTextMargin() {
            if (this.i.aim) {
                return;
            }
            this.i.aim = new Thickness(2);
        }
        get groupRowMarginBottom() {
            return this.i.ail ? this.i.ail.bottom : NaN;
        }
        set groupRowMarginBottom(v) {
            this.ensureGroupRowMargin();
            this.i.ail.bottom = +v;
            this.i.ail = this.i.ail;
        }
        get groupRowMarginLeft() {
            return this.i.ail ? this.i.ail.left : NaN;
        }
        set groupRowMarginLeft(v) {
            this.ensureGroupRowMargin();
            this.i.ail.left = +v;
            this.i.ail = this.i.ail;
        }
        get groupRowMarginRight() {
            return this.i.ail ? this.i.ail.right : NaN;
        }
        set groupRowMarginRight(v) {
            this.ensureGroupRowMargin();
            this.i.ail.right = +v;
            this.i.ail = this.i.ail;
        }
        get groupRowMarginTop() {
            return this.i.ail ? this.i.ail.top : NaN;
        }
        set groupRowMarginTop(v) {
            this.ensureGroupRowMargin();
            this.i.ail.top = +v;
            this.i.ail = this.i.ail;
        }
        ensureGroupRowMargin() {
            if (this.i.ail) {
                return;
            }
            this.i.ail = new Thickness(2);
        }
        /**
         * Gets or Sets the style to use for the Group text.
        */
        get groupTextStyle() {
            if (this.i.abm == null) {
                return null;
            }
            return this.i.abm.fontString;
        }
        set groupTextStyle(v) {
            let fi = new FontInfo();
            fi.fontString = v;
            this.i.abm = fi;
        }
        /**
         * Gets or sets the summary text color.
        */
        get summaryTitleTextColor() {
            return brushToString(this.i.ah6);
        }
        set summaryTitleTextColor(v) {
            this.i.ah6 = stringToBrush(v);
        }
        /**
         * Gets or Sets the style to use for the summary text.
        */
        get summaryTitleTextStyle() {
            if (this.i.abq == null) {
                return null;
            }
            return this.i.abq.fontString;
        }
        set summaryTitleTextStyle(v) {
            let fi = new FontInfo();
            fi.fontString = v;
            this.i.abq = fi;
        }
        /**
         * Gets or sets the SummaryType for the data legend.
        */
        get summaryType() {
            return this.i.aau;
        }
        set summaryType(v) {
            this.i.aau = ensureEnum(DataLegendSummaryType_$type, v);
        }
        /**
         * Gets or sets the SummaryTitleText for the data legend.
        */
        get summaryTitleText() {
            return this.i.aet;
        }
        set summaryTitleText(v) {
            this.i.aet = v;
        }
        get summaryTitleTextMarginBottom() {
            return this.i.air ? this.i.air.bottom : NaN;
        }
        set summaryTitleTextMarginBottom(v) {
            this.ensureSummaryTitleTextMargin();
            this.i.air.bottom = +v;
            this.i.air = this.i.air;
        }
        get summaryTitleTextMarginLeft() {
            return this.i.air ? this.i.air.left : NaN;
        }
        set summaryTitleTextMarginLeft(v) {
            this.ensureSummaryTitleTextMargin();
            this.i.air.left = +v;
            this.i.air = this.i.air;
        }
        get summaryTitleTextMarginRight() {
            return this.i.air ? this.i.air.right : NaN;
        }
        set summaryTitleTextMarginRight(v) {
            this.ensureSummaryTitleTextMargin();
            this.i.air.right = +v;
            this.i.air = this.i.air;
        }
        get summaryTitleTextMarginTop() {
            return this.i.air ? this.i.air.top : NaN;
        }
        set summaryTitleTextMarginTop(v) {
            this.ensureSummaryTitleTextMargin();
            this.i.air.top = +v;
            this.i.air = this.i.air;
        }
        ensureSummaryTitleTextMargin() {
            if (this.i.air) {
                return;
            }
            this.i.air = new Thickness(2);
        }
        get summaryRowMarginBottom() {
            return this.i.aiq ? this.i.aiq.bottom : NaN;
        }
        set summaryRowMarginBottom(v) {
            this.ensureSummaryRowMargin();
            this.i.aiq.bottom = +v;
            this.i.aiq = this.i.aiq;
        }
        get summaryRowMarginLeft() {
            return this.i.aiq ? this.i.aiq.left : NaN;
        }
        set summaryRowMarginLeft(v) {
            this.ensureSummaryRowMargin();
            this.i.aiq.left = +v;
            this.i.aiq = this.i.aiq;
        }
        get summaryRowMarginRight() {
            return this.i.aiq ? this.i.aiq.right : NaN;
        }
        set summaryRowMarginRight(v) {
            this.ensureSummaryRowMargin();
            this.i.aiq.right = +v;
            this.i.aiq = this.i.aiq;
        }
        get summaryRowMarginTop() {
            return this.i.aiq ? this.i.aiq.top : NaN;
        }
        set summaryRowMarginTop(v) {
            this.ensureSummaryRowMargin();
            this.i.aiq.top = +v;
            this.i.aiq = this.i.aiq;
        }
        ensureSummaryRowMargin() {
            if (this.i.aiq) {
                return;
            }
            this.i.aiq = new Thickness(2);
        }
        /**
         * Gets or sets the units text color.
        */
        get summaryValueTextColor() {
            return brushToString(this.i.ah8);
        }
        set summaryValueTextColor(v) {
            this.i.ah8 = stringToBrush(v);
        }
        /**
         * Gets or Sets the style to use for the units text.
        */
        get summaryValueTextStyle() {
            if (this.i.abs == null) {
                return null;
            }
            return this.i.abs.fontString;
        }
        set summaryValueTextStyle(v) {
            let fi = new FontInfo();
            fi.fontString = v;
            this.i.abs = fi;
        }
        /**
         * Gets or sets the units text for the data legend.
        */
        get summaryLabelText() {
            return this.i.aeo;
        }
        set summaryLabelText(v) {
            this.i.aeo = v;
        }
        /**
         * Gets or sets the units text color.
        */
        get summaryLabelTextColor() {
            return brushToString(this.i.ah5);
        }
        set summaryLabelTextColor(v) {
            this.i.ah5 = stringToBrush(v);
        }
        /**
         * Gets or Sets the style to use for the units text.
        */
        get summaryLabelTextStyle() {
            if (this.i.abp == null) {
                return null;
            }
            return this.i.abp.fontString;
        }
        set summaryLabelTextStyle(v) {
            let fi = new FontInfo();
            fi.fontString = v;
            this.i.abp = fi;
        }
        /**
         * Gets or sets the units text for the data legend.
        */
        get summaryUnitsText() {
            return this.i.aez;
        }
        set summaryUnitsText(v) {
            this.i.aez = v;
        }
        /**
         * Gets or sets the units text color.
        */
        get summaryUnitsTextColor() {
            return brushToString(this.i.ah7);
        }
        set summaryUnitsTextColor(v) {
            this.i.ah7 = stringToBrush(v);
        }
        /**
         * Gets or Sets the style to use for the units text.
        */
        get summaryUnitsTextStyle() {
            if (this.i.abr == null) {
                return null;
            }
            return this.i.abr.fontString;
        }
        set summaryUnitsTextStyle(v) {
            let fi = new FontInfo();
            fi.fontString = v;
            this.i.abr = fi;
        }
        get badgeMarginBottom() {
            return this.i.aik ? this.i.aik.bottom : NaN;
        }
        set badgeMarginBottom(v) {
            this.ensureBadgeMargin();
            this.i.aik.bottom = +v;
            this.i.aik = this.i.aik;
        }
        get badgeMarginLeft() {
            return this.i.aik ? this.i.aik.left : NaN;
        }
        set badgeMarginLeft(v) {
            this.ensureBadgeMargin();
            this.i.aik.left = +v;
            this.i.aik = this.i.aik;
        }
        get badgeMarginRight() {
            return this.i.aik ? this.i.aik.right : NaN;
        }
        set badgeMarginRight(v) {
            this.ensureBadgeMargin();
            this.i.aik.right = +v;
            this.i.aik = this.i.aik;
        }
        get badgeMarginTop() {
            return this.i.aik ? this.i.aik.top : NaN;
        }
        set badgeMarginTop(v) {
            this.ensureBadgeMargin();
            this.i.aik.top = +v;
            this.i.aik = this.i.aik;
        }
        ensureBadgeMargin() {
            if (this.i.aik) {
                return;
            }
            this.i.aik = new Thickness(2);
        }
        /**
         * Gets or sets the BadgeShape for the data legend.
        */
        get badgeShape() {
            return this.i.abb;
        }
        set badgeShape(v) {
            this.i.abb = ensureEnum(LegendItemBadgeShape_$type, v);
        }
        /**
         * Gets or sets the layout of content in the data legend
        */
        get layoutMode() {
            return this.i.aat;
        }
        set layoutMode(v) {
            this.i.aat = ensureEnum(DataLegendLayoutMode_$type, v);
        }
        /**
         * Gets or sets the UnitsMode for the data legend.
        */
        get unitsDisplayMode() {
            return this.i.aav;
        }
        set unitsDisplayMode(v) {
            this.i.aav = ensureEnum(DataLegendUnitsMode_$type, v);
        }
        /**
         * Gets or sets the units text for the data legend.
        */
        get unitsText() {
            return this.i.afd;
        }
        set unitsText(v) {
            this.i.afd = v;
        }
        /**
         * Gets or sets the units text color.
        */
        get unitsTextColor() {
            return brushToString(this.i.aic);
        }
        set unitsTextColor(v) {
            this.i.aic = stringToBrush(v);
        }
        get unitsTextMarginBottom() {
            return this.i.ait ? this.i.ait.bottom : NaN;
        }
        set unitsTextMarginBottom(v) {
            this.ensureUnitsTextMargin();
            this.i.ait.bottom = +v;
            this.i.ait = this.i.ait;
        }
        get unitsTextMarginLeft() {
            return this.i.ait ? this.i.ait.left : NaN;
        }
        set unitsTextMarginLeft(v) {
            this.ensureUnitsTextMargin();
            this.i.ait.left = +v;
            this.i.ait = this.i.ait;
        }
        get unitsTextMarginRight() {
            return this.i.ait ? this.i.ait.right : NaN;
        }
        set unitsTextMarginRight(v) {
            this.ensureUnitsTextMargin();
            this.i.ait.right = +v;
            this.i.ait = this.i.ait;
        }
        get unitsTextMarginTop() {
            return this.i.ait ? this.i.ait.top : NaN;
        }
        set unitsTextMarginTop(v) {
            this.ensureUnitsTextMargin();
            this.i.ait.top = +v;
            this.i.ait = this.i.ait;
        }
        ensureUnitsTextMargin() {
            if (this.i.ait) {
                return;
            }
            this.i.ait = new Thickness(2);
        }
        /**
         * Gets or Sets the style to use for the units text.
        */
        get unitsTextStyle() {
            if (this.i.abu == null) {
                return null;
            }
            return this.i.abu.fontString;
        }
        set unitsTextStyle(v) {
            let fi = new FontInfo();
            fi.fontString = v;
            this.i.abu = fi;
        }
        get titleTextMarginBottom() {
            return this.i.ais ? this.i.ais.bottom : NaN;
        }
        set titleTextMarginBottom(v) {
            this.ensureTitleTextMargin();
            this.i.ais.bottom = +v;
            this.i.ais = this.i.ais;
        }
        get titleTextMarginLeft() {
            return this.i.ais ? this.i.ais.left : NaN;
        }
        set titleTextMarginLeft(v) {
            this.ensureTitleTextMargin();
            this.i.ais.left = +v;
            this.i.ais = this.i.ais;
        }
        get titleTextMarginRight() {
            return this.i.ais ? this.i.ais.right : NaN;
        }
        set titleTextMarginRight(v) {
            this.ensureTitleTextMargin();
            this.i.ais.right = +v;
            this.i.ais = this.i.ais;
        }
        get titleTextMarginTop() {
            return this.i.ais ? this.i.ais.top : NaN;
        }
        set titleTextMarginTop(v) {
            this.ensureTitleTextMargin();
            this.i.ais.top = +v;
            this.i.ais = this.i.ais;
        }
        ensureTitleTextMargin() {
            if (this.i.ais) {
                return;
            }
            this.i.ais = new Thickness(2);
        }
        /**
         * Gets or sets the display text color.
        */
        get titleTextColor() {
            return brushToString(this.i.ah9);
        }
        set titleTextColor(v) {
            this.i.ah9 = stringToBrush(v);
        }
        /**
         * Gets or Sets the style to use for the display text.
        */
        get titleTextStyle() {
            if (this.i.abt == null) {
                return null;
            }
            return this.i.abt.fontString;
        }
        set titleTextStyle(v) {
            let fi = new FontInfo();
            fi.fontString = v;
            this.i.abt = fi;
        }
        /**
         * Gets or sets the mode for displaying labels before series values in the data legend, e.g. O: H: L: C: for financial series
        */
        get labelDisplayMode() {
            return this.i.aas;
        }
        set labelDisplayMode(v) {
            this.i.aas = ensureEnum(DataLegendLabelMode_$type, v);
        }
        /**
         * Gets or sets the units text color.
        */
        get labelTextColor() {
            return brushToString(this.i.ah4);
        }
        set labelTextColor(v) {
            this.i.ah4 = stringToBrush(v);
        }
        get labelTextMarginBottom() {
            return this.i.aip ? this.i.aip.bottom : NaN;
        }
        set labelTextMarginBottom(v) {
            this.ensureLabelTextMargin();
            this.i.aip.bottom = +v;
            this.i.aip = this.i.aip;
        }
        get labelTextMarginLeft() {
            return this.i.aip ? this.i.aip.left : NaN;
        }
        set labelTextMarginLeft(v) {
            this.ensureLabelTextMargin();
            this.i.aip.left = +v;
            this.i.aip = this.i.aip;
        }
        get labelTextMarginRight() {
            return this.i.aip ? this.i.aip.right : NaN;
        }
        set labelTextMarginRight(v) {
            this.ensureLabelTextMargin();
            this.i.aip.right = +v;
            this.i.aip = this.i.aip;
        }
        get labelTextMarginTop() {
            return this.i.aip ? this.i.aip.top : NaN;
        }
        set labelTextMarginTop(v) {
            this.ensureLabelTextMargin();
            this.i.aip.top = +v;
            this.i.aip = this.i.aip;
        }
        ensureLabelTextMargin() {
            if (this.i.aip) {
                return;
            }
            this.i.aip = new Thickness(2);
        }
        /**
         * Gets or Sets the style to use for the units text.
        */
        get labelTextStyle() {
            if (this.i.abo == null) {
                return null;
            }
            return this.i.abo.fontString;
        }
        set labelTextStyle(v) {
            let fi = new FontInfo();
            fi.fontString = v;
            this.i.abo = fi;
        }
        /**
         * Gets or sets the background of the tooltip containers.
        */
        get toolTipBackground() {
            return brushToString(this.i.aia);
        }
        set toolTipBackground(v) {
            this.i.aia = stringToBrush(v);
        }
        /**
         * Gets or sets the border color of the tooltip containers.
        */
        get toolTipBorderBrush() {
            return brushToString(this.i.aib);
        }
        set toolTipBorderBrush(v) {
            this.i.aib = stringToBrush(v);
        }
        /**
         * Gets or sets the border thickness of the tooltip containers.
        */
        get toolTipBorderThickness() {
            return this.i.acl;
        }
        set toolTipBorderThickness(v) {
            this.i.acl = +v;
        }
        findByName(name) {
            var baseResult = super.findByName(name);
            if (baseResult) {
                return baseResult;
            }
            if (this.targetAxis && this.targetAxis.name && this.targetAxis.name == name) {
                return this.targetAxis;
            }
            if (this.valueFormatSpecifiers != null && arrayFindByName(this.valueFormatSpecifiers, name)) {
                return arrayFindByName(this.valueFormatSpecifiers, name);
            }
            if (this.headerFormatSpecifiers != null && arrayFindByName(this.headerFormatSpecifiers, name)) {
                return arrayFindByName(this.headerFormatSpecifiers, name);
            }
            return null;
        }
        _styling(container, component, parent) {
            super._styling(container, component, parent);
            this._inStyling = true;
            if (this.targetAxis && this.targetAxis._styling) {
                this.targetAxis._styling(container, component, this);
            }
            this._inStyling = false;
        }
        /**
         * Hides any tooltips presented by the layer, if any.
        
        */
        hideToolTips() {
            this.i.qd();
        }
        /**
         * Hides any tooltips presented by the layer, if any.
        
        */
        hideToolTipsImmediate() {
            this.i.qe();
        }
    }
    IgxDataToolTipLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxDataToolTipLayerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
    IgxDataToolTipLayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: IgxDataToolTipLayerComponent, selector: "igx-data-tool-tip-layer", inputs: { targetAxis: "targetAxis", useInterpolation: "useInterpolation", groupingMode: "groupingMode", actualGroupingMode: "actualGroupingMode", positionOffsetX: "positionOffsetX", positionOffsetY: "positionOffsetY", defaultPositionOffsetX: "defaultPositionOffsetX", defaultPositionOffsetY: "defaultPositionOffsetY", groupedPositionModeX: "groupedPositionModeX", actualGroupedPositionModeX: "actualGroupedPositionModeX", groupedPositionModeY: "groupedPositionModeY", actualGroupedPositionModeY: "actualGroupedPositionModeY", shouldUpdateWhenSeriesDataChanges: "shouldUpdateWhenSeriesDataChanges", includedSeries: "includedSeries", excludedSeries: "excludedSeries", includedColumns: "includedColumns", excludedColumns: "excludedColumns", valueFormatAbbreviation: "valueFormatAbbreviation", valueFormatMaxFractions: "valueFormatMaxFractions", valueFormatMinFractions: "valueFormatMinFractions", valueFormatMode: "valueFormatMode", valueFormatCulture: "valueFormatCulture", valueFormatUseGrouping: "valueFormatUseGrouping", valueFormatString: "valueFormatString", valueFormatSpecifiers: "valueFormatSpecifiers", valueRowMarginBottom: "valueRowMarginBottom", valueRowMarginLeft: "valueRowMarginLeft", valueRowMarginRight: "valueRowMarginRight", valueRowMarginTop: "valueRowMarginTop", valueRowVisible: "valueRowVisible", valueTextWhenMissingData: "valueTextWhenMissingData", valueTextUseSeriesColors: "valueTextUseSeriesColors", valueTextMarginBottom: "valueTextMarginBottom", valueTextMarginLeft: "valueTextMarginLeft", valueTextMarginRight: "valueTextMarginRight", valueTextMarginTop: "valueTextMarginTop", valueTextColor: "valueTextColor", valueTextStyle: "valueTextStyle", headerFormatString: "headerFormatString", headerFormatSpecifiers: "headerFormatSpecifiers", headerFormatCulture: "headerFormatCulture", headerFormatDate: "headerFormatDate", headerFormatTime: "headerFormatTime", headerText: "headerText", headerTextColor: "headerTextColor", headerTextMarginBottom: "headerTextMarginBottom", headerTextMarginLeft: "headerTextMarginLeft", headerTextMarginRight: "headerTextMarginRight", headerTextMarginTop: "headerTextMarginTop", headerRowMarginBottom: "headerRowMarginBottom", headerRowMarginLeft: "headerRowMarginLeft", headerRowMarginRight: "headerRowMarginRight", headerRowMarginTop: "headerRowMarginTop", headerRowVisible: "headerRowVisible", headerTextStyle: "headerTextStyle", groupRowVisible: "groupRowVisible", groupTextColor: "groupTextColor", groupTextMarginBottom: "groupTextMarginBottom", groupTextMarginLeft: "groupTextMarginLeft", groupTextMarginRight: "groupTextMarginRight", groupTextMarginTop: "groupTextMarginTop", groupRowMarginBottom: "groupRowMarginBottom", groupRowMarginLeft: "groupRowMarginLeft", groupRowMarginRight: "groupRowMarginRight", groupRowMarginTop: "groupRowMarginTop", groupTextStyle: "groupTextStyle", summaryTitleTextColor: "summaryTitleTextColor", summaryTitleTextStyle: "summaryTitleTextStyle", summaryType: "summaryType", summaryTitleText: "summaryTitleText", summaryTitleTextMarginBottom: "summaryTitleTextMarginBottom", summaryTitleTextMarginLeft: "summaryTitleTextMarginLeft", summaryTitleTextMarginRight: "summaryTitleTextMarginRight", summaryTitleTextMarginTop: "summaryTitleTextMarginTop", summaryRowMarginBottom: "summaryRowMarginBottom", summaryRowMarginLeft: "summaryRowMarginLeft", summaryRowMarginRight: "summaryRowMarginRight", summaryRowMarginTop: "summaryRowMarginTop", summaryValueTextColor: "summaryValueTextColor", summaryValueTextStyle: "summaryValueTextStyle", summaryLabelText: "summaryLabelText", summaryLabelTextColor: "summaryLabelTextColor", summaryLabelTextStyle: "summaryLabelTextStyle", summaryUnitsText: "summaryUnitsText", summaryUnitsTextColor: "summaryUnitsTextColor", summaryUnitsTextStyle: "summaryUnitsTextStyle", badgeMarginBottom: "badgeMarginBottom", badgeMarginLeft: "badgeMarginLeft", badgeMarginRight: "badgeMarginRight", badgeMarginTop: "badgeMarginTop", badgeShape: "badgeShape", layoutMode: "layoutMode", unitsDisplayMode: "unitsDisplayMode", unitsText: "unitsText", unitsTextColor: "unitsTextColor", unitsTextMarginBottom: "unitsTextMarginBottom", unitsTextMarginLeft: "unitsTextMarginLeft", unitsTextMarginRight: "unitsTextMarginRight", unitsTextMarginTop: "unitsTextMarginTop", unitsTextStyle: "unitsTextStyle", titleTextMarginBottom: "titleTextMarginBottom", titleTextMarginLeft: "titleTextMarginLeft", titleTextMarginRight: "titleTextMarginRight", titleTextMarginTop: "titleTextMarginTop", titleTextColor: "titleTextColor", titleTextStyle: "titleTextStyle", labelDisplayMode: "labelDisplayMode", labelTextColor: "labelTextColor", labelTextMarginBottom: "labelTextMarginBottom", labelTextMarginLeft: "labelTextMarginLeft", labelTextMarginRight: "labelTextMarginRight", labelTextMarginTop: "labelTextMarginTop", labelTextStyle: "labelTextStyle", toolTipBackground: "toolTipBackground", toolTipBorderBrush: "toolTipBorderBrush", toolTipBorderThickness: "toolTipBorderThickness" }, providers: [{ provide: IgxAnnotationLayerComponent, useExisting: forwardRef(() => IgxDataToolTipLayerComponent) }, { provide: IgxSeriesComponent, useExisting: forwardRef(() => IgxDataToolTipLayerComponent) }], usesInheritance: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
    return IgxDataToolTipLayerComponent;
})();
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IgxDataToolTipLayerComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'igx-data-tool-tip-layer',
                    template: ``,
                    providers: [{ provide: IgxAnnotationLayerComponent, useExisting: forwardRef(() => IgxDataToolTipLayerComponent) }, { provide: IgxSeriesComponent, useExisting: forwardRef(() => IgxDataToolTipLayerComponent) }],
                    changeDetection: ChangeDetectionStrategy.OnPush
                }]
        }], ctorParameters: function () { return []; }, propDecorators: { targetAxis: [{
                type: Input
            }], useInterpolation: [{
                type: Input
            }], groupingMode: [{
                type: Input
            }], actualGroupingMode: [{
                type: Input
            }], positionOffsetX: [{
                type: Input
            }], positionOffsetY: [{
                type: Input
            }], defaultPositionOffsetX: [{
                type: Input
            }], defaultPositionOffsetY: [{
                type: Input
            }], groupedPositionModeX: [{
                type: Input
            }], actualGroupedPositionModeX: [{
                type: Input
            }], groupedPositionModeY: [{
                type: Input
            }], actualGroupedPositionModeY: [{
                type: Input
            }], shouldUpdateWhenSeriesDataChanges: [{
                type: Input
            }], includedSeries: [{
                type: Input
            }], excludedSeries: [{
                type: Input
            }], includedColumns: [{
                type: Input
            }], excludedColumns: [{
                type: Input
            }], valueFormatAbbreviation: [{
                type: Input
            }], valueFormatMaxFractions: [{
                type: Input
            }], valueFormatMinFractions: [{
                type: Input
            }], valueFormatMode: [{
                type: Input
            }], valueFormatCulture: [{
                type: Input
            }], valueFormatUseGrouping: [{
                type: Input
            }], valueFormatString: [{
                type: Input
            }], valueFormatSpecifiers: [{
                type: Input
            }], valueRowMarginBottom: [{
                type: Input
            }], valueRowMarginLeft: [{
                type: Input
            }], valueRowMarginRight: [{
                type: Input
            }], valueRowMarginTop: [{
                type: Input
            }], valueRowVisible: [{
                type: Input
            }], valueTextWhenMissingData: [{
                type: Input
            }], valueTextUseSeriesColors: [{
                type: Input
            }], valueTextMarginBottom: [{
                type: Input
            }], valueTextMarginLeft: [{
                type: Input
            }], valueTextMarginRight: [{
                type: Input
            }], valueTextMarginTop: [{
                type: Input
            }], valueTextColor: [{
                type: Input
            }], valueTextStyle: [{
                type: Input
            }], headerFormatString: [{
                type: Input
            }], headerFormatSpecifiers: [{
                type: Input
            }], headerFormatCulture: [{
                type: Input
            }], headerFormatDate: [{
                type: Input
            }], headerFormatTime: [{
                type: Input
            }], headerText: [{
                type: Input
            }], headerTextColor: [{
                type: Input
            }], headerTextMarginBottom: [{
                type: Input
            }], headerTextMarginLeft: [{
                type: Input
            }], headerTextMarginRight: [{
                type: Input
            }], headerTextMarginTop: [{
                type: Input
            }], headerRowMarginBottom: [{
                type: Input
            }], headerRowMarginLeft: [{
                type: Input
            }], headerRowMarginRight: [{
                type: Input
            }], headerRowMarginTop: [{
                type: Input
            }], headerRowVisible: [{
                type: Input
            }], headerTextStyle: [{
                type: Input
            }], groupRowVisible: [{
                type: Input
            }], groupTextColor: [{
                type: Input
            }], groupTextMarginBottom: [{
                type: Input
            }], groupTextMarginLeft: [{
                type: Input
            }], groupTextMarginRight: [{
                type: Input
            }], groupTextMarginTop: [{
                type: Input
            }], groupRowMarginBottom: [{
                type: Input
            }], groupRowMarginLeft: [{
                type: Input
            }], groupRowMarginRight: [{
                type: Input
            }], groupRowMarginTop: [{
                type: Input
            }], groupTextStyle: [{
                type: Input
            }], summaryTitleTextColor: [{
                type: Input
            }], summaryTitleTextStyle: [{
                type: Input
            }], summaryType: [{
                type: Input
            }], summaryTitleText: [{
                type: Input
            }], summaryTitleTextMarginBottom: [{
                type: Input
            }], summaryTitleTextMarginLeft: [{
                type: Input
            }], summaryTitleTextMarginRight: [{
                type: Input
            }], summaryTitleTextMarginTop: [{
                type: Input
            }], summaryRowMarginBottom: [{
                type: Input
            }], summaryRowMarginLeft: [{
                type: Input
            }], summaryRowMarginRight: [{
                type: Input
            }], summaryRowMarginTop: [{
                type: Input
            }], summaryValueTextColor: [{
                type: Input
            }], summaryValueTextStyle: [{
                type: Input
            }], summaryLabelText: [{
                type: Input
            }], summaryLabelTextColor: [{
                type: Input
            }], summaryLabelTextStyle: [{
                type: Input
            }], summaryUnitsText: [{
                type: Input
            }], summaryUnitsTextColor: [{
                type: Input
            }], summaryUnitsTextStyle: [{
                type: Input
            }], badgeMarginBottom: [{
                type: Input
            }], badgeMarginLeft: [{
                type: Input
            }], badgeMarginRight: [{
                type: Input
            }], badgeMarginTop: [{
                type: Input
            }], badgeShape: [{
                type: Input
            }], layoutMode: [{
                type: Input
            }], unitsDisplayMode: [{
                type: Input
            }], unitsText: [{
                type: Input
            }], unitsTextColor: [{
                type: Input
            }], unitsTextMarginBottom: [{
                type: Input
            }], unitsTextMarginLeft: [{
                type: Input
            }], unitsTextMarginRight: [{
                type: Input
            }], unitsTextMarginTop: [{
                type: Input
            }], unitsTextStyle: [{
                type: Input
            }], titleTextMarginBottom: [{
                type: Input
            }], titleTextMarginLeft: [{
                type: Input
            }], titleTextMarginRight: [{
                type: Input
            }], titleTextMarginTop: [{
                type: Input
            }], titleTextColor: [{
                type: Input
            }], titleTextStyle: [{
                type: Input
            }], labelDisplayMode: [{
                type: Input
            }], labelTextColor: [{
                type: Input
            }], labelTextMarginBottom: [{
                type: Input
            }], labelTextMarginLeft: [{
                type: Input
            }], labelTextMarginRight: [{
                type: Input
            }], labelTextMarginTop: [{
                type: Input
            }], labelTextStyle: [{
                type: Input
            }], toolTipBackground: [{
                type: Input
            }], toolTipBorderBrush: [{
                type: Input
            }], toolTipBorderThickness: [{
                type: Input
            }] } });
