module.exports = function () {
  /**
   * config默认配置项
   * @exports zrender/config
   * @author Kener (@Kener-林峰, kener.linfeng@gmail.com)
   */
  var config = {
    /**
     * @namespace module:zrender/config.EVENT
     */
    EVENT: {
      /**
       * 窗口大小变化
       * @type {string}
       */
      RESIZE: 'resize',

      /**
       * 鼠标按钮被（手指）按下，事件对象是：目标图形元素或空
       * @type {string}
       */
      CLICK: 'click',

      /**
       * 双击事件
       * @type {string}
       */
      DBLCLICK: 'dblclick',

      /**
       * 鼠标滚轮变化，事件对象是：目标图形元素或空
       * @type {string}
       */
      MOUSEWHEEL: 'mousewheel',

      /**
       * 鼠标（手指）被移动，事件对象是：目标图形元素或空
       * @type {string}
       */
      MOUSEMOVE: 'mousemove',

      /**
       * 鼠标移到某图形元素之上，事件对象是：目标图形元素
       * @type {string}
       */
      MOUSEOVER: 'mouseover',

      /**
       * 鼠标从某图形元素移开，事件对象是：目标图形元素
       * @type {string}
       */
      MOUSEOUT: 'mouseout',

      /**
       * 鼠标按钮（手指）被按下，事件对象是：目标图形元素或空
       * @type {string}
       */
      MOUSEDOWN: 'mousedown',

      /**
       * 鼠标按键（手指）被松开，事件对象是：目标图形元素或空
       * @type {string}
       */
      MOUSEUP: 'mouseup',

      /**
       * 全局离开，MOUSEOUT触发比较频繁，一次离开优化绑定
       * @type {string}
       */
      GLOBALOUT: 'globalout',
      // 
      // 一次成功元素拖拽的行为事件过程是：
      // dragstart > dragenter > dragover [> dragleave] > drop > dragend

      /**
       * 开始拖拽时触发，事件对象是：被拖拽图形元素
       * @type {string}
       */
      DRAGSTART: 'dragstart',

      /**
       * 拖拽完毕时触发（在drop之后触发），事件对象是：被拖拽图形元素
       * @type {string}
       */
      DRAGEND: 'dragend',

      /**
       * 拖拽图形元素进入目标图形元素时触发，事件对象是：目标图形元素
       * @type {string}
       */
      DRAGENTER: 'dragenter',

      /**
       * 拖拽图形元素在目标图形元素上移动时触发，事件对象是：目标图形元素
       * @type {string}
       */
      DRAGOVER: 'dragover',

      /**
       * 拖拽图形元素离开目标图形元素时触发，事件对象是：目标图形元素
       * @type {string}
       */
      DRAGLEAVE: 'dragleave',

      /**
       * 拖拽图形元素放在目标图形元素内时触发，事件对象是：目标图形元素
       * @type {string}
       */
      DROP: 'drop',

      /**
       * touch end - start < delay is click
       * @type {number}
       */
      touchClickDelay: 300
    },
    elementClassName: 'zr-element',
    // 是否异常捕获
    catchBrushException: false,

    /**
     * debug日志选项：catchBrushException为true下有效
     * 0 : 不生成debug数据，发布用
     * 1 : 异常抛出，调试用
     * 2 : 控制台输出，调试用
     */
    debugMode: 0,
    // retina 屏幕优化
    devicePixelRatio: Math.max(window.devicePixelRatio || 1, 1)
  };
  return config;
}();