    import { defaultValue } from '../../../util'
    import { Color } from '../../../base'
    /**
     * 热力图分段颜色和比率
     * @class HeatmapColorStop
     * @moduleEX RendererModule
     * @param {Object} options 构造参数
     * @param {Number} [options.ratio] 比率。热力图点的热力值在数值范围内的比例值，范围为0-1。假设热力值为59，最大数据为100，最小为0，则ratio为0.59,超过这个数值选取此颜色。
     * @param {Color} [options.color] 热力图分段颜色值
     */
    class HeatmapColorStop {
      constructor(options) {
        options = defaultValue(options, {})
        /**
         * 比率。热力图点的热力值在数值范围内的比例值，范围为0-1。假设热力值为59，最大数据为100，最小为0，则ratio为0.59,超过这个数值选取此颜色。
         * @member {Number} HeatmapColorStop.prototype.ratio
         */
        this.ratio = options.ratio
        /**
         * 热力图分段颜色值
         * @member {Color} HeatmapColorStop.prototype.color
         */
        this.color = Color.fromColor(defaultValue(options.color, {}))
      }

      /**
       * 通过json构造HeatmapColorStop对象
       * @param {Object} json json对象
       * @return {HeatmapColorStop} HeatmapColorStop实例
       */
      static fromJSON(json) {
        json = defaultValue(json, {})
        return new HeatmapColorStop(json)
      }

      /**
       * 导出json对象
       * @return {Object} json对象
       */
      toJSON() {
        const json = {}
        json.ratio = this.ratio
        json.color = this.color.toJSON()
        return json
      }

      /**
       * 克隆HeatmapColorStop对象
       * @return {HeatmapColorStop} 克隆后的HeatmapColorStop实例
       */
      clone() {
        return new HeatmapColorStop(this.toJSON())
      }
    }

    export default HeatmapColorStop