import { HighlightingInfo } from "./igr-highlighting-info";
import { brushToString, stringToBrush, ensureBool } from "igniteui-react-core/ES2015/componentUtil";
/**
 * Represents event arguments base class for the AssigningCategoryStyleEventArgsBase
*/
export class AssigningCategoryStyleEventArgsBase {
    createImplementation() {
        return null;
    }
    get i() {
        return this._implementation;
    }
    onImplementationCreated() {
    }
    constructor() {
        this._implementation = this.createImplementation();
        this._implementation.externalObject = this;
        this.onImplementationCreated();
    }
    _provideImplementation(i) {
        this._implementation = i;
        this._implementation.externalObject = this;
        this.onImplementationCreated();
    }
    /**
     * Gets the start index
    */
    get startIndex() {
        return this.i.m;
    }
    set startIndex(v) {
        this.i.m = +v;
    }
    /**
     * Gets the end index
    */
    get endIndex() {
        return this.i.l;
    }
    set endIndex(v) {
        this.i.l = +v;
    }
    /**
     * Gets the start date
    */
    get startDate() {
        return this.i.h;
    }
    set startDate(v) {
        this.i.h = v;
    }
    /**
     * Gets the end date
    */
    get endDate() {
        return this.i.g;
    }
    set endDate(v) {
        this.i.g = v;
    }
    /**
     * Gets a function that will return the items associated with this event.
    */
    get getItems() {
        return this.i.a;
    }
    set getItems(v) {
        this.i.a = v;
    }
    /**
     * Gets or sets fill brush to use for the current item.
    */
    get fill() {
        return brushToString(this.i.n);
    }
    set fill(v) {
        this.i.n = stringToBrush(v);
    }
    /**
     * Gets or sets stroke to use for the current item.
    */
    get stroke() {
        return brushToString(this.i.o);
    }
    set stroke(v) {
        this.i.o = stringToBrush(v);
    }
    /**
     * Gets or sets opacity to use for the current item.
    */
    get opacity() {
        return this.i.j;
    }
    set opacity(v) {
        this.i.j = +v;
    }
    /**
     * Gets or sets highlighting info
    */
    get highlightingInfo() {
        if (this.i.b == null) {
            return null;
        }
        if (!this.i.b.externalObject) {
            let e = new HighlightingInfo();
            e._implementation = this.i.b;
            this.i.b.externalObject = e;
        }
        return this.i.b.externalObject;
    }
    set highlightingInfo(v) {
        v == null ? this.i.b = null : this.i.b = v.i;
    }
    /**
     * Gets the max highlighting progress from all series.
    */
    get maxAllSeriesHighlightingProgress() {
        return this.i.i;
    }
    set maxAllSeriesHighlightingProgress(v) {
        this.i.i = +v;
    }
    /**
     * Gets the sum of highlighting progress from all series.
    */
    get sumAllSeriesHighlightingProgress() {
        return this.i.k;
    }
    set sumAllSeriesHighlightingProgress(v) {
        this.i.k = +v;
    }
    /**
     * Gets or sets if highlighting was handled by this event handler, and whether internal highlighting logic should be skipped.
    */
    get highlightingHandled() {
        return this.i.d;
    }
    set highlightingHandled(v) {
        this.i.d = ensureBool(v);
    }
    /**
     * Gets if this event has a valid date range
    */
    get hasDateRange() {
        return this.i.c;
    }
    set hasDateRange(v) {
        this.i.c = ensureBool(v);
    }
    /**
     * Gets if the current shape is identified as a negative shape if this series supports discrete negative shapes.
    */
    get isNegativeShape() {
        return this.i.e;
    }
    set isNegativeShape(v) {
        this.i.e = ensureBool(v);
    }
    /**
     * Gets if the current event is being raised for the thumbnail image.
    */
    get isThumbnail() {
        return this.i.f;
    }
    set isThumbnail(v) {
        this.i.f = ensureBool(v);
    }
}
