import { ColorScaleInterpolationMode_$type } from "./ColorScaleInterpolationMode";
import { IgrColorScale } from "./igr-color-scale";
import { CustomPaletteColorScale } from "./CustomPaletteColorScale";
import { toColorCollection, fromColorCollection, ensureEnum } from "igniteui-react-core/ES2015/componentUtil";
/**
 * ColorScale class for selecting a color from a given palette, or interpolating between adjacent colors in that palette.
*/
export class IgrCustomPaletteColorScale extends IgrColorScale {
    createImplementation() {
        return new CustomPaletteColorScale();
    }
    get i() {
        return this._implementation;
    }
    constructor(props) {
        super(props);
    }
    /**
     * The lowest value to assign a color.  Any given value less than this value will be made Transparent.
    */
    get minimumValue() {
        return this.i.minimumValue;
    }
    set minimumValue(v) {
        this.i.minimumValue = +v;
    }
    /**
     * The highest value to assign a color.  Any given value greater than this value will be made Transparent.
    */
    get maximumValue() {
        return this.i.maximumValue;
    }
    set maximumValue(v) {
        this.i.maximumValue = +v;
    }
    /**
     * A list of colors to select from or interpolate between.
    */
    get palette() {
        return fromColorCollection(this.i.palette);
    }
    set palette(v) {
        this.i.palette = toColorCollection(v);
    }
    /**
     * The approach to use when getting a color from the palette.
    */
    get interpolationMode() {
        return this.i.interpolationMode;
    }
    set interpolationMode(v) {
        this.i.interpolationMode = ensureEnum(ColorScaleInterpolationMode_$type, v);
    }
    providePalette(colors) {
        this.i.providePalette(colors);
    }
}
