    import BaseRenderer from './BaseRenderer'
    import { defaultValue } from '../../util'
    import { Zondy } from '../../base'
    import { RendererType } from '../../base/enum'
    /**
     * 随机渲染器，将随机颜色赋予要素，根据zoom等级颜色也将发生变化
     * @class RandomRenderer
     * @extends BaseRenderer
     * @moduleEX RendererModule
     * @param {Object} options 构造参数
     *
     * @summary <h5>支持如下方法：</h5>
     * <a href='#fromJSON'>[1、通过json构造RandomRenderer对象]</a><br/>
     * <a href='#toJSON'>[2、导出json对象]</a><br/>
     * <a href='#clone'>[3、克隆RandomRenderer对象]</a>
     *
     * @example <caption><h7 id='new-PictureMarkerSymbol'>创建随机渲染器对象</h7></caption>
     * // ES5引入方式
     * const { RandomRenderer } = Zondy.Renderer
     * // ES6引入方式
     * import { RandomRenderer } from "@mapgis/webclient-common"
     *
     * // 初始化随机渲染器对象
     * const randomRenderer = new RandomRenderer({})
     */
    class RandomRenderer extends BaseRenderer {
      constructor(options) {
        super(options)
        options = defaultValue(options, {})
        /**
         * 类型，默认为'random'
         * @readonly
         * @member {String} RandomRenderer.prototype.type
         */
        this.type = RendererType.random
      }

      /**
       * <a id='fromJSON'/>
       * 通过json构造RandomRenderer对象
       * @param {Object} json json对象
       * @return {RandomRenderer} RandomRenderer实例
       */
      static fromJSON(json) {
        json = defaultValue(json, {})
        return new RandomRenderer(json)
      }

      /**
       * <a id='toJSON'/>
       * 导出json对象
       * @return {Object} json对象
       */
      toJSON() {
        const json = super.toJSON()
        json.type = this.type
        return json
      }

      /**
       * <a id='clone'/>
       * 克隆RandomRenderer对象
       * @return {RandomRenderer} 克隆后的RandomRenderer实例
       */
      clone() {
        return new RandomRenderer(this.toJSON())
      }
    }

    Zondy.Renderer.RandomRenderer = RandomRenderer
    export default RandomRenderer