import { OthersCategoryType_$type } from "igniteui-react-core";
import { IgrCategoryAngleAxis } from "./igr-category-angle-axis";
import { ProportionalCategoryAngleAxis } from "./ProportionalCategoryAngleAxis";
import { ensureEnum } from "igniteui-react-core";
/**
 * Represents a IgxDataChartComponent category angle axis. Useful for displaying radial categories.
*/
export class IgrProportionalCategoryAngleAxis extends IgrCategoryAngleAxis {
    createImplementation() {
        return new ProportionalCategoryAngleAxis();
    }
    /**
                                 * @hidden
                                 */
    get i() {
        return this._implementation;
    }
    constructor(props) {
        super(props);
    }
    /**
     * Gets or sets the Value mapping property for the axis.
    */
    get valueMemberPath() {
        return this.i.og;
    }
    set valueMemberPath(v) {
        this.i.og = v;
    }
    get normalizationMayContainUnknowns() {
        return this.i.normalizationMayContainUnknowns;
    }
    /**
     * Gets or sets the threshold value that determines if categories are grouped into the Others category.
    */
    get othersCategoryThreshold() {
        return this.i.n7;
    }
    set othersCategoryThreshold(v) {
        this.i.n7 = +v;
    }
    /**
     * Gets or sets whether to use numeric or percent-based threshold value.
    */
    get othersCategoryType() {
        return this.i.nu;
    }
    set othersCategoryType(v) {
        this.i.nu = ensureEnum(OthersCategoryType_$type, v);
    }
    /**
     * Gets or sets the label of the Others slice.
    */
    get othersCategoryText() {
        return this.i.oa;
    }
    set othersCategoryText(v) {
        this.i.oa = v;
    }
    get isPiecewise() {
        return this.i.cl;
    }
    get othersValue() {
        return this.i.othersValue;
    }
    get othersIndex() {
        return this.i.othersIndex;
    }
    get hasOthersCategory() {
        return this.i.hasOthersCategory;
    }
    getItemValue(item, memberPathName) {
        let iv = this.i.fy(item, memberPathName);
        return (iv);
    }
    /**
     * Gets a scaled value inside the viewport.
    
    * @param unscaledValue  * Value to scale.
    * @param p  * Scaler parameters
    */
    getScaledAngle(unscaledAngle) {
        let iv = this.i.getScaledAngle(unscaledAngle);
        return (iv);
    }
    /**
     * Returns an unscaled value from a scaled value based on the amount of data.
    
    * @param scaledValue  * Scaled value.
    * @param p  * Scaler parameters
    */
    getUnscaledAngle(scaledAngle) {
        let iv = this.i.getUnscaledAngle(scaledAngle);
        return (iv);
    }
    isOthersValue(index) {
        let iv = this.i.isOthersValue(index);
        return (iv);
    }
    getValueLabel(value) {
        let iv = this.i.ge(value);
        return (iv);
    }
    getNormalizingValueAtIndex(index, fallbackValue) {
        let iv = this.i.getNormalizingValueAtIndex(index, fallbackValue);
        return (iv);
    }
    getPercentageValue(labelIndex) {
        let iv = this.i.n6(labelIndex);
        return (iv);
    }
}
