/*
THIS INFRAGISTICS ULTIMATE SOFTWARE LICENSE  AGREEMENT ("AGREEMENT") LOCATED HERE:
https://www.infragistics.com/legal/license/igultimate-la
https://www.infragistics.com/legal/license/igultimate-eula
GOVERNS THE LICENSING, INSTALLATION AND USE OF INFRAGISTICS SOFTWARE. BY DOWNLOADING AND/OR INSTALLING AND USING INFRAGISTICS SOFTWARE:  you are indicating that you have read and understand this Agreement, and agree to be legally bound by it on behalf of the yourself and your company.
*/
import { DependencyObject } from "igniteui-angular-core";
import { INotifyPropertyChanged_$type, PropertyChangedEventArgs, Array_$type, markType, markDep } from "igniteui-angular-core";
import { IAxisAnnotation_$type } from "./IAxisAnnotation";
import { DependencyProperty } from "igniteui-angular-core";
import { Brush } from "igniteui-angular-core";
import { BindingFormatter } from "igniteui-angular-core";
import { Thickness } from "igniteui-angular-core";
import { PropertyMetadata } from "igniteui-angular-core";
/**
 * @hidden
 */
export let AxisAnnotation = /*@__PURE__*/ (() => {
    class AxisAnnotation extends DependencyObject {
        constructor() {
            super(...arguments);
            this.propertyChanged = null;
            this.l = false;
            this._formatLabel = null;
            this.k = false;
            this.j = null;
        }
        resetCachedExtent() {
            this.l = true;
        }
        checkForExtentReset(a) {
            if (this.l) {
                this.l = false;
                a();
            }
        }
        ad(a, b, c) {
            this.ac(a, b, c);
            if (this.propertyChanged != null) {
                this.propertyChanged(this, new PropertyChangedEventArgs(a));
            }
        }
        ac(a, b, c) {
            this.k = true;
            switch (a) {
                case AxisAnnotation.$$p[5]:
                case AxisAnnotation.$$p[6]:
                    if (this.labelFormat != null) {
                        this.j = new BindingFormatter();
                        this.j.j = this.labelFormat;
                        this.j.d = this.labelFormatSpecifiers;
                    }
                    else {
                        this.j = null;
                    }
                    break;
            }
        }
        resolveLabelValue() {
            if (this.text != null) {
                return this.text;
            }
            if (this.formatLabel != null) {
                return this.formatLabel(this.value);
            }
            if (this.j != null) {
                return this.j.i(this.value);
            }
            if (this.value == null) {
                return null;
            }
            return this.value.toString();
        }
        get formatLabel() {
            return this._formatLabel;
        }
        set formatLabel(a) {
            this._formatLabel = a;
        }
        get backgroundPadding() {
            return new Thickness(1, this.backgroundPaddingLeft, this.backgroundPaddingTop, this.backgroundPaddingRight, this.backgroundPaddingBottom);
        }
        set backgroundPadding(a) {
            this.backgroundPaddingLeft = a.c;
            this.backgroundPaddingTop = a.e;
            this.backgroundPaddingRight = a.d;
            this.backgroundPaddingBottom = a.b;
        }
    }
    AxisAnnotation.$t = markType(AxisAnnotation, 'AxisAnnotation', DependencyObject.$, [INotifyPropertyChanged_$type, IAxisAnnotation_$type]);
    AxisAnnotation.$$p = markDep(DependencyProperty, PropertyMetadata, AxisAnnotation, 'ad', ['BackgroundPaddingBottom', [1, NaN], 'BackgroundPaddingLeft', [1, NaN], 'BackgroundPaddingRight', [1, NaN], 'BackgroundPaddingTop', [1, NaN], 'Background', [Brush.$, null], 'LabelFormat', [2, null], 'LabelFormatSpecifiers', [Array_$type, null], 'Outline', [Brush.$, null], 'StrokeThickness', [1, 0], 'TextColor', [Brush.$, null], 'Text', [2, null], 'Value', [4, null]]);
    return AxisAnnotation;
})();
//# sourceMappingURL=AxisAnnotation.js.map
