import { __extends } from "tslib";
import { IgrHorizontalRangeCategorySeries } from "./igr-horizontal-range-category-series";
import { RangeColumnSeries } from "./RangeColumnSeries";
import { toPoint, fromRect } from "igniteui-react-core";
/**
 * Represents a IgxDataChartComponent range column series.
*
* The `RangeColumnSeries` class represents range column series of the IgxDataChartComponent.
*
* ```ts
* <IgrDataChart
*     dataSource={this.state.dataSource}
*     width="700px"
*     height="500px">
*
*     <IgrCategoryXAxis name="xAxis" label="Year" />
*     <IgrNumericYAxis  name="yAxis" />
*
*     <IgrRangeColumnSeries
*         name="series1"
*         xAxisName="xAxis"
*         yAxisName="yAxis"
*         highMemberPath="High"
*         lowMemberPath="Low" />
*  </IgrDataChart>
* ```
*
* ```ts
* const series1 = new IgrRangeColumnSeries({ name: "series1" });
* series1.highMemberPath = "High";
* series1.lowMemberPath  = "Low";
* series1.xAxisName = "xAxis";
* series1.yAxisName = "yAxis";
* this.chart.series.add(series1);
* ```
*/
var IgrRangeColumnSeries = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(IgrRangeColumnSeries, _super);
    function IgrRangeColumnSeries(props) {
        return _super.call(this, props) || this;
    }
    IgrRangeColumnSeries.prototype.createImplementation = function () {
        return new RangeColumnSeries();
    };
    Object.defineProperty(IgrRangeColumnSeries.prototype, "i", {
        /**
                                     * @hidden
                                     */
        get: function () {
            return this._implementation;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgrRangeColumnSeries.prototype, "isColumn", {
        /**
         * Gets whether the current series shows a column shape.
        */
        get: function () {
            return this.i.ed;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgrRangeColumnSeries.prototype, "isMarkerlessDisplayPreferred", {
        /**
         * Overridden by derived series classes to indicate when marker-less display is preferred or not.
        */
        get: function () {
            return this.i.ey;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgrRangeColumnSeries.prototype, "radiusX", {
        /**
         * Gets or sets the x-radius of the ellipse that is used to round the corners of the column.
        *
        * Use the `RadiusX` property to round the corners of the column.
        *
        * ```ts
        * <IgrDataChart
        *     dataSource={this.state.dataSource}
        *     width="700px"
        *     height="500px">
        *
        *     <IgrCategoryXAxis name="xAxis" label="Year" />
        *     <IgrNumericYAxis  name="yAxis" />
        *
        *     <IgrRangeColumnSeries
        *         name="series1"
        *         xAxisName="xAxis"
        *         yAxisName="yAxis"
        *         highMemberPath="High"
        *         lowMemberPath="Low"
        * 		radiusX={10} />
        *  </IgrDataChart>
        * ```
        *
        * ```ts
        * series.radiusX=10;
        * ```
        */
        get: function () {
            return this.i.yl;
        },
        set: function (v) {
            this.i.yl = +v;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgrRangeColumnSeries.prototype, "radiusY", {
        /**
         * Gets or sets the y-radius of the ellipse that is used to round the corners of the column.
        *
        * Use the `RadiusY` property for the y-radius of the ellipse that is used to round the corners of the column.
        *
        * ```ts
        * <IgrDataChart
        *     dataSource={this.state.dataSource}
        *     width="700px"
        *     height="500px">
        *
        *     <IgrCategoryXAxis name="xAxis" label="Year" />
        *     <IgrNumericYAxis  name="yAxis" />
        *
        *     <IgrRangeColumnSeries
        *         name="series1"
        *         xAxisName="xAxis"
        *         yAxisName="yAxis"
        *         highMemberPath="High"
        *         lowMemberPath="Low"
        * 		radiusY={10} />
        *  </IgrDataChart>
        * ```
        *
        * ```ts
        * series.radiusY=10;
        * ```
        */
        get: function () {
            return this.i.ym;
        },
        set: function (v) {
            this.i.ym = +v;
        },
        enumerable: false,
        configurable: true
    });
    /**
     * If possible, will return the best available value bounding box within the series that has the best value match for the world position provided.
    
    * @param world  * The world coordinate for which to get a value bounding box for
    *
    * The `GetSeriesValueBoundingBox` method return the best available value of the bounding box within the series.
    */
    IgrRangeColumnSeries.prototype.getSeriesValueBoundingBox = function (world) {
        var iv = this.i.ts(toPoint(world));
        return fromRect(iv);
    };
    /**
     * For a category plotted series, returns the current width of the items within the categories. This only returns a value if the items have some form of width (e.g. columns, bars, etc.) otherwise 0 is returned.
    
    *
    * The `GetItemSpan` method returns the current width of the items within the categories.
    *
    * ```ts
    * var x =series.getItemSpan();
    * ```
    */
    IgrRangeColumnSeries.prototype.getItemSpan = function () {
        var iv = this.i.h0();
        return (iv);
    };
    return IgrRangeColumnSeries;
}(IgrHorizontalRangeCategorySeries));
export { IgrRangeColumnSeries };
