import { __extends } from "tslib";
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.
*/
var IgxDataToolTipLayerComponent = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(IgxDataToolTipLayerComponent, _super);
    function IgxDataToolTipLayerComponent() {
        return _super.call(this) || this;
    }
    IgxDataToolTipLayerComponent.prototype.createImplementation = function () {
        return new DataToolTipLayer();
    };
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "i", {
        /**
                                     * @hidden
                                     */
        get: function () {
            return this._implementation;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "isAnnotationHoverLayer", {
        /**
         * Gets whether the series is an annotation layer displayed only when hovering over the chart.
        */
        get: function () {
            return this.i.er;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "isDefaultTooltipBehaviorDisabled", {
        /**
         * Gets whether the default tooltip behaviors for the chart are disabled if this layer is present.
        */
        get: function () {
            return this.i.e2;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "targetAxis", {
        /**
         * Gets or sets the Axis to target this annotation to. If null, this annotation layer will not render content.
        */
        get: function () {
            var r = this.i.z6;
            if (r == null) {
                return null;
            }
            if (!r.externalObject) {
                var e = IgxAxisComponent._createFromInternal(r);
                if (e) {
                    e._implementation = r;
                }
                r.externalObject = e;
            }
            return r.externalObject;
        },
        set: function (v) {
            if (v != null && this._stylingContainer && v._styling)
                v._styling(this._stylingContainer, this, this);
            v == null ? this.i.z6 = null : this.i.z6 = v.i;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "useInterpolation", {
        /**
         * Gets or sets whether to use value interpolation when drawing the tooltips.
        */
        get: function () {
            return this.i.abo;
        },
        set: function (v) {
            this.i.abo = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "groupingMode", {
        /**
         * Gets or sets the grouping mode to apply to use for the tooltip layer.
        */
        get: function () {
            return this.i.aap;
        },
        set: function (v) {
            this.i.aap = ensureEnum(DataToolTipLayerGroupingMode_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "actualGroupingMode", {
        /**
         * Gets the actual resolved tooltip layer grouping mode.
        */
        get: function () {
            return this.i.aao;
        },
        set: function (v) {
            this.i.aao = ensureEnum(DataToolTipLayerGroupingMode_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "positionOffsetX", {
        /**
         * Gets or sets the offset of the tooltip layer on the X axis.
        */
        get: function () {
            return this.i.abx;
        },
        set: function (v) {
            this.i.abx = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "positionOffsetY", {
        /**
         * Gets or sets the offset of the tooltip layer on the Y axis.
        */
        get: function () {
            return this.i.aby;
        },
        set: function (v) {
            this.i.aby = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "defaultPositionOffsetX", {
        /**
         * Gets or sets the default offset of the tooltip layer on the X axis.
        */
        get: function () {
            return this.i.abv;
        },
        set: function (v) {
            this.i.abv = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "defaultPositionOffsetY", {
        /**
         * Gets or sets the default offset of the tooltip layer on the Y axis.
        */
        get: function () {
            return this.i.abw;
        },
        set: function (v) {
            this.i.abw = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "groupedPositionModeX", {
        /**
         * Gets or sets the tooltip position mode on the X axis for grouped series.
        */
        get: function () {
            return this.i.aah;
        },
        set: function (v) {
            this.i.aah = ensureEnum(DataTooltipGroupedPositionX_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "actualGroupedPositionModeX", {
        /**
         * Gets the actual resolved tooltip position mode on the X axis for grouped series.
        */
        get: function () {
            return this.i.aag;
        },
        set: function (v) {
            this.i.aag = ensureEnum(DataTooltipGroupedPositionX_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "groupedPositionModeY", {
        /**
         * Gets or sets the tooltip position mode on the Y axis for grouped series.
        */
        get: function () {
            return this.i.aal;
        },
        set: function (v) {
            this.i.aal = ensureEnum(DataTooltipGroupedPositionY_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "actualGroupedPositionModeY", {
        /**
         * Gets the actual resolved tooltip position mode on the Y axis for grouped series.
        */
        get: function () {
            return this.i.aak;
        },
        set: function (v) {
            this.i.aak = ensureEnum(DataTooltipGroupedPositionY_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "shouldUpdateWhenSeriesDataChanges", {
        /**
         * Gets or sets whether the data legend should update when the series data is mutated.
        */
        get: function () {
            return this.i.abn;
        },
        set: function (v) {
            this.i.abn = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "includedSeries", {
        /**
         * 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: function () {
            return this.i.z3;
        },
        set: function (v) {
            if (v && !Array.isArray(v) && typeof (v) == "string") {
                var re = /\s*(?:,|\s|$)\s*/gm;
                v = v.split(re);
            }
            this.i.z3 = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "excludedSeries", {
        /**
         * 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: function () {
            return this.i.zy;
        },
        set: function (v) {
            if (v && !Array.isArray(v) && typeof (v) == "string") {
                var re = /\s*(?:,|\s|$)\s*/gm;
                v = v.split(re);
            }
            this.i.zy = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "includedColumns", {
        /**
         * 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: function () {
            return this.i.z2;
        },
        set: function (v) {
            if (v && !Array.isArray(v) && typeof (v) == "string") {
                var re = /\s*(?:,|\s|$)\s*/gm;
                v = v.split(re);
            }
            this.i.z2 = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "excludedColumns", {
        /**
         * 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: function () {
            return this.i.zx;
        },
        set: function (v) {
            if (v && !Array.isArray(v) && typeof (v) == "string") {
                var re = /\s*(?:,|\s|$)\s*/gm;
                v = v.split(re);
            }
            this.i.zx = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "valueFormatAbbreviation", {
        /**
         * Gets or sets mode for abbreviating large numbers displayed in the legend
         * This property is ignored when setting ValueFormatSpecifiers or ValueFormatString properties
        */
        get: function () {
            return this.i.z7;
        },
        set: function (v) {
            this.i.z7 = ensureEnum(DataAbbreviationMode_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "valueFormatMaxFractions", {
        /**
         * Gets or sets maximum digits for formatting numbers displayed in the legend
         * This property is ignored when setting ValueFormatSpecifiers or ValueFormatString properties
        */
        get: function () {
            return this.i.acx;
        },
        set: function (v) {
            this.i.acx = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "valueFormatMinFractions", {
        /**
         * Gets or sets minimum digits for formatting numbers displayed in the legend
         * This property is ignored when setting ValueFormatSpecifiers or ValueFormatString properties
        */
        get: function () {
            return this.i.acy;
        },
        set: function (v) {
            this.i.acy = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "valueFormatMode", {
        /**
         * Gets or sets the mode for displaying values in the data legend, e.g. Currency ($500.25), Decimal (500.25), Integer (500)
        */
        get: function () {
            return this.i.aae;
        },
        set: function (v) {
            this.i.aae = ensureEnum(DataLegendValueMode_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "valueFormatCulture", {
        /**
         * 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: function () {
            return this.i.aey;
        },
        set: function (v) {
            this.i.aey = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "valueFormatUseGrouping", {
        /**
         * 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: function () {
            return this.i.abp;
        },
        set: function (v) {
            this.i.abp = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "valueFormatString", {
        /**
         * Gets or sets the format string for values displayed in the data legend.
        */
        get: function () {
            return this.i.ae4;
        },
        set: function (v) {
            this.i.ae4 = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "valueFormatSpecifiers", {
        /**
         * Gets or sets the format specifiers to use with the ValueFormatString string.
        */
        get: function () {
            return this.i.z4;
        },
        set: function (v) {
            if (v && !Array.isArray(v) && typeof (v) == "string") {
                var re = /\s*(?:,|\s|$)\s*/gm;
                v = v.split(re);
            }
            this.i.z4 = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "valueRowMarginBottom", {
        get: function () {
            return this.i.ah3 ? this.i.ah3.bottom : NaN;
        },
        set: function (v) {
            this.ensureValueRowMargin();
            this.i.ah3.bottom = +v;
            this.i.ah3 = this.i.ah3;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "valueRowMarginLeft", {
        get: function () {
            return this.i.ah3 ? this.i.ah3.left : NaN;
        },
        set: function (v) {
            this.ensureValueRowMargin();
            this.i.ah3.left = +v;
            this.i.ah3 = this.i.ah3;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "valueRowMarginRight", {
        get: function () {
            return this.i.ah3 ? this.i.ah3.right : NaN;
        },
        set: function (v) {
            this.ensureValueRowMargin();
            this.i.ah3.right = +v;
            this.i.ah3 = this.i.ah3;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "valueRowMarginTop", {
        get: function () {
            return this.i.ah3 ? this.i.ah3.top : NaN;
        },
        set: function (v) {
            this.ensureValueRowMargin();
            this.i.ah3.top = +v;
            this.i.ah3 = this.i.ah3;
        },
        enumerable: false,
        configurable: true
    });
    IgxDataToolTipLayerComponent.prototype.ensureValueRowMargin = function () {
        if (this.i.ah3) {
            return;
        }
        this.i.ah3 = new Thickness(2);
    };
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "valueRowVisible", {
        /**
         * Gets or sets whether to show series rows.
        */
        get: function () {
            return this.i.abq;
        },
        set: function (v) {
            this.i.abq = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "valueTextWhenMissingData", {
        /**
         * Gets or sets text displayed when data column is missing a value, e.g. "no data"
        */
        get: function () {
            return this.i.afd;
        },
        set: function (v) {
            this.i.afd = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "valueTextUseSeriesColors", {
        /**
         * Gets or sets whether to use series colors when displaying values in the legend
        */
        get: function () {
            return this.i.abr;
        },
        set: function (v) {
            this.i.abr = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "valueTextMarginBottom", {
        get: function () {
            return this.i.ah4 ? this.i.ah4.bottom : NaN;
        },
        set: function (v) {
            this.ensureValueTextMargin();
            this.i.ah4.bottom = +v;
            this.i.ah4 = this.i.ah4;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "valueTextMarginLeft", {
        get: function () {
            return this.i.ah4 ? this.i.ah4.left : NaN;
        },
        set: function (v) {
            this.ensureValueTextMargin();
            this.i.ah4.left = +v;
            this.i.ah4 = this.i.ah4;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "valueTextMarginRight", {
        get: function () {
            return this.i.ah4 ? this.i.ah4.right : NaN;
        },
        set: function (v) {
            this.ensureValueTextMargin();
            this.i.ah4.right = +v;
            this.i.ah4 = this.i.ah4;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "valueTextMarginTop", {
        get: function () {
            return this.i.ah4 ? this.i.ah4.top : NaN;
        },
        set: function (v) {
            this.ensureValueTextMargin();
            this.i.ah4.top = +v;
            this.i.ah4 = this.i.ah4;
        },
        enumerable: false,
        configurable: true
    });
    IgxDataToolTipLayerComponent.prototype.ensureValueTextMargin = function () {
        if (this.i.ah4) {
            return;
        }
        this.i.ah4 = new Thickness(2);
    };
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "valueTextColor", {
        /**
         * Gets or sets the units text color.
        */
        get: function () {
            return brushToString(this.i.ahm);
        },
        set: function (v) {
            this.i.ahm = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "valueTextStyle", {
        /**
         * Gets or Sets the style to use for the units text.
        */
        get: function () {
            if (this.i.abd == null) {
                return null;
            }
            return this.i.abd.fontString;
        },
        set: function (v) {
            var fi = new FontInfo();
            fi.fontString = v;
            this.i.abd = fi;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "headerFormatString", {
        /**
         * Gets or sets the format string for header text displayed in the data legend.
        */
        get: function () {
            return this.i.adl;
        },
        set: function (v) {
            this.i.adl = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "headerFormatSpecifiers", {
        /**
         * Gets or sets the format specifiers to use with the HeaderFormatString string.
        */
        get: function () {
            return this.i.z1;
        },
        set: function (v) {
            if (v && !Array.isArray(v) && typeof (v) == "string") {
                var re = /\s*(?:,|\s|$)\s*/gm;
                v = v.split(re);
            }
            this.i.z1 = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "headerFormatCulture", {
        /**
         * Gets or sets globalization culture when displaying header as date time
         * This property is ignored when setting HeaderFormatSpecifiers or HeaderFormatString properties
        */
        get: function () {
            return this.i.adh;
        },
        set: function (v) {
            this.i.adh = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "headerFormatDate", {
        /**
         * Gets or sets date format for the header
         * This property is ignored when setting HeaderFormatSpecifiers or HeaderFormatString properties
        */
        get: function () {
            return this.i.z8;
        },
        set: function (v) {
            this.i.z8 = ensureEnum(DataLegendHeaderDateMode_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "headerFormatTime", {
        /**
         * Gets or sets time format for the header
         * This property is ignored when setting HeaderFormatSpecifiers or HeaderFormatString properties
        */
        get: function () {
            return this.i.z9;
        },
        set: function (v) {
            this.i.z9 = ensureEnum(DataLegendHeaderTimeMode_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "headerText", {
        /**
         * Gets or sets the HeaderText for the data legend.
        */
        get: function () {
            return this.i.adq;
        },
        set: function (v) {
            this.i.adq = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "headerTextColor", {
        /**
         * Gets or sets the header text color.
        */
        get: function () {
            return brushToString(this.i.ahe);
        },
        set: function (v) {
            this.i.ahe = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "headerTextMarginBottom", {
        get: function () {
            return this.i.ahx ? this.i.ahx.bottom : NaN;
        },
        set: function (v) {
            this.ensureHeaderTextMargin();
            this.i.ahx.bottom = +v;
            this.i.ahx = this.i.ahx;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "headerTextMarginLeft", {
        get: function () {
            return this.i.ahx ? this.i.ahx.left : NaN;
        },
        set: function (v) {
            this.ensureHeaderTextMargin();
            this.i.ahx.left = +v;
            this.i.ahx = this.i.ahx;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "headerTextMarginRight", {
        get: function () {
            return this.i.ahx ? this.i.ahx.right : NaN;
        },
        set: function (v) {
            this.ensureHeaderTextMargin();
            this.i.ahx.right = +v;
            this.i.ahx = this.i.ahx;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "headerTextMarginTop", {
        get: function () {
            return this.i.ahx ? this.i.ahx.top : NaN;
        },
        set: function (v) {
            this.ensureHeaderTextMargin();
            this.i.ahx.top = +v;
            this.i.ahx = this.i.ahx;
        },
        enumerable: false,
        configurable: true
    });
    IgxDataToolTipLayerComponent.prototype.ensureHeaderTextMargin = function () {
        if (this.i.ahx) {
            return;
        }
        this.i.ahx = new Thickness(2);
    };
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "headerRowMarginBottom", {
        get: function () {
            return this.i.ahw ? this.i.ahw.bottom : NaN;
        },
        set: function (v) {
            this.ensureHeaderRowMargin();
            this.i.ahw.bottom = +v;
            this.i.ahw = this.i.ahw;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "headerRowMarginLeft", {
        get: function () {
            return this.i.ahw ? this.i.ahw.left : NaN;
        },
        set: function (v) {
            this.ensureHeaderRowMargin();
            this.i.ahw.left = +v;
            this.i.ahw = this.i.ahw;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "headerRowMarginRight", {
        get: function () {
            return this.i.ahw ? this.i.ahw.right : NaN;
        },
        set: function (v) {
            this.ensureHeaderRowMargin();
            this.i.ahw.right = +v;
            this.i.ahw = this.i.ahw;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "headerRowMarginTop", {
        get: function () {
            return this.i.ahw ? this.i.ahw.top : NaN;
        },
        set: function (v) {
            this.ensureHeaderRowMargin();
            this.i.ahw.top = +v;
            this.i.ahw = this.i.ahw;
        },
        enumerable: false,
        configurable: true
    });
    IgxDataToolTipLayerComponent.prototype.ensureHeaderRowMargin = function () {
        if (this.i.ahw) {
            return;
        }
        this.i.ahw = new Thickness(2);
    };
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "headerRowVisible", {
        /**
         * Gets or sets whether to show Header row.
        */
        get: function () {
            return this.i.abg;
        },
        set: function (v) {
            this.i.abg = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "headerTextStyle", {
        /**
         * Gets or Sets the style to use for the header text.
        */
        get: function () {
            if (this.i.aa5 == null) {
                return null;
            }
            return this.i.aa5.fontString;
        },
        set: function (v) {
            var fi = new FontInfo();
            fi.fontString = v;
            this.i.aa5 = fi;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "groupRowVisible", {
        /**
         * Gets or sets whether to show Header row.
        */
        get: function () {
            return this.i.abf;
        },
        set: function (v) {
            this.i.abf = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "groupTextColor", {
        /**
         * Gets or sets the Group text color.
        */
        get: function () {
            return brushToString(this.i.ahd);
        },
        set: function (v) {
            this.i.ahd = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "groupTextMarginBottom", {
        get: function () {
            return this.i.ahv ? this.i.ahv.bottom : NaN;
        },
        set: function (v) {
            this.ensureGroupTextMargin();
            this.i.ahv.bottom = +v;
            this.i.ahv = this.i.ahv;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "groupTextMarginLeft", {
        get: function () {
            return this.i.ahv ? this.i.ahv.left : NaN;
        },
        set: function (v) {
            this.ensureGroupTextMargin();
            this.i.ahv.left = +v;
            this.i.ahv = this.i.ahv;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "groupTextMarginRight", {
        get: function () {
            return this.i.ahv ? this.i.ahv.right : NaN;
        },
        set: function (v) {
            this.ensureGroupTextMargin();
            this.i.ahv.right = +v;
            this.i.ahv = this.i.ahv;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "groupTextMarginTop", {
        get: function () {
            return this.i.ahv ? this.i.ahv.top : NaN;
        },
        set: function (v) {
            this.ensureGroupTextMargin();
            this.i.ahv.top = +v;
            this.i.ahv = this.i.ahv;
        },
        enumerable: false,
        configurable: true
    });
    IgxDataToolTipLayerComponent.prototype.ensureGroupTextMargin = function () {
        if (this.i.ahv) {
            return;
        }
        this.i.ahv = new Thickness(2);
    };
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "groupRowMarginBottom", {
        get: function () {
            return this.i.ahu ? this.i.ahu.bottom : NaN;
        },
        set: function (v) {
            this.ensureGroupRowMargin();
            this.i.ahu.bottom = +v;
            this.i.ahu = this.i.ahu;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "groupRowMarginLeft", {
        get: function () {
            return this.i.ahu ? this.i.ahu.left : NaN;
        },
        set: function (v) {
            this.ensureGroupRowMargin();
            this.i.ahu.left = +v;
            this.i.ahu = this.i.ahu;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "groupRowMarginRight", {
        get: function () {
            return this.i.ahu ? this.i.ahu.right : NaN;
        },
        set: function (v) {
            this.ensureGroupRowMargin();
            this.i.ahu.right = +v;
            this.i.ahu = this.i.ahu;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "groupRowMarginTop", {
        get: function () {
            return this.i.ahu ? this.i.ahu.top : NaN;
        },
        set: function (v) {
            this.ensureGroupRowMargin();
            this.i.ahu.top = +v;
            this.i.ahu = this.i.ahu;
        },
        enumerable: false,
        configurable: true
    });
    IgxDataToolTipLayerComponent.prototype.ensureGroupRowMargin = function () {
        if (this.i.ahu) {
            return;
        }
        this.i.ahu = new Thickness(2);
    };
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "groupTextStyle", {
        /**
         * Gets or Sets the style to use for the Group text.
        */
        get: function () {
            if (this.i.aa4 == null) {
                return null;
            }
            return this.i.aa4.fontString;
        },
        set: function (v) {
            var fi = new FontInfo();
            fi.fontString = v;
            this.i.aa4 = fi;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "summaryTitleTextColor", {
        /**
         * Gets or sets the summary text color.
        */
        get: function () {
            return brushToString(this.i.ahh);
        },
        set: function (v) {
            this.i.ahh = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "summaryTitleTextStyle", {
        /**
         * Gets or Sets the style to use for the summary text.
        */
        get: function () {
            if (this.i.aa8 == null) {
                return null;
            }
            return this.i.aa8.fontString;
        },
        set: function (v) {
            var fi = new FontInfo();
            fi.fontString = v;
            this.i.aa8 = fi;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "summaryType", {
        /**
         * Gets or sets the SummaryType for the data legend.
        */
        get: function () {
            return this.i.aac;
        },
        set: function (v) {
            this.i.aac = ensureEnum(DataLegendSummaryType_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "summaryTitleText", {
        /**
         * Gets or sets the SummaryTitleText for the data legend.
        */
        get: function () {
            return this.i.aea;
        },
        set: function (v) {
            this.i.aea = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "summaryTitleTextMarginBottom", {
        get: function () {
            return this.i.ah0 ? this.i.ah0.bottom : NaN;
        },
        set: function (v) {
            this.ensureSummaryTitleTextMargin();
            this.i.ah0.bottom = +v;
            this.i.ah0 = this.i.ah0;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "summaryTitleTextMarginLeft", {
        get: function () {
            return this.i.ah0 ? this.i.ah0.left : NaN;
        },
        set: function (v) {
            this.ensureSummaryTitleTextMargin();
            this.i.ah0.left = +v;
            this.i.ah0 = this.i.ah0;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "summaryTitleTextMarginRight", {
        get: function () {
            return this.i.ah0 ? this.i.ah0.right : NaN;
        },
        set: function (v) {
            this.ensureSummaryTitleTextMargin();
            this.i.ah0.right = +v;
            this.i.ah0 = this.i.ah0;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "summaryTitleTextMarginTop", {
        get: function () {
            return this.i.ah0 ? this.i.ah0.top : NaN;
        },
        set: function (v) {
            this.ensureSummaryTitleTextMargin();
            this.i.ah0.top = +v;
            this.i.ah0 = this.i.ah0;
        },
        enumerable: false,
        configurable: true
    });
    IgxDataToolTipLayerComponent.prototype.ensureSummaryTitleTextMargin = function () {
        if (this.i.ah0) {
            return;
        }
        this.i.ah0 = new Thickness(2);
    };
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "summaryRowMarginBottom", {
        get: function () {
            return this.i.ahz ? this.i.ahz.bottom : NaN;
        },
        set: function (v) {
            this.ensureSummaryRowMargin();
            this.i.ahz.bottom = +v;
            this.i.ahz = this.i.ahz;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "summaryRowMarginLeft", {
        get: function () {
            return this.i.ahz ? this.i.ahz.left : NaN;
        },
        set: function (v) {
            this.ensureSummaryRowMargin();
            this.i.ahz.left = +v;
            this.i.ahz = this.i.ahz;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "summaryRowMarginRight", {
        get: function () {
            return this.i.ahz ? this.i.ahz.right : NaN;
        },
        set: function (v) {
            this.ensureSummaryRowMargin();
            this.i.ahz.right = +v;
            this.i.ahz = this.i.ahz;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "summaryRowMarginTop", {
        get: function () {
            return this.i.ahz ? this.i.ahz.top : NaN;
        },
        set: function (v) {
            this.ensureSummaryRowMargin();
            this.i.ahz.top = +v;
            this.i.ahz = this.i.ahz;
        },
        enumerable: false,
        configurable: true
    });
    IgxDataToolTipLayerComponent.prototype.ensureSummaryRowMargin = function () {
        if (this.i.ahz) {
            return;
        }
        this.i.ahz = new Thickness(2);
    };
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "summaryValueTextColor", {
        /**
         * Gets or sets the units text color.
        */
        get: function () {
            return brushToString(this.i.ahj);
        },
        set: function (v) {
            this.i.ahj = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "summaryValueTextStyle", {
        /**
         * Gets or Sets the style to use for the units text.
        */
        get: function () {
            if (this.i.aba == null) {
                return null;
            }
            return this.i.aba.fontString;
        },
        set: function (v) {
            var fi = new FontInfo();
            fi.fontString = v;
            this.i.aba = fi;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "summaryLabelText", {
        /**
         * Gets or sets the units text for the data legend.
        */
        get: function () {
            return this.i.ad5;
        },
        set: function (v) {
            this.i.ad5 = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "summaryLabelTextColor", {
        /**
         * Gets or sets the units text color.
        */
        get: function () {
            return brushToString(this.i.ahg);
        },
        set: function (v) {
            this.i.ahg = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "summaryLabelTextStyle", {
        /**
         * Gets or Sets the style to use for the units text.
        */
        get: function () {
            if (this.i.aa7 == null) {
                return null;
            }
            return this.i.aa7.fontString;
        },
        set: function (v) {
            var fi = new FontInfo();
            fi.fontString = v;
            this.i.aa7 = fi;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "summaryUnitsText", {
        /**
         * Gets or sets the units text for the data legend.
        */
        get: function () {
            return this.i.aeg;
        },
        set: function (v) {
            this.i.aeg = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "summaryUnitsTextColor", {
        /**
         * Gets or sets the units text color.
        */
        get: function () {
            return brushToString(this.i.ahi);
        },
        set: function (v) {
            this.i.ahi = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "summaryUnitsTextStyle", {
        /**
         * Gets or Sets the style to use for the units text.
        */
        get: function () {
            if (this.i.aa9 == null) {
                return null;
            }
            return this.i.aa9.fontString;
        },
        set: function (v) {
            var fi = new FontInfo();
            fi.fontString = v;
            this.i.aa9 = fi;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "badgeMarginBottom", {
        get: function () {
            return this.i.aht ? this.i.aht.bottom : NaN;
        },
        set: function (v) {
            this.ensureBadgeMargin();
            this.i.aht.bottom = +v;
            this.i.aht = this.i.aht;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "badgeMarginLeft", {
        get: function () {
            return this.i.aht ? this.i.aht.left : NaN;
        },
        set: function (v) {
            this.ensureBadgeMargin();
            this.i.aht.left = +v;
            this.i.aht = this.i.aht;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "badgeMarginRight", {
        get: function () {
            return this.i.aht ? this.i.aht.right : NaN;
        },
        set: function (v) {
            this.ensureBadgeMargin();
            this.i.aht.right = +v;
            this.i.aht = this.i.aht;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "badgeMarginTop", {
        get: function () {
            return this.i.aht ? this.i.aht.top : NaN;
        },
        set: function (v) {
            this.ensureBadgeMargin();
            this.i.aht.top = +v;
            this.i.aht = this.i.aht;
        },
        enumerable: false,
        configurable: true
    });
    IgxDataToolTipLayerComponent.prototype.ensureBadgeMargin = function () {
        if (this.i.aht) {
            return;
        }
        this.i.aht = new Thickness(2);
    };
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "badgeShape", {
        /**
         * Gets or sets the BadgeShape for the data legend.
        */
        get: function () {
            return this.i.aat;
        },
        set: function (v) {
            this.i.aat = ensureEnum(LegendItemBadgeShape_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "layoutMode", {
        /**
         * Gets or sets the layout of content in the data legend
        */
        get: function () {
            return this.i.aab;
        },
        set: function (v) {
            this.i.aab = ensureEnum(DataLegendLayoutMode_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "unitsDisplayMode", {
        /**
         * Gets or sets the UnitsMode for the data legend.
        */
        get: function () {
            return this.i.aad;
        },
        set: function (v) {
            this.i.aad = ensureEnum(DataLegendUnitsMode_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "unitsText", {
        /**
         * Gets or sets the units text for the data legend.
        */
        get: function () {
            return this.i.aer;
        },
        set: function (v) {
            this.i.aer = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "unitsTextColor", {
        /**
         * Gets or sets the units text color.
        */
        get: function () {
            return brushToString(this.i.ahl);
        },
        set: function (v) {
            this.i.ahl = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "unitsTextMarginBottom", {
        get: function () {
            return this.i.ah2 ? this.i.ah2.bottom : NaN;
        },
        set: function (v) {
            this.ensureUnitsTextMargin();
            this.i.ah2.bottom = +v;
            this.i.ah2 = this.i.ah2;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "unitsTextMarginLeft", {
        get: function () {
            return this.i.ah2 ? this.i.ah2.left : NaN;
        },
        set: function (v) {
            this.ensureUnitsTextMargin();
            this.i.ah2.left = +v;
            this.i.ah2 = this.i.ah2;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "unitsTextMarginRight", {
        get: function () {
            return this.i.ah2 ? this.i.ah2.right : NaN;
        },
        set: function (v) {
            this.ensureUnitsTextMargin();
            this.i.ah2.right = +v;
            this.i.ah2 = this.i.ah2;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "unitsTextMarginTop", {
        get: function () {
            return this.i.ah2 ? this.i.ah2.top : NaN;
        },
        set: function (v) {
            this.ensureUnitsTextMargin();
            this.i.ah2.top = +v;
            this.i.ah2 = this.i.ah2;
        },
        enumerable: false,
        configurable: true
    });
    IgxDataToolTipLayerComponent.prototype.ensureUnitsTextMargin = function () {
        if (this.i.ah2) {
            return;
        }
        this.i.ah2 = new Thickness(2);
    };
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "unitsTextStyle", {
        /**
         * Gets or Sets the style to use for the units text.
        */
        get: function () {
            if (this.i.abc == null) {
                return null;
            }
            return this.i.abc.fontString;
        },
        set: function (v) {
            var fi = new FontInfo();
            fi.fontString = v;
            this.i.abc = fi;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "titleTextMarginBottom", {
        get: function () {
            return this.i.ah1 ? this.i.ah1.bottom : NaN;
        },
        set: function (v) {
            this.ensureTitleTextMargin();
            this.i.ah1.bottom = +v;
            this.i.ah1 = this.i.ah1;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "titleTextMarginLeft", {
        get: function () {
            return this.i.ah1 ? this.i.ah1.left : NaN;
        },
        set: function (v) {
            this.ensureTitleTextMargin();
            this.i.ah1.left = +v;
            this.i.ah1 = this.i.ah1;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "titleTextMarginRight", {
        get: function () {
            return this.i.ah1 ? this.i.ah1.right : NaN;
        },
        set: function (v) {
            this.ensureTitleTextMargin();
            this.i.ah1.right = +v;
            this.i.ah1 = this.i.ah1;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "titleTextMarginTop", {
        get: function () {
            return this.i.ah1 ? this.i.ah1.top : NaN;
        },
        set: function (v) {
            this.ensureTitleTextMargin();
            this.i.ah1.top = +v;
            this.i.ah1 = this.i.ah1;
        },
        enumerable: false,
        configurable: true
    });
    IgxDataToolTipLayerComponent.prototype.ensureTitleTextMargin = function () {
        if (this.i.ah1) {
            return;
        }
        this.i.ah1 = new Thickness(2);
    };
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "titleTextColor", {
        /**
         * Gets or sets the display text color.
        */
        get: function () {
            return brushToString(this.i.ahk);
        },
        set: function (v) {
            this.i.ahk = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "titleTextStyle", {
        /**
         * Gets or Sets the style to use for the display text.
        */
        get: function () {
            if (this.i.abb == null) {
                return null;
            }
            return this.i.abb.fontString;
        },
        set: function (v) {
            var fi = new FontInfo();
            fi.fontString = v;
            this.i.abb = fi;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "labelDisplayMode", {
        /**
         * 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: function () {
            return this.i.aaa;
        },
        set: function (v) {
            this.i.aaa = ensureEnum(DataLegendLabelMode_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "labelTextColor", {
        /**
         * Gets or sets the units text color.
        */
        get: function () {
            return brushToString(this.i.ahf);
        },
        set: function (v) {
            this.i.ahf = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "labelTextMarginBottom", {
        get: function () {
            return this.i.ahy ? this.i.ahy.bottom : NaN;
        },
        set: function (v) {
            this.ensureLabelTextMargin();
            this.i.ahy.bottom = +v;
            this.i.ahy = this.i.ahy;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "labelTextMarginLeft", {
        get: function () {
            return this.i.ahy ? this.i.ahy.left : NaN;
        },
        set: function (v) {
            this.ensureLabelTextMargin();
            this.i.ahy.left = +v;
            this.i.ahy = this.i.ahy;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "labelTextMarginRight", {
        get: function () {
            return this.i.ahy ? this.i.ahy.right : NaN;
        },
        set: function (v) {
            this.ensureLabelTextMargin();
            this.i.ahy.right = +v;
            this.i.ahy = this.i.ahy;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "labelTextMarginTop", {
        get: function () {
            return this.i.ahy ? this.i.ahy.top : NaN;
        },
        set: function (v) {
            this.ensureLabelTextMargin();
            this.i.ahy.top = +v;
            this.i.ahy = this.i.ahy;
        },
        enumerable: false,
        configurable: true
    });
    IgxDataToolTipLayerComponent.prototype.ensureLabelTextMargin = function () {
        if (this.i.ahy) {
            return;
        }
        this.i.ahy = new Thickness(2);
    };
    Object.defineProperty(IgxDataToolTipLayerComponent.prototype, "labelTextStyle", {
        /**
         * Gets or Sets the style to use for the units text.
        */
        get: function () {
            if (this.i.aa6 == null) {
                return null;
            }
            return this.i.aa6.fontString;
        },
        set: function (v) {
            var fi = new FontInfo();
            fi.fontString = v;
            this.i.aa6 = fi;
        },
        enumerable: false,
        configurable: true
    });
    IgxDataToolTipLayerComponent.prototype.findByName = function (name) {
        var baseResult = _super.prototype.findByName.call(this, 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;
    };
    IgxDataToolTipLayerComponent.prototype._styling = function (container, component, parent) {
        _super.prototype._styling.call(this, 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.
    
    */
    IgxDataToolTipLayerComponent.prototype.hideToolTips = function () {
        this.i.p7();
    };
    /**
     * Hides any tooltips presented by the layer, if any.
    
    */
    IgxDataToolTipLayerComponent.prototype.hideToolTipsImmediate = function () {
        this.i.p8();
    };
    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" }, providers: [{ provide: IgxAnnotationLayerComponent, useExisting: forwardRef(function () { return IgxDataToolTipLayerComponent; }) }, { provide: IgxSeriesComponent, useExisting: forwardRef(function () { return IgxDataToolTipLayerComponent; }) }], usesInheritance: true, ngImport: i0, template: "", isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
    return IgxDataToolTipLayerComponent;
}(IgxAnnotationLayerComponent));
export { 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(function () { return IgxDataToolTipLayerComponent; }) }, { provide: IgxSeriesComponent, useExisting: forwardRef(function () { return 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
            }] } });
