import { DataContext as DataContext_internal } from "./DataContext";
import { brushToString, stringToBrush } from "./componentUtil";
var IgxDataContext = /** @class */ /*@__PURE__*/ (function () {
    function IgxDataContext() {
        this._implementation = this.createImplementation();
        this._implementation.externalObject = this;
        this.onImplementationCreated();
    }
    IgxDataContext.prototype.createImplementation = function () {
        return new DataContext_internal();
    };
    Object.defineProperty(IgxDataContext.prototype, "i", {
        get: function () {
            return this._implementation;
        },
        enumerable: false,
        configurable: true
    });
    IgxDataContext.prototype.onImplementationCreated = function () {
    };
    Object.defineProperty(IgxDataContext.prototype, "series", {
        get: function () {
            return this.i.series.externalObject;
        },
        set: function (v) {
            if (v == null) {
                this.i.series = null;
                return;
            }
            this.i.series = v.i;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataContext.prototype, "item", {
        /**
     * Gets the item that is in context.
    */
        get: function () {
            return this.i.item;
        },
        set: function (v) {
            this.i.item = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataContext.prototype, "actualItemBrush", {
        /**
         * Gets the actual resolved brush in use for the item that is in context.
        */
        get: function () {
            return brushToString(this.i.actualItemBrush);
        },
        set: function (v) {
            this.i.actualItemBrush = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataContext.prototype, "outline", {
        /**
         * Gets the outline in use for the item in context.
        */
        get: function () {
            return brushToString(this.i.outline);
        },
        set: function (v) {
            this.i.outline = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataContext.prototype, "itemLabel", {
        /**
         * Gets the label in use for the item in context, if available.
        */
        get: function () {
            return this.i.itemLabel;
        },
        set: function (v) {
            this.i.itemLabel = v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataContext.prototype, "itemBrush", {
        /**
         * Gets the potential brush in usage for the item in context.
        */
        get: function () {
            return brushToString(this.i.itemBrush);
        },
        set: function (v) {
            this.i.itemBrush = stringToBrush(v);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataContext.prototype, "thickness", {
        /**
         * Gets the thickness of the item in context.
        */
        get: function () {
            return this.i.thickness;
        },
        set: function (v) {
            this.i.thickness = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgxDataContext.prototype, "legendLabel", {
        /**
         * Gets the legend label to use for the item in context, if available.
        */
        get: function () {
            return this.i.legendLabel;
        },
        set: function (v) {
            this.i.legendLabel = v;
        },
        enumerable: false,
        configurable: true
    });
    IgxDataContext.prototype.findByName = function (name) {
        return null;
    };
    return IgxDataContext;
}());
export { IgxDataContext };
