import { AnnotationAppearanceMode_$type } from "./AnnotationAppearanceMode";
import { OverlayTextLocation_$type } from "./OverlayTextLocation";
import { OverlayTextUpdatingEventArgs as OverlayTextUpdatingEventArgs_internal } from "./OverlayTextUpdatingEventArgs";
import { ensureEnum, ensureBool, brushToString, stringToBrush } from "igniteui-angular-core";
/**
 * Represents an event arguments for styling Overlay Text
*/
var IgxOverlayTextUpdatingEventArgs = /** @class */ /*@__PURE__*/ (function () {
    function IgxOverlayTextUpdatingEventArgs() {
        this._implementation = this.createImplementation();
        this._implementation.externalObject = this;
        this.onImplementationCreated();
        if (this._initializeAdapters) {
            this._initializeAdapters();
        }
    }
    IgxOverlayTextUpdatingEventArgs.prototype.createImplementation = function () {
        return new OverlayTextUpdatingEventArgs_internal();
    };
    Object.defineProperty(IgxOverlayTextUpdatingEventArgs.prototype, "i", {
        /**
         * @hidden
         */
        get: function () {
            return this._implementation;
        },
        enumerable: false,
        configurable: true
    });
    IgxOverlayTextUpdatingEventArgs.prototype.onImplementationCreated = function () {
    };
    IgxOverlayTextUpdatingEventArgs.prototype._provideImplementation = function (i) {
        this._implementation = i;
        this._implementation.externalObject = this;
        this.onImplementationCreated();
    };
    Object.defineProperty(IgxOverlayTextUpdatingEventArgs.prototype, "dataIndex", {
        /**
         * Gets data index associated with the overlay text
        */
        get: function () {
            return this.i.dataIndex;
        },
        set: function (v) {
            this.i.dataIndex = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxOverlayTextUpdatingEventArgs.prototype, "horizontalMargin", {
        /**
         * Gets or sets Horizontal Margin for the overlay text
        */
        get: function () {
            return this.i.horizontalMargin;
        },
        set: function (v) {
            this.i.horizontalMargin = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxOverlayTextUpdatingEventArgs.prototype, "horizontalPadding", {
        /**
         * Gets or sets Horizontal Padding for the overlay text
        */
        get: function () {
            return this.i.horizontalPadding;
        },
        set: function (v) {
            this.i.horizontalPadding = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxOverlayTextUpdatingEventArgs.prototype, "verticalPadding", {
        /**
         * Gets or sets Vertical Padding for the overlay text
        */
        get: function () {
            return this.i.verticalPadding;
        },
        set: function (v) {
            this.i.verticalPadding = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxOverlayTextUpdatingEventArgs.prototype, "verticalMargin", {
        /**
         * Gets or sets Vertical Margin for the overlay text
        */
        get: function () {
            return this.i.verticalMargin;
        },
        set: function (v) {
            this.i.verticalMargin = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxOverlayTextUpdatingEventArgs.prototype, "borderRadius", {
        /**
         * Gets or sets boarder border radius of the overlay text
        */
        get: function () {
            return this.i.borderRadius;
        },
        set: function (v) {
            this.i.borderRadius = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxOverlayTextUpdatingEventArgs.prototype, "borderThickness", {
        /**
         * Gets or sets boarder thickness of the overlay text
        */
        get: function () {
            return this.i.borderThickness;
        },
        set: function (v) {
            this.i.borderThickness = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxOverlayTextUpdatingEventArgs.prototype, "borderShift", {
        /**
         * Gets or sets appearance shift of the overlay text border
        */
        get: function () {
            return this.i.borderShift;
        },
        set: function (v) {
            this.i.borderShift = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxOverlayTextUpdatingEventArgs.prototype, "backgroundShift", {
        /**
         * Gets or sets appearance shift of the overlay text background
        */
        get: function () {
            return this.i.backgroundShift;
        },
        set: function (v) {
            this.i.backgroundShift = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxOverlayTextUpdatingEventArgs.prototype, "textColorShift", {
        /**
         * Gets or sets appearance shift of the overlay text color
        */
        get: function () {
            return this.i.textColorShift;
        },
        set: function (v) {
            this.i.textColorShift = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxOverlayTextUpdatingEventArgs.prototype, "borderMode", {
        /**
         * Gets or sets appearance mode of the overlay text border
        */
        get: function () {
            return this.i.borderMode;
        },
        set: function (v) {
            this.i.borderMode = ensureEnum(AnnotationAppearanceMode_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxOverlayTextUpdatingEventArgs.prototype, "backgroundMode", {
        /**
         * Gets or sets appearance mode of the overlay text background
        */
        get: function () {
            return this.i.backgroundMode;
        },
        set: function (v) {
            this.i.backgroundMode = ensureEnum(AnnotationAppearanceMode_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxOverlayTextUpdatingEventArgs.prototype, "textColorMode", {
        /**
         * Gets or sets appearance mode of the overlay text color
        */
        get: function () {
            return this.i.textColorMode;
        },
        set: function (v) {
            this.i.textColorMode = ensureEnum(AnnotationAppearanceMode_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxOverlayTextUpdatingEventArgs.prototype, "textContent", {
        /**
         * Gets or sets content of the overlay text
        */
        get: function () {
            return this.i.textContent;
        },
        set: function (v) {
            this.i.textContent = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxOverlayTextUpdatingEventArgs.prototype, "textAngle", {
        /**
         * Gets or sets rotation angle of the overlay text
        */
        get: function () {
            return this.i.textAngle;
        },
        set: function (v) {
            this.i.textAngle = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxOverlayTextUpdatingEventArgs.prototype, "textVisible", {
        /**
         * Gets or sets visibility of the overlay text
        */
        get: function () {
            return this.i.textVisible;
        },
        set: function (v) {
            this.i.textVisible = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxOverlayTextUpdatingEventArgs.prototype, "textEmpty", {
        /**
         * Gets or sets visibility of the overlay text
        */
        get: function () {
            return this.i.textEmpty;
        },
        set: function (v) {
            this.i.textEmpty = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxOverlayTextUpdatingEventArgs.prototype, "textLocation", {
        /**
         * Gets or sets location of the overlay text in relation to shape annotation
        */
        get: function () {
            return this.i.textLocation;
        },
        set: function (v) {
            this.i.textLocation = ensureEnum(OverlayTextLocation_$type, v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxOverlayTextUpdatingEventArgs.prototype, "textColor", {
        /**
         * Gets or sets color of the overlay text
        */
        get: function () {
            return brushToString(this.i.textColor);
        },
        set: function (v) {
            this.i.textColor = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxOverlayTextUpdatingEventArgs.prototype, "background", {
        /**
         * Gets or sets background of the overlay text
        */
        get: function () {
            return brushToString(this.i.background);
        },
        set: function (v) {
            this.i.background = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxOverlayTextUpdatingEventArgs.prototype, "borderStroke", {
        /**
         * Gets or sets border stroke of the overlay text
        */
        get: function () {
            return brushToString(this.i.borderStroke);
        },
        set: function (v) {
            this.i.borderStroke = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxOverlayTextUpdatingEventArgs.prototype, "shapeBrush", {
        /**
         * Gets or sets shape brush associated with the overlay text
        */
        get: function () {
            return brushToString(this.i.shapeBrush);
        },
        set: function (v) {
            this.i.shapeBrush = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxOverlayTextUpdatingEventArgs.prototype, "shapeOutline", {
        /**
         * Gets or sets shape outline associated with the overlay text
        */
        get: function () {
            return brushToString(this.i.shapeOutline);
        },
        set: function (v) {
            this.i.shapeOutline = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    return IgxOverlayTextUpdatingEventArgs;
}());
export { IgxOverlayTextUpdatingEventArgs };
