text: /*
      ## Color
  
      http://llllll.li/randomColor/
          A color generator for JavaScript.
          randomColor generates attractive colors by default. More specifically, randomColor produces bright colors with a reasonably high saturation. This makes randomColor particularly useful for data visualizations and generative art.
  
      http://randomcolour.com/
          var bg_colour = Math.floor(Math.random() * 16777215).toString(16);
          bg_colour = "#" + ("000000" + bg_colour).slice(-6);
          document.bgColor = bg_colour;
      
      http://martin.ankerl.com/2009/12/09/how-to-create-random-colors-programmatically/
          Creating random colors is actually more difficult than it seems. The randomness itself is easy, but aesthetically pleasing randomness is more difficult.
          https://github.com/devongovett/color-generator
  
      http://www.paulirish.com/2009/random-hex-color-code-snippets/
          Random Hex Color Code Generator in JavaScript
  
      http://chancejs.com/#color
          chance.color()
          // => '#79c157'
          chance.color({format: 'hex'})
          // => '#d67118'
          chance.color({format: 'shorthex'})
          // => '#60f'
          chance.color({format: 'rgb'})
          // => 'rgb(110,52,164)'
  
      http://tool.c7sky.com/webcolor
          网页设计常用色彩搭配表
      
      https://github.com/One-com/one-color
          An OO-based JavaScript color parser/computation toolkit with support for RGB, HSV, HSL, CMYK, and alpha channels.
          API 很赞
  
      https://github.com/harthur/color
          JavaScript color conversion and manipulation library
  
      https://github.com/leaverou/css-colors
          Share & convert CSS colors
      http://leaverou.github.io/css-colors/#slategray
          Type a CSS color keyword, #hex, hsl(), rgba(), whatever:
  
      色调 hue
          http://baike.baidu.com/view/23368.htm
          色调指的是一幅画中画面色彩的总体倾向，是大的色彩效果。
      饱和度 saturation
          http://baike.baidu.com/view/189644.htm
          饱和度是指色彩的鲜艳程度，也称色彩的纯度。饱和度取决于该色中含色成分和消色成分（灰色）的比例。含色成分越大，饱和度越大；消色成分越大，饱和度越小。
      亮度 brightness
          http://baike.baidu.com/view/34773.htm
          亮度是指发光体（反光体）表面发光（反光）强弱的物理量。
      照度 luminosity
          物体被照亮的程度,采用单位面积所接受的光通量来表示,表示单位为勒[克斯](Lux,lx) ,即 1m / m2 。
  
      http://stackoverflow.com/questions/1484506/random-color-generator-in-javascript
          var letters = '0123456789ABCDEF'.split('')
          var color = '#'
          for (var i = 0; i < 6; i++) {
              color += letters[Math.floor(Math.random() * 16)]
          }
          return color
      
          // 随机生成一个无脑的颜色，格式为 '#RRGGBB'。
          // _brainlessColor()
          var color = Math.floor(
              Math.random() *
              (16 * 16 * 16 * 16 * 16 * 16 - 1)
          ).toString(16)
          color = "#" + ("000000" + color).slice(-6)
          return color.toUpperCase()
  */
  
  import Convert from './color_convert'
  import DICT from './color_dict'
  
  export default {
      // 随机生成一个有吸引力的颜色，格式为 '#RRGGBB'。
      color: function(name) {
          if (name || DICT[name]) return DICT[name].nicer
          return this.hex()
      },
      // #DAC0DE
      hex: function() {
          var hsv = this._goldenRatioColor()
          var rgb = Convert.hsv2rgb(hsv)
          var hex = Convert.rgb2hex(rgb[0], rgb[1], rgb[2])
          return hex
      },
      // rgb(128,255,255)
      rgb: function() {
          var hsv = this._goldenRatioColor()
          var rgb = Convert.hsv2rgb(hsv)
          return 'rgb(' +
              parseInt(rgb[0], 10) + ', ' +
              parseInt(rgb[1], 10) + ', ' +
              parseInt(rgb[2], 10) + ')'
      },
      // rgba(128,255,255,0.3)
      rgba: function() {
          var hsv = this._goldenRatioColor()
          var rgb = Convert.hsv2rgb(hsv)
          return 'rgba(' +
              parseInt(rgb[0], 10) + ', ' +
              parseInt(rgb[1], 10) + ', ' +
              parseInt(rgb[2], 10) + ', ' +
              Math.random().toFixed(2) + ')'
      },
      // hsl(300,80%,90%)
      hsl: function() {
          var hsv = this._goldenRatioColor()
          var hsl = Convert.hsv2hsl(hsv)
          return 'hsl(' +
              parseInt(hsl[0], 10) + ', ' +
              parseInt(hsl[1], 10) + ', ' +
              parseInt(hsl[2], 10) + ')'
      },
      // http://martin.ankerl.com/2009/12/09/how-to-create-random-colors-programmatically/
      // https://github.com/devongovett/color-generator/blob/master/index.js
      // 随机生成一个有吸引力的颜色。
      _goldenRatioColor: function(saturation, value) {
          this._goldenRatio = 0.618033988749895
          this._hue = this._hue || Math.random()
          this._hue += this._goldenRatio
          this._hue %= 1
  
          if (typeof saturation !== "number") saturation = 0.5;
          if (typeof value !== "number") value = 0.95;
  
          return [
              this._hue * 360,
              saturation * 100,
              value * 100
          ]
      }
  }