import { IgrTreemapNodeStyle } from "./igr-treemap-node-style";
import { IgrHighlightingInfo } from "igniteui-react-core";
import { TreemapNodeStylingEventArgs as TreemapNodeStylingEventArgs_internal } from "./TreemapNodeStylingEventArgs";
import { ensureBool } from "igniteui-react-core";
export class IgrTreemapNodeStylingEventArgs {
    createImplementation() {
        return new TreemapNodeStylingEventArgs_internal();
    }
    /**
     * @hidden
     */
    get i() {
        return this._implementation;
    }
    onImplementationCreated() {
    }
    constructor() {
        this.mounted = false;
        this._implementation = this.createImplementation();
        this._implementation.externalObject = this;
        this.onImplementationCreated();
        if (this._initializeAdapters) {
            this._initializeAdapters();
        }
    }
    _provideImplementation(i) {
        this._implementation = i;
        this._implementation.externalObject = this;
        this.onImplementationCreated();
        if (this._initializeAdapters) {
            this._initializeAdapters();
        }
    }
    get value() {
        return this.i.value;
    }
    set value(v) {
        this.i.value = +v;
    }
    get sum() {
        return this.i.sum;
    }
    set sum(v) {
        this.i.sum = +v;
    }
    get customValue() {
        return this.i.customValue;
    }
    set customValue(v) {
        this.i.customValue = v;
    }
    get item() {
        return this.i.item;
    }
    set item(v) {
        this.i.item = v;
    }
    get parentItem() {
        return this.i.parentItem;
    }
    set parentItem(v) {
        this.i.parentItem = v;
    }
    get label() {
        return this.i.label;
    }
    set label(v) {
        this.i.label = v;
    }
    get parentValue() {
        return this.i.parentValue;
    }
    set parentValue(v) {
        this.i.parentValue = +v;
    }
    get parentLabel() {
        return this.i.parentLabel;
    }
    set parentLabel(v) {
        this.i.parentLabel = v;
    }
    get parentSum() {
        return this.i.parentSum;
    }
    set parentSum(v) {
        this.i.parentSum = +v;
    }
    get isParent() {
        return this.i.isParent;
    }
    set isParent(v) {
        this.i.isParent = ensureBool(v);
    }
    get style() {
        const r = this.i.style;
        if (r == null) {
            return null;
        }
        if (!r.externalObject) {
            let e = IgrTreemapNodeStyle._createFromInternal(r);
            if (e) {
                e._implementation = r;
            }
            r.externalObject = e;
        }
        return r.externalObject;
    }
    set style(v) {
        v == null ? this.i.style = null : this.i.style = v.i;
    }
    /**
     * Gets highlighting information for the current node. Null if no highlight is in progress.
    */
    get highlightingInfo() {
        const r = this.i.highlightingInfo;
        if (r == null) {
            return null;
        }
        if (!r.externalObject) {
            let e = new IgrHighlightingInfo();
            if (r.$type) {
                e._implementation = r;
            }
            else {
                if (e.i.setNativeElement) {
                    e.i.setNativeElement(r);
                }
            }
            r.externalObject = e;
        }
        return r.externalObject;
    }
    set highlightingInfo(v) {
        v == null ? this.i.highlightingInfo = null : this.i.highlightingInfo = v.i;
    }
    /**
     * Sets whether the user handled the highlighting themselves. If so we won't run any of our
     * default highlight styling.
    */
    get highlightingHandled() {
        return this.i.highlightingHandled;
    }
    set highlightingHandled(v) {
        this.i.highlightingHandled = ensureBool(v);
    }
    /**
     * Gets whether a highlight is currently in progress.
    */
    get isHighlightInProgress() {
        return this.i.isHighlightInProgress;
    }
    set isHighlightInProgress(v) {
        this.i.isHighlightInProgress = ensureBool(v);
    }
    /**
     * Gets the overall highlight progress.
    */
    get totalHighlightProgress() {
        return this.i.totalHighlightProgress;
    }
    set totalHighlightProgress(v) {
        this.i.totalHighlightProgress = +v;
    }
}
